/* ============================================================
   Палитра. По умолчанию ТЁМНАЯ — так глазам спокойнее вечером.
   Светлую можно вернуть в настройках родителя (data-theme="light").
   ============================================================ */
:root{
  --violet:#8b7bff; --violet-d:#6C5CE7;
  --green:#34d399; --green-d:#6ee7b7;
  --orange:#fbbf24; --pink:#f472b6; --blue:#60a5fa; --red:#ff6b6b;
  --ink:#e9ebf7; --ink-soft:#a8aecb; --line:#2c3350;
  --card:#1b1f30; --soft:#232840;
  --bg1:#12141f; --bg2:#151a2b; --bg3:#1a1426;
  --ok-bg:#14331f; --ok-line:#2f7d52;
  --bad-bg:#3a1c22; --bad-line:#7f3a44; --bad-ink:#ff9a9a;
  --warn-bg:#33280f; --warn-line:#7a5a1e; --warn-ink:#f5c26b;
  --info-bg:#15243d; --info-line:#2f4f7d;
  --vio-bg:#262046;
  --toast-bg:#2b3152; --on-accent:#ffffff;
  --shadow:0 6px 20px rgba(0,0,0,.38);
  --shadow-hover:0 10px 26px rgba(0,0,0,.5);
  --shadow-lg:0 14px 40px rgba(0,0,0,.5);
  --r:22px;
  color-scheme:dark;
}
:root[data-theme="light"]{
  --violet:#6C5CE7; --violet-d:#5648c9;
  --green:#22c55e; --green-d:#16a34a;
  --orange:#f59e0b; --pink:#ec4899; --blue:#3b82f6; --red:#ef4444;
  --ink:#1e2140; --ink-soft:#5b6079; --line:#e8e9f5;
  --card:#ffffff; --soft:#f4f5fc;
  --bg1:#f3f5ff; --bg2:#eef6ff; --bg3:#fff5f7;
  --ok-bg:#eafcf0; --ok-line:#bdeecd;
  --bad-bg:#fff0f0; --bad-line:#ffd6d6; --bad-ink:#c0392b;
  --warn-bg:#fff8e6; --warn-line:#ffe3a3; --warn-ink:#b45309;
  --info-bg:#eef4ff; --info-line:#cfe0ff;
  --vio-bg:#efeaff;
  --toast-bg:rgba(30,33,64,.9); --on-accent:#ffffff;
  --shadow:0 6px 20px rgba(60,60,120,.10);
  --shadow-hover:0 10px 26px rgba(60,60,120,.16);
  --shadow-lg:0 14px 40px rgba(60,60,120,.18);
  color-scheme:light;
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
/* Safari на айфоне игнорирует user-scalable=no: два быстрых нажатия по клавишам
   он принимает за «двойной тап» и зумит страницу — заниматься становится невозможно.
   touch-action:manipulation убирает именно этот жест, обычные нажатия работают. */
html,body{margin:0;padding:0;touch-action:manipulation}
button,.key,.ch,.mission,.calendar .d,.fchip,.dot,.seg{touch-action:manipulation}
/* длинное нажатие по цифре не должно выделять текст и звать лупу с «Копировать» */
button,.key,.ch,.mission,.task-expr,.task-q,.task-banner,.answer-box,.progress-dots,.keypad,.choicepad{
  -webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
body{
  font-family:'Nunito',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  color:var(--ink);
  background:linear-gradient(160deg,var(--bg1),var(--bg2) 55%,var(--bg3));
  background-attachment:fixed;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
  overscroll-behavior:none;
  overflow-x:hidden;
}
h2{margin:0;font-size:24px;font-weight:900}

#confetti{position:fixed;inset:0;pointer-events:none;z-index:999;display:none}

.screen{display:none;max-width:520px;margin:0 auto;padding:16px 16px 40px;min-height:100vh}
.screen.active{display:block;animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ---------- Главная ---------- */
.hero{background:var(--card);border-radius:var(--r);padding:16px;box-shadow:var(--shadow);margin-bottom:16px}
.hero-top{display:flex;align-items:flex-start;gap:10px;justify-content:space-between}
.mascot-bubble{display:flex;gap:10px;align-items:flex-start;flex:1}
.mascot{font-size:40px;line-height:1;flex-shrink:0;animation:bob 3s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.bubble{background:var(--soft);border-radius:16px;padding:10px 13px;font-size:15px;line-height:1.35;flex:1}
.bubble b{color:var(--violet)}

.ghost-icon{background:var(--soft);border:none;border-radius:14px;width:42px;height:42px;font-size:19px;cursor:pointer;flex-shrink:0}
.ghost-icon:active{transform:scale(.94)}

.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0 12px}
.stat{background:var(--soft);border-radius:16px;padding:10px 6px;text-align:center}
.stat-val{font-size:24px;font-weight:900;color:var(--violet)}
.stat-lbl{font-size:11px;color:var(--ink-soft);font-weight:700;margin-top:2px}

.levelbar-top{display:flex;justify-content:space-between;font-size:13px;font-weight:800;color:var(--ink-soft);margin-bottom:6px}
.bar{height:12px;background:var(--soft);border-radius:99px;overflow:hidden}
.bar-fill{height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--violet),var(--pink));transition:width .6s cubic-bezier(.2,.8,.2,1)}

.ring-wrap{position:relative;width:150px;height:150px;margin:4px auto 14px}
.ring{width:150px;height:150px;transform:rotate(-90deg)}
.ring-bg{fill:none;stroke:var(--line);stroke-width:11}
.ring-fg{fill:none;stroke:url(#g);stroke:var(--green);stroke-width:11;stroke-linecap:round;
  stroke-dasharray:326.7;stroke-dashoffset:326.7;transition:stroke-dashoffset .8s cubic-bezier(.2,.8,.2,1)}
.ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ring-num{font-size:40px;font-weight:900;line-height:1}
.ring-sub{font-size:12px;color:var(--ink-soft);font-weight:700}
/* какое занятие идёт сейчас — под кольцом, чтобы не ломать надпись внутри */
.ring-sess{text-align:center;margin:-6px 0 14px}
.ring-sess:empty{display:none}
/* полоса всего дня: два занятия по 45 минут, посередине засечка */
.daybar{position:relative;height:9px;width:170px;margin:0 auto 9px;background:var(--line);border-radius:99px;overflow:hidden}
.daybar>i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--violet),var(--pink));
  transition:width .6s cubic-bezier(.2,.8,.2,1)}
