/* Gemeinsame Stile für Einsatz-App (index.html) und Verwaltung (admin.html) */
:root{--bg:#0f2430;--panel:#16323f;--line:#2c4f60;--tx:#eaf3f6;--mut:#8fb0bd;--alarm:#ff4d2e;--ok:#35c27a;--ex:#1d7fd1;font-family:"Segoe UI",system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--tx)}
button,input,select,textarea{font:inherit;color:inherit;background:#0c1c25;border:1px solid var(--line);border-radius:6px;padding:.6rem .7rem}
button{cursor:pointer;background:var(--panel)}button.pri{background:var(--alarm);border-color:var(--alarm);font-weight:600}button:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid #fff;outline-offset:2px}
input[type=checkbox]{width:1.2rem;height:1.2rem;padding:0;flex:0 0 auto!important;accent-color:var(--ex)}
input[type=color]{padding:.15rem .25rem;height:2.7rem;min-width:3.5rem;cursor:pointer}.mut a:not(.btn){color:#8ec5ff}
a.btn{color:inherit;text-decoration:none;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:.6rem .7rem;display:inline-block}
[hidden]{display:none!important}
details{border-top:1px solid var(--line);padding:.3rem 0;margin-top:.5rem}summary{cursor:pointer;padding:.4rem 0;font-weight:600}
.row{display:flex;gap:.5rem;flex-wrap:wrap;margin:.4rem 0}.row>*{flex:1 1 auto}.mut{color:var(--mut);font-size:.9rem}
.card{max-width:420px;margin:12vh auto;padding:1.2rem;display:grid;gap:.7rem}
.badge{display:inline-block;padding:.1rem .45rem;border-radius:4px;font-size:.8rem;font-weight:700;background:var(--ex);color:#fff;vertical-align:middle}
.msg{padding:.4rem 0;border-bottom:1px solid var(--line)}table{width:100%;border-collapse:collapse}td{padding:.3rem;border-bottom:1px solid var(--line)}
/* Einsatzsymbole (Issue #146): Marker ohne Rahmen, Schatten für Luftbilder; Auswahl im Dialog «Markierung setzen» */
.symk img,.symi{display:block;filter:drop-shadow(0 0 1px #000) drop-shadow(0 1px 2px #0009)}.symk{background:none;border:0}
.symgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.6rem,1fr));gap:.35rem;max-height:40vh;overflow-y:auto;overscroll-behavior:contain;padding:.1rem}
.symgrid h5{grid-column:1/-1;margin:.4rem 0 0;font-size:.82rem;color:var(--mut)}
.symgrid button{display:grid;justify-items:center;gap:.2rem;padding:.35rem .2rem;font-size:.72rem;line-height:1.15;overflow-wrap:anywhere;background:#0c1c25}
.symgrid button[aria-pressed=true]{border-color:#fff;box-shadow:0 0 0 2px var(--ex)}.symgrid button .ns{font-size:1.5rem;line-height:34px}
.sylist{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.35rem}.syi{display:flex;align-items:center;gap:.5rem;border:1px solid var(--line);border-radius:6px;padding:.3rem .5rem;background:#0c1c25;cursor:pointer}.syi.off{opacity:.45}
/* Dialoge (Passwort, Bearbeiten) */
.dlg{position:fixed;inset:0;z-index:6000;background:#000b;display:grid;place-items:center;padding:1rem}
.dlg .card{margin:0;width:100%;background:var(--panel);border:1px solid var(--line);border-radius:8px;max-height:calc(100dvh - 2rem);overflow-y:auto;overscroll-behavior:contain}
/* lange Dialoge scrollen im Fenster, Speichern/Abbrechen bleiben unten sichtbar */
.dlg .card>.row:last-child{position:sticky;bottom:calc(-1.2rem - 1px);z-index:1;background:var(--panel);margin:0 0 -1.2rem;padding:.6rem 0 1.2rem;border-top:1px solid var(--line)}
.dlg label{display:grid;gap:.3rem}.dlg label.chk{display:flex;align-items:center;gap:.5rem}
/* Einsatzlog im Gross-Modus */
#bigLog{position:fixed;inset:0;z-index:5000;background:var(--bg);display:flex;flex-direction:column}
#bigHead{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;padding:.7rem 1rem;border-bottom:1px solid var(--line)}#bigHead h2{margin:0;font-size:1.3rem;flex:1 1 20rem}
#bigA[aria-pressed=true]{background:var(--ex);border-color:var(--ex);color:#fff} /* Anonym (Issue #54) */
#bigList{overflow:auto;flex:1;padding:.6rem 1rem 2rem;font-size:1.25rem;line-height:1.35}
.lg{display:grid;grid-template-columns:11rem 13rem 1fr;gap:.8rem;padding:.55rem .8rem;border-left:6px solid;border-bottom:1px solid var(--line)}.lg .t{color:var(--mut)}
@media(max-width:700px){.lg{grid-template-columns:1fr;gap:.1rem}#bigList{font-size:1.1rem}}
/* Fenster «Ansicht» (Einsatz-App und öffentliche Ansicht); Lage je Seite */
#viewBox{z-index:1200;width:min(290px,calc(100vw - 1.4rem));overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:6px;box-shadow:0 2px 10px #000a;padding:.5rem .7rem .7rem}#viewBox[hidden]{display:none}
#viewBox .vh{display:flex;justify-content:space-between;align-items:center}#viewBox h4{margin:.6rem 0 .2rem;font-size:.8rem;color:var(--mut)}#viewBox label{display:flex;gap:.5rem;align-items:center;padding:.25rem 0}#viewBox .row{margin:.3rem 0}#viewBox .row button{font-size:.82rem;padding:.35rem .4rem}
/* Hinweis «Push ist aus» zuoberst im Menü (Issue #67) */
.pushNag{display:flex;flex-wrap:wrap;gap:.4rem .6rem;align-items:center;justify-content:space-between;margin:0 0 .8rem;padding:.6rem .7rem;border:1px solid var(--alarm);border-radius:8px;background:rgba(255,77,46,.12)}
.pushNag>span:first-child{flex:1 1 14rem}
/* Helikopter (Issue #73): Symbol nach Kurs gedreht, Beschriftung darunter; blass = Position älter als AIR_STALE_S */
.airk{position:relative;width:32px;height:32px}.airk svg{display:block;filter:drop-shadow(0 0 2px #000c)}.airr{transition:transform .4s}
.airk span{position:absolute;left:50%;top:31px;transform:translateX(-50%);white-space:nowrap;font:600 11px/1.25 system-ui,sans-serif;color:#fff;background:rgba(15,36,48,.85);padding:1px 4px;border-radius:3px;pointer-events:none}
.airk.resc span{background:rgba(176,0,16,.9)}.airk.old{opacity:.5}
.airpop{min-width:12rem}.airpop .t{display:block;font-size:.8rem;opacity:.75;margin:.1rem 0 .3rem}.airpop table{border-collapse:collapse;font-size:.85rem}.airpop td{padding:.05rem .5rem .05rem 0;vertical-align:top}.airpop td:first-child{opacity:.7;white-space:nowrap}
/* Toasts statt alert() (toast in common.js) */
#tsts{position:fixed;left:50%;bottom:calc(1.2rem + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:9500;display:grid;gap:.4rem;width:min(420px,calc(100vw - 2rem));pointer-events:none}
.tst{pointer-events:auto;background:var(--panel);border:1px solid var(--line);border-left:6px solid var(--ok);border-radius:6px;padding:.6rem .8rem;box-shadow:0 2px 10px #000b;cursor:pointer;white-space:pre-line;animation:tstIn .2s ease-out;transition:opacity .25s}
.tst.info{border-left-color:var(--ex)}.tst.err{border-left-color:var(--alarm)}.tst.out{opacity:0}
@keyframes tstIn{from{opacity:0;transform:translateY(.6rem)}}
/* AI-Assistent (Issue #111) */
.aiw{display:grid;gap:.6rem}
.aio{min-height:3rem}.aitx{white-space:pre-wrap;line-height:1.45;background:var(--bg);border:1px solid var(--line);border-left:4px solid #a78bfa;border-radius:6px;padding:.7rem .8rem;max-height:55dvh;overflow-y:auto}
.aild{animation:aiPulse 1.2s ease-in-out infinite alternate}@keyframes aiPulse{from{opacity:.45}to{opacity:1}}
.aierr{color:var(--err,#ff6b6b)}.aim{font-size:.8rem}.aih{font-size:.8rem}
.aif{margin:.4rem 0}.aif b{display:block;margin-bottom:.2rem}
button.aib{border-color:#a78bfa88;flex:0 0 auto;width:auto}button.aib.ico{font-size:.8rem;padding:.12rem .45rem;line-height:1.2;min-height:0}button.aib.rdy{border-color:#a78bfa;box-shadow:0 0 0 2px #a78bfa55}
.aibar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;border:1px dashed #a78bfa88;border-radius:6px;padding:.4rem .6rem;margin:.4rem 0}
.aimx{display:grid;gap:.6rem;margin:.4rem 0}.aimf{border:1px solid var(--line);border-radius:8px;padding:.55rem .7rem;display:grid;gap:.5rem}
.aimg h4{margin:0 0 .25rem;font-size:.78rem;color:var(--mut);font-weight:600}.aimr{display:grid;grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));gap:.4rem .6rem}
.aimc{display:grid;gap:.15rem;font-size:.82rem;color:var(--mut);min-width:0}.aimc span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aimc select{width:100%;min-width:0}
.aarlb{display:flex;align-items:center;gap:.4rem;min-height:1.7rem}.aarlb>button.aib{margin-left:auto}
.aichat{border-top:1px solid var(--line);padding-top:.5rem;display:grid;gap:.4rem}.aith{display:grid;gap:.4rem;max-height:45dvh;overflow-y:auto}.aith:empty{display:none}
.aiels{display:grid;gap:.4rem;margin:.3rem 0}.aiel,.dlg label.aiel{display:flex;gap:.5rem;align-items:flex-start;border:1px solid var(--line);border-radius:6px;padding:.4rem .55rem}.aiel input{margin-top:.2rem;flex:0 0 auto}.aiel>span{display:grid;gap:.1rem;min-width:0}.aiel small{font-size:.8rem}.aiel:has(input:disabled){opacity:.65}
.aiq{justify-self:end;max-width:85%;background:#a78bfa22;border:1px solid #a78bfa66;border-radius:10px 10px 2px 10px;padding:.4rem .6rem;white-space:pre-wrap}.aia{margin:0;align-items:center}.aia button{padding:.15rem .5rem;min-height:0;font-size:.8rem}
.aichat textarea{width:100%;resize:vertical}
.aisel{display:flex;flex-wrap:wrap;gap:.35rem;margin:.4rem 0}.aisel button[aria-pressed="true"]{border-color:#a78bfa;box-shadow:0 0 0 2px #a78bfa55}/* Einsatzgruppen (Issue #90): Farbpunkt, Chips, Personensuche im Aufgebot */
.gdot,.gchip i{display:inline-block;width:.7em;height:.7em;border-radius:50%;margin-right:.35em;vertical-align:baseline;border:1px solid #0006}
.gdots{display:inline-flex;gap:.15em;margin-left:.35em;vertical-align:baseline;white-space:nowrap}.gdots .gdot{margin:0} /* Einsatzgruppen beim Namen (Issue #105) */
.gchip{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:.05rem .55rem;margin:.1rem .2rem .1rem 0;white-space:nowrap}.fl .gchip,.inc .fl .gchip,.dlg .fl .gchip{border:0;padding:0;margin:0}
.isel{display:flex;flex-wrap:wrap;gap:.35rem;margin:.3rem 0}.isr{display:grid;gap:.25rem;max-height:13rem;overflow:auto;overscroll-behavior:contain}.isr button{text-align:left}
.isel .lchip,.lchip{display:inline-flex;align-items:center;gap:.3rem;border:1px solid var(--line);border-radius:999px;padding:.1rem .2rem .1rem .6rem}.lchip button{padding:.1rem .45rem;min-height:0;border-radius:999px}.lchip.ro{padding-right:.6rem}
.abschip{display:inline-block;font-size:.8em;padding:.05rem .45rem;border-radius:999px;background:#7c4a0033;border:1px solid #d9822b;color:#ffcf99;white-space:nowrap}
.absrow{display:flex;gap:.5rem;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:.35rem 0}.absrow:first-child{border-top:0}
.lglk{display:block;text-align:center;font-size:.85rem;margin-top:.4rem}header .lglk{display:inline;margin:0;font-size:.8rem}

/* Auswahl der Grundkarte in kleinen Karten der Verwaltung (addBases, #96) */
.basesel select{font-size:.8rem;padding:.2rem .3rem;border:0;border-radius:4px;background:#fff;color:#122;max-width:11rem}
/* AI-Assistent breit mit Spalte rechts (Vorschaukarte bei der Übungsvorbereitung) */
.dlg .card.aip.wide{max-width:min(1500px,100%)}.aimain{display:grid;gap:.6rem;min-width:0}
.aiwide{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start;gap:1rem}.aiside{position:sticky;top:0;display:grid;gap:.3rem;min-width:0}
.aimap{height:min(68dvh,680px);border:1px solid var(--line);border-radius:6px}
.aiql textarea{width:100%;resize:vertical;min-height:3.5rem}
@media(max-width:900px){.aiwide{grid-template-columns:1fr}.aiside{position:static}.aimap{height:45dvh}}
/* AI-Dialoge nutzen die Breite: einspaltig bis 960px breit, mit freien Fragen rechts bis 1300px; der Vorschlag scrollt mit dem Fenster statt in sich */
.dlg .card.aip{max-width:min(960px,100%)}.dlg .card.aip.wide2{max-width:min(1300px,100%)}.aio .aitx{max-height:none}
.aisc .aith{max-height:min(58dvh,640px)}
@media(min-width:901px){.aisc>.aichat{border-top:0;padding-top:0}.aisc{border-left:1px solid var(--line);padding-left:1rem}.aiwide:has(.aisc){grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}}
.aidp{display:grid;gap:.35rem}.aidp label.chk{align-items:flex-start}.aidp label.chk input{margin-top:.15rem}
