[hidden]{display:none!important}
:root{--acc:#1d4f86;--acc2:#12304f;--bg:#eef0f3;--card:#fff;--fg:#1b1f26;--mut:#5b6472;--line:#cfd5dd;--line2:#e4e8ed;--ok:#1d6b3e;--bad:#a8231c;--warn:#8a5a00;--head:#f6f7f9;--red:#c8102e;--r:3px}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#13161b;--card:#1b1f26;--fg:#e4e7eb;--mut:#9aa3ae;--line:#323944;--line2:#2a3039;--head:#20252d}}
:root[data-theme=dark]{--bg:#13161b;--card:#1b1f26;--fg:#e4e7eb;--mut:#9aa3ae;--line:#323944;--line2:#2a3039;--head:#20252d}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--fg);font:14px/1.5 "Segoe UI",Arial,Helvetica,sans-serif}
a{color:var(--acc)}
button{font:inherit;cursor:pointer;border:1px solid var(--acc);border-radius:var(--r);padding:6px 14px;background:var(--acc);color:#fff;font-weight:600;letter-spacing:.01em}
button:hover{filter:brightness(1.08)}
button.s{background:var(--card);color:var(--fg);border-color:var(--line);font-weight:500}
button.d{background:var(--bad);border-color:var(--bad)}button.ok{background:var(--ok);border-color:var(--ok)}
button.sm{padding:3px 10px;font-size:12.5px}
button:disabled{opacity:.45;cursor:default;filter:none}
input,select,textarea{font:inherit;color:var(--fg);background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:6px 8px;width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--acc) 45%,transparent);outline-offset:0;border-color:var(--acc)}
input:disabled,select:disabled,textarea:disabled{background:var(--head)}
textarea{min-height:100px;resize:vertical}
input[type=checkbox]{width:auto;accent-color:var(--acc)}
label{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--mut);font-weight:600;text-transform:uppercase;letter-spacing:.03em}
label.cb{flex-direction:row;align-items:center;gap:7px;font-weight:500;color:var(--fg);font-size:13px;text-transform:none;letter-spacing:0}
h1{font-size:21px;margin:0;font-weight:700;letter-spacing:-.01em}h2{font-size:14px;margin:0;font-weight:700;text-transform:uppercase;letter-spacing:.04em}h3{font-size:13px;margin:14px 0 6px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--mut)}
hr{border:0;border-top:1px solid var(--line2)}
.hint{color:var(--mut);font-size:12.5px}
.warn{color:var(--bad)}
.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:10px}
.bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.bar .sp,.sp{flex:1}
.rwr{display:flex;height:5px}.rwr i{flex:1;background:var(--red)}.rwr i:nth-child(2){background:#fff}
/* Seitenkopf */
.phead.bar{justify-content:flex-start;align-items:center}.phead.bar>h1{margin-right:6px}
.phead{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;border-bottom:2px solid var(--fg);padding-bottom:8px;margin-bottom:16px}
.crumb{font-size:11.5px;color:var(--mut);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}.crumb a{color:var(--mut)}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:0 16px 14px;margin-bottom:14px}
.card>:first-child:not(.ctitle){margin-top:14px}
.ctitle{display:flex;align-items:center;gap:10px;margin:0 -16px 12px;padding:9px 16px;background:var(--head);border-bottom:1px solid var(--line);border-left:4px solid var(--acc)}
.ctitle h2{flex:1}
.notice{background:color-mix(in srgb,var(--warn) 10%,var(--card));border:1px solid color-mix(in srgb,var(--warn) 40%,transparent);border-left:4px solid var(--warn);padding:9px 14px;margin-bottom:14px;font-size:13.5px}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:14px}
.tile{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--acc);border-radius:var(--r);padding:10px 14px}
.tile b{display:block;font-size:22px;font-variant-numeric:tabular-nums}.tile span{color:var(--mut);font-size:12px}
.tile.link{cursor:pointer}.tile.link:hover{border-color:var(--acc)}.tile.attn{border-top-color:var(--bad)}
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--mut);text-align:left;padding:7px 8px;background:var(--head);border:1px solid var(--line2);border-width:1px 0}
td{padding:7px 8px;border-bottom:1px solid var(--line2);vertical-align:top}
tr.click{cursor:pointer}tr.click:hover td{background:color-mix(in srgb,var(--acc) 6%,transparent)}
.tag{display:inline-block;font-size:11px;font-weight:700;padding:1px 7px;border-radius:2px;border:1px solid var(--line);color:var(--mut);white-space:nowrap;text-transform:uppercase;letter-spacing:.03em;background:var(--card)}
.tag.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,transparent)}.tag.bad{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,transparent)}.tag.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,transparent)}.tag.acc{color:var(--acc);border-color:color-mix(in srgb,var(--acc) 45%,transparent)}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#9aa4b4;margin-right:6px}.dot.on{background:#1f9d55}
.pager{display:flex;gap:6px;align-items:center;justify-content:flex-end;margin-top:10px;font-size:12.5px;color:var(--mut);flex-wrap:wrap}
/* Anmeldung */
#login{min-height:100vh;display:grid;place-items:center;padding:16px;background:var(--bg)}
#login .box{width:100%;max-width:440px;background:var(--card);border:1px solid var(--line);box-shadow:0 8px 30px rgba(0,0,0,.08)}
.lhead{display:flex;gap:12px;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}
.lhead b{display:block;font-size:16px}.parent{font-size:11.5px;color:var(--mut);text-transform:uppercase;letter-spacing:.05em}.sys{font-size:12px;color:var(--mut)}
.lbody{padding:18px 20px}.lbody h2{margin-bottom:12px}
.lfoot{background:var(--head);border-top:1px solid var(--line);padding:10px 20px;font-size:12px;color:var(--mut)}.lfoot .rp{margin-top:4px;font-size:11px}
.seal{width:44px;height:44px;border:2px solid var(--acc);color:var(--acc);display:grid;place-items:center;font-weight:800;font-size:12px;letter-spacing:.02em;flex:none;background:var(--card);border-radius:2px}
.tabs{display:flex;gap:0;margin:0 0 12px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.tabs button{flex:1;border:0;border-radius:0}.tabs button:not(.on){background:var(--card);color:var(--fg);font-weight:500}
/* Rahmen */
#hdr{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}
#hdr .hin{display:flex;align-items:center;gap:12px;padding:8px 20px}
#hdrAuth b{display:block;font-size:15px}#hdrAuth .sys{font-size:12px}
.vsnd{background:var(--acc2);color:#fff;font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:3px 20px}
#body{display:flex;min-height:calc(100vh - 90px)}
#side{width:230px;flex:none;background:var(--card);border-right:1px solid var(--line);padding:10px 0;display:flex;flex-direction:column;position:sticky;top:90px;height:calc(100vh - 90px);overflow:auto}
#side .grp{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:var(--mut);margin:12px 18px 4px;font-weight:700}
#side a{color:var(--fg);text-decoration:none;padding:6px 18px;font-size:13.5px;border-left:3px solid transparent}
#side a:hover{background:var(--head)}#side a.on{border-left-color:var(--acc);background:color-mix(in srgb,var(--acc) 9%,transparent);font-weight:600;color:var(--acc)}
.sidefoot{font-size:10.5px;color:var(--mut);text-transform:uppercase;letter-spacing:.06em;padding:10px 18px 4px}
#main{flex:1;min-width:0;padding:20px 26px 10px;max-width:1240px}
#foot{font-size:11px;color:var(--mut);border-top:1px solid var(--line);margin-top:24px;padding-top:8px}
#menuBtn{display:none}
.who{font-size:12.5px;color:var(--mut);text-align:right}.who b{color:var(--fg)}
.news{border-bottom:1px solid var(--line2);padding:10px 0}.news:last-child{border:0}.news h3{margin:0 0 3px;font-size:14px;text-transform:none;letter-spacing:0;color:var(--fg)}
.news.unacked{border-left:3px solid var(--warn);padding-left:10px}
.pre{white-space:pre-wrap}
.doc h1,.doc h2,.doc h3{margin:12px 0 6px;text-transform:none;letter-spacing:0;color:var(--fg)}.doc ul{margin:6px 0;padding-left:20px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid2>.card{margin-bottom:0}.grid2{margin-bottom:14px}
.kv{display:grid;grid-template-columns:170px 1fr;gap:3px 10px;font-size:13.5px}.kv>span:nth-child(odd){color:var(--mut)}
#dlg{position:fixed;inset:0;background:rgba(15,20,28,.55);display:flex;align-items:flex-start;justify-content:center;padding:40px 14px;z-index:50;overflow:auto}
#dlg .win{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--acc);width:100%;max-width:840px;padding:18px 20px;box-shadow:0 20px 60px rgba(0,0,0,.35)}
#dlg .win.sm{max-width:460px}
#dlg header{display:flex;align-items:center;gap:10px;margin-bottom:12px;border-bottom:1px solid var(--line2);padding-bottom:8px}#dlg header h2{margin:0;flex:1}
#toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:#1b1f26;color:#fff;padding:9px 16px;border-radius:var(--r);z-index:60;font-size:13px;box-shadow:0 8px 30px rgba(0,0,0,.3);border-left:4px solid var(--ok)}
#toast.bad{border-left-color:#ff6b5e}
.pick{position:relative}.pick .opts{position:absolute;left:0;right:0;top:100%;background:var(--card);border:1px solid var(--line);z-index:5;max-height:220px;overflow:auto;box-shadow:0 8px 24px rgba(0,0,0,.15)}
.pick .opts div{padding:7px 10px;cursor:pointer;font-size:13px}.pick .opts div:hover{background:var(--head)}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;align-items:center}.chip{background:var(--head);border:1px solid var(--line);border-radius:2px;padding:2px 4px 2px 8px;font-size:12.5px;display:flex;align-items:center;gap:6px}
.chip button{padding:0 6px;background:transparent;color:var(--mut);border:0}
.roster-day{border-top:1px solid var(--line2);padding:8px 0}.roster-day b{display:block;margin-bottom:4px}
.perms{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:4px 14px}
/* Lagezentrum */
.inc{border:1px solid var(--line);border-left:5px solid var(--acc);padding:10px 12px;margin-bottom:10px;background:var(--card)}.inc.p2{border-left-color:#d08b00}.inc.p3{border-left-color:var(--bad);background:color-mix(in srgb,var(--bad) 4%,var(--card))}
.fms{display:inline-grid;place-items:center;width:22px;height:22px;font-weight:800;font-size:12px;color:#fff;background:#6b7380;border-radius:2px}
.fms.s1,.fms.s2{background:#1d6b3e}.fms.s3,.fms.s4{background:#b26a00}.fms.s7,.fms.s8{background:#1d4f86}.fms.s5{background:#7a3db8}.fms.s6{background:#555}.fms.s0{background:var(--bad)}
.fmsbar{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}.fmsbtn{display:flex;gap:8px;align-items:center;text-align:left;padding:6px 8px}.fmsbtn b{font-size:16px;min-width:16px}.fmsbtn span{font-size:12px}
.fmsbtn.on{border-color:var(--acc);background:color-mix(in srgb,var(--acc) 12%,var(--card))}
.log{max-height:220px;overflow:auto;font-size:12.5px;border-left:2px solid var(--line);padding-left:10px;margin-top:6px}
/* Statistik */
.bars{display:grid;gap:6px}.brow{display:grid;grid-template-columns:minmax(120px,38%) 1fr 70px;gap:8px;align-items:center;font-size:12.5px}.brow b{text-align:right;font-variant-numeric:tabular-nums}
.btrack{height:12px;background:var(--head);border:1px solid var(--line2)}.bfill{height:100%;background:var(--acc)}
.danger1{border-left:4px solid var(--warn)}.danger2{border-left:4px solid #e67e22}.danger3{border-left:4px solid var(--bad)}
.mxwrap{overflow:auto;max-height:70vh;border:1px solid var(--line)}
table.matrix{border-collapse:separate;border-spacing:0;font-size:12.5px;width:max-content;min-width:100%}
table.matrix th,table.matrix td{border-bottom:1px solid var(--line2);border-right:1px solid var(--line2);padding:5px 8px;background:var(--card)}
table.matrix thead th{position:sticky;top:0;z-index:2;background:var(--head);vertical-align:bottom;height:110px}
table.matrix thead th span{writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;font-size:11.5px}
table.matrix tbody th{position:sticky;left:0;z-index:1;text-align:left;min-width:170px;font-weight:600}
table.matrix thead th:first-child{left:0;z-index:3;text-align:left}
table.matrix td{text-align:center;font-size:15px;color:var(--line);cursor:default}table.matrix td[title]{cursor:pointer}
td.q-ok{color:var(--ok)!important}td.q-soon{color:var(--warn)!important;background:color-mix(in srgb,var(--warn) 8%,var(--card))!important}td.q-exp{color:var(--bad)!important;background:color-mix(in srgb,var(--bad) 7%,var(--card))!important}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.cwd{background:var(--head);font-size:11px;font-weight:700;text-transform:uppercase;padding:4px 6px;color:var(--mut)}
.cday{background:var(--card);min-height:78px;padding:4px 5px;display:flex;flex-direction:column;gap:2px;overflow:hidden}.cday.off{background:var(--head)}
.cday b{font-size:12px}.cday.today b{background:var(--acc);color:#fff;border-radius:2px;padding:0 5px;align-self:flex-start}.cday.has{cursor:pointer}.cday.has:hover{background:color-mix(in srgb,var(--acc) 6%,var(--card))}
.cev{font-size:11px;line-height:1.3;padding:1px 4px;border-left:3px solid var(--acc);background:var(--head);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cev.k-lehrgang{border-color:var(--ok)}.cev.k-dienst{border-color:var(--mut)}.cev.k-besprechung,.cev.k-einsatz{border-color:var(--bad)}.cev.k-uebung{border-color:var(--warn)}
.calrow .bar{gap:6px}
.qbox{border:1px solid var(--line);border-radius:var(--r);padding:8px 12px 10px;margin:0 0 12px}.qbox legend{font-size:11.5px;font-weight:700;color:var(--mut);text-transform:uppercase;padding:0 4px}
label.opt{flex-direction:row;align-items:flex-start;gap:8px;text-transform:none;letter-spacing:0;font-size:14px;font-weight:400;color:var(--fg);padding:6px 8px;border:1px solid var(--line2);border-radius:var(--r);margin:4px 0;cursor:pointer}
label.opt:hover{border-color:var(--acc)}label.opt input{margin-top:3px;width:auto;flex:none}.opts2{margin:6px 0 10px}
.timer{position:fixed;right:18px;bottom:18px;z-index:50;background:var(--acc);color:#fff;font-weight:700;padding:9px 14px;border-radius:var(--r);font-variant-numeric:tabular-nums;box-shadow:0 4px 14px rgba(0,0,0,.25)}.timer.low{background:var(--bad)}
.result{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-left:5px solid;margin-bottom:12px;background:var(--head)}.result b{font-size:20px}.result.ok{border-color:var(--ok)}.result.ok b{color:var(--ok)}.result.bad{border-color:var(--bad)}.result.bad b{color:var(--bad)}
.news.good{border-left:3px solid var(--ok);padding-left:10px}.news.badl{border-left:3px solid var(--bad);padding-left:10px}
.strike{text-decoration:line-through;color:var(--mut)}
.applylink{margin-top:14px;padding-top:12px;border-top:1px solid var(--line2);font-size:13.5px}
h2.sub{margin:20px 0 10px;color:var(--mut)}.brow.mine span:first-child{font-weight:700}
details.card>summary{cursor:pointer;list-style:none}details.card>summary::before{content:'▸ ';color:var(--mut)}details.card[open]>summary::before{content:'▾ '}
label.cb.chip{padding:3px 8px;text-transform:none;letter-spacing:0;font-weight:500;color:var(--fg);font-size:12.5px}
#dlg2{position:fixed;inset:0;background:rgba(15,20,28,.45);display:flex;align-items:flex-start;justify-content:center;padding:60px 14px;z-index:60;overflow:auto}
#dlg2 .win{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--acc);width:100%;max-width:840px;padding:18px 20px;box-shadow:0 20px 60px rgba(0,0,0,.4)}
#dlg2 .win.sm{max-width:480px}#dlg2 header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:10px}
#dlg .win.xl,#dlg2 .win.xl{max-width:1000px}
.pdfview{width:100%;height:70vh;border:1px solid var(--line);background:#525659;display:block}
.mail{display:grid;grid-template-columns:230px 1fr;gap:14px;align-items:start}
.mside{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.mbox{border-bottom:1px solid var(--line2)}.mbox:last-child{border:0}
.mbox a{display:block;color:var(--fg);text-decoration:none;position:relative}
.mbh{padding:9px 12px}.mbh b{font-size:13px}.mbh .hint{font-size:11px;word-break:break-all}
.mbox.on .mbh{background:color-mix(in srgb,var(--acc) 8%,var(--card));border-left:3px solid var(--acc);padding-left:9px}
.mfold{padding:2px 0 6px}.mfold a{padding:5px 12px 5px 22px;font-size:13px}.mfold a.on{font-weight:700;color:var(--acc)}.mfold a:hover,.mbh:hover{background:var(--head)}
.cnt{position:absolute;right:10px;top:8px;background:var(--acc);color:#fff;font-size:11px;font-weight:700;border-radius:9px;padding:0 7px;line-height:18px}.mfold .cnt{top:5px}
.mmain{min-width:0}.unr{font-weight:700}.prev{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:520px}
button.star{background:none;border:0;color:var(--mut);padding:0 4px;font-size:16px}button.star.on{color:#c79200}
.mhead{border-bottom:1px solid var(--line2);padding-bottom:10px;margin-bottom:10px}.mhead h2{text-transform:none;letter-spacing:0;font-size:18px;margin:0 0 8px}
.matt{margin:0 0 12px}.mbody{font-size:14px;line-height:1.55;white-space:pre-wrap;word-break:break-word}
.applylink a{white-space:nowrap}
.sitebar{background:color-mix(in srgb,var(--warn) 14%,var(--card));border-bottom:1px solid color-mix(in srgb,var(--warn) 40%,transparent);color:var(--fg);padding:7px 20px;font-size:13px}
.sitebar.bad{background:color-mix(in srgb,var(--bad) 14%,var(--card));border-color:color-mix(in srgb,var(--bad) 40%,transparent)}
.lbody .sitebar{margin:0 0 12px;border:1px solid color-mix(in srgb,var(--warn) 40%,transparent);border-radius:var(--r);padding:8px 12px}
.result.warn{border-color:var(--warn)}.result.warn b{color:var(--warn)}.result span{color:var(--fg)}
.fld{display:flex;flex-direction:column;gap:3px}.flab{font-size:11.5px;color:var(--mut);font-weight:600;text-transform:uppercase;letter-spacing:.03em}
@media print{#hdr,#side,#foot,.bar button,.pager{display:none!important}.mxwrap{max-height:none;overflow:visible}#main{padding:0}.card{border:0}}
@media (max-width:860px){
  .mail{grid-template-columns:1fr}.prev{max-width:220px}.pdfview{height:60vh}
  .cday{min-height:46px}.cev{display:none}.cday.has b::after{content:' •';color:var(--acc)}
  #side{position:fixed;left:-260px;top:0;z-index:40;transition:left .2s;width:250px;height:100vh}
  #app.menu #side{left:0;box-shadow:0 0 40px rgba(0,0,0,.4)}
  #menuBtn{display:inline-block}
  #hdr .hin{padding:8px 12px}#hdr .seal{display:none}.who{display:none}
  #main{padding:12px}
  .grid2{grid-template-columns:1fr}
  .kv{grid-template-columns:120px 1fr}
  table.cards thead{display:none}
  table.cards tr{display:block;border:1px solid var(--line);margin-bottom:8px;background:var(--card)}
  table.cards td{display:flex;gap:10px;border:0;padding:4px 10px}
  table.cards td::before{content:attr(data-l);color:var(--mut);font-size:11px;min-width:96px;flex:none;text-transform:uppercase}
}
