:root{--bg:#10191c;--panel:#182429;--panel2:#1d2b30;--border:#304047;--ink:#e9f0ed;--muted:#99acae;--accent:#8ee0c4;--orange:#efb06b;--purple:#c9b0ea;--danger:#faac9b;--sidebar:226px;font-family:Inter,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a.quiet{cursor:pointer;transition:background .18s,border-color .18s}button{background:#263b3d;border:1px solid #415954;color:var(--ink);padding:9px 15px;border-radius:7px}button:hover{background:#36514b;border-color:var(--accent)}button:disabled{opacity:.5;cursor:wait}button.primary{background:var(--accent);color:#102c27;font-weight:700;border-color:var(--accent)}button.primary:hover{background:#b2f1db}button.quiet,a.quiet{background:transparent;border:1px solid var(--border);padding:7px 11px;border-radius:6px;font-size:12px;white-space:nowrap}button:focus-visible,a:focus-visible{outline:2px solid var(--orange);outline-offset:3px}input,select,textarea{border:1px solid #40555c;border-radius:5px;background:#111c20;color:var(--ink);padding:8px;width:100%;min-width:0}input[type=range]{accent-color:var(--accent);padding:0}textarea{font-family:ui-monospace,monospace;font-size:12px;min-height:88px}.sidebar{width:var(--sidebar);position:fixed;top:0;bottom:0;left:0;border-right:1px solid var(--border);background:#131e22;display:flex;flex-direction:column;padding:29px 17px 14px;z-index:10}.brand{display:flex;align-items:center;gap:12px;font-size:11px;letter-spacing:2px;line-height:1.6;padding:0 8px}.brand b{font-weight:500;font-size:10px;color:var(--muted);letter-spacing:1.2px}.brand-mark{border:1px solid var(--accent);font-size:31px;font-weight:400;line-height:1;width:45px;height:45px;display:flex;align-items:center;justify-content:center;position:relative;color:var(--accent);letter-spacing:-3px}.brand-mark span{font-size:8px;position:absolute;right:3px;bottom:3px;letter-spacing:0}.side-kicker{font-size:9px;letter-spacing:1.6px;color:#769491;padding:28px 9px 13px}nav{overflow:auto;scrollbar-width:thin}nav a{display:flex;align-items:center;gap:12px;padding:10px 10px;margin:2px 0;border-radius:6px;color:var(--muted);font-size:12px;line-height:1.5}nav a i{font:10px ui-monospace,monospace;color:#607e7d;min-width:18px}nav a.active{background:#263c38;color:var(--accent)}nav a.active i{color:var(--accent)}nav a:hover{background:#223036;color:var(--ink)}.sidebar-footer{margin-top:auto;padding:24px 10px 4px;font-size:9px;color:var(--accent);letter-spacing:1px;line-height:2}.sidebar-footer small{font-size:10px;color:#68817f;letter-spacing:0}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:6px}.app{margin-left:var(--sidebar)}header{height:70px;padding:0 32px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:18px}.crumb{font-size:10px;letter-spacing:1.3px;color:var(--muted)}.crumb span{padding:0 14px;color:#4f666a}.crumb b{font-weight:400;color:var(--ink)}.head-actions{display:flex;gap:8px}main{padding:30px 32px 64px;max-width:1700px;margin:auto}.eyebrow{color:var(--accent);font-size:10px;letter-spacing:2.4px;text-transform:uppercase;margin-bottom:10px}.page-title{display:flex;justify-content:space-between;gap:22px;align-items:start;margin-bottom:24px}.page-title h1{font-size:29px;letter-spacing:.5px;font-weight:500;margin:0 0 7px}.page-title p{margin:0;max-width:750px;color:var(--muted);font-size:13px}.page-title .chapter{white-space:nowrap;color:var(--orange);font-size:10px;letter-spacing:1px;padding:7px 11px;border:1px solid #635441;border-radius:4px}.stats{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:20px 0}.stat{padding:16px 17px 13px;background:var(--panel);border:1px solid var(--border);border-radius:7px}.stat-label{color:var(--muted);font-size:10px;letter-spacing:.5px;white-space:nowrap}.stat-value{font:26px ui-monospace,"Cascadia Code",monospace;letter-spacing:-1px;line-height:1.4;margin-top:5px}.stat small{font-size:9px;color:#789490}.grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(310px,1fr);gap:17px}.grid.equal{grid-template-columns:1fr 1fr}.card{border:1px solid var(--border);border-radius:8px;background:var(--panel);min-width:0;overflow:hidden}.card-head{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid var(--border);gap:12px}.card-head h2{font-weight:500;margin:0;font-size:13px;letter-spacing:.2px}.card-head .tiny{font:9px ui-monospace,monospace;color:var(--muted);text-align:right}.card-body{padding:18px}.controls{display:flex;align-items:end;flex-wrap:wrap;gap:12px;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:17px 18px;margin-bottom:17px}.controls label{display:block;min-width:90px;flex:1;max-width:190px;font-size:10px;color:var(--muted)}.controls label select,.controls label input{margin-top:5px;font-size:12px;height:36px}.controls .model-control{min-width:200px;max-width:290px;flex:2}.controls .actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto}.controls .actions button{height:36px;font-size:12px}.canvas-wrap{position:relative;height:450px;background:radial-gradient(ellipse at 40% 55%,#1e3437 0,#121e22 75%);overflow:hidden}.canvas-wrap canvas{display:block;width:100%;height:100%;touch-action:none}.canvas-tools{position:absolute;top:13px;left:13px;display:flex;gap:5px;z-index:2}.canvas-tools button{font-size:10px;padding:4px 8px;background:#18292bd9}.canvas-note{position:absolute;bottom:13px;left:16px;font-size:10px;color:#7ca09b;pointer-events:none}.tooltip{position:absolute;background:#0c1517ed;padding:9px 12px;font:11px ui-monospace,monospace;pointer-events:none;border:1px solid var(--accent);border-radius:5px;white-space:pre-line;z-index:3}.legend{display:flex;flex-wrap:wrap;gap:10px;padding:11px 17px;background:#172327;font-size:10px;color:var(--muted);border-top:1px solid var(--border)}.swatch{display:inline-block;height:6px;width:15px;border-radius:1px;margin-right:4px}.chart{width:100%;min-height:200px;overflow:hidden}.chart svg{display:block;width:100%;height:auto}.chart-label{font-size:11px;fill:#9bb0b0}.chart-title{font-size:12px;fill:var(--ink)}.plot-grid{stroke:#304147;stroke-dasharray:3 4}.note{color:var(--muted);font-size:12px;margin:14px 0 0;line-height:1.9}.note strong{color:var(--ink);font-weight:500}.notice{border-left:2px solid var(--orange);background:#292b27;padding:12px 15px;color:#d6c6ad;font-size:12px;line-height:1.8;margin:15px 0;border-radius:0 4px 4px 0}.formula{font-family:ui-monospace,"Cambria Math",monospace;font-size:15px;background:#111d21;border:1px solid #2d4146;border-radius:5px;padding:15px 17px;margin:12px 0;color:#c1e9d9;overflow-x:auto;line-height:1.9;white-space:pre-line}.source-ref{font-size:11px;color:var(--accent);text-decoration:underline;text-decoration-color:#54786d;text-underline-offset:3px}.stack{display:flex;flex-direction:column;gap:17px}.full{margin-top:17px}.tag{font-size:10px;color:var(--accent);background:#243c34;border:1px solid #335947;border-radius:4px;padding:3px 7px;white-space:nowrap}.tag.warn{color:var(--orange);background:#392e21;border-color:#655038}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:11px;white-space:nowrap}td,th{text-align:left;padding:10px 13px;border-bottom:1px solid var(--border)}th{font-weight:500;color:#acc5c1;background:#1c2b2e;position:sticky;top:0}tr:hover td{background:#1d3033}td.num{text-align:right;font-family:ui-monospace,monospace}td.wrap{white-space:normal;min-width:200px}.chapter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.chapter-card{border:1px solid var(--border);padding:22px;border-radius:8px;background:var(--panel);display:flex;flex-direction:column}.chapter-card:hover{border-color:#608579}.chapter-card .num{font:36px ui-monospace,monospace;color:#52786f}.chapter-card h2{font-size:17px;font-weight:500;margin:10px 0}.chapter-card p{font-size:12px;color:var(--muted);flex:1}.chapter-card a{font-size:11px;color:var(--accent);margin-top:12px}.content h2{font-size:18px;font-weight:500;margin-top:27px}.content h3{font-size:14px;font-weight:500;color:var(--accent)}.content p{font-size:13px;line-height:1.95;color:#b7c7c5}.content code{font-family:ui-monospace,monospace;color:var(--accent)}.content details{padding:13px 0;border-bottom:1px solid var(--border)}.content summary{cursor:pointer;color:var(--ink);font-size:13px}.code-box{white-space:pre-wrap;background:#101c20;padding:18px;border-radius:6px;font:11px/1.8 ui-monospace,monospace;max-height:500px;overflow:auto;color:#b5d0c4}.empty-state{padding:38px 24px;font-size:13px;line-height:1.9;color:var(--muted)}.run-info{font:11px/1.8 ui-monospace,monospace;color:var(--accent);white-space:pre-wrap;margin:12px 0}#status{position:fixed;bottom:13px;right:20px;background:#10221fee;color:#b5d8cc;border:1px solid #36594f;border-radius:7px;padding:9px 14px;font-size:11px;z-index:100;box-shadow:0 4px 20px #0006;max-width:80vw}#status.error{border-color:var(--danger);color:var(--danger)}#status button{font-size:10px;padding:1px 6px;margin-left:8px}footer{display:flex;justify-content:space-between;padding:18px 32px 27px;border-top:1px solid var(--border);font-size:9px;letter-spacing:1px;color:#597976;gap:20px}.inline-actions{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0}.sticky-note{font-size:11px;color:#859f99}.steps{counter-reset:s}.steps p{counter-increment:s}.steps p:before{content:counter(s,decimal-leading-zero);margin-right:12px;color:var(--accent);font-family:ui-monospace,monospace}.tabs{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:18px}.tabs button.selected{background:#324d44;color:var(--accent);border-color:#658877}@media(min-width:1700px){.canvas-wrap{height:530px}}@media(max-width:1200px){:root{--sidebar:196px}main{padding:25px 22px 55px}header{padding:0 22px}.grid{grid-template-columns:minmax(0,1.1fr) minmax(280px,1fr)}.stats{grid-template-columns:repeat(3,1fr)}.chapter-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){:root{--sidebar:170px}.grid,.grid.equal{grid-template-columns:1fr}.head-actions a{display:none}.page-title h1{font-size:25px}.chapter{display:none}.sidebar{padding:22px 10px}.brand{gap:8px;letter-spacing:1px}.brand-mark{width:33px;height:39px}nav a{font-size:11px;gap:5px;padding:9px 5px}.canvas-wrap{height:440px}.crumb{font-size:9px;letter-spacing:.2px}.crumb span{padding:0 5px}footer{display:block}}@media(max-width:620px){:root{--sidebar:0px}.sidebar{position:relative;width:100%;height:auto;padding:12px;border-right:0;border-bottom:1px solid var(--border)}.brand{display:none}.side-kicker,.sidebar-footer{display:none}nav{display:flex;overflow:auto}nav a{white-space:nowrap;padding:7px 10px}nav a i{display:none}.app{margin-left:0}header{height:56px;padding:0 14px}.crumb{max-width:120px}main{padding:23px 14px 55px}.page-title h1{font-size:24px}.page-title p{font-size:12px}.stats{gap:6px}.stat{padding:11px}.stat-value{font-size:23px}.controls{padding:13px;gap:8px}.controls label{max-width:none;flex-basis:28%}.controls .model-control{flex-basis:100%}.canvas-wrap{height:370px}.chapter-grid{grid-template-columns:1fr}.head-actions{gap:5px}.head-actions button{font-size:10px;padding:5px 8px}#status{right:9px;bottom:8px;max-width:95vw;font-size:10px}footer{padding:15px;font-size:8px}}
@media(max-width:620px){.stats{grid-template-columns:repeat(3,minmax(0,1fr))}.stat{min-width:0}.stat-label{white-space:normal;overflow-wrap:anywhere}}
