
@font-face{font-family:Vazirmatn;src:url(/fonts/Vazirmatn-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Vazirmatn;src:url(/fonts/Vazirmatn-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Vazirmatn;src:url(/fonts/Vazirmatn-SemiBold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Vazirmatn;src:url(/fonts/Vazirmatn-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
/* قلم جایگزین با متریک هم‌اندازه: تا پیش از رسیدن Vazirmatn
   متن با قلم سیستم نشان داده شود ولی وقتی قلم آمد، صفحه نپرد.
   بدون این، swap یعنی یک جهش دیدنی در چیدمان. */
@font-face{font-family:"Vazir-fallback";src:local("Tahoma"),local("Segoe UI"),local("system-ui");size-adjust:96%;ascent-override:92%;descent-override:26%;line-gap-override:0%}
/* ═══════════════════════════════════════════════════════════
   شب و طلا  ·  Night & Gold
   Ink-blue near-black, antique gold, and a cool verdigris.
   Deliberately not the default dashboard blue: this should
   read as calm and considered, and stay easy on the eyes on
   an OLED phone at night.
   ═══════════════════════════════════════════════════════════ */
/* ═══════════════════════════════════════════════════════════
   ۱۰/۱۸ — هم‌خانوادهٔ ویترین: چهار تم، همان نام‌ها و همان رنگ‌ها.
     night   شبِ طلایی  (پیش‌فرض)       ledger  دفترِ کل (روشن، جوهرِ قرمز)
     firuze  فیروزه و زعفران            lajvard لاجورد و طلا
   تم در localStorage «hrf-v-theme» است — همان کلیدِ ویترین — پس
   انتخابِ تم بینِ سایت و اپ یکی است. لایهٔ ۱ (رنگِ خام) در هر تم عوض
   می‌شود؛ لایهٔ ۲ (نقش‌ها) یک بار تعریف شده و از لایهٔ ۱ می‌خواند.
   ═══════════════════════════════════════════════════════════ */
:root{
  /* ── layer 1: raw palette (night) ── */
  --ink-950:#05070B; --ink-900:#080B11; --ink-850:#101622; --ink-800:#151D2B;
  --ink-750:#1A2333; --ink-700:#212B3B; --ink-600:#2E3A4F;
  --line:#1F2938; --line-hi:#2E3A4F;
  --fg:#EEF2F7; --fg-2:#A3B1C4; --fg-3:#6B7B92;

  --gold:#D9A441; --gold-2:#F0C878; --gold-3:#8A6524; --gold-wash:#231B0E;
  --verd:#3FB8A0; --verd-wash:#0C2925;
  --pos:#52B87C;  --pos-wash:#0E2718;
  --neg:#E58067;  --neg-wash:#2B1712;
  --warn:#E6B665; --warn-wash:#2B2214;
  --stamp:#E58067;

  --accent-rgb:217,164,65;
  --verd-rgb:63,184,160;
  --neg-rgb:229,128,103;
  --warn-rgb:230,182,101;
  --blue-rgb:82,120,200;
  --shadow-rgb:0,0,0;

  --on-accent:#1A1306;
  --select-bg:var(--gold-3); --select-fg:#FFFFFF;
  --fill-subtle:rgba(255,255,255,.025);
  --shadow-drop:0 40px 90px -34px rgba(var(--shadow-rgb),.9);
  --shadow-drop-strong:0 40px 90px -30px rgba(var(--shadow-rgb),1);
  --shadow-nav:0 -6px 20px -12px rgba(var(--shadow-rgb),.4);
  --veil:rgba(5,7,9,.80); --aside:rgba(8,11,17,.66); --aside-m:rgba(12,16,23,.95);
  --stripe:rgba(255,255,255,.03);
  --ring:0 0 0 1px rgba(255,255,255,.04), inset 0 1px 0 rgba(255,255,255,.04);
  --rule:rgba(var(--accent-rgb),.10); --glow:rgba(var(--accent-rgb),.15);

  --k-reminder:#E3B457; --k-task:#45C2A6; --k-check:#6FA8DC;
  --k-installment:#E0A05C; --k-debt:#E27D62; --k-schedule:#A79BD9;
  --k-habit:#7FB77E; --k-note:#C9A0DC;

  --add-msg:#5CA9E0; --add-me:#3E9A6B; --add-call:#B07CD0; --add-danger:#E0605C; --add-shop:#E0A05C;
  --add-voice:#C77DBB; --add-income:#4FB477; --add-expense:#E07A5F; --add-move:#6FA8DC; --add-invest:#A79BD9;
  --field-bg:rgba(127,127,127,.07); --field-br:rgba(127,127,127,.22);
  --plan-basic:#6FA8DC; --plan-professional:#D9A441; --plan-custom:#A79BD9;
  --plan-trial:#45C2A6; --plan-owner_unlimited:#E0A05C;
  --plan-fb-1:#6FA8DC; --plan-fb-2:#D9A441; --plan-fb-3:#A79BD9;
  --plan-fb-4:#45C2A6; --plan-fb-5:#E0A05C; --plan-fb-6:#E27D62;

  /* ── layer 2: semantic roles (read from layer 1 in every theme) ── */
  --accent:var(--gold);
  --bg:var(--ink-900);
  --surface:var(--ink-850);
  --shadow-color:rgba(var(--shadow-rgb),.9);
  --brand-1:var(--gold-2); --brand-2:var(--gold); --brand-3:var(--gold-3);
  --btn-1:var(--gold-2);   --btn-2:var(--gold);
  --hero-1:var(--gold-2);  --hero-2:var(--gold);  --hero-3:var(--verd);
  --border-accent:rgba(var(--accent-rgb),.30);
  --border-accent-soft:rgba(var(--accent-rgb),.35);
  --border-verd:rgba(var(--verd-rgb),.20);
  --border-verd-strong:rgba(var(--verd-rgb),.32);
  --border-warn:rgba(var(--warn-rgb),.20);
  --border-neg:rgba(var(--neg-rgb),.22);
  --ring-accent:0 0 0 4px rgba(var(--accent-rgb),.12);
  --ring-verd:0 0 0 3px rgba(var(--verd-rgb),.18);
  --shadow-accent:0 6px 22px -8px rgba(var(--accent-rgb),.55);
  --shadow-accent-lg:0 10px 30px -12px rgba(var(--accent-rgb),.65);
  --shadow-accent-xl:0 16px 38px -12px rgba(var(--accent-rgb),.80);
  --aura-1:rgba(var(--accent-rgb),.14);
  --aura-2:rgba(var(--verd-rgb),.10);
  --aura-3:rgba(var(--blue-rgb),.08);
  /* ۱۰/۱۸ — این شش در شیت به‌کار می‌رفتند و هیچ‌جا تعریف نشده بودند؛ اعلان‌شان بی‌صدا بی‌اثر بود */
  --dim:var(--fg-3); --muted:var(--fg-2); --mut:var(--fg-2); --fg-1:var(--fg);
  --bg-2:var(--ink-800); --r-md:var(--r);

  --r-xs:7px; --r-sm:10px; --r:14px; --r-lg:20px; --r-xl:28px; --r-full:999px;
  --ease:cubic-bezier(.22,.68,0,1);
  --kufi:Kufi,Vazirmatn,sans-serif;
  color-scheme:dark;
}

/* ── ledger: کاغذِ سبزِ دفترِ کل، جوهرِ قرمز ── */
:root[data-theme=ledger]{
  --ink-950:#FFFFFF; --ink-900:#E6ECE6; --ink-850:#F4F7F2; --ink-800:#EAF0E9;
  --ink-750:#DFE8E0; --ink-700:#D3DFD5; --ink-600:#C3D3C6;
  --line:#C9D7CC; --line-hi:#9FB7A5;
  --fg:#17261E; --fg-2:#46594D; --fg-3:#6B7F72;

  --gold:#A82E26; --gold-2:#8F241D; --gold-3:#C9473D; --gold-wash:#F5E2DE;
  --verd:#2D6A4F; --verd-wash:#DCEBE1;
  --pos:#2A7F52;  --pos-wash:#E0F0E5;
  --neg:#B4532A;  --neg-wash:#F8E6DC;
  --warn:#8F6512; --warn-wash:#F6EDD6;
  --stamp:#A82E26;

  --accent-rgb:168,46,38;
  --verd-rgb:45,106,79;
  --neg-rgb:180,83,42;
  --warn-rgb:143,101,18;
  --blue-rgb:47,109,168;
  --shadow-rgb:30,50,38;

  --on-accent:#FFF6F3;
  --brand-1:#C9473D; --brand-2:#A82E26; --brand-3:#8F241D;
  --btn-1:#BD3A31;   --btn-2:#A82E26;
  --hero-1:#A82E26;  --hero-2:#8F241D;  --hero-3:#2D6A4F;
  --select-bg:#F0C9C3; --select-fg:#17261E;
  --fill-subtle:rgba(0,0,0,.03);
  --shadow-drop:0 30px 70px -34px rgba(var(--shadow-rgb),.30);
  --shadow-drop-strong:0 30px 70px -30px rgba(var(--shadow-rgb),.36);
  --shadow-nav:0 -6px 20px -12px rgba(var(--shadow-rgb),.16);
  --veil:rgba(30,44,36,.40); --aside:rgba(244,247,242,.80); --aside-m:rgba(244,247,242,.97);
  --stripe:rgba(45,106,79,.05);
  --ring:0 0 0 1px rgba(0,0,0,.04), inset 0 1px 0 rgba(255,255,255,.7);
  --rule:rgba(45,106,79,.16); --glow:rgba(168,46,38,.08);

  --k-reminder:#8F681C; --k-task:#177363; --k-check:#2F6DA8;
  --k-installment:#A96317; --k-debt:#B34E33; --k-schedule:#5F53A0;
  --k-habit:#3F6B3E; --k-note:#6E4A87;
  --add-msg:#2A6C9E; --add-me:#2A7350; --add-call:#7A4E96; --add-danger:#A33A34; --add-shop:#8A5A22;
  --add-voice:#8E4C85; --add-income:#2E7D52; --add-expense:#B4472A; --add-move:#2F6DA8; --add-invest:#5F53A0;
  --field-bg:rgba(255,255,255,.55); --field-br:rgba(23,38,30,.18);
  --plan-basic:#2F6DA8; --plan-professional:#8F681C; --plan-custom:#5F53A0;
  --plan-trial:#177363; --plan-owner_unlimited:#A96317;
  --plan-fb-1:#2F6DA8; --plan-fb-2:#8F681C; --plan-fb-3:#5F53A0;
  --plan-fb-4:#177363; --plan-fb-5:#A96317; --plan-fb-6:#B34E33;
  color-scheme:light;
}

/* ── firuze: فیروزه‌ای، با زعفرانی به‌جای سبزِ دوم ── */
:root[data-theme=firuze]{
  --ink-950:#021012; --ink-900:#031719; --ink-850:#082A2E; --ink-800:#0C363A;
  --ink-750:#0F3D41; --ink-700:#134548; --ink-600:#1C5A5D;
  --line:#134548; --line-hi:#1C5A5D;
  --fg:#E5F6F3; --fg-2:#94BDB7; --fg-3:#5F8D87;
  --gold:#37D0BD; --gold-2:#7FE6D8; --gold-3:#1F8F82; --gold-wash:#073535;
  --verd:#E8B04B; --verd-wash:#2B2412;
  --stamp:#E8B04B;
  --accent-rgb:55,208,189;
  --verd-rgb:232,176,75;
  --on-accent:#021413;
  --veil:rgba(2,16,18,.80); --aside:rgba(3,23,25,.70); --aside-m:rgba(6,33,36,.96);
  --k-task:#E8B04B;
  --plan-professional:#37D0BD; --plan-fb-2:#37D0BD;
}

/* ── lajvard: آبیِ لاجوردی و طلایی ── */
:root[data-theme=lajvard]{
  --ink-950:#070B26; --ink-900:#0A1033; --ink-850:#131C4C; --ink-800:#19245A;
  --ink-750:#1E2A63; --ink-700:#25316C; --ink-600:#344290;
  --line:#25316C; --line-hi:#344290;
  --fg:#EEF0FF; --fg-2:#A9B0DD; --fg-3:#7178AE;
  --gold:#F2C35B; --gold-2:#FFDB8C; --gold-3:#9C7A2C; --gold-wash:#2A2638;
  --verd:#8EC5FF; --verd-wash:#15255A;
  --stamp:#8EC5FF;
  --accent-rgb:242,195,91;
  --verd-rgb:142,197,255;
  --on-accent:#1A1404;
  --veil:rgba(7,11,38,.80); --aside:rgba(10,16,51,.70); --aside-m:rgba(14,22,64,.96);
  --k-check:#8EC5FF;
}

/* ── نمودارهای پلنر (سند ۱۷۳) ────────────────────────────────
   همهٔ کلاس‌ها با pc- شروع می‌شوند. در نسخهٔ نمونه، کلاس کوتاه
   .wd با یک کلاسِ از قبل موجود تصادم کرد و ستون‌ها ۵۷×۱۲۶ شدند؛
   در فایلِ ۹۰۰۰ خطی حدس‌زدن دربارهٔ نام کوتاه، خطاست. */
:root{
  --pc1:#BC8C28; --pc2:#199C86; --pc3:#4E74C6;
  --pcs0:#141A24; --pcs1:#3A2E14; --pcs2:#6B5220; --pcs3:#A07A28; --pcs4:#D9A441;
  --pc-track:#151B26; --pc-edge:rgba(255,255,255,.025);
}
:root[data-theme=ledger]{
  --pc1:#A82E26; --pc2:#2D6A4F; --pc3:#2C63B4;
  --pcs0:#EEF2EC; --pcs1:#E9C3BE; --pcs2:#D48A82; --pcs3:#BD4C43; --pcs4:#8F241D;
  --pc-track:#DFE8E0; --pc-edge:rgba(0,0,0,.05);
}
:root[data-theme=firuze],:root[data-theme=lajvard]{
  --pc1:var(--gold); --pc2:var(--verd); --pc3:#8EC5FF;
  --pcs0:var(--ink-800);
  --pcs1:color-mix(in srgb,var(--gold) 22%,var(--ink-800)); --pcs2:color-mix(in srgb,var(--gold) 45%,var(--ink-800));
  --pcs3:color-mix(in srgb,var(--gold) 70%,var(--ink-800)); --pcs4:var(--gold);
  --pc-track:var(--ink-750);
}
.pc-g2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.pc-note{color:var(--fg-3);font-size:12px;margin:12px 0 0;line-height:1.65}

/* ۱ — قوس هفته */
.pc-hero{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.pc-arc{width:112px;height:112px;flex:none;position:relative}
.pc-arc svg{transform:rotate(-90deg)}
.pc-arc .pc-mid{position:absolute;inset:0;display:grid;place-items:center;text-align:center}
.pc-arc .pc-mid b{display:block;font-size:25px;font-weight:700;line-height:1.1;letter-spacing:-.02em}
.pc-arc .pc-mid span{font-size:11px;color:var(--fg-3)}
.pc-htxt{flex:1;min-width:210px}
.pc-htxt .pc-big{font-size:15px;color:var(--fg-2);font-weight:400;margin:0 0 10px;line-height:1.8}
.pc-htxt .pc-big b{color:var(--fg);font-weight:700}
.pc-pills{display:flex;gap:8px;flex-wrap:wrap}
.pc-pill{font-size:12px;padding:3px 10px;border-radius:20px;border:1px solid var(--line-hi);color:var(--fg-2)}
.pc-pill.on{border-color:transparent;background:color-mix(in srgb,var(--pos) 16%,transparent);color:var(--pos)}
.pc-pill.off{border-color:transparent;background:color-mix(in srgb,var(--neg) 16%,transparent);color:var(--neg)}

/* ۲ — نوار روزها */
.pc-strip{display:flex;gap:3px;align-items:stretch}
.pc-day{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:5px;align-items:center}
.pc-day .pc-bx{width:100%;height:38px;border-radius:5px;background:var(--pcs0);
  outline:1px solid var(--pc-edge);transition:transform .12s}
.pc-day .pc-bx:hover{transform:translateY(-2px)}
.pc-day.l1 .pc-bx{background:var(--pcs1)} .pc-day.l2 .pc-bx{background:var(--pcs2)}
.pc-day.l3 .pc-bx{background:var(--pcs3)} .pc-day.l4 .pc-bx{background:var(--pcs4)}
.pc-day.tdy .pc-bx{outline:2px solid var(--fg-2);outline-offset:1px}
.pc-day .pc-dl{font-size:10px;color:var(--fg-3);line-height:1;white-space:nowrap}
.pc-day .pc-dl.on{color:var(--fg-2);font-weight:600}
.pc-ticks{display:flex;gap:3px;margin-top:9px}
.pc-tick{flex:1 1 0;min-width:0;text-align:center;font-size:10.5px;color:var(--fg-3);
  border-top:1px solid var(--line);padding-top:5px;white-space:nowrap;overflow:hidden}
.pc-lgd{display:flex;align-items:center;gap:6px;margin-top:14px;font-size:11px;color:var(--fg-3);flex-wrap:wrap}
.pc-lgd i{width:14px;height:14px;border-radius:4px;display:inline-block}

/* ۳ — پایداری هر فعالیت */
.pc-rank{display:flex;flex-direction:column;gap:9px}
.pc-row{display:grid;grid-template-columns:1fr 116px 46px;gap:10px;align-items:center}
.pc-nm{font-size:13px;color:var(--fg-2);white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis;font-weight:500}
.pc-tr{height:9px;background:var(--pc-track);border-radius:5px;position:relative;overflow:hidden}
.pc-tr i{position:absolute;inset-inline-start:0;top:0;bottom:0;border-radius:5px;background:var(--pc1)}
.pc-vl{font-size:12.5px;color:var(--fg);font-weight:600;text-align:left;direction:ltr}
.pc-more{font-size:12px;color:var(--fg-3);margin-top:10px}

/* ۴ — روزهای هفته */
.pc-wk{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;align-items:end;height:126px}
.pc-wc{display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.pc-wc i{width:100%;max-width:34px;border-radius:4px 4px 0 0;background:var(--pc1);display:block}
.pc-wc i.dim{background:color-mix(in srgb,var(--pc1) 38%,transparent)}
.pc-wc .n{font-size:11.5px;color:var(--fg);font-weight:600}
.pc-wc .d{font-size:11.5px;color:var(--fg-3)}

/* ۵ — تخته‌ها */
.pc-seg{display:flex;height:30px;border-radius:8px;overflow:hidden;gap:2px}
.pc-seg i{display:block}
.pc-slg{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px;font-size:12.5px;color:var(--fg-2)}
.pc-slg span{display:inline-flex;align-items:center;gap:6px}
.pc-slg b{width:9px;height:9px;border-radius:2px;display:inline-block}

@media(max-width:720px){.pc-g2{grid-template-columns:1fr}}
@media(max-width:560px){
  .pc-day .pc-dl{display:none}
  .pc-day .pc-bx{height:44px}
  .pc-tick{font-size:10px}
  .pc-row{grid-template-columns:1fr 84px 42px}
}
.pc-hint{color:var(--fg-3);font-size:12px;margin-inline-start:auto;font-weight:400}
/* ── تعهدها: دسته‌بندی، نرخ سود، یادآوری (سند ۱۷۴) ─────────── */
.cm-chips{display:flex;gap:6px;flex-wrap:wrap}
.cm-chip{font-size:12px;padding:4px 11px;border-radius:20px;cursor:pointer;
  border:1px solid var(--line-hi);background:transparent;color:var(--fg-2);font:inherit;
  font-size:12px;line-height:1.6;transition:background .12s,color .12s,border-color .12s}
.cm-chip[aria-pressed=true]{background:var(--gold);border-color:transparent;color:var(--on-accent);font-weight:600}
.cm-chip:disabled{opacity:.42;cursor:not-allowed;text-decoration:line-through}
.cm-rem{border:1px solid var(--line);border-radius:var(--r-sm);padding:12px;margin:0 0 10px;
  background:var(--field-bg)}
.cm-rem h4{margin:0 0 4px;font-size:13.5px;font-weight:700}
.cm-rem .cm-sub{color:var(--fg-3);font-size:11.5px;margin:0 0 10px;line-height:1.75}
.cm-rem .cm-lab{display:block;font-size:11.5px;color:var(--fg-3);margin:10px 2px 5px}
.cm-rem .cm-foot{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}
.cm-tag{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--ink-800);
  color:var(--fg-2);white-space:nowrap}
.cm-tag.rate{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn)}
.cm-bell{font-size:11.5px;color:var(--gold)}
.cm-bell.off{color:var(--fg-3)}
.rw .cm-acts{display:flex;gap:6px;flex-wrap:wrap}
/* کارت یادآوری‌های امروز */
.rm-row{display:flex;align-items:flex-start;gap:10px;padding:10px 2px;
  border-bottom:1px solid var(--line)}
.rm-row:last-child{border-bottom:0}
.rm-row .rm-t{flex:1;min-width:0;font-size:13.5px;line-height:1.85;white-space:pre-wrap}
.rm-row .rm-b{flex:none;display:flex;flex-direction:column;gap:6px}
.rm-row.late{background:color-mix(in srgb,var(--neg) 7%,transparent);
  border-radius:var(--r-sm);padding-inline:10px}
.rm-head{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 8px}
/* ══ سند ۱۷۵ — متن پیام‌ها (پیشوند mt-، قاعدهٔ ۶۷) ══ */
.mt-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.mt-bar input[type=search]{flex:1 1 220px;min-width:170px}
.mt-bar select{flex:0 1 180px}
.mt-ch{display:flex;gap:4px;flex-wrap:wrap}
.mt-ch button{padding:5px 11px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--fg);font:inherit;cursor:pointer}
.mt-ch button[aria-pressed=true]{background:var(--gold);color:var(--on-accent);border-color:var(--gold)}
.mt-ch button[disabled]{opacity:.42;cursor:not-allowed}
.mt-cat{margin:16px 0 6px;font-size:13px;color:var(--dim);font-weight:600}
.mt-row{display:flex;gap:10px;align-items:flex-start;padding:9px 2px;border-bottom:1px solid var(--line)}
.mt-row:last-child{border-bottom:0}
.mt-main{flex:1;min-width:0}
.mt-k{font-size:11.5px;color:var(--dim);direction:ltr;text-align:right;font-family:ui-monospace,Menlo,monospace;word-break:break-all}
.mt-t{font-weight:600;margin-bottom:2px}
.mt-p{font-size:12.5px;color:var(--dim);white-space:pre-wrap;max-height:3.4em;overflow:hidden;margin-top:3px}
.mt-tag{display:inline-block;font-size:11px;padding:1px 7px;border-radius:999px;background:var(--gold);color:var(--on-accent);margin-inline-start:6px;vertical-align:middle}
.mt-tag.off{background:transparent;border:1px solid var(--line);color:var(--dim)}
.mt-ed{padding:12px;border:1px solid var(--gold);border-radius:12px;margin:8px 0 14px}
.mt-ed textarea{width:100%;min-height:118px;font:inherit;line-height:1.75;background:transparent;color:var(--fg);border:1px solid var(--line);border-radius:9px;padding:9px}
.mt-vars{display:flex;gap:5px;flex-wrap:wrap;margin:8px 0}
.mt-vars button{font-size:11.5px;padding:3px 8px;border-radius:7px;cursor:pointer;border:1px solid var(--line);background:transparent;color:var(--fg);font-family:ui-monospace,Menlo,monospace}
.mt-vars button:hover{border-color:var(--gold);color:var(--gold)}
.mt-pv{white-space:pre-wrap;background:rgba(127,127,127,.09);border-radius:10px;padding:10px;margin-top:9px;line-height:1.85;min-height:2.6em}
.mt-warn{color:var(--warn);font-size:12.5px;margin-top:7px}
.mt-acts{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px;align-items:center}
.mt-note{font-size:12.5px;color:var(--dim);line-height:1.9}
.mt-pend{border:1px dashed var(--line);border-radius:12px;padding:11px;margin-top:14px}
.mt-pend b{color:var(--fg)}
/* ══ سند ۱۷۶ — دفتر روزانه (پیشوند dn-، قاعدهٔ ۶۷) ══ */
.dn-tabs{display:flex;gap:5px}
.dn-nav{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.dn-day{font-weight:600;font-size:15px;flex:1 1 auto;text-align:center;min-width:150px}
.dn-day small{display:block;font-weight:400;font-size:12px;color:var(--dim);margin-top:1px}
.dn-strip{display:flex;gap:3px;flex-wrap:wrap;margin:10px 0 12px;direction:rtl}
.dn-c{width:26px;height:26px;border-radius:7px;border:1px solid var(--line);
  background:transparent;color:var(--dim);font:inherit;font-size:11.5px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;padding:0;line-height:1}
.dn-c.has{background:var(--gold);color:var(--on-accent);border-color:var(--gold);font-weight:600}
.dn-c.today{outline:2px solid var(--gold);outline-offset:1px}
.dn-c.sel{transform:scale(1.14)}
.dn-c.fut{opacity:.34;cursor:default}
.dn-mhead{display:flex;gap:8px;align-items:center;justify-content:space-between;
  font-size:13px;color:var(--dim);margin-top:4px}
.dn-ta{width:100%;min-height:230px;font:inherit;line-height:2;background:transparent;
  color:var(--fg);border:1px solid var(--line);border-radius:11px;padding:12px}
.dn-ta:focus{border-color:var(--gold);outline:none}
.dn-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:12.5px;color:var(--dim);margin:8px 0}
.dn-meta b{color:var(--gold)}
.dn-dirty{color:var(--warn)}
.dn-past{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}
.dn-past li{list-style:none;padding:7px 2px;border-bottom:1px solid var(--line);cursor:pointer}
.dn-past li:last-child{border-bottom:0}
.dn-past li:hover b{color:var(--gold)}
.dn-past ul{margin:0;padding:0}
.dn-past small{color:var(--dim);display:block;margin-top:2px}
.dn-card textarea{min-height:120px}
:root[data-theme=ledger] .aura{opacity:.3}
:root[data-theme=ledger] .grain{opacity:.05;mix-blend-mode:multiply}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{height:100%}
body{
  margin:0; background:var(--ink-900); color:var(--fg);
  font-family:Vazirmatn,"Vazir-fallback",system-ui,sans-serif; font-size:15px; line-height:1.75;
  /* ۵۰۳ — kern و liga روشن، و صفرِ فارسی هم‌عرض با بقیهٔ ارقام */
  font-feature-settings:"kern" 1,"liga" 1,"calt" 1;
  font-variant-numeric:proportional-nums;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden;
}
/* slow aurora — the only motion on the page */
.aura{position:fixed; inset:-25%; z-index:0; pointer-events:none; filter:blur(90px); opacity:.5}
.aura i{position:absolute; display:block; border-radius:50%}
.aura i:nth-child(1){width:46vw;height:46vw;background:var(--aura-1);top:-6%;right:4%;animation:d1 34s var(--ease) infinite alternate}
.aura i:nth-child(2){width:40vw;height:40vw;background:var(--aura-2);bottom:2%;left:2%;animation:d2 42s var(--ease) infinite alternate}
.aura i:nth-child(3){width:30vw;height:30vw;background:var(--aura-3);top:38%;left:38%;animation:d3 50s var(--ease) infinite alternate}
@keyframes d1{to{transform:translate3d(-7vw,6vh,0) scale(1.14)}}
@keyframes d2{to{transform:translate3d(6vw,-5vh,0) scale(1.1)}}
@keyframes d3{to{transform:translate3d(4vw,7vh,0) scale(.88)}}
/* fine grain so the flat darks don't band */
.grain{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.16;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E")}
@media (prefers-reduced-motion:reduce){.aura i{animation:none} html{scroll-behavior:auto} *{transition:none!important}}

.num{font-variant-numeric:tabular-nums; letter-spacing:.005em}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;padding:0}
a{color:inherit;text-decoration:none}
::selection{background:var(--select-bg);color:var(--select-fg)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:var(--r-xs)}
.wrap{position:relative;z-index:2}

/* ── mark ── */
.mk svg{width:56%;height:56%;display:block}
.mk{display:grid;place-items:center;border-radius:26%;flex-shrink:0;
  background:linear-gradient(150deg,var(--brand-1),var(--brand-2) 45%,var(--brand-3));
  color:var(--on-accent);font-weight:700;box-shadow:var(--shadow-accent)}

/* ═══ LANDING ═══ */
#land{min-height:100%;display:flex;flex-direction:column}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:20px clamp(18px,5vw,64px);max-width:1180px;margin:0 auto;width:100%}
.logo{display:flex;align-items:center;gap:11px}
.logo .mk{width:36px;height:36px;font-size:17px}
.logo b{font-size:16px;font-weight:600;letter-spacing:-.015em}
.nav-cta{padding:9px 20px;border-radius:var(--r-full);font-size:13.5px;font-weight:500;
  border:1px solid var(--line-hi);transition:all .22s var(--ease)}
.nav-cta:hover{background:var(--gold-wash);border-color:var(--gold-3);color:var(--gold-2)}

.hero{flex:1;display:grid;place-items:center;text-align:center;
  padding:clamp(40px,9vh,96px) clamp(18px,5vw,64px) 64px;max-width:1180px;margin:0 auto;width:100%}
.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:6px 15px;margin-bottom:26px;
  border-radius:var(--r-full);font-size:12.5px;color:var(--verd);
  background:var(--verd-wash);border:1px solid var(--border-verd)}
.eyebrow i{width:5px;height:5px;border-radius:50%;background:currentColor;
  box-shadow:var(--ring-verd)}
h1.big{font-size:clamp(30px,6.2vw,58px);line-height:1.28;font-weight:700;
  letter-spacing:-.035em;margin:0 0 20px;max-width:16ch}
h1.big em{font-style:normal;
  background:linear-gradient(105deg,var(--hero-1),var(--hero-2) 55%,var(--hero-3));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.sub{font-size:clamp(14.5px,2vw,17.5px);color:var(--fg-2);max-width:44ch;margin:0 auto 34px;line-height:1.95}
.cta-row{display:flex;gap:11px;justify-content:center;flex-wrap:wrap;margin-bottom:60px}
.b-gold{padding:13px 30px;border-radius:var(--r-full);font-weight:600;font-size:14.5px;
  background:linear-gradient(135deg,var(--btn-1),var(--btn-2));color:var(--on-accent);
  box-shadow:var(--shadow-accent-lg);
  transition:transform .18s var(--ease),box-shadow .22s var(--ease)}
.b-gold:hover{transform:translateY(-2px);box-shadow:var(--shadow-accent-xl)}
.b-gold:active{transform:translateY(0)}
.b-ghost{padding:13px 26px;border-radius:var(--r-full);font-size:14.5px;color:var(--fg-2);
  border:1px solid var(--line-hi);transition:all .22s var(--ease)}
.b-ghost:hover{color:var(--fg);border-color:var(--fg-3);background:var(--fill-subtle)}

/* preview */
.prev{width:100%;max-width:660px;margin:0 auto;border-radius:var(--r-xl);overflow:hidden;
  background:linear-gradient(180deg,var(--ink-800),var(--ink-850));
  border:1px solid var(--line);box-shadow:var(--ring),var(--shadow-drop);text-align:start}
.prev-bar{display:flex;align-items:center;gap:7px;padding:13px 18px;border-bottom:1px solid var(--line)}
.prev-bar u{width:9px;height:9px;border-radius:50%;background:var(--ink-600);text-decoration:none}
.prev-bar span{margin-inline-start:auto;font-size:11.5px;color:var(--fg-3)}
.prev-body{padding:18px}
.prev-w{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:14px}
.prev-w u{aspect-ratio:1;border-radius:var(--r-xs);background:var(--ink-750);display:grid;
  place-items:center;font-size:11px;color:var(--fg-3);text-decoration:none;position:relative}
.prev-w u.hot{background:var(--gold-wash);color:var(--gold);border:1px solid var(--border-accent)}
.prev-w u.hot::after{content:'';position:absolute;bottom:5px;width:4px;height:4px;border-radius:50%;background:var(--gold)}
.prev-r{display:flex;align-items:center;gap:11px;padding:9px 0;border-top:1px solid var(--line)}
.prev-r i{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;font-size:13px;font-style:normal}
.prev-r b{font-size:13px;font-weight:400;flex:1}
.prev-r s{font-size:12px;color:var(--fg-3);text-decoration:none}

/* features */
.feat{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;
  max-width:1180px;margin:0 auto;padding:0 clamp(18px,5vw,64px) 72px;width:100%}
.f{padding:26px 24px;border-radius:var(--r-lg);background:var(--ink-850);
  border:1px solid var(--line);box-shadow:var(--ring);transition:all .28s var(--ease)}
.f:hover{transform:translateY(-3px);border-color:var(--line-hi);background:var(--ink-800)}
.f i{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;
  font-size:17px;font-style:normal;margin-bottom:15px}
.f h3{font-size:15.5px;font-weight:600;margin:0 0 7px;letter-spacing:-.015em}
.f p{font-size:13.5px;color:var(--fg-2);margin:0;line-height:1.95}
footer{border-top:1px solid var(--line);padding:26px clamp(18px,5vw,64px);
  max-width:1180px;margin:0 auto;width:100%;display:flex;justify-content:space-between;
  gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--fg-3)}

/* ── toast ── */
#toast{position:fixed;left:50%;bottom:88px;transform:translateX(-50%) translateY(20px);
  background:var(--fg);color:var(--bg);padding:11px 20px;border-radius:13px;
  font-size:.88rem;font-weight:600;opacity:0;pointer-events:none;z-index:90;
  transition:opacity .18s,transform .18s;max-width:86vw;text-align:center;
  box-shadow:0 6px 24px rgba(var(--shadow-rgb),.22)}
#toast.on{opacity:1;transform:translateX(-50%) translateY(0)}

/* ── messenger ── */
.seg{display:flex;gap:6px;background:var(--field-bg);border:1.5px solid var(--field-br);
  border-radius:12px;padding:4px;margin-bottom:14px}
.seg button{flex:1;padding:8px 4px;border:none;background:none;color:var(--fg-2);
  border-radius:9px;cursor:pointer;font:inherit;font-size:.86rem;font-weight:600}
.seg button.on{background:var(--accent);color:var(--on-accent)}
.atabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:13px}
.nwrow{display:flex;gap:10px;align-items:flex-start;padding:11px 2px;border-bottom:1px solid var(--field-br)}
.nwrow:last-child{border-bottom:0}
.nwrow .dot{flex:0 0 auto;width:9px;height:9px;border-radius:var(--r-full);margin-top:6px;background:var(--field-br)}
.nwrow[data-new='true'] .dot{background:var(--accent)}
.nwrow .bd{flex:1 1 auto;min-width:0}
.nwrow .bd b{display:block;font-weight:600;line-height:1.55}
.nwrow .bd small{display:block;color:var(--fg-3);margin-top:3px;font-size:.8rem}
.nwrow .amd{color:var(--gold);font-weight:600}
.nwrow .acts{flex:0 0 auto;display:flex;gap:6px}
.nwsrc{display:flex;gap:10px;align-items:center;padding:10px 2px;border-bottom:1px solid var(--field-br)}
.nwsrc:last-child{border-bottom:0}
.nwsrc .bd{flex:1 1 auto;min-width:0}
.nwsrc small{display:block;color:var(--fg-3);font-size:.78rem;margin-top:2px}
.nwsrc .st{flex:0 0 auto;font-size:.75rem;padding:3px 9px;border-radius:var(--r-full);border:1px solid var(--field-br);color:var(--fg-3)}
.nwsrc .st.off{opacity:.55}
.nwsrc .st.bad{color:var(--neg);border-color:var(--neg)}
.nwbody{white-space:pre-wrap;line-height:1.85;color:var(--fg-2);margin:8px 0 0;padding:10px 12px;background:var(--field-bg);border-radius:var(--r-md)}
.atabs button{border:1px solid var(--field-br);background:var(--field-bg);color:var(--fg-3);
  border-radius:999px;padding:5px 13px;font-size:.78rem;cursor:pointer;font-family:inherit}
.atabs button[aria-pressed="true"]{color:var(--fg);border-color:var(--accent)}
.acount{margin-inline-start:auto;color:var(--fg-3);font-size:.75rem;align-self:center}
.dbulk{display:flex;flex-wrap:wrap;gap:9px;align-items:center;
  padding:10px 12px;margin-bottom:10px;border-radius:12px;
  background:var(--c-surf2,rgba(127,127,127,.10));
  border:1px solid var(--c-line,rgba(127,127,127,.22))}
.dbulk .dbulk-c{display:flex;gap:6px;align-items:center;font-size:.86em;opacity:.85}
.dbulk select{max-width:190px}
.dcard{border:1px solid var(--field-br);background:var(--field-bg);border-radius:13px;
  padding:12px 13px;margin-bottom:11px}
.dc-h{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.dc-amt{font-size:1.02rem}
.dc-bank,.dc-at{color:var(--fg-3);font-size:.76rem}
.dc-at{margin-inline-start:auto}
.dbadge{border-radius:999px;padding:1px 10px;font-size:.72rem;border:1px solid currentColor}
.dbadge.in{color:var(--add-me)}
.dbadge.out{color:var(--neg)}
.dc-miss{margin-top:8px;font-size:.75rem;color:var(--warn)}
.dc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));
  gap:9px;margin-top:11px}
