/* =====================================================================
   FitMeat — design system
   رنگ‌ها و مقیاس‌ها از BRAND.md می‌آیند. هیچ رنگ هاردکدی در ویوها نیست.
   ===================================================================== */

:root{
  /* --- مقیاس، شعاع، تایپ (مستقل از تم) --- */
  --r-xs:8px; --r-sm:12px; --r-md:16px; --r-lg:22px; --r-xl:28px; --r-full:999px;
  --sp:16px;
  --tap:48px;
  --tap-lg:56px;
  --font:"Vazirmatn","Vazir","IRANSansX","IRANSans","Noto Sans Arabic","Segoe UI",Tahoma,system-ui,sans-serif;
  --num:"SF Mono",ui-monospace,"Menlo","Roboto Mono",monospace;
  --ease:cubic-bezier(.2,.8,.2,1);

  /* --- تم تیره (پیش‌فرض) --- */
  color-scheme:dark;
  --bg:#0B0F14;
  --bg-2:#111720;
  --surface:#161D27;
  --surface-2:#1E2733;
  --surface-3:#27323F;
  --line:#2C3846;
  --line-soft:#212B36;
  --txt:#EAF0F7;
  --txt-2:#A5B3C4;
  --txt-3:#71808F;

  --brand:#22C7B0;
  --brand-ink:#04211D;
  --brand-soft:#0E2C2A;
  --brand-line:#1C4B46;

  --ember:#FF8348;
  --ember-ink:#2A1206;
  --ember-soft:#2A1810;
  --ember-line:#4A2C1A;

  --iris:#A78BFA;
  --iris-ink:#150C2E;
  --iris-soft:#1C1734;
  --iris-line:#372C5E;

  --ok:#34D399;
  --danger:#FF6B6B;
  --danger-soft:#2A1315;
  --danger-line:#4A2429;
  --info:#5AB0FF;
  --info-soft:#0F1E2C;
  --info-line:#20364A;

  --shadow:0 12px 34px rgba(0,0,0,.5);
  --shadow-sm:0 2px 10px rgba(0,0,0,.35);
  --scrim:rgba(3,6,10,.66);
  --veil:rgba(255,255,255,.04);
}

:root[data-theme="light"]{
  color-scheme:light;
  --bg:#F5F7FA;
  --bg-2:#FFFFFF;
  --surface:#FFFFFF;
  --surface-2:#EEF1F5;
  --surface-3:#E4E9F0;
  --line:#D6DDE6;
  --line-soft:#E6EBF1;
  --txt:#0D141C;
  --txt-2:#4B5866;
  --txt-3:#6C7987;

  --brand:#0E7C6E;
  --brand-ink:#FFFFFF;
  --brand-soft:#DFF4F0;
  --brand-line:#A9DED6;

  --ember:#C2410C;
  --ember-ink:#FFFFFF;
  --ember-soft:#FDE9DD;
  --ember-line:#F1BE9C;

  --iris:#6D4AE0;
  --iris-ink:#FFFFFF;
  --iris-soft:#EDE7FE;
  --iris-line:#C9BAF7;

  --ok:#0F8A5F;
  --danger:#C7362F;
  --danger-soft:#FDE7E5;
  --danger-line:#F0B7B3;
  --info:#1B69C7;
  --info-soft:#E4EFFC;
  --info-line:#B6D3F4;

  --shadow:0 12px 34px rgba(16,28,44,.14);
  --shadow-sm:0 2px 10px rgba(16,28,44,.08);
  --scrim:rgba(15,23,32,.42);
  --veil:rgba(13,20,28,.03);
}

