:root{--font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-size-2xs: 10px;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-md: 13px;--font-size-lg: 14px;--font-size-xl: 16px;--font-size-2xl: 20px;--font-size-3xl: 26px;--font-size-4xl: 30px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.65;--letter-spacing-tight: -.01em;--letter-spacing-overline: .08em;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius: 14px;--radius-lg: 18px;--radius-md: 12px;--radius-sm: 9px;--radius-xs: 6px;--radius-pill: 999px;--focus-width: 2px;--focus-offset: 1px;--focus-ring: var(--accent);--control-height-sm: 32px;--control-height-md: 38px;--control-height-lg: 48px;--control-pad-x: 12px;--rail: #eef2f8}:root[data-theme=dark]{--rail: #141517}:root,:root[data-theme=light]{color-scheme:light;--bg: #f3f6fa;--surface: #ffffff;--card: var(--surface);--surface-2: #f7f9fc;--card-soft: var(--surface-2);--surface-3: #eef3f9;--card-2: var(--surface-3);--border: #dfe6ef;--border-strong: #c4cedd;--muted-decor: #c4cedd;--text: #172b47;--foreground: var(--text);--text-2: #51627a;--muted: var(--text-2);--muted-foreground: var(--text-2);--text-3: #5d6e86;--brand-900: #152d50;--brand-700: #2459a6;--brand-500: #3474d5;--brand-100: #eaf1fc;--accent: #2459a6;--accent-strong: #1d4a8c;--accent-soft: #eaf1fc;--on-accent: #ffffff;--selection: #b6cdf0;--selection-soft: var(--accent-soft);--selection-strong: var(--brand-500);--ok: #21734c;--ok-bg: #e8f4ed;--warn: #875b0d;--warn-bg: #fff3d9;--err: #ae303b;--err-bg: #fbecef;--success: var(--ok);--success-bg: var(--ok-bg);--shadow-sm: 0 1px 2px rgb(20 40 70 / 5%);--shadow-md: 0 8px 24px rgb(20 40 70 / 10%);--chart-1: #2459a6;--chart-2: #3474d5;--chart-3: #6ea8e8;--chart-4: #21734c;--chart-5: #875b0d;--chart-6: #ae303b;--chart-grid: #dfe6ef;--chart-axis: #51627a}:root[data-theme=dark]{color-scheme:dark;--bg: #101112;--surface: #18191b;--card: var(--surface);--surface-2: #202124;--card-soft: var(--surface-2);--surface-3: #26282b;--card-2: var(--surface-3);--border: #34363a;--border-strong: #4a4d52;--muted-decor: #4a4d52;--text: #e9ebee;--foreground: var(--text);--text-2: #a9adb4;--muted: var(--text-2);--muted-foreground: var(--text-2);--text-3: #8a8f98;--brand-900: #c7d8ff;--brand-700: #9db9ff;--brand-500: #7aa2f7;--brand-100: #2b3b58;--accent: #9db9ff;--accent-strong: #c7d8ff;--accent-soft: rgb(122 162 247 / 17%);--on-accent: #0b1224;--selection: #9db9ff;--selection-soft: var(--accent-soft);--selection-strong: var(--brand-500);--ok: #7bd3a1;--ok-bg: #18352b;--warn: #f2c878;--warn-bg: #3a2f1c;--err: #ff9aa5;--err-bg: #3a2328;--success: var(--ok);--success-bg: var(--ok-bg);--shadow-sm: 0 1px 2px rgb(0 0 0 / 28%);--shadow-md: 0 12px 32px rgb(0 0 0 / 45%);--chart-1: #9db9ff;--chart-2: #7aa2f7;--chart-3: #c7d8ff;--chart-4: #7bd3a1;--chart-5: #f2c878;--chart-6: #ff9aa5;--chart-grid: #2b2d30;--chart-axis: #a9adb4}:root{font-family:var(--font-family);font-size:13px;color:var(--text)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:var(--font-size-md)}button,input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}button{cursor:pointer;font-weight:var(--font-weight-medium);padding:8px 14px}button:hover{background:var(--surface-2);border-color:var(--border-strong)}button.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}button.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}button:disabled{opacity:.45;cursor:not-allowed}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}button:focus-visible,[tabindex]:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:1px}input,select{padding:8px 10px}input::placeholder{color:var(--text-3)}label{font-size:var(--font-size-sm);color:var(--text-2);display:block}.filters label,.field>label,.check{gap:6px}.filters label{display:flex;flex-direction:column}.shell{display:flex;min-height:100dvh}aside.sidebar{width:230px;flex:none;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;padding:14px 18px 16px}.brand-mark{width:40px;height:40px;flex:none;display:flex;align-items:center;justify-content:center}.brand-mark svg{width:100%;height:100%;object-fit:contain;display:block}.brand-name{display:flex;flex-direction:column;gap:1px}.brand-word{font-size:13.5px;font-weight:var(--font-weight-bold);letter-spacing:.02em}.brand-sub{font-size:10.5px;font-weight:var(--font-weight-medium);color:var(--text-2)}.logo-dark{display:none}:root[data-theme=dark] .logo-dark{display:block}:root[data-theme=dark] .logo-light{display:none}.workspace-label{padding:12px 20px 6px;font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--text-3)}nav{padding:4px 12px 16px;overflow-y:auto}nav button{position:relative;display:flex;align-items:center;gap:11px;width:100%;min-height:40px;color:var(--text-2);padding:6px 10px;margin:2px 0;border:0;background:none;text-align:left;border-radius:var(--radius-sm)}nav button:hover{background:var(--surface-2);color:var(--text)}nav button.active{background:var(--accent-soft);color:var(--accent);font-weight:var(--font-weight-semibold)}nav button.active:before{content:"";position:absolute;left:-12px;top:9px;bottom:9px;width:3px;border-radius:3px;background:var(--accent)}nav svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}.sidefoot{padding:20px 18px;color:var(--text-2);font-size:var(--font-size-xs);margin-top:auto}.sidefoot small{color:var(--text-3);display:block;margin-top:6px;line-height:1.6}.main-col{flex:1;min-width:0;display:flex;flex-direction:column}header.topbar{height:60px;min-height:60px;padding:0 26px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.header-location{display:flex;flex-direction:column;gap:2px;font-size:var(--font-size-sm);color:var(--text-3)}.header-location b{font-size:15px;font-weight:var(--font-weight-semibold);color:var(--text)}.header-controls{display:flex;gap:12px;align-items:center}.user-chip{font-size:var(--font-size-sm);color:var(--text-2)}.theme-toggle{width:34px;height:34px;padding:0;display:flex;align-items:center;justify-content:center;color:var(--text-2);flex:none}.theme-toggle svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.5}main{padding:26px 32px 56px;max-width:1240px;width:100%;margin:0 auto}.compact-table th:nth-child(n+4):not(:last-child),.compact-table td:nth-child(n+4):not(:last-child){text-align:center}.compact-table .mini-split{justify-content:center}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:10px;font-weight:var(--font-weight-bold);color:var(--text-3)}h1{font-size:var(--font-size-4xl);letter-spacing:-.6px;margin:10px 0 6px}h2{font-size:var(--font-size-xl);margin:0}h3{font-size:var(--font-size-lg);margin:0 0 12px}p{color:var(--text-2);line-height:1.6;margin:8px 0 16px}.muted,small{color:var(--text-2)}.heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px;flex-wrap:wrap}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.panel,.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card{padding:21px}.card .value{font-size:32px;letter-spacing:-1px;margin:13px 0 7px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0}.panelhead{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.panelbody{padding:16px 18px}.grid2{display:grid;grid-template-columns:1.2fr 1fr;gap:16px;align-items:start}.badge{display:inline-block;padding:4px 10px;border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);white-space:nowrap}.badge.good{background:var(--ok-bg);color:var(--ok)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.bad{background:var(--err-bg);color:var(--err)}.badge.neutral{background:var(--surface-3);color:var(--text-2)}.notice{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 18px;color:var(--text-2);margin:14px 0;line-height:1.6}.notice.warning{background:var(--warn-bg);border-color:var(--border);color:var(--warn)}.notice.warning b{color:var(--warn)}table{width:100%;border-collapse:collapse;font-size:var(--font-size-md)}th{text-align:left;font-weight:var(--font-weight-semibold);font-size:var(--font-size-xs);color:var(--text-3);background:var(--surface-2);padding:12px 14px;border-bottom:1px solid var(--border)}td{padding:10px 14px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:top}tr:hover td{background:var(--surface-2)}.tablewrap{overflow:auto}.sumrow td{background:var(--surface-2);font-weight:var(--font-weight-semibold)}.empty{color:var(--text-2);text-align:center;padding:24px}.period-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 20px;margin-bottom:20px;flex-wrap:wrap}.period-bar strong{font-size:var(--font-size-sm)}.filters{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;margin:16px 0}.compact-filters{background:var(--surface);padding:16px;border:1px solid var(--border);border-radius:var(--radius-sm)}.compact-filters input{min-width:180px}.tabs{display:flex;gap:6px;align-items:center}.view-label,.show-label{font-size:var(--font-size-xs);color:var(--text-3);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.08em;margin-right:2px}.tabs button,.quick-tabs button{background:var(--surface);border:1px solid var(--border);color:var(--text-2);border-radius:var(--radius-pill);padding:7px 14px;font-weight:var(--font-weight-medium);box-shadow:var(--shadow-sm)}.tabs button:hover,.quick-tabs button:hover{background:var(--surface-2);border-color:var(--border-strong);color:var(--text)}.tabs button.active,.quick-tabs button.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent);font-weight:var(--font-weight-semibold);box-shadow:none}.quick-tabs{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.quick-tabs button{padding:6px 12px;font-size:var(--font-size-sm)}.mini-split{display:flex;gap:4px;flex-wrap:wrap}.bu-chip{font-size:10px;padding:4px 6px;border-radius:var(--radius-xs);white-space:nowrap;background:var(--surface-3);color:var(--text-2);border:1px solid var(--border)}.more-bus{padding:3px 7px;font-size:10px;background:var(--accent-soft);color:var(--accent);border:1px dashed var(--border-strong);border-radius:var(--radius-xs)}.other-total{background:var(--accent-soft);border:0;color:var(--accent);padding:6px 10px}.error-text{color:var(--err)!important}.wide-grid{max-height:570px;overflow:auto}.wide-grid table{min-width:100%;width:max-content;border-collapse:separate;border-spacing:0}.wide-grid th,.wide-grid td{min-width:106px}.wide-grid th{position:sticky;top:0;z-index:3}.wide-grid th:nth-child(1),.wide-grid td:nth-child(1){min-width:36px;width:36px;position:sticky;left:0;background:var(--surface)}.wide-grid th:nth-child(1){z-index:5;background:var(--surface-2)}.wide-grid th:nth-child(2),.wide-grid td:nth-child(2){position:sticky;left:36px;min-width:210px;max-width:210px;box-shadow:2px 0 3px #102f290f;border-right:1px solid var(--border);background:var(--surface)}.wide-grid th:nth-child(2){z-index:5;background:var(--surface-2)}.wide-grid .all-total{position:sticky;right:0;min-width:125px;background:var(--surface-2);z-index:2;box-shadow:-2px 0 3px #102f290f;border-left:1px solid var(--border)}.wide-grid th.all-total{z-index:5;background:var(--surface-2)}.grid-input{width:72px;padding:6px 8px}.grid-input:focus-visible{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.column-checks{display:grid;grid-template-columns:1fr 1fr;gap:6px}.column-checks .check{display:flex;align-items:center;gap:8px}.equal-months{table-layout:fixed;width:100%}.equal-months th:not(:first-child),.equal-months td:not(:first-child){text-align:center;overflow-wrap:anywhere}.pagination{padding:14px 18px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-xs);color:var(--text-2);gap:10px;flex-wrap:wrap}dialog.drawer{position:fixed;inset:0 0 0 auto;margin:0;height:100dvh;max-height:100dvh;width:640px;max-width:95vw;border:1px solid var(--border);border-radius:0;padding:26px;overflow:auto;background:var(--surface);color:var(--text);box-shadow:var(--shadow-md)}dialog::backdrop{background:#00000073}.drawer-top,.drawer-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px}.drawer-bottom{margin-top:24px;position:sticky;bottom:-26px;background:var(--surface);padding:18px 0;border-top:1px solid var(--border)}.drawer th,.drawer td{padding:12px 8px}.drawer input.allocation{width:72px}.footnote{font-size:var(--font-size-xs);color:var(--text-3);line-height:1.6}.steps{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.step{border:1px solid var(--border-strong);color:var(--text-3);padding:8px 14px;border-radius:var(--radius-pill);font-size:var(--font-size-xs)}.step.on{border-color:var(--accent);color:var(--accent)}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--text);color:var(--bg);padding:12px 20px;border-radius:var(--radius-sm);box-shadow:var(--shadow-md);display:none;z-index:100;max-width:80vw}.login-wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card{width:380px;max-width:92vw;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:32px}.login-card .brand{padding:0 0 18px}.field{margin-bottom:14px}.field input{width:100%}.field>label{margin-bottom:6px}@media(max-width:1000px){aside.sidebar{width:200px}main{padding:22px}.cards{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}}@media(max-width:700px){.shell{flex-direction:column}aside.sidebar{width:100%;border-right:0;border-bottom:1px solid var(--border)}nav{display:flex;overflow-x:auto;padding:4px 8px}nav button{white-space:nowrap;width:auto}nav button.active:before{display:none}.workspace-label,.sidefoot{display:none}header.topbar{padding:10px 12px;height:auto;flex-wrap:wrap}main{padding:20px 12px}.cards{grid-template-columns:1fr}h1{font-size:var(--font-size-3xl)}dialog.drawer{width:100vw}}
