:root{--bg:oklch(0.97 0.007 85);--bg-elev:oklch(0.985 0.005 85);--bg-subtle:oklch(0.945 0.008 85);--bg-hover:oklch(0.93 0.008 85);--bg-hero:none;--fg:oklch(0.18 0.018 255);--fg-muted:oklch(0.42 0.010 255);--fg-subtle:oklch(0.55 0.008 80);--line:oklch(0.88 0.008 80);--line-strong:oklch(0.82 0.008 80);--accent:oklch(0.65 0.155 48);--accent-fg:oklch(0.985 0.005 85);--accent-soft:oklch(0.93 0.04 48);--accent-border:oklch(0.85 0.10 48);--signal:oklch(0.65 0.155 48);--signal-soft:oklch(0.93 0.04 48);--critical:oklch(0.58 0.18 28);--critical-soft:oklch(0.96 0.04 28);--critical-border:oklch(0.85 0.10 28);--warn-fg:oklch(0.62 0.14 70);--warn-soft:oklch(0.96 0.04 70);--warn-border:oklch(0.85 0.09 70);--ok:oklch(0.58 0.12 155);--ok-soft:oklch(0.96 0.03 155);--ok-border:oklch(0.82 0.07 155);--benign:oklch(0.58 0.12 155);--mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;--sans:"Inter",system-ui,-apple-system,sans-serif;--display:"Inter Tight","Inter",system-ui,sans-serif;--shadow-sm:0 1px 2px rgba(20,25,40,.04);--shadow:0 1px 3px rgba(20,25,40,.06),0 1px 2px rgba(20,25,40,.04);--shadow-lg:0 8px 24px rgba(20,25,40,.08),0 2px 6px rgba(20,25,40,.06)}[data-theme=dark]{--bg:oklch(0.16 0.014 255);--bg-elev:oklch(0.20 0.014 255);--bg-subtle:oklch(0.22 0.014 255);--bg-hover:oklch(0.24 0.014 255);--bg-hero:none;--fg:oklch(0.97 0.007 85);--fg-muted:oklch(0.72 0.010 80);--fg-subtle:oklch(0.55 0.010 80);--line:oklch(0.30 0.014 255);--line-strong:oklch(0.36 0.014 255);--accent:oklch(0.72 0.13 48);--accent-fg:oklch(0.16 0.014 255);--accent-soft:oklch(0.30 0.08 48);--accent-border:oklch(0.40 0.10 48);--signal:oklch(0.72 0.13 48);--signal-soft:oklch(0.30 0.08 48);--critical:oklch(0.70 0.19 28);--critical-soft:oklch(0.28 0.08 28);--critical-border:oklch(0.38 0.12 28);--warn-fg:oklch(0.78 0.14 70);--warn-soft:oklch(0.28 0.06 70);--warn-border:oklch(0.38 0.10 70);--ok:oklch(0.72 0.14 155);--ok-soft:oklch(0.24 0.05 155);--ok-border:oklch(0.36 0.08 155);--benign:oklch(0.72 0.14 155);--shadow-sm:0 1px 2px rgba(0,0,0,.3);--shadow:0 1px 3px rgba(0,0,0,.35);--shadow-lg:0 8px 24px rgba(0,0,0,.5)}*{box-sizing:border-box}body,html{margin:0;padding:0}html{min-height:100%}@keyframes alert-pulse{0%,to{box-shadow:0 0 0 0 rgba(220,38,38,.7)}50%{box-shadow:0 0 0 6px rgba(220,38,38,0)}}@keyframes alert-glow{0%,to{opacity:1}50%{opacity:.85}}@keyframes alert-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}body{font-family:var(--sans);font-size:13px;line-height:1.5;color:var(--fg);background:var(--bg);background-image:var(--bg-hero);background-attachment:fixed;-webkit-font-smoothing:antialiased;font-feature-settings:"cv02","cv03","cv04","cv11";min-height:100vh;position:relative}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(circle at 1px 1px,oklch(.85 .008 80) 1px,transparent 0);background-size:22px 22px;background-position:-1px -1px;-webkit-mask-image:radial-gradient(ellipse at center,rgba(0,0,0,.55),transparent 80%);mask-image:radial-gradient(ellipse at center,rgba(0,0,0,.55),transparent 80%);opacity:.45}button,input,select{font:inherit;color:inherit}.mono,.num{font-family:var(--mono);font-feature-settings:"tnum" 1}.app{min-height:100vh}.sidebar{position:fixed;top:0;left:0;bottom:0;width:56px;z-index:50;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-right:1px solid var(--line);padding:14px 8px;display:flex;flex-direction:column;gap:2px;overflow:hidden;transition:width .14s cubic-bezier(.32,.72,.36,1),box-shadow .14s ease}.sidebar:hover{width:216px;box-shadow:4px 0 28px rgba(20,25,40,.1),1px 0 0 var(--line)}.brand{display:grid;grid-template-columns:40px 1fr auto;align-items:center;grid-gap:8px;gap:8px;padding:6px 0 14px;color:var(--fg);flex-shrink:0;text-decoration:none}.brand>svg:first-child{justify-self:center;color:var(--fg)}.brand-name{font-family:var(--display);font-size:15px;font-weight:700;letter-spacing:-.02em;white-space:nowrap}.brand-tag{font-size:9.5px;color:var(--fg-muted);letter-spacing:.14em;text-transform:uppercase;margin-left:auto;font-family:var(--mono);white-space:nowrap;border:1px solid var(--line);padding:2px 6px 1px;border-radius:3px;background:var(--bg)}.brand svg{color:var(--fg)}.sidebar .brand-name,.sidebar .brand-tag,.sidebar .nav-item .nav-count,.sidebar .nav-item>span,.sidebar .user-info{opacity:0;pointer-events:none;white-space:nowrap;transition:opacity .1s ease}.sidebar .nav-section-label{padding:14px 0 6px;margin-left:8px;opacity:0;transition:opacity .1s ease;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-subtle);font-weight:500;white-space:nowrap}.sidebar:hover .brand-name,.sidebar:hover .brand-tag,.sidebar:hover .nav-item .nav-count,.sidebar:hover .nav-item>span,.sidebar:hover .user-info{opacity:1;pointer-events:auto;transition:opacity .12s ease .06s}.sidebar:hover .nav-section-label{opacity:1;transition:opacity .12s ease .06s}.nav-item{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;grid-gap:0;gap:0;height:36px;padding:0;border-radius:6px;color:var(--fg-muted);cursor:pointer;font-size:13px;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;flex-shrink:0;transition:background .12s ease,color .12s ease}.nav-item>svg:first-child{justify-self:center}.nav-item.active,.nav-item:hover{background:var(--bg-hover);color:var(--fg)}.nav-item.active:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:2px;background:var(--signal,var(--accent));border-radius:2px}.nav-item .nav-count{font-size:10px;font-family:var(--mono);color:var(--fg-subtle);background:var(--bg-subtle);padding:1px 6px;border-radius:10px;margin-right:10px}.nav-item.active .nav-count{background:var(--accent-soft);color:var(--accent)}.sidebar-footer{margin-top:auto;padding-top:12px;border-top:1px solid var(--line);flex-shrink:0}.user-card{display:grid;grid-template-columns:40px minmax(0,1fr) 0;align-items:center;grid-gap:0;gap:0;height:44px;padding:0;border-radius:6px;cursor:pointer;overflow:hidden;transition:background .12s ease,grid-template-columns .14s ease}.sidebar:hover .user-card{grid-template-columns:40px minmax(0,1fr) 34px}.user-card:hover{background:var(--bg-hover)}.avatar{width:28px;height:28px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-size:11px;font-weight:600;justify-self:center}.user-info{min-width:0;overflow:hidden}.user-card>svg:last-child{justify-self:center;opacity:0;transition:opacity .1s ease}.sidebar:hover .user-card>svg:last-child{opacity:1;transition:opacity .12s ease .06s}.user-name{font-size:12px;font-weight:500;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:10px;color:var(--fg-subtle);text-transform:uppercase;letter-spacing:.06em;font-family:var(--mono);white-space:nowrap}.main{margin-left:56px;min-width:0;display:flex;flex-direction:column;min-height:100vh}.topbar{height:48px;border-bottom:1px solid var(--line);padding:0 18px;gap:14px;background:color-mix(in srgb,var(--bg) 84%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:-webkit-sticky;position:sticky;top:0;z-index:10}.crumbs,.topbar{display:flex;align-items:center}.crumbs{gap:6px;font-size:13px;color:var(--fg-muted)}.crumbs .sep{color:var(--fg-subtle)}.crumbs .cur{color:var(--fg);font-weight:500}.topbar-spacer{flex:1 1}.search-box{display:flex;align-items:center;gap:8px;background:var(--bg-subtle);border:1px solid var(--line);border-radius:6px;padding:4px 10px;width:260px;color:var(--fg-muted)}.search-box input{background:transparent;border:0;outline:0;flex:1 1;font-size:12px;color:var(--fg)}.search-box input::placeholder{color:var(--fg-subtle)}.search-box .kbd{font-family:var(--mono);font-size:10px;color:var(--fg-subtle);border:1px solid var(--line-strong);border-radius:3px;padding:0 4px}.icon-btn{background:transparent;border:1px solid transparent;border-radius:6px;width:28px;height:28px;display:grid;place-items:center;color:var(--fg-muted);cursor:pointer;position:relative}.icon-btn:hover{background:var(--bg-hover);color:var(--fg);border-color:var(--line)}.icon-btn .dot-ind{position:absolute;top:5px;right:5px;width:6px;height:6px;border-radius:50%;background:var(--critical);border:1.5px solid var(--bg)}.page{padding:22px}.content,.page{max-width:1600px;width:100%}.content{padding:18px 22px 28px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:16px;gap:16px}.page-title{font-size:22px;font-weight:650;letter-spacing:-.02em;margin:0}.page-desc{color:var(--fg-muted);font-size:13px;margin-top:4px;max-width:72ch}.page-actions{display:flex;gap:8px;align-items:center}.panel{background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elev) 96%,#fff 4%),var(--bg-elev));border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.panel:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.panel-head{padding:10px 14px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px}.panel-title{font-size:12px;font-weight:600;letter-spacing:.02em}.panel-sub{font-size:11px;color:var(--fg-subtle);margin-top:1px}.panel-actions{display:flex;gap:6px;align-items:center}.panel-body{padding:14px}.grid{display:grid;grid-gap:16px;gap:16px}.kpi{background:var(--bg-elev);border:1px solid var(--line);border-radius:14px;padding:12px 14px;position:relative;overflow:hidden;box-shadow:var(--shadow-sm)}.kpi-accent{border-color:var(--accent-border);background:linear-gradient(180deg,var(--accent-soft) 0,var(--bg-elev) 60%)}.kpi-label{font-size:11px;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.06em}.kpi-value{font-family:var(--mono);font-size:26px;font-weight:500;letter-spacing:-.02em;margin-top:2px;line-height:1.1}.kpi-sub{display:flex;gap:8px;margin-top:4px;color:var(--fg-muted)}.kpi-delta,.kpi-sub{align-items:center;font-size:11px}.kpi-delta{display:inline-flex;gap:2px;font-family:var(--mono)}.kpi-delta.up{color:var(--critical)}.kpi-delta.down{color:var(--ok)}.kpi-note{color:var(--fg-subtle)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:11px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em;border:1px solid;font-weight:500;transition:all .2s ease}.badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:2px}.badge-default{background:var(--bg-subtle);color:var(--fg-muted);border-color:var(--line)}.badge-accent{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-border)}.badge-critical{background:linear-gradient(135deg,var(--critical-soft),rgba(244,63,94,.08));color:var(--critical);border-color:var(--critical-border);box-shadow:0 0 8px rgba(220,38,38,.3),0 2px 8px rgba(220,38,38,.15);font-weight:600;padding:3px 10px;animation:alert-glow 2.5s ease-in-out infinite}.badge-critical:before{content:"⚠ ";margin-right:2px;font-weight:700}.badge-warn{background:var(--warn-soft);color:var(--warn-fg);border-color:var(--warn-border)}.badge-benign,.badge-ok{background:var(--ok-soft);color:var(--ok);border-color:var(--ok-border)}.btn{display:inline-flex;align-items:center;gap:6px;padding:0 10px;height:28px;border-radius:999px;font-size:12px;font-weight:500;border:1px solid transparent;cursor:pointer;transition:background .14s ease,transform .14s ease,border-color .14s ease,opacity .14s ease}.btn-sm{height:24px;font-size:11px;padding:0 8px;gap:4px}.btn-lg{height:34px;font-size:13px;padding:0 14px}.btn-default{background:var(--bg-elev);color:var(--fg);border-color:var(--line-strong)}.btn-default:hover{background:var(--bg-hover);transform:translateY(-1px)}.btn-primary{background:var(--fg);color:var(--bg)}.btn-primary:hover{opacity:.88;transform:translateY(-1px)}.btn-accent{background:var(--accent);color:var(--accent-fg)}.btn-accent:hover{opacity:.9;transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--fg-muted)}.btn-ghost:hover{background:var(--bg-hover);color:var(--fg);transform:translateY(-1px)}.btn-danger{background:var(--bg-elev);color:var(--critical);border-color:var(--critical-border)}.btn-danger:hover{background:var(--critical-soft)}.btn[disabled]{opacity:.5;cursor:not-allowed}.tbl{width:100%;border-collapse:collapse;font-size:12px}.tbl th{text-align:left;font-weight:500;padding:8px 12px;color:var(--fg-subtle);text-transform:uppercase;font-size:10px;letter-spacing:.06em;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--bg-elev);position:-webkit-sticky;position:sticky;top:0}.tbl th.sortable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tbl th.sortable:hover,.tbl th.sorted{color:var(--fg)}.tbl td{padding:8px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.tbl tr{transition:background .08s}.tbl tr:hover td{background:var(--bg-subtle)}.tbl tr.clickable{cursor:pointer}.tbl tr.selected td{background:var(--accent-soft)}.tbl tr.attack-row{background:linear-gradient(90deg,rgba(220,38,38,.06),transparent);border-left:3px solid var(--critical)}.tbl tr.attack-row:hover td{background:rgba(220,38,38,.1)}.tbl tr.attack-row td:first-child{border-left:3px solid var(--critical);padding-left:9px}.tbl td.num,.tbl th.num{text-align:right;font-family:var(--mono)}.tbl-wrap{overflow-x:auto}.chart-label{font-size:9px;font-family:var(--mono);fill:var(--fg-subtle)}.hbar{display:flex;align-items:center;gap:10px;margin:4px 0}.hbar-label{width:140px;font-size:11px;color:var(--fg-muted);font-family:var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hbar-track{flex:1 1;height:6px;background:var(--bg-subtle);border-radius:2px;position:relative}.hbar-fill{height:100%;border-radius:2px;transition:width .3s}.hbar-val{font-family:var(--mono);font-size:11px;color:var(--fg);width:54px;text-align:right}.login-shell{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:var(--bg);background-image:var(--bg-hero)}.login-side{background:color-mix(in srgb,var(--bg-subtle) 82%,transparent);border-right:1px solid var(--line);padding:36px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-side:before{inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:24px 24px;opacity:.5;-webkit-mask-image:radial-gradient(circle at 30% 40%,#000 30%,transparent 70%);mask-image:radial-gradient(circle at 30% 40%,#000 30%,transparent 70%)}.login-side:after,.login-side:before{content:"";position:absolute;pointer-events:none}.login-side:after{inset:auto -40px 18% auto;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,var(--accent-soft),transparent 70%);filter:blur(8px);opacity:.75}.login-side>*{position:relative}.login-form-wrap{display:grid;place-items:center;padding:36px}.login-form{width:100%;max-width:360px;background:color-mix(in srgb,var(--bg-elev) 96%,transparent);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-lg);padding:28px}.login-title{font-size:22px;font-weight:600;letter-spacing:-.02em;margin:0 0 6px}.login-sub{color:var(--fg-muted);font-size:13px;margin-bottom:28px}.form-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.form-label{font-size:11px;color:var(--fg-muted);font-weight:500;letter-spacing:.02em}.form-input,.form-select{height:34px;padding:0 10px;border:1px solid var(--line-strong);border-radius:6px;background:var(--bg-elev);font-size:13px;color:var(--fg);outline:none}.form-input:focus,.form-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.threat-meter{display:flex;align-items:center;gap:10px;margin-top:12px}.threat-meter-bar{flex:1 1;height:24px;background:linear-gradient(90deg,var(--ok),var(--warn-fg),var(--critical));overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.08)}.threat-meter-bar,.threat-meter-fill{border-radius:999px;position:relative}.threat-meter-fill{height:100%;background:transparent;box-shadow:inset 0 1px 2px hsla(0,0%,100%,.2)}.threat-meter-fill.high{animation:alert-pulse 2s ease-in-out infinite}.threat-meter-label{font-size:12px;font-family:var(--mono);font-weight:600;min-width:60px;text-align:right}.threat-meter-label.critical{color:var(--critical);animation:alert-glow 2.5s ease-in-out infinite}.threat-meter-label.warn{color:var(--warn-fg)}.threat-meter-label.ok{color:var(--ok)}.form-hint{font-size:11px;color:var(--fg-subtle);margin-top:4px}.hero-card{background:color-mix(in srgb,var(--bg-elev) 98%,transparent);border:1px solid var(--line);border-radius:16px;padding:16px;font-family:var(--mono);font-size:12px;box-shadow:var(--shadow-lg);width:min(460px,100%)}.hero-card .row{display:flex;justify-content:space-between;padding:4px 0;color:var(--fg-muted)}.hero-card .row .v{color:var(--fg)}.dash-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-gap:16px;gap:16px}.span-3{grid-column:span 3}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.span-7{grid-column:span 7}.span-8{grid-column:span 8}.span-9{grid-column:span 9}.span-12{grid-column:span 12}.dropzone{border:1.5px dashed var(--line-strong);border-radius:16px;padding:48px 20px;text-align:center;background:var(--bg-subtle);cursor:pointer;transition:all .15s}.dropzone.active,.dropzone:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.dropzone-icon{width:44px;height:44px;border-radius:50%;background:var(--bg-elev);border:1px solid var(--line);display:grid;place-items:center;margin:0 auto 12px;color:var(--accent)}.steps{gap:4px}.step,.steps{display:flex;align-items:center}.step{gap:8px;padding:6px 10px;border-radius:6px;font-size:11px;color:var(--fg-muted);font-family:var(--mono);flex:1 1;border:1px solid var(--line);background:var(--bg)}.step.done{color:var(--ok);border-color:var(--ok-border);background:var(--ok-soft)}.step.active{color:var(--accent);border-color:var(--accent-border);background:var(--accent-soft)}.step.failed{color:var(--critical);border-color:var(--critical-border);background:var(--critical-soft)}.step-dot{width:14px;height:14px;border-radius:50%;display:grid;place-items:center;background:var(--bg-subtle);border:1px solid var(--line-strong);flex-shrink:0}.step.done .step-dot{background:var(--ok);border-color:var(--ok);color:#fff}.step.active .step-dot{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 0 var(--accent-soft)}50%{box-shadow:0 0 0 6px transparent}}.progress-bar{width:100%;height:4px;background:var(--bg-subtle);border-radius:2px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--accent);transition:width .3s}.alert{display:flex;gap:10px;padding:10px 14px;border:1px solid;border-radius:12px;font-size:12px;align-items:flex-start}.alert-warn{background:var(--warn-soft);border-color:var(--warn-border);color:var(--warn-fg)}.alert-crit{background:var(--critical-soft);border-color:var(--critical-border);color:var(--critical)}.alert-info{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent)}.alert-title{font-weight:600;margin-bottom:2px;color:var(--fg)}.alert-body{color:var(--fg-muted)}.alert-actions{margin-left:auto;display:flex;gap:6px}.toggle{width:30px;height:18px;background:var(--bg-subtle);border:1px solid var(--line-strong);border-radius:10px;cursor:pointer;position:relative;transition:all .15s;flex-shrink:0}.toggle.on{background:var(--accent);border-color:var(--accent)}.toggle-thumb{position:absolute;top:1px;left:1px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 2px rgba(0,0,0,.15)}.toggle.on .toggle-thumb{transform:translateX(12px)}.slider{-webkit-appearance:none;width:100%;height:4px;background:var(--bg-subtle);border-radius:2px;outline:none}.slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;background:var(--fg);border-radius:50%;cursor:pointer}.slider::-moz-range-thumb{width:14px;height:14px;background:var(--fg);border-radius:50%;cursor:pointer;border:0}.shap-row{display:grid;grid-template-columns:110px 1fr 60px;grid-gap:10px;gap:10px;align-items:center;padding:3px 0}.shap-label{font-family:var(--mono);font-size:11px;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shap-bar{position:relative;height:14px}.shap-bar:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:var(--line-strong)}.shap-bar-neg,.shap-bar-pos{position:absolute;top:2px;bottom:2px;border-radius:2px}.shap-bar-pos{background:var(--critical);left:50%}.shap-bar-neg{background:var(--ok);right:50%}.shap-val{font-family:var(--mono);font-size:11px;text-align:right;color:var(--fg-muted)}.menu{position:absolute;background:var(--bg-elev);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow-lg);padding:4px;min-width:180px;z-index:100}.menu-item{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:4px;font-size:12px;cursor:pointer;color:var(--fg)}.menu-item:hover{background:var(--bg-hover)}.menu-item.destructive{color:var(--critical)}.menu-divider{height:1px;background:var(--line);margin:4px 0}.menu-label{font-size:10px;color:var(--fg-subtle);text-transform:uppercase;padding:4px 10px;font-family:var(--mono);letter-spacing:.06em}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.35);display:grid;place-items:center;z-index:200;animation:fadein .15s ease}@keyframes fadein{0%{opacity:0}}.modal{background:var(--bg-elev);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-lg);width:min(520px,90vw);max-height:86vh;overflow:auto}.modal-head{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modal-title{font-size:14px;font-weight:600}.modal-body{padding:18px}.modal-foot{padding:12px 18px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.slideover-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.2);z-index:150;animation:fadein .15s ease}.slideover{position:fixed;top:0;right:0;bottom:0;width:min(540px,92vw);background:var(--bg-elev);border-left:1px solid var(--line);box-shadow:var(--shadow-lg);z-index:160;display:flex;flex-direction:column;animation:slidein .18s ease}@keyframes slidein{0%{transform:translateX(16px);opacity:0}}.slideover-head{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.slideover-body{padding:16px 18px;overflow-y:auto;flex:1 1}.tweaks-panel{position:fixed;bottom:16px;right:16px;background:var(--bg-elev);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-lg);width:260px;padding:12px;z-index:300;font-size:12px}.tweaks-title{font-size:11px;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.08em;font-family:var(--mono);margin-bottom:10px}.tweak-row,.tweaks-title{display:flex;justify-content:space-between;align-items:center}.tweak-row{padding:6px 0}.tweak-chips{display:flex;gap:4px}.tweak-chip{font-size:11px;font-family:var(--mono);padding:2px 8px;border-radius:4px;border:1px solid var(--line);background:var(--bg);cursor:pointer;color:var(--fg-muted)}.tweak-chip.on{background:var(--fg);color:var(--bg);border-color:var(--fg)}.row{align-items:center}.col,.row{display:flex;gap:8px}.col{flex-direction:column}.gap-4{gap:4px}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.muted{color:var(--fg-muted)}.subtle{color:var(--fg-subtle)}.hlink{color:var(--accent);cursor:pointer}.hlink:hover{text-decoration:underline}.divider{height:1px;background:var(--line);margin:10px 0}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.legend{display:flex;flex-wrap:wrap;gap:10px;font-size:11px;color:var(--fg-muted)}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:4px;vertical-align:middle}.tag{font-family:var(--mono);font-size:10px;padding:1px 5px;border-radius:3px;background:var(--bg-subtle);border:1px solid var(--line)}.empty,.tag{color:var(--fg-muted)}.empty{text-align:center;padding:48px 20px;font-size:13px}.stat-strip{display:flex;gap:18px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--bg);align-items:center}.stat-strip .stat{display:flex;flex-direction:column;gap:2px}.stat-strip .stat-label{font-size:10px;color:var(--fg-subtle);text-transform:uppercase;letter-spacing:.06em}.stat-strip .stat-value{font-family:var(--mono);font-size:13px}