/* تم خودکار: وقتی کاربر «خودکار» را انتخاب کرده، data-theme ست نمی‌شود */
@media (prefers-color-scheme:light){
  :root:not([data-theme="dark"]){
    color-scheme:light;
    --bg:#F5F7FA; --bg-2:#FFFFFF; --surface:#FFFFFF; --surface-2:#EEF1F5; --surface-3:#E4E9F0;
    --line:#D6DDE6; --line-soft:#E6EBF1; --txt:#0D141C; --txt-2:#4B5866; --txt-3:#6C7987;
    --brand:#0E7C6E; --brand-ink:#FFFFFF; --brand-soft:#DFF4F0; --brand-line:#A9DED6;
    --ember:#C2410C; --ember-ink:#FFFFFF; --ember-soft:#FDE9DD; --ember-line:#F1BE9C;
    --iris:#6D4AE0; --iris-ink:#FFFFFF; --iris-soft:#EDE7FE; --iris-line:#C9BAF7;
    --ok:#0F8A5F; --danger:#C7362F; --danger-soft:#FDE7E5; --danger-line:#F0B7B3;
    --info:#1B69C7; --info-soft:#E4EFFC; --info-line:#B6D3F4;
    --shadow:0 12px 34px rgba(16,28,44,.14); --shadow-sm:0 2px 10px rgba(16,28,44,.08);
    --scrim:rgba(15,23,32,.42); --veil:rgba(13,20,28,.03);
  }
}

/* ===== reset ===== */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--bg); color:var(--txt);
  font-family:var(--font); font-size:15px; line-height:1.7; font-weight:500;
  overscroll-behavior-y:none;
  padding-bottom:env(safe-area-inset-bottom);
  -webkit-tap-highlight-color:transparent;
}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0}
a{color:var(--brand);text-decoration:none}
h1,h2,h3,h4{margin:0;line-height:1.35;font-weight:800}
p{margin:0}
ul{margin:0;padding:0;list-style:none}
img,svg{max-width:100%}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:6px}
::-webkit-scrollbar{height:6px;width:6px}
::-webkit-scrollbar-thumb{background:var(--line);border-radius:9px}

/* ===== layout ===== */
.app{min-height:100dvh;display:flex;flex-direction:column}
.screen{flex:1;padding:0 var(--sp) 104px;max-width:760px;width:100%;margin:0 auto}
.topbar{
  position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:10px;
  padding:calc(env(safe-area-inset-top) + 10px) var(--sp) 10px;
  background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;
  max-width:760px;margin:0 auto;width:100%;
}
.topbar h1{font-size:19px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar .sub{font-size:12px;color:var(--txt-3);font-weight:600}
.iconbtn{
  width:42px;height:42px;border-radius:var(--r-full);display:grid;place-items:center;
  background:var(--surface);border:1px solid var(--line);color:var(--txt-2);font-size:17px;flex:none;
  transition:transform .12s var(--ease),background .12s;
}
.iconbtn:active{transform:scale(.93)}
.iconbtn.on{background:var(--brand);color:var(--brand-ink);border-color:transparent}
.tabbar{
  position:fixed;inset-inline:0;bottom:0;z-index:40;
  display:grid;grid-template-columns:repeat(4,1fr);
  background:color-mix(in srgb,var(--bg-2) 92%,transparent);backdrop-filter:blur(16px);
  border-top:1px solid var(--line-soft);
  padding-bottom:env(safe-area-inset-bottom);
  max-width:760px;margin:0 auto;
}
.tabbar a{
  min-height:var(--tap);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  color:var(--txt-3);font-size:11px;font-weight:700;padding:9px 0;position:relative;
}
.tabbar a .ic{font-size:19px;line-height:1}
.tabbar a.on{color:var(--brand)}
.tabbar a.on::before{
  content:"";position:absolute;top:0;inset-inline:26%;height:2px;border-radius:0 0 3px 3px;background:var(--brand);
}

/* ===== primitives ===== */
.card{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r-md);padding:14px;box-shadow:var(--shadow-sm)}
.card + .card{margin-top:12px}
.card.flat{box-shadow:none;background:var(--bg-2)}
.stack{display:flex;flex-direction:column;gap:12px}
.row{display:flex;align-items:center;gap:10px}
.row.wrap{flex-wrap:wrap}
.spacer{flex:1}
.muted{color:var(--txt-3)}
.small{font-size:12.5px}
.tiny{font-size:11px}
.center{text-align:center}
.num{font-family:var(--num);font-variant-numeric:tabular-nums;letter-spacing:.4px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sec-title{font-size:12px;font-weight:800;color:var(--txt-3);letter-spacing:.3px}

.btn{
  min-height:var(--tap);padding:0 18px;border-radius:var(--r-full);
  background:var(--surface-2);border:1px solid var(--line);color:var(--txt);
  font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  transition:transform .12s var(--ease),filter .12s;
}
.btn:active{transform:scale(.97)}
.btn.primary{background:var(--brand);color:var(--brand-ink);border-color:transparent}
.btn.warm{background:var(--ember);color:var(--ember-ink);border-color:transparent}
.btn.ghost{background:transparent}
.btn.danger{color:var(--danger);border-color:var(--danger-line);background:var(--danger-soft)}
.btn.block{width:100%}
.btn.lg{min-height:var(--tap-lg);font-size:16px}
.btn.sm{min-height:38px;padding:0 14px;font-size:13px}
.btn[disabled]{opacity:.38;pointer-events:none}

.chip{
  display:inline-flex;align-items:center;gap:6px;
  padding:5px 11px;border-radius:var(--r-full);
  background:var(--surface-2);border:1px solid var(--line);
  font-size:12px;font-weight:700;color:var(--txt-2);white-space:nowrap;
}
.chip.on{background:var(--brand);color:var(--brand-ink);border-color:transparent}
.chip.accent{color:var(--brand);border-color:var(--brand-line);background:var(--brand-soft)}
.chip.warm{color:var(--ember);border-color:var(--ember-line);background:var(--ember-soft)}
.chip.info{color:var(--info);border-color:var(--info-line);background:var(--info-soft)}
.chip.iris{color:var(--iris);border-color:var(--iris-line);background:var(--iris-soft)}
.chip.bad{color:var(--danger);border-color:var(--danger-line);background:var(--danger-soft)}
.scroller{display:flex;gap:8px;overflow-x:auto;padding:2px 0 6px;scrollbar-width:none}
.scroller::-webkit-scrollbar{display:none}

/* سگمنت‌کنترل — جایگزین چیپ‌های حالت‌دار برای انتخاب یکی از چند حالت */
.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-full);padding:3px;gap:2px}
.seg button{
  min-height:34px;padding:0 14px;border-radius:var(--r-full);font-size:12.5px;font-weight:700;color:var(--txt-3);
}
.seg button.on{background:var(--brand);color:var(--brand-ink)}
.seg.block{display:flex;width:100%}
.seg.block button{flex:1}

