:root {
  color-scheme: dark;
  --bg: #09080b;
  --card: #14120f;
  --line: #3a3122;
  --gold: #d7b56d;
  --text: #f4efe4;
  --muted: #a39886;
  --green: #7dcea0;
  --amber: #e0b15a;
  --red: #d36b6b;
  --hp: #2a241c;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body {
  margin: 0;
  min-height: 100vh;
  background:
    radial-gradient(900px 420px at 80% -10%, rgba(215, 181, 109, 0.16), transparent 60%),
    var(--bg);
  color: var(--text);
  font: 15px/1.45 "Iowan Old Style", Palatino, "Songti TC", serif;
}
button, input { font: inherit; }
h1, h2, p { margin: 0; }
h1 { font-weight: 560; letter-spacing: 0.04em; }
h2 { font-size: 16px; color: var(--gold); font-weight: 560; }
.mark { color: var(--gold); letter-spacing: 0.22em; font-size: 12px; }
.muted, .sub, .label { color: var(--muted); }
.card {
  background: linear-gradient(180deg, rgba(215, 181, 109, 0.08), transparent 42%), var(--card);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 22px;
}
.lock {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
}
.lock-card { width: min(420px, 100%); display: grid; gap: 14px; }
.lock-card h1 { font-size: 34px; }
input, button {
  border-radius: 12px;
  border: 1px solid var(--line);
  background: #0d0c0a;
  color: var(--text);
  padding: 12px 14px;
}
button { background: var(--gold); color: #1a140c; border: 0; cursor: pointer; }
button.ghost { background: transparent; color: var(--muted); border: 1px solid var(--line); }
.error { color: var(--red); min-height: 1.2em; }
.board { width: min(1080px, calc(100% - 32px)); margin: 28px auto 48px; display: grid; gap: 16px; }
.top, .sync, .hero-grid, .bar-label { display: flex; justify-content: space-between; gap: 16px; align-items: end; }
.sync { align-items: center; }
.big { font-size: 34px; margin-top: 6px; }
.gold { color: var(--gold); }
.hero-grid { align-items: start; }
.hp {
  margin-top: 18px;
  height: 22px;
  background: var(--hp);
  border-radius: 999px;
  overflow: hidden;
  border: 1px solid #4a3d28;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.35);
}
.hp.slim { height: 12px; margin-top: 8px; }
.hp-fill {
  height: 100%;
  width: 0;
  background: linear-gradient(90deg, #8ee0b0, #d7b56d 70%, #e07a7a);
  transition: width 0.4s ease;
}
.hp-fill.text { background: #d7b56d; }
.hp-fill.vision { background: #8e7cc3; }
.hp-fill.warn { background: linear-gradient(90deg, #e0b15a, #d36b6b); }
.hp-fill.hot { background: #d36b6b; }
.hp-meta { margin-top: 8px; color: var(--muted); font-size: 13px; }
.split { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 16px; }
.bars, .prices, .keys { display: grid; gap: 14px; margin-top: 14px; }
.prices { list-style: none; padding: 0; }
.prices li, .key-head { display: flex; justify-content: space-between; gap: 12px; }
.key {
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(215, 181, 109, 0.12);
}
.key-name { font-size: 18px; }
.suffix { color: var(--muted); font-family: ui-monospace, monospace; font-size: 13px; }
.lamp { font-size: 13px; }
.lamp.active { color: var(--green); }
.lamp.idle { color: var(--muted); }
.lamp.disabled, .lamp.missing { color: var(--red); }
@media (max-width: 760px) {
  .split, .hero-grid, .top { grid-template-columns: 1fr; display: grid; }
  .big { font-size: 28px; }
}
