/* ============================================================
   PLAN — v2 layout
   The reference catalog. Editorial cycle block at the top, day
   sections below. Read-only depth.
   ============================================================ */

.plan-empty {
  font: 500 15px/1.55 var(--font-sans);
  color: var(--paper-dim);
  max-width: 340px;
}

/* ── Cycle block ────────────────────────────────────────────── */
/* Horizontal week-grid showing where the client is in the program.
   Done weeks fill green; current week is white-outlined; future weeks
   stay dim. Glanceable "where am I" with no extra prose. */
.plan-cycle {
  margin: var(--space-5) 0 var(--space-6);
  padding: 18px;
  border: 1px solid var(--hair);
  border-radius: 16px;
  background: var(--bg-1);
}

.plan-cycle-top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: var(--space-3);
}

.plan-cycle-label {
  font: 700 11px/1 var(--font-mono);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--paper-mute);
}

.plan-cycle-progress {
  font: 500 13px/1 var(--font-mono);
  letter-spacing: 0.04em;
  color: var(--paper);
  font-variant-numeric: tabular-nums lining-nums;
}

.plan-cycle-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(28px, 1fr));
  gap: 4px;
}

.plan-wk {
  aspect-ratio: 1 / 1;
  border-radius: 4px;
  background: var(--bg-2);
  color: var(--paper-mute);
  font: 600 9px/1 var(--font-mono);
  display: grid;
  place-items: center;
}

.plan-wk--done {
  background: var(--green);
  color: var(--bg);
}

.plan-wk--current {
  outline: 1.5px solid var(--paper);
  outline-offset: 1px;
  color: var(--paper);
}

/* ── Day sections ───────────────────────────────────────────── */
.plan-days {
  padding: 0 var(--space-5);
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  margin-top: var(--space-4);
}

.plan-day {
  border: 1px solid var(--hair);
  border-radius: 16px;
  background: var(--bg-1);
  padding: 18px;
}

.plan-day-header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding-bottom: var(--space-3);
  margin-bottom: var(--space-2);
  border-bottom: 1px solid var(--hair-soft);
}

.plan-day-meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.plan-day-dow {
  font: 600 10px/1 var(--font-mono);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--paper-mute);
}

.plan-day-focus {
  font: 700 22px/1.1 var(--font-sans);
  letter-spacing: -0.015em;
  color: var(--paper);
}

.plan-day-session {
  font: 700 11px/1 var(--font-mono);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--green);
}

.plan-rows {
  display: flex;
  flex-direction: column;
}

.plan-row {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: baseline;
  gap: var(--space-3);
  padding: var(--space-4) 0;
  border-bottom: 1px solid var(--hair-soft);
  min-height: 44px;
}
.plan-row:last-child { border-bottom: none; }

.plan-ex-name {
  font: 500 16px/1.2 var(--font-sans);
  letter-spacing: -0.005em;
  color: var(--paper);
}

.plan-ex-scheme {
  font: 500 13px/1 var(--font-mono);
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: 0.02em;
  color: var(--paper-dim);
}

/* Retired classes (colophon, chevron, plan-title, plan-subtitle,
   plan-day-name) are no longer emitted by JS — no rules needed.
   Coach attribution will return when the brand identity is finalized. */
