/* Трекер v2. Один слой стилей, одна палитра. Тёмная тема, фон статичный.
   Цели касания ≥44px, мелкий текст не меньше 12px. */
:root{
  --bg:#08061a; --bg2:#0f0d24; --panel:#14122b; --panel2:#1d1a3d; --line:#2c2957; --glass:rgba(17,15,38,.92);
  --fg:#e8e7f5; --mute:#a3a1c4; --dim:#6f6d98;
  --cyan:#39c5d6; --mag:#a86be0; --lime:#7fd36b; --amber:#d9a640; --orange:#d9803f; --blue:#5f86e0; --red:#e0556b;
  --c-class:var(--mag); --c-study:var(--cyan); --c-health:var(--lime); --c-personal:var(--amber); --c-home:var(--orange); --c-todo:var(--blue);
  --r:18px; --tap:44px;
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  color-scheme:dark;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}
html{background:var(--bg);-webkit-text-size-adjust:100%;overscroll-behavior:none}
body{margin:0;color:var(--fg);font-family:var(--font);font-size:15px;line-height:1.4;overflow-x:hidden;
  padding-left:max(14px,env(safe-area-inset-left,0px));padding-right:max(14px,env(safe-area-inset-right,0px));
  background:radial-gradient(900px 520px at 92% -8%,rgba(168,107,224,.13),transparent 65%),radial-gradient(760px 520px at -12% 28%,rgba(57,197,214,.09),transparent 65%),linear-gradient(180deg,#08061a,#0a0820 55%,#06050f) fixed}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--bg)}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;-webkit-touch-callout:none}
input,select,textarea{font:inherit;font-size:16px;color:var(--fg);background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;width:100%;min-width:0;min-height:var(--tap)}
input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--cyan);outline-offset:1px}
textarea{resize:vertical;min-height:96px}
.wrap{max-width:560px;margin:0 auto;position:relative}
/* тонкая полоса XP сверху */
#hdr{position:sticky;top:env(safe-area-inset-top,0px);z-index:9}
.xpbar{display:block;width:100%;height:6px;border-radius:0 0 4px 4px;background:var(--panel2);overflow:hidden}
.xpbar i{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--mag))}
main{padding-block:12px 112px;display:flex;flex-direction:column;gap:14px}
/* нижние вкладки */
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:20;background:rgba(8,6,26,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);
  padding:4px max(14px,env(safe-area-inset-left,0px)) calc(4px + env(safe-area-inset-bottom,0px))}
