/* Для слабого зрения: крупно, контрастно, одна тёмная тема намеренно
   (тёмный фон меньше слепит, жёлтая главная кнопка видна издалека). */
:root{
  --bg:#0B0B0C;
  --panel:#1C1C1F;
  --panel-line:#5A5A60;
  --text:#FFFFFF;
  --dim:#D6D6D9;
  --yellow:#FFD21F;
  --yellow-ink:#111111;
  --bad:#FF8A80;
  --ok:#8EE6A6;
  font-size:22px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--text)}
body{font:1rem/1.35 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  padding:max(16px,env(safe-area-inset-top)) 16px max(24px,env(safe-area-inset-bottom));
  -webkit-text-size-adjust:100%;user-select:none;-webkit-user-select:none}
.screen{max-width:640px;margin:0 auto;display:flex;flex-direction:column;gap:20px}
[hidden]{display:none !important}
.stack{display:flex;flex-direction:column;gap:16px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}

.title-xl{font-size:2rem;font-weight:800;margin:4px 0 0}
.title-l{font-size:1.45rem;font-weight:800;margin:0;line-height:1.2}
.author{margin:0;color:var(--dim);font-size:1.05rem}
.msg{font-size:1.1rem;color:var(--dim)}
.msg-bad{font-size:1.1rem;color:var(--bad);font-weight:700;margin:0}

button{font:inherit;color:inherit;cursor:pointer}
button:focus-visible,input:focus-visible{outline:4px solid var(--yellow);outline-offset:3px}
.btn{min-height:96px;border-radius:18px;border:3px solid var(--panel-line);background:var(--panel);
  font-size:1.05rem;font-weight:700;line-height:1.2;padding:12px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:4px;text-align:center}
