/* Event palette from the APGC signage deck: #292363 / #9d8d68. */
:root {
  --brand-ink:#292363; --brand-gold:#9d8d68;
  --emerald-900:#211c50; --emerald-800:#292363; --emerald-700:#292363;
  --emerald-600:#393276; --emerald-500:#514990; --emerald-50:#f1f0f7;
  --grass:#292363; --grass-light:#d5d1e5; --grass-bg:#f3f2f8;
  --champagne:#9d8d68; --champagne-light:#e4ded0; --champagne-dark:#80704d;
  --bg-page:#f7f7f9; --bg-surface:#fff; --bg-elevated:#fff; --bg-card:#fff;
  --bg-hero-from:#292363; --bg-hero-via:#292363; --bg-hero-to:#292363;
  --text-primary:#242334; --text-secondary:#6d6c7b; --text-tertiary:#aaa8b6;
  --border:#e5e4eb; --border-light:#f0eff4;
  --tab-bg:#fff; --status-bg:#fff; --tl-card-border:#e5e4eb; --tl-bg:#fff;
  --shadow-sm:0 2px 10px #29236305; --shadow-md:0 8px 24px #29236308;
  --lb-hover:#f5f4f9; --lb-current-bg:#faf9fc;
}
[data-theme="dark"] {
  --bg-page:#151422; --bg-surface:#1e1c30; --bg-elevated:#25223a; --bg-card:#1e1c30;
  --text-primary:#f2f0f7; --text-secondary:#b1aebe; --text-tertiary:#807b92;
  --border:#353149; --border-light:#2d293f; --tab-bg:#1e1c30; --status-bg:#1e1c30;
  --tl-card-border:#353149; --tl-bg:#1e1c30; --lb-hover:#28243f; --lb-current-bg:#25213a;
  --emerald-700:#e4e0f2; --grass:#e4e0f2;
}
body { font-family:Inter,-apple-system,'PingFang TC','Microsoft JhengHei',sans-serif; }
.grain-overlay,.hero-glow-1,.hero-glow-2,.hero-glow-3,.hero-corner-tl,.hero-corner-br,.hero-landscape,.hero-logo::after,.hero-divider .diamond { display:none; }
.hero { min-height:0; padding:42px 24px 36px; background:var(--brand-ink); border-bottom:2px solid var(--brand-gold); }
.hero-logo { width:54px; height:54px; margin-bottom:18px; box-shadow:none; background:white; }
.hero-logo:hover { transform:none; }
.hero h1 { font-family:inherit; font-size:clamp(24px,3vw,36px); font-weight:500; line-height:1.45; letter-spacing:3px; }
.hero h1 .en { font-size:10px; line-height:1.8; letter-spacing:2px; color:#dedbe9; margin-top:12px; }
.hero-divider { margin:18px auto; gap:0; }
.hero-divider .line { width:44px; background:var(--brand-gold); }
.hero-divider .line + .line { display:none; }
.hero .date-location { font-size:11px; line-height:1.9; color:#e0ddeb; letter-spacing:.5px; }
.status-bar { box-shadow:none; padding:12px 24px; border-bottom:1px solid var(--border); }
.tabs { max-width:none; margin:0; padding:0 max(0px,calc((100% - 780px)/2)); background:var(--tab-bg); box-shadow:none; }
.tab { font-size:13px; padding:16px 8px; letter-spacing:.6px; transition:color .2s; }
.tab::after { height:2px; left:32%; right:32%; background:var(--brand-gold); border-radius:0; }
.tab .tab-en { font-size:9px; letter-spacing:.4px; margin-top:3px; }
.tab.active { color:var(--grass); }
.tab:active { transform:none; }
.section-label { max-width:780px; margin:0 auto; padding:32px 20px 12px; color:var(--text-primary); font-size:11px; letter-spacing:1.8px; }
.section-label::before { width:20px; background:var(--brand-gold); }
.leaderboard,.tl-card { border-radius:8px; box-shadow:none; }
.leaderboard-wrap,.schedule-wrap { max-width:780px; margin:0 auto; padding:8px 20px 36px; }
.lb-header { background:var(--grass-bg); }
.lb-row,.tl-item,.page.active { animation:none; opacity:1; }
.lb-row:active { transform:none; }
.lb-row.current-round { border-left-color:var(--brand-gold); }
.lb-loading,.lb-error { border:1px solid var(--border); background:var(--bg-card); border-radius:8px; margin:0; padding:48px 24px; color:var(--text-secondary); }
.lb-error-icon { display:none; }
.lb-retry-btn { background:var(--brand-ink); border-radius:5px; padding:10px 22px; box-shadow:none; }
.timeline { padding:0 0 0 26px; }
.timeline::before { left:5px; background:var(--border); }
.tl-dot { left:-26px; top:25px; width:11px; height:11px; background:var(--bg-page); border:2px solid var(--brand-gold); box-shadow:none; }
.tl-card:hover { box-shadow:none; border-color:var(--brand-gold); }
.tl-header { padding:20px; }
.tl-header .round-name { font-size:14px; font-weight:500; }
.tl-header .round-name .tag { border-radius:3px; padding:3px 7px; font-size:9px; background:var(--grass-bg); color:var(--text-secondary); }
.tl-body { padding:16px 20px; }
.tl-badge { background:none; color:var(--text-secondary); font-weight:400; text-align:left; padding:0; margin-top:0; font-size:12px; line-height:1.8; }
.footer { border-top:1px solid var(--border); padding:24px 20px; background:var(--bg-surface); }
.footer p { color:var(--text-secondary); font-size:10px; line-height:1.9; }
.scorecard-popup { border-radius:12px; box-shadow:0 20px 80px #17133430; }
/* Map UI stays quiet so the satellite detail carries the page. */
.course-shell { background:#201d33; height:calc(100svh - 78px); }
.course-brand { background:#292363eb; border:1px solid #ffffff24; border-radius:7px; box-shadow:0 4px 16px #0002; padding:16px 20px; }
.course-brand small { color:#d8d0bc; letter-spacing:1.6px; font-size:9px; }
.course-brand strong { font-size:17px; font-weight:500; letter-spacing:1px; }
.course-controls { gap:1px; background:#fff; border-radius:7px; overflow:hidden; box-shadow:0 4px 16px #0002; }
.course-controls button { width:42px; height:42px; border-radius:0; color:var(--brand-ink); box-shadow:none; border-bottom:1px solid #eeedf3; }
.course-controls button:last-child { border-bottom:0; }
.course-controls button:hover { background:#f2f0f7; }
.course-dock { border-radius:8px; padding:5px; gap:2px; background:#292363f2; box-shadow:0 6px 24px #0003; border:1px solid #ffffff24; }
.course-dock button { border-radius:4px; min-width:86px; padding:11px 16px; font-size:11px; gap:7px; }
.course-dock button span { font-size:0; }
.course-dock svg { width:19px; height:19px; display:block; }
.course-dock button[aria-expanded=true] { background:#ffffff16; color:#e4ded0; }
.course-hint { background:#292363b8; border-radius:4px; font-size:10px; letter-spacing:.3px; bottom:126px; }
.course-panel { border-radius:8px; background:var(--bg-surface); color:var(--text-primary); padding:24px; border-top:2px solid var(--brand-gold); box-shadow:0 12px 40px #0003; }
.course-panel h2 { font-size:18px; font-weight:500; }
.course-panel p { color:var(--text-secondary); font-size:13px; }
.course-panel-close { border-radius:4px; color:var(--grass); background:var(--grass-bg); }
.course-tag { border-radius:3px; background:var(--grass-bg); color:var(--grass); letter-spacing:.7px; font-size:9px; }
.course-layer { border-color:var(--border); }
.course-layer input { accent-color:var(--brand-ink); }
@media (max-width:480px) {
 .hero { padding:30px 20px; } .hero h1 { font-size:25px; letter-spacing:2px; }
 .hero h1 .en { font-size:9px; letter-spacing:1px; }
 .status-bar { padding:12px 16px; } .update-info { font-size:9px; }
 .tab { padding:13px 6px; font-size:12px; }
 .course-shell { height:calc(100svh - 72px); }
 .course-brand { padding:12px 14px; } .course-brand strong { font-size:14px; }
 .course-dock button { min-width:75px; padding:10px 12px; }
 .course-hint { bottom:119px; }
 .tl-header { padding:16px; } .tl-header .round-name { font-size:12px; }
 .tl-body { padding:14px 16px; } .tl-badge { font-size:11px; }
}
