/* «Как чертить» (правка 634): ряд уровней, Пифа с репликой, задание и лист во фрейме. Значения — только из tokens.css. */
@media (min-width: 960px) { .app.draw { display: block; max-width: calc(var(--content-wide) + 2 * var(--gutter-wide)); } }
.draw-title { margin: 0 0 var(--sp-1); font-size: var(--fs-h1); line-height: var(--lh-heading); }

/* Уровни: номер, название, отметка ✓ (пройден) или ↷ (пропущен). На телефоне — прокрутка вбок, от 1024 — все в ряд сеткой. */
.draw-levels { list-style: none; display: flex; gap: var(--sp-2); overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: thin;
  margin: var(--sp-4) calc(-1 * var(--sp-2)) 0; padding: var(--sp-1) var(--sp-2) var(--sp-3); }
.draw-levels li { flex: none; scroll-snap-align: start; }
.ht-level { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--sp-2); width: 168px; min-height: var(--control-h);
  padding: var(--sp-2) var(--sp-3); border: 1px solid var(--line); border-radius: var(--r-block); background: var(--surface2);
  color: var(--ink); font: inherit; text-align: left; cursor: pointer; transition: border-color .15s, background .15s; }
.ht-level:hover { border-color: var(--accent); }
.ht-level:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.ht-level.is-current { border-color: var(--accent); background: var(--accent-soft); box-shadow: inset 0 0 0 1px var(--accent); }
.ht-n { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--surface); color: var(--accent-deep);
  font-size: var(--fs-14); font-weight: 700; }
.ht-level.is-done .ht-n { background: var(--ok-soft); color: var(--ok); }
.ht-name { font-size: var(--fs-14); font-weight: 600; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ht-mark { color: var(--ok); font-weight: 700; }
.ht-level.is-skipped .ht-mark { color: var(--ink3); }
@media (min-width: 1024px) {
  .draw-levels { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); overflow: visible; margin: var(--sp-4) 0 0; padding: 0 0 var(--sp-2); }
  .ht-level { width: 100%; }
}

/* Уровень: название и задание, рядом — Пифа с репликой (на телефоне — под заданием), ниже лист. */
.draw-level { margin-top: var(--sp-4); }
.draw-intro { display: grid; gap: var(--sp-3); }
@media (min-width: 768px) { .draw-intro { grid-template-columns: minmax(0, 1fr) minmax(0, 420px); align-items: start; } }
.draw-pifa { margin: 0; }
.draw-name { margin: 0 0 var(--sp-2); font-size: var(--fs-block-title); font-weight: var(--fw-block-title); line-height: var(--lh-heading); }
.draw-text { margin: 0; font-size: var(--fs-16); line-height: 1.5; }
.draw .guide-sheet { margin: var(--sp-3) 0; border: 1px solid var(--line); border-radius: var(--r-block); overflow: hidden; background: var(--sheet-out); }
.draw .guide-sheet-frame { display: block; width: 100%; height: min(80vh, 720px); min-height: 520px; border: 0; }
@media (min-width: 1200px) { .draw .guide-sheet-frame { height: calc(100vh - 120px); min-height: 620px; } }  /* 641: лист крупнее */
.draw-actions { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin-top: var(--sp-3); }
.draw-free { margin: var(--sp-5) 0 0; }
.draw-free a { display: inline-flex; align-items: center; min-height: var(--control-h); color: var(--accent-deep); font-weight: 600; font-size: var(--fs-15); }
