/* Popup-ul cu restricțiile de la punctul ales (task 313): cardurile comune (`map-popup-card.css`),
   deschise la cerere, plus nota „informativ” și butonul de reîncercare.
   Din task 361 același popup stă și pe harta publică (`.public-map-popup-shell`, clasa popup-ului
   Mapbox de acolo), deci selectorii acoperă ambele hărți, fără să atingă restul paginii publice. */
:is(#airspace-map, .public-map-popup-shell) .dl-point-restrictions__item {
    /* `.dl-popup-card` e flex; un `<details>` flex nu se poartă la fel în toate browserele. */
    display: block;
    margin-bottom: 0.4rem;
}

:is(#airspace-map, .public-map-popup-shell) .dl-point-restrictions__item > summary {
    cursor: pointer;
    list-style: none;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding-right: 1.2rem;
}

/* Antetul e cel al cardului comun (task 323). Tipul de la server e o propoziție („Restricționat
   (necesită autorizare)”), nu eticheta scurtă a hărții publice: aici se poate rupe pe rânduri. */
:is(#airspace-map, .public-map-popup-shell) .dl-point-restrictions__item .dl-popup-card__head {
    flex-wrap: wrap;
    align-items: center;
}

:is(#airspace-map, .public-map-popup-shell) .dl-point-restrictions__item .dl-popup-card__title {
    flex: 0 0 auto;
}

:is(#airspace-map, .public-map-popup-shell) .dl-point-restrictions__item .dl-popup-card__type {
    flex: 0 1 auto;
    white-space: normal;
}

:is(#airspace-map, .public-map-popup-shell) .dl-point-restrictions__item .dl-popup-card__subtitle {
    margin-top: 0;
}

/* Cu `display: flex`, browserul nu mai desenează triunghiul lui `<summary>`: fără el, cardul nu arăta
   că se deschide (task 315). Săgeata și „Vezi detaliile” țin locul lui; deschis, textul dispare. */
:is(#airspace-map, .public-map-popup-shell) .dl-point-restrictions__item > summary::-webkit-details-marker {
    display: none;
}

:is(#airspace-map, .public-map-popup-shell) .dl-point-restrictions__item > summary::after {
    content: "";
    position: absolute;
    top: 0.35rem;
    right: 0.2rem;
    width: 0.45rem;
    height: 0.45rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    opacity: 0.6;
    transition: transform 0.15s ease;
}

:is(#airspace-map, .public-map-popup-shell) .dl-point-restrictions__item[open] > summary::after {
    top: 0.5rem;
    transform: rotate(-135deg);
}

