:root{--bg:#f5f6f7;--surface:#ffffff;--surface2:#eef0f2;--line:#d9dde1;--fg:#1d2329;--muted:#5d6872;--accent:#b3122e;--accent-soft:#f8e3e6;--focus:#1f5fbf;--ok:#2f7d4f;--warn:#a76300;--crit:#b3122e;--a-arb:#2e7d8c;--a-akt:#8a5a00;--a-heim:#6b4fa3;--a-imp:#b03a7a;--a-pdl:#3c6fb6;--a-not:#283a8f;--a-sch:#9a6b12;--a-team:#4b6b3a;--abs:#9aa3ab;--guest-bg:repeating-linear-gradient(135deg,transparent 0 6px,rgba(0,0,0,.07) 6px 12px);--font-body:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;--r:6px}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg:#14181c;--surface:#1c2227;--surface2:#242b31;--line:#343d45;--fg:#e6e9ec;--muted:#9aa5ae;--accent:#ff6b81;--accent-soft:#3a1e24;--focus:#7fb0ff;--ok:#5fc287;--warn:#f0a73a;--crit:#ff6b81;--a-arb:#3f9fb0;--a-akt:#b07d1c;--a-heim:#8b70c6;--a-imp:#d0609b;--a-pdl:#5b8fd8;--a-not:#5868c4;--a-sch:#bd8c2c;--a-team:#6d9157;--abs:#5b646c;--guest-bg:repeating-linear-gradient(135deg,transparent 0 6px,rgba(255,255,255,.12) 6px 12px);color-scheme:dark}}:root[data-theme=dark]{--bg:#14181c;--surface:#1c2227;--surface2:#242b31;--line:#343d45;--fg:#e6e9ec;--muted:#9aa5ae;--accent:#ff6b81;--accent-soft:#3a1e24;--focus:#7fb0ff;--ok:#5fc287;--warn:#f0a73a;--crit:#ff6b81;--a-arb:#3f9fb0;--a-akt:#b07d1c;--a-heim:#8b70c6;--a-imp:#d0609b;--a-pdl:#5b8fd8;--a-not:#5868c4;--a-sch:#bd8c2c;--a-team:#6d9157;--abs:#5b646c;--guest-bg:repeating-linear-gradient(135deg,transparent 0 6px,rgba(255,255,255,.12) 6px 12px);color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:14px;line-height:1.45;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:16px 40px}h1,h2,h3{margin:0;text-wrap:balance}h1{font-size:20px;font-weight:700;letter-spacing:-.01em}h2{font-size:15px;font-weight:600}.mono,.t{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}button,select,input{font:inherit;color:inherit}button:focus-visible,select:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus);outline-offset:2px}header.top{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between;margin-bottom:14px}.brand{display:flex;gap:12px;align-items:center}.logo{width:34px;height:34px;border-radius:8px;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:700;font-size:18px;flex:none}.tbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:8px;margin-bottom:14px}.tbar .sp{flex:1}select,input[type=time],input[type=text],input[type=number],input[type=password],input[type=date]{background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:6px 8px;min-width:0}.seg{display:inline-flex;border:1px solid var(--line);border-radius:5px;overflow:hidden}.seg button{background:transparent;border:0;padding:6px 11px;cursor:pointer;color:var(--muted)}.seg button[aria-pressed=true]{background:var(--fg);color:var(--bg)}.btn{background:var(--surface2);border:1px solid var(--line);border-radius:5px;padding:6px 11px;cursor:pointer}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}:root[data-theme=dark] .btn.primary{color:#1a0b0e}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .btn.primary{color:#1a0b0e}}.layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px;align-items:start}@media (max-width:980px){.layout{grid-template-columns:minmax(0,1fr)}}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);min-width:0}.panel>.ph{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);flex-wrap:wrap}.scroll{overflow-x:auto}table.grid{border-collapse:collapse;width:100%;min-width:860px}.grid th,.grid td{border-bottom:1px solid var(--line);padding:4px;vertical-align:top}.grid thead th{font-size:12px;font-weight:600;color:var(--muted);text-align:left;padding:8px 6px;position:sticky;top:0;background:var(--surface)}.grid thead th.hol{color:var(--accent)}.grid td.emp{width:190px;padding:6px 8px}.grid tr.grp td{background:var(--surface2);font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;color:var(--muted);padding:5px 8px}.empname{font-weight:600;display:flex;gap:6px;align-items:center}.empmeta{font-size:12px;color:var(--muted)}.cell{min-height:44px;display:flex;flex-direction:column;gap:3px;border-radius:5px;cursor:pointer;padding:2px}.cell:hover{background:var(--surface2)}.cell .add{font-size:12px;color:var(--muted);opacity:0;padding:10px 4px}.cell:hover .add,.cell:focus-visible .add{opacity:1}.sh{border-radius:4px;padding:3px 6px;color:#fff;font-size:12px;line-height:1.3;position:relative}.sh .t{font-size:11.5px;font-weight:600}.sh .s{opacity:.92;font-size:11px}.sh.guest{background-image:var(--guest-bg)}.sh.manual:after{content:"";position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 0 1.5px #00000059}.sh.away{background:var(--surface2);color:var(--muted);border:1px dashed var(--line)}.abs{background:var(--abs);color:#fff;border-radius:4px;padding:3px 6px;font-size:12px;font-weight:600}.chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:1px 6px;border-radius:99px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}.chip.home{border-color:transparent;background:var(--surface2);color:var(--fg);font-weight:600}.sumcell{font-size:12px;text-align:right;white-space:nowrap}.pos{color:var(--ok)}.neg{color:var(--crit)}.legend{display:flex;flex-wrap:wrap;gap:6px 12px;padding:10px 12px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-2px;margin-right:4px}.tl{min-width:820px;padding:8px 12px 12px}.tlrow{display:grid;grid-template-columns:170px 1fr;align-items:center;min-height:30px}.tlrow .nm{font-size:13px;font-weight:600;padding-right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track{position:relative;height:24px;border-left:1px solid var(--line)}.track .hr{position:absolute;top:0;bottom:0;border-left:1px dashed var(--line)}.track .bar{position:absolute;top:2px;bottom:2px;border-radius:4px;color:#fff;font-size:11px;padding:3px 6px;white-space:nowrap;overflow:hidden;cursor:pointer;margin:0;border:0;display:block;text-align:left;font-family:var(--font-mono)}.track .pz{position:absolute;top:2px;bottom:2px;background:var(--surface);opacity:.75;border-radius:2px}.tlhead .track{height:18px;border-left:0}.tlhead .lbl{position:absolute;font-size:11px;color:var(--muted);transform:translate(-50%)}.tlgrp{font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;color:var(--muted);margin:10px 0 2px}.cover{display:grid;grid-template-columns:170px 1fr;margin-top:12px;align-items:end}.cover svg{width:100%;height:90px;display:block}.warn{display:flex;gap:8px;padding:9px 12px;border-bottom:1px solid var(--line);font-size:13px}.warn:last-child{border-bottom:0}.dot{width:8px;height:8px;border-radius:50%;margin-top:6px;flex:none}.dot.d-crit{background:var(--crit)}.dot.d-warn{background:var(--warn)}.dot.d-ok{background:var(--ok)}.dot.d-info{background:var(--muted)}.side{display:flex;flex-direction:column;gap:14px}table.list{border-collapse:collapse;width:100%;min-width:700px;font-size:13px}.list th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.list td{padding:7px 10px;border-bottom:1px solid var(--line)}.list td.r,.list th.r{text-align:right}.meter{height:6px;background:var(--surface2);border-radius:3px;overflow:hidden;min-width:80px}.meter b{display:block;height:100%;background:var(--a-arb)}.ov{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:grid;place-items:center;padding:16px;z-index:20}.dlg{background:var(--surface);border:1px solid var(--line);border-radius:8px;width:min(440px,100%);padding:16px;display:flex;flex-direction:column;gap:12px;max-height:100%;overflow:auto}.frm{display:grid;grid-template-columns:1fr 1fr;gap:10px}.frm label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.frm .full{grid-column:1/-1}.row{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--fg);color:var(--bg);padding:10px 16px;border-radius:6px;font-size:13px;z-index:30;max-width:calc(100% - 32px)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:14px;overflow-x:auto}.tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:8px 12px;cursor:pointer;color:var(--muted);font-weight:600;white-space:nowrap}.tabs button[aria-selected=true]{color:var(--fg);border-color:var(--accent)}.rot{display:grid;grid-template-columns:70px repeat(6,minmax(0,1fr));gap:4px;min-width:720px;padding:12px}.rot .h{font-size:12px;color:var(--muted);font-weight:600}.note{font-size:12px;color:var(--muted);padding:10px 12px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.sh.unpub{box-shadow:inset 3px 0 0 var(--warn)}.sw{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:13px}.err{background:var(--accent-soft);color:var(--accent);border-radius:var(--r);padding:10px 12px;margin-bottom:14px}.empty{padding:24px 12px;color:var(--muted);text-align:center}.badge{font-size:10px;padding:0 5px;border-radius:99px;background:var(--surface2);color:var(--muted);font-weight:600}
