:root {
  --burgundy: #6d1a2b; --burgundy-2: #8e2438; --gold: #d4af37; --gold-2: #f0d78a; --black: #0d0b0c;
  --bg: #0d0b0c; --panel: rgba(255, 255, 255, 0.06); --panel-2: rgba(255, 255, 255, 0.1); --line: rgba(212, 175, 55, 0.28);
  --text: #f6efe6; --muted: #c9bcae; --ok: #7bd389; --warn: #f0c36a; --bad: #ff8a80; --info: #9ec9ff;
  --radius: 14px; --font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) { --bg: #faf6f0; --panel: rgba(109, 26, 43, 0.05); --panel-2: rgba(109, 26, 43, 0.09); --line: rgba(109, 26, 43, 0.22); --text: #1d1416; --muted: #5d4c50; --ok: #1d7a35; --warn: #8a5a00; --bad: #b3261e; --info: #1d4f91; --gold: #8a6d12; }
}
* { box-sizing: border-box; }
html { font-size: 17px; }
body { margin: 0; overflow-x: hidden; font-family: var(--font); color: var(--text); background: var(--bg); background-image: radial-gradient(circle at 20% 0%, rgba(142, 36, 56, 0.45), transparent 55%), radial-gradient(circle at 100% 30%, rgba(212, 175, 55, 0.12), transparent 50%); min-height: 100vh; line-height: 1.45; }
a { color: var(--gold-2); }
@media (prefers-color-scheme: light) { :root:not([data-theme="dark"]) a:not(.btn) { color: var(--burgundy); } }
h1, h2, h3 { line-height: 1.2; margin: 0 0 0.5rem; }
h1 { font-size: 1.5rem; } h2 { font-size: 1.2rem; } h3 { font-size: 1.02rem; }
.wordmark { font-weight: 800; letter-spacing: 0.06em; background: linear-gradient(180deg, var(--gold-2), var(--gold)); -webkit-background-clip: text; background-clip: text; color: transparent; }
header.top { position: sticky; top: 0; z-index: 5; display: flex; align-items: center; gap: 12px; padding: 12px 16px; background: rgba(13, 11, 12, 0.82); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
@media (prefers-color-scheme: light) { :root:not([data-theme="dark"]) header.top { background: rgba(250, 246, 240, 0.9); } }
header.top .grow { flex: 1; min-width: 0; }
header.top img.logo { height: 40px; width: auto; flex: none; }
header.top small { color: var(--muted); display: block; font-size: 0.75rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.layout { display: grid; grid-template-columns: minmax(0, 1fr); }
nav.side { display: none; }
main { padding: 16px; padding-bottom: 96px; max-width: 1100px; width: 100%; margin: 0 auto; }
nav.side button, .menu-sheet button { display: block; width: 100%; text-align: left; padding: 10px 12px; margin: 2px 0; border-radius: 10px; border: 0; background: none; color: var(--text); font: inherit; font-size: 0.95rem; cursor: pointer; min-height: 44px; }
nav.side button[aria-current="page"], .menu-sheet button[aria-current="page"] { background: linear-gradient(90deg, rgba(142, 36, 56, 0.6), rgba(142, 36, 56, 0.15)); color: var(--gold-2); }
@media (prefers-color-scheme: light) { :root:not([data-theme="dark"]) nav.side button[aria-current="page"] { color: var(--burgundy); background: var(--panel-2); } }
nav.bottom { position: fixed; bottom: 0; left: 0; right: 0; z-index: 6; display: grid; grid-template-columns: repeat(5, 1fr); background: rgba(13, 11, 12, 0.94); border-top: 1px solid var(--line); padding-bottom: env(safe-area-inset-bottom); }
@media (prefers-color-scheme: light) { :root:not([data-theme="dark"]) nav.bottom { background: rgba(250, 246, 240, 0.96); } }
nav.bottom button { background: none; border: 0; color: var(--muted); font: inherit; font-size: 0.72rem; padding: 8px 2px 10px; min-height: 56px; cursor: pointer; }
nav.bottom button span { display: block; font-size: 1.25rem; }
nav.bottom button[aria-current="page"] { color: var(--gold); }
.menu-sheet { position: fixed; inset: 0; z-index: 7; background: rgba(0, 0, 0, 0.6); display: flex; align-items: flex-end; }
.menu-sheet > div { background: var(--bg); width: 100%; max-height: 80vh; overflow-y: auto; padding: 16px; border-radius: 18px 18px 0 0; border-top: 1px solid var(--line); }
.panel { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px; margin-bottom: 14px; backdrop-filter: blur(6px); }
.grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); }
.stat { font-size: 1.8rem; font-weight: 700; color: var(--gold); }
.muted { color: var(--muted); }
.chip { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 0.78rem; font-weight: 600; border: 1px solid currentColor; white-space: nowrap; }
.chip.ok { color: var(--ok); } .chip.warn { color: var(--warn); } .chip.bad { color: var(--bad); } .chip.info { color: var(--info); } .chip.plain { color: var(--muted); }
button.btn, a.btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 8px 16px; border-radius: 10px; border: 1px solid var(--gold); background: linear-gradient(180deg, var(--burgundy-2), var(--burgundy)); color: #fff7e6; font: inherit; font-weight: 600; cursor: pointer; text-decoration: none; }
button.btn.ghost { background: none; color: var(--text); border-color: var(--line); }
button.btn:disabled { opacity: 0.5; cursor: not-allowed; }
.row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
label { display: block; font-size: 0.88rem; color: var(--muted); margin: 10px 0 4px; }
input, select, textarea { width: 100%; min-height: 44px; padding: 10px 12px; border-radius: 10px; border: 1px solid var(--line); background: var(--panel-2); color: var(--text); font: inherit; }
textarea { min-height: 96px; }
table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
th, td { text-align: left; padding: 8px 6px; border-bottom: 1px solid var(--line); vertical-align: top; overflow-wrap: anywhere; }
.scroll-x { overflow-x: auto; }
ol.steps { padding-left: 1.3rem; } ol.steps li { margin: 6px 0; }
details summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.toast { position: fixed; left: 16px; right: 16px; bottom: 84px; z-index: 9; max-width: 520px; margin: 0 auto; padding: 12px 16px; border-radius: 12px; background: var(--burgundy); color: #fff; border: 1px solid var(--gold); }
.notice { border-left: 4px solid var(--gold); padding: 10px 12px; background: var(--panel-2); border-radius: 8px; margin: 10px 0; }
code { background: var(--panel-2); padding: 1px 6px; border-radius: 6px; font-size: 0.85em; word-break: break-all; }
.hero { padding: 48px 16px 24px; max-width: 900px; margin: 0 auto; }
.hero p { font-size: 1.1rem; color: var(--muted); }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) body { background-image: radial-gradient(circle at 20% 0%, rgba(142, 36, 56, 0.14), transparent 55%), radial-gradient(circle at 100% 30%, rgba(212, 175, 55, 0.12), transparent 50%); }
}
/* Phones: lift the shared language button (BAPC Speakers) above the bottom menu until someone drags it elsewhere. */
@media (max-width: 899px) {
  body:has(nav.bottom) div.notranslate[translate="no"][style*="bottom: 14px"] { bottom: 76px !important; }
}
@media (min-width: 900px) {
  .layout { grid-template-columns: 250px minmax(0, 1fr); }
  nav.side { display: block; position: sticky; top: 64px; height: calc(100vh - 64px); overflow-y: auto; padding: 12px; border-right: 1px solid var(--line); }
  nav.bottom { display: none; }
  main { padding: 24px; }
}
