/* Dark teal public game shell. Deliberately independent of the admin interface. */
body.game-body {
  --paper:#162d35; --paper-muted:#203d48; --forest:#e0eef4; --forest-soft:#a1bac6;
  --lime:#204e53; --hairline:#2d4c59; --shell-shadow:0 8px 28px #00151f38;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  color:var(--forest);
}
.game-body :is(button,a,select):focus-visible {outline:3px solid #6ac5ed;outline-offset:3px}
.game-body :is(.topbar.glass,.side.glass,.map-controls.glass,.mini-map-dock.glass) {
  background:var(--paper)!important;color:var(--forest);border:1px solid #375463;
  box-shadow:var(--shell-shadow);backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
}
.game-body .topbar {top:20px;left:24px;right:24px;height:68px;padding:9px 14px;gap:18px;border-radius:20px}
.game-body .brand {min-width:190px;gap:10px}
.game-body .brand-mark {width:42px;height:42px;border:0;box-shadow:none;background:transparent}
.game-body .brand-mark img {width:100%;height:100%;object-fit:contain}
.game-body .brand strong {font-size:19px;letter-spacing:-.8px;color:var(--forest)}
.game-body .brand small {font-size:9px;letter-spacing:1.5px;color:var(--forest-soft)}
.game-body .world-nav {background:#102832;border:0;box-shadow:none;border-radius:13px;padding:4px;min-height:44px}
.game-body .world-nav :is(a,button) {color:var(--forest-soft);font-size:10px;min-height:36px}
.game-body .world-nav :is(a,button).active {background:#234450;color:var(--forest);border-color:#375a69;box-shadow:0 2px 4px #00121e20}
.game-body .world-nav-icon-archive::after {background:var(--paper)}
.game-body .top-stats {gap:0;margin-left:auto}
.game-body .top-stat {border-color:var(--hairline);min-width:88px;height:42px;padding:2px 14px}
.game-body .top-stat>span {color:#6fb6d6;font-size:20px}
.game-body .top-stat small {color:var(--forest-soft);font-size:9px}
.game-body .top-stat b {color:var(--forest);font-size:14px}
.game-body .terrain-stat {display:none}
.game-body .world-pulse {margin-left:0;background:#203d45;color:#b7d7cb;padding:10px;border-radius:11px;font-size:10px}
.game-body .world-pulse i {background:#59c990;box-shadow:0 0 0 4px #59c99016}
.game-body .builder-chip {min-width:0;max-width:150px;background:#213e49;color:var(--forest);border:1px solid #365563;box-shadow:none;border-radius:12px;min-height:44px}
.game-body .builder-chip small {color:var(--forest-soft)}
.game-body .builder-chip b {max-width:105px}
.game-body .mobile-actions {display:flex;gap:6px}
.game-body .share-btn {background:transparent;color:var(--forest-soft);border:1px solid var(--hairline);box-shadow:none;width:38px;height:42px;border-radius:11px}
.game-body .share-btn:hover {background:var(--paper-muted)}
.game-body .language-control {height:42px;background:transparent;border-color:var(--hairline);color:var(--forest);border-radius:11px}
.game-body .language-control select {color:var(--forest);background:transparent;min-height:40px}
.game-body .language-current {color:var(--forest)}
.daily-card {position:fixed;z-index:4;top:108px;left:24px;width:306px;padding:23px;background:var(--paper);border:1px solid #375463;border-radius:22px;box-shadow:var(--shell-shadow)}
.daily-eyebrow {display:flex;align-items:center;gap:6px;font-size:8px;font-weight:800;letter-spacing:1.1px;white-space:nowrap}
.daily-orbit {font-size:20px;color:#6fb6d6;line-height:1}
.daily-status {margin-left:auto;padding:5px 7px;border-radius:6px;background:#24434d;color:#afc5cf;letter-spacing:0;font-size:9px}
.daily-card[data-state=ready] .daily-status {background:var(--lime);color:#b7e8ce}
.game-body .daily-card .build-btn {display:flex;align-items:center;gap:10px;width:100%;height:58px;padding:10px 14px;border-radius:13px;background:#138de3;box-shadow:none;color:#f1faff;text-align:left;transition:background .15s ease;min-width:0}
.game-body .daily-card .build-btn:hover:enabled {background:#259fea}
.game-body .daily-card .build-btn:disabled {background:#233f4b;color:#a4bcc9;opacity:1;cursor:default}
.game-body .daily-card .build-icon {display:block;font-size:25px;line-height:1;font-weight:400}
.game-body .daily-card .build-btn b {font-size:12px;letter-spacing:0}
.game-body .daily-card .build-btn small {display:block;color:inherit;opacity:.7;font-size:10px;margin-top:3px}
.build-arrow {margin-left:auto;font-size:20px}
.daily-footnote {display:flex;justify-content:center;gap:5px;align-items:center;color:#91acb9;font-size:9px;margin-top:14px}
.daily-footnote>span {font-size:14px}
.game-body .side {left:24px;top:448px;bottom:24px;width:306px;padding:16px 14px 10px;border-radius:22px}
.community-heading {display:flex;align-items:center;justify-content:space-between;padding:0 4px 13px}
.section-eyebrow {font-size:8px;font-weight:800;letter-spacing:1.2px;color:#94b3c3}
.community-dot {height:6px;width:6px;background:#60c798;border-radius:50%}
.game-body .side .tabs {gap:4px;padding:4px;background:#102a34;border-radius:12px}
.game-body .side .tab {min-height:38px;font-size:11px;padding:8px 5px;color:var(--forest-soft);border-radius:9px}
.game-body .side .tab.active {background:var(--paper);color:var(--forest);box-shadow:0 2px 5px #00121e24}
.game-body .side .tab-content {padding:12px 1px 5px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#355967 transparent}
.game-body .side .stat-row {gap:8px;margin-bottom:12px}
.game-body .side .stat-row>div {padding:9px 10px;background:#1d3945;border:0;border-radius:10px}
.game-body .side .stat-row small {color:#95b3c1;font-size:9px}
.game-body .side .stat-row strong {color:var(--forest);font-size:18px}
.game-body .side .list {display:flex;flex-direction:column;gap:7px;overflow:visible}
.game-body .side .list-card {background:#1d3945;border:1px solid #2a4b5a;border-radius:11px;padding:12px;color:var(--forest);box-shadow:none;transition:background .15s ease;transform:none;content-visibility:auto;contain-intrinsic-size:auto 84px}
.game-body .side .list-card:hover {background:#264a59}
.game-body .side .list-card strong {font-size:11px;line-height:1.5}
.game-body .side .event-card p,.game-body .side .list-card small,.game-body .side .event-card-meta {color:#9ab5c4;font-size:10px}
.game-body .side .event-card-arrow {color:#73c6ec}
.game-body .side .event-card-new {background:#214b55;border-color:#3c8696}
.game-body .side .empty {color:#9ab5c4;font-size:11px;padding:16px 8px}
.game-body .side footer {padding-top:10px;gap:6px;flex-wrap:wrap}
.game-body .side footer a,.game-body .side footer span {color:#9ab5c4;font-size:9px}
.game-body :is(.mine-load-more,.news-load-more) {background:#203e4b;color:var(--forest);border:1px solid #345664;min-height:44px}
.game-body .mini-map-dock {left:auto;right:24px;bottom:24px;width:156px;height:156px;border-radius:18px;padding:5px}
.game-body .mini-map-frame {border:0;border-radius:12px;box-shadow:none}
.game-body .map-controls {right:24px;bottom:196px;padding:5px;border-radius:14px;gap:3px}
.game-body .map-controls button {width:42px;height:42px;color:var(--forest);background:transparent;border-radius:10px}
.game-body .map-controls button:hover {background:#203e4b}
.game-body .dev-tools {left:350px;right:auto;bottom:78px}
.game-body .archive-banner {top:108px;left:24px;right:auto;width:306px;background:var(--paper);color:var(--forest);border-color:var(--hairline);flex-wrap:wrap}
.game-body:has(.archive-banner:not(.hidden)) .side {top:218px}
.game-body .world-countdown {background:#173440;color:#dcecf4;top:80px}
.game-body .toast-stack,.game-body .toast-top-layer {top:104px}
@media(min-width:761px) and (max-height:780px) {
  .daily-card {padding:17px 20px}
  .daily-footnote {margin-top:10px}
  .game-body .side {top:402px}
}
@media(min-width:761px) and (max-width:1100px) {
  .game-body .topbar {gap:10px}
  .game-body .brand {min-width:160px}
  .game-body .world-pulse {display:none}
  .game-body .builder-chip>span:last-child {display:none}
  .game-body .builder-chip {width:42px;justify-content:center;padding:6px}
  .game-body .top-stat {min-width:72px;padding:2px 9px}
}
@media(min-width:761px) and (max-height:620px) {
  .game-body .side {top:auto;height:148px}
  .game-body .side .community-heading,.game-body .side .stat-row,.daily-footnote {display:none}
  .daily-card {padding:15px 20px}
}
@media(max-width:760px) {
  .game-body .topbar {top:calc(env(safe-area-inset-top,0px) + 10px);left:calc(env(safe-area-inset-left,0px) + 10px);right:calc(env(safe-area-inset-right,0px) + 10px);height:58px;padding:7px 10px;gap:8px;border-radius:17px}
  .game-body .brand {display:flex;flex:1 1 auto!important;min-width:0!important;max-width:none!important;gap:7px}
  .game-body .brand-mark {display:grid!important;width:33px!important;height:33px!important;flex:0 0 33px!important}
  .game-body .brand-copy {display:block!important;min-width:0}
  .game-body .brand strong {font-size:16px;letter-spacing:-.5px}
  .game-body .brand small {display:block;font-size:7px;letter-spacing:1px;max-width:95px}
  .game-body .world-nav {display:flex;flex:0 0 auto;margin:0;padding:0;background:transparent;min-height:42px;gap:0}
  .game-body .world-nav a {display:none}
  .game-body:has(.archive-banner:not(.hidden)) .world-nav a {display:inline-flex}
  .game-body:has(.archive-banner:not(.hidden)) .builder-chip {display:none}
  .game-body .world-nav button {width:42px;min-width:42px;height:42px;border:0;padding:0}
  .game-body .top-stats,.game-body .world-pulse {display:none}
  .game-body .builder-chip {flex:0 0 42px;width:42px;min-width:42px;height:42px;justify-content:center;padding:8px}
  .game-body .builder-chip>span:last-child {display:none}
  .game-body .language-control {flex:0 0 46px;width:46px;min-width:46px;height:42px;padding:0 5px}
  .game-body .language-current {font-size:10px}
  .game-body .mobile-actions {position:fixed;top:auto;left:calc(env(safe-area-inset-left,0px) + 10px);bottom:calc(env(safe-area-inset-bottom,0px) + 84px);width:auto;min-height:0;display:flex;flex-direction:row;gap:4px;padding:4px;background:var(--paper);border:1px solid #375463;border-radius:14px;box-shadow:var(--shell-shadow)}
  .game-body .mobile-actions .share-btn {width:42px;min-width:42px;height:42px;flex:0 0 42px;border:0;background:transparent;color:var(--forest-soft);border-radius:10px}
  .daily-card {top:calc(env(safe-area-inset-top,0px) + 80px);left:calc(env(safe-area-inset-left,0px) + 10px);right:calc(env(safe-area-inset-right,0px) + 10px);width:auto;padding:15px 17px;border-radius:18px;display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,.9fr);column-gap:14px;align-items:center}
  .daily-eyebrow {grid-column:1/-1;font-size:7px;letter-spacing:.8px;margin-bottom:9px}
  .daily-orbit {font-size:16px}
  .daily-status {padding:4px 7px;font-size:9px}
  .game-body .daily-card .build-btn {height:57px;flex:0 0 auto;width:100%;padding:9px 10px;gap:7px;margin:0;border-radius:12px;min-width:0}
  .game-body .daily-card .build-btn b {font-size:11px;line-height:1.3}
  .game-body .daily-card .build-btn small {font-size:9px;line-height:1.2}
  .game-body .daily-card .build-icon {font-size:20px}
  .build-arrow {display:none}
  .daily-footnote {grid-column:1/-1;justify-content:flex-start;margin-top:10px;font-size:8px}
  .game-body .side,.game-body:has(.archive-banner:not(.hidden)) .side {top:auto!important;left:calc(env(safe-area-inset-left,0px) + 10px)!important;right:calc(env(safe-area-inset-right,0px) + 10px)!important;bottom:calc(env(safe-area-inset-bottom,0px) + 10px)!important;width:auto!important;padding:9px 10px;border-radius:18px!important;transition:none;will-change:auto;z-index:6}
  .game-body .side:not(.mobile-collapsed) {height:min(45vh,390px)}
  .game-body .side.mobile-collapsed {height:60px}
  .game-body .community-heading {display:none}
  .game-body .side .tabs {padding:2px;margin-right:43px;gap:3px;background:#102a34}
  .game-body .side .tab {min-height:36px;font-size:11px}
  .game-body .side-toggle {top:9px;right:9px;width:40px;height:40px;background:#213e49;color:var(--forest);border-color:#365563;border-radius:11px}
  .game-body .side .tab-content {padding-top:10px;overflow-y:auto}
  .game-body .side .stat-row {display:grid}
  .game-body .side:not(.mobile-collapsed) footer {padding:8px 0 0!important;gap:8px!important}
  .game-body .side:not(.mobile-collapsed) footer a,.game-body .side:not(.mobile-collapsed) footer span {font-size:10px!important;line-height:1.5}
  .game-body .mini-map-dock {top:50%;right:0;left:auto;bottom:auto;width:180px;height:180px;transform:translate(100%,-25%);border-radius:16px 0 0 16px;overflow:visible;transition:transform .2s ease;will-change:auto}
  .game-body .mini-map-dock.is-open {transform:translate(0,-25%)}
  .game-body .mini-map-toggle {background:var(--paper);color:var(--forest);border:0;left:-36px;width:36px;height:52px;border-radius:12px 0 0 12px;box-shadow:-3px 2px 8px #00151f30}
  .game-body .map-controls {right:calc(env(safe-area-inset-right,0px) + 10px);bottom:calc(env(safe-area-inset-bottom,0px) + 84px);padding:4px;border-radius:14px}
  .game-body .map-controls button {width:42px;height:42px}
  .game-body .dev-tools {left:10px;bottom:238px;max-width:calc(100vw - 80px);flex-wrap:wrap}
  .game-body .archive-banner {top:calc(env(safe-area-inset-top,0px) + 80px);left:10px;right:10px;width:auto;border-radius:15px}
  .game-body .world-countdown {top:68px;font-size:9px}
  .game-body .toast-stack,.game-body .toast-top-layer {top:calc(env(safe-area-inset-top,0px) + 242px)}
  .game-body dialog.parcel-dialog {max-height:calc(100% - env(safe-area-inset-top,0px) - 24px);width:calc(100% - 16px);border-radius:24px 24px 16px 16px;margin:auto auto calc(env(safe-area-inset-bottom,0px) + 8px)}
  .game-body:has(.side:not(.mobile-collapsed)) .mobile-actions {visibility:hidden}
}
@media(max-width:360px) {
  .game-body .topbar {gap:3px;padding-left:7px;padding-right:7px}
  .daily-card {column-gap:9px;padding:13px;grid-template-columns:minmax(0,1fr) minmax(132px,.9fr)}
  .daily-eyebrow {font-size:6px}
}
@media(max-width:760px) and (max-height:500px) {
  .daily-card {right:auto;width:254px;grid-template-columns:1fr;padding:12px}
  .daily-eyebrow {margin-bottom:7px}
  .game-body .side {left:auto!important;width:280px!important}
  .game-body .side:not(.mobile-collapsed) {height:50vh}
  .game-body .map-controls {right:10px;bottom:84px;flex-direction:row}
  .game-body .mini-map-dock {top:80px;transform:translate(100%,0);width:140px;height:140px}
  .game-body .mini-map-dock.is-open {transform:translate(0,0)}
}
@media(prefers-reduced-motion:reduce) {
  .game-body *, .game-body *::before, .game-body *::after {scroll-behavior:auto!important;animation:none!important;transition:none!important}
}

/* The world gets the space: compact daily action instead of an introduction. */
.game-body .daily-card {padding:12px 14px;border-radius:17px}
.game-body .daily-card .daily-eyebrow {margin:0 0 9px;font-size:9px;letter-spacing:.3px;text-transform:none}
.game-body .daily-card .daily-orbit {font-size:16px}
.game-body .daily-card .build-btn {height:48px}
.game-body .daily-card .daily-footnote {display:none}
.game-body .side {top:238px}
#city-life {position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.game-body #traffic-toggle svg {width:21px;height:21px;fill:currentColor}
.game-body #traffic-toggle[aria-pressed=false] {color:#7594a4;background:#203b46}
.game-body #traffic-toggle[aria-pressed=true] {color:#6ac5ed}
@media(min-width:761px) and (max-height:620px) {
  .game-body .side {top:238px;height:auto}
}
@media(max-width:760px) {
  .game-body .daily-card {top:calc(env(safe-area-inset-top,0px) + 78px);left:auto;right:calc(env(safe-area-inset-right,0px) + 10px);width:196px;padding:4px;display:block;border-radius:14px}
  .game-body .daily-card .daily-eyebrow {display:none}
  .game-body .daily-card .build-btn {height:46px;border-radius:10px;padding:8px 11px}
  .game-body .daily-card .build-btn b {font-size:11px}
  .game-body .map-controls button {height:40px}
}
@media(max-width:760px) and (max-height:500px) {
  .game-body .daily-card {left:10px;right:auto;width:196px}
}

.game-body .vehicle-dialog {width:min(390px,calc(100% - 24px));padding:30px;background:var(--paper);color:var(--forest);border:1px solid var(--hairline);border-radius:20px}
.game-body .vehicle-eyebrow {display:block;color:var(--forest-soft);font-size:11px;margin:10px 35px 12px 0}
.game-body .vehicle-dialog h2 {font-size:23px;margin:0 0 14px;color:var(--forest)}
.game-body .vehicle-status {display:inline-block;padding:8px 12px;border-radius:9px;background:var(--paper-muted);font-size:14px;color:#c5ddd8}
.game-body .vehicle-status:is([data-status="responding"],[data-status="attending"],[data-status="blocked"]) {background:#4c3935;color:#ffcfaa}
.game-body .vehicle-reason {font-size:14px;line-height:1.6;color:var(--forest-soft);margin:16px 0}
.game-body .vehicle-journey {display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0 8px}
.game-body .vehicle-journey dt {font-size:11px;color:var(--forest-soft)}
.game-body .vehicle-journey dd {font-size:14px;margin:6px 0 0}
.game-body #vehicle-show-incident {width:100%;min-height:44px;margin-top:18px;border-radius:10px;border:1px solid var(--hairline);background:var(--paper-muted);color:var(--forest);font-weight:600}

/* Override the earlier mobile-only ID rule that hid the news scrollport. */
@media(max-width:760px) {
  .game-body #news-tab,.game-body #mine-tab {min-height:0;overflow-x:hidden;overflow-y:auto;touch-action:pan-y;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}
  .game-body #news-list,.game-body #mine-list {overflow:visible;touch-action:pan-y}
}
