*{box-sizing:border-box} :root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#252e28;background:#f1f1eb;font-synthesis:none}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #a0b62d;outline-offset:4px}button:disabled{cursor:default;opacity:.5}button{transition:background .15s,transform .15s}button:active{transform:translateY(1px)}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 4%;border-bottom:1px solid #d9ddd2;background:#f8f8f3}.brand{display:flex;align-items:center;gap:11px;font-size:13px;font-weight:750;letter-spacing:2px;text-decoration:none;color:inherit}.brandmark{display:grid;place-items:center;background:#354535;color:#edf6b2;border-radius:9px;width:32px;height:32px;font-size:23px;font-style:italic}.brand-sub{margin-left:12px;padding-left:22px;border-left:1px solid #cbd1c6;color:#7b8479;font-size:10px}.header-right{display:flex;align-items:center;gap:22px}.prototype{font-size:12px;color:#586453;display:flex;align-items:center;gap:7px}.prototype i{width:6px;height:6px;border-radius:50%;background:#879b42}.quiet{background:none;border:0;font-size:12px;color:#586453;padding:10px 0}main{max-width:1660px;margin:auto;padding:35px 4% 22px}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:27px;gap:20px}.eyebrow{font-size:10px;font-weight:750;letter-spacing:1.8px;color:#7b8672}h1{font-weight:500;letter-spacing:-1.5px;font-size:clamp(29px,3vw,43px);margin:8px 0 10px}.intro p{margin:0;color:#7c8278;font-size:13px}.model-label{display:flex;flex-direction:column;gap:6px;text-align:right}.model-label>span{font-size:9px;color:#7d8778;letter-spacing:1.8px}.model-label strong{font-size:17px;font-weight:600}.model-label small{font-size:10px;color:#7d8778}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 322px;gap:20px;align-items:stretch}.viewport{position:relative;min-height:642px;background:#aebdc4;border-radius:17px;overflow:hidden;isolation:isolate}.viewport:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,rgba(16,24,23,.78),transparent 26%,transparent 80%,rgba(16,24,23,.28));z-index:1}#scene{position:absolute;inset:0}#scene canvas{width:100%;height:100%;display:block;touch-action:none}.loading{position:absolute;inset:0;display:grid;place-items:center;font-size:14px;background:#24322e;color:#dce7c3}.viewbar{position:absolute;left:22px;right:22px;top:22px;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:15px}.view-switch{display:flex;padding:4px;background:#202c29e8;border:1px solid #8a988242;border-radius:9px;gap:2px}.view-switch button{border:0;padding:10px 14px;border-radius:6px;font-size:12px;color:#c0c8bb;background:transparent}.view-switch button[aria-pressed=true]{background:#d4e59d;color:#293424}.scene-badge{font-size:10px;color:#edf3e6;background:#29382ad9;border-radius:6px;padding:10px 12px;white-space:nowrap}.scene-description{z-index:3;position:absolute;left:29px;bottom:86px;color:#f0f3e8;display:flex;flex-direction:column;gap:8px;pointer-events:none;text-shadow:0 1px 8px #17231c}.scene-description>span:first-child{font-size:9px;font-weight:700;letter-spacing:2px;color:#d0dda7}.scene-description strong{font-size:23px;max-width:390px;letter-spacing:-.5px;font-weight:500}.scene-description>span:last-child{font-size:11px;color:#c5cebd}.focus-button{position:absolute;right:25px;bottom:93px;z-index:4;border:0;border-radius:7px;padding:13px 16px;background:#d4e59d;color:#263722;font-size:12px;font-weight:600;box-shadow:0 4px 18px #101c2440}.focus-button span{padding-left:16px}.scene-footer{position:absolute;bottom:22px;left:28px;right:28px;z-index:3;display:flex;justify-content:space-between;gap:16px;color:#c4cbbb;font-size:10px;padding-top:16px;border-top:1px solid #8f9b7c4d}.controls{background:#fafaf6;border:1px solid #dfe2d6;border-radius:17px;padding:24px 22px 15px;min-width:0;box-shadow:0 6px 26px #1a331609}.control-head{display:flex;align-items:center;justify-content:space-between;gap:5px}h2{font-size:18px;font-weight:550;letter-spacing:-.45px;margin:9px 0 0}.reset{font-size:23px;border:1px solid #d5dccc;background:transparent;border-radius:50%;width:30px;height:30px;color:#65745b;line-height:1}.progress{display:flex;align-items:center;margin:24px 0;color:#8d9587;font-size:10px;gap:8px}.progress>span{display:flex;gap:5px;align-items:center}.progress b{font-size:9px;display:grid;place-items:center;border:1px solid #cad2c1;width:19px;height:19px;border-radius:50%;font-weight:500}.progress i{height:1px;background:#d9dece;flex:1}.progress .done{color:#3e5a30}.progress .done b{background:#dce9b6;border-color:#dce9b6}.driver-card{width:100%;display:flex;align-items:center;gap:10px;background:linear-gradient(125deg,#ebeee8,#e0e5df);border:1px solid #d1d9ca;border-radius:8px;padding:0;overflow:hidden;text-align:left;color:#364333;min-height:68px}.card-stripe{align-self:stretch;width:25px;background:#527166;display:grid;place-items:center;color:#e6eee1;font-size:14px}.driver-card>span:nth-child(2){display:flex;flex-direction:column;gap:8px;flex:1}.driver-card small{font-size:8px;letter-spacing:1px;font-weight:600}.driver-card strong{font-size:12px;font-weight:600}.card-arrow{font-size:18px;padding-right:12px}.display-heading{display:flex;justify-content:space-between;margin:23px 0 9px;font-size:10px;color:#818c77}.display-heading label{color:#536047;font-weight:600}.lcd{background:#203128;border:5px solid #2a362c;border-radius:5px;padding:13px 9px 12px;color:#d6e2b3;font:15px/1.65 Consolas,"Courier New",monospace;box-shadow:inset 0 2px 6px #111c18;white-space:pre;display:flex;flex-direction:column;min-height:85px;overflow:hidden}.keypad{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:9px}.keypad button{background:#eaece4;color:#3c4834;border:1px solid #d6ddcd;border-radius:5px;height:38px;font-size:15px;box-shadow:0 2px 0 #d3d9ca}.keypad .ok{background:#3e5139;border-color:#3e5139;color:#f1f3e8;font-size:12px}.driver-actions{display:grid;grid-template-columns:1.16fr 1fr;gap:9px;margin-top:18px}.driver-actions button{background:none;border:1px solid #d9dfd0;border-radius:7px;color:#53634a;padding:9px 6px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:5px;font-size:10px;min-height:46px}.driver-actions small{display:block;width:100%;font-size:8px;color:#89927d}.driver-icon{display:grid;place-items:center;width:16px;height:16px;border:1px solid #8b987b;border-radius:3px}.guidance{margin-top:18px;padding:14px;background:#eef1e3;border-radius:7px;min-height:91px}.guidance>span{font-size:8px;letter-spacing:1.5px;font-weight:700;color:#768661}.guidance p{font-size:11px;line-height:1.6;margin:7px 0 0;color:#4f5b42}.time-actions{display:flex;gap:6px;margin-top:15px}.time-actions button{border:0;background:transparent;font-size:10px;color:#597048;padding:7px 0;flex:1;text-align:left}.time-actions button:last-child{text-align:right}.flags{font-size:10px;color:#7e6325;padding-top:4px}.history{margin-top:10px;border-top:1px solid #e0e5d7;padding:12px 0 0;font-size:10px;color:#7b8571}.history summary{cursor:pointer;user-select:none}.history summary span{float:right;color:#839276}.history ol{padding-left:15px;max-height:140px;overflow:auto;line-height:1.6;font-size:10px}.history li{padding:3px 0}.page-footer{display:flex;justify-content:space-between;gap:20px;margin-top:18px;color:#88907e;font-size:10px;line-height:1.6}.page-footer a{white-space:nowrap;color:#60784c;text-decoration:none}dialog{border:0;border-radius:17px;width:min(570px,90vw);padding:28px;background:#fafaf6;color:#37452f;box-shadow:0 24px 80px #13261c50}dialog::backdrop{background:#101e1fc7;backdrop-filter:blur(4px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.dialog-head button{border:0;background:none;font-size:25px;color:#69785d}dialog h2{font-size:25px;margin:15px 0 20px}dialog p{font-size:13px;line-height:1.7;color:#69735e}.dialog-links{display:flex;gap:24px;font-size:12px;margin-top:25px}.dialog-links a{color:#52663b}.primary-wide{border:0;border-radius:7px;background:#3e5139;color:#f7f8ed;width:100%;padding:13px}#paper{background:#f1eee0;white-space:pre-wrap;padding:24px 20px;font:12px/1.7 Consolas,monospace;color:#292d23;border-bottom:3px dashed #d0cdbf}.fallback .scene-description{bottom:70px}.fallback .focus-button{display:none}
@media(min-width:1400px){.workspace{grid-template-columns:minmax(0,1fr) 348px}.controls{padding:26px}.viewport{min-height:686px}.lcd{font-size:17px}}
@media(max-width:1100px){main{padding:28px 3%}.workspace{grid-template-columns:minmax(0,1fr) 295px;gap:14px}.controls{padding:22px 17px}.viewport{min-height:642px}.scene-description{bottom:143px;left:24px}.scene-description strong{font-size:21px;max-width:290px}.focus-button{left:24px;right:auto;bottom:79px}.viewbar{left:16px;right:16px;top:16px;align-items:flex-start;flex-wrap:wrap}.scene-badge{font-size:9px}.scene-footer{left:24px;right:24px;font-size:9px;flex-direction:column;gap:5px}.model-label small{max-width:170px}.brand-sub{display:none}.lcd{font-size:14px}.prototype{display:none}}
@media(max-width:760px){.topbar{height:60px;padding:0 5%}.brand{font-size:11px;letter-spacing:1px}.quiet{font-size:10px}main{padding:25px 5%}.intro{margin-bottom:20px}.intro p{line-height:1.6;max-width:250px}.model-label{display:none}h1{font-size:31px}.workspace{display:flex;flex-direction:column;gap:16px}.viewport{min-height:430px}.scene-description{bottom:111px}.scene-description strong{font-size:20px}.scene-description>span:last-child{max-width:260px;line-height:1.5}.focus-button{bottom:61px;padding:10px 13px}.scene-footer{bottom:15px;border:0;padding-top:0;flex-direction:row}.scene-footer span:last-child{display:none}.view-switch button{padding:8px 12px;font-size:11px}.scene-badge{display:none}.controls{padding:23px}.lcd{font-size:17px}.guidance{min-height:80px}.progress{margin:19px 0}.driver-card{min-height:65px}.page-footer{flex-direction:column;gap:8px}.dialog-links{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}


/* DTCO 4.1 evidence-based display and training controls. */
.workspace{grid-template-columns:minmax(0,1fr) 358px;align-items:start}.viewport{min-height:750px;position:sticky;top:14px}
.controls{padding:23px}.lcd{padding:9px 8px;background:#261609;border-color:#302820;min-height:94px;overflow:visible}
#lcd-canvas{display:block;width:100%;height:auto;image-rendering:pixelated}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.guidance{min-height:126px}.guidance #source{display:inline-block;font-size:10px;color:#5c723b;margin-top:9px}
.settings label{display:flex;gap:8px;align-items:center;line-height:1.5;margin:11px 0}.settings p{font-size:10px;line-height:1.6}
.option-buttons{display:grid;gap:6px;margin-top:12px}.option-buttons button{font-size:11px;border:1px solid #d9dfd0;border-radius:5px;background:#f0f2e9;padding:9px;color:#53634a}
button[hidden]{display:none}.display-heading{font-size:9px}.scene-description{bottom:88px}
@media(min-width:1400px){.workspace{grid-template-columns:minmax(0,1fr) 390px}}
@media(max-width:1100px){.workspace{grid-template-columns:minmax(0,1fr) 322px}.controls{padding:20px 16px}.scene-description{bottom:132px}}
@media(max-width:760px){.workspace{display:flex}.viewport{position:relative;top:auto;min-height:400px;width:100%}.controls{width:100%;padding:22px}.scene-description{bottom:113px}}

/* Photographic cabin and restrained instrument-panel styling. */
:root{color:#e8e9eb;background:#151719;color-scheme:dark}
.topbar{height:64px;background:#1b1d20;border-color:#34373b}
.brandmark{background:#c3a175;color:#1c1a17;border-radius:4px}.brand-sub{border-color:#45484c;color:#94999f}
.quiet,.intro p,.model-label small,.model-label>span,.eyebrow{color:#a4a9ae}
main{padding-top:25px}.intro{margin-bottom:23px}h1{font-size:clamp(28px,2.6vw,38px)}
.viewport{background:#25272a;border:1px solid #393c40;border-radius:10px;min-height:680px}
.photographic-cab{position:absolute;inset:0;background-repeat:no-repeat;background-color:#222;transition:opacity .3s}
#scene canvas{position:relative;z-index:1}
.viewport:after{background:linear-gradient(0deg,#101113e8,transparent 25%,transparent 86%,#10111380);z-index:2}
.view-switch{background:#181a1deb;border-color:#55595b;border-radius:6px}
.view-switch button{border-radius:3px;color:#d0d3d5}.view-switch button[aria-pressed=true],.focus-button{background:#d0b38b;color:#211c16}
.scene-badge{background:#191b1edb;border:1px solid #505358;color:#e2e4e5;border-radius:4px}
.scene-description>span:first-child{color:#d9bc94}.scene-description>span:last-child,.scene-footer{color:#d2d2d2}.scene-footer{border-color:#a6a6a64d}
.controls{background:#202326;border-color:#3d4146;border-radius:10px;box-shadow:0 10px 35px #0002}
.reset{color:#b5babd;border-color:#50555a}.progress{color:#9da4a8}.progress b{border-color:#586068}.progress i{background:#464c51}
.progress .done{color:#d5be9b}.progress .done b{background:#4e463b;color:#e6ccb0;border-color:#877256}
.driver-card{background:linear-gradient(125deg,#d9d8d2,#bdbfbf);border-color:#909596;color:#252a2b;border-radius:5px}.card-stripe{background:#294457;color:#fff}
.display-heading,.display-heading label{color:#aab0b5}.keypad button{background:linear-gradient(#44494e,#2c3035);color:#e6e7e9;border-color:#565b61;box-shadow:0 2px 0 #101214}.keypad .ok{background:linear-gradient(#665745,#40382e);border-color:#8a7559;color:#f2dfc3}
.driver-actions button{border-color:#4c535b;color:#ddd}.driver-actions small{color:#a0a6ab}.driver-icon{border-color:#888f94}
.guidance{background:#2c3034;border-left:2px solid #b49b79;border-radius:3px}.guidance>span{color:#bba58a}.guidance p{color:#ccd0d3}.guidance #source{color:#d3b98f}
.time-actions button{color:#cbb491}.flags{color:#e2c591}.history{border-color:#43494e;color:#aeb5ba}.history summary span{color:#c8b392}
.option-buttons button{background:#2d3237;border-color:#515961;color:#d2d7dc}.page-footer{color:#9b9fa5}.page-footer a{color:#d1b88f}
dialog{background:#25292d;color:#edeef0;border:1px solid #5b6268;border-radius:9px}dialog p{color:#c0c6cb}.dialog-head button{color:#ddd}.dialog-links a{color:#d4b994}.primary-wide{background:#c2a27b;color:#211b15}
button:focus-visible,a:focus-visible,summary:focus-visible{outline-color:#d6b382}
@media(min-width:1400px){.viewport{min-height:730px}}
@media(max-width:760px){.viewport{min-height:470px}.topbar{height:58px}.scene-description{bottom:113px}.intro{margin-bottom:18px}}


/* Guided exercise cockpit — v0.4 */
.icon-library{position:absolute;width:0;height:0;overflow:hidden}
.activity-svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.intro{margin-bottom:22px}.intro h1{font-size:32px}.hints-switch{display:flex;gap:9px;align-items:center;font-size:12px;color:#c9cdd0;cursor:pointer}.hints-switch input{accent-color:#d0b38b;width:17px;height:17px}
.training-hud{display:grid;grid-template-columns:minmax(270px,1.6fr) minmax(140px,.72fr) minmax(150px,.88fr) 100px;gap:20px;align-items:center;padding:20px 24px;background:#24292e;border:1px solid #4c5359;border-radius:9px;margin-bottom:20px;position:sticky;top:0;z-index:12;box-shadow:0 8px 25px #0002}
.activity-summary{display:flex;gap:15px;align-items:center}.activity-emblem{width:56px;height:56px;display:grid;place-items:center;border:1px solid #c3a67c55;background:#bfa17c16;color:#e0bd88;border-radius:12px;flex-shrink:0}.activity-emblem svg{width:33px;height:33px}.training-hud h2{font-size:18px;letter-spacing:-.3px;margin:5px 0 4px}.training-hud p{font-size:11px;line-height:1.5;color:#aeb8c1;margin:0;max-width:310px}.training-hud .eyebrow{font-size:8px;letter-spacing:1.3px}
.timer-metric{border-left:1px solid #4d565e;padding-left:20px}.timer-metric>span{font-size:10px;color:#b8c1c9;display:block}.timer-metric>strong{display:block;font:500 clamp(22px,2.1vw,32px)/1.2 Consolas,monospace;letter-spacing:-.5px;margin:7px 0 5px;color:#f4e2c7;font-variant-numeric:tabular-nums}.timer-metric small{display:block;font-size:9px;line-height:1.4;color:#8f9ba5}.sim-clock{display:flex;flex-direction:column;gap:4px;text-align:right}.sim-clock>span{font-size:8px;letter-spacing:1.5px;color:#a9b5bf}.sim-clock>strong{font:26px Consolas,monospace}.sim-clock small{font-size:9px;color:#a9b5bf}
.training-hud[data-activity="Ruhe"] .activity-emblem{color:#b7d2b9;border-color:#b7d2b955;background:#b7d2b915}.training-hud[data-activity="Fahrt"] .activity-emblem{color:#e3c093;background:#e3c09315}.training-hud[data-activity="Bereitschaft"] .activity-emblem{color:#9abdd5;border-color:#9abdd555;background:#9abdd515}
.workspace{grid-template-columns:minmax(0,1fr) 375px;gap:18px}.viewport{height:min(750px,calc(100vh - 220px));min-height:540px;position:sticky;top:130px}.controls{padding:21px;background:#20252a}.control-head h2{font-size:20px;margin-top:5px}.controls .eyebrow{font-size:8px}.control-head{padding-bottom:10px}.controls .reset{width:31px;height:31px}.panel-section{padding:20px 0;border-top:1px solid #454e57}.section-heading{display:flex;align-items:center;gap:10px;margin-bottom:14px}.section-heading h3{font-size:13px;letter-spacing:.1px;font-weight:600;margin:0}.section-number{font:10px Consolas,monospace;display:grid;place-items:center;border-radius:4px;width:22px;height:22px;color:#d4b387;border:1px solid #8e755455;background:#c9ab8112}
.drive-primary{display:flex;align-items:center;justify-content:center;gap:14px;background:#ceb18a;color:#221b13;border:1px solid #e4c89f;border-radius:7px;min-height:63px;width:100%;text-align:left;box-shadow:0 3px 0 #13181c}.drive-primary strong{display:block;font-size:17px;font-weight:650}.drive-primary small{display:block;font-size:9px;opacity:.8;margin-top:4px}.drive-primary:hover{background:#e1c69f}.drive-primary[data-driving="true"]{background:#566674;border-color:#7d909f;color:#f1f3f5}
.activity-choices{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;margin-top:14px}.activity-choices button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:13px 2px;background:#2c333a;border:1px solid #515e6a;color:#c6cfd6;border-radius:7px;font-size:10px}.activity-choices button[aria-pressed="true"]{color:#f0dbc0;background:#594a38;border-color:#c2a27b}.activity-choices button[data-activity="Ruhe"][aria-pressed="true"]{background:#354c3b;border-color:#8fa88e;color:#d9ead8}.activity-choices button:hover:not(:disabled){border-color:#ddd}
.inline-hint{font-size:10px;color:#9facb6;line-height:1.55;margin:9px 0 0}.speed-row{margin-top:16px}.speed-row label,.rest-goal label{display:block;font-size:10px;color:#bfc7ce;margin-bottom:7px}select{font:12px "Segoe UI",sans-serif;border:1px solid #5b6570;border-radius:5px;color:#f0e8dd;background:#2c343c;padding:10px;width:100%;cursor:pointer;min-height:38px}
.training-time-actions{gap:8px;margin:9px 0}.training-time-actions button{padding:10px 8px!important;background:#343e47;color:#dce2e7;text-align:center!important;border:1px solid #566471;border-radius:5px;font-size:11px}.training-time-actions #advance{color:#f1d4a8;border-color:#9e845e}
.rest-goal{border:1px solid #71887455;background:#7d9b7a0c;border-radius:6px;padding:12px;margin:15px 0}.rest-goal[hidden]{display:none}.rest-goal button{background:none;border:0;padding:10px 0 0;color:#d4ddc1;font-size:11px}.rest-goal p{font-size:10px;line-height:1.6;color:#a9b9ae;margin:8px 0 0}.time-summary{display:flex;justify-content:space-between;gap:10px;padding:10px 0 4px;font-size:9px;color:#a5b2bc}.time-summary b{display:block;font:14px Consolas,monospace;margin-top:4px;color:#d4dde5}.time-summary span:last-child{text-align:right}
.progress{margin:0 0 15px}.driver-card{min-height:68px}.driver-card:enabled{box-shadow:0 0 0 1px #d7b98444,0 0 20px #d7b98419}.card-arrow{font-size:24px}.display-heading{margin-top:19px}.driver-actions{margin-top:12px}.guidance{margin-top:17px;min-height:110px}.show-print{background:transparent;border:0;padding:12px 0;color:#d1b38d;font-size:12px}.controls .history{margin-top:2px;padding-top:16px;padding-bottom:10px}.controls .settings{font-size:11px}.controls .settings p{color:#a7b2bc}
.activity-toast{position:absolute;z-index:8;left:20px;right:20px;bottom:130px;padding:18px 42px 18px 18px;display:flex;gap:15px;align-items:flex-start;border:1px solid #c9b18e;background:#20282df5;box-shadow:0 8px 32px #0008;border-radius:9px;backdrop-filter:blur(12px);animation:toast-in .22s ease-out}.activity-toast[hidden]{display:none}.activity-toast>svg{color:#e5c89e;width:30px;height:30px}.activity-toast strong{font-size:16px;line-height:1.35}.activity-toast p{font-size:12px;line-height:1.7;color:#c4ccd3;margin:6px 0 0}.activity-toast>button{position:absolute;right:10px;top:8px;background:transparent;border:0;color:#d4dce3;font-size:23px}
.device-hotspot,.card-hotspot{position:absolute;z-index:4;border:2px solid #ebc483;border-radius:6px;background:transparent;box-shadow:0 0 0 5px #f2c5811c,0 0 25px #ffc56566;animation:guide-pulse 2.4s ease-in-out infinite;padding:0;pointer-events:auto}.device-hotspot span,.card-hotspot span{position:absolute;left:50%;top:100%;transform:translateX(-50%);margin-top:9px;padding:7px 10px;background:#ecd0a5;color:#2c251c;border-radius:4px;white-space:nowrap;font-size:10px;font-weight:650;box-shadow:0 4px 10px #0003}.device-hotspot[hidden],.card-hotspot[hidden]{display:none}.device-hotspot:hover,.card-hotspot:hover{background:#f4d7a01a;box-shadow:0 0 0 7px #f2c58122,0 0 40px #ffc565aa}.device-hotspot span:before,.card-hotspot span:before{content:"";position:absolute;left:calc(50% - 4px);top:-7px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:7px solid #ecd0a5}
.windshield-world{position:absolute;pointer-events:none;overflow:hidden;clip-path:url(#windshield-aperture);background:#9ba6aa}
#scene .windshield-world canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0}.photographic-cab{transition:opacity .3s,filter 1s;will-change:filter}
@keyframes guide-pulse{50%{box-shadow:0 0 0 6px #f2c58114,0 0 34px #ffc56599}}
@keyframes toast-in{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1500px){.workspace{grid-template-columns:minmax(0,1fr) 410px}.viewport{min-height:620px;top:128px}.controls{padding:25px}.training-hud{grid-template-columns:minmax(310px,1.6fr) 190px 210px 120px}}
@media(max-width:1100px){.training-hud{grid-template-columns:1.5fr 1fr 1fr;gap:14px;padding:16px}.activity-summary{grid-column:1/3}.sim-clock{grid-column:3;grid-row:1}.timer-metric{grid-row:2;border-left:0;padding-left:0}.goal-metric{grid-column:2/4}.training-hud .activity-summary h2{font-size:16px}.workspace{grid-template-columns:minmax(0,1fr) 330px}.viewport{top:200px;min-height:470px}.controls{padding:18px}.scene-description{bottom:125px}.activity-toast{bottom:178px}.view-switch button{padding:9px 10px}}
@media(max-width:760px){.intro{align-items:flex-start;flex-direction:column;gap:14px}.intro h1{font-size:28px}.hints-switch{font-size:11px}.training-hud{position:relative;top:auto;grid-template-columns:1fr 1fr;padding:16px;gap:17px}.activity-summary{grid-column:1/-1}.sim-clock{grid-row:3;grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between;text-align:left}.sim-clock strong{font-size:20px}.sim-clock>span,.sim-clock>#sim-date{display:none}.timer-metric{grid-row:2}.goal-metric{grid-column:2}.timer-metric strong{font-size:24px}.training-hud p{max-width:none}.viewport{position:relative;top:auto;height:490px;min-height:0}.workspace{display:flex;flex-direction:column}.controls{padding:22px;width:100%}.scene-description strong{font-size:18px}.scene-description{bottom:100px}.scene-footer{font-size:9px}.focus-button{bottom:52px}.activity-toast{bottom:146px;left:12px;right:12px;padding:14px 35px 14px 13px;gap:10px}.activity-toast p{font-size:11px}.activity-toast strong{font-size:14px}.device-hotspot span,.card-hotspot span{font-size:9px}.topbar{padding:0 5%}.header-right{gap:14px}}
@media(prefers-reduced-motion:reduce){.device-hotspot,.card-hotspot,.activity-toast{animation:none}}

/* A short retained press makes even quick clicks visible; held keys stay depressed. */
.controls button{transition:transform .16s ease-out,box-shadow .16s ease-out,filter .16s ease-out,border-color .16s ease-out,background .16s}
.controls button:active:not(:disabled),.controls button.is-pressed:not(:disabled){transform:translateY(3px) scale(.97);filter:brightness(1.16);border-color:#f0c98e;box-shadow:inset 0 3px 7px #0009,0 0 0 2px #e6bc7f,0 0 13px #e6bc7f30;transition-duration:.055s}
@media(prefers-reduced-motion:reduce){.controls button:active:not(:disabled),.controls button.is-pressed:not(:disabled){transform:none}}

/* Shared LCD glyphs remain readable at small sizes; the magnifier preserves the device layout. */
#lcd-canvas{image-rendering:auto}
.lcd-magnify{width:100%;margin:8px 0 3px;padding:10px 12px;border:1px solid #78664e;border-radius:5px;background:#302b24;color:#f0cea0;font-size:11px;font-weight:600;text-align:center}
.lcd-magnify:hover{background:#473b2b}
#lcd-dialog{width:min(880px,94vw);max-height:92vh;padding:26px;overflow:auto}
#lcd-dialog h2{margin:13px 0 20px}#lcd-dialog h3{font-size:13px;font-weight:650;margin:22px 0 12px}
.enlarged-lcd{padding:12px;border:6px solid #17191b;border-radius:7px;min-height:0}
#large-lcd-canvas{display:block;width:100%;height:auto}
.reading-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.reading-grid>div{padding:14px;border:1px solid #4b5258;border-radius:6px;background:#202428}
.reading-grid span{display:block;color:#c6ad8e;font-size:10px;margin-bottom:8px}.reading-grid strong{font-size:12px;display:block}.reading-grid b{display:block;font:22px Consolas,monospace;color:#ffd59b;margin-top:7px}.reading-grid p{font-size:11px;margin:5px 0 0;line-height:1.5}
.symbol-legend{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.symbol-legend>div{display:flex;gap:12px;align-items:center;padding:9px 12px;border:1px solid #464d52;border-radius:5px}
.symbol-legend canvas{width:42px;height:49px;flex:none;background:#1a1007;border-radius:3px;image-rendering:auto}.symbol-legend strong,.symbol-legend small{display:block}.symbol-legend strong{font-size:12px;font-weight:600}.symbol-legend small{font-size:10px;color:#b3bdc6;margin-top:4px;line-height:1.5}
#lcd-dialog .symbol-reference{font-size:10px;line-height:1.6;margin:18px 0;color:#b4bec6}.symbol-reference a{color:#e8c696}
@media(max-width:550px){#lcd-dialog{padding:16px}.symbol-legend{grid-template-columns:1fr}.reading-grid>div{padding:10px}.reading-grid strong{font-size:11px}.enlarged-lcd{padding:5px;border-width:4px}}

.printer-status{display:flex;align-items:center;gap:9px;font-size:12px;margin:12px 0 8px;min-height:24px}.printer-led{width:7px;height:7px;background:#b9b088;border-radius:50%;box-shadow:0 0 9px #cfae6b44;flex:none}.printer-led[data-busy="true"]{background:#e6b265;animation:printer-glow 1s ease-in-out infinite alternate}.printer-actions{display:grid;grid-template-columns:1fr;gap:7px}.printer-actions button{padding:11px 9px;font-size:12px;text-align:left}.printer-actions #printer-menu{border-color:#867050;background:#514634;color:#f0d9b3}.printer-actions #printer-tear{border-color:#b08c52;color:#f4d6a1}.printer-footnote{display:block;color:#99a2ab;font-size:10px;line-height:1.5;margin-top:10px}#print-progress{width:100%;height:5px;accent-color:#d3ad70}#printer-hint{min-height:38px;margin-bottom:12px}.printer-panel .show-print{margin-top:10px}@keyframes printer-glow{to{box-shadow:0 0 12px #edbd78bb;opacity:.5}}
.printer-actions button{font:inherit;font-size:12px;font-weight:600;color:#dce1e5;background:linear-gradient(#343c42,#293036);border:1px solid #505961;border-radius:6px;box-shadow:0 2px 3px #0004;cursor:pointer}.printer-actions button:hover{border-color:#c9a770;background:#41474a}.printer-actions button:disabled{opacity:.4;cursor:default}.printer-panel .inline-hint{font-size:11px;line-height:1.6}
/* Keep the DiBay steering-wheel emblem clear of the cockpit caption. */
.viewport:has(#scene[data-view="cockpit"]) .scene-description{left:auto;right:25px;bottom:150px;max-width:245px;text-align:right;align-items:flex-end}
.viewport:has(#scene[data-view="cockpit"]) .scene-description strong{font-size:20px}
.viewport:has(#scene[data-view="cockpit"]):after{background:linear-gradient(0deg,#10111380,transparent 21%,transparent 86%,#10111380)}
@media(max-width:760px){.viewport:has(#scene[data-view="cockpit"]) .scene-description{right:18px;bottom:116px;max-width:190px}.viewport:has(#scene[data-view="cockpit"]) .scene-description strong{font-size:16px}}
/* Required actions are labelled and focusable; their meaning never depends on colour alone. */
.ignition-control{margin:0 0 14px;padding:12px;border:1px solid #59636c;border-radius:8px;background:#262d33}
.ignition-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:11px;margin-bottom:9px;color:#c1cbd3}.ignition-heading strong{color:#f1d4a2;font-size:12px}.ignition-control[data-on="true"] .ignition-heading strong{color:#c4e7ce}
.ignition-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:48px;padding:12px 10px;background:#353f48;border:1px solid #8695a1;border-radius:6px;color:#f3f6f8;font:600 14px/1.35 "Segoe UI",Arial,sans-serif;scroll-margin-block:230px 36px}.ignition-button .activity-svg{width:23px;height:23px;flex:none}.ignition-button:hover{background:#46515a;border-color:#d8bf99}
#ignition-help{margin:9px 0 0;color:#d5dde3;font-size:12px;line-height:1.55}
.ignition-guide{display:flex;gap:10px;margin-top:12px;padding-top:11px;border-top:1px solid #e4bf7859;color:#ffe0aa;font-size:12px;line-height:1.5}.ignition-guide>span{font-size:26px;line-height:1}.ignition-guide strong,.ignition-guide div>span{display:block}.ignition-guide strong{font-size:13px;margin-bottom:3px}.ignition-guide[hidden]{display:none}
.controls .guided-control{border-color:#ffdc9c;outline:3px solid #f1c781;outline-offset:3px;background:#4d402c;box-shadow:0 0 15px #e5b66b55}
.controls .guide-pulse{animation:required-action-glow 1.6s ease-in-out 3}
.controls button:focus-visible{outline:3px solid #ffffff;outline-offset:4px;box-shadow:0 0 0 6px #111820}
@keyframes required-action-glow{0%,100%{box-shadow:0 0 8px #e5b66b33}50%{box-shadow:0 0 0 5px #e5b66b28,0 0 24px #e5b66b88}}
@media(prefers-reduced-motion:reduce){.controls .guide-pulse{animation:none}.ignition-button{transition:none}}
@media(forced-colors:active){.controls .guided-control{outline:3px solid Highlight}.ignition-guide{border:1px solid CanvasText}}

/* Match the glass edge to the cab photograph; reflections remain below the controls. */
.windshield-reflection{position:absolute;inset:0;pointer-events:none;background:linear-gradient(178deg,transparent 26%,#7e9aa808 32%,transparent 45%,#aab8c80a 57%);box-shadow:inset 0 0 18px #19262b0d}
.side-window-world,.mirror-world{position:absolute;pointer-events:none;overflow:hidden;clip-path:url(#side-window-aperture)}
.mirror-world{clip-path:url(#mirror-aperture);filter:saturate(.85) brightness(.82)}
#scene .side-window-world canvas,#scene .mirror-world canvas{position:absolute;z-index:0}

/* Notices occupy their own row: long text cannot cover the device or its caption. */
.scene-column{position:sticky;top:130px;min-width:0;display:flex;flex-direction:column;gap:12px}
.scene-column>.viewport{position:relative;top:auto;width:100%;flex:none}
.scene-column>.activity-toast{position:relative;inset:auto;flex:none;margin:0;min-width:0;box-shadow:0 4px 18px #0003}
.scene-column>.activity-toast>svg{flex:0 0 30px}
.scene-column>.activity-toast>div{min-width:0;overflow-wrap:anywhere}
.scene-column>.activity-toast>button{width:36px;height:36px;right:5px;top:5px;line-height:1}
@media(min-width:1500px){.scene-column{top:128px}}
@media(max-width:1100px){.scene-column{top:200px}}
@media(max-width:760px){.scene-column{position:relative;top:auto;width:100%}}

/* Only the projected card contour glows; the HTML button remains keyboard accessible. */
.card-hotspot,.card-hotspot:hover,.card-hotspot:active{border:0;border-radius:0;background:transparent;box-shadow:none;animation:none;transform:none}
.card-guide-outline{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.card-guide-outline path{fill:transparent;stroke:#f2cc91;stroke-width:2;stroke-linejoin:round;filter:drop-shadow(0 0 4px #ffd08aaa);animation:card-contour-glow 2.4s ease-in-out infinite}
.card-hotspot:hover .card-guide-outline path{fill:#ffe1a80a;stroke:#ffe6b8;stroke-width:2.5}
.card-hotspot:focus-visible{outline:none}.card-hotspot:focus-visible .card-guide-outline path{stroke:#fff4d8;stroke-width:3.5;filter:drop-shadow(0 0 5px #ffbf69)}
@keyframes card-contour-glow{50%{filter:drop-shadow(0 0 7px #ffd08acc)}}
@media(prefers-reduced-motion:reduce){.card-guide-outline path{animation:none}}
.card-hotspot>span{top:60%;margin:0;transform:translateY(-50%)}
.card-hotspot[data-label-side="right"]>span{left:calc(100% + 12px)}
.card-hotspot[data-label-side="left"]>span{left:auto;right:calc(100% + 12px)}
.card-hotspot>span:before{top:calc(50% - 5px);margin:0;border-top:5px solid transparent;border-bottom:5px solid transparent}
.card-hotspot[data-label-side="right"]>span:before{left:-7px;border-left:0;border-right:7px solid #ecd0a5}
.card-hotspot[data-label-side="left"]>span:before{left:auto;right:-7px;border-right:0;border-left:7px solid #ecd0a5}

/* One press: paper feed, automatic tear-off, readable receipt. */
.print-start{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:58px;padding:12px;border:1px solid #cfb58d;border-radius:7px;background:#ceb18a;color:#292d2f;text-align:left}
.print-start svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.print-start span{display:grid;gap:4px}.print-start strong{font-size:15px}.print-start small{font-size:10px}
.printer-status{margin-top:14px}.print-options{margin:12px 0;color:#b8c1c7;font-size:11px}.print-options summary{cursor:pointer;padding:9px 0}.print-options button{margin:5px 0;width:100%;min-height:44px;border:1px solid #58636c;background:#303941;color:#e0e3e5;border-radius:5px}
#print-dialog{width:min(570px,94vw);max-height:92dvh;padding:22px;background:#242b30;color:#f0ece4;border:1px solid #576169;overflow:hidden}
#print-dialog[open]{display:flex;flex-direction:column;gap:14px}#print-dialog .dialog-head{flex:none}#print-dialog h2{font-size:22px;letter-spacing:-.4px;margin:7px 0 0;color:#f3eee5}#print-dialog .dialog-head button{color:#f3eee5;min-width:44px;min-height:44px;border:1px solid #616c73;border-radius:6px}
#print-description{font-size:12px;line-height:1.5;color:#c1c8cc;margin:0;flex:none}.receipt-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:18px 12px 24px;background:#161d22;border-radius:8px;scrollbar-color:#a18c6d #161d22}
.receipt-sheet{max-width:330px;margin:auto;position:relative;background:#f7f4e9;box-shadow:0 8px 22px #0007}.receipt-sheet:after{content:"";position:absolute;bottom:-7px;left:0;right:0;height:8px;background:linear-gradient(135deg,#f7f4e9 25%,transparent 25%) -4px 0/8px 8px,linear-gradient(225deg,#f7f4e9 25%,transparent 25%) -4px 0/8px 8px}
#paper-canvas{display:block;width:100%;height:auto}#print-dialog .primary-wide{flex:none;min-height:48px;background:#ceb18a;color:#252d32;font-weight:650}#print-dialog #paper.sr-only{padding:0;border:0}
@media(max-width:480px){#print-dialog{padding:14px;gap:10px}#print-dialog h2{font-size:19px}.receipt-scroll{padding:12px 6px 20px}}