.daybar .dm{position:absolute;top:0;width:2px;height:100%;background:var(--card);opacity:.9}
.ss-row{display:flex;gap:6px;justify-content:center}
.ss{font-family:inherit;font-size:12.5px;font-weight:900;border:none;border-radius:11px;
  padding:6px 12px;background:var(--soft);color:var(--ink-soft);cursor:pointer}
.ss:active{transform:scale(.96)}
.ss.now{background:var(--violet);color:var(--on-accent)}
.ss.done{background:var(--ok-bg);color:var(--green-d);border:2px solid var(--ok-line);padding:4px 10px}
.ss.todo{opacity:.75}
/* какое занятие сейчас открыто на просмотр — видно по рамке */
.ss.view{outline:2px solid var(--violet);outline-offset:2px}
.ss-cap{font-size:11.5px;font-weight:800;color:var(--ink-soft);margin-top:5px}

.section-title{font-size:13px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin:18px 4px 10px}
.section-title.small{margin-top:0}

.missions{display:flex;flex-direction:column;gap:9px}
.mission{display:flex;align-items:center;gap:12px;background:var(--card);border-radius:18px;padding:13px 14px;box-shadow:var(--shadow);cursor:pointer;border:2px solid transparent;transition:transform .15s}
.mission:active{transform:scale(.98)}
.mission.done{background:var(--ok-bg);border-color:var(--ok-line)}
.mission.locked{opacity:.55}
/* план другого занятия — смотрим, но не начинаем отсюда */
.mission.peek{opacity:.7;box-shadow:none;border-style:dashed;border-color:var(--line)}
.plan-note{font-size:12.5px;font-weight:800;color:var(--ink-soft);background:var(--soft);
  border-radius:12px;padding:9px 12px;margin-bottom:2px}
/* незаконченный блок — видно, что его можно продолжить */
.mission.cont{border-color:var(--orange)}
.mission.cont .m-desc{color:var(--orange)}
.m-icon{font-size:26px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--soft);border-radius:14px;flex-shrink:0}
.mission.done .m-icon{background:var(--ok-bg)}
.m-body{flex:1;min-width:0}
.m-title{font-weight:900;font-size:16px}
.m-desc{font-size:12.5px;color:var(--ink-soft);font-weight:600}
.m-right{font-size:22px}

.big-btn{display:block;width:100%;margin:18px 0 0;padding:18px;border:none;border-radius:20px;
  background:linear-gradient(135deg,var(--violet),#8b7bff);color:var(--on-accent);font-family:inherit;
  font-size:19px;font-weight:900;cursor:pointer;box-shadow:0 8px 22px rgba(108,92,231,.38)}
.big-btn:active{transform:scale(.98)}
.link-btn{display:block;width:100%;margin-top:12px;background:none;border:none;color:var(--violet);font-family:inherit;font-weight:800;font-size:15px;cursor:pointer;padding:8px}

.badge-strip{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 8px}
.badge-strip::-webkit-scrollbar{display:none}
.bdg{flex:0 0 auto;width:60px;text-align:center}
.bdg-ic{width:56px;height:56px;border-radius:18px;background:var(--card);box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;font-size:26px}
.bdg.off .bdg-ic{filter:grayscale(1);opacity:.35}
.bdg-nm{font-size:9.5px;font-weight:800;color:var(--ink-soft);margin-top:4px;line-height:1.15}

.footer-note{text-align:center;font-size:12px;color:var(--ink-soft);margin-top:24px;font-weight:700}

/* ---------- Игра ---------- */
/* нижний ряд клавиш не должен упираться в полоску «домой» на айфоне */
#screen-play{display:none;flex-direction:column;height:100vh;height:100dvh;overflow:hidden;
  padding-bottom:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom))}
#screen-play.active{display:flex}
.play-top{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-shrink:0}
.progress-dots{flex:1;display:flex;gap:4px;flex-wrap:wrap}
.pd{height:7px;flex:1;min-width:5px;background:var(--line);border-radius:99px}
.pd.ok{background:var(--green)}
.pd.bad{background:var(--orange)}
.pd.now{background:var(--violet)}
.combo{font-weight:900;color:var(--orange);font-size:15px;min-width:44px;text-align:right}

.task-area{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;
  justify-content:center;justify-content:safe center;padding:2px 2px 6px;-webkit-overflow-scrolling:touch}
.task-area::-webkit-scrollbar{width:0}
.task-card{background:var(--card);border-radius:26px;padding:20px 18px;box-shadow:var(--shadow-lg);text-align:center}
.task-card.shake{animation:shake .4s}
@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-9px)}40%{transform:translateX(8px)}60%{transform:translateX(-5px)}80%{transform:translateX(4px)}}
.task-card.pop{animation:pop .35s}
@keyframes pop{0%{transform:scale(1)}45%{transform:scale(1.045)}100%{transform:scale(1)}}

/* в задачах условие и вопрос стоят на разных строках */
.task-q{font-size:17px;font-weight:800;line-height:1.4;color:var(--ink);white-space:pre-line}
.task-q.small{font-size:14px;color:var(--ink-soft);font-weight:700}
.task-expr{font-size:44px;font-weight:900;margin:8px 0 4px;letter-spacing:.01em;line-height:1.15}
.task-expr.long{font-size:32px}
.task-expr:empty{display:none}
.task-visual:empty{display:none}
.task-visual{margin:10px 0 4px}

.dots{display:inline-grid;gap:5px;justify-content:center}
.dot{width:13px;height:13px;border-radius:50%;background:var(--violet);opacity:.85}
.dots .row-alt{background:var(--pink)}

