:root{color-scheme:light;--page: #f9f9f7;--surface-1: #fcfcfb;--text-primary: #0b0b0b;--text-secondary: #52514e;--muted: #898781;--grid: #e1e0d9;--baseline: #c3c2b7;--border: rgba(11, 11, 11, .1);--series-1: #2a78d6;--series-2: #eb6834;--status-good: #0ca30c;--status-warning: #fab219;--status-critical: #d03b3b;--accent: #2a78d6}@media (prefers-color-scheme: dark){:root{color-scheme:dark;--page: #0d0d0d;--surface-1: #1a1a19;--text-primary: #ffffff;--text-secondary: #c3c2b7;--muted: #898781;--grid: #2c2c2a;--baseline: #383835;--border: rgba(255, 255, 255, .1);--series-1: #3987e5;--series-2: #d95926;--accent: #3987e5}}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--page);color:var(--text-primary);font-size:14px;line-height:1.5}a{color:var(--accent);text-decoration:none}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;border-bottom:1px solid var(--border);background:var(--surface-1)}.topbar h1{font-size:16px;margin:0}.container{max-width:1100px;margin:0 auto;padding:24px}.card{background:var(--surface-1);border:1px solid var(--border);border-radius:8px;padding:16px;margin-bottom:16px}.card h2{font-size:14px;font-weight:600;margin:0 0 12px;color:var(--text-secondary)}table{width:100%;border-collapse:collapse}th{text-align:left;font-weight:600;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:8px 12px;border-bottom:1px solid var(--grid)}td{padding:10px 12px;border-bottom:1px solid var(--grid);color:var(--text-primary)}tr.clickable{cursor:pointer}tr.clickable:hover td{background:color-mix(in srgb,var(--accent) 6%,transparent)}.numeric{font-variant-numeric:tabular-nums}.status{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary)}.status .dot{width:8px;height:8px;border-radius:50%;flex:none}.status.online .dot{background:var(--status-good)}.status.stale .dot{background:var(--status-warning)}.status.offline .dot{background:var(--muted)}button{font:inherit;padding:8px 14px;border-radius:6px;border:1px solid var(--border);background:var(--accent);color:#fff;cursor:pointer}button.secondary{background:transparent;color:var(--text-primary)}button:disabled{opacity:.55;cursor:default}input{font:inherit;padding:8px 10px;border-radius:6px;border:1px solid var(--baseline);background:var(--surface-1);color:var(--text-primary);width:100%}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-box{width:320px;display:flex;flex-direction:column;gap:12px}.error{color:var(--status-critical);font-size:13px}.detail-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}.meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px 24px}.meta-grid .label{font-size:12px;color:var(--muted)}.charts{display:grid;grid-template-columns:1fr;gap:16px}@media (min-width: 900px){.charts{grid-template-columns:1fr 1fr}}.range-picker{display:inline-flex;gap:4px}.range-picker button{background:transparent;color:var(--text-secondary);border:1px solid transparent;padding:4px 10px}.range-picker button.active{border-color:var(--baseline);color:var(--text-primary)}.tabs{display:flex;gap:4px;margin-bottom:12px}.tabs button{background:transparent;color:var(--text-secondary);border:1px solid transparent}.tabs button.active{border-color:var(--baseline);color:var(--text-primary)}.scroll-table{max-height:420px;overflow-y:auto}.muted{color:var(--muted)}.tile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.tile{border:1px solid var(--border);border-radius:8px;padding:10px 12px}.tile .label{font-size:12px;color:var(--muted)}.tile .value{font-size:20px;font-weight:600}.tile .value.alert:after{content:" ⚠"}.tile .value.alert,.backup-old{color:var(--status-critical)}.level{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);white-space:nowrap}.level .dot{width:8px;height:8px;border-radius:50%;flex:none}.level.critical .dot{background:var(--status-critical)}.level.warning .dot{background:var(--status-warning)}.level.info .dot{background:var(--muted)}