.dc-f{display:flex;flex-direction:column;gap:4px;font-size:.75rem;color:var(--fg-3)}
.dc-f.wide{grid-column:1/-1}
.dc-f select,.dc-f input,.arow input,.arow select,.arow textarea{
  border:1px solid var(--field-br);background:var(--bg,transparent);color:var(--fg);
  border-radius:9px;padding:7px 9px;font-family:inherit;font-size:.82rem;width:100%}
.dc-raw{margin-top:10px;font-size:.75rem;color:var(--fg-3)}
.dc-raw summary{cursor:pointer}
.dc-raw pre{white-space:pre-wrap;word-break:break-word;margin:7px 0 0;
  font-family:inherit;font-size:.78rem;color:var(--fg)}
.dc-act{display:flex;align-items:center;gap:8px;margin-top:11px;flex-wrap:wrap}
.dcard.unsaved{border-color:var(--warn)}
.dc-un{font-size:.72rem;color:var(--warn);display:none}
.dcard.unsaved .dc-un{display:inline}
.dc-rule{margin-inline-start:auto;color:var(--fg-3);font-size:.72rem}
.abtn{border:1px solid var(--field-br);background:var(--field-bg);color:var(--fg);
  border-radius:9px;padding:6px 15px;cursor:pointer;font-family:inherit;font-size:.8rem}
.abtn.ok{border-color:var(--accent)}
.abtn.warn{color:var(--neg)}
.abtn:disabled{opacity:.5;cursor:default}
.arow{border:1px solid var(--field-br);background:var(--field-bg);border-radius:11px;
  padding:10px 12px;margin-bottom:9px;font-size:.82rem}
.arow-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.arow-h b{font-weight:600}
.arow-s{color:var(--fg-3);font-size:.75rem;margin-top:6px}
.arow-a{margin-inline-start:auto;display:flex;gap:6px}
.aform{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px;margin-top:10px}
.aform .wide{grid-column:1/-1}
.aempty{color:var(--fg-3);font-size:.82rem;padding:18px 4px;text-align:center}
/* ── پنج منطق تازه پروژه و پلنر (۰۸/۱۸) ──────────────────────────
   هیچ رنگ خامی اینجا نیست: همه از توکن‌های لایه دوم می‌آیند، پس تم
   روشن هم بدون قاعده جداگانه درست درمی‌آید. */
.bsel{width:17px;height:17px;flex:0 0 17px;border:1.5px solid var(--field-br);
  border-radius:5px;display:grid;place-items:center;cursor:pointer;
  background:var(--field-bg);font-size:11px;line-height:1}
.bsel[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);
  color:var(--on-accent)}
.bbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  border:1px solid var(--border-accent);background:var(--gold-wash);
  border-radius:11px;padding:9px 12px;margin-bottom:10px}
