
:root{--bg:#0a0f16;--panel:#101720;--panel2:#141d28;--line:#25303d;--muted:#91a0b2;--text:#e8eef5;--green:#8ce2bf;--green2:#5fcfa4;--red:#f08f92;--gold:#dfbd7b;--blue:#91b8f2;--purple:#baa4e4}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;color:var(--text);background:var(--bg);font:14px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif}button,input,select{font:inherit}button,a,input,select,label{ -webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.45;cursor:wait}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--green);outline-offset:4px}svg{display:block}h1,h2,h3,p{margin:0}button{color:inherit}input,select{width:100%;min-width:0;background:#0d141e;border:1px solid #303c4b;color:var(--text);padding:9px 11px;border-radius:7px}input:hover,select:hover{border-color:#526475}input:disabled{opacity:.5}input[type=checkbox]{width:auto;accent-color:var(--green)}input[type=file]{padding:0;background:none;border:0;font-size:12px}input::file-selector-button{background:#202e3c;color:var(--text);border:0;padding:7px 10px;margin-right:10px;border-radius:4px;cursor:pointer}label{display:block;font-size:12px;color:#aab7c6}small{font-size:11px}.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.muted{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:2px;color:#8192a6;font-weight:600}.sidebar{position:fixed;inset:0 auto 0 0;width:216px;border-right:1px solid var(--line);background:#0d131c;display:flex;flex-direction:column;z-index:20;padding:30px 18px 20px}.brand{display:flex;gap:11px;align-items:center;padding:0 12px 31px}.brand-mark{width:33px;height:36px;color:var(--green)}.brand strong{font-size:20px;letter-spacing:-.6px;line-height:1.2;display:block}.brand small{font-size:9px;letter-spacing:3px;color:var(--muted)}.nav-label{font-size:10px;color:#6d7f92;letter-spacing:1.6px;padding:12px 14px 9px}.side-nav{display:grid;gap:7px}.side-nav a{display:flex;gap:12px;padding:11px 13px;border-radius:7px;color:#99a9bc;font-size:13px;align-items:center}.side-nav a svg{width:18px;height:18px}.side-nav a:hover{background:#19232e;color:var(--text)}.side-nav a[aria-current]{color:var(--green);background:#193129;border:1px solid #2b4d40}.nav-badge{margin-left:auto;border:1px solid #38634f;color:#9cd9bd;border-radius:4px;font-size:9px;padding:0 4px}.sidebar-foot{margin-top:auto;padding:17px 12px 0;border-top:1px solid var(--line)}.connection-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);margin-right:8px}.sidebar-foot p{color:#b2bfcc;font-size:11px}.sidebar-foot small{font-size:10px;color:#76899e}.workspace{margin-left:216px}.topbar{height:65px;border-bottom:1px solid var(--line);padding:0 34px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#0d131be0}.breadcrumb{font-size:12px;color:#8494a9;display:flex;align-items:center;gap:14px}.breadcrumb b{font-weight:400;color:#d0dce7}.top-right{display:flex;align-items:center;gap:15px;font-size:11px;color:var(--muted)}.local-chip{padding:4px 9px;background:#12241f;border:1px solid #284839;border-radius:5px;color:#95d9ba}.avatar{display:grid;place-items:center;border:1px solid #354153;color:#aebed0;border-radius:50%;width:29px;height:29px;font-size:10px}.mobile-brand{display:none}main{max-width:1650px;margin:0 auto;padding:31px 34px 35px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:25px}.page-head h1{font-size:25px;letter-spacing:-.6px;font-weight:620;margin:5px 0 6px}.page-head p{color:var(--muted);font-size:12px}.head-actions{display:flex;gap:9px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:35px;padding:7px 12px;border:1px solid #354153;border-radius:6px;background:#17212d;color:#c8d4e0;font-size:12px}.btn:hover{background:#21303d;border-color:#526675}.btn svg{width:14px;height:14px}.btn.primary{background:var(--green);border-color:var(--green);color:#10291f;font-weight:650}.btn.primary:hover{background:#a8efd1}.btn.ghost{background:transparent}.section-label{display:flex;align-items:center;gap:8px;font-size:12px;color:#c1cbd8;font-weight:550;margin-bottom:12px}.section-label .ordinal{font-size:10px;color:#7ba990;background:#17281f;border:1px solid #2d493b;border-radius:4px;padding:0 5px}.section-label .side-note{margin-left:auto;font-size:11px;font-weight:400;color:var(--muted)}.algorithm-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:24px}.algo-card{text-align:left;position:relative;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:15px 16px;min-width:0;transition:border-color .15s,background .15s}.algo-card:hover{background:#16222c;border-color:#486051}.algo-card.selected{background:linear-gradient(120deg,#142a23,#12221f);border-color:#599b7e}.algo-card .algo-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.algo-icon{height:28px;width:29px;color:var(--green);background:#21392f;border-radius:6px;display:grid;place-items:center}.algo-icon svg{width:20px;height:20px}.algo-card:nth-child(2) .algo-icon{color:var(--blue);background:#202f44}.algo-card:nth-child(3) .algo-icon{color:var(--purple);background:#30293e}.algo-card:nth-child(4) .algo-icon{color:var(--gold);background:#383022}.algo-tag{font-size:10px;color:#8c9caf}.selection-circle{border-radius:50%;border:1px solid #455465;height:13px;width:13px;display:grid;place-items:center;color:#0f231b;font-size:10px}.selected .selection-circle{background:var(--green);border-color:var(--green)}.algo-card h3{font-size:13px;font-weight:600;margin-bottom:4px}.algo-card p{font-size:11px;color:#9eafbe;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.algo-card .algo-bottom{margin-top:14px;display:flex;justify-content:space-between;gap:4px;align-items:center}.algo-code{font-size:9px;letter-spacing:.8px;color:#6e8592}.validation{font-size:9px;color:#a6b7a9;border:1px solid #33473d;border-radius:3px;padding:0 4px}.work-grid{display:grid;grid-template-columns:290px minmax(0,1fr);gap:19px;align-items:start}.panel{background:var(--panel);border:1px solid var(--line);border-radius:9px;overflow:hidden}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 18px;border-bottom:1px solid var(--line)}.panel-title h2{font-size:13px;font-weight:600}.panel-title small{font-size:10px;color:var(--muted)}.config-body{padding:18px}.subhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;color:#d6e0e9;font-size:11px;font-weight:500}.subhead a,.text-btn{font-size:10px;color:var(--green);background:none;border:0;padding:0;text-decoration:none}.text-btn:hover{text-decoration:underline}.dropzone{border:1px dashed #3a5149;background:#121e1c;border-radius:7px;text-align:center;padding:18px 10px;cursor:pointer}.dropzone.dragging{background:#1d3d2e;border-color:var(--green)}.dropzone svg{margin:0 auto 9px;color:#8cbba4;width:24px;height:24px}.dropzone strong{display:block;color:#c0d7cb;font-size:11px;font-weight:500;overflow-wrap:anywhere}.dropzone span{font-size:10px;color:#7f998b}.file-input{position:absolute;width:1px!important;height:1px;opacity:0}.dropzone:focus-within{outline:2px solid var(--green);outline-offset:3px}.file-meta{font-size:10px;color:#8599a9;margin-top:9px;min-height:16px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{margin-top:13px}.field label{margin-bottom:5px}.field.full{grid-column:1/-1}.field input,.field select{font-size:12px}.divider{height:1px;background:var(--line);margin:19px 0}.unit-input{position:relative}.unit-input input{padding-right:38px}.unit-input span{position:absolute;right:10px;top:10px;font-size:10px;color:#778c9f;pointer-events:none}.param-description{font-size:10px;color:#8d9faf;line-height:1.7}.helper{font-size:10px;color:#899aac;line-height:1.8;margin-top:9px}.run-area{border-top:1px solid var(--line);background:#111b23;padding:16px 18px}.run-area .btn{width:100%;min-height:38px}.batch-btn{display:block;width:100%;margin-top:9px;font-size:10px;border:none;color:#a4b5c6;background:none;padding:4px;cursor:pointer}.batch-btn:hover{color:var(--green)}.run-hint{font-size:9px;color:#778b9c;text-align:center;margin-top:7px}.error{background:#351d23;border:1px solid #63323c;color:#f1b2b7;padding:11px 13px;margin-bottom:15px;border-radius:6px;font-size:12px;overflow-wrap:anywhere}.error[hidden]{display:none}.status-line{font-size:11px;min-height:18px;color:var(--green);margin-bottom:8px}.right-column{min-width:0}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-bottom:15px}.metric{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:15px 15px 12px;min-width:0}.metric label{font-size:10px;color:#99a9bc;display:flex;justify-content:space-between;gap:5px}.metric label span{color:#62768a}.metric-value{display:block;font-size:24px;font-weight:500;letter-spacing:-1px;line-height:1.5;margin:5px 0 1px;white-space:nowrap}.metric-foot{font-size:9px;color:#8397a8}.positive{color:var(--green)}.negative{color:var(--red)}.chart-panel{margin-bottom:15px}.chart-title{padding-bottom:12px}.chart-titles h2{margin-bottom:3px}.chart-titles p{font-size:10px;color:var(--muted)}.chart-legend{display:flex;gap:14px;color:#97aabe;font-size:10px}.chart-legend span::before{content:"";display:inline-block;width:13px;height:2px;background:var(--green);vertical-align:middle;margin-right:6px}.chart-legend span:last-child::before{background:#657a93}.chart-wrap{position:relative;height:268px;margin:7px 18px 0;overflow:hidden}.chart-wrap svg{width:100%;height:100%;font-size:10px}.chart-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;background:radial-gradient(ellipse at center,#111b23fa 20%,#10172018 80%);padding:15px}.empty-icon{width:45px;height:45px;display:grid;place-items:center;border:1px solid #33463e;background:#182820;border-radius:12px;color:#91c7ad;margin-bottom:12px}.empty-icon svg{width:24px;height:24px}.chart-empty strong{font-size:14px;font-weight:500;margin-bottom:5px}.chart-empty p{font-size:11px;color:#92a7b7;max-width:300px}.empty-steps{display:flex;gap:13px;margin-top:19px;font-size:10px;color:#9cafa3}.empty-steps b{font-size:9px;font-weight:400;color:#abd6bd;background:#21362b;padding:1px 5px;border-radius:50%;margin-right:4px}.drawdown-wrap{height:79px;position:relative;margin:0 18px 0;border-top:1px solid #25303d}.drawdown-wrap svg{width:100%;height:100%}.chart-footer{display:flex;justify-content:space-between;gap:10px;font-size:9px;color:#8499ab;border-top:1px solid var(--line);padding:10px 18px;background:#101a23}.chart-tooltip{position:absolute;background:#1d2c39;border:1px solid #4a5c6c;box-shadow:0 4px 18px #0006;border-radius:5px;padding:7px 10px;pointer-events:none;white-space:nowrap;font-size:10px;z-index:3;transform:translateY(-100%)}.chart-tooltip[hidden]{display:none}.lower-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:18px}.segment-body{padding:15px 18px}.segment-head{display:grid;grid-template-columns:1fr 1fr;gap:14px}.segment-name{color:#9aabbc;font-size:10px;margin-bottom:3px}.segment-value{font-size:21px}.segment-detail{font-size:9px;color:#8399ab;margin-top:4px}.segment-empty{font-size:11px;color:#8297a9;min-height:70px;padding:10px 0}.segment-note{font-size:9px;color:#8197aa;margin-top:13px;padding-top:11px;border-top:1px solid var(--line)}.research-note{padding:14px 17px;color:#96a9bb;font-size:10px;line-height:1.9}.research-note strong{color:#c1d1dc;font-weight:500}.research-note ul{padding:0 0 0 14px;margin:8px 0 0}.history-panel{margin-top:20px}.history-toolbar{display:flex;gap:10px;align-items:center}.history-toolbar select{width:auto;font-size:10px;padding:4px 8px}.table-wrap{width:100%;overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:11px}th{text-align:left;color:#8297ac;font-weight:400;background:#111b26;padding:11px 16px;border-bottom:1px solid var(--line);font-size:10px}td{padding:12px 16px;border-bottom:1px solid #1e2936;color:#bccbd9;vertical-align:top}tbody tr:last-child td{border-bottom:0}tbody tr.current{background:#14251f}tbody tr:hover{background:#18242f}td .data-sub{display:block;font-size:9px;color:#7b92a6;margin-top:3px;max-width:250px;overflow:hidden;text-overflow:ellipsis}td button{border:1px solid #354c44;border-radius:4px;padding:3px 8px;background:#193026;color:#a5d9bf;font-size:10px}td button:hover{background:#27483a}.empty-table{padding:32px 20px;text-align:center;color:#7f96a9;font-size:11px}.table-note{padding:10px 17px;font-size:9px;color:#8b9eb0;border-top:1px solid var(--line)}.tabs{display:flex;gap:19px}.tab{padding:3px 0;background:none;border:0;color:#8398ab;font-size:12px;position:relative}.tab.active{color:var(--green)}.tab.active:after{content:"";height:2px;background:var(--green);position:absolute;bottom:-17px;left:0;right:0}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:10px 16px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.pagination .btn{min-height:24px;padding:2px 8px;font-size:10px}.footer{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:23px;font-size:9px;color:#6f8398}.footer span:first-child{display:flex;gap:8px;align-items:center}.footer svg{width:12px;height:12px}.warnings{margin-top:10px;padding:10px 13px;border:1px solid #53452f;color:#d1b98e;background:#252017;border-radius:6px;font-size:10px}.warnings[hidden]{display:none}.menu-toggle{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1600px){main{padding-top:37px}.work-grid{grid-template-columns:315px minmax(0,1fr)}.chart-wrap{height:305px}.metric{padding:19px}.algo-card{padding:19px}.algorithm-grid{gap:16px}}
@media(max-width:1200px){.sidebar{width:185px;padding-inline:11px}.workspace{margin-left:185px}.topbar{padding:0 23px}main{padding:25px 23px}.work-grid{grid-template-columns:255px minmax(0,1fr);gap:14px}.metric-grid{gap:8px}.metric{padding:12px 10px}.metric-value{font-size:21px}.algorithm-grid{gap:8px}.algo-card{padding:12px}.lower-grid{grid-template-columns:1fr}.head-actions .btn{font-size:11px}.head-actions{align-self:flex-start;margin-top:10px}}
@media(max-width:1000px){.sidebar{width:172px}.workspace{margin-left:172px}.algorithm-grid{grid-template-columns:repeat(2,1fr)}.algo-card{padding:13px 15px}.algo-card .algo-top{margin-bottom:8px}.algo-card .algo-bottom{margin-top:8px}.work-grid{grid-template-columns:245px minmax(0,1fr)}.metric-grid{grid-template-columns:repeat(2,1fr)}.page-head{align-items:flex-start}.page-head h1{font-size:22px}.head-actions{flex-direction:column}.top-right .avatar{display:none}.chart-title{align-items:flex-start}.chart-legend{gap:8px;flex-direction:column}.chart-wrap{height:250px}.empty-steps{gap:7px;flex-wrap:wrap;justify-content:center}.chart-footer{flex-direction:column;gap:3px}}
@media(max-width:760px){.sidebar{position:relative;width:auto;padding:16px 19px 13px;border-right:0;border-bottom:1px solid var(--line)}.brand{padding:0;gap:9px}.brand-mark{width:27px;height:29px}.brand strong{font-size:17px}.brand small{font-size:8px}.sidebar-top{display:flex;justify-content:space-between;align-items:center}.menu-toggle{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:5px;background:#18222e;color:#b7c8d7;font-size:11px;padding:6px 10px}.side-nav{display:none;margin-top:16px;grid-template-columns:1fr 1fr}.sidebar.open .side-nav{display:grid}.side-nav a{padding:9px;font-size:12px}.nav-label,.sidebar-foot{display:none}.workspace{margin-left:0}.topbar{height:45px;padding:0 18px}.top-right{gap:0;font-size:9px}.top-right>span:not(.local-chip){display:none}.breadcrumb{font-size:10px;gap:9px}main{padding:23px 17px}.page-head{display:block;margin-bottom:21px}.head-actions{flex-direction:row;margin-top:14px}.page-head h1{font-size:23px}.work-grid{grid-template-columns:1fr;gap:19px}.config-panel .config-body{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.config-body .divider{grid-column:1/-1;margin:16px 0}.data-block{grid-column:1/-1}.dropzone{padding:16px}.data-block .file-meta{margin-bottom:1px}.config-group{min-width:0}.run-area{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:center}.run-area .batch-btn{margin:0;border:1px solid #354153;min-height:38px;border-radius:5px;background:#17212d}.run-hint{grid-column:1/-1;margin-top:0}.metric-grid{grid-template-columns:repeat(4,1fr)}.metric-value{font-size:21px}.metric label{font-size:9px}.metric-foot{font-size:8px}.metric{padding:11px 10px}.chart-legend{flex-direction:row}.chart-wrap{height:265px}.chart-footer{flex-direction:row}.lower-grid{grid-template-columns:1fr 1fr}.history-panel{margin-top:18px}.section-label .side-note{font-size:9px}.footer{align-items:flex-start;font-size:8px}.history-toolbar select{max-width:135px}}
@media(max-width:480px){.metric-grid{grid-template-columns:repeat(2,1fr)}.metric-value{font-size:25px}.lower-grid{grid-template-columns:1fr}.algorithm-grid{gap:8px}.algo-card{padding:12px}.algo-card h3{font-size:12px}.algo-card p{font-size:10px}.algo-code{font-size:8px}.algo-tag{font-size:9px}.config-panel .config-body{display:block}.config-body .divider{margin:18px 0}.config-group .field-grid{grid-template-columns:1fr 1fr}.chart-title{display:block}.chart-legend{margin-top:8px}.chart-wrap{height:245px}.head-actions .btn{font-size:11px}.chart-footer{flex-direction:column}.section-label .side-note{max-width:145px;text-align:right}.footer{flex-direction:column}.tabs{gap:14px}.table-note{line-height:1.8}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Common application refinements. */
body{overflow-wrap:break-word}.workspace,main{min-width:0}.page-head h1{line-height:1.35}.sidebar .brand-mark{flex:none}.sidebar svg{flex-shrink:0}.sidebar-foot small{line-height:1.8}.skip-link{position:fixed;top:-60px;left:230px;z-index:100;background:var(--green);color:#10291f;padding:10px 16px;border-radius:6px}.skip-link:focus{top:10px}@media(max-width:900px){.skip-link{left:16px}}@media print{.sidebar,.topbar,.skip-link{display:none!important}.workspace{margin-left:0}main{padding:0;max-width:none}}

.head-actions{flex-wrap:wrap}

/* The display switch remains available in the compact mobile top bar. */
:root{color-scheme:dark}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex:none;border:1px solid #354153;border-radius:6px;padding:8px;background:#17212d;color:#c8d4e0}
.theme-toggle:hover{border-color:#6a8599;background:#21303d}.theme-toggle svg{width:16px;height:16px;flex:none}.theme-sun{display:none}html[data-theme="light"] .theme-sun{display:block}html[data-theme="light"] .theme-moon{display:none}
@media(max-width:760px){.top-right{gap:8px}.theme-toggle{width:40px;height:40px;padding:10px}}
@media(max-width:480px){.topbar .local-chip{display:none}.breadcrumb{min-width:0}.breadcrumb b{white-space:nowrap}}
