/* ============================================================
   Распорядок дня — оформление
   Токены из design_handoff_weight_gain_app/README.md
   ============================================================ */

:root{
  --bg:#fbfaf8;
  --bg2:#f6f4f0;
  --surface:#ffffff;

  --t1:#1b1a17;
  --t2:#4a463f;
  --t3:#9a968c;
  --t4:#b0aca2;

  --line:#e8e5de;
  --line-soft:#f3f0ea;
  --line-btn:#ddd9d0;

  --green:#5b6e52;
  --green-bg:#eef2ea;
  --green-tx:#42513b;
  --yellow:#7d5c1c;
  --yellow-bg:#fdf6e8;
  --yellow-bd:#f0e2c4;

  --scrim:rgba(20,19,16,.44);

  --ui:'Manrope',-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,'Cascadia Mono',Consolas,monospace;
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;scrollbar-width:none;-ms-overflow-style:none}
*::-webkit-scrollbar{width:0;height:0;display:none}
html,body{height:100%}
body{
  margin:0;background:#eceae4;font-family:var(--ui);color:var(--t1);
  display:flex;align-items:center;justify-content:center;overscroll-behavior:none;
}
button{
  font-family:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;text-align:left;
  -webkit-user-select:none;user-select:none
}
input,select,textarea{font-family:inherit;font-size:14px;color:inherit}

/* безопасные зоны: вырезы, жестовые полосы, шапка Telegram.
   env() покрывает iOS и Android в браузере, --safe-* приходит из Telegram */