.bbar .bc{flex:1;font-weight:600;font-size:.84rem;color:var(--brand-1)}
.kb{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
@media(max-width:720px){.kb{grid-template-columns:1fr}}
.kb h4{margin:0 0 7px;font-size:.72rem;color:var(--fg-3);font-weight:600}
.kcard{border:1px solid var(--field-br);background:var(--field-bg);
  border-radius:10px;padding:8px 10px;margin-bottom:7px;font-size:.76rem;
  line-height:1.55;cursor:pointer}
.kcard b{display:block;font-size:.8rem;font-weight:600}
.ksla{height:3px;border-radius:2px;margin-top:6px;background:var(--pos)}
.ksla.w{background:var(--warn)} .ksla.n{background:var(--neg)}
.ksla.o{background:var(--field-br)}
.ktl{display:flex;gap:5px;flex-wrap:wrap;margin:5px 0 11px}
.ktl button{width:52px;font-size:.66rem;color:var(--fg-3);text-align:center;
  background:none;border:0;cursor:pointer;padding:2px 0;font-family:inherit}
.ktl button[aria-pressed="true"]{color:var(--fg)}
.kdot{width:11px;height:11px;border-radius:50%;margin:0 auto 3px;display:block;
  border:1px solid var(--field-br);background:var(--field-bg)}
.kdot.f{background:var(--pos);border-color:var(--pos)}
.kdot.h{background:var(--warn);border-color:var(--warn)}
.kdot.l{background:var(--neg);border-color:var(--neg)}
.kprev{border:1px solid var(--border-accent);background:var(--fill-subtle);
  border-radius:10px;padding:10px 12px;margin:9px 0;font-size:.78rem;
  line-height:1.9;white-space:pre-wrap}
.krow{display:flex;gap:9px;align-items:center}
.tagx{display:inline-block;border:1px solid var(--field-br);border-radius:999px;
  padding:1px 9px;font-size:.72rem;color:var(--fg-3);margin:2px 0 0 4px}
.sbody{white-space:pre-wrap;word-break:break-word;margin-top:7px;font-size:.8rem}
/* ۱۰/۱۷ — پیوندِ ویترین در نوارِ صفحهٔ اول؛ روی گوشی فقط در پاصفحه */
.nav-v{color:var(--fg-2);text-decoration:none;font-size:14px;padding:6px 8px;border-radius:8px}
.nav-v:hover{color:var(--fg)}
@media (max-width:620px){.nav-v{display:none}}
/* ══════════ پروژه‌ها ══════════ */
.pbar{height:6px;border-radius:999px;background:var(--field-bg);overflow:hidden;margin-top:8px}
.pbar>i{display:block;height:100%;background:var(--accent);border-radius:999px}
.pst{border-radius:999px;padding:1px 10px;font-size:.72rem;border:1px solid currentColor}
.pst.active{color:var(--accent)}
.pst.draft{color:var(--fg-3)}
.pst.completed{color:var(--add-me)}
.pst.paused{color:var(--warn)}
.pst.canceled{color:var(--neg)}
.pst.not_started{color:var(--fg-3)}
.pst.in_progress{color:var(--accent)}
.pst.waiting_info{color:var(--warn)}
.pst.waiting_approval{color:var(--warn)}
.pst.done{color:var(--add-me)}
.pst.rejected{color:var(--neg)}
.pri-high,.pri-urgent{color:var(--neg)}
.pri-low{color:var(--fg-3)}
.pnum{font-variant-numeric:tabular-nums}
.pover{color:var(--neg)}
.pchips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:11px}
.pchips button{border:1px solid var(--field-br);background:var(--field-bg);color:var(--fg-3);
  border-radius:999px;padding:4px 12px;font-size:.76rem;cursor:pointer;font-family:inherit}
.pchips button[aria-pressed="true"]{color:var(--fg);border-color:var(--accent)}
.preq{border:1px solid var(--field-br);border-radius:11px;padding:10px 12px;margin-bottom:9px}
.preq[data-done="true"]{border-color:var(--add-me)}
.preq-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.82rem}
.preq-h .op{color:var(--fg-3);font-size:.72rem}
.preq-b{margin-top:8px}
.preq-b input,.preq-b select,.preq-b textarea{border:1px solid var(--field-br);
  background:var(--bg,transparent);color:var(--fg);border-radius:9px;padding:7px 9px;
  font-family:inherit;font-size:.82rem;width:100%}
.pck{display:flex;align-items:center;gap:8px;font-size:.82rem;padding:3px 0;cursor:pointer}
.pck input{width:16px;height:16px;accent-color:var(--accent);flex:none}
.pmiss{color:var(--warn);font-size:.76rem;margin-top:8px}
.pblock{color:var(--neg);font-size:.78rem;margin-top:8px}
.phist{color:var(--fg-3);font-size:.74rem;margin-top:4px}
.pback{border:0;background:none;color:var(--accent);font-size:.8rem;cursor:pointer;
  font-family:inherit;padding:0;margin-bottom:11px}
.pprev{border:1px solid var(--field-br);border-radius:11px;padding:10px 12px;
  margin-bottom:11px;max-height:340px;overflow:auto}
.pprev-r{display:flex;gap:8px;font-size:.79rem;padding:4px 0;border-bottom:1px solid var(--field-br)}
.pprev-r:last-child{border-bottom:0}
.pprev-r .d{margin-inline-start:auto;color:var(--fg-3);font-size:.74rem}
.pprev-r[data-dup="true"]{opacity:.45}
.pstat{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:9px;margin:11px 0}
.pstat>div{border:1px solid var(--field-br);border-radius:11px;padding:9px 10px;text-align:center}
.pstat b{display:block;font-size:1.1rem;margin-bottom:3px}
.pstat span{color:var(--fg-3);font-size:.72rem}
.pmrow{display:flex;align-items:center;gap:9px;margin-bottom:6px}
.pmrow select{border:1px solid var(--field-br);background:var(--bg,transparent);
  color:var(--fg);border-radius:9px;padding:5px 8px;font-family:inherit;
  font-size:.78rem;flex:none;min-width:118px}
.passign{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:9px}
.passign select{border:1px solid var(--field-br);background:var(--bg,transparent);
  color:var(--fg);border-radius:9px;padding:6px 9px;font-family:inherit;font-size:.8rem}
.pfile{display:flex;align-items:center;gap:8px;justify-content:space-between;flex-wrap:wrap}
.pfile-a{display:flex;gap:6px}

/* ── ۰۸/۲۱: انتخابگر تاریخ شمسی ────────────────────────────────
   تقویم میلادی مرورگر برای کاربر فارسی‌زبان یک ترجمهٔ ذهنی اجباری
   بود: «۳۰ مرداد ۱۴۰۵» را باید خودش می‌کرد 2026-08-21. حالا آنچه
   دیده و انتخاب می‌شود شمسی است و ورودی **پنهان** همان ISO میلادی
   را نگه می‌دارد — پس هیچ کد سروری و هیچ intent عوض نمی‌شود. */
.jdf{position:relative;display:inline-flex;align-items:center;gap:4px;max-width:100%}
.jdf input.jdi{cursor:pointer;min-width:118px;text-align:center;
  font-variant-numeric:normal;letter-spacing:.02em}
.jdf input.jdh{max-width:92px;text-align:center}
.jdx{border:0;background:transparent;color:var(--fg-3);cursor:pointer;
  font-size:.8rem;line-height:1;padding:3px 4px;border-radius:6px}
.jdx:hover{color:var(--fg-1);background:var(--field-br)}
.jpop{position:fixed;z-index:900;width:252px;padding:9px;border-radius:12px;
  background:var(--card,var(--bg-1,#161a20));border:1px solid var(--field-br);
  box-shadow:0 12px 34px rgba(0,0,0,.42)}
.jph{display:flex;align-items:center;justify-content:space-between;gap:4px;
  margin-bottom:7px}
.jph b{font-size:.84rem}
.jpb{border:1px solid var(--field-br);background:transparent;color:var(--fg-2);
  cursor:pointer;border-radius:7px;padding:2px 7px;font-family:inherit;font-size:.78rem}
.jpb:hover{color:var(--fg-1);border-color:var(--fg-3)}
.jpw,.jpg{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.jpw span{text-align:center;font-size:.66rem;color:var(--fg-3);padding:2px 0}
.jpg button{border:1px solid transparent;background:transparent;color:var(--fg-1);
  cursor:pointer;border-radius:7px;padding:5px 0;font-family:inherit;font-size:.78rem}
.jpg button:hover{background:var(--field-br)}
.jpg button.now{border-color:var(--fg-3)}
.jpg button.on{background:var(--acc,#3b82f6);color:#fff}
.jpf{display:flex;gap:6px;margin-top:8px}
.jpf .jpb{flex:1}
.pupload{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;
  padding-top:10px;border-top:1px solid var(--field-br)}
.pupload input[type=file]{font-family:inherit;font-size:.76rem;color:var(--fg-3);max-width:230px}
.pupload input#tk_ftitle{border:1px solid var(--field-br);background:var(--bg,transparent);
  color:var(--fg);border-radius:9px;padding:6px 9px;font-family:inherit;font-size:.8rem;flex:1;min-width:130px}
.pyear{width:74px;border:1px solid var(--field-br);background:var(--bg,transparent);color:var(--fg);
  border-radius:8px;padding:4px 7px;font-family:inherit;font-size:.8rem;margin-inline-start:6px}
/* قرص یک‌خطی. گردیِ کامل عمدی است: کارت‌های دور و برش مستطیل‌اند،
   پس این شکل می‌گوید «نوار وضعیت» نه «یک کارت دیگر».
   ⚠️ بدون flex-wrap. با wrap، حاشیه خودکارِ برچسب کیفیت همه فضای
   خط را می‌بلعید و بقیه را به خط بعد پرت می‌کرد — کادر به یک
   بیضی بلند تبدیل می‌شد. */
.devx{border:1px solid var(--field-br);background:var(--field-bg);border-radius:999px;
  padding:5px 14px;margin-bottom:11px;font-size:.76rem;line-height:1.5;
  display:flex;align-items:center;gap:7px;min-width:0}
.devx b{font-weight:600;white-space:nowrap;flex:none}
.devx.down{opacity:.95}
/* متن ریز وسط می‌نشیند و اگر جا کم بیاید سه‌نقطه می‌خورد.
   min-width:0 لازم است، وگرنه آیتم فلکس زیر اندازه محتوایش
   کوچک نمی‌شود و کوتاه‌شدن هرگز اتفاق نمی‌افتد. */
.devx-b{display:block;color:var(--fg-3);font-size:.72rem;
  flex:1 1 auto;min-width:0;overflow:hidden;
  white-space:nowrap;text-overflow:ellipsis}
.devx-b em{opacity:.4;font-style:normal;margin:0 4px}
/* برچسب کیفیت همیشه ته خط، و هرگز کوچک نمی‌شود. */
.devx .qb{flex:none;margin-inline-start:auto}
.devx .sbars{flex:none}
.qb{margin-inline-start:auto;border-radius:999px;padding:1px 9px;font-size:.7rem;
  border:1px solid currentColor}
.q-ok{color:var(--add-me)}
.q-mid{color:var(--warn)}
.q-bad{color:var(--neg)}
/* رنگ از کلاس کیفیت می‌آید (q-ok / q-mid / q-bad) و میله‌های
   خاموش عمداً خاکستری‌اند نه کم‌رنگِ همان رنگ — وگرنه «قطع»
   هم کمی سبز به نظر می‌رسد. */
/* ⚠️ نام `sbars` و نه `bars`: کلاس `bars` از قبل مال میله‌های
   نمودار مالی است (پایین‌تر در همین فایل، با ارتفاع ۱۳۰ پیکسل).
   چون آن قاعده دیرتر می‌آید، در تساوی خاص‌بودن برنده می‌شد و
   نوار وضعیت گوشی را ۱۳۰ پیکسل بلند می‌کرد. */
.sbars{display:inline-flex;align-items:flex-end;gap:2.5px;height:14px;flex:none}
.sbars b{width:3.5px;border-radius:1.5px;background:var(--fg-3);opacity:.3}
.sbars b:nth-child(1){height:5px}
.sbars b:nth-child(2){height:8px}
.sbars b:nth-child(3){height:11px}
.sbars b:nth-child(4){height:14px}
.sbars b.on{background:currentColor;opacity:1}
.dev{display:flex;align-items:center;gap:7px;font-size:.78rem;margin-bottom:12px}
.dev i{width:8px;height:8px;border-radius:50%;background:var(--fg-3);flex:none}
.dev.up i{background:var(--add-me)}
.dev.up{color:var(--add-me)}
.dev.down{color:var(--fg-3)}
.ct{display:flex;gap:11px;padding:12px 2px;border-bottom:1px solid var(--line);
  cursor:pointer;align-items:center}
.ct:last-child{border-bottom:none}
.ct:hover{background:var(--field-bg)}
.ct .av{width:40px;height:40px;border-radius:12px;flex:none;display:grid;place-items:center;
  font-size:15px;font-weight:700;color:var(--on-accent);background:var(--add-msg)}
.ct .bd{flex:1;min-width:0}
.ct .r1{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.ct .nm{font-weight:600;font-size:.93rem;white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis}
.ct .tm{font-size:.72rem;color:var(--fg-3);white-space:nowrap;
  font-variant-numeric:tabular-nums}
.ct .pv{font-size:.83rem;color:var(--fg-2);white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis;margin-top:2px}
.ct .pv b{font-weight:400;color:var(--fg-3)}
/* گفتگو */
.thr{display:flex;flex-direction:column;gap:9px;max-height:52vh;overflow-y:auto;
  padding:4px 2px 10px}
.bub{max-width:78%;padding:9px 13px;border-radius:15px;font-size:.89rem;line-height:1.7;
  white-space:pre-wrap;word-break:break-word;position:relative}
.bub.in{align-self:flex-start;background:var(--field-bg);
  border:1.5px solid var(--field-br);border-bottom-right-radius:5px}
.bub.out{align-self:flex-end;background:var(--add-me);color:var(--on-accent);
  border-bottom-left-radius:5px}
.bub .mt{display:block;margin-top:5px;font-size:.68rem;opacity:.72;
  font-variant-numeric:tabular-nums}
.bub.out .mt{text-align:left}
.compose{display:flex;gap:8px;align-items:flex-end;margin-top:12px;
  border-top:1px solid var(--line);padding-top:12px}
.compose textarea{flex:1;padding:10px 12px;border-radius:12px;resize:none;
  border:1.5px solid var(--field-br);background:var(--field-bg);color:var(--fg);
  font:inherit;font-size:.89rem;line-height:1.6;max-height:120px}
.compose button{padding:10px 18px;border-radius:12px;border:none;background:var(--accent);
  color:var(--on-accent);cursor:pointer;font:inherit;font-weight:700;flex:none}
.compose button:disabled{opacity:.45;cursor:not-allowed}
.thr-h{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.thr-h .bk{padding:7px 12px;border-radius:10px;border:1.5px solid var(--field-br);
  background:var(--field-bg);color:var(--fg);cursor:pointer;font:inherit;flex:none}
.thr-h .who{flex:1;min-width:0}
.thr-h .who b{display:block;font-size:.98rem}
.thr-h .who span{font-size:.75rem;color:var(--fg-3)}
.thr-h .cl{padding:7px 13px;border-radius:10px;border:1.5px solid var(--add-call);
  background:none;color:var(--add-call);cursor:pointer;font:inherit;font-weight:600;flex:none}
/* تماس‌ها */
.cal{display:flex;gap:11px;padding:12px 2px;border-bottom:1px solid var(--line);
  align-items:center}
.cal:last-child{border-bottom:none}
.cal .ic{width:34px;height:34px;border-radius:11px;flex:none;display:grid;
  place-items:center;font-size:15px;background:var(--field-bg);
  border:1.5px solid var(--field-br)}
.cal .bd{flex:1;min-width:0}
.cal .nm{font-weight:600;font-size:.9rem}
.cal .mt{font-size:.74rem;color:var(--fg-3);margin-top:2px;
  font-variant-numeric:tabular-nums}
.cal .rc{padding:6px 11px;border-radius:9px;border:1.5px solid var(--field-br);
  background:none;color:var(--fg-2);cursor:pointer;font:inherit;font-size:.78rem;flex:none}
.cal .rc:hover{border-color:var(--add-call);color:var(--add-call)}
.dial{display:flex;gap:8px;margin-bottom:14px}
.dial input{flex:1;padding:10px 12px;border-radius:11px;border:1.5px solid var(--field-br);
  background:var(--field-bg);color:var(--fg);font:inherit;
  font-variant-numeric:tabular-nums}
.dial button{padding:10px 16px;border-radius:11px;border:none;background:var(--add-call);
  color:var(--on-accent);cursor:pointer;font:inherit;font-weight:700;flex:none}

/* ── inbox ── */
.msg{display:flex;gap:12px;padding:13px 2px;border-bottom:1px solid var(--line)}
.msg:last-child{border-bottom:none}
.msg .av{width:38px;height:38px;border-radius:11px;flex:none;display:grid;
  place-items:center;font-size:15px;font-weight:700;color:var(--on-accent);
  background:var(--add-msg)}
.msg .bd{flex:1;min-width:0}
.msg .hd{display:flex;justify-content:space-between;gap:10px;align-items:baseline;
  margin-bottom:3px}
.msg .who{font-weight:600;font-size:.92rem;word-break:break-all}
.msg .tm{font-size:.75rem;color:var(--fg-3);white-space:nowrap;
  font-variant-numeric:tabular-nums}
.msg .tx{font-size:.89rem;line-height:1.65;color:var(--fg-2);white-space:pre-wrap;
  word-break:break-word}
.msg .tg{display:inline-block;margin-top:5px;font-size:.7rem;color:var(--fg-3);
  border:1px solid var(--line);border-radius:6px;padding:1px 7px}
.inbox-h{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:13px}
.inbox-h input{flex:1 1 170px;padding:10px 12px;border-radius:10px;
  border:1.5px solid var(--field-br);background:var(--field-bg);color:var(--fg);font:inherit}
.inbox-h button{padding:10px 17px;border-radius:10px;border:1.5px solid var(--field-br);
  background:var(--field-bg);color:var(--fg);cursor:pointer;font:inherit;font-weight:600}
.inbox-h button:hover{border-color:var(--accent);color:var(--accent)}
.hint-box{border:1.5px dashed var(--field-br);border-radius:13px;padding:18px;
  text-align:center}
.hint-box b{display:block;margin-bottom:7px;font-size:.98rem}
.hint-box p{margin:0;font-size:.87rem;color:var(--fg-2);line-height:1.8}

/* ── category picker ── */
.catrow{display:flex;gap:7px;flex-wrap:wrap;margin-top:4px}
.catrow button{padding:8px 12px;border-radius:9px;cursor:pointer;font:inherit;
  font-size:.85rem;border:1.5px solid var(--field-br);background:var(--field-bg);
  color:var(--fg-2);transition:.13s}
.catrow button:hover{border-color:var(--accent);color:var(--fg)}
.catrow button[aria-pressed=true]{border-color:var(--accent);color:var(--accent);
  background:color-mix(in srgb, var(--accent) 13%, transparent)}
.catrow button.newcat{border-style:dashed}
/* ── macrodroid ── */
.diag{margin-top:14px;border:1px solid var(--field-br);border-radius:10px;
  padding:10px 12px;background:var(--field-bg)}
.diag summary{cursor:pointer;font-size:.85rem;color:var(--fg);opacity:.8}
.diag summary:hover{opacity:1}
.mfl{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.mfl li{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:8px 10px;border:1px solid var(--field-br);border-radius:10px;background:var(--field-bg)}
.mfl li span{font-size:.86rem;color:var(--fg)}
.mfb{border:1px solid var(--field-br);background:transparent;color:var(--fg);opacity:.72;
  border-radius:8px;padding:4px 10px;font-size:.72rem;cursor:pointer;font-family:inherit;
  direction:ltr;white-space:nowrap}
.mfb:hover{opacity:1;color:var(--accent);border-color:var(--accent)}
.dl{display:flex;align-items:center;gap:13px;padding:15px;border-radius:13px;
  border:1.5px solid var(--field-br);background:var(--field-bg);margin-bottom:11px}
.dl .ico{width:44px;height:44px;border-radius:12px;flex:none;display:grid;
  place-items:center;font-size:20px;background:color-mix(in srgb,var(--accent) 16%,transparent)}
.dl .tx{flex:1;min-width:0}
.dl .tx b{display:block;font-size:.95rem}
.dl .tx small{color:var(--fg-3);font-size:.78rem}
.dl a.btn,.dl button.btn{padding:10px 18px;border-radius:10px;border:none;cursor:pointer;
  font:inherit;font-weight:700;font-size:.88rem;text-decoration:none;white-space:nowrap;
  color:var(--on-accent);background:linear-gradient(135deg,var(--btn-1),var(--btn-2))}
.dl a.btn[data-off=true]{opacity:.5;pointer-events:none}
.steps{counter-reset:st;margin:0;padding:0;list-style:none}
.steps li{counter-increment:st;position:relative;padding:9px 0 9px 34px;
  padding-inline-start:34px;padding-inline-end:0;font-size:.9rem;
  border-bottom:1px solid var(--line)}
.steps li:last-child{border-bottom:none}
.steps li::before{content:counter(st);position:absolute;inset-inline-start:0;top:8px;
  width:23px;height:23px;border-radius:50%;display:grid;place-items:center;
  font-size:.75rem;font-weight:700;color:var(--on-accent);background:var(--accent)}
.danger{border:1.5px solid var(--add-danger);border-radius:13px;padding:16px}
.danger h3{margin:0 0 7px;color:var(--add-danger);font-size:1rem}
.danger .b-del{margin-top:12px;padding:11px 20px;border-radius:10px;border:none;
  cursor:pointer;font:inherit;font-weight:700;color:var(--on-accent);
  background:var(--add-danger)}
.danger .b-del:disabled{opacity:.45;cursor:not-allowed}

/* ── modal card ── */
#modal{position:fixed;inset:0;z-index:70;display:none;place-items:center;padding:20px;
  background:color-mix(in srgb, var(--ink-950) 74%, transparent);backdrop-filter:blur(6px)}
#modal.on{display:grid}
.mcard{background:var(--surface);border:1px solid var(--line);border-radius:20px;
  width:min(560px,100%);max-height:88vh;overflow:auto;position:relative;
  box-shadow:0 26px 70px -22px var(--shadow-color)}
.mcard-h{display:flex;align-items:center;gap:11px;padding:20px 22px 4px}
.mcard-h .dot{width:12px;height:12px;border-radius:50%;background:var(--k);flex:none}
.mcard-h h2{font-size:1.12rem;margin:0}
.mcard-b{padding:16px 22px 22px}
.mcard .x{position:absolute;inset-inline-end:14px;top:14px;width:32px;height:32px;
  border-radius:9px;border:1px solid var(--line);background:transparent;color:var(--fg-2);
  cursor:pointer;font-size:15px;line-height:1}
.mcard .x:hover{color:var(--fg);border-color:var(--fg-3)}

/* ── voice ── */
.mic{display:flex;align-items:center;gap:11px;padding:13px 15px;border-radius:12px;
  border:1.5px dashed var(--field-br);background:var(--field-bg);margin-bottom:14px}
.mic button{width:42px;height:42px;border-radius:50%;border:none;cursor:pointer;flex:none;
  background:var(--add-voice);color:var(--on-accent);font-size:17px;line-height:1}
.mic button[data-rec=true]{animation:pulse 1.15s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--add-voice) 55%,transparent)}
  50%{box-shadow:0 0 0 11px transparent}}
.mic .t{font-size:.84rem;color:var(--fg-2);flex:1;min-width:0}
.mic .t b{color:var(--fg);font-weight:600}

/* ── shopping ── */
.shop-add{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px}
.shop-add input{flex:1 1 130px;padding:11px 12px;border-radius:10px;
  border:1.5px solid var(--field-br);background:var(--field-bg);color:var(--fg);font:inherit}
.shop-add button{padding:11px 20px;border-radius:10px;border:none;cursor:pointer;
  font:inherit;font-weight:700;color:var(--on-accent);
  background:linear-gradient(135deg,var(--btn-1),var(--btn-2))}
.sitem{display:flex;align-items:center;gap:12px;padding:12px 2px;
  border-bottom:1px solid var(--line)}
.sitem:last-child{border-bottom:none}
.sitem[data-b=true] .nm{text-decoration:line-through;color:var(--fg-3)}
.sitem .tick{width:24px;height:24px;border-radius:7px;flex:none;cursor:pointer;
  border:1.7px solid var(--field-br);background:transparent;color:var(--add-income);
  font-size:14px;line-height:1;padding:0}
.sitem[data-b=true] .tick{background:var(--add-income);border-color:var(--add-income);
  color:var(--on-accent)}
.sitem .nm{flex:1;min-width:0;font-size:.94rem}
.sitem .nm small{display:block;color:var(--fg-3);font-size:.75rem}
.sitem .amt{font-variant-numeric:tabular-nums;font-size:.9rem;white-space:nowrap}
.sitem .del{background:none;border:none;color:var(--fg-3);cursor:pointer;font-size:15px;padding:4px}
.sitem .del:hover{color:var(--add-expense)}
.shop-sum{display:flex;gap:16px;flex-wrap:wrap;padding:13px 0 4px;
  border-top:1px solid var(--line);margin-top:8px;font-size:.87rem}
.shop-sum b{font-variant-numeric:tabular-nums}
.shop-sum .over{color:var(--add-expense)}
.shop-sum .under{color:var(--add-income)}

/* ── add page ── */
.seg{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}
.seg button{flex:1 1 128px;padding:13px 10px;border-radius:12px;cursor:pointer;
  border:1.5px solid var(--field-br);background:var(--field-bg);color:var(--fg);
  font:inherit;font-weight:600;font-size:.9rem;transition:.15s;display:flex;
  align-items:center;justify-content:center;gap:7px}
.seg button:hover{border-color:var(--k)}
.seg button[aria-pressed=true]{border-color:var(--k);color:var(--k);
  background:color-mix(in srgb, var(--k) 12%, transparent)}
.seg button i{width:9px;height:9px;border-radius:50%;background:var(--k);
  display:inline-block;font-style:normal}
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:13px}
.fld{display:flex;flex-direction:column;gap:6px}
.fld label{font-size:.79rem;color:var(--fg-2);font-weight:600}
.fld input,.fld select,.fld textarea{padding:11px 12px;border-radius:10px;
  border:1.5px solid var(--field-br);background:var(--field-bg);color:var(--fg);
  font:inherit;font-size:.94rem;width:100%}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;
  border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.15)}
