:root{--bg: #0f172a;--surface: #1e293b;--surface-2: #334155;--text: #e2e8f0;--muted: #94a3b8;--accent: #38bdf8;--error: #f87171;--positive: #4ade80;--radius: 10px;color-scheme:dark}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:1rem;padding:.6rem 1.25rem;background:var(--surface);border-bottom:1px solid var(--surface-2);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:.5rem;font-weight:700;order:0}.nav-panel{order:1;flex:1;display:flex;align-items:center;gap:1rem}.nav{display:flex;gap:.4rem;flex:1;flex-wrap:wrap}.nav a{color:var(--muted);text-decoration:none;padding:.4rem .75rem;border-radius:var(--radius);white-space:nowrap}.nav a.active{color:var(--text);background:var(--surface-2)}.nav a:hover{color:var(--text)}.nav-actions{display:flex;align-items:center;gap:.5rem}.status-dot{order:2;width:10px;height:10px;border-radius:999px;flex:none}.status-dot.online{background:var(--positive);box-shadow:0 0 0 3px #4ade802e}.status-dot.offline{background:var(--error);box-shadow:0 0 0 3px #f871712e}.nav-toggle{display:none;order:3;background:transparent;color:var(--text);border:1px solid var(--surface-2);border-radius:8px;font-size:1.1rem;line-height:1;padding:.35rem .6rem}.nav-backdrop{display:none}@media (max-width: 768px){.nav-toggle{display:block}.status-dot{margin-left:auto}.nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:15;background:#00000073}.nav-panel{order:5;display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:.25rem;background:var(--surface);border-bottom:1px solid var(--surface-2);padding:.5rem;z-index:21;box-shadow:0 8px 20px #00000059;max-height:calc(100vh - 52px);overflow-y:auto}.nav-panel.open{display:flex}.nav{flex-direction:column;gap:.15rem}.nav a{padding:.75rem .85rem;font-size:1rem}.nav-actions{justify-content:space-between;border-top:1px solid var(--surface-2);margin-top:.35rem;padding-top:.6rem}}.content{padding:1.5rem;max-width:960px;width:100%;margin:0 auto}h1{font-size:1.5rem;margin:0 0 1rem}h2{font-size:1.1rem;margin:2rem 0 .75rem;color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem}.card{background:var(--surface);border-radius:var(--radius);padding:1.25rem;display:flex;flex-direction:column;gap:.25rem}.card-value{font-size:2rem;font-weight:700;color:var(--accent)}.card-label{color:var(--muted);font-size:.9rem}.list{list-style:none;padding:0;margin:0}.list li{display:flex;justify-content:space-between;padding:.6rem .25rem;border-bottom:1px solid var(--surface-2)}.form{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;background:var(--surface);padding:1rem;border-radius:var(--radius)}.form input,.form select{background:var(--bg);color:var(--text);border:1px solid var(--surface-2);border-radius:8px;padding:.5rem .6rem;font-size:.9rem}.form button,button{background:var(--accent);color:#04263a;border:0;font-weight:600;border-radius:8px;padding:.5rem 1rem;cursor:pointer}.form button:hover{filter:brightness(1.08)}.table{width:100%;border-collapse:collapse;font-size:.9rem}.table th,.table td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid var(--surface-2)}.table th{color:var(--muted);font-weight:600}.muted{color:var(--muted);font-size:.85rem}.error{color:var(--error)}.warn{color:#fbbf24}.positive{color:var(--positive)}.tabs{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}.tab{background:var(--surface);color:var(--muted);border:1px solid var(--surface-2);padding:.4rem .9rem;border-radius:999px;font-size:.85rem}.tab.active{background:var(--accent);color:#04263a;border-color:var(--accent)}.badge{font-size:.7rem;padding:.15rem .5rem;border-radius:999px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.badge-ok{background:#4ade8026;color:var(--positive)}.badge-warn{background:#fbbf2426;color:#fbbf24}.badge-error{background:#f8717126;color:var(--error)}.badge-muted{background:var(--surface-2);color:var(--muted)}button.small{padding:.25rem .6rem;font-size:.8rem}button.ghost{background:transparent;color:var(--muted);border:1px solid var(--surface-2)}button.ghost:hover{color:var(--text)}.cb{display:inline-flex;align-items:center;gap:.35rem;color:var(--muted);font-size:.85rem}.ap-card{background:var(--surface);border-radius:var(--radius);margin-bottom:.6rem;overflow:hidden}.ap-head{display:flex;align-items:center;gap:.6rem;padding:.8rem 1rem;cursor:pointer}.ap-head:hover{background:var(--surface-2)}.ap-toggle{color:var(--muted);width:1rem}.ap-detail{padding:0 1rem 1rem}.status-box{margin:.5rem 0}.status-box p{margin:.2rem 0;font-size:.85rem}.actions{margin-top:.8rem;display:flex;align-items:center;gap:.5rem}.besetzen{display:flex;flex-direction:column;gap:.35rem}.besetzen-period{display:flex;gap:.3rem;flex-wrap:wrap}.besetzen-period input{padding:.3rem;font-size:.8rem;background:var(--bg);color:var(--text);border:1px solid var(--surface-2);border-radius:6px}.cand{display:flex;align-items:center;gap:.5rem}.cand span:first-child{min-width:8rem}.user-name{white-space:nowrap;color:var(--muted);text-decoration:none;font-size:.85rem}.user-name:hover{color:var(--text)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.login-card{background:var(--surface);border-radius:var(--radius);padding:2rem;width:100%;max-width:340px;display:flex;flex-direction:column;gap:.75rem}.login-brand{font-size:1.4rem;margin-bottom:.25rem}.login-card input{background:var(--bg);color:var(--text);border:1px solid var(--surface-2);border-radius:8px;padding:.6rem .7rem;font-size:.95rem}.login-card button{padding:.6rem;font-size:.95rem;margin-top:.25rem}.ze-head{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.ze-head h1{margin:0}.ze-head select{background:var(--surface);color:var(--text);border:1px solid var(--surface-2);border-radius:8px;padding:.45rem .6rem;font-size:.9rem}.ze-weeknav{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:.75rem 0}.ze-range{min-width:10rem}.ze-weektotal{margin-left:auto;color:var(--muted)}.ze-weektotal strong{color:var(--accent);font-size:1.05rem}.ze-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--surface-2);border-radius:var(--radius)}.ze-grid{border-collapse:collapse;width:100%;min-width:640px;font-size:.85rem}.ze-grid th,.ze-grid td{border-bottom:1px solid var(--surface-2);padding:.3rem .4rem;text-align:center}.ze-grid th.ze-label,.ze-grid td.ze-label{position:sticky;left:0;z-index:2;text-align:left;background:var(--surface);min-width:8.5rem;max-width:11rem;box-shadow:1px 0 0 var(--surface-2)}.ze-grid thead th{background:var(--surface);position:sticky;top:0}.ze-day{min-width:3rem;line-height:1.1;font-weight:600}.ze-today{color:var(--accent)}.ze-sum{font-weight:700;min-width:3rem}.ze-desc{min-width:11rem;text-align:left}.ze-desc input{width:100%;background:var(--bg);color:var(--text);border:1px solid var(--surface-2);border-radius:6px;padding:.35rem .45rem;font-size:.8rem}.ze-cell{padding:.2rem}.ze-drag{width:3.1rem;margin:0 auto;text-align:center;background:var(--bg);color:var(--text);border:1px solid var(--surface-2);border-radius:6px;padding:.55rem .2rem;font-size:.92rem;font-variant-numeric:tabular-nums;cursor:ns-resize;-webkit-user-select:none;user-select:none;touch-action:none}.ze-drag.empty{color:var(--muted)}.ze-drag:focus{outline:none;border-color:var(--accent)}.ze-drag.active{border-color:var(--accent);background:#38bdf824;box-shadow:0 0 0 2px #38bdf84d}.ze-totalrow td{background:#38bdf814;font-weight:700}.ze-section td{text-align:left;background:var(--surface-2);color:var(--muted);font-weight:600;text-transform:uppercase;font-size:.72rem;letter-spacing:.04em}.ze-sublabel{font-size:.72rem}.ze-x{background:none;border:none;color:var(--muted);cursor:pointer;padding:0 .2rem;font-size:.75rem}.ze-x:hover{color:var(--error)}.ze-add select{background:var(--bg);color:var(--muted);border:1px dashed var(--surface-2);border-radius:6px;padding:.35rem .5rem;font-size:.8rem}.ze-add td{text-align:left}.ze-actions{display:flex;align-items:center;gap:.75rem;margin:1rem 0 .5rem}.util{display:flex;align-items:center;gap:.6rem}.util-track{flex:1;height:12px;background:var(--surface-2);border-radius:6px;display:flex;overflow:hidden}.util-fill{height:100%}.util-over{height:100%;background:repeating-linear-gradient(45deg,var(--error),var(--error) 4px,#b91c1c 4px,#b91c1c 8px)}.timeline{display:flex;flex-direction:column;gap:.4rem;margin-top:.5rem}.tl-row{display:flex;align-items:center;gap:.75rem}.tl-label{width:12rem;font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl-track{position:relative;flex:1;height:18px;background:var(--surface);border-radius:4px}.tl-bar{position:absolute;top:3px;height:12px;background:var(--accent);border-radius:3px;min-width:3px}.tree{margin-top:.5rem}.tree-row{display:flex;align-items:center;gap:.5rem;padding:.3rem 0;border-bottom:1px solid var(--surface)}.tree-row-main{flex:1}.tw{cursor:pointer;-webkit-user-select:none;user-select:none}.tw:hover{color:var(--accent)}.tree-children{margin-left:1.25rem;padding-left:.5rem;border-left:2px solid var(--surface-2)}.lvl-1 .tree-row-main,.lvl-2 .tree-row-main,.lvl-3 .tree-row-main,.lvl-4 .tree-row-main{font-size:.9rem}.inline-add{display:flex;flex-wrap:wrap;gap:.35rem;padding:.4rem 0;align-items:center}.inline-add input,.inline-add select{background:var(--bg);color:var(--text);border:1px solid var(--surface-2);border-radius:6px;padding:.3rem .45rem;font-size:.8rem}