.rectviz{display:inline-block;position:relative;margin:6px 0}
.rectviz .box{border:3px solid var(--violet);border-radius:6px;background:rgba(108,92,231,.10)}
.rectviz .box.grid{background-image:linear-gradient(to right,rgba(108,92,231,.28) 1px,transparent 1px),linear-gradient(to bottom,rgba(108,92,231,.28) 1px,transparent 1px)}
.rectviz .lbl{position:absolute;font-size:12px;font-weight:900;color:var(--violet)}
.rectviz .lbl.top{top:-19px;left:50%;transform:translateX(-50%)}
.rectviz .lbl.right{right:-30px;top:50%;transform:translateY(-50%)}

.roadviz{margin:8px auto 2px;max-width:340px}
.roadviz .rv-row{display:flex;justify-content:space-between;gap:10px;font-size:13px;font-weight:900;color:var(--violet)}
.roadviz .rv-m{white-space:nowrap}
.roadviz .rv-line{position:relative;height:10px;margin:4px 0 2px;border-top:3px solid var(--violet);
  display:flex;justify-content:space-between}
.roadviz .rv-pin{width:11px;height:11px;border-radius:50%;background:var(--violet);margin-top:-7px}
.roadviz .rv-dist{text-align:center;font-size:13px;font-weight:900;color:var(--ink-soft)}

.barviz{display:flex;gap:3px;justify-content:center;margin:6px 0}
.barviz .seg{height:30px;flex:1;max-width:44px;border-radius:6px;background:var(--soft);border:2px solid var(--line)}
.barviz .seg.on{background:var(--orange);border-color:var(--warn-ink)}
.barlabel{font-size:12px;font-weight:800;color:var(--ink-soft);margin-top:2px}

.answer-box{margin:14px auto 0;min-height:60px;min-width:150px;max-width:90%;display:inline-flex;align-items:center;justify-content:center;
  gap:2px;padding:10px 22px;border-radius:18px;background:var(--soft);border:3px dashed var(--line);font-size:34px;font-weight:900}
.answer-box.filled{border-style:solid;border-color:var(--violet);background:var(--card)}
.answer-box.ok{border-color:var(--green);background:var(--ok-bg);color:var(--green-d)}
.answer-box.bad{border-color:var(--red);background:var(--bad-bg);color:var(--red)}
.answer-box .unit{font-size:19px;font-weight:800;color:var(--ink-soft);margin-left:4px}
.caret{display:inline-block;width:3px;height:32px;background:var(--violet);animation:blink 1s steps(2) infinite;border-radius:2px}
.answer-box.ok .caret,.answer-box.bad .caret{display:none}
@keyframes blink{0%,50%{opacity:1}51%,100%{opacity:0}}

.feedback{margin-top:10px;font-size:16px;font-weight:900;min-height:22px}
.feedback.ok{color:var(--green-d)}
.feedback.bad{color:var(--red)}
.feedback.info{color:var(--blue)}
.hint-viz{text-align:center;margin-top:8px}

.helper{margin-top:12px}
.helper:empty{display:none}
.hint-card{background:var(--warn-bg);border:2px solid var(--warn-line);border-radius:18px;padding:13px 15px;font-size:15px;font-weight:700;line-height:1.45}
.hint-card b{color:var(--warn-ink)}
.steps-card{background:var(--info-bg);border:2px solid var(--info-line);border-radius:18px;padding:13px 15px;margin-top:8px}
.steps-card .st{font-size:15px;font-weight:800;padding:5px 0;display:flex;gap:8px;line-height:1.35}
.steps-card .st i{color:var(--blue);font-style:normal;font-weight:900}
.steps-title{font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:var(--blue);margin-bottom:4px}

.controls{margin-top:12px;flex-shrink:0}
.tools{display:flex;gap:8px;margin-bottom:10px}
.tool-btn{flex:1;padding:11px;border:none;border-radius:15px;background:var(--card);box-shadow:var(--shadow);font-family:inherit;font-weight:900;font-size:14px;color:var(--ink);cursor:pointer}
.tool-btn:active{transform:scale(.97)}
.tool-btn.hidden{display:none}

.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.keypad.hidden{display:none}
.key{padding:16px 0;border:none;border-radius:17px;background:var(--card);box-shadow:var(--shadow);font-family:inherit;font-size:26px;font-weight:900;color:var(--ink);cursor:pointer}
.key:active{transform:scale(.95);background:var(--soft)}
.key.act{background:linear-gradient(135deg,var(--green),var(--green));color:var(--on-accent);box-shadow:0 6px 18px rgba(34,197,94,.4)}
.key.del{background:var(--bad-bg);color:var(--red)}

