/* ══════════════════════════════════════════════════════════
   Курс «30 дней восстановления тела и души»
   Стиль перенят со страницы книг master-daoshen.ru и переведён
   в светлые тона.

   Что взято со страницы книг по устройству:
   · секция      — диагональный градиент из трёх стопов + верхняя рамка
   · блок внутри — зелёная подложка + зелёная рамка + радиус 12
   · заголовок   — Merriweather по центру, акцентное слово зелёным
   · кнопка      — градиент #3f6a34→#557f32, радиус 50px, зелёная тень
   ·                (23.08.2026: светлый край затемнён — белый текст держит 4.7:1
   ·                 по всей ширине, было 2.44:1 на светлом крае)

   ⛔ ЧИТАЕМОСТЬ. Аудитория 55+. Вторичный текст держим НЕ ниже 7:1 и
      не легче 500. Первая версия имела #8c9184 (3.3:1) — Александр
      сказал, что читать тяжело даже ему. Светлее --ink-soft не уходить.
   ══════════════════════════════════════════════════════════ */

:root{
  /* Светлый аналог тёмного градиента секций. Стопы разведены сильно:
     на светлом фоне разница в 2-3% глазом не различается */
  --sec-1:  #fdfcf8;
  --sec-2:  #f0f5e8;
  --sec-3:  #e2edda;
  --sec-ln: #d5e3c9;

  --ink:       #22261e;   /* 14.6:1 к фону */
  --ink-soft:  #414737;   /* 10.1:1 — основной вторичный */
  --ink-faint: #565c4a;   /*  7.6:1 — самый светлый допустимый */

  --green:    #355c2c;
  --green-md: #43712f;    /* акцент, 6.4:1 — только крупным и жирным */
  --green-lt: #7ab648;

  --blk-bg: rgba(74,124,63,.055);
  --blk-ln: rgba(74,124,63,.22);

  /* Вторая линия дня, «Внутри». Отдельный цвет, а не оттенок зелёного:
     в каждом дне два действия, телесное и внутреннее, и различать их
     человек должен с одного взгляда. 6.5:1 к бумаге */
  --inner:    #7d4f24;
  --inner-bg: rgba(160,104,44,.075);
  --inner-ln: rgba(160,104,44,.26);

  --warn:    #8a3a2a;     /* только для запретов внутри уроков */
  --warn-bg: #f7ece7;

  --serif: 'Merriweather', Georgia, serif;
  --sans:  'Montserrat', -apple-system, 'Segoe UI', sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box}
body{font-family:var(--sans);background:var(--sec-1);color:var(--ink);
     line-height:1.6;font-size:16px;-webkit-text-size-adjust:100%}
img{max-width:100%;height:auto;display:block}
a{color:var(--green-md)}