.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:12px;color:var(--txt-3);font-weight:700}
.input,select.input,textarea.input{
  width:100%;min-height:var(--tap);padding:10px 12px;
  background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-sm);
}
textarea.input{min-height:220px;font-family:var(--num);font-size:12.5px;line-height:1.6;direction:ltr;text-align:left}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.grid2>*,.grid3>*,.metrics>*{min-width:0}
.switch{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:var(--tap)}
.switch input{width:20px;height:20px;accent-color:var(--brand);flex:none}
.switch .lbl{display:flex;flex-direction:column;gap:1px;min-width:0}
.switch .lbl b{font-weight:700}
.switch .lbl span{font-size:11.5px;color:var(--txt-3);font-weight:500;line-height:1.5}

.empty{padding:48px 16px;text-align:center;color:var(--txt-3)}
.empty .big{font-size:44px;margin-bottom:8px}

.dropzone{
  border:2px dashed var(--line);border-radius:var(--r-md);padding:26px 16px;text-align:center;color:var(--txt-3);
  transition:border-color .15s,background .15s;
}
.dropzone.hot{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}

.err-list{border:1px solid var(--danger-line);background:var(--danger-soft);border-radius:var(--r-sm);padding:10px 12px;color:var(--danger);font-size:12.5px}
.err-list li{margin:3px 0}
.err-list code{font-family:var(--num);direction:ltr;display:inline-block;font-weight:700}

