/* Тренировочный лог, а не дашборд: линованная страница, один скруглённый объект
   на всю страницу — блины на грифе. Тени не используем принципиально. */

:root {
  --ink: #1b1d22;        /* фон: графит */
  --surface: #23262d;
  --line: #353a44;
  --chalk: #eae6dc;      /* основной текст: кость */
  --muted: #8f939c;
  --accent: #6f8fb0;     /* сталь: действие и данные */
  --good: #5bb381;

  --step: clamp(0.9rem, 0.85rem + 0.2vw, 1rem);
  --gap: clamp(20px, 3vw, 40px);
}

* { box-sizing: border-box; }

/* Собственный display у .gate перебивает браузерное [hidden] — возвращаем силой. */
[hidden] { display: none !important; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  padding: var(--gap);
  background: var(--ink);
  color: var(--chalk);
  font-family: "Golos Text", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: var(--step);
  line-height: 1.5;
  max-width: 1180px;
  margin-inline: auto;
}

h1, h2 { margin: 0; font-weight: 600; }

.mark, .gate__mark {
  font-family: Unbounded, Golos Text, sans-serif;
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  color: var(--accent);
  margin: 0 0 2px;
}

/* --- Шапка --- */

.top {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: flex-end;
  justify-content: space-between;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--line);
}

.top h1 {
  font-family: Unbounded, sans-serif;
  font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.2rem);
  letter-spacing: -0.01em;
}

.top__meta { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }

.badge {
  border: 1px solid var(--line);
  padding: 4px 10px;
  color: var(--muted);
  font-size: 0.82rem;
}

.periods { display: flex; gap: 2px; }

.periods button {
  background: none;
  border: 1px solid var(--line);
  border-right-width: 0;
  color: var(--muted);
  font: inherit;
  font-size: 0.85rem;
  padding: 5px 12px;
  cursor: pointer;
}

.periods button:last-child { border-right-width: 1px; }
.periods button:hover { color: var(--chalk); }
.periods button.is-on { color: #10151b; background: var(--accent); border-color: var(--accent); }

/* --- Герой: штанга недели --- */

.bar { padding: clamp(24px, 4vw, 44px) 0 clamp(20px, 3vw, 32px); }

.bar__title {
  font-family: Unbounded, sans-serif;
  font-size: clamp(1.1rem, 0.95rem + 0.6vw, 1.4rem);
}

.bar__sub { color: var(--muted); margin: 6px 0 clamp(14px, 2vw, 26px); max-width: 60ch; }

.bar__stage svg { width: 100%; height: auto; display: block; }

/* --- Сетка --- */

.grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  gap: clamp(24px, 4vw, 56px);
  align-items: start;
  border-top: 1px solid var(--line);
  padding-top: var(--gap);
}

.ledger h2, .panel h2 {
  font-size: 0.78rem;
  letter-spacing: 0.16em;
  color: var(--muted);
  font-weight: 500;
  margin-bottom: 14px;
}

/* --- Лог тренировок: линованная страница --- */

.day {
  border-top: 1px solid var(--line);
  padding: 16px 0;
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) auto;
  gap: 16px;
  align-items: baseline;
}

.day:last-child { border-bottom: 1px solid var(--line); }

.day__date {
  font-family: Unbounded, sans-serif;
  font-weight: 600;
  font-size: 1.05rem;
  color: var(--chalk);
}

.day__month { display: block; font-family: "Golos Text", sans-serif; font-weight: 400; font-size: 0.75rem; color: var(--muted); }

.day__list { margin: 0; padding: 0; list-style: none; }

.day__row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 2px 0;
  border-bottom: 1px dotted color-mix(in srgb, var(--line) 80%, transparent);
}

.day__row:last-child { border-bottom: 0; }
.day__row b { font-weight: 500; }
.day__num { color: var(--muted); white-space: nowrap; font-variant-numeric: tabular-nums; }
.day__pr { color: var(--accent); }

.day__sum { text-align: right; color: var(--muted); font-variant-numeric: tabular-nums; }
.day__sum b { display: block; color: var(--chalk); font-family: Unbounded, sans-serif; font-size: 1rem; }

/* --- Правая колонка --- */

.rail { display: grid; gap: clamp(22px, 3vw, 34px); }

.panel { border-top: 1px solid var(--line); padding-top: 14px; }
.panel svg { width: 100%; height: auto; display: block; }
.panel__note { color: var(--muted); font-size: 0.85rem; margin: 8px 0 0; }

.records { list-style: none; margin: 0; padding: 0; }

.records li {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 7px 0;
  border-bottom: 1px dotted color-mix(in srgb, var(--line) 80%, transparent);
}

.records li:last-child { border-bottom: 0; }
.records b { font-family: Unbounded, sans-serif; font-weight: 600; font-variant-numeric: tabular-nums; }

.measures { display: grid; grid-template-columns: repeat(auto-fit, minmax(90px, 1fr)); gap: 14px 18px; }
.measures div span { display: block; color: var(--muted); font-size: 0.78rem; }
.measures div b { font-family: Unbounded, sans-serif; font-weight: 600; font-size: 1.1rem; }
.measures em { font-style: normal; font-size: 0.8rem; color: var(--muted); }

.macros { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.macros div span { display: block; color: var(--muted); font-size: 0.78rem; }
.macros div b { font-family: Unbounded, sans-serif; font-weight: 600; font-size: 1.05rem; }

.empty { color: var(--muted); padding: 10px 0; }

/* --- Подвал и вход --- */

.foot {
  display: flex;
  justify-content: space-between;
  margin-top: clamp(30px, 5vw, 60px);
  padding-top: 16px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 0.85rem;
}

.foot a { color: var(--muted); }

.gate { min-height: 70vh; display: grid; place-items: center; text-align: left; }
.gate__inner { max-width: 44ch; }
.gate h1 { font-family: Unbounded, sans-serif; font-size: clamp(1.6rem, 1.2rem + 2vw, 2.4rem); margin-bottom: 12px; }
.gate__text { color: var(--muted); }

.btn {
  display: inline-block;
  margin-top: 20px;
  padding: 11px 20px;
  background: var(--accent);
  color: #10151b;
  font-weight: 600;
  text-decoration: none;
}

a:focus-visible, button:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

@media (max-width: 860px) {
  .grid { grid-template-columns: 1fr; }
  .day { grid-template-columns: 60px minmax(0, 1fr); }
  .day__sum { grid-column: 2; text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
}