.choicepad{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.choicepad.hidden{display:none}
.choicepad.wide{grid-template-columns:repeat(3,1fr)}
.choicepad.four{grid-template-columns:repeat(4,1fr)}
/* варианты словами: одна колонка, текст меньше и с переносом */
.choicepad.text{grid-template-columns:1fr}
.choicepad.text .ch{font-size:19px;padding:14px 16px;line-height:1.25;text-align:center}
.ch{padding:20px 0;border:none;border-radius:18px;background:var(--card);box-shadow:var(--shadow);font-family:inherit;font-size:30px;font-weight:900;color:var(--ink);cursor:pointer}
.ch:active{transform:scale(.96)}
.ch.ok{background:linear-gradient(135deg,var(--green),var(--green));color:var(--on-accent)}
.ch.bad{background:var(--bad-bg);color:var(--red)}

/* таймер скоростного раунда */
.speedbar{height:10px;background:var(--line);border-radius:99px;overflow:hidden;margin-bottom:10px}
.speedbar>div{height:100%;background:linear-gradient(90deg,var(--orange),var(--red));width:100%;transition:width .3s linear}

/* ---------- Результат ---------- */
.result-wrap{text-align:center;padding-top:26px}
.result-emoji{font-size:76px;animation:pop2 .6s}
@keyframes pop2{0%{transform:scale(.3);opacity:0}60%{transform:scale(1.15)}100%{transform:scale(1);opacity:1}}
.stars{font-size:36px;margin:8px 0;letter-spacing:6px}
.result-stats{display:flex;justify-content:center;gap:12px;margin:18px 0}
.result-stats>div{background:var(--card);border-radius:18px;padding:12px 6px;box-shadow:var(--shadow);flex:1;max-width:110px}
.result-stats b{display:block;font-size:26px;color:var(--violet)}
.result-stats span{font-size:11.5px;color:var(--ink-soft);font-weight:800}
.result-msg{font-size:16px;font-weight:800;line-height:1.5;color:var(--ink-soft);margin:6px 10px 0}
.new-stuff{margin:16px 0}
.new-stuff:empty{display:none}
.new-item{background:var(--card);border-radius:18px;padding:12px;box-shadow:var(--shadow);margin-bottom:8px;display:flex;gap:12px;align-items:center;text-align:left;animation:pop2 .5s}
.new-item .ic{font-size:34px}
.new-item .t{font-weight:900;font-size:15px}
.new-item .d{font-size:12.5px;color:var(--ink-soft);font-weight:700}

.break-timer{font-size:62px;font-weight:900;color:var(--violet);margin:10px 0}

/* ---------- Коллекция / родителям ---------- */
.page-head{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.page-sub{color:var(--ink-soft);font-weight:700;font-size:14px;margin:0 0 14px}
.collection{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.cr{background:var(--card);border-radius:18px;padding:12px 4px;text-align:center;box-shadow:var(--shadow)}
.cr .e{font-size:32px}
.cr .n{font-size:11px;font-weight:800;color:var(--ink-soft);margin-top:2px}
.cr.off{opacity:.32}
.cr.off .e{filter:grayscale(1)}

.badge-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}
.bg-item{background:var(--card);border-radius:18px;padding:12px;box-shadow:var(--shadow);display:flex;gap:10px;align-items:center}
.bg-item.off{opacity:.45}
.bg-item.off .e{filter:grayscale(1)}
.bg-item .e{font-size:28px}
.bg-item .t{font-weight:900;font-size:13.5px;line-height:1.15}
.bg-item .d{font-size:11px;color:var(--ink-soft);font-weight:700}

.card{background:var(--card);border-radius:20px;padding:16px;box-shadow:var(--shadow);margin-bottom:12px}
.chart{display:flex;align-items:flex-end;gap:4px;height:120px;margin-bottom:6px}
.chart .col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%}
.chart .b{width:100%;background:var(--line);border-radius:6px 6px 0 0;min-height:3px}
.chart .b.good{background:var(--green)}
.chart .b.some{background:var(--orange)}
.chart .lb{font-size:9.5px;color:var(--ink-soft);font-weight:800;margin-top:4px}
.chart-legend{font-size:11.5px;color:var(--ink-soft);font-weight:700}
.chart .col{overflow:hidden}

.trow{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.trow:last-child{border:none}
.trow .ic{font-size:20px;width:26px;text-align:center}
.trow .nm{flex:1;font-weight:800;font-size:14px}
.trow .lv{font-size:11px;font-weight:800;color:var(--ink-soft);background:var(--soft);padding:3px 8px;border-radius:99px}
.trow .pc{font-weight:900;font-size:14px;width:44px;text-align:right}
.pc.hi{color:var(--green-d)} .pc.mid{color:var(--orange)} .pc.lo{color:var(--red)}

.chips{display:flex;flex-wrap:wrap;gap:7px}
.chip{background:var(--bad-bg);color:var(--bad-ink);border-radius:12px;padding:7px 11px;font-weight:900;font-size:15px}
.muted{color:var(--ink-soft);font-weight:700;font-size:14px}

.switch-row{display:flex;justify-content:space-between;align-items:center;font-weight:800;padding:6px 0 12px}
.switch-row input{width:22px;height:22px;accent-color:var(--violet)}
.danger-btn{width:100%;padding:12px;border:2px solid var(--bad-line);background:var(--bad-bg);color:var(--red);border-radius:15px;font-family:inherit;font-weight:900;cursor:pointer}

@media (max-width:360px){
  .task-expr{font-size:37px}
  .key{font-size:23px;padding:14px 0}
}
@media (min-height:780px){
  .task-card{padding:26px 20px}
}

/* ================= Первый запуск, формы, вход ================= */
.welcome{text-align:center;padding-top:9vh}
.w-mascot{font-size:82px;animation:bob 3s ease-in-out infinite}
.w-title{font-size:34px;font-weight:900;margin:6px 0 2px}
.w-sub{color:var(--ink-soft);font-weight:700;font-size:15.5px;line-height:1.5;margin:0 0 26px}
.soft-btn{display:block;width:100%;margin-top:10px;padding:15px;border:none;border-radius:17px;
  background:var(--card);box-shadow:var(--shadow);font-family:inherit;font-size:16px;font-weight:900;color:var(--ink);cursor:pointer}
.soft-btn:active{transform:scale(.98)}

.form label{display:block;font-weight:900;font-size:13.5px;color:var(--ink-soft);margin-bottom:14px}
.form .lbl-hint{display:block;font-weight:700;font-size:11.5px;color:var(--ink-soft);margin-top:2px}
.form input{display:block;width:100%;margin-top:6px;padding:13px 14px;border:2px solid var(--line);
  border-radius:14px;font-family:inherit;font-size:17px;font-weight:800;color:var(--ink);background:var(--card)}
.form input:focus{outline:none;border-color:var(--violet);background:var(--card)}
.code-input{text-transform:uppercase;letter-spacing:.16em;text-align:center;font-size:24px!important}
.form-err{color:var(--red);font-weight:800;font-size:14px;margin:-4px 0 10px;min-height:18px;line-height:1.35}
.form-ok{color:var(--green-d)}
.form-inline{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:800;font-size:14px;margin-bottom:10px}
.form-inline input{width:120px;margin-top:0;padding:10px 12px;border:2px solid var(--line);border-radius:12px;
  font-family:inherit;font-size:16px;font-weight:800;background:var(--card)}

/* ================= Отчёт родителю ================= */
.page-head{justify-content:space-between}
.page-head h2{flex:1}
.summary{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.summary .s{background:var(--soft);border-radius:15px;padding:11px 12px}
.summary .s b{display:block;font-size:21px;font-weight:900;color:var(--violet);line-height:1.2}
.summary .s span{font-size:11.5px;font-weight:800;color:var(--ink-soft)}
.summary .s.wide{grid-column:1/-1;background:var(--info-bg)}
.summary .s.warn{background:var(--warn-bg)}
.summary .s.warn b{color:var(--warn-ink)}
.summary .s.ok b{color:var(--green-d)}

.cal-month{float:right;text-transform:none;letter-spacing:0;font-weight:800;color:var(--ink);
  display:inline-flex;align-items:center;gap:6px}
.cal-nav{border:none;background:var(--soft);color:var(--violet);font-size:16px;font-weight:900;
  width:26px;height:26px;border-radius:9px;cursor:pointer;line-height:1;padding:0}
.cal-nav:disabled{opacity:.3;cursor:default}
.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.calendar .dow{text-align:center;font-size:10px;font-weight:900;color:var(--ink-soft);padding-bottom:2px}
.calendar .d{aspect-ratio:1;border-radius:11px;display:flex;flex-direction:column;align-items:center;
  justify-content:center;background:var(--soft);font-weight:900;font-size:13px;color:var(--ink-soft)}
.calendar .d.good{background:var(--green);color:var(--on-accent)}
.calendar .d.some{background:var(--orange);color:var(--on-accent)}
.calendar .d.today{outline:3px solid var(--violet);outline-offset:1px}
.calendar .d.future{background:var(--card);color:var(--line)}
.calendar .d small{font-size:8.5px;font-weight:800;opacity:.85;line-height:1}
.calendar .d.empty{background:none}
.cal-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;font-size:11.5px;font-weight:700;color:var(--ink-soft)}
.cal-legend i{display:inline-block;width:11px;height:11px;border-radius:4px;margin-right:5px;vertical-align:-1px}
.sw.good{background:var(--green)} .sw.some{background:var(--orange)} .sw.none{background:var(--soft)}

.pair-box{margin:10px 0 4px}
.pair-box:empty{display:none}
.pair-code{background:var(--soft);border:2px dashed var(--violet);border-radius:16px;padding:14px;text-align:center}
.pair-code b{display:block;font-size:34px;font-weight:900;letter-spacing:.12em;color:var(--violet)}
.pair-code span{font-size:12px;font-weight:800;color:var(--ink-soft)}
.link-code{background:var(--info-bg);border:2px dashed var(--blue);border-radius:16px;padding:13px;text-align:left}
.link-code .u{display:block;font-size:12.5px;font-weight:800;color:var(--ink);word-break:break-all;
  background:var(--card);border-radius:10px;padding:9px 10px;margin-bottom:8px;line-height:1.4}
.link-code .cp{display:block;width:100%;padding:11px;border:none;border-radius:12px;background:var(--blue);
  color:var(--on-accent);font-family:inherit;font-weight:900;font-size:14px;cursor:pointer}
.link-code .note{display:block;font-size:11.5px;font-weight:700;color:var(--ink-soft);margin-top:8px;line-height:1.4}

/* значок синхронизации */
.sync{position:fixed;left:50%;transform:translateX(-50%);bottom:14px;background:var(--toast-bg);color:var(--on-accent);
  padding:8px 15px;border-radius:99px;font-size:13px;font-weight:800;z-index:900;opacity:0;
  transition:opacity .3s;pointer-events:none}
.sync.on{opacity:1}

/* ================= Подсказка про клавиатуру ================= */
.kbd-hint{display:none;text-align:center;font-size:12.5px;font-weight:800;color:var(--ink-soft);margin-bottom:8px}

/* ================= Мышь: наведение ================= */
@media (hover:hover) and (pointer:fine){
  .key:hover{background:var(--soft);transform:translateY(-1px)}
  .key.act:hover{filter:brightness(1.07)}
  .key.del:hover{background:var(--bad-bg)}
  .ch:hover{background:var(--soft);transform:translateY(-1px)}
  .mission:hover{transform:translateY(-2px);box-shadow:0 10px 26px var(--shadow-hover)}
  .big-btn:hover{filter:brightness(1.06)}
  .soft-btn:hover,.tool-btn:hover{background:var(--soft)}
  .ghost-icon:hover{background:var(--soft)}
  .link-btn:hover{text-decoration:underline}
  .calendar .d{transition:transform .12s}
  .calendar .d:hover{transform:scale(1.08)}
}

/* ================= Большой экран (домашний компьютер) ================= */
@media (min-width:900px){
  .screen{max-width:940px;padding:24px 24px 48px}

    /* minmax(0,1fr) — иначе лента наград распирает колонку по своей ширине */
  .home-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 26px;
    grid-template-areas:"a b" "c b";align-items:start}
  .col-a,.col-b,.col-c{min-width:0}
  .col-a{grid-area:a} .col-b{grid-area:b} .col-c{grid-area:c}

  .hero{padding:22px 24px}
  .bubble{font-size:16.5px}
  .mascot{font-size:52px}
  .stat-val{font-size:29px}
  .ring-wrap,.ring{width:190px;height:190px}
  .ring-num{font-size:50px}
  .mission{padding:15px 16px}
  .m-title{font-size:17px}

  /* задание: слева пример и разбор, справа клавиатура — так по вертикали
     хватает места на подсказку с картинкой целиком */
  #screen-play{max-width:1020px}
  #screen-play.active{display:grid;gap:0 28px;
    grid-template-columns:minmax(0,1fr) 340px;
    grid-template-rows:auto minmax(0,1fr);
    grid-template-areas:"top top" "task pad"}
  .play-top{grid-area:top}
  .task-area{grid-area:task}
  #screen-play .controls{grid-area:pad;align-self:start;width:100%;max-width:340px;margin-top:0}

  /* задания с вариантами ответа — в одну колонку */
  #screen-play.mode-choice.active{grid-template-columns:minmax(0,1fr);
    grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"top" "task" "pad"}
  #screen-play.mode-choice .controls{max-width:560px;margin:14px auto 0;justify-self:center}
  #screen-play.mode-choice .task-card{max-width:640px;margin:0 auto}
  #screen-play.mode-choice .helper{max-width:640px}
  .kbd-hint{display:block}
  .task-card{padding:32px 28px}
  .task-expr{font-size:56px}
  .task-expr.long{font-size:40px}
  .task-q{font-size:20px}
  .task-q.small{font-size:16px}
  .answer-box{font-size:40px;min-width:200px;min-height:70px}
  .caret{height:40px}
  .keypad{gap:11px}
  .key{padding:14px 0;font-size:24px}
  .helper{width:100%;max-width:660px;margin-top:12px;align-self:center}
  .hint-card,.steps-card{font-size:16px}


  /* отчёт, коллекция, формы */
  #screen-parent .summary{grid-template-columns:repeat(3,1fr)}
  .calendar{gap:7px}
  .calendar .d{font-size:15px;border-radius:13px}
  .calendar .d small{font-size:10px}
  /* на компьютере ленту наград мышкой не пролистать — раскладываем сеткой */
  .badge-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));
    gap:10px;overflow:visible;padding:4px 0 8px}
  .bdg{width:auto}
  .bdg-ic{width:56px;height:56px;margin:0 auto}
  .collection{grid-template-columns:repeat(6,1fr)}
  .badge-grid{grid-template-columns:repeat(3,1fr)}
  .chart{height:150px}
  .result-wrap{max-width:520px;margin:0 auto}
  .welcome{max-width:440px;margin:0 auto}
  .form{max-width:440px;margin:0 auto}
  .page-sub{max-width:600px}
}