/* ===== hero / metrics ===== */
.hero{
  background:linear-gradient(155deg,var(--surface-2),var(--surface));
  border:1px solid var(--line-soft);border-radius:var(--r-lg);padding:16px;box-shadow:var(--shadow-sm);
}
.hero h2{font-size:20px}
.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.metric{background:var(--bg-2);border:1px solid var(--line-soft);border-radius:var(--r-sm);padding:9px 6px;text-align:center}
.metric .v{font-size:18px;font-weight:800;font-family:var(--num)}
.metric .k{font-size:11px;color:var(--txt-3);font-weight:600}

/* ===== plan tables ===== */
.block{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow-sm)}
.block + .block{margin-top:12px}
.block-head{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  padding:11px 14px;background:var(--surface-2);border-bottom:1px solid var(--line-soft);
}
.block-head .tag{
  font-size:11px;font-weight:800;padding:3px 9px;border-radius:var(--r-full);
  background:var(--brand);color:var(--brand-ink);
}
.block-head .tag.circuit{background:var(--ember);color:var(--ember-ink)}
.block-head .tag.single{background:var(--surface);color:var(--txt-3);border:1px solid var(--line)}
.block-head .meta{font-size:11.5px;color:var(--txt-3);font-weight:700}

.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table.plan{width:100%;border-collapse:collapse;font-size:12.5px}
table.plan th{
  text-align:start;font-size:10.5px;color:var(--txt-3);font-weight:800;letter-spacing:.2px;
  padding:8px 7px;background:var(--surface-2);border-bottom:1px solid var(--line-soft);white-space:nowrap;
}
table.plan td{padding:9px 7px;border-bottom:1px solid var(--line-soft);vertical-align:middle}
table.plan tbody tr:last-child td{border-bottom:0}
table.plan tbody tr.alt td{background:var(--veil)}
table.plan td.ex,table.plan th.ex{position:sticky;inset-inline-start:0;z-index:1;min-width:118px;max-width:190px}
table.plan td.ex{background:var(--surface)}
table.plan tbody tr.alt td.ex{background:color-mix(in srgb,var(--surface) 92%,var(--txt) 8%)}
table.plan th.ex{background:var(--surface-2)}
table.plan td.n{white-space:nowrap;font-family:var(--num);font-variant-numeric:tabular-nums;font-weight:700}
table.plan td.sub-row td{padding-top:0}
.ex-name{font-weight:700;display:flex;align-items:center;gap:7px;text-align:start;width:100%}
.ex-name>span:last-child{min-width:0}
.ex-mark{
  font-size:10px;font-weight:800;min-width:24px;height:21px;padding:0 4px;border-radius:7px;display:grid;place-items:center;
  background:var(--surface-2);color:var(--txt-3);border:1px solid var(--line);flex:none;font-family:var(--num);
}
.ex-mark.grouped{background:var(--brand-soft);color:var(--brand);border-color:var(--brand-line)}
.ex-mark.circuit{background:var(--ember-soft);color:var(--ember);border-color:var(--ember-line)}
.ex-sub{font-size:11.5px;color:var(--txt-3);margin-top:2px}
.dose{font-family:var(--num);font-weight:700;white-space:nowrap}
.delta{font-size:11px;font-weight:800;color:var(--brand);margin-inline-start:5px;white-space:nowrap}
.delta.down{color:var(--info)}

/* ریل کنار حرکات یک سوپرست: نشان می‌دهد کدام ردیف‌ها با هم اجرا می‌شوند */
td.rail{width:14px;padding:0 0 0 2px}
td.rail i{display:block;width:4px;height:100%;min-height:34px;border-radius:var(--r-full);background:var(--line)}
tr.g-start td.rail i{border-radius:var(--r-full) var(--r-full) 0 0;margin-top:6px;min-height:28px}
tr.g-end td.rail i{border-radius:0 0 var(--r-full) var(--r-full);margin-bottom:6px;min-height:28px}
tr.g-mid td.rail i{border-radius:0}
tr.g-start td.rail i,tr.g-mid td.rail i,tr.g-end td.rail i{background:var(--brand)}
tr.c-start td.rail i,tr.c-mid td.rail i,tr.c-end td.rail i{background:var(--ember)}

