/* First-run, settings, semantic faction themes, and restrained Pride release. */
.playerbar[hidden], .calc-workbench[hidden], .first-run[hidden], .calc-guide[hidden] { display: none !important; }
/* A profile gate keeps the settings menu available for theme/text-size and
   accessibility changes, while hiding every work surface until onboarding is
   complete. The JS guard also protects direct calls and hash routes. */
body.profile-gated main > .view:not(#view-calc),
body.profile-gated #view-calc > :not(.public-notice):not(#first-run) { display: none !important; }
body.profile-gated .nav-bar [data-view]:disabled,
body.profile-gated .nav-bar [data-nav-view]:disabled,
body.profile-gated .nav-bar [data-nav-toggle="drawer"]:disabled,
body.profile-gated .nav-more-btn:disabled { opacity: 1; color: var(--text); cursor: not-allowed; }
body.profile-gated #profile-gate-notice { border-left: 3px solid var(--accent); padding-left: .65rem; }
.settings-menu { position: relative; z-index: 140; margin-left: auto; }
.settings-menu[open] { z-index: 260; }
header:has(.settings-menu[open]) { position: relative; z-index: 300; }
.settings-menu[open]::before { content: ''; position: fixed; inset: 0; z-index: -1; pointer-events: none; }
.settings-menu[open] ~ * { position: relative; }
.settings-menu > summary, .player-actions > summary {
  cursor: pointer; list-style: none; border: 1px solid var(--line); border-radius: 5px;
  background: var(--panel); color: var(--text); padding: .42rem .7rem; font-size: .72rem;
}
.settings-menu > summary::-webkit-details-marker, .player-actions > summary::-webkit-details-marker { display: none; }
.settings-panel, .player-actions-menu {
  position: absolute; z-index: 80; right: 0; top: calc(100% + .4rem); min-width: 260px;
  display: grid; gap: .7rem; padding: .8rem; border: 1px solid var(--line-bright);
  border-radius: 8px; background: var(--bg2); box-shadow: 0 14px 35px #0009;
}
.settings-panel label { display: grid; gap: .3rem; color: var(--muted); font-size: .68rem; }
.settings-panel select { width: 100%; }
.settings-panel { min-width: min(360px, calc(100vw - 1rem)); }
.settings-panel .size-slider { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: .45rem; width: 100%; }
.settings-panel .size-slider .size-label { grid-column: 2; justify-self: end; margin-top: -.2rem; }
.settings-panel .size-control { min-width: 0; grid-template-columns: 44px auto minmax(100px, 1fr) auto 44px; }
.settings-panel .size-control input[type="range"] { width: 100%; min-width: 0; max-width: 100%; }
.settings-panel .size-step:disabled { opacity: .35; cursor: not-allowed; }
@media (max-width: 1400px) {
  .settings-panel .size-control { grid-template-columns: 44px minmax(0, 1fr) 44px; }
  .settings-panel .size-bound { display: none; }
}

/* Phone and tablet layouts are primarily touch surfaces. Keep every standard
   control at the recommended 44px target without changing dense desktop UI. */
@media (max-width: 1180px) {
  :where(button, summary, [role="button"]) { min-width: 44px; min-height: 44px; }
  :where(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea) { min-height: 44px; }
}
.er-mark { position: relative; display: grid; place-items: center; overflow: hidden; border: 1px solid var(--accent); border-radius: 10px; background: radial-gradient(circle at 50% 38%, color-mix(in srgb, var(--cyan) 20%, transparent), transparent 58%), linear-gradient(145deg, var(--panel2), var(--bg)); box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent), 0 0 18px color-mix(in srgb, var(--accent) 35%, transparent), inset 0 0 18px color-mix(in srgb, var(--cyan) 12%, transparent); }
.er-mark svg { position: absolute; inset: 10%; width: 80%; height: 80%; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.er-mark .er-ring { stroke: var(--cyan); stroke-width: 2; opacity: .8; }
.er-mark .er-chevron, .er-mark .er-spine { fill: var(--accent-bright); stroke: var(--accent-bright); stroke-width: 1.5; filter: drop-shadow(0 0 3px color-mix(in srgb, var(--accent) 70%, transparent)); }
.er-mark .er-chevron-right { fill: var(--cyan); stroke: var(--cyan); }
.er-mark > span { position: relative; z-index: 1; color: var(--text); font: 900 .58rem Orbitron, sans-serif; letter-spacing: .08em; text-shadow: 0 0 7px var(--accent); opacity: .9; }
.player-actions { position: relative; }
.player-actions-menu { left: 0; right: auto; min-width: 210px; }
.player-actions-menu button { width: 100%; text-align: left; }

/* Public-facing project introduction: useful context for a first-time visitor
   without changing the calculator's existing onboarding or workbench flow. */
.project-intro {
  width: auto;
  max-width: 1100px;
  margin: .75rem auto 1rem;
  padding: clamp(.85rem, 2vw, 1.25rem) clamp(1rem, 2.5vw, 1.5rem);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  border: 1px solid var(--line-bright);
  border-left: 3px solid var(--cyan);
  border-radius: var(--component-radius-md);
  background: linear-gradient(110deg, color-mix(in srgb, var(--cyan) 8%, var(--panel)), var(--panel));
}
.project-intro-copy { min-width: 0; }
.project-intro h2 {
  margin: .25rem 0 .35rem;
  color: var(--text);
  font: 700 clamp(1rem, 2vw, 1.35rem)/1.25 Orbitron, sans-serif;
}
.project-intro p { margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.55; max-width: 70ch; }
.project-intro-link {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  min-height: 44px;
  padding: .55rem .8rem;
  border: 1px solid var(--line-bright);
  border-radius: var(--component-radius-sm);
  color: var(--cyan);
  background: color-mix(in srgb, var(--panel2) 78%, transparent);
  font-size: .68rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}
.project-intro-link:hover { border-color: var(--cyan); color: var(--text); background: var(--panel2); }
.project-intro-link:focus-visible { outline: 2px solid var(--cyan); outline-offset: 2px; }

.first-run {
  max-width: 960px; margin: 1rem auto 1.25rem; padding: clamp(1rem, 3vw, 2rem);
  display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr); gap: 2rem;
  border: 1px solid var(--line-bright); border-top: 3px solid var(--accent);
  background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 8%, var(--panel)), var(--panel));
}
.first-run h2 { margin: .35rem 0 .65rem; font: 700 clamp(1.25rem, 3vw, 2rem) Orbitron, sans-serif; }
.first-run p { color: var(--muted); line-height: 1.7; max-width: 60ch; }
.first-run-form { display: grid; gap: .75rem; }
.first-run-form label { display: grid; gap: .3rem; font-size: .72rem; color: var(--muted); }
.first-run-form input, .first-run-form select { width: 100%; }
.first-run-form small { line-height: 1.4; }