:is(#airspace-map, .public-map-popup-shell) .dl-point-restrictions__item > summary:hover .dl-point-restrictions__more,
:is(#airspace-map, .public-map-popup-shell) .dl-point-restrictions__item > summary:focus-visible .dl-point-restrictions__more {
    text-decoration: underline;
}

:is(#airspace-map, .public-map-popup-shell) .dl-point-restrictions__more {
    color: var(--bs-link-color);
    font-size: 0.72rem;
}

:is(#airspace-map, .public-map-popup-shell) .dl-point-restrictions__item[open] .dl-point-restrictions__more {
    display: none;
}

:is(#airspace-map, .public-map-popup-shell) .dl-point-restrictions__body {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    margin-top: 0.45rem;
}

:is(#airspace-map, .public-map-popup-shell) .dl-point-restrictions__text {
    margin: 0.35rem 0 0;
    max-height: 7.5rem;
    overflow-y: auto;
    font-size: 0.7rem;
    white-space: pre-wrap;
    word-break: break-word;
    color: var(--bs-secondary-color);
}

:is(#airspace-map, .public-map-popup-shell) .dl-point-restrictions__note {
    margin: 0 0.8rem 0.7rem;
    font-size: 0.7rem;
    color: var(--bs-secondary-color);
}

:is(#airspace-map, .public-map-popup-shell) .dl-point-restrictions__actions {
    padding: 0 0.8rem 0.7rem;
}

/* Popup-ul stă deasupra controlului „Opacitate zone” (z-index 3): pe telefon, cu punctul ales sus,
   titlul cu numărul de restricții ajungea sub control. Cât e deschis acoperă și butoanele de zoom;
   un clic pe hartă îl închide. */
:is(#airspace-map, .public-map-popup-shell) .mapboxgl-popup {
    z-index: 4;
}

/* Pe telefon harta are ~314 px: popup-ul de 340 px ieșea tăiat pe margine. `!important` fiindcă
   Mapbox pune lățimea maximă inline; pe ecran lat rămân cei 340 px. */
:is(#airspace-map, .public-map-popup-shell) .mapboxgl-popup {
    max-width: min(340px, calc(100% - 24px)) !important;
}

/* Tema întunecată: titlul popup-ului (număr / „nicio restricție”) folosea culorile din tema
   deschisă pe fundal închis — ~2:1. Aceleași nuanțe, mai deschise, ~4,6–6,7:1. */
[data-bs-theme="dark"] :is(#airspace-map, .public-map-popup-shell) .mapboxgl-popup-content .zone-popup-summary.is-clear {
    color: #4ade80;
}

[data-bs-theme="dark"] :is(#airspace-map, .public-map-popup-shell) .mapboxgl-popup-content .zone-popup-summary.is-caution {
    color: #facc15;
}

[data-bs-theme="dark"] :is(#airspace-map, .public-map-popup-shell) .mapboxgl-popup-content .zone-popup-summary.is-restricted {
    color: #f87171;
}

/* Titlul (numărul de restricții) și lista, pe harta publică (task 361): pe harta din cont le dă
   `airspace-map.css`, care nu se încarcă pe paginile publice. Aceleași valori. */
.public-map-popup-shell .mapboxgl-popup-content .dl-point-restrictions .zone-popup-summary {
    margin: 0 0 0.45rem;
    padding: 0.32rem 0.48rem;
    border-radius: 0.35rem;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.02em;
}

.public-map-popup-shell .mapboxgl-popup-content .zone-popup-summary.is-caution {
    color: #a16207;
    background: color-mix(in srgb, #eab308 20%, transparent);
}

.public-map-popup-shell .mapboxgl-popup-content .zone-popup-summary.is-restricted {
    color: #b91c1c;
    background: color-mix(in srgb, #ef4444 18%, transparent);
}

.public-map-popup-shell .mapboxgl-popup-content .zone-popup-summary.is-clear {
    color: #15803d;
    background: color-mix(in srgb, #22c55e 18%, transparent);
}

.public-map-popup-shell .mapboxgl-popup-content .dl-point-restrictions .zone-popup-list {
    max-height: min(420px, 60vh);
    overflow-y: auto;
}

.public-map-popup-shell .dl-point-restrictions__note,
.public-map-popup-shell .dl-point-restrictions__actions {
    margin-inline: 0;
    padding-inline: 0;
}

/* NOTAM-urile de deasupra zborului (task 362): un rând strâns sub restricții, mai stins decât ele. */
:is(#airspace-map, .public-map-popup-shell) .dl-point-restrictions__others {
    margin: 0 0.8rem 0.6rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--bs-border-color);
}

.public-map-popup-shell .dl-point-restrictions__others {
    margin-inline: 0;
}

:is(#airspace-map, .public-map-popup-shell) .dl-point-restrictions__others > summary {
    color: var(--bs-secondary-color);
    font-size: 0.75rem;
    font-weight: 600;
    cursor: pointer;
}

:is(#airspace-map, .public-map-popup-shell) .dl-point-restrictions__others[open] > summary {
    margin-bottom: 0.4rem;
}

:is(#airspace-map, .public-map-popup-shell) .dl-point-restrictions__others .zone-popup-list {
    padding: 0;
    opacity: 0.85;
}
