/* Optional UI additions: loaded after game.css; no global redesign. */
.game_site .enhancement_sr_only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.game_site #ai-title-word { display:inline-block; inline-size:11ch; white-space:nowrap; vertical-align:bottom; }
.game_site .ambient_led { animation:none; }
.game_site .ambient_led.ambient_red { background:var(--danger); fill:var(--danger); opacity:1; animation:none; }
.game_site .server_art .status_led { animation:none; }
.game_site .server_art.ambient_working .fan { animation:ambient_fan_turn .4s linear 3; transform-box:fill-box; transform-origin:center; }
.game_site .server_art.ambient_working > rect[x="4"], .game_site .server_art.ambient_working .status_led { fill:var(--danger); opacity:1; }
@keyframes ambient_fan_turn { to {transform:rotate(360deg)} }
.game_site .machine_stage { position:relative; }
.game_site .ambient_quip { position:absolute; inset-block-start:44px; inset-inline-end:12px; z-index:2; max-inline-size:min(260px,75%); padding:9px 12px; border:2px solid var(--accent); background:var(--panel); color:var(--text); box-shadow:3px 3px 0 var(--shadow); font-size:11px; line-height:1.6; overflow-wrap:anywhere; pointer-events:none; animation:ambient_quip_puff .2s ease-out 1; }
@keyframes ambient_quip_puff { from {opacity:0; transform:translateY(5px) scale(.96)} to {opacity:1; transform:none} }
.game_site .tab_new_indicator { display:inline-flex; align-items:center; margin-inline-start:6px; }
.game_site .tab_new_indicator i { display:inline-block; inline-size:6px; block-size:6px; background:var(--danger); box-shadow:0 0 0 1px var(--bg); }
.game_site .tab_unlocked_shake { animation:tab_unlock_once .48s ease-out 1; }
@keyframes tab_unlock_once { 20%,60% {transform:translateX(-3px)} 40%,80% {transform:translateX(3px)} 0%,100% {transform:translateX(0)} }
.game_site .fact_popup { position:fixed; inset:auto 20px 20px auto; z-index:45; width:min(430px,calc(100vw - 28px)); max-height:min(65vh,620px); overflow:auto; overscroll-behavior:contain; padding:20px; background:var(--panel); color:var(--text); border:2px solid var(--accent); box-shadow:5px 5px 0 var(--shadow); font-size:13px; }
.game_site .fact_heading { display:flex; align-items:start; justify-content:space-between; gap:12px; }
.game_site .fact_heading .eyebrow { font-size:10px; }
.game_site .fact_heading button { flex-shrink:0; font-size:11px; min-height:32px; }
.game_site .fact_popup h2 { font-size:16px; line-height:1.6; margin-block:10px; }
.game_site .fact_popup p { margin-block:10px; }
.game_site .fact_aside { border-inline-start:2px solid var(--accent); padding-inline-start:12px; color:var(--muted); }
.game_site .fact_popup a { overflow-wrap:anywhere; }
.game_site .network_operations { padding:16px 20px; border-block:1px solid var(--border); background:var(--panel-alt); }
.game_site .network_operations h3 { font-size:13px; margin-block:0 10px; }
.game_site .network_operations h3:not(:first-child) { margin-block-start:18px; }
.game_site .agent_summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin:0 0 12px; }
.game_site .agent_summary div { padding:8px; border:1px solid var(--border); background:var(--panel); }
.game_site .agent_summary dt { font-size:10px; color:var(--muted); overflow-wrap:anywhere; }
.game_site .agent_summary dd { margin:2px 0 0; font-weight:700; font-size:20px; color:var(--accent); }
.game_site .active_mission { padding:12px; margin-block:8px; border-inline-start:3px solid var(--accent); background:var(--panel); }
.game_site .active_mission h4 { margin:0 0 6px; font-size:12px; }
.game_site .active_mission p { margin:0 0 8px; font-size:12px; }
.game_site .active_mission progress { display:block; width:100%; height:10px; accent-color:var(--accent); }
.game_site .mission_result { font-size:12px; margin:0; }
.game_site .worker_status { font-size:11px; color:var(--muted); margin-block:8px; }
.game_site .mission_status p { font-size:11px; margin-block:6px; line-height:1.6; }
.game_site .mission_requirements { font-weight:700; }
.game_site .mission_reason { color:var(--accent); }
.game_site .mission_unavailable .mission_reason { color:var(--muted); }
.game_site .assign_controls { flex-wrap:wrap; justify-content:flex-start; max-width:100%; }
.game_site .assign_controls > span { flex-basis:100%; order:-1; }
.game_site .assign_controls .card_action { width:auto; min-width:90px; flex:1 1 90px; white-space:normal; font-size:10px; }
@media(max-width:640px) {
    .game_site .network_operations { padding:14px; }
    .game_site .agent_summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .game_site .fact_popup { inset:auto 14px 14px auto; max-height:52vh; padding:14px; }
}
@media(prefers-reduced-motion:reduce) {
    .game_site .tab_unlocked_shake {animation:none!important; transform:none!important;}
    .game_site .ambient_led.ambient_red { background:var(--accent); fill:var(--accent); }
    .game_site .server_art.ambient_working .fan { animation:none!important; transform:none!important; }
    .game_site .server_art.ambient_working > rect[x="4"] { fill:var(--screen); }
    .game_site .server_art.ambient_working .status_led { fill:var(--accent); }
    .game_site .ambient_quip { display:none!important; animation:none!important; transform:none!important; }
}