/* ================= Список конкретных ошибок ================= */
.trow .nm .sub{display:block;font-size:11px;font-weight:700;color:var(--ink-soft);margin-top:1px}
.pc.few{color:var(--ink-soft)}

.filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.filters:empty{display:none}
.fchip{border:none;border-radius:11px;padding:7px 11px;background:var(--soft);color:var(--ink-soft);
  font-family:inherit;font-weight:800;font-size:12.5px;cursor:pointer}
.fchip.on{background:var(--violet);color:var(--on-accent)}

.mistakes .mrow{border:2px solid var(--line);border-radius:16px;padding:12px 13px;margin-bottom:9px;background:var(--card)}
.mistakes .mrow:last-child{margin-bottom:0}
.mtop{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:5px}
.mtopic{font-size:11.5px;font-weight:900;color:var(--violet);text-transform:uppercase;letter-spacing:.03em}
.mwhen{font-size:11px;font-weight:700;color:var(--ink-soft);white-space:nowrap}
.mask{font-size:12.5px;font-weight:700;color:var(--ink-soft);margin-bottom:2px}
.mq{font-size:16px;font-weight:900;line-height:1.35;margin-bottom:7px}
.mans{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:6px}
.mans span{font-size:13px;font-weight:900;border-radius:10px;padding:5px 10px}
.mans .bad{background:var(--bad-bg);color:var(--bad-ink)}
.mans .good{background:var(--ok-bg);color:var(--green-d)}
.mhint{font-size:13px;font-weight:700;color:var(--ink-soft);line-height:1.4;
  background:var(--warn-bg);border-radius:10px;padding:8px 10px}

