:root{--bg: #0a0d10;--surface: #12161b;--surface-2: #161b21;--surface-3: #1b222a;--border: #232b34;--border-strong: #313b46;--ink: #e9eef3;--ink-2: #9aa7b4;--ink-3: #626e7b;--accent: #3ae0c8;--accent-2: #7c9cff;--accent-3: #f0a13a;--good: #35d68a;--good-dim: #1c6b48;--bad: #f2685e;--bad-dim: #7a2f2c;--warn: #f5c451;--font-ui: "Chivo", ui-sans-serif, system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--radius: 4px;--radius-lg: 8px;--shadow: 0 1px 0 rgba(255, 255, 255, .02) inset, 0 12px 40px -12px rgba(0, 0, 0, .6)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background-color:var(--bg);background-image:linear-gradient(rgba(58,224,200,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(58,224,200,.025) 1px,transparent 1px);background-size:34px 34px;background-position:center top;color:var(--ink);font-family:var(--font-ui);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{margin:0;font-weight:700;letter-spacing:-.01em}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.eyebrow{font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}.pos{color:var(--good)}.neg{color:var(--bad)}.shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.sidebar{border-right:1px solid var(--border);background:linear-gradient(180deg,var(--surface) 0%,var(--bg) 100%);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{padding:22px 20px 18px;border-bottom:1px solid var(--border)}.brand .logo{display:flex;align-items:center;gap:10px;font-weight:900;font-size:16px;letter-spacing:-.02em}.brand .glyph{width:26px;height:26px;border-radius:6px;background:radial-gradient(circle at 30% 30%,var(--accent),#16b7a1 70%);box-shadow:0 0 0 1px #3ae0c866,0 0 18px -2px var(--accent);display:grid;place-items:center;color:#062019;font-size:14px;font-weight:900}.brand .sub{margin-top:8px}.nav{padding:14px 12px;display:flex;flex-direction:column;gap:2px;flex:1}.nav a{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:var(--radius);color:var(--ink-2);font-size:13.5px;font-weight:500;border:1px solid transparent;transition:background .12s,color .12s,border-color .12s}.nav a:hover{background:var(--surface-2);color:var(--ink)}.nav a.active{background:var(--surface-3);color:var(--ink);border-color:var(--border-strong)}.nav a.active .dot{background:var(--accent);box-shadow:0 0 10px -1px var(--accent)}.nav .dot{width:6px;height:6px;border-radius:50%;background:var(--ink-3);flex-shrink:0}.sidefoot{padding:14px 16px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:8px}.sidefoot .who{font-size:12px;color:var(--ink-2)}.logout{background:transparent;border:1px solid var(--border-strong);color:var(--ink-2);border-radius:var(--radius);padding:5px 10px;font-size:11px;letter-spacing:.04em}.logout:hover{color:var(--ink);border-color:var(--accent)}.main{min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 28px;border-bottom:1px solid var(--border);background:#0a0d10b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);position:sticky;top:0;z-index:5}.topbar h1{font-size:20px}.topbar .pagesub{color:var(--ink-3);font-size:12.5px;margin-top:3px}.status-chip{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:11px;color:var(--ink-2);border:1px solid var(--border);border-radius:999px;padding:5px 11px;background:var(--surface)}.status-chip .pulse{width:7px;height:7px;border-radius:50%;background:var(--good);box-shadow:0 0 #35d68a80;animation:pulse 2.4s infinite}@keyframes pulse{0%{box-shadow:0 0 #35d68a80}70%{box-shadow:0 0 0 7px #35d68a00}to{box-shadow:0 0 #35d68a00}}.content{padding:26px 28px 60px;max-width:1320px;width:100%}.grid{display:grid;gap:16px}.grid.cols-4{grid-template-columns:repeat(4,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}@media (max-width: 1100px){.grid.cols-4{grid-template-columns:repeat(2,1fr)}.grid.cols-3,.grid.cols-2{grid-template-columns:1fr}}@media (max-width: 760px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.grid.cols-4{grid-template-columns:1fr}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.card .card-head{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.card .card-head h3{font-size:13.5px}.card .card-body{padding:16px}.stat{padding:16px 16px 18px;position:relative;overflow:hidden}.stat .label{display:flex;align-items:center;gap:7px}.stat .value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:30px;font-weight:600;letter-spacing:-.02em;margin-top:10px;line-height:1}.stat .delta{margin-top:9px;font-size:12px;font-family:var(--font-mono);display:inline-flex;align-items:center;gap:5px}.stat .spark{position:absolute;right:0;bottom:0;opacity:.55;pointer-events:none}.badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;letter-spacing:.03em;padding:3px 9px;border-radius:999px;border:1px solid var(--border-strong);color:var(--ink-2);white-space:nowrap}.badge.good{color:var(--good);border-color:var(--good-dim);background:#35d68a14}.badge.bad{color:var(--bad);border-color:var(--bad-dim);background:#f2685e14}.badge.neutral{color:var(--ink-2)}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-weight:500;padding:10px 14px;border-bottom:1px solid var(--border);white-space:nowrap}.table td{padding:12px 14px;border-bottom:1px solid var(--border);color:var(--ink)}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:var(--surface-2)}.table td.num,.table th.num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.table .name{font-weight:500}.table .sub{color:var(--ink-3);font-size:11.5px}.bar-cell{position:relative;height:6px;border-radius:3px;background:var(--surface-3);min-width:90px;overflow:hidden}.bar-cell>span{position:absolute;left:0;top:0;bottom:0;border-radius:3px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px 30px 28px;box-shadow:var(--shadow);position:relative;overflow:hidden}.login-card:before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent)}.login-card .glyph{width:40px;height:40px;border-radius:9px;background:radial-gradient(circle at 30% 30%,var(--accent),#16b7a1 70%);display:grid;place-items:center;color:#062019;font-weight:900;font-size:20px;box-shadow:0 0 22px -3px var(--accent)}.login-card h2{margin-top:18px;font-size:20px}.login-card p{color:var(--ink-3);font-size:13px;margin:6px 0 22px}.field label{display:block}.input{width:100%;margin-top:8px;background:var(--bg);border:1px solid var(--border-strong);color:var(--ink);border-radius:var(--radius);padding:11px 13px;font-family:var(--font-mono);font-size:14px;outline:none;transition:border-color .12s,box-shadow .12s}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #3ae0c81f}.btn{width:100%;margin-top:16px;background:var(--accent);color:#052018;border:none;border-radius:var(--radius);padding:12px;font-weight:700;font-size:14px;letter-spacing:.01em;transition:filter .12s,transform .05s}.btn:hover{filter:brightness(1.08)}.btn:active{transform:translateY(1px)}.login-err{margin-top:14px;color:var(--bad);font-size:12.5px;font-family:var(--font-mono)}.section-title{display:flex;align-items:baseline;justify-content:space-between;margin:28px 0 14px}.section-title h2{font-size:15px}.muted{color:var(--ink-3)}.hr{height:1px;background:var(--border);border:none;margin:0}.chart-wrap{width:100%}.recharts-cartesian-axis-tick-value{font-family:var(--font-mono);font-size:10px;fill:var(--ink-3)}.tooltip{background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--radius);padding:9px 11px;font-size:12px;box-shadow:var(--shadow)}.tooltip .t-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-bottom:5px}.tooltip .t-row{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.legend-row{display:flex;gap:16px;flex-wrap:wrap;margin-top:4px}.legend-row .item{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--ink-2)}.legend-row .swatch{width:11px;height:3px;border-radius:2px}.pill-row{display:flex;gap:8px;flex-wrap:wrap}.filter-pill{background:var(--surface);border:1px solid var(--border);color:var(--ink-2);border-radius:999px;padding:6px 13px;font-size:12px;font-family:var(--font-mono)}.filter-pill.active{border-color:var(--accent);color:var(--ink);background:#3ae0c80f}.banner{border:1px solid var(--border);background:linear-gradient(90deg,rgba(124,156,255,.06),transparent);border-radius:var(--radius-lg);padding:12px 16px;font-size:12.5px;color:var(--ink-2);display:flex;align-items:center;gap:10px;margin-bottom:20px}.banner .tag{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-2);border:1px solid var(--border-strong);border-radius:4px;padding:2px 7px}.hub{min-height:100%;display:flex;align-items:center;justify-content:center;padding:48px 20px}.hub-inner{width:100%;max-width:780px;text-align:center}.sis-logo{display:block;margin:0 auto 10px}.hub-wordmark{font-family:var(--font-mono);font-size:34px;font-weight:700;letter-spacing:10px;padding-left:10px;background:linear-gradient(90deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.hub-tag{margin-top:8px;font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--ink-2)}.hub-sub{margin-top:6px;margin-bottom:34px;font-size:13px;color:var(--ink-3)}.hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;text-align:left}.proj-card{display:block;text-decoration:none;padding:22px;border:1px solid var(--border);border-radius:var(--radius-lg);background:linear-gradient(180deg,var(--surface) 0%,var(--bg) 100%);box-shadow:var(--shadow);transition:border-color .15s ease,transform .15s ease}.proj-card:hover{border-color:var(--accent);transform:translateY(-2px)}.proj-card.disabled{opacity:.45;pointer-events:none}.proj-name{font-size:18px;font-weight:600;color:var(--ink)}.proj-tagline{margin-top:4px;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--accent)}.proj-desc{margin-top:10px;font-size:13px;line-height:1.5;color:var(--ink-3)}.proj-enter{margin-top:16px;font-family:var(--font-mono);font-size:13px;color:var(--ink-2)}.proj-enter.muted{color:var(--ink-3)}.proj-card:hover .proj-enter{color:var(--accent)}.hub-foot{margin-top:30px;font-family:var(--font-mono);font-size:11px;letter-spacing:1px;color:var(--ink-3)}.backlink{display:block;margin-top:16px;font-size:12px;text-decoration:none;color:var(--ink-3)}.backlink:hover{color:var(--accent)}.glossary{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);padding:16px 18px;margin-bottom:18px}.glossary dl{margin:0}.gloss-row{display:grid;grid-template-columns:160px 1fr;gap:14px;padding:7px 0;border-top:1px solid var(--border)}.gloss-row:first-child{border-top:none}.gloss-row dt{font-family:var(--font-mono);font-size:12px;color:var(--accent)}.gloss-row dd{margin:0;font-size:13px;color:var(--ink-2);line-height:1.5}.rcounts{display:flex;gap:34px;margin:4px 2px 22px}.rcount{font-size:26px;margin-top:4px}.rcount.pos{color:var(--good)}.rcount.muted{color:var(--ink-3)}.rsection{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--good);margin:26px 2px 12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.rsection.muted-section{color:var(--ink-3)}.rheadline{font-size:15px;font-weight:500;line-height:1.5;color:var(--ink-2)}.rheadline.pos{color:var(--good)}.rsummary{margin-top:10px;font-size:13px;line-height:1.6;color:var(--ink-3)}.rtable{margin-top:16px}.rtable-title{font-size:12px;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px}.rtable-scroll{overflow-x:auto}.rtable-note{margin-top:8px;font-size:12px;line-height:1.5;color:var(--ink-3)}.rgen{margin-top:14px}.table td.pos{color:var(--good)}.table td.neg{color:var(--bad)}.table td{padding:9px 14px}.table th{padding:9px 14px;white-space:nowrap}@media (max-width: 760px){.content{padding:16px 14px 48px}.topbar{padding:13px 15px}.topbar h1{font-size:17px}.topbar .pagesub{font-size:11.5px}.sidebar{border-right:none;border-bottom:1px solid var(--border)}.brand{padding:13px 15px 10px}.nav{flex-direction:row;overflow-x:auto;gap:6px;padding:10px 12px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav a{flex-shrink:0;padding:8px 12px;white-space:nowrap}.nav .dot{display:none}.sidefoot{padding:10px 15px}.card-body{overflow-x:auto;-webkit-overflow-scrolling:touch}.table{white-space:nowrap}.table th,.table td{padding:8px 12px}.gloss-row{grid-template-columns:1fr;gap:3px}.gloss-row dt{margin-bottom:1px}.rcounts{gap:22px}.rsection{margin-top:22px}.banner{font-size:13px}.hub{padding:34px 16px}.hub-grid{grid-template-columns:1fr}.hub-wordmark{font-size:30px;letter-spacing:8px}.grid.cols-4{grid-template-columns:1fr 1fr}}@media (max-width: 440px){.grid.cols-4{grid-template-columns:1fr}.topbar .status-chip{display:none}.topbar h1{font-size:16px}}.wallet-card-link{display:block;text-decoration:none;color:inherit}.wallet-card-link .card{transition:border-color .15s ease,transform .15s ease}.wallet-card-link:hover .card{border-color:var(--accent);transform:translateY(-2px)}