.fld .hint{font-size:.73rem;color:var(--fg-3)}
.fld.wide{grid-column:1/-1}
.f-act{display:flex;gap:10px;align-items:center;margin-top:17px;flex-wrap:wrap}
.f-act .b-go{padding:12px 26px;border-radius:11px;border:none;cursor:pointer;
  font:inherit;font-weight:700;font-size:.95rem;color:var(--on-accent);
  background:linear-gradient(135deg,var(--btn-1),var(--btn-2));
  box-shadow:var(--shadow-accent)}
.f-act .b-go:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}
.res{padding:12px 15px;border-radius:11px;font-size:.9rem;font-weight:600;
  border:1.5px solid transparent}
.res[data-k=ok]{color:var(--add-income);border-color:var(--add-income);
  background:color-mix(in srgb, var(--add-income) 11%, transparent)}
.res[data-k=no]{color:var(--add-expense);border-color:var(--add-expense);
  background:color-mix(in srgb, var(--add-expense) 11%, transparent)}
.recent{margin-top:7px}
.recent .r{display:flex;justify-content:space-between;align-items:center;
  gap:12px;padding:11px 2px;border-bottom:1px solid var(--line)}
.recent .r:last-child{border-bottom:none}
.recent .r b{font-weight:600;font-size:.92rem}
.recent .r .src{font-size:.73rem;color:var(--fg-3);
  border:1px solid var(--line);border-radius:6px;padding:2px 7px}

/* ═══ SIGN-IN SHEET ═══ */
#sheet{position:fixed;inset:0;z-index:60;display:none;place-items:center;padding:22px;
  background:var(--veil);backdrop-filter:blur(14px)}
#sheet.on{display:grid;animation:fade .3s var(--ease)}
@keyframes fade{from{opacity:0}}
.sheet-c{width:100%;max-width:392px;padding:34px 30px;border-radius:var(--r-xl);text-align:center;
  background:linear-gradient(180deg,var(--ink-800),var(--ink-850));
  border:1px solid var(--line-hi);box-shadow:var(--ring),var(--shadow-drop-strong);
  animation:rise .38s var(--ease)}
@keyframes rise{from{transform:translateY(16px) scale(.985);opacity:0}}
.sheet-c .mk{width:52px;height:52px;font-size:24px;margin:0 auto 18px}
.sheet-c h2{font-size:19px;font-weight:600;margin:0 0 7px;letter-spacing:-.02em}
.sheet-c p{color:var(--fg-2);font-size:13px;margin:0 0 22px;line-height:1.9}
input[type=password],input[type=text]{width:100%;height:50px;padding:0 16px;border-radius:var(--r);
  background:var(--ink-900);border:1px solid var(--line-hi);color:var(--fg);
  font:inherit;font-size:14px;text-align:center;
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
input::placeholder{color:var(--fg-3);letter-spacing:0}
input:focus{outline:none;border-color:var(--gold-3);box-shadow:var(--ring-accent)}
.b-full{width:100%;height:50px;margin-top:11px;border-radius:var(--r);font-weight:600;font-size:14.5px;
  background:linear-gradient(135deg,var(--btn-1),var(--btn-2));color:var(--on-accent);
  transition:filter .2s,transform .14s var(--ease)}
.b-full:hover{filter:brightness(1.06)} .b-full:active{transform:scale(.99)}
.b-full[disabled]{opacity:.5;cursor:default;filter:none;transform:none}
.msg{margin-top:12px;font-size:12.5px;color:var(--neg);min-height:19px;line-height:1.7}
.tip{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);
  font-size:12px;color:var(--fg-3);line-height:1.95}
.x{position:absolute;top:16px;inset-inline-start:16px;width:32px;height:32px;border-radius:50%;
  color:var(--fg-3);font-size:17px;transition:all .2s}
.x:hover{background:var(--ink-700);color:var(--fg)}
.lnk{color:var(--gold-2);border-bottom:1px solid var(--border-accent-soft);padding-bottom:1px}
.lnk:hover{color:var(--gold)}
.stack{margin-top:10px}
#c{letter-spacing:.22em;text-transform:uppercase;font-size:17px;font-weight:600}
[data-step][hidden]{display:none}

/* ═══ APP ═══ */
#app{display:none;min-height:100%}
#app.on{display:grid;grid-template-columns:212px 1fr}
aside{border-inline-start:1px solid var(--line);padding:22px 14px;position:sticky;top:0;
  height:100vh;background:var(--aside);backdrop-filter:blur(12px)}
aside .logo{padding:6px 8px 24px}
nav{display:flex;flex-direction:column;gap:3px}
nav button{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:var(--r-sm);
  font-size:13.5px;color:var(--fg-2);text-align:start;position:relative;transition:all .2s var(--ease)}
nav button:hover{background:var(--ink-800);color:var(--fg)}
nav button[aria-current=page]{background:var(--gold-wash);color:var(--gold-2)}
nav button[aria-current=page]::before{content:'';position:absolute;inset-inline-end:0;top:22%;
  height:56%;width:2px;border-radius:2px;background:var(--gold)}
nav .ic{width:17px;text-align:center;font-size:14px;opacity:.9}
/* ۴۲۹ · ۴۳۰ — گروهِ جمع‌شونده */
.ngrp{display:flex;flex-direction:column}
.ngrp>.ngh{opacity:.86}
.ngrp .ncar{margin-inline-start:auto;font-size:11px;opacity:.6}
.ngrp>.ngs{display:none;padding-inline-start:14px}
.ngrp[data-open=true]>.ngs{display:flex;flex-direction:column;gap:2px}
.ngrp>.ngs button{font-size:13px;padding:8px 11px}
/* ۴۳۲ — زبانهٔ تقویم */
.caltabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.caltabs button{padding:7px 14px;border-radius:999px;border:1px solid var(--line);
  background:transparent;color:var(--fg-2);font:inherit;font-size:13.5px;cursor:pointer}
.caltabs button[aria-pressed=true]{background:var(--gold-wash);color:var(--gold-2);
  border-color:transparent;font-weight:600}
/* ۴۳۴ — صفحهٔ امروز */
.tdgrid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.tdrow{display:flex;align-items:center;gap:10px;padding:9px 2px;border-bottom:1px solid var(--line)}
.tdrow:last-child{border-bottom:0}
.tdrow .tk{width:26px;height:26px;border-radius:8px;border:1px solid var(--line);
  background:transparent;color:var(--fg-2);cursor:pointer;font:inherit;line-height:1}
.tdrow .tk[data-on=true]{background:var(--k-habit);border-color:transparent;color:#fff}
.tdrow .tt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tdrow .tg{font-size:11.5px;padding:2px 8px;border-radius:999px;background:var(--ink-800);color:var(--fg-2)}
.tdnote{background:var(--ink-800);border-radius:var(--r-sm);padding:10px 12px;margin-top:8px;
  font-size:13.5px;line-height:1.9;white-space:pre-wrap}
/* یادداشت پای تیک، از خودِ «امروز» */
.tdrow .tnb{width:26px;height:26px;border-radius:8px;border:1px solid var(--line);
  background:transparent;color:var(--fg-3);cursor:pointer;font:inherit;line-height:1;
  flex:none;font-size:13px}
.tdrow .tnb[data-has=true]{color:var(--gold);border-color:var(--border-accent)}
.tdrow .tnb:hover{color:var(--fg)}
.tded{margin-top:10px;border:1px solid var(--line-hi);border-radius:var(--r-sm);
  padding:12px;background:var(--ink-800)}
.tded h4{margin:0 0 8px;font-size:13.5px;font-weight:700}
.tded input{width:100%;min-height:0}
.tded input,.tded textarea{width:100%;min-height:82px;resize:vertical;font:inherit;font-size:13.5px;
  line-height:1.9;color:var(--fg);background:var(--field-bg);border:1px solid var(--field-br);
  border-radius:var(--r-sm);padding:9px 11px}
.tded .tdact{display:flex;gap:8px;margin-top:9px;flex-wrap:wrap}
.tdprev{font-size:12px;color:var(--fg-3);margin:6px 0 0;line-height:1.8;white-space:pre-wrap}
/* ۴۳۵ — دکمه‌های جابه‌جایی */
.pl-act button[data-mvup],.pl-act button[data-mvdn]{opacity:.72}
/* ۴۴۱ — کارت کسری وجه */
.sf{display:flex;flex-wrap:wrap;gap:16px;align-items:baseline}
.sf b{font-size:19px}
.sf .sfneg{color:var(--neg)}
.sf .sfpos{color:var(--pos)}
.sfli{display:flex;justify-content:space-between;gap:10px;padding:7px 2px;
  border-bottom:1px solid var(--line);font-size:13.5px}
.sfli:last-child{border-bottom:0}
/* ۴۳۸–۴۴۰ — پیشنهادها */
.sug{margin-top:10px;border:1px dashed var(--line);border-radius:var(--r-sm);padding:10px 12px}
.sug h4{margin:0 0 6px;font-size:13px;color:var(--fg-2);font-weight:600}
.sug div{font-size:13px;line-height:1.95}
/* ۰۸/۲۹ — فرمِ پرداختِ دستی، زیرِ همان ردیفی که بازش کرده. */
.cmpayf{margin:-4px 0 12px;padding:12px 13px;border:1px dashed var(--line);
  border-radius:var(--r-sm);background:var(--bg-2,transparent)}
.cmpayf h4{margin:0 0 10px;font-size:14px;color:var(--fg-2);font-weight:600}
.cmpayh{margin:2px 0 10px;font-size:.78rem;color:var(--fg-2);opacity:.75;line-height:1.7}
.cmpaya{display:flex;gap:8px;flex-wrap:wrap}
/* ۵۴۴ — ردیفِ پیشنهاد: متن سمت راست، اختلاف و دکمه سمت چپ. */
.cmrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  padding:6px 0;border-bottom:1px solid var(--line)}
.cmrow:last-child{border-bottom:0}
.cmrow .cmtxt{flex:1;min-width:180px;line-height:1.7}
.cmgap{font-size:.78rem;padding:1px 7px;border-radius:7px;
  border:1px solid var(--line);color:var(--fg-2);white-space:nowrap}
.cmgap.ex{color:var(--verd);border-color:var(--verd)}
/* ۵۴۵ — انتخابگرِ دستی، هم‌متریکِ کشوهای کارتِ پیش‌نویس. */
.cmpick{margin-top:9px;padding:9px;border:1px dashed var(--line);
  border-radius:var(--r-sm);display:flex;gap:8px;flex-wrap:wrap;
  align-items:center;font-size:.85rem}
/* ۰۹/۰۳ قلم ۶۱۴ — دیگر select بومی در کار نیست. گزینه‌ها
   ردیف‌ردیف دیده می‌شوند تا عنوان و مبلغ و سررسید بریده نشوند. */
.cmpick select{flex:1;min-width:210px;border:1px solid var(--field-br);
  background:var(--field-bg);color:var(--fg);border-radius:9px;padding:7px 9px;
  font-size:.82rem}
.cmpick input{flex:1;min-width:140px;border:1px solid var(--field-br);
  background:var(--field-bg);color:var(--fg);border-radius:9px;padding:7px 9px;
  font-size:.82rem}
.cmpick .cmwide{flex-basis:100%}
.cmlist{display:flex;flex-direction:column;gap:6px;flex-basis:100%;
  max-height:270px;overflow-y:auto;padding-inline-end:2px}
.cmopt{display:block;width:100%;text-align:start;line-height:1.65;
  border:1px solid var(--field-br);background:var(--field-bg);color:var(--fg);
  border-radius:10px;padding:8px 11px;cursor:pointer;transition:all .15s}
.cmopt:hover{border-color:var(--border-accent)}
.cmopt.on{border-color:var(--accent);background:rgba(var(--accent-rgb),.10)}
.cmopt .ct{font-size:.85rem;font-weight:600;display:block}
.cmopt .cs{font-size:.76rem;color:var(--fg-3);display:block;margin-top:2px}
.cmchips{display:flex;gap:6px;flex-wrap:wrap;flex-basis:100%}
.cmchip{border:1px solid var(--field-br);background:var(--field-bg);
  color:var(--fg-2);border-radius:999px;padding:5px 13px;font-size:.8rem;
  cursor:pointer;transition:all .15s}
.cmchip.on{border-color:var(--accent);color:var(--accent);font-weight:600;
  background:rgba(var(--accent-rgb),.10)}
.cmempty{flex-basis:100%;color:var(--fg-3);font-size:.82rem}
/* ۰۹/۰۳ قلم ۶۱۶ — حرکتِ دلاری و آدرسِ ولت */
.fxk{display:flex;gap:6px;flex-wrap:wrap;flex-basis:100%;margin-bottom:2px}
.fxk button{border:1px solid var(--field-br);background:var(--field-bg);
  color:var(--fg-2);border-radius:999px;padding:5px 13px;font-size:.8rem;
  cursor:pointer;transition:all .15s}
.fxk button.on{border-color:var(--accent);color:var(--accent);font-weight:600;
  background:rgba(var(--accent-rgb),.10)}
.fxlog{margin-top:8px;border-top:1px dashed var(--line);padding-top:7px}
.fxlog .l{display:flex;gap:8px;flex-wrap:wrap;align-items:baseline;
  font-size:.79rem;padding:3px 0;color:var(--fg-2)}
.fxlog .l b{color:var(--fg)}
.fxwal{font-size:.75rem;color:var(--fg-3);word-break:break-all;
  direction:ltr;text-align:left;margin-top:3px}
.side-foot{position:absolute;bottom:20px;inset-inline:14px}
.b-out{width:100%;height:38px;border-radius:var(--r-sm);font-size:12.5px;color:var(--fg-3);
  border:1px solid var(--line);transition:all .2s}
.b-out:hover{color:var(--neg);border-color:var(--neg-wash);background:var(--neg-wash)}

main{padding:28px clamp(16px,3.4vw,38px) 70px;max-width:1460px;min-width:0;width:100%;
  overflow-x:hidden}
/* ۴۳۱: هر چیز پهنی (جدول پلنر، بلوک کد) داخل خودش اسکرول می‌شود،
   نه اینکه کل صفحه را به پهنا بکشد. */
main table{max-width:100%}
main pre{overflow-x:auto}
.top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:28px}
.hi{font-size:clamp(20px,3vw,25px);font-weight:600;letter-spacing:-.028em;margin:0}
.date{color:var(--fg-3);font-size:13px;margin:4px 0 0}
/* ══════════ قلم ۶۲۵ — بازار ══════════ */
.mkgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:9px;margin-bottom:14px}
.mkq{background:var(--bg-2);border:1px solid var(--line);border-radius:10px;padding:9px 11px;
  cursor:pointer;transition:border-color .15s,transform .1s;text-align:right}
.mkq:hover{border-color:var(--gold)}
.mkq.on{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}
.mkq b{display:block;font-size:12.5px;color:var(--fg-2);font-weight:600}
.mkq .p{display:block;font-size:16px;font-weight:700;margin-top:3px;
  font-variant-numeric:tabular-nums;direction:ltr;text-align:right}
