: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],input[type=email],input:not([type]){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}.zl th,.zl td{min-width:150px}.zl th:first-child,.zl td:first-child{min-width:170px}.zl-skala{position:relative;height:13px;margin-top:2px;font-weight:400}.zl-skala span{position:absolute;font-size:10px;color:var(--muted);transform:translate(-50%)}.zl-track{height:26px;border-left:0;background:transparent;cursor:default}.zl-track[role=button]{cursor:pointer}.zl-track .bar{font-size:10px;padding:4px 3px;top:3px;bottom:3px;z-index:1}.zl-track .bar.unpub{box-shadow:inset 3px 0 0 var(--warn)}.zl-offen{position:absolute;top:0;bottom:0;background:var(--surface2);border-radius:2px}.zl-abs{position:absolute;top:3px;right:0;bottom:3px;left:0;background:var(--abs);color:#fff;font-size:11px;border-radius:3px;padding:3px 6px;opacity:.85;z-index:1}.zl-cov td{background:var(--surface)}.zl-besetzung svg{width:100%;height:34px;display:block}.zl-fehlt{color:var(--crit);font-size:11px;font-weight:600;line-height:1.25;margin-top:2px}.zl-meldung{margin:8px 12px;padding:8px 10px;border-left:3px solid var(--crit);background:var(--accent-soft);font-size:13px}.zl-min input{width:46px;padding:1px 4px;font:inherit}button.zl-fehlt{display:block;background:none;border:0;padding:0;text-align:left;cursor:pointer;font:inherit;font-size:11px;font-weight:600;text-decoration:underline dotted}.zl-angefragt{color:var(--warn)}.zl-erledigt{color:var(--muted)}.zl-besetzt{color:var(--ok)}.kand{display:flex;flex-direction:column;gap:6px;max-height:260px;overflow:auto}.kand .k{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:5px;padding:6px 8px}.kand .k>div{flex:1;min-width:0}.wahl{display:flex;flex-direction:column;gap:6px}.wahl label{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--fg)}.regeln{display:flex;flex-direction:column;gap:6px}.regel{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px}.regel input[type=time]{width:110px}.regel input[type=number]{width:60px}.tagwahl{display:inline-flex;gap:2px}.tagwahl button{border:1px solid var(--line);background:var(--surface);border-radius:4px;padding:2px 6px;cursor:pointer;font-size:12px;color:var(--muted)}.tagwahl button[aria-pressed=true]{background:var(--fg);color:var(--bg)}.anfrage{padding:8px 12px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:4px;font-size:13px}.dlg textarea{font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--fg)}.druckkopf{display:none}@media print{@page{size:A4 landscape;margin:9mm}html:root:not(.x):not(.y){--bg:#fff;--surface:#fff;--surface2:#eef0f2;--line:#c9ced3;--fg:#111;--muted:#4a545d;--accent:#b3122e;--accent-soft:#f8e3e6;--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,.12) 6px 12px);color-scheme:light}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}body{background:#fff;font-size:10px;padding:0;margin:0}header.top,nav.tabs,.tbar,aside.side,.toast,.ov,.err,.noprint,.add,.zl-meldung .muted{display:none!important}.druckkopf{display:flex;justify-content:space-between;gap:12px;font-size:11px;border-bottom:1px solid #999;padding-bottom:4px;margin-bottom:6px}.layout{display:block}.panel{border:0;border-radius:0}.scroll{overflow:visible}table.grid,table.list,.tl{min-width:0!important;width:100%}.grid thead th{position:static}thead{display:table-header-group}tr,.tlrow{break-inside:avoid}.zl th,.zl td{min-width:0}.zl th:first-child,.zl td:first-child{width:105px}.grid th,.grid td{padding:2px 3px}.empmeta,.zl-skala span{font-size:8px}.zl-track .bar{font-size:7px;padding:2px 1px}.sh{font-size:9px}button.zl-fehlt,.zl-fehlt{font-size:8px;text-decoration:none}select,input{border:0;background:none;-moz-appearance:none;appearance:none;-webkit-appearance:none;padding:0}.legend{font-size:8px}}.sh.fremd,.track .bar.fremd{color:var(--fg)}.frm input:not([type=checkbox]):not([type=radio]):not([type=color]),.frm select{width:100%;box-sizing:border-box;color:var(--fg)}.frm label.sw{flex-direction:row;align-items:center;color:var(--fg);font-size:13px}.dlg.breit{width:min(640px,100%)}input[type=color]{width:60px;height:32px;padding:2px;border:1px solid var(--line);border-radius:5px;background:var(--surface)}.rol .cell{min-height:44px}.sh.kurz:before{content:"!";position:absolute;top:1px;right:14px;font-weight:700;font-size:11px;line-height:13px;width:13px;text-align:center;border-radius:50%;background:var(--warn);color:#fff}.sh.k24h:before{background:var(--crit)}.stempeluhr .stempelknoepfe{display:flex;gap:10px;flex-wrap:wrap}.stempeluhr .stempelknoepfe .btn{flex:1 1 140px;min-height:56px;font-size:17px;font-weight:600}.nurzeit{display:flex;flex-direction:column;gap:14px;max-width:760px;margin:0 auto;padding:0 0 24px}.nurzeit .panel{margin:0 12px}.stempeluhr .stempelliste{display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--line);padding-top:8px}@media (max-width:600px){.nurzeit .panel{margin:0 8px}.nurzeit .ph{flex-wrap:wrap;gap:6px}}
