.mapboxgl-map {
    font-family: Geist, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.mapboxgl-ctrl-group {
    overflow: hidden;
    border: 1px solid rgb(226 232 240);
    border-radius: 0.375rem;
    box-shadow: none;
}

.dark .mapboxgl-ctrl-group {
    border-color: rgb(63 63 70);
    background: rgb(24 24 27);
}

.dark .mapboxgl-ctrl-group button {
    filter: invert(1);
}

.mapboxgl-popup-content {
    border: 1px solid rgb(226 232 240);
    border-radius: 0.375rem;
    padding: 0.75rem;
    box-shadow: 0 8px 24px rgb(15 23 42 / 0.12);
}

.dark .mapboxgl-popup-content {
    border-color: rgb(63 63 70);
    background: rgb(24 24 27);
    color: rgb(244 244 245);
}

.klokin-map-popup-content {
    display: grid;
    gap: 0.5rem;
    min-width: 10rem;
    color: rgb(51 65 85);
    font-size: 0.8125rem;
    line-height: 1.25rem;
}

.klokin-map-popup-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
}

.klokin-map-popup-title {
    min-width: 0;
    margin: 0;
    color: rgb(17 17 17);
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.25rem;
    overflow-wrap: anywhere;
}

.klokin-map-popup-status {
    flex: 0 0 auto;
    padding: 0.125rem 0.375rem;
    border: 1px solid transparent;
    border-radius: 0.375rem;
    font-size: 0.6875rem;
    font-weight: 500;
    line-height: 1rem;
}

.klokin-map-popup-status--planned {
    border-color: rgb(220 229 232);
    background: rgb(241 245 246);
    color: rgb(55 75 82);
}

.klokin-map-popup-status--late {
    border-color: rgb(236 216 211);
    background: rgb(248 239 236);
    color: rgb(135 54 42);
}

.klokin-map-popup-status--completed {
    border-color: rgb(221 229 215);
    background: rgb(239 244 235);
    color: rgb(55 92 64);
}

.klokin-map-popup-status--in_progress {
    border-color: rgb(238 226 204);
    background: rgb(248 243 233);
    color: rgb(119 82 30);
}

.klokin-map-popup-details {
    display: grid;
    gap: 0.375rem;
    margin: 0;
}

.klokin-map-popup-detail {
    display: grid;
    grid-template-columns: minmax(4.25rem, 0.42fr) minmax(0, 1fr);
    gap: 0.5rem;
}

.klokin-map-popup-detail dt,
.klokin-map-popup-line {
    color: rgb(115 115 115);
}

.klokin-map-popup-detail dd {
    min-width: 0;
    margin: 0;
    color: rgb(17 17 17);
    overflow-wrap: anywhere;
}

.mapboxgl-popup-close-button {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: 0.5rem;
    color: rgb(115 115 115);
    font-size: 1.25rem;
    line-height: 1;
}

.mapboxgl-popup-close-button:hover {
    background: rgb(247 247 244);
    color: rgb(17 17 17);
}

.dark .klokin-map-popup-content,
.dark .klokin-map-popup-title,
.dark .klokin-map-popup-detail dd {
    color: rgb(244 244 245);
}

.dark .klokin-map-popup-detail dt,
.dark .klokin-map-popup-line {
    color: rgb(161 161 170);
}

.dark .klokin-map-popup-status--planned {
    border-color: rgb(63 83 91);
    background: rgb(38 50 55);
    color: rgb(207 220 224);
}

.dark .klokin-map-popup-status--late {
    border-color: rgb(108 62 54);
    background: rgb(62 39 35);
    color: rgb(235 188 177);
}

.dark .klokin-map-popup-status--completed {
    border-color: rgb(68 88 66);
    background: rgb(39 53 38);
    color: rgb(194 215 185);
}

.dark .klokin-map-popup-status--in_progress {
    border-color: rgb(104 82 48);
    background: rgb(61 49 31);
    color: rgb(226 203 162);
}

.dark .mapboxgl-popup-close-button {
    color: rgb(161 161 170);
}

.dark .mapboxgl-popup-close-button:hover {
    background: rgb(39 39 42);
    color: rgb(244 244 245);
}

.klokin-map-unavailable {
    display: flex;
    min-height: 12rem;
    height: 100%;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 0.25rem;
    padding: 1.5rem;
    background: rgb(248 250 252);
    color: rgb(100 116 139);
    text-align: center;
    font-size: 0.75rem;
}

.klokin-map-unavailable strong {
    color: rgb(51 65 85);
    font-size: 0.875rem;
    font-weight: 600;
}

.dark .klokin-map-unavailable {
    background: rgb(9 9 11);
    color: rgb(161 161 170);
}

.dark .klokin-map-unavailable strong {
    color: rgb(228 228 231);
}
