:root{--page:#f9f9f7;--surface-1:#fcfcfb;--text-primary:#0b0b0b;--text-secondary:#52514e;--text-muted:#898781;--gridline:#e1e0d9;--baseline:#c3c2b7;--border:hsla(0,0%,4%,.1);--series-1:#2a78d6;--series-2:#1baf7a;--series-3:#eda100;--series-4:#008300;--status-good:#0ca30c;--status-warning:#fab219;--status-serious:#ec835a;--status-critical:#d03b3b}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--page);color:var(--text-primary);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;line-height:1.45}a{color:inherit;text-decoration:none}button{font:inherit}.shell{display:flex;min-height:100vh}.sidebar{width:220px;flex-shrink:0;border-right:1px solid var(--border);background:var(--surface-1);padding:16px 12px;display:flex;flex-direction:column;gap:4px}.sidebar-brand{font-weight:700;font-size:15px;padding:4px 10px 14px}.sidebar-link{display:block;padding:7px 10px;border-radius:6px;color:var(--text-secondary)}.sidebar-link:hover{background:var(--page)}.sidebar-link.active{background:#eef4fc;color:var(--series-1);font-weight:600}.main{flex:1 1;min-width:0;display:flex;flex-direction:column}.header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 24px;border-bottom:1px solid var(--border);background:var(--surface-1)}.header-title{font-size:15px;font-weight:600}.header-meta{display:flex;align-items:center;gap:12px;font-size:13px}.env-badge,.header-meta{color:var(--text-secondary)}.env-badge{padding:2px 8px;border-radius:999px;border:1px solid var(--border);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.env-badge.env-production{color:var(--status-critical);border-color:var(--status-critical)}.signout-button{border:1px solid var(--border);background:transparent;border-radius:6px;padding:4px 10px;cursor:pointer;color:var(--text-secondary)}.content{padding:20px 24px 40px;display:flex;flex-direction:column;gap:16px}.panel{background:var(--surface-1);border:1px solid var(--border);border-radius:10px;padding:16px}.panel-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}.panel-title{font-size:14px;font-weight:600;margin:0}.panel-subtitle{color:var(--text-muted);font-size:12px}.metric-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:12px;gap:12px}.metric-card{background:var(--surface-1);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.metric-label{color:var(--text-secondary);font-size:12px;margin-bottom:6px}.metric-value{font-size:26px;font-weight:650;line-height:1.1}.metric-detail{color:var(--text-muted);font-size:12px;margin-top:6px}.panel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));grid-gap:16px;gap:16px}.filter-bar{flex-wrap:wrap;gap:8px}.filter-bar,.filter-group{display:flex;align-items:center}.filter-group{gap:6px}.filter-label{color:var(--text-muted);font-size:12px}.filter-chip{border:1px solid var(--border);background:var(--surface-1);border-radius:999px;padding:4px 12px;cursor:pointer;color:var(--text-secondary);font-size:13px}.filter-chip.active{background:#eef4fc;border-color:var(--series-1);color:var(--series-1);font-weight:600}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th{text-align:left;color:var(--text-muted);font-weight:500;padding:6px 10px;white-space:nowrap}.data-table td,.data-table th{border-bottom:1px solid var(--gridline)}.data-table td{padding:7px 10px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.data-table tr:last-child td{border-bottom:none}.table-scroll{overflow-x:auto}.state-block{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:160px;color:var(--text-muted);text-align:center}.state-block button{border:1px solid var(--border);background:var(--surface-1);border-radius:6px;padding:5px 14px;cursor:pointer;color:var(--text-secondary)}.skeleton{min-height:160px;border-radius:8px;background:linear-gradient(100deg,var(--page) 40%,var(--gridline) 50%,var(--page) 60%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}@keyframes shimmer{to{background-position:-200% 0}}.staleness-banner{border:1px solid var(--status-warning);background:#fff8e8;color:#6b4d00;border-radius:8px}.hypothetical-banner,.staleness-banner{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:13px}.hypothetical-banner{border:1px solid #4a3aa7;background:#f2f0fb;color:#322a6b;border-radius:8px;font-weight:600}.hypothetical-block{border-left:3px solid #4a3aa7;padding-left:12px;margin-top:8px}.status-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-card{background:var(--surface-1);border:1px solid var(--border);border-radius:12px;padding:32px;width:360px;display:flex;flex-direction:column;gap:8px}.login-card h1{margin:0;font-size:20px}.login-subtitle{color:var(--text-muted);margin:0 0 12px}.login-card form{display:flex;flex-direction:column;gap:8px}.login-card label{font-size:12px;color:var(--text-secondary)}.login-card input{border:1px solid var(--baseline);border-radius:6px;padding:8px 10px;font:inherit}.login-card button{margin-top:6px;border:none;border-radius:6px;padding:9px 10px;background:var(--series-1);color:#fff;font-weight:600;cursor:pointer}.login-card button:disabled{opacity:.6;cursor:default}.login-error{color:var(--status-critical);font-size:13px}.notice{border:1px solid var(--border);background:var(--surface-1);border-radius:8px;padding:10px 14px;color:var(--text-secondary);font-size:13px}.muted{color:var(--text-muted);font-size:12px}.panel-note{color:var(--text-secondary);font-size:12px;margin:0 0 12px;padding:8px 10px;background:var(--page);border-left:2px solid var(--baseline)}.availability-action{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.availability-action input{flex:1 1 160px;min-width:120px;padding:4px 6px;border:1px solid var(--border);border-radius:3px}.availability-action button,.availability-action input{font:inherit;font-size:12px;color:var(--text-primary);background:var(--surface-1)}.availability-action button{padding:4px 10px;border:1px solid var(--baseline);border-radius:3px;cursor:pointer}.availability-action button:disabled{color:var(--text-muted);cursor:not-allowed}.availability-error{flex-basis:100%;color:var(--status-critical);font-size:12px}