/* Guided first-calculation panel (P4): sits between first-run and the
   workbench, walks a new player through the four calculator steps, and
   offers the safe sample-plan path. */
.calc-guide {
  max-width: 960px; margin: 1rem auto 1.25rem; padding: clamp(1rem, 3vw, 1.75rem);
  display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(240px, .75fr); gap: 1.5rem;
  border: 1px solid var(--line-bright); border-top: 3px solid var(--accent);
  background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 8%, var(--panel)), var(--panel));
}
.calc-guide h2 { margin: .35rem 0 .65rem; font: 700 clamp(1.1rem, 2.6vw, 1.6rem) Orbitron, sans-serif; }
.calc-guide-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.calc-guide-steps li { display: grid; gap: .15rem; padding: .6rem .75rem; border: 1px solid var(--line); border-radius: 6px; background: var(--panel); font-size: .72rem; line-height: 1.55; }
.calc-guide-steps b { color: var(--accent-bright); }
.calc-guide-actions { display: grid; gap: .6rem; align-content: start; }
.calc-guide-note { margin: 0; font-size: .62rem; line-height: 1.5; }
.calc-steps { grid-column: 1 / -1; list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin: 0 0 .25rem; padding: 0; }
.calc-steps li { display: flex; align-items: center; gap: .65rem; min-width: 0; padding: .65rem .75rem; border: 1px solid var(--line); border-radius: 6px; background: var(--panel); }
.calc-steps b { display: grid; place-items: center; flex: 0 0 1.7rem; height: 1.7rem; border-radius: 50%; background: var(--accent); color: #fff; }
.calc-steps span { display: grid; gap: .12rem; font-size: .72rem; }
.calc-steps small { color: var(--muted); font-size: .6rem; }
.beginner-summary { margin: .7rem 0 1rem; padding: 1rem; border: 1px solid var(--line-bright); border-left: 4px solid var(--accent); border-radius: 7px; background: var(--panel2); }
.beginner-summary h3 { margin: .25rem 0 .8rem; font-size: 1rem; }
.beginner-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; }
.beginner-kpis span { display: grid; gap: .2rem; padding: .65rem; border-radius: 5px; background: var(--panel); color: var(--muted); font-size: .65rem; }
.beginner-kpis b { color: var(--text); font-size: 1rem; }
.beginner-kpi-label { display: grid !important; gap: .15rem !important; padding: 0 !important; background: none !important; }
.beginner-kpi-label small { color: var(--muted); font-size: .58rem; line-height: 1.35; }
.beginner-next { display: flex; flex-wrap: wrap; gap: .5rem 1rem; margin-top: .8rem; font-size: .68rem; }
.beginner-next b { color: var(--accent-bright); }
.beginner-summary details { margin-top: .7rem; color: var(--muted); font-size: .65rem; }
.route-summary { margin: .8rem 0; padding: .75rem; border: 1px solid var(--line); border-radius: 6px; background: var(--panel); }
.route-summary-title { color: var(--accent-bright); font-size: .7rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.route-summary-flow { display: flex; flex-wrap: wrap; gap: .4rem .7rem; margin-top: .5rem; color: var(--text); font-size: .68rem; line-height: 1.5; }
.route-summary-flow span { padding: .35rem .5rem; border-radius: 4px; background: var(--panel2); }
.route-summary-flow b, .route-summary-direct b { color: var(--accent-bright); }
.route-summary-direct { margin-top: .55rem; color: var(--muted); font-size: .7rem; line-height: 1.5; }
.route-summary-faction {
  margin-top: .65rem;
  padding: .55rem .65rem;
  border-left: 3px solid var(--accent);
  border-radius: 4px;
  background: color-mix(in srgb, var(--accent) 8%, var(--panel2));
  color: var(--text);
  font-size: .68rem;
  line-height: 1.5;
}
.route-summary-faction b { color: var(--accent-bright); }
.route-summary-faction.faction-owned { border-left-color: var(--good); background: color-mix(in srgb, var(--good) 9%, var(--panel2)); }
.route-summary-faction.faction-owned b { color: var(--good); }
.route-summary-note { margin: .55rem 0 0; color: var(--muted); font-size: .7rem; line-height: 1.45; }
@media (min-width: 1800px) {
  .first-run, .calc-guide { max-width: 1200px; }
}
@media (min-width: 3000px) {
  .first-run, .calc-guide { max-width: 1480px; }
}
.calculation-error { border-left: 4px solid var(--bad); }
.field-error { display: block; color: var(--bad); font-size: .62rem; line-height: 1.35; }
.controls label:has(#calc-qty) { align-content: start; }
.expert-details { margin: .75rem 0; border: 1px solid var(--line); border-radius: 6px; background: var(--panel2); }
.expert-details > summary { cursor: pointer; padding: .75rem; color: var(--muted); font-size: .68rem; letter-spacing: .04em; }
.expert-details[open] > summary { border-bottom: 1px solid var(--line); color: var(--accent-bright); }
.expert-details .plan-top { padding: .75rem; }

/* Show-the-math disclosure: the player-readable arithmetic path. Native
   details/summary, so keyboard and screen-reader behaviour come for free. */
.show-math { margin: .75rem 0; border: 1px solid var(--line-bright); border-radius: 6px; background: var(--panel2); }
.show-math > summary { cursor: pointer; padding: .75rem; color: var(--accent-bright); font-size: .7rem; font-weight: 600; letter-spacing: .04em; }
.show-math > summary::-webkit-details-marker { display: none; }
.show-math > summary::before { content: '🧮 '; }
.show-math[open] > summary { border-bottom: 1px solid var(--line); }
.show-math-body { padding: .75rem; display: grid; gap: .9rem; }
.show-math-section { display: grid; gap: .4rem; }
.show-math-title { margin: 0; font-size: .78rem; letter-spacing: .03em; color: var(--text); }
.show-math-summary { margin: 0; font-size: .68rem; color: var(--muted); line-height: 1.5; max-width: 72ch; }
.show-math-line { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .15rem .6rem; align-items: baseline; padding: .3rem .45rem; border-radius: 4px; background: var(--panel); font-size: .7rem; }
.show-math-line-label { color: var(--text); }
.show-math-line-note { grid-column: 1 / -1; color: var(--muted); font-size: .62rem; line-height: 1.45; }
.show-math-line-val { font-weight: 600; color: var(--accent-bright); text-align: right; white-space: nowrap; }
.show-math-step { display: flex; flex-wrap: wrap; gap: .2rem .5rem; align-items: baseline; padding: .25rem .45rem; border-radius: 4px; background: var(--panel); font-size: .68rem; }
.show-math-step-name { font-weight: 600; color: var(--text); }
.show-math-step-math { color: var(--muted); }
.show-math-unknown { padding: .4rem .5rem; border: 1px solid color-mix(in srgb, var(--warn) 45%, transparent); border-radius: 4px; color: var(--warn); font-size: .66rem; line-height: 1.5; }
.show-math-foot { margin: 0; font-size: .62rem; line-height: 1.5; max-width: 72ch; }
@media (max-width: 520px) {
  .show-math-line { grid-template-columns: 1fr; }
  .show-math-line-val { text-align: left; white-space: normal; }
}

/* Decision summary — the tradeoff narrative. Same native details/summary
   disclosure language as show-the-math, but framed as choices: up-front
   investment, cost/unit, cost-to-guild/unit, cheapest refinement path and
   speed (slot runs — the game publishes no craft durations). */
.decision-summary { margin: .75rem 0; border: 1px solid var(--line-bright); border-radius: 6px; background: var(--panel2); }
.decision-summary > summary { cursor: pointer; padding: .75rem; color: var(--accent-bright); font-size: .7rem; font-weight: 600; letter-spacing: .04em; }
.decision-summary > summary::-webkit-details-marker { display: none; }
.decision-summary > summary::before { content: '⚖ '; }
.decision-summary[open] > summary { border-bottom: 1px solid var(--line); }
.decision-summary-body { padding: .75rem; display: grid; gap: .4rem; }
.decision-line { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .15rem .6rem; align-items: baseline; padding: .3rem .45rem; border-radius: 4px; background: var(--panel); font-size: .7rem; }
.decision-line-label { color: var(--text); font-weight: 600; }
.decision-line-note { grid-column: 1 / -1; color: var(--muted); font-size: .62rem; line-height: 1.45; }
.decision-line-val { font-weight: 600; color: var(--accent-bright); text-align: right; white-space: nowrap; }
.decision-unknown { padding: .4rem .5rem; border: 1px solid color-mix(in srgb, var(--warn) 45%, transparent); border-radius: 4px; color: var(--warn); font-size: .66rem; line-height: 1.5; }
.decision-foot { margin: .25rem 0 0; font-size: .62rem; line-height: 1.5; max-width: 72ch; }
@media (max-width: 520px) {
  .decision-line { grid-template-columns: 1fr; }
  .decision-line-val { text-align: left; white-space: normal; }
}

/* Colony what-if comparison — the same plan priced at every production
   colony. Reuses the per-unit pricing table's scroll container so narrow
   phones pan instead of squashing the columns. */
.colony-compare { margin: .75rem 0; border: 1px solid var(--line-bright); border-radius: 6px; background: var(--panel2); }
.colony-compare > summary { cursor: pointer; padding: .75rem; color: var(--accent-bright); font-size: .7rem; font-weight: 600; letter-spacing: .04em; }
.colony-compare > summary::-webkit-details-marker { display: none; }
.colony-compare > summary::before { content: '🌍 '; }
.colony-compare[open] > summary { border-bottom: 1px solid var(--line); }
.colony-compare-body { padding: .6rem .75rem .5rem; display: grid; gap: .45rem; }
.colony-compare-intro { margin: 0; font-size: .66rem; color: var(--muted); line-height: 1.5; max-width: 72ch; }
.colony-compare-table .cc-num { text-align: right; font-weight: 600; }
.colony-compare-table th.cc-num { text-align: right; }
.colony-compare-table tr.cc-here { background: color-mix(in srgb, var(--accent) 7%, transparent); }
.colony-compare-table .cc-colony { font-weight: 600; white-space: nowrap; }
.colony-compare-table .cc-here-tag { color: var(--accent-bright); font-size: .6rem; letter-spacing: .05em; text-transform: uppercase; }
.colony-compare-table .cc-star { color: var(--warn); }
.colony-compare-table .cc-faction { color: var(--ok); }
.colony-compare-table .cc-na { color: var(--muted); font-weight: 400; }
.colony-compare-table .cc-delta { color: var(--muted); font-weight: 600; }
.colony-compare-table .cc-delta.better { color: var(--ok); }
.colony-compare-table .cc-delta.worse { color: var(--bad); }
.colony-compare-table .cc-owner { white-space: nowrap; }
.colony-compare-table .cc-plan { font-size: .66rem; padding: .2rem .5rem; white-space: nowrap; }
.colony-compare-table .cc-gap { color: var(--warn); }
.cc-noprice { padding: .4rem .5rem; border: 1px solid color-mix(in srgb, var(--warn) 45%, transparent); border-radius: 4px; color: var(--warn); font-size: .66rem; line-height: 1.5; }

/* Faction palettes stay semantic: surfaces remain readable; identity lives in tokens. */
[data-theme="bos"] { --bg:#07060a;--bg2:#0e0b14;--panel:#17121e;--panel2:#110d17;--line:#30243b;--line-bright:#59365f;--text:#f5eef8;--muted:#b3a2ba;--accent:#e14d7d;--accent-bright:#f06a92;--accent-dim:#a52d58;--cyan:#a78bfa;--cyan-dim:#7c3aed;--purple:#7e22ce;--purple-dim:#581c87;--warn:#f59e0b;--bad:#ef4444;--good:#22c55e; }
[data-theme="ec"] { --bg:#050a12;--bg2:#09111d;--panel:#101b2b;--panel2:#0b1522;--line:#243750;--line-bright:#3f638d;--text:#f3f7fb;--muted:#a7b7ca;--accent:#2f80ed;--accent-bright:#67b1ff;--accent-dim:#1f5cae;--cyan:#7dd3fc;--cyan-dim:#38bdf8;--purple:#64748b;--purple-dim:#475569;--warn:#fbbf24;--bad:#ef4444;--good:#22c55e; }
[data-theme="fdc"] { --bg:#080b08;--bg2:#10140e;--panel:#192016;--panel2:#121810;--line:#34402d;--line-bright:#59684b;--text:#f3f1e7;--muted:#b6b19d;--accent:#a68a45;--accent-bright:#d4b968;--accent-dim:#6f5c2d;--cyan:#9fb38a;--cyan-dim:#72865f;--purple:#6b705c;--purple-dim:#4f5444;--warn:#eab308;--bad:#dc2626;--good:#65a30d; }
[data-theme="gom"] { --bg:#07100b;--bg2:#0d1811;--panel:#15231a;--panel2:#101b14;--line:#294332;--line-bright:#466e52;--text:#fffcef;--muted:#c1bda8;--accent:#d3a52e;--accent-bright:#f4cf5c;--accent-dim:#936f18;--cyan:#4ade80;--cyan-dim:#22c55e;--purple:#7c8c50;--purple-dim:#596636;--warn:#f59e0b;--bad:#ef4444;--good:#22c55e; }
[data-theme="led"] { --bg:#050a12;--bg2:#091322;--panel:#101d30;--panel2:#0b1727;--line:#243b5c;--line-bright:#3d6698;--text:#f4f9ff;--muted:#a9bfd8;--accent:#1688e8;--accent-bright:#62b8ff;--accent-dim:#0b5caa;--cyan:#86d7ff;--cyan-dim:#38bdf8;--purple:#315b8a;--purple-dim:#203e60;--warn:#fbbf24;--bad:#ef4444;--good:#22c55e; }
[data-theme="motb"] { --bg:#0d0506;--bg2:#16090b;--panel:#231013;--panel2:#190b0d;--line:#462126;--line-bright:#74363e;--text:#fff4ec;--muted:#c4aaa3;--accent:#ee5260;--accent-bright:#ff7a83;--accent-dim:#a72b38;--cyan:#d6b88a;--cyan-dim:#ae8b59;--purple:#692a35;--purple-dim:#451b23;--warn:#e8b04c;--bad:#ff3347;--good:#65a30d; }
[data-theme="vi"] { --bg:#070611;--bg2:#0d0b1c;--panel:#17142a;--panel2:#110f21;--line:#302957;--line-bright:#52478d;--text:#f4f2ff;--muted:#b1acd0;--accent:#8b72f5;--accent-bright:#a892ff;--accent-dim:#5d46bd;--cyan:#43d9e6;--cyan-dim:#1eabb9;--purple:#8b5cf6;--purple-dim:#6d28d9;--warn:#fbbf24;--bad:#ef4444;--good:#22c55e; }
[data-theme="bos"] header,[data-theme="ec"] header,[data-theme="fdc"] header,[data-theme="gom"] header,[data-theme="led"] header,[data-theme="motb"] header,[data-theme="vi"] header { background: linear-gradient(180deg, color-mix(in srgb,var(--accent) 9%,var(--bg2)),var(--bg)); }

/* PRIDE THEME REFINEMENT — rainbow identifies the theme; it does not fill the UI. */
[data-theme="pride"] * { animation: none !important; }
[data-theme="pride"] header { background: linear-gradient(180deg, #191027, #0d0917); }
[data-theme="pride"] header::after { background: var(--rainbow); background-size: 100% 100%; height: 3px; box-shadow: none; }
[data-theme="pride"] button { background: var(--panel); color: var(--text); text-shadow: none; box-shadow: none; }
[data-theme="pride"] .tab, [data-theme="pride"] .more-menu .tab, [data-theme="pride"] .nav-more-btn { background: transparent; color: var(--text); }
[data-theme="pride"] .tab.active { background: transparent; color: #fff; border-bottom: 3px solid transparent; border-image: var(--rainbow) 1; }
[data-theme="pride"] button.primary, [data-theme="pride"] #calc-run, [data-theme="pride"] .apply-plan { background: linear-gradient(135deg, #d81b60, #7c4dff); color: #fff; }
[data-theme="pride"] .pick-card { background: var(--panel2); color: var(--text); box-shadow: none; }
[data-theme="pride"] .card { border-image: none; border-left-color: var(--line-bright); }
[data-theme="pride"] .stat-value:not(.warn), [data-theme="pride"] .stat-num, [data-theme="pride"] .gear-stat-panel h4 { background: none; color: var(--text); -webkit-text-fill-color: currentColor; }
[data-theme="pride"] .mat-bar-track { background: var(--line); opacity: 1; }
[data-theme="pride"] .mat-bar-fill, [data-theme="pride"] .section::before { background: linear-gradient(90deg,#d81b60,#7c4dff); }
[data-theme="pride"] .section .section-badge { background: var(--accent); color: #fff; }

@media (max-width: 760px) {
  .project-intro { flex-direction: column; align-items: stretch; gap: .9rem; margin-inline: .5rem; }
  .project-intro-link { width: 100%; }
  .first-run { grid-template-columns: 1fr; gap: 1rem; }
  .calc-guide { grid-template-columns: 1fr; gap: 1rem; }
  .calc-steps, .beginner-kpis { grid-template-columns: 1fr; }
  .settings-panel { position: fixed; left: .75rem; right: .75rem; top: 4.5rem; min-width: 0; }
  .player-actions-menu { left: auto; right: 0; }
}
@media (prefers-reduced-motion: reduce) { .first-run *, .calc-guide *, .beginner-summary * { scroll-behavior: auto !important; } }
