/* In-world consoles: the same ship palette, tangible parts and illuminated sockets. */
#expeditionDialog,#workbench,#visualLesson,#programmingTerminal{--ink:#edf1cd;--muted:#a3b8aa;--metal:#27474c;--edge:#77908a;color:var(--ink);background:#102a30;border:3px solid #8d9d85;border-radius:10px;box-shadow:0 0 0 5px #203d40,0 0 0 7px #bcae79,0 28px 90px #000b;}
#expeditionDialog{width:min(1180px,96vw)}
#expeditionDialog .workbench-head,#workbench .workbench-head,#visualLesson .workbench-head,#programmingTerminal .workbench-head{background:linear-gradient(#345457,#203d43);border-bottom:3px solid #778276;color:#f5e5ae;padding:17px 25px}
#expeditionDialog h2,#workbench h2,#visualLesson h2,#programmingTerminal h2{color:#f6e9b1}#expeditionDialog .eyebrow,#visualLesson .eyebrow,#programmingTerminal .eyebrow{color:#b2c5ac}
#expeditionDialog button,#workbench button,#visualLesson button,#programmingTerminal button{color:#e6ebcf;background:linear-gradient(#385b60,#28454e);border:1px solid #8c9c8a;border-bottom:4px solid #152f36;border-radius:5px;box-shadow:inset 0 1px #d3d6a52b;transition:filter .15s,transform .15s}
#expeditionDialog button:hover:not(:disabled),#workbench button:hover:not(:disabled),#visualLesson button:hover:not(:disabled),#programmingTerminal button:hover:not(:disabled){filter:brightness(1.2);border-color:#e5c777}
#expeditionDialog button:focus-visible,#visualLesson button:focus-visible,#workbench button:focus-visible,#programmingTerminal button:focus-visible{outline:3px solid #f5d57a;outline-offset:4px}
#expeditionDialog button.primary,#workbench button.primary,#visualLesson button.primary{background:linear-gradient(#a7c881,#668949);color:#142f29;border-color:#cbdc9a;border-bottom-color:#354f30}
#expeditionDialog button:disabled,#visualLesson button:disabled,#programmingTerminal button:disabled{opacity:.45;cursor:not-allowed}
#expeditionBody{padding:0;background:linear-gradient(#0d242ae8,#0d242aef),url('../assets/art/entanglement-bridge.png') center/cover}
#expeditionBody p{color:#bcd1bd}#expeditionBody h3{color:#f5db9a}#expeditionBody details{color:#a4bfb7;padding:12px 0;font-size:13px}#expeditionBody summary{cursor:pointer}
#expeditionBody>.bridge-work{padding:24px 30px}.friendly-goal,#expeditionBody .friendly-goal{color:#f0e1ae;background:#234748e8;border:1px solid #78866d;border-left:5px solid #d3b774;border-radius:4px;box-shadow:0 4px 0 #0a1d24;padding:14px 20px;font-size:16px}
.quantum-table{position:relative;border:3px solid #698581;background:linear-gradient(#102c36eb,#153a41ed),url('../assets/art/entanglement-bridge.png') center/cover;border-radius:9px;box-shadow:inset 0 0 0 5px #203b42,0 8px 0 #081e25;padding:18px;margin:22px 0}.table-caption{display:flex;justify-content:space-between;letter-spacing:2px;color:#e2ca8d;font-size:13px;margin-bottom:22px}
.gate-dock{display:flex;align-items:center;justify-content:space-between;gap:13px;position:relative;min-height:135px}.gate-dock:before,.gate-dock:after{content:'';height:3px;background:#87c9b1;box-shadow:0 0 9px #7bdab4;position:absolute;left:30px;right:35px;top:40%}.gate-dock:after{top:66%;background:#d6b96b;box-shadow:0 0 7px #d6b96b}.rail-label,.rail-detector{position:relative;z-index:1;color:#b4d9c9;font:13px monospace;text-align:center}.rail-detector{font-size:17px}
#expeditionDialog .dock-slot{z-index:1;width:17%;min-height:90px;border:2px dashed #729c97;background:#142e39}.dock-slot b{font:25px monospace;color:#b6d2c8}.dock-slot small{display:block;margin-top:10px;font-size:10px;color:#93aba9}#expeditionDialog .dock-slot.loaded{background:linear-gradient(140deg,#698178,#2c555d);border:3px solid #c3b880;box-shadow:0 0 16px #92d5ac33,inset 0 0 0 4px #244149}.dock-slot.loaded b{color:#fae0a0}
#expeditionDialog .bridge-circuit{font-size:14px;color:#a3c7b8;background:#10252d;border:1px solid #476d70;margin:15px 0 0;padding:12px}.bridge-chart>div{background:#17363b;border:1px solid #617f75;box-shadow:inset 0 0 0 3px #203e42}.bridge-chart strong{color:#ecd29b}.bridge-track{background:#0c2029}.bridge-track i{background:linear-gradient(90deg,#598f7b,#b1d898);box-shadow:0 0 10px #83bba9}.bridge-chart span{color:#9bb8b3}
.record-grid span{background:#19353c;color:#8faea6;border-color:#4b6e6c}.record-grid span.seen{background:#305345;color:#dfedb4;border-color:#b0c087}
#expeditionBody[data-view] {padding:20px}.workshop-bottom{padding:16px 25px;background:#142e32}.workshop-bottom p{margin:6px 0}.workshop-bottom .bridge-actions{margin:12px 0}.workshop-bottom details{border-top:1px solid #42605f}
.assembly-room{position:relative;overflow:hidden;background:#14333a}.machine-field{height:390px;position:relative;background-position:center;background-size:cover;isolation:isolate}.machine-field:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#081d2780,#0b23381f 65%,#061e2d55);z-index:-1}.machine-neutral .machine-field{background-image:url('../assets/art/ops-neutral.png')}.machine-sc .machine-field{background-image:url('../assets/art/ops-sc.png')}.machine-ion .machine-field{background-image:url('../assets/art/ops-ion.png')}.machine-photon .machine-field{background-image:url('../assets/art/ops-photon.png')}
.assembly-caption{position:absolute;left:25px;top:18px;z-index:2;max-width:55%;text-shadow:0 2px 6px #001b23;background:#102a32c9;border-left:3px solid #c1bb83;padding:10px 15px}.assembly-caption>span{font:10px monospace;letter-spacing:2px;color:#a5d5bc}.assembly-caption h3{font-size:23px;margin:8px 0}.assembly-caption p{font-size:13px;margin:0}
.machine-socket-base{position:absolute;width:260px;height:65px;left:50%;top:74%;transform:translate(-50%,-50%);border:4px solid #7c9d98;border-radius:50%;background:#183c45;box-shadow:0 12px 0 #112832,0 18px 18px #0008}
#expeditionDialog .component-socket{position:absolute;left:50%;top:51%;transform:translate(-50%,-50%);width:235px;height:230px;background:#0b2a35b8;border:2px dashed #87f0d7;border-radius:18px;box-shadow:inset 0 0 35px #8df0cf33,0 0 28px #70f0d322;padding:10px;z-index:2}
.component-socket .part-art{width:180px;height:180px;margin:auto;opacity:.24;filter:grayscale(1) brightness(1.8)}.component-socket>span:last-child{display:block;font-size:12px;background:#102b35eb;padding:7px;border:1px solid #71ac9b;color:#ceebc6;white-space:nowrap}
#expeditionDialog .component-socket.mounted{border:2px solid #c9d894;background:#183b4580;box-shadow:0 0 40px #c4ef8c55}.component-socket.mounted .part-art{opacity:1;filter:drop-shadow(0 7px 6px #071b25)}#expeditionDialog .component-socket.drop-ready{border:4px solid #f8e2a0;box-shadow:0 0 45px #c9eab6cc}#expeditionDialog .component-socket.wrong{border-color:#fa9475;animation:socket-shake .25s 2}
.energy-orbit{position:absolute;left:50%;top:55%;width:305px;height:225px;transform:translate(-50%,-50%);border:1px solid #9bf4d464;border-radius:50%;box-shadow:0 0 50px #90deba44;pointer-events:none}.is-running .energy-orbit{animation:energy-breathe 2s ease-in-out infinite}.is-running .machine-field:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 5px,#9fffcc08 6px 7px);pointer-events:none}
.machine-readout{position:absolute;right:22px;bottom:65px;width:185px;background:#0b292ee8;border:2px solid #7b9e8c;border-radius:7px;padding:13px;display:grid;gap:9px;color:#d1e4b4;font-size:13px;box-shadow:4px 4px #10242c}.machine-readout i{width:8px;height:8px;border-radius:50%;background:#ce9d54;box-shadow:0 0 8px #edc45d}.is-mounted .machine-readout i{background:#adf9b3;box-shadow:0 0 12px #b5fbc2}.machine-readout span{font-size:11px;color:#8eb3aa}
.assembly-steps{position:absolute;bottom:15px;left:24px;right:24px;display:flex;gap:9px}.assembly-steps span{background:#112e36d9;border:1px solid #617b72;padding:7px 15px;color:#9aa9a0;font-size:12px}.assembly-steps .ready{border-color:#b2cc92;color:#deebbc;background:#284940ed}
.tool-tray{background:repeating-linear-gradient(90deg,#213c40 0 9px,#233e42 10px 11px);border-top:5px solid #829387;padding:13px 24px 16px;box-shadow:inset 0 5px 8px #071b25}.tray-label{display:flex;align-items:center;justify-content:space-between;color:#ead69e;font-size:13px}.tray-label small{color:#a8c0b2}.tray-items{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-top:12px}#expeditionDialog .part-tile{position:relative;background:linear-gradient(#102c34,#1b3a40);border:2px solid #63817b;border-bottom:5px solid #091e27;padding:4px 7px 10px;touch-action:none;cursor:grab}.part-tile .part-art{width:110px;height:100px;margin:auto}.part-tile strong{font-size:13px;display:block;color:#dfd6ab}.part-tile small{font-size:11px;display:block;margin-top:5px;color:#abd0ab}.part-tile.missing .part-art{filter:grayscale(1);opacity:.35}#expeditionDialog .part-tile.chosen{border-color:#f0d38b;box-shadow:inset 0 0 20px #cbe99c22}.part-tile.dragging{opacity:.4}
.part-art{display:block;background-image:url('../assets/art/quantum-parts-atlas.png');background-size:200% 200%;background-repeat:no-repeat;image-rendering:pixelated;pointer-events:none;aspect-ratio:1}.part-sc{background-position:left top}.part-neutral{background-position:right top}.part-ion{background-position:left bottom}.part-photon{background-position:right bottom}.component-ghost{position:fixed;transform:translate(-50%,-50%);width:170px;height:170px;pointer-events:none;z-index:9999;filter:drop-shadow(0 12px 10px #0009)}.component-ghost .part-art{width:100%;height:100%}
#expeditionDialog[data-mode=salvage] #expeditionBody{padding:28px;background:linear-gradient(#0b2228bc,#0b2228ef),url('../assets/art/storage-v2.png') center/cover}.component-card{display:inline-flex;vertical-align:top;width:calc(50% - 12px);align-items:center;flex-direction:column;background:linear-gradient(#18383dd9,#142e35f0);border:2px solid #8c9775;border-bottom:6px solid #0d222c;margin:5px 6px;padding:20px;border-radius:8px}.component-card .part-art{width:200px;height:200px}.component-card h3{font-size:21px}.component-card p{text-align:center;font-size:13px}.component-journal .part-art{width:90px;height:90px;float:left;margin-right:15px}
#expeditionDialog[data-mode=correction] #expeditionBody{padding:25px;background:linear-gradient(#0c2631d9,#0c2631f2),url('../assets/art/entanglement-bridge.png') center/cover}.logical-visual{background:#173b42;border-color:#71978a;border-radius:12px;box-shadow:inset 0 0 35px #0005}.logical-visual span{border:4px solid #b1ad7c;border-radius:12px;background:#183848;box-shadow:0 0 12px #80c4b233;color:#c7e3c6}.logical-visual.encoded{background:#234f4b;border-color:#97bc8e}.logical-visual.corrected span{background:#77985e;color:#fff3bb}.logical-visual.encoded:after{color:#d8e8b3}.correction-guide{background:#17383f;border:1px solid #5d817d;color:#bfceb4}.check-lamps span{background:#1b3842;border-color:#5b7979;color:#9fb8b0}.check-lamps .on{background:#786630;border-color:#ead281;color:#fff3b5;box-shadow:0 0 25px #e8c96a33}
/* Keep visual lessons, but render them as ship training consoles. */
#visualLesson .visual-lesson-body{background:linear-gradient(#102c35ec,#102c35f5),url('../assets/art/entanglement-bridge.png') center/cover}#visualLesson .visual-lesson-body>p{color:#bfd2bb}#visualLesson h3{color:#eddda8}#visualLesson #visualStage{background:#153b41;border-color:#688f83;box-shadow:inset 0 0 45px #051c2877}#visualLesson .visual-chart{background:#102d35;border-color:#5a7e74;color:#cfe0b6}#visualLesson .visual-chart>div>div{background:#071f29}#visualLesson .visual-chart i{background:#9cbd79}#visualLesson .lesson-footer{background:#25464b;border-color:#789181}#visualLesson #visualCheck{background:#254c4b}#visualLesson .selected{background:#567f66;border-color:#d0d395}#visualLesson .visual-model-label,#visualLesson .teaching-bulbs small,#visualLesson .visual-chain{color:#b2cbb3}#visualLesson #visualHint{color:#d0dfad}#visualLesson .teaching-bulb.masked{background:#20424a;color:#c7d9b1;border-color:#8aa88a}
/* Chapter 01: laboratory controls remain live, housed in the same console shell. */
#workbench{width:min(1240px,97vw)}#workbench .bench-content{background:linear-gradient(#102b34df,#102b34ed),url('../assets/art/quantum-cottage.png') center/cover}#workbench .brief{background:#18383bd9;border-color:#52766e}#workbench h3,#workbench h4,#workbench .circuit-heading{color:#ecdba6}#workbench p,#workbench .chart-label,#workbench .prob-label{color:#bbd0b6}#workbench .target-card,#workbench .hint-box,#workbench .results,#workbench .state-panel,#workbench .probability-panel{background:#17383f;border-color:#57776b;color:#d9e4bf}#workbench .circuit{background:#0d2933;border:2px solid #678980;box-shadow:inset 0 0 25px #071b23}#workbench .slot{background:#193c44;border-color:#88a595;color:#dce4ad}#workbench .slot.filled{background:#507b6a;color:#ffedb6}#workbench .gate-tile{background:#687a52;color:#fff0b3}#workbench .results .result-message{background:#26494a;color:#d4e4bd}#workbench .result-heading,#workbench .probability-panel,#workbench .amplitude{border-color:#4d756d}#workbench .track{background:#08212b}#workbench .ket{color:#bbd9c2}
#programmingTerminal{width:min(800px,95vw)}.program-body{padding:24px}.program-body p{color:#a9c4b3}.program-body label{display:block;color:#d2dfb6;margin:12px 0}.program-body textarea{width:100%;resize:vertical;min-height:170px;background:#071e28;color:#bdeac4;border:2px solid #557e73;border-radius:6px;padding:16px;font:17px/1.7 monospace}.program-body select{background:#1b4147;color:#e0e6bb;padding:8px;border:1px solid #7d9988}.program-body pre{white-space:pre-wrap;background:#071e28;color:#c6eeb3;min-height:80px;padding:16px;border:1px solid #597c6c;font-size:15px}.program-body a{color:#d4c48b}.terminal-footnote{font-size:12px}
@keyframes energy-breathe{50%{box-shadow:0 0 80px #b7fbae88;filter:brightness(1.4)}}@keyframes socket-shake{50%{margin-left:6px}}
.reduced .energy-orbit,.reduced .component-socket{animation:none!important}@media(prefers-reduced-motion:reduce){.energy-orbit,.component-socket{animation:none!important}}
@media(max-width:700px){#expeditionBody>.bridge-work{padding:15px}.assembly-caption{max-width:80%;left:12px;top:12px;padding:8px}.assembly-caption h3{font-size:18px}.assembly-caption p{font-size:11px}.machine-field{height:410px}.machine-readout{right:10px;bottom:52px;width:140px;padding:8px;font-size:11px}.assembly-steps{gap:5px;left:10px;right:10px}.assembly-steps span{padding:6px 8px}.tray-items{gap:8px;grid-template-columns:repeat(2,1fr)}.tray-label{align-items:start;gap:8px}.tray-label small{font-size:10px}.tool-tray{padding:12px}.component-card{width:100%;margin:8px 0}.gate-dock{gap:5px}.gate-dock .dock-slot{min-height:70px}.dock-slot b{font-size:18px}.dock-slot small{font-size:8px}.rail-detector{font-size:10px}.table-caption{font-size:11px}.workshop-bottom{padding:15px}#expeditionDialog .component-socket{top:49%;width:205px;height:205px}.component-socket .part-art{width:155px;height:155px}}
.gate-ghost{position:fixed;z-index:9999;pointer-events:none;transform:translate(-50%,-50%);padding:20px;background:#456d61;border:4px solid #f0d99b;box-shadow:0 8px 20px #0008;color:#fff1b5;font:25px monospace}#addH,#addCX{touch-action:none;cursor:grab}
#expeditionDialog>.workbench-head,#visualLesson>.workbench-head,#programmingTerminal>.workbench-head{position:sticky;top:0;z-index:20}#expeditionDialog .part-tile .part-art{height:110px}
#workbench .target-card strong,#workbench .state-vector{color:#e5edb6}#workbench .target-card span,#workbench .amplitude,#workbench .amplitude span,#workbench .eyebrow,#workbench .engine-label,#workbench .chart-legend,#workbench #resultStatus,#workbench #circuitHelp,#workbench .gate-palette>span,#workbench .slot small{color:#aac6b5}#workbench .ket,#workbench .measure-symbol{background:#24484d;color:#d7e4b1;border:1px solid #8d9c7e}#workbench .prob-label span{color:#c0d0b9}#workbench select{background:#24484d;color:#e6edc3;border-color:#8b9e7d}#workbench .toolbar{flex-wrap:wrap}
.check-lamps.signal-lamps{display:flex;flex-direction:row;justify-content:center;gap:45px;margin:22px 0 12px}.signal-unit{display:grid;justify-items:center;gap:10px;min-width:106px;padding:12px 18px;background:linear-gradient(#36535a,#17343e);border:2px solid #849b88;border-bottom:6px solid #0b222a;border-radius:12px;box-shadow:inset 0 0 0 3px #1a373e,0 6px 12px #03192066}.signal-unit>b{font:700 18px monospace;color:#e6e2b2}.signal-unit>small{color:#b4cbbd;font-size:12px}.signal-bulb{display:grid;place-items:center;width:66px;height:66px;border-radius:50%;border:5px solid #102932;outline:2px solid #789088;font:700 32px monospace;font-style:normal;box-shadow:inset 0 3px 6px #ffffff44;transition:background .25s,box-shadow .25s}.signal-bulb.red{background:radial-gradient(circle at 35% 28%,#ffcfb6,#f2695c 43%,#ac303c);color:#571923;box-shadow:0 0 23px #ff655f88,inset 0 3px 6px #ffffff66}.signal-bulb.green{background:radial-gradient(circle at 35% 28%,#d5ffc1,#7ed996 43%,#27815f);color:#123e2e;box-shadow:0 0 23px #84e9a477,inset 0 3px 6px #ffffff66}.signal-bulb.idle{background:radial-gradient(circle at 35% 28%,#698184,#304c54);color:#b1c3be}#visualLesson .signal-legend,#expeditionBody .signal-legend{display:flex;align-items:center;justify-content:center;gap:8px;color:#c4d4bd;font-size:12px;margin:14px 0}.signal-legend i{width:9px;height:9px;border-radius:50%;display:inline-block;margin-left:12px}.legend-red{background:#f77d71}.legend-green{background:#8bdfa4}@media(max-width:500px){.check-lamps.signal-lamps{gap:25px}.signal-unit{min-width:90px;padding:10px}.signal-bulb{width:58px;height:58px}}