/* ── ТОПБАР ───────────────────────────────────────────── */
.topbar{background:linear-gradient(135deg,#f0f5e8,#e2edda);border-bottom:1px solid var(--sec-ln);
        padding:11px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;
        position:sticky;top:0;z-index:200}
.brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink)}
.seal{width:28px;height:28px;border-radius:9px;flex-shrink:0;background:linear-gradient(135deg,#3f6a34,#557f32);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Noto Serif SC','Merriweather',Georgia,serif;font-size:16px;font-weight:300;line-height:1}
/* Название переносится на две строки только на телефоне, и по умолчанию строки
   расходятся так, что шапка выглядит рыхлой рядом с печатью 道 */
.brand b{font-size:13.5px;font-weight:800;letter-spacing:.2px;line-height:1.15}
.tools{display:flex;gap:13px;flex-shrink:0}
.lnk{font-size:13px;color:var(--ink-soft);text-decoration:none;font-weight:600;
     display:flex;align-items:center;gap:5px}
.lnk svg{flex-shrink:0}
.back{display:inline-block;margin:14px 0 0 14px;font-size:13.5px;font-weight:700;
      color:var(--green-md);text-decoration:none}

/* ── СЕКЦИЯ ───────────────────────────────────────────── */
.sec{background:linear-gradient(135deg,var(--sec-1),var(--sec-2),var(--sec-3));
     border-top:1px solid var(--sec-ln);padding:28px 14px}
/* Встречный градиент у соседней секции: на светлом фоне это единственный
   способ увидеть границу, простой разницы яркости не хватает */
.sec.alt{background:linear-gradient(135deg,var(--sec-3),var(--sec-2),var(--sec-1))}
.sec.tight{padding:18px 14px}
.in{max-width:480px;margin:0 auto;text-align:center}
.in.left{text-align:left}

/* ── ЗАГОЛОВКИ ────────────────────────────────────────── */
.sec-q{font-family:var(--serif);font-size:15px;font-weight:700;color:var(--green-md);
       margin-bottom:6px;line-height:1.4}
h1{font-family:var(--serif);font-size:28px;font-weight:700;line-height:1.3;
   letter-spacing:-.02em;margin-bottom:12px}
h2{font-family:var(--serif);font-size:23px;font-weight:700;line-height:1.35;margin-bottom:10px}
h1 em,h2 em,h1 span,h2 span{font-style:normal;color:var(--green-md)}
.lead{font-size:16px;color:var(--ink-soft);line-height:1.55;font-weight:500}
.eyebrow{font-family:var(--serif);font-size:14.5px;font-weight:700;color:var(--green-md);margin-bottom:8px}
.eyebrow .dim{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--ink-faint);margin-left:7px}

/* ── БЛОК ─────────────────────────────────────────────── */
.blk{background:var(--blk-bg);border:1px solid var(--blk-ln);border-radius:12px;
     padding:16px;text-align:left;margin-bottom:12px}
a.blk{display:block;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s}
a.blk:hover{border-color:var(--green-md);box-shadow:0 6px 20px rgba(74,124,63,.12)}

.blk-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:9px}
.big{font-family:var(--serif);font-size:20px;font-weight:700;line-height:1.3}
.big b{color:var(--green-md)}
.big i{font-style:normal;font-size:15px;color:var(--ink-faint);font-family:var(--sans);font-weight:600}
.meta{font-size:13px;color:var(--ink-faint);font-weight:700;white-space:nowrap}
.p{font-size:14.5px;color:var(--ink-soft);line-height:1.55;font-weight:500}
.go{color:var(--green-md);font-weight:800;font-size:16px}

.line{display:flex;justify-content:space-between;align-items:center;gap:12px;
      padding:11px 2px;border-bottom:1px solid rgba(74,124,63,.14);
      font-size:14.5px;font-weight:600;line-height:1.4}
.line:last-child{border-bottom:none}
.line .v{color:var(--green-md);font-weight:800;white-space:nowrap}

.total{display:flex;justify-content:space-between;align-items:center;gap:12px;
       background:rgba(122,182,72,.16);border:1px solid rgba(74,124,63,.34);
       border-radius:11px;padding:14px 15px;margin-top:12px}
.total b{font-size:15px;font-weight:800}
.total i{font-style:normal;font-family:var(--serif);font-size:22px;font-weight:700;color:var(--green)}