@media (min-width:900px){
  .mistakes{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
  .mistakes .mrow{margin-bottom:0}
}

/* ================= Урок: объяснение ================= */
#screen-theory{display:none;flex-direction:column;min-height:100vh;min-height:100dvh}
#screen-theory.active{display:flex}
.theory-wrap{flex:1;display:flex;flex-direction:column;justify-content:center;overflow-y:auto;padding:4px 0}
.theory-card{background:var(--card);border-radius:26px;padding:26px 22px;box-shadow:var(--shadow-lg);text-align:center}
.th-tag{font-size:11.5px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--violet);margin-bottom:8px}
.th-icon{font-size:52px;line-height:1;margin-bottom:6px}
#screen-theory h2{font-size:24px;margin-bottom:10px}
.th-text{font-size:16.5px;font-weight:700;line-height:1.55;color:var(--ink);text-align:left}
.th-text b{color:var(--violet)}
.th-viz{margin-top:16px}
.th-viz:empty{display:none}

.viz-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center}
.viz-chip{background:var(--soft);border-radius:13px;padding:9px 14px;font-size:17px;font-weight:900}
.viz-chip.strong{background:var(--ok-bg);color:var(--green-d);border:2px solid var(--ok-line)}
.viz-chip.weak{background:var(--bad-bg);color:var(--red);border:2px solid var(--bad-line);text-decoration:line-through}
.viz-x{font-size:18px;font-weight:900;color:var(--ink-soft)}
.viz-ok{font-size:20px}
.viz-steps{background:var(--soft);border-radius:16px;padding:14px;text-align:left}
.viz-steps div{font-size:17px;font-weight:800;padding:4px 0}
.viz-steps b{color:var(--violet)}
.viz-order{display:flex;gap:7px;align-items:center;justify-content:center;flex-wrap:wrap}
.viz-order span{font-size:13.5px;font-weight:900;color:var(--ink-soft)}
.viz-order span:nth-child(odd){background:var(--soft);border-radius:11px;padding:8px 11px;color:var(--violet)}
.viz-units{display:flex;gap:9px;justify-content:center;flex-wrap:wrap}
.viz-units div{background:var(--soft);border-radius:14px;padding:11px 14px}
.viz-units div.warn{background:var(--warn-bg);border:2px solid var(--warn-line)}
.viz-units b{display:block;font-size:19px;font-weight:900;color:var(--violet)}
.viz-units span{font-size:12.5px;font-weight:800;color:var(--ink-soft)}
/* разрядная таблица: два класса, в каждом свои места */
.viz-place{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.viz-place .cls{background:var(--soft);border-radius:14px;padding:9px 11px}
.viz-place .cap{display:block;font-size:10.5px;font-weight:900;color:var(--violet);
  text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}
.viz-place .row{display:flex;gap:6px;justify-content:center}
.viz-place .row b{width:32px;height:38px;display:flex;align-items:center;justify-content:center;
  background:var(--card);border-radius:10px;font-size:22px;font-weight:900;box-shadow:var(--shadow)}
/* «дес. тыс.» переносится на две строки — держим обе таблички одной высоты */
.viz-place .row.lab{align-items:flex-start;min-height:30px}
.viz-place .row.lab span{width:32px;text-align:center;font-size:10px;font-weight:800;
  line-height:1.15;color:var(--ink-soft);margin-top:5px}
.viz-cookies{display:flex;flex-wrap:wrap;gap:7px;justify-content:center}
.viz-cookies .grp{background:var(--ok-bg);border-radius:12px;padding:7px 9px;font-size:17px}
.viz-cookies .rest{background:var(--bad-bg);border:2px dashed var(--bad-line);border-radius:12px;padding:7px 9px;font-size:17px}
.viz-cap{font-size:12.5px;font-weight:800;color:var(--ink-soft);margin-top:8px}
/* среднее: столбики «было по-разному» → «стало поровну» */
.avgviz{display:flex;align-items:flex-end;justify-content:center;gap:7px;height:78px}
.avgviz .col{display:flex;flex-direction:column;align-items:center;gap:4px}
.avgviz .col i{display:block;width:22px;border-radius:6px 6px 0 0;background:var(--line)}
.avgviz .col.ok i{background:var(--green)}
.avgviz .col span{font-size:12px;font-weight:900;color:var(--ink-soft)}
.avgviz .arr{font-size:18px;font-weight:900;color:var(--violet);padding:0 4px 14px}

/* деление уголком: слева делимое и вычитания, справа делитель и частное */
.ld{display:flex;justify-content:center;font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:22px;font-weight:900}
.ld-l{border-right:3px solid var(--ink);padding-right:10px;text-align:left;min-width:76px}
.ld-r{padding-left:10px;text-align:left;min-width:76px}
.ld .line{border-top:3px solid var(--ink);margin:3px 0;height:0}
.ld-r .q{color:var(--violet)}
.viz-col{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:24px;font-weight:900;
  display:inline-block;text-align:right;background:var(--soft);border-radius:14px;padding:12px 20px}
.viz-col .line{border-top:3px solid var(--ink);margin:5px 0}

/* метка этапа и разбираемый пример над заданием */
.stage-tag{font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;
  color:var(--violet);background:var(--soft);border-radius:9px;padding:5px 10px;display:inline-block;margin-bottom:8px}
.task-banner{font-size:22px;font-weight:900;color:var(--ink-soft);margin-bottom:6px}
.task-banner:empty{display:none}
.why-card{background:var(--ok-bg);border:2px solid var(--ok-line);border-radius:16px;padding:12px 14px;
  font-size:15px;font-weight:800;color:var(--green-d);line-height:1.45}
.mission.lesson{border-color:var(--violet);background:var(--card)}

@media (min-width:900px){
  #screen-theory{max-width:640px}
  .theory-card{padding:34px 30px}
  .th-text{font-size:18px}
}

/* ================= Уроки в отчёте ================= */
.lessons-box .lrow{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:15px;
  background:var(--soft);margin-bottom:8px}
.lessons-box .lrow.today{background:var(--info-bg);border:2px solid var(--info-line)}
.lessons-box .lrow.pending{background:var(--warn-bg);border:2px solid var(--warn-line)}
.lessons-box .lrow:last-child{margin-bottom:0}
.lessons-box .lic{font-size:25px;width:36px;text-align:center;flex-shrink:0}
.lessons-box .lbody{flex:1;min-width:0}
.lessons-box .lt{font-weight:900;font-size:14.5px;line-height:1.25}
.lessons-box .ls{font-size:12px;font-weight:700;color:var(--ink-soft);margin-top:2px;line-height:1.3}
.lessons-box .lpct{font-weight:900;font-size:14px}
.lessons-box .lpct.hi{color:var(--green-d)} .lessons-box .lpct.mid{color:var(--orange)} .lessons-box .lpct.lo{color:var(--red)}
.lsub{font-size:11px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);margin:12px 0 7px}

