/* Shared orange headers and dialog bodies. */
.turn-dock .save-status {display:block;width:100%;max-width:none;margin:14px 0 0;padding:0 12px;color:var(--fg-muted);font-size:var(--text-meta);line-height:1.4;white-space:nowrap;}
.game-credits>.credits-byline {margin:4px 0 26px;font-size:var(--text-body);line-height:1.6;color:var(--fg);}
.game-credits a {color:inherit;text-decoration:underline;text-underline-offset:3px;}
body.menu-child-open .turn-dock {visibility:hidden;}
body.strategy-game #sim-dialog.menu-sheet {position:fixed;inset:var(--game-chrome-height,58px) 0 0 auto;display:flex;flex-direction:column;width:clamp(340px,32vw,460px);height:calc(100dvh - var(--game-chrome-height,58px));max-width:100%;max-height:calc(100dvh - var(--game-chrome-height,58px));margin:0;padding:0;border:2px solid var(--accent);border-radius:18px 18px 9px 0;background:var(--canvas);color:var(--fg);box-shadow:none;overflow:hidden;}
body.strategy-game #sim-dialog.menu-sheet:not([open]) {display:none;}
#sim-dialog.menu-sheet::backdrop {background:transparent;backdrop-filter:none;}
#sim-dialog.menu-sheet .menu-page-content {flex:1;min-height:0;min-width:0;padding:18px 16px 24px;overflow-y:auto;overflow-x:hidden;font-size:var(--text-meta);line-height:1.5;}
#sim-dialog.menu-sheet .menu-page-content>h2,#sim-dialog.menu-sheet .menu-page-content>.sound-page>h2 {display:none;}
#sim-dialog.menu-sheet .phone-sheet {display:block;width:100%;height:auto;min-height:0;max-height:none;overflow:visible;}
#sim-dialog.menu-sheet .phone-sheet>header {padding:0!important;margin:0 0 16px;}
#sim-dialog.menu-sheet .phone-sheet>header>h2 {display:none;}
#sim-dialog.menu-sheet .phone-sheet-body,#sim-dialog.menu-sheet .phone-sheet-footer {display:block;min-width:0;width:100%;max-height:none;overflow:visible;padding:0;}
#sim-dialog.menu-sheet .phone-sheet-footer {margin-top:18px;}
#sim-dialog.menu-sheet .phone-choice {width:100%;min-width:0;margin:0 0 10px;padding:14px;text-align:left;display:flex;justify-content:space-between;gap:12px;}
#sim-dialog.menu-sheet .saved-games {max-height:none;overflow:visible;}
#sim-dialog.menu-sheet .reference-heading {display:none;}
#sim-dialog.menu-sheet .reference-layout {grid-template-columns:1fr;gap:12px;}
#sim-dialog.menu-sheet .reference-layout nav {height:180px;}
#sim-dialog.menu-sheet .reference-layout article {height:auto;border:0;padding:0;}
#sim-dialog.menu-sheet :is(button,input,select,textarea) {max-width:100%;box-sizing:border-box;}
.sound-page {width:100%;min-width:0;}
.sound-page .audio-controls {justify-content:space-between;}
.sound-page .audio-controls input[data-volume] {display:block;width:min(180px,65%);min-width:0;}
.sound-page .sound-settings {gap:24px;margin:26px 0 0;}
.sound-page .sound-settings label {grid-template-columns:minmax(0,1fr) auto;min-width:0;gap:8px;}
.sound-page .sound-settings input {width:100%;min-width:0;margin:0;min-height:30px;padding:0;}
@media(max-width:700px) {
 body.strategy-game #sim-dialog.menu-sheet {left:0;right:0;width:100%;border-radius:16px 16px 22px 22px;}
}
@media(min-width:701px) and (max-width:999px) {body.strategy-game #sim-dialog.menu-sheet {border-bottom-right-radius:22px;}}


/* One header geometry and interaction across menus, choices and dialogs. */
#simulation .sheet-heading,#sim-dialog .sheet-heading {position:relative;display:flex;align-items:center;gap:4px;flex:none;width:100%;min-height:76px;padding:8px 14px;background:var(--accent);color:var(--accent-on);box-sizing:border-box;touch-action:none;cursor:pointer;}
:is(#simulation,#sim-dialog) .sheet-heading>.turn-grip {position:absolute;left:calc(50% - 18px);top:7px;width:36px;height:3px;border-radius:2px;background:currentColor;opacity:.25;pointer-events:none;}
:is(#simulation,#sim-dialog) .sheet-heading>.sheet-dismiss {display:flex;align-items:center;gap:12px;flex:1;min-width:0;min-height:60px;width:auto;margin:0;padding:10px 12px;border:0;border-radius:8px;background:transparent;box-shadow:none;color:inherit;text-align:left;touch-action:none;}
:is(#simulation,#sim-dialog) .sheet-heading .sheet-titles {flex:1;min-width:0;}
:is(#simulation,#sim-dialog) .sheet-heading .sheet-title {display:block;margin:0;padding:0;font-size:18px;font-weight:650;line-height:1.3;color:inherit;}
:is(#simulation,#sim-dialog) .sheet-heading .sheet-subtitle {display:block;margin:4px 0 0;font-size:var(--text-meta);line-height:1.4;color:inherit;opacity:.8;}
:is(#simulation,#sim-dialog) .sheet-heading>.nav-back {position:static;display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;min-width:44px;min-height:44px;margin:0;padding:11px;transform:none;border:0;background:transparent;box-shadow:none;color:var(--accent-on)!important;}
:is(#simulation,#sim-dialog) .sheet-heading>.nav-back>svg {display:block;width:22px;height:22px;}
:is(#simulation,#sim-dialog) .sheet-heading button:focus-visible {outline:2px solid var(--accent-on);outline-offset:-2px;}
@media(max-width:700px),(pointer:coarse) and (max-height:500px) {
 #simulation .sheet-heading,#sim-dialog .sheet-heading {padding:6px 10px;min-height:70px;}
 :is(#simulation,#sim-dialog) .sheet-heading>.sheet-dismiss {min-height:58px;padding:10px;}
 :is(#simulation,#sim-dialog) .sheet-heading .sheet-title {font-size:16px;}
}
/* Switching a menu page keeps its orange frame opaque and stationary. */
#sim-dialog.menu-sheet[open],#sim-dialog.menu-sheet::backdrop {animation:none;}

#sim-dialog.menu-sheet .phone-choice {border:0;border-bottom:1px solid var(--border-subtle);border-radius:0;background:none;color:var(--fg);align-items:center;}
#sim-dialog.menu-sheet .phone-choice strong {font-size:var(--text-body);font-weight:600;}
#sim-dialog.menu-sheet .menu-page-content p {white-space:normal;overflow-wrap:anywhere;}

/* Saved runs form one compact scrolling list on every device. */
#sim-dialog.menu-sheet [data-library-status]:empty {display:none;}
#sim-dialog.menu-sheet .saved-games {display:grid;gap:8px;margin-top:14px;}
#sim-dialog.menu-sheet .saved-game {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:0;margin:0;padding:0;border:1px solid var(--border-subtle);border-radius:var(--choice-radius);background:var(--surface);}
#sim-dialog.menu-sheet .saved-game .saved-game-load {height:100%;border:0;border-radius:11px;text-align:left;}
#sim-dialog.menu-sheet .saved-game [data-delete-save] {align-self:center;min-width:52px;min-height:44px;margin:0 6px 0 0;padding:8px;font-size:var(--text-meta);border:0;border-left:1px solid var(--border-subtle);border-radius:0;background:transparent;color:var(--accent);}
#sim-dialog.menu-sheet .saved-game [data-delete-save]:hover {background:var(--accent-soft);border-radius:8px;}
#sim-dialog.menu-sheet .saved-game:has(.saved-game-load:hover) {border-color:var(--border-strong);}
#sim-dialog.menu-sheet:has(.saved-games) .menu-page-content>p {margin:0;font-size:var(--text-meta);line-height:1.5;}

#sim-dialog.menu-sheet .commit-dialog {display:block;min-height:0;max-height:none;width:100%;}
#sim-dialog.menu-sheet .commit-dialog .commit-body {display:block;min-height:0;max-height:none;overflow:visible;padding:0;}
#sim-dialog.menu-sheet .commit-dialog .commit-cancel {position:static;width:100%;margin-top:16px;}
#sim-dialog.menu-sheet .commit-dialog .commit-consequences {margin:16px 0;}

/* Event stories fill the same sheet as work and research. */
#simulation .decision-scroll .city-incidents {position:static;inset:auto;width:100%;max-width:none;margin:0;padding:0;overflow:visible;letter-spacing:normal;text-transform:none;}
#simulation .decision-scroll .city-incidents article {padding:0;border:0;}
#simulation .decision-scroll .city-incidents h2 {font-size:18px;line-height:1.35;font-weight:650;letter-spacing:normal;margin:0 0 12px;}
#simulation .decision-scroll .city-incidents p {font-size:var(--text-meta);line-height:1.5;letter-spacing:normal;}
#simulation .decision-scroll .city-incidents .response-options {display:grid;grid-template-columns:minmax(0,1fr);gap:8px;}
#simulation .decision-scroll .event-response {align-items:stretch;}
#simulation .decision-scroll .event-response>strong {font-size:16px;font-weight:650;color:var(--fg);}
#simulation .decision-scroll .event-response .choice-formula {width:100%;}
@media(max-width:700px),(pointer:coarse) and (max-height:500px) {
 #simulation .decision-scroll .city-incidents h2 {font-size:16px;}
 #simulation .decision-scroll .event-response>strong {font-size:var(--text-meta);}
}

/* Reading text and action names do not shrink with the phone layout. */
:is(#simulation,#sim-dialog) .decision-label strong,
#simulation .decision-scroll .event-response>strong {font-size:16px;}
:is(#simulation,#sim-dialog) .decision-body p,
#simulation .decision-scroll .city-incidents p,
#sim-dialog.menu-sheet .menu-page-content,
#sim-dialog.menu-sheet .menu-page-content>p {font-size:var(--text-body);line-height:1.5;}
:is(#simulation,#sim-dialog) .decision-label small,
:is(#simulation,#sim-dialog) .card-meta {font-size:var(--text-meta);}

/* A long explanation remains reachable instead of being cropped by the scene. */
#simulation :is(.headline-metrics,.phone-resources,.city-overview) [data-resource-help]>[data-floating-help] {
 position:fixed!important;inset:auto!important;left:var(--help-left)!important;top:var(--help-top)!important;
 right:auto!important;bottom:auto!important;width:var(--help-width)!important;max-width:var(--help-width)!important;
 max-height:var(--help-height)!important;box-sizing:border-box;overflow:auto!important;overscroll-behavior:contain;
 scrollbar-gutter:stable;touch-action:pan-y;
}
#simulation .city-overview .city-capacity-note {cursor:help;}
#simulation .city-overview .city-capacity-note:focus-visible {outline:2px solid var(--accent);outline-offset:4px;border-radius:3px;}
#simulation .city-overview:has(.help-pinned) {z-index:45;}
@media(hover:hover) {#simulation .city-overview:has([data-resource-help]:hover) {z-index:45;}}