/* ── ПРОГРЕСС И ГРАФИК ────────────────────────────────── */
.track{height:8px;background:rgba(74,124,63,.16);border-radius:5px;overflow:hidden;margin-top:6px}
.track i{display:block;height:100%;background:linear-gradient(135deg,#4a7c3f,#7ab648);border-radius:5px}
.chart{display:flex;align-items:flex-end;gap:2px;height:56px;margin-top:16px}
.chart span{flex:1;background:rgba(74,124,63,.14);border-radius:3px 3px 0 0;min-width:2px}
.chart span.has{background:linear-gradient(180deg,#7ab648,#4a7c3f)}
.note{font-size:13.5px;color:var(--ink-faint);margin-top:10px;line-height:1.5;font-weight:500;text-align:left}

/* ── КАРТОЧКА НЕДЕЛИ ──────────────────────────────────── */
.week{display:block;text-decoration:none;color:inherit;background:var(--blk-bg);
      border:1px solid var(--blk-ln);border-radius:12px;padding:16px;margin-bottom:11px;
      text-align:left;position:relative;transition:border-color .15s,box-shadow .15s}
.week:hover{border-color:var(--green-md);box-shadow:0 6px 20px rgba(74,124,63,.12)}
.week .num{position:absolute;top:11px;right:15px;font-family:var(--serif);font-size:32px;
           font-weight:700;color:rgba(74,124,63,.16);line-height:1}
.lbl{font-size:11.5px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;
     color:var(--green-md);margin-bottom:6px}
.week h3{font-family:var(--serif);font-size:17.5px;font-weight:700;line-height:1.32;
         margin-bottom:6px;padding-right:46px}
.week p{font-size:14px;color:var(--ink-soft);line-height:1.5;margin-bottom:12px;font-weight:500}
.foot{display:flex;justify-content:space-between;align-items:center}
.dots{display:flex;gap:5px;flex-wrap:wrap}
.dots i{width:7px;height:7px;border-radius:50%;background:rgba(74,124,63,.20)}
.dots i.on{background:var(--green-md)}
.dots i.now{background:var(--green-lt);box-shadow:0 0 0 3px rgba(122,182,72,.28)}

/* ── ПЛИТКИ ───────────────────────────────────────────── */
.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;text-align:left}
.grid.wide{grid-template-columns:1fr}
.tile{display:block;text-decoration:none;color:inherit;background:var(--blk-bg);
      border:1px solid var(--blk-ln);border-radius:12px;padding:14px 13px;transition:border-color .15s}
.tile:hover{border-color:var(--green-md)}
.tile .ic{display:flex;width:32px;height:32px;border-radius:9px;background:rgba(122,182,72,.18);
          color:var(--green);align-items:center;justify-content:center;margin-bottom:9px}
.tile b{display:block;font-size:14.5px;font-weight:700;line-height:1.3;margin-bottom:4px}
.tile span{font-size:13px;color:var(--ink-soft);line-height:1.45;display:block;font-weight:500}
.tile .ver{font-style:normal;font-size:11px;font-weight:800;color:var(--green-md);
           text-transform:uppercase;letter-spacing:.6px}

/* ── КАРТОЧКИ ДНЕЙ (страница недели) ──────────────────── */
.les{display:flex;gap:12px;align-items:center;text-decoration:none;color:inherit;
     background:var(--blk-bg);border:1px solid var(--blk-ln);border-radius:12px;
     padding:11px;margin-bottom:9px;transition:border-color .15s,box-shadow .15s}
a.les:hover{border-color:var(--green-md);box-shadow:0 6px 20px rgba(74,124,63,.12)}
.les.now{border-color:var(--green-md);background:rgba(122,182,72,.13)}
.les.lock{opacity:.72}
.les .thumb{position:relative;width:64px;height:64px;border-radius:10px;flex-shrink:0;overflow:hidden;
            background:linear-gradient(135deg,#e2edda,#cfe0c2);display:flex;align-items:center;justify-content:center}
.les .thumb img{width:100%;height:100%;object-fit:cover}
.les .ph{font-family:var(--serif);font-size:22px;font-weight:700;color:rgba(53,92,44,.42)}
.day-badge{position:absolute;left:0;bottom:0;background:rgba(34,38,30,.82);color:#fff;
           font-size:9.5px;font-weight:800;letter-spacing:.4px;padding:2px 5px;border-radius:0 6px 0 8px}
.tick{position:absolute;right:3px;top:2px;color:var(--green-md);font-weight:800;font-size:14px}
.les .body{min-width:0}
.les .body b{display:block;font-size:15px;font-weight:700;line-height:1.32;margin-bottom:3px}
.les .body small{font-size:12.5px;color:var(--ink-faint);font-weight:600}
.lockrow{display:flex;align-items:center;gap:6px;color:var(--ink-faint)}
.lockrow .lr{display:flex;flex-direction:column;line-height:1.25}
.lockrow .lr span{font-size:11.5px;font-weight:600}
.lockrow .lr b{font-size:12.5px;font-weight:800;color:var(--ink-soft)}

/* ── КНИГИ И КУРС-ПОДАРОК ─────────────────────────────
   Обложка обтекается текстом: слева, прижата к верху карточки.
   Справа от неё текст идёт в полширины, а ниже обложки — во всю.
   Так не остаётся пустого места под картинкой. */
.books{
  display:block;
  background:linear-gradient(120deg,#eef4e6,#e4eeda 60%,#dae9cf);
  border:1px solid rgba(74,124,63,.30);border-radius:16px;
  padding:16px;text-decoration:none;color:var(--ink);text-align:left;
  box-shadow:0 4px 18px rgba(74,124,63,.10);
  transition:transform .2s,box-shadow .2s;
  overflow:hidden;position:relative;
}
.books:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(74,124,63,.16)}
.books::after{content:"";display:block;clear:both}
.books .cov{
  float:left;width:78px;height:auto;border-radius:9px;
  margin:0 13px 8px 0;
  box-shadow:0 4px 14px rgba(47,74,40,.28);border:1px solid rgba(74,124,63,.24);
}
.books-txt{
  display:block;font-size:14px;line-height:1.55;color:var(--ink-soft);font-weight:500;
  text-align:left;   /* иначе наследуется center от .in и строки рвутся с двух сторон */
  hyphens:auto;-webkit-hyphens:auto;
  padding-bottom:6px;   /* место под стрелку в углу */
}
/* ⛔ Стрелка стоит в углу абсолютом, а не float: с плавающей стрелкой
   её прямоугольник накладывался на блок текста и строки перечёркивались */
.books .go{
  position:absolute;right:14px;bottom:12px;
  width:32px;height:32px;border-radius:50%;
  border:1px solid rgba(74,124,63,.36);display:flex;align-items:center;justify-content:center;
  color:var(--green-md);font-size:16px;font-weight:800;
  background:rgba(255,255,255,.55);
}

/* ── КНОПКА ───────────────────────────────────────────── */
.btn{display:inline-block;text-decoration:none;background:linear-gradient(135deg,#3f6a34,#557f32);
     border:none;color:#fff;font-family:var(--sans);font-size:16px;font-weight:700;
     padding:15px 32px;border-radius:50px;cursor:pointer;
     box-shadow:0 4px 16px rgba(74,124,63,.30), 0 0 20px rgba(122,182,72,.22);margin-top:8px}
.btn.wide{display:block;width:100%;text-align:center;padding:16px}
.btn.ghost{background:none;color:var(--green-md);border:1.5px solid var(--blk-ln);box-shadow:none}

/* ── СОДЕРЖАНИЕ ДНЯ ───────────────────────────────────── */
.cover{width:100%;border-radius:14px;margin-bottom:20px}
.cover-ph{background:linear-gradient(135deg,#e2edda,#cfe0c2);border-radius:14px;padding:44px 16px;
          text-align:center;color:var(--green);font-weight:700;margin-bottom:20px;font-size:14px}
.epig{font-family:var(--serif);font-size:19px;font-style:italic;line-height:1.5;color:var(--green);
      text-align:center;padding:20px 8px;margin-bottom:8px}
.text{font-size:17px;line-height:1.72;text-align:left}
.text p{margin-bottom:17px}
.text h2{font-family:var(--serif);font-size:22px;font-weight:700;line-height:1.35;
         margin:28px 0 13px;text-align:left}
.text em{color:var(--ink-faint);font-weight:500}

.anchor{background:rgba(122,182,72,.15);border:1px solid rgba(74,124,63,.30);border-radius:12px;
        padding:15px 16px;margin:22px 0;text-align:left}
.anchor .lb{font-size:11.5px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;
            color:var(--green-md);margin-bottom:6px}
.anchor p{font-size:15.5px;line-height:1.55;font-weight:500}

.task{background:var(--blk-bg);border:1px solid var(--blk-ln);border-radius:12px;
      padding:18px 16px;margin:22px 0;text-align:left}
.task h3{font-family:var(--serif);font-size:19px;font-weight:700;margin-bottom:12px}
.task ol{padding-left:20px}
.task li{font-size:15.5px;line-height:1.55;margin-bottom:10px;font-weight:500}
.task li::marker{color:var(--green-md);font-weight:800}

.minim{background:rgba(122,182,72,.10);border-left:3px solid var(--green-md);border-radius:0 10px 10px 0;
       padding:13px 15px;margin:20px 0;font-size:14.5px;line-height:1.55;text-align:left;
       color:var(--ink-soft);font-weight:500}
.minim b{color:var(--ink);font-weight:800}

.bridge{font-family:var(--serif);font-size:16.5px;font-style:italic;line-height:1.55;
        color:var(--green);text-align:center;padding:22px 10px 6px}

/* ── ФОРМЫ ────────────────────────────────────────────── */
.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;text-align:left}
.fields > div{min-width:0}
.fields label{display:block;font-size:11.5px;letter-spacing:1.2px;text-transform:uppercase;
              color:var(--ink-soft);font-weight:800;margin-bottom:7px}
.fields input,.fields select,.fields textarea{
  width:100%;background:#fff;border:1.5px solid var(--blk-ln);border-radius:11px;
  padding:13px 14px;font-size:16px;color:var(--ink);font-family:var(--sans);font-weight:500}
.fields input:focus,.fields select:focus,.fields textarea:focus{outline:none;border-color:var(--green-md)}
.fields textarea{resize:vertical;min-height:56px;line-height:1.5}

.rate-row{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}
.rate-row label{background:#fff;border:1.5px solid var(--blk-ln);border-radius:10px;
                padding:11px 2px 9px;text-align:center;cursor:pointer;transition:.14s}
.rate-row input{display:none}
.rate-row label b{display:block;font-family:var(--serif);font-size:19px;font-weight:700;line-height:1}
.rate-row label span{display:block;font-size:9.5px;font-weight:700;color:var(--ink-soft);
                     margin-top:3px;letter-spacing:-.2px}
.rate-row label:hover{border-color:var(--green-lt)}
.rate-row label:has(input:checked){background:linear-gradient(135deg,#3f6a34,#557f32);border-color:var(--green-md)}
.rate-row label:has(input:checked) b,.rate-row label:has(input:checked) span{color:#fff}

.checklist{display:flex;flex-direction:column;gap:8px;text-align:left}
.checklist label{display:flex;align-items:center;gap:10px;background:#fff;
                 border:1.5px solid var(--blk-ln);border-radius:11px;padding:13px 14px;cursor:pointer}
.checklist label:hover{border-color:var(--green-lt)}
.checklist label:has(input:checked){background:rgba(122,182,72,.12);border-color:var(--green-md)}
.checklist input{width:20px;height:20px;accent-color:var(--green-md);flex-shrink:0}
.checklist label b{font-size:15px;font-weight:600;line-height:1.4}
.nb{white-space:nowrap}

/* ── МЕЛОЧИ ───────────────────────────────────────────── */
.rule{text-align:center;padding:22px 0;color:rgba(74,124,63,.42);font-size:15px}
.sec-h{font-family:var(--serif);font-size:21px;font-weight:700;text-align:center;margin:26px 0 14px}

/* ── ДЕСКТОП ──────────────────────────────────────────── */
@media(min-width:768px){
  .sec{padding:38px 20px}
  .in{max-width:620px}
  h1{font-size:36px}
  h2{font-size:28px}
  .grid{grid-template-columns:1fr 1fr 1fr}
  .text{font-size:18px}
}

/* ── МОДАЛКА «ЕЩЁ ГОТОВИТСЯ» ──────────────────────────
   ⛔ Материал, которого нет, не ведёт на пустую страницу.
   Вместо перехода — окно с датой старта курса. */
.soon-bg{
  position:fixed;inset:0;z-index:900;display:none;
  align-items:center;justify-content:center;padding:20px;
  background:rgba(34,38,30,.55);backdrop-filter:blur(2px);
}
.soon-bg.on{display:flex}
.soon-win{
  background:linear-gradient(135deg,var(--sec-1),var(--sec-2),var(--sec-3));
  border:1px solid var(--sec-ln);border-radius:18px;
  padding:26px 20px 22px;max-width:360px;width:100%;text-align:center;
  box-shadow:0 20px 50px rgba(34,38,30,.28);
}
.soon-win h2{margin-bottom:0}
.soon-win .btn{margin-top:18px}

/* Плитка материала, которого ещё нет: приглушена, но кликается ради модалки */
.tile.soon{opacity:.62}
.tile.soon .ic{background:rgba(74,124,63,.10)}

/* День, которого ещё нет: приглушён, но кликается ради модалки */
.les.soon{opacity:.62}
.les.soon .thumb{filter:grayscale(.35)}

/* ══ ЧИТАЛКА ВНУТРИ КУРСА ══════════════════════════════
   ⛔ Своя, а не переброс в library/reader.php: человек не должен
   выпадать из курса в тёмный интерфейс библиотеки. */
.pdf-bar{
  display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;
  background:var(--blk-bg);border:1px solid var(--blk-ln);border-radius:12px;
  padding:9px 10px;margin-bottom:10px;
}
.pdf-btn{
  width:38px;height:38px;border-radius:10px;flex-shrink:0;cursor:pointer;
  background:#fff;border:1.5px solid var(--blk-ln);color:var(--green-md);
  font-size:19px;font-weight:800;font-family:var(--sans);line-height:1;
}
.pdf-btn:hover{border-color:var(--green-md)}
.pdf-num{font-size:14px;font-weight:700;color:var(--ink-soft);white-space:nowrap}
.pdf-num input{
  width:48px;text-align:center;background:#fff;border:1.5px solid var(--blk-ln);
  border-radius:9px;padding:7px 4px;font-size:15px;font-weight:700;
  color:var(--ink);font-family:var(--sans);
}
.pdf-num input:focus{outline:none;border-color:var(--green-md)}
.pdf-zoom{display:flex;gap:6px}
.pdf-wrap{
  position:relative;background:#fff;border:1px solid var(--blk-ln);border-radius:12px;
  padding:1px;overflow:auto;min-height:220px;-webkit-overflow-scrolling:touch;
}
/* ── Полноэкранный режим читалки ──
   ⛔ Свой, а не :fullscreen: на мобильных Fullscreen API для блока не работает.
   Панель остаётся сверху, холст занимает всё остальное и скроллится. */
.pdf-box.fs{
  position:fixed;inset:0;z-index:800;background:#fff;
  display:flex;flex-direction:column;padding:8px;gap:8px;
}
.pdf-box.fs .pdf-bar{margin-bottom:0;flex-shrink:0}
.pdf-box.fs .pdf-wrap{flex:1;border-radius:10px;min-height:0}
body.no-scroll{overflow:hidden}
.pdf-btn.fs{font-size:15px}
/* ── The bookmark ──
   The "go back" button is wider than the rest: it carries the page number.
   It shows up only once a bookmark exists - an empty button just confuses. */
.pdf-btn.bm{font-size:16px}
.pdf-btn.bm.goto{
  width:auto;min-width:64px;padding:0 10px;font-size:14px;
  border-color:var(--green-md);color:var(--green-md);
}
.pdf-btn.bm.on{background:var(--green-md);border-color:var(--green-md);color:#fff}
/* The hint after a press: says what happened and leaves on its own */
.bm-hint{
  position:fixed;left:50%;bottom:22px;transform:translateX(-50%) translateY(14px);
  background:var(--ink);color:#fff;border-radius:12px;
  padding:11px 16px;font-size:14px;font-weight:600;line-height:1.35;
  max-width:min(92vw,440px);box-shadow:0 10px 30px rgba(0,0,0,.22);
  opacity:0;pointer-events:none;transition:opacity .22s ease,transform .22s ease;z-index:9999;
}
.bm-hint.show{opacity:1;transform:translateX(-50%) translateY(0)}
/* ⛔ Без max-width: оно перебивало зум — холст рисовался крупнее,
   а браузер тут же ужимал его обратно в ширину контейнера */
.pdf-wrap canvas{display:block;margin:0 auto;height:auto;border-radius:11px}
.pdf-load{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:var(--ink-faint);font-size:14px;font-weight:600;
}

/* Переключатель книг: активная подсвечена */
.tile.on{background:rgba(122,182,72,.16);border-color:var(--green-md)}

/* Аудио-главы */
.now{font-size:13.5px;color:var(--ink-faint);font-weight:600;margin-top:9px;text-align:center}
.chapters{display:flex;flex-direction:column;gap:7px;margin-top:14px}
.chapter{
  display:flex;align-items:center;gap:11px;width:100%;cursor:pointer;text-align:left;
  background:var(--blk-bg);border:1px solid var(--blk-ln);border-radius:11px;
  padding:11px 13px;font-family:var(--sans);color:var(--ink);
}
.chapter:hover{border-color:var(--green-md)}
.chapter.on{background:rgba(122,182,72,.16);border-color:var(--green-md)}
.c-num{
  width:28px;height:28px;border-radius:8px;flex-shrink:0;
  background:rgba(122,182,72,.18);color:var(--green);
  display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;
}
.c-name{flex:1;font-size:14.5px;font-weight:600}
.c-play{color:var(--green-md);font-size:13px;font-weight:800}
/* Download this chapter - a separate icon on the right, so that tapping the row
   still means "play". 28px is the same finger target as the chapter number. */
.c-dl{
  width:28px;height:28px;flex-shrink:0;margin-left:4px;
  display:flex;align-items:center;justify-content:center;
  text-decoration:none;font-size:14px;line-height:1;opacity:.65;
  border-radius:8px;
}
.c-dl:hover{opacity:1;background:rgba(122,182,72,.18)}

/* ══════════════════════════════════════════════════════════
   БЛОКИ УРОКА · добавлено 02.09.2026 при вёрстке дня 1
   ══════════════════════════════════════════════════════════ */

/* Схема-инфографика: её только смотрят, отмечать нечего */
.shema{margin:26px 0}
.shema img{width:100%;border-radius:12px;border:1px solid var(--blk-ln);display:block}
.shema figcaption{font-size:13.5px;line-height:1.5;color:var(--ink-faint);font-weight:600;
                  text-align:center;padding-top:9px}

/* Счётчик отмеченных признаков и вывод под ним */
.count{text-align:center;padding:16px 0 10px;font-size:15.5px;color:var(--ink-soft);font-weight:600}
.count b{font-family:var(--serif);font-size:25px;color:var(--green-md);font-weight:700}
.verdict{display:none;background:rgba(122,182,72,.15);border:1px solid rgba(74,124,63,.30);
         border-radius:12px;padding:15px 16px;text-align:center;font-size:15.5px;
         color:var(--green);font-weight:700;line-height:1.5}
.verdict.on{display:block}

/* ── Вторая линия дня, «Внутри» ──
   ⛔ Намеренно НЕ зелёная: в каждом дне две линии, телесная и внутренняя,
   и человек должен различать их с одного взгляда, не вчитываясь. */
.vhod{background:var(--inner-bg);border:1px solid var(--inner-ln);border-radius:12px;
      padding:18px 16px;margin:26px 0;text-align:left}
.vhod .lb{font-size:11.5px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;
          color:var(--inner);margin-bottom:7px}
.vhod h3{font-family:var(--serif);font-size:19px;font-weight:700;line-height:1.35;margin-bottom:11px}
.vhod p{font-size:15.5px;line-height:1.6;margin-bottom:12px;font-weight:500}
.vhod p:last-child{margin-bottom:0}
.vhod .zn{font-size:14.5px;line-height:1.55;color:var(--ink-soft);font-weight:600;
          border-top:1px solid var(--inner-ln);padding-top:11px;margin-top:14px}
.vhod .zn b{color:var(--inner);font-weight:800}

/* 👁 Признак верного выполнения: по нему человек сам проверяет, что сделал правильно */
.priznak{background:#fbfaf4;border:1px dashed rgba(74,124,63,.38);border-radius:12px;
         padding:15px 16px;margin:22px 0;text-align:left;font-size:15px;line-height:1.6;
         color:var(--ink-soft);font-weight:500}
.priznak .lb{font-size:11.5px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;
             color:var(--green-md);margin-bottom:7px}
.priznak p{margin-bottom:9px}
.priznak p:last-child{margin-bottom:0}

/* Пороги результата: их читают в первый день и сверяются в тридцатый */
.porog{background:var(--blk-bg);border:1px solid var(--blk-ln);border-radius:12px;
       padding:18px 16px;margin:22px 0;text-align:left}
.porog h3{font-family:var(--serif);font-size:18px;font-weight:700;margin-bottom:12px}
.porog .row{font-size:15.5px;line-height:1.6;font-weight:500;margin-bottom:13px}
.porog .row:last-child{margin-bottom:0}
.porog .row b{font-weight:800}
.porog .row .t{display:block;font-size:11.5px;letter-spacing:1.2px;text-transform:uppercase;
               font-weight:800;margin-bottom:4px}
.porog .row.telo .t{color:var(--green-md)}
.porog .row.inner .t{color:var(--inner)}

/* Строка замены в чек-листе: убрал одно, поставил другое.
   Внутри label нужен свой столбик, иначе вторая строка ломает выравнивание */
.zm{display:flex;flex-direction:column;gap:3px;min-width:0}
.zm b{font-size:15px;font-weight:700;line-height:1.35}
.zm span{font-size:14px;line-height:1.4;color:var(--ink-soft);font-weight:500}
.zm span::before{content:'→ ';color:var(--green-md);font-weight:800}

/* Выбор чувства в дне 4: три кнопки, под ними открывается свой телесный выход.
   Не сохраняется - это подсказка на сегодня, а не отметка */
/* ⛔ Две колонки, а не «сколько влезет в строку»: при трёх и четырёх
   кнопках в ряд на экране 360 длинное слово обрезалось многоточием,
   а последняя кнопка падала вниз одна во всю ширину */
.chuv{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0 12px}
.chuv button{cursor:pointer;font-family:var(--sans);min-width:0;
             background:#fff;border:1.5px solid var(--inner-ln);border-radius:11px;
             padding:12px 10px;font-size:14.5px;font-weight:700;color:var(--ink);
             line-height:1.3;white-space:normal}
/* Нечётная последняя кнопка тянется на обе колонки, чтобы не висеть половинкой */
.chuv button:last-child:nth-child(odd){grid-column:1 / -1}
.chuv button:hover{border-color:var(--inner)}
.chuv button.on{background:var(--inner-bg);border-color:var(--inner);color:var(--inner)}
.chuv-out{display:none;background:#fff;border:1px solid var(--inner-ln);border-radius:11px;
          padding:14px 15px;font-size:15px;line-height:1.6;font-weight:500}
.chuv-out.on{display:block}
.chuv-out b{color:var(--inner);font-weight:800}

/* ── ИТОГ НЕДЕЛИ (дни 7, 14, 21, 28) ──
   Сравнение с первым днём. Две цифры рядом и стрелка между ними:
   человек должен увидеть ход, а не читать таблицу */
/* ⛔ Название и цифры НЕ в одну строку: на экране 360 длинное имя
   показателя рвалось на четыре строки и карточка разъезжалась.
   Имя идёт подписью сверху, под ним «было → стало» одной строкой */
.sravn{display:flex;flex-direction:column;gap:9px;margin:16px 0}
.sravn .r{background:#fff;border:1px solid var(--blk-ln);border-radius:12px;padding:13px 15px}
.sravn .nm{display:block;font-size:11.5px;letter-spacing:1.3px;text-transform:uppercase;
           color:var(--ink-soft);font-weight:800;line-height:1.3;margin-bottom:8px}
.sravn .vv{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font-family:var(--serif)}
.sravn .b1{font-size:18px;font-weight:700;color:var(--ink-faint)}
.sravn .ar{font-family:var(--sans);font-size:15px;font-weight:800;color:var(--ink-faint)}
.sravn .b2{font-size:24px;font-weight:700;color:var(--green-md);line-height:1.15}
.sravn .r.luchshe{background:rgba(122,182,72,.13);border-color:var(--green-md)}
.sravn .r.luchshe .b2{color:var(--green)}
.sravn .r.pusto .b2{color:var(--ink-faint);font-size:18px}

/* Полоса недели: шесть дней, видно где стоят обе галочки */
.polosa{display:flex;gap:5px;margin:12px 0 8px}
.polosa i{flex:1;height:36px;border-radius:8px;background:rgba(74,124,63,.10);
          display:flex;align-items:center;justify-content:center;
          font-style:normal;font-size:12px;font-weight:800;color:var(--ink-faint)}
.polosa i.pol{background:linear-gradient(180deg,#7ab648,#4a7c3f);color:#fff}
.polosa i.pol1{background:rgba(122,182,72,.34);color:var(--green)}

/* Свёрнутый разбор щелей: открывается тому, у кого не сдвинулось */
.shel summary{cursor:pointer;font-weight:800;font-size:15.5px;color:var(--green-md);
              padding:13px 0;list-style:none}
.shel summary::-webkit-details-marker{display:none}
.shel summary::before{content:'▸ ';font-size:13px}
.shel[open] summary::before{content:'▾ '}

/* Круг дыхания (день 15): ведёт ритм 4-2-6 вместо внутреннего счёта */
.dyh{text-align:center}
.dyh-krug{width:132px;height:132px;margin:6px auto 14px;border-radius:50%;
          background:radial-gradient(circle at 50% 45%, rgba(122,182,72,.32), rgba(74,124,63,.18));
          border:2px solid var(--green-md);display:flex;align-items:center;justify-content:center;
          transform:scale(.55);transition:transform 1s ease-in-out}
.dyh-krug span{font-family:var(--serif);font-size:17px;font-weight:700;color:var(--green)}
.dyh-schet{font-size:15.5px;color:var(--ink-soft);font-weight:600;margin-bottom:12px}
.dyh-schet b{font-family:var(--serif);font-size:24px;color:var(--green-md);font-weight:700}

/* Строка круга суток (день 16): час, орган и что в него ставить.
   Три уровня в одной строке не помещаются на 360, поэтому час и орган
   идут первой строкой, пояснение второй */
.chas{padding:11px 2px;border-bottom:1px solid rgba(74,124,63,.14)}
.chas:last-child{border-bottom:none}
.chas b{font-family:var(--serif);font-size:16px;font-weight:700;color:var(--green);margin-right:9px}
.chas .o{font-size:14.5px;font-weight:700}
.chas .d{display:block;font-size:14px;line-height:1.45;color:var(--ink-soft);font-weight:500;margin-top:3px}
.chas.yasn{background:rgba(122,182,72,.14);border-radius:9px;padding:11px 10px;border-bottom:none;margin:4px 0}
.chas.yasn b,.chas.yasn .o{color:var(--green)}
.chas.serd{background:var(--inner-bg);border-radius:9px;padding:11px 10px;border-bottom:none;margin:4px 0}
.chas.serd b,.chas.serd .o{color:var(--inner)}

/* Предупреждающий вариант вывода: тот же блок, но не зелёный */
.verdict.preduprezhdenie{background:var(--warn-bg);border-color:rgba(138,58,42,.3);color:var(--warn)}

/* Цифры тихого часа (день 19) */
.taimer{font-family:var(--serif);font-size:46px;font-weight:700;color:var(--green);
        line-height:1.1;margin:8px 0 16px;letter-spacing:.02em}
