@font-face{font-family:Inter;src:url(/static/inter-400.ttf) format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url(/static/inter-600.ttf) format("truetype");font-weight:600;font-display:swap}
@font-face{font-family:Lora;src:url(/static/lora-600.ttf) format("truetype");font-weight:600;font-display:swap}

:root{
  --gold:#9E7B3F; --gold-l:#C9A86A; --navy:#0F2B46; --navy-2:#1B3D5E;
  --bg:#F7F5F2; --card:#FFFFFF; --text:#2B2B2B; --muted:#6B7280; --line:#ECE8E1;
  --head:#0F2B46; --ok:#2E7D4F; --ok-bg:#E6F2EA; --warn-bg:#FBF3E4; --bad:#A63A2B; --bad-bg:#F9E9E6;
  --tint:#EEF2F6; --shadow:0 1px 2px rgba(15,43,70,.06),0 8px 24px rgba(15,43,70,.06);
  --r:16px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0A1520; --card:#122335; --text:#E8E6E1; --muted:#9AA3AE; --line:#1F3348;
    --head:#E9D9B8; --gold:#C9A86A; --ok:#7CC49A; --ok-bg:#15301F; --warn-bg:#2A2214;
    --bad:#E59484; --bad-bg:#371D18; --tint:#182D44; --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.25);
  }
}
:root[data-theme="dark"]{
  --bg:#0A1520; --card:#122335; --text:#E8E6E1; --muted:#9AA3AE; --line:#1F3348;
  --head:#E9D9B8; --gold:#C9A86A; --ok:#7CC49A; --ok-bg:#15301F; --warn-bg:#2A2214;
  --bad:#E59484; --bad-bg:#371D18; --tint:#182D44; --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.25);
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--gold)}
svg.i{width:20px;height:20px;flex:0 0 auto;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* шапка */
header{background:#0F2B46;padding:10px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:10}
header img{height:28px;display:block}
header .who{color:#C9A86A;font-size:14px;display:flex;align-items:center;gap:8px}
header .who .av{width:28px;height:28px;border-radius:50%;background:#C9A86A;color:#0F2B46;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:13px}
main{max-width:920px;margin:0 auto;padding:20px 20px 96px}
h1,h2,h3{font-family:Lora,Georgia,serif;font-weight:600;color:var(--head);line-height:1.25;letter-spacing:-.01em}
h1{font-size:28px;margin:6px 0 6px}
h2{font-size:21px;margin:32px 0 10px}
h3{font-size:17px;margin:0 0 4px}
.muted{color:var(--muted);font-size:14px}

/* герой */
.hero{background:linear-gradient(135deg,#0F2B46 0%,#1B3D5E 60%,#24496B 100%);color:#fff;border-radius:22px;padding:26px;display:flex;gap:24px;align-items:center;box-shadow:var(--shadow);position:relative;overflow:hidden}
.hero:after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;border:1px solid rgba(201,168,106,.25)}
.hero:before{content:"";position:absolute;right:-20px;top:-20px;width:140px;height:140px;border-radius:50%;border:1px solid rgba(201,168,106,.18)}
.hero h1{color:#fff;margin:2px 0 6px}
.hero .hi{color:#C9A86A;font-size:14px;letter-spacing:.04em;text-transform:uppercase}
.hero p{color:rgba(255,255,255,.78);margin:0 0 16px;font-size:15px}
.ring{flex:0 0 120px;position:relative}
.ring svg{width:120px;height:120px;transform:rotate(-90deg)}
.ring .v{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:Lora,serif;font-size:28px;color:#fff}
.ring .v small{font-family:Inter;font-size:12px;color:rgba(255,255,255,.7)}

/* кнопки */
button,.btn{font:inherit;font-weight:600;border:0;border-radius:12px;padding:12px 18px;background:#0F2B46;color:#fff;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:8px;transition:transform .08s ease,background .15s}
button:active,.btn:active{transform:scale(.98)}
button.sec,.btn.sec{background:var(--tint);color:var(--head)}
button:disabled{opacity:.45;cursor:default}
.back{background:none;color:var(--muted);padding:6px 0;font-weight:600;font-size:14px}

/* статистика */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0 8px}
.stat{background:var(--card);border-radius:var(--r);padding:14px 16px;box-shadow:var(--shadow)}
.stat b{display:block;font-family:Lora,serif;font-size:26px;color:var(--head);line-height:1.1}
.stat span{font-size:13px;color:var(--muted)}

/* шкала дней */
.timeline{position:relative;margin:24px 0 0;padding-left:0}
.day{position:relative;display:flex;gap:16px;padding-bottom:14px}
.day .rail{flex:0 0 44px;display:flex;flex-direction:column;align-items:center}
.day .rail:after{content:"";flex:1;width:2px;background:var(--line);margin-top:6px}
.day:last-child .rail:after{display:none}
.day .n{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:Lora,serif;font-weight:600;background:var(--card);color:var(--head);border:2px solid var(--line);box-shadow:var(--shadow)}
.day.done .n{background:var(--ok);border-color:var(--ok);color:#fff}
.day.cur .n{background:#C9A86A;border-color:#C9A86A;color:#0F2B46}
.day.locked .n{color:var(--muted)}
.day .box{flex:1;background:var(--card);border-radius:var(--r);padding:16px 18px;box-shadow:var(--shadow);cursor:pointer;transition:box-shadow .15s}
.day.cur .box{outline:2px solid rgba(201,168,106,.6)}
.day.locked .box{opacity:.55;cursor:default}
.day .meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.mini{flex:1;min-width:120px;height:6px;background:var(--line);border-radius:3px;overflow:hidden}
.mini>i{display:block;height:100%;background:var(--gold);border-radius:3px}
.day.done .mini>i{background:var(--ok)}
.items{list-style:none;padding:0;margin:12px 0 0}
.items li{display:flex;align-items:center;gap:12px;padding:10px 10px;margin:0 -10px;border-radius:10px;cursor:pointer}
.items li:hover{background:var(--tint)}
.items .ic{width:34px;height:34px;border-radius:10px;background:var(--tint);color:var(--head);display:flex;align-items:center;justify-content:center;flex:0 0 34px}
.items li.done .ic{background:var(--ok-bg);color:var(--ok)}
.items .t{flex:1;font-size:15px}
.chip{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:20px;background:var(--tint);color:var(--muted);white-space:nowrap}
.chip.ok{background:var(--ok-bg);color:var(--ok)} .chip.bad{background:var(--bad-bg);color:var(--bad)} .chip.warn{background:var(--warn-bg);color:var(--gold)}

/* страница пункта */
.crumbs{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dots{display:flex;gap:6px;margin:10px 0 4px}
.dots i{width:28px;height:5px;border-radius:3px;background:var(--line)}
.dots i.d{background:var(--ok)} .dots i.c{background:var(--gold)}
.sheet{background:var(--card);border-radius:20px;padding:28px 30px;box-shadow:var(--shadow);margin-top:14px}
.actionbar{position:fixed;left:0;right:0;bottom:0;background:var(--card);border-top:1px solid var(--line);padding:12px 20px;display:flex;justify-content:center;z-index:9;box-shadow:0 -6px 20px rgba(15,43,70,.06)}
.actionbar .in{max-width:920px;width:100%;display:flex;gap:10px;justify-content:space-between;align-items:center}

/* урок */
.lesson{font-size:16.5px}
.lesson h2:first-child{margin-top:0}
.lesson table{width:100%;border-collapse:separate;border-spacing:0;margin:12px 0;font-size:15px;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.lesson td,.lesson th{border-bottom:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}
.lesson tr:last-child td{border-bottom:0}
.lesson th{background:var(--tint);color:var(--head);font-weight:600}
.lesson .say{position:relative;background:var(--warn-bg);padding:14px 16px 14px 48px;margin:14px 0;border-radius:12px;font-style:italic}
.lesson .say:before{content:"“";position:absolute;left:14px;top:2px;font-family:Lora,serif;font-size:44px;color:var(--gold);font-style:normal}
.lesson .warn{background:var(--tint);padding:14px 16px;border-radius:12px;margin:14px 0;border-left:4px solid var(--head)}
.lesson .never{background:var(--bad-bg);padding:14px 16px;border-radius:12px;margin:14px 0;border-left:4px solid var(--bad)}
.lesson .never ul{margin:0;padding-left:20px}
.lesson .note,.lesson p.note{font-size:14px;color:var(--muted);background:var(--tint);padding:10px 14px;border-radius:10px}
.tablewrap{overflow-x:auto}

/* врачи */
.doc{display:flex;gap:16px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;margin:14px 0}
.doc .ava{width:84px;height:84px;border-radius:50%;object-fit:cover;flex:0 0 84px;border:3px solid var(--warn-bg)}
.doc h3{margin-top:2px}
.doc .role{font-size:13px;color:var(--gold);font-weight:600;margin-bottom:6px}
.doc p{margin:4px 0}
.dchip{display:inline-flex;align-items:center;gap:6px;background:var(--tint);border-radius:20px;padding:3px 10px 3px 3px;margin:2px 4px 2px 0;font-size:14px;white-space:nowrap}
.dchip img{width:24px;height:24px;border-radius:50%;object-fit:cover}

/* схемы */
.steps{list-style:none;padding:0;margin:16px 0;display:grid;grid-template-columns:repeat(6,1fr);gap:8px;counter-reset:s}
.steps li{position:relative;background:var(--tint);border-radius:12px;padding:12px 10px;text-align:center;font-size:13.5px;font-weight:600;color:var(--head)}
.steps li b{display:flex;margin:0 auto 6px;width:30px;height:30px;border-radius:50%;background:#0F2B46;color:#C9A86A;align-items:center;justify-content:center;font-family:Lora,serif}
.steps li small{display:block;font-weight:400;color:var(--muted);font-size:12px;margin-top:4px}
.steps li.hl{background:var(--warn-bg)} .steps li.hl b{background:#C9A86A;color:#0F2B46}
.flow{display:flex;align-items:stretch;gap:0;margin:16px 0;flex-wrap:wrap}
.flow .f{flex:1;min-width:130px;background:var(--tint);padding:14px;position:relative;margin:0 14px 10px 0;border-radius:12px}
.flow .f b{display:block;font-family:Lora,serif;font-size:22px;color:var(--head)}
.flow .f span{font-size:13.5px;color:var(--muted)}
.flow .f:after{content:"›";position:absolute;right:-14px;top:50%;transform:translateY(-50%);color:var(--gold);font-weight:600}
.flow .f:last-child:after{display:none}
.flow .f.bad{background:var(--bad-bg)} .flow .f.ok{background:var(--ok-bg)}

/* диалог */
.dialog{margin:14px 0}
.dl{display:flex;gap:10px;margin:10px 0;align-items:flex-end}
.dl .who{flex:0 0 36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;background:var(--tint);color:var(--head)}
.dl.op .who{background:#0F2B46;color:#C9A86A}
.dl .txt{flex:1;max-width:640px;padding:10px 14px;border-radius:16px 16px 16px 4px;background:var(--card);border:1px solid var(--line)}
.dl.op{flex-direction:row-reverse}
.dl.op .txt{border-radius:16px 16px 4px 16px;background:var(--tint);border-color:transparent}
.dl .stage{display:inline-block;font-size:11.5px;color:#0F2B46;background:#C9A86A;font-weight:600;padding:1px 8px;border-radius:10px;margin-bottom:4px;font-style:normal}
audio{width:100%;margin:8px 0}

/* тест */
.qbar{position:sticky;top:48px;z-index:5;background:var(--bg);padding:10px 0}
.qbar .mini{height:8px}
.q{background:var(--card);border-radius:var(--r);padding:20px;margin:14px 0;box-shadow:var(--shadow)}
.q .qn{font-size:13px;color:var(--gold);font-weight:600}
.q .qt{font-weight:600;font-size:16.5px;margin:4px 0 10px;color:var(--head)}
.q .opt{display:flex;gap:12px;width:100%;text-align:left;font-weight:400;background:var(--card);color:var(--text);border:1.5px solid var(--line);margin:8px 0;padding:12px 14px;border-radius:12px;align-items:flex-start}
.q .opt .l{flex:0 0 26px;height:26px;border-radius:8px;background:var(--tint);color:var(--head);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:13px}
.q .opt:hover{border-color:var(--gold-l)}
.q .opt.sel{border-color:var(--head);background:var(--tint)}
.q .opt.sel .l{background:#0F2B46;color:#fff}
.q .opt.right{border-color:var(--ok);background:var(--ok-bg)} .q .opt.right .l{background:var(--ok);color:#fff}
.q .opt.wrong{border-color:var(--bad);background:var(--bad-bg)} .q .opt.wrong .l{background:var(--bad);color:#fff}
.why{font-size:14px;color:var(--muted);margin-top:6px;padding:10px 12px;background:var(--tint);border-radius:10px}
.result{text-align:center;padding:26px}
.score{font-family:Lora,serif;font-size:56px;color:var(--head);margin:0;line-height:1}

/* игра */
.play{display:flex;gap:18px;align-items:center}
.play .big{flex:0 0 72px;height:72px;border-radius:50%;background:#0F2B46;color:#C9A86A;display:flex;align-items:center;justify-content:center}
.play .big svg{width:32px;height:32px}

/* наставник */
table.people{width:100%;border-collapse:collapse;font-size:15px}
table.people td,table.people th{padding:10px 8px;border-bottom:1px solid var(--line);text-align:left}
table.people tr:not(:first-child){cursor:pointer}
table.people tr:not(:first-child):hover{background:var(--tint)}
.card{background:var(--card);border-radius:var(--r);padding:18px 20px;margin:14px 0;box-shadow:var(--shadow)}
.alert{background:var(--bad-bg);border-radius:10px;padding:12px 14px;margin:10px 0}
.copy{word-break:break-all;background:var(--tint);padding:10px;border-radius:8px;font-size:14px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}

/* праздник */
.cheer{animation:pop .5s ease}
@keyframes pop{0%{transform:scale(.9);opacity:0}100%{transform:scale(1);opacity:1}}

@media (max-width:640px){
  main{padding:14px 16px 96px}
  h1{font-size:23px}
  .hero{flex-direction:column-reverse;align-items:flex-start;padding:20px}
  .ring{flex-basis:auto}
  .stats{grid-template-columns:repeat(3,1fr);gap:8px}
  .stat{padding:10px 12px} .stat b{font-size:21px}
  .steps{grid-template-columns:repeat(3,1fr)}
  .sheet{padding:20px 18px;border-radius:16px}
  .doc{flex-direction:column} .doc .ava{width:72px;height:72px}
  .day .rail{flex-basis:36px} .day .n{width:36px;height:36px}
}
.flow.facts .f:after{display:none}

.btn.btn-gold,button.btn-gold{background:#C9A86A;color:#0F2B46}
.btn.btn-gold:hover{background:#d6b87e}