.tabs .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.tab{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:54px;font-size:12px;color:var(--mute);border-radius:12px}
.tab svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tab.on{color:var(--cyan);background:linear-gradient(180deg,rgba(57,197,214,.14),transparent)}
.tab.on::before{content:"";position:absolute;top:-5px;left:25%;right:25%;height:3px;border-radius:3px;background:var(--cyan)}
/* базовые элементы */
.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:3px;gap:3px}
.seg button{min-height:var(--tap);padding:6px;border-radius:11px;color:var(--mute);font-weight:600;font-size:14px}
.seg button.on{background:var(--panel2);color:var(--fg);box-shadow:inset 0 0 0 1px var(--cyan)}
.seg.wrap3{grid-auto-flow:row;grid-template-columns:1fr}
.nav{display:flex;align-items:center;gap:8px}
.nav-t{min-height:var(--tap);justify-content:center;flex:1;text-align:center;font-weight:700;font-size:17px;display:flex;flex-direction:column;align-items:center;line-height:1.2}
.nav-t small{font-size:12px;color:var(--cyan);font-weight:600}
.sq{width:var(--tap);height:var(--tap);flex:none;border-radius:12px;background:var(--panel2);border:1px solid var(--line);font-size:22px;line-height:1;color:var(--cyan)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 14px;border-radius:12px;font-weight:700;background:linear-gradient(135deg,var(--cyan),#5b8cff);color:#04101a;min-height:var(--tap);text-align:center}
.btn.ghost{background:var(--panel2);color:var(--fg);border:1px solid var(--line)}
.btn.mag{background:linear-gradient(135deg,var(--mag),#7d4dd6);color:#fff}
.btn.danger{background:transparent;color:var(--red);border:1px solid rgba(224,85,107,.55)}
.btn.sm{padding:6px 12px;font-size:14px}
.btn.block{width:100%}
.btn.on{box-shadow:inset 0 0 0 2px var(--fg)}
.link{color:var(--cyan);font-weight:600;min-height:var(--tap);min-width:var(--tap);justify-content:center;padding:0 8px;display:inline-flex;align-items:center}
.sec{position:relative;border-radius:20px;background:var(--glass);border:1px solid rgba(255,255,255,.08);padding:6px 14px 10px}
.sec-h{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0 4px;min-height:44px}
.sec-h h3{margin:0;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg);font-weight:700;display:flex;align-items:center;gap:8px}
.sec-h h3::before{content:"";width:3px;height:15px;border-radius:3px;background:var(--cyan)}
.cnt{font-family:var(--mono);font-size:13px;color:var(--cyan);font-variant-numeric:tabular-nums}
.row{display:flex;align-items:center;gap:12px;padding:8px 0;border-top:1px solid var(--line);min-height:52px}
.sec-h+.row,.sec-h+.at{border-top:0}
.rb{flex:1;min-width:0}
.rb[data-a]{cursor:pointer;min-height:var(--tap);display:flex;flex-direction:column;justify-content:center}
.rt1{font-weight:600;overflow-wrap:anywhere}
.rt2{font-size:13px;color:var(--mute);display:flex;align-items:center;gap:6px;flex-wrap:wrap;line-height:1.35}
.txt{font-size:14px;color:var(--mute);line-height:1.5}
.txt b{color:var(--fg)}
.row.done .rt1{text-decoration:line-through;color:var(--mute)}
.row.miss .rt1{color:var(--mute)}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none}
.mute{color:var(--mute)}.small{font-size:13px}
.lbl{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);margin:14px 0 6px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.err{color:var(--red);font-size:14px;margin-top:6px}
.acts{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}
.acts .btn{flex:1}
/* галочка: зона нажатия 44px, видимый квадрат 28px */
.chk{position:relative;flex:none;width:var(--tap);height:var(--tap);display:grid;place-items:center;color:transparent}
.chk::before{content:"";position:absolute;width:28px;height:28px;border-radius:9px;border:2px solid var(--dim);transition:.15s}
.chk svg{position:relative;width:18px;height:18px}
.chk.on{color:#04101a}
.chk.on::before{background:linear-gradient(135deg,var(--lime),var(--cyan));border-color:transparent}
.chk.miss{color:var(--red)}
.chk.miss::before{border-color:var(--red);background:rgba(224,85,107,.14)}
.x{width:var(--tap);height:var(--tap);flex:none;border-radius:12px;color:var(--mute);font-size:20px;background:var(--panel2)}
/* переключатель: зона 56×44 */
.sw{position:relative;width:56px;height:var(--tap);flex:none}
.sw::before{content:"";position:absolute;left:3px;right:3px;top:8px;bottom:8px;border-radius:14px;background:var(--panel2);border:1px solid var(--line)}
.sw::after{content:"";position:absolute;left:8px;top:13px;width:18px;height:18px;border-radius:50%;background:var(--mute);transition:.2s}
.sw.on::before{background:rgba(57,197,214,.25);border-color:var(--cyan)}
.sw.on::after{left:30px;background:var(--cyan)}
.chip{display:inline-flex;align-items:center;gap:6px;min-height:var(--tap);padding:6px 14px;border-radius:999px;background:var(--panel2);border:1px solid var(--line);font-size:14px;color:var(--fg)}
.chip.on{border-color:var(--cyan);color:var(--cyan);background:rgba(57,197,214,.12)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.tag{font-family:var(--mono);font-size:12px;padding:3px 8px;border-radius:8px;background:var(--panel2);color:var(--mute);white-space:nowrap}
.tag.ok{color:var(--lime)}.tag.now{color:#1a1030;background:var(--amber)}.tag.late{color:var(--red)}
.streak{font-family:var(--mono);font-size:13px;color:var(--orange);font-variant-numeric:tabular-nums}
.bar{height:8px;background:var(--panel2);border-radius:6px;overflow:hidden;margin-top:7px}
.bar>i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--cyan),var(--mag));transition:width .5s}
.bar.lime>i{background:linear-gradient(90deg,var(--cyan),var(--lime))}
.bar.amber>i{background:linear-gradient(90deg,var(--amber),var(--orange))}
/* кольца */
.ring{position:relative;flex:none}
.ring svg{display:block}
.ring .arc{stroke:var(--cyan);transition:stroke-dashoffset .6s}
.ring.full .arc{stroke:var(--lime)}
.rt{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1}
.rt b{font-family:var(--mono);font-size:19px;font-variant-numeric:tabular-nums}
.rt i{font-style:normal;font-size:11px;color:var(--mute);letter-spacing:.08em}
/* герой дня и сводки */
.hero,.sum,.pc{display:flex;gap:16px;align-items:center;padding:16px;border-radius:24px;background:linear-gradient(135deg,rgba(57,197,214,.13),rgba(168,107,224,.1));border:1px solid rgba(255,255,255,.1)}
.hero .tx,.sum .tx,.pc .tx{flex:1;min-width:0}
.hero h2,.sum h2{margin:0 0 4px;font-size:19px;overflow-wrap:anywhere}
.ban{padding:11px 13px;border-radius:14px;border:1px solid var(--line);background:rgba(29,26,61,.9);font-size:14px;display:flex;gap:10px;align-items:flex-start}
.ban.hot{border-color:rgba(217,166,64,.6)}
.ban.info{border-color:rgba(57,197,214,.45)}
.ban.warn{border-color:rgba(224,85,107,.55)}
.ban .acts{margin-top:10px}
/* плитки привычек и еды */
.blk{display:flex;flex-direction:column;gap:10px}
.blk-h{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:44px}
.blk-h h3{margin:0;font-size:17px;font-weight:800}
.tiles2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tiles3m{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ht{position:relative;text-align:left;display:flex;flex-direction:column;gap:3px;min-height:108px;padding:12px;border-radius:20px;background:color-mix(in srgb,var(--h) 8%,var(--panel));border:1px solid color-mix(in srgb,var(--h) 32%,transparent);transition:transform .12s;cursor:pointer;min-width:0}
.ht:active{transform:scale(.96)}
.ht .he{font-size:28px;line-height:1.1}
.ht b{font-size:15px;line-height:1.2;overflow-wrap:anywhere;padding-right:22px}
.ht small{font-size:13px;color:var(--mute);line-height:1.3;overflow-wrap:anywhere}
.ht .hc{position:absolute;right:10px;top:10px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:transparent;border:2px solid color-mix(in srgb,var(--h) 55%,transparent)}
.ht .hc svg{width:15px;height:15px}
.ht .sk{font-style:normal;font-family:var(--mono);font-size:12px;color:var(--orange);margin-top:auto}
.ht.on{background:linear-gradient(150deg,color-mix(in srgb,var(--h) 85%,#000),color-mix(in srgb,var(--h) 50%,#0d0a20));border-color:transparent;color:#0d0820}
.ht.on small,.ht.on .sk{color:rgba(13,8,32,.8)}
.ht.on .hc{background:rgba(13,8,32,.28);color:#fff;border-color:transparent}
.ht.over{border-color:var(--red)}
.ht.over .hc{color:var(--red);border-color:var(--red)}
.ht.now{box-shadow:0 0 0 2px var(--amber)}
.ht.late{border-style:dashed;border-color:rgba(163,161,196,.35);background:var(--panel)}
.ht.late .he{opacity:.6}
.ht .pen{position:absolute;right:0;bottom:0;width:var(--tap);height:var(--tap);font-size:16px;opacity:.85;display:grid;place-items:center}
.meals .ht{min-height:118px;padding-bottom:40px}
.meals.n2,.meals.n4{grid-template-columns:repeat(2,minmax(0,1fr))}
.nut{display:flex;flex-direction:column;gap:6px}
.nut .rt2{justify-content:space-between}
.xp-pop{position:fixed;z-index:80;pointer-events:none;font-family:var(--mono);font-weight:800;color:var(--amber);transform:translateX(-50%);animation:xpup .9s ease-out forwards}
@keyframes xpup{to{transform:translate(-50%,-46px);opacity:0}}
.stp{display:grid;grid-template-columns:64px 1fr 64px;gap:10px}
.stp input{text-align:center;font-size:26px;font-family:var(--mono)}
.stp .btn{font-size:24px}
.mini{width:84px;flex:none;text-align:center;padding:8px 6px;font-family:var(--mono);font-size:16px}
/* дорожка дня */
.trk{display:flex;flex-direction:column;padding-top:8px}
.mi{display:grid;grid-template-columns:42px 18px minmax(0,1fr);column-gap:8px;--cc:var(--cyan)}
.mi-t{text-align:right;font-family:var(--mono);font-size:12px;color:var(--mute);padding-top:11px;line-height:1.25}
.mi-t b{display:block;font-size:14px;color:var(--fg)}
.mi-r{position:relative}
.mi-r::before{content:"";position:absolute;left:8px;top:0;bottom:0;width:2px;background:linear-gradient(var(--cc),rgba(255,255,255,.1))}
.mi:first-child .mi-r::before{top:18px}
.mi:last-child .mi-r::before{bottom:auto;height:18px}
.mi:only-child .mi-r::before{display:none}
.mi-r i{position:absolute;left:2px;top:12px;width:14px;height:14px;border-radius:50%;background:#0a0720;border:3px solid var(--cc)}
.mi.done .mi-r i{background:var(--lime);border-color:var(--lime)}
.mi.gp{--cc:var(--dim)}
.gpt{padding:2px 0 8px;font-size:12px;color:var(--dim);font-family:var(--mono)}
.mc{display:flex;gap:8px;align-items:center;padding:10px 6px 10px 12px;border-radius:18px;margin-bottom:10px;min-width:0;background:color-mix(in srgb,var(--cc) 9%,#110f27);border:1px solid color-mix(in srgb,var(--cc) 38%,transparent)}
.mc .tx{flex:1;min-width:0}
.mc .kd{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--cc);margin-bottom:3px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.mc b{display:block;font-size:15px;line-height:1.22;overflow-wrap:anywhere}
.mc small{display:block;color:var(--mute);font-size:13px;margin-top:3px}
.mc .st2{font-family:var(--mono);font-size:11px;padding:2px 7px;border-radius:7px;background:rgba(255,255,255,.1);color:var(--fg);letter-spacing:.02em;text-transform:none}
.mc .pg{height:5px;border-radius:3px;background:rgba(255,255,255,.14);margin-top:8px;overflow:hidden}
.mc .pg i{display:block;height:100%;background:var(--cc)}
.mc.done{background:rgba(127,211,107,.12);border-color:rgba(127,211,107,.5)}
.mc.done b{text-decoration:line-through;opacity:.75}
.mc.miss{background:rgba(224,85,107,.08);border-color:rgba(224,85,107,.5)}
.mc.now{box-shadow:0 0 0 1px var(--cc)}
.mc.now .st2{background:var(--amber);color:#1a1030}
.mc.cls{flex-wrap:wrap;padding-right:12px}
.mc.cls .tx{flex-basis:100%}
.att{display:flex;gap:8px;width:100%;margin-top:6px}
.att button{flex:1;min-height:var(--tap);border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.04);font-weight:700;font-size:14px;color:var(--mute)}
.att button.y.on{background:rgba(127,211,107,.2);border-color:var(--lime);color:var(--lime)}
.att button.n.on{background:rgba(224,85,107,.16);border-color:var(--red);color:var(--red)}
/* неделя */
.wstrip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.wsd{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 0 6px;border-radius:16px;background:rgba(23,20,58,.75);border:1px solid rgba(130,120,255,.25);color:var(--mute);font-size:12px}
.wsd.today{border-color:var(--cyan);color:var(--cyan)}
.wsd .rt b{font-size:14px}
.wd{border-radius:20px;background:var(--glass);border:1px solid rgba(255,255,255,.08);border-left:4px solid var(--wc,var(--line));padding:4px 14px 8px}
.wd-h{display:flex;align-items:center;gap:10px;min-height:var(--tap);width:100%;text-align:left}
.wd-h b{font-size:15px}
.wd-h .bar{flex:1;margin:0;height:6px}
.wd .row{min-height:48px;padding:4px 0}
.wt{font-family:var(--mono);font-size:12px;color:var(--mute);width:42px;flex:none;font-variant-numeric:tabular-nums}
.gico{width:var(--tap);height:var(--tap);flex:none;display:grid;place-items:center;font-size:18px}
/* месяц */
.mgw{padding:10px;border-radius:20px;background:var(--glass);border:1px solid rgba(255,255,255,.08)}
.mg{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.mh{text-align:center;font-size:12px;letter-spacing:.06em;color:var(--mute);padding:2px 0}
.md{aspect-ratio:1/1.12;min-height:44px;border-radius:12px;position:relative;padding:5px;text-align:left;border:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;justify-content:space-between;background:var(--panel)}
.md b{font-family:var(--mono);font-size:13px;font-variant-numeric:tabular-nums}
.md s{text-decoration:none;font-family:var(--mono);font-size:11px;align-self:flex-end;opacity:.9}
.md.today{border:2px solid var(--cyan)}
.md.sel{outline:2px solid var(--mag);outline-offset:1px}
.md.e{background:none;border:0;pointer-events:none}
.md em{font-style:normal;position:absolute;right:5px;top:3px;font-size:12px;color:#0d0820}
.legend{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--mute);padding:10px 2px 0}
.legend i{flex:1;height:8px;border-radius:4px}
/* плитки цифр */
.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tiles3{grid-template-columns:repeat(3,minmax(0,1fr))}
.tile{--t:var(--cyan);text-align:center;border-radius:18px;padding:12px 8px;background:color-mix(in srgb,var(--t) 8%,#110f27);border:1px solid color-mix(in srgb,var(--t) 28%,transparent)}
.tile b{display:block;font-family:var(--mono);font-size:24px;color:var(--t);font-variant-numeric:tabular-nums}
.tile span{display:block;margin-top:2px;font-size:12.5px;color:var(--mute)}
.tile small{display:block;color:var(--dim);font-size:12px;margin-top:2px}
.tiles>.tile:nth-child(2){--t:var(--mag)}.tiles>.tile:nth-child(3){--t:var(--lime)}.tiles>.tile:nth-child(4){--t:var(--amber)}
.tile.pr{text-align:left;padding:12px}
.tile.pr b{font-size:21px}
.tile.pr span{font-size:13px;color:var(--fg);overflow-wrap:anywhere;line-height:1.25}
/* зал */
.tplc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tplc .ht{min-height:96px}
.ex{border-top:1px solid var(--line);padding:12px 0}
.ex-h{display:flex;justify-content:space-between;align-items:center;gap:8px}
.ex-h b{overflow-wrap:anywhere}
.sch{font-family:var(--mono);font-size:13px;color:var(--cyan);margin-top:2px}
.hint{font-size:13px;color:var(--amber);margin:4px 0 8px;font-family:var(--mono)}
.cue{font-size:13px;color:var(--mute);line-height:1.4;margin:4px 0}
.srow{display:grid;grid-template-columns:22px minmax(0,1fr) 14px minmax(0,1fr) 44px;gap:8px;align-items:center;margin-bottom:6px}
.srow .sn{font-family:var(--mono);color:var(--mute);font-size:13px;text-align:center}
.srow input{text-align:center;padding:9px 6px;font-family:var(--mono);font-size:16px}
.srow .times{text-align:center;color:var(--mute)}
.rest{position:sticky;bottom:0;z-index:3;margin:10px -4px 0;padding:10px 12px;border-radius:16px;background:#1f2a3d;border:1px solid var(--cyan);display:flex;align-items:center;gap:10px}
.rest b{font-family:var(--mono);font-size:22px;color:var(--cyan);flex:1}
.rest.over{border-color:var(--lime)}.rest.over b{color:var(--lime)}
.fin{font-size:14px;color:var(--lime);padding:10px 0 0}
/* тело */
.bgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:8px 0 4px}
.bs{border-radius:14px;padding:8px 6px;text-align:center;background:rgba(33,30,78,.8);border:1px solid rgba(130,120,255,.3);min-width:0}
.bs span{display:block;font-size:12px;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bs b{display:block;font-family:var(--mono);font-size:19px;color:var(--cyan)}
.bs i{font-style:normal;font-family:var(--mono);font-size:12px;color:var(--amber)}
.gal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:8px 0 4px}
.gal button{position:relative;aspect-ratio:3/4;border-radius:14px;overflow:hidden;background:var(--panel2);border:1px solid rgba(255,255,255,.1);padding:0}
.gal img{width:100%;height:100%;object-fit:cover;display:block}
.gal span{position:absolute;left:0;right:0;bottom:0;padding:14px 6px 5px;font-family:var(--mono);font-size:12px;background:linear-gradient(transparent,rgba(0,0,0,.75));text-align:left}
.pho{width:100%;border-radius:14px;display:block;margin:8px 0}
svg.ch text{fill:var(--mute);font-family:var(--mono);font-size:10px}
/* профиль */
.pc{padding:18px 16px;border-radius:26px}
.av{position:relative;flex:none;width:84px;height:84px;border-radius:50%;display:grid;place-items:center;font-size:40px;background:linear-gradient(145deg,#2a2560,#141030);border:3px solid var(--amber);font-family:var(--mono);font-weight:800;color:var(--amber)}
.av b{position:absolute;bottom:-9px;left:50%;transform:translateX(-50%);padding:2px 10px;border-radius:999px;background:var(--amber);color:#1a1030;font-family:var(--mono);font-size:12px;font-weight:800;white-space:nowrap}
.pn{font-size:22px;font-weight:800;overflow-wrap:anywhere}
.pr2{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--amber);font-weight:800;margin:2px 0 10px}
.xpn{font-family:var(--mono);font-size:13px;color:var(--mute);display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:4px}
.q{width:var(--tap);height:var(--tap);border-radius:50%;flex:none;display:grid;place-items:center;font-weight:800;color:var(--cyan)}
.q::before{content:"?";width:26px;height:26px;border-radius:50%;border:1.5px solid var(--cyan);display:grid;place-items:center;font-size:14px}
.at{display:flex;gap:12px;align-items:center;padding:9px 0;border-top:1px solid rgba(130,120,255,.2)}
.ai{width:44px;height:44px;flex:none;display:grid;place-items:center;border-radius:14px;background:color-mix(in srgb,var(--t) 22%,#17143a);border:1px solid color-mix(in srgb,var(--t) 55%,transparent);font-family:var(--mono);font-size:12px;font-weight:800;color:var(--t)}
.ab{flex:1;min-width:0}
.ar{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.ar b{font-size:14px;letter-spacing:.06em;text-transform:uppercase}
.al{font-family:var(--mono);font-size:12px;font-weight:700}
.ab .bar{height:7px;margin:5px 0 3px}
.ab small{font-size:12px}
.strip{display:flex;gap:10px;overflow-x:auto;padding:6px 2px 8px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.strip::-webkit-scrollbar{display:none}
.strip .ac{flex:0 0 132px;scroll-snap-align:start;flex-direction:column;align-items:flex-start}
.ach{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ac{border-radius:16px;background:rgba(23,20,58,.8);border:1px solid var(--line);padding:11px;display:flex;gap:10px;min-width:0}
.ac .ic{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:var(--panel2);font-size:24px;flex:none;filter:grayscale(1) opacity(.45)}
.ac.ok{background:rgba(217,166,64,.12);border-color:rgba(217,166,64,.45)}
.ac.ok .ic{filter:none}
.ac b{font-size:14px;display:block;overflow-wrap:anywhere}
.ac small{color:var(--mute);font-size:12px;display:block;line-height:1.3}
.ac .bar{height:5px;margin-top:6px}
.hm{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,1fr);gap:4px}
.hm i{aspect-ratio:1;border-radius:5px;background:var(--panel2);display:block}
/* шторка */
.sheet-wrap{position:fixed;inset:0;z-index:40;display:flex;align-items:flex-end;justify-content:center}
.sheet-bg{position:absolute;inset:0;background:rgba(3,2,10,.72)}
.sheet{position:relative;width:100%;max-width:560px;max-height:90%;overflow:auto;background:linear-gradient(180deg,#1d1948,#12102b);border:1px solid rgba(130,120,255,.45);border-bottom:0;border-radius:22px 22px 0 0;
  padding:16px max(16px,env(safe-area-inset-left,0px)) calc(24px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-right,0px));box-shadow:0 -10px 40px rgba(0,0,0,.6)}
.sheet h2{margin:0 0 4px;font-size:20px}
.sh-h{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.guide h4{margin:16px 0 6px;font-size:15px;color:var(--cyan)}
.guide p{margin:0 0 8px;font-size:14.5px;line-height:1.5;color:var(--fg)}
.guide .ex-cue{padding:8px 0;border-top:1px solid var(--line)}
.guide .ex-cue b{display:block;font-size:14px}
.guide .ex-cue span{font-size:13.5px;color:var(--mute);line-height:1.45}
.calc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:8px 0}
/* тосты */
.toasts{position:fixed;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 78px);z-index:70;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;padding:0 16px}
.toast{background:var(--panel2);border:1px solid var(--cyan);border-radius:14px;padding:10px 14px;font-weight:600;box-shadow:0 6px 18px rgba(0,0,0,.5);animation:tin .25s ease-out;max-width:520px;text-align:center}
.toast.gold{border-color:var(--amber)}
.toast.undo{pointer-events:auto;display:flex;align-items:center;gap:12px;padding:4px 4px 4px 14px;text-align:left}
.toast.undo button{min-height:var(--tap);padding:0 14px;border-radius:10px;background:var(--cyan);color:#04101a;font-weight:800}
.toasts.low{bottom:calc(env(safe-area-inset-bottom,0px) + 78px)}
#sheetWrap:not([hidden])~.toasts,body.obm .toasts{bottom:auto;top:calc(env(safe-area-inset-top,0px) + 14px)}
@keyframes tin{from{transform:translateY(-10px);opacity:0}}
.boom{position:fixed;left:50%;top:40%;z-index:60;pointer-events:none}
.boom i{position:absolute;width:8px;height:12px;border-radius:2px;animation:pop 1.2s ease-out forwards}
@keyframes pop{from{transform:translate(0,0) rotate(0);opacity:1}to{transform:translate(var(--dx),calc(var(--dy) + 140px)) rotate(540deg);opacity:0}}
/* онбординг */
.ob{display:flex;flex-direction:column;gap:14px;padding-top:6px}
.ob-top{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px}
.ob-dots{display:flex;gap:5px;flex:1}
.ob-dots i{height:5px;flex:1;border-radius:3px;background:var(--panel2)}
.ob-dots i.on{background:var(--cyan)}
.ob h1{margin:6px 0 0;font-size:26px;line-height:1.2}
.ob p.lead{margin:0;color:var(--mute);font-size:15px;line-height:1.45}
.opt{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.opt.one{grid-template-columns:1fr}
.opt button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-height:76px;padding:12px 14px;border-radius:18px;background:var(--panel);border:1px solid var(--line);text-align:left}
.opt button .oe{font-size:24px}
.opt button b{font-size:15px}
.opt button small{font-size:13px;color:var(--mute);line-height:1.3}
.opt button.on{border-color:var(--cyan);background:rgba(57,197,214,.12);box-shadow:inset 0 0 0 1px var(--cyan)}
.ob-foot{position:sticky;bottom:0;display:flex;gap:10px;padding:12px 0 calc(12px + env(safe-area-inset-bottom,0px));background:linear-gradient(transparent,var(--bg) 30%)}
.ob-foot .btn{flex:1}
.ob-foot .btn.ghost{flex:0 0 auto}
body.obm{padding-bottom:0}
body.obm .tabs,body.obm #hdr{display:none}
body.obm main{padding-bottom:20px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- Telegram Mini App ---------- */
.tabs .wrap{grid-template-columns:repeat(5,1fr)}
.tabs .tab{font-size:10.5px}
html.tg body{overscroll-behavior:none}
.gated .tabs,.gated #hdr{display:none}
.gate{max-width:420px;margin:0 auto;padding:12vh 24px 40px;text-align:center}
.gate img{border-radius:22px;margin-bottom:18px}
.gate h1{font-size:24px;margin:0 0 10px}
.gate p{color:var(--mute);line-height:1.5;margin:0 0 20px}
.gate .btn{display:block;text-decoration:none;margin-bottom:18px}
.av{overflow:visible}
.av .avi{position:absolute;inset:0;width:100%;height:100%;border-radius:50%;object-fit:cover}
.av .avi+span{visibility:hidden}
.fav{position:relative;flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#2a2560,#141030);border:1.5px solid var(--line);overflow:hidden;font-weight:800;font-size:15px;color:var(--amber)}
.fav img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fav i{font-style:normal}
.fav.big{width:64px;height:64px;font-size:26px}
.frhead{display:flex;gap:14px;align-items:center;margin-bottom:12px}.frhead h2{margin:0}
.board{list-style:none;margin:0;padding:0}
.board li{display:flex;align-items:center;gap:10px;padding:8px 6px;border-radius:12px}
.board li.me{background:rgba(255,190,60,.09)}
.board .rk{width:26px;text-align:center;font-family:var(--mono);font-weight:800}
.board .bn{flex:1;min-width:0;display:flex;flex-direction:column;font-weight:600;overflow:hidden;text-overflow:ellipsis}
.board .bn small{font-weight:500;color:var(--mute);font-size:12px}
.board .bx{font-family:var(--mono);color:var(--amber)}
.frow{border-bottom:1px solid var(--line);padding-bottom:6px;margin-bottom:6px}.frow:last-child{border-bottom:0}
.frow .row{gap:10px}
.chev{color:var(--mute);font-size:22px}
.fday{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px;font-size:13px;padding:2px 0 6px 46px}
.emos{display:flex;gap:4px}
.emos button{width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:transparent;font-size:17px;line-height:1;padding:0}
.emos button.on{background:rgba(255,190,60,.18);border-color:var(--amber)}
.remo{font-size:22px;width:30px;text-align:center}
.chc{border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin-bottom:8px;cursor:pointer}
.chh{display:flex;gap:10px;align-items:center;margin-bottom:6px}
.che{font-size:24px}
.badge{font-size:11px;padding:3px 8px;border-radius:999px;background:var(--amber);color:#1a1030;font-weight:800;white-space:nowrap}
.chm{display:grid;grid-template-columns:80px 1fr 44px;gap:8px;align-items:center;font-size:13px;margin:4px 0}
.chm span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chm small{color:var(--mute);text-align:right}
.chb{height:7px;border-radius:9px;background:rgba(255,255,255,.08);overflow:hidden}
.chb i{display:block;height:100%;background:linear-gradient(90deg,var(--amber),#ff7a59);border-radius:9px}
.frd{margin-top:12px}.frd .two{margin-top:8px;align-items:center}
.mono{font-family:var(--mono);letter-spacing:.06em}
.rlead{padding:0 0 8px}
.rlead .chip{font-size:12px}
select{width:100%}

/* метки плана в месяце и неделе */
.md{justify-content:flex-start;gap:4px;padding:5px 3px 5px 4px;overflow:hidden;aspect-ratio:auto;min-height:56px}
.md .mt{display:flex;align-items:baseline;justify-content:space-between;gap:2px;width:100%}
.md .mt s{text-decoration:none;font-family:var(--mono);font-size:9.5px;opacity:.9;align-self:auto}
.md.past:not([style*="color-mix"]) b{opacity:.55}
.mks{display:flex;flex-wrap:wrap;gap:2px;align-items:center;line-height:1}
.mk{font-style:normal;display:inline-flex;align-items:center;justify-content:center;min-width:15px;height:15px;padding:0 3px;border-radius:5px;font-family:var(--mono);font-size:10px;font-weight:800;color:#fff;box-sizing:border-box}
.mk.cl{background:var(--mag)}
.mk.tk{background:var(--blue)}
.mk.gy{background:var(--lime);color:#0d0820;font-size:10px;padding:0 1px}
.mk.gy.ok{background:#3f7a35;color:#fff}
.mk.dl{background:var(--red)}
.mk.ex{background:var(--amber);font-size:10px;padding:0 1px}
.md.past .mk{opacity:.8}
.mleg{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:12px;color:var(--mute);padding:10px 2px 0}
.mleg span{display:inline-flex;align-items:center;gap:4px}
.mleg.wk{padding:0 4px 12px}
.wsd .mks{justify-content:center;min-height:14px;max-width:100%;padding:0 2px}
.wsd .mk{min-width:13px;height:14px;font-size:9.5px;padding:0 2px}

/* ===== v3: компактный интерфейс, цвета разделов, новые блоки ===== */
:root{--tap:40px;--r:14px;
  --s-cl:#5f86e0;--s-st:#7fa6ff;--s-ha:#6fcf6a;--s-fo:#e8893a;--s-sl:#9b7bff;--s-wa:#39c5d6;--s-td:#d9a640;--s-hm:#e07a9a;--s-ps:#3fb59a;--s-ex:#e0556b;--s-gy:#7fd36b}
body{font-size:14.5px}
main{gap:10px;padding-block:8px 104px}
.sec{border-radius:16px;padding:4px 12px 8px}
.sec-h h3,.blk-h h3{font-size:15px}
.row{min-height:44px;padding:5px 0;gap:10px}
.chk::before{width:24px;height:24px;border-radius:8px}
.chk svg{width:16px;height:16px}
.btn{padding:8px 12px;border-radius:11px;font-size:14.5px}
.btn.sm{padding:5px 10px;font-size:13.5px;min-height:34px}
.chip{padding:5px 11px;font-size:13.5px;min-height:36px}
.seg{border-radius:12px;padding:2px}
.seg button{min-height:36px;font-size:13.5px;padding:4px}
.sq{width:36px;height:36px;font-size:19px;border-radius:10px}
.x{width:36px;height:36px;font-size:16px;border-radius:10px}
.att button{min-height:34px;font-size:13px}
.tab{min-height:48px;font-size:11px}.tab svg{width:22px;height:22px}
input,select,textarea{padding:8px 10px;min-height:40px;border-radius:11px}
.ban{padding:8px 11px;font-size:13.5px;border-radius:12px}
.blk{gap:7px}
.tiles2{gap:7px}
.ht{min-height:74px;padding:9px 10px;border-radius:15px;gap:1px}
.ht .he{font-size:21px}
.ht b{font-size:14px}
.ht small{font-size:12px}
.ht .hc{width:22px;height:22px;top:8px;right:8px}
.ht .pen{width:34px;height:34px;font-size:14px}
.tile{padding:8px 6px;border-radius:14px}.tile b{font-size:20px}
.mc{padding:7px 6px 7px 10px;border-radius:14px;margin-bottom:7px}
.hero.cmp{padding:10px 12px;gap:12px;border-radius:16px}
.hero.cmp h2{font-size:16px;margin:0}
.hero.cmp .bar{margin-top:5px;height:6px}
.hero.gold{background:linear-gradient(135deg,rgba(242,196,72,.28),rgba(217,128,63,.12));border-color:rgba(242,196,72,.6)}
/* цвета разделов: полоска у заголовка */
.c-cl{--sc:var(--s-cl)}.c-ha{--sc:var(--s-ha)}.c-fo{--sc:var(--s-fo)}.c-sl{--sc:var(--s-sl)}.c-wa{--sc:var(--s-wa)}.c-td{--sc:var(--s-td)}.c-ex{--sc:var(--s-ex)}.c-gy{--sc:var(--s-gy)}.c-st{--sc:#4fd08a}
.sec[class*=" c-"] .sec-h h3::before,.blk[class*=" c-"] .blk-h h3::before{content:"";display:inline-block;width:4px;height:14px;border-radius:2px;background:var(--sc);margin-right:7px;vertical-align:-2px}
.sec[class*=" c-"]{border-color:color-mix(in srgb,var(--sc) 22%,rgba(255,255,255,.06))}
/* FAB */
.fab{position:fixed;right:16px;bottom:calc(66px + env(safe-area-inset-bottom,0px));z-index:21;width:52px;height:52px;border-radius:16px;font-size:30px;line-height:1;font-weight:400;color:#04101a;background:linear-gradient(135deg,var(--cyan),#5b8cff);box-shadow:0 8px 22px rgba(0,0,0,.45),0 0 0 1px rgba(255,255,255,.1) inset;display:grid;place-items:center}
.fab:active{transform:scale(.93)}
body.obm .fab,body.shm .fab{display:none}
/* полоска недели в дне */
.dstrip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.dsd{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 0 5px;border-radius:12px;color:var(--mute);font-size:11px;border:1px solid transparent}
.dsd .ring text,.dsd .ring b{font-size:11px}
.dsd.today{color:var(--cyan)}
.dsd.sel{background:var(--panel2);border-color:rgba(57,197,214,.55);color:var(--fg)}
.dsd.pre{opacity:.35}
.dsd.gold .ring .arc{stroke:#f2c448}
/* «Сейчас» */
.now{border-radius:16px;padding:8px 10px 10px;background:linear-gradient(135deg,rgba(57,197,214,.1),rgba(95,134,224,.08));border:1px solid rgba(57,197,214,.28)}
.now-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.now-h b{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan)}
.now-h span{font-family:var(--mono);font-size:12px;color:var(--mute)}
.nowg{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.nowg.n1>.nc{grid-column:1/-1}.nowg.n3>.nc:last-child{grid-column:1/-1}
.nc{--sc:var(--cyan);display:flex;flex-direction:column;gap:1px;padding:7px 9px;border-radius:12px;min-width:0;background:color-mix(in srgb,var(--sc) 9%,#110f27);border:1px solid color-mix(in srgb,var(--sc) 30%,transparent)}
.nc .nl{font-size:11px;color:var(--sc);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nc b{font-size:14px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.nc small{font-size:11.5px;color:var(--mute)}
.nc.now{box-shadow:0 0 0 1.5px var(--sc)}
.nc.c-cl{--sc:var(--s-cl)}.nc.c-fo{--sc:var(--s-fo)}.nc.c-gy{--sc:var(--s-gy)}.nc.c-ex{--sc:var(--s-ex)}
/* быстрый ввод */
.qa-r{display:flex;gap:6px}.qa-r input{flex:1}.qa-r .btn{flex:none}
.qa-p{font-size:12.5px;color:var(--mute);min-height:0;padding:3px 2px 0}.qa-p:empty{display:none}
.qa-p b{color:var(--fg)}.qa-p .bad{color:var(--amber)}
.qa-ex{font-size:12px;margin:2px 0 8px}
.qgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.qgrid button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px;border-radius:12px;background:var(--panel2);border:1px solid var(--line);font-size:12px;color:var(--fg)}
.qgrid button span{font-size:20px}
/* вода / шаги / сон */
.vts{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));grid-auto-flow:column;gap:7px}
.vt{--sc:var(--s-wa);position:relative;display:flex;flex-direction:column;gap:1px;padding:8px 9px;border-radius:14px;min-width:0;background:color-mix(in srgb,var(--sc) 8%,var(--panel));border:1px solid color-mix(in srgb,var(--sc) 30%,transparent)}
.vt.c-st{--sc:#4fd08a}.vt.c-sl{--sc:var(--s-sl)}
.vt-h{font-size:11.5px;color:var(--sc);font-weight:700}
.vt b{font-family:var(--mono);font-size:19px}.vt b i{font-style:normal;font-size:12px;color:var(--mute);margin-left:1px}
.vt small{font-size:11px;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vt .bar{height:4px;margin:3px 0 2px}.vt .bar>i{background:var(--sc)}
.vt.on{border-color:var(--sc);box-shadow:0 0 0 1px var(--sc) inset}
.vt-b{display:flex;gap:5px;margin-top:3px}.vt-b .sq{width:auto;flex:1;height:30px;font-size:17px}
/* еда */
.nut2{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:4px 0 6px}
.nut2 .rt2{display:flex;justify-content:space-between;font-size:12px}.nut2 .rt2 b{color:var(--fg)}
.nut2 .bar{margin-top:4px}
.fr{min-height:40px}.fk{font-family:var(--mono);font-size:13px;text-align:right;white-space:nowrap}.fk small{display:block;color:var(--mute);font-size:11px}
.flist{display:flex;flex-direction:column;gap:4px;margin-top:6px;max-height:44vh;overflow:auto}
.fi{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;border-radius:11px;background:var(--panel2);border:1px solid var(--line);text-align:left;color:var(--fg)}
.fi b{font-weight:600;font-size:14px}.fi small{color:var(--mute);font-size:12px;white-space:nowrap}
.fsel{padding:10px 12px;border-radius:12px;background:rgba(232,137,58,.1);border:1px solid rgba(232,137,58,.4);margin-top:8px}
.fsel b{display:block}.fsel small{color:var(--mute)}
.fcalc{margin-top:8px;font-size:15px;color:var(--mute)}.fcalc b{color:var(--s-fo)}
details.own{margin-top:10px}details.own summary{cursor:pointer;padding:6px 0}
/* экзамены */
.exr{align-items:center}.xe{font-size:20px;width:28px;text-align:center;flex:none}
.exb{height:4px;margin-top:4px}.exb>i{background:var(--s-ex)}
.cd{flex:none;text-align:center;min-width:46px;padding:3px 4px;border-radius:10px;background:var(--panel2);font-family:var(--mono)}
.cd b{display:block;font-size:16px;line-height:1.1}.cd small{font-size:10px;color:var(--mute)}
.cd.hot{background:rgba(224,85,107,.18);color:var(--red)}
.tps{display:flex;flex-direction:column;max-height:36vh;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:0 6px}
.tp{display:flex;align-items:center;gap:6px;min-height:38px;border-bottom:1px solid var(--line)}.tp:last-child{border-bottom:0}
.tp span{flex:1;font-size:14px}.tp.on span{color:var(--mute);text-decoration:line-through}
.tp .chk{width:34px;height:34px}.tp .x{width:30px;height:30px;background:none}
/* сон: столбики */
.sbars{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;align-items:end;height:120px;padding-top:6px}
.sb{display:flex;flex-direction:column;align-items:center;gap:3px;height:100%}
.sb b{font-family:var(--mono);font-size:11px;color:var(--mute)}
.sbc{flex:1;width:100%;max-width:26px;border-radius:7px;background:var(--panel2);display:flex;align-items:flex-end;overflow:hidden}
.sbc i{display:block;width:100%;background:linear-gradient(180deg,#b89bff,var(--s-sl));border-radius:7px}
.sb.low .sbc i{background:linear-gradient(180deg,#ff9cb0,var(--red))}
.sb span{font-size:11px;color:var(--mute)}
/* цели */
.gl{padding:7px 0;border-top:1px solid var(--line)}
.gl-h{display:flex;align-items:center;gap:8px}.gl-h b{flex:1;font-size:14px}
.gl .bar{margin:5px 0 3px}.gl.ok .rt2{color:var(--lime)}.gl.bad .bar>i{background:var(--red)}
.gpm{display:flex;gap:4px}.gpm .sq{width:30px;height:30px;font-size:16px}.gl-h .x{width:30px;height:30px;background:none}
/* график: тренд */
.trend{font-size:12px;color:var(--amber);margin-top:2px}.trend i{display:inline-block;width:16px;border-top:2px dashed var(--amber);vertical-align:3px;margin-right:6px}
/* месяц: до старта, 100% золото, числитель/знаменатель */
.md.pre{opacity:.3;background:transparent!important;border-style:dashed}
.md.gold{background:linear-gradient(140deg,#f6d36b,#d99a2b)!important;color:#2a1a00!important;border-color:#ffe08a;box-shadow:0 0 10px rgba(242,196,72,.35)}
.md.gold s{color:#2a1a00}
.mg.par{grid-template-columns:20px repeat(7,minmax(0,1fr))}
.pw{display:grid;place-items:center;font-size:10.5px;font-weight:800;color:var(--dim);font-family:var(--mono)}
.mh.pw{font-size:9px}
.lgold{color:#f2c448;margin-left:8px}
.wsd.pre,.wd.pre{opacity:.4}
.wsd.gold .ring .arc{stroke:#f2c448}
/* празднование */
.flash{position:fixed;inset:0;z-index:60;pointer-events:none;background:radial-gradient(circle at 50% 40%,rgba(255,215,90,.55),rgba(255,180,40,.18) 45%,transparent 75%);animation:fl 1.1s ease-out forwards}
@keyframes fl{0%{opacity:0}15%{opacity:1}100%{opacity:0}}
/* свайпы */
#main{touch-action:pan-y}
[data-sw]{transition:transform .18s;position:relative}
[data-sw].swr{background:linear-gradient(90deg,rgba(127,211,107,.22),transparent 70%)}
[data-sw].swl{background:linear-gradient(270deg,rgba(127,211,107,.22),transparent 70%)}
#main.sl{animation:sl .22s ease-out}#main.sr{animation:sr .22s ease-out}
@keyframes sl{from{transform:translateX(24px);opacity:.4}to{transform:none;opacity:1}}
@keyframes sr{from{transform:translateX(-24px);opacity:.4}to{transform:none;opacity:1}}
.swh{text-align:center;font-size:11.5px;padding-top:6px;color:var(--dim)}
/* полноэкранная тренировка */
.sheet.full{max-height:100%;height:100%;border-radius:0;max-width:none}
.sheet.full .srow{grid-template-columns:24px minmax(0,1fr) 14px minmax(0,1fr) 56px;margin-bottom:8px}
.sheet.full .srow input{min-height:48px;font-size:19px}
.sheet.full .srow .chk{width:56px;height:48px}
.sheet.full .srow .chk::before{width:44px;height:44px;border-radius:13px}
.sheet.full .srow .chk svg{width:24px;height:24px}
.srow.done input{border-color:rgba(127,211,107,.5);background:rgba(127,211,107,.08)}
.wpg{position:sticky;top:-1px;z-index:4;margin:4px 0 6px}
.rest.big{flex-direction:column;align-items:stretch;gap:6px;padding:14px 14px 12px;text-align:center;top:6px;bottom:auto;margin:6px 0 10px;background:#162238}
.rest.big .rl{font-size:12px;color:var(--mute);letter-spacing:.05em}
.rest.big b{font-size:54px;line-height:1;flex:none}
.rest.big .rb2{display:flex;gap:8px}.rest.big .rb2 .btn{flex:1}
body.gated .fab{display:none}
/* v4: состав тела */
.t-cyan{color:var(--cyan)}.t-lime{color:var(--lime)}.t-amber{color:var(--amber)}.t-red{color:var(--red)}
.bfc{display:grid;grid-template-columns:minmax(0,1fr) 96px;gap:10px;align-items:center;padding:4px 0 6px}
.bfsil{display:flex;justify-content:center}.sil{display:block;height:auto;filter:drop-shadow(0 0 6px rgba(57,197,214,.18))}
.bfv{display:flex;align-items:baseline;gap:8px}.bfv b{font-family:var(--mono);font-size:26px;line-height:1.1}.bfv span{font-size:13px;color:var(--mute)}.bfv em{font-style:normal;font-weight:700}
.bfs{position:relative;display:flex;gap:2px;height:16px;margin:8px 0 2px;border-radius:6px;overflow:visible}
.bfs i{display:block;border-radius:4px;opacity:.38;position:relative}.bfs i.on{opacity:.95}
.bfs i span{position:absolute;inset:0;font-size:9px;font-style:normal;color:#0b0920;font-weight:700;display:flex;align-items:center;justify-content:center;white-space:nowrap;overflow:hidden}
.bfs i:not(.on) span{color:var(--fg)}
.bfs .c0{background:var(--cyan)}.bfs .c1{background:var(--lime)}.bfs .c2{background:var(--amber)}.bfs .c3{background:var(--red)}
.bfs b{position:absolute;top:-3px;width:3px;height:22px;margin-left:-1.5px;border-radius:2px;background:#fff;box-shadow:0 0 6px #fff}
.bfsl{position:relative;height:13px;font-family:var(--mono);font-size:10px;color:var(--mute)}.bfsl span{position:absolute;transform:translateX(-50%)}.bfsl span:first-child{transform:none}.bfsl span:last-child{transform:translateX(-100%)}
.bft{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin-top:8px;font-size:13px}.bft span{color:var(--mute)}.bft b{color:var(--mag)}.bft small{color:var(--mute);font-family:var(--mono);font-size:11px}
.bfn{margin-top:4px;font-size:11.5px}
.bfask{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:6px}.bfask input{width:96px;min-height:34px;padding:5px 9px}.bfask .chip{min-height:34px;padding:4px 12px}
.bvs{display:flex;justify-content:center;gap:18px;padding:4px 0}.bvs figure{margin:0;text-align:center}.bvs figcaption{font-size:11.5px;color:var(--mute);margin-top:2px}
.bvl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 10px;padding:6px 0 4px}
.bvr{display:flex;align-items:baseline;gap:5px;font-size:12.5px;min-width:0;padding:3px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.bvr span{color:var(--mute);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bvr em{font-style:normal;font-family:var(--mono);font-size:11px;color:var(--mute)}
.bvr b{font-family:var(--mono);font-size:12.5px;color:var(--fg)}.bvr.up b{color:var(--lime)}.bvr.dn b{color:var(--red)}
/* v17: повестка дня (расписание) */
.agh{display:flex;align-items:baseline;gap:8px;padding:4px 2px 6px;font-size:13px}.agh b{color:var(--mag)}.agh span{color:var(--mute);font-family:var(--mono);font-size:12px}.agh .cnt{margin-left:auto}
.ag{display:flex;flex-direction:column;gap:3px;padding:2px 0 6px}
.ag0{padding:8px 2px;color:var(--mute);font-size:13px}
.agr{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:6px;min-height:36px;padding:2px 4px 2px 0;border-radius:10px;background:rgba(23,20,58,.6);border-left:3px solid var(--cc);position:relative}
.agr.now{background:rgba(57,197,214,.10);box-shadow:inset 0 0 0 1px rgba(57,197,214,.35)}
.agr.done{opacity:.55}.agr.done .agn{text-decoration:line-through;text-decoration-color:rgba(255,255,255,.35)}
.agr.miss .agn{color:var(--mute)}.agr.miss{border-left-color:var(--red)}
.agt{text-align:right;font-family:var(--mono);line-height:1.1}.agt b{display:block;font-size:12.5px;color:var(--fg)}.agt small{font-size:10px;color:var(--dim)}
.agb{min-width:0;display:flex;flex-direction:column;gap:2px;padding:3px 0}
.agn{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.agb.open .agn{white-space:normal}
.agg{display:flex;gap:4px;flex-wrap:wrap}
.aga{display:flex;align-items:center;white-space:nowrap}
.tg{font-style:normal;font-family:var(--mono);font-size:10.5px;line-height:1;padding:2px 5px;border-radius:5px;background:var(--panel2);color:var(--mute)}
.tg.rm{color:var(--cyan)}.tg.wk{color:var(--amber)}.tg.now{background:var(--cyan);color:#06101a;font-weight:700}
.agp{position:absolute;left:0;bottom:0;height:2px;background:var(--cyan);border-radius:2px}
.ib{width:28px;height:28px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;background:var(--panel2);color:var(--mute);border:1px solid rgba(255,255,255,.08);margin-left:3px}
.agr>.ib:last-child{margin-right:2px}
.ib.y.on,.ib.c.on{background:var(--lime);color:#0b1a08;border-color:var(--lime)}
.ib.n.on{background:var(--red);color:#1e0610;border-color:var(--red)}
.ib.g{color:var(--lime)}
.agw{font-size:11px;color:var(--dim);font-family:var(--mono);padding:0 0 0 46px;line-height:16px}
.agw::before{content:"⋯ "}
.agc{align-self:flex-start;font-size:12px;color:var(--mute);padding:4px 8px;min-height:26px;border-radius:8px;background:rgba(255,255,255,.04)}
.agnow{position:relative;height:10px;margin:0 0 0 40px}.agnow::before{content:"";position:absolute;left:0;right:0;top:5px;height:1px;background:var(--red)}
.agnow span{position:absolute;left:-40px;top:0;font-family:var(--mono);font-size:9.5px;color:var(--red);width:36px;text-align:right;line-height:10px}
.wsd.sel{border-color:var(--mag);background:rgba(168,107,224,.16);color:var(--fg)}
.wd1{border-radius:16px;background:var(--glass);border:1px solid rgba(255,255,255,.08);padding:4px 10px 6px;margin:8px 0}
.wd1h{display:flex;align-items:center;gap:8px;min-height:36px}.wd1h b{font-size:14px}.wd1h .cnt{color:var(--lime);font-family:var(--mono);font-size:12px}.wd1h .link{margin-left:auto;min-height:32px;font-size:13px}
.agu{display:flex;flex-wrap:wrap;gap:4px;padding:2px 0 4px}.agu1{font-size:12px;padding:4px 8px;border-radius:8px;background:var(--panel2);color:var(--mute);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agu1.on{color:var(--lime)}
/* v17: рекорды, прогрессия, заморозки, ачивки */
.prb{font-size:11px;color:#1a1030;background:var(--amber);border-radius:6px;padding:1px 5px;vertical-align:2px;font-weight:700}
.prs{font-style:normal;font-family:var(--mono);font-size:10.5px;color:var(--amber);white-space:nowrap;margin-left:4px}
.sug{font-size:12px;color:var(--mute);background:rgba(255,255,255,.04);border-radius:8px;padding:4px 8px;margin:2px 0 4px}.sug.up{color:var(--lime);background:rgba(127,211,107,.08)}
.prt{display:flex;gap:8px;padding:4px 0}.prt div{flex:1;background:var(--panel2);border-radius:12px;padding:6px 10px}.prt b{font-family:var(--mono);font-size:20px;color:var(--amber)}.prt b i{font-style:normal;font-size:11px;color:var(--mute);margin-left:3px}.prt span{display:block;font-size:11.5px;color:var(--mute)}
.prw{display:flex;flex-wrap:wrap;gap:4px;padding:4px 0}.prw span{font-family:var(--mono);font-size:11.5px;padding:3px 7px;border-radius:7px;background:rgba(217,166,64,.1);color:var(--mute)}.prw b{color:var(--fg)}
.prl{display:flex;flex-direction:column}.prr{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:6px;align-items:baseline;padding:5px 0;border-bottom:1px solid rgba(255,255,255,.05);font-size:13px}
.prr b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prd{font-family:var(--mono);font-size:11px;color:var(--dim)}.prv{font-family:var(--mono);font-size:12px;color:var(--amber)}
.frzb{margin-left:6px;font-size:12px;font-family:var(--mono);padding:2px 7px;min-height:24px;border-radius:7px;background:rgba(95,134,224,.15);color:#a9c1ff}
.frzc{font-family:var(--mono);font-size:11px;color:#a9c1ff;margin-left:6px}
.lk{font-style:normal;font-size:11px}
.fach{display:flex;flex-wrap:wrap;gap:6px;padding:4px 0 8px}.fach span{display:flex;align-items:center;gap:4px;font-size:16px;padding:3px 8px;border-radius:9px;background:var(--panel2)}.fach small{font-size:11px;color:var(--mute)}
.unlock{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;background:rgba(5,3,16,.55);animation:ulin .25s ease-out}
.unlock .ub{display:flex;flex-direction:column;align-items:center;gap:4px;padding:18px 26px;border-radius:22px;background:linear-gradient(160deg,#2a1f55,#141030);border:1px solid rgba(217,166,64,.6);box-shadow:0 0 40px rgba(217,166,64,.35);animation:ubpop .55s cubic-bezier(.2,1.6,.4,1)}
.unlock .ub i{font-style:normal;font-size:52px;line-height:1;animation:ubspin 1s ease-out}
.unlock .ub b{font-size:16px;color:var(--amber)}.unlock .ub span{font-size:13px;color:var(--fg);max-width:260px;text-align:center}
.unlock.out{opacity:0;transition:opacity .35s}
@keyframes ulin{from{opacity:0}}
@keyframes ubpop{from{transform:scale(.4);opacity:0}}
@keyframes ubspin{from{transform:rotate(-200deg) scale(.3)}}
/* v17: фото прогресса */
.phadd{display:flex;gap:6px;align-items:center;margin-top:8px}.phadd input[type=date]{flex:1;min-height:38px}.phadd .btn{flex:none;min-height:38px;padding:0 14px}
.phl{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.phl .link{min-height:32px;font-size:13px}.phl .rt2{margin-left:auto;font-size:11.5px}
.phcmp{position:relative;aspect-ratio:3/4;border-radius:14px;overflow:hidden;background:var(--panel2);margin:8px 0;touch-action:none;user-select:none}
.phcmp img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.cmpB{position:absolute;inset:0}
.cmpL{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:#fff;box-shadow:0 0 8px rgba(0,0,0,.6)}
.cmpL::after{content:"⇆";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:30px;height:30px;border-radius:50%;background:#fff;color:#111;display:flex;align-items:center;justify-content:center;font-size:15px}
.cmpT{position:absolute;bottom:6px;font-family:var(--mono);font-size:11.5px;padding:2px 6px;border-radius:6px;background:rgba(0,0,0,.6)}.cmpT.l{left:6px}.cmpT.r{right:6px}
#cmpX{width:100%}
/* v17: карточка недели */
.cardp{width:100%;border-radius:14px;display:block;margin:6px 0;background:var(--panel2);aspect-ratio:9/16;object-fit:contain}