.mkq .d{font-size:11.5px;font-variant-numeric:tabular-nums;direction:ltr;display:inline-block}
.mkup{color:var(--pos)} .mkdn{color:var(--neg)}
.mkstale{opacity:.55}
.mkbar{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-bottom:11px}
.mktf{display:flex;gap:4px}
.mktf button{padding:4px 11px;border-radius:7px;border:1px solid var(--line);
  background:var(--bg-2);color:var(--fg-2);cursor:pointer;font-size:12.5px;font-family:inherit}
.mktf button.on{background:var(--gold);color:var(--on-accent);border-color:var(--gold);font-weight:700}
.mkchart{background:var(--bg-2);border:1px solid var(--line);border-radius:11px;
  padding:10px;overflow-x:auto}
.mkchart svg{display:block;width:100%;min-width:520px;height:auto}
.mkal{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px;
  background:var(--bg-2);display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap}
.mkal .g{flex:1;min-width:180px}
.mkal.off{opacity:.5}
.mkdist{font-size:11.5px;color:var(--fg-3);font-variant-numeric:tabular-nums;direction:ltr;display:inline-block}
.date .dtsep{margin:0 6px;opacity:.55}
.date .clk{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;letter-spacing:.02em;color:var(--fg-2);font-size:14px;font-weight:600}
.badge{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:var(--r-full);
  font-size:12.5px;white-space:nowrap;background:var(--verd-wash);color:var(--verd);
  border:1px solid var(--border-verd)}
.badge.w{background:var(--warn-wash);color:var(--warn);border-color:var(--border-warn)}
.badge i{width:6px;height:6px;border-radius:50%;background:currentColor;font-style:normal}

/* ── صفحهٔ نمودارها (سند ۱۹۰) ───────────────────────
   همهٔ نام‌ها با gr شروع می‌شوند. یک بار `bars` را عمومی
   نام گذاشتیم و نوارِ آنتنِ گوشی را ۱۳۰ پیکسل بلند کرد. */
.grsvg{display:block;width:100%;height:auto;overflow:visible}
.grsvg .grid{stroke:var(--line);stroke-width:1}
.grsvg .tick{fill:var(--fg-3);font-size:10px}
.grsvg .lbl{fill:var(--fg-2);font-size:10.5px}
.grsvg .dlbl{fill:var(--fg);font-size:10.5px;font-weight:600}
.grsvg .avg{stroke:var(--fg-3);stroke-width:1.5;stroke-dasharray:4 4;opacity:.75}
.grsvg .mk{transition:opacity .12s}
.grsvg:hover .mk{opacity:.55}
.grsvg .mk:hover{opacity:1}
.grlg{display:flex;gap:16px;align-items:center;flex-wrap:wrap;
      margin:0 0 10px;font-size:12px;color:var(--fg-2)}
.grlg span{display:inline-flex;align-items:center;gap:6px}
.grlg i{width:10px;height:10px;border-radius:3px;display:block}
.grrow{display:flex;align-items:center;gap:11px;padding:6px 0}
.grnm{flex:0 0 34%;font-size:12.5px;color:var(--fg-2);overflow:hidden;
      text-overflow:ellipsis;white-space:nowrap}
.grtrk{flex:1;height:11px;border-radius:6px;background:var(--ink-750);overflow:hidden}
.grtrk i{display:block;height:100%;border-radius:6px;min-width:3px}
.grvl{flex:0 0 auto;font-size:12px;color:var(--fg);white-space:nowrap}
.grsub{font-size:11.5px;color:var(--fg-3);margin:0 0 12px}
.grempty{padding:18px 2px;color:var(--fg-3);font-size:12.5px}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(172px,1fr));gap:12px;margin-bottom:24px}
.st{position:relative;padding:17px 19px;border-radius:var(--r);overflow:hidden;
  background:var(--ink-850);border:1px solid var(--line);box-shadow:var(--ring);
  transition:all .26s var(--ease)}
.st:hover{transform:translateY(-2px);border-color:var(--line-hi)}
.st::before{content:'';position:absolute;top:0;inset-inline-start:0;width:100%;height:2px;
  background:linear-gradient(90deg,var(--ac,var(--gold)),transparent 72%)}
.st .k{font-size:12.5px;color:var(--fg-2);margin:0}
.st .v{font-size:27px;font-weight:600;margin:7px 0 0;letter-spacing:-.035em;line-height:1.25}
.st .v small{font-size:12.5px;font-weight:400;color:var(--fg-3);margin-inline-start:5px;letter-spacing:0}
.st .s{font-size:11.5px;color:var(--fg-3);margin:2px 0 0}

.card{border-radius:var(--r-lg);overflow:hidden;margin-bottom:16px;
  background:var(--ink-850);border:1px solid var(--line);box-shadow:var(--ring)}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:16px 21px;border-bottom:1px solid var(--line)}
.card-h h2{font-size:14.5px;font-weight:600;margin:0;letter-spacing:-.018em}
.card-b{padding:6px 21px 18px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{padding:5px 13px;border-radius:var(--r-full);font-size:12px;color:var(--fg-2);
  border:1px solid var(--line);transition:all .2s var(--ease)}
.chip:hover{color:var(--fg);border-color:var(--line-hi)}
.chip[aria-pressed=true]{background:var(--gold-wash);color:var(--gold-2);border-color:var(--border-accent)}

.week{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;padding:16px 21px 6px}
.dy{border:1px solid var(--line);border-radius:var(--r);padding:12px 5px;text-align:center;
  background:var(--ink-900);transition:all .22s var(--ease)}
.dy:hover{border-color:var(--line-hi);transform:translateY(-2px)}
.dy[data-t=true]{border-color:var(--gold-3);background:var(--gold-wash)}
.dy .n{font-size:11px;color:var(--fg-3)}
.dy .d{font-size:19px;font-weight:600;margin-top:3px;letter-spacing:-.03em}
.dy[data-e=true] .d{color:var(--fg-3);font-weight:500}
.dy .dots{margin-top:8px;height:5px;display:flex;gap:3px;justify-content:center}
.dy .dots u{width:5px;height:5px;border-radius:50%;background:var(--gold);text-decoration:none}

.mhead{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 21px}
.mhead b{font-size:15.5px;font-weight:600;letter-spacing:-.02em}
.mnav{width:34px;height:34px;border-radius:var(--r-sm);border:1px solid var(--line);
  font-size:17px;line-height:1;color:var(--fg-2);transition:all .18s var(--ease)}
.mnav:hover{border-color:var(--line-hi);background:var(--ink-800);color:var(--fg)}
.mgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--g);
  padding:0 var(--mgp) 20px;position:relative;--g:6px;--mgp:21px;
  --pitch:calc((100% + var(--g))/7)}
.mgrid::before{content:'';position:absolute;inset:0 var(--mgp) 20px;z-index:0;
  pointer-events:none;border-radius:var(--r-xs);
  background:repeating-linear-gradient(to left,
    transparent 0 var(--pitch),
    var(--stripe) var(--pitch) calc(var(--pitch)*2 - var(--g)),
    transparent calc(var(--pitch)*2 - var(--g)) calc(var(--pitch)*2))}
.mgrid > *{position:relative;z-index:1}
.mdow{text-align:center;font-size:11.5px;color:var(--fg-2);padding-bottom:4px;font-weight:500}
.mdow .sm{display:none}
.mcell{aspect-ratio:1;border:1px solid var(--line);border-radius:var(--r-sm);
  background:var(--ink-900);cursor:pointer;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:5px;transition:all .18s var(--ease)}
.mcell:hover{border-color:var(--gold-3);transform:translateY(-2px)}
.mcell.pad{border:0;background:none;cursor:default}
.mcell.today{border-color:var(--gold-3);background:var(--gold-wash)}
.mcell.today .dnum{color:var(--gold-2)}
.mcell .dnum{font-size:14.5px;font-weight:600;letter-spacing:-.02em}
.mcell.bare .dnum{color:var(--fg-3);font-weight:500}
.mcell .mdots{display:flex;gap:2.5px;justify-content:center;min-height:5px}
.mcell .mdots u{width:5px;height:5px;border-radius:50%;text-decoration:none}
.mcell.sel{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-wash)}
.dpanel{margin:0 21px 18px;border:1px solid var(--line);border-radius:var(--r);
  background:var(--ink-900);overflow:hidden;animation:slide .3s var(--ease)}
.dp-h{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:12px 16px;border-bottom:1px solid var(--line)}
.dp-h b{font-size:13.5px;font-weight:600}
.dp-a{display:flex;gap:6px}
.dp-b{padding:2px 16px 10px}
.dp-empty{padding:18px 16px;margin:0;text-align:center;font-size:13px;color:var(--fg-3)}
.mfoot{padding:0 21px 18px;display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--fg-3)}
.mfoot span{display:inline-flex;align-items:center;gap:5px}
.mfoot u{width:6px;height:6px;border-radius:50%;text-decoration:none}
.theme{width:34px;height:34px;border-radius:var(--r-sm);border:1px solid var(--line);
  display:grid;place-items:center;font-size:14px;color:var(--fg-2);transition:all .2s var(--ease)}
.theme:hover{border-color:var(--gold-3);color:var(--gold-2);background:var(--gold-wash)}
.rows{display:flex;flex-direction:column}
.rw{display:flex;align-items:center;gap:13px;padding:13px 0;border-bottom:1px solid var(--line);
  animation:slide .34s var(--ease) backwards}
@keyframes slide{from{opacity:0;transform:translateY(5px)}}
.rw:last-child{border-bottom:0}
.rw .ic2{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;
  flex-shrink:0;font-size:15px;font-style:normal}
.rw .bd{flex:1;min-width:0}
.rw .t{font-size:14px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rw .m{font-size:12px;color:var(--fg-3);margin:2px 0 0}
.rw .am{font-size:13.5px;white-space:nowrap}
.tag{font-size:11px;padding:3px 10px;border-radius:var(--r-full);white-space:nowrap}
.k-reminder{color:var(--k-reminder)}
.k-task{color:var(--k-task)}
.k-check{color:var(--k-check)}
.k-installment{color:var(--k-installment)}
.k-debt{color:var(--k-debt)}
.k-schedule{color:var(--k-schedule)}
.tag,.ic2{background:color-mix(in srgb, currentColor 14%, transparent)}
@supports not (background:color-mix(in srgb,red 10%,transparent)){
  .tag,.ic2{background:var(--ink-700)}
}
.done .t{color:var(--fg-3);text-decoration:line-through}
.dh{font-size:11.5px;color:var(--fg-3);padding:17px 0 5px;letter-spacing:.01em}
.dh::after{content:'';display:block;height:1px;margin-top:6px;
  background:linear-gradient(90deg,var(--line),transparent)}

.pcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(198px,1fr));gap:12px}
.pc{border-radius:var(--r-lg);overflow:hidden;background:var(--ink-800);
  box-shadow:var(--ring);transition:transform .22s var(--ease),box-shadow .22s var(--ease)}
.pc:hover{transform:translateY(-3px)}
.pc.on{box-shadow:0 0 0 2px var(--pc),var(--ring)}
.pc.off{opacity:.5}
.pc-band{height:5px;background:var(--pc)}
.pc-b{padding:16px 15px 15px}
.pc-n{font-size:14px;font-weight:600;letter-spacing:-.01em;
  color:color-mix(in srgb,var(--pc) 78%,var(--fg))}
.pc-p{margin:12px 0 2px;font-size:24px;font-weight:600;letter-spacing:-.035em;
  color:color-mix(in srgb,var(--pc) 78%,var(--fg))}
.pc-p u{font-size:12px;font-weight:400;text-decoration:none;color:var(--fg-3);margin-inline-start:4px}
.pc-p.none{font-size:17px;color:var(--fg-3)}
.pc-d{margin:0 0 14px;font-size:11px;color:var(--fg-3)}
.pc-l{font-size:12px;line-height:2.05;color:var(--fg-2)}
.pc-l b{font-weight:600;color:var(--fg)}
.pc-c{margin-top:12px;display:flex;gap:5px;flex-wrap:wrap;min-height:22px}
.pc-c span{font-size:10.5px;padding:3px 9px;border-radius:var(--r-full);
  background:color-mix(in srgb,var(--pc) 16%,transparent);
  color:color-mix(in srgb,var(--pc) 76%,var(--fg))}
.pc-c span.mute{background:var(--ink-700);color:var(--fg-3)}
.pc-e{margin-top:14px;width:100%;padding:8px;border-radius:var(--r-sm);
  text-align:center;font-size:12px;color:var(--fg-2);
  background:var(--fill-subtle);transition:all .18s var(--ease)}
.pc-e:hover{color:color-mix(in srgb,var(--pc) 78%,var(--fg));
  background:color-mix(in srgb,var(--pc) 14%,transparent)}
.pc-e.on{color:color-mix(in srgb,var(--pc) 80%,var(--fg));
  background:color-mix(in srgb,var(--pc) 18%,transparent)}
@supports not (color:color-mix(in srgb,red 50%,blue)){
  .pc-n,.pc-p{color:var(--pc)} .pc-c span{background:var(--ink-700);color:var(--pc)}
}
.ped{margin-top:14px;border:1px solid var(--line-hi);border-radius:var(--r-lg);
  background:var(--ink-850);overflow:hidden;animation:slide .3s var(--ease)}
.ped-h{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:14px 18px;border-bottom:1px solid var(--line)}
.ped-h b{font-size:13.5px;font-weight:600}
.ped-b{padding:16px 18px 18px}
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:11px}
.f-l{display:block;font-size:11.5px;color:var(--fg-2);margin-bottom:5px}
input.f-i{width:100%;height:37px;padding:0 11px;border-radius:var(--r-sm);
  background:var(--ink-900);border:1px solid var(--line);color:var(--fg);
  font:inherit;font-size:13px;text-align:start;letter-spacing:normal}
input.f-i:focus{outline:none;border-color:var(--gold-3);box-shadow:0 0 0 3px var(--gold-wash)}
.f-hint{font-size:10.5px;color:var(--fg-3);margin:4px 0 0}
.fsec{font-size:11px;color:var(--fg-3);margin:17px 0 8px}
.chips2{display:flex;gap:7px;flex-wrap:wrap}
.fc{padding:6px 13px;border-radius:var(--r-full);border:1px solid var(--line);
  font-size:12px;color:var(--fg-2);transition:all .18s var(--ease)}
.fc:hover{border-color:var(--line-hi);color:var(--fg)}
.fc[aria-pressed=true]{background:var(--verd-wash);color:var(--verd);border-color:var(--border-verd-strong)}
.ped-f{display:flex;gap:10px;margin-top:18px;align-items:center;flex-wrap:wrap}
.b-save{padding:9px 22px;border-radius:var(--r-sm);font-size:13px;font-weight:600;
  background:linear-gradient(135deg,var(--btn-1),var(--btn-2));color:var(--on-accent)}
.b-save:hover{filter:brightness(1.07)}
.b-save[disabled]{opacity:.5;cursor:default;filter:none}
.pl-msg{font-size:12.5px;min-height:18px}
.pl-msg.good{color:var(--pos)} .pl-msg.bad{color:var(--neg)}
.void{text-align:center;padding:52px 20px}.void{text-align:center;padding:52px 20px}
.void svg{margin-bottom:14px;opacity:.5}
.void h3{font-size:15px;font-weight:600;margin:0 0 6px}
.void p{font-size:13px;color:var(--fg-3);margin:0;line-height:1.9}
.sk{height:13px;border-radius:6px;
  background:linear-gradient(90deg,var(--ink-750),var(--ink-700),var(--ink-750));
  background-size:200% 100%;animation:sh 1.4s linear infinite}
@keyframes sh{to{background-position:-200% 0}}
.alert.ok{background:var(--pos-wash);color:var(--pos);border-color:var(--pos)}
.msg.ok{color:var(--pos)}
.alert{padding:14px 17px;border-radius:var(--r);font-size:13.5px;margin-bottom:16px;
  background:var(--neg-wash);color:var(--neg);border:1px solid var(--border-neg)}

@media (max-width:860px){
  /* ۰۹/۲۷ — روی گوشی دکمه‌ها ستونی در سمت راست می‌نشینند، نه نوارِ پایین.
     همان چیدمانِ دسکتاپ است، فقط باریک‌تر: در RTL ستونِ اولِ گرید
     خودش سمت راست می‌افتد، پس نه position:fixed لازم است نه هیچ
     padding جبرانی زیرِ محتوا. کمترین تغییر، کمترین چیزی که بشکند. */
  #app.on{grid-template-columns:72px 1fr}
  aside{padding:10px 3px;height:100dvh;overflow-y:auto;overscroll-behavior:contain}
  aside .logo,.side-foot{display:none}
  nav button{flex-direction:column;gap:3px;font-size:9.5px;font-weight:500;line-height:1.35;
    padding:9px 2px;text-align:center;justify-content:center;color:var(--fg-2);
    overflow:hidden;word-break:break-word}
  nav button[aria-current=page]{font-weight:600;color:var(--gold-2);background:var(--gold-wash)}
  nav .ic{font-size:18px;width:auto}
  /* در ستونِ ۷۲ پیکسلی فلشِ گروه جا نمی‌شود و فقط بهم می‌ریزد؛
     باز/بسته بودنِ گروه از خودِ زیرمجموعه‌ها پیداست. */
  .ngrp .ncar{display:none}
  /* سردرِ گروه باید از آیتمِ ساده جدا باشد، وگرنه در ستونِ باریک
     همه یک‌شکل می‌شوند و سلسله‌مراتب گم می‌شود. */
  .ngrp>.ngh{opacity:1;color:var(--fg)}
  .ngrp[data-open=true]>.ngh{color:var(--gold-2)}
  .ngrp>.ngs{padding-inline-start:0}
  .ngrp[data-open=true]>.ngs{background:rgba(255,255,255,.028);border-radius:11px;padding-block:3px}
  .ngrp>.ngs button{font-size:9px;padding:7px 1px;opacity:.92}
  .ngrp>.ngs .ic{font-size:15px}
  /* ۸۸ پیکسل برای خالی ماندنِ نوارِ پایین بود؛ نوار رفت. */
  #toast{bottom:24px}
  main{padding:20px 14px}
  .week{padding:13px 12px 4px;gap:5px}
  .mhead,.mfoot{padding-inline:13px}
  .dpanel{margin-inline:13px}
  .mgrid{--g:4px;--mgp:13px}
  .mcell .dnum{font-size:13px}
  .mdow{font-size:11px}
  .mdow .lg{display:none}
  .mdow .sm{display:inline}
  .card-b{padding:5px 15px 15px} .card-h{padding:14px 15px}
  .st .v{font-size:23px}
}

/* ═══════════════════════════════════════════════════════════════
   layer 3 · یکسان‌سازی کنترل‌ها  —  آیتم ۲
   قبل از این، کنترل‌های سایت ۹ مقدار padding مختلف و ۸ شعاع مختلف
   داشتند (6 · 7 · 8 · 9 · 10 · 11 · 12 · 13 · 15 پیکسل) و کلاس
   `.seg` دو بار با دو تعریف متفاوت نوشته شده بود — دومی برنده بود و
   اولی مرده. اینجا هیچ رنگی عوض نمی‌شود؛ فقط اندازه، شعاع و قلم روی
   یک مقیاس می‌نشیند. چون این بلوک آخر شیت است، با همان specificity
   برنده می‌شود و نیازی به !important نیست.
   ═══════════════════════════════════════════════════════════════ */
:root{
  --ctl-h:38px;          /* هر کنترل درون‌خطی: ورودی، انتخابگر، دکمه کوچک */
  --ctl-h-lg:44px;       /* کنش اصلی یک صفحه */
  --ctl-h-sm:30px;       /* دکمه داخل ردیف */
  --ctl-px:14px;
  --ctl-fs:13.5px;
}

/* ورودی‌ها و انتخابگرها */
.shop-add input,.inbox-h input,.dial input,input.f-i,
.fld input,.fld select,.fld textarea,.rf input,.rf select,
.pf input,.pf select,.pf textarea{
  min-height:var(--ctl-h); border-radius:var(--r-sm); font-size:var(--ctl-fs);
}
.fld textarea,.pf textarea,.compose textarea{min-height:calc(var(--ctl-h)*2)}