:root{
  --safe-top:env(safe-area-inset-top,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
}
.app{
  position:relative;width:min(430px,100vw);height:100dvh;background:var(--surface);
  display:flex;flex-direction:column;overflow:hidden;
  padding-top:var(--safe-top);
}
/* планшеты, раскрытые складные, десктоп: приложение — карточка по центру */
@media (min-width:560px) and (min-height:820px){
  .app{height:min(900px,96dvh);border-radius:30px;box-shadow:0 34px 80px -36px rgba(0,0,0,.5);padding-top:0}
}
/* раскрытый складной в альбомной ориентации: невысокий, но широкий */
@media (min-width:700px) and (max-height:819px){
  .app{width:min(430px,52vw);height:96dvh;border-radius:26px;box-shadow:0 24px 60px -30px rgba(0,0,0,.5);padding-top:0}
}
#root{flex:1;display:flex;flex-direction:column;min-height:0}
.screen{flex:1;display:flex;flex-direction:column;min-height:0;background:var(--bg)}
/* полоса под приподнятую кнопку таббара: список в неё не заезжает */
.scroll{flex:1;overflow-y:auto;overscroll-behavior:contain;padding-bottom:12px;margin-bottom:19px}

.mono{font-family:var(--mono)}
.muted{color:var(--t3)}
.empty{padding:34px 22px;text-align:center;color:var(--t3);font:500 13px/1.5 var(--ui)}
.hint{font:500 11.5px/1.45 var(--ui);color:var(--t3);margin:-2px 0 12px}
.warn{
  background:var(--yellow-bg);border:1px solid var(--yellow-bd);color:var(--yellow);
  border-radius:12px;padding:10px 12px;font:500 11.5px/1.45 var(--ui);margin-bottom:12px
}
.warn.danger{background:#fdf3f0;border-color:#eed7d0;color:#8f3f2c}
.warn b{font-weight:700}
.divider{height:1px;background:var(--line);margin:16px -20px 14px}
.track{flex:1;height:5px;border-radius:99px;background:var(--line);overflow:hidden}
.track i{display:block;height:100%;border-radius:99px;background:var(--green);transition:width .25s ease}

/* ============================================================
   ЭКРАН «ДЕНЬ» — шапка
   ============================================================ */
.hdr{background:var(--surface);border-bottom:1px solid var(--line);padding:14px 20px 13px;flex:none}
/* мета шторки дня — аккуратные чипы */
.meta-chips{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px}
.meta-chips i{
  font:600 9.5px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--t3);
  background:var(--bg2);border:1px solid var(--line);border-radius:99px;padding:4px 9px
}

/* кнопка подсказок в шторке */
.hintbtn{
  position:absolute;top:14px;right:16px;width:30px;height:30px;border-radius:50%;
  background:var(--bg2);border:1px solid var(--line-btn);color:var(--t3);
  font:700 14px/1 var(--ui);display:flex;align-items:center;justify-content:center
}
.hintbtn:active{background:var(--line-soft)}

/* развёрнутое описание под кнопками курсов */
.course-note{margin-top:10px;text-align:left;line-height:1.5}
.course-note b{color:var(--t1);font-weight:700}
.hdr-row{display:flex;align-items:flex-start;gap:7px}
.hdr-main{flex:1;min-width:0}
.hdr-date{font:700 26px/1.05 var(--ui);letter-spacing:-.025em}
.hdr-sub{font:500 12px/1.35 var(--ui);color:var(--t3);margin-top:5px}
.today-nav{background:var(--t1);border-color:var(--t1);color:#fff;font-size:15px}
.navbtn{
  width:36px;height:36px;flex:none;border:1px solid var(--line-btn);border-radius:12px;
  background:var(--surface);display:flex;align-items:center;justify-content:center;
  font-size:16px;color:var(--t2)
}
.navbtn:active{background:var(--bg2)}

.hdr-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}
.pchip{
  display:inline-flex;align-items:center;gap:5px;
  font:600 11px/1 var(--ui);padding:6px 9px;border-radius:9px;
  border:1px solid var(--line);background:var(--bg2);color:var(--t2);white-space:nowrap
}
.pchip .dot{width:6px;height:6px;border-radius:99px;flex:none}
.today-btn{background:var(--t1);border-color:var(--t1);color:#fff;font-weight:700}
.today-btn:active{opacity:.85}

.hdr-prog{display:flex;align-items:center;gap:10px;margin-top:11px}
.hdr-prog span{font:600 11.5px var(--mono);flex:none}
.metrics{display:flex;gap:24px;margin-top:12px;align-items:flex-end}
.metric b{display:block;font:700 17px var(--ui);letter-spacing:-.01em}
.metric span{display:block;font:500 10.5px var(--ui);color:var(--t3);margin-top:1px}
.metric-edit{
  margin-left:auto;font:600 11.5px var(--ui);color:var(--t3);
  border:1px solid var(--line);border-radius:9px;padding:6px 10px;background:var(--surface)
}

/* баннеры состояния дня */
.banner{
  margin:14px 20px 0;padding:14px 15px;border-radius:16px;
  background:var(--green-bg);border:1px solid #dfe5da
}
.banner b{display:block;font:700 14.5px var(--ui);color:var(--green-tx)}
.banner span{display:block;font:500 12px/1.45 var(--ui);color:#6b7562;margin-top:4px}
.banner-btn{
  font:600 12px var(--ui);color:#fff;background:var(--green);border-radius:10px;
  padding:9px 14px;margin-top:11px
}
.banner.partial,.banner.missed{background:#fff;border-color:var(--line)}
.banner.partial b,.banner.missed b{color:var(--c,var(--t2))}

.tick{
  width:20px;height:20px;flex:none;border-radius:7px;border:1px solid #d9d5cc;background:#fff;
  display:flex;align-items:center;justify-content:center
}
.tick.on{background:var(--green);border-color:var(--green)}
.tick.on::after{content:'✓';color:#fff;font:600 11px var(--ui)}

/* ============================================================
   СТАРТ ДНЯ: ритуал → подготовка → распорядок
   ============================================================ */
.startwrap{padding:16px 20px 24px;display:flex;flex-direction:column;gap:13px}
.scard{
  background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:15px 16px 6px;
  display:flex;flex-direction:column
}
.scard.dim{opacity:.55;border-color:#efece6}
.scard-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.scard-h b{font:700 15px/1.1 var(--ui);letter-spacing:-.01em}
.scount{font:600 11.5px var(--mono)}
.sbar{height:4px;background:#eceae4;border-radius:99px;overflow:hidden;margin:12px 0 4px}
.sbar i{display:block;height:100%;border-radius:99px;transition:width .25s ease}

.rit-row{
  display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line-soft);width:100%
}
.rit-time{font:600 11.5px/1 var(--mono);color:var(--t3);width:38px;flex:none}
.rit-body{flex:1;min-width:0}
.rit-body b{display:block;font:700 14.5px/1.2 var(--ui);letter-spacing:-.01em}
.rit-body em{display:block;font:500 11.5px/1.25 var(--ui);color:var(--t3);font-style:normal;margin-top:3px}
.rit-row.on .rit-body b{color:#8a867e;text-decoration:line-through}
.rit-row .chk{pointer-events:none}
.slink{
  align-self:flex-start;font:600 12px/1.45 var(--ui);color:var(--green);padding:12px 0 10px
}

.prep-row2{display:flex;align-items:center;gap:11px;padding:9px 0;width:100%}
.dotchk{
  width:22px;height:22px;flex:none;border-radius:99px;border:1px solid #d9d5cc;background:#fff;
  display:flex;align-items:center;justify-content:center
}
.prep-row2.on .dotchk{background:var(--green);border-color:var(--green)}
.prep-row2.on .dotchk::after{content:'✓';color:#fff;font:600 11px var(--ui)}
.prep-body{flex:1;min-width:0}
.prep-body b{display:block;font:600 13px/1.2 var(--ui)}
.prep-body em{display:block;font:500 11px/1.2 var(--ui);color:var(--t3);font-style:normal;margin-top:3px}
.prep-row2.on .prep-body b{color:#a09b91}
.dose-pill{
  font:500 11.5px/1 var(--mono);color:var(--yellow);background:var(--yellow-bg);
  border:1px solid var(--yellow-bd);padding:6px 9px;border-radius:8px;white-space:nowrap;flex:none
}

.start-cta{
  width:100%;padding:14px;border-radius:14px;font:600 13.5px/1.45 var(--ui);text-align:center;
  background:#eceae4;color:#a09b91
}
.start-cta.on{background:var(--t1);color:#fff}
.start-skip{
  width:100%;text-align:center;font:600 12px/1.5 var(--ui);color:var(--t3);padding:2px 0 4px
}

/* свёрнутый старт дня над распорядком */
.startbar{
  display:block;margin:14px 20px 0;width:calc(100% - 40px);
  background:linear-gradient(142deg,#6a8060 0%,#4c6043 62%,#405438 100%);
  border:1px solid #ffffff1f;border-radius:18px;padding:15px 16px;
  box-shadow:0 10px 24px -16px rgba(64,84,56,.9)
}
.sb-h{display:flex;align-items:center;justify-content:space-between;gap:10px}
.sb-h b{font:700 15px/1.1 var(--ui);color:#fff;letter-spacing:-.01em;flex:none}
.sb-h span{font:600 11px var(--mono);color:#dbe6d2;white-space:nowrap;opacity:.85}
.sb-bars{display:flex;gap:6px;margin-top:12px}
.sb-bars > div{flex:1;height:5px;background:#ffffff2b;border-radius:99px;overflow:hidden}
.sb-bars i{display:block;height:100%;border-radius:99px}
.sb-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.sb-chip{
  padding:8px 11px;border-radius:10px;border:1px solid #ffffff2e;background:#ffffff14;
  color:#f2f5ee;font:600 12px var(--ui)
}
.sb-chip.on{background:#ffffff26;color:#fff}
.sb-link{display:block;margin-top:12px;font:600 12px var(--ui);color:#e2ecda;opacity:.9}

.startbar.done{
  background:var(--green-bg);border:1px solid #dfe5da;box-shadow:none;
  display:flex;align-items:center;gap:12px;padding:12px 15px
}
.sbd-text{flex:1;min-width:0;display:block}
.sbd-text b{display:block;font:700 13.5px/1.2 var(--ui);color:var(--green-tx)}
.sbd-text span{
  display:block;font:600 10.5px/1.2 var(--mono);color:#7d8a74;margin-top:4px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap
}
.sb-arrow{font-style:normal;font:600 14px var(--ui);color:#7d8a74;flex:none}

/* таймлайн */
.timeline{padding:16px 20px 8px;display:grid;grid-template-columns:46px minmax(0,1fr);gap:12px 10px}
.timeline > *{min-width:0}
.tl-time{display:flex;flex-direction:column;align-items:flex-end;gap:6px;padding-top:2px}
.tl-time b{font:600 12px var(--mono);color:var(--t2)}
.tl-time i{flex:1;width:1px;background:#e2ded5;min-height:8px}

/* выполненный пункт — свёрнутая строка */
.donerow{
  display:flex;align-items:center;gap:10px;padding:8px 11px;
  background:#f4f2ed;border:1px solid #eae7e0;border-radius:13px;min-width:0
}
.donerow .chk{width:22px;height:22px;border-radius:7px;font-size:11px}
.donerow b{
  flex:1;min-width:0;font:600 13px/1.2 var(--ui);color:#8f8a81;text-decoration:line-through;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap
}
.donerow em{
  flex:none;font:500 10.5px var(--mono);color:var(--t4);font-style:normal;
  max-width:38%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap
}
.tl-time.small b{color:var(--t4);font-weight:500}

.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.card-h{display:flex;align-items:center;gap:8px;padding:13px 14px 9px}
.card-h h3{margin:0;flex:1;font:700 15.5px/1.15 var(--ui);letter-spacing:-.01em}
.icon-btn{
  width:26px;height:26px;flex:none;border-radius:8px;border:1px solid var(--line);
  color:var(--t3);font:700 15px/1 var(--ui);display:flex;align-items:center;justify-content:center;padding-bottom:2px
}
.icon-btn:active{background:var(--bg2)}
.chk{
  width:26px;height:26px;flex:none;border-radius:9px;border:1px solid #d9d5cc;background:var(--surface);
  color:transparent;font:600 13px var(--ui);display:flex;align-items:center;justify-content:center;
  transition:background .15s ease,border-color .15s ease
}
.chk.on{background:var(--green);border-color:var(--green);color:#fff}
.card-items{padding:0 14px 12px;display:flex;flex-direction:column;gap:6px}
.item{display:flex;align-items:baseline;gap:10px;font:500 13px/1.35 var(--ui);color:var(--t2)}
.item b{font-weight:500;flex:1;min-width:0}
.item span{font:500 12px var(--mono);color:var(--t3);flex:none}
.strip{
  display:flex;align-items:center;gap:8px;padding:9px 14px;
  font:600 11.5px/1.3 var(--ui);border-top:1px solid var(--line-soft);width:100%
}
.strip.pre{background:var(--yellow-bg);color:var(--yellow)}
.strip.post{background:var(--green-bg);color:var(--green-tx)}
.strip .dot{
  width:16px;height:16px;flex:none;border-radius:99px;border:1px solid currentColor;opacity:.5;
  display:flex;align-items:center;justify-content:center
}
.strip.done .dot{opacity:1;background:currentColor}
.strip.done .dot::after{content:'✓';color:#fff;font-size:9px;line-height:1}
.strip.done b{text-decoration:line-through;opacity:.6}
.strip b{font-weight:600;flex:1;min-width:0}

.evcard{border-radius:16px;padding:12px 13px;display:flex;align-items:center;gap:10px;border:1px solid}
.ic{width:100%;height:100%;display:block}
.evbadge{
  width:32px;height:32px;flex:none;border-radius:10px;display:flex;align-items:center;justify-content:center;
  padding:6px
}
.evbadge.sm{width:28px;height:28px;border-radius:9px;padding:5px}
.mealmark{width:17px;height:17px;flex:none;display:block;opacity:.85}
.evtext{flex:1;min-width:0}
.evtext b{display:block;font:700 14px/1.2 var(--ui);letter-spacing:-.01em}
.evtext span{
  font:500 11.5px/1.3 var(--ui);color:var(--t3);margin-top:3px;overflow:hidden;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical
}
.dosecard{border-radius:14px;padding:11px 13px;display:flex;align-items:center;gap:10px;border:1px solid}

.addbtn{
  border:1px dashed #cfcabf;border-radius:14px;padding:13px;
  font:600 12.5px var(--ui);color:var(--t2);background:transparent;text-align:center
}
.addbtn:active{background:#00000008}
.addpair{display:flex;gap:7px}
.addpair .addbtn{flex:1;padding:12px 4px;font-size:11.5px}

/* ============================================================
   ТАББАР
   ============================================================ */
.tabbar{
  flex:none;display:flex;align-items:flex-start;background:var(--surface);
  border-top:1px solid var(--line);
  padding:7px 6px calc(7px + var(--safe-bottom))
}
.tab{
  flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;
  color:var(--t4);padding:3px 0 2px
}
.tab-ico{
  width:40px;height:28px;border-radius:10px;display:flex;align-items:center;justify-content:center;
  transition:background .18s ease,color .18s ease
}
.tab-ico svg{width:21px;height:21px;display:block}
.tab-lb{font:600 10px var(--ui);letter-spacing:.01em}
.tab.on{color:var(--t1)}
.tab.on .tab-ico{background:#f1efe9}
.tab.on .tab-lb{font-weight:700}
.tab:active .tab-ico{background:#f1efe9}

/* ============================================================
   КАЛЕНДАРЬ
   ============================================================ */
.cal-hdr{background:var(--surface);border-bottom:1px solid var(--line);padding:14px 16px 12px;flex:none}
.cal-hdr-row{display:flex;align-items:center;gap:8px}
.cal-title-box{flex:1;min-width:0;text-align:center}
.cal-title{font:800 20px/1.1 var(--ui);letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-sub{
  font:500 10.5px var(--mono);color:var(--t3);margin-top:3px;display:block;width:100%;text-align:center
}
.segrow{display:flex;gap:8px;margin-top:10px;align-items:stretch}
.segadd{
  flex:none;padding:8px 12px;border-radius:11px;background:var(--t1);color:#fff;
  font:600 11.5px var(--ui);display:flex;align-items:center;white-space:nowrap
}
.segadd:active{opacity:.85}
.viewseg{flex:1;display:flex;border:1px solid var(--line);border-radius:11px;padding:2px;background:var(--bg2)}
.viewseg button{flex:1;padding:7px 11px;border-radius:9px;font:600 11.5px var(--ui);color:var(--t3);text-align:center}
.viewseg button.on{background:var(--surface);color:var(--t1);box-shadow:0 1px 3px rgba(0,0,0,.07)}

.dow{
  display:grid;grid-template-columns:repeat(7,1fr);gap:6px;padding:10px 14px 6px;
  font:600 9.5px var(--mono);color:var(--t4);text-align:center;letter-spacing:.05em
}
.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;padding:0 14px 14px}
.cell{
  position:relative;border-radius:12px;border:1px solid var(--line);background:var(--surface);
  min-height:64px;display:flex;flex-direction:column;align-items:flex-start;padding:6px 6px 8px;overflow:hidden
}
.cell.void{border:0;background:transparent !important;pointer-events:none}
.cell.sel{box-shadow:inset 0 0 0 1.5px var(--t1)}
.cell-n{font:700 13px/1 var(--ui)}
.cell-n.today{
  background:var(--t1);border-radius:99px;width:21px;height:21px;
  display:flex;align-items:center;justify-content:center;margin:-2px 0 -2px -2px;font-size:12px
}
.cell-dots{display:flex;flex-wrap:wrap;gap:3px;margin-top:auto;padding-bottom:5px}
.cell-dots i{width:5px;height:5px;border-radius:99px;display:block}
.cell-dots u{font:600 7.5px var(--mono);color:var(--t3);text-decoration:none;line-height:5px}
.cell-bar{position:absolute;left:6px;right:6px;bottom:5px;height:3px;border-radius:99px;background:#00000010}
.cell-bar i{display:block;height:100%;border-radius:99px}

/* карточка «сегодня» */
.todaycard{margin:4px 14px 10px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:13px 14px}
.tc-top{
  font:600 10.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--t3);
  display:flex;align-items:center;gap:6px
}
.tc-top .dot{width:6px;height:6px;border-radius:99px;margin-left:auto}
.tc-row{display:flex;align-items:center;gap:14px;margin-top:9px}
.tc-prog{flex:none}
.tc-prog b{display:block;font:700 20px/1 var(--ui);letter-spacing:-.02em}
.tc-prog span{display:block;font:500 10px var(--ui);color:var(--t3);margin-top:3px}
.tc-next{flex:1;min-width:0;border-left:1px solid var(--line);padding-left:14px}
.tc-next b{display:block;font:700 13.5px/1.2 var(--ui);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tc-next span{display:block;font:500 10.5px var(--ui);color:var(--t3);margin-top:3px;white-space:nowrap}
.tc-btn{width:100%;margin-top:12px;padding:11px;font-size:12.5px}

/* список (агенда) */
.agenda{padding:8px 14px 16px;display:flex;flex-direction:column;gap:8px}
.agenda-row{
  display:flex;gap:12px;align-items:stretch;
  background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:11px 12px
}
.agenda-row.sel{box-shadow:inset 0 0 0 1.5px var(--t1)}
.agenda-row.today .agenda-date b{background:var(--t1);color:#fff;border-radius:99px;width:26px;height:26px;display:flex;align-items:center;justify-content:center;font-size:14px}
.agenda-date{width:34px;flex:none;display:flex;flex-direction:column;align-items:center;gap:2px}
.agenda-date b{font:700 18px/1 var(--ui)}
.agenda-date span{font:500 9.5px var(--mono);color:var(--t3);text-transform:uppercase}
.agenda-body{flex:1;min-width:0}
.agenda-top{font:600 10px var(--mono);color:var(--t3);letter-spacing:.04em;text-transform:uppercase}
.chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.chip{
  font:600 11px/1.25 var(--ui);padding:4px 8px;border-radius:8px;white-space:nowrap;max-width:100%;
  overflow:hidden;text-overflow:ellipsis;
  color:var(--c,var(--t2));background:color-mix(in srgb,var(--c,#5b6e52) 9%,#fff);
  border:1px solid color-mix(in srgb,var(--c,#5b6e52) 24%,#fff)
}
.agenda-stat{
  flex:none;align-self:center;font:600 11px var(--mono);
  border:1px solid var(--line);border-radius:8px;padding:5px 7px;background:#ffffffa8
}

/* FAB */
.fab{
  position:absolute;left:50%;transform:translateX(-50%);
  bottom:calc(66px + max(8px,env(safe-area-inset-bottom)));
  background:#1b1a17f0;color:#fff;border-radius:99px;padding:13px 20px;
  display:flex;align-items:center;gap:10px;font:600 13px var(--ui);
  box-shadow:0 10px 24px -10px rgba(0,0,0,.5);z-index:20
}
.fab b{font:600 15px var(--ui)}

/* ============================================================
   КУРСЫ И ПРОФИЛЬ
   ============================================================ */
.plain-hdr{
  background:var(--surface);border-bottom:1px solid var(--line);padding:16px 20px 13px;flex:none;
  display:flex;align-items:center;gap:10px
}
.plain-hdr h1{margin:0;flex:none;font:800 23px/1.1 var(--ui);letter-spacing:-.02em}
.plain-hdr .sub{font:500 11px var(--mono);color:var(--t3);flex:1;min-width:0}
.list{padding:14px 16px 24px;display:flex;flex-direction:column;gap:12px}
.course{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:15px 16px 13px}
.course-h{display:flex;align-items:center;gap:8px}
.course-h h3{margin:0;flex:1;font:700 15.5px/1.15 var(--ui);letter-spacing:-.01em}
/* плашка тега курса: мягкий глянец, спокойные тона */
.tagchip{
  font:600 10px var(--mono);letter-spacing:.06em;text-transform:uppercase;
  padding:4px 9px;border-radius:99px;border:1px solid;white-space:nowrap;
  background-image:linear-gradient(172deg,rgba(255,255,255,.75) 0%,rgba(255,255,255,0) 55%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 1px 2px rgba(60,55,45,.06)
}
.course-dose{font:700 18px/1.2 var(--ui);letter-spacing:-.01em;margin:11px 0 12px}
.course-dose.muted{font-size:14px;font-weight:600;color:var(--t3)}
.phases{display:flex;gap:3px}
.phases > div{height:8px;border-radius:99px;background:var(--line);overflow:hidden;min-width:4px}
.phases > div.brk{background:repeating-linear-gradient(135deg,#eceae4 0 3px,#f6f4f0 3px 6px)}
.phases i{display:block;height:100%;border-radius:99px}
.phase-meta{display:flex;justify-content:space-between;gap:10px;margin-top:9px;font:500 11.5px var(--ui);color:var(--t3)}

/* график прогресса курса по дням */
.pr{margin-top:15px}
.pr-top{display:flex;align-items:flex-end;gap:8px}
.pr-top b{font:700 34px/.9 var(--ui);letter-spacing:-.03em}
.pr-top span{font:600 12.5px/1.4 var(--ui);color:var(--t3)}
.pr-todaybar{display:flex;height:8px;border-radius:99px;background:#eceae4;overflow:hidden;margin-top:8px}
.pr-todaybar i{display:block;height:100%}

.pr-chart{position:relative;height:118px;display:flex;align-items:flex-end;gap:3px;margin-top:16px}
.pr-goal{position:absolute;left:0;right:0;border-top:1px dashed #c7c2b8;pointer-events:none}
.pr-col{
  flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;gap:1px;min-width:0
}
.pr-col.fut{opacity:.4}
.pr-col.brk{opacity:.3}
.pr-cap{border-radius:3px 3px 0 0}
.pr-col.fut .pr-cap,.pr-col.brk .pr-cap{
  background:repeating-linear-gradient(135deg,#eceae4 0 3px,transparent 3px 6px)
}
.pr-col i{display:block;min-height:2px}
.pr-zero{height:2px;background:#e6e3db;border-radius:2px}

/* графики оживают при входе на вкладку (.anim ставится только при её смене) */
@media (prefers-reduced-motion:no-preference){
  .anim .track i,.anim .sbar i,.anim .phases > div > i,.anim .pr-cbar i,.anim .pr-todaybar i{
    animation:groww .8s cubic-bezier(.25,.8,.3,1)
  }
  .anim .pr-col i,.anim .pr-cap{animation:growh .7s cubic-bezier(.25,.8,.3,1) backwards}
  .anim .pr-col:nth-child(2n) i{animation-delay:.06s}
  .anim .pr-col:nth-child(3n) i{animation-delay:.11s}
  /* сегодняшний столбик мягко дышит: день ещё идёт */
  .pr-col.now i{animation:breathe 3.2s ease-in-out 1.2s infinite}
  .anim .pr-col.now i{animation:growh .7s cubic-bezier(.25,.8,.3,1) backwards, breathe 3.2s ease-in-out 1.2s infinite}
  .anim .chart-donut svg{animation:donutin .8s cubic-bezier(.25,.8,.3,1)}
  .anim .clrow i{animation:dotin .5s ease backwards}
  .anim .clrow:nth-child(2) i{animation-delay:.12s}
  .anim .clrow:nth-child(3) i{animation-delay:.24s}
}
/* свежая галочка: чек подпрыгивает, строка мягко вспыхивает */
@media (prefers-reduced-motion:no-preference){
  .just .chk.on,.chk.on.just,.just .tick.on{animation:chkpop .5s cubic-bezier(.3,1.8,.4,1)}
  .rit-row.just,.prep-row2.just,.donerow.just,.sched-row.just{animation:rowglow .9s ease}
  .evcard.just,.dosecard.just,.card.just,.strip.just{animation:cardglow .9s ease}
  .just .dotchk{animation:chkpop .5s cubic-bezier(.3,1.8,.4,1)}
  /* стартовая панель: чипы и полосы оживают при входе */
  .anim .sb-chip{animation:chipin .5s cubic-bezier(.25,.9,.35,1.2) backwards}
  .anim .sb-chip:nth-child(2){animation-delay:.08s}
  .anim .sb-chip:nth-child(3){animation-delay:.16s}
  .anim .sb-chip:nth-child(4){animation-delay:.24s}
  .anim .sb-bars i{animation:groww .8s cubic-bezier(.25,.8,.3,1)}
  .anim .startbar{animation:barrise .45s cubic-bezier(.25,.9,.35,1.1)}
  .anim .meta-chips i{animation:chipin .45s ease backwards}
  .anim .meta-chips i:nth-child(2){animation-delay:.07s}
  .anim .meta-chips i:nth-child(3){animation-delay:.14s}
}
@keyframes chkpop{0%{transform:scale(.35)}60%{transform:scale(1.22)}100%{transform:scale(1)}}
@keyframes rowglow{0%{background:rgba(139,163,124,.2)}100%{background:transparent}}
@keyframes cardglow{0%{box-shadow:0 0 0 3px rgba(139,163,124,.32)}100%{box-shadow:0 0 0 3px transparent}}
@keyframes chipin{from{opacity:0;transform:translateY(6px) scale(.92)}to{opacity:1;transform:none}}
@keyframes barrise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

@keyframes groww{from{width:0}}
@keyframes growh{from{height:0}}
@keyframes breathe{0%,100%{opacity:1}50%{opacity:.72}}
@keyframes donutin{from{transform:rotate(-40deg) scale(.92);opacity:0}to{transform:none;opacity:1}}
@keyframes dotin{from{transform:scale(0)}to{transform:none}}
.clrow i{opacity:.8}
.pr-col i:first-of-type{border-radius:3px 3px 0 0}

.pr-ticks{display:flex;gap:3px;margin-top:4px}
.pr-tick{
  flex:1;min-width:0;font:600 9px var(--mono);color:var(--t4);text-align:center;
  height:14px;padding-top:5px
}
.pr-tick.now{color:var(--t1)}
.pr-legend{
  display:flex;justify-content:space-between;gap:10px;
  font:500 11px/1.2 var(--ui);color:var(--t3);margin-top:4px
}

.pr-stats{
  display:flex;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);
  padding:12px 0;margin-top:15px
}
.pr-stat{flex:1;display:flex;flex-direction:column;gap:4px}
.pr-stat b{font:700 16px/1 var(--ui);letter-spacing:-.01em}
.pr-stat span{font:500 10.5px/1 var(--ui);color:var(--t3)}

.pr-cats{display:flex;flex-direction:column;gap:11px;margin-top:13px}
.pr-cat{display:flex;align-items:center;gap:10px}
.pr-cat > i{width:8px;height:8px;border-radius:99px;flex:none}
.pr-cbody{flex:1;min-width:0}
.pr-crow{display:flex;justify-content:space-between;gap:8px}
.pr-crow b{font:600 13px/1.2 var(--ui)}
.pr-crow span{font:500 11.5px/1.2 var(--mono);color:var(--t3);white-space:nowrap}
.pr-cbar{height:5px;border-radius:99px;background:#f0ede7;overflow:hidden;margin-top:6px}
.pr-cbar i{display:block;height:100%;border-radius:99px;transition:width .25s ease}

.course-chart{display:flex;align-items:center;gap:14px;margin:14px 0 4px}
.chart-donut{position:relative;flex:none;width:84px;height:84px}
.donut-empty{border-radius:99px;border:14px solid #efece6}
.chart-center{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px
}
.chart-center b{font:700 17px/1 var(--ui);letter-spacing:-.03em;white-space:nowrap}
.chart-center span{font:500 8.5px var(--ui);color:var(--t3);white-space:nowrap}
.chart-legend{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.clrow{display:flex;align-items:center;gap:7px;font:500 11.5px var(--ui)}
.clrow i{width:8px;height:8px;border-radius:3px;flex:none}
.clrow b{font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.clrow span{font:500 11px var(--mono);color:var(--t3);flex:none}
.course-sum{font:500 11.5px var(--ui);color:var(--t3);margin-top:8px}
.course-sum b{color:var(--t1);font-weight:700}
.course-prog{display:flex;align-items:center;gap:10px;margin-top:9px}
.course-prog span{font:500 10.5px var(--ui);color:var(--t3);flex:none}

.linkbtn{
  margin-top:11px;padding-top:11px;border-top:1px solid var(--line-soft);
  font:600 12.5px var(--ui);color:var(--t2);display:flex;align-items:center;gap:6px;width:100%
}
.linkbtn u{text-decoration:none;color:var(--t3);font-size:11px}
.dosetable{display:flex;flex-direction:column;padding-top:4px}
.dosetable div{
  display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line-soft);
  font:500 12.5px var(--ui);color:var(--t3);gap:12px
}
.dosetable div.cur{color:var(--t1);font-weight:600}
.dosetable div:last-child{border-bottom:0}
.dosetable .ph{color:var(--t3);font:500 11.5px var(--ui)}

.actlist{display:flex;flex-direction:column;padding-top:4px}
.actrow{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line-soft);width:100%}
.acttime{font:600 11.5px var(--mono);color:var(--t2);flex:none;width:42px}
.actbody{flex:1;min-width:0}
.actbody b{display:block;font:700 13px/1.2 var(--ui)}
.actbody em{
  display:block;font:500 11px/1.35 var(--ui);color:var(--t3);font-style:normal;margin-top:2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap
}
.catdot{width:8px;height:8px;border-radius:99px;flex:none}

.setrow{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid var(--line-soft);width:100%}
.setrow:last-child{border-bottom:0}
.setrow.flat{border-bottom:0;padding-top:0}
.sw{width:22px;height:22px;border-radius:8px;flex:none;border:1px solid #00000012}
.sw.ico{width:32px;height:32px;border-radius:10px;padding:6px;border:1px solid}
.addpair2{display:flex;gap:8px}
.addpair2 .addrow{margin-top:0}
.setbody{flex:1;min-width:0}
.setbody b{display:block;font:700 13px/1.2 var(--ui)}
.setbody em{display:block;font:500 11px var(--ui);color:var(--t3);font-style:normal;margin-top:2px}
.setrow u{text-decoration:none;font:600 11px var(--ui);color:var(--t3);flex:none}
.setinfo{
  display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line-soft);
  font:500 12.5px var(--ui);color:var(--t3)
}
.setinfo:last-child{border-bottom:0}
.setinfo b{color:var(--t1);font-weight:600}

/* ============================================================
   ПРОФИЛЬ: сворачиваемые карточки, отмена, AI-кнопка
   ============================================================ */
.fold{padding:0}
.fold-h{display:flex;align-items:center;gap:10px;width:100%;padding:14px 16px}
.fold-t{flex:1;min-width:0}
.fold-t b{display:block;font:700 15px/1.15 var(--ui);letter-spacing:-.01em}
.fold-t em{
  display:block;font:500 11.5px/1.3 var(--ui);color:var(--t3);font-style:normal;margin-top:4px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap
}
.sub-mono{font:500 10.5px var(--mono);color:var(--t3);flex:none}
.progbars{display:flex;flex-direction:column;gap:10px;margin-top:14px;padding-top:13px;border-top:1px solid var(--line-soft)}
.fold-a{font-style:normal;font-size:11px;color:var(--t3);flex:none}
.fold-b{padding:0 16px 14px;border-top:1px solid var(--line-soft);padding-top:12px}

.setrow.bigrow{
  background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:14px 16px;border-bottom:1px solid var(--line)
}
.sw{display:flex;align-items:center;justify-content:center;color:#fff;font:600 12px var(--ui)}

.undocard{
  background:var(--yellow-bg);border:1px solid var(--yellow-bd);border-radius:18px;
  padding:13px 15px;display:flex;align-items:center;gap:12px
}
.undo-body{flex:1;min-width:0}
.undo-body b{display:block;font:700 13.5px var(--ui);color:var(--yellow)}
.undo-body span{display:block;font:500 11.5px/1.35 var(--ui);color:#8d7238;margin-top:3px}
.undocard .btn{flex:none;padding:10px 14px;background:#fff;border-color:var(--yellow-bd);color:var(--yellow)}

.mini-seg{margin-top:12px}
.mini-seg button{padding:6px 10px;font-size:11px}
.hintlink{
  width:100%;text-align:center;font:600 12px var(--ui);color:var(--t3);padding:6px 0 2px
}
.actbody b .startdot{
  display:inline-block;font:600 8.5px var(--mono);color:var(--green);background:var(--green-bg);
  border:1px solid #dfe5da;border-radius:4px;padding:1px 4px;font-style:normal;
  margin-left:6px;vertical-align:1px;text-transform:uppercase;letter-spacing:.04em
}

/* ============================================================
   ЭКРАН «ПОМОЩНИК»
   ============================================================ */
.aihero{padding:18px 20px 22px;display:flex;flex-direction:column}
.aimark{
  width:60px;height:60px;border-radius:20px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(140deg,#5d7a92 0%,#3f5668 100%);color:#fff;
  box-shadow:0 14px 28px -16px rgba(40,60,78,.9);margin-bottom:16px
}
.aimark svg{width:30px;height:30px}
.aititle{margin:0;font:800 28px/1.1 var(--ui);letter-spacing:-.03em}
.aisub{margin:9px 0 0;font:500 13.5px/1.5 var(--ui);color:var(--t2)}

.aicta{
  margin-top:16px;width:100%;padding:15px;border-radius:16px;text-align:center;
  background:linear-gradient(140deg,#5d7a92 0%,#3f5668 100%);color:#fff;
  font:700 15.5px/1.2 var(--ui);letter-spacing:-.01em;
  box-shadow:0 14px 30px -16px rgba(40,60,78,.9);border:1px solid #ffffff1f
}
.aicta span{display:block;font:500 11.5px var(--ui);color:#d6e2ec;margin-top:5px}
.aicta:active{transform:scale(.99)}
.aicta.ghost{
  margin-top:18px;background:none;color:var(--t1);border:1px solid var(--line-btn);
  box-shadow:none;font-size:14px
}

/* ---------- чат помощника ---------- */
.chat{flex:1;display:flex;flex-direction:column;min-height:0}
.chat-hdr{
  flex:none;display:flex;align-items:center;gap:11px;padding:11px 16px;
  background:var(--surface);border-bottom:1px solid var(--line)
}
.aimark.xs{width:36px;height:36px;border-radius:12px;margin:0;flex:none;box-shadow:none}
.aimark.xs svg{width:19px;height:19px}
.chat-who{flex:1;min-width:0}
.chat-who b{display:block;font:700 15px/1.2 var(--ui);letter-spacing:-.01em}
.chat-who em{display:block;font:500 11px var(--ui);color:var(--t3);font-style:normal;margin-top:2px}
.chat-clear{flex:none;font:600 11.5px var(--ui);color:var(--t3);padding:6px 4px}

.chat-scroll{flex:1;overflow-y:auto;overscroll-behavior:contain}
.chat-inner{padding:16px 14px 8px;display:flex;flex-direction:column;gap:9px}

.bub{
  max-width:84%;padding:10px 13px;border-radius:17px;font:500 13.5px/1.45 var(--ui);
  white-space:normal;word-break:break-word
}
.bub.bot{
  align-self:flex-start;background:var(--surface);border:1px solid var(--line);
  border-bottom-left-radius:6px;color:var(--t1)
}
.bub.me{
  align-self:flex-end;background:linear-gradient(140deg,#5d7a92 0%,#42596b 100%);color:#fff;
  border-bottom-right-radius:6px
}
.bub-file{
  display:flex;align-items:center;gap:6px;margin-top:7px;padding-top:7px;
  border-top:1px solid #ffffff2e;font:500 11.5px var(--ui);opacity:.9
}
.bub-file svg{width:14px;height:14px;flex:none}

.bub.typing{display:flex;gap:4px;align-items:center;padding:14px 15px}
.bub.typing i{width:6px;height:6px;border-radius:50%;background:var(--t4);animation:tp 1.1s infinite}
.bub.typing i:nth-child(2){animation-delay:.16s}
.bub.typing i:nth-child(3){animation-delay:.32s}
@keyframes tp{0%,60%,100%{opacity:.28;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}

.chips{display:flex;flex-wrap:wrap;gap:7px;align-self:flex-start;max-width:92%;margin:2px 0 4px}
.chip{
  padding:8px 12px;border-radius:99px;background:var(--surface);border:1px solid var(--line-btn);
  font:600 12px var(--ui);color:var(--t2)
}
.chip:active{background:var(--bg2)}

/* расписание дня в чате */
.schedbox{
  align-self:flex-start;width:92%;background:var(--surface);
  border:1px solid var(--line);border-radius:16px;padding:5px 13px 7px;margin-top:1px
}
.sched-h{
  display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  padding:8px 0 7px;border-bottom:1px solid var(--line-soft)
}
.sched-h b{font:700 13px var(--ui)}
.sched-h span{font:500 10.5px var(--mono);color:var(--t3)}
.sched-row{display:flex;align-items:center;gap:9px;padding:7px 0;border-bottom:1px solid var(--line-soft)}
.sched-row:last-child{border-bottom:0}
.sched-t{flex:none;width:40px;font:600 11px var(--mono);color:var(--t3)}
.sched-dot{flex:none;width:7px;height:7px;border-radius:50%}
.sched-name{flex:1;min-width:0}
.sched-name b{display:block;font:600 12.5px/1.25 var(--ui);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sched-name em{display:block;font:500 10.5px/1.2 var(--ui);color:var(--t3);font-style:normal;margin-top:1px}
.sched-ok{flex:none;font:700 12px var(--ui);color:var(--green)}
.sched-row.done .sched-name b{color:#8a867e;text-decoration:line-through}

.planbox{
  align-self:flex-start;max-width:92%;width:92%;background:var(--surface);
  border:1px solid var(--line);border-radius:16px;padding:12px 12px 11px;margin-top:1px
}
.pb-h{
  font:600 10.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;
  color:var(--t3);margin-bottom:9px
}
.planbox .oprow{margin-bottom:6px}
.pb-foot{display:flex;gap:8px;margin-top:11px}
.pb-foot .btn{flex:1}
.planbox.done{display:flex;align-items:center;gap:10px;padding:11px 13px}
.pb-done{display:flex;align-items:center;gap:8px;flex:1;font:600 13px var(--ui);color:var(--green)}
.pb-done svg{width:16px;height:16px}
.pb-done.muted{color:var(--t3)}
.pb-undo{
  flex:none;font:600 11.5px var(--ui);color:var(--t2);padding:7px 11px;
  border:1px solid var(--line-btn);border-radius:10px
}

.cmp-files{padding:0 14px;margin-bottom:0}
/* нижний отступ — под приподнятую центральную кнопку панели */
.composer{
  flex:none;display:flex;align-items:flex-end;gap:7px;
  padding:8px 12px calc(26px + var(--safe-bottom));
  background:var(--surface);border-top:1px solid var(--line)
}
.cinput{
  flex:1;min-width:0;resize:none;max-height:120px;padding:10px 13px;border-radius:18px;
  background:var(--bg2);border:1px solid var(--line);
  font:500 13.5px/1.4 var(--ui);color:var(--t1);-webkit-appearance:none
}
.cinput:focus{outline:none;border-color:#c9c4b8;background:var(--surface)}
.cbtn{
  flex:none;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;color:var(--t3)
}
.cbtn svg{width:20px;height:20px}
.cbtn:active{background:var(--bg2)}
.cbtn.rec{color:#fff;background:#b0503c;animation:rec 1.2s infinite}
@keyframes rec{0%,100%{opacity:1}50%{opacity:.6}}
.csend{
  flex:none;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;color:#fff;background:linear-gradient(140deg,#5d7a92 0%,#42596b 100%);
  box-shadow:0 6px 14px -8px rgba(40,60,78,.95)
}
.csend svg{width:19px;height:19px}
.csend:active{transform:scale(.94)}

/* витрина платного раздела */
.aitop{display:flex;align-items:flex-start;gap:13px}
.aimark.sm{width:44px;height:44px;border-radius:14px;margin:0;flex:none}
.aimark.sm svg{width:22px;height:22px}
.aititle.sm{font-size:21px;margin-top:2px}
.aitop .aisub{margin-top:6px;font-size:12.5px}

/* покупка */
.pricebox{
  background:var(--bg2);border:1px solid var(--line);border-radius:16px;padding:15px 16px
}
.pricebox b{display:block;font:800 20px/1.1 var(--ui);letter-spacing:-.02em}
.pricebox span{display:block;font:500 12px var(--ui);color:var(--t3);margin-top:5px}
.inclrow{display:flex;align-items:flex-start;gap:10px;padding:8px 0}
.inclrow .tick{flex:none;margin-top:1px}
.inclrow b{font:500 13px/1.4 var(--ui)}

.aisect{
  font:600 10.5px var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--t3);
  margin:24px 0 10px
}
.aicap{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line-soft)}
.aicap-ic{width:22px;height:22px;flex:none;display:block;margin-top:1px}
.aicap b{display:block;font:700 13.5px/1.2 var(--ui)}
.aicap span{display:block;font:500 12px/1.45 var(--ui);color:var(--t3);margin-top:4px}

.aiway{
  display:flex;gap:12px;background:var(--surface);border:1px solid var(--line);
  border-radius:14px;padding:12px 13px;margin-bottom:8px
}
.aiway-ic{
  width:34px;height:34px;flex:none;border-radius:11px;background:var(--bg2);
  border:1px solid var(--line);color:var(--t2);padding:7px
}
.aiway b{display:block;font:700 13px/1.2 var(--ui)}
.aiway span{display:block;font:500 12px/1.45 var(--ui);color:var(--t3);margin-top:4px}

.ainote{
  margin-top:20px;background:var(--green-bg);border:1px solid #dfe5da;border-radius:16px;
  padding:13px 15px;font:500 12px/1.5 var(--ui);color:var(--green-tx)
}
.ainote b{font-weight:700}

/* обучение: прожектор — экран размыт, нужный элемент в «дырке» */
.tour{position:absolute;inset:0;z-index:40;opacity:0;transition:opacity .2s ease}
.tour.on{opacity:1}
.tv{
  position:absolute;display:block;
  background:rgba(30,28,24,.42);
  -webkit-backdrop-filter:blur(3.5px);backdrop-filter:blur(3.5px)
}
.tour-ring{
  position:absolute;display:block;border-radius:16px;pointer-events:none;
  box-shadow:0 0 0 2.5px var(--surface),0 0 0 5px rgba(93,122,146,.75),0 10px 30px -8px rgba(0,0,0,.5);
  animation:ringin .35s cubic-bezier(.2,.8,.3,1)
}
@keyframes ringin{from{transform:scale(1.06);opacity:0}to{transform:none;opacity:1}}
.tour-card{
  position:absolute;left:10px;right:10px;padding:16px 16px 14px;
  background:var(--surface);border-radius:20px;box-shadow:0 18px 50px -18px rgba(0,0,0,.55);
  animation:tourin .28s cubic-bezier(.2,.8,.3,1)
}
@keyframes tourin{from{transform:translateY(14px);opacity:0}to{transform:none;opacity:1}}
.tour-head{display:flex;align-items:baseline;gap:10px}
.tour-head b{flex:1;font:800 16px/1.25 var(--ui);letter-spacing:-.02em}
.tour-close{flex:none;font:600 11.5px var(--ui);color:var(--t3);padding:2px 0}
.tour-card p{margin:6px 0 0;font:500 12.5px/1.5 var(--ui);color:var(--t2)}
/* копия поля из шторки внутри подсказки */
.tour-prev{
  margin:10px 0 2px;padding:10px 12px;max-height:130px;overflow:hidden;
  background:var(--bg2);border:1px dashed var(--line-btn);border-radius:13px
}
.tour-prev *{pointer-events:none!important}
.tour-prev .field{margin:0}
.tour-prev .btn,.tour-prev .addrow{width:100%}
.tour-dots{display:flex;gap:4px;margin-top:12px}
.tour-dots i{width:5px;height:5px;border-radius:50%;background:#dcd8cf}
.tour-dots i.on{background:var(--t1);width:14px;border-radius:99px}
.tour-foot{display:flex;gap:8px;margin-top:12px}
.tour-foot .btn{flex:1}

/* тёплая карточка за закрытый день */
.praise{
  position:absolute;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;
  background:rgba(30,28,24,.35);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
  animation:prfade .3s ease;padding:26px
}
.praise.out{opacity:0;transition:opacity .3s ease}
@keyframes prfade{from{opacity:0}}
.praise-card{
  position:relative;overflow:hidden;width:100%;max-width:330px;text-align:center;
  padding:34px 24px 22px;border-radius:24px;
  background:linear-gradient(165deg,#f7f9f4 0%,#eef2e8 55%,#e7eee4 100%);
  box-shadow:0 24px 60px -20px rgba(40,50,35,.55),inset 0 1px 0 rgba(255,255,255,.85);
  animation:prcard .45s cubic-bezier(.2,.9,.3,1.15)
}
@keyframes prcard{from{transform:translateY(26px) scale(.94);opacity:0}}
.praise-glow{
  position:absolute;top:-70px;left:50%;width:220px;height:150px;transform:translateX(-50%);
  background:radial-gradient(ellipse at center,rgba(139,163,124,.35) 0%,transparent 70%);
  pointer-events:none
}
.praise-card > i{
  position:absolute;top:100%;width:5px;height:5px;border-radius:50%;
  background:#a9bd97;opacity:0;pointer-events:none;
  animation:prdot 3.6s ease-in infinite
}
@keyframes prdot{
  0%{transform:translateY(0);opacity:0}
  12%{opacity:.7}
  85%{opacity:.15}
  100%{transform:translateY(-340px);opacity:0}
}
.praise-card b{display:block;font:800 21px/1.15 var(--ui);letter-spacing:-.02em;color:#3d4a34}
.praise-card p{margin:11px 0 0;font:500 13.5px/1.55 var(--ui);color:#54604b}
.praise-btn{
  margin-top:18px;padding:11px 30px;border-radius:99px;background:#5b6e52;color:#fff;
  font:700 13.5px var(--ui);box-shadow:0 10px 22px -10px rgba(70,90,60,.8)
}

/* демо в обучении: запись собирается на глазах */
.tdemo{
  margin-top:12px;background:var(--bg2);border:1px solid var(--line);border-radius:14px;
  padding:4px 13px 6px
}
.tdemo > div{opacity:0}
.tdemo-row{display:flex;align-items:center;gap:9px;padding:8px 0 6px;border-bottom:1px solid var(--line-soft)}
.tdemo-t{font:600 11px var(--mono);color:var(--t3)}
.tdemo-row b{font:700 13px var(--ui)}
.tdemo-item{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--line-soft)}
.tdemo-item b{font:500 12.5px var(--ui)}
.tdemo-item span{font:600 11px var(--mono);color:var(--t3)}
.tdemo-ok{padding:7px 0 3px;font:600 11.5px var(--ui);color:var(--green)}
.d1{animation:tdrow 7s ease infinite}
.d2{animation:tdrow 7s ease .5s infinite}
.d3{animation:tdrow 7s ease 1s infinite}
.d4{animation:tdrow 7s ease 1.5s infinite}
@keyframes tdrow{
  0%{opacity:0;transform:translateY(5px)}
  6%,78%{opacity:1;transform:none}
  90%,100%{opacity:0;transform:none}
}

/* ============================================================
   АНКЕТА ПЕРВОГО ЗАПУСКА
   ============================================================ */
.onb{flex:1;display:flex;flex-direction:column;min-height:0;overflow-y:auto;padding:0 22px calc(20px + var(--safe-bottom));background:var(--bg)}
.onb-hero{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:12px 6px 28px
}
.onb-mark{
  width:74px;height:74px;border-radius:24px;margin-bottom:26px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(140deg,#5d7a92 0%,#3f5668 100%);color:#fff;
  box-shadow:0 18px 40px -18px rgba(40,60,78,.9)
}
.onb-mark svg{width:36px;height:36px}
.onb-hero h1{
  margin:0;max-width:300px;font:800 26px/1.22 var(--ui);letter-spacing:-.03em;
  text-wrap:balance
}
.onb-hero p{
  margin:14px 0 0;max-width:270px;font:500 13.5px/1.6 var(--ui);color:var(--t2);
  text-wrap:balance
}
.onb-hero .onb-cta{margin-top:32px;max-width:320px}
.onb-hero .onb-skip{max-width:320px}

.onb-head{padding:22px 0 6px}
.onb-dots{display:flex;gap:5px;margin-bottom:18px}
.onb-dots i{height:4px;flex:1;border-radius:99px;background:#e3e0d8}
.onb-dots i.on{background:var(--t1)}
.onb-head h1{margin:0;font:800 23px/1.2 var(--ui);letter-spacing:-.025em;text-wrap:balance}
.onb-head p{margin:7px 0 0;font:500 13px/1.5 var(--ui);color:var(--t3);text-wrap:balance}

/* чипы анкеты: добавки и подготовка */
.onb-chips{display:flex;flex-wrap:wrap;gap:8px}
.onb-chip{
  padding:10px 14px;border-radius:99px;background:var(--surface);
  border:1.5px solid var(--line);font:600 13px var(--ui);color:var(--t2);
  transition:border-color .15s,background .15s
}
.onb-chip.on{border-color:#5d7a92;background:#f2f5f7;color:var(--t1)}
.onb-note{margin-top:12px;font:500 11.5px/1.5 var(--ui);color:var(--t3)}

.onb-cta{
  width:100%;padding:16px;border-radius:16px;text-align:center;
  background:var(--t1);color:#fff;font:700 15px var(--ui);letter-spacing:-.01em
}
.onb-cta[disabled]{opacity:.4;pointer-events:none}
.onb-cta:active{transform:scale(.99)}
.onb-skip{width:100%;padding:13px;font:600 12.5px var(--ui);color:var(--t3);text-align:center}
.onb-ft{margin-top:auto;padding-top:18px}

.onb-goals{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:16px}
.onb-goal{
  display:flex;align-items:center;gap:10px;padding:15px 14px;border-radius:15px;
  background:var(--surface);border:1.5px solid var(--line);transition:border-color .15s,background .15s
}
.onb-goal svg{width:21px;height:21px;color:var(--t3)}
.onb-goal b{font:700 13.5px var(--ui)}
.onb-goal.on{border-color:#5d7a92;background:#f2f5f7}
.onb-goal.on svg{color:#4a6070}

.onb-q{margin-top:18px}
.onb-q label{display:block;font:600 13px var(--ui);margin-bottom:8px}
.onb-time{max-width:160px}

.onb-plan{margin-top:16px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:4px 15px}
.onb-row{
  display:flex;align-items:center;gap:11px;padding:12px 0;border-bottom:1px solid var(--line-soft);
  animation:chipin .5s cubic-bezier(.25,.9,.35,1.15) backwards
}
.onb-row:last-child{border-bottom:0}
.onb-time2{flex:none;width:42px;font:600 11.5px var(--mono);color:var(--t3)}
.onb-row i{flex:none;width:8px;height:8px;border-radius:50%}
.onb-body{flex:1;min-width:0}
.onb-body b{display:block;font:700 14px/1.2 var(--ui)}
.onb-body em{display:block;font:500 11.5px/1.3 var(--ui);color:var(--t3);font-style:normal;margin-top:2px}

.onb-first{display:flex;flex-direction:column;align-items:center;text-align:center;margin-top:30px}
.onb-breath{position:relative;width:120px;height:120px;margin-bottom:20px}
.onb-breath i{
  position:absolute;inset:0;border-radius:50%;border:2px solid #a8b79f;opacity:.7;
  animation:breathe-ring 4.75s ease-in-out infinite
}
.onb-breath i:nth-child(2){animation-delay:1.6s}
.onb-breath i:nth-child(3){animation-delay:3.2s}
@keyframes breathe-ring{0%{transform:scale(.55);opacity:.8}70%{opacity:.25}100%{transform:scale(1.15);opacity:0}}
.onb-first b{font:800 19px var(--ui)}
.onb-first > span{margin:8px auto 22px;max-width:270px;font:500 13px/1.5 var(--ui);color:var(--t2)}
.onb-progress{margin:8px 0 14px}
.onb-progress b{font:800 42px/1 var(--ui);letter-spacing:-.03em}
.onb-progress span{display:block;font:600 12px var(--ui);color:var(--t3);margin-top:5px}
.onb-bar{width:78%;height:8px;border-radius:99px;background:#eceae4;overflow:hidden}
.onb-bar i{display:block;height:100%;border-radius:99px;background:var(--green);animation:groww 1s cubic-bezier(.25,.8,.3,1)}
.onb-pct{margin:10px 0 24px;font:600 12.5px var(--ui);color:var(--green)}

.onb-prem{margin-top:14px}
.onb-feat{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid var(--line-soft)}
.onb-feat > b{width:34px;height:34px;flex:none;border-radius:11px;background:var(--surface);border:1px solid var(--line);color:var(--t2);padding:7px}
.onb-feat i{display:block;font:700 13.5px var(--ui);font-style:normal}
.onb-feat span{display:block;font:500 12px/1.4 var(--ui);color:var(--t3);margin-top:2px}
.onb-plans{display:flex;gap:9px;margin-top:16px}
.onb-price{
  position:relative;flex:1;text-align:center;padding:16px 8px 13px;border-radius:15px;
  background:var(--surface);border:1.5px solid var(--line)
}
.onb-price.hit{border-color:#5d7a92}
.onb-price u{
  position:absolute;top:-8px;left:50%;transform:translateX(-50%);text-decoration:none;
  font:700 9px var(--mono);letter-spacing:.05em;text-transform:uppercase;color:#fff;
  background:#5d7a92;border-radius:99px;padding:2px 8px
}
.onb-price b{display:block;font:800 19px var(--ui);letter-spacing:-.02em}
.onb-price span{display:block;font:500 11px/1.35 var(--ui);color:var(--t3);margin-top:3px}
/* старая цена рядом с вводной */
.onb-price s,.pricebox s{font-weight:600;font-size:14px;color:var(--t3);margin-right:3px}
.pricebox s{font-size:13px}

/* ---- демо №1: список дня отмечается сам (цикл 9.5s) ---- */
.odemo{
  margin-top:16px;background:var(--surface);border:1px solid var(--line);
  border-radius:18px;padding:14px 15px 6px;position:relative
}
.od-top{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.od-top b{font:700 13.5px var(--ui)}
.od-bar{flex:1;height:6px;border-radius:99px;background:#eceae4;overflow:hidden}
.od-bar i{display:block;height:100%;border-radius:99px;background:var(--green);animation:odbar 9.5s linear infinite}
@keyframes odbar{
  0%,20%{width:0}24%{width:25%}34%{width:25%}38%{width:50%}
  48%{width:50%}52%{width:75%}58%{width:75%}62%,90%{width:100%}94%,100%{width:0}
}
.od-row{
  display:flex;align-items:center;gap:10px;width:100%;padding:10px 0;
  border-bottom:1px solid var(--line-soft);text-align:left
}
.od-row:last-of-type{border-bottom:0}
.od-time{flex:none;width:40px;font:600 11px var(--mono);color:var(--t3)}
.od-dot{flex:none;width:8px;height:8px;border-radius:50%}
.od-body{flex:1;min-width:0}
.od-body b{position:relative;display:inline-block;font:700 13.5px/1.2 var(--ui)}
.od-body em{display:block;font:500 11px/1.3 var(--ui);color:var(--t3);font-style:normal;margin-top:2px}
.od-strike{
  position:absolute;left:-2px;right:auto;top:52%;height:1.5px;width:0;
  background:#8a867e;border-radius:2px
}
.od-chk{
  flex:none;width:26px;height:26px;border-radius:9px;border:1.5px solid #d9d5cc;background:#fff;
  display:flex;align-items:center;justify-content:center;font:700 13px var(--ui);color:transparent
}
.odemo .od-r1{animation:odin 9.5s ease infinite}
.odemo .od-r2{animation:odin2 9.5s ease infinite}
.odemo .od-r3{animation:odin3 9.5s ease infinite}
.odemo .od-r4{animation:odin4 9.5s ease infinite}
@keyframes odin{0%,2%{opacity:0;transform:translateY(6px)}5%,90%{opacity:1;transform:none}95%,100%{opacity:0}}
@keyframes odin2{0%,4%{opacity:0;transform:translateY(6px)}7%,90%{opacity:1;transform:none}95%,100%{opacity:0}}
@keyframes odin3{0%,6%{opacity:0;transform:translateY(6px)}9%,90%{opacity:1;transform:none}95%,100%{opacity:0}}
@keyframes odin4{0%,8%{opacity:0;transform:translateY(6px)}11%,90%{opacity:1;transform:none}95%,100%{opacity:0}}
.odemo .od-r1 .od-chk{animation:odc 9.5s ease infinite;animation-delay:0s}
.odemo .od-r2 .od-chk{animation:odc2 9.5s ease infinite}
.odemo .od-r3 .od-chk{animation:odc3 9.5s ease infinite}
.odemo .od-r4 .od-chk{animation:odc4 9.5s ease infinite}
@keyframes odc{0%,20%{background:#fff;color:transparent;border-color:#d9d5cc;transform:scale(1)}
  22%{transform:scale(1.25)}24%,92%{background:var(--green);border-color:var(--green);color:#fff;transform:scale(1)}
  96%,100%{background:#fff;color:transparent;border-color:#d9d5cc}}
@keyframes odc2{0%,34%{background:#fff;color:transparent;border-color:#d9d5cc;transform:scale(1)}
  36%{transform:scale(1.25)}38%,92%{background:var(--green);border-color:var(--green);color:#fff;transform:scale(1)}
  96%,100%{background:#fff;color:transparent;border-color:#d9d5cc}}
@keyframes odc3{0%,48%{background:#fff;color:transparent;border-color:#d9d5cc;transform:scale(1)}
  50%{transform:scale(1.25)}52%,92%{background:var(--green);border-color:var(--green);color:#fff;transform:scale(1)}
  96%,100%{background:#fff;color:transparent;border-color:#d9d5cc}}
@keyframes odc4{0%,58%{background:#fff;color:transparent;border-color:#d9d5cc;transform:scale(1)}
  60%{transform:scale(1.25)}62%,92%{background:var(--green);border-color:var(--green);color:#fff;transform:scale(1)}
  96%,100%{background:#fff;color:transparent;border-color:#d9d5cc}}
.odemo .od-r1 .od-strike{animation:ods 9.5s ease infinite}
.odemo .od-r2 .od-strike{animation:ods2 9.5s ease infinite}
.odemo .od-r3 .od-strike{animation:ods3 9.5s ease infinite}
.odemo .od-r4 .od-strike{animation:ods4 9.5s ease infinite}
@keyframes ods{0%,22%{width:0}26%,92%{width:104%}96%,100%{width:0}}
@keyframes ods2{0%,36%{width:0}40%,92%{width:104%}96%,100%{width:0}}
@keyframes ods3{0%,50%{width:0}54%,92%{width:104%}96%,100%{width:0}}
@keyframes ods4{0%,60%{width:0}64%,92%{width:104%}96%,100%{width:0}}
.od-badge{
  position:absolute;left:50%;bottom:-13px;transform:translateX(-50%);
  background:var(--green);color:#fff;border-radius:99px;padding:7px 16px;
  font:700 12px var(--ui);box-shadow:0 8px 18px -8px rgba(70,90,60,.7);
  animation:odbadge 9.5s cubic-bezier(.3,1.6,.4,1) infinite;opacity:0
}
@keyframes odbadge{0%,64%{opacity:0;transform:translateX(-50%) scale(.6)}
  68%,88%{opacity:1;transform:translateX(-50%) scale(1)}93%,100%{opacity:0}}

/* интерактивная строка первого пункта */
.od-row.live{
  background:var(--surface);border:1px solid var(--line);border-radius:15px;
  padding:13px 14px;width:100%;box-shadow:0 10px 24px -16px rgba(0,0,0,.25)
}
.od-chk.tap{border-color:#9fae94;animation:tappulse 1.8s ease infinite}
@keyframes tappulse{0%,100%{box-shadow:0 0 0 0 rgba(139,163,124,.5)}55%{box-shadow:0 0 0 9px rgba(139,163,124,0)}}
.onb-hint2{
  display:block;margin:16px auto 6px;max-width:260px;
  font:500 12.5px/1.55 var(--ui);color:var(--t3);text-align:center;text-wrap:balance
}

/* ---- демо №2: календарь красится волной, курс ложится полосой ---- */
.ocal{margin-top:16px}
.ocal-grid{
  display:grid;grid-template-columns:repeat(7,1fr);gap:5px;
  background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:12px
}
.ocal-grid i{
  aspect-ratio:1;border-radius:9px;display:flex;align-items:center;justify-content:center;
  font:600 10.5px var(--mono);color:var(--t3);background:var(--bg2);font-style:normal
}
.oc-done{animation:ocdone .5s ease both}
.oc-part{animation:ocpart .5s ease both}
.oc-miss{animation:ocmiss .5s ease both}
@keyframes ocdone{to{background:#9db28f;color:#fff}}
@keyframes ocpart{to{background:#dcc182;color:#fff}}
@keyframes ocmiss{to{background:#d8b0a4;color:#fff}}
.ocal-course{
  margin-top:12px;background:var(--surface);border:1px solid var(--line);border-radius:16px;
  padding:13px 15px;animation:barrise .6s ease 3s both
}
.occ-h{display:flex;justify-content:space-between;align-items:baseline}
.occ-h b{font:700 14px var(--ui)}
.occ-h span{font:500 11px var(--mono);color:var(--t3)}
.occ-strip{display:flex;gap:3px;margin-top:10px;height:9px}
.occ-strip i{border-radius:99px;transform-origin:left;display:block}
.occ-strip .a{flex:14;background:#8a7a3f;animation:ocseg .8s ease 3.4s both}
.occ-strip .b{flex:7;background:repeating-linear-gradient(135deg,#e5e1d8 0 4px,#f2efe9 4px 8px);animation:ocseg .6s ease 4s both}
.occ-strip .c{flex:9;background:#d9cfae;animation:ocseg .8s ease 4.4s both}
@keyframes ocseg{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.occ-meta{display:flex;justify-content:space-between;margin-top:7px;font:500 10px var(--mono);color:var(--t3)}
.ocal-cap{
  margin-top:14px;text-align:center;font:500 12.5px/1.5 var(--ui);color:var(--t2);
  animation:chipin .6s ease 4.9s both;padding:0 10px
}

/* пустой день: сообщение и кнопки одним центрированным блоком */
.dayempty{padding:44px 22px 20px;text-align:center}
.dayempty p{margin:0 auto 20px;max-width:300px;font:500 13px/1.55 var(--ui);color:var(--t3)}
.dayempty .addpair{max-width:340px;margin:0 auto}

/* контекстное предложение */
.promobar{
  display:flex;gap:10px;margin:14px 20px 0;padding:13px 14px;border-radius:16px;
  background:linear-gradient(160deg,#f1f4f6 0%,#e9eef1 100%);border:1px solid #dde4e8;
  animation:barrise .45s cubic-bezier(.25,.9,.35,1.1)
}
.list .promobar{margin:0 0 2px}
.promo-body{flex:1;min-width:0}
.promo-body b{display:block;font:700 13.5px var(--ui);color:#3d4f5e}
.promo-body span{display:block;font:500 12px/1.45 var(--ui);color:#5b6b77;margin-top:3px}
.promo-go{display:inline-block;margin-top:8px;font:700 12.5px var(--ui);color:#3d5468}
.promo-x{flex:none;width:26px;height:26px;border-radius:50%;color:#8b98a2;font:600 15px/1 var(--ui)}

/* цены */
.planrow{display:flex;gap:9px}
.planrow .pricebox{flex:1;text-align:center;position:relative}
.pricebox.hit{border-color:#5d7a92}
.pricebox u{
  position:absolute;top:-8px;left:50%;transform:translateX(-50%);text-decoration:none;
  font:700 9px var(--mono);letter-spacing:.05em;text-transform:uppercase;color:#fff;
  background:#5d7a92;border-radius:99px;padding:2px 8px
}

/* центральная кнопка в панели */
.tab-ai{
  flex:none;width:54px;height:54px;margin:-18px 4px 0;border-radius:99px;
  background:linear-gradient(140deg,#5d7a92 0%,#3f5668 100%);color:#fff;
  display:flex;align-items:center;justify-content:center;align-self:flex-start;
  box-shadow:0 12px 24px -12px rgba(40,60,78,.9);border:3px solid var(--surface)
}
.tab-ai svg{width:24px;height:24px}
.tab-ai:active{transform:scale(.94)}
.tab-ai.on{box-shadow:0 0 0 3px #dfe6ec,0 12px 24px -12px rgba(40,60,78,.9)}

/* ============================================================
   ШТОРКИ
   ============================================================ */
#overlay{position:absolute;inset:0;pointer-events:none;z-index:30}
.scrim{position:absolute;inset:0;background:var(--scrim);opacity:0;transition:opacity .2s ease;pointer-events:auto}
.scrim.in{opacity:1}
.sheet{
  position:absolute;left:0;right:0;bottom:0;max-height:93%;
  background:var(--surface);border-radius:24px 24px 0 0;
  box-shadow:0 -10px 40px -12px rgba(0,0,0,.35);
  display:flex;flex-direction:column;pointer-events:auto;
  transform:translateY(100%);transition:transform .25s cubic-bezier(.2,.8,.3,1)
}
.sheet.in{transform:translateY(0)}
.handle{width:38px;height:4px;border-radius:99px;background:#dcd8cf;margin:9px auto 4px;flex:none}
.sheet-h{padding:6px 20px 12px;border-bottom:1px solid var(--line);flex:none;display:flex;align-items:flex-start;gap:10px}
.sheet-h h2{margin:0;font:700 19px/1.15 var(--ui);letter-spacing:-.02em;flex:1;text-transform:lowercase}
.sheet-h h2.plain{text-transform:none}
.sheet-h .sub{display:block;font:500 11.5px var(--mono);color:var(--t3);margin-top:4px;text-transform:none}
.sheet-body{overflow-y:auto;padding:14px 20px 6px;flex:1;overscroll-behavior:contain}
.sheet-foot{
  flex:none;display:flex;gap:8px;
  padding:12px 20px calc(14px + var(--safe-bottom));
  border-top:1px solid var(--line);background:var(--surface)
}

/* шапка шторки дня */
.sheet-hero{padding:4px 20px 14px;border-bottom:1px solid var(--line);flex:none}
.hero-top{display:flex;align-items:baseline;gap:9px}
.hero-date{font:700 24px/1.1 var(--ui);letter-spacing:-.025em}
.hero-year{font:500 11px var(--mono);color:var(--t3)}
.hero-stats{display:flex;align-items:flex-end;gap:20px;margin-top:13px}
.hstat b{display:block;font:700 18px/1 var(--ui);letter-spacing:-.02em}
.hstat span{display:block;font:500 10px var(--ui);color:var(--t3);margin-top:3px}
.hstat-edit{
  margin-left:auto;font:600 11.5px var(--ui);color:var(--t3);
  border:1px solid var(--line);border-radius:9px;padding:6px 10px
}
.hero-track{margin-top:12px;display:block}

/* строки плана */
.plan-row{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid var(--line-soft);align-items:flex-start;width:100%}
.plan-row:last-child{border-bottom:0}
.plan-time{width:44px;flex:none;font:600 12px var(--mono);color:var(--t2);padding-top:2px}
.plan-body{flex:1;min-width:0}
.plan-body b{display:block;font:700 13.5px/1.2 var(--ui)}
.plan-body span{display:block;font:500 12px/1.4 var(--ui);color:var(--t3);margin-top:3px}
.plan-edit{
  flex:none;font:600 11.5px var(--ui);color:var(--t3);border:1px solid var(--line);
  border-radius:8px;padding:5px 9px;background:var(--surface);margin-left:auto
}
.plan-row.done .plan-body b{text-decoration:line-through;color:var(--t3)}
.sect{
  font:600 10.5px var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--t3);
  margin:16px 0 6px;display:flex;align-items:center;gap:8px
}
.sect .plan-edit{margin-left:auto}
.sect-note{margin-left:auto;font:500 10.5px var(--mono);color:var(--t4);text-transform:none;letter-spacing:0}

.menurow{
  display:block;width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:14px;margin-bottom:9px;
  background:var(--surface)
}
.menurow b{display:block;font:700 13.5px var(--ui)}
.menurow span{display:block;font:500 11.5px var(--ui);color:var(--t3);margin-top:3px}
.menurow.warn-row{border-color:#e6d2cd;background:#fdf5f3}
.menurow.warn-row b{color:#a33b2a}

/* формы */
.field{margin-bottom:13px}
.field > label{
  display:block;font:600 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;
  color:var(--t3);margin-bottom:6px
}
.input{
  width:100%;padding:11px 12px;border:1px solid var(--line-btn);border-radius:12px;background:var(--surface);
  font:500 14px var(--ui);color:var(--t1);outline:none
}
.input:focus{border-color:var(--t2)}
input.input[type=time],input.input[type=date],input.input[type=number]{font-family:var(--mono);font-weight:500}
.row2{display:flex;gap:9px}
.row2 > *{flex:1;min-width:0}
.seg{display:flex;gap:6px;flex-wrap:wrap}
.seg button{
  flex:1;min-width:70px;padding:11px 6px;border-radius:12px;border:1px solid var(--line-btn);
  background:var(--surface);font:600 12px var(--ui);color:var(--t2);text-align:center
}
.seg button.on{background:var(--t1);border-color:var(--t1);color:#fff}
.seg.small button{padding:9px 4px;flex:1 1 0;min-width:0;font-family:var(--mono);font-size:11.5px}
.editrow{display:flex;gap:8px;margin-bottom:8px;align-items:center}
.editrow .input{flex:1}
.editrow .input.amt{flex:0 0 84px}
.rownum{
  width:20px;flex:none;font:600 12px var(--mono);color:var(--t3);text-align:center
}
.delrow{
  width:34px;height:34px;flex:none;border-radius:10px;border:1px solid var(--line);
  color:var(--t3);font-size:15px;display:flex;align-items:center;justify-content:center
}
.addrow{
  width:100%;padding:10px;border:1px dashed #cfcabf;border-radius:12px;
  font:600 12px var(--ui);color:var(--t2);margin-top:2px;text-align:center
}
.phasebox{border:1px solid var(--line);border-radius:14px;padding:11px;margin-bottom:9px}
.phasebox .editrow:last-child{margin-bottom:0}
.stepper{
  display:flex;align-items:center;border:1px solid var(--line-btn);border-radius:12px;overflow:hidden;height:42px
}
.stepper button{flex:none;width:40px;height:100%;font:600 17px var(--ui);color:var(--t2);text-align:center;
  display:flex;align-items:center;justify-content:center}
.stepper b{flex:1;text-align:center;font:700 15px var(--mono)}

.catgrid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.catbtn{
  display:flex;align-items:center;gap:7px;padding:10px 10px;border-radius:12px;border:1px solid;
  font:600 12px var(--ui)
}
.catbtn i{width:8px;height:8px;border-radius:99px;flex:none}

.palette{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.swatch{height:52px;border-radius:14px;border:2px solid transparent}
.swatch.on{border-color:var(--t1);box-shadow:0 0 0 2px #fff inset}

.btn{
  flex:1;padding:13px 12px;border-radius:13px;font:600 13px var(--ui);text-align:center;
  border:1px solid var(--line-btn);background:var(--surface);color:var(--t2)
}
.btn.dark{background:var(--t1);border-color:var(--t1);color:#fff}
.btn.green{background:var(--green);border-color:var(--green);color:#fff}
.btn.danger{color:#a33b2a;border-color:#e6d2cd;background:#fdf5f3;flex:none;padding:13px 15px}
.btn:active{opacity:.85}

/* AI: вложения и план */
.ta{resize:vertical;min-height:110px;line-height:1.45;font-size:13.5px}
.filelist{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.filechip{
  display:inline-flex;align-items:center;gap:6px;font:600 11px var(--ui);
  background:var(--bg2);border:1px solid var(--line);border-radius:9px;padding:6px 8px
}
.filechip button{font:600 13px var(--ui);color:var(--t3);line-height:1}

.oprow{
  display:flex;align-items:flex-start;gap:11px;width:100%;padding:12px 13px;
  border:1px solid var(--line);border-radius:14px;margin-bottom:8px;background:var(--surface)
}
.oprow.on{border-color:#cfd8c8;background:#fbfcfa}
/* видео */
.playbtn{
  flex:none;position:relative;width:34px;height:34px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;color:var(--t2);
  background:var(--surface);border:1px solid var(--line-btn)
}
.playbtn svg{width:19px;height:19px}
.playbtn:active{transform:scale(.94)}
.playbtn u{
  position:absolute;top:-4px;right:-4px;min-width:15px;height:15px;padding:0 3px;
  border-radius:99px;background:var(--t1);color:#fff;text-decoration:none;
  font:700 9px/15px var(--mono);text-align:center
}
.rit-line{display:flex;align-items:center;gap:8px}
.rit-line .rit-row{flex:1;min-width:0;border-bottom:0}
.rit-line{border-bottom:1px solid var(--line-soft)}

.vid-body{padding-bottom:6px}
.vidbox{
  position:relative;width:100%;padding-top:56.25%;border-radius:14px;overflow:hidden;
  background:#15140f;border:1px solid var(--line)
}
.vidbox iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vidplug{
  display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;
  padding:28px 20px;border-radius:14px;background:var(--bg2);border:1px solid var(--line)
}
.vidplug svg{width:34px;height:34px;color:var(--t3)}
.vidplug b{font:700 14px var(--ui)}
.vidplug span{font:500 12px/1.45 var(--ui);color:var(--t3);max-width:280px}
.vidurl{
  margin-top:12px;font:500 10.5px/1.4 var(--mono);color:var(--t4);
  word-break:break-all;text-align:center
}
/* справка и правовые страницы */
.qa{padding:11px 0;border-bottom:1px solid var(--line-soft)}
.qa:last-child{border-bottom:0}
.qa b{display:block;font:700 13.5px/1.35 var(--ui)}
.qa p{margin:5px 0 0;font:500 12.5px/1.5 var(--ui);color:var(--t2)}
.legal{font:500 13px/1.6 var(--ui);color:var(--t1);padding:2px 0 6px}

.confirmrow.calm{background:var(--bg2);border-color:var(--line)}
.confirmrow.calm b{color:var(--t1)}
.confirmrow.calm.on{background:#f2f4ef;border-color:#cfd8c8}

.oprow.danger{border-color:#e6d2cd;background:#fdf5f3}
.oprow.danger.on{border-color:#d7b3a8;background:#fbeae5}
.oprow.off{opacity:.45}
.opbody{flex:1;min-width:0}
.opbody b{display:block;font:600 13px/1.35 var(--ui)}
.opbody em{display:block;font:500 11px var(--ui);color:var(--t3);font-style:normal;margin-top:4px}
.oprow .tick{margin-top:1px}
.confirmrow{
  display:flex;align-items:center;gap:11px;width:100%;padding:12px 13px;margin-top:6px;
  border:1px solid #e6d2cd;background:#fdf5f3;border-radius:14px
}
.confirmrow b{font:600 12.5px var(--ui);color:#a33b2a}
.confirmrow.on{background:#f6efe9}
.btn[disabled]{opacity:.45;pointer-events:none}

/* тост */
.toast{
  position:absolute;left:50%;transform:translateX(-50%) translateY(12px);
  bottom:calc(78px + env(safe-area-inset-bottom));
  background:#1b1a17f2;color:#fff;padding:11px 16px;border-radius:12px;
  font:600 12.5px var(--ui);opacity:0;transition:opacity .2s ease,transform .2s ease;
  pointer-events:none;z-index:40;max-width:80%;text-align:center
}
.toast.in{opacity:1;transform:translateX(-50%) translateY(0)}