.btn:active{transform:scale(.97);background:#2A2A2F}
.btn .ico{font-size:1.6rem;line-height:1}
.btn-primary{background:var(--yellow);color:var(--yellow-ink);border-color:var(--yellow);font-size:1.3rem}
.btn-back{min-height:76px;flex-direction:row;justify-content:flex-start;padding:0 20px;font-size:1.15rem;gap:12px}
.btn-back span{font-size:1.6rem}

.field{display:flex;flex-direction:column;gap:8px;font-size:1.1rem;font-weight:700}
.field input{font:inherit;font-size:1.3rem;padding:18px;border-radius:14px;border:3px solid var(--panel-line);
  background:#000;color:var(--text);user-select:text;-webkit-user-select:text}

/* «Продолжить слушать» — самая заметная вещь на экране */
.continue{position:relative;text-align:left;border:0;border-radius:22px;background:var(--yellow);
  color:var(--yellow-ink);padding:22px 120px 22px 22px;min-height:170px;display:flex;flex-direction:column;gap:6px}
.continue:active{transform:scale(.98)}
.continue-label{font-size:1rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.continue-title{font-size:1.45rem;font-weight:800;line-height:1.2}
.continue-sub{font-size:1rem;font-weight:600}
.continue-play{position:absolute;right:20px;top:50%;transform:translateY(-50%);width:84px;height:84px;
  border-radius:50%;background:var(--yellow-ink);color:var(--yellow);display:grid;place-items:center;
  font-size:2.2rem;padding-left:6px}

.book{display:grid;grid-template-columns:96px 1fr;gap:16px;align-items:center;text-align:left;
  min-height:130px;border-radius:18px;border:3px solid var(--panel-line);background:var(--panel);padding:14px}
.book:active{transform:scale(.98)}
.book img,.book .ph{width:96px;height:96px;border-radius:12px;object-fit:cover;background:#333;
  display:grid;place-items:center;font-size:2.4rem}
.book .t{font-size:1.2rem;font-weight:800;line-height:1.2}
.book .a{color:var(--dim);font-size:.95rem;margin-top:4px}
.book .p{color:var(--yellow);font-size:.95rem;font-weight:700;margin-top:6px}

.now{display:flex;flex-direction:column;gap:8px;align-items:center;text-align:center}
.cover{width:min(52vw,240px);aspect-ratio:1;border-radius:16px;object-fit:cover}
.chapter{margin:6px 0 0;font-size:1.2rem;font-weight:700;color:var(--yellow)}
.time{margin:0;font-size:1.35rem;font-weight:700;font-variant-numeric:tabular-nums}
.bar{width:100%;height:14px;border-radius:7px;background:#333;overflow:hidden}
.bar-fill{height:100%;width:0;background:var(--yellow)}
.status{margin:0;min-height:1.4em;font-size:1.1rem;font-weight:700;color:var(--bad)}
.status.ok{color:var(--ok)}

.btn-play{align-self:center;width:min(70vw,260px);aspect-ratio:1;border-radius:50%;border:0;
  background:var(--yellow);color:var(--yellow-ink);display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:6px;box-shadow:0 0 0 8px #3A3210}
.btn-play:active{transform:scale(.96)}
.play-icon{font-size:4.2rem;line-height:1}
.play-text{font-size:1.4rem;font-weight:800}

.ch{min-height:84px;border-radius:16px;border:3px solid var(--panel-line);background:var(--panel);
  text-align:left;padding:14px 18px;font-size:1.1rem;font-weight:700;display:flex;gap:14px;align-items:center}
.ch.cur{border-color:var(--yellow);color:var(--yellow)}
.ch .n{min-width:2.2em;font-variant-numeric:tabular-nums;color:var(--dim)}
.ch.cur .n{color:var(--yellow)}

@media (prefers-reduced-motion:reduce){*{transition:none !important}.btn:active,.book:active,.continue:active,.btn-play:active{transform:none}}

/* ---- v2: темы, громкость, скачивание в телефон ---- */
.note{margin:0;padding:14px 16px;border-radius:14px;background:#2B2410;color:var(--yellow);font-weight:700;font-size:1rem}
.topic{min-height:120px;border-radius:20px;border:3px solid var(--panel-line);background:var(--panel);text-align:left;
  padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.topic:active{transform:scale(.98)}
.topic .tn{font-size:1.55rem;font-weight:800;line-height:1.15}
.topic .tc{font-size:1rem;color:var(--dim);margin-top:4px;font-weight:600}
.topic .arr{font-size:2.2rem;color:var(--yellow);flex:none}
.topic.sub{min-height:100px;border-color:#7A6A2A}
.topic.sub .tn{font-size:1.35rem}
.book .ok{color:var(--ok);font-size:.9rem;font-weight:700;margin-top:4px}
.dl{margin:8px 0 0;font-size:.95rem;color:var(--dim);text-align:center;min-height:1.3em}

.vol{display:grid;grid-template-columns:1fr 1.25fr 1fr;gap:12px;align-items:stretch}
.btn-vol{min-height:110px;font-size:1.15rem}
.btn-vol .ico{font-size:2.4rem;font-weight:800}
.vol-mid{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px}
.vol-bars{display:flex;align-items:flex-end;gap:4px;height:64px;width:100%;justify-content:center}
.vol-bars span{flex:1;max-width:14px;border-radius:4px;background:#3A3A40}
.vol-bars span.on{background:var(--yellow)}
.vol-bars span.boost.on{background:#FF9F1C}
.vol-text{margin:0;font-size:1rem;font-weight:800;text-align:center;line-height:1.2}

/* ---- v3: навигация, поиск, карточка книги, управление ---- */
.nav{display:grid;grid-template-columns:1fr 1fr;gap:12px;position:sticky;top:0;z-index:5;
  background:var(--bg);padding:6px 0 10px;margin-top:-6px}
.nav .btn{min-height:80px;flex-direction:row;gap:10px;font-size:1.15rem}
.nav .btn span{font-size:1.7rem;line-height:1}
.crumbs{margin:0;color:var(--dim);font-size:1rem;font-weight:600}
.search{display:grid;grid-template-columns:1fr auto;gap:10px}
.search input{font:inherit;font-size:1.25rem;padding:18px 16px;border-radius:16px;border:3px solid var(--panel-line);
  background:#000;color:var(--text);min-width:0;user-select:text;-webkit-user-select:text}
.search input::placeholder{color:#8C8C93}
.btn-search{min-height:0;padding:0 22px;font-size:1.15rem;background:var(--yellow);color:var(--yellow-ink);border-color:var(--yellow)}
.btn-big{min-height:120px;font-size:1.6rem}
.btn-dl{min-height:100px;font-size:1.3rem}
.btn-dl.done{border-color:var(--ok);color:var(--ok)}
.btn-small{min-height:64px;font-size:1rem;color:var(--dim)}
.btn-admin{margin-top:24px;min-height:80px;font-size:1.05rem;color:var(--dim)}
.btn:disabled{opacity:.45}
.meta{margin:0;font-size:1.05rem;color:var(--dim);font-weight:600}
.about{margin:0;font-size:1.05rem;line-height:1.5;color:var(--dim)}
.card{background:var(--panel);border:3px solid var(--panel-line);border-radius:18px;padding:18px}
.user{display:flex;flex-direction:column;gap:10px}
.user .un{font-size:1.3rem;font-weight:800}
.user .ud{font-size:.95rem;color:var(--dim);line-height:1.45}
.user .row .btn{min-height:70px;font-size:.95rem}
.check{display:flex;gap:12px;align-items:center;font-size:1.05rem;font-weight:700}
.check input{width:28px;height:28px}
.cred{background:#10240F;border:3px solid var(--ok);border-radius:16px;padding:16px;font-size:1.2rem;font-weight:800;line-height:1.6;user-select:text;-webkit-user-select:text}
mark{background:var(--yellow);color:var(--yellow-ink);border-radius:4px;padding:0 2px}
