/* tour.css — rules used only by A Tour of Raku.
   Split out of base.css: some of these deliberately OVERRIDE shared rules
   (the sidebar chapters are plain labels here, so sections are always open),
   which silently disabled the spec's collapsible nav while they were global.
   Loaded after base.css, on /tour pages only. */

/* ------------------------------------------------------------------------- */
/* (was the tail of the tour's own base.css) */
/* ------------------------------------------------------------------------- */

/* Chapters in the sidebar are always expanded — a plain label, not a button. */
.nav-cat-name {
  display: block;
  padding: .45rem .9rem .2rem;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
}
.nav-cat .nav-cat-body { display: block; }

/* Progress ticks: a hollow dot that becomes an accent check once visited. */
.tick {
  display: inline-block;
  width: .85rem;
  color: transparent;
  font-size: .7rem;
}
a.done .tick { color: var(--accent); }
a.done .tick::before { content: "✓"; }
.lnum { color: var(--muted); font-size: .82em; }

/* Prev / next footer on every lesson. */
.lesson-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 2.5rem;
  padding-top: 1.2rem;
  border-top: 1px solid var(--border);
}
.lnav { display: flex; flex-direction: column; gap: .15rem; min-width: 8rem; }
a.lnav { text-decoration: none; }
a.lnav.next { text-align: right; }
.lnav-dir { font-size: .78rem; color: var(--muted); }
a.lnav:hover .lnav-dir { color: var(--accent); }
.lnav-title { font-weight: 600; }
.lnav-pos { color: var(--muted); font-size: .82rem; white-space: nowrap; }

/* Exercise card. */
.exercise {
  margin: 1.2rem 0;
  padding: .8rem .9rem .5rem;
  border: 1px solid var(--note-bd);
  border-radius: 8px;
  background: var(--note-bg);
}
.exercise-label {
  display: inline-block;
  margin-bottom: .4rem;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--accent);
}

/* Collapsed solution. */
details.solution { margin: .8rem 0 1.2rem; }
details.solution > summary {
  cursor: pointer;
  color: var(--muted);
  font-size: .88rem;
  user-select: none;
}
details.solution > summary:hover { color: var(--accent); }
details.solution[open] > summary { margin-bottom: .6rem; }

/* Home: start / continue buttons + ticked overview lists. */
.btn-continue {
  display: inline-block;
  margin-right: .8rem;
  padding: .55rem 1.1rem;
  border-radius: 8px;
  font-weight: 600;
  text-decoration: none;
  border: 1px solid var(--border);
  color: var(--fg);
}
.btn-continue[hidden] { display: none; }
.btn-continue:hover { text-decoration: none; border-color: var(--accent); color: var(--accent); }
.btn-reset {
  border: none;
  background: none;
  padding: .55rem 0;
  font: inherit;
  font-size: .85rem;
  color: var(--muted);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.btn-reset:hover, .btn-reset.armed { color: var(--accent); }
.btn-reset[hidden] { display: none; }
.ov-list a { display: flex; align-items: baseline; gap: .3rem; }