/* دکمه‌های درون‌خطی */
.shop-add button,.inbox-h button,.dial button,.compose button,
.thr-h .bk,.thr-h .cl,.cal .rc,.catrow button,.dl a.btn,.dl button.btn{
  min-height:var(--ctl-h); border-radius:var(--r-sm);
  font-size:var(--ctl-fs); padding-inline:var(--ctl-px);
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
}
/* کنش اصلی صفحه بلندتر است — تنها تفاوت مجاز */
.f-act .b-go,.danger .b-del{
  min-height:var(--ctl-h-lg); border-radius:var(--r-sm);
  font-size:var(--ctl-fs); padding-inline:24px;
}
/* قرص‌ها (chip / tab) شعاع کامل نگه می‌دارند — نقش دیگری دارند */
.atabs button,.chip,.chips2 button,.pst,.dbadge,.qb{border-radius:var(--r-full)}
.atabs button{min-height:var(--ctl-h-sm);padding-inline:13px;font-size:12.5px}

/* ۵۷۴ — ردیفِ کنترلِ بازه در صفحهٔ نمودارها. دو گروه کنار هم،
   و روی صفحهٔ باریک زیر هم. `.atabs` خودش قرص‌ها را می‌سازد؛
   اینجا فقط چیدمان و برچسب اضافه می‌شود. */
.grctl{display:flex;gap:18px;flex-wrap:wrap}
.grctl>div{flex:1 1 230px;min-width:0}
.grctl .atabs{margin-bottom:0}
.grctl-l{font-size:11.5px;color:var(--fg-3);margin-bottom:7px}

/* ۲۳۰ — ردیفِ نشست: دکمهٔ بستن سمتِ دیگر ردیف می‌نشیند. */
.ssrow{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.ssrow .pfoff{flex:1 1 220px;min-width:0}
.btn.sm{min-height:30px;padding-inline:14px;font-size:12.5px}

/* `.seg` صفحه ثبت. تعریف اولِ مرده حذف نشد چون ممکن است جای دیگری
   به آن تکیه کند؛ به‌جایش این یکی صریح و آخر است. */
.seg button{min-height:var(--ctl-h-lg);border-radius:var(--r-sm);font-size:var(--ctl-fs)}

/* چهار نقش رنگی — و فقط چهار تا. کد تازه از این‌ها استفاده می‌کند
   به‌جای اینکه دوباره gradient دستی بنویسد. */
.u-b{min-height:var(--ctl-h);border-radius:var(--r-sm);padding-inline:var(--ctl-px);
  font:inherit;font-size:var(--ctl-fs);font-weight:600;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  border:1.5px solid var(--field-br);background:var(--field-bg);color:var(--fg);
  transition:.15s var(--ease)}
.u-b:hover{border-color:var(--line-hi)}
.u-b:disabled{opacity:.5;cursor:not-allowed}
.u-b.pri{border-color:transparent;color:var(--on-accent);font-weight:700;
  background:linear-gradient(135deg,var(--btn-1),var(--btn-2))}
.u-b.ok{border-color:var(--pos);color:var(--pos);background:var(--pos-wash)}
.u-b.dan{border-color:var(--neg);color:var(--neg);background:var(--neg-wash)}
.u-b.gh{background:transparent;color:var(--fg-2)}
.u-b.lg{min-height:var(--ctl-h-lg);padding-inline:24px}
.u-b.sm{min-height:var(--ctl-h-sm);padding-inline:11px;font-size:12.5px}
.u-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

/* ── تب افق لیست خرید — آیتم ۳ ── */
.hz{display:flex;gap:6px;background:var(--field-bg);border:1.5px solid var(--field-br);
  border-radius:var(--r-sm);padding:4px;margin-bottom:14px}
.hz button{flex:1;min-height:var(--ctl-h);border-radius:var(--r-xs);border:0;
  background:none;color:var(--fg-2);font:inherit;font-size:var(--ctl-fs);
  font-weight:600;cursor:pointer;display:flex;align-items:center;
  justify-content:center;gap:7px;transition:.15s var(--ease)}
.hz button[aria-pressed=true]{background:var(--accent,var(--gold));color:var(--on-accent)}
.hz .n{font-size:11px;opacity:.75;font-variant-numeric:tabular-nums}
.sitem .meta{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-top:3px}
.sitem .pin{font-size:10.5px;padding:1px 8px;border-radius:var(--r-full);
  border:1px solid currentColor;white-space:nowrap}
.pin.hi{color:var(--neg)} .pin.lo{color:var(--fg-3)} .pin.dt{color:var(--verd)}
.pin.late{color:var(--neg);background:var(--neg-wash)}
.sv{width:100%;height:5px;border-radius:var(--r-full);background:var(--ink-700);
  overflow:hidden;margin-top:6px}
.sv i{display:block;height:100%;background:var(--verd);border-radius:var(--r-full)}

/* ── پلنر ماهیانه — آیتم ۵ ── */
.pl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}
.pl{border-collapse:separate;border-spacing:0;width:100%;min-width:820px;font-size:12.5px}
.pl th,.pl td{padding:0;text-align:center;border-bottom:1px solid var(--line)}
.pl thead th{position:sticky;top:0;z-index:3;background:var(--ink-800);color:var(--fg-2);
  font-weight:600;font-size:11px;padding:6px 2px;white-space:nowrap}
.pl .nmcol{position:sticky;inset-inline-start:0;z-index:4;background:var(--ink-850);
  text-align:start;padding:8px 12px;min-width:154px;max-width:200px}
.pl thead .nmcol{z-index:5;background:var(--ink-800)}
.pl tbody tr:hover .nmcol{background:var(--ink-800)}
.pl tbody tr:hover td{background:rgba(255,255,255,.014)}
.pl .wsep{width:6px;padding:0;background:var(--stripe)}
.pl .dcol{width:31px}
.pl .fri{color:var(--neg)}
.pl th.tdy{background:var(--gold-wash);color:var(--gold-2)}
.pl .nm b{font-weight:600;font-size:13px}
.pl .nm small{display:block;color:var(--fg-3);font-size:10.5px;margin-top:1px}
.plc{width:25px;height:25px;border-radius:var(--r-xs);border:1.5px solid var(--field-br);
  background:transparent;color:var(--fg-3);font-size:12px;line-height:1;cursor:pointer;
  padding:0;transition:.14s var(--ease)}
.plc[data-on=true]{background:var(--pos);border-color:var(--pos);color:var(--ink-950)}
.plc[data-fut=true]{opacity:.25;cursor:not-allowed}
.plc[data-off=true]{border-style:dashed;opacity:.45}
.plc:not([data-fut=true]):hover{border-color:var(--gold-3);transform:scale(1.14)}
.pl-bar{width:52px;height:6px;border-radius:var(--r-full);background:var(--ink-700);
  overflow:hidden;display:inline-block;vertical-align:middle}
.pl-bar i{display:block;height:100%;border-radius:var(--r-full)}
.pl-n{font-variant-numeric:tabular-nums;font-size:11.5px;color:var(--fg-2)}
.pl-sum td{background:var(--ink-800);font-size:10.5px;color:var(--fg-3);padding:6px 2px}
.pl-sum .nmcol{background:var(--ink-800);font-size:11.5px;color:var(--fg-2)}
.pl-act{display:flex;gap:5px;justify-content:center}
.pl-act button{width:26px;height:26px;border-radius:var(--r-xs);border:1px solid var(--line);
  color:var(--fg-3);font-size:12px;padding:0}
.pl-act button:hover{border-color:var(--line-hi);color:var(--fg)}
.pl-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.pl-head select{min-height:var(--ctl-h);border-radius:var(--r-sm);font-size:var(--ctl-fs);
  border:1.5px solid var(--field-br);background:var(--field-bg);color:var(--fg);
  font-family:inherit;padding:0 9px}
.pl-ed{border:1.5px solid var(--field-br);border-radius:var(--r);padding:14px 15px;
  margin-bottom:14px;background:var(--field-bg)}
.pl-ed .row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.pl-ed input,.pl-ed select,.pl-ed textarea{flex:1 1 150px;min-height:var(--ctl-h);
  border-radius:var(--r-sm);
  border:1.5px solid var(--field-br);background:var(--ink-900);color:var(--fg);
  font:inherit;font-size:var(--ctl-fs);padding:0 11px}
.pl-ed textarea{padding:9px 11px;min-height:70px;line-height:1.7;resize:vertical}
/* ⚠️ `<select>` فونت را از والد ارث نمی‌برد. هر جا که فقط `input`
   استایل شده بود، `select` با فونت پیش‌فرض مرورگر می‌افتاد و کنار
   بقیه ناجور می‌شد. این قاعده جامع همان را می‌بندد. */
select,option,textarea,input,button{font-family:inherit}
/* ── دور سوم: یادداشت روزانه · گفتگو ─────────────────────────── */
.plc[data-note="true"]::after{content:'';position:absolute;inset-inline-end:2px;
  inset-block-start:2px;width:4px;height:4px;border-radius:50%;background:var(--verd)}
.plc{position:relative}
/* ── ۰۸/۲۱: صفحهٔ دستیار ─────────────────────────────────────────
   همهٔ نام‌ها با `ax` شروع می‌شوند. صفحهٔ «گفتگو» کلاس‌های `.ch*`
   دارد و عمداً هیچ‌کدام دوباره استفاده نشده — دو معنی برای یک نام،
   در ۰۸/۱۸ دو دور استدلال بی‌ثمر ساخت. */

/* ── ۰۸/۲۲: تنظیمات هوش مصنوعی ────────────────────────────────── */
.axset{border:1px solid var(--field-br);border-radius:12px;padding:11px;
  display:flex;flex-direction:column;gap:10px}
.axset h4{margin:0;font-size:.86rem}
.axrow{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.axrow input{flex:1 1 210px;min-width:0}
.axkey{font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:.06em}
.axnote{font-size:.72rem;color:var(--fg-3);line-height:1.75}
.axmlist{max-height:280px;overflow:auto;border:1px solid var(--field-br);
  border-radius:10px}
.axm{display:flex;gap:8px;align-items:center;padding:6px 9px;
  border-bottom:1px solid var(--field-br)}
.axm:last-child{border-bottom:0}
.axm.on{background:var(--field-br)}
.axm b{font-size:.78rem;font-weight:600}
.axm span{font-size:.72rem;color:var(--fg-3)}
.axm .grow{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap}
.axw{display:flex;flex-direction:column;gap:11px;min-height:460px}
.axbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.axbar select{max-width:230px}
.axthr{flex:1;min-height:300px;max-height:56vh;overflow-y:auto;
  border:1px solid var(--field-br);border-radius:11px;padding:11px;
  display:flex;flex-direction:column;gap:9px;background:var(--field-bg)}
.axbub{max-width:82%;border-radius:12px;padding:8px 12px;font-size:.85rem;
  line-height:1.9;white-space:pre-wrap;word-break:break-word}
.axbub.me{align-self:flex-start;background:var(--gold-wash);
  border:1px solid var(--border-accent)}
.axbub.ai{align-self:flex-end;background:var(--ink-900);
  border:1px solid var(--field-br)}
.axbub i{display:block;font-style:normal;font-size:.66rem;color:var(--fg-3);
  margin-top:4px}
/* کارت تأیید — تنها جایی از کل سایت که کاری از طرف مدل انجام می‌شود */
.axcard{align-self:stretch;border:1.5px solid var(--border-accent);
  border-radius:12px;padding:11px 13px;background:var(--ink-900)}
.axcard[data-risk="high"]{border-color:var(--neg)}
.axcard b{display:block;font-size:.82rem;margin-bottom:5px}
.axsum{font-size:.86rem;line-height:1.9;margin-bottom:9px}
.axwarn{font-size:.74rem;color:var(--neg);margin-bottom:9px}
.axcard details{margin-bottom:9px}
.axcard summary{font-size:.72rem;color:var(--fg-3);cursor:pointer}
.axcard pre{font-size:.7rem;overflow-x:auto;background:var(--field-bg);
  border-radius:8px;padding:8px;margin-top:6px;direction:ltr;text-align:left}
.axdone{font-size:.78rem;color:var(--fg-3);padding:6px 2px}
.axcomp{display:flex;gap:8px;align-items:flex-end}
.axcomp textarea{flex:1;min-height:46px;max-height:150px;border-radius:11px;
  border:1.5px solid var(--field-br);background:var(--field-bg);color:var(--fg);
  font:inherit;font-size:.85rem;padding:10px 12px;line-height:1.8;resize:vertical}
.axmic{flex:0 0 auto;width:44px;height:44px;border-radius:50%;border:none;
  background:var(--add-voice);color:var(--on-accent);font-size:17px;cursor:pointer}
.axmic[data-rec="true"]{animation:pulse 1.25s infinite}
.axsend{flex:0 0 auto;height:44px;padding:0 17px;border-radius:11px;border:none;
  background:var(--accent);color:var(--on-accent);font-size:.85rem;cursor:pointer}
.axsend:disabled,.axmic:disabled{opacity:.5;cursor:not-allowed}
.axhint{font-size:.72rem;color:var(--fg-3);padding:0 2px}
/* ── ۰۸/۲۲: پروفایل · دسترسی · ابزار گوشی · مخاطبین ──────────── */
.pfg{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-bottom:14px}
.pfi{border:1px solid var(--field-br);border-radius:12px;padding:9px 12px}
.pfi b{display:block;font-size:.7rem;color:var(--fg-3);font-weight:500;margin-bottom:3px}
.pfi span{font-size:.9rem}
.pfl{display:flex;flex-direction:column;gap:5px;margin:0 0 11px}
.pfl>span{font-size:.76rem;color:var(--fg-3)}
.pfrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pfch{display:flex;gap:9px;align-items:center;padding:9px 12px;border:1px solid var(--field-br);
  border-radius:11px;margin-bottom:7px;flex-wrap:wrap}
.pfch b{font-size:.83rem;min-width:52px}
.pfmono,.pfch code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.76rem;
  background:var(--field-bg);padding:2px 7px;border-radius:6px;letter-spacing:.04em}
.pfoff{color:var(--fg-3);font-size:.75rem}
.pfu{border:1px solid var(--field-br);border-radius:12px;padding:10px 12px;margin-bottom:8px}
.pfu-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:7px}
.pfu-h b{font-size:.88rem}
.pfops{display:flex;gap:6px;flex-wrap:wrap}
.pfops button{border:1px solid var(--field-br);background:var(--field-bg);color:var(--fg-3);
  border-radius:var(--r-full);min-height:var(--ctl-h-sm);padding-inline:12px;font-size:12px;cursor:pointer}
.pfops button:hover{border-color:var(--accent);color:var(--fg)}
.pfops button.bad:hover{border-color:var(--neg);color:var(--neg)}
.pfhook{display:flex;gap:8px;align-items:center;background:var(--field-bg);
  border:1px solid var(--field-br);border-radius:11px;padding:9px 11px;margin:9px 0}
.pfhook code{flex:1;min-width:0;overflow-x:auto;white-space:nowrap;
  font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.74rem}
.pfpre{font-size:.72rem;overflow-x:auto;background:var(--field-bg);border-radius:10px;
  padding:10px 12px;margin:8px 0;line-height:1.85;direction:ltr;text-align:left}
.pfdrop{border:1.5px dashed var(--field-br);border-radius:12px;padding:22px 14px;
  text-align:center;cursor:pointer;transition:.14s;font-size:.85rem}
.pfdrop:hover,.pfdrop.on{border-color:var(--accent);background:var(--field-bg)}
.pfprev{max-height:230px;overflow:auto;border:1px solid var(--field-br);
  border-radius:11px;margin-top:10px}
.pfprev>div{display:flex;gap:10px;padding:6px 11px;font-size:.8rem;
  border-bottom:1px solid var(--field-br)}
.pfprev>div:last-child{border-bottom:0}
.pfprev .pfp{color:var(--fg-3);font-family:ui-monospace,Menlo,Consolas,monospace}
/* ── ۰۸/۲۱: تیک گروهی و دستهٔ درجا ───────────────────────────── */
/* دکمهٔ «تیک کل روز» عمداً کوچک‌تر و کم‌رنگ‌تر از خانه‌های خودِ جدول
   است: کارِ اصلی تیکِ تکی است و این میان‌بر نباید چشم را بدزدد. */
.plb{width:21px;height:21px;border-radius:var(--r-xs);border:1.5px dashed var(--field-br);
  background:transparent;color:var(--muted);font-size:.72rem;line-height:1;
  cursor:pointer;padding:0;transition:.14s}
.plb:hover{border-style:solid;border-color:var(--pos);color:var(--pos);transform:scale(1.14)}
tr.pl-bulk td{padding-block:3px}
tr.pl-bulk .nmcol{font-size:.74rem;color:var(--muted);font-weight:400}
/* کشوی دسته و دکمهٔ «＋» کنار هم.
   ۰۸/۲۹ — نامش از `catrow` به `catsel` رفت. همان کلاس را
   چیدمانِ دکمه‌ایِ انتخاب دسته (بالاتر در همین فایل) هم داشت،
   و `.catrow button` با ویژگیِ بالاتر padding را به دکمهٔ ＋
   تحمیل می‌کرد. نتیجه: دکمه از کشو بلندتر می‌شد و چون
   ردیف stretch است، کلِ فیلدِ «دسته» از حساب و پروژه و مبلغ
   درشت‌تر درمی‌آمد. حالا دکمه عیناً متریکِ خودِ کشو را دارد. */
.catsel{display:flex;gap:5px;align-items:stretch}
.catsel select{flex:1;min-width:0}
.catadd{flex:0 0 auto;width:30px;border-radius:9px;padding:0;
  border:1px solid var(--field-br);background:var(--bg,transparent);color:var(--fg-2);
  cursor:pointer;font-size:.95rem;line-height:1}
.catadd:hover{border-color:var(--gold-3);color:var(--gold-3)}
/* قاعدهٔ بی‌جهت («خودکار») نه سبز است نه قرمز — هنوز معلوم نیست */
.dbadge.auto{background:var(--field-bg);color:var(--muted);border:1px solid var(--field-br)}
.plnote{border:1px solid var(--border-accent);background:var(--field-bg);
  border-radius:11px;padding:11px 13px;margin-bottom:12px}
.plnote textarea{width:100%;min-height:64px;border-radius:9px;
  border:1.5px solid var(--field-br);background:var(--ink-900);color:var(--fg);
  font:inherit;font-size:.85rem;padding:8px 10px;line-height:1.8;resize:vertical}
.chw{display:grid;grid-template-columns:250px 1fr;gap:11px;min-height:380px}
@media(max-width:760px){.chw{grid-template-columns:1fr}}
.chl{border:1px solid var(--field-br);border-radius:11px;padding:8px;
  max-height:460px;overflow:auto}
.chi{border:1px solid transparent;border-radius:9px;padding:8px 10px;
  cursor:pointer;margin-bottom:5px;font-size:.8rem;line-height:1.6}
.chi[aria-pressed="true"]{border-color:var(--accent);background:var(--gold-wash)}
.chi b{display:block;font-size:.84rem}
.chi small{color:var(--fg-3);display:block;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap}
.chb{border:1px solid var(--field-br);border-radius:11px;padding:11px;
  display:flex;flex-direction:column}
.chm{flex:1;overflow:auto;max-height:340px;display:flex;flex-direction:column;gap:7px}
.chbub{max-width:78%;border-radius:12px;padding:7px 11px;font-size:.82rem;
  line-height:1.75;border:1px solid var(--field-br);background:var(--field-bg)}
.chbub.me{align-self:flex-start;background:var(--gold-wash);
  border-color:var(--border-accent)}
.chbub.them{align-self:flex-end}
.chbub i{display:block;font-style:normal;font-size:.68rem;color:var(--fg-3);
  margin-top:3px}
/* ── دور چهارم: گفتگوی کامل و ویرایش شرط ─────────────────────── */
.chbub{position:relative}
.chbub.gone{opacity:.5;font-style:italic}
.chrep{border-inline-start:2px solid var(--accent);padding:3px 8px;margin-bottom:5px;
  font-size:.72rem;color:var(--fg-2);background:var(--fill-subtle);
  border-radius:5px;cursor:pointer;line-height:1.5}
.chrep b{display:block;color:var(--brand-1);font-size:.7rem}
.chfile{display:flex;align-items:center;gap:7px;border:1px solid var(--field-br);
  border-radius:8px;padding:5px 8px;margin-bottom:5px;background:var(--fill-subtle);
  font-size:.74rem}
.chact{display:flex;gap:5px;margin-top:4px;opacity:0;transition:opacity .12s}
.chbub:hover .chact,.chbub:focus-within .chact{opacity:1}
.chact button{background:none;border:0;color:var(--fg-3);cursor:pointer;
  font-size:.68rem;padding:1px 4px;font-family:inherit}
