:root{color-scheme:light;--surface-page: #f9f9f7;--surface-1: #fcfcfb;--surface-2: #f2f2ee;--surface-raised: #ffffff;--text-primary: #0b0b0b;--text-secondary: #52514e;--text-muted: #898781;--text-inverse: #ffffff;--border-hairline: rgba(11, 11, 11, .1);--grid-line: #e1e0d9;--axis-line: #c3c2b7;--series-1: #2a78d6;--series-2: #eb6834;--series-3: #1baf7a;--ramp-1: #86b6ef;--ramp-2: #5598e7;--ramp-3: #2a78d6;--ramp-4: #1c5cab;--ramp-5: #104281;--status-good: #0ca30c;--status-warning: #fab219;--status-serious: #ec835a;--status-critical: #d03b3b;--status-good-text: #006300;--brand: #1e3a5f;--radius: 10px;--radius-sm: 6px;--shadow-card: 0 1px 2px rgba(11, 11, 11, .04), 0 4px 12px rgba(11, 11, 11, .04);--font: system-ui, -apple-system, "Segoe UI", sans-serif}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--surface-page: #0d0d0d;--surface-1: #1a1a19;--surface-2: #222221;--surface-raised: #202020;--text-primary: #ffffff;--text-secondary: #c3c2b7;--text-muted: #898781;--border-hairline: rgba(255, 255, 255, .1);--grid-line: #2c2c2a;--axis-line: #383835;--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--ramp-1: #9ec5f4;--ramp-2: #6da7ec;--ramp-3: #3987e5;--ramp-4: #256abf;--ramp-5: #184f95;--status-good-text: #0ca30c;--brand: #7aa7d9}}:root[data-theme=dark]{color-scheme:dark;--surface-page: #0d0d0d;--surface-1: #1a1a19;--surface-2: #222221;--surface-raised: #202020;--text-primary: #ffffff;--text-secondary: #c3c2b7;--text-muted: #898781;--border-hairline: rgba(255, 255, 255, .1);--grid-line: #2c2c2a;--axis-line: #383835;--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--ramp-1: #9ec5f4;--ramp-2: #6da7ec;--ramp-3: #3987e5;--ramp-4: #256abf;--ramp-5: #184f95;--status-good-text: #0ca30c;--brand: #7aa7d9}*{box-sizing:border-box}body{margin:0;font-family:var(--font);font-size:14px;line-height:1.5;color:var(--text-primary);background:var(--surface-page);-webkit-font-smoothing:antialiased}.app-shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh}.sidebar{background:var(--surface-1);border-right:1px solid var(--border-hairline);padding:20px 14px;display:flex;flex-direction:column;gap:4px}.sidebar__brand{font-size:18px;font-weight:650;letter-spacing:-.01em;color:var(--text-primary);padding:4px 10px 18px}.sidebar__tenant{font-size:12px;color:var(--text-muted);font-weight:400;display:block}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--radius-sm);color:var(--text-secondary);text-decoration:none;font-weight:500}.nav-item:hover,.nav-item[aria-current=page]{background:var(--surface-2);color:var(--text-primary)}.nav-item__badge{margin-left:auto;font-size:11px;font-weight:600;background:var(--status-critical);color:#fff;border-radius:999px;padding:1px 7px}.main{padding:24px 28px 48px;min-width:0}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.page-title{font-size:22px;font-weight:650;margin:0;letter-spacing:-.01em}.page-subtitle{color:var(--text-secondary);margin:4px 0 0}.card{background:var(--surface-1);border:1px solid var(--border-hairline);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow-card)}.card__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}.card__title{font-size:14px;font-weight:600;margin:0}.card__note{font-size:12px;color:var(--text-muted)}.grid{display:grid;gap:16px}.grid--kpi{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.grid--halves{grid-template-columns:repeat(auto-fit,minmax(380px,1fr))}.stat{background:var(--surface-1);border:1px solid var(--border-hairline);border-radius:var(--radius);padding:16px 18px}.stat__label{font-size:12px;color:var(--text-secondary);margin:0 0 6px;font-weight:500}.stat__value{font-size:26px;font-weight:650;letter-spacing:-.02em;margin:0}.stat__hint{font-size:12px;color:var(--text-muted);margin:6px 0 0}.stat--critical .stat__value{color:var(--status-critical)}.stat--warning .stat__value{color:var(--text-primary)}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;font-weight:600;color:var(--text-secondary);padding:8px 10px;border-bottom:1px solid var(--border-hairline);white-space:nowrap}.table td{padding:9px 10px;border-bottom:1px solid var(--border-hairline)}.table tbody tr:hover{background:var(--surface-2)}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table-scroll{overflow-x:auto}.row--overdue td{background:color-mix(in srgb,var(--status-critical) 8%,transparent)}.row--overdue .cell-emphasis{color:var(--status-critical);font-weight:600}.badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid var(--border-hairline);white-space:nowrap}.badge--expired,.badge--critical{background:color-mix(in srgb,var(--status-critical) 14%,transparent);color:var(--status-critical)}.badge--urgent{background:color-mix(in srgb,var(--status-serious) 18%,transparent);color:var(--status-serious)}.badge--warning{background:color-mix(in srgb,var(--status-warning) 20%,transparent);color:var(--text-primary)}.badge--upcoming{background:var(--surface-2);color:var(--text-secondary)}.badge--ok{background:color-mix(in srgb,var(--status-good) 14%,transparent);color:var(--status-good-text)}.button{font:inherit;font-weight:550;cursor:pointer;padding:8px 14px;border-radius:var(--radius-sm);border:1px solid var(--border-hairline);background:var(--surface-raised);color:var(--text-primary)}.button:hover{background:var(--surface-2)}.button--primary{background:var(--brand);border-color:var(--brand);color:#fff}.button--primary:hover{filter:brightness(1.08)}.button--ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}.button:disabled{opacity:.55;cursor:not-allowed}.input,.select{font:inherit;width:100%;padding:8px 10px;border-radius:var(--radius-sm);border:1px solid var(--border-hairline);background:var(--surface-raised);color:var(--text-primary)}.field{display:grid;gap:5px;margin-bottom:12px}.field label{font-size:12.5px;font-weight:550;color:var(--text-secondary)}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.switch{position:relative;display:inline-flex;align-items:center;gap:9px;cursor:pointer}.switch input{position:absolute;opacity:0;width:0;height:0}.switch__track{width:38px;height:22px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border-hairline);transition:background .12s ease}.switch__thumb{position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:var(--surface-raised);box-shadow:0 1px 2px #00000040;transition:transform .12s ease}.switch input:checked+.switch__track{background:var(--status-good)}.switch input:checked+.switch__track+.switch__thumb{transform:translate(16px)}.switch input:focus-visible+.switch__track{outline:2px solid var(--series-1);outline-offset:2px}.chart-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--text-secondary)}.chart-legend__item{display:inline-flex;align-items:center;gap:6px}.chart-legend__swatch{width:10px;height:10px;border-radius:3px}.chart-tooltip{background:var(--surface-raised);border:1px solid var(--border-hairline);border-radius:var(--radius-sm);padding:9px 11px;font-size:12.5px;box-shadow:var(--shadow-card)}.chart-tooltip__label{font-weight:600;margin-bottom:5px;color:var(--text-primary)}.chart-tooltip__row{display:flex;align-items:center;gap:7px;color:var(--text-secondary)}.chart-tooltip__value{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--text-primary)}.banner{border-radius:var(--radius);padding:12px 14px;margin-bottom:16px;border:1px solid var(--border-hairline);display:flex;gap:10px;align-items:flex-start}.banner--critical{background:color-mix(in srgb,var(--status-critical) 10%,transparent)}.banner--warning{background:color-mix(in srgb,var(--status-warning) 16%,transparent)}.banner--info{background:var(--surface-2)}.empty{padding:36px 16px;text-align:center;color:var(--text-muted)}.muted{color:var(--text-muted)}.mono{font-variant-numeric:tabular-nums}.auth-page{display:grid;place-items:center;min-height:100vh;padding:24px}.auth-card{width:100%;max-width:380px}@media(max-width:860px){.app-shell{grid-template-columns:1fr}.sidebar{flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1px solid var(--border-hairline)}.sidebar__brand{display:none}.main{padding:16px}}
