/* ── game-ui.css ─────────────────────────────────────────────────────────────
   Shared layout components for all ecology POMDP/MDP games.
   Assumes each game's <style> block defines the CSS custom properties
   (--bg-card, --border, --accent, --healthy, --extinct, --muted, --dim,
    --text, --serif, --sans, --mono, --radius, etc.)
   This file adds the fonts and shared component classes only.
   ──────────────────────────────────────────────────────────────────────────── */

/* ── FONTS ── */
@import url('https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,600;0,6..72,700;1,6..72,400&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;600&display=swap');

/* ── RESET ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}

/* ── SCREEN SYSTEM ── */
.screen{min-height:100vh;display:none;flex-direction:column}
.screen.active{display:flex}

/* ── SEED PICKER ── */
.seed-row{display:flex;align-items:center;gap:12px;justify-content:center;margin-bottom:48px;flex-wrap:wrap}
.seed-row label{font-family:var(--mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.seed-select{font-family:var(--mono);font-size:16px;background:var(--bg-card);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:10px 16px;outline:none;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.seed-select:hover{border-color:var(--accent)}
.seed-select.active{background:var(--accent);color:#fff;border-color:var(--accent)}

/* ── SCOREBOARD ── */
.scoreboard{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:48px}
@media(max-width:700px){.scoreboard{grid-template-columns:1fr}}
.score-card{background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius);padding:28px;display:flex;flex-direction:column;gap:14px;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.score-card.winner{border-color:var(--healthy);background:rgba(45,107,34,.05)}
.score-card.loser{border-color:var(--extinct);background:rgba(146,44,15,.05)}
.score-card-tag{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.score-card-name{font-family:var(--serif);font-size:24px;font-weight:600;line-height:1.2;color:var(--text)}
.score-outcome{font-size:20px;font-weight:600;margin:4px 0}
.outcome-alive{color:var(--healthy)}
.outcome-extinct{color:var(--extinct)}
.score-num{font-family:var(--mono);font-size:36px;font-weight:700;color:var(--accent)}
.score-label{font-size:13px;color:var(--muted)}
.score-policy{font-size:13px;color:var(--dim);line-height:1.5;font-style:italic;border-top:1px solid var(--border);padding-top:12px;margin-top:4px}

/* ── RESULTS SCREEN WRAPPERS ── */
.results-inner{max-width:1100px;margin:0 auto;width:100%}
.results-tag{font-family:var(--mono);font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.results-title{font-family:var(--serif);font-size:clamp(28px,4vw,48px);font-weight:600;margin-bottom:48px;line-height:1.2;color:var(--text)}
.results-btns{display:flex;gap:16px;flex-wrap:wrap}
.replay-btn{display:flex;align-items:center;gap:10px;background:var(--bg-card);border:1px solid var(--border);color:var(--text);padding:14px 24px;border-radius:var(--radius);font-size:15px;font-weight:500;transition:all .15s;cursor:pointer;text-decoration:none;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.replay-btn:hover{background:var(--bg-card-hi,#f9f8f4);border-color:var(--muted)}

/* ── EVAL TABLE ── */
.eval-table{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:36px;text-align:left}
.eval-table-title{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:600;margin-bottom:14px;font-family:var(--mono)}
.eval-stats-table{width:100%;border-collapse:collapse;font-size:13px}
.eval-stats-table thead tr{border-bottom:2px solid var(--border);color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em}
.eval-stats-table th{padding:8px 4px;font-weight:500;text-align:left;font-family:var(--mono)}
.eval-stats-table th:not(:first-child){text-align:right}
.eval-stats-table tbody tr{border-bottom:1px solid var(--border)}
.eval-strategy-ev{padding:10px 4px;font-weight:600;color:var(--accent);font-family:var(--mono)}
.eval-strategy-hum{padding:10px 4px;font-weight:600;font-family:var(--mono);color:var(--text)}
.eval-num{padding:10px 4px;text-align:right;font-family:var(--mono)}
.eval-regret{margin-top:12px;font-size:13px;color:var(--muted)}
.eval-regret strong{color:var(--text)}

/* ── POLICY COMPARISON TABLE ── */
.policy-comparison{margin-bottom:40px}
.policy-comparison h3{font-family:var(--serif);font-size:22px;margin-bottom:8px;color:var(--text)}
.cmp-intro{font-size:14px;color:var(--muted);margin-bottom:16px;line-height:1.6}
.cmp-intro strong{color:var(--text)}
.cmp-table-wrap{overflow-x:auto}
.cmp-table{width:100%;border-collapse:collapse;font-size:13px;font-family:var(--mono)}
.cmp-table th{text-align:left;padding:8px 10px;border-bottom:2px solid var(--border);color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.cmp-table td{padding:7px 10px;border-bottom:1px solid var(--border);vertical-align:top}
.cmp-table tr.diverge-row{background:rgba(201,123,60,.06)}
.cmp-table tr.diverge-row td{border-bottom-color:rgba(201,123,60,.2)}
.cmp-t{color:var(--muted);width:40px}
.cmp-belief{color:var(--muted);white-space:nowrap}
td.human-diff{color:var(--accent);font-weight:600}
td.opt-diff{color:var(--healthy);font-weight:600}
.cmp-match{text-align:center;font-size:15px}
.cmp-state{white-space:nowrap}
.cmp-diverge-badge{display:inline-block;padding:2px 7px;border-radius:12px;font-size:11px;font-weight:600;background:rgba(201,123,60,.12);color:var(--accent);margin-left:8px}

/* ── TOAST ── */
#toast{position:fixed;bottom:32px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--text);border:1px solid rgba(0,0,0,.15);border-radius:var(--radius);padding:14px 24px;font-size:15px;color:#f4f1e8;max-width:500px;text-align:center;opacity:0;transition:opacity .3s,transform .3s;z-index:200;line-height:1.5;pointer-events:none;box-shadow:0 4px 16px rgba(0,0,0,.2)}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
