/* ===========================================================
   Nota-bene — веб-презентация «Модель работы» (/format-raboty).
   Подключается ТОЛЬКО этой страницей (не влияет на вес других
   страниц) — см. pages/format_raboty.html.

   Один активный слайд за раз: скрытие через [hidden] (см.
   js/format-raboty.js) — высота блока = высота текущего слайда,
   без обрезания контента фиксированной высотой. Если слайд выше
   доступной области экрана — внутри него собственная прокрутка
   (.slide-panel), кнопки навигации остаются на месте.
   =========================================================== */

.deck-shell { max-width: 860px; margin: 0 auto; }

.deck {
  position: relative;
  background: var(--paper-raised);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  overflow: hidden;
}

.slide-panel {
  padding: var(--sp-8) var(--sp-7);
  max-height: 70vh;
  overflow-y: auto;
}
@media (max-width: 640px) {
  .slide-panel { padding: var(--sp-6) var(--sp-5); max-height: 60vh; }
}

.slide-kicker {
  font-family: var(--font-mono);
  font-size: var(--text-eyebrow);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: var(--sp-4);
}

.slide-panel h2 {
  font-size: var(--text-h3);
  margin-bottom: var(--sp-5);
  text-wrap: balance;
}

/* ---------- Навигация под слайдом ---------- */
.deck-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
  margin-top: var(--sp-5);
}
.deck-nav-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  padding: 12px 20px;
  min-height: 44px;
  border-radius: var(--radius);
  border: 1px solid var(--line-strong);
  background: var(--paper-alt);
  color: var(--ink);
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.92rem;
  cursor: pointer;
  transition: border-color var(--transition), color var(--transition), opacity var(--transition);
}
.deck-nav-btn:hover:not(:disabled) { border-color: var(--accent); color: var(--accent-hover); }
.deck-nav-btn:disabled { opacity: 0.35; cursor: not-allowed; }
.deck-counter {
  font-family: var(--font-mono);
  font-size: 0.85rem;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.deck-hint {
  text-align: center;
  margin-top: var(--sp-3);
  font-size: 0.78rem;
  color: var(--muted);
}

/* ---------- cover ---------- */
.slide-cover {
  text-align: center;
  padding-block: var(--sp-9) var(--sp-8);
  background:
    radial-gradient(ellipse 700px 340px at 50% 0%, var(--accent-soft), transparent 65%);
}
.slide-cover h1,
.slide-cover h2 {
  font-size: var(--text-h1);
  margin-bottom: var(--sp-5);
  /* h1 титульного слайда выглядит как прежний h2 (интервал и трекинг h2), меняется только уровень заголовка */
  line-height: 1.15;
  letter-spacing: -0.01em;
}
.slide-cover .slide-subtitle {
  max-width: 46ch;
  margin: 0 auto;
  font-size: var(--text-body-lg);
  color: var(--ink-soft);
}
.slide-cover .cover-rule {
  width: 64px;
  height: 2px;
  background: var(--accent);
  margin: var(--sp-5) auto;
}

/* ---------- conclusion (симметрична cover, тише) ---------- */
.slide-conclusion { text-align: center; padding-block: var(--sp-7); }
.slide-conclusion p { max-width: 52ch; margin-inline: auto; }

/* ---------- timeline ---------- */
.timeline { display: flex; flex-direction: column; }
.timeline-row {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: var(--sp-5);
  padding-block: var(--sp-4);
  border-top: 1px solid var(--line);
  position: relative;
}
.timeline-row:first-child { border-top: none; padding-top: 0; }
.timeline-date {
  font-family: var(--font-mono);
  font-size: 0.85rem;
  letter-spacing: 0.03em;
  color: var(--accent);
  padding-top: 2px;
}
@media (max-width: 640px) {
  .timeline-row { grid-template-columns: 1fr; gap: var(--sp-2); }
}

/* ---------- branch (два исхода/этапа рядом) ---------- */
.branches { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-5); margin-top: var(--sp-5); }
@media (max-width: 640px) { .branches { grid-template-columns: 1fr; } }
.branch-card {
  background: var(--paper-alt);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: var(--sp-5);
}
.branch-card h3 {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 700;
  color: var(--accent-hover);
  margin-bottom: var(--sp-2);
}
.branch-card p { margin: 0; color: var(--ink-soft); }

/* ---------- definition ---------- */
.term-display {
  font-family: var(--font-display);
  font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.1rem);
  color: var(--accent);
  margin-bottom: var(--sp-3);
}
.slide-definition .definition-text { font-size: var(--text-body-lg); color: var(--ink-soft); max-width: 58ch; }
.definition-notes { margin-top: var(--sp-5); padding-top: var(--sp-4); border-top: 1px solid var(--line); }
.definition-notes li { margin-bottom: var(--sp-2); color: var(--muted); font-size: var(--text-small); }

/* ---------- list (нормативные акты + практика) ---------- */
.citation-list { list-style: none; margin: 0 0 var(--sp-5); padding: 0; display: flex; flex-direction: column; gap: var(--sp-3); }
.citation-list li {
  display: flex; align-items: baseline; gap: var(--sp-3);
  font-family: var(--font-mono);
  font-size: 0.92rem;
  color: var(--ink);
  padding-bottom: var(--sp-3);
  border-bottom: 1px solid var(--line);
}
.citation-list li::before { content: '§'; color: var(--accent); flex-shrink: 0; }
.slide-list .slide-note { color: var(--ink-soft); }

/* ---------- tradeoff ---------- */
.tradeoff-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-5); margin-top: var(--sp-5); }
@media (max-width: 640px) { .tradeoff-grid { grid-template-columns: 1fr; } }
.tradeoff-card { border-radius: var(--radius); padding: var(--sp-5); border: 1px solid var(--line-strong); }
.tradeoff-card:first-child { background: var(--paper-alt); }
.tradeoff-card:last-child { background: rgba(198, 120, 109, 0.08); border-color: rgba(198, 120, 109, 0.3); }
.tradeoff-card h3 { font-size: 1rem; margin-bottom: var(--sp-2); color: var(--ink); }
.tradeoff-card p { margin: 0; color: var(--ink-soft); }
.slide-tradeoff .slide-note { margin-top: var(--sp-5); color: var(--muted); font-size: var(--text-small); }

/* ---------- checklist ---------- */
.checklist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--sp-4); }
.checklist li { display: flex; gap: var(--sp-4); align-items: flex-start; }
.checklist-mark {
  flex-shrink: 0;
  width: 28px; height: 28px;
  border-radius: 50%;
  border: 1px solid var(--line-strong);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-mono);
  font-size: 0.8rem;
  color: var(--accent);
}
.checklist p { margin: 0; color: var(--ink-soft); }
.slide-checklist .slide-note { margin-top: var(--sp-5); color: var(--muted); font-size: var(--text-small); }

/* ---------- table (переиспользует .data-table из components.css) ---------- */
.slide-table .table-scroll { margin-top: var(--sp-2); }

/* ---------- warning ---------- */
.slide-warning {
  border-left: 3px solid #b5564a;
  padding-left: var(--sp-6);
}
.slide-warning .slide-kicker { color: #e0958a; }
.slide-warning p { color: var(--ink-soft); }

@media (prefers-reduced-motion: reduce) {
  .deck-nav-btn { transition: none; }
}
