:root{--canvas: #f8fafc;--card: #ffffff;--subtle: #f1f5f9;--line: #e2e8f0;--line-soft: #f1f5f9;--ink: #0b0e14;--ink-2: #334155;--muted: #64748b;--teal: #00ddb8;--teal-ink: #006b58;--teal-tint: #e0faf5;--blue: #3b82f6;--blue-ink: #1d4ed8;--blue-tint: #dbeafe;--amber: #ffb650;--amber-ink: #643f00;--amber-tint: #ffddb6;--red: #ba1a1a;--red-ink: #93000a;--red-tint: #ffdad6;--slate: #475569;--shadow-1: 0 1px 3px 0 rgba(11, 14, 20, .04), 0 1px 2px -1px rgba(11, 14, 20, .02);--shadow-2: 0 8px 20px -4px rgba(11, 14, 20, .06), 0 4px 6px -2px rgba(11, 14, 20, .03);--shadow-3: 0 12px 28px -6px rgba(11, 14, 20, .1), 0 8px 10px -4px rgba(11, 14, 20, .04);--radius: 8px;--radius-card: 16px;font-family:Outfit,system-ui,sans-serif;color:var(--ink);background:var(--canvas);font-variant-numeric:tabular-nums}*{box-sizing:border-box}body{margin:0;background:var(--canvas);font-size:14px;line-height:20px}button,select,input{font:inherit;color:inherit}button{cursor:pointer;transition:background .15s,box-shadow .15s,transform .1s}button:active{transform:scale(.98)}a{color:#2563eb;text-decoration:none;font-weight:500}a:hover{color:#0058be}:focus-visible{outline:none;box-shadow:0 0 0 3px #00ddb859;border-radius:var(--radius)}.app{display:flex;flex-wrap:wrap;min-height:100vh}.sidebar{flex:1 1 260px;max-width:100%;background:var(--card);border-right:1px solid var(--line);padding:20px 14px;display:flex;flex-direction:column;gap:18px}.main{flex:999 1 560px;min-width:0;display:flex;flex-direction:column}.content{width:100%;max-width:1320px;margin:0 auto;padding:28px 32px 48px;display:flex;flex-direction:column;gap:24px}@media(max-width:860px){.sidebar{flex-basis:100%;border-right:0;border-bottom:1px solid var(--line)}.content{padding:20px 16px 40px}}.brand{display:flex;align-items:center;gap:10px;padding:0 6px}.brand-mark{width:34px;height:34px;border-radius:10px;background:var(--teal);color:var(--ink);display:grid;place-items:center;font-weight:700;font-size:18px}.brand small{display:block;color:var(--muted);font-size:12px}.nav{display:flex;flex-direction:column;gap:2px}.nav-label{font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:10px 12px 6px}.nav a{display:flex;align-items:center;gap:10px;min-height:40px;padding:0 12px;border-radius:var(--radius);color:var(--ink-2);font-weight:400}.nav a:hover{background:var(--subtle);color:var(--ink-2)}.nav a.active{background:var(--ink);color:#fff;font-weight:500}.nav a.active svg{color:var(--teal)}.sync-box{margin-top:auto;border:1px solid var(--line);border-radius:12px;padding:12px;font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:6px}.sync-box strong{color:var(--ink);font-weight:500;font-size:13px}.topbar{position:sticky;top:0;z-index:5;background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding:12px 32px;display:flex;flex-wrap:wrap;align-items:center;gap:12px}.topbar .spacer{flex:1}@media(max-width:860px){.topbar{padding:12px 16px;position:static}}.segmented{display:inline-flex;gap:2px;padding:3px;background:var(--subtle);border-radius:10px}.segmented button{min-height:34px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:var(--slate);font-weight:500;font-size:13px}.segmented button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 2px #0b0e1414}.select{height:40px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);padding:0 12px;min-width:180px}.select:focus{border-color:var(--teal);box-shadow:0 0 0 3px #00ddb833;outline:none}.btn-ghost{height:36px;border:0;border-radius:var(--radius);background:var(--subtle);padding:0 14px;font-weight:600;font-size:13px}.btn-ghost:hover{background:var(--line)}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px}.page-head h1{margin:0;font-family:Playfair Display,Georgia,serif;font-size:38px;line-height:46px;font-weight:600;letter-spacing:-.02em}.page-head p{margin:4px 0 0;color:var(--slate)}.grid{display:grid;gap:16px}.grid.kpis{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.grid.two{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.grid.three{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}.row{display:flex;flex-wrap:wrap;gap:16px}.row>.wide{flex:2 1 560px;min-width:0}.row>.narrow{flex:1 1 300px;min-width:0}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-card);padding:24px;box-shadow:var(--shadow-1);display:flex;flex-direction:column;gap:16px;min-width:0;transition:box-shadow .2s,border-color .2s}.card:hover{box-shadow:var(--shadow-2);border-color:#99f1e2}.card.flush{padding:0;gap:0}.card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.card.flush .card-head{padding:20px 24px}.card h2{margin:0;font-size:18px;line-height:26px;font-weight:600}.card .sub{color:var(--muted);font-size:13px}.kpi{gap:8px}.kpi .label{color:var(--slate);font-weight:500}.kpi .value{font-size:32px;line-height:40px;font-weight:700;letter-spacing:-.02em}.kpi .foot{color:var(--muted);font-size:12px}.kpi .top{display:flex;justify-content:space-between;align-items:center;gap:8px}.pill{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:500;border-radius:999px;padding:2px 8px;white-space:nowrap}.pill.up{color:var(--teal-ink);background:var(--teal-tint)}.pill.down{color:var(--red-ink);background:var(--red-tint)}.pill.neutral{color:var(--slate);background:var(--subtle)}.pill.warn{color:var(--amber-ink);background:#fff4e5}.pill.blue{color:var(--blue-ink);background:var(--blue-tint)}.pill.live{color:var(--ink);background:var(--teal)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:var(--canvas);padding:10px 24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap}td{padding:12px 24px;border-bottom:1px solid var(--line-soft);white-space:nowrap}tr:hover td{background:var(--canvas)}td.num,th.num{text-align:right}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--slate)}.metric-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.metric-tab{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--card)}.metric-tab:hover{border-color:#99f1e2}.metric-tab.on{background:#f0fdfa;border:1.5px solid var(--teal)}.metric-tab .t{font-size:13px;color:var(--slate);font-weight:500}.metric-tab .v{font-size:22px;font-weight:600;letter-spacing:-.02em}.metric-tab:disabled{opacity:.55;cursor:not-allowed}.bars{display:flex;flex-direction:column;gap:12px}.bar-row{display:flex;flex-direction:column;gap:6px}.bar-row .l{display:flex;justify-content:space-between;font-size:13px;gap:8px}.bar-track{height:8px;border-radius:4px;background:var(--subtle)}.bar-fill{height:8px;border-radius:4px;background:var(--teal)}.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:13px;color:var(--slate)}.legend span{display:inline-flex;align-items:center;gap:6px}.swatch{width:10px;height:10px;border-radius:3px;display:inline-block}.stat-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}.stat-tile{background:var(--canvas);border-radius:10px;padding:10px 12px}.stat-tile b{display:block;font-size:20px;font-weight:600}.stat-tile span{font-size:12px;color:var(--muted)}.note{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:10px;background:#fff4e5;color:var(--amber-ink);font-size:13px}.note.info{background:var(--blue-tint);color:var(--blue-ink)}.empty{color:var(--muted);padding:24px;text-align:center}.skeleton{background:linear-gradient(90deg,var(--subtle),#f8fafc,var(--subtle));background-size:200% 100%;animation:sk 1.2s infinite;border-radius:8px}@keyframes sk{to{background-position:-200% 0}}.pulse{width:8px;height:8px;border-radius:50%;background:var(--teal);animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{50%{opacity:.3}}.recharts-tooltip-wrapper{outline:none}.tooltip{background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-3);padding:10px 12px;font-size:13px;min-width:170px}.tooltip .d{color:var(--muted);font-size:12px;font-weight:500;margin-bottom:4px}.tooltip .r{display:flex;align-items:center;gap:8px;justify-content:space-between}
