:root{--bg: #f5f6f8;--surface: #ffffff;--text: #1c2330;--muted: #667085;--border: #e3e6eb;--brand: #1f4e79;--brand-ink: #ffffff;--sidebar: #16263a;--sidebar-text: #c9d3e0;--sidebar-active: #2a4466;--ok-bg: #e7f6ec;--ok-text: #1d6b3a;--warn-bg: #fff6e0;--warn-text: #7a5300;--err-bg: #fdecec;--err-text: #9b1c1c;--radius: 8px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}h1{font-size:1.5rem;margin:0 0 .75rem}h2{font-size:1.1rem;margin:0 0 .75rem}a{color:var(--brand)}.muted{color:var(--muted)}.small{font-size:.85rem}code{background:#eef1f5;padding:1px 6px;border-radius:4px;font-size:.95rem}.shell{display:flex;min-height:100vh}.sidebar{width:230px;background:var(--sidebar);color:var(--sidebar-text);flex-shrink:0;padding:1rem .75rem}.brand{color:#fff;font-weight:700;font-size:1.15rem;padding:.25rem .5rem 1rem}.nav-section{margin-bottom:.75rem}.nav-heading{text-transform:uppercase;font-size:.7rem;letter-spacing:.06em;opacity:.6;padding:.25rem .5rem}.nav-link{display:block;color:var(--sidebar-text);text-decoration:none;padding:.45rem .5rem;border-radius:6px}.nav-link:hover{background:#ffffff0f}.nav-link.active{background:var(--sidebar-active);color:#fff}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:.75rem;padding:.6rem 1.25rem;background:var(--surface);border-bottom:1px solid var(--border)}.spacer{flex:1}.who{font-weight:500}.badge{background:var(--brand);color:var(--brand-ink);border-radius:999px;padding:2px 10px;font-size:.8rem}.menu-btn{display:none;background:none;border:0;font-size:1.3rem;cursor:pointer}.content{padding:1.5rem;max-width:1200px;width:100%}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;margin-bottom:1rem}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}.tile{text-decoration:none;color:inherit;margin:0;transition:border-color .15s}.tile:hover{border-color:var(--brand)}.tile-section{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.tile-title{font-weight:600;margin:.25rem 0}.btn{border:1px solid transparent;border-radius:6px;padding:.5rem .9rem;font:inherit;cursor:pointer}.btn:disabled{opacity:.6;cursor:default}.btn.primary{background:var(--brand);color:var(--brand-ink)}.btn.ghost{background:transparent;border-color:var(--border);color:var(--text)}.btn.small{padding:.25rem .6rem;font-size:.85rem}label{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem;font-weight:500}input,select{font:inherit;padding:.45rem .6rem;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text);min-width:0}.row{display:flex;gap:.5rem}.row input{flex:1}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.9rem}.form-grid .full{grid-column:1 / -1}.alert{border-radius:6px;padding:.75rem 1rem;margin:.75rem 0;background:#eef1f5}.alert.error{background:var(--err-bg);color:var(--err-text)}.alert.warn{background:var(--warn-bg);color:var(--warn-text)}.alert.ok{background:var(--ok-bg);color:var(--ok-text)}.handover{margin:.5rem 0;line-height:1.8}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:.92rem}.table th,.table td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid var(--border);vertical-align:middle}.table th{color:var(--muted);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table tr.inactive td{opacity:.55}.actions{white-space:nowrap;display:flex;gap:.35rem}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.auth-card{width:100%;max-width:380px;display:flex;flex-direction:column;gap:.9rem}.auth-card h1,.auth-card p{margin:0}@media(max-width:800px){.sidebar{position:fixed;inset:0 auto 0 0;z-index:10;transform:translate(-100%);transition:transform .2s}.sidebar.open{transform:none}.menu-btn{display:block}.content{padding:1rem}.who{display:none}}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182873;z-index:50;display:flex;align-items:flex-start;justify-content:center;padding:5vh 1rem;overflow-y:auto}.modal{background:var(--surface);border-radius:var(--radius);width:100%;max-width:640px;padding:1.25rem;box-shadow:0 10px 30px #0003}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.modal-head h2{margin:0}.modal-foot{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem;grid-column:1 / -1}.modal-foot .left{margin-right:auto}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.page-head h1{margin:0}.page-head p{margin:.25rem 0 0}.filters{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-bottom:.75rem}.filters input[type=search]{min-width:220px}.check{flex-direction:row;align-items:center;gap:.4rem;font-weight:400}.pill{display:inline-block;border-radius:999px;padding:1px 8px;font-size:.75rem;background:#eef1f5;color:var(--muted);white-space:nowrap}.pill.ok{background:var(--ok-bg);color:var(--ok-text)}.pill.warn{background:var(--warn-bg);color:var(--warn-text)}.pill.err{background:var(--err-bg);color:var(--err-text)}.pill.lock{background:#e8ecf6;color:#34446b}.table tr.click{cursor:pointer}.table tr.click:hover td{background:#f7f9fc}.table td.muted,.table tr.muted td{color:var(--muted)}.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;margin-bottom:1rem}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem}.kpi .l{font-size:.8rem;color:var(--muted)}.kpi .v{font-size:1.3rem;font-weight:600;font-variant-numeric:tabular-nums}.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem 1.5rem}.facts span{display:block;font-size:.8rem;color:var(--muted)}.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--border);margin-bottom:1rem;overflow-x:auto}.tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:.5rem .9rem;font:inherit;color:var(--muted);cursor:pointer;white-space:nowrap}.tabs button.on{color:var(--brand);border-bottom-color:var(--brand);font-weight:600}textarea{font:inherit;padding:.45rem .6rem;border:1px solid var(--border);border-radius:6px;min-height:70px;resize:vertical}.strip-card{padding:.75rem}.strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(44px,1fr);gap:4px;overflow-x:auto;padding-bottom:4px}.day{border:1px solid transparent;border-radius:6px;background:#f0f2f5;text-align:center;padding:4px 0;font:inherit;font-size:.72rem;color:var(--muted);cursor:pointer}.day b{display:block;font-size:.95rem;color:var(--text)}.day.we{opacity:.55}.day.part{background:var(--warn-bg)}.day.full{background:var(--ok-bg)}.day.on{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.day.today{box-shadow:inset 0 -3px #c8962e}.day.on.today{box-shadow:0 0 0 1px var(--brand),inset 0 -3px #c8962e}.legend{display:flex;gap:1rem;margin-top:.4rem}.sw{display:inline-block;width:10px;height:10px;border-radius:3px;vertical-align:-1px;margin-right:3px;background:#f0f2f5}.sw.full{background:var(--ok-bg);border:1px solid var(--ok-text)}.sw.part{background:var(--warn-bg);border:1px solid var(--warn-text)}.sw.we{opacity:.55;border:1px solid var(--muted)}.table.att input,.table.att select{padding:.3rem .4rem}.table.att input[type=time]{width:7.5rem}.table tr.changed td{background:#fffbea}.table tfoot td{border-top:2px solid var(--border)}