/* نمای کل هفته */
.weekgrid{overflow-x:auto}
.weekgrid table{border-collapse:separate;border-spacing:8px 0;font-size:12px}
.weekgrid th{font-size:11px;color:var(--txt-3);font-weight:800;padding-bottom:6px;text-align:start;white-space:nowrap}
.weekgrid td{vertical-align:top;min-width:150px}
.daycol{background:var(--bg-2);border:1px solid var(--line-soft);border-radius:var(--r-sm);padding:10px;height:100%}
.daycol li{display:flex;gap:6px;padding:4px 0;border-bottom:1px dashed var(--line-soft);font-size:11.5px}
.daycol li:last-child{border-bottom:0}
.daycol li b{font-family:var(--num);color:var(--txt-3);font-weight:700;flex:none}

/* ===== advice ===== */
.advice{border-radius:var(--r-md);border:1px solid var(--line-soft);overflow:hidden;background:var(--surface);box-shadow:var(--shadow-sm)}
.advice .a-item{padding:12px 14px;display:flex;gap:11px;align-items:flex-start}
.advice .a-item + .a-item{border-top:1px solid var(--line-soft)}
.advice .a-ic{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;font-size:16px;flex:none}
.advice .a-ic.med{background:var(--info-soft);border:1px solid var(--info-line)}
.advice .a-ic.food{background:var(--brand-soft);border:1px solid var(--brand-line)}
.advice .a-ic.rec{background:var(--ember-soft);border:1px solid var(--ember-line)}
.advice h4{font-size:13.5px;font-weight:800}
.advice p{font-size:12.5px;color:var(--txt-2);margin-top:3px;line-height:1.75}
.advice .src{font-size:10.5px;color:var(--txt-3);margin-top:5px}
.disclaim{font-size:11px;color:var(--txt-3);padding:9px 14px;background:var(--bg-2);border-top:1px solid var(--line-soft);line-height:1.7}

/* ===== exercise demo (SVG متحرک) + نقشهٔ عضلات ===== */
.demo{
  position:relative;background:var(--bg-2);border:1px solid var(--line-soft);border-radius:var(--r-md);
  overflow:hidden;display:grid;place-items:center;padding:6px;
}
.demo svg{width:100%;height:auto;display:block}
.demo .demo-tag{
  position:absolute;inset-block-start:8px;inset-inline-start:8px;
  font-size:10.5px;font-weight:800;color:var(--txt-3);background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r-full);padding:2px 9px;
}
.fig-line{stroke:var(--txt);fill:none;stroke-linecap:round;stroke-linejoin:round}
.fig-head{fill:var(--txt);stroke:none}
.fig-load{stroke:var(--ember);fill:var(--ember)}
.fig-prop{stroke:var(--line);fill:var(--surface-2)}
.fig-ground{stroke:var(--line);stroke-width:2;stroke-linecap:round}
.fig-path{stroke:var(--brand);fill:none;stroke-width:1.5;stroke-dasharray:4 5;opacity:.75}
.fig-ghost{opacity:.2}
.fig-ghost .fig-line,.fig-ghost .fig-head{stroke:var(--txt);fill:var(--txt)}

