/* Guitar page */

.phases { list-style: none; padding: 0; margin: 2rem 0 1.5rem; display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(min(18rem, 100%), 1fr)); counter-reset: none; }
.phases .card { display: flex; flex-direction: column; }
.phases .card > a { margin-top: auto; font-weight: 600; }

/* Ritual */
.ritual { display: grid; gap: clamp(1.5rem, 4vw, 3rem); grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: start; }
@media (max-width: 900px) { .ritual { grid-template-columns: minmax(0, 1fr); } }
.blocks { list-style: none; padding: 0; margin: 1.5rem 0 0; display: grid; gap: .6rem; }
.blocks li {
  display: grid; grid-template-columns: 4.2rem 1fr; gap: .75rem; align-items: start;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-sm); padding: .8rem 1rem;
  transition: border-color .2s, background-color .2s;
}
.blocks .t { font: 600 .9rem/1.6 var(--mono); color: var(--accent); }
.blocks li.current { border-color: var(--accent); background: var(--accent-soft); }
.blocks li.done { opacity: .6; }
.blocks li.done strong::after { content: " ✓"; color: var(--ok); }
.timer { position: sticky; top: 5.5rem; text-align: center; }
.timer .btn-row { justify-content: center; }
.timer-block { font: 600 1.1rem/1.3 var(--serif); min-height: 1.5em; margin-bottom: .5rem; }
.timer-time { margin: .25rem 0 1rem; }
.timer-bar { height: .5rem; background: var(--surface-2); border-radius: 999px; overflow: hidden; margin-bottom: 1.25rem; }
.timer-bar div { height: 100%; width: 0; background: var(--accent); transition: width .5s linear; }
.timer p { margin-top: 1rem; }

/* Armory */
.exercises { display: grid; gap: 1.25rem; margin-top: 2rem; grid-template-columns: repeat(auto-fit, minmax(min(30rem, 100%), 1fr)); }
.exercise header { display: grid; gap: .1rem; margin-bottom: 1rem; }
.exercise header h3 { margin: 0; }
.exercise .tempo { font-size: .9rem; color: var(--ink-3); }
.exercise ul { padding-left: 1.2rem; color: var(--ink-2); }
.exercise li { margin-bottom: .4rem; }
.exercise { scroll-margin-top: 5rem; }

/* Log */
.stats { max-width: 40rem; }
.week { display: grid; grid-template-columns: repeat(14, 1fr); gap: .3rem; max-width: 40rem; align-items: end; height: 5rem; margin: 1rem 0 2rem; }
.week div { background: var(--accent); border-radius: 3px 3px 0 0; min-height: 3px; opacity: .85; position: relative; }
.week div.zero { background: var(--line); opacity: 1; }
.small-h { font-size: 1.1rem; }
.sessions { list-style: none; padding: 0; margin: 0 0 1rem; max-width: 40rem; }
.sessions li { display: flex; justify-content: space-between; gap: 1rem; padding: .5rem 0; border-bottom: 1px solid var(--line); }
.sessions .m { font-family: var(--mono); color: var(--ink-2); white-space: nowrap; }

.lab-grid { grid-template-columns: repeat(auto-fit, minmax(min(24rem, 100%), 1fr)); margin-top: 2rem; }
