:root{--black:#101210;--base:#151815;--panel:#1b1e1b;--muted:#818a81;--text:#f0f3e9;--sub:#b4bdb2;--line:#343a34;--lime:#d8ff69;--dimlime:#b3d060}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--black);color:var(--text);font-family:"DM Sans",Inter,system-ui,sans-serif;font-size:14px}
button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}
.hidden{display:none!important}em{font-style:normal;color:var(--lime)}.accent,.green-stop{color:var(--lime)}
button:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--lime);outline-offset:4px}
.app{min-height:100vh}
.topbar{height:84px;border-bottom:1px solid #272c27;padding:0 clamp(24px,4.2vw,76px);display:flex;align-items:center;justify-content:space-between}
.brand,.top-actions{display:flex;align-items:center;gap:20px}.brand strong,.boot-brand{font-family:"Space Grotesk",system-ui,sans-serif;font-weight:700;letter-spacing:-.08em;font-size:28px}.brand-label,.top-tag{font-size:10px;letter-spacing:.16em;color:var(--muted);font-weight:800}
.brand-divider{height:23px;width:1px;background:#3a413a}.top-settings,.logout{border:0;background:transparent;color:var(--sub);font-weight:600}.top-settings:hover,.logout:hover{color:var(--lime)}.logout{font-size:12px}.top-settings{font-size:14px;display:flex;align-items:center;gap:9px}
.mark{width:25px;height:25px;display:inline-grid;grid-template-columns:repeat(2,9px);grid-template-rows:repeat(2,9px);gap:4px;transform:rotate(-18deg);vertical-align:middle;margin-right:3px}
.mark b{display:block;background:var(--lime);border-radius:50%}.mark b:nth-child(2){opacity:.55}.mark b:nth-child(3){opacity:.36}.mark b:nth-child(4){opacity:.78}
.content-wrap{max-width:1660px;margin:auto;padding:0 clamp(24px,4.2vw,76px) 70px}
.tabs{display:flex;gap:35px;border-bottom:1px solid #303630;height:69px;align-items:stretch}
.tab{border:0;border-bottom:2px solid transparent;background:none;color:#7e877e;font-size:13px;font-weight:700;padding:3px 0 0}
.tab:hover{color:var(--text)}.tab.active{color:var(--lime);border-color:var(--lime)}
.tiny-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--lime);vertical-align:top;margin-top:1px}
.page{padding-top:58px;animation:fadeup .35s ease both}
.heading-row{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:38px}
.eyebrow,.section-kicker,.settings-overline{font-weight:800;font-size:10px;letter-spacing:.18em;color:#929e8f;text-transform:uppercase}
.signal{display:inline-block;background:var(--lime);width:7px;height:7px;border-radius:50%;margin-right:9px;box-shadow:0 0 0 5px rgba(216,255,105,.09)}.eyebrow-gap{padding:0 12px;color:#414841}
h1,h2,h3,p{margin:0}h1,h2{font-family:"Space Grotesk",system-ui,sans-serif;letter-spacing:-.06em;line-height:1.04}
h1{font-size:clamp(49px,5.8vw,96px);font-weight:700;margin:18px 0 15px}h2{font-size:clamp(29px,3.1vw,44px);font-weight:700;margin:13px 0 0}
.intro{color:#a1aba1;font-size:16px;max-width:690px;line-height:1.6;letter-spacing:-.01em}
.button{border-radius:8px;padding:16px 21px;display:inline-flex;align-items:center;justify-content:space-between;gap:18px;font-weight:800;font-size:12px;text-decoration:none;transition:transform .2s,border-color .2s,background .2s;white-space:nowrap}
.button:hover{transform:translateY(-2px)}.button.primary{background:var(--lime);color:var(--black);border:1px solid var(--lime)}
.button.outline{background:transparent;color:var(--text);border:1px solid #505950}.button.outline:hover{border-color:var(--lime)}.button.full{width:100%;margin-top:26px}.button.disabled{opacity:.4;pointer-events:none}.symbol{font-size:18px}
.data-banner{display:flex;align-items:center;gap:10px;color:#bcc4b8;font-size:12px;background:#1c2219;border:1px solid #333f2b;padding:12px 17px;border-radius:7px;margin-bottom:19px;min-height:46px}.banner-bullet{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--lime)}.banner-updated{margin-left:auto;color:#7f8d7d;font-size:11px}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-bottom:15px}
.metric{min-height:195px;background:#1b1f1b;border:1px solid #343934;border-radius:10px;padding:22px 23px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}
.metric-title{font-size:10px;font-weight:800;letter-spacing:.12em;color:#a1aa9e;display:flex;align-items:center;justify-content:space-between}
.metric-title span{color:#576156}.metric-value{font-family:"Space Grotesk",sans-serif;letter-spacing:-.095em;line-height:1;font-weight:700;font-size:clamp(42px,4.1vw,75px);font-variant-numeric:tabular-nums;white-space:nowrap}
.metric-fraction{color:#7e867c;font-size:.45em;letter-spacing:-.04em;margin-left:4px}
.metric-foot{font-size:11px;color:#879286}.metric.bright{background:var(--lime);color:#12150e;border-color:var(--lime)}
.metric.bright .metric-title,.metric.bright .metric-title span,.metric.bright .metric-foot{color:#435332}
.chart-shell,.panel,.settings-panel,.method-card{background:var(--panel);border:1px solid #343a34;border-radius:11px}
.chart-shell{padding:29px 32px 19px;margin-bottom:15px}
.chart-head{display:flex;align-items:end;justify-content:space-between;gap:20px}
.segmented{display:flex;border:1px solid #3f483e;padding:4px;border-radius:9px;gap:2px;max-width:100%}
.segmented button{color:#a5afa3;border:0;background:transparent;border-radius:6px;padding:11px 16px;font-size:11px;font-weight:700;white-space:nowrap;transition:background .2s}
.segmented button:hover{color:white}.segmented button.selected{background:#d8ff69;color:#17200c}
.plot-wrap{margin-top:25px;height:345px;position:relative}
#volumeChart{display:block;width:100%;height:100%;overflow:visible}.axis-label{font-family:"DM Sans",sans-serif;font-size:12px;fill:#8d978b;font-weight:700}
.gridline{stroke:#333b32;stroke-width:1;stroke-dasharray:3 7}.event-line{stroke:#a4c556;stroke-dasharray:5 7;stroke-width:1.5}
.data-line{fill:none;stroke:var(--lime);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 7px rgba(216,255,105,.14))}
.data-area{fill:url(#lineGradient)}.data-dot{fill:var(--lime);stroke:#1b1e1b;stroke-width:2}.data-dot:hover{r:8}
@keyframes draw{from{stroke-dashoffset:var(--line-length)}to{stroke-dashoffset:0}}
@keyframes growbar{from{width:0}to{width:var(--bar-width)}}
@keyframes fadeup{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@keyframes pulse{50%{opacity:.55}}
.chart-bottom{border-top:1px solid #383f37;padding-top:16px;display:flex;justify-content:space-between;gap:12px;font-size:10px;font-weight:800;letter-spacing:.1em;color:#798474}
.chart-bottom>b{color:var(--lime)}.legend-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--lime);margin-right:7px}
.chart-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;background:linear-gradient(90deg,rgba(27,30,27,.80),rgba(27,30,27,.92));color:#9ba698}.chart-empty strong{font-family:"Space Grotesk",sans-serif;font-size:27px;letter-spacing:-.05em;color:#f1f4ef}
.chart-empty .empty-icon{font-size:29px;color:var(--lime);margin-bottom:7px}.chart-empty button{background:transparent;color:var(--lime);border:0;font-weight:800;margin-top:10px}
.lower-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.panel{padding:27px 30px;min-height:310px;display:flex;flex-direction:column}
.compare-group{margin-top:32px;flex:1}.bar-meta{display:flex;align-items:center;justify-content:space-between;margin:16px 0 9px;font-size:11px;font-weight:800;color:#aab5a7}.bar-meta strong{font-family:"Space Grotesk",sans-serif;color:var(--text);font-size:16px}
.bar-track{background:#2b322a;border-radius:3px;width:100%;height:15px;overflow:hidden}.bar-fill{height:100%;width:0;animation:growbar 1.2s cubic-bezier(.2,.7,.1,1) both}
.bar-fill.muted{background:#889f80}.bar-fill.neon{background:var(--lime)}
.panel-foot{border-top:1px solid #363d36;padding-top:15px;margin-top:20px;color:#758173;font-size:10px;font-weight:700;letter-spacing:.035em}
.research-lock{display:flex;align-items:center;gap:23px;flex:1;padding:15px 0}.research-glyph{display:flex;align-items:center;justify-content:center;font-family:"Space Grotesk",sans-serif;width:72px;height:72px;background:#293027;border-radius:50%;color:var(--lime);font-size:42px;flex-shrink:0}
.research-lock strong{font-size:17px}.research-lock p{max-width:420px;color:#99a496;line-height:1.65;font-size:13px;margin-top:8px}
.endnote{padding:28px 2px;color:#596659;display:flex;justify-content:space-between;font-size:10px;font-weight:800;letter-spacing:.12em}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:36px}
.settings-panel{padding:32px;min-height:432px}.settings-panel h2{margin:14px 0 28px}.connection-line{display:flex;align-items:center;gap:8px;margin-bottom:26px;font-size:13px;flex-wrap:wrap}.connection-dot{width:9px;height:9px;border-radius:50%;background:#7a8377}.connection-dot.connected{background:var(--lime)}.micro-note{font-size:11px;color:#758272;margin-left:auto}
.settings-panel label,.login-form label{display:block;font-size:12px;color:#c8d2c6;margin-bottom:9px;font-weight:800}
.settings-panel input,.login-form input{width:100%;border:1px solid #4b5748;border-radius:7px;padding:15px 16px;color:#f5f7ef;background:#101510;outline:none}
.settings-panel input:focus,.login-form input:focus{border-color:var(--lime)}
.help,.settings-desc{color:#93a190;line-height:1.6;font-size:12px}.help{margin:12px 0 20px;max-width:420px}
.form-message{color:var(--lime);font-size:12px;margin-top:14px;min-height:18px;line-height:1.6}.form-message.error{color:#ffa28b}
.detail-pair{padding:16px 0;border-bottom:1px solid #343e32;display:flex;justify-content:space-between;gap:20px}.detail-pair span{font-size:10px;color:#82917f;letter-spacing:.09em;font-weight:800}.detail-pair strong{font-size:12px}
.subsection{border-top:1px solid #343e32;margin-top:28px;padding:24px 0;display:flex;align-items:center;justify-content:space-between;gap:20px}.subsection h3{font-family:"Space Grotesk",sans-serif;font-size:24px;letter-spacing:-.04em}.subsection p{color:#96a390;margin-top:7px;font-size:12px}
.method-grid{margin-top:38px;display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.method-card{padding:28px;min-height:260px}.method-card>span{font-family:"Space Grotesk",sans-serif;font-size:50px;color:var(--lime);font-weight:700}.method-card h2{font-size:27px;margin:20px 0 13px}.method-card p{color:#97a494;font-size:13px;line-height:1.7}
.boot{min-height:100vh;display:flex;flex-direction:column;padding:35px clamp(24px,5vw,80px);background:radial-gradient(ellipse at 95% 3%,#31402b 0,transparent 35%),#101310}
.boot-content{flex:1;display:flex;justify-content:center;align-items:flex-start;flex-direction:column;max-width:760px}
.boot h1{font-size:clamp(72px,10vw,160px);margin:20px 0 20px}.boot-content>p{font-size:16px;color:#a9b5a5}.boot-brand{font-size:30px}
.login-form{max-width:650px;width:100%;margin-top:40px}.password-row{display:flex;gap:10px}.password-row input{flex:1;min-width:0}.boot-bottom{font-size:11px;letter-spacing:.15em;font-weight:800;color:#5d6d57}.boot-bottom span{color:var(--lime)}
@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(2,1fr)}.chart-head{align-items:start;flex-direction:column}.top-tag{display:none}.metric-value{font-size:60px}}
@media(max-width:750px){.topbar{height:73px}.brand-label,.brand-divider,.logout{display:none}.content-wrap{padding:0 18px 40px}.topbar{padding:0 20px}.tabs{height:59px;gap:24px}.page{padding-top:35px}.heading-row{display:block}.heading-row .button{margin-top:22px}.metric-grid{gap:8px}.metric{min-height:156px;padding:17px 16px}.metric-value{font-size:clamp(35px,9vw,64px)}.metric-title{font-size:8px}.metric-foot{font-size:10px}.chart-shell{padding:20px 14px 18px}.plot-wrap{height:280px}.segmented{width:100%;overflow:auto}.segmented button{padding:10px}.chart-bottom{font-size:8px;flex-direction:column}.lower-grid,.settings-grid,.method-grid{grid-template-columns:1fr}.panel{min-height:250px;padding:24px}.settings-panel{min-height:0;padding:24px}.subsection{align-items:start;flex-direction:column}h1{font-size:clamp(49px,11vw,76px)}.banner-updated{display:none}.password-row{flex-direction:column}.boot h1{font-size:72px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
