:root{--navy:#102638;--deep:#0b1c2a;--teal:#138981;--mint:#4dd7bc;--orange:#ed7545;--text:#253949;--muted:#778794;--line:#e6ebef;--paper:#f6f8fa;--white:#fff;--side:235px;--panel:356px;--header:76px;--footer:40px;font-family:Inter,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",system-ui,sans-serif;color:var(--text);font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--paper);font-size:13px;overflow:hidden}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{transition:background .18s,color .18s,box-shadow .18s,transform .18s}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,a:focus-visible{outline:3px solid #63c9ba;outline-offset:3px}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}a{color:inherit;text-decoration:none}button{border:0;background:none;color:inherit}small{font-size:11px}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}.topbar{height:var(--header);background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:relative;z-index:10}.brand{display:flex;align-items:center;gap:12px;font-size:24px;letter-spacing:1.2px;font-weight:750;line-height:1.1;min-width:250px}.brand-icon{display:grid;place-items:center;background:#1d3e50;width:39px;height:43px;border-radius:9px;color:var(--mint)}.brand-icon svg{width:29px;height:29px}.brand-light{font-weight:350;color:#a5bdc8}.brand small{display:block;color:#8ba2af;letter-spacing:1.8px;margin-top:7px;font-size:10px;font-weight:400}.topbar nav{display:flex;align-items:stretch;height:100%;gap:30px}.nav-item{font-size:14px;color:#a7bac6;position:relative;padding:0 4px}.nav-item:hover,.nav-item.active{color:white}.nav-item.active:after{content:"";position:absolute;height:3px;background:var(--mint);bottom:0;left:5px;right:5px}.nav-dot{display:inline-block;width:5px;height:5px;background:var(--mint);border-radius:50%;margin:0 0 5px 6px}.header-right{display:flex;align-items:center;gap:20px;min-width:250px;justify-content:flex-end}.school{font-size:11px;letter-spacing:.5px;color:#d5dfe5}.school em{font-style:normal;color:#5d7a8b;padding:0 8px}.icon-button{display:grid;place-items:center;width:34px;height:34px;border-radius:7px}.icon-button:hover{background:#ecf1f4}.header-help:hover{background:#294251}.avatar{border:1px solid #4c6b7c;color:#b9d1db;display:grid;place-items:center;width:31px;height:31px;border-radius:50%;font-size:12px}.workspace{display:grid;grid-template-columns:var(--side) minmax(0,1fr) var(--panel);height:calc(100dvh - var(--header) - var(--footer));min-height:450px;overflow:hidden}.step-sidebar{background:#f7f9fb;display:flex;flex-direction:column;border-right:1px solid #dfe6ea;min-width:0;z-index:4}.sidebar-head{padding:26px 22px 18px}.eyebrow{font-size:9px;letter-spacing:1.7px;color:#8498a4;font-weight:650}.sidebar-head h2{font-size:19px;font-weight:650;margin:7px 0 19px}.progress-meta{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.progress-meta b{color:var(--teal);font-weight:650}.progress-track{height:4px;background:#e2e9ec;border-radius:5px;margin-top:9px;overflow:hidden}.progress-track i{display:block;background:var(--teal);height:100%;width:0;transition:width .4s}.step-list{overflow-y:auto;flex:1;padding:0 11px 18px;scrollbar-width:thin;scrollbar-color:#d3dce0 transparent}.module-title{display:flex;justify-content:space-between;align-items:center;padding:15px 10px 10px;font-size:10px;color:#687e8d;letter-spacing:.3px}.module-title b{font-weight:600}.module-title span{font-size:9px;opacity:.65}.step-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border-radius:5px;text-align:left;font-size:11px;margin-bottom:2px;min-height:34px;position:relative}.step-item .step-no{width:20px;height:20px;border:1px solid #d9e1e5;display:grid;place-items:center;border-radius:50%;font-size:9px;color:#8c9aa4;flex-shrink:0}.step-item .step-no svg{width:12px;height:12px}.step-item .step-lock{width:12px;height:12px;margin-left:auto;opacity:.45}.step-item.locked{color:#9aa7af;cursor:not-allowed}.step-item.current{background:#e4efed;color:#136f69;font-weight:600}.step-item.current:before{content:"";width:3px;position:absolute;top:7px;bottom:7px;left:-11px;background:var(--teal)}.step-item.current .step-no{border-color:var(--teal);background:var(--teal);color:white}.step-item.completed .step-no{background:#e2eee9;color:var(--teal);border-color:transparent}.step-item:not(.locked):hover{background:#e8eef1}.sidebar-footer{border-top:1px solid var(--line);padding:12px 15px;display:flex;align-items:center;font-size:9px;color:#8c9ca6;gap:6px;min-height:45px}.save-dot{width:5px;height:5px;border-radius:50%;background:#3f9b84}.sidebar-footer button{margin-left:auto;padding:0;display:flex}.sidebar-footer svg{width:14px;height:14px}.simulation{position:relative;background:#cbd8de;min-width:0;overflow:hidden}.scene{position:absolute;inset:0}.scene canvas{display:block;width:100%;height:100%;touch-action:none}.scene-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 120px #1d364a0b}.scene-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#dae3e8;z-index:2;color:#57717f}.loader{width:34px;height:34px;border-radius:50%;border:2px solid #aebfc8;border-top-color:var(--teal);animation:spin 1s linear infinite}.scene-loading small{color:#95a5b0}@keyframes spin{to{transform:rotate(360deg)}}.scene-top{position:absolute;top:24px;left:24px;right:24px;display:flex;justify-content:space-between;pointer-events:none;gap:10px}.scene-title{display:flex;align-items:center;gap:9px;color:#254b5b}.live-dot{display:inline-block;width:6px;height:6px;background:#2ac3a6;border-radius:50%;box-shadow:0 0 0 4px #2ac3a618;flex-shrink:0}.scene-title b{font-size:15px;font-weight:650;display:block}.scene-title small{display:block;font-size:8px;letter-spacing:1.4px;margin-top:5px;color:#66838e}.scene-badge{font-size:8px;background:#ffffff9e;border:1px solid #fff8;border-radius:3px;padding:4px 6px;margin:0 0 10px 6px;color:#6b8793;white-space:nowrap}.scene-buttons{display:flex;gap:7px;pointer-events:auto}.scene-btn{width:32px;height:32px;display:grid;place-items:center;background:#ffffffc4;border:1px solid #fff8;border-radius:5px;color:#567684;box-shadow:0 3px 8px #425e6d09}.scene-btn svg{width:15px;height:15px}.scene-btn:hover{background:#fff;transform:translateY(-2px)}.view-switch{display:flex;position:absolute;top:84px;left:24px;background:#ffffff9e;border:1px solid #fff9;border-radius:5px;padding:3px;gap:3px}.view-switch button{padding:6px 10px;font-size:9px;color:#6b818b;border-radius:3px}.view-switch button.selected{background:#fff;color:var(--teal);box-shadow:0 1px 6px #234b6012}.scene-footer{position:absolute;left:20px;right:20px;bottom:15px;display:flex;align-items:center;justify-content:space-between;font-size:8px;color:#5b7885;gap:10px;pointer-events:none}.scene-footer span{display:flex;align-items:center;gap:5px;white-space:nowrap}.scene-footer em{font-style:normal;opacity:.3;margin:0 2px}.scene-footer kbd{font-family:inherit;border:1px solid #89a6b352;padding:2px 4px;border-radius:2px;background:#fff3;font-size:8px}.example-label button{pointer-events:auto;padding:0;display:flex}.example-label svg{width:12px;height:12px}.mini-map{position:absolute;right:20px;bottom:53px;width:144px;background:#ffffffc9;border:1px solid #fff9;box-shadow:0 6px 15px #1431450a;border-radius:7px;padding:9px 9px 0}.mini-map>span{font-size:7px;letter-spacing:1px;color:#6d8490;display:flex;justify-content:space-between;margin-bottom:7px}.mini-map>span b{font-weight:500;color:#49616e}.mini-map>svg{width:100%;height:auto;stroke:none;display:block}.mini-map button{display:flex;justify-content:space-between;align-items:center;width:100%;font-size:8px;padding:8px 1px;color:#527984}.mini-map button svg{width:12px;height:12px}.zone-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.zone-label{position:absolute;transform:translate(-50%,-100%);background:#ffffffed;color:#3d5b68;border:1px solid #fff;border-radius:4px;padding:7px 9px;box-shadow:0 4px 18px #12364b1a;pointer-events:auto;display:flex;gap:6px;align-items:center;font-size:10px;white-space:nowrap;will-change:left,top;transition:background .2s,color .2s}.zone-label:after{position:absolute;bottom:-8px;height:8px;left:50%;width:1px;background:#4b788b78;content:""}.zone-label i{width:5px;height:5px;background:#198e86;border-radius:50%}.zone-label.active{background:#138981;color:white;border-color:#138981;z-index:3}.zone-label.active i{background:#a0f6de}.zone-label.visited:before{content:"✓";font-size:10px;color:#229181}.zone-label.visited i{display:none}.zone-label:hover{background:var(--navy);color:white}.scene-message{position:absolute;left:24px;right:185px;bottom:67px;display:flex;gap:12px;align-items:center;border:1px solid #ffffffb3;border-radius:7px;padding:13px 14px;background:#fffffff0;box-shadow:0 6px 25px #163a4d0c;pointer-events:none}.hint-icon{color:var(--teal);font-size:15px;font-weight:400;font-family:monospace;border-right:1px solid #dfe9eb;padding-right:13px}.scene-message b{font-size:11px;font-weight:600;display:block;margin-bottom:5px}.scene-message span:not(.hint-icon){font-size:9px;color:#7c929d;line-height:1.6}.task-panel{background:#fff;border-left:1px solid #dce5e9;display:flex;flex-direction:column;z-index:4;min-width:0}.task-tabs{display:flex;height:55px;border-bottom:1px solid var(--line);padding:0 22px;gap:23px;flex-shrink:0}.task-tabs button{position:relative;font-size:11px;color:#8998a2;display:flex;align-items:center;gap:5px}.task-tabs svg{width:13px;height:13px}.task-tabs .active{color:var(--teal);font-weight:600}.task-tabs .active:after{content:"";background:var(--teal);height:2px;position:absolute;bottom:0;left:0;right:0}.task-content,.guide-content{padding:24px 23px;overflow:auto;flex:1;scrollbar-width:thin;scrollbar-color:#dbe5ea transparent}.task-kicker{display:flex;align-items:center;gap:7px;color:#758d9c;font-size:9px;letter-spacing:.8px}.task-kicker .level{background:#edf3f3;color:#548e86;font-size:8px;border-radius:3px;padding:3px 6px;letter-spacing:0}.task-content h2{font-size:20px;font-weight:650;line-height:1.4;margin:10px 0 11px;letter-spacing:-.4px}.task-description{font-size:11px;line-height:1.85;color:#81909b;margin:0 0 20px}.objective{background:#f1f7f6;border-left:2px solid #53aaa0;padding:11px 12px;margin:0 0 21px;font-size:10px;line-height:1.8;color:#52786f}.objective b{font-size:9px;display:block;color:#2b7e74;margin-bottom:3px}.section-label{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:600;margin:21px 0 11px}.section-label small{font-size:9px;font-weight:400;color:#8b9da7}.zone-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.zone-card{border:1px solid #e2e9ec;border-radius:5px;padding:10px 9px;text-align:left;display:flex;align-items:center;gap:8px;font-size:10px;background:#fff}.zone-card .zone-num{font-size:9px;color:#9cabb5;font-family:monospace}.zone-card b{font-weight:500}.zone-card svg{width:11px;height:11px;color:var(--teal);margin-left:auto}.zone-card.active{border-color:#4daca1;background:#edf7f4;color:#20736c}.zone-card.done{color:#408c80}.zone-card:hover{border-color:#8bb9b2}.zone-detail{margin-top:15px;border:1px solid #e4e9ee;border-radius:5px;padding:13px}.zone-detail strong{font-size:11px}.zone-detail p{font-size:10px;line-height:1.8;color:#8b99a4;margin:8px 0 12px}.field{display:block;margin:13px 0}.field-label{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#5e7482;margin-bottom:7px}.field-label output{color:var(--teal);font-weight:600}.field select,.field input[type=number],.field input[type=text],textarea{width:100%;border:1px solid #dfe7ec;border-radius:4px;background:#f9fbfc;padding:9px 10px;color:#334f5f;outline:none;font-size:11px}.field select:focus,.field input:focus,textarea:focus{border-color:#48a79e;box-shadow:0 0 0 2px #48a79e13}.field input[type=range]{width:100%;accent-color:var(--teal);margin:4px 0}.range-limits{display:flex;justify-content:space-between;color:#9eacb5;font-size:8px}.small-button{background:#e9f4f1;color:#167b70;border:1px solid #d7e9e3;padding:7px 12px;font-size:10px;border-radius:4px}.small-button:hover{background:#dbeee7}.small-button.filled{background:var(--teal);color:#fff;border-color:var(--teal)}.small-button.full{margin-top:7px}.full{width:100%}.task-footer{padding:14px 23px 17px;background:#fff;border-top:1px solid var(--line);flex-shrink:0}.primary{background:var(--teal);color:#fff;padding:12px 16px;border-radius:5px;display:flex;align-items:center;justify-content:center;gap:7px;font-size:11px;font-weight:550;box-shadow:0 3px 7px #168a8013}.primary svg{width:14px;height:14px}.primary:hover{background:#0e756f}.next-button{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 0 0;font-size:10px;color:#6f8592}.next-button svg{width:13px;height:13px}.next-button:not(:disabled){color:var(--teal)}.validation-result{font-size:10px;line-height:1.7;max-height:130px;overflow:auto}.validation-result:not(:empty){margin-bottom:12px;padding:10px 11px;background:#eff7f2;color:#397f64;border-radius:4px}.validation-result.error{background:#fff1eb;color:#b56a4c}.validation-result b{display:block;margin-bottom:3px}.bottom-bar{height:var(--footer);background:white;border-top:1px solid #dfe5e9;display:flex;align-items:center;justify-content:space-between;padding:0 23px;font-size:9px;color:#8a9ba7;position:relative;z-index:6;gap:10px}.bottom-bar>div{display:flex;align-items:center;gap:8px}.bottom-mark{display:inline-block;width:5px;height:5px;border-radius:1px;background:var(--teal)}.muted-separator{color:#c5cfd5;margin:0 3px}.bottom-info{gap:22px!important}.bottom-info>span:nth-child(2){color:var(--teal)}.bottom-info button{display:flex;align-items:center;gap:5px;color:#7d919e;font-size:9px;padding:0}.bottom-info svg{width:12px;height:12px}.intro-mode{display:block}.intro-mode .step-sidebar,.intro-mode .task-panel,.intro-mode .lab-only,.intro-mode .zone-labels{display:none}.intro-mode .simulation{width:100%;height:100%;background:#173346}.intro-mode .scene-vignette{background:linear-gradient(90deg,#0a202eee 0%,#0c2836d9 30%,#12334280 54%,#193d4810 78%),linear-gradient(0deg,#0d2639bb,transparent 33%)}.intro-mode .scene canvas{opacity:.8}.intro-content{position:absolute;z-index:3;left:7.5%;top:50%;transform:translateY(-50%);color:white;max-width:650px;pointer-events:none}.intro-content button{pointer-events:auto}.intro-kicker{font-size:11px;letter-spacing:2.6px;color:#8bd8c8;display:flex;align-items:center;gap:8px;margin-bottom:25px}.intro-kicker>span{display:inline-block;width:17px;height:2px;background:var(--mint)}.intro-content h1{font-size:clamp(30px,3.6vw,58px);font-weight:550;letter-spacing:2px;line-height:1.45;margin:0}.intro-content h1>span{font-weight:600;letter-spacing:1px}.intro-subtitle{font-size:19px;color:#b4d2dc;letter-spacing:10px;font-weight:350;margin:15px 0 25px}.intro-desc{font-size:12px;line-height:2;color:#93acb9;font-weight:350;letter-spacing:.7px}.intro-meta{display:flex;gap:37px;margin:33px 0 30px}.intro-meta>div{border-right:1px solid #aac0ce27;padding-right:36px}.intro-meta>div:last-child{border:0}.intro-meta strong{font-size:27px;font-weight:400;font-variant-numeric:tabular-nums;display:block;color:#deedf2;line-height:1.2}.intro-meta strong small{font-size:10px;font-weight:400;margin-left:5px;color:#9ebbc8}.intro-meta>div>span{font-size:9px;display:block;margin-top:8px;color:#7896a6;letter-spacing:1px}.entry-actions{display:flex;gap:20px;align-items:center}.start-button{background:var(--orange);color:#fff;display:flex;align-items:center;justify-content:space-between;min-width:180px;padding:16px 21px;font-size:13px;letter-spacing:1px;border-radius:4px;box-shadow:0 7px 25px #ee774032}.start-button:hover{background:#f78c61;transform:translateY(-2px)}.start-button svg{width:17px;height:17px}.intro-secondary{font-size:11px;color:#a7bfca;letter-spacing:.6px;padding:8px}.intro-secondary span{margin-left:6px}.entry-note{font-size:9px;color:#6f92a4;display:flex;align-items:center;gap:7px;margin-top:21px}.entry-note svg{width:13px;height:13px}.intro-scene-caption{position:absolute;right:5%;bottom:43px;color:#e5f3f8;display:flex;align-items:center;gap:12px;font-size:10px;letter-spacing:1px}.intro-scene-caption b{font-size:9px;font-weight:500}.intro-scene-caption>span:last-child{font-size:9px;color:#9eb6c0;border-left:1px solid #9eb6c044;padding-left:12px;letter-spacing:.6px}.workspace:not(.intro-mode) .intro-content,.workspace:not(.intro-mode) .intro-scene-caption{display:none}.order-list{display:flex;flex-direction:column;gap:6px}.order-row{display:flex;align-items:center;background:#f7f9fa;border:1px solid #e3eaee;border-radius:4px;padding:7px 8px;font-size:10px;gap:8px}.order-row .order-num{font-family:monospace;color:#94a6b0;min-width:13px}.order-row>span:nth-child(2){flex:1}.order-row .handle{color:#afbdc5;font-size:13px;cursor:grab}.order-controls{display:flex;gap:2px}.order-controls button{border:1px solid #dde5e9;border-radius:2px;padding:0 4px;font-size:9px;height:19px;color:#79909d}.order-controls button:hover{background:#e2eeeb}.order-row.dragging{opacity:.4}.chip-row{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid #dce5e9;border-radius:4px;padding:7px 10px;color:#6d8391;font-size:10px}.chip.selected{color:#15766c;background:#eaf5f1;border-color:#80bdb0}.option-list{display:flex;flex-direction:column;gap:8px}.option-choice{padding:11px 12px;display:flex;align-items:flex-start;gap:9px;border:1px solid #e1e8ec;border-radius:5px;font-size:10px;cursor:pointer;line-height:1.6}.option-choice:has(input:checked){background:#edf7f3;border-color:#7ab8ab;color:#267667}.option-choice input{accent-color:var(--teal);margin:2px 0 0}.option-choice b{font-weight:500;display:block}.option-choice small{font-size:9px;color:#97a7b1;display:block;margin-top:3px}.metric-pair{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:14px 0}.metric-pair>div{padding:12px;background:#f3f7f8;border-radius:5px}.metric-pair small{font-size:9px;color:#8b9da7;display:block;margin-bottom:6px}.metric-pair strong{font-size:20px;color:#335c6d;font-weight:500}.metric-pair strong em{font-size:9px;font-style:normal;margin-left:3px;color:#8da3ad}.metric-pair .good strong{color:#178a75}.metric-pair .bad strong{color:#cd7758}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:10px;text-align:left;margin:12px 0}th{font-size:9px;font-weight:500;color:#8a9ca6;background:#f1f5f7;padding:8px 7px}td{padding:9px 7px;border-bottom:1px solid #ebeff2;color:#607d8c}td select{width:100%;border:1px solid #dfe7eb;padding:6px 3px;border-radius:3px;background:white;font-size:9px;color:#567585}.subtle-note{font-size:9px;line-height:1.9;color:#96a6b1;background:#f8fafb;padding:10px 11px;border-radius:4px;margin:13px 0}.subtle-note strong{font-weight:600;color:#79909f}.chart{width:100%;height:auto;margin-top:8px;display:block;background:#f8fafb;border-radius:5px;border:1px solid #eaf0f3}.chart text{font-family:inherit;font-size:9px;fill:#8a9ca9;stroke:none}.chart .gridline{stroke:#dfe7ec;stroke-width:.6}.chart .axis{stroke:#acbec8;stroke-width:.8}.chart path.curve{stroke:#1d9989;stroke-width:2;fill:none}.chart .area{fill:#26aa8c12;stroke:none}.chart-legend{display:flex;gap:13px;font-size:8px;color:#8fa2ac;margin:8px 0}.chart-legend i{display:inline-block;width:12px;height:2px;background:#1d9989;vertical-align:middle;margin-right:4px}.chart-legend i.orange{background:#e89a57}.defect-preview{border-radius:5px;border:1px solid #dee5e9;overflow:hidden;position:relative;background:#c7cac8}.defect-preview svg{width:100%;height:auto;display:block;stroke:none}.defect-preview>span{position:absolute;top:9px;left:9px;background:#173f4bdc;color:white;font:9px monospace;padding:4px 6px;border-radius:3px}.defect-preview .frame{fill:none;stroke:#e9a16d;stroke-dasharray:4 3;stroke-width:1}.guide-heading{display:flex;align-items:center;gap:10px;margin:0 0 18px}.guide-logo{background:#eaf6f1;color:#249681;width:35px;height:35px;display:grid;place-items:center;border-radius:8px}.guide-heading b{font-size:13px;display:block}.guide-heading small{font-size:8px;color:#9caab4;margin-top:4px;display:block}.assistant-bubble{background:#f3f7f8;border-radius:0 9px 9px;padding:13px 14px;font-size:11px;color:#627c8a;line-height:1.95}.guide-citation{font-size:9px;color:#96a6b1;margin:10px 0 20px;line-height:1.8}.guide-content h3{font-size:11px;font-weight:550;margin:25px 0 12px}.question-button{display:flex;width:100%;border:1px solid #e1eaed;border-radius:5px;text-align:left;justify-content:space-between;padding:10px 12px;color:#5b7a89;margin-bottom:8px;font-size:10px;line-height:1.8}.question-button svg{width:12px;height:12px;margin-top:3px}.chat-input{display:flex;gap:7px;margin-top:20px}.chat-input input{width:100%;border:1px solid #dce7eb;border-radius:4px;font-size:10px;padding:9px}.chat-input button{background:var(--teal);color:white;border-radius:4px;padding:0 9px}.chat-input svg{width:14px}.guide-response{font-size:10px;line-height:1.9;padding:13px;background:#ecf7f2;color:#4b7c6d;border-radius:5px;margin:13px 0}.report-btn{margin-top:12px}.toast{position:fixed;bottom:60px;left:50%;transform:translate(-50%,20px);background:#15394aed;border:1px solid #ffffff1f;color:white;z-index:30;font-size:11px;line-height:1.7;padding:11px 20px;border-radius:6px;box-shadow:0 6px 30px #0002;max-width:min(90vw,550px);opacity:0;pointer-events:none;transition:.25s}.toast.visible{opacity:1;transform:translate(-50%,0)}dialog{border:1px solid #e3ebef;border-radius:10px;width:min(840px,90vw);max-height:85dvh;box-shadow:0 25px 100px #10263850;padding:0;color:var(--text)}dialog::backdrop{background:#09202e80;backdrop-filter:blur(5px)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:23px 29px;border-bottom:1px solid var(--line);background:white;position:sticky;top:0;z-index:2}.modal-head h2{font-size:20px;font-weight:600;margin:6px 0 0}.modal-body{padding:25px 29px;font-size:12px;line-height:1.9}.modal-body h3{font-size:14px;font-weight:600;margin:24px 0 9px}.modal-body p{color:#7b919f}.modal-body ul{padding-left:20px;color:#6e8796}.modal-body .primary{margin-top:17px}.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.flow-card{border:1px solid #e1e9ee;padding:16px 18px;border-radius:5px}.flow-card small{font-size:9px;letter-spacing:1px;color:var(--teal)}.flow-card h3{margin:6px 0 10px}.flow-card p{font-size:10px;margin:0;line-height:1.9}.report-stats{display:flex;gap:30px;padding:20px;background:#f1f7f5;border-radius:5px;margin-bottom:18px}.report-stats b{display:block;font-size:27px;font-weight:500;color:#217e70}.report-stats span{font-size:10px;color:#82a097}.report-actions{display:flex;gap:10px}.report-actions .primary{margin:0}.report-table td{font-size:10px}.report-table th{font-size:10px}.profile-bar{display:flex;align-items:center;gap:10px;margin:9px 0;font-size:10px}.profile-bar>span{width:67px}.profile-bar>div{height:6px;background:#e7eff1;flex:1;border-radius:3px;overflow:hidden}.profile-bar i{display:block;height:100%;background:#43a496}.report-field{margin:15px 0}.report-field label{display:block;font-size:11px;margin-bottom:7px;font-weight:550}.report-field textarea{height:95px;line-height:1.9;resize:vertical}.status-pill{display:inline-block;font-size:9px;padding:3px 7px;border-radius:3px;background:#e8f3ee;color:#368b74}.status-pill.warning{background:#fff1e6;color:#bd8458}.fallback-plan{width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#6c8694}.fallback-plan svg{width:85%;height:auto;max-height:70%;stroke:none}.fallback-plan p{font-size:10px}.fallback-plan text{font-family:inherit;fill:#3c6170;font-size:12px}.empty-state{text-align:center;padding:25px;color:#8aa0ac}.empty-state svg{width:35px;height:35px;margin-bottom:10px}.sample-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:8px 0;font-size:10px;color:#688391}.sample-row b{font-weight:500}.sample-row .bad{color:#cf845f}.checkbox-line{display:flex;align-items:center;gap:8px;font-size:10px;padding:8px 0;color:#6b8390}.checkbox-line input{accent-color:var(--teal)}.warning-banner{border-left:3px solid #e59762;background:#fff6ed;padding:11px 13px;font-size:10px;color:#ad7c55;line-height:1.8;margin:14px 0}.metric-breakdown{font-size:9px;color:#8aa0aa;border-top:1px solid #e2ebef;padding-top:9px;margin:8px 0;line-height:1.9}.toggle-menu{display:none}.mobile-task-toggle{display:none}
@media(min-width:1700px){:root{--side:260px;--panel:390px;--header:84px}.task-content,.guide-content{padding:28px}.task-description{font-size:12px}.zone-card{font-size:11px;padding:13px 10px}.step-item{font-size:12px;padding:10px}.sidebar-head{padding:30px 24px 22px}.scene-title b{font-size:17px}.scene-message b{font-size:12px}.scene-message span:not(.hint-icon){font-size:10px}.intro-content{left:8%}.intro-content h1{font-size:60px}.intro-desc{font-size:14px}}
@media(max-width:1200px){:root{--side:200px;--panel:320px;--header:68px;--footer:35px}.topbar{padding:0 20px}.school{display:none}.header-right{min-width:100px}.brand{min-width:220px}.topbar nav{gap:23px}.task-content,.guide-content{padding:20px 18px}.task-footer{padding:12px 18px}.sidebar-head{padding:22px 17px 16px}.step-item{gap:7px;font-size:10px}.scene-footer>span:first-child{font-size:7px;gap:3px}.scene-footer{left:15px;right:15px}.scene-message{left:16px;right:160px;padding:10px;gap:8px}.scene-message b{font-size:10px}.scene-message span:not(.hint-icon){font-size:8px}.mini-map{width:124px;right:16px}.scene-top{left:18px;right:18px;top:20px}.view-switch{left:18px}.scene-badge{display:none}.zone-label{font-size:9px;padding:6px 7px}.intro-content{left:6%}.intro-content h1{font-size:43px}.intro-subtitle{font-size:16px}.bottom-bar{font-size:8px;padding:0 17px}.bottom-info{gap:12px!important}}
@media(max-width:1000px){:root{--side:176px;--panel:300px}.step-item{font-size:9px;padding:8px 6px;gap:5px}.module-title{font-size:9px;padding-left:7px;padding-right:7px}.sidebar-head h2{font-size:17px}.sidebar-head{padding:19px 14px 13px}.step-list{padding:0 8px 10px}.step-item.current:before{left:-8px}.sidebar-footer{padding:10px 8px;font-size:8px}.task-content h2{font-size:18px}.task-tabs{padding:0 18px}.scene-message{right:16px;bottom:46px}.mini-map{display:none}.scene-footer>span:first-child{display:none}.scene-footer{justify-content:flex-end}.view-switch button{padding:5px 8px;font-size:8px}.scene-title b{font-size:12px}.scene-title small{font-size:7px;letter-spacing:.8px}.scene-buttons{gap:4px}.scene-btn{width:27px;height:27px}.intro-content h1{font-size:38px}.intro-desc{font-size:11px}.intro-scene-caption{right:3%;font-size:9px}.intro-scene-caption>span:last-child{display:none}.bottom-bar>div:first-child{max-width:400px;white-space:nowrap;overflow:hidden}.bottom-info>span:first-child{display:none}}
@media(max-width:760px){:root{--header:61px;--footer:34px;--panel:310px}.topbar{padding:0 15px}.brand{font-size:21px;min-width:0;gap:8px}.brand-icon{width:31px;height:35px;border-radius:6px}.brand-icon svg{width:23px;height:23px}.brand small{font-size:8px;letter-spacing:1px;margin-top:5px}.topbar nav{gap:14px}.nav-item{font-size:11px;padding:0 1px}.header-right{display:none}.workspace:not(.intro-mode){display:grid;grid-template-columns:1fr 310px;grid-template-rows:1fr;min-height:380px}.step-sidebar{display:none}.simulation{min-height:250px}.scene-top{top:14px;left:12px;right:12px;gap:6px;flex-wrap:wrap}.scene-title b{font-size:11px}.scene-title small{display:none}.scene-title{gap:6px}.scene-buttons{margin-left:auto}.view-switch{left:12px;top:57px;gap:0}.view-switch button{padding:4px 6px;font-size:8px}.scene-message{left:10px;right:10px;bottom:40px;padding:9px}.hint-icon{display:none}.scene-message b{font-size:9px}.scene-message span:not(.hint-icon){font-size:8px}.scene-footer{left:8px;right:8px;font-size:7px}.intro-content{left:8%;top:46%;max-width:85%}.intro-content h1{font-size:36px;letter-spacing:1px}.intro-subtitle{font-size:15px;letter-spacing:7px;margin:13px 0 20px}.intro-kicker{font-size:9px;margin-bottom:20px}.intro-meta{margin:24px 0 25px;gap:25px}.intro-meta>div{padding-right:25px}.intro-meta strong{font-size:25px}.intro-desc{font-size:11px}.entry-note{font-size:8px}.intro-mode .scene-vignette{background:linear-gradient(90deg,#0a202ee6,#123342a3 75%,#193d4866),linear-gradient(0deg,#0d2639bb,transparent 33%)}.intro-scene-caption{bottom:20px;right:8%;font-size:8px}.intro-scene-caption b{font-size:8px}.bottom-bar>div:first-child{font-size:7px;max-width:53vw}.bottom-info{gap:10px!important}.bottom-info button{font-size:8px}.bottom-info>span:nth-child(2){font-size:8px}.modal-grid{grid-template-columns:1fr}.modal-head{padding:18px 20px}.modal-body{padding:20px}.modal-head h2{font-size:18px}.report-stats{gap:18px;padding:15px}.report-stats b{font-size:23px}.report-table th,.report-table td{font-size:9px}.task-kicker:before{content:""}.task-content{padding:18px 17px}.task-footer{padding:12px 17px}.zone-label{font-size:8px;padding:5px}.scene-message{max-height:78px;overflow:hidden}}
@media(max-width:560px){body{overflow:auto}.workspace:not(.intro-mode){display:flex;flex-direction:column;height:calc(100dvh - var(--header) - var(--footer));min-height:550px}.workspace:not(.intro-mode) .simulation{height:40%;min-height:210px;flex-shrink:0}.workspace:not(.intro-mode) .task-panel{height:60%;border-left:0;border-top:1px solid #d6e1e7}.task-tabs{height:41px;gap:25px}.task-tabs button{font-size:10px}.task-content,.guide-content{padding:15px 20px}.task-content h2{font-size:17px;margin:6px 0}.task-description{font-size:10px;margin-bottom:12px}.objective{margin-bottom:13px;padding:8px 10px;font-size:9px}.section-label{margin:13px 0 9px;font-size:10px}.zone-list{grid-template-columns:repeat(3,1fr);gap:6px}.zone-card{font-size:9px;padding:8px 6px;gap:5px}.zone-detail{padding:10px;margin-top:10px}.task-footer{padding:10px 20px;display:flex;flex-wrap:wrap;gap:8px}.task-footer .primary{width:65%;padding:10px;font-size:10px}.task-footer .next-button{width:calc(35% - 8px);padding:0;font-size:10px}.validation-result{width:100%;max-height:80px;font-size:9px}.validation-result:not(:empty){margin-bottom:0;padding:7px 10px}.scene-title small{display:block;font-size:6px}.scene-message{bottom:12px;left:12px;right:140px;max-height:50px;padding:7px;line-height:1.5}.scene-message b{font-size:9px;margin-bottom:2px}.scene-message span:not(.hint-icon){font-size:7px;display:none}.scene-footer{bottom:13px}.view-switch{top:49px;padding:2px}.zone-label{font-size:8px;padding:4px 5px}.zone-label i{width:4px;height:4px}.intro-mode{height:calc(100dvh - var(--header) - var(--footer));min-height:550px}.intro-content{top:46%;left:7%}.intro-content h1{font-size:31px}.intro-kicker{font-size:8px;letter-spacing:2px}.intro-subtitle{font-size:14px}.intro-meta{gap:21px}.intro-meta>div{padding-right:21px}.start-button{min-width:160px;font-size:12px;padding:14px 18px}.intro-secondary{font-size:10px}.entry-actions{gap:8px}.intro-desc{font-size:10px}.topbar nav{gap:9px}.nav-item{font-size:9px}.nav-dot{display:none}.brand small{font-size:7px}.bottom-bar>div:first-child{max-width:45vw;font-size:6px}.bottom-bar{padding:0 10px}.bottom-info button{font-size:7px}.bottom-info>span:nth-child(2){font-size:7px}.report-actions{flex-wrap:wrap}.report-actions .primary{font-size:10px}.field-label{font-size:10px}dialog{max-height:90dvh;width:94vw}.report-table td:first-child{min-width:95px}.report-table td{line-height:1.6}.intro-scene-caption{left:7%;right:auto;font-size:7px}.order-row{font-size:10px}.step-jump{display:flex!important}}
.step-sidebar,.task-panel{min-height:0;height:100%;overflow:hidden}.step-list,.task-content,.guide-content{min-height:0}.workspace:not(.intro-mode) .simulation{min-height:0}
@media(max-width:560px){.workspace:not(.intro-mode) .simulation{min-height:210px}.workspace:not(.intro-mode) .task-panel{height:60%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Photo-led factory revision: calm glass instruments over an industrial hall. */
.simulation{background:#a3aaa0}.scene-vignette{box-shadow:inset 0 0 100px #292d2530;background:linear-gradient(180deg,#24352b26,transparent 25%,transparent 82%,#25322723)}
.scene-top{top:18px;left:20px;right:20px}.scene-title{background:#f4f5edec;border:1px solid #f8f8f2b0;padding:9px 11px;border-radius:5px;box-shadow:0 4px 14px #1c2a2320;color:#354b42;gap:8px}.scene-title b{font-size:12px}.scene-title small{font-size:7px;color:#73877c;letter-spacing:1.1px}.scene-badge{margin:0 0 9px 3px;background:#e4eee6;border:0;color:#6a8876;font-size:7px;padding:3px 5px}.scene-buttons{align-items:flex-start}.scene-btn{background:#f7f8f0ed;border-color:#fff9;color:#5b7065;height:34px;width:34px;box-shadow:0 3px 9px #1e2b221f}
.view-switch{top:88px;left:20px;background:#f3f4e9e8;border:1px solid #fff9;padding:3px;box-shadow:0 3px 12px #1c2a2317}.view-switch button{font-size:9px;color:#64796c}.view-switch button.selected{color:#257e69;background:#fdfef7}
.camera-presets{position:absolute;left:20px;top:131px;display:flex;gap:4px;padding:3px;border-radius:5px;background:#15271ed4;border:1px solid #f9fff333;box-shadow:0 3px 12px #102b261c}.camera-presets button{font-size:9px;padding:7px 10px;border-radius:3px;color:#d5e0d4}.camera-presets button.selected{color:#203b2c;background:#e6e9dc}.camera-presets button:hover{background:#ffffff29;color:white}.camera-presets button.selected:hover{background:#f6f8ed;color:#203b2c}
.scene-tools{position:absolute;top:87px;right:20px;display:flex;flex-direction:column;gap:6px}.scene-tools button{font-size:9px;padding:8px 10px;min-width:88px;border-radius:4px;display:flex;align-items:center;justify-content:center;gap:5px;background:#f8f8efea;border:1px solid #fff8;color:#5c7062;box-shadow:0 3px 10px #132a1b13}.scene-tools button:hover{background:#fffef6}.scene-tools svg{width:12px;height:12px}.scene-tools button.on{color:#376f57}
.scene-status{position:absolute;left:20px;bottom:159px;display:flex;align-items:center;gap:6px;font-size:8px;letter-spacing:.4px;color:#e3e9dc;background:#15271de0;padding:7px 9px;border-radius:3px;border:1px solid #eef4df29;pointer-events:none}.scene-status>i{width:4px;height:4px;background:#b0cc8c;border-radius:50%}.scene-status>small{font-size:7px;color:#b2c4ad;border-left:1px solid #cde0bd33;padding-left:7px;margin-left:2px}
.scene-message{background:#f8f8f0f0;border-color:#fff9;box-shadow:0 5px 24px #223b2d23;bottom:65px}.scene-message b{color:#344a3e}.scene-message span:not(.hint-icon){color:#809082}.hint-icon{color:#4d876f}.scene-footer{color:#e1e7db;text-shadow:0 1px 5px #263225}.scene-footer kbd{color:#e3ebdf;background:#2436277a;border-color:#dbead94a}.mini-map{background:#f5f5eae6;border-color:#fff9;box-shadow:0 5px 15px #1b321e22}.zone-label{background:#f6f7eced;color:#3e5849;border-color:#f5f5ecf0;font-size:9px;box-shadow:0 4px 12px #1b302d25;padding:6px 8px}.zone-label.active{background:#287c63;border-color:#90b49b}.zone-label.active i{background:#d6e9bf}.zone-label i{background:#b28d35}.zone-label:after{height:10px;bottom:-10px;background:#b6c7ae8c}
.intro-mode .scene canvas{opacity:1}.intro-mode .scene-vignette{background:linear-gradient(90deg,#0b211ef2 0%,#0b211ee6 24%,#0d2821b3 44%,#17291c3d 73%,#19291a24),linear-gradient(0deg,#0a201cc7,transparent 38%)}.intro-content h1{font-weight:550}.intro-kicker{color:#b3d5b9}.intro-content .intro-desc{color:#afc2b3}.intro-meta>div>span{color:#95ad9c}.entry-note{color:#95ad9d}.intro-secondary{color:#c1d2c4}.intro-scene-caption{color:#f0f5e9}.intro-scene-caption>span:last-child{color:#c4d0bf}.intro-scene-caption .live-dot{background:#c4d898;box-shadow:0 0 0 4px #c4d89820}
.reference-gallery{display:flex;flex-direction:column;gap:24px}.reference-gallery figure{margin:0;background:#f3f5f0;border:1px solid #dfe5dc;border-radius:6px;overflow:hidden}.reference-gallery img{display:block;width:100%;height:auto}.reference-gallery figcaption{padding:16px 18px;display:flex;justify-content:space-between;align-items:center;gap:15px}.reference-gallery figcaption b{font-size:13px;font-weight:600}.reference-gallery figcaption p{font-size:11px;margin:5px 0 0;line-height:1.7}.reference-gallery figcaption .small-button{white-space:nowrap}
@media(min-width:1700px){.scene-top{top:24px;left:24px;right:24px}.scene-title b{font-size:15px}.view-switch{top:100px;left:24px}.camera-presets{top:146px;left:24px}.scene-tools{top:100px;right:24px}.camera-presets button{font-size:10px;padding:8px 13px}.scene-tools button{font-size:10px}.scene-status{left:24px}}
@media(max-width:1100px){.scene-badge{display:none}.scene-title b{font-size:11px}.scene-title small{font-size:6px;letter-spacing:.5px}.camera-presets button{padding:6px 8px;font-size:8px}.scene-tools button{font-size:8px;padding:7px 8px;min-width:80px}.scene-top{left:15px;right:15px}.view-switch,.camera-presets{left:15px}.scene-tools{right:15px}.scene-status{left:15px;bottom:148px}.scene-status>small{display:none}}
@media(max-width:900px){.workspace:not(.intro-mode){display:flex;flex-direction:column}.workspace:not(.intro-mode) .step-sidebar{display:none}.workspace:not(.intro-mode) .simulation{height:49%;min-height:260px;flex-shrink:0;width:100%}.workspace:not(.intro-mode) .task-panel{height:51%;width:100%;border-left:0;border-top:1px solid #dce5d8}.step-jump{display:flex!important}.task-tabs{height:42px}.task-content,.guide-content{padding:18px 22px}.task-content h2{font-size:19px}.task-footer{display:flex;flex-wrap:wrap;gap:8px;padding:10px 22px}.task-footer .primary{width:70%;padding:11px}.task-footer .next-button{width:calc(30% - 8px);padding:0}.validation-result{width:100%;max-height:75px}.validation-result:not(:empty){margin-bottom:0;padding:7px 10px}.zone-list{grid-template-columns:repeat(3,1fr)}.objective{margin-bottom:14px}.scene-top{top:12px;left:14px;right:14px}.scene-title{padding:7px 10px}.scene-title small{display:block}.scene-badge{display:none}.view-switch{top:73px;left:14px}.camera-presets{top:112px;left:14px}.scene-tools{top:73px;right:14px}.scene-message{bottom:35px;left:14px;right:120px;padding:8px 12px;max-height:55px}.scene-message b{font-size:10px;margin-bottom:3px}.scene-message span:not(.hint-icon){font-size:8px}.scene-status{bottom:100px;left:14px;font-size:7px}.mini-map{display:none}.scene-footer{bottom:11px}.scene-footer>span:first-child{display:none}.scene-footer{justify-content:flex-end}.zone-label{font-size:8px}.camera-presets button{font-size:8px;padding:6px 9px}}
@media(max-width:560px){.workspace:not(.intro-mode){min-height:560px}.workspace:not(.intro-mode) .simulation{height:43%;min-height:250px}.workspace:not(.intro-mode) .task-panel{height:57%}.view-switch{top:64px;left:10px}.view-switch button{font-size:7px;padding:5px 7px}.camera-presets{top:99px;left:10px}.camera-presets button{font-size:7px;padding:5px 7px}.scene-tools{top:64px;right:10px;gap:5px}.scene-tools button{font-size:7px;min-width:69px;padding:6px}.scene-top{left:10px;right:10px;top:10px}.scene-title{padding:6px 8px}.scene-title b{font-size:10px}.scene-title small{font-size:5px}.scene-btn{width:27px;height:27px}.scene-message{bottom:12px;left:10px;right:105px;padding:7px 8px;max-height:43px}.scene-status{bottom:61px;left:10px;font-size:6px;padding:5px 7px}.scene-footer{bottom:13px;right:10px;font-size:6px}.scene-message .hint-icon{display:none}.scene-message b{font-size:8px}.scene-message span:not(.hint-icon){display:none}.scene-tools svg{width:10px;height:10px}.reference-gallery figcaption{display:block;padding:12px}.reference-gallery figcaption .small-button{margin-top:10px}.zone-label{font-size:7px;padding:4px 5px}.intro-mode .scene-vignette{background:linear-gradient(90deg,#09221ceb,#0c281dbe 65%,#19301d80),linear-gradient(0deg,#0b231fcc,transparent 40%)}}
