/* UI 0.48.4: active theme tokens, fixed pin geometry, compact interactions. */
:root{--map-fog484:#718478;--map-fog-line484:#a1b7a7;--reaction-bezel484:#414d47;--reaction-edge484:#77867b}
:root[data-theme="light"]{--map-fog484:#b0c3bc;--map-fog-line484:#788f83;--reaction-bezel484:#acb5a8;--reaction-edge484:#7e8c81}
/* A colored opaque fog blocks unobserved terrain; the CRT scanlines remain subtle. */
.pan-map .map-fog-fill484{fill:var(--map-fog484)!important}
:root #game-shell :is(#terminal-map-canvas,#radar-canvas) .route-point>.map-pin484{fill:var(--ui-accent)!important;stroke:var(--ui-accent)!important;stroke-width:1.5!important;filter:none!important;transform:none!important}
:root #game-shell :is(#terminal-map-canvas,#radar-canvas) .route-point>.map-pin484[fill="none"]{fill:none!important}
:root #game-shell :is(#terminal-map-canvas,#radar-canvas) .route-point.active>.map-pin484{fill:var(--ui-text)!important;stroke:var(--ui-text)!important}
:root #game-shell :is(#terminal-map-canvas,#radar-canvas) .route-point>.selection-ring{fill:none!important;stroke:var(--ui-accent)!important;stroke-width:2!important;filter:none!important;transform:none!important;display:none!important}
:root #game-shell :is(#terminal-map-canvas,#radar-canvas) .route-point:is(.route-selected,:focus-visible)>.selection-ring{display:block!important}
#game-shell #pda-route-story{padding:8px 0!important;margin:0!important;border:0!important;background:none!important}
#game-shell .map-current484>strong{font-size:11px;display:block;margin-bottom:3px}
#game-shell .map-brief484{margin:4px 0 0!important;font-size:10px!important;line-height:1.5!important;word-break:keep-all;overflow-wrap:anywhere}
#game-shell #route-observations484{margin:7px 0!important;border:1px solid var(--ui-border);padding:8px;background:var(--map-paper);color:var(--ui-text);min-width:0}
#game-shell #route-observations484>summary{font-weight:700;font-size:11px;cursor:pointer;line-height:1.5}
#game-shell #route-observations484>.pda-search{margin:8px 0!important;width:100%;min-width:0;box-sizing:border-box}
#game-shell #terminal-map-index{display:grid!important;grid-template-columns:1fr!important;gap:5px}
#game-shell #terminal-map-index .route-list-item{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:4px;text-align:left;padding:6px 7px}
#game-shell #terminal-map-index .route-list-item strong{font-size:10px!important}
#game-shell #terminal-map-index .route-list-item small{font-size:9px!important}
#game-shell #route-selected-detail484{margin-top:9px;padding:8px;border:1px solid var(--ui-border);background:var(--shell-panel);color:var(--ui-text);min-width:0}
#game-shell #route-selected-detail484>summary{cursor:pointer;font-size:10px;font-weight:700;line-height:1.6}
#game-shell #route-selected-detail484 #regional-guide-v478{margin:0!important;border:0!important;padding:6px 0 0!important;min-width:0}
#game-shell #regional-guide-v478 h4{font-size:10px!important;margin:10px 0 3px!important}
#game-shell #regional-guide-v478 p,#game-shell #regional-guide-v478 small{font-size:10px!important;line-height:1.5!important;margin:3px 0;word-break:keep-all;overflow-wrap:anywhere}
#game-shell .regional-stats481{display:flex!important;flex-wrap:wrap!important;gap:3px 8px;font-size:9px!important;line-height:1.5!important}
#game-shell .regional-stats481 b{font-size:9px}
/* No activating input outline or glow. Labels, caret and a slight surface change
   indicate editing; keyboard focus on buttons/links is deliberately retained. */
:root :is(input:not([type="checkbox"]):not([type="radio"]),textarea,select):is(:focus,:focus-visible){outline:0!important;outline-offset:0!important;box-shadow:none!important}
:root .crt-input:focus-within{outline:0!important;box-shadow:none!important}
:root #game-shell :is(input:not([type="checkbox"]):not([type="radio"]),textarea,select):focus{border-color:var(--ui-border)!important;caret-color:var(--ui-text);background-color:var(--shell-input)!important}
/* Consistent title-level icon navigation for all colony services. */
#game-shell [data-terminal-screen="colony"] .pda-app-heading{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-bottom:10px}
#game-shell [data-terminal-screen="colony"] .colony-tabs{display:flex!important;flex:1 1 auto;justify-content:flex-end;gap:4px!important;flex-wrap:wrap}
#game-shell .colony-tabs>button{width:30px!important;min-width:30px!important;height:30px!important;min-height:30px!important;padding:5px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}
#game-shell .colony-tabs .action-icon484{width:18px;height:18px}
#game-shell .colony-page :is(.v24-hub-list,.v29-unified,.v45-social-row,.camp478-row,.research-evidence,.project-row){min-width:0!important;max-width:100%;box-sizing:border-box;writing-mode:horizontal-tb;word-break:keep-all;overflow-wrap:anywhere}
#game-shell .colony-page :is(.v24-hub-list,.v29-unified){display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:7px!important}
#game-shell .colony-page :is(.v29-unified span,.v29-unified b){flex:none!important;white-space:normal!important;line-height:1.5!important}
#game-shell .colony-page :is(.v45-social-row,.camp478-row,.research-evidence,.project-row){display:flex;flex-wrap:wrap;gap:7px}
#game-shell .colony-page :is(.v45-social-row,.camp478-row)>div{flex:1 1 150px;min-width:0}
#game-shell .colony-page :is(h3,h4){margin-top:13px!important;margin-bottom:7px!important;font-size:11px!important;line-height:1.5!important}
#game-shell .colony-page :is(.system-view,.v24-hub,.camp478){background:var(--shell-panel)!important;color:var(--ui-text)!important;border-color:var(--ui-border)!important}
#game-shell .colony-page :is(small,.research-cost,.project-cost,.module-caption){font-size:9px!important;line-height:1.5!important;white-space:normal!important}
#game-shell .colony-page .row-actions{display:flex;flex-wrap:wrap;gap:5px}
#game-shell .colony-page form{max-width:100%;min-width:0}
#game-shell .colony-page :is(input,select,textarea){min-width:0;max-width:100%;box-sizing:border-box}
/* One icon spans the bold name and description; no ornamental diamonds. */
#game-shell .scene-module-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important;align-items:stretch}
#game-shell .scene-module{display:grid!important;grid-template-columns:24px minmax(0,1fr)!important;gap:9px!important;align-items:center!important;justify-content:start!important;text-align:left!important;padding:7px 9px!important;min-height:0!important;height:auto!important;margin:0!important}
#game-shell .action-icon484{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;flex:none;align-self:center}
#game-shell .action-icon484 svg{display:block;width:100%;height:100%;margin:0;position:static;transform:none}
#game-shell .action-copy484{display:block;min-width:0;text-align:left}
#game-shell .scene-module .action-copy484>strong{display:block!important;text-align:left!important;font-weight:700!important;font-size:11px!important;line-height:1.35!important;white-space:normal!important;margin:0!important;padding:0!important}
#game-shell .scene-module .action-copy484>small{display:block!important;text-align:left!important;font-weight:400!important;font-size:10px!important;line-height:1.4!important;white-space:normal!important;margin:2px 0 0!important;padding:0!important;word-break:keep-all;overflow-wrap:anywhere}
/* TV frame and a nonanimated glass overlay; never intercepts interaction. */
:root #game-shell #reaction-window.reaction-tv484{position:relative;isolation:isolate;border:7px solid var(--reaction-bezel484)!important;outline:1px solid var(--reaction-edge484);outline-offset:0;border-radius:13px!important;background:var(--map-paper)!important;box-shadow:inset 0 0 0 1px var(--ui-border),inset 0 0 14px rgba(0,0,0,.16),0 2px 0 var(--reaction-edge484);padding:12px!important;overflow:clip;scroll-margin-top:64px;min-height:72px;margin:12px 0!important;color:var(--ui-text)!important}
#game-shell #reaction-window.reaction-tv484::after{content:"";position:absolute;inset:0;border-radius:6px;pointer-events:none;z-index:8;opacity:.12;background:repeating-linear-gradient(0deg,transparent 0 2px,rgba(40,54,44,.5) 2px 3px),radial-gradient(ellipse at 50% 40%,transparent 50%,rgba(0,0,0,.25) 100%)}
#game-shell #reaction-window :is(.reaction-detail,.scene-deck,#scene-root){min-width:0;max-width:100%;background:transparent!important}
#game-shell #cat-scene484 p{font-size:11px;line-height:1.6;word-break:keep-all}
#game-shell #cat-scene484 :is(.cat-state484,#cat-wait484){font-size:10px;color:var(--ui-sub);margin:7px 0}
#game-shell #threshold-reveal484{padding:8px 0;border-top:1px solid var(--ui-border);margin-top:7px}
#game-shell #threshold-reveal484 strong{font-size:11px}
#game-shell #threshold-reveal484 :is(p,small){font-size:10px;line-height:1.65;word-break:keep-all;display:block;margin:6px 0}
#game-shell #descent-warning484{font-size:10px;line-height:1.5;border-left:2px solid var(--shell-danger);padding-left:7px;margin:6px 0 10px;color:var(--ui-text)}
/* The environment line is between exits and prose, directly above the prose. */
:root #game-shell .location-section>.environment-strip{display:flex!important;align-items:baseline!important;flex-wrap:wrap!important;gap:3px 7px!important;margin:8px 0 4px!important;padding:0!important;border:0!important;background:none!important;font-size:10px!important;line-height:1.45!important}
:root #game-shell .environment-strip>span:first-child{margin-right:4px;font-weight:700;white-space:nowrap}
:root #game-shell .environment-strip :is(b,span){font-size:10px!important;line-height:1.45!important}
:root #game-shell #place-description{margin:0 0 8px!important;line-height:1.6!important}
#invite-list484 .invite-row484{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:8px 0;padding:7px;border:1px solid var(--ui-border)}
#invite-grant484{margin-top:18px;padding-top:10px;border-top:1px solid var(--ui-border)}
#invite-grant484 label{display:block;margin:8px 0}#invite-grant484 input{margin-left:8px;max-width:200px}
@media(max-width:600px){#game-shell .scene-module-grid{grid-template-columns:minmax(0,1fr)!important}#game-shell #reaction-window.reaction-tv484{padding:9px!important;border-width:6px!important}#game-shell .colony-tabs{justify-content:flex-start!important}}
/* Retired CSS generated a second pseudo-icon, occupying a grid cell and forcing
   the copy into the 24px column. Explicit positions retire that old layout. */
:root #game-shell .scene-module::before{content:none!important;display:none!important}
:root #game-shell .scene-module{grid-template-rows:auto!important;grid-auto-flow:row!important;letter-spacing:normal!important}
:root #game-shell .scene-module>.action-icon484{grid-column:1!important;grid-row:1!important}
:root #game-shell .scene-module>.action-copy484{grid-column:2!important;grid-row:1!important;width:100%!important;min-width:0!important}
:root #game-shell .environment-strip .env-sep{display:inline!important}
:root #game-shell #cat-scene484{display:block}
:root #game-shell #cat-scene484.hidden{display:none!important}
:root #game-shell #cat-scene484 h3{margin:4px 0 9px!important}
:root #game-shell #cat-scene484>p{margin:6px 0 10px!important}
:root #game-shell .scene-module:focus-visible{outline:2px solid var(--ui-accent)!important;outline-offset:2px!important}
:root #game-shell #route-fauna-inset[hidden],:root #game-shell #route-map-detail[hidden],:root #game-shell #descent-warning484[hidden]{display:none!important}
:root #game-shell #terminal-map-index [data-route-select]{color:var(--ui-text)!important;border-color:var(--ui-border)!important;background:var(--shell-panel)!important;outline:0!important;box-shadow:none!important}
:root #game-shell #terminal-map-index [data-route-select][aria-pressed="true"]{border-color:var(--ui-accent)!important;background:var(--shell-input)!important}
:root #game-shell #terminal-map-index [data-route-select]:focus-visible{outline:1px solid var(--ui-accent)!important;outline-offset:1px!important}
:root #game-shell .pda-map-toolbar label{color:var(--ui-sub)!important}
:root #game-shell :is(#terminal-map-canvas,#radar-canvas) .route-point>.map-hit484{fill:transparent!important;stroke:none!important;stroke-width:0!important;pointer-events:all!important}
:root #game-shell :is(#terminal-map-canvas,#radar-canvas) .route-point{pointer-events:bounding-box}
/* This formerly duplicated guide is now the sole nested detail, not retired UI. */
:root #game-shell #route-selected-detail484 #regional-guide-v478{display:block!important}
:root #game-shell #terminal-map-index .route-list-item.hidden{display:none!important}
:root #game-shell #route-empty484[hidden]{display:none!important}
:root body #game-shell :is(input:not([type="checkbox"]):not([type="radio"]),textarea,select):is(:focus,:focus-visible){outline:none!important;outline-offset:0!important;box-shadow:none!important}
/* The old mobile sidebar kept a 690px height while its PDA grew to 850px,
   making the physical keys overlap Support. Let the container follow its child. */
@media(max-width:740px){:root body #game-shell .right-sidebar{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;flex:none!important}:root body #game-shell .field-terminal{position:relative!important;top:auto!important}:root body #game-shell .terminal-dock-physical{position:relative!important;bottom:auto!important}}

/* Combat actions use the same one-icon, two-line vocabulary as field actions. */
:root #game-shell .combat-choice:not(.anatomy-part){display:grid!important;grid-template-columns:22px minmax(0,1fr)!important;grid-template-rows:auto!important;gap:8px!important;padding:7px 8px!important;min-height:0!important;text-align:left!important;align-items:center!important;justify-content:start!important}
:root #game-shell .combat-choice:not(.anatomy-part)::before{content:none!important}
:root #game-shell .combat-choice:not(.anatomy-part)>.action-icon484{grid-column:1;grid-row:1}
:root #game-shell .combat-choice:not(.anatomy-part)>.action-copy484{grid-column:2;grid-row:1}
:root #game-shell .combat-choice:not(.anatomy-part) strong{display:block;font-size:11px!important;margin:0!important;text-align:left!important}
:root #game-shell .combat-choice:not(.anatomy-part) small{display:block;font-size:10px!important;line-height:1.4!important;margin:2px 0 0!important;text-align:left!important;word-break:keep-all}