.bodymap{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.bodymap figure{margin:0;background:var(--bg-2);border:1px solid var(--line-soft);border-radius:var(--r-md);padding:8px 4px 4px;text-align:center}
.bodymap figcaption{font-size:10.5px;color:var(--txt-3);font-weight:700}
.body-base{fill:var(--surface-3);stroke:none}
.body-limb path{stroke:var(--surface-3);stroke-width:11;stroke-linecap:round;fill:none}
.body-m{fill:transparent;stroke:none;transition:fill .2s}
.body-m.p1{fill:var(--brand)}
.body-m.p2{fill:color-mix(in srgb,var(--brand) 52%,var(--surface-3))}
.body-m.p3{fill:color-mix(in srgb,var(--brand) 22%,var(--surface-3))}
.mlist{display:flex;flex-direction:column;gap:7px}
.mrow{display:flex;align-items:center;gap:9px;font-size:12.5px}
.mrow .bar{flex:1;height:7px;border-radius:var(--r-full);background:var(--surface-2);overflow:hidden;min-width:40px}
.mrow .bar i{display:block;height:100%;border-radius:inherit;background:var(--brand)}
.mrow.s2 .bar i{background:color-mix(in srgb,var(--brand) 45%,var(--surface-2))}
.mrow.s3 .bar i{background:var(--txt-3)}
.mrow .pc{font-family:var(--num);font-size:11.5px;color:var(--txt-3);font-weight:700;flex:none;min-width:34px;text-align:end}

.steps-list{counter-reset:s}
.steps-list li{
  counter-increment:s;display:flex;gap:10px;padding:7px 0;font-size:13px;line-height:1.75;
  border-bottom:1px solid var(--line-soft);
}
.steps-list li:last-child{border-bottom:0}
.steps-list li::before{
  content:counter(s);flex:none;width:22px;height:22px;border-radius:var(--r-full);
  background:var(--brand-soft);color:var(--brand);border:1px solid var(--brand-line);
  font-family:var(--num);font-size:11px;font-weight:800;display:grid;place-items:center;margin-top:4px;
}
.dont li{display:flex;gap:9px;padding:6px 0;font-size:12.5px;color:var(--txt-2);line-height:1.7}
.dont li::before{content:"✕";color:var(--danger);font-weight:800;flex:none}
.sourcebox{font-size:11px;color:var(--txt-3);background:var(--bg-2);border:1px solid var(--line-soft);border-radius:var(--r-sm);padding:8px 11px;line-height:1.8}
.sourcebox b{color:var(--txt-2);font-weight:700}

/* ===== gym mode ===== */
.gym{position:fixed;inset:0;z-index:60;background:var(--bg);display:flex;flex-direction:column;overflow:hidden}
.gym-top{display:flex;align-items:center;gap:9px;padding:calc(env(safe-area-inset-top) + 10px) 14px 6px}
.progress{height:6px;border-radius:var(--r-full);background:var(--surface-2);overflow:hidden;flex:1}
.progress i{display:block;height:100%;background:var(--brand);border-radius:inherit;transition:width .35s var(--ease)}
.gym-body{flex:1;overflow-y:auto;padding:6px 16px 20px;display:flex;flex-direction:column;gap:13px}
.gym-foot{
  padding:10px 16px calc(env(safe-area-inset-bottom) + 14px);
  border-top:1px solid var(--line);background:var(--bg-2);display:flex;gap:10px;
}

/* نوار زمان: شروع — گذشته — پایان تخمینی */
.timeline{
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;
  background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r-md);padding:8px 12px;
}
.timeline .t-cell{text-align:center;min-width:0}
.timeline .t-cell .v{font-family:var(--num);font-size:15px;font-weight:800;line-height:1.3}
.timeline .t-cell .k{font-size:10px;color:var(--txt-3);font-weight:700}
.timeline .t-mid .v{font-size:20px;color:var(--brand)}
.timeline .t-bar{grid-column:1/-1;height:4px;border-radius:var(--r-full);background:var(--surface-2);overflow:hidden}
.timeline .t-bar i{display:block;height:100%;background:var(--brand);border-radius:inherit}
.timeline.over .t-mid .v{color:var(--ember)}
.timeline.over .t-bar i{background:var(--ember)}

