@import url('/theme.css');
*{box-sizing:border-box}:root{color-scheme:light;--radius:16px;--card-radius:22px}:root[data-theme=dark]{color-scheme:dark}body{margin:0;font:15px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--background)}button,input,select{font:inherit;min-height:44px}button,a,input,select{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,.chart svg:focus-visible{outline:2px solid var(--brand-text)}button{cursor:pointer;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:8px 16px;display:inline-flex;gap:8px;align-items:center;justify-content:center}button:disabled{cursor:wait;opacity:.55}button:hover{background:var(--surface-secondary)}button.primary{background:var(--brand);border-color:var(--brand);color:var(--ink);font-weight:600}input,select{border:1px solid var(--border);border-radius:12px;color:var(--text);background:var(--surface);padding:8px 12px;max-width:100%}svg.icon{width:20px;height:20px;flex:none;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.icon-tile{display:grid;place-items:center;width:44px;height:44px;background:color-mix(in srgb,var(--brand) 12%,transparent);color:var(--brand-text);border-radius:12px}
.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{min-width:0;background:var(--surface);padding:32px 16px;position:sticky;top:0;height:100vh;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:32px}.brand{display:flex;align-items:center;gap:12px;padding:0 8px}.brand-emblem{width:44px;height:44px;display:grid;place-items:center;border-radius:16px;background:color-mix(in srgb,var(--brand) 14%,transparent);color:var(--brand-text)}.brand-emblem svg{width:28px;height:28px}.brand strong{display:block;font-size:20px;letter-spacing:1px}.brand small,.muted{color:var(--muted)}.brand small{font-size:12px;letter-spacing:1px}.nav-heading{font-size:12px;color:var(--muted);margin:0 16px 12px}.navigation{display:grid;gap:8px}.nav-button{border:0;background:transparent;justify-content:start;color:var(--muted);padding:12px 16px;border-radius:var(--radius);text-align:left}.nav-button.active{background:color-mix(in srgb,var(--brand) 12%,transparent);color:var(--brand-text);font-weight:600}.nav-button.active:after{content:"";margin-left:auto;width:4px;height:16px;border-radius:4px;background:var(--brand)}.sidebar-footer{margin-top:auto;padding:16px;border-radius:var(--radius);background:var(--surface-secondary);font-size:12px;color:var(--muted)}.status-dot{display:inline-block;width:8px;height:8px;background:var(--success);border-radius:50%;margin-right:8px}.sidebar-footer p{margin:4px 0}
main{min-width:0;padding:32px;max-width:1600px;width:100%;margin:auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.eyebrow{font-size:12px;letter-spacing:1px;color:var(--brand-text);margin:0 0 4px}h1{font-size:28px;line-height:1.3;margin:0;letter-spacing:-.5px}h2{font-size:17px;line-height:1.4;margin:0}p{margin:8px 0}.page-description{color:var(--muted);margin:8px 0 0}.actions{display:flex;gap:8px;align-items:center}.icon-button{width:44px;padding:0}.badge{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border);background:var(--surface);padding:8px 12px;border-radius:12px;font-size:12px;color:var(--muted)}.filters{display:flex;align-items:end;flex-wrap:wrap;gap:12px;padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:24px}.filters label{display:grid;gap:4px;color:var(--muted);font-size:12px}.filters input,.filters select{font-size:15px}.range-buttons{display:flex;gap:4px;margin-left:auto}.range-buttons button{padding:8px 12px}.range-buttons .selected{color:var(--brand-text);border-color:var(--brand);background:var(--surface-secondary)}.status-line{min-height:24px;color:var(--muted);font-size:12px;margin:-12px 0 16px}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius);padding:24px}.metric-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.metric-label{font-size:15px;color:var(--muted)}.metric-value{font-size:34px;line-height:1.3;font-weight:650;letter-spacing:-1px;margin:16px 0 8px;font-variant-numeric:tabular-nums}.metric-note{font-size:12px;color:var(--muted)}.chart-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:24px;margin-bottom:24px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius);padding:24px;min-width:0}.panel-head{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:24px}.panel-head p{font-size:12px;color:var(--muted);margin:4px 0 0}.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:12px}.legend span{display:flex;align-items:center;gap:8px}.legend i{width:8px;height:8px;border-radius:50%}.series-0{color:var(--brand-text);stroke:var(--brand)}.series-1{color:var(--blue);stroke:var(--blue)}.series-2{color:var(--muted);stroke:var(--muted)}.legend .series-0{background:var(--brand)}.legend .series-1{background:var(--blue)}.legend .series-2{background:var(--muted)}
.chart{position:relative;width:100%;min-height:280px}.chart svg{width:100%;display:block;overflow:visible}.chart-gridline{stroke:var(--border);stroke-dasharray:4 4;stroke-width:1}.chart-label{fill:var(--muted);font-size:12px}.chart-line{fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.chart-area{fill:color-mix(in srgb,var(--brand) 10%,transparent)}.chart-hoverline{stroke:var(--muted);stroke-dasharray:4 4;pointer-events:none}.chart-tooltip{position:absolute;top:8px;left:64px;padding:12px 16px;background:var(--surface-secondary);border:1px solid var(--border);border-radius:12px;font-size:12px;pointer-events:none;white-space:pre-line;max-width:calc(100% - 72px)}.chart-empty{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:8px;text-align:center;padding:24px;pointer-events:none;color:var(--muted);font-size:12px}.chart-empty strong{font-size:15px;color:var(--text)}.donut-wrap{position:relative;width:168px;height:168px;margin:24px auto}.donut-wrap svg{width:100%;height:100%;transform:rotate(-90deg)}.donut-center{position:absolute;inset:0;display:grid;place-content:center;text-align:center;font-size:12px;color:var(--muted)}.donut-center strong{font-size:28px;color:var(--text)}.distribution{display:grid;gap:16px}.distribution-row{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:15px}.distribution-label{display:flex;gap:8px;align-items:center;color:var(--muted)}.distribution-label i{width:8px;height:8px;border-radius:50%}.distribution-label.series-0 i{background:var(--brand)}.distribution-label.series-1 i{background:var(--blue)}.distribution-label.series-2 i{background:var(--muted)}.info-note{font-size:12px;color:var(--muted);line-height:1.7;margin-top:16px}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px;white-space:nowrap}td,th{padding:16px;text-align:right;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums}th{font-weight:500;color:var(--muted);background:var(--surface-secondary)}td:first-child,th:first-child{text-align:left}tbody tr:last-child td{border:0}tbody tr:hover{background:var(--surface-secondary)}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:16px;color:var(--muted);font-size:12px}.pagination button{min-width:44px;padding:8px 12px}.details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:24px}.version-row{display:flex;justify-content:space-between;gap:16px;margin-top:16px}.version-bar{height:8px;background:var(--background-secondary);border-radius:8px;margin-top:8px;overflow:hidden}.version-bar span{display:block;height:100%;background:var(--brand);border-radius:8px}.definition-list{display:grid;gap:12px;margin-top:16px;color:var(--muted);font-size:13px}.definition-list div{display:flex;justify-content:space-between;gap:16px}.definition-list strong{color:var(--text);font-weight:500}.system-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.system-grid code{overflow-wrap:anywhere;color:var(--brand-text);font-size:13px}.hidden,[hidden]{display:none!important}.error-message{color:var(--error)}
.login-body{min-height:100vh;display:grid;place-items:center;padding:24px}.login-layout{width:100%;max-width:960px;display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}.login-intro .brand{padding:0;margin-bottom:32px}.login-intro h1{font-size:34px;line-height:1.5;letter-spacing:0}.login-intro p{color:var(--muted);max-width:360px;font-size:17px;margin:16px 0 24px}.login-features{display:flex;flex-wrap:wrap;gap:8px}.login-features>span{display:inline-flex;gap:8px;align-items:center;font-size:12px;background:var(--surface);padding:8px 12px;border:1px solid var(--border);border-radius:12px}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius);padding:32px}.login-card h2{font-size:22px}.login-card>p{color:var(--muted);margin:8px 0 24px}.login-form{display:grid;gap:16px}.login-form label{display:grid;gap:8px;font-size:15px}.login-form input{width:100%;min-height:48px}.login-form button{min-height:48px;margin-top:8px}.login-status{min-height:24px;color:var(--muted);font-size:13px}.login-footer{color:var(--muted);font-size:12px;margin-top:24px;text-align:center}.login-art{margin:24px 0;display:flex;align-items:end;gap:12px;height:112px;max-width:300px}.login-art span{flex:1;border-radius:12px 12px 4px 4px;background:color-mix(in srgb,var(--brand) 16%,var(--surface));height:40%}.login-art span:nth-child(2){height:64%}.login-art span:nth-child(3){height:52%}.login-art span:nth-child(4){height:82%}.login-art span:nth-child(5){height:100%;background:var(--brand)}
@media(max-width:1100px){main{padding:24px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-grid{grid-template-columns:minmax(0,1fr)}.range-buttons{margin-left:0}}@media(max-width:800px){.app-shell{grid-template-columns:minmax(0,1fr)}.sidebar{height:auto;position:static;gap:16px;padding:16px;border-right:0;border-bottom:1px solid var(--border)}.navigation{display:flex;overflow:auto}.nav-button{white-space:nowrap;flex:none}.nav-heading,.sidebar-footer{display:none}.sidebar>.brand{padding:0}.topbar{align-items:start}.topbar .badge{display:none}.chart-grid,.details-grid,.system-grid{grid-template-columns:1fr}.login-layout{grid-template-columns:1fr;max-width:440px;gap:32px}.login-intro h1{font-size:28px}.login-intro p,.login-art,.login-features{display:none}.login-intro .brand{margin:0}.login-intro>h1{margin-top:24px}}@media(max-width:480px){main{padding:16px}.topbar h1{font-size:22px}.metrics{gap:12px}.metric{padding:16px}.metric-value{font-size:28px}.metric-top{align-items:start}.icon-tile{width:29px;height:29px;border-radius:8px}.icon-tile svg{width:17px;height:17px}.panel{padding:16px}.filters label{flex:1;min-width:120px}.filters label:first-child{flex-basis:100%}.range-buttons{width:100%}.range-buttons button{flex:1}.login-card{padding:24px}.actions{gap:4px}.logout-label{display:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