.chact button:hover{color:var(--brand-1)}
.chdraft{border:1px solid var(--border-accent);background:var(--gold-wash);
  border-radius:9px;padding:6px 10px;margin-bottom:7px;font-size:.74rem;
  display:flex;align-items:center;gap:8px;line-height:1.6}
.chdraft span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rqrow{display:grid;grid-template-columns:1fr 150px 80px auto;gap:6px;
  margin-bottom:6px;align-items:center}
@media(max-width:640px){.rqrow{grid-template-columns:1fr}}
.rqrow .pck{font-size:.72rem;white-space:nowrap}
.pl-ed .wd{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px}
.pl-ed .wd button{min-height:var(--ctl-h-sm);min-width:38px;border-radius:var(--r-full);
  border:1px solid var(--field-br);background:transparent;color:var(--fg-3);
  font:inherit;font-size:12px;cursor:pointer}
.pl-ed .wd button[aria-pressed=true]{border-color:var(--gold-3);color:var(--gold-2);
  background:var(--gold-wash)}
@media(max-width:640px){
  .pl .nmcol{min-width:118px;max-width:130px;padding:7px 8px}
  .pl .nm b{font-size:12px}
}

/* ── صفحه تحلیل — آیتم ۳۷۸ ── */
.adv{border:1px solid var(--line);border-radius:var(--r);padding:13px 15px;
  margin-bottom:10px;background:var(--ink-850);border-inline-start:3px solid var(--fg-3)}
.adv.high{border-inline-start-color:var(--neg);background:var(--neg-wash)}
.adv.medium{border-inline-start-color:var(--warn);background:var(--warn-wash)}
.adv.low{border-inline-start-color:var(--verd)}
.adv h3{font-size:13.5px;font-weight:600;margin:0 0 5px;letter-spacing:-.01em}
.adv p{font-size:12.5px;color:var(--fg-2);margin:0;line-height:1.85}
.adv .sv{float:inline-end;font-size:10.5px;padding:1px 9px;border-radius:var(--r-full);
  border:1px solid currentColor;margin-inline-start:8px}
.adv.high .sv{color:var(--neg)} .adv.medium .sv{color:var(--warn)}
.adv.low .sv{color:var(--verd)}

.fcast{width:100%;border-collapse:collapse;font-size:12.5px}
.fcast th{font-size:11px;color:var(--fg-2);font-weight:600;text-align:start;
  padding:7px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
.fcast td{padding:9px 8px;border-bottom:1px solid var(--line);
  font-variant-numeric:tabular-nums;white-space:nowrap}
.fcast td.m{font-weight:600;white-space:normal}
.fcast tr[data-short=true]{background:var(--neg-wash)}
.fcast tr[data-short=true] td.c{color:var(--neg);font-weight:700}
.fcast .pos{color:var(--pos)} .fcast .neg{color:var(--neg)}
.fcast .ob{display:block;font-size:10.5px;color:var(--fg-3);font-weight:400;
  margin-top:2px;white-space:normal}

.bars{display:flex;gap:10px;align-items:flex-end;height:130px;padding:14px 2px 0;
  overflow-x:auto}
.bars .col{flex:1 0 44px;display:flex;flex-direction:column;align-items:center;gap:5px;
  height:100%}
.bars .pair{flex:1;display:flex;gap:3px;align-items:flex-end;width:100%;
  justify-content:center}
.bars .pair i{width:12px;border-radius:3px 3px 0 0;display:block;min-height:2px;
  transition:height .3s var(--ease)}
.bars .pair .in{background:var(--verd)} .bars .pair .out{background:var(--neg)}
.bars .lb{font-size:10px;color:var(--fg-3);white-space:nowrap}
.bars .col[data-partial=true] .pair i{opacity:.45}
.bars .col[data-partial=true] .lb{font-style:italic}
.lgd{display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--fg-3);
  padding:8px 2px 0}
.lgd i{display:inline-block;width:9px;height:9px;border-radius:2px;
  margin-inline-end:5px;vertical-align:middle}

.catbar{display:flex;align-items:center;gap:10px;padding:8px 0;
  border-bottom:1px solid var(--line);font-size:12.5px}
.catbar:last-child{border-bottom:none}
/* ۰۸/۲۶ — حساب‌های ایمیل */
.maillist{border-top:1px solid var(--ink-700)}
.mailrow{display:flex;align-items:center;gap:12px;padding:12px 0;
  border-bottom:1px solid var(--ink-700)}
.mailrow .mi{flex:1;min-width:0}
.mailrow .mi b{display:block;font-size:.94rem}
.mailrow .mi small{display:block;color:var(--fg-2);font-size:.78rem;margin-top:2px}
.mailrow .mi small.sc{font-family:ui-monospace,monospace;opacity:.7;font-size:.72rem}
.mailrow[data-bad="true"] .mi b{color:var(--neg)}
.mst{flex:0 0 auto;font-size:.75rem;padding:2px 9px;border-radius:var(--r-full)}
.mst.ok{background:rgba(80,160,90,.16);color:var(--pos)}
.mst.bad{background:rgba(190,70,60,.16);color:var(--neg)}
/* ۰۸/۲۶ — بودجه. روی همان catbar سوار می‌شود تا دو زبان
   بصری موازی نسازیم. */
.bgrow[data-over="true"] .nm{color:var(--neg)}
.bgrow .vv{flex:0 0 auto;min-width:118px;text-align:left}
.bgact{display:flex;gap:4px;flex:0 0 auto}
.bgact button{background:none;border:none;cursor:pointer;color:var(--fg-2);
  font-size:13px;padding:2px 4px;border-radius:var(--r-sm)}
.bgact button:hover{background:var(--ink-700);color:var(--fg)}
.bgnav{display:flex;align-items:center;gap:10px;margin:0 0 14px}
.bgnav b{font-size:15px;min-width:104px;text-align:center}
.bgnav button{background:var(--ink-700);border:none;color:var(--fg);cursor:pointer;
  width:30px;height:30px;border-radius:var(--r-sm);font-size:15px}
.bgnav button.lnk{width:auto;padding:0 10px;font-size:12px;color:var(--fg-2)}
.bgnav button:hover{background:var(--ink-600)}
.bgform{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-top:16px;
  padding-top:14px;border-top:1px solid var(--ink-700)}
.bgform label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--fg-2)}
.bgform select,.bgform input{background:var(--ink-800);border:1px solid var(--ink-600);
  color:var(--fg);border-radius:var(--r-sm);padding:8px 10px;font:inherit;min-width:150px}
.bgbtns{display:flex;gap:8px}
.bgbtns button{background:var(--ink-700);border:none;color:var(--fg);cursor:pointer;
  padding:9px 16px;border-radius:var(--r-sm);font:inherit}
.bgbtns button.pri{background:var(--gold);color:var(--on-accent);font-weight:600}
.bgbtns button:disabled{opacity:.55;cursor:default}
.catbar .nm{flex:0 0 92px;min-width:0;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap}
.catbar .tr{flex:1;height:8px;border-radius:var(--r-full);background:var(--ink-700);
  overflow:hidden}
.catbar .tr i{display:block;height:100%;background:var(--gold);border-radius:var(--r-full)}
.catbar .vv{flex:0 0 auto;font-variant-numeric:tabular-nums;color:var(--fg-2);
  font-size:11.5px}
.finhint{font-size:11.5px;color:var(--fg-3);padding:10px 2px 0;line-height:1.8}
.plc[data-pz=true]{opacity:.5}
.pl-stk{font-size:11px;margin-top:2px;color:var(--fg-3)}
.pl-stk.hot{color:var(--pos);font-weight:600}
.pl-today{margin:0 0 12px;padding:10px 12px;border:1px solid var(--line);
  border-radius:10px;background:var(--fill-subtle)}
.pl-today-h{margin:0 0 6px;font-size:12px;color:var(--fg-3)}
.pl-today ul{margin:0;padding:0;list-style:none}
.pl-today li{padding:4px 0;font-size:13px;display:flex;gap:7px;align-items:center;
  flex-wrap:wrap}
.pl-ro{font-size:10px;padding:1px 6px;border-radius:6px;border:1px solid var(--line);
  color:var(--fg-3);white-space:nowrap}
.pl-late{font-size:11px;color:var(--neg);font-style:normal}
.pl-pz{margin:10px 0 0;padding:0;list-style:none}
.pl-pz li{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:5px 0;
  border-top:1px solid var(--line);font-size:13px}
.pl-pz li.now{color:var(--warn)}
.pl-rep th,.pl-rep td{text-align:center;padding:6px 8px;white-space:nowrap}
.pl-vd{font-size:11px;padding:2px 8px;border-radius:7px;color:#fff}
.pl-vd.ok{background:var(--pos)}.pl-vd.mid{background:var(--warn)}
.pl-vd.bad{background:var(--neg)}.pl-vd.off{background:var(--fg-3)}

/* ═════ ۵۰۵ — پرداخت و سرعت رندر ═════
   هر چه اینجاست افزودنی است و از توکن‌های موجود می‌خواند —
   هیچ قاعدهٔ قبلی دست نخورده. */

/* ۱) شکستن خط در عنوان و متن.
   در فارسی عنوانی که یک کلمه تنها به خط بعد می‌اندازد
   آشکارترین نشانهٔ کار نیمه‌تمام است. balance خط‌ها را هم‌اندازه
   می‌کند و pretty جلوی تک‌کلمه ماندن خط آخر را می‌گیرد. */
h1,h2,h3,.card-h h2,.adv h3{text-wrap:balance}
p,.muted,.finhint,small{text-wrap:pretty}

/* ۲) عددِ هم‌عرض هر جا که عددها زیر هم می‌نشینند.
   در ستونی از مبلغ، رقمِ ناهم‌عرض یعنی ستونی که موج می‌خورد. */
td,th,.st .v,.vv,.bgrow b,.mst,time{font-variant-numeric:tabular-nums}

/* ۳) نوار پیمایش هم‌رنگ با محیط.
   نوار پیش‌فرض روی تم جوهری تنها چیزی است که رنگ سیستم‌عامل دارد. */
*{scrollbar-width:thin;scrollbar-color:var(--line-hi) transparent}
*::-webkit-scrollbar{width:9px;height:9px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:var(--line-hi);border-radius:var(--r-full);
  border:2px solid transparent;background-clip:content-box}
*::-webkit-scrollbar-thumb:hover{background:var(--fg-3);background-clip:content-box}

/* ۴) کشسانی درون یک فهرست نباید کل صفحه را بکشد.
   روی موبایل همین یک خط فرق بین «برنامه» و «صفحهٔ وب» است. */
.sheet,.mcard,.aside,.maillist,.nwbody{overscroll-behavior:contain}
body{overscroll-behavior-y:none}

/* ۵) ردیف‌هایی که بیرون قاب‌اند لازم نیست چیده شوند.
   در فهرست بلند — تقویم، پیام‌ها، خبر — این معنادار است.
   contain-intrinsic-size لازم است تا نوار پیمایش نپرد. */
.nwrow,.nwsrc,.mailrow,.pl-pz li{content-visibility:auto;contain-intrinsic-size:auto 64px}

/* ۶) در حالت کاهش حرکت، هاله هم محو شود نه فقط بایستد.
   قاعدهٔ قبلی فقط animation را خاموش می‌کرد؛ لکهٔ بزرگ می‌ماند. */
@media (prefers-reduced-motion:reduce){.aura{opacity:.22;filter:blur(70px)}}

/* ۷) تصویر و قاب در متنی که هنوز نیامده نباید چیدمان را بپراند. */
img,iframe{max-width:100%;height:auto}
/* ══ مرکز اعلان — ۰۸/۲۸ ═══════════════════════════ */
.ntw{position:relative}
.ntb{width:34px;height:34px;border-radius:var(--r-sm);border:1px solid var(--line);
  display:grid;place-items:center;font-size:14px;color:var(--fg-2);
  transition:all .2s var(--ease);position:relative}
.ntb:hover{border-color:var(--gold-3);color:var(--gold-2);background:var(--gold-wash)}
.ntb.has{color:var(--gold-2);border-color:var(--gold-3)}
.ntb .cnt{position:absolute;top:-6px;inset-inline-start:-6px;min-width:17px;height:17px;
  padding:0 4px;border-radius:var(--r-full);background:var(--gold);color:var(--on-accent);
  font-size:10px;font-weight:700;display:grid;place-items:center;line-height:1}
.ntp{position:absolute;top:42px;inset-inline-start:0;width:min(340px,86vw);z-index:60;
  background:var(--surface);border:1px solid var(--line);border-radius:14px;
  box-shadow:0 18px 46px rgba(0,0,0,.42);overflow:hidden;
  animation:slide .22s var(--ease) backwards}
.ntp .hd{display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:11px 13px;border-bottom:1px solid var(--line)}
.ntp .hd b{font-size:13px}
.ntp .hd .act{display:flex;gap:6px}
.ntp .hd button{background:none;border:0;color:var(--fg-2);font-size:11px;cursor:pointer;
  padding:3px 6px;border-radius:8px}
.ntp .hd button:hover{color:var(--gold-2);background:var(--gold-wash)}
.ntl{max-height:min(58vh,420px);overflow:auto}
.nti{display:flex;gap:10px;padding:11px 13px;border-bottom:1px solid var(--line);
  cursor:pointer;text-align:start;width:100%;background:none;border-inline:0;border-top:0;
  color:inherit;font:inherit}
.nti:last-child{border-bottom:0}
.nti:hover{background:var(--gold-wash)}
.nti.un{background:color-mix(in srgb, var(--gold) 7%, transparent)}
.nti .ic{flex:0 0 auto;font-size:15px;line-height:1.5}
.nti .tx{min-width:0;flex:1}
.nti .tx b{display:block;font-size:12.5px;font-weight:600;margin-bottom:2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nti .tx p{margin:0;font-size:11.5px;color:var(--fg-2);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nti .tx s{display:block;margin-top:3px;font-size:10.5px;color:var(--fg-2);
  opacity:.75;text-decoration:none}
.ntp .em{padding:22px 13px;text-align:center;font-size:12px;color:var(--fg-2)}


/* ══ ۰۹/۱۱ — سه صفحهٔ تازه: مغایرت‌گیری، هزینهٔ غیرعادی، سلامت ══
   ⚠️ `.dim` و `.mono` تا امروز در این فایل نه تعریف شده بودند و نه
      جایی به کار رفته بودند (هر دو صفر مورد). پس تعریفشان چیزی را
      جابه‌جا نمی‌کند. */
.dim{color:var(--fg-3);font-size:12px;font-weight:400}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.78rem;
  direction:ltr;unicode-bidi:isolate}

/* ── مغایرت‌گیری ── */
.rc-card.rc-need{border-color:var(--border-warn)}
.rc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));
  gap:12px;margin-top:12px}
.rc-grid>div{display:flex;flex-direction:column;gap:3px;padding:10px 12px;
  border-radius:var(--r-sm);background:var(--field-bg);border:1px solid var(--line)}
.rc-grid b{font-size:15px;font-weight:600;letter-spacing:-.02em}
.rc-pend{margin-top:14px;padding:12px;border-radius:var(--r-sm);
  border:1.5px dashed var(--field-br)}
.rc-ph{font-size:12.5px;margin-bottom:8px}
.rc-p{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:6px 0;
  border-top:1px solid var(--line);font-size:12.5px}
.rc-p:first-of-type{border-top:0}
.rc-dir{padding:2px 9px;border-radius:var(--r-full);font-size:11px;
  border:1px solid var(--line);color:var(--fg-2)}
.rc-dir.in{color:var(--pos);border-color:var(--pos)}
.rc-dir.out{color:var(--neg);border-color:var(--neg)}
.rc-miss{font-size:11px;color:var(--warn)}
.rc-abs{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;cursor:pointer}
.rc-note{margin:10px 0 0;font-size:12px;color:var(--fg-2);line-height:1.85}

/* ── هزینهٔ غیرعادی ── */
.an-meta{display:flex;gap:10px;flex-wrap:wrap;padding-top:12px}
.an-meta span{padding:6px 13px;border-radius:var(--r-full);font-size:12px;
  color:var(--fg-2);border:1px solid var(--line)}
.an-sum{margin:12px 0 0;font-size:13.5px;line-height:1.9}
.an-row.an-hi{border-color:var(--neg)}
.an-row.an-mid{border-color:var(--border-warn)}

/* ── سلامت سامانه ── */
.hl-tbl{margin-top:12px;font-size:12.5px}
.hl-hd,.hl-r{display:grid;grid-template-columns:2.2fr .8fr .8fr .8fr;gap:8px;
  padding:8px 10px;align-items:center}
.hl-hd{color:var(--fg-3);font-size:11.5px;border-bottom:1px solid var(--line)}
.hl-r{border-bottom:1px solid var(--line)}
.hl-r:last-child{border-bottom:0}
.hl-bad{color:var(--neg);font-weight:600}
.hl-e{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 0;
  border-top:1px solid var(--line);font-size:12.5px}
.hl-e:first-of-type{border-top:0}
.hl-g{padding:11px 0;border-top:1px solid var(--line)}
.hl-g:first-of-type{border-top:0}
.hl-gh{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:5px}
.hl-msg{font-size:12px;color:var(--fg-2);line-height:1.75;word-break:break-word}
.hl-det{margin-top:12px}
.hl-det summary{cursor:pointer;font-size:12.5px;color:var(--fg-2)}
.hl-det summary:hover{color:var(--fg)}
.hl-r2{display:flex;gap:9px;flex-wrap:wrap;align-items:baseline;padding:7px 0;
  border-top:1px solid var(--line);font-size:12px}

@media (max-width:640px){
  .hl-hd,.hl-r{grid-template-columns:1.6fr .7fr .7fr .7fr;font-size:11.5px}
}

/* ══ ۰۹/۱۳ — صندوق خروج ══ */
.ob-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding-top:12px}
.ob-row{padding:13px 0;border-top:1px solid var(--line)}
.ob-row:first-of-type{border-top:0}
.ob-row.ob-dead{border-inline-start:2px solid var(--neg);padding-inline-start:11px}
.ob-row.ob-done{opacity:.55}
.ob-h{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-bottom:6px}
.ob-pre{font-size:12.5px;color:var(--fg-2);line-height:1.85;white-space:pre-wrap;
  word-break:break-word;margin:0 0 7px}
.ob-meta{display:flex;gap:7px;flex-wrap:wrap;font-size:11px;color:var(--fg-3)}
.ob-meta span{padding:2px 8px;border-radius:var(--r-full);border:1px solid var(--line)}
.ob-why{color:var(--neg);border-color:var(--neg)}
.ob-ch{padding:2px 9px;border-radius:var(--r-full);font-size:11px;
  border:1px solid var(--line);color:var(--fg-2)}
.ob-note{margin:10px 0 0;font-size:12px;color:var(--fg-2);line-height:1.85}

/* ══ ۰۹/۱۳ — تاریخچهٔ ورود ══ */
.si-verdict{padding:16px 18px;border-radius:var(--r);margin-bottom:16px;
  border:1px solid var(--pos);background:var(--pos-wash);color:var(--pos)}
.si-verdict.bad{border-color:var(--neg);background:var(--neg-wash);color:var(--neg)}
.si-verdict b{display:block;font-size:1rem;margin-bottom:6px}
.si-verdict p{margin:0;font-size:12.5px;line-height:1.9;color:var(--fg-2)}
.si-row{padding:12px 0;border-top:1px solid var(--line)}
.si-row:first-of-type{border-top:0}
.si-h{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-bottom:5px}
.si-tag{padding:2px 9px;border-radius:var(--r-full);font-size:11px;
  border:1px solid var(--line);color:var(--fg-2)}
.si-tag.ok{color:var(--pos);border-color:var(--pos)}
.si-tag.warn{color:var(--warn);border-color:var(--warn)}
.si-tag.bad{color:var(--neg);border-color:var(--neg)}
.si-names{display:flex;gap:6px;flex-wrap:wrap;margin-top:5px}
.si-names code{font-size:11px;padding:2px 7px;border-radius:6px;
  background:var(--field-bg);border:1px solid var(--line)}
.si-note{margin:10px 0 0;font-size:12px;color:var(--fg-2);line-height:1.85}

