:root{--font:"Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;--bg:#eef1f4;--surface:#fff;--surface-2:#f7f9fa;--ink:#16232e;--ink-2:#566573;--muted:#8a98a6;--line:#e2e7ec;--line-strong:#d2dae0;--accent:#0b6e6a;--accent-bright:#009b8a;--accent-soft:#e2f1ef;--vacant:#9aa7b4;--good:#2e8b57;--warn:#9a6b08;--crit:#b23a2c;--shadow:0 1px 2px rgba(22,35,46,.06),0 6px 20px rgba(22,35,46,.06)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.45;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.wrap{max-width:1200px;margin:0 auto;padding:22px 24px 56px}.topbar{justify-content:space-between;gap:16px;padding:12px 24px;background:var(--surface);border-bottom:1px solid var(--line)}.brand,.topbar{display:flex;align-items:center}.brand{gap:12px}.logo{width:40px;height:40px;border-radius:10px;background:linear-gradient(150deg,var(--accent-bright),var(--accent));display:grid;place-items:center;color:#fff;font-weight:700;font-size:15px;letter-spacing:.5px}.brand h1{font-size:16px;margin:0;font-weight:650}.brand p{margin:1px 0 0;font-size:11.5px;color:var(--ink-2)}.nav{display:flex;gap:6px;align-items:center}.nav a{padding:7px 12px;border-radius:8px;color:var(--ink-2);font-size:13.5px;font-weight:500}.nav a:hover{background:var(--surface-2);text-decoration:none}.nav a.active{background:var(--accent-soft);color:var(--accent)}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 18px;box-shadow:var(--shadow)}.grid{display:grid;grid-gap:14px;gap:14px}.kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}h2.section{font-size:15px;font-weight:640;margin:8px 0 12px}.kpi .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--ink-2);font-weight:600}.kpi .val{font-size:30px;font-weight:680;letter-spacing:-1px;line-height:1.1;margin-top:6px}.kpi.accent .val{color:var(--accent)}.kpi .foot{font-size:11.5px;color:var(--muted);margin-top:4px}.btn{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;font-weight:600;padding:10px 16px;border-radius:9px;border:1px solid transparent;background:var(--accent);color:#fff}.btn:hover{background:var(--accent-bright)}.btn.ghost{background:var(--surface);color:var(--ink-2);border-color:var(--line-strong)}.btn.ghost:hover{border-color:var(--accent);color:var(--accent)}.btn:disabled{opacity:.55;cursor:not-allowed}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:12.5px;font-weight:600;color:var(--ink-2)}.field input,.field select{padding:10px 12px;border:1px solid var(--line-strong);border-radius:9px;font-size:14px;font-family:inherit;background:var(--surface);color:var(--ink)}.field input:focus,.field select:focus{outline:none;border-color:var(--accent)}.login-wrap{min-height:100vh;display:grid;place-items:center;background:var(--bg)}.login-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px 26px;box-shadow:var(--shadow)}.login-card .logo{width:52px;height:52px;border-radius:13px;font-size:18px;margin:0 auto 14px}.login-card h1{text-align:center;font-size:19px;margin:0 0 4px}.login-card p.sub{text-align:center;font-size:13px;color:var(--muted);margin:0 0 22px}.err{background:var(--crit);color:#fff;font-size:13px;padding:9px 12px;border-radius:8px;margin-bottom:14px}table{width:100%;border-collapse:collapse;font-size:12.5px}thead th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:600;padding:0 10px 9px}tbody td,thead th{border-bottom:1px solid var(--line)}tbody td{padding:9px 10px;color:var(--ink-2)}tbody tr:last-child td{border-bottom:none}.right{text-align:right}.pill{display:inline-flex;font-size:10.5px;font-weight:600;padding:3px 9px;border-radius:999px}.pill.crit{background:#f6e1dd;color:var(--crit)}.pill.warn{background:#f6ecd5;color:var(--warn)}.pill.good{background:#e6f1ea;color:var(--good)}.orglist{display:flex;flex-direction:column;gap:8px}.orgrow{display:grid;grid-template-columns:150px 1fr 62px;align-items:center;grid-gap:10px;gap:10px}.oname{font-size:11.5px;color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis}.oname,.track{overflow:hidden}.track{height:15px;border-radius:5px;background:var(--surface-2);border:1px solid var(--line);display:flex}.track .occ{height:100%;background:var(--accent-bright)}.track .vac{height:100%;background:var(--vacant)}.ort{font-size:11.5px;color:var(--ink-2);text-align:right}.ort b{color:var(--ink);font-weight:640}.stripe-crit{border-left:4px solid var(--crit)}.stripe-warn{border-left:4px solid var(--warn)}.stripe-accent{border-left:4px solid var(--accent-bright)}.fbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 24px;background:var(--accent-soft);border-bottom:1px solid var(--line)}.fbar .flead{font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--accent);font-weight:700}.fchip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--accent);background:var(--surface);border:1px solid var(--accent);border-radius:999px;padding:4px 6px 4px 11px}.fchip .fdim{font-weight:400;opacity:.75;font-size:10px;text-transform:uppercase;letter-spacing:.4px}.fchip .fx{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;color:#fff;background:var(--accent);font-size:12px;line-height:1}.fchip .fx:hover{text-decoration:none;background:var(--crit)}.fclear{font-size:11.5px;font-weight:600;color:var(--crit);margin-left:auto}.rowlink{color:inherit;display:contents}.orgrow.clk{cursor:pointer;border-radius:6px}.orgrow.clk:hover{background:var(--surface-2)}.dlegend .li.clk{cursor:pointer;border-radius:5px;padding:2px 3px}.dlegend .li.clk:hover{background:var(--surface-2)}.dlegend .li.on,.orgrow.on{background:var(--accent-soft)}.tabs{display:flex;gap:2px;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--line)}.tabs a{padding:12px 16px;font-size:13.5px;font-weight:600;color:var(--ink-2);border-bottom:2px solid transparent;margin-bottom:-1px}.tabs a:hover{color:var(--accent);text-decoration:none}.tabs a.active{color:var(--accent);border-bottom-color:var(--accent)}.donutwrap{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.donut{position:relative;flex:0 0 auto}.donut .center{position:absolute;inset:0;display:grid;place-items:center;text-align:center;pointer-events:none}.donut .center b{font-size:24px;font-weight:680;letter-spacing:-1px;display:block;line-height:1}.donut .center span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}.dlegend{display:flex;flex-direction:column;gap:7px;flex:1 1;min-width:220px}.dlegend .li{display:grid;grid-template-columns:12px 1fr 46px 40px;grid-gap:8px;gap:8px;align-items:center;font-size:12px}.dlegend .li i{width:11px;height:11px;border-radius:3px}.dlegend .li .nm{color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dlegend .li .oc{color:var(--ink);font-weight:640;text-align:right}.dlegend .li .va{color:var(--muted);font-size:11px;text-align:right}.dlegend .li.head{font-size:9.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:11.5px;color:var(--ink-2)}.legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:6px;vertical-align:-1px}.stack{height:26px;border-radius:7px;overflow:hidden;display:flex;border:1px solid var(--line)}.stack>span{height:100%}.stacklegend{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:8px 18px;gap:8px 18px;margin-top:12px;font-size:12px;color:var(--ink-2)}.stacklegend .li{display:flex;align-items:center;gap:7px}.stacklegend .li i{width:11px;height:11px;border-radius:3px;flex:0 0 auto}.stacklegend .li b{color:var(--ink);font-weight:640;margin-left:auto}.trend{display:flex;align-items:flex-end;gap:6px;height:160px;padding-top:8px}.tcol{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:5px;justify-content:flex-end;min-width:0;height:100%}.tcol .tb{width:100%;max-width:26px;border-radius:5px 5px 0 0;background:var(--accent-bright)}.tcol .yr{font-size:9.5px;color:var(--muted)}.tcol .tv{font-size:9.5px;font-weight:640;color:var(--accent)}