:root{font-family:"Microsoft YaHei","PingFang SC","Noto Sans CJK SC",sans-serif;color:#e8f8fb;background:#061924;font-synthesis:none;-webkit-tap-highlight-color:transparent}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;overflow-x:hidden}body{display:flex;justify-content:center;background:radial-gradient(circle at 50% 12%,#123949 0,#061924 56%,#04121c 100%)}button{font:inherit;cursor:pointer}button:focus-visible{outline:3px solid #f7c464;outline-offset:4px}.app{position:relative;isolation:isolate;width:min(100%,490px);min-height:100svh;overflow:hidden;background:linear-gradient(165deg,#0d3140 0%,#071f2e 48%,#051824 100%);box-shadow:0 0 80px #0008}.ambient{position:absolute;border:1px solid #42d6dc25;border-radius:50%;pointer-events:none;z-index:-1}.ambient-one{width:520px;height:520px;top:90px;right:-335px}.ambient-two{width:650px;height:650px;top:40px;right:-400px}.topbar{height:72px;padding:19px 24px;display:flex;align-items:center;gap:11px;position:relative;z-index:3;border-bottom:1px solid #aee9ea14}.brand-mark{width:33px;height:33px;border:2px solid #32dae0;border-radius:8px;display:flex;align-items:center;justify-content:center;gap:3px;transform:skew(-8deg)}.brand-mark span{width:3px;height:14px;border-radius:2px;background:#39d9dd;transform:skew(12deg)}.brand-mark span:nth-child(2){height:19px}.brand-copy{display:flex;flex-direction:column;gap:2px}.brand-copy strong{font-size:10px;letter-spacing:1.8px;color:#9ae4e6}.brand-copy small{font-size:9px;color:#8baeba;letter-spacing:.5px}.topbar-status{margin-left:auto;white-space:nowrap;padding:6px 8px;border:1px solid #4cb9b743;border-radius:20px;color:#a8d6d9;font-size:10px}.topbar-status i,.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#4de0c8;box-shadow:0 0 9px #4de0c8;margin-right:4px}.screen{display:none;min-height:calc(100svh - 72px);padding:0 24px 24px}.screen.active{display:flex;flex-direction:column}.intro-screen{position:relative}.intro-kicker{margin-top:38px;color:#f3c874;font-size:11px;letter-spacing:1.2px;font-weight:700}.kicker-line{display:inline-block;width:17px;border-top:2px solid #e7be6d;vertical-align:middle;margin-right:7px}.intro-screen h1{font-size:clamp(38px,11vw,56px);line-height:1.12;letter-spacing:1px;margin:18px 0 12px;font-weight:900}.intro-screen h1 em,.ending-screen h2 em{font-style:normal;color:#57e1dc}.intro-lead,.ending-lead{font-size:13px;line-height:1.9;color:#b1cbd1;max-width:350px;margin:0}.train-hero{position:relative;display:grid;place-items:center;margin:18px -24px 0;min-height:260px}.train-hero svg{position:relative;width:114%;max-width:560px;filter:drop-shadow(0 25px 18px #010e14aa);z-index:1}.hero-glow{position:absolute;width:320px;height:160px;bottom:25px;background:#19c5c359;filter:blur(80px);border-radius:50%}.hero-callout{position:absolute;z-index:2;right:37px;top:24px;font-size:10px;color:#d7f5ed;padding:7px 10px;background:#124a58d9;border:1px solid #57d8cf66;border-radius:5px;box-shadow:0 4px 22px #041a20}.ping{display:inline-block;width:6px;height:6px;border-radius:50%;background:#ffc16f;margin-right:5px;box-shadow:0 0 0 4px #ffc16f32}.intro-bottom{margin-top:auto}.mission-meta{display:flex;gap:19px;color:#9dbdc4;font-size:11px;padding:0 0 18px}.primary-button{width:100%;border:0;border-radius:14px;background:linear-gradient(100deg,#5be3d9,#62e3bd);color:#05323b;font-weight:900;font-size:16px;padding:17px 20px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 9px 28px #29d8cb35;transition:transform .15s,box-shadow .15s}.primary-button:active{transform:scale(.98);box-shadow:0 4px 15px #29d8cb35}.primary-button span{font-size:24px;line-height:16px}.microcopy{text-align:center;font-size:10px;color:#76949e;margin:13px 0 0}.game-screen{padding-bottom:18px}.game-heading{padding-top:26px}.eyebrow{font-size:10px;color:#e8be76;letter-spacing:2px;font-weight:700}.progress-track{width:100%;height:5px;background:#18404d;border-radius:9px;margin:15px 0 20px;overflow:hidden}.progress-fill{height:100%;width:0;background:linear-gradient(90deg,#3bd0d5,#d9e78b);border-radius:9px;transition:width .5s}.heading-row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.heading-row h2{font-size:28px;letter-spacing:.5px;margin:0 0 6px}.heading-row p{font-size:11px;color:#9ebcc5;margin:0}.task-number{font-size:49px;line-height:1;font-weight:900;color:#234956;letter-spacing:-3px}.workbench{margin-top:23px;border:1px solid #4c99a359;background:linear-gradient(165deg,#153b49,#0b2a3a 55%,#0a2737);border-radius:17px;box-shadow:inset 0 1px #a1faff1d,0 18px 40px #03121c80;overflow:hidden}.workbench-top,.workbench-bottom{height:35px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;color:#88b8bd;font-size:9px;letter-spacing:1px}.workbench-top{border-bottom:1px solid #5db7ba25}.workbench-bottom{border-top:1px solid #5db7ba25}.crosshair{color:#4d8795;letter-spacing:4px}.scene{height:260px;position:relative;overflow:hidden;touch-action:none;background:radial-gradient(ellipse at 50% 50%,#1b5361 0%,#0e3343 57%,#082638 100%)}.scene::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 29px,#a8e5eb08 30px),repeating-linear-gradient(90deg,transparent 0 29px,#a8e5eb08 30px);pointer-events:none}.task-panel{display:flex;gap:13px;margin-top:17px;border:1px solid #3b778561;border-radius:13px;background:#102f3d;padding:13px;min-height:76px}.panel-icon{width:37px;height:37px;flex:none;border-radius:9px;display:grid;place-items:center;background:#2b788280;color:#8bf3e6;font-size:20px}.panel-copy{min-width:0}.panel-label{font-size:10px;letter-spacing:1px;color:#6fe2d6;font-weight:700;margin-bottom:5px}.panel-copy p{font-size:12px;line-height:1.55;margin:0;color:#dfedf0}.action-area{min-height:74px;display:flex;align-items:center;justify-content:center;margin-top:7px}.step-progress{width:100%;display:flex;align-items:center;gap:12px}.step-progress strong{font-size:11px;color:#79e4d7;white-space:nowrap;min-width:48px;text-align:right}.step-progress .bar{height:9px;background:#173f4b;border-radius:10px;flex:1;overflow:hidden}.step-progress .bar i{display:block;width:0;height:100%;background:linear-gradient(90deg,#38c5d3,#b8e995);border-radius:10px;transition:width .18s}.advance-button{background:#f7c977;border:0;border-radius:11px;color:#263a3e;padding:13px 19px;font-weight:900;width:100%;display:flex;justify-content:space-between;align-items:center;box-shadow:0 6px 19px #f7c97735}.advance-button span{font-size:19px}.tip-line{margin-top:auto;display:flex;gap:9px;color:#89adb6;font-size:10px;line-height:1.5;padding-top:6px}.tip-spark{color:#f4ca81;font-size:13px}.toast{position:absolute;left:50%;bottom:36px;z-index:8;transform:translate(-50%,16px);opacity:0;pointer-events:none;background:#e2fbed;color:#0a403c;padding:10px 16px;border-radius:30px;font-size:12px;font-weight:800;white-space:nowrap;box-shadow:0 10px 30px #001a20aa;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}.ending-screen{text-align:center;align-items:center;padding-top:35px}.report-tag{align-self:stretch;text-align:left;font-size:10px;color:#91e5d9;letter-spacing:1.5px}.report-tag span{float:right;color:#61e5bc}.complete-emblem{position:relative;width:130px;height:130px;margin:24px 0 16px;display:grid;place-items:center}.emblem-inner{width:93px;height:93px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(140deg,#64e4d5,#9be7aa);color:#0a3e43;font-size:55px;font-weight:900;box-shadow:0 0 50px #4bddc783}.orbit{position:absolute;inset:0;border:1px solid #71e8d97d;border-radius:50%}.orbit-b{inset:9px;border-style:dashed;opacity:.5}.ending-screen h2{font-size:36px;line-height:1.2;margin:0 0 12px}.ending-lead{text-align:center;font-size:12px}.report-card{width:100%;margin:24px 0 22px;text-align:left;border:1px solid #45979d85;border-radius:15px;background:linear-gradient(150deg,#174353,#0e3040);padding:16px;box-shadow:0 13px 30px #03141b80}.report-head,.report-row,.report-foot{display:flex;align-items:center}.report-head{justify-content:space-between;padding-bottom:13px;border-bottom:1px solid #73b3b347;color:#c4e8e7;font-size:12px;font-weight:700}.report-head strong{font-size:10px;color:#70e4bb}.report-row{min-height:41px;gap:9px;font-size:11px;color:#d8eaec;border-bottom:1px solid #5e9c9b2e}.report-row strong{margin-left:auto;color:#8de6d8;font-size:10px}.report-check{display:grid;place-items:center;width:17px;height:17px;background:#49cfbb;border-radius:50%;color:#10434a;font-size:11px;font-weight:900}.report-foot{font-size:9px;color:#79a8b2;gap:8px;margin-top:12px}.ending-screen .primary-button{margin-top:auto}
/* Interactive door */
.door-scene,.wheel-scene,.filter-scene{position:absolute;inset:0}.scene-caption{position:absolute;left:14px;top:12px;font-size:9px;letter-spacing:1.2px;color:#85c6cf}.door-frame{position:absolute;left:13%;right:13%;top:39px;bottom:25px;background:#aac8d0;border:5px solid #d9f0f0;border-radius:10px 10px 3px 3px;box-shadow:0 8px 0 #517c88,0 15px 21px #061d2e}.door-panel{position:absolute;top:0;bottom:0;width:49.5%;background:linear-gradient(115deg,#9abcc7,#d5eaed 28%,#a8c7cf 86%);border:2px solid #7b9fab}.door-panel.left{left:0;border-radius:4px 0 0 0}.door-panel.right{right:0;border-radius:0 4px 0 0}.door-panel::before{content:"";position:absolute;top:16%;left:20%;right:20%;height:32%;border:5px solid #678e9e;border-radius:5px;background:#214e60}.door-panel::after{content:"";position:absolute;top:55%;left:19%;right:19%;height:5px;background:#4abfc2}.door-seam{position:absolute;top:0;bottom:0;left:49.5%;width:3px;background:#4b7785}.fault-sensor{position:absolute;right:10%;top:44%;width:30px;height:30px;background:#e27057;border:4px solid #ffb594;border-radius:6px;box-shadow:0 0 20px #ff8d6b;z-index:2}.fault-sensor.ok{background:#5ee1bf;border-color:#c7ffe2;box-shadow:0 0 20px #7aedd3}.scan-track{position:absolute;left:12%;right:12%;top:44%;height:50px;border:1px dashed #96ebdf;border-radius:7px;background:#073a459c;z-index:3;touch-action:none}.scan-track::before{content:"SCAN PATH";position:absolute;left:8px;top:-16px;color:#80d5d8;font-size:8px;letter-spacing:2px}.scan-head{position:absolute;left:0;top:-6px;width:28px;height:60px;transform:translateX(-50%);background:linear-gradient(90deg,#70f4dfaa,#c9fff8,#70f4dfaa);border:1px solid white;border-radius:4px;box-shadow:0 0 17px #53edda;pointer-events:none}.scan-head::after{content:"⌁";position:absolute;top:19px;left:7px;color:#176572;font-weight:900}.scan-readout{position:absolute;bottom:11px;left:50%;transform:translateX(-50%);z-index:4;background:#082f3fea;border:1px solid #75d2d073;border-radius:20px;padding:6px 12px;color:#b0e7e5;font-size:9px;white-space:nowrap}.clean-zone{position:absolute;right:8%;top:34%;width:76px;height:84px;z-index:4;border:1px dashed #ffdb9f;border-radius:10px;background:#ef8e6e2b;touch-action:none}.clean-zone::before{content:"擦拭";position:absolute;bottom:-20px;left:23px;color:#ffd5a0;font-size:9px}.dirt-dot{position:absolute;width:10px;height:10px;border-radius:50%;background:#fbaa78;box-shadow:0 0 7px #ffac75}.dirt-dot.cleared{opacity:0;transform:scale(.1);transition:.3s}.wipe-cursor{position:absolute;width:27px;height:27px;border-radius:6px;background:#c9fcf2;border:3px solid #7ee7d9;box-shadow:0 4px 8px #051b237a;pointer-events:none;z-index:6;display:none;transform:translate(-50%,-50%) rotate(-18deg)}
/* Interactive bogie */
.bogie-top{position:absolute;left:12%;right:12%;top:47px;height:38px;background:linear-gradient(#98bac1,#6e949f);border:3px solid #d5eff0;border-radius:7px;box-shadow:0 7px 0 #426d7b}.bogie-beam{position:absolute;left:15%;right:15%;top:93px;height:52px;border:10px solid #7fa1a9;border-radius:11px;background:#294b5d}.wheel{position:absolute;top:122px;width:90px;height:90px;border-radius:50%;background:radial-gradient(circle,#537785 0 20%,#183e50 21% 37%,#72919a 38% 46%,#173140 47% 62%,#a2bac1 63% 72%,#152d38 73%);box-shadow:0 8px 14px #031621}.wheel.left{left:8%}.wheel.right{right:8%}.bolt{position:absolute;width:27px;height:27px;border-radius:50%;border:4px solid #ffca7a;background:#6e746b;box-shadow:0 0 15px #ffbd6b;z-index:3}.bolt::before{content:"✣";position:absolute;inset:-3px;text-align:center;line-height:25px;color:#f6d9ab;font-size:17px}.bolt.fixed{background:#2dc6b4;border-color:#b9fff0;box-shadow:0 0 12px #4be6cd}.bolt.fixed::before{content:"✓";color:#e1fff8;font-size:13px;line-height:22px}.bolt.one{left:27%;top:83px}.bolt.two{left:calc(50% - 13px);top:113px}.bolt.three{right:27%;top:83px}.wrench{position:absolute;left:12%;bottom:12px;z-index:5;width:57px;height:57px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#f9dba5,#f1ac5d);color:#243c44;border:3px solid #fff3d6;box-shadow:0 5px 17px #020e17aa;touch-action:none;user-select:none;font-size:31px;cursor:grab}.wrench.dragging{cursor:grabbing;transform:scale(1.08)}.wrench-hint{position:absolute;left:calc(12% + 65px);bottom:30px;font-size:9px;color:#c4dae0;pointer-events:none}.vibration{position:absolute;top:10px;right:12px;font-size:9px;color:#ffce8c;border:1px solid #cf9a675b;border-radius:5px;padding:5px 6px;background:#552d264f}.vibration.ok{color:#91edd4;border-color:#5edbbb5e;background:#204f485c}
/* Interactive filter */
.filter-unit{position:absolute;left:16%;right:16%;top:37px;bottom:25px;border:8px solid #9bb9bd;border-radius:11px;background:#143443;box-shadow:0 10px 0 #446a73,0 20px 28px #031723}.filter-header{height:24px;background:#b5ced0;color:#35636b;text-align:center;line-height:24px;font-size:9px;font-weight:900;letter-spacing:2px}.filter-grid{position:absolute;left:12px;right:12px;top:37px;bottom:12px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:4px;touch-action:none}.filter-cell{position:relative;background:repeating-linear-gradient(90deg,#96a69b 0 4px,#677b75 4px 8px);border:2px solid #687c7b;overflow:hidden}.filter-cell::before{content:"";position:absolute;inset:0;background:#b0946ccc;transition:opacity .28s}.filter-cell::after{content:"";position:absolute;inset:0;background-image:radial-gradient(#eed5aa 20%,transparent 21%);background-size:12px 11px;opacity:.7;transition:opacity .28s}.filter-cell.clean{background:repeating-linear-gradient(90deg,#a4d0c4 0 4px,#5d9f9a 4px 8px);border-color:#88daca}.filter-cell.clean::before,.filter-cell.clean::after{opacity:0}.filter-swipe{position:absolute;left:50%;top:50%;width:46px;height:46px;display:none;place-items:center;transform:translate(-50%,-50%);pointer-events:none;background:#dcfaf0;color:#236a6c;border-radius:50%;font-size:23px;box-shadow:0 4px 16px #071c26}.airflow{position:absolute;right:12px;top:12px;border:1px solid #bd936c80;border-radius:5px;background:#593d2c80;color:#ffd4a1;font-size:9px;padding:5px 6px}.airflow.ok{border-color:#69d5b776;background:#24584d80;color:#9af0d7}.clean-action{display:none}
.test-control{position:absolute;left:7%;right:7%;bottom:9px;z-index:6;padding:9px 14px 10px;background:#082d3dec;border:1px solid #6cd4d477;border-radius:10px;box-shadow:0 8px 19px #03151e9c}.test-control-label{display:flex;justify-content:space-between;color:#b5e7e3;font-size:9px;margin-bottom:7px;letter-spacing:.5px}.test-track{position:relative;height:23px;touch-action:none;border:1px solid #64a9b177;border-radius:20px;background:linear-gradient(90deg,#1e6370,#165766)}.test-track::before,.test-track::after{content:"";position:absolute;top:6px;width:9px;height:9px;border-radius:50%;background:#70d8d7}.test-track::before{left:7px}.test-track::after{right:7px}.test-thumb{position:absolute;top:50%;left:0;width:34px;height:34px;transform:translate(-50%,-50%);border-radius:50%;background:#f6cb7b;border:3px solid #fff3cf;box-shadow:0 3px 12px #061b1f;color:#24454a;display:grid;place-items:center;font-size:17px;font-weight:900;touch-action:none;cursor:grab}.test-target{position:absolute;top:1px;bottom:1px;left:68%;width:17%;background:#62df9e75;border:1px solid #c4ffd9;border-radius:20px;pointer-events:none}.test-control.flow .test-track::before,.test-control.flow .test-track::after{display:none}
.test-control.precision .test-track::before,.test-control.precision .test-track::after{display:none}.test-control.precision .test-thumb{background:#f9d28c}.precision-readout{font-variant-numeric:tabular-nums;white-space:nowrap}.metric-note{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#9fcbd1;font-size:11px;border-top:1px solid #36808a4d;border-bottom:1px solid #36808a4d;padding:13px 2px}.metric-note strong{color:#f5cf86;font-size:14px;font-variant-numeric:tabular-nums}.bolt.selected{border-color:#fff3c0;background:#d49e5c;box-shadow:0 0 0 7px #f8d18d42,0 0 25px #ffdb9e}.filter-grid.locked{filter:saturate(.75);opacity:.76}.filter-grid.locked::after{content:"先记录压差";position:absolute;inset:0;display:grid;place-items:center;background:#082d3d8c;color:#ebf3d9;font-size:11px;font-weight:700;letter-spacing:2px;pointer-events:none}
.filter-cell.brushed:not(.clean)::before{opacity:.47}.filter-cell.brushed:not(.clean)::after{opacity:.32}
@media(min-width:700px){.app{margin:20px 0;min-height:min(850px,calc(100svh - 40px));border:1px solid #53969c55;border-radius:24px}.screen{min-height:calc(min(850px,100svh - 40px) - 72px)}.train-hero{min-height:255px}}
@media(max-height:750px){.intro-kicker{margin-top:24px}.train-hero{min-height:205px;margin-top:8px}.train-hero svg{width:96%}.game-heading{padding-top:15px}.workbench{margin-top:15px}.scene{height:224px}.task-panel{margin-top:12px}.action-area{min-height:59px}.ending-screen{padding-top:20px}.complete-emblem{margin:10px 0;width:98px;height:98px}.emblem-inner{width:72px;height:72px;font-size:43px}.ending-screen h2{font-size:31px}.report-card{margin:15px 0}}
.side-stack{display:contents}.desktop-brief{display:none}.clean-zone{top:46%}

@media(min-width:900px){
  body{align-items:stretch}
  .app{width:min(100%,1440px);min-height:100svh;margin:0;border-left:1px solid #53969c55;border-right:1px solid #53969c55;border-top:0;border-bottom:0;border-radius:0}
  .topbar{height:80px;padding:18px clamp(36px,5vw,78px)}
  .brand-mark{width:39px;height:39px}.brand-copy strong{font-size:12px}.brand-copy small{font-size:10px}.topbar-status{font-size:11px;padding:8px 12px}
  .screen{min-height:calc(100svh - 80px);padding:0 clamp(36px,5vw,78px) 36px}
  .intro-screen.active{display:grid;grid-template-columns:minmax(310px,.88fr) minmax(410px,1.12fr);grid-template-rows:minmax(30px,1fr) auto auto auto minmax(30px,1fr) auto;column-gap:clamp(28px,5vw,88px);align-items:center}
  .intro-kicker{grid-column:1;grid-row:2;margin:0;font-size:13px}
  .intro-screen h1{grid-column:1;grid-row:3;font-size:clamp(58px,6vw,88px);margin:18px 0 22px;line-height:1.05}
  .intro-lead,.how-guide{grid-column:1;grid-row:4;max-width:500px;font-size:15px;line-height:2}
  .intro-bottom{grid-column:1;grid-row:6;align-self:end;margin:0 0 24px;max-width:440px;width:100%}
  .mission-meta{font-size:12px}.primary-button{font-size:17px;padding:20px 24px}
  .train-hero{grid-column:2;grid-row:1/7;min-height:500px;height:100%;max-height:790px;margin:0 -30px 0 0;align-self:center}
  .train-hero svg{width:118%;max-width:820px}.hero-glow{width:70%;height:45%;bottom:15%}.hero-callout{right:5%;top:20%;font-size:12px;padding:10px 14px}
  .game-screen.active{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(290px,.8fr);grid-template-rows:auto minmax(530px,1fr);gap:24px clamp(24px,3vw,44px)}
  .game-heading{grid-column:1/-1;grid-row:1;padding-top:26px}.progress-track{margin:14px 0 18px}.heading-row h2{font-size:34px}.heading-row p{font-size:13px}.task-number{font-size:56px}
  .workbench{grid-column:1;grid-row:2;margin:0;min-height:530px;display:flex;flex-direction:column;border-radius:19px}
  .workbench-top,.workbench-bottom{height:39px;flex:none;padding:0 20px;font-size:11px}
  .scene{height:auto;min-height:452px;flex:1}
  .side-stack{grid-column:2;grid-row:2;display:flex;flex-direction:column;gap:16px;min-width:0}
  .task-panel{margin:0;min-height:112px;padding:18px;gap:15px}.panel-icon{width:43px;height:43px}.panel-label{font-size:11px}.panel-copy p{font-size:13px;line-height:1.65}
  .desktop-brief{display:flex;flex:1;flex-direction:column;padding:19px;border:1px solid #42818c87;border-radius:14px;background:linear-gradient(150deg,#123a49,#0b2938);min-height:218px}
  .brief-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#79bfc5;font-size:10px;letter-spacing:1.2px}.brief-heading strong{color:#e4f6f3;font-size:12px;letter-spacing:.3px}
  .brief-items{display:grid;gap:8px;margin:18px 0}.brief-item{display:flex;align-items:center;gap:11px;padding:10px 12px;border:1px solid #3a78835b;border-radius:9px;background:#0b2937;color:#89acb7;font-size:12px;transition:background .2s,border-color .2s,color .2s}.brief-marker{display:grid;place-items:center;flex:none;width:26px;height:26px;border-radius:7px;background:#204857;color:#9bc4c8;font-size:10px;font-weight:800}.brief-item i{margin-left:auto;width:7px;height:7px;border-radius:50%;background:#466b75}.brief-item.active{background:#174a52;border-color:#67d9cc;color:#e8fff8;box-shadow:inset 3px 0 #69dfcc}.brief-item.active .brief-marker{background:#56cbbd;color:#073c42}.brief-item.active i{background:#8bf6d7;box-shadow:0 0 8px #86ead9}.brief-item.done{color:#98d5cb}.brief-item.done .brief-marker{background:#255e55;color:#a8f7d8}.brief-item.done i{background:#4bcba7}
  .brief-foot{margin-top:auto;padding-top:11px;border-top:1px solid #5ba2a746;color:#6f9ba7;font-size:10px;line-height:1.5}
  .action-area{margin:0;min-height:70px}.metric-note{padding:17px 5px}.tip-line{margin:0;padding-top:0;font-size:11px;line-height:1.65}
  .scene-caption{font-size:11px;left:20px;top:18px}.scan-readout{bottom:22px;font-size:11px;padding:8px 15px}
  .door-frame{left:17%;right:17%;top:7%;bottom:8%}.scan-track{left:18%;right:18%;height:62px}.scan-head{height:72px}.clean-zone{right:18%;top:46%;width:96px;height:96px}.dirt-dot{width:12px;height:12px}
  .bogie-top{left:14%;right:14%;top:26%;height:50px}.bogie-beam{left:18%;right:18%;top:38%;height:70px}.wheel{top:54%;width:clamp(110px,11vw,150px);height:clamp(110px,11vw,150px)}.bolt.one{left:30%;top:calc(26% + 34px)}.bolt.two{top:calc(38% + 25px)}.bolt.three{right:30%;top:calc(26% + 34px)}.wrench{left:44%;bottom:36px}.wrench-hint{left:calc(44% + 70px);bottom:56px}.vibration,.airflow{top:18px;right:20px;font-size:11px;padding:7px 10px}
  .filter-unit{left:23%;right:23%;top:12%;bottom:10%}.filter-grid{top:43px;left:16px;right:16px;bottom:16px}.filter-header{height:30px;line-height:30px;font-size:11px}.filter-swipe{width:54px;height:54px}
  .test-control{left:12%;right:12%;bottom:18px;padding:13px 18px 16px}.test-control-label{font-size:11px;margin-bottom:11px}.test-track{height:29px}.test-thumb{width:41px;height:41px}
  .ending-screen.active{display:grid;grid-template-columns:minmax(320px,.85fr) minmax(420px,1.15fr);grid-template-rows:auto auto auto minmax(30px,1fr) auto auto;column-gap:clamp(42px,7vw,110px);align-content:center;text-align:left}
  .report-tag{grid-column:1/-1;grid-row:1;font-size:12px;margin-bottom:12px}.complete-emblem{grid-column:1;grid-row:2;justify-self:start;margin:12px 0 22px}.ending-screen h2{grid-column:1;grid-row:3;font-size:clamp(42px,4.2vw,62px);margin:0 0 16px}.ending-lead{grid-column:1;grid-row:4;text-align:left;font-size:14px;max-width:430px}.report-card{grid-column:2;grid-row:2/5;align-self:center;margin:0;padding:24px;max-width:none}.report-head{font-size:15px}.report-head strong{font-size:12px}.report-row{min-height:58px;font-size:13px}.report-row strong{font-size:12px}.report-foot{font-size:11px}.ending-screen .primary-button{grid-column:1;grid-row:5;margin:0;max-width:430px}.ending-screen .microcopy{grid-column:1;grid-row:6;text-align:left;margin:14px 0 0}
}

/* 作业准备与可抽取的滤网组件 */
.prep-scene{position:absolute;inset:0}.prep-rails{position:absolute;left:8%;right:8%;bottom:19%;height:3px;background:#719ca7;box-shadow:0 18px #527985}.prep-train{position:absolute;left:17%;right:17%;top:28%;height:42%;border:4px solid #d8edef;border-radius:22px 22px 9px 9px;background:linear-gradient(135deg,#c6e3e6,#8cb6c0);box-shadow:0 13px 18px #061d2ac9}.prep-window{position:absolute;top:14%;left:8%;width:30%;height:38%;border-radius:7px;background:#204c5f;border:4px solid #69929f}.prep-window:nth-child(2){left:auto;right:8%}.prep-door{position:absolute;left:44%;top:12%;width:12%;height:80%;border-left:3px solid #618896;border-right:3px solid #618896;background:#afcbd0}.prep-stripe{position:absolute;left:0;right:0;top:65%;height:12px;background:#23bcc1}.prep-status,.safety-tag{position:absolute;top:12%;padding:7px 10px;border:1px solid #70bdc28c;border-radius:7px;background:#0e3747e8;color:#c2e5e5;font-size:10px;white-space:nowrap}.prep-status{left:8%;display:flex;gap:6px}.prep-status strong{color:#8de4d2}.safety-tag{right:8%;color:#f1ca89;border-color:#dfb67991}.safety-tag.active{color:#9af0d2;border-color:#72dbb790;background:#1d564cde}
.filter-unit{transition:transform .22s ease}.filter-unit.dragging{transition:none}.filter-unit.removed{transform:translateX(16%)}.filter-handle{position:absolute;z-index:6;right:-18px;top:40%;width:37px;height:45px;display:none;place-items:center;border:2px solid #f7e5bd;border-radius:8px;background:#f2c881;color:#23525a;font-size:27px;font-weight:900;line-height:1;box-shadow:0 6px 14px #041c26a8;touch-action:none;cursor:grab}.filter-handle.ready{display:grid}.filter-handle:active{cursor:grabbing}
.bolt:not(.fixed)::before{content:"";position:absolute;left:-8px;top:7px;width:18px;height:3px;background:#ffe0ab;transform:rotate(-35deg);box-shadow:0 0 6px #ffd595}.bolt:not(.fixed)::after{content:"";position:absolute;left:12px;top:13px;width:16px;height:3px;background:#ffe0ab;transform:rotate(12deg);box-shadow:0 0 6px #ffd595}.bolt.fixed::after{display:none}
@media(min-width:900px){.prep-status,.safety-tag{top:13%;font-size:13px;padding:10px 14px}.prep-train{left:23%;right:23%;top:25%;height:45%;border-width:6px}.prep-stripe{height:18px}.prep-rails{bottom:17%;height:4px}.filter-handle{width:45px;height:58px;right:-22px;font-size:34px}}

/* 检修动作随操作实时变化的现场示意 */
.door-panel.calibrating{transition:transform .1s linear}.door-gap-gauge{display:none;position:absolute;z-index:5;left:50%;bottom:100px;width:142px;transform:translateX(-50%);padding:7px 9px 5px;border:1px solid #85ccd0;border-radius:7px;background:#092c3de9;color:#d4eef0;text-align:center;box-shadow:0 6px 15px #04151eba;pointer-events:none}.door-gap-gauge.active{display:block}.door-gap-gauge span{display:block;margin-bottom:5px;font-size:9px;letter-spacing:1px}.door-gauge-track{position:relative;height:8px;border:1px solid #78b5bd;border-radius:7px;background:linear-gradient(90deg,#cb8f72,#6299a0 44%,#75d9bb 50%,#6299a0 56%,#cb8f72)}.door-gauge-track i{position:absolute;left:50%;top:-4px;bottom:-4px;border-left:2px solid #e2ffe7}.door-gauge-track b{position:absolute;top:-5px;width:5px;height:18px;border-radius:3px;background:#ffd78f;box-shadow:0 0 8px #ffd78f;transform:translateX(-50%);transition:left .08s linear}.door-gap-gauge.aligned .door-gauge-track b{background:#8ff5c9;box-shadow:0 0 9px #8ff5c9}.door-gap-gauge small{display:block;margin-top:4px;font-size:8px;color:#9dc5cd}
.torque-visual{position:absolute;z-index:5;top:37px;left:50%;width:min(230px,66%);height:157px;transform:translateX(-50%);border:1px solid #d3ad75;border-radius:11px;background:linear-gradient(155deg,#173747f2,#0a2332f7);box-shadow:0 12px 27px #03131fe0,inset 0 1px #ffefc04a;color:#eef6ed;pointer-events:none;overflow:hidden}.torque-visual-title{height:25px;padding:6px 11px;border-bottom:1px solid #a4c7c154;color:#f6d397;font-size:10px;font-weight:800;letter-spacing:.5px}.torque-visual-body{height:102px;display:flex;align-items:center;justify-content:center;gap:24px}.torque-topview{position:relative;width:76px;height:76px;border:5px solid #66878e;border-radius:50%;background:radial-gradient(circle,#62777b 0 27%,#2a4850 68%,#132d38 69%);box-shadow:inset 0 2px 7px #081d26,0 4px 8px #04141b}.torque-reference{position:absolute;left:50%;top:4px;width:4px;height:23px;transform:translateX(-50%);background:#f0d6a1;border-radius:2px;z-index:2;box-shadow:0 0 4px #f7d18b}.torque-hex{position:absolute;inset:11px;display:grid;place-items:center;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);background:linear-gradient(145deg,#f4e3be,#9baeb0 42%,#607b84 80%);box-shadow:inset 0 0 0 5px #d6e1d3;transform:rotate(-105deg);transition:transform .08s linear}.torque-hex::before{content:"";width:26px;height:7px;border-radius:4px;background:#375760;box-shadow:0 1px 2px #1a3740}.torque-hex i{position:absolute;top:2px;left:50%;width:4px;height:14px;transform:translateX(-50%);background:#e3bd82;border-radius:2px}.torque-profile{position:relative;width:72px;height:88px}.torque-moving{position:absolute;left:22px;top:5px;width:30px;height:70px;z-index:3;transition:transform .08s linear}.torque-head-side{position:absolute;left:-8px;top:0;width:46px;height:18px;border:2px solid #e6ece6;border-radius:4px 4px 2px 2px;background:linear-gradient(#dfe8dd,#8da3a8 65%,#566f78);box-shadow:0 3px 4px #061c25}.torque-shaft{position:absolute;left:5px;top:17px;width:20px;height:58px;border:2px solid #c8dad8;background:repeating-linear-gradient(160deg,#6e8b90 0 5px,#d2dbd4 6px 8px);box-shadow:inset 4px 0 5px #334e59}.torque-washer{position:absolute;z-index:4;left:13px;top:33px;width:48px;height:10px;border-radius:3px;border:1px solid #f5e4bf;background:linear-gradient(#bdd0cb,#65848b);transform-origin:bottom;transition:transform .08s linear}.torque-plate{position:absolute;z-index:2;left:0;right:0;top:42px;height:29px;border:3px solid #b4c6c5;border-radius:3px;background:linear-gradient(#8dabaf,#557681);box-shadow:0 6px 0 #263f4d}.torque-visual-caption{text-align:center;padding:1px 5px 5px;font-size:9px;color:#c7d9d8}.torque-visual.secured{border-color:#72e4b7;box-shadow:0 0 0 2px #58dfb352,0 12px 27px #03131fe0}.torque-visual.secured .torque-visual-caption{color:#97f1c9;font-weight:800}
.filter-air-visual,.filter-pressure-visual{position:absolute;z-index:2;top:32%;width:12%;min-width:37px;max-width:65px;height:88px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border:1px solid #72b8bd4b;border-radius:7px;background:#082e3dbc;pointer-events:none}.filter-air-visual{left:2%}.filter-pressure-visual{right:2%;justify-content:flex-start;padding-top:4px}.filter-air-visual small,.filter-pressure-visual small{font-size:8px;color:#b2d7dc}.filter-air-visual span{font-size:20px;line-height:17px;color:#8de8de;opacity:var(--air-strength,.12);text-shadow:0 0 7px #47e3d2;animation:air-shift 1.1s ease-in-out infinite alternate}.filter-air-visual span:nth-of-type(2){animation-delay:.2s}.filter-air-visual span:nth-of-type(3){animation-delay:.4s}.filter-pressure-track{position:relative;width:12px;height:48px;margin-top:2px;border:1px solid #91bac1;border-radius:8px;background:#173f4b;overflow:hidden}.filter-pressure-track::after{content:"";position:absolute;left:0;right:0;bottom:53%;border-top:1px dashed #e8d38e}.filter-pressure-track i{position:absolute;bottom:0;left:0;right:0;height:0;background:linear-gradient(#f6c47a,#bb704d);transition:height .18s}.filter-pressure-visual.normal .filter-pressure-track i{background:linear-gradient(#97f5cb,#39bda7)}.filter-pressure-visual b{margin-top:2px;font-size:7px;white-space:nowrap;color:#ffdaa3}.filter-pressure-visual.normal b{color:#9ef4cc}@keyframes air-shift{from{transform:translateX(-3px)}to{transform:translateX(3px)}}
.filter-air-visual.stopped span{opacity:.1;animation-play-state:paused}
.filter-swipe{width:46px;height:58px;border-radius:0;background:none;box-shadow:none;transform:translate(-50%,-50%) rotate(-25deg);z-index:5}.filter-swipe::before{content:"";position:absolute;left:18px;top:0;width:11px;height:37px;border:2px solid #f1e3c5;border-radius:5px;background:linear-gradient(90deg,#896946,#c49a67,#856240);box-shadow:1px 3px 5px #061a22a8}.filter-swipe::after{content:"";position:absolute;left:9px;bottom:2px;width:30px;height:22px;border:3px solid #e3d4b5;border-radius:3px 3px 8px 8px;background:repeating-linear-gradient(90deg,#c2dbd3 0 4px,#6ea69f 4px 7px);box-shadow:0 4px 7px #06202a9c}
@media(max-width:899px){.torque-visual{top:9px;height:137px}.torque-visual-title{height:23px;padding:5px 11px}.torque-visual-body{height:89px}.torque-visual-caption{padding:2px 5px}}
@media(min-width:900px){.door-gap-gauge{bottom:19%;width:190px;padding:10px 13px 7px}.door-gap-gauge span{font-size:11px}.door-gap-gauge small{font-size:10px}.torque-visual{top:12%;width:310px;height:230px;border-radius:15px}.torque-visual-title{height:38px;padding:11px 16px;font-size:13px}.torque-visual-body{height:149px;gap:35px;transform:scale(1.28)}.torque-visual-caption{font-size:11px}.filter-air-visual,.filter-pressure-visual{top:38%;width:70px;height:112px}.filter-air-visual{left:8%}.filter-pressure-visual{right:8%}.filter-air-visual small,.filter-pressure-visual small{font-size:10px}.filter-air-visual span{font-size:26px;line-height:22px}.filter-pressure-track{height:62px;width:16px}.filter-pressure-visual b{font-size:10px}}

/* 现场动作：挂牌、巡视、机械调整、棘轮发力与拆装 */
.permit-tag,.tag-socket{position:absolute;z-index:4;width:94px;height:91px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border-radius:7px;font-size:12px;user-select:none}
.permit-tag{left:9%;bottom:16px;background:linear-gradient(135deg,#ffe9b4,#e6b560);border:3px solid #fff1d0;box-shadow:0 6px 13px #031820aa;color:#68422b;cursor:grab;touch-action:none}
.permit-tag::before{content:"";position:absolute;top:5px;width:6px;height:6px;border-radius:50%;background:#825d3e;box-shadow:0 0 0 2px #f7d999}.permit-tag b{margin-top:8px}.permit-tag span{font-size:11px;font-weight:800;color:#a33c30}.permit-tag small{font-size:8px;color:#80633f}
.tag-socket{right:9%;bottom:16px;border:2px dashed #94dcd4;background:#082e3edb;color:#a2dcdb}.tag-socket small{font-size:9px}.tag-socket.installed{border-style:solid;border-color:#f6d691;background:#f2d39d;color:#7f402e;box-shadow:0 0 18px #ebc27d38}.tag-socket.installed b{font-size:15px}
.permit-tag.dragging,.vibration-probe.dragging{cursor:grabbing;z-index:8}
.inspection-field{position:absolute;inset:30px 10% 42px;z-index:4;touch-action:none}.inspection-point{position:absolute;display:grid;place-items:center;width:55px;height:38px;border:1px dashed #edc78c;background:#153a48bb;color:#ffdb9f;border-radius:7px;font-size:10px;pointer-events:none}.frame-point{left:5%;top:4%}.seal-point{left:42%;top:64%}.sensor-point{right:0;top:38%}.inspection-point.inspected{border-color:#81e9c2;border-style:solid;background:#1d6654cc;color:#b9f6d8}.inspection-point.inspected::after{content:"✓";position:absolute;right:-7px;top:-8px;background:#5de1bf;color:#104e4d;border-radius:50%;width:16px;height:16px;text-align:center}
.inspection-lamp{position:absolute;left:24px;top:75%;width:42px;height:42px;transform:translate(-50%,-50%);border:3px solid #d8fff4;border-radius:50%;display:grid;place-items:center;background:#71d8ca;color:#185360;font-size:28px;box-shadow:0 0 0 15px #fff4b622,0 0 0 30px #fff4b60d,0 0 26px #e5ffd65c;cursor:grab;touch-action:none;z-index:3}.inspection-lamp:active{cursor:grabbing}
.door-adjust-grip{position:absolute;left:27%;top:68%;z-index:4;min-width:60px;padding:6px 8px;border:2px solid #fff0be;border-radius:7px;color:#29434a;background:#f3ce85;box-shadow:0 3px 8px #1b3e4899;font-size:23px;line-height:1;touch-action:none;cursor:ew-resize}.door-adjust-grip small{display:block;margin-top:5px;font-size:8px}.door-panel.calibrating{transition:none}
.operation-console{position:absolute;left:5%;right:5%;bottom:10px;z-index:6;display:flex;align-items:center;justify-content:center;gap:12px;padding:10px;border:1px solid #6bb7bd88;border-radius:11px;background:#082938f5;box-shadow:0 8px 20px #031a27bb}.operation-console button{border:1px solid #8cddd0;border-radius:7px;padding:10px 12px;background:#4ab9ad;color:#063b42;font-weight:800;font-size:11px;touch-action:manipulation}.operation-console button:disabled{opacity:.38;cursor:default}.signal-lamp{font-size:9px;min-width:55px;color:#7fa3ae}.signal-lamp::before{content:"";display:inline-block;width:7px;height:7px;background:#52686d;border-radius:50%;margin-right:5px}.signal-lamp.lit{color:#a8efc9}.signal-lamp.lit::before{background:#78f1c2;box-shadow:0 0 9px #78f1c2}.door-scene.testing .scan-readout{bottom:78px}
.torque-visual.interactive{top:8px;width:min(340px,90%);height:calc(100% - 16px);max-height:260px;pointer-events:auto;z-index:7}.interactive .torque-visual-title{height:29px;padding:8px 12px;font-size:11px}.interactive .torque-visual-body{height:calc(100% - 64px);gap:25px;transform:none}.interactive .torque-visual-caption{font-size:10px;padding:5px 8px}.ratchet-ring{position:relative;flex:none;width:126px;height:126px;border:2px dashed #67969e;border-radius:50%;background:radial-gradient(circle,#234c58 0 40%,#0d2c3d 41%);cursor:grab;touch-action:none;outline-offset:5px}.ratchet-ring:active{cursor:grabbing}.ratchet-ring:focus-visible{outline:2px solid #f9d289}.ratchet-ring .torque-topview{position:absolute;inset:25px;width:72px;height:72px}.ratchet-direction{position:absolute;top:-20px;left:0;right:0;text-align:center;color:#e4c68f;font-size:9px;white-space:nowrap}.ratchet-arm{position:absolute;left:50%;top:calc(50% - 6px);width:59px;height:12px;border:2px solid #e2dfcc;border-radius:6px;background:linear-gradient(#dce6de,#66818a);transform-origin:0 50%;box-shadow:0 3px 7px #051d29;pointer-events:none;z-index:4}.ratchet-arm::after{content:"";position:absolute;right:-8px;top:-6px;width:22px;height:20px;border:2px solid #ffeac0;border-radius:5px;background:#e7b862;box-shadow:0 0 0 5px #efcb8830}.interactive.secured .ratchet-ring{border-color:#76eabf}.interactive.secured .ratchet-arm::after{background:#72dfb5}
.sensor-socket{position:absolute;left:16%;top:52%;width:91px;height:62px;z-index:4;border:2px dashed #d9c68c;border-radius:8px;background:#0c3445d9;display:grid;place-items:center;color:#e6d29e;font-size:9px}.sensor-socket b{font-size:26px;line-height:1}.sensor-socket.installed{border-style:solid;border-color:#70ddbe;color:#a5f1d1;background:#1b584d}.vibration-probe{position:absolute;right:13%;bottom:15px;width:94px;height:60px;padding:8px;border:2px solid #b5e2db;border-radius:8px;background:linear-gradient(#708b94,#344f5a);display:flex;flex-direction:column;align-items:center;gap:3px;z-index:5;touch-action:none;cursor:grab;user-select:none}.vibration-probe i{width:20px;height:10px;background:#8bebc8;border:2px solid #d8ffed;border-radius:3px}.vibration-probe b{font-size:9px}.vibration-probe small{font-size:8px;color:#a8d0d6}.vibration-trace{position:absolute;left:7%;right:7%;bottom:12px;height:59px;overflow:hidden;border:1px solid #75c3bd;border-radius:7px;background:#082a39f2;padding:5px 12px}.vibration-trace span{font-size:9px;color:#b1e9dd}.vibration-trace svg{display:block;width:100%;height:32px}.vibration-trace polyline{fill:none;stroke:#7debc5;stroke-width:2}.vibration-trace i{position:absolute;top:0;bottom:0;width:2px;background:#f2d292;box-shadow:0 0 15px #f2d292}.vibration-trace.complete i{display:none}
.fan-console{justify-content:space-between;gap:9px;padding:8px 12px}.operation-console .fan-dial{position:relative;flex:none;width:49px;height:49px;border-radius:50%;padding:0;border:4px solid #8ba7ad;background:radial-gradient(circle,#315562,#102e3e);color:#d5eee8;box-shadow:0 0 0 3px #08212e,inset 0 0 0 1px #b9d0cd;cursor:pointer}.fan-dial i{position:absolute;left:50%;top:50%;width:3px;height:16px;margin-left:-1.5px;margin-top:-16px;background:#ffd68c;transform-origin:50% 100%;transform:rotate(var(--dial-angle,-135deg));transition:transform .17s}.fan-dial b{position:absolute;left:0;right:0;bottom:3px;font-size:8px;pointer-events:none}.fan-console-copy{display:flex;flex:1;flex-direction:column;gap:6px;min-width:0}.fan-console-copy strong{font-size:10px;color:#b9e4df}.fan-console-copy small{font-size:8px;color:#8fb6c0;line-height:1.5}.operation-console .sample-button{font-size:9px;padding:10px 8px;white-space:nowrap}.stop-console span{color:#d6bc89;font-size:11px}.operation-console .stop-fan{background:#e4ad76;border-color:#f8d9b3;color:#593a28}
.filter-latch{position:absolute;top:20px;width:30px;height:18px;z-index:7;border:2px solid #d1ded6;border-radius:5px;background:linear-gradient(#b4c5bf,#617f85);box-shadow:0 3px 4px #0b2633;transform-origin:15% 50%;transition:transform .2s;touch-action:manipulation}.filter-latch::before{content:"";position:absolute;left:2px;top:4px;width:5px;height:5px;border-radius:50%;background:#294a57}.latch-left{left:1px}.latch-right{right:1px}.filter-latch:disabled{cursor:default}.filter-latch.ready{border-color:#ffe3a6;box-shadow:0 0 0 5px #eac57e33,0 0 15px #f0c67c5c;cursor:pointer}.filter-latch.released{transform:rotate(-80deg)}.filter-cell.brushed:not(.clean)::before{opacity:var(--dust,.47)}.filter-cell.brushed:not(.clean)::after{opacity:var(--dust,.32)}
@media(min-width:900px){
  .permit-tag,.tag-socket{width:120px;height:122px;bottom:30px;font-size:14px}.permit-tag span{font-size:14px}.permit-tag small,.tag-socket small{font-size:11px}.permit-tag{left:13%}.tag-socket{right:13%}
  .inspection-field{inset:40px 18% 70px}.inspection-point{width:70px;height:48px;font-size:12px}.inspection-lamp{width:50px;height:50px;font-size:32px}.sensor-point{right:2%}
  .door-adjust-grip{padding:11px 15px;min-width:74px;font-size:28px}.door-adjust-grip small{font-size:10px}.door-console{left:15%;right:15%;bottom:22px;padding:15px}.operation-console button{font-size:13px;padding:12px 17px}.signal-lamp{font-size:11px;min-width:85px}.door-scene.testing .scan-readout{bottom:103px}
  .torque-visual.interactive{top:14%;width:385px;height:300px;max-height:300px}.interactive .torque-visual-title{height:42px;padding:13px 18px;font-size:13px}.interactive .torque-visual-body{height:207px;gap:38px}.interactive .torque-visual-caption{font-size:12px}.ratchet-ring{width:164px;height:164px}.ratchet-ring .torque-topview{inset:45px}.ratchet-direction{font-size:11px;top:-23px}.ratchet-arm{width:78px;height:15px;top:calc(50% - 7.5px)}.ratchet-arm::after{width:27px;height:24px;top:-7px}.interactive .torque-profile{transform:scale(1.2)}
  .sensor-socket{left:20%;top:48%;width:110px;height:83px;font-size:11px}.vibration-probe{right:19%;bottom:28px;width:125px;height:80px;padding:12px}.vibration-probe b{font-size:12px}.vibration-probe small{font-size:10px}.vibration-trace{left:14%;right:14%;bottom:22px;height:80px;padding:9px 15px}.vibration-trace span{font-size:11px}.vibration-trace svg{height:40px}
  .fan-console{left:13%;right:13%;bottom:18px;padding:11px 17px;gap:14px}.operation-console .fan-dial{width:62px;height:62px}.fan-dial i{height:22px;margin-top:-22px}.fan-dial b{font-size:10px;bottom:6px}.fan-console-copy strong{font-size:12px}.fan-console-copy small{font-size:10px}.operation-console .sample-button{font-size:11px;padding:12px}.stop-console{left:20%;right:20%;bottom:20px}.filter-latch{top:26px;width:37px;height:22px}.filter-latch::before{top:6px}.latch-left{left:6px}.latch-right{right:6px}
}
img,svg,canvas,video{-webkit-user-drag:none;user-select:none}
.app,.app *{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}
.workbench{position:relative}
.how-guide{display:grid;gap:8px;margin:8px 24px 0;padding:0}
.how-guide div{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid #4ea8b055;border-radius:12px;background:#0b2d3acc}
.how-guide span{flex:none;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:#f6cb7b;color:#1d3f48;font-size:12px;font-weight:900}
.how-guide b{display:block;color:#e7f8f4;font-size:13px}
.how-guide small{display:block;color:#9fc9d0;font-size:11px;line-height:1.45;margin-top:2px}
.coach{position:absolute;inset:0;z-index:12;pointer-events:none}
.coach[hidden]{display:none}
.coach-spot{position:absolute;border:2px dashed #ffd78f;border-radius:14px;box-shadow:0 0 0 999px #04141ccc,0 0 18px #ffd78f88;animation:coach-pulse 1.2s ease-in-out infinite}
.coach-bubble{position:absolute;max-width:210px;margin:0;padding:10px 12px;border:1px solid #f3d59a;border-radius:12px;background:#163948f2;color:#f4ffe9;font-size:12px;font-weight:700;line-height:1.5;box-shadow:0 10px 24px #03141f}
@keyframes coach-pulse{50%{box-shadow:0 0 0 999px #04141ccc,0 0 26px #ffe7b0}}
@media(min-width:900px){
  .how-guide{grid-column:1;margin:0;gap:10px}
  .how-guide div{padding:12px 14px}
  .how-guide b{font-size:14px}.how-guide small{font-size:12px}
}
@media(prefers-reduced-motion:reduce){.filter-air-visual span{animation:none}.fan-dial i,.filter-latch{transition:none}.coach-spot{animation:none}}
.door-gap-gauge.active{top:22%;bottom:auto}
.ratchet-direction{top:6px;font-size:8px}
.filter-scene.maintenance .filter-pressure-visual{visibility:hidden}
@media(min-width:900px){.ratchet-direction{top:9px;font-size:10px}}
.play-hint{width:100%;margin:5px 0 1px;border:1px solid #65a7ae55;border-radius:9px;background:#0b2b398c;overflow:hidden}
.play-hint[hidden],.play-hint p[hidden]{display:none}
.play-hint button{display:flex;align-items:center;gap:8px;width:100%;padding:9px 11px;border:0;background:transparent;color:#b9e7df;text-align:left;font-size:10px;font-weight:700}
.play-hint button span{display:grid;place-items:center;width:17px;height:17px;flex:none;border:1px solid #78d5bd;border-radius:50%;color:#a8eed7;font-size:11px}
.play-hint button i{margin-left:auto;color:#84b9b7;font-style:normal;font-size:9px;font-weight:400}
.play-hint button[aria-expanded="true"]{color:#e2f8e9}
.play-hint p{margin:0;padding:0 12px 11px 36px;color:#d4ece6;font-size:10px;line-height:1.6}
@media(min-width:900px){.play-hint{margin:0}.play-hint button{padding:11px 13px;font-size:11px}.play-hint p{font-size:11px;padding:0 14px 13px 38px}}

/* 精简说明文字后的布局 */
.brand-copy strong{font-size:13px;letter-spacing:.6px}.intro-kicker{font-size:12px}.eyebrow{font-size:12px}.panel-label{font-size:11px}.scan-readout{font-size:10px}
.play-hint button{font-size:12px}.play-hint p{font-size:12px}.play-hint button i{font-size:10px}
.report-card{margin-top:22px}.report-row{font-size:12px}.report-row strong{font-size:11px}
@media(min-width:900px){
  .brand-copy strong{font-size:16px}.intro-kicker{font-size:15px}.eyebrow{font-size:13px}.panel-label{font-size:13px}
  .intro-screen.active{grid-template-rows:minmax(20px,1fr) auto auto auto minmax(20px,1fr) auto}
  .intro-kicker{grid-row:2}.intro-screen h1{grid-row:3}.how-guide{grid-row:4}.intro-bottom{grid-row:6}.train-hero{grid-row:1/7}
  .side-stack{justify-content:center}
  .desktop-brief{flex:none;min-height:74px;display:flex;align-items:center;padding:12px 17px}
  .brief-items{display:flex;gap:10px;width:100%;margin:0}
  .brief-item{flex:1;min-height:42px;justify-content:center;padding:6px}.brief-item i{display:none}
  .play-hint button,.play-hint p{font-size:12px}
  .ending-screen.active{grid-template-rows:auto auto minmax(24px,1fr) auto}
  .complete-emblem{grid-row:1}.ending-screen h2{grid-row:2}.report-card{grid-row:1/4}.ending-screen .primary-button{grid-row:4}
}
