:root{color-scheme:dark;--bg:#0d1217;--panel:#141c23;--line:#283440;--text:#e4edf3;--muted:#9aaebb;--accent:#83c6e8;--blue:#1475a5;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{border:1px solid #344554;background:#1c2a35;color:var(--text);padding:10px 13px;border-radius:7px;cursor:pointer}button:hover{background:#2a3d4c}button:disabled{opacity:.45;cursor:default}button.primary{background:#9fd4ee;color:#102432;border-color:#9fd4ee;font-weight:600}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid #91d7ff;outline-offset:3px}a{color:#a1c9df;text-decoration:none}a:hover{text-decoration:underline}header{height:78px;padding:15px 30px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:14px;font-size:17px;font-weight:600}.brand-mark{font-size:21px;letter-spacing:-1px;border-right:1px solid #3e5669;padding-right:16px;color:#c7e9f8}.brand small{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:5px}.header-right{display:flex;align-items:center;gap:10px;font-size:12px}.header-right a{margin-left:15px}.dot{width:7px;height:7px;border-radius:50%;background:#8ad4ac;display:inline-block}main{display:grid;grid-template-columns:minmax(0,1fr) 340px;max-width:2200px;margin:0 auto;padding:24px;gap:24px}.visual-panel{min-width:0}.scene-wrap{height:min(69vh,790px);min-height:490px;border-radius:10px;overflow:hidden;position:relative;background:#dce4eb;border:1px solid #3a4b57}#viewport{width:100%;height:100%;touch-action:none}#viewport canvas{display:block;max-width:100%}.view-tools{position:absolute;top:14px;right:14px;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.view-tools button{font-size:11px;background:rgba(248,251,253,.9);color:#233645;border-color:rgba(61,82,97,.25);padding:8px 11px;backdrop-filter:blur(12px)}.model-note{position:absolute;bottom:17px;left:18px;color:#263c4b;display:flex;flex-direction:column;gap:3px;font-size:11px;text-shadow:0 1px 3px #f7fbff}.model-note span:first-child{font-weight:700;letter-spacing:.12em}.orbit-note{position:absolute;bottom:18px;right:18px;color:#364c5d;font-size:11px;text-shadow:0 1px 3px #fff}.loading{position:absolute;left:18px;top:18px;max-width:60%;padding:8px 11px;color:#234052;background:rgba(255,255,255,.88);font-size:12px;border-radius:5px}.loading.done{top:auto;bottom:55px;background:rgba(255,255,255,.7);font-size:10px}.operation{padding:19px 2px 15px;display:flex;justify-content:space-between;gap:20px}.operation>div{display:flex;flex-direction:column;gap:5px}.eyebrow{font-size:9px;letter-spacing:.16em;color:var(--muted)}.operation strong{font-size:17px;font-weight:500}.operation span:not(.eyebrow){font-size:12px;color:var(--muted)}.operation-count{text-align:right}.operation-count strong{font-size:14px}.playbar{display:flex;align-items:center;flex-wrap:wrap;gap:9px;padding:0 0 17px;border-bottom:1px solid var(--line)}.playbar label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.playbar select{width:auto;padding:9px;font-size:12px}.playbar>span{font-size:11px;color:var(--muted);margin-left:auto;font-variant-numeric:tabular-nums}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;padding:20px 0}.metrics>div{display:flex;flex-direction:column;gap:7px}.metrics span{font-size:11px;color:var(--muted)}.metrics strong{font-size:17px;font-weight:500;font-variant-numeric:tabular-nums}.limits-note{font-size:11px;line-height:1.65;color:#8da4b4;max-width:1050px}.limits-note strong{font-weight:500;color:#b4c8d5}aside{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:22px;align-self:start}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.panel-title h1{font-size:17px;margin:0;font-weight:500}.panel-title span{font-size:10px;color:var(--muted)}.settings-section{border-top:1px solid var(--line);padding:18px 0 0;margin-top:18px}.settings-section h2{font-size:11px;letter-spacing:.08em;font-weight:500;color:#bcd1df;margin:0 0 13px}.settings-section label{display:flex;flex-direction:column;gap:8px;font-size:11px;color:#b7c9d5;margin-bottom:13px}.settings-section label output{font-size:17px;font-variant-numeric:tabular-nums;color:var(--text)}input:not([type=range]),select{width:100%;min-width:0;padding:10px 11px;border:1px solid #354755;border-radius:6px;background:#0e171e;color:var(--text);font-size:13px}input:disabled{opacity:.4}input[type=range]{width:100%;accent-color:#8bcae9;cursor:pointer}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 13px}.settings-section p,.settings-foot{font-size:10px;color:#8fa5b4;line-height:1.6;margin:0}.settings-foot{padding-top:18px;border-top:1px solid var(--line);margin-top:18px}.station-pair{display:flex;justify-content:space-between;gap:10px;margin-bottom:13px;font-size:10px;color:#afc6d5}.station-pair span{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.station-pair b{font-weight:500;color:var(--text)}.station-dot{display:inline-block;width:6px;height:6px;border-radius:50%}.station-dot.wash{background:#58bce9}.station-dot.load{background:#8ecab0}.error{margin:12px 0;padding:12px 14px;border:1px solid #955f47;border-radius:6px;background:#3b241c;color:#ffd0b6;font-size:12px;line-height:1.5}footer{max-width:2200px;margin:0 auto;padding:10px 25px 24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:10px;color:#7f96a6}:fullscreen.scene-wrap{height:100vh;width:100vw;border-radius:0}:fullscreen #viewport{height:100vh}@media(min-width:1700px){main{grid-template-columns:minmax(0,1fr) 380px}}@media(max-width:1100px){main{grid-template-columns:1fr}aside{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 25px}.panel-title,.settings-foot{grid-column:1/-1}.scene-wrap{height:65vh;min-height:420px}}@media(max-width:620px){header{padding:14px 16px;height:74px}.header-right a{display:none}.brand{font-size:14px}.brand small{font-size:9px}main{padding:12px;gap:17px}.scene-wrap{height:480px;min-height:350px}.view-tools{left:10px;right:10px;top:10px}.view-tools button{font-size:10px;padding:8px}.loading{top:55px}.orbit-note{display:none}.operation{gap:10px}.operation strong{font-size:14px}.operation-count strong{font-size:12px}.operation span:not(.eyebrow){font-size:10px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.metrics strong{font-size:15px}.playbar>span{width:100%;margin:4px 0 0}aside{display:block;padding:18px}.limits-note{font-size:10px}.model-note{font-size:10px;left:12px;bottom:12px}.loading.done{bottom:48px;max-width:90%}footer{padding:5px 15px 20px}}

body.theater{overflow:hidden}body.theater .scene-wrap{position:fixed;inset:0;z-index:999;width:100vw;height:100vh;min-height:0;border-radius:0}body.theater #viewport{height:100vh}
main{grid-template-columns:minmax(0,1fr) 380px}aside{max-height:calc(100vh - 115px);overflow:auto;position:sticky;top:15px}summary{cursor:pointer;font-size:13px;color:#cde5f5;margin-bottom:17px}details[open]>summary{color:#88cce9}.settings-section input[type=checkbox]{width:20px;height:20px;accent-color:#80c7e8}.apply{width:100%;margin:20px 0 12px;position:sticky;bottom:0;box-shadow:0 0 15px #101820}.recipe-tools{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:14px 0}.recipe-tools button,.import{font-size:11px;padding:9px;cursor:pointer}.import{border:1px solid #344554;border-radius:7px}.analysis-panel{background:#141c23;border:1px solid #283440;border-radius:10px;padding:20px;margin:15px 0}.analysis-panel h1{font-size:16px}.engineering-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.engineering-metrics strong{font-size:15px}.findings{padding-left:18px;font-size:12px;line-height:1.65;color:#eac99f}.findings li{margin:5px 0}.findings li.error,.findings li.quality{color:#ffaaa0}.model-limit{font-size:11px;line-height:1.65;color:#9aafbf}.table-wrap{overflow:auto;max-height:280px}table{border-collapse:collapse;width:100%;font-size:11px}th,td{text-align:left;border-bottom:1px solid #283440;padding:9px 8px;vertical-align:top}th{color:#a8c1d4}td:last-child{max-width:320px}#batch-result{font-size:13px}.playbar input[type=checkbox]{width:16px;height:16px}.scene-wrap{height:62vh;min-height:430px}.panel-title span{max-width:65%;text-align:right}.model-note:after{content:attr(data-axis-label);font-size:9px} @media(max-width:1100px){main{grid-template-columns:1fr}aside{max-height:none;position:static;display:block}}@media(max-width:620px){.engineering-metrics{grid-template-columns:repeat(2,1fr)}main{padding:10px}.scene-wrap{min-height:390px}.analysis-panel{padding:14px}}
.timeline{display:flex;height:27px;border-radius:5px;overflow:hidden;background:#273743;margin:12px 0 6px;gap:1px}.timeline span{display:flex;align-items:center;justify-content:center;min-width:2px;font-size:9px;white-space:nowrap;overflow:hidden;padding:0 2px;color:#eff9ff}.timeline .dose{background:#176b93}.timeline .service{background:#2c7463}.timeline .transfer{background:#3c4c59}.timeline-key{font-size:10px;color:#a6b8c6;margin:4px 0 15px}
.layout-note{position:absolute;left:18px;top:18px;max-width:52%;padding:8px 10px;background:rgba(250,253,255,.88);border:1px solid #abc1ce;border-radius:5px;font-size:11px;color:#244252;pointer-events:none}.loading.done{display:none}@media(max-width:620px){.layout-note{top:58px;max-width:90%;font-size:9px}}
.language-label{display:flex;align-items:center;gap:7px;color:#b7c9d5}.language-label select{width:auto;padding:7px 9px;font-size:12px}.operation span[data-hose-state]{font-size:10px;color:#9fbcca}.view-tools{max-width:68%}@media(max-width:620px){.view-tools{max-width:100%}.header-right{gap:6px}.language-label{font-size:10px}.language-label select{padding:5px}.header-right>.dot,.header-right>[data-run-state]{display:none}.layout-note{top:94px}}
.layout-note{top:auto;bottom:72px;max-width:80%}@media(max-width:620px){.layout-note{top:auto;bottom:76px;max-width:90%}.scene-wrap .view-tools{max-width:100%}}
