:root{color-scheme:dark;--bg:#071321;--panel:#0b1a2a;--panel2:#0e2133;--stroke:#21394b;--text:#eef6fa;--muted:#7d97a9;--mint:#65e6d0;--cyan:#52d8e9;--amber:#ffbb70;--violet:#d5a0ff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;font-size:13px}
*{box-sizing:border-box}html,body{min-height:100%;margin:0;background:var(--bg);color:var(--text)}button,select,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--mint);outline-offset:3px}button:disabled{opacity:.4;cursor:default}
.app-shell{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(ellipse at 45% 3%,#11293a 0%,#071321 55%)}
.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 29px;border-bottom:1px solid #274052;background:#091927d9;flex-shrink:0;gap:16px}
.brand{display:flex;align-items:center;gap:12px;min-width:286px}.brand img{filter:drop-shadow(0 0 13px #59e3de20)}.brand strong{font-size:18px;letter-spacing:2.1px;font-weight:790}.brand .slash{color:#8cead9}.brand small{display:block;font-size:9px;letter-spacing:1.65px;color:#7295a3;margin-top:5px;font-weight:700}
.top-center{color:#7396a9;font-size:10px;letter-spacing:1.8px;font-weight:700}.top-dot{color:var(--mint);padding:0 8px}.top-right{display:flex;align-items:center;gap:11px;min-width:200px;justify-content:flex-end;font-size:10px;letter-spacing:1.6px;color:#bce7e2;font-weight:750}.pulse,.small-green,.footer-dot{display:inline-block;background:#70e8bc;width:7px;height:7px;border-radius:50%;box-shadow:0 0 0 4px #67cba522,0 0 15px #57dfa275}.version{color:#567588;border-left:1px solid #2c4b5c;padding-left:13px;margin-left:3px}
.workspace{display:grid;grid-template-columns:minmax(272px,300px) minmax(460px,1fr) minmax(263px,284px);flex:1;min-height:0;max-width:1860px;width:100%;margin:0 auto}.sidebar{background:#0a1928c9;min-height:0}.left-panel{border-right:1px solid var(--stroke);display:flex;flex-direction:column}.right-panel{border-left:1px solid var(--stroke);display:flex;flex-direction:column}
.panel-header{padding:25px 23px 22px;border-bottom:1px solid #203547;display:flex;align-items:center;justify-content:space-between}.eyebrow{font-size:9px;font-weight:800;letter-spacing:2.0px;color:#63beae;margin-bottom:10px}.panel-header h2{font-size:16px;font-weight:720;letter-spacing:-.2px;margin:0}.panel-icon{color:#507b8e;font-size:23px;font-weight:300}
.section-head{font-size:10px;color:#83a0b0;font-weight:800;letter-spacing:1.6px;display:flex;align-items:center;justify-content:space-between}
.preset-wrap{padding:21px 22px;border-bottom:1px solid #1c3343}.preset-row{display:flex;gap:6px;margin-top:13px}.preset{padding:10px 0;border:1px solid #294354;flex:1;border-radius:6px;background:#10283a;color:#8baabd;font-size:11px;font-weight:650}.preset.active{border-color:#48bdaf;background:#153c43;color:#9ef4dc;box-shadow:inset 0 0 16px #5cf9d110}.preset:hover{border-color:#66c9bb}
.control-scroll{padding:6px 22px 0;flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#2d5363 transparent}.control-group{padding:17px 0 15px;border-bottom:1px solid #1b3041}.control-title{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:17px;font-size:12px}.control-title label{font-weight:625;color:#c5d9e4}.control-title output{white-space:nowrap;font-size:11px;font-weight:800;color:var(--mint)}input[type=range]{appearance:none;width:100%;height:4px;border-radius:8px;background:linear-gradient(to right,#50c9bd var(--fill,50%),#264456 var(--fill,50%));cursor:pointer;outline:none}input[type=range]::-webkit-slider-thumb{appearance:none;height:13px;width:13px;border-radius:100%;background:#d9fff6;border:3px solid #2bafa4;box-shadow:0 0 0 4px #48bdae23}input[type=range]::-moz-range-thumb{height:10px;width:10px;border-radius:50%;background:#d9fff6;border:3px solid #2bafa4}.range-label{display:flex;justify-content:space-between;font-size:9px;margin-top:11px;color:#587a8f;letter-spacing:.5px;font-weight:680}
.left-footer{padding:22px;border-top:1px solid #254050;background:#0e2030}.primary-btn{border:1px solid #80ead5;background:linear-gradient(110deg,#6ce6d1,#4ec5bd);color:#06242e;font-weight:850;letter-spacing:.2px;border-radius:6px;padding:13px 14px;width:100%;display:flex;align-items:center;gap:12px;margin:13px 0 8px;box-shadow:0 4px 25px #5de1ca22}.primary-btn:hover{filter:brightness(1.07)}.btn-arrow{margin-left:auto;font-size:17px}.two-btn{display:flex;gap:8px}.secondary-btn{width:50%;padding:11px;border:1px solid #325164;color:#c0d9e4;background:#152d3c;border-radius:5px;font-weight:700}.secondary-btn:hover{background:#1c3c4a}.helper{font-size:10px;line-height:1.55;color:#688a9d;margin:13px 0 0}
.main-area{padding:16px;min-width:0;display:flex;flex-direction:column;gap:15px}.scene-card,.chart-card{border:1px solid #264354;border-radius:8px;background:#0c1e2f;box-shadow:0 6px 24px #020d1550;overflow:hidden}.scene-card{flex:1;min-height:395px;display:flex;flex-direction:column}.scene-head{padding:17px 22px;min-height:77px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #273e4e}.scene-head h1{font-size:18px;margin:0;font-weight:720;letter-spacing:-.3px}.scene-head h1 span{color:#769aaa;font-weight:470}.scene-head .eyebrow,.chart-header .eyebrow{margin-bottom:7px}.view-badge{font-size:10px;letter-spacing:1.1px;color:#abdecf;font-weight:770;border:1px solid #2b554e;background:#1737308c;padding:8px 11px;display:flex;align-items:center;gap:10px;border-radius:4px}.view-badge.paused{border-color:#755d32;color:#f6c181;background:#43361d55}.view-badge.paused .small-green{background:#f6bf76;box-shadow:none}
.viewport{position:relative;flex:1;min-height:330px;background:radial-gradient(ellipse at 52% 35%,#163046 0,#0b1d30 45%,#06121e 85%)}.viewport canvas{display:block;width:100%;height:100%;position:absolute;inset:0;touch-action:none;cursor:grab}.viewport canvas:active{cursor:grabbing}.corner-tag{position:absolute;padding:10px 12px;pointer-events:none;font-size:9px;letter-spacing:1.15px;font-weight:760;color:#9bc6ca;border:1px solid #31526688;background:#0b2637aa;border-radius:5px}.top-left{top:15px;left:17px}.top-right{top:15px;right:17px}.dot-grid,.spark{font-size:14px;color:#64dcd3;margin-right:6px}.muted{color:#547c8e}.scene-scale{position:absolute;bottom:54px;left:20px;color:#66889b;font-size:9px;font-weight:720;letter-spacing:1.1px;pointer-events:none}.scale-bar{display:flex;align-items:center;gap:3px;margin-bottom:8px}.scale-bar span{width:22px;height:4px;background:#71a4ae}.scale-bar span:nth-child(2){background:#365d70}.scale-bar span:nth-child(3){background:#71a4ae}.scene-footer{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:10px 18px;background:linear-gradient(to bottom,transparent,#091b29cf);color:#66899a;font-size:9px;letter-spacing:1.15px;font-weight:760}.scene-footer i{padding:0 6px;color:var(--mint);font-style:normal}.scene-footer button{background:transparent;border:0;color:#8ababa;font-size:10px;font-weight:760;letter-spacing:1px}.gl-error{position:absolute;inset:20%;background:#122b3a;padding:20px;color:#ffd4a0;line-height:1.7;z-index:5;border:1px solid #a97f45}
.chart-card{height:280px;min-height:250px;display:flex;flex-direction:column}.chart-header{padding:17px 20px 11px;display:flex;align-items:center;justify-content:space-between}.chart-header h2{margin:0;font-size:17px}.chrom-sub{font-size:11px;color:#738f9f;font-weight:500;margin-left:9px}.export-btn{background:#162e3d;color:#b6d4e0;border:1px solid #335265;padding:10px 13px;border-radius:5px;font-size:11px;font-weight:750}.export-btn:hover{border-color:var(--mint)}.chart-legend{padding:1px 24px 3px;display:flex;gap:17px;flex-wrap:wrap;font-size:10px;color:#97b2c1}.chart-legend span{display:flex;align-items:center;gap:7px}.chart-legend i{width:13px;height:3px;display:inline-block;border-radius:3px}.chart-legend .line-a,.swatch.a{background:var(--cyan)}.chart-legend .line-b,.swatch.b{background:var(--amber)}.chart-legend .line-c,.swatch.c{background:var(--violet)}.composite i{background:#d7e9f0;opacity:.7}.chart-wrap{position:relative;flex:1;min-height:0;padding:2px 10px 8px 25px}.chart-wrap canvas{height:100%;width:100%;display:block}.y-label{position:absolute;top:52%;left:6px;transform:rotate(-90%) translateX(-50%);transform-origin:left center;font-size:8px;letter-spacing:1px;color:#587d91;pointer-events:none}
.timer-block{padding:25px 21px 21px;border-bottom:1px solid #23394b}.big-time{font-size:37px;font-weight:760;font-variant-numeric:tabular-nums;letter-spacing:1px;margin-top:13px;color:#e9f7fa}.big-time span{font-size:13px;color:#6996ab;letter-spacing:0;font-weight:620}.speed-row{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:14px;color:#698da0;font-size:9px;letter-spacing:1.1px;font-weight:800}.speed-row select{border:1px solid #325466;background:#153040;color:#81e6d5;padding:6px 8px;border-radius:4px;cursor:pointer;font-size:11px;font-weight:750}.diag-grid{padding:17px 17px 19px;display:grid;grid-template-columns:1fr 1fr;gap:9px;border-bottom:1px solid #23394b}.mini-card{min-width:0;padding:13px 11px;border:1px solid #294858;background:#112638;border-radius:5px}.mini-card>span{display:block;color:#779bac;letter-spacing:1.1px;font-size:9px;font-weight:780}.mini-card strong{display:block;color:#e6f1f7;font-size:20px;letter-spacing:-.5px;margin:8px 0;font-variant-numeric:tabular-nums}.mini-card small{font-size:10px;font-weight:500;color:#789aab}.mini-indicator{font-size:8px;letter-spacing:.5px;color:#6fbbab;font-weight:760}.mini-indicator i{width:5px;height:5px;display:inline-block;margin-right:5px;background:#59cea6;border-radius:50%}.mini-indicator.cyan{color:#6ab5db}.mini-indicator.cyan i{background:#54bad9}
.right-segment{padding:24px 21px;border-bottom:1px solid #253f4e}.right-segment .section-head span{font-size:10px;color:#c2dfdf;letter-spacing:.2px}.compound{margin-top:22px}.compound-top,.compound-top>div{display:flex;align-items:center}.compound-top{justify-content:space-between;gap:5px}.compound-top strong{font-size:11px;color:#d3e3eb;font-weight:725}.compound-top>span{font-size:11px;color:#8cabb8;font-variant-numeric:tabular-nums}.swatch{width:8px;height:8px;display:inline-block;border-radius:50%;margin-right:9px;box-shadow:0 0 8px currentColor}.progress-track{background:#213d50;width:100%;height:6px;border-radius:8px;margin:10px 0;overflow:hidden}.progress-fill{height:100%;width:0;transition:width .2s;background:var(--cyan);border-radius:8px;box-shadow:0 0 8px #3bafc370}.progress-fill.b{background:var(--amber)}.progress-fill.c{background:var(--violet)}.compound-foot{display:flex;justify-content:space-between;color:#668b9d;font-size:9px;letter-spacing:1.0px;font-weight:680}.compound-foot span:last-child{color:#b1c6d0;letter-spacing:0}
.mechanism{padding:24px 21px 18px}.mechanism-graphic{height:62px;display:flex;align-items:center;justify-content:space-between;padding:0 10px;margin-top:9px}.glow-a,.glow-c{color:var(--cyan);border-radius:50%;background:#1b5d6d;width:27px;height:27px;text-align:center;line-height:27px;font-size:11px;box-shadow:0 0 20px #56ced057}.glow-c{color:var(--violet);background:#533566;box-shadow:0 0 20px #bd8cff55}.tube-path{flex:1;height:16px;margin:0 11px;border:2px solid #447487;border-radius:15px;position:relative;box-shadow:inset 0 0 10px #48debd33}.tube-path span{position:absolute;top:3px;width:6px;height:6px;border-radius:50%;background:#e4bb7b;box-shadow:0 0 9px #ffc77f}.mark1{left:21%}.mark2{left:47%}.mark3{left:73%}.mechanism p{color:#88a8b7;line-height:1.65;font-size:11px;margin:6px 0}.mechanism strong{color:#cbe6e4}.model-note{margin:auto 15px 20px;display:flex;gap:9px;padding:11px;background:#183039;border:1px solid #345359;border-radius:5px;color:#b9c7ca}.model-note>span{color:#78b4af;font-size:17px}.model-note p{margin:0;line-height:1.55;font-size:10px}.model-note strong{color:#e2f0e8}
.bottombar{height:39px;display:flex;align-items:center;justify-content:space-between;padding:0 23px;background:#081723;border-top:1px solid #234051;font-size:9px;color:#65899a;letter-spacing:1.3px;font-weight:760}.bottombar .footer-dot{width:5px;height:5px;margin-right:7px}.vline{margin:0 8px;color:#38586d}.footer-m{color:#c1dbe1}
@media(min-width:1450px){.workspace{grid-template-columns:315px minmax(460px,1fr) 302px}.scene-card{min-height:520px}.chart-card{height:310px}.main-area{padding:18px;gap:18px}}
@media(max-width:1120px){.workspace{grid-template-columns:265px minmax(360px,1fr)}.right-panel{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);border-left:none;border-top:1px solid var(--stroke)}.right-panel>.panel-header{grid-column:1/-1;padding:14px 22px}.timer-block,.diag-grid,.right-segment{border-bottom:none;border-right:1px solid var(--stroke)}.right-segment{padding-top:20px}.mechanism,.model-note{display:none}.top-center{display:none}.scene-card{min-height:440px}.chart-card{height:270px}}
@media(max-width:690px){.topbar{padding:0 14px;height:66px}.brand{min-width:0}.brand strong{font-size:15px}.brand small{font-size:8px}.top-right{min-width:0}.top-right .version,.top-right #system-status{display:none}.workspace{grid-template-columns:1fr}.left-panel{border-right:0;border-bottom:1px solid var(--stroke)}.control-scroll{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;overflow:visible}.sidebar .panel-header{padding:16px 19px}.preset-wrap{padding:15px 19px}.left-footer{padding:16px 19px}.main-area{padding:10px}.scene-card{min-height:395px}.scene-head{padding:14px}.scene-head h1{font-size:16px}.viewport{min-height:300px}.top-right{display:none}.corner-tag{font-size:8px;padding:8px}.top-right.corner-tag{display:none}.chart-card{height:300px}.chrom-sub{display:block;margin:4px 0 0}.chart-legend{gap:9px}.right-panel{grid-template-columns:1fr 1fr}.right-panel>.panel-header{grid-column:1/-1}.right-segment{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;border-top:1px solid var(--stroke)}.right-segment>.section-head{grid-column:1/-1}.compound{margin:0}.compound-top{display:block}.compound-top>span{display:block;margin:6px 0 0}.compound-foot{display:block}.compound-foot span:last-child{display:block;margin-top:5px}.bottombar{padding:0 11px;font-size:8px}.bottombar>span:last-child{display:none}}
@media(max-width:420px){.control-scroll{grid-template-columns:1fr}.right-panel{display:block}.timer-block,.diag-grid,.right-segment{border-right:none;border-bottom:1px solid var(--stroke)}.right-segment{display:block}.compound{margin-top:15px}.compound-top{display:flex}.compound-top>span{margin:0}.compound-foot{display:flex}.chart-header{padding:12px}.chart-legend .composite{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
