:root {
  --bg: #0f1115; --card: #181b22; --text: #e8eaed; --muted: #9aa0aa;
  --accent: #ff5a36; --accent-2: #ffb800; --good: #38c172; --cell-empty: #242833;
  --radius: 14px; --font: -apple-system, system-ui, Segoe UI, Roboto, sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: var(--font); }
a { color: var(--accent); text-decoration: none; }
.nav { display: flex; gap: 4px; padding: 10px; background: var(--card);
  position: sticky; top: 0; overflow-x: auto; }
.nav a { padding: 10px 14px; border-radius: 10px; color: var(--muted); white-space: nowrap; font-weight: 600; }
.nav a.active { background: var(--accent); color: #fff; }
.wrap { max-width: 760px; margin: 0 auto; padding: 16px; }
.card { background: var(--card); border-radius: var(--radius); padding: 16px; margin-bottom: 14px; }
h1 { font-size: 1.4rem; } h2 { font-size: 1.1rem; }
.muted { color: var(--muted); }
.big { font-size: 2rem; font-weight: 800; }
.row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.badge-verdict { padding: 4px 10px; border-radius: 999px; font-size: .8rem; font-weight: 700; }
.verdict-add_weight { background: var(--good); color: #04210f; }
.verdict-chase_reps { background: var(--accent-2); color: #2a1d00; }
.verdict-start { background: var(--cell-empty); color: var(--muted); }
button, .btn { background: var(--accent); color: #fff; border: 0; border-radius: 10px;
  padding: 10px 16px; font-weight: 700; cursor: pointer; }
button.secondary { background: var(--cell-empty); color: var(--text); }
input, select { background: var(--bg); color: var(--text); border: 1px solid var(--cell-empty);
  border-radius: 8px; padding: 8px; font-size: 1rem; }
input.set-input { width: 64px; }
table { width: 100%; border-collapse: collapse; }
td, th { padding: 6px; text-align: left; border-bottom: 1px solid var(--cell-empty); }
.chip { display: inline-block; padding: 6px 10px; background: var(--cell-empty);
  border-radius: 999px; margin: 3px; font-size: .85rem; }
.chip.unlocked { background: var(--accent-2); color: #2a1d00; font-weight: 700; }
.celebrate { animation: pop .6s ease; }
@keyframes pop { 0%{transform:scale(.7);opacity:0} 60%{transform:scale(1.15)} 100%{transform:scale(1)} }
.progress-bar { height: 10px; background: var(--cell-empty); border-radius: 999px; overflow: hidden; }
.progress-bar > div { height: 100%; background: var(--good); }
.weekbar { display: flex; gap: 6px; overflow-x: auto; padding: 10px; background: var(--card);
  border-radius: var(--radius); margin-bottom: 14px; }
.daybtn { flex: 0 0 auto; min-width: 62px; padding: 8px 6px; border-radius: 10px;
  background: var(--bg); border: 1px solid var(--cell-empty); color: var(--text);
  cursor: pointer; text-align: center; font-weight: 600; }
.daybtn .wd { display: block; font-size: .68rem; color: var(--muted); }
.daybtn .dt { display: block; font-size: 1.2rem; font-weight: 800; line-height: 1.1; }
.daybtn .wt { display: block; font-size: .68rem; }
.daybtn .done { display: block; font-size: .8rem; color: var(--good); min-height: 1em; }
.daybtn.rest { opacity: .55; }
.daybtn.today { border-color: var(--accent-2); }
.daybtn.selected { background: var(--accent); color: #fff; border-color: var(--accent); }
.daybtn.selected .wd, .daybtn.selected .wt { color: #fff; }
.daybtn.selected .done { color: #fff; }