/* ══ ۰۹/۱۳ — یادگیری از نادیده‌گرفتن ══ */
.lr-row{padding:13px 0;border-top:1px solid var(--line)}
.lr-row:first-of-type{border-top:0}
.lr-h{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-bottom:6px}
.lr-ph{font-size:12.5px;font-weight:600;word-break:break-word}
.lr-sample{font-size:11.5px;color:var(--fg-3);line-height:1.8;margin:5px 0 0;
  padding:8px 10px;border-radius:var(--r-sm);background:var(--field-bg);
  border:1px solid var(--line);white-space:pre-wrap;word-break:break-word}
.lr-cnt{padding:2px 9px;border-radius:var(--r-full);font-size:11px;
  border:1px solid var(--line);color:var(--fg-2)}
.lr-cnt.ok{color:var(--pos);border-color:var(--pos)}
.lr-cnt.bad{color:var(--neg);border-color:var(--neg)}
.lr-note{margin:10px 0 0;font-size:12px;color:var(--fg-2);line-height:1.85}

/* ══ ۰۹/۱۳ — انتقال داخلی ══ */
.xf-row{padding:14px 0;border-top:1px solid var(--line)}
.xf-row:first-of-type{border-top:0}
.xf-flow{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:7px;
  font-size:13px;font-weight:600}
.xf-arrow{color:var(--fg-3);font-weight:400}
.xf-amt{font-size:15px;letter-spacing:-.02em}
.xf-fee{padding:2px 9px;border-radius:var(--r-full);font-size:11px;
  color:var(--warn);border:1px solid var(--warn)}
.xf-meta{display:flex;gap:7px;flex-wrap:wrap;font-size:11px;color:var(--fg-3)}
.xf-meta span{padding:2px 8px;border-radius:var(--r-full);border:1px solid var(--line)}
.xf-body{font-size:11px;color:var(--fg-3);line-height:1.75;margin:6px 0 0;
  padding:7px 9px;border-radius:var(--r-sm);background:var(--field-bg);
  border:1px solid var(--line);white-space:pre-wrap;word-break:break-word}
.xf-note{margin:10px 0 0;font-size:12px;color:var(--fg-2);line-height:1.85}
.xf-amb{opacity:.7}
/* ══════════ آفلاین + همگام‌سازی — ۱۰/۱۷ (js/02b-offline.js) ══════════ */
#offbar{position:fixed;left:14px;bottom:14px;z-index:90;max-width:min(92vw,520px);
  padding:8px 14px;border-radius:999px;border:1px solid var(--border-warn,rgba(255,200,80,.45));
  background:var(--bg,#14161c);color:var(--fg,#eee);font:inherit;font-size:12.5px;line-height:1.5;
  box-shadow:0 6px 24px rgba(0,0,0,.35);cursor:pointer;text-align:start}
#offbar[hidden]{display:none}
#offbar::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;
  margin-inline-end:7px;vertical-align:middle;background:var(--gold-2,#d9b45a)}
#offbar[data-k=down]::before{background:#9aa0aa}
#offbar[data-k=rej]{border-color:var(--border-neg,rgba(255,90,90,.6))}
#offbar[data-k=rej]::before{background:#e5484d}
#offpanel{position:fixed;left:14px;bottom:60px;z-index:91;width:min(94vw,460px);
  max-height:70vh;overflow:auto;padding:14px 16px;border-radius:14px;
  border:1px solid var(--field-br,rgba(255,255,255,.12));background:var(--bg,#14161c);
  color:var(--fg,#eee);box-shadow:0 12px 40px rgba(0,0,0,.45);font-size:13px}
#offpanel header{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}
#offpanel h4{margin:12px 0 6px;font-size:12.5px;color:var(--fg-2,#bbb)}
#offpanel p{margin:4px 0;color:var(--fg-2,#bbb)}
#offpanel ul{list-style:none;margin:0;padding:0}
#offpanel li{padding:8px 0;border-top:1px solid var(--field-br,rgba(255,255,255,.08));
  display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline}
#offpanel li small{flex-basis:100%;color:var(--fg-3,#999)}
#offpanel li span{display:flex;gap:6px;margin-inline-start:auto}
#offpanel button{font:inherit;font-size:12px;padding:5px 10px;border-radius:8px;cursor:pointer;
  border:1px solid var(--field-br,rgba(255,255,255,.18));background:transparent;color:inherit}
#offpanel [data-offgo]{margin-top:10px;border-color:var(--gold-2,#d9b45a)}
@media (max-width:860px){ #offbar{left:10px;bottom:10px} #offpanel{left:3vw;bottom:56px} }
/* ═══════════════════════════════════════════════════════════
   ۱۰/۱۸ — بازطراحیِ اچ‌آر فایننس، هم‌خانوادهٔ ویترین
   ایده همان «دفترِ حساب» است: خطِ دفتر، مهرِ تراز، کوفی برای سرتیترِ بزرگ و عدد؛
   عنوانِ کارت‌ها وزیرمتن می‌ماند چون در اندازهٔ کوچک خواناتر است.
   این تکه آخرین تکهٔ CSS است و فقط روی توکن‌ها می‌نشیند؛ رنگِ خام ندارد.
   ═══════════════════════════════════════════════════════════ */
@font-face{font-family:Kufi;src:url(/v/fonts/reem-kufi-arabic-700-normal.woff2) format("woff2");font-weight:700;font-display:swap;unicode-range:U+0600-06FF,U+200C-200F,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:Kufi;src:url(/v/fonts/reem-kufi-arabic-500-normal.woff2) format("woff2");font-weight:500;font-display:swap;unicode-range:U+0600-06FF,U+200C-200F,U+FB50-FDFF,U+FE70-FEFF}

/* ── زمینه: هالهٔ ثابت به‌جای سه لکهٔ متحرکِ blur(90px)
   (آن سه لکه روی گوشیِ ضعیف و کرومِ بی‌GPU یک هستهٔ CPU را دائم می‌خوردند) ── */
.aura,.grain{display:none!important}
body{background:
  radial-gradient(900px 520px at 100% -8%,var(--glow),transparent 62%),
  radial-gradient(700px 480px at -10% 108%,rgba(var(--verd-rgb),.06),transparent 60%),
  var(--bg);background-attachment:fixed;transition:background-color .3s ease,color .3s ease}

/* ── تم: چهار دایره، مثلِ ویترین ── */
.themes{display:flex;gap:6px;padding:4px;border:1px solid var(--line);border-radius:999px;flex:none}
.themes button{width:20px;height:20px;border-radius:50%;border:0;padding:0;cursor:pointer;
  background:conic-gradient(var(--a) 0 50%,var(--b) 0 100%);transform:rotate(-45deg);transition:transform .25s var(--ease)}
.themes button:hover{transform:rotate(-45deg) scale(1.12)}
.themes button[aria-checked=true]{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--fg-2)}
.t-night{--a:#080B11;--b:#D9A441}.t-ledger{--a:#E6ECE6;--b:#A82E26}.t-firuze{--a:#031719;--b:#37D0BD}.t-lajvard{--a:#0A1033;--b:#F2C35B}

/* ── نشان ── */
.mk{background:var(--gold);color:var(--on-accent);box-shadow:inset 0 -3px 0 rgba(0,0,0,.18)}

/* ═════════ صفحهٔ ورود (بی‌نشست) ═════════ */
#land{min-height:100dvh;display:flex;flex-direction:column}
.ln-wrap{width:min(1180px,100% - 32px);margin-inline:auto}
.ln-top{position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--bg) 84%,transparent);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.ln-top .ln-wrap{display:flex;align-items:center;gap:16px;min-height:66px}
.ln-brand{display:flex;align-items:center;gap:10px;font-weight:600;white-space:nowrap}
.ln-brand .mk{width:36px;height:36px}
.ln-links{display:flex;gap:4px;margin-inline-start:auto}
.ln-links a{padding:7px 12px;border-radius:9px;color:var(--fg-2);font-weight:500;transition:color .2s,background-color .2s}
.ln-links a:hover{color:var(--fg);background:var(--ink-850)}
.ln-in{padding:9px 18px;border-radius:11px;font-weight:600;background:var(--gold);color:var(--on-accent);transition:filter .2s}
.ln-in:hover{filter:brightness(1.08)}
.ln-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,72px);align-items:center;
  padding-block:clamp(40px,8vw,96px) clamp(40px,7vw,80px);flex:1}
.ln-display{font:700 clamp(2.6rem,6.6vw,4.9rem)/1.1 var(--kufi);margin:0}
.ln-head{font-size:clamp(1.25rem,2.3vw,1.65rem);font-weight:500;line-height:1.6;margin:20px 0 12px;max-width:28ch}
.ln-lede{color:var(--fg-2);font-size:clamp(1rem,1.5vw,1.1rem);line-height:1.95;max-width:52ch;margin:0}
.ln-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.ln-btns .btn-p,.ln-btns .btn-g{display:inline-flex;align-items:center;padding:12px 22px;border-radius:12px;font-weight:600;
  border:1px solid transparent;transition:background-color .2s,border-color .2s,color .2s,transform .15s}
.ln-btns .btn-p{background:var(--gold);color:var(--on-accent)}
.ln-btns .btn-p:hover{background:var(--gold-2);color:var(--on-accent)}
:root[data-theme=ledger] .ln-btns .btn-p:hover{background:var(--gold-3)}
.ln-btns .btn-g{border-color:var(--line-hi);color:var(--fg)}
.ln-btns .btn-g:hover{border-color:var(--gold);color:var(--gold)}
.ln-btns :active{transform:translateY(1px)}

/* سندِ هفته: همان زبانِ سندِ ویترین */
.ln-week{margin:0;background:var(--ink-850);border:1px solid var(--line-hi);border-radius:18px;padding:22px 22px 18px;
  position:relative;box-shadow:var(--shadow-drop)}
.ln-week .vh{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:12px;
  border-bottom:3px double var(--line-hi);font-size:.86rem;color:var(--fg-3)}
.ln-week .vh b{font:500 1.15rem/1.4 var(--kufi);color:var(--fg)}
.ln-days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:14px 0 6px}
.ln-days u{text-decoration:none;text-align:center;font-size:.8rem;color:var(--fg-3);padding:7px 0;border-radius:9px;
  border:1px solid var(--line);position:relative}
.ln-days u.hot{color:var(--gold);border-color:var(--border-accent);background:var(--gold-wash)}
.ln-days u.hot::after{content:"";position:absolute;bottom:3px;inset-inline-start:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:var(--gold)}
.ln-week table{width:100%;border-collapse:collapse;font-size:.95rem}
.ln-week td{padding:11px 4px;border-bottom:1px solid var(--rule);vertical-align:middle}
.ln-week td.k{width:30px}
.ln-week td.k i{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;font-style:normal;font-size:12px}
.ln-week td.d{color:var(--fg-3);font-size:.82rem;white-space:nowrap}
.ln-week td.n{text-align:end;font-variant-numeric:tabular-nums;white-space:nowrap}
.ln-week figcaption{margin-top:12px;font-size:.84rem;color:var(--fg-3)}
.ln-stamp{position:absolute;inset-inline-end:20px;bottom:12px;border:2.5px solid var(--stamp);color:var(--stamp);border-radius:10px;
  padding:3px 13px;font:700 1.05rem/1.4 var(--kufi);transform:rotate(-8deg);opacity:.9;pointer-events:none;
  background:color-mix(in srgb,var(--ink-850) 70%,transparent)}
.ln-feat{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);padding-block:clamp(32px,6vw,64px)}
.ln-feat div{padding:6px clamp(14px,2.4vw,28px)}
.ln-feat div+div{border-inline-start:1px solid var(--line)}
.ln-feat h3{font:500 1.2rem/1.5 var(--kufi);margin:0 0 8px}
.ln-feat p{margin:0;color:var(--fg-2);font-size:.95rem;line-height:1.95}
.ln-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:22px 0 30px;border-top:1px solid var(--line);
  color:var(--fg-2);font-size:.88rem}
.ln-foot a{color:var(--fg-2)} .ln-foot a:hover{color:var(--fg)}
.ln-foot nav,.ln-foot .lk{display:flex;gap:16px;flex-direction:row}
@media (max-width:900px){.ln-hero{grid-template-columns:1fr}.ln-feat{grid-template-columns:1fr}
  .ln-feat div+div{border-inline-start:0;border-top:1px solid var(--line);padding-top:18px;margin-top:12px}}
@media (max-width:640px){.ln-links{display:none}.ln-top .themes{margin-inline-start:auto}}

/* ═════════ برگهٔ ورود: یک «سند» ═════════ */
.sheet-c{background:var(--ink-850);border:1px solid var(--line-hi);border-radius:20px;box-shadow:var(--shadow-drop-strong)}
.sheet-c::before{content:"";position:absolute;inset-inline:26px;top:96px;border-top:3px double var(--line-hi);opacity:.0}
.sheet-c .mk{width:50px;height:50px;border-radius:14px}
.sheet-c h2{font:500 1.5rem/1.4 var(--kufi);letter-spacing:0;margin:0 0 6px}
.sheet-c p{border-bottom:1px solid var(--rule);padding-bottom:16px}
.sheet-c input[type=password],.sheet-c input[type=text],.sheet-c input[type=tel],.sheet-c select{
  background:var(--ink-900);border-color:var(--line-hi);border-radius:12px}
.b-full{background:var(--gold);color:var(--on-accent);border-radius:12px}
.b-full:hover{filter:none;background:var(--gold-2)}
:root[data-theme=ledger] .b-full:hover{background:var(--gold-3)}
.lnk{color:var(--gold);border-bottom-color:var(--border-accent)}

/* ═════════ پوستهٔ اپ ═════════ */
#app.on{grid-template-columns:236px 1fr}
aside{background:var(--aside);border-inline-start:0;border-inline-end:1px solid var(--line);padding:20px 14px 18px;display:flex;flex-direction:column;
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
aside .logo{padding:4px 8px 20px;margin-bottom:10px;border-bottom:3px double var(--line)}
aside .logo b{font:500 1.15rem/1.3 var(--kufi);letter-spacing:0}
aside .logo .mk{width:36px!important;height:36px!important;border-radius:11px}
aside nav{flex:1;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;padding-bottom:8px}
aside nav::-webkit-scrollbar{display:none}
nav button{padding:9px 12px;border-radius:10px;font-size:.92rem;color:var(--fg-2);transition:color .2s,background-color .2s}
nav button:hover{background:var(--ink-850);color:var(--fg)}
nav button[aria-current=page]{background:var(--glow);color:var(--gold-2);font-weight:600}
:root[data-theme=ledger] nav button[aria-current=page]{color:var(--gold)}
nav button[aria-current=page]::before{inset-inline-end:auto;inset-inline-start:-14px;top:20%;height:60%;width:3px;border-radius:3px;background:var(--gold)}
nav .ic{width:20px;font-size:15px}
.ngrp>.ngh{opacity:1;color:var(--fg);font-weight:500}
.ngrp[data-open=true]>.ngh{color:var(--fg)}
.ngrp>.ngs{padding-inline-start:12px;margin-inline-start:21px;border-inline-start:1px solid var(--line)}
.ngrp[data-open=true]>.ngs{padding-block:2px 6px}
.ngrp>.ngs button{font-size:.88rem;padding:7px 10px}
.side-foot{position:static;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.side-links{display:flex;gap:4px;justify-content:space-between;font-size:.8rem}
.side-links a{color:var(--fg-3);padding:4px 6px;border-radius:7px}
.side-links a:hover{color:var(--fg);background:var(--ink-850)}
.b-out{height:36px;border-radius:10px}

main{padding:26px clamp(16px,3.2vw,40px) 70px}
.top{align-items:center;padding-bottom:18px;margin-bottom:24px;border-bottom:1px solid var(--line)}
.hi{font:500 clamp(1.5rem,2.6vw,2rem)/1.35 var(--kufi);letter-spacing:0}
.date{font-size:.85rem;margin-top:2px}
.top-act{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.ntb{width:36px;height:36px;border-radius:11px;color:var(--fg-2)}
.ntb svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.badge{padding:6px 13px}

/* ── کارت‌ها و آمار ── */
.card{border-radius:18px;background:var(--ink-850);border:1px solid var(--line);box-shadow:var(--ring)}
.card-h{padding:15px 21px;border-bottom:1px solid var(--rule)}
.card-h h2{font:650 1.02rem/1.6 Vazirmatn,sans-serif;letter-spacing:0}
.st{border-radius:16px;background:var(--ink-850);padding:16px 19px}
.st::before{height:3px}
.st .v{font:700 clamp(1.45rem,2.2vw,1.9rem)/1.3 var(--kufi);letter-spacing:0;margin-top:6px}
.st .v small{font-family:Vazirmatn,sans-serif}
.caltabs button[aria-pressed=true],.chip[aria-pressed=true]{background:var(--glow);color:var(--gold-2);border-color:var(--border-accent)}
:root[data-theme=ledger] .caltabs button[aria-pressed=true],:root[data-theme=ledger] .chip[aria-pressed=true]{color:var(--gold)}
.mcell{border-radius:11px}
.mcell.today,.dy[data-t=true]{background:var(--glow);border-color:var(--gold)}

/* فرم‌ها: کنترلِ بومی هم‌رنگِ تم (بدونِ این، select در تمِ روشن سیاه درمی‌آمد) */
select,input,textarea{color-scheme:inherit}
select{background-color:var(--field-bg);color:var(--fg);border:1px solid var(--field-br)}
select option{background:var(--ink-850);color:var(--fg)}

/* ═════════ گوشی: نوارِ پایین ═════════ */
@media (max-width:860px){
  #app.on{grid-template-columns:1fr}
  aside{position:fixed;inset:auto 0 0 0;top:auto;height:auto;z-index:40;padding:6px 6px calc(6px + env(safe-area-inset-bottom));
    border-inline-end:0;border-top:1px solid var(--line);background:var(--aside-m);flex-direction:row;overflow:visible;
    backdrop-filter:none;-webkit-backdrop-filter:none}
  aside .logo,.side-foot{display:none}
  aside nav{flex-direction:row;gap:2px;overflow-x:auto;overflow-y:visible;padding:0;align-items:stretch;scroll-snap-type:x proximity;
    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 26px);mask-image:linear-gradient(to right,transparent 0,#000 26px)}
  nav button{flex-direction:column;gap:2px;font-size:10.5px;font-weight:500;line-height:1.3;min-width:60px;flex:1 0 auto;scroll-snap-align:start;
    padding:7px 6px;text-align:center;justify-content:center;white-space:nowrap}
  nav button[aria-current=page]::before{display:none}
  nav .ic{font-size:18px;width:auto}
  .ngrp{flex:1 0 auto}
  .ngrp>.ngh{height:100%}
  .ngrp .ncar{display:none}
  .ngrp[data-open=true]>.ngh{color:var(--gold-2);background:var(--glow)}
  :root[data-theme=ledger] .ngrp[data-open=true]>.ngh{color:var(--gold)}
  /* زیرمنو: برگه‌ای بالای نوار */
  .ngrp>.ngs{position:fixed;inset-inline:10px;bottom:calc(74px + env(safe-area-inset-bottom));margin:0;padding:10px!important;
    border:1px solid var(--line-hi);border-radius:16px;background:var(--aside-m);box-shadow:var(--shadow-drop-strong);
    display:none!important;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px}
  .ngrp[data-open=true]>.ngs{display:grid!important;animation:fade .2s var(--ease)}
  .ngrp>.ngs button{font-size:11.5px;padding:10px 4px;min-width:0;border:1px solid var(--line);opacity:1}
  .ngrp>.ngs .ic{font-size:18px}
  main{padding:16px 14px calc(96px + env(safe-area-inset-bottom))}
  .top{flex-wrap:wrap;gap:10px;margin-bottom:16px;padding-bottom:12px}
  .top-act{width:100%;justify-content:flex-start}
  #toast{bottom:calc(88px + env(safe-area-inset-bottom))}
  #offbar{bottom:calc(84px + env(safe-area-inset-bottom))!important}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .st{padding:13px 14px}
  .st .v{font-size:1.3rem}
}
@media (prefers-reduced-motion:reduce){body{transition:none}}

/* ۱۰/۱۸ — صفِ پیش‌نویس: انتخاب و دستهٔ پیشنهادی */
.dc-h .dsel{width:18px;height:18px;accent-color:var(--gold);flex:none;cursor:pointer}
.dcard.sel{border-color:var(--gold);box-shadow:0 0 0 1px var(--border-accent)}
.dc-sug{margin-top:8px;font-size:.8rem;color:var(--fg-2);padding:6px 10px;border-radius:9px;
  background:var(--glow);border:1px dashed var(--border-accent)}
.dc-sug b{color:var(--fg)}
select.sugd{border-color:var(--border-accent)!important;border-style:dashed!important}