.step-title{font-size:26px;font-weight:900;line-height:1.3}
.step-ctx{font-size:12.5px;color:var(--txt-3);font-weight:700}
.target{
  background:linear-gradient(155deg,var(--surface-2),var(--surface));border:1px solid var(--line);
  border-radius:var(--r-lg);padding:16px;text-align:center;
}
.target .big{font-size:40px;font-weight:900;font-family:var(--num);line-height:1.15}
.target .lbl{font-size:12px;color:var(--txt-3);font-weight:800}
.stepper{display:flex;align-items:center;gap:8px}
.stepper button{
  width:44px;height:46px;border-radius:var(--r-full);background:var(--surface-2);
  border:1px solid var(--line);font-size:20px;font-weight:800;flex:none;
}
.stepper input{
  flex:1;min-width:0;text-align:center;font-family:var(--num);font-size:22px;font-weight:800;
  background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-sm);min-height:46px;
}
.rest{position:relative;display:grid;place-items:center;width:196px;height:196px;margin:0 auto}
.rest svg{position:absolute;inset:0;transform:rotate(-90deg)}
.rest .t{font-size:44px;font-weight:900;font-family:var(--num)}
.rest .l{font-size:12px;color:var(--txt-3);font-weight:700}
.tempo-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.tempo-strip div{
  background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);
  padding:7px 4px;text-align:center;font-size:11px;color:var(--txt-3);font-weight:700;
}
.tempo-strip div .n{display:block;font-size:17px;font-family:var(--num);color:var(--txt);font-weight:800}
.tempo-strip div.on{background:var(--brand);border-color:transparent}
.tempo-strip div.on,.tempo-strip div.on .n{color:var(--brand-ink)}
.micro{display:flex;flex-direction:column;gap:8px}
.micro button{
  display:flex;align-items:center;gap:10px;text-align:start;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);
  padding:10px 12px;min-height:var(--tap);
}
.micro button.done{opacity:.45;text-decoration:line-through}
.micro .bx{width:22px;height:22px;border-radius:7px;border:2px solid var(--line);display:grid;place-items:center;flex:none;font-size:13px}
.micro button.done .bx{background:var(--brand);border-color:transparent;color:var(--brand-ink)}
.hint{font-size:12.5px;color:var(--txt-2);background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r-sm);padding:9px 12px;line-height:1.75}
.hint b{color:var(--brand)}
.hint.warn{background:var(--ember-soft);border-color:var(--ember-line)}
.hint.warn b{color:var(--ember)}

