@import"https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600;700&family=Fira+Sans:wght@300;400;500;600;700;800&display=swap";:root{color-scheme:dark;--bg: #07101d;--bg-deep: #030712;--bg-panel: rgba(8, 13, 24, .92);--surface: rgba(13, 23, 39, .92);--surface-2: rgba(18, 31, 52, .92);--surface-3: rgba(29, 43, 68, .78);--border: rgba(140, 158, 190, .28);--border-strong: rgba(174, 193, 230, .42);--text: #f4f8ff;--text-soft: #d7e1f1;--muted: #aab8d0;--muted-2: #7f8da8;--primary: #2f81f7;--primary-2: #4cc9f0;--accent: #ffb454;--success: #4ade80;--warning: #facc15;--danger: #fb7185;--focus: #9cdcfe;--radius-xl: 28px;--radius-lg: 20px;--radius-md: 14px;--shadow: 0 24px 80px rgba(0, 0, 0, .42);--shadow-soft: 0 14px 42px rgba(0, 0, 0, .28);--shadow-glow: 0 0 0 1px rgba(76, 201, 240, .08), 0 16px 48px rgba(0, 0, 0, .28);font-family:Fira Sans,Avenir Next,Segoe UI,sans-serif;font-size:16px}*{box-sizing:border-box}html{min-width:0}body{margin:0;min-height:100vh;color:var(--text);background:radial-gradient(circle at 18% 12%,rgba(47,129,247,.18),transparent 30%),radial-gradient(circle at 88% 8%,rgba(76,201,240,.14),transparent 26%),radial-gradient(circle at 74% 82%,rgba(255,180,84,.1),transparent 28%),linear-gradient(180deg,var(--bg-deep) 0%,var(--bg) 58%,#050b14 100%);overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:36px 36px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.92),transparent 78%);mask-image:linear-gradient(180deg,rgba(0,0,0,.92),transparent 78%)}#root{min-height:100vh}a{color:inherit;text-decoration:none}button,select,input,textarea,.button-link{min-height:44px;border:1px solid var(--border);background:#0c1523eb;color:var(--text);border-radius:999px;padding:.72rem 1rem;font:inherit;transition:border-color .18s ease,background .18s ease,transform .18s ease,color .18s ease,box-shadow .18s ease}button,.button-link,select{cursor:pointer}button,.button-link{display:inline-flex;align-items:center;justify-content:center;gap:.5rem}button:hover,select:hover,input:hover,textarea:hover,.button-link:hover{border-color:var(--border-strong);background:#16243af5}button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible,.button-link:focus-visible{outline:3px solid rgba(156,220,254,.5);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.55;transform:none}button:not(:disabled):active,.button-link:active{transform:translateY(1px) scale(.99)}input[type=checkbox]{width:1rem;height:1rem;min-height:1rem;padding:0;accent-color:var(--primary-2)}code,pre,.mono,.run-card h3,.overview-grid strong,.metric-card h3{font-family:Fira Code,SFMono-Regular,Cascadia Code,monospace}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{display:grid;grid-template-columns:320px minmax(0,1fr);min-height:100vh;position:relative}.mobile-topbar{display:none}.mobile-topbar-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:14px;color:var(--primary-2);border:1px solid rgba(76,201,240,.28);background:linear-gradient(135deg,#2f81f73d,#4cc9f014)}.sidebar{position:sticky;top:0;height:100vh;padding:1.5rem;border-right:1px solid var(--border);background:linear-gradient(180deg,#07101df5,#040a13e6),#050a14db;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:5}.sidebar-inner{display:grid;gap:1.5rem;height:100%}.brand{display:grid;gap:.7rem}.brand-mark{width:48px;height:48px;display:grid;place-items:center;border-radius:16px;color:var(--primary-2);background:linear-gradient(135deg,#2f81f747,#4cc9f01f);border:1px solid rgba(76,201,240,.36);box-shadow:inset 0 1px #ffffff14}.brand h1,.page-hero h2,.panel h2{margin:0;letter-spacing:-.035em}.brand h1{font-size:clamp(1.75rem,3vw,2.25rem);line-height:1.02}.brand-copy,.sidebar-note p,.page-copy,.metric-key,.artifact-item span,.section-meta,.field-stack small,.script-contract p{color:var(--muted)}.brand-copy,.page-copy,.section-copy,.script-contract p{line-height:1.65}.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;font-weight:700;color:var(--primary-2)}.nav{display:grid;gap:.65rem;margin:0}.nav-link{display:flex;align-items:center;gap:.65rem;min-height:48px;padding:.85rem 1rem;border-radius:var(--radius-md);border:1px solid transparent;color:var(--muted);transition:.18s ease}.nav-link.active,.nav-link:hover{color:var(--text);background:#2f81f71a;border-color:#4cc9f047}.nav-link-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;background:#ffffff0a}.nav-link-copy{display:grid;gap:.1rem;flex:1}.nav-link-copy small{color:var(--muted)}.nav-link-chevron{color:var(--muted-2)}.sidebar-section{display:grid;gap:.8rem}.sidebar-section-label{margin:0;color:var(--muted-2);text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;font-weight:700}.sidebar-section-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.status-dot{display:inline-flex;align-items:center;gap:.4rem;min-height:28px;padding:.2rem .7rem;border-radius:999px;border:1px solid rgba(255,255,255,.1);color:var(--text-soft);background:#ffffff0a;font-size:.78rem;font-weight:700}.status-dot:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px #ffffff08}.status-dot.online{color:var(--success)}.sidebar-stack{display:grid;gap:.8rem}.sidebar-note{display:grid;grid-template-columns:auto 1fr;gap:.7rem;padding:.9rem;border-radius:var(--radius-lg);background:#ffffff09;border:1px solid rgba(255,255,255,.08)}.sidebar-note strong{display:block;margin-bottom:.2rem}.sidebar-note p{margin:0;font-size:.88rem}.main-panel{min-width:0;padding:1.5rem 1.5rem 2rem}.page{display:grid;gap:1.1rem;max-width:1720px;margin:0 auto}.section-title{margin:.18rem 0 0;font-size:clamp(1.1rem,2vw,1.5rem);letter-spacing:-.02em}.compact-copy{max-width:64ch}.page-hero,.panel-header,.run-card-header,.header-actions,.hero-actions,.card-actions,.run-meta,.artifact-list,.detail-grid{display:flex;gap:1rem}.page-hero,.panel-header,.run-card-header{justify-content:space-between;align-items:flex-start}.page-hero{position:relative;overflow:hidden;padding:1.75rem;border-radius:var(--radius-xl);border:1px solid rgba(76,201,240,.24);background:radial-gradient(circle at top left,rgba(76,201,240,.14),transparent 28%),linear-gradient(135deg,rgba(47,129,247,.16),transparent 38%),linear-gradient(180deg,#152237f5,#0b1321f0);box-shadow:var(--shadow-glow)}.page-hero:after{content:"";position:absolute;inset:auto 1.5rem 0;height:1px;background:linear-gradient(90deg,transparent,rgba(76,201,240,.7),transparent)}.page-hero h2{margin-top:.3rem;font-size:clamp(2rem,4vw,3.4rem)}.hero-actions,.card-actions,.run-meta,.artifact-list{flex-wrap:wrap;align-items:center}.primary-action{color:#06111f;border-color:transparent;background:linear-gradient(135deg,var(--primary-2),var(--accent));font-weight:800;box-shadow:0 14px 32px #4cc9f02e}.primary-action:hover{color:#06111f;background:linear-gradient(135deg,#74dcff,#ffc66d)}.button-link{text-decoration:none}.terminal-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.85rem}.terminal-summary article,.panel,.run-card,.metric-card,.secondary-panel{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.terminal-summary article{min-height:94px;display:grid;align-content:center;gap:.3rem;padding:1rem;border-radius:var(--radius-lg);position:relative;overflow:hidden}.terminal-summary article:after{content:"";position:absolute;inset:auto 0 0;height:3px;opacity:.7;background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent)}.terminal-summary span{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:.75rem}.terminal-summary strong{font:700 2rem/1 Fira Code,monospace}.summary-running strong{color:var(--warning)}.summary-pending strong{color:var(--primary-2)}.summary-succeeded strong{color:var(--success)}.summary-failed strong{color:var(--danger)}.summary-canceled strong{color:#fda4af}.operations-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.95rem}.operations-panel{padding:1.1rem 1.15rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:linear-gradient(180deg,#0d1727eb,#080d18f5);box-shadow:var(--shadow-soft)}.operations-panel-head{display:flex;align-items:center;justify-content:space-between;gap:.7rem;color:var(--muted)}.operations-panel h3{margin:.55rem 0 .35rem;font-size:1.35rem;letter-spacing:-.03em}.operations-panel p:last-child{margin:0;color:var(--muted);line-height:1.6}.filter-panel{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;padding:1.1rem 1.15rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:#070d18ad}.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;padding:.5rem;border:1px solid var(--border);border-radius:var(--radius-md);background:#050b14a3;width:fit-content;max-width:100%}.filter-select-control{display:grid;gap:.25rem;min-width:170px;color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.filter-select-control select{min-height:40px;padding:.55rem 2rem .55rem .7rem;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);background:var(--surface-2);font:inherit;letter-spacing:normal;text-transform:none}.panel,.run-card{padding:1.25rem;border-radius:var(--radius-xl)}.section-heading-row{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.chart-help{position:relative;min-width:36px;min-height:36px;width:36px;height:36px;padding:0;border-radius:999px;color:var(--muted);background:#ffffff09}.chart-help:hover,.chart-help:focus-visible{color:var(--text);background:#4cc9f01f}.chart-help-copy{position:absolute;left:50%;top:calc(100% + .7rem);z-index:12;width:min(320px,calc(100vw - 3rem));padding:.85rem .95rem;border-radius:var(--radius-md);border:1px solid var(--border-strong);background:#050b14fa;box-shadow:var(--shadow-soft);color:var(--text-soft);font-size:.84rem;line-height:1.55;text-align:left;pointer-events:none;opacity:0;transform:translate(-50%,-.35rem);transition:opacity .16s ease,transform .16s ease}.chart-help:hover .chart-help-copy,.chart-help:focus-visible .chart-help-copy{opacity:1;transform:translate(-50%)}.run-grid,.metric-grid{display:grid;gap:1rem}.run-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.run-card{display:grid;gap:1rem;transition:transform .18s ease,border-color .18s ease,background .18s ease}.run-card:hover{transform:translateY(-3px);border-color:#4cc9f075;background:var(--surface-2)}.run-card-identity{display:grid;gap:.25rem}.run-card h3,.panel h2{margin:.2rem 0 0}.run-card h3{font-size:1rem;color:var(--text-soft)}.run-signal{margin:0;color:var(--accent);font-weight:700}.run-card-caption{margin:.1rem 0 0;color:var(--muted);line-height:1.45;max-width:38ch}.run-meta{color:var(--muted);font-size:.86rem}.run-meta span{padding:.3rem .55rem;border-radius:999px;background:#ffffff0a}.run-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin:0}.run-summary div,.snapshot-item{padding:.9rem;border-radius:var(--radius-md);background:#ffffff0a;border:1px solid rgba(255,255,255,.06)}.run-summary dt,.overview-grid span,.snapshot-item span{color:var(--muted);font-size:.82rem}.run-summary dd,.overview-grid strong{margin:.32rem 0 0;font-size:1.15rem}.run-error{margin:0;color:#fecdd3;line-height:1.5}.card-actions a,.card-actions button,.artifact-item{border:1px solid var(--border);border-radius:999px;padding:.65rem .85rem;color:var(--text-soft)}.card-actions a:hover,.card-actions button:hover,.artifact-item:hover{border-color:var(--primary-2);background:#4cc9f014}.warning-action{color:#fde68a;border-color:#facc1547;background:#facc1514}.warning-action:hover{border-color:#facc1573;background:#facc1524}.danger-action{color:#fecdd3;border-color:#fb718547;background:#fb718514}.danger-action:hover{border-color:#fb718575;background:#fb718524}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:1.5rem;background:#02060ebd;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.dialog-panel{width:min(100%,560px);display:grid;gap:1rem;padding:1.4rem;border-radius:var(--radius-xl);border:1px solid rgba(251,113,133,.24);background:radial-gradient(circle at top right,rgba(251,113,133,.12),transparent 32%),#07101dfa;box-shadow:0 26px 80px #0000007a}.dialog-eyebrow{margin:0;text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;color:#fda4af}.warning-eyebrow{color:#fde68a}.dialog-panel h3{margin:0;font-size:clamp(1.4rem,2vw,1.85rem);letter-spacing:-.03em}.dialog-panel p{margin:0;line-height:1.65;color:var(--text-soft)}.dialog-run-id{color:var(--text)}.dialog-meta{display:flex;flex-wrap:wrap;gap:.65rem}.dialog-meta span{display:inline-flex;align-items:center;min-height:32px;padding:.3rem .7rem;border-radius:999px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:var(--muted);font-size:.83rem}.dialog-actions{display:flex;justify-content:flex-end;gap:.8rem;flex-wrap:wrap}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.metric-card{padding:1.1rem;border-radius:var(--radius-lg);display:grid;gap:.7rem}.metric-card-top{display:flex;justify-content:space-between;gap:.8rem}.metric-label{margin:0 0 .5rem;color:var(--muted)}.metric-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:11px;color:var(--primary-2);background:#4cc9f01a}.metric-card h3{margin:0;font-size:clamp(1.5rem,3vw,2.15rem);overflow-wrap:anywhere}.metric-card-footer{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.metric-tone{display:inline-flex;min-height:28px;align-items:center;padding:.2rem .7rem;border-radius:999px;color:var(--text-soft);background:#ffffff0d;font-size:.76rem;font-weight:700}.metric-context{margin:.55rem 0 0;color:var(--text-dim);font-size:.78rem;line-height:1.4}.metric-card-positive .metric-icon{color:var(--success);background:#4ade801f}.metric-card-warning .metric-icon{color:var(--warning);background:#facc151f}.metric-card-negative .metric-icon{color:var(--danger);background:#fb71851f}.status-badge{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:36px;min-width:110px;padding:.48rem .8rem;border-radius:999px;font-weight:800;border:1px solid currentColor}.status-pending{background:#4cc9f01f;color:var(--primary-2)}.status-running{background:#facc1521;color:var(--warning)}.status-succeeded{background:#4ade8021;color:var(--success)}.status-failed{background:#fb718521;color:var(--danger)}.status-canceled{background:#fda4af1f;color:#fda4af}.status-running svg{animation:spin 1.2s linear infinite}.empty-state,.error-state,.success-state,.skeleton-panel{padding:1.35rem;border-radius:var(--radius-lg);border:1px solid var(--border);background:#0a1220c7}.error-state{color:#fecdd3;border-color:#fb71856b}.success-state{color:var(--success);border-color:#4ade805c}.compact{padding:1rem}.action-state{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.action-state p{margin:.2rem 0 0;color:var(--muted)}.skeleton-panel{position:relative;overflow:hidden;min-height:112px;color:var(--muted)}.skeleton-panel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent);animation:shimmer 1.2s infinite}.new-run-panel{border-color:#4cc9f061;box-shadow:var(--shadow-glow)}.new-run-form{display:grid;gap:1rem}.new-run-form fieldset,.side-fieldset,.code-fieldset{min-width:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:0;padding:1rem;border:1px solid var(--border);border-radius:var(--radius-lg)}.new-run-form legend{padding:0 .5rem;color:var(--accent);font-weight:800}.new-run-form label,.field-stack{display:grid;gap:.45rem;color:var(--muted);font-size:.88rem}.new-run-form input,.new-run-form textarea,.new-run-form select{width:100%}.new-run-form textarea{min-height:172px;border-radius:var(--radius-md);line-height:1.55;resize:vertical}.custom-factor-builder{display:grid;gap:1rem;padding:1rem;border:1px solid rgba(76,201,240,.22);border-radius:var(--radius-lg);background:#050d1a94}.custom-factor-builder-head,.custom-factor-controls,.custom-factor-actions,.custom-factor-preview{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.custom-factor-builder-head{justify-content:space-between}.custom-factor-builder-head small,.custom-factor-builder .field-label{display:block}.custom-factor-builder-head small{margin-top:.25rem}.custom-factor-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}.custom-factor-field-browser{display:grid;gap:.7rem}.custom-field-search{display:grid;gap:.35rem;max-width:440px;color:var(--muted);font-size:.78rem;font-weight:700}.custom-field-search>div{display:flex;align-items:center;gap:.5rem;min-height:42px;padding:0 .7rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:#040a1394}.custom-field-search input{min-width:0;padding:0;border:0;background:transparent}.custom-field-selection-count{margin:0;color:var(--muted);font-size:.8rem}.custom-factor-source{border:1px solid var(--border);border-radius:var(--radius-md);background:#040a1357}.custom-factor-source summary{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:48px;padding:.65rem .8rem;cursor:pointer}.custom-factor-source summary span{font-weight:750}.custom-factor-source summary small{color:var(--muted);text-align:right}.custom-factor-source .custom-factor-fields{padding:0 .7rem .7rem}.custom-factor-field-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.55rem;min-width:0;padding:.25rem 0}.custom-factor-field-label{min-width:0;color:var(--text);font-size:.84rem;line-height:1.25;overflow-wrap:anywhere}.field-key-insert{max-width:100%;min-height:32px;padding:.25rem .45rem;border-color:#4cc9f047;color:var(--primary-2);background:#4cc9f014;font-family:var(--font-mono);font-size:.7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.field-key-insert:hover,.field-key-insert:focus-visible{background:#4cc9f029}.custom-factor-field-group{display:grid;gap:.35rem;min-width:0;margin:0;padding:.65rem;border:1px solid var(--border);border-radius:var(--radius-md)}.custom-factor-field-group legend{font-size:.76rem}.custom-factor-controls>*{flex:1 1 180px}.custom-factor-preview{align-items:flex-start;padding:.8rem;border:1px solid rgba(139,228,165,.35);border-radius:var(--radius-md);color:var(--text);background:#2053412e}.custom-factor-preview pre{flex-basis:100%;max-height:180px;margin:0;overflow:auto;font-size:.75rem}.form-error{color:var(--danger)}.mode-grid,.signal-type-grid{grid-column:1 / -1;display:grid;gap:.85rem}.mode-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.signal-type-picker{grid-column:1 / -1;display:grid;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.signal-type-section{display:grid;gap:.65rem}.signal-type-heading{margin:0;color:var(--text-soft);font-size:.85rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.signal-type-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.signal-type-card{min-height:112px}.template-card{min-height:132px;display:grid;justify-items:start;align-content:start;gap:.45rem;text-align:left;border-radius:var(--radius-lg);background:#ffffff09}.template-card span{color:var(--muted);line-height:1.45;font-size:.88rem}.template-card.active{border-color:var(--primary-2);background:linear-gradient(135deg,#2f81f733,#4cc9f014);box-shadow:inset 0 0 0 1px #4cc9f024}.wide-field{grid-column:1 / -1}.code-input{min-height:440px;font-family:Fira Code,SFMono-Regular,Cascadia Code,monospace;font-size:.86rem;white-space:pre;-moz-tab-size:2;tab-size:2}.json-input{min-height:150px;font-family:Fira Code,SFMono-Regular,Cascadia Code,monospace}.toggle-row{align-content:center;grid-template-columns:auto 1fr;grid-column:span 2}.toggle-group{display:flex;gap:.65rem;flex-wrap:wrap}.markdown-content h1,.markdown-content h2,.markdown-content h3{color:var(--text);margin:.9rem 0 .45rem}.markdown-content p,.markdown-content li{color:var(--muted);line-height:1.6}.markdown-content table{width:100%;border-collapse:collapse;margin:.8rem 0}.markdown-content th,.markdown-content td{padding:.55rem .7rem;border-bottom:1px solid var(--border);text-align:left}.comparison-picker,.comparison-meta{margin-bottom:1rem}.comparison-run-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.comparison-run-option{display:grid;grid-template-columns:auto 1fr;gap:.75rem;align-items:start;padding:.85rem;border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer}.comparison-run-option.selected{border-color:var(--primary-2);background:#2f81f71f}.comparison-run-option span{display:grid;gap:.25rem}.comparison-run-option small,.comparison-meta span{color:var(--muted)}.comparison-meta{display:flex;gap:1rem;flex-wrap:wrap}.custom-signal-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.8fr);gap:1rem;align-items:start}.code-fieldset,.side-fieldset{grid-template-columns:1fr}.script-contract{display:grid;gap:.85rem}.contract-card{display:grid;grid-template-columns:auto 1fr;gap:.75rem;padding:1rem;border-radius:var(--radius-lg);border:1px solid var(--border);background:#ffffff09}.contract-card p{margin:.3rem 0 0}.contract-card small{display:block;margin-top:.45rem;color:var(--text-dim)}.contract-list{margin:.55rem 0 0;padding-left:1rem;color:var(--text-dim)}.contract-list li+li{margin-top:.35rem}.diagnostics-panel ul{margin:.75rem 0 0;padding-left:1.15rem;color:var(--text-dim)}.diagnostics-panel li+li{margin-top:.45rem}.form-actions{display:flex;gap:1rem;flex-wrap:wrap}.research-console{display:grid;gap:1rem}.console-overview-stack{display:grid;gap:1rem;padding:1rem;border-radius:var(--radius-xl);border:1px solid rgba(76,201,240,.24);background:#050c16cc;box-shadow:var(--shadow-soft)}.console-header{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.95rem}.console-snapshot{display:grid;gap:.8rem}.console-tab-rail{position:sticky;top:.8rem;z-index:3;display:grid;gap:.75rem;padding:.85rem 1rem;border-radius:var(--radius-xl);border:1px solid rgba(76,201,240,.24);background:#050c16d6;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--shadow-soft)}.console-tab-rail-copy{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.45rem 1rem}.console-tab-rail-copy strong{font-size:.94rem;color:var(--text)}.console-metrics{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.dashboard-tabs-wrap{overflow-x:auto;scrollbar-width:thin}.dashboard-tabs{display:flex;gap:.55rem;width:max-content;min-width:100%;padding:.45rem;border:1px solid var(--border);border-radius:999px;background:#080d18b8}.dashboard-tab{cursor:pointer;min-height:44px;white-space:nowrap;display:grid;align-content:center;justify-items:start;gap:.1rem}.dashboard-tab small{color:var(--muted-2);text-transform:uppercase;letter-spacing:.14em;font-size:.66rem}.dashboard-tab.active,.dashboard-tab[aria-selected=true]{color:#06111f;background:linear-gradient(135deg,var(--primary-2),var(--accent));border-color:transparent;font-weight:800}.tab-stack{display:grid;gap:1.25rem}.chart-panel{overflow:hidden}.chart-wrap,.plotly-wrap,.recharts-wrap{margin-top:1rem;height:340px;min-width:0}.plotly-wrap.tall,.recharts-wrap.tall{height:480px}.chart-grid{display:grid;gap:1rem}.chart-grid.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-grid.three-col{grid-template-columns:repeat(3,minmax(0,1fr))}.panel-stat{color:var(--muted)}.detail-grid{display:grid;grid-template-columns:1.5fr .9fr}.detail-hero-meta{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}.detail-hero-meta span{padding:.35rem .65rem;border-radius:999px;background:#ffffff0f;color:var(--text-soft);font-size:.84rem}.risk-panel{min-height:100%}.risk-score-ring{width:180px;height:180px;margin:1rem auto;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,rgba(8,17,31,1) 52%,transparent 53%),conic-gradient(from 220deg,var(--danger),var(--accent),var(--primary-2),var(--success),var(--danger))}.risk-score-value{font-size:2.5rem;font-weight:800}.risk-label,.risk-copy{text-align:center}.snapshot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.8rem;margin-top:1rem}.snapshot-item{display:grid;gap:.35rem}.snapshot-item strong{font-size:1.35rem}.heatmap-grid{display:grid;gap:.35rem;margin-top:1rem}.heatmap-corner,.heatmap-axis,.heatmap-cell{display:grid;place-items:center;min-height:56px;border-radius:var(--radius-md)}.heatmap-row{display:grid;gap:.35rem;grid-template-columns:120px repeat(auto-fit,minmax(80px,1fr))}.heatmap-axis,.heatmap-corner{background:#ffffff0a;color:var(--muted)}.heatmap-cell{color:#050b14;font-weight:800}.overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem}.overview-grid>div{min-width:0;padding:.9rem;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.07);background:#ffffff09}.overview-grid strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.config-block{margin:1rem 0 0;padding:1rem;border-radius:var(--radius-lg);background:#02060eb8;color:#d7e5ff;overflow-x:auto;line-height:1.55}.secondary-panel summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem}.secondary-panel summary strong{display:block;margin-top:.2rem;font-size:1.1rem}.artifact-list{margin-top:1rem}.artifact-item{flex:1 1 240px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.25rem .6rem;border-radius:var(--radius-lg);background:#ffffff09}.artifact-item span{grid-column:2}.table-wrap{margin-top:1rem;overflow-x:auto;border-radius:var(--radius-lg);border:1px solid rgba(255,255,255,.08)}.data-table{width:100%;min-width:640px;border-collapse:collapse;border-spacing:0}.data-table th,.data-table td{padding:.85rem 1rem;text-align:left;border-bottom:1px solid rgba(255,255,255,.08);overflow-wrap:anywhere}.data-table th{color:var(--accent);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;background:#ffffff08}.data-table td{color:var(--text-soft)}.section-copy{margin-top:1rem;color:var(--muted);line-height:1.7}.factor-library-page{padding-bottom:2rem}.factor-library-version,.selection-count{display:inline-flex;align-items:center;gap:.55rem;min-height:40px;padding:.55rem .85rem;border:1px solid rgba(76,201,240,.26);border-radius:999px;color:var(--text-soft);background:#050b148a;font:600 .78rem/1.2 Fira Code,monospace}.factor-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.runtime-notice{display:grid;grid-template-columns:auto 1fr;gap:.85rem;align-items:flex-start;padding:1rem 1.1rem;border:1px solid rgba(250,204,21,.34);border-radius:var(--radius-lg);color:#fde68a;background:#713f1229}.runtime-notice p{margin:.3rem 0 0;color:var(--text-soft);line-height:1.55}.runtime-notice.with-retry{grid-template-columns:auto 1fr auto;align-items:center}.factor-library-panel,.batch-composer,.batch-result{display:grid;gap:1.1rem}.factor-filter-grid{display:grid;grid-template-columns:minmax(240px,1.4fr) repeat(4,minmax(150px,1fr));gap:.8rem;align-items:end}.factor-search{display:grid;gap:.25rem;color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.factor-search-input{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.55rem;min-height:44px;padding-left:.8rem;border:1px solid var(--border);border-radius:999px;color:var(--muted);background:#0c1523eb}.factor-search-input:focus-within{border-color:var(--focus);box-shadow:0 0 0 3px #9cdcfe2e}.factor-search-input input{min-height:42px;padding-left:0;border:0;background:transparent;text-transform:none}.factor-search-input input:focus-visible{outline:0}.factor-table-wrap{max-width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:#040a1385}.factor-table{min-width:1040px}.factor-table tbody tr{transition:background .18s ease}.factor-table tbody tr:hover{background:#4cc9f00e}.factor-table th:first-child,.factor-table td:first-child{width:58px;padding:.2rem .4rem}.factor-check{width:44px;height:44px;display:grid;place-items:center;cursor:pointer}.factor-check:has(input:disabled){cursor:not-allowed}.factor-identity{display:grid;gap:.28rem;min-width:235px}.factor-identity strong{color:var(--text)}.factor-identity code,.dependency-list code{color:var(--primary-2);font-size:.76rem}.factor-identity span{max-width:42ch;color:var(--muted);font-size:.82rem;line-height:1.45}.factor-identity .factor-type-badge{justify-self:start;display:inline-flex;align-items:center;padding:.14rem .5rem;border:1px solid var(--border);border-radius:999px;color:var(--text-soft);background:#ffffff0a;font-size:.66rem;font-weight:800;letter-spacing:.06em;line-height:1.2;max-width:none}.factor-type-security{color:var(--primary-2);border-color:#4cc9f057;background:#4cc9f01a}.factor-type-market{color:#c4b5fd;border-color:#a78bfa57;background:#a78bfa1f}.factor-market-cell{color:var(--muted)}.factor-state{display:inline-flex;align-items:center;min-height:32px;padding:.35rem .65rem;border:1px solid var(--border);border-radius:999px;color:var(--text-soft);background:#ffffff0a;font-size:.72rem;font-weight:800;letter-spacing:.04em;white-space:nowrap}.factor-state-eligible,.factor-state-succeeded,.factor-state-complete{color:var(--success);border-color:#4ade8057;background:#4ade801a}.factor-state-monitoring,.factor-state-running,.factor-state-evaluated{color:var(--primary-2);border-color:#4cc9f057;background:#4cc9f01a}.factor-state-degraded,.factor-state-succeeded_with_failures,.factor-state-partial{color:var(--warning);border-color:#facc1557;background:#facc151a}.factor-state-rejected,.factor-state-failed{color:var(--danger);border-color:#fb718557;background:#fb71851a}.factor-metrics{font-family:Fira Code,monospace;font-variant-numeric:tabular-nums}.factor-metrics span{display:block}.factor-metrics span+span{margin-top:.25rem;color:var(--muted)}.dependency-list{display:flex;flex-wrap:wrap;gap:.35rem;max-width:240px}.dependency-list code{padding:.25rem .4rem;border-radius:7px;background:#4cc9f014}.batch-form{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:.9rem}.batch-form>label{display:grid;gap:.45rem;color:var(--muted);font-size:.84rem}.batch-form input{width:100%}.batch-form input[readonly]{color:var(--text-soft);background:#ffffff09}.batch-toggle{grid-column:1 / -1;grid-template-columns:auto 1fr;align-items:center;min-height:64px;padding:.75rem .9rem;border:1px solid var(--border);border-radius:var(--radius-md);background:#ffffff08}.batch-toggle input{width:1.1rem;min-height:1.1rem}.batch-toggle span{display:grid;gap:.2rem}.batch-toggle strong{color:var(--text)}.batch-toggle small{color:var(--muted);line-height:1.45}.batch-submit-row{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.2rem}.batch-submit-row p{margin:0;color:var(--muted)}.batch-counts{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.7rem}.batch-counts div{display:grid;gap:.25rem;padding:.8rem;border:1px solid var(--border);border-radius:var(--radius-md);background:#ffffff09}.batch-counts span{color:var(--muted);font-size:.72rem;text-transform:uppercase}.batch-counts strong{font:700 1.35rem/1 Fira Code,monospace}.batch-failures{display:grid;gap:.65rem}.batch-failures h3{margin:0}.batch-failures article{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,.8fr) minmax(240px,2fr);gap:.8rem;padding:.8rem;border:1px solid rgba(251,113,133,.24);border-radius:var(--radius-md);background:#fb71850f}.batch-failures span{color:var(--muted)}@keyframes shimmer{to{transform:translate(100%)}}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}@media(max-width:1180px){.app-shell{grid-template-columns:1fr}.mobile-topbar{position:sticky;top:0;z-index:8;display:flex;align-items:center;gap:.9rem;padding:.85rem 1rem;border-bottom:1px solid var(--border);background:#050a14eb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.sidebar{position:relative;height:auto;padding-block:.85rem;border-right:none;border-bottom:1px solid var(--border)}.sidebar-inner{height:auto;gap:0}.sidebar .brand,.sidebar-section:last-child,.sidebar-section-label{display:none}.nav{margin:0;grid-template-columns:repeat(2,minmax(220px,1fr));width:100%}.research-console{gap:.85rem}.console-overview-stack,.console-tab-rail{border-radius:var(--radius-lg)}.console-tab-rail{top:0}.terminal-summary,.factor-summary,.operations-strip,.overview-grid,.chart-grid.two-col,.chart-grid.three-col,.detail-grid,.custom-signal-layout{grid-template-columns:1fr}.factor-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.factor-search{grid-column:1 / -1}.batch-counts{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.main-panel,.sidebar{padding:1rem}.mobile-topbar>div:last-child{min-width:0}.mobile-topbar strong{display:block;overflow:hidden;font-size:1rem;text-overflow:ellipsis;white-space:nowrap}.nav{grid-template-columns:repeat(2,minmax(0,1fr))}.nav-link{padding:.7rem}.nav-link-copy small,.nav-link-chevron{display:none}.page-hero,.panel-header,.run-card-header{flex-direction:column}.hero-actions{width:100%}.hero-actions>*,.form-actions>*{flex:1 1 160px}.terminal-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-panel{padding:1rem}.filter-bar,.dashboard-tabs{border-radius:var(--radius-lg);width:100%}.run-grid{grid-template-columns:1fr}.custom-factor-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.custom-factor-source summary{align-items:flex-start;flex-direction:column}.custom-factor-source summary small{text-align:left}.run-summary,.new-run-form fieldset,.mode-grid,.signal-type-grid,.comparison-run-list,.factor-filter-grid,.batch-form,.batch-counts{grid-template-columns:1fr}.batch-submit-row,.batch-failures article{align-items:stretch;grid-template-columns:1fr}.batch-submit-row{flex-direction:column}.batch-submit-row button{width:100%}.toggle-row{grid-column:span 1}.chart-wrap,.plotly-wrap,.recharts-wrap{height:300px}.plotly-wrap.tall,.recharts-wrap.tall{height:380px}.heatmap-row{grid-template-columns:90px repeat(auto-fit,minmax(72px,1fr))}.dashboard-tab{flex:1 1 180px}}@media(max-width:420px){.terminal-summary{grid-template-columns:1fr}.page-hero{padding:1.1rem}.code-input{min-height:320px}}.market-dashboard-page{display:grid;grid-template-columns:minmax(0,1fr);gap:1.4rem}.market-dashboard-page>*{min-width:0}.factor-sector-health-panel{margin-top:1.25rem}.factor-sector-health-table{min-width:1500px}.factor-sector-health-table th:not(:first-child),.factor-sector-health-table td:not(:first-child){min-width:92px;text-align:center}.factor-sector-health-table td:first-child{min-width:190px}.sector-health-cell{align-items:center;border-radius:6px;color:#fff;display:inline-flex;font-variant-numeric:tabular-nums;font-weight:700;justify-content:center;min-height:32px;min-width:48px;padding:.35rem .5rem}.market-summary strong{font-size:.98rem;line-height:1.45}.market-factor-table tbody tr{cursor:pointer}.market-row-selected,.market-factor-table tbody tr.market-row-selected{background:#4cc9f014}.market-reading{display:grid;gap:.25rem}.market-reading strong{font-family:Fira Code,monospace;font-variant-numeric:tabular-nums}.market-reading small{color:var(--muted);line-height:1.4}.market-value-stale,.market-muted{color:var(--muted)}.market-sparkline{color:var(--primary-2);display:block}.market-sparkline polyline{stroke:currentColor}.market-sparkline-empty{color:var(--muted)}.market-state-valid{color:var(--success);border-color:#4ade8057;background:#4ade801a}.market-state-stale{color:var(--warning);border-color:#facc1557;background:#facc151a}.market-state-no_value{color:var(--muted)}.market-state-error{color:var(--danger);border-color:#fb718557;background:#fb71851a}.market-selecting{color:var(--muted);font-size:.85rem}.market-selected-panel{display:grid;gap:1.1rem}.market-selected-meta{display:grid;gap:.7rem;margin:0}.market-selected-meta div{display:grid;gap:.2rem}.market-selected-meta dt{color:var(--muted-2);font-size:.72rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.market-selected-meta dd{margin:0;color:var(--text-soft);line-height:1.5}.market-selected-meta code{font-size:.85rem}.market-selected-status{display:grid;gap:.3rem;padding:.8rem 1rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:#0a122099}.market-selected-status p{margin:0;color:var(--muted);line-height:1.5}.market-history-chart{display:grid;gap:.5rem}.market-history-chart .plotly-wrap{height:360px}.market-disclaimer{margin:0;padding:.9rem 1.1rem;border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--muted-2);font-size:.82rem;line-height:1.5}.risk-score-panel .panel-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.risk-score-panel .panel-header>div:first-child{flex:1 1 420px;min-width:0;max-width:46rem}.risk-score-panel .panel-header{flex-wrap:wrap}.risk-score-range-toggle{flex:0 0 auto}.risk-score-intro{max-width:42rem;text-wrap:pretty}.risk-score-daily{display:grid;gap:1rem;margin-top:1.25rem;padding:clamp(1rem,2vw,1.5rem);border:1px solid rgba(100,116,139,.38);border-radius:var(--radius-lg);background:linear-gradient(180deg,#131f32b8,#0a12208c)}.risk-score-daily-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1.25rem;padding-bottom:.9rem;border-bottom:1px solid var(--border)}.risk-score-daily-header h3,.risk-intraday-header h3{margin:.15rem 0 0;font-size:1.12rem;line-height:1.3}.risk-score-daily-header>div:first-child>p:last-child{margin:.3rem 0 0;color:var(--muted);font-size:.82rem}.risk-section-kicker{margin:0;color:#79c0ff;font-size:.68rem;font-weight:750;letter-spacing:.11em}.risk-score-range-control{display:grid;justify-items:end;gap:.35rem}.risk-score-range-control>span{color:var(--muted-2);font-size:.72rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase}.risk-score-range-copy{display:grid;gap:.2rem;max-width:52rem;text-wrap:pretty}.risk-score-range-copy p{margin:0}.risk-score-range-toggle{display:flex;gap:0;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.risk-score-range-toggle button{min-width:3.25rem;min-height:2.75rem;padding:.45rem .9rem;font-size:.78rem;font-weight:600;letter-spacing:.05em;color:var(--muted);background:transparent;border:none;cursor:pointer;transition:all .15s ease}.risk-score-range-toggle button:hover{color:var(--text-soft);background:#ffffff0a}.risk-score-range-toggle button.active{color:var(--text);background:#2f81f726}.risk-intraday{display:grid;gap:.8rem;padding:1.1rem 1.2rem;margin:1.25rem 0 0;border:1px solid var(--border);border-left:3px solid #58a6ff;border-radius:var(--radius-lg);background:#388bfd0f}.risk-intraday-empty{display:flex;align-items:center;justify-content:space-between;gap:.6rem;color:var(--muted);font-size:.85rem}.risk-intraday-empty-copy{display:grid;gap:.25rem}.risk-intraday-empty-copy strong{color:var(--text)}.risk-intraday-retry{min-width:5.5rem;min-height:2.75rem;padding:.45rem .8rem;border:1px solid rgba(121,192,255,.45);border-radius:var(--radius);color:var(--text);background:#388bfd1f;cursor:pointer}.risk-intraday-retry:hover{background:#388bfd38}.risk-intraday-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.risk-intraday-header h4{margin:0;font-size:.95rem}.risk-intraday-header h3{color:var(--text)}.risk-intraday-header .risk-section-kicker{color:#79c0ff}.risk-intraday-header p{margin:.15rem 0 0;color:var(--muted);font-size:.8rem}.risk-intraday-live{display:flex;align-items:baseline;gap:.7rem;flex-wrap:wrap}.risk-intraday-live strong{font-size:1.1rem}.risk-intraday-live small{color:var(--muted)}.risk-intraday-readings{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.risk-intraday-readings>div{display:grid;gap:.15rem;padding:.6rem .75rem;border:1px solid var(--border);border-radius:var(--radius);background:#0a122080}.risk-intraday-readings span{color:var(--muted);font-size:.75rem}.risk-intraday-readings strong{font-size:1.05rem}.risk-intraday-readings small{color:var(--muted);font-size:.75rem}.risk-intraday-note{margin:0;color:var(--muted);font-size:.75rem}@media(max-width:700px){.risk-intraday-readings{grid-template-columns:1fr}.risk-intraday-empty{align-items:flex-start;flex-direction:column}}.risk-score-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin-bottom:0}@media(max-width:900px){.risk-score-cards{grid-template-columns:repeat(2,1fr)}}.risk-score-card{display:grid;gap:.25rem;padding:1rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:#0a122099}.risk-card-icon{color:var(--muted-2);margin-bottom:.2rem}.risk-card-label{font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted-2)}.risk-card-value{font-size:1.6rem;font-weight:700;font-family:JetBrains Mono,Fira Code,monospace;line-height:1.2}.risk-state-on{color:var(--success, #3fb950)}.risk-state-off{color:var(--danger, #f85149)}.risk-score-card small{color:var(--muted);font-size:.75rem;line-height:1.4}.risk-score-chart{display:grid;gap:.5rem;margin-bottom:0}.risk-score-chart .plotly-wrap{height:520px;min-height:520px}.risk-score-chart-loading{display:grid;place-items:center;min-height:520px;border:1px solid var(--border);border-radius:var(--radius);color:var(--muted);background:#0a122059}@media(max-width:700px){.risk-score-panel .panel-header{flex-wrap:wrap}.risk-score-daily-header{align-items:flex-start;flex-direction:column}.risk-score-range-control{justify-items:start}.risk-score-chart .plotly-wrap{height:440px;min-height:440px}.risk-score-chart-loading{min-height:440px}}.risk-score-attribution{display:grid;grid-template-columns:1.5fr 1fr;gap:1.5rem;margin-bottom:0;padding:1rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:#0a122066}@media(max-width:900px){.risk-score-attribution{grid-template-columns:1fr}}.risk-gauge-grid{display:grid;gap:.8rem;margin-top:.6rem}.risk-gauge{display:grid;gap:.3rem}.risk-gauge-header{display:flex;justify-content:space-between;align-items:baseline;font-size:.85rem}.risk-gauge-header strong{font-family:JetBrains Mono,Fira Code,monospace;font-size:.9rem}.risk-gauge-bar{height:8px;border-radius:4px;background:#ffffff14;overflow:hidden}.risk-gauge-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--success, #3fb950),var(--accent, #2f81f7),var(--danger, #f85149));transition:width .3s ease}.risk-gauge-footer{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted)}.risk-attribution-f{display:grid;gap:.6rem}.risk-f-stack{display:flex;height:28px;border-radius:var(--radius-md);overflow:hidden;margin-top:.4rem}.risk-f-segment{display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;color:#fff;transition:width .3s ease}.risk-f-base{background:#4b5563}.risk-f-volatility{background:#8b5cf6}.risk-f-liquidity{background:#f59e0b}.risk-f-interaction{background:#ec4899}.risk-f-legend{display:flex;flex-wrap:wrap;gap:.8rem;font-size:.75rem;color:var(--muted)}.risk-f-legend span{display:flex;align-items:center;gap:.4rem}.risk-f-dot{display:inline-block;width:10px;height:10px;border-radius:2px;font-style:normal}.risk-f-note{margin:0;font-size:.78rem;color:var(--muted);font-family:JetBrains Mono,Fira Code,monospace}.risk-score-narrative{margin-bottom:1rem}.risk-narrative-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:.6rem}@media(max-width:900px){.risk-narrative-grid{grid-template-columns:1fr}}.risk-narrative-item{padding:.9rem;border:1px solid var(--border);border-radius:var(--radius-md);background:#0a122066}.risk-narrative-item h4{margin:0 0 .5rem;font-size:.8rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted-2)}.risk-narrative-item p{margin:0;font-size:.85rem;line-height:1.6;color:var(--text-soft)}.risk-disclaimer{margin:0;padding:.8rem 1rem;border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--muted-2);font-size:.78rem;line-height:1.5}.sector-heatmap-table{table-layout:fixed}.sector-heatmap-table th{font-size:.76rem;line-height:1.3;vertical-align:bottom;text-align:center}.sector-heatmap-table th:first-child,.sector-heatmap-table td:first-child{width:230px;text-align:left}.sector-heatmap-table td{text-align:center;vertical-align:middle}.sector-table-wrap{overflow-x:auto}.sector-identity{display:grid;gap:.15rem;align-items:baseline;grid-template-columns:auto 1fr auto;column-gap:.5rem}.sector-identity strong{font-size:.9rem}.sector-identity code{color:var(--muted-2);font-size:.72rem}.sector-level-tag{color:var(--muted-2);font-size:.66rem;font-weight:800;letter-spacing:.06em;border:1px solid var(--border);border-radius:6px;padding:.05rem .3rem}.sector-name-l2{padding-left:1.4rem}.sector-cell{display:grid;gap:.18rem;padding:.45rem .5rem;border:1px solid var(--border);border-radius:var(--radius-md);min-width:96px;text-align:center}.sector-cell strong{font-family:Fira Code,monospace;font-variant-numeric:tabular-nums;font-size:.9rem}.sector-cell small{color:var(--muted);font-size:.68rem;letter-spacing:.03em}.sector-view-controls{display:flex;flex-direction:column;gap:.5rem;align-items:flex-end;flex-shrink:0}.sector-view-switch{display:flex;gap:.35rem}.sector-view-switch button{padding:.32rem .75rem;font-size:.76rem;font-weight:600;font-family:Fira Code,monospace;color:var(--muted);background:transparent;border:1px solid var(--border);border-radius:999px;cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease}.sector-view-switch button:hover{color:var(--text);border-color:var(--border-strong)}.sector-view-switch button.active{color:var(--text);background:var(--surface-3);border-color:var(--border-strong)}.sector-cell-missing{background:#121f3480;color:var(--muted)}.sector-cell-missing strong{font-family:Fira Sans,Avenir Next,Segoe UI,sans-serif;font-size:.76rem;font-weight:500;line-height:1.35}.sector-cell-no-percentile{background:var(--surface-2)}.sector-value-stale{color:var(--muted)}.sector-band-very_low{background:#2f81f733;border-color:#2f81f757;color:#9ec5ff}.sector-band-low{background:#4cc9f01f;border-color:#4cc9f04d;color:var(--primary-2)}.sector-band-normal{background:#8c9ebe1a;color:var(--text-soft)}.sector-band-high{background:#facc151f;border-color:#facc154d;color:#fde68a}.sector-band-very_high{background:#fb718529;border-color:#fb718557;color:#fda4af}.sector-band-very_low small,.sector-band-low small,.sector-band-normal small,.sector-band-high small,.sector-band-very_high small{color:inherit;opacity:.75}.research-context-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:16px 24px 0;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.research-context-chip{padding:4px 8px;border-radius:999px;background:var(--surface-2);font-size:.8rem}.research-context-bar button{min-height:44px;margin-left:auto}.ml-score{background:linear-gradient(135deg,#7c3aed40,#3b82f640);border:1px solid rgba(139,92,246,.4);color:#c4b5fd;font-variant-numeric:tabular-nums}.ml-drivers{font-size:.78rem;color:var(--muted);font-family:ui-monospace,SFMono-Regular,monospace}.view-switcher--page{margin-bottom:1rem;justify-content:flex-start}.inline-view-switcher{display:inline-flex;gap:.25rem;margin-left:.5rem;vertical-align:middle}.inline-view-switcher button{padding:.2rem .6rem;font-size:.75rem;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer}.inline-view-switcher button.active{background:linear-gradient(135deg,var(--primary-2),var(--accent));color:#06111f;border-color:transparent;font-weight:700}.stability-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.78rem;font-weight:600}.stability-badge.good{background:#4ade8026;color:#4ade80;border:1px solid rgba(74,222,128,.3)}.stability-badge.mid{background:#facc1526;color:#facc15;border:1px solid rgba(250,204,21,.3)}.stability-badge.low{background:#fb718526;color:#fb7185;border:1px solid rgba(251,113,133,.3)}.importance-bar{position:relative;width:100px;height:8px;background:var(--surface-2);border-radius:999px;overflow:hidden}.importance-bar-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:999px}.importance-bar span{position:absolute;right:0;top:-18px;font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums}.ml-importance-table td:nth-child(5){padding-top:1.2rem}.ml-model-notice{margin-top:1.5rem;padding:.9rem 1.2rem;border-radius:8px;background:#7c3aed14;border:1px solid rgba(139,92,246,.2);color:var(--muted);font-size:.85rem}.ml-model-notice strong{color:#c4b5fd}.series-select{background:var(--panel, #131723);color:var(--text, #e5e7eb);border:1px solid rgba(148,163,184,.25);border-radius:8px;padding:.45rem .8rem;font-size:.85rem;font-family:inherit;cursor:pointer;min-width:220px}.series-select:focus-visible{outline:2px solid rgba(139,92,246,.55);outline-offset:1px}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem;margin:1.1rem 0}.metric-card{border:1px solid rgba(148,163,184,.16);border-radius:10px;padding:.7rem .9rem;background:#94a3b80d}.metric-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 .25rem}.metric-value{font-size:1.05rem;font-weight:650;margin:0;font-variant-numeric:tabular-nums}.nav-curve{width:100%;height:auto;display:block;margin:.5rem 0 1rem;border:1px solid rgba(148,163,184,.14);border-radius:10px;background:#94a3b80a}.nav-line{fill:none;stroke:#8b5cf6;stroke-width:1.8}.nav-area{fill:#8b5cf61f;stroke:none}.nav-baseline{stroke:#94a3b880;stroke-width:1;stroke-dasharray:4 4}.nav-yearline{stroke:#94a3b82e;stroke-width:1}.nav-yearlabel{fill:var(--muted);font-size:11px;font-family:ui-monospace,SFMono-Regular,monospace}.nav-empty{padding:1rem 0}.yearly-table .style-year td{background:#c2782e12}.yearly-table .cell-positive{color:#34d399;font-variant-numeric:tabular-nums}.yearly-table .cell-negative{color:#f87171;font-variant-numeric:tabular-nums}.style-badge{font-size:.68rem;padding:2px 8px;border-radius:999px;background:#c2782e2e;color:#fbbf24;white-space:nowrap}.strategy-disclaimer{margin-top:.9rem;font-size:.78rem;line-height:1.5}.ml-panel{border-color:#8b5cf640;background:linear-gradient(180deg,rgba(124,58,237,.04),transparent)}.ml-panel-tag{font-size:.72rem;padding:2px 8px;border-radius:999px;background:#7c3aed26;color:#c4b5fd;font-family:ui-monospace,SFMono-Regular,monospace}.ml-score-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1rem}.ml-score-card{padding:1rem;border-radius:10px;background:var(--surface);border:1px solid var(--border);text-align:center}.ml-score-label{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 .3rem}.ml-score-value{font-size:1.8rem;font-weight:800;margin:0;background:linear-gradient(135deg,var(--primary-2),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-variant-numeric:tabular-nums}.ml-score-sub{font-size:.78rem;color:var(--muted-2);margin:.3rem 0 0}.contrib-badge{display:inline-block;padding:2px 10px;border-radius:999px;font-weight:600;font-family:ui-monospace,SFMono-Regular,monospace;font-size:.8rem}.contrib-badge.positive{background:#4ade801f;color:#4ade80;border:1px solid rgba(74,222,128,.3)}.contrib-badge.negative{background:#fb71851f;color:#fb7185;border:1px solid rgba(251,113,133,.3)}.contrib-rest-row{background:#ffffff05}.contrib-rest-row td{font-style:italic;color:var(--muted)}.ml-profile-controls{display:flex;gap:1rem;align-items:center}.ml-profile-controls select{padding:4px 8px;border-radius:6px;background:var(--surface);border:1px solid var(--border);color:var(--text);font-size:.82rem}.checkbox-label{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;color:var(--muted);cursor:pointer}.ml-profile-summary{display:flex;gap:1.5rem;flex-wrap:wrap;padding:.75rem 1rem;background:var(--surface);border-radius:8px;margin-bottom:1rem;font-size:.85rem;color:var(--text-soft)}.ml-profile-summary strong{color:var(--text)}.stale-badge{padding:2px 8px;border-radius:999px;background:#facc1526;color:#facc15;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}.ml-extremes-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media(max-width:720px){.ml-extremes-grid{grid-template-columns:1fr}}.ml-extreme-col h4{margin:0 0 .75rem;font-size:.85rem;color:var(--accent);text-transform:uppercase;letter-spacing:.06em}.ml-extreme-chip{display:flex;justify-content:space-between;align-items:center;padding:.6rem .9rem;border-radius:8px;margin-bottom:.5rem;border:1px solid var(--border);background:var(--surface)}.ml-extreme-high{border-left:3px solid #4ade80}.ml-extreme-low{border-left:3px solid #fb7185}.ml-extreme-name{font-weight:600;font-size:.85rem}.importance-badge{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:999px;font-size:.68rem;font-weight:700;background:linear-gradient(135deg,var(--primary-2),var(--accent));color:#06111f}.ml-extreme-value{text-align:right;font-family:ui-monospace,SFMono-Regular,monospace;font-size:.82rem}.ml-extreme-value small{display:block;font-size:.7rem;color:var(--muted-2)}.monitor-panel .section-heading-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.status-chip{font-size:.7rem;font-weight:600;padding:.25rem .65rem;border-radius:999px;letter-spacing:.03em}.status-chip.ok{color:var(--success);background:#4ade801f}.status-chip.stale{color:var(--danger);background:#fb71851f}.error-banner{background:#fb718514;border:1px solid rgba(251,113,133,.25);color:var(--danger);padding:.75rem 1rem;border-radius:6px;font-size:.85rem;margin-bottom:1rem}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;margin-bottom:1.25rem}.metric-card{background:var(--panel-bg);border:1px solid var(--border-subtle);border-radius:8px;padding:.85rem 1rem}.metric-card .metric-label{font-size:.75rem;color:var(--muted-2);margin:0 0 .35rem}.metric-card .metric-value{font-size:1.4rem;font-weight:700;margin:0 0 .25rem;font-variant-numeric:tabular-nums}.metric-card .metric-value.positive{color:var(--success)}.metric-card .metric-value.negative{color:var(--danger)}.metric-card .metric-value.warning{color:var(--warning)}.metric-card .metric-sub{font-size:.7rem;color:var(--muted-2);margin:0}.chart-card{background:var(--panel-bg);border:1px solid var(--border-subtle);border-radius:8px;padding:1rem}.chart-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}.chart-header h4{margin:0;font-size:.9rem;font-weight:600}.chart-sub{font-size:.75rem;color:var(--muted-2)}.monitor-chart{width:100%;height:200px;display:block}.chart-footer{display:flex;justify-content:space-between;font-size:.7rem;color:var(--muted-2);margin-top:.4rem;font-variant-numeric:tabular-nums}.data-status-bar select{margin-left:.4rem;padding:.2rem .4rem;border-radius:4px;border:1px solid var(--border-subtle);background:var(--panel-bg);color:var(--text-primary);font-size:.8rem}.compare-hint{font-size:.85rem;color:var(--muted-2);margin:.5rem 0}
