:root{--bg: #020b12;--panel: rgba(4, 20, 30, .62);--panel-border: rgba(90, 210, 255, .18);--accent: #35d6ff;--accent-soft: rgba(53, 214, 255, .14);--text: #d9f1f8;--text-dim: #7fa3b1;--ok: #6dff9c;--warn: #ffb347;--radius: 10px;--mono: ui-monospace, "Cascadia Mono", Consolas, "SF Mono", Menlo, monospace;--sans: "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;--edge: clamp(8px, 1.4vw, 16px);--pad-top: max(var(--edge), env(safe-area-inset-top));--pad-right: max(var(--edge), env(safe-area-inset-right));--pad-bottom: max(var(--edge), env(safe-area-inset-bottom));--pad-left: max(var(--edge), env(safe-area-inset-left))}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased}#scene{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none;outline:none}#hud{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;display:grid;grid-template-columns:minmax(0,1fr) clamp(220px,22vw,290px);grid-template-rows:auto minmax(0,1fr) auto auto;grid-template-areas:"brand stats" ".     parts" "stage parts" "bar   bar";gap:12px;padding:var(--pad-top) var(--pad-right) var(--pad-bottom) var(--pad-left)}.bar,.stage,.brand{min-width:0}#hud[hidden]{display:none}#hud>*{pointer-events:auto}.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.brand{grid-area:brand;display:flex;align-items:center;gap:12px;pointer-events:none!important}.brand-mark{width:46px;height:23px;color:var(--accent);filter:drop-shadow(0 0 6px rgba(53,214,255,.5))}.brand h1{margin:0;font-size:17px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.brand p{margin:2px 0 0;font-size:12px;color:var(--text-dim)}.brand-by{display:flex;align-items:center;gap:8px;margin-left:6px;padding-left:14px;border-left:1px solid var(--panel-border)}.brand-by img{width:auto;height:34px;filter:drop-shadow(0 0 7px rgba(0,92,200,.5))}.brand-by>span{display:grid;line-height:1.25}.brand-by small{font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim)}.brand-by b{font-size:12.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.brand-short{display:none}.topright{grid-area:stats;justify-self:end;align-self:start;display:flex;align-items:center;gap:14px;pointer-events:none!important}.lang{display:flex;border:1px solid var(--panel-border);border-radius:8px;overflow:hidden;background:var(--panel);pointer-events:auto}.lang-btn{border:0;background:none;color:var(--text-dim);font-family:var(--mono);font-size:11px;letter-spacing:.06em;padding:6px 9px;cursor:pointer;transition:background .15s,color .15s}.lang-btn+.lang-btn{border-left:1px solid var(--panel-border)}.lang-btn:hover{color:var(--text)}.lang-btn[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}.lang-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.stats{font-family:var(--mono);font-size:11px;color:var(--text-dim);display:flex;gap:14px;pointer-events:none!important;white-space:nowrap}.stats b{color:var(--text);font-weight:500}.parts{grid-area:parts;align-self:stretch;display:flex;flex-direction:column;min-height:0;padding:12px 6px 8px 12px}.parts h2{margin:0 0 8px;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim);display:flex;justify-content:space-between;padding-right:8px}.parts h2 span{font-family:var(--mono);letter-spacing:0;color:var(--accent)}#parts-list{list-style:none;margin:0;padding:0 4px 0 0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(90,210,255,.3) transparent}#parts-list li{margin:0}.part{width:100%;display:grid;grid-template-columns:22px 10px 1fr;align-items:center;gap:8px;padding:6px 8px;border:1px solid transparent;border-radius:7px;background:none;color:var(--text-dim);font:inherit;font-size:12.5px;text-align:left;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.part:hover{background:var(--accent-soft)}.part:focus-visible,.mode:focus-visible,.icon:focus-visible,.speed:focus-visible,.info-close:focus-visible,.parts-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.part .num{font-family:var(--mono);font-size:10.5px;opacity:.6}.part .dot{width:8px;height:8px;border-radius:50%;border:1px solid var(--text-dim);transition:all .2s}.part[data-status=building]{color:var(--text)}.part[data-status=building] .dot{background:var(--accent);border-color:var(--accent);box-shadow:0 0 8px var(--accent);animation:pulse .9s ease-in-out infinite}.part[data-status=done]{color:var(--text)}.part[data-status=done] .dot{background:var(--ok);border-color:var(--ok)}.part[aria-pressed=true]{background:var(--accent-soft);border-color:var(--panel-border);color:#fff}@keyframes pulse{50%{transform:scale(1.45);opacity:.55}}.parts-toggle{display:none}.info{position:absolute;z-index:3;top:calc(var(--pad-top) + 58px);left:var(--pad-left);width:min(340px,calc(100vw - var(--pad-left) - var(--pad-right)));padding:16px 18px}.info[hidden]{display:none}.info-group{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}.info h3{margin:4px 0 8px;font-size:18px;font-weight:600}.info p{margin:0 0 12px;font-size:13px;line-height:1.55;color:#b7d3dc}.info ul{margin:0;padding:0;list-style:none;display:grid;gap:5px}.info li{font-family:var(--mono);font-size:11.5px;color:var(--text);padding-left:14px;position:relative}.info li:before{content:"";position:absolute;left:0;top:.55em;width:6px;height:1px;background:var(--accent)}.info-close{position:absolute;top:8px;right:10px;width:26px;height:26px;border:0;border-radius:6px;background:none;color:var(--text-dim);font-size:20px;line-height:1;cursor:pointer}.info-close:hover{color:#fff;background:var(--accent-soft)}.stage{grid-area:stage;align-self:end;max-width:520px;pointer-events:none!important;text-shadow:0 1px 12px rgba(0,10,16,.9)}.stage-index{font-family:var(--mono);font-size:12px;color:var(--accent);letter-spacing:.08em}.stage h3{margin:2px 0 4px;font-size:clamp(20px,2.4vw,30px);font-weight:600;letter-spacing:.01em}.stage p{margin:0;font-size:13px;line-height:1.5;color:#a9c8d2}.bar{grid-area:bar;display:flex;align-items:center;gap:14px;padding:10px 14px;background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.transport{display:flex;align-items:center;gap:6px}.icon,.speed,.mode{border:1px solid var(--panel-border);background:#0822308c;color:var(--text);border-radius:8px;cursor:pointer;font:inherit;transition:background .15s,border-color .15s,color .15s}.icon{width:38px;height:38px;display:grid;place-items:center}.icon svg{width:18px;height:18px}#btn-play{background:var(--accent);border-color:var(--accent);color:#02222d}.speed{height:38px;min-width:46px;padding:0 8px;font-family:var(--mono);font-size:12px}.icon:hover,.speed:hover,.mode:hover{border-color:var(--accent)}#btn-play:hover{filter:brightness(1.12)}.timeline{position:relative;flex:1;min-width:120px;height:38px;display:flex;align-items:center}.ticks{position:absolute;left:8px;right:8px;top:50%;height:12px;transform:translateY(-50%);pointer-events:none}.ticks i{position:absolute;top:0;width:1px;height:100%;background:#8cdcff47}#slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;margin:0;border-radius:2px;background:linear-gradient(to right,var(--accent) var(--fill, 0%),rgba(140,220,255,.16) var(--fill, 0%));cursor:pointer;position:relative}#slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--accent);box-shadow:0 0 10px #35d6ffb3}#slider::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#fff;border:3px solid var(--accent)}.percent{font-family:var(--mono);font-size:13px;min-width:44px;text-align:right;color:var(--accent)}.modes{display:flex;gap:6px;flex-wrap:wrap}.mode{height:38px;padding:0 12px;font-size:12.5px;color:var(--text-dim)}.mode[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:#fff;box-shadow:inset 0 0 12px #35d6ff2e}.tooltip{position:fixed;z-index:5;padding:5px 9px;border-radius:6px;background:#021018e6;border:1px solid var(--panel-border);font-size:12px;pointer-events:none!important;transform:translate(14px,14px);white-space:nowrap}.tooltip[hidden]{display:none}.fallback{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;text-align:center;padding:24px;background:var(--bg)}.fallback[hidden]{display:none}.fallback p{max-width:420px;color:var(--text-dim);line-height:1.5}@media(max-width:1180px){.bar{flex-wrap:wrap;gap:8px 12px}.timeline{order:-1;flex:1 1 calc(100% - 70px)}.percent{order:-1}.modes{flex:1 1 0;min-width:0;justify-content:flex-end}}@media(max-width:860px),(max-height:520px){#hud{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto;grid-template-areas:"brand" "." "stage" "bar";gap:8px}.stats,.brand p,.brand-by{display:none}.brand{max-width:calc(100% - 244px)}.brand>div{min-width:0}.brand h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topright{position:absolute;top:var(--pad-top);right:calc(var(--pad-right) + 84px)}.parts-toggle{display:block;position:absolute;top:var(--pad-top);right:var(--pad-right);min-width:72px;height:30px;padding:0 10px;border-radius:8px;border:1px solid var(--panel-border);background:var(--panel);color:var(--text);font:inherit;font-size:12px;cursor:pointer}.parts{position:absolute;z-index:4;top:calc(var(--pad-top) + 40px);right:var(--pad-right);width:min(280px,calc(100vw - var(--pad-left) - var(--pad-right)));max-height:min(60dvh,calc(100dvh - var(--pad-top) - 150px));display:none}.parts.open{display:flex}.info{top:calc(var(--pad-top) + 40px);left:var(--pad-left);max-height:calc(100dvh - var(--pad-top) - 190px);overflow-y:auto}.stage p{display:none}}@media(max-width:560px){.brand{gap:8px;max-width:calc(100% - 222px)}.brand h1{font-size:12px;letter-spacing:.04em}.brand-long{display:none}.brand-short{display:inline}.brand-mark{width:28px;height:14px;flex:none}.lang-btn{padding:6px 7px}.bar{padding:8px 10px}.transport{order:1}.modes{order:2;flex:1 1 100%;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.mode{height:40px;padding:0 2px;font-size:10.5px;line-height:1.15;white-space:normal;overflow-wrap:anywhere}.info{width:calc(100vw - var(--pad-left) - var(--pad-right));padding:12px 14px}.info h3{font-size:16px}}@media(max-width:400px){.brand{max-width:calc(100% - 212px)}.brand h1{font-size:11px;letter-spacing:.02em}.lang-btn{padding-left:6px;padding-right:6px}}@media(max-height:520px){.stage h3{font-size:17px;margin:0}.bar{padding:6px 10px;gap:6px 10px}.icon,.speed,.mode{height:32px}.icon{width:34px}.timeline{height:26px}.info{width:min(300px,48vw);max-height:calc(100dvh - var(--pad-top) - 130px)}}@media(pointer:coarse){.part{padding:9px 8px}.lang-btn{padding-top:9px;padding-bottom:9px}.parts-toggle{height:34px}#slider::-webkit-slider-thumb{width:22px;height:22px}#slider::-moz-range-thumb{width:18px;height:18px}}@media(prefers-reduced-motion:reduce){.part[data-status=building] .dot{animation:none}}:root{--bad: #ff4d5e;--bad-soft: rgba(255, 77, 94, .16);--ok-soft: rgba(109, 255, 156, .14)}body:not([data-mode=timeline]) #hud .parts,body:not([data-mode=timeline]) #hud .parts-toggle,body:not([data-mode=timeline]) #hud .info,body:not([data-mode=timeline]) #hud .stage,body:not([data-mode=timeline]) #hud .bar{display:none}.menu-btn{pointer-events:auto;height:28px;padding:0 12px;border:1px solid var(--panel-border);border-radius:8px;background:var(--panel);color:var(--text);font:inherit;font-size:12px;letter-spacing:.04em;cursor:pointer;transition:border-color .15s,color .15s}.menu-btn:hover{border-color:var(--accent);color:#fff}.menu-btn:focus-visible,.menu-card:focus-visible,.tr-phase:focus-visible,.tr-tool:focus-visible,.tr-btn:focus-visible,.tr-card:focus-visible,.tr-device:focus-visible,.tr-port:focus-visible,.tr-switch:focus-visible{outline:2px solid var(--accent);outline-offset:1px}body[data-mode=menu] .menu-btn,.menu-btn-bar{display:none}.menu{position:fixed;top:0;right:0;bottom:0;left:0;z-index:6;display:grid;place-items:center;padding:calc(var(--pad-top) + 64px) var(--pad-right) var(--pad-bottom) var(--pad-left);pointer-events:none;overflow-y:auto;background:radial-gradient(ellipse at 50% 58%,#010a10c7,#010a1080 55%,#010a1000)}.menu[hidden]{display:none}.menu-inner{width:min(980px,100%);pointer-events:auto;animation:tr-rise .5s ease-out both}.menu-head{text-align:center;margin-bottom:clamp(14px,3vh,30px);text-shadow:0 2px 18px rgba(0,8,14,.95)}.menu-kicker{margin:0;font-family:var(--mono);font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--accent)}.menu-head h2{margin:8px 0 6px;font-size:clamp(24px,4vw,42px);font-weight:600;letter-spacing:.02em}.menu-sub{margin:0;color:var(--text-dim);font-size:14px}.menu-cards{display:grid;grid-template-columns:1.25fr 1fr;gap:16px}.menu-card{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:clamp(16px,2.4vw,26px);text-align:left;font:inherit;color:var(--text);background:#04141eb8;border:1px solid var(--panel-border);border-radius:14px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);cursor:pointer;transition:transform .2s ease,border-color .2s,box-shadow .2s,background .2s}.menu-card:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:0 18px 50px #00000073,0 0 0 1px #35d6ff40,inset 0 0 40px #35d6ff0f}.menu-card.primary{border-color:#35d6ff73;background:linear-gradient(155deg,#0a3448c7,#04141ec7 60%)}.menu-tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);padding:3px 8px;border:1px solid rgba(53,214,255,.35);border-radius:999px}.menu-card strong{font-size:clamp(19px,2.3vw,27px);font-weight:600;line-height:1.15}.menu-desc{font-size:13.5px;line-height:1.55;color:#b7d3dc}.menu-points{display:grid;gap:6px;font-family:var(--mono);font-size:11.5px;color:var(--text)}.menu-points>span{position:relative;padding-left:16px}.menu-points>span:before{content:"";position:absolute;left:0;top:.45em;width:7px;height:7px;border-radius:2px;background:var(--ok);box-shadow:0 0 8px #6dff9c99}.menu-cta{margin-top:auto;padding:10px 16px;border-radius:9px;font-size:13px;font-weight:600;letter-spacing:.03em;border:1px solid var(--panel-border);background:#082230b3}.menu-card.primary .menu-cta{background:var(--accent);border-color:var(--accent);color:#02222d}.menu-credit{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:clamp(14px,2.5vh,26px);text-shadow:0 2px 14px rgba(0,8,14,.9)}.menu-credit .credit-mark{width:auto;height:64px;filter:drop-shadow(0 0 10px rgba(0,92,200,.55))}.credit-text{display:grid;line-height:1.35}.credit-text small{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim)}.credit-text b{font-size:17px;font-weight:600;letter-spacing:.16em;text-transform:uppercase}.credit-text small:last-child{margin-top:2px;letter-spacing:.04em;text-transform:none}#train,.menu{user-select:none;-webkit-user-select:none}#train{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;display:grid;grid-template-columns:clamp(290px,27vw,372px) minmax(0,1fr) clamp(240px,22vw,300px);grid-template-rows:auto minmax(0,1fr) auto;gap:12px;padding:calc(var(--pad-top) + 56px) var(--pad-right) var(--pad-bottom) var(--pad-left)}#train[hidden],#train [hidden]{display:none}#train>*{pointer-events:auto;min-width:0}.tr-phases{grid-column:1 / -1;grid-row:1;display:flex;align-items:stretch;gap:12px}.tr-mission,.tr-work{background:#03111adb}.tr-mission{grid-column:1;grid-row:2 / 4;align-self:start;max-height:100%;overflow-y:auto;scrollbar-width:thin;padding:16px 18px}.tr-tray{grid-column:3;grid-row:2 / 4}.tr-board,.tr-console{grid-column:2 / 4;grid-row:3;max-height:46vh}.tr-console{align-items:stretch}.tr-work{display:flex;flex-direction:column;min-height:0;padding:12px 14px;overflow:hidden}.tr-tray-list,.tr-board-body,.tr-console-col{overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(90,210,255,.3) transparent}.tr-work>h2,.tr-work>header{flex:none}.tr-work h2{margin:0;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim);display:flex;justify-content:space-between;gap:8px}.tr-work h2 .count{font-family:var(--mono);letter-spacing:0;color:var(--accent)}.tr-help{margin:4px 0 10px;font-size:12px;line-height:1.45;color:var(--text-dim)}.tr-phase-list{list-style:none;margin:0;padding:0;display:flex;gap:6px;flex:1;min-width:0}.tr-phase-list li{flex:1 1 0;min-width:0;max-width:300px}.tr-phase{width:100%;height:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:7px 12px;text-align:left;font:inherit;color:var(--text-dim);background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);cursor:pointer;transition:border-color .15s,color .15s,background .15s}.tr-phase:hover{border-color:var(--accent)}.tr-phase .n{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;border:1px solid currentColor;font-family:var(--mono);font-size:12px}.tr-phase .txt{display:grid;min-width:0}.tr-phase b{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tr-phase small{font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tr-phase .count{font-family:var(--mono);font-size:11px}.tr-phase[data-state=active]{color:#fff;border-color:var(--accent);background:linear-gradient(90deg,#35d6ff33,#04141e9e);box-shadow:inset 0 0 18px #35d6ff1f}.tr-phase[data-state=active] .n{background:var(--accent);border-color:var(--accent);color:#02222d}.tr-phase[data-state=done]{color:var(--text)}.tr-phase[data-state=done] .n{background:var(--ok);border-color:var(--ok);color:#032212}.tr-tools{display:flex;gap:6px;align-items:stretch}.tr-tool{padding:0 12px;min-height:34px;font:inherit;font-size:12px;color:var(--text-dim);background:var(--panel);border:1px solid var(--panel-border);border-radius:8px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);cursor:pointer;transition:border-color .15s,color .15s,background .15s}.tr-tool:hover{border-color:var(--accent);color:var(--text)}.tr-tool[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:#fff}.tr-tool-exit{display:none}.tr-mission-head{display:flex;justify-content:space-between;gap:10px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--accent)}.tr-clock{color:var(--text-dim);letter-spacing:.04em}.tr-mission h3{margin:6px 0 4px;font-size:clamp(20px,2vw,26px);font-weight:600}.tr-subtitle{display:inline-block;margin-bottom:8px;padding:2px 9px;border-radius:999px;border:1px solid var(--panel-border);background:var(--accent-soft);font-size:11.5px;letter-spacing:.06em;color:#fff}.tr-task{margin:0 0 12px;font-size:14px;line-height:1.55;color:var(--text)}.tr-learn{margin:0 0 12px;padding:10px 12px;border-radius:8px;border:1px solid var(--panel-border);border-left-width:3px;background:#0822308c;font-size:12.5px;line-height:1.5;color:#b7d3dc}.tr-learn[data-kind=ok]{border-color:#6dff9c80;background:var(--ok-soft);color:#d8ffe6}.tr-learn[data-kind=bad]{border-color:#ff4d5e99;background:var(--bad-soft);color:#ffdfe2}.tr-learn[data-kind=hint]{border-color:#ffb34799;background:#ffb3471f;color:#ffe9c9}.tr-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.tr-btn{min-height:36px;padding:0 14px;font:inherit;font-size:12.5px;color:var(--text);background:#0822308c;border:1px solid var(--panel-border);border-radius:8px;cursor:pointer;transition:border-color .15s,filter .15s}.tr-btn:hover{border-color:var(--accent)}.tr-btn.primary{background:var(--accent);border-color:var(--accent);color:#02222d;font-weight:600;animation:tr-glow 1.6s ease-in-out infinite}.tr-btn.primary:hover{filter:brightness(1.1)}.tr-score{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:0 0 10px}.tr-score div{padding:6px 8px;border-radius:7px;background:#08223080;border:1px solid var(--panel-border)}.tr-score dt{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim)}.tr-score dd{margin:2px 0 0;font-family:var(--mono);font-size:16px}.tr-score [data-k=ok] dd{color:var(--ok)}.tr-score [data-k=errors] dd{color:var(--bad)}.tr-score [data-k=hints] dd{color:var(--warn)}.tr-score [data-k=score]{border-color:#35d6ff66;background:#35d6ff14}.tr-score [data-k=score] dd{font-size:18px;color:var(--accent)}.tr-score [data-k=score][data-grade=A] dd{color:var(--ok)}.tr-score [data-k=score][data-grade=C] dd{color:var(--warn)}.tr-progress{height:3px;border-radius:2px;background:#8cdcff29;overflow:hidden}.tr-progress i{display:block;height:100%;width:0;background:var(--accent);box-shadow:0 0 8px var(--accent);transition:width .4s ease}.tr-tray-list{scroll-padding:6px;list-style:none;margin:0;padding:0;display:grid;gap:5px}.tr-card{width:100%;display:grid;grid-template-columns:12px minmax(0,1fr) 18px;grid-template-areas:"grip grp tick" "grip label tick";align-items:center;column-gap:8px;padding:7px 10px;touch-action:pan-y;text-align:left;font:inherit;color:var(--text);background:#08223080;border:1px solid var(--panel-border);border-radius:8px;cursor:pointer;transition:border-color .15s,background .15s,transform .15s}.tr-card:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft);transform:translate(-2px)}.tr-card:not(:disabled){cursor:grab}.tr-card.dragging{cursor:grabbing;opacity:.45;border-style:dashed;transform:none}.tr-card .grip{grid-area:grip;width:10px;color:var(--text-dim);touch-action:none}.tr-device .pin{touch-action:none}.tr-card .grip svg{display:block;width:10px;height:16px;fill:currentColor}.tr-card[data-state=done] .grip{opacity:0}.tr-dragchip{position:fixed;left:0;top:0;z-index:10;padding:5px 11px;border-radius:7px;border:1px solid var(--accent);background:#02141eeb;color:var(--text);font-size:12.5px;white-space:nowrap;margin:-34px 0 0 14px;pointer-events:none!important;box-shadow:0 8px 24px #00000073}.tr-dragchip[hidden]{display:none}.tr-dragchip[data-over=true]{border-color:var(--ok);color:var(--ok);box-shadow:0 0 0 1px var(--ok),0 8px 24px #00000073}#train[data-dragging=true] .tr-phases,#train[data-dragging=true] .tr-mission,#train[data-dragging=true] .tr-work{pointer-events:none;transition:opacity .18s ease}#train[data-dragging=true] .tr-work{opacity:.12}#train[data-dragging=true] .tr-mission,#train[data-dragging=true] .tr-phases{opacity:.3}.tr-card .grp{grid-area:grp;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim)}.tr-card .label{grid-area:label;font-size:13px;line-height:1.25}.tr-card .tick{grid-area:tick;width:18px;height:18px;color:var(--ok);opacity:0}.tr-card .tick svg,.tr-feedback .ico svg{width:100%;height:100%;display:block}.tr-card[data-state=done]{cursor:default;color:var(--text-dim);background:#6dff9c0f;border-color:#6dff9c40}.tr-card[data-state=done] .tick{opacity:1}.tr-card[data-state=hint],.tr-port[data-state=hint],.tr-switch[data-hint=true]{border-color:var(--warn);animation:tr-hint 1.1s ease-in-out infinite}.tr-board-body{position:relative;display:grid;gap:8px}.tr-wires{position:absolute;left:0;top:0;width:100%;pointer-events:none;overflow:visible;z-index:1}.tr-wires path{fill:none;stroke-linecap:round}.tr-wires .glow{stroke-width:6;opacity:.22}.tr-wires .live{stroke-width:2.5;stroke-dasharray:7 5;animation:tr-dash .7s linear infinite}.tr-wires .core{stroke-width:2;stroke-dasharray:6 5;animation:tr-dash 1.2s linear infinite}.tr-row-title{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim)}.tr-row{display:grid;gap:6px}.tr-devices{grid-template-columns:repeat(9,minmax(0,1fr));margin-bottom:34px}.tr-ports{grid-template-columns:repeat(7,minmax(0,1fr))}.tr-device,.tr-port{position:relative;display:grid;gap:2px;align-content:start;padding:8px 5px 12px;font:inherit;text-align:center;color:var(--text);background:#0822308c;border:1px solid var(--panel-border);border-radius:8px;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.tr-port{padding:14px 8px 8px;border-top:2px solid var(--kind)}.tr-device{border-bottom:2px solid var(--kind)}.tr-device .label,.tr-port b{font-size:11.5px;font-weight:600;line-height:1.2;overflow-wrap:anywhere}.tr-device .label[data-long=true],.tr-port b[data-long=true],.tr-switch .name[data-long=true]{font-size:10.5px;letter-spacing:-.01em}.tr-port small{font-size:10.5px;line-height:1.3;color:var(--text-dim)}.tr-device .to{display:none;font-size:10.5px;line-height:1.25;color:var(--kind)}.tr-device .pin,.tr-port .pin{position:absolute;left:50%;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:#02141d;border:2px solid var(--kind);z-index:2}.tr-device .pin{bottom:-6px}.tr-port .pin{top:-6px}.tr-device:hover:not(:disabled),.tr-port:hover{border-color:var(--kind);background:#0e3446b3}.tr-device:not(:disabled){cursor:grab;touch-action:pan-y}.tr-device.dragging{cursor:grabbing}.tr-port.over{border-color:var(--kind);background:#0e3446e6;box-shadow:0 0 0 2px var(--kind)}.tr-port.over .pin{background:var(--kind);box-shadow:0 0 12px var(--kind)}.tr-device[data-state=selected]{border-color:var(--kind);background:#0e3446d9;box-shadow:0 0 0 1px var(--kind),0 0 18px -4px var(--kind)}.tr-device[data-state=selected] .pin{background:var(--kind);box-shadow:0 0 10px var(--kind);animation:pulse .9s ease-in-out infinite}.tr-device[data-state=done]{cursor:default;color:var(--text-dim)}.tr-device[data-state=done] .pin,.tr-port[data-state=live] .pin{background:var(--kind);box-shadow:0 0 8px var(--kind)}.tr-ctrl{padding:8px 10px 10px;border-radius:10px;border:1px solid rgba(53,214,255,.35);background:linear-gradient(180deg,#0a2e4099,#03101899)}.tr-ctrl-title{position:relative;z-index:2;text-shadow:0 0 6px #03111a,0 0 6px #03111a;display:flex;align-items:baseline;gap:10px;margin:8px 0 10px;font-size:10.5px;letter-spacing:.08em;color:var(--text-dim)}.tr-ctrl-title b{font-family:var(--mono);font-size:13px;letter-spacing:.2em;color:var(--accent)}.tr-console{flex-direction:row;gap:18px}.tr-console-col{flex:1.35 1 0;min-width:0}.tr-gauges-col{flex:1 1 0}.tr-gauges-col h2{margin-bottom:10px}.tr-switches{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.tr-switch{position:relative;display:grid;grid-template-columns:10px minmax(0,1fr);grid-template-areas:"led name" "led state";align-items:center;column-gap:8px;min-height:48px;padding:7px 10px 10px;overflow:hidden;text-align:left;font:inherit;color:var(--text);background:#0822308c;border:1px solid var(--panel-border);border-radius:8px;cursor:pointer;transition:border-color .15s,background .15s}.tr-switch:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.tr-switch:disabled{cursor:default}.tr-switch .led{grid-area:led;width:10px;height:10px;border-radius:50%;background:#1a2a33;border:1px solid var(--text-dim)}.tr-switch .name{grid-area:name;font-size:12.5px;font-weight:600;line-height:1.2;overflow-wrap:anywhere}.tr-switch .state{grid-area:state;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim)}.tr-switch .sw-bar{position:absolute;left:0;right:0;bottom:0;height:3px;background:#8cdcff1a}.tr-switch .sw-bar i{display:block;height:100%;width:0;background:var(--warn)}.tr-switch[data-state=busy]{border-color:var(--warn)}.tr-switch[data-state=busy] .led{background:var(--warn);border-color:var(--warn);box-shadow:0 0 8px var(--warn);animation:pulse .9s ease-in-out infinite}.tr-switch[data-state=busy] .state{color:var(--warn)}.tr-switch[data-state=on]{border-color:#6dff9c66;background:#6dff9c12}.tr-switch[data-state=on] .led{background:var(--ok);border-color:var(--ok);box-shadow:0 0 8px var(--ok)}.tr-switch[data-state=on] .state{color:var(--ok)}.tr-switch[data-state=on] .sw-bar i{background:var(--ok)}.tr-switch.start{border-color:#35d6ff8c;background:linear-gradient(90deg,#35d6ff2e,#0822308c)}.tr-switch.start .name{font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:#fff}.tr-switch.start{grid-template-columns:18px minmax(0,1fr)}.tr-switch.start .led{display:none}.tr-switch.start .name{overflow-wrap:normal}.tr-switch.start .power{grid-area:led;width:18px;height:18px;color:var(--accent)}.tr-switch.start{grid-column:span 2;grid-template-areas:"led name" "led state" "lever lever";row-gap:4px;padding-bottom:10px}.lever{grid-area:lever;position:relative;display:block;margin-top:6px;padding-bottom:11px;font-family:var(--mono);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}.lever .stop,.lever .go{position:absolute;bottom:0;line-height:1}.lever .stop{left:0}.lever .go{right:0;color:var(--accent)}.lever input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:8px;margin:0;border-radius:5px;border:1px solid var(--panel-border);background:linear-gradient(to right,var(--accent) var(--fill, 0%),rgba(140,220,255,.12) var(--fill, 0%));cursor:grab;touch-action:none}.lever input:active{cursor:grabbing}.lever input:disabled{cursor:default;background:linear-gradient(to right,var(--ok) var(--fill, 0%),rgba(140,220,255,.12) var(--fill, 0%))}.lever input::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:22px;border-radius:4px;background:linear-gradient(180deg,#e8f7ff,#9fc4d2);border:1px solid #02222d;box-shadow:0 2px 6px #0000008c}.lever input::-moz-range-thumb{width:14px;height:20px;border-radius:4px;background:linear-gradient(180deg,#e8f7ff,#9fc4d2);border:1px solid #02222d}.lever input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tr-switch.start[data-ready=true]{border-color:var(--accent);animation:tr-glow 1.4s ease-in-out infinite}.tr-switch.start[data-state=on] .power{color:var(--ok)}.tr-gauges{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px 14px}.tr-gauge{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px;align-items:baseline}.g-name{font-size:11px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.g-val{font-family:var(--mono);font-size:11px;color:var(--text-dim)}.g-val b{font-size:14px;font-weight:500;color:var(--text)}.g-bar{grid-column:1 / -1;position:relative;height:5px;border-radius:3px;background:#8cdcff1f;overflow:hidden}.g-nom{position:absolute;top:0;bottom:0;background:#6dff9c38}.g-fill{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:3px;background:var(--accent);transition:background .3s}.tr-gauge[data-ok=true] .g-fill{background:var(--ok)}.tr-gauge[data-ok=true] .g-val b{color:var(--ok)}.tr-feedback{position:fixed;z-index:8;top:calc(var(--free-top, 120px) + 10px);left:var(--free-cx, 50%);width:min(520px,calc(100vw - 24px));transform:translate(-50%);display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:center;padding:12px 16px;border-radius:12px;border:1px solid var(--panel-border);background:#021018eb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 16px 40px #00000080;pointer-events:none!important}.tr-feedback.show{animation:tr-pop .35s cubic-bezier(.2,1.4,.4,1) both}.tr-feedback .ico{width:44px;height:44px;padding:9px;border-radius:50%;color:#02141d;background:var(--accent)}.tr-feedback strong{display:block;font-size:12px;letter-spacing:.18em;text-transform:uppercase}.tr-feedback b{display:block;margin-top:1px;font-size:15px;font-weight:600}.tr-feedback b:empty,.tr-feedback p:empty{display:none}.tr-feedback p{margin:3px 0 0;font-size:12.5px;line-height:1.45;color:#c4dde5}.tr-feedback[data-kind=ok]{border-color:#6dff9ca6;box-shadow:0 16px 40px #00000080,0 0 34px -6px #6dff9c8c}.tr-feedback[data-kind=ok] .ico{background:var(--ok)}.tr-feedback[data-kind=ok] strong{color:var(--ok)}.tr-feedback[data-kind=bad]{border-color:#ff4d5ebf;box-shadow:0 16px 40px #00000080,0 0 34px -6px #ff4d5e99}.tr-feedback[data-kind=bad] .ico{background:var(--bad);color:#fff}.tr-feedback[data-kind=bad] strong{color:var(--bad)}.tr-feedback[data-kind=info] strong{color:var(--text);letter-spacing:.04em;text-transform:none;font-size:13px;font-weight:500}.tr-vignette{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;opacity:0;pointer-events:none!important}.tr-vignette[data-kind=ok]{box-shadow:inset 0 0 140px 20px #6dff9c6b}.tr-vignette[data-kind=bad]{box-shadow:inset 0 0 160px 30px #ff4d5e8c}.tr-vignette.flash{animation:tr-flash .9s ease-out both}.shake{animation:tr-shake .5s ease both}.tr-labels{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none!important}.tr-label{position:absolute;left:0;top:0;padding:3px 9px;border-radius:6px;border:1px solid var(--panel-border);background:#021018d9;font-size:11.5px;white-space:nowrap;will-change:transform}.tr-label:after{content:"";position:absolute;left:50%;top:100%;width:1px;height:14px;background:currentColor;opacity:.6}.tr-label[data-kind=ok]{color:var(--ok);border-color:#6dff9c80}.tr-label[data-kind=device]{color:var(--warn);border-color:#ffb34780}.tr-label[data-kind=ctrl]{color:var(--accent);border-color:#35d6ff80}.tr-report{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9;display:grid;place-items:center;padding:16px;background:#01080da8;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);overflow-y:auto}.tr-report-card{width:min(640px,100%);padding:clamp(18px,3vw,30px);background:#04141eeb;animation:tr-rise .45s ease-out both}.tr-report .kicker{margin:0;font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}.tr-report h2{margin:6px 0 18px;font-size:clamp(18px,2.4vw,24px);font-weight:600}.tr-grade{display:flex;align-items:center;gap:18px;margin-bottom:18px;--tone: var(--accent)}.tr-grade[data-grade=A]{--tone: var(--ok)}.tr-grade[data-grade=B]{--tone: var(--accent)}.tr-grade[data-grade=C]{--tone: var(--warn)}.tr-grade .ring{width:92px;height:92px;flex:none;display:grid;place-items:center;border-radius:50%;background:radial-gradient(closest-side,#04141e 78%,transparent 80% 100%),conic-gradient(var(--tone) calc(var(--p) * 1%),rgba(140,220,255,.14) 0)}.tr-grade .ring{flex-direction:column;gap:0}.tr-grade .ring b{font-family:var(--mono);font-size:26px;font-weight:500;line-height:1;color:var(--tone)}.tr-grade .ring small{font-family:var(--mono);font-size:10px;color:var(--text-dim)}.tr-grade .txt>small:first-child{display:block;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}.tr-report tbody td b{color:var(--text);font-weight:500}.tr-grade .txt b{display:block;font-size:22px;font-weight:600;color:var(--tone)}.tr-grade .txt small{font-size:12px;color:var(--text-dim)}.tr-report table{width:100%;border-collapse:collapse;font-size:12.5px}.tr-report th,.tr-report td{padding:8px 6px;border-bottom:1px solid var(--panel-border);text-align:right;font-weight:400}.tr-report thead th{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim)}.tr-report tbody th{text-align:left;color:var(--text);font-weight:600}.tr-report td{font-family:var(--mono)}.tr-report tr.skipped td{text-align:center;font-family:var(--sans);color:var(--text-dim)}.tr-report .partial{margin:12px 0 0;font-size:12px;color:var(--warn)}.tr-report .actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.tr-report .menu-credit{justify-content:flex-start;gap:10px;margin-top:18px;padding-top:14px;border-top:1px solid var(--panel-border)}.tr-report .menu-credit .credit-mark{height:34px}.tr-report .credit-text b{font-size:13px}@keyframes tr-rise{0%{opacity:0;transform:translateY(14px)}}@keyframes tr-pop{0%{opacity:0;transform:translate(-50%) scale(.92)}}@keyframes tr-flash{0%{opacity:0}18%{opacity:1}to{opacity:0}}@keyframes tr-shake{0%,to{transform:translate(0)}15%,45%,75%{transform:translate(-6px);border-color:var(--bad);background:var(--bad-soft)}30%,60%,90%{transform:translate(6px);border-color:var(--bad);background:var(--bad-soft)}}@keyframes tr-hint{50%{box-shadow:0 0 0 2px #ffb3478c,0 0 22px -2px #ffb347b3}}@keyframes tr-glow{50%{box-shadow:0 0 20px -2px #35d6ffcc}}@keyframes tr-dash{to{stroke-dashoffset:-22}}@media(max-width:1180px){.tr-phase small{display:none}.tr-switches{grid-template-columns:repeat(3,minmax(0,1fr))}.tr-devices{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:26px}.tr-ports{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:14px}}@media(max-width:860px),(max-height:520px){.topright .menu-btn{display:none}body[data-mode=timeline] .menu-btn-bar{display:block;height:38px;margin-left:4px}body:not([data-mode=timeline]) .topright{right:var(--pad-right)}.menu{place-items:start center;padding-top:calc(var(--pad-top) + 48px)}.menu-cards{grid-template-columns:1fr;gap:10px}.menu-desc{font-size:12.5px}.menu-credit{gap:10px;margin-top:12px}.menu-credit .credit-mark{height:38px;flex:none}.credit-text{min-width:0}.credit-text b{font-size:13px}.credit-text small{font-size:9px}.credit-text small:last-child{white-space:normal;overflow-wrap:anywhere;line-height:1.5}#train{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr) auto;gap:8px;padding-top:calc(var(--pad-top) + 40px)}.tr-phases{grid-row:1;flex-direction:column;gap:6px}.tr-phase{padding:5px 8px;gap:6px}.tr-phase .n{width:20px;height:20px;font-size:11px}.tr-phase b{font-size:11.5px}.tr-phase .count{font-size:10px}.tr-phase-list li{flex:0 0 auto;max-width:none}.tr-phase-list li:has(.tr-phase[data-state=active]){flex:1 1 0}.tr-phase:not([data-state=active]) .txt{display:none}.tr-phase:not([data-state=active]){grid-template-columns:auto auto}.tr-learn[data-kind=ok],.tr-learn[data-kind=bad]{display:none}.tr-tools{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.tr-tool{min-height:28px;padding:0 4px;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tr-tool-exit{display:block}.tr-mission{grid-column:1;grid-row:2;max-height:34dvh;padding:10px 12px}.tr-mission h3{display:inline-block;margin:2px 8px 2px 0;font-size:16px}.tr-subtitle{margin-bottom:4px;font-size:10.5px}.tr-task{margin-bottom:8px;font-size:12.5px;line-height:1.45}.tr-learn{margin-bottom:8px;padding:7px 9px;font-size:11.5px;line-height:1.4}.tr-actions{margin-bottom:0}.tr-btn{min-height:32px}.tr-score{grid-template-columns:1fr;margin-bottom:6px}.tr-score [data-k=ok],.tr-score [data-k=errors],.tr-score [data-k=hints]{display:none}.tr-score [data-k=score]{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:4px 8px}.tr-score [data-k=score] dd{margin:0}.tr-progress{margin-top:8px}.tr-tray,.tr-board,.tr-console{grid-column:1;grid-row:4;max-height:38dvh;padding:10px}.tr-help{display:none}.tr-work h2{margin-bottom:8px}.tr-tray-list{grid-template-columns:repeat(2,minmax(0,1fr))}.tr-card{padding:6px 8px}.tr-card .label{font-size:12px}.tr-wires{display:none}.tr-ctrl{order:-1}.tr-device .to:not(:empty){display:block}.tr-devices{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:12px;margin-bottom:6px}.tr-ports{grid-template-columns:repeat(2,minmax(0,1fr))}.tr-port small{display:none}.tr-device .label,.tr-port b{font-size:11px}.tr-console{flex-direction:column;gap:10px}.tr-console-col{flex:none}.tr-switches{grid-template-columns:repeat(2,minmax(0,1fr))}.tr-switch{min-height:42px}.lever input{height:12px}.tr-gauges{grid-template-columns:repeat(2,minmax(0,1fr))}.tr-feedback{grid-template-columns:34px minmax(0,1fr);padding:9px 12px}.tr-feedback .ico{width:34px;height:34px;padding:7px}.tr-report th,.tr-report td{padding:6px 3px;font-size:11.5px}}@media(max-height:520px)and (min-width:620px){#train{grid-template-columns:minmax(0,.9fr) minmax(0,1fr) minmax(0,1.1fr);grid-template-rows:auto minmax(0,1fr)}.tr-phases{grid-column:1 / -1;flex-direction:row}.tr-phase-list li,.tr-phase-list li:has(.tr-phase[data-state=active]){flex:1 1 0}.tr-phase:not([data-state=active]) .txt{display:grid}.tr-phase:not([data-state=active]){grid-template-columns:auto minmax(0,1fr) auto}.tr-tools{display:flex}.tr-mission{grid-column:1;grid-row:2;max-height:100%}.tr-tray,.tr-board,.tr-console{grid-column:3;grid-row:2;max-height:100%;align-self:start}}@media(prefers-reduced-motion:reduce){.tr-btn.primary,.tr-card[data-state=hint],.tr-port[data-state=hint],.tr-switch[data-hint=true],.tr-wires .core,.menu-inner,.tr-report-card{animation:none}}@media(pointer:coarse){.tr-card{grid-template-columns:30px minmax(0,1fr) 18px}.tr-card .grip{width:30px;height:100%;display:grid;place-items:center;margin-left:-6px;border-right:1px solid var(--panel-border);color:var(--accent)}.tr-card .grip svg{width:12px;height:20px}.tr-device{padding-bottom:20px}.tr-device .pin:after{content:"";position:absolute;top:-14px;right:-14px;bottom:-14px;left:-14px;border-radius:50%}}.tr-card{grid-template-columns:12px 58px minmax(0,1fr) 18px;grid-template-areas:"grip thumb grp tick" "grip thumb label tick"}.tr-card .thumb{grid-area:thumb;width:58px;height:42px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}.tr-card .thumb[hidden]{display:none}.tr-card[data-state=done] .thumb{opacity:.45;filter:grayscale(.6)}.tr-dragchip{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 8px}.tr-dragchip img{width:54px;height:38px;object-fit:contain}.tr-dragchip img[hidden]{display:none}.tr-card .thumb{border-radius:6px;background:radial-gradient(ellipse at 50% 42%,#68c6eb38,#68c6eb00 68%)}.tr-dragchip img{border-radius:6px;background:radial-gradient(ellipse at 50% 42%,#68c6eb40,#68c6eb00 68%)}.tr-card{grid-template-columns:12px 76px minmax(0,1fr) 18px}.tr-card .thumb,.tr-dragchip img{width:76px;height:54px}@media(max-width:860px),(max-height:520px){.tr-card{grid-template-columns:12px 56px minmax(0,1fr) 16px}.tr-card .thumb{width:56px;height:40px}}@media(pointer:coarse){.tr-card{grid-template-columns:30px 56px minmax(0,1fr) 16px}}@media(max-width:860px),(max-height:520px){.tr-tray-list{grid-template-columns:minmax(0,1fr)}}.tr-card .thumb,.tr-dragchip img{pointer-events:none;-webkit-user-drag:none}.tr-btn:disabled{opacity:.45;cursor:default;animation:none}.tr-report h2{margin:6px 0 4px;font-size:clamp(26px,3.6vw,38px);letter-spacing:.01em;color:#fff}.tr-report .sub{margin:0 0 20px;font-size:14px;line-height:1.5;color:#b7d3dc}.tr-grade .ring{width:116px;height:116px;animation:tr-ring .9s cubic-bezier(.2,1.2,.4,1) both}.tr-grade .ring b{font-size:32px}.tr-btn.primary.ghost{background:#082230bf;border-color:var(--accent);color:var(--accent);animation:none}.tr-btn.primary.ghost:hover{background:var(--accent-soft);color:#fff}.tr-report .actions{gap:10px}@keyframes tr-ring{0%{transform:scale(.72);opacity:0}}@media(prefers-reduced-motion:reduce){.tr-grade .ring{animation:none}}.tr-phase[data-locked=true]{opacity:.5;cursor:not-allowed}.tr-phase[data-locked=true]:hover{border-color:var(--panel-border)}.tr-phase[data-locked=true] .n:after{content:"";display:block;width:7px;height:5px;margin-top:-1px;border:1px solid currentColor;border-top:0;border-radius:0 0 1px 1px;box-shadow:0 -3px 0 -1px currentColor}.tr-phase[data-locked=true] .n{font-size:0}#train[data-auto=true] .tr-card,#train[data-auto=true] .tr-device,#train[data-auto=true] .tr-port,#train[data-auto=true] .tr-switch,#train[data-auto=true] .lever input{pointer-events:none}#train[data-auto=true] .tr-card .grip{opacity:0}