/* کنسول سوپرست: همهٔ حرکات یک دور روی یک صفحه */
.ss{display:flex;flex-direction:column;gap:8px}
.ss-item{
  background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r-md);
  overflow:hidden;transition:border-color .15s;
}
.ss-item.on{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}
.ss-item.done{opacity:.62}
.ss-head{display:flex;align-items:center;gap:9px;padding:10px 12px;width:100%;text-align:start}
.ss-head .mk{
  font-family:var(--num);font-size:11px;font-weight:800;min-width:26px;height:24px;padding:0 5px;border-radius:8px;
  display:grid;place-items:center;background:var(--surface-2);color:var(--txt-3);border:1px solid var(--line);flex:none;
}
.ss-item.on .ss-head .mk{background:var(--brand);color:var(--brand-ink);border-color:transparent}
.ss-item.done .ss-head .mk{background:var(--ok);color:var(--brand-ink);border-color:transparent}
.ss-head .nm{flex:1;min-width:0;font-weight:700;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ss-head .tg{font-family:var(--num);font-size:13px;font-weight:800;color:var(--txt-2);flex:none}
.ss-body{padding:0 12px 12px;display:flex;flex-direction:column;gap:10px}
.ss-arrow{text-align:center;color:var(--txt-3);font-size:11px;font-weight:700;margin:-4px 0}

/* ورزشکارها (تمرین دونفره) */
.turn{
  display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--r-lg);
  border:1px solid var(--line);background:var(--surface);
}
.turn.a{background:var(--brand-soft);border-color:var(--brand-line)}
.turn.b{background:var(--iris-soft);border-color:var(--iris-line)}
.turn .who{flex:1;min-width:0}
.turn .who .k{font-size:11px;font-weight:800;color:var(--txt-3)}
.turn .who .v{font-size:20px;font-weight:900;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.turn.a .who .v{color:var(--brand)}
.turn.b .who .v{color:var(--iris)}
.avatar{
  width:46px;height:46px;border-radius:var(--r-full);display:grid;place-items:center;flex:none;
  font-size:19px;font-weight:900;border:2px solid transparent;
}
.avatar.a{background:var(--brand);color:var(--brand-ink)}
.avatar.b{background:var(--iris);color:var(--iris-ink)}
.avatar.sm{width:28px;height:28px;font-size:12px}
.avatar.idle{background:var(--surface-2);color:var(--txt-3);border-color:var(--line)}
.readybar{display:flex;flex-direction:column;gap:5px;flex:none;min-width:96px}
.readybar .k{font-size:10.5px;font-weight:700;color:var(--txt-3);display:flex;justify-content:space-between;gap:6px}
.readybar .bar{height:6px;border-radius:var(--r-full);background:var(--surface-2);overflow:hidden}
.readybar .bar i{display:block;height:100%;border-radius:inherit;background:var(--ok);transition:width .5s linear}
.readybar.cold .bar i{background:var(--ember)}
.queue{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.queue .q{
  display:flex;align-items:center;gap:7px;padding:5px 10px 5px 5px;border-radius:var(--r-full);
  background:var(--surface);border:1px solid var(--line-soft);font-size:12px;font-weight:700;
}
.queue .q .t{font-family:var(--num);color:var(--txt-3);font-size:11.5px}

/* نقشهٔ کل برنامه در حین تمرین */
.map{position:fixed;inset:0;z-index:80;background:var(--scrim);display:flex;flex-direction:column;justify-content:flex-end}
.map-panel{
  background:var(--bg);border-radius:var(--r-xl) var(--r-xl) 0 0;border-top:1px solid var(--line);
  max-height:92dvh;display:flex;flex-direction:column;animation:up .24s var(--ease);
  max-width:760px;width:100%;margin:0 auto;
}
.map-head{display:flex;align-items:center;gap:10px;padding:14px 16px 10px;border-bottom:1px solid var(--line-soft)}
.map-body{overflow-y:auto;padding:12px 16px calc(env(safe-area-inset-bottom) + 20px);display:flex;flex-direction:column;gap:10px}
.mblock{border:1px solid var(--line-soft);border-radius:var(--r-md);overflow:hidden;background:var(--surface)}
.mblock-h{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--surface-2);font-size:11.5px;font-weight:800;color:var(--txt-3)}
.mrowx{display:flex;align-items:center;gap:9px;padding:9px 12px;width:100%;text-align:start;border-top:1px solid var(--line-soft)}
.mrowx:first-of-type{border-top:0}
.mrowx .mk{
  font-family:var(--num);font-size:10px;font-weight:800;min-width:24px;height:21px;border-radius:7px;display:grid;place-items:center;
  background:var(--surface-2);color:var(--txt-3);border:1px solid var(--line);flex:none;
}
.mrowx .nm{flex:1;min-width:0;font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mrowx .dz{font-family:var(--num);font-size:12px;color:var(--txt-3);font-weight:700;flex:none}
.mrowx.now{background:var(--brand-soft)}
.mrowx.now .mk{background:var(--brand);color:var(--brand-ink);border-color:transparent}
.mrowx.past .nm{color:var(--txt-3);text-decoration:line-through}
.pips{display:flex;gap:3px;flex:none}
.pips i{width:7px;height:7px;border-radius:2px;background:var(--surface-3);display:block}
.pips i.d{background:var(--ok)}
.pips i.c{background:var(--brand)}

/* ===== sheet / toast ===== */
.sheet-back{position:fixed;inset:0;z-index:70;background:var(--scrim);display:flex;align-items:flex-end;justify-content:center}
.sheet{
  width:100%;max-width:760px;max-height:90dvh;overflow-y:auto;background:var(--bg-2);
  border-radius:var(--r-xl) var(--r-xl) 0 0;border-top:1px solid var(--line);
  padding:8px 16px calc(env(safe-area-inset-bottom) + 20px);animation:up .22s var(--ease);
}
@keyframes up{from{transform:translateY(20px);opacity:.5}to{transform:none;opacity:1}}
.sheet .grab{width:42px;height:4px;border-radius:9px;background:var(--line);margin:6px auto 12px}
.sheet h3{font-size:17px;margin-bottom:12px}
.toast-root{position:fixed;inset-inline:0;bottom:calc(env(safe-area-inset-bottom) + 78px);z-index:90;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}
.toast{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-full);padding:9px 16px;font-size:13px;font-weight:700;box-shadow:var(--shadow)}
.toast.bad{border-color:var(--danger-line);background:var(--danger-soft);color:var(--danger)}
.toast.good{border-color:var(--brand-line);background:var(--brand-soft);color:var(--brand)}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