/* ================= Программа уроков в отчёте ================= */
.plan-list .prow{border:2px solid var(--line);border-radius:15px;margin-bottom:8px;overflow:hidden;background:var(--card)}
.plan-list .prow.is-next{border-color:var(--info-line);background:var(--info-bg)}
.plan-list .phead{display:flex;align-items:center;gap:11px;padding:11px 12px;cursor:pointer}
.plan-list .pchev{font-size:15px;color:var(--ink-soft);transition:transform .18s;flex-shrink:0}
.plan-list .prow.open .pchev{transform:rotate(180deg)}
.ltag{display:inline-block;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;
  border-radius:7px;padding:2px 6px;background:var(--soft);color:var(--ink-soft);vertical-align:2px;margin-left:4px}
.ltag.done{background:var(--ok-bg);color:var(--green-d)}
.ltag.next{background:var(--info-bg);color:var(--blue)}
.pbody:empty{display:none}
.pv{padding:0 12px 14px;border-top:1px solid var(--line)}
.pv-cap{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:var(--violet);margin:12px 0 7px}
.pv-th{background:var(--soft);border-radius:12px;padding:10px 12px;margin-bottom:7px;font-size:13.5px;font-weight:700;line-height:1.5}
.pv-th b{display:block;font-size:14px;color:var(--ink);margin-bottom:3px}
.pv-th div b{display:inline;color:var(--violet)}
.pv-viz{margin-top:8px;transform:scale(.86);transform-origin:left top}
.pv-step{display:flex;gap:8px;font-size:13.5px;font-weight:700;line-height:1.45;padding:6px 0}
.pv-step i{font-style:normal;font-weight:900;color:var(--on-accent);background:var(--violet);border-radius:50%;
  width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:11.5px;flex-shrink:0}
.pv-step em{font-style:normal;font-weight:900;color:var(--green-d);margin-left:5px;white-space:nowrap}
.pv-why{font-size:12.5px;font-weight:700;color:var(--ink-soft);margin-top:3px}
.pv-tasks{display:flex;flex-wrap:wrap;gap:6px}
.pv-task{background:var(--soft);border-radius:10px;padding:6px 10px;font-size:13.5px;font-weight:800}
.pv-task em{font-style:normal;color:var(--green-d)}
@media (min-width:900px){ .pv-th{font-size:14.5px} }

