/* ARCA / FIELD INTERFACE · UI-FIRST REWORK
   Functional rearrangement of the existing client. Two visual modes; no new backend dependency. */
:root{--ui-bg:#080f15;--ui-surface:#101e27;--ui-panel:#14232d;--ui-border:#334b57;--ui-text:#e3e5d8;--ui-sub:#a0b5b9;--ui-highlight:#b8d5bf;--ui-fade:#69848f;--ui-device:#303e48;--ui-screen:#152d30;--ui-line:#577774;--ui-accent:#bcd0ad;color-scheme:dark}
:root[data-theme="light"]{color-scheme:light;--ui-bg:#e8e9e3;--ui-surface:#f9f8f0;--ui-panel:#f4f4ec;--ui-border:#9ba9a5;--ui-text:#192e36;--ui-sub:#46616b;--ui-highlight:#315c58;--ui-fade:#5b6e73;--ui-device:#ced4cf;--ui-screen:#eff3e8;--ui-line:#96a9a0;--ui-accent:#446855;--bg:#e8e9e3;--surface:#f9f8f0;--raised:#f4f4ec;--border:#a8b4ab;--text:#192e36;--sub:#48606d;--dim:#63777e;--mint:#336d68;--green:#326f66}
body{background:var(--ui-bg);color:var(--ui-text);background-image:linear-gradient(to right,transparent calc(100% - 1px),#8caa9811 100%),linear-gradient(180deg,#88cbaa06,transparent 40%)}
body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.08;background:repeating-linear-gradient(0deg,transparent 0,transparent 3px,#8ad7be 4px)}
.game-shell{min-height:100vh}
.topbar{height:65px;padding:0 25px;background:var(--ui-surface);border-bottom:1px solid var(--ui-border);box-shadow:0 2px 24px #0004}
.topbar .brand{letter-spacing:.28em}.topbar .brand-dot{color:var(--ui-accent)}.topbar-right{gap:14px}.top-sub,.server-time,.connection{color:var(--ui-sub)}
.theme-switch{background:transparent;border:1px solid var(--ui-border);padding:7px 10px;color:var(--ui-text);font:10px var(--mono);letter-spacing:.04em;border-radius:4px;white-space:nowrap}
.theme-switch:hover{background:var(--ui-panel)}
.workspace{max-width:1920px;grid-template-columns:minmax(225px,260px) minmax(440px,1fr) minmax(320px,380px);gap:0;align-items:start;min-height:calc(100vh - 65px)}
.left-sidebar{position:sticky;top:65px;max-height:calc(100vh - 65px);overflow-y:auto;background:var(--ui-bg);border-right:1px solid var(--ui-border);padding:22px 14px 20px;gap:14px;scrollbar-width:thin}
.main-column{padding:22px 24px 48px;min-width:0;}
.right-sidebar{position:sticky;top:65px;align-self:start;height:calc(100vh - 65px);background:var(--ui-bg);border-left:1px solid var(--ui-border);padding:14px 14px 22px;display:block;overflow:hidden}
.sector-cap,.module-head{display:flex;justify-content:space-between;align-items:center;gap:8px;font:10px var(--mono);letter-spacing:.11em;color:var(--ui-fade)}
.sector-cap{padding:5px 3px 11px;border-bottom:1px solid var(--ui-border)}.sector-cap span{color:var(--ui-accent)}
.left-profile-holder .profile-panel{display:block!important;background:var(--ui-surface);border:1px solid var(--ui-border);box-shadow:inset 0 1px #ffffff10;padding:14px 12px;border-radius:4px}
.left-profile-holder .profile-heading{margin:0 0 8px}.left-profile-holder .profile-heading .small-exit{padding:5px 6px;background:transparent;color:var(--ui-sub);font-size:10px;border:1px solid var(--ui-border)}
.left-profile-holder .profile-row{margin-bottom:12px}.left-profile-holder .profile-avatar{background:radial-gradient(circle at 40% 30%,#93b7b0,#314956);border:1px solid var(--ui-line);border-radius:3px;color:#e7eee4}
.left-profile-holder #profile-name{color:var(--ui-text);font-size:15px}.left-profile-holder #profile-details,.left-profile-holder #clone-note,.left-profile-holder #v9-conditions{color:var(--ui-sub);font-size:10px}
.left-profile-holder .meter-label{color:var(--ui-sub)}.left-profile-holder .meter-fill.hp{background:#bb7774}.left-profile-holder .meter-fill.oxygen{background:#75abb2}.left-profile-holder .meter-fill.xp{background:#a2b683}
.left-profile-holder .meter-track{background:var(--ui-border)}
.left-bag-space{margin:0 0 11px;background:var(--ui-panel);border:1px dashed var(--ui-border);border-radius:2px;color:var(--ui-highlight);font:11px var(--mono);padding:6px 9px}
.left-profile-holder #v9-conditions{display:none}.left-body-conditions{border-top:1px solid var(--ui-border);padding-top:10px;margin-top:8px}.left-body-conditions p{font-size:10px;color:var(--ui-sub);margin:9px 0 0}.tiny-meter{display:grid;grid-template-columns:28px 1fr 28px;gap:7px;align-items:center;font:10px var(--mono);margin-bottom:6px}.tiny-meter i{height:5px;background:var(--ui-border);overflow:hidden}.tiny-meter b{height:100%;background:#bb8f70;display:block}.tiny-meter:nth-child(2) b{background:#8cb0a6}.tiny-meter strong{font-size:10px;text-align:right}
.left-module{border:1px solid var(--ui-border);padding:13px 11px 14px;background:var(--ui-surface);border-radius:3px}
.left-module .module-head{margin-bottom:12px;align-items:flex-start;flex-direction:column;gap:2px}.left-module .module-head strong{font-size:13px;color:var(--ui-text);font-family:var(--font);letter-spacing:0}
.left-module .radar-canvas{min-height:0;background:radial-gradient(circle,#1d3f47 5%,#0b1b29 84%);border:1px solid #345962}.radar-canvas svg{max-height:220px}.left-module .mini-footnote{display:block;font-size:9px;line-height:1.55;color:var(--ui-sub);margin-top:8px}
.friend-point rect{fill:#e6b57d;stroke:#281e1e;stroke-width:1.6;filter:drop-shadow(0 0 5px #e9c694)}
.ai-report{border-left:2px solid var(--ui-accent);padding:0 0 0 10px;color:var(--ui-text);font-size:11px}.ai-report b{color:var(--ui-highlight)}.ai-report p{line-height:1.6;margin:5px 0}.ai-report small{display:block;color:var(--ui-sub);margin-top:4px}
.side-link{margin-top:11px;width:100%;display:flex;justify-content:space-between;align-items:center;padding:9px;color:var(--ui-text);background:var(--ui-panel);border:1px solid var(--ui-border);font-size:11px}
.person-row{display:flex;align-items:center;gap:9px;padding:9px 1px;border-bottom:1px solid var(--ui-border)}.person-row strong{font-size:11px}.person-row small{display:block;font-size:9px;color:var(--ui-sub)}.person-pip{width:6px;height:6px;border-radius:50%;background:#9bcdb8;box-shadow:0 0 0 3px #97cbb223}
.rescue-priority{background:#4c2526;border:1px solid #ce827a;padding:9px;margin:6px 0;color:#ffe9da;display:grid;gap:2px;font-size:11px}.rescue-priority strong{font-size:11px}.rescue-priority span,.rescue-priority small{font-size:9px}
.breadcrumbs{color:var(--ui-fade);font-family:var(--mono);margin-bottom:13px}.breadcrumbs strong{color:var(--ui-highlight)}
.main-column .world-banner{margin:0 0 15px;height:180px!important;border:1px solid var(--ui-border);border-radius:2px;filter:saturate(.63)}.main-column .world-banner .banner-content{top:24px}.main-column .world-banner h1{font-size:35px}.main-column .world-banner .banner-eyebrow{letter-spacing:.21em}
.main-column .location-section{background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:3px;padding:22px 23px;margin:0 0 12px}
.main-column .location-section h2{font-size:22px}.place-description{line-height:1.85}.environment-strip{border-color:var(--ui-border);color:var(--ui-sub)}
.main-column .investigation-block{margin:0}.field-status-strip{border-color:var(--ui-border)}
.main-column>.console-section,.main-column>.main-footer{display:none!important}
.scene-deck{border:1px solid var(--ui-border);background:var(--ui-surface);min-height:78px;border-radius:3px;margin-top:10px}
.scene-heading{padding:11px 16px;border-bottom:1px solid var(--ui-border);display:flex;align-items:center;gap:12px}.scene-heading>span{font:9px var(--mono);letter-spacing:.12em;color:var(--ui-fade)}.scene-heading strong{margin-left:auto;color:var(--ui-highlight)}.scene-heading button{background:transparent;border:1px solid var(--ui-border);color:var(--ui-sub);font-size:10px;padding:6px 8px}
.scene-deck #scene-root{padding:12px 12px 4px}.scene-deck .panel{background:var(--ui-panel);border-color:var(--ui-border)}.scene-deck details:not([open]){display:none}.scene-deck .v9-action-box{margin:0 0 10px}.scene-deck .system-view>.panel{margin:0 0 10px}
.context-actions{background:transparent;border:0;margin:17px 0 0;padding:0}.scene-choice-heading{display:grid;gap:4px;margin-bottom:13px}.scene-choice-heading span{font:9px var(--mono);letter-spacing:.18em;color:var(--ui-fade)}.scene-choice-heading strong{font-size:14px;color:var(--ui-text)}
.scene-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.scene-choice{min-width:0;display:flex;align-items:center;gap:10px;text-align:left;background:var(--ui-panel);color:var(--ui-text);border:1px solid var(--ui-border);border-left:2px solid var(--ui-accent);padding:12px 10px;min-height:48px;font-size:12px;transition:background .12s,border-color .12s}.scene-choice:hover,.scene-choice:focus-visible,.scene-choice.selected{background:#254248;border-color:#8eaeae;color:#e4f3e9}.scene-choice.subchoice{border-left-color:#748896;background:#192a35}.scene-choice .choice-index{color:var(--ui-accent);font:13px var(--mono)}.scene-choice .choice-arrow{margin-left:auto;color:var(--ui-fade)}
.scene-flow{border-top:1px solid var(--ui-border);padding-top:13px;margin-top:13px;display:grid;gap:9px}.scene-flow>strong{font:10px var(--mono);color:var(--ui-fade);letter-spacing:.05em}.scene-flow .job-container{margin:0}.scene-flow .exit-list{margin:0;display:flex;gap:8px;flex-wrap:wrap}.scene-flow .exit-button{min-height:36px;padding:8px 10px;border-color:var(--ui-border)}
/* PDA casing evokes a practical retro device rather than a phone. */
.field-terminal{position:relative;top:0;height:calc(100vh - 95px);max-height:none;min-height:570px;width:100%;border-radius:24px 24px 30px 30px;padding:14px 13px 18px;background:linear-gradient(125deg,#4d5a60,#27333b 53%,#18252d);border:2px solid #718587;box-shadow:inset 0 0 0 2px #1a2a32,inset 0 0 0 6px #44555c,0 18px 45px #0008}
.field-terminal:before,.field-terminal:after{content:"";position:absolute;width:7px;height:7px;border:1px solid #1c2c32;border-radius:50%;background:#84918a;top:16px;left:16px}.field-terminal:after{left:auto;right:16px}
.terminal-bezel{background:#182b33;padding:11px 8px 10px;border:1px solid #708284;border-radius:13px 13px 19px 19px;box-shadow:inset 0 0 12px #061116;overflow:hidden}
.terminal-status{padding:2px 8px 11px;font-size:9px;color:#b9d6ce}.terminal-led{display:inline-block;width:6px;height:6px;border-radius:50%;background:#98cdb1;box-shadow:0 0 7px #a6d9b5;margin-right:4px}
.terminal-display{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;background:repeating-linear-gradient(0deg,#071e1e0a 0px,#071e1e0a 2px,transparent 3px),linear-gradient(158deg,#1d4544,#173433 60%,#123130);border:2px solid #778d7e;border-radius:3px;padding:15px 12px 25px;box-shadow:inset 0 0 18px #071a18,0 0 12px #bdd1ad1a;scrollbar-width:thin;scrollbar-color:#6b9284 transparent}
.terminal-screen{min-width:0;color:#d7e8d8}.terminal-screen-title{font:9px var(--mono);letter-spacing:.14em;color:#8ab9ac}.terminal-screen h3{border-bottom:1px solid #709c92;padding-bottom:9px;color:#e8f0dc;font-size:16px}.terminal-screen h4{font:11px var(--mono);color:#b7d4bf;letter-spacing:.05em;text-transform:uppercase;margin:20px 0 8px}
.terminal-brand{background:#16342f;border:1px solid #5b8071;border-radius:2px;padding:13px}.terminal-brand strong{font-size:24px}.terminal-brand span{font:9px var(--mono);letter-spacing:.16em}.terminal-brand small{font:9px var(--mono);color:#a4b8a9}
.terminal-home-clock{border:1px solid #547c75;background:#183d37;margin:12px 0;padding:15px 7px;box-shadow:inset 0 0 14px #061e1e;text-align:center;border-radius:2px}
.terminal-home-clock .terminal-clock-dial{width:142px;margin:auto;background:conic-gradient(#c3dec3 var(--dial),#315348 var(--dial));box-shadow:0 0 0 2px #396a62}.terminal-clock-dial>div{background:#0e2e30}.terminal-clock-dial strong{font-size:22px}.terminal-home-clock .clock-job-label{margin:6px 0 1px;font-size:12px}.terminal-home-clock small{color:#aac3b8}
.terminal-quick-stats{padding:8px 0;border-top:1px solid #62887c;border-bottom:1px solid #62887c;font:10px var(--mono);margin:12px 0}.terminal-quick-stats b{font-size:9px}
.terminal-apps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 3px}.terminal-apps button{position:relative;min-height:90px;gap:7px;font-size:11px;color:#e8f0e1;border-radius:2px;padding:4px}.terminal-apps button span{border-radius:7px;width:52px;height:52px;background:linear-gradient(155deg,#2b6058,#204b4a)!important;color:#e6edda;box-shadow:inset 0 1px #a6ded755}.terminal-apps button:nth-child(2n) span{background:linear-gradient(145deg,#4e6063,#334b50)!important;border-color:#849d9a}
.terminal-apps button:hover span,.terminal-apps button:focus-visible span{box-shadow:0 0 0 2px #c6e0c0}
.terminal-dock{margin-top:10px;padding:7px 8px;border:1px solid #5c7476;background:#172931;border-radius:5px}.terminal-dock button{color:#a8c5be;font-size:22px;line-height:1.2;min-width:40px}.terminal-dock button.active{background:#35594e;color:#eef5e5;border-radius:3px}
.terminal-subtabs{display:flex;gap:4px;overflow-x:auto;padding:0 0 8px;margin:9px 0;scrollbar-width:thin}.terminal-subtabs button{position:relative;flex:0 0 auto;border:1px solid #5c8375;background:#1e443c;color:#b8d8c6;padding:7px 9px;border-radius:2px;font-size:10px}.terminal-subtabs button.active{background:#b8cdb9;border-color:#daeedb;color:#132f32;font-weight:700}.terminal-subtabs button:disabled{display:none!important}
.colony-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.colony-tabs button{white-space:normal;min-width:0;min-height:34px}
.network-notice{font-size:10px;color:#bed3bc;border-left:2px solid #8cbbad;padding:7px 9px;margin:5px 0;background:#1b4037}
.terminal-screen .system-view>.panel,.terminal-screen .side-view>.panel,.terminal-screen .panel,.terminal-screen .console-section{padding:11px!important;margin:8px 0 12px;background:#1a3837!important;border:1px solid #55786e!important;border-radius:3px!important;color:#dbecdf}
.terminal-screen .panel .micro-label{color:#a5c2b6}.terminal-screen .panel h2,.terminal-screen .panel h3{font-size:13px;color:#e1eadb}
.terminal-screen .module-caption,.terminal-screen .panel p,.terminal-screen .muted{color:#b4c5bb;font-size:10px}
.terminal-screen button:not(.terminal-apps button):not(.terminal-dock button){max-width:100%}
.terminal-screen input,.terminal-screen select,.terminal-screen textarea{width:100%;min-width:0;background:#12312e!important;color:#e6efe0!important;border:1px solid #658e7d!important;border-radius:2px!important;font-size:11px!important}
.terminal-screen button[data-command],.terminal-screen .terminal-main-action,.terminal-screen .game-mini-form button,.terminal-screen .small-form button{background:#315d51;color:#e9f4e9;border:1px solid #729b85;border-radius:3px}
.terminal-screen .terminal-health-stat{font-size:10px}.terminal-screen .terminal-health-stat b{color:#e4e8c7}
.terminal-vitals{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:11px 0}.terminal-vitals .terminal-vital{grid-template-columns:31px 1fr 23px}.terminal-skill-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;align-items:start}.terminal-skill-layout #skills-radar{padding:0;min-width:0;margin:0}.terminal-skill-layout #skills-radar svg{width:100%;height:auto}.terminal-skill-layout #aptitude-list{display:grid;grid-template-columns:1fr;gap:4px}.terminal-skill-layout .skill-row{padding:6px}.terminal-skill-layout .skill-row strong{font-size:9px}.terminal-skill-layout .skill-row span{font-size:8px}.terminal-skill-layout .skill-track{margin-top:5px}
.terminal-body-layout{display:grid;grid-template-columns:minmax(0,105px) minmax(0,1fr);gap:8px;align-items:start}.terminal-body-layout #terminal-body-shape{border:1px solid #5c8376;background:#173735;padding:3px}.terminal-body-layout svg{width:100%;max-height:200px}.terminal-body-layout #terminal-body-shape small{font-size:8px;color:#a6cbb9}.terminal-body-layout #terminal-health h4{margin:9px 0 4px}
.terminal-screen #terminal-health .terminal-health-stat{font-size:9px;flex-wrap:wrap;gap:2px}.terminal-screen #terminal-health .terminal-health-stat b{font-size:9px}
.terminal-screen #terminal-journal-controls .console-section{display:block!important;padding:0!important;background:transparent!important;border:0!important}
.terminal-screen #terminal-journal-controls .console-section .section-header{display:none}
.terminal-screen #terminal-journal-controls #log-list{max-height:350px;min-height:160px;overflow-y:auto;border:1px solid #587e73;background:#14332e;margin:12px 0;padding:10px}
.terminal-screen #terminal-journal-controls .log-line{grid-template-columns:38px 1fr;gap:6px}.terminal-screen #terminal-journal-controls .log-time{font:9px var(--mono)}.terminal-screen #terminal-journal-controls .log-body{font-size:10px}
.terminal-screen #terminal-journal-controls .command-form{display:flex;gap:3px;background:#102f2d}.terminal-screen #terminal-journal-controls #command-input{width:100%;font-size:10px!important}.terminal-screen #terminal-journal-controls .console-footer{font-size:9px}
.journal-extra{margin:11px 0;border:1px solid #597a71;padding:7px 10px;font-size:10px}.journal-extra summary{cursor:pointer;color:#c3dcc4}
/* Distinct colored item blocks; no item uses empty-slot background. */
#terminal-bag .bag-grid{width:100%;max-width:100%;padding:5px;gap:2px;background:#092422;touch-action:none}
#terminal-bag .bag-cell{min-width:0;min-height:0;background:#11332d;border:1px dashed #4b6d64;border-radius:2px;overflow:hidden;padding:0}
#terminal-bag .bag-cell.color-item{background:hsl(var(--item-hue) 31% 32%)!important;border:1px solid hsl(var(--item-hue) 48% 58%)!important;box-shadow:inset 0 0 3px #0005;color:#f3f2df!important}
#terminal-bag .bag-cell.selected{outline:2px solid #edf4d2;outline-offset:-2px}.bag-item-name{font-size:clamp(7px,.6vw,10px)!important;line-height:1.25!important;white-space:normal!important;overflow-wrap:anywhere;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;padding:2px}.bag-item-name .item-pictogram{font:15px var(--mono);text-shadow:0 0 3px #000}
#terminal-bag .arca-v11-buttons{display:flex;flex-direction:column;align-items:stretch;gap:6px}.ground-pictogram{display:inline-grid;place-items:center;background:hsl(var(--item-hue) 35% 36%);border:1px solid hsl(var(--item-hue) 55% 57%);width:22px;height:22px;color:#fff;font-size:13px}
#terminal-bag .v07-card,#terminal-bag .social-row{background:#214540;border-color:#598375}
#terminal-bag .arca-v11-panel{padding:8px!important}#terminal-bag .bag-help-note{color:#c5dbc5}
/* Messenger: threaded contacts and message bubbles */
.terminal-contact,.thread-row{display:flex;gap:9px;align-items:center;text-align:left;width:100%;padding:10px 7px;margin:4px 0;border:1px solid #426e65;background:#1d4641;color:#e0eee1;border-radius:3px}
.contact-avatar{flex:0 0 auto;border:1px solid #89afa0;background:#345c54;display:grid;place-items:center;width:35px;height:35px;border-radius:50%;font-size:14px;font-weight:700;color:#d8e6da}
.terminal-contact strong,.thread-row strong{font-size:11px}.terminal-contact small,.thread-row small{font-size:9px;color:#a8c8b8;display:block;line-height:1.45;overflow:hidden;text-overflow:ellipsis;max-height:28px}
.thread-row>span:nth-child(2){flex:1;min-width:0}.thread-row.selected{border-color:#d4e9c7;background:#35594f}.messenger-title{font-size:10px;border-bottom:1px solid #5a8379;color:#c1d8c7;padding:9px 0}
.message-bubble{display:flex;flex-direction:column;max-width:88%;width:fit-content;margin:7px 0;padding:8px 10px;border-radius:12px 12px 12px 3px;background:#315950;border:1px solid #598b7a;overflow-wrap:anywhere;font-size:11px;color:#f0f5e8}
.message-bubble.mine{margin-left:auto;border-radius:12px 12px 3px 12px;background:#c0d4b5;border-color:#dbe9bf;color:#193833}.message-bubble time{margin-top:4px;font:8px var(--mono);opacity:.7;align-self:flex-end}
.unread-indicator{display:inline-block;background:var(--tone-positive4882);box-shadow:0 0 0 2px #184534;width:7px;height:7px;border-radius:50%;flex:none;position:absolute;right:5px;top:6px}.thread-row .unread-indicator,.terminal-contact .unread-indicator{position:static;margin-left:auto;box-shadow:none}.unsupported-hint{color:#d4cead;background:#46513c;border-left:3px solid #e3c98e;padding:10px;font-size:10px;line-height:1.6;margin:11px 0}
/* location-restricted cards: removed rather than disabled in main scene */
.scene-choices .scene-choice:disabled{display:none!important}
/* light scheme changes both workspace and the PDA readout to an e-ink-like palette */
:root[data-theme="light"] body{background:#e7e9e4;color:var(--ui-text)}
:root[data-theme="light"] .workspace .panel,:root[data-theme="light"] .location-section,:root[data-theme="light"] .left-module,:root[data-theme="light"] .scene-deck{background:var(--ui-surface)!important;border-color:var(--ui-border)!important;color:var(--ui-text)!important}
:root[data-theme="light"] .left-sidebar,:root[data-theme="light"] .right-sidebar,:root[data-theme="light"] .topbar{background:#e5e9e5!important}
:root[data-theme="light"] .scene-choice{background:#f3f5ee!important;border-color:#a5b6a9;color:#243d42!important}:root[data-theme="light"] .scene-choice.subchoice{background:#e7ede8!important}
:root[data-theme="light"] .scene-choice:hover{background:#d6e6dd!important}
:root[data-theme="light"] .left-profile-holder .profile-panel{background:#f7f8f1!important}:root[data-theme="light"] .left-body-conditions p,:root[data-theme="light"] .ai-report,:root[data-theme="light"] .person-row small{color:#405c63}
:root[data-theme="light"] .field-terminal{background:linear-gradient(125deg,#cdd7d3,#aebdb9 60%,#899e9d);border-color:#94a4a2;box-shadow:inset 0 0 0 5px #d4dcd4,0 14px 30px #53696350}
:root[data-theme="light"] .terminal-bezel{background:#a6b7b2;border-color:#8d9c97}:root[data-theme="light"] .terminal-status,:root[data-theme="light"] .terminal-dock button{color:#254d48}
:root[data-theme="light"] .terminal-display{background:repeating-linear-gradient(0deg,#d8ebdd4e 0px,#d8ebdd4e 2px,transparent 3px),linear-gradient(150deg,#f0f3e8,#e1ede0)!important;box-shadow:inset 0 0 19px #a3c3b1;border-color:#b7c7b9;color:#1d3f3b}
:root[data-theme="light"] .terminal-screen,:root[data-theme="light"] .terminal-screen h3,:root[data-theme="light"] .terminal-screen h4,:root[data-theme="light"] .terminal-screen-title{color:#26453d}
:root[data-theme="light"] .terminal-brand,:root[data-theme="light"] .terminal-home-clock,:root[data-theme="light"] .terminal-dock{background:#d4e3d6;border-color:#9ab9a5;color:#27473b;box-shadow:none}
:root[data-theme="light"] .terminal-brand strong,:root[data-theme="light"] .terminal-brand span,:root[data-theme="light"] .terminal-brand small{color:#2d5b52}
:root[data-theme="light"] .terminal-apps button{color:#1d413d}:root[data-theme="light"] .terminal-apps button span{color:#d9e9d6}
:root[data-theme="light"] .terminal-screen .system-view>.panel,:root[data-theme="light"] .terminal-screen .side-view>.panel,:root[data-theme="light"] .terminal-screen .panel{background:#eff3e9!important;color:#2c4944!important;border-color:#9eafa5!important}
:root[data-theme="light"] .terminal-screen .panel h2,:root[data-theme="light"] .terminal-screen .panel h3,:root[data-theme="light"] .terminal-screen .panel p,:root[data-theme="light"] .terminal-screen .module-caption{color:#31514a!important}
:root[data-theme="light"] .terminal-screen input,:root[data-theme="light"] .terminal-screen select,:root[data-theme="light"] .terminal-screen textarea{background:#fdfcf6!important;color:#243f3a!important;border-color:#93b1a2!important}
:root[data-theme="light"] .terminal-screen .v07-card,:root[data-theme="light"] .terminal-screen .social-row,:root[data-theme="light"] .terminal-screen .skill-row,:root[data-theme="light"] .terminal-screen .codex-entry,:root[data-theme="light"] .terminal-screen .v17-info{background:#dce8dc!important;border-color:#9eafa5!important;color:#31524b!important}
:root[data-theme="light"] .terminal-screen .codex-entry strong,:root[data-theme="light"] .terminal-screen .skill-row strong{color:#2b5145!important}
:root[data-theme="light"] .terminal-screen .terminal-health-stat,:root[data-theme="light"] .terminal-screen .terminal-health-stat b{color:#234b46}
:root[data-theme="light"] .terminal-home-clock .terminal-clock-dial>div{background:#deebe0}:root[data-theme="light"] .terminal-home-clock .terminal-clock-dial strong,:root[data-theme="light"] .terminal-home-clock .clock-job-label,:root[data-theme="light"] .terminal-home-clock small{color:#234d48}
:root[data-theme="light"] .terminal-vital b,:root[data-theme="light"] .terminal-vital span{color:#23483f}
:root[data-theme="light"] .terminal-subtabs button{color:#2f5f54;background:#d1e3d5;border-color:#91ada0}:root[data-theme="light"] .terminal-subtabs button.active{color:#f9ffef;background:#34635b}
:root[data-theme="light"] .terminal-contact,:root[data-theme="light"] .thread-row{background:#e1ede1;border-color:#a8bbac;color:#294f46}
:root[data-theme="light"] .terminal-contact small,:root[data-theme="light"] .thread-row small{color:#486b60}
:root[data-theme="light"] .message-bubble.theirs{background:#f7fbf1;color:#33504a;border-color:#bbcfbd}
:root[data-theme="light"] .message-bubble.mine{background:#b5d4ba;color:#1c3d32}
@media(max-width:1240px){.workspace{grid-template-columns:minmax(198px,225px) minmax(350px,1fr) minmax(292px,330px)}.main-column{padding:16px}.left-sidebar{padding:13px 9px}.right-sidebar{padding:10px}.scene-choices{grid-template-columns:1fr 1fr}}
@media(max-width:990px){.workspace{grid-template-columns:minmax(0,1fr) minmax(295px,360px)}.left-sidebar{display:flex!important;position:static;max-height:none;grid-column:1/-1;grid-row:1;flex-direction:row;align-items:start;overflow-x:auto;border-bottom:1px solid var(--ui-border);gap:8px}.left-sidebar>.sector-cap{display:none}.left-sidebar>.left-profile-holder,.left-sidebar>.left-module{flex:1 0 210px}.right-sidebar{grid-column:2;grid-row:2}.main-column{grid-column:1;grid-row:2}.field-terminal{height:calc(100vh - 85px)}}
@media(max-width:740px){.workspace{display:flex;flex-direction:column}.left-sidebar{width:100%;padding:10px;max-height:none;display:grid!important;grid-template-columns:1fr 1fr;overflow:visible}.left-sidebar>.left-profile-holder{grid-column:1/-1}.left-sidebar>.left-module{min-width:0}.left-sidebar>.left-module:last-of-type{grid-column:1/-1}.right-sidebar{order:2;width:100%;position:static;height:auto;padding:10px 15px;overflow:visible;border:0}.main-column{order:1;width:100%;padding:14px 11px}.field-terminal{position:static;height:min(730px,85vh);min-height:540px;max-height:none;max-width:440px;margin:auto}.main-column .world-banner{height:140px!important}.scene-choices{grid-template-columns:1fr 1fr}.terminal-display{min-height:250px}.topbar{padding:0 12px}.top-sub,.server-time{display:none}.topbar-right{gap:5px}.topbar .avatar{display:none}}
@media(max-width:440px){.scene-choices{grid-template-columns:1fr}.terminal-skill-layout{grid-template-columns:1fr 1fr}.left-sidebar{grid-template-columns:1fr}.left-sidebar>.left-module{grid-column:1!important}.field-terminal{height:690px}}

/* Overrides for legacy selectors that hid working controls outside their old sidebar. */
.right-sidebar .chat-panel,.terminal-screen .chat-panel{display:block!important}
.right-sidebar .legacy-source{display:none!important}
.terminal-screen .mission-panel,.terminal-screen .lives-panel{display:block!important}
.terminal-screen .side-view[data-side-view="personal"]{display:flex!important}
.terminal-screen .side-view[data-side-view="personal"] .inventory-panel{display:none}
.scene-deck .system-view.hidden,.scene-deck [data-scene].hidden{display:none!important}

/* One narrative pane: clicking an action REPLACES its text rather than scrolling below it. */
.main-column .location-section.scene-active>.section-header,.main-column .location-section.scene-active>.place-description,.main-column .location-section.scene-active>.environment-strip,.main-column .location-section.scene-active>#field-status,.main-column .location-section.scene-active>#context-actions{display:none!important}
.main-column .location-section .scene-deck{margin:0;min-height:0}
.main-column .location-section.scene-active{padding:10px}
.main-column .location-section.scene-active #scene-root{padding:16px}
.main-column .scene-deck.hidden{display:none!important}
.terminal-screen .bag-collapsible{border:1px solid #638276;margin:10px 0;padding:8px;background:#193b37}
.terminal-screen .bag-collapsible summary{cursor:pointer;font-size:11px;color:#e6ecd7;display:flex;justify-content:space-between;gap:8px}
.terminal-screen .bag-collapsible summary span{color:#bad4c6}
.bag-aggregate-row{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:8px;border-top:1px solid #4b7466;padding:7px 0;font-size:11px;color:#d7ebd9}
.bag-aggregate-row strong{font:11px var(--mono);color:#e5ebd1}
.codex-prep{padding:9px;background:#1a443c;border:1px solid #608f7c;font-size:10px;display:grid;gap:5px;margin:12px 0;color:#bedbc9}.codex-prep strong{color:#e0ebd8;font-size:12px}.codex-prep span{color:#d0bf9b}
:root[data-theme="light"] .world-banner h1,:root[data-theme="light"] .world-banner .banner-eyebrow,:root[data-theme="light"] .world-banner p,:root[data-theme="light"] .world-banner .banner-corner{color:#f0f5e8!important;text-shadow:0 1px 3px #061720}
:root[data-theme="light"] .main-column .location-section .place-description,:root[data-theme="light"] .main-column .location-section .environment-strip,:root[data-theme="light"] .main-column .location-section .field-status-strip,:root[data-theme="light"] .main-column #environment-text,:root[data-theme="light"] .main-column #resource-text,:root[data-theme="light"] .main-column .section-header h2{color:#304b4e!important}
:root[data-theme="light"] #hp-value,:root[data-theme="light"] #oxygen-value,:root[data-theme="light"] #xp-value,:root[data-theme="light"] .meter-label,:root[data-theme="light"] .left-profile-holder #profile-details,:root[data-theme="light"] .left-profile-holder #clone-note{color:#375459!important}
:root[data-theme="light"] #terminal-clock .terminal-clock-dial span,:root[data-theme="light"] #terminal-clock .terminal-clock-dial strong,:root[data-theme="light"] #terminal-clock .clock-job-label,:root[data-theme="light"] #terminal-clock small,:root[data-theme="light"] .terminal-quick-stats span,:root[data-theme="light"] .terminal-quick-stats b{color:#26544f!important}
:root[data-theme="light"] .terminal-screen .bag-collapsible,:root[data-theme="light"] .terminal-screen .codex-prep{background:#dce9dd;color:#31534c;border-color:#a1b9a7}
:root[data-theme="light"] .terminal-screen .bag-collapsible summary,:root[data-theme="light"] .terminal-screen .bag-collapsible summary span,:root[data-theme="light"] .bag-aggregate-row,:root[data-theme="light"] .bag-aggregate-row strong,:root[data-theme="light"] .codex-prep strong{color:#26534b!important}
:root[data-theme="light"] .terminal-screen .terminal-screen-title,:root[data-theme="light"] .terminal-screen .network-notice{color:#315e52;background:#dce9df}

:root[data-theme="light"] .topbar .small-exit,:root[data-theme="light"] .left-profile-holder .small-exit{color:#244b48!important;background:#e1e9e3!important;border-color:#a2b8ac!important}
:root[data-theme="light"] .main-column .environment-strip *, :root[data-theme="light"] .main-column .field-status-strip *{color:#35555c!important}

/* Canonical journal list and command form (v0.38): one source of truth. */
[data-terminal-screen="journal"] #log-list{display:block!important}
[data-terminal-screen="journal"] .console-section .section-header h2{display:none}

.terminal-body-metric{padding:8px 2px;border-bottom:1px solid var(--ui-border);display:grid;gap:4px}
.terminal-body-metric>div:first-child{display:flex;justify-content:space-between;font:11px var(--mono)}
.terminal-body-metric .terminal-meter{height:6px;background:#38494b;overflow:hidden;border-radius:2px}
.terminal-body-metric .terminal-meter i{height:100%;display:block;max-width:100%}
.terminal-body-metric small{font-size:9px;color:var(--ui-sub)}
:root[data-theme="light"] .terminal-body-metric .terminal-meter{background:#bfd2c5}
:root[data-theme="light"] .terminal-body-metric small{color:#477069}

/* v0.36: compact, read-only combat receipts inside the existing encounter panel. */
.combat-history{margin-top:13px;padding:10px 12px;border:1px solid var(--ui-border);background:var(--ui-surface);font-size:11px;color:var(--ui-text)}
.combat-history>strong{display:block;margin-bottom:8px;font:10px var(--mono);letter-spacing:.09em;color:var(--ui-accent)}
.combat-history>div{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 0;border-top:1px dashed var(--ui-border)}
.combat-history>div b{font-size:10px;font-weight:500;color:var(--ui-sub)}


/* v0.37 UI second pass: stronger CRT/PDA styling */
.field-terminal{border-radius:12px 12px 28px 28px;padding:14px 10px 18px;background:linear-gradient(180deg,#2c3537,#121619 22%,#2e3336 72%,#171c1f);border:2px solid #596062;box-shadow:inset 0 0 0 2px #050607,inset 0 0 0 6px #40494d,0 16px 32px #000b}
.field-terminal:before,.field-terminal:after{width:9px;height:9px;background:#88908d;box-shadow:0 0 6px #000}
.terminal-status{font:11px var(--mono);letter-spacing:.11em;color:var(--tone-positive4882);text-shadow:0 0 8px #0f0;background:#070808;border:1px solid #37593a;border-bottom:0;padding:8px 10px;border-radius:5px 5px 0 0}
.terminal-display{background:radial-gradient(circle at 50% 35%,#16371f 0,#0a130d 60%,#050606 100%),repeating-linear-gradient(0deg,#66ff6611 0px,#66ff6611 2px,transparent 3px,transparent 4px);border:1px solid #4fb05a;color:var(--tone-positive4882);box-shadow:inset 0 0 40px #0d2a10,0 0 12px #52ff5d33;border-radius:2px;padding:14px 11px 20px;text-shadow:0 0 4px #66ff6640}
.terminal-screen,.terminal-screen *{color:var(--tone-positive4882)}
.terminal-brand,.terminal-home-clock,.terminal-dock{background:#08100a;border-color:#36753d;color:var(--tone-positive4882);box-shadow:inset 0 0 0 1px #19351d}
.terminal-brand strong{font-size:20px;letter-spacing:.12em}
.app-grid-crt{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.app-grid-crt button{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;align-items:center;gap:2px 8px;text-align:left;padding:10px 9px;border:1px solid #4ea656;background:#07100a;color:var(--tone-positive4882);min-height:64px}.app-grid-crt button span{grid-row:1 / span 2;font:14px var(--mono);display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid #4ea656}.app-grid-crt button b{font-size:13px;color:var(--tone-positive4882)}.app-grid-crt button small{font-size:9px;letter-spacing:.09em;color:var(--tone-positive4882)}.app-grid-crt button.active,.app-grid-crt button:hover{background:#0d1b10;box-shadow:0 0 0 1px var(--tone-positive4882) inset,0 0 18px #49ff4c22}
.terminal-dock-physical{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;padding-top:12px;margin-top:10px;background:transparent;border:0;box-shadow:none}.terminal-dock-physical button{border-radius:999px;border:2px solid #576063;background:linear-gradient(180deg,#d7d8d2,#8b918f);padding:9px 4px 11px;color:#111;display:grid;gap:2px;text-align:center;box-shadow:inset 0 -4px 0 #676d6b}.terminal-dock-physical button span{font:12px var(--mono);letter-spacing:.14em}.terminal-dock-physical button small{font-size:9px}.terminal-dock-physical button:hover{filter:brightness(1.05)}
.result-ticker{margin:12px 0;padding:8px 10px;border:1px solid var(--ui-border);background:rgba(10,18,16,.72);display:grid;gap:6px}.result-heading{font:10px var(--mono);letter-spacing:.12em;color:var(--ui-accent)}.result-line{display:grid;grid-template-columns:48px 1fr;gap:8px;font-size:11px;color:var(--ui-text)}.result-line time{color:var(--ui-sub)}.result-line.empty{grid-template-columns:1fr}
.grouped-actions .scene-choice{min-height:64px}.grouped-actions .scene-choice .choice-index{min-width:32px;text-align:center;font:12px var(--mono)}
.custom-scene-pane{display:grid;gap:12px}.scene-module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.scene-module{background:#121d18;border:1px solid #476852;padding:12px;text-align:left;display:grid;gap:5px}.scene-module strong{color:#e7f5d8}.scene-module small{color:#bdd1c6;font-size:11px}.scene-module.hot{border-color:#b37f61;box-shadow:0 0 0 1px #b37f61 inset}
.terminal-map-canvas{padding:8px;border:1px solid #3c6f45;background:#08130a;margin-bottom:10px}.terminal-map-canvas svg{width:100%;height:auto;display:block}.terminal-map-frame,.terminal-map-canvas .radar-ring,.terminal-map-canvas .radar-axis,.terminal-map-canvas .radar-link{fill:none;stroke:#4ea656;stroke-width:1}.terminal-map-node text,.terminal-map-canvas .radar-north{fill:var(--tone-positive4882);font:10px var(--mono)}.terminal-map-node.active circle{fill:var(--tone-positive4882)}.terminal-map-node.known circle{fill:#67cc6b}.terminal-map-node.unknown circle{fill:#1f4b24}.terminal-map-friends{display:grid;gap:6px;margin-bottom:10px}.map-contact-row{display:flex;justify-content:space-between;gap:10px;border-bottom:1px dashed #406d45;padding-bottom:4px}
.terminal-organ-grid{display:grid;gap:8px;margin-top:8px}.terminal-organ-card{border:1px solid var(--ui-border);padding:8px;background:rgba(8,20,12,.65)}.organ-head{display:flex;align-items:center;gap:8px;justify-content:space-between;font:11px var(--mono)}.organ-head>span{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px}.organ-head strong{flex:1;color:var(--ui-text)}.organ-head b{color:var(--ui-accent)}
:root[data-theme="light"] .field-terminal{background:linear-gradient(180deg,#c8cec8,#9fa7a1 22%,#c4c9c5 74%,#9ea5a1);border-color:#8b9290;box-shadow:inset 0 0 0 2px #f4f4ef,inset 0 0 0 6px #b6bdb8,0 16px 32px #42545030}
:root[data-theme="light"] .terminal-status,:root[data-theme="light"] .terminal-brand,:root[data-theme="light"] .terminal-home-clock{background:#f1f4ea;border-color:#92b89a;color:#25583a;text-shadow:none}
:root[data-theme="light"] .terminal-display{background:radial-gradient(circle at 50% 35%,#edf6e8 0,#d8ead5 60%,#cfe0cf 100%),repeating-linear-gradient(0deg,#4f8a4f12 0px,#4f8a4f12 2px,transparent 3px,transparent 4px);border-color:#8bb28e;color:#2b5d37;box-shadow:inset 0 0 28px #b4d0b5}
:root[data-theme="light"] .terminal-screen,:root[data-theme="light"] .terminal-screen *{color:#2f5d38;text-shadow:none}
:root[data-theme="light"] .app-grid-crt button{background:#eff4ea;border-color:#86af8e;color:#2b5e38}:root[data-theme="light"] .app-grid-crt button.active,:root[data-theme="light"] .app-grid-crt button:hover{background:#dcead9;box-shadow:0 0 0 1px #7aa883 inset}
:root[data-theme="light"] .terminal-dock-physical button{background:linear-gradient(180deg,#fefef8,#d4d8d3);border-color:#8c948e;color:#223327}
:root[data-theme="light"] .result-ticker{background:#eff4eb}
@media(max-width:990px){.workspace{grid-template-columns:minmax(0,1fr)}.right-sidebar{grid-column:1;grid-row:2}.main-column{grid-column:1;grid-row:3}.left-sidebar{grid-column:1;grid-row:1}.field-terminal{height:auto;min-height:0;max-width:none}}
@media(max-width:740px){.workspace{display:flex;flex-direction:column}.right-sidebar{order:1;padding:10px}.main-column{order:2}.left-sidebar{order:3}.field-terminal{max-width:none;width:100%;margin:0;height:auto}.terminal-display{min-height:420px}.scene-module-grid,.app-grid-crt{grid-template-columns:1fr 1fr}.terminal-dock-physical{position:sticky;bottom:0;z-index:5;padding-bottom:8px;background:linear-gradient(180deg,transparent,rgba(0,0,0,.18))}}
@media(max-width:520px){.scene-module-grid,.app-grid-crt{grid-template-columns:1fr}.result-line{grid-template-columns:1fr}.left-sidebar{padding:8px}.main-column{padding:10px}.terminal-display{padding:10px 8px 16px}.terminal-dock-physical button{padding:8px 2px 9px}.terminal-body-layout,.terminal-skill-layout{grid-template-columns:1fr!important}.grouped-actions .scene-choice{min-height:58px}}

/* UI3: interaction hierarchy, event surfaces and mobile controls */
.scene-deck{--scene-line:#447e55;position:relative;border-color:var(--scene-line);box-shadow:inset 0 0 0 1px #295335,0 0 18px #15572415}
.scene-deck .scene-heading{background:#08150d;border-bottom:1px solid #416e43}
.scene-deck .scene-heading>span{color:#84c987}
.scene-deck .scene-heading>strong{font-family:var(--mono);font-size:12px;color:var(--tone-positive4882)}
.scene-deck .scene-heading button{border:1px solid #467451;background:#0e1a12;color:var(--tone-positive4882);white-space:normal;min-height:36px}
.scene-deck .scene-heading button:hover,.scene-deck .scene-heading button:focus-visible{border-color:var(--tone-positive4882);outline-offset:3px}
.scene-surface-head{display:grid;gap:5px;padding:11px 13px;margin-bottom:8px;background:#07150d;border-left:3px solid var(--tone-positive4882);font:11px var(--mono);letter-spacing:.08em;color:var(--tone-positive4882)}
.scene-surface-head p{font:12px var(--font);color:#b9d8bd;letter-spacing:normal;margin:0;line-height:1.7}
.scene-module{min-height:112px;grid-template-rows:auto auto 1fr;border-color:#47744d;background:linear-gradient(135deg,#0d1c13,#0b150e);color:#ceffd0;transition:border-color .1s,background .1s}
.scene-module strong{color:#dbffdb;font:600 13px var(--font)}
.scene-module small{color:#b6d9b9;line-height:1.55}
.scene-module .module-code{color:var(--tone-positive4882);font:10px var(--mono);letter-spacing:.1em}
.scene-module:hover:not(:disabled),.scene-module:focus-visible{border-color:var(--tone-positive4882);background:#16311e;outline:1px solid var(--tone-positive4882);outline-offset:1px}
.scene-module:disabled{opacity:.43;cursor:not-allowed}
.scene-alert{border:1px solid #ac9159;background:#2f2812;color:#ffdea2;padding:11px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-size:12px}
.scene-alert button{background:#493a18;border:1px solid #e4c57b;color:#ffedbf;padding:9px;min-height:40px}
/* Combat / narrative events use same phosphor terminal visual language. */
.scene-deck:has([data-scene="combat"]:not(.hidden)){--scene-line:#d09363}
.scene-deck:has([data-scene="combat"]:not(.hidden)) .scene-heading{background:#24170d;border-color:#a8734e}
.scene-deck:has([data-scene="combat"]:not(.hidden)) .scene-heading>strong{color:#ffca9a}
.scene-deck:has([data-scene="explore"]:not(.hidden)){--scene-line:#7eaf9b}
.scene-deck #combat-stage,.scene-deck #v9-battle,.scene-deck #event-details{border:1px solid var(--scene-line);padding:10px;background:#07110a;color:var(--tone-positive4882)}
.scene-deck #event-details .v07-card,.scene-deck #v9-battle .v9-card{background:#102014;border:1px solid #578357}
.scene-deck #event-details button,.scene-deck #combat-stage button,.scene-deck #v9-battle button,.scene-deck #v14-solo button{min-height:42px;border:1px solid #7bb58a;background:#142b19;color:#e1f9d5;padding:8px}
.scene-deck #event-details button:hover,.scene-deck #combat-stage button:hover{background:#234528}
.result-ticker{margin:12px 0;border-color:#628f69;background:#09130c;box-shadow:inset 0 0 0 1px #24402a}
.result-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px dashed #46744a;padding-bottom:6px;color:var(--tone-positive4882)}
.result-heading small{font:9px var(--mono);color:#8ab193}
.result-line{grid-template-columns:70px minmax(0,1fr);line-height:1.65;padding:4px 0;border-bottom:1px solid #315038;font-size:12px;overflow-wrap:anywhere}
.result-line time,.result-signal{font:10px var(--mono);color:#a1d0ab}
.result-line.recent{color:#d7ffcc;background:#17301d;border-left:3px solid var(--tone-positive4882);padding:9px 7px;font-weight:600}
/* Preserve the action readout even when an in-place detail panel replaces location text. */
.location-section.scene-active>.result-ticker{display:block!important}
.mobile-jump{display:none}
:root[data-theme="light"] .scene-deck .scene-heading{background:#e0eddf}
:root[data-theme="light"] .scene-deck .scene-heading>strong,:root[data-theme="light"] .scene-deck .scene-heading>span{color:#356447}
:root[data-theme="light"] .scene-deck .scene-heading button{background:#eff9ed;color:#28593a}
:root[data-theme="light"] .scene-surface-head{background:#e7f3e5;color:#336b41}
:root[data-theme="light"] .scene-surface-head p{color:#315c40}
:root[data-theme="light"] .scene-module{background:linear-gradient(135deg,#ecf6ec,#e2f0e4);border-color:#91b599;color:#2b5335}
:root[data-theme="light"] .scene-module strong{color:#2b5936}
:root[data-theme="light"] .scene-module small{color:#456c4e}
:root[data-theme="light"] .scene-module .module-code{color:#397649}
:root[data-theme="light"] .scene-module:hover:not(:disabled){background:#d4edd5}
:root[data-theme="light"] .result-ticker{background:#e8f3e5;border-color:#94b398}
:root[data-theme="light"] .result-heading,:root[data-theme="light"] .result-line{color:#2a5132;border-color:#b9d3bd}
:root[data-theme="light"] .result-heading small,:root[data-theme="light"] .result-line time{color:#557860}
:root[data-theme="light"] .result-line.recent{background:#d0e9cd;color:#214629}
:root[data-theme="light"] .scene-deck #event-details,:root[data-theme="light"] .scene-deck #combat-stage,:root[data-theme="light"] .scene-deck #v9-battle{background:#e7f3e5;color:#2f5937}
:root[data-theme="light"] .scene-deck #event-details button,:root[data-theme="light"] .scene-deck #combat-stage button,:root[data-theme="light"] .scene-deck #v9-battle button{background:#d6ead6;color:#22512e;border-color:#80ab86}
@media(max-width:740px){
  .workspace>.main-column{order:1}.workspace>.right-sidebar{order:2}.workspace>.left-sidebar{order:3}
  .mobile-jump{display:flex;position:sticky;top:0;z-index:20;gap:5px;padding:7px 10px;background:var(--ui-bg);border-bottom:1px solid var(--ui-border)}
  .mobile-jump button{flex:1;min-height:42px;border:1px solid var(--ui-border);background:var(--ui-panel);color:var(--ui-text);font:12px var(--mono)}
  .scene-deck .scene-heading{flex-wrap:wrap;gap:6px}.scene-deck .scene-heading>span{flex:1 1 100%}.scene-deck .scene-heading>strong{margin-left:0;flex:1}
  .scene-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .location-section,.field-terminal,.left-profile-holder{scroll-margin-top:62px}
}
@media(max-width:430px){.scene-module-grid{grid-template-columns:1fr}.scene-module{min-height:95px}.result-line{grid-template-columns:1fr}.result-line time{display:block}.topbar{height:auto;min-height:56px}.topbar-left .top-sub{display:none}}

/* Screen-wide phosphor system: both themes preserve contrast. */
:root[data-theme="dark"]{--ui-bg:#040804;--ui-surface:#07110a;--ui-panel:#102017;--ui-border:#3a7543;--ui-text:#c6f3c9;--ui-sub:#94bd98;--ui-highlight:#d5ffd2;--ui-fade:#73ad78;--ui-line:#558d5b;--ui-accent:var(--tone-positive4882)}
:root[data-theme="dark"] .topbar{background:#050d08}
:root[data-theme="dark"] .left-module .radar-canvas{background:radial-gradient(circle,#0d3219,#051007 80%);border-color:#467c4a}
:root[data-theme="dark"] .radar-ring,:root[data-theme="dark"] .radar-axis{stroke:#448955}
:root[data-theme="dark"] .main-column .world-banner{border-color:#558557;filter:saturate(.35) brightness(.8)}
:root[data-theme="dark"] .main-column .location-section{background:#07110a;border-color:#4d8654}
:root[data-theme="dark"] .scene-choice{background:#0c1b10;border-color:#4d8654;color:#d6f6d6}
:root[data-theme="dark"] .scene-choice:hover,:root[data-theme="dark"] .scene-choice.selected{background:#174326;border-color:var(--tone-positive4882);color:#f0fff0}
:root[data-theme="dark"] .scene-choice.subchoice{background:#0c2212;border-left-color:#6fc980}
:root[data-theme="dark"] .environment-strip{margin:13px 0 2px;border-top:1px solid var(--ui-border);padding-top:12px}
:root[data-theme="light"] .main-column .environment-strip{margin:13px 0 2px;border-top:1px solid var(--ui-border);padding-top:12px}
:root[data-theme="dark"] .sector-cap,:root[data-theme="dark"] .module-head,:root[data-theme="dark"] .micro-label,:root[data-theme="dark"] .scene-choice-heading span{font-family:var(--mono);color:var(--tone-positive4882)}
:root[data-theme="light"] .main-column .micro-label,:root[data-theme="light"] .main-column .scene-choice-heading span{color:#38665a}
:root[data-theme="dark"] .main-column #context-actions{margin-top:12px}

/* Combat contents must be the encounter itself: old technical research migrated to #scene-tech. */
.scene-deck [data-scene="combat"]>summary{background:#1d2b1b;color:#ecdbc3;padding:8px 10px;cursor:pointer}
.scene-deck [data-scene="combat"] #combat-stage{margin-top:10px}
.scene-deck .tech-scene{background:var(--ui-panel);padding:12px;border:1px solid var(--ui-border)}
.scene-deck .tech-scene .v9-option-list{display:grid;gap:8px}
.scene-deck .tech-scene button{min-height:40px}
:root[data-theme="light"] .scene-deck [data-scene="combat"]>summary{background:#e6ead8;color:#69432c}

/* Repair low-contrast legacy combat and expedition text in the new surface. */
.scene-deck #combat-stage .combat-empty{color:#d5f9d8!important}
.scene-deck #combat-stage .combat-empty span,.scene-deck #combat-stage .combat-empty p{color:#b7debc!important}
.scene-deck [data-scene="explore"] .module-caption,.scene-deck [data-scene="explore"] h2,.scene-deck [data-scene="explore"] h3{color:var(--ui-text)!important}
:root[data-theme="light"] .scene-deck #combat-stage .combat-empty{color:#e5ffe0!important}
:root[data-theme="light"] .scene-deck #combat-stage .combat-empty span{color:var(--tone-positive4882)!important}
:root[data-theme="light"] .scene-deck .system-view .module-caption{color:#3a6450!important}


/* v0.37: observational, not omniscient, individual biome tracking. */
.fauna-atlas-v37{padding:12px 9px;margin:14px 0;border:1px solid var(--ui-border);background:var(--ui-surface)}
.fauna-atlas-v37.hidden{display:none!important}
.fauna-atlas-header{display:flex;justify-content:space-between;align-items:center;gap:10px;font:11px var(--mono);border-bottom:1px solid var(--ui-border);padding-bottom:8px;color:var(--ui-accent)}
.fauna-atlas-header span{font-size:10px;white-space:nowrap}
.fauna-trace-list{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.fauna-trace-row{display:flex;align-items:center;gap:8px;border:1px dashed var(--ui-border);padding:7px;min-width:0}
.fauna-trace-pip{color:var(--ui-accent);font-size:17px}
.fauna-trace-row div{display:grid;gap:3px;min-width:0}
.fauna-trace-row strong{font-size:11px;overflow-wrap:anywhere}
.fauna-trace-row small,.fauna-atlas-v37>small{font-size:10px;color:var(--ui-sub)}
@media(max-width:500px){.fauna-trace-list{grid-template-columns:1fr}}

/* v0.38: one canonical PDA journal; no second hidden logger or duplicate action tab. */
[data-terminal-screen="journal"] #log-list{display:block!important;min-height:160px;max-height:min(45vh,420px);overflow:auto}
[data-terminal-screen="journal"] .terminal-view-note{color:var(--ui-sub);font-size:11px;line-height:1.5;margin:8px 0}
[data-terminal-screen="journal"] .log-day{position:sticky;top:0;background:var(--ui-surface);z-index:1}
[data-terminal-screen="journal"] .log-line{display:grid;grid-template-columns:54px minmax(0,1fr);gap:8px}
[data-terminal-screen="journal"] #command-form{margin-top:9px}
#action-mounts.hidden{display:none!important}
.scene-choice:focus-visible,.scene-module:focus-visible,.terminal-apps button:focus-visible,.terminal-dock-physical button:focus-visible{outline:2px solid var(--ui-accent);outline-offset:3px}
@media(max-width:740px){.terminal-apps button,.terminal-dock-physical button{min-height:44px}.terminal-display{overscroll-behavior:contain}}


/* v0.39 route cartography: graph topology, NOT physical direction/distance. */
.route-edge{stroke:#52b56d;stroke-width:2;stroke-dasharray:3 3;opacity:.7}
.route-frame{fill:none;stroke:#286137;stroke-width:1}
.route-point circle{stroke:var(--tone-positive4882);stroke-width:1.5;fill:#173d20}
.route-point.active circle{fill:var(--tone-positive4882);filter:drop-shadow(0 0 5px var(--tone-positive4882))}
.route-point.visited circle{fill:#4caa57}
.route-point.discovered circle{fill:#101b10;stroke-dasharray:3 2}
.route-point.selected circle{stroke:#f3dd85;stroke-width:3}
.route-point text{fill:var(--tone-positive4882);font:10px var(--mono);paint-order:stroke;stroke:#08120b;stroke-width:2.2}
.route-point[role="button"]{cursor:pointer;outline:none}
.route-point[role="button"]:focus circle{stroke:#fff29d;stroke-width:4}
.route-map-detail{border:1px solid #438151;padding:10px;margin:9px 0;background:#0d1d13;font-size:11px;color:var(--tone-positive4882)}
.route-detail-head{display:flex;justify-content:space-between;gap:9px;flex-wrap:wrap;margin-bottom:9px}
.route-detail-head span{font:10px var(--mono);color:#76c888}.route-detail-head strong{color:#caffb9}
.route-metadata{display:flex;gap:5px;flex-wrap:wrap}.route-metadata span{border:1px solid #568762;padding:3px 7px}
.route-private-note{border-left:2px solid #c7c478;padding-left:8px;white-space:pre-wrap;overflow-wrap:anywhere}
.route-list-item{display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:left;width:100%;min-height:38px;padding:7px;border:1px solid #386f47;margin:4px 0;background:#0d2113;color:var(--tone-positive4882)}
.route-list-item small{font:10px var(--mono);color:#91c498;text-align:right}.route-list-item.selected{outline:2px solid var(--tone-positive4882)}
.route-travel{border:1px solid #97d599;background:#184927;color:#e1ffdd;margin-top:6px;padding:8px;min-height:40px}
.route-memo-form{display:grid;gap:6px;border:1px solid #356b41;padding:9px;margin:10px 0}
.route-memo-form label{font-size:11px}.route-memo-form textarea{background:#101d15;color:#c6f7c7;border:1px solid #63936b;max-width:100%;min-height:70px}
.route-fauna-inset{margin:8px 0;font-size:11px}.fauna-micro-map{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:2px;max-width:270px;margin:8px auto}
.fauna-micro-map span{height:24px;background:#11251b;border:1px solid #285232;text-align:center;font-size:15px;color:var(--tone-positive4882)}
.fauna-micro-map .has-fauna{background:#375b34;box-shadow:inset 0 0 7px #96ec6d66}
:root[data-theme="light"] .route-map-detail,:root[data-theme="light"] .route-list-item,:root[data-theme="light"] .route-memo-form{background:#e0edde;color:#2b5431;border-color:#9ebc9e}
:root[data-theme="light"] .route-detail-head strong,:root[data-theme="light"] .route-list-item strong{color:#224b2d}
:root[data-theme="light"] .route-memo-form textarea{background:#f2f8f0;color:#214b2a}
@media(max-width:520px){.route-list-item{min-height:46px}.route-list-item small{font-size:9px}}

/* v0.39.1 pixel art visual-unification layer. Lightweight local PNG files only. */
:root{--pix-bg:#08110b;--pix-panel:#0d1b10;--pix-elevated:#142a19;--pix-border:#488b50;--pix-focus:var(--tone-positive4882);--pix-text:#d6fbd4;--pix-muted:#9bbc9f;--pix-accent:var(--tone-positive4882);--pix-danger:#f3a08d}
:root[data-theme="light"]{--pix-bg:#f2f7e9;--pix-panel:#e6f1df;--pix-elevated:#d8ead2;--pix-border:#799d79;--pix-focus:#2b713c;--pix-text:#21402b;--pix-muted:#466a4a;--pix-accent:#38683e;--pix-danger:#8c3227}
/* Legacy blue rounded cards are normalized without suppressing native controls. */
#game-shell :is(.v07-card,.v17-panel,.v9-action-box,.research-card,.panel.v07-panel,.arcan-v11-panel,.arca-v11-panel,.v17-info,.module-item,.request-entry,.storage-chip,.warehouse-entry,.v07-grid>.v07-card,.scene-module,.codex-entry,.social-row,.journal-extra){
  border-color:var(--pix-border)!important;background:var(--pix-panel)!important;color:var(--pix-text)!important;border-radius:2px!important;box-shadow:none!important;
}
#game-shell :is(.panel,.v07-card,.research-card,.v17-panel,.v9-action-box) :is(h2,h3,h4,strong){color:var(--pix-text)}
#game-shell :is(.panel,.v07-card,.research-card,.v17-panel,.v9-action-box) :is(p,small,.module-caption,.muted){color:var(--pix-muted)}
#game-shell :is(.terminal-screen,.scene-deck,.left-sidebar,.main-column) :is(input,select,textarea){color:var(--pix-text)!important;background:var(--pix-bg)!important;border:1px solid var(--pix-border)!important;border-radius:1px!important;min-height:36px;box-shadow:none!important}
#game-shell :is(.terminal-screen,.scene-deck,.left-sidebar,.main-column) :is(button,.v07-buttons button,.row-actions button){border-radius:2px!important;box-shadow:none;letter-spacing:.01em}
#game-shell :is(.terminal-screen,.scene-deck,.left-sidebar,.main-column) :is(.v07-card button,.v07-buttons button,.row-actions button,.social-row button,.evidence-item button,.storage-buttons button,.research-evidence button,.request-entry button,.terminal-main-action,.wide-button){background:var(--pix-elevated)!important;color:var(--pix-text)!important;border:1px solid var(--pix-border)!important;min-height:38px}
#game-shell :is(button,input,select,textarea):focus-visible{outline:2px solid var(--pix-focus)!important;outline-offset:2px}
#game-shell button:disabled{opacity:.48;cursor:not-allowed}
#game-shell .terminal-screen-title{letter-spacing:.12em;font-family:var(--mono);color:var(--pix-accent)}
#game-shell .terminal-subtabs button,#game-shell .side-tabs button{border-color:var(--pix-border)!important;background:var(--pix-panel)!important;color:var(--pix-text)!important;border-radius:1px!important}
#game-shell .terminal-subtabs button.active{background:var(--pix-elevated)!important;color:var(--pix-accent)!important;box-shadow:inset 0 -3px 0 var(--pix-accent)!important}
/* v0.40: optional user-supplied account portraits, or text initials when absent. */
.explorer-portrait{display:block;object-fit:cover;image-rendering:pixelated;image-rendering:crisp-edges;border:2px solid var(--pix-border);background:var(--pix-bg);box-shadow:0 0 0 2px var(--pix-bg);flex:none}
#game-shell #profile-initial{width:72px;height:72px;display:block;border:0;background:none;box-shadow:none;border-radius:0;padding:0;overflow:visible}
#game-shell #profile-initial .profile-portrait{width:72px;height:72px}
#game-shell .person-row{min-height:64px;gap:11px;align-items:center;padding:9px 5px}
#game-shell .person-portrait{width:48px;height:48px}
#game-shell .person-meta{min-width:0;flex:1}
#game-shell .person-name{display:flex;align-items:center;justify-content:space-between;gap:5px}
#game-shell .person-name strong{color:var(--pix-text);font-size:12px;overflow-wrap:anywhere}
#game-shell .person-name small,#game-shell .person-row small{line-height:1.5;color:var(--pix-muted)}
#game-shell .person-status-dot{width:7px;height:7px;background:var(--tone-positive4882);border:1px solid var(--pix-bg);box-shadow:0 0 0 1px var(--tone-positive4882);flex:none}
#game-shell .person-sos{background:rgba(192,57,53,.13);border-left:3px solid var(--pix-danger);padding-left:4px}
#game-shell .person-sos-tag{padding:1px 3px;border:1px solid var(--pix-danger);color:var(--pix-danger);font:10px var(--mono)}
#game-shell .contact-portrait{width:36px;height:36px;vertical-align:middle}
/* Small icon assets brighten interactions, but the text remains readable and actionable. */
#game-shell :is(.scene-choice,.scene-module,.terminal-apps button){position:relative}
#game-shell .scene-choice::before,#game-shell .scene-module::before,#game-shell .terminal-apps button::after{content:"";display:inline-block;flex:none;width:24px;height:24px;background-repeat:no-repeat;background-position:center;background-size:contain;image-rendering:pixelated;vertical-align:middle}
#game-shell .terminal-apps button::after{grid-column:2;grid-row:2;justify-self:end;width:18px;height:18px;opacity:.85}
#game-shell .scene-choice[data-context="@@fieldops"]::before,#game-shell .scene-module[data-command="look"]::before,#game-shell .scene-module[data-command="survey"]::before{background-image:url('/assets/pixel/ico_scan.png')}
#game-shell .scene-choice[data-context="gather"]::before,#game-shell .scene-module[data-command="gather"]::before{background-image:url('/assets/pixel/ico_gather.png')}
#game-shell .scene-choice[data-context="@@maintenance"]::before,#game-shell .scene-module[data-open-scene="work"]::before{background-image:url('/assets/pixel/ico_maintenance.png')}
#game-shell .scene-module[data-open-scene="body"]::before{background-image:url('/assets/pixel/ico_health.png')}
#game-shell .scene-module[data-open-scene="craft"]::before{background-image:url('/assets/pixel/ico_inventory.png')}
#game-shell .scene-module[data-open-scene="lab"]::before{background-image:url('/assets/pixel/ico_lab.png')}
#game-shell .scene-module[data-open-scene="combat"]::before,#game-shell .scene-choice[data-context="@@combat"]::before{background-image:url('/assets/pixel/ico_battle.png')}
#game-shell .scene-module[data-open-scene="research"]::before{background-image:url('/assets/pixel/ico_research.png')}
#game-shell .scene-module[data-open-colony]::before{background-image:url('/assets/pixel/ico_base.png')}
#game-shell .scene-module[data-open-scene="expedition17"]::before{background-image:url('/assets/pixel/ico_map.png')}
#game-shell .terminal-apps button[data-terminal-app="map"]::after{background-image:url('/assets/pixel/ico_map.png')}
#game-shell .terminal-apps button[data-terminal-app="journal"]::after{background-image:url('/assets/pixel/ico_journal.png')}
#game-shell .terminal-apps button[data-terminal-app="bag"]::after{background-image:url('/assets/pixel/ico_inventory.png')}
#game-shell .terminal-apps button[data-terminal-app="comms"]::after{background-image:url('/assets/pixel/ico_message.png')}
#game-shell .terminal-apps button[data-terminal-app="status"]::after{background-image:url('/assets/pixel/ico_health.png')}
#game-shell .terminal-apps button[data-terminal-app="codex"]::after{background-image:url('/assets/pixel/ico_codex.png')}
#game-shell .terminal-apps button[data-terminal-app="colony"]::after{background-image:url('/assets/pixel/ico_base.png')}
#game-shell .scene-module{grid-template-columns:24px minmax(0,1fr);grid-template-rows:auto auto 1fr;column-gap:8px;align-items:start}
#game-shell .scene-module .module-code{grid-column:2;grid-row:1}
#game-shell .scene-module strong{grid-column:2;grid-row:2}
#game-shell .scene-module small{grid-column:1/-1;grid-row:3}
#game-shell .scene-choice::before{width:20px;height:20px}
/* The hardware keys stay silver: they're controls on the outside of the PDA. */
#game-shell .terminal-dock-physical button{background:linear-gradient(180deg,#c8c9c3,#838d86)!important;color:#102014!important;border-color:#59675f!important;border-radius:20px!important;box-shadow:inset 0 -3px 0 #5a655e!important}
:root[data-theme="light"] #game-shell .terminal-dock-physical button{background:linear-gradient(180deg,#fffef9,#becabe)!important;color:#28432b!important}
@media(max-width:520px){#game-shell .person-portrait{width:44px;height:44px}#game-shell .person-row{min-height:56px}}

#game-shell .terminal-apps button::after{position:absolute;right:10px;bottom:10px;grid-column:auto;grid-row:auto;pointer-events:none}
#game-shell .terminal-apps button small{padding-right:22px}
/* Final legacy affordance cleanup: nav exits, small tags, log, auth forms. */
#game-shell :is(.exit-button,.tag,.small-exit,.scene-heading button,.job-container,.v07-tags span,.storage-chip,.mini-heading){border-color:var(--pix-border)!important;border-radius:1px!important;color:var(--pix-text)!important}
#game-shell .exit-button,#game-shell .tag{background:var(--pix-panel)!important}
#game-shell .job-container,#game-shell :is(.log-list,.terminal-journal,.terminal-log,.terminal-map-canvas){background:var(--pix-bg)!important;border-color:var(--pix-border)!important}
#game-shell :is(.log-line,.log-body,.log-time,.module-caption,.v07-card p,.v07-panel p){color:var(--pix-muted)}
#game-shell .left-profile-holder :is(.meter-fill.oxygen,.meter-fill.xp){background:var(--tone-positive4882)}
#game-shell .left-profile-holder .meter-fill.hp{background:#d99b80}
.login-screen{background:#060c07}
.login-art{filter:saturate(.54) hue-rotate(30deg)}
.login-card{background:rgba(8,18,10,.96);border:1px solid #519059;border-radius:2px;box-shadow:0 0 0 2px #0c170e,0 24px 80px #000a;backdrop-filter:none}
.login-card .kicker,.login-card .brand,.login-card h1{color:var(--tone-positive4882)}
.login-card p,.login-card label,.login-card .login-hint{color:#aacbad}
.login-card :is(.auth-switch button,.auth-fields input,.auth-fields select,.auth-submit,.recovery-link){border-radius:1px!important}
.login-card .auth-switch button{background:#102517;color:#addfba;border:1px solid #5a9964}
.login-card .auth-switch button.active{background:var(--tone-positive4882);color:#16351a}
.login-card .auth-fields input{background:#071108;color:#defcde;border:1px solid #5d9564}
.login-card .auth-submit{background:#91d391;color:#0c2410;border:1px solid var(--tone-positive4882)}
:root[data-theme="light"] .login-card{background:#f1f6e9;border-color:#8cae8c}
:root[data-theme="light"] .login-card :is(h1,p,label,.kicker,.brand){color:#265936}
#game-shell .field-status-strip :is(.field-climate,.field-clear,.field-effect){color:var(--pix-text)!important;background:var(--pix-panel)!important;border:1px solid var(--pix-border)!important;border-radius:1px!important;padding:5px 7px}
#game-shell .field-status-strip .field-effect.negative{border-color:var(--pix-danger)!important}
:root[data-theme="light"] #game-shell :is(.scene-choice,.scene-module)::before,
:root[data-theme="light"] #game-shell .terminal-apps button::after{filter:brightness(.52) saturate(.95) contrast(1.2)}

/* v0.40 user-chosen images: no built-in character portraits. */
#game-shell .portrait-empty{display:grid;place-items:center;font:700 19px var(--mono);color:var(--pix-accent);background:var(--pix-panel)}
#game-shell .profile-portrait.portrait-empty{font-size:28px}
.portrait-settings{margin:16px 0;padding:12px;border:1px solid var(--pix-border);display:grid;gap:8px;background:var(--pix-panel);color:var(--pix-text)}
.portrait-settings h3{margin:0}.portrait-settings input{max-width:100%}.portrait-settings small{min-height:20px;color:var(--pix-accent)}
.ecosystem-v40{margin:12px 0;padding:12px;border:1px solid var(--pix-border);background:var(--pix-panel);display:grid;gap:8px}
.eco-v40-row{display:grid;gap:5px;border-top:1px dashed var(--pix-border);padding:8px 0;font-size:11px}.eco-v40-row small{color:var(--pix-muted)}
.eco-v40-row button{min-height:36px;border:1px solid var(--pix-border);background:var(--pix-elevated);color:var(--pix-text)}

/* v0.41 selective rare-item registry; CRT language shared with cargo app. */
.rare-register-v41{border:1px solid var(--ui-border);margin-top:12px;padding:10px;background:var(--ui-surface)}
.rare-register-v41 summary{cursor:pointer;font:11px var(--mono);letter-spacing:.04em;color:var(--ui-accent);padding:5px}
.rare-gear-row{display:flex;justify-content:space-between;align-items:center;gap:9px;padding:9px 0;border-bottom:1px dashed var(--ui-border)}
.rare-gear-row>div{display:grid;gap:4px;min-width:0}.rare-gear-row strong{font:12px var(--mono);color:var(--ui-text);overflow-wrap:anywhere}.rare-gear-row small{font-size:10px;color:var(--ui-sub)}
.rare-register-v41 button{border-radius:2px;border:1px solid var(--ui-border);padding:7px;background:var(--ui-surface);color:var(--ui-accent);cursor:pointer}
:root[data-theme="light"] .rare-register-v41{background:#e7efe5}
@media(max-width:520px){.rare-gear-row{align-items:flex-start}.rare-register-v41{padding:7px}}

.rare-shipment-box{padding:10px;border:1px solid var(--ui-border);margin:10px 0;background:var(--ui-surface)}
.rare-shipment-box>strong{font:11px var(--mono);color:var(--ui-accent)}
.rare-shipment-box time{font:10px var(--mono);color:var(--ui-sub)}

/* v0.42 clone-based growth: match the CRT/PDA design without duplicate menus */
.growth-create{border:1px solid var(--ui-border,#527363);padding:12px;margin:10px 0;min-width:0}
.growth-create legend{padding:0 6px;font-size:12px;font-weight:700}
.growth-create p{font-size:11px;margin:3px 0 10px}
.growth-create-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.growth-create-grid label{display:flex;flex-direction:column;font-size:11px;gap:5px;min-width:0}
.growth-create-grid select{width:100%;min-width:0}
.growth-invalid{color:#ea9877!important}
.growth-v42{display:grid;gap:9px;margin:16px 0;color:var(--ui-text)}
.growth-heading{display:grid;gap:3px;border-bottom:1px solid var(--ui-border);padding-bottom:8px;font:11px var(--mono)}
.growth-heading strong{color:var(--ui-accent)}.growth-heading small{color:var(--ui-sub)}
.growth-panel{display:grid;gap:9px;padding:12px;border:1px solid var(--ui-border);background:var(--ui-surface)}
.growth-panel h4{margin:0;font-size:12px}.growth-panel p{font-size:11px;margin:0;color:var(--ui-sub)}
.growth-stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.growth-stats-grid label{display:grid;gap:5px;font-size:11px}.growth-stats-grid select{width:100%;min-width:0;padding:8px;border:1px solid var(--ui-border);background:var(--ui-bg);color:var(--ui-text)}
.growth-stats-grid small{font-size:10px;color:var(--ui-sub);line-height:1.35}
.growth-set-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.growth-set-stats span{display:flex;justify-content:space-between;gap:8px;border:1px solid var(--ui-border);padding:9px;font:11px var(--mono)}
.growth-action,.growth-ability-choice{padding:10px;text-align:left;background:var(--ui-bg);color:var(--ui-text);border:1px solid var(--ui-border);cursor:pointer}
.growth-action{color:var(--ui-accent);font-weight:700;text-align:center}
.growth-ability-choice{display:grid;gap:4px}.growth-ability-choice strong{font-size:12px}.growth-ability-choice small{font-size:10px;color:var(--ui-sub)}
.growth-action:hover:not(:disabled),.growth-ability-choice:hover:not(:disabled){border-color:var(--ui-accent);box-shadow:inset 0 0 0 1px var(--ui-accent)}
.growth-action:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:520px){.growth-create-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.growth-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v0.43 clinic / rescue triage. Reuses both dark and white CRT variables. */
.medical-v43{padding:10px;border:1px solid var(--ui-border,#568b74);background:var(--ui-surface,#0b1d18);margin:12px 0;color:var(--ui-text,#c4f6c2)}
.med43-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-left:3px solid #73b88b;background:rgba(33,92,65,.22)}
.med43-header.warning{border-color:#d1aa70}.med43-header.critical{border-color:#e67a78}
.med43-header strong{font:12px var(--mono,monospace);letter-spacing:.1em;color:var(--ui-text,#c4f6c2)}
.med43-header small{font-size:10px;color:var(--ui-sub,#a4bdac)}
.med43-priority{font-size:12px;line-height:1.7;margin:10px 2px}
.med43-grid{display:grid;gap:8px}
.med43-action,.med43-rescue{display:grid;gap:7px;border:1px solid var(--ui-border,#568b74);padding:10px;background:rgba(11,34,26,.2)}
.med43-row{display:flex;justify-content:space-between;align-items:center;gap:6px;font:11px var(--mono,monospace)}
.med43-row strong{color:var(--ui-text,#c4f6c2)}.med43-row span,.med43-action small,.med43-rescue small,.med43-disclaimer,.med43-muted{color:var(--ui-sub,#a4bdac);font-size:10px;line-height:1.55}
.med43-meter{height:6px;background:#28392f;border:1px solid #51735a}.med43-meter>span{display:block;height:100%;background:#ce886f}
.med43-action button,.med43-rescue button{padding:9px;border:1px solid var(--ui-border,#568b74);color:var(--ui-accent,var(--tone-positive4882));background:transparent;font:11px var(--mono,monospace);cursor:pointer;text-align:left}
.med43-action button:hover,.med43-rescue button:hover{filter:brightness(1.22)}
.med43-block{color:#d1a17f!important}.med43-sos{margin-top:12px;display:grid;gap:8px}.med43-sos h4{margin:0;font-size:11px;letter-spacing:.08em}
.med43-disclaimer{margin:11px 0 2px}
:root[data-theme="light"] .med43-action,:root[data-theme="light"] .med43-rescue{background:rgba(194,223,202,.4)}
:root[data-theme="light"] .med43-meter{background:#c4d2c4;border-color:#a4bba8}
@media(max-width:530px){.med43-header,.med43-row{align-items:start;flex-direction:column}.medical-v43{padding:8px;margin:8px 0}.med43-action button,.med43-rescue button{min-height:42px}}

/* v0.44: compact per-clone legacy in the existing CRT PDA. */
.legacy-v44{margin:16px 0;border:1px solid var(--ui-border);padding:11px;background:var(--ui-surface)}
.legacy-v44 h4{margin:10px 0 7px;font:12px var(--mono);letter-spacing:.07em;color:var(--ui-accent)}
.legacy-entry-v44,.legacy-cache-v44{display:grid;gap:5px;border:1px solid var(--ui-border);padding:9px;margin:7px 0;min-width:0;background:rgba(60,126,85,.08)}
.legacy-entry-v44 small,.legacy-cache-v44 small{font-size:10px;color:var(--ui-sub)}
.legacy-item-v44{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;padding:5px 0;border-top:1px dashed var(--ui-border)}
.legacy-item-v44 span{font-size:11px;overflow-wrap:anywhere}
.legacy-item-v44 button{font-size:10px;padding:7px 9px;border:1px solid var(--ui-border);background:var(--ui-surface);color:var(--ui-accent);cursor:pointer}
.legacy-item-v44 button:hover,.legacy-item-v44 button:focus-visible{outline:1px solid var(--ui-accent)}

/* v0.45: party recruitment, private crew messenger and local camp request board. */
.v45-social-block{margin:10px 0 14px;border:1px solid var(--ui-border);background:var(--ui-surface);padding:10px;display:grid;gap:9px}
.v45-social-block h4{display:flex;justify-content:space-between;gap:5px;margin:0;padding:0 0 7px;border-bottom:1px solid var(--ui-border);font-size:12px;color:var(--ui-highlight)}
.v45-social-block h4 span{font:9px var(--mono);color:var(--ui-sub)}
.v45-inline-form{display:flex;gap:6px;flex-wrap:wrap}
.v45-inline-form input,.v45-inline-form select{flex:1 1 115px;min-width:0;max-width:100%;background:var(--ui-panel);border:1px solid var(--ui-border);color:var(--ui-text);padding:9px;font-size:11px}
.v45-inline-form button,.v45-social-row button,.v45-quiet-btn{border:1px solid var(--ui-line);background:var(--ui-panel);color:var(--ui-text);padding:8px 10px;font:10px var(--mono);cursor:pointer}
.v45-social-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 0;border-bottom:1px dashed var(--ui-border);color:var(--ui-text)}
.v45-social-row div{min-width:0;display:grid;gap:4px;overflow-wrap:anywhere}.v45-social-row strong{font-size:11px}.v45-social-row small{font-size:10px;color:var(--ui-sub)}
.v45-social-row button:disabled{opacity:.4;cursor:not-allowed}.v45-msg-feed{max-height:290px;overflow:auto;display:grid;gap:7px}
.v45-party-msg{display:grid;grid-template-columns:1fr auto;gap:3px 8px;align-items:start;padding:9px;border:1px solid var(--ui-border);background:var(--ui-panel);overflow-wrap:anywhere}
.v45-party-msg b{grid-column:1/-1;color:var(--ui-accent);font-size:10px}.v45-party-msg span{grid-column:1/-1;color:var(--ui-text);font-size:11px}.v45-party-msg time{grid-column:1/-1;color:var(--ui-sub);font:9px var(--mono)}
.v45-party-msg.mine{border-left:3px solid #6fc27f}
@media(max-width:520px){.v45-social-block{padding:7px}.v45-inline-form button{min-height:40px}.v45-social-row button{min-height:40px}}

/* v0.46 mobile usability and accessible beta controls. No change to server rules. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.readiness-v46{border:1px solid var(--pix-border,var(--ui-border));background:var(--pix-panel,var(--ui-panel));padding:10px;margin:12px 0;display:grid;gap:9px;color:var(--pix-text,var(--ui-text))}
.readiness-v46-head{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:12px}
.readiness-v46-head strong{color:var(--pix-text,var(--ui-text))}.readiness-v46-head span{color:var(--ui-accent);font-family:var(--mono)}
.readiness-v46 ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}.readiness-v46 li{border-left:2px solid #d6ab71;padding:4px 7px;font-size:11px;line-height:1.5}.readiness-v46 li strong{display:block;color:var(--pix-text,var(--ui-text))}
.readiness-v46 p{font-size:11px;line-height:1.6;margin:0}.readiness-v46 small{font-size:10px;color:var(--pix-muted,var(--ui-sub));line-height:1.5}
/* Large-type mode intentionally targets dense small text, including legacy cards. */
:root[data-readability="large"] #game-shell :is(.terminal-screen,.left-sidebar,.main-column,.scene-module,.readiness-v46,.v45-social-block){font-size:15px!important;line-height:1.65}
:root[data-readability="large"] #game-shell :is(.terminal-screen,.left-sidebar,.main-column,.scene-module,.readiness-v46,.v45-social-block) :is(small,.module-caption,p,li,button,input,textarea,select,label){font-size:14px!important;line-height:1.55}
:root[data-readability="large"] #game-shell .terminal-screen .terminal-screen-title{font-size:14px!important}
/* CSS animated scanlines and smooth transitions can be uncomfortable. */
:root[data-motion="reduced"] *, :root[data-motion="reduced"] *::before,:root[data-motion="reduced"] *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
#game-shell :is(button,[role="button"],input,select,textarea):focus-visible{outline:3px solid var(--pix-focus,var(--ui-accent))!important;outline-offset:3px!important}
:root[data-theme="light"] #game-shell .readiness-v46{background:#e0eddc;color:#234a2b}
@media(max-width:740px){
  #game-shell{padding-bottom:calc(70px + env(safe-area-inset-bottom,0px))}
  .mobile-jump{position:fixed!important;top:auto!important;bottom:0;left:0;right:0;z-index:90;display:flex!important;padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px));box-shadow:0 -5px 22px #0008}
  .mobile-jump button{min-height:48px!important;touch-action:manipulation;border-radius:2px;white-space:nowrap}
  .mobile-jump button[aria-current="true"]{outline:2px solid var(--pix-focus,var(--ui-accent));outline-offset:-4px;background:var(--ui-surface)}
  #game-shell :is(.scene-choice,.scene-module,.exit-button,.terminal-apps button,.terminal-dock-physical button,.v45-inline-form button,.terminal-subtabs button){min-height:44px}
  .main-column,.right-sidebar,.left-sidebar,.terminal-display{min-width:0;overflow-wrap:anywhere}
  #game-shell :is(.terminal-screen,.main-column,.left-sidebar) input{max-width:100%}
  .location-section,.field-terminal,.left-profile-holder{scroll-margin-top:12px}
  .topbar-right{flex-wrap:wrap;justify-content:flex-end}
}
@media(max-width:450px){.topbar{height:auto;min-height:58px}.topbar .brand{font-size:18px}.topbar-right .theme-switch{font-size:10px;padding:5px}.topbar-right .small-exit{font-size:10px}.growth-stats-grid{grid-template-columns:1fr 1fr}}

/* v0.47: controls in the existing CRT communication panel */
.moderation-v47{margin:12px 0;padding:10px;border:1px solid var(--ui-border);background:var(--ui-surface)}
.moderation-v47 summary{cursor:pointer;color:var(--ui-accent);font-size:12px;font-weight:700}
.moderation-form-v47{display:grid;gap:7px;margin:12px 0}
.moderation-form-v47 label{font-size:11px;color:var(--ui-sub)}
.moderation-form-v47 input,.moderation-form-v47 select,.moderation-form-v47 textarea{max-width:100%;min-width:0;width:100%;box-sizing:border-box;background:var(--ui-surface);border:1px solid var(--ui-border);color:var(--ui-text);font-size:12px;padding:8px}
.moderation-block-row{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--ui-border);padding:7px 0;font-size:12px}
.moderation-block-row strong,.moderation-block-row small{display:block;color:var(--ui-text)}
.moderation-block-row small{color:var(--ui-sub);font-size:10px}
#moderation-status-v47{font:10px var(--mono);color:var(--ui-sub)}