/* ================= Как он приходит к ответу ================= */
.waybar{display:flex;height:14px;border-radius:99px;overflow:hidden;background:var(--soft);margin-bottom:12px}
.wseg{height:100%}
.wseg.sam{background:var(--green)} .wseg.hint{background:var(--orange)} .wseg.sol{background:var(--blue)}
.wseg.skip{background:var(--red)} .sw.skip{background:var(--red)}
.wlist .wrow em{font-style:normal;font-weight:700;color:var(--ink-soft);font-size:12px}
.atag.skip{background:var(--bad-bg);color:var(--red)}
.atag.clean{background:var(--ok-bg);color:var(--green-d)}
/* «пойдём дальше» — появляется, только если совсем застрял */
.skip-box{margin-top:10px;background:var(--card);border-radius:16px;padding:12px 14px;text-align:center;
  box-shadow:var(--shadow);font-size:14px;font-weight:700;color:var(--ink-soft)}
.skip-box .skip-btn{display:block;width:100%;margin-top:9px;border:none;border-radius:13px;padding:12px;
  background:var(--soft);color:var(--violet);font-family:inherit;font-size:15px;font-weight:900;cursor:pointer;
  touch-action:manipulation}
.skip-box .skip-btn:active{transform:scale(.97)}
.nudge-card{margin-top:8px;background:var(--warn-bg);border-radius:14px;padding:10px 13px;
  font-size:14px;font-weight:800;color:var(--warn-ink)}
.wlist .wrow{display:flex;align-items:center;gap:9px;padding:6px 0;font-size:13.5px;font-weight:700;color:var(--ink)}
.wlist .wrow span{flex:1;line-height:1.3}
.wlist .wrow b{font-weight:900;white-space:nowrap}
.wlist .wrow .sw{width:11px;height:11px;border-radius:4px;display:inline-block;flex:none}
.sw.sam{background:var(--green)} .sw.hint{background:var(--orange)} .sw.sol{background:var(--blue)}
/* день целиком */
.calendar .d.clickable{cursor:pointer}
.calendar .d.clickable:active{transform:scale(.94)}
body.noscroll{overflow:hidden}
.dayview{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;
  background:linear-gradient(160deg,var(--bg1),var(--bg2) 55%,var(--bg3))}
.dayview.hidden{display:none}
.dv-top{display:flex;align-items:center;gap:10px;padding:14px 16px 10px;background:var(--card);
  border-bottom:2px solid var(--soft);flex:none}
.dv-title{font-size:17px;font-weight:900;color:var(--ink);line-height:1.15}
.dv-title span{display:block;font-size:12px;font-weight:800;color:var(--ink-soft)}
.dv-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 16px 40px}
.dv-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.dv-stats .s{background:var(--card);border-radius:14px;padding:10px 8px;text-align:center}
.dv-stats .s.ok{background:var(--ok-bg)}
.dv-stats .s b{display:block;font-size:18px;font-weight:900;color:var(--ink)}
.dv-stats .s span{font-size:11px;font-weight:800;color:var(--ink-soft);line-height:1.2}
.dv-sec{font-size:11.5px;font-weight:900;letter-spacing:.4px;text-transform:uppercase;
  color:var(--ink-soft);margin:18px 0 8px}
.dv-chips{display:flex;flex-wrap:wrap;gap:6px}
.dv-chip{background:var(--card);border-radius:11px;padding:7px 11px;font-size:12.5px;font-weight:800;color:var(--ink)}
.dv-chip.lesson{background:var(--vio-bg);color:var(--violet)}
.dv-chip i{font-style:normal;font-weight:900;color:var(--ink-soft);margin-left:5px}
.dv-block{font-size:12px;font-weight:900;color:var(--violet);margin:14px 0 6px}
.arow{background:var(--card);border-radius:14px;padding:10px 12px;margin-bottom:7px;border-left:4px solid var(--green)}
.arow.bad{border-left-color:var(--red)}
.atop{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.atopic{font-size:11.5px;font-weight:900;color:var(--ink-soft)}
.atime{font-size:11px;font-weight:800;color:var(--ink-soft)}
.aask{font-size:12px;font-weight:700;color:var(--ink-soft);margin-top:3px}
.aq{font-size:14.5px;font-weight:900;color:var(--ink);margin:3px 0 6px;line-height:1.3}
.aans{display:flex;flex-wrap:wrap;gap:5px 8px;align-items:center;font-size:12.5px;font-weight:800}
.aans .good{color:var(--green-d)} .aans .bad{color:var(--red)}
.atag{font-size:11px;font-weight:800;border-radius:8px;padding:3px 7px;background:var(--soft);color:var(--ink-soft)}
.atag.hint{background:var(--warn-bg);color:var(--warn-ink)}
.atag.sol{background:var(--info-bg);color:var(--blue)}
.atag.review{background:var(--vio-bg);color:var(--violet)}

.way-tag{font-size:11.5px;font-weight:900;letter-spacing:.4px;text-transform:uppercase;
  color:var(--ink-soft);margin:0 0 7px}
.way-days{margin-top:16px;border-top:2px solid var(--soft);padding-top:12px}
.way-days .way-tag{margin-top:0}
.wd{margin-bottom:13px}
.wd:last-child{margin-bottom:0}
.wd-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:5px}
.wd-top b{font-size:13.5px;font-weight:900;color:var(--ink)}
.wd-top span{font-size:12px;font-weight:800;color:var(--ink-soft);white-space:nowrap}
.waybar.thin{height:9px;margin-bottom:5px}
.wd-nums{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;font-weight:800;color:var(--ink-soft)}
.wd-nums span{display:inline-flex;align-items:center;gap:5px}
.wd-nums .sw{width:8px;height:8px;border-radius:50%;display:inline-block}
.mans .way{font-size:12px;font-weight:800;border-radius:9px;padding:5px 9px}
.mans .way.hint{background:var(--warn-bg);color:var(--warn-ink)}
.mans .way.sol{background:var(--info-bg);color:var(--blue)}
