/* ng.css — NG_TAKHT_CSS_V1 (13 Sep 2026) — the ONE skin of the NikGold mini-app.
   Source of truth: design/mocks/varaq-v2-2026-09-12/ng.css (the 21-screen sample Niki approved, artifact bcb4ad38)
   + niki_handoff/README.md tokens. Sections: 1 fonts · 2 tokens (Niki's, verbatim) · 3 legacy-token bridge
   (every var() the old markup still names, all pointing at Niki's palette; the 23-step --gold-a ladder is
   collapsed onto five tints) · 4 components (mock, verbatim, scoped under .ng) · 5 legacy components in
   Niki's clothes (until CUT 2/3 convert the markup). Build order: _brain/BUILD_ORDER_TAKHT_2026-09-13.md.
   Rules: no shadow/gradient/blur anywhere else (grep gate); font-weight 400/600/700 only; nothing under 13px. */

/* 1 · fonts — Vazirmatn v33.003 (SIL OFL 1.1), self-hosted (NG_FONT_SELFHOST_V1) */
@font-face{font-family:'Vazirmatn';src:url(/fonts/Vazirmatn-Regular.woff2?v=33.003) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Vazirmatn';src:url(/fonts/Vazirmatn-SemiBold.woff2?v=33.003) format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Vazirmatn';src:url(/fonts/Vazirmatn-Bold.woff2?v=33.003) format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:"Vazirmatn Fallback";src:local("Segoe UI"),local("Tahoma");size-adjust:102%;ascent-override:100%;descent-override:34%;line-gap-override:0%}

/* 2 · tokens — Niki's, verbatim (README) + derived tints (mock) */
:root,.ng{
  --gold:#D4AF37;--ac:#E8C547;--frame:rgba(196,166,90,.5);--tx:#FFF8E7;
  --bg:#0F1521;--bg-page:#0D1422;--hd:#182236;--ac-ink:#0B0F1A; /* NG_TAKHT_CUT6_TONE: --bg was #121A2B (Niki: «لاجوردی‌ش خیلی لاجوردیه») */
  --teal:rgba(31,158,150,.14);--lapis:rgba(31,58,110,.28);
  /* NG_TAKHT_CUT16_TOKENS: surfaces 3.5%→6%, hairlines 12%→16%, muted 60%→72% — the README values read as mud on a phone (Niki 13 Sep) */
  /* NG_TAKHT_CUT2_TOKENS_DESIGN: back to the Claude Design values (Niki 13 Sep: «رنگ‌های دیزاین زنده‌تر و براق بود، الان مات شده») */
  --sf:rgba(255,248,231,.035);--ln:rgba(255,248,231,.12);--ln-gold:rgba(232,197,71,.3);--mu:rgba(255,248,231,.72); /* NG_CUT7B_MUTED: .6 -> .72 (Niki: «فونت‌ها توپرتر»؛ وزنِ 500 در فونتِ خودمیزبان نیست، پس کنتراستِ متنِ کم‌رنگ بالا رفت) */
  --tx86:rgba(255,248,231,.86);--tx78:rgba(255,248,231,.78);--tx55:rgba(255,248,231,.55);--tx40:rgba(255,248,231,.4);
  --scrim-top:rgba(13,20,34,.34);--scrim-0:rgba(13,20,34,0);--scrim-mid:rgba(15,21,33,.58);--hero-sh:rgba(13,20,34,.95);
  --hero-halo:rgba(0,0,0,.78);--hero-halo-mid:rgba(0,0,0,.42);--hero-halo-0:rgba(0,0,0,0); /* NG_TAKHT_CUT2_HEROUP4: the black halo behind the home title (Niki: «هاله مشکی») */
  --ac14:rgba(232,197,71,.14);--ac2:rgba(232,197,71,.2);--ac16:rgba(232,197,71,.16);--ac4:rgba(232,197,71,.4);--ac22:rgba(232,197,71,.22);--ac1:rgba(232,197,71,.1);--ac45:rgba(232,197,71,.45);--ac55:rgba(232,197,71,.55);
  --chip:rgba(255,248,231,.07);--nav:#0E1422; /* NG_TAKHT_CUT16_CHIP · NG_TAKHT_CUT2_CHIP_DESIGN: README *//* solid twin of the mock's rgba(14,20,34,.97): the nav sits over scrolling text now */--lapis5:rgba(31,58,110,.5);
  --green:#1FAE5A;--green-ink:#0B0F1A; /* NG_HOMEPOLISH_V1: a real green (was #2F9E6E, Niki: «پاستلیه»); ink 6.6:1 */
  --ln-green:rgba(31,174,90,.6);--ln-gold-hi:rgba(232,197,71,.45); /* NG_CARDPOLISH_V1: the club hairline 3.02:1 (was a literal .35 = 1.81:1) and a gold frame the eye finds (3.11:1; --ln-gold .3 was 2.05:1) */
  --r-card:20px;--r-bar:16px;--r-btn:13px;--r-ic:12px;--r-pill:20px;
  /* solid twins of the translucent surfaces, for sheets/modals/inputs that must not see through */
  --sf-solid:#171D28; /* NG_TAKHT_CUT6_TONE: cream 3.5 % over the new navy (was #1A2232 over #121A2B) */
  /* the one warning colour (errors, «نیاز به اصلاح», losses) — warm, low-saturation, sits with cream on navy */
  --warn:#EF5350; /* NG_TAKHT_CUT6_TONE: a true red (was terracotta #C9705A — Niki: «یه کم نارنجیه»); 5.24:1 on the page, 4.85:1 on a card */
}

/* 3 · legacy-token bridge — the old markup names ~100 variables; every one now resolves to Niki's palette.
   No new colours: only pointers. The 23-step --gold-a ladder is five tints (10/16/30/45/solid). */
:root{
  --bg-deep:var(--bg-page);--bg-elev:var(--hd);--tg:var(--bg-page);
  --bg-card:var(--sf-solid);--bg-card-2:var(--sf-solid);--surface:var(--sf-solid);
  --bg-card-hi:var(--hd);--surface2:var(--hd);--surface-2:var(--hd);--skeleton:var(--hd);--hero:var(--hd);
  --border:var(--ln);--border-soft:var(--ln);--line:var(--ln);--line-strong:rgba(255,248,231,.22);
  --text:var(--tx);--ink:var(--tx);--text-light:var(--tx);
  --text-dim:var(--tx78);--ink2:var(--tx78);--text-2:var(--tx78);--blue:var(--tx78);
  --text-muted:var(--mu);--ink3:var(--mu);--text-3:var(--mu);--text-mute:var(--mu);
  --gold-text:var(--ac);--accent:var(--ac);--trust:var(--ac);--gold-2:var(--ac);--focus:var(--ac);--play:var(--ac);--orange:var(--ac);--lvl-mid:var(--ac);
  --gold-deep:var(--gold);--trust-deep:var(--gold);
  --gold-dim:var(--ac14);--accent-soft:var(--ac14);--gold-soft:var(--ac14);--play-soft:var(--ac14);--field-learn:var(--ac1);
  --accent-line:var(--ln-gold);--accent-ink:var(--ac-ink);--tier-btn-ink:var(--ac-ink);
  --red:var(--warn);--tension:var(--warn);--down:var(--warn);--lvl-low:var(--warn);--tension-deep:var(--warn);
  --gain:var(--green);--up:var(--green);--gain-deep:var(--green);--gift:var(--green);--gift-soft:rgba(47,158,110,.14);
  --purple:var(--tx86);
  --plat-bg:var(--chip);--plat-ink:var(--tx86);--plat-line:var(--ln);
  --tier-bronze-fg:var(--tx86);--tier-silver-fg:var(--tx86);--tier-gold-fg:var(--ac);--tier-plat-fg:var(--tx86);--tier-free-fg:var(--mu);
  --tier-bronze-bg:var(--sf);--tier-silver-bg:var(--sf);--tier-gold-bg:var(--sf);--tier-plat-bg:var(--sf);
  --tier-bronze-bd:var(--ln);--tier-silver-bd:var(--ln);--tier-gold-bd:var(--ln-gold);--tier-plat-bd:var(--ln);
  --gold-a03:var(--ac1);--gold-a04:var(--ac1);--gold-a05:var(--ac1);--gold-a06:var(--ac1);--gold-a08:var(--ac1);--gold-a10:var(--ac1);
  --gold-a12:var(--ac16);--gold-a13:var(--ac16);--gold-a15:var(--ac16);--gold-a16:var(--ac16);--gold-a18:var(--ac16);--gold-a20:var(--ac16);--gold-a22:var(--ac16);
  --gold-a25:var(--ln-gold);--gold-a28:var(--ln-gold);--gold-a30:var(--ln-gold);
  --gold-a35:var(--ac45);--gold-a40:var(--ac45);--gold-a42:var(--ac45);--gold-a45:var(--ac45);--gold-a50:var(--ac45);
  --gold-a65:var(--ac);--gold-a82:var(--ac);
  --radius:var(--r-card);--radius-sm:var(--r-bar);--r:var(--r-bar);--r-sm:var(--r-ic);--sp:8px;
  --elev:none;
  /* type roles: five sizes, rem-scaled by «من › اندازه متن» (--ng-fs on html); floor 13px */
  --t-xs:calc(13px * var(--ng-fs,1));--t-nav:calc(13px * var(--ng-fs,1));--t-sm:calc(14px * var(--ng-fs,1));--t-tag:calc(14px * var(--ng-fs,1));
  --t-md:calc(15px * var(--ng-fs,1));--t-body:calc(16px * var(--ng-fs,1));--t-label:calc(16px * var(--ng-fs,1));--t-lg:calc(17px * var(--ng-fs,1));
  --t-xl:calc(20px * var(--ng-fs,1));--t-title:calc(20px * var(--ng-fs,1));--t-num:calc(20px * var(--ng-fs,1));
  --t-hero:calc(26px * var(--ng-fs,1));--t-display:calc(26px * var(--ng-fs,1));--t-big:calc(32px * var(--ng-fs,1));
}

/* 2b · day — NG_TAKHT_CUT16_DAY (13 Sep 2026): «نمایش: روز» is real. Spec §۱ day tokens (paper / ink / copper) on Niki's token names;
   every legacy variable bridges through these, so the whole app follows. Gold never sits on cream: the accent is copper. */
html[data-theme="day"],html[data-theme="day"] .ng{
  --gold:#8C4A2B;--ac:#8C4A2B;--frame:rgba(140,74,43,.38);--tx:#1C1913;
  --bg:#F2E9D8;--bg-page:#EAE0CC;--hd:#E6DCC6;--ac-ink:#FAF5EA;
  --teal:rgba(31,158,150,.12);--lapis:rgba(31,58,110,.10);
  --sf:#FAF5EA;--ln:rgba(28,25,19,.14);--ln-gold:rgba(140,74,43,.38);--mu:#55514A; /* NG_CUT7B_MUTED day */
  --tx86:rgba(28,25,19,.88);--tx78:rgba(28,25,19,.8);--tx55:rgba(28,25,19,.62);--tx40:rgba(28,25,19,.48);
  --ac14:rgba(140,74,43,.12);--ac2:rgba(140,74,43,.2);--ac16:rgba(140,74,43,.16);--ac4:rgba(140,74,43,.4);--ac22:rgba(140,74,43,.22);--ac1:rgba(140,74,43,.08);--ac45:rgba(140,74,43,.45);--ac55:rgba(140,74,43,.55);
  --chip:rgba(28,25,19,.06);--nav:#FAF5EA;--lapis5:rgba(31,58,110,.25);
  --green:#0F7A3A;--green-ink:#FAF5EA; /* NG_HOMEPOLISH_V1: day twin (was #2F7A56); 4.6:1 as text on the day page */
  --ln-green:rgba(15,122,58,.7);--ln-gold-hi:rgba(140,74,43,.7); /* NG_CARDPOLISH_V1: day twins (3.1:1 / 3.08:1 on cream); the old night-green literal was 1.37:1 by day */
  --sf-solid:#FAF5EA;--warn:#B71C1C; /* NG_TAKHT_CUT6_TONE: day-mode red (was #B4452C); 5.02:1 on the day page */
  --scrim-top:rgba(28,25,19,.22);--scrim-0:rgba(28,25,19,0);--scrim-mid:rgba(242,233,216,.55);--hero-sh:rgba(242,233,216,.9);
  --hero-halo:rgba(242,233,216,.9);--hero-halo-mid:rgba(242,233,216,.5);--hero-halo-0:rgba(242,233,216,0); /* NG_TAKHT_CUT2_HEROUP5: day = a paper halo */
  --line-strong:rgba(28,25,19,.3);
  color-scheme:light;
}
html[data-theme="day"] .ng .supb{background:rgba(250,245,234,.72);border-color:rgba(28,25,19,.22);color:#1C1913}
html[data-theme="day"] .ng .hero-t h1,html[data-theme="day"] .ng .hero-t .wordmark{color:#1C1913}
html[data-theme="day"] .ng .wordmark{color:#8C4A2B}

/* 4 · components — the mock, verbatim (scoped under .ng: the hero, the nav, and every block CUT 1/2 converts) */
.ng{
  /* NG_TAKHT_CUT16_ONETOKENS: the verbatim copy of the tokens that lived here is gone — one declaration, in :root above (it also shadowed html[data-theme=day]) */
  --r-card:20px;--r-bar:16px;--r-btn:13px;--r-ic:12px;--r-pill:20px;
}
.ng{background:var(--bg);color:var(--tx);font-family:'Vazirmatn',system-ui,Tahoma,sans-serif;font-size:calc(14px * var(--ng-fs,1));line-height:1.9;text-align:start;direction:rtl;-webkit-font-smoothing:antialiased;position:relative}
.ng *{box-sizing:border-box}
.ng a{color:inherit;text-decoration:none}
.ng .num{direction:ltr;unicode-bidi:isolate;font-variant-numeric:tabular-nums;font-feature-settings:'tnum' 1}

/* icons (مهر زر): cream lines, gold seal only where alive */
.ng .ic{width:22px;height:22px;flex:none;fill:var(--zr,none);stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ng .ic.tab{width:22px;height:22px}
.ng .ic.mark{width:20px;height:20px;stroke-width:1.6}
.ng .ic.inl{width:18px;height:18px;stroke-width:1.6}
.ng .ic.chev{width:16px;height:16px;stroke-width:1.5;color:var(--tx55);--zr:none}
.ng .ri{color:var(--tx78);--zr:var(--ac)}
.ng .mark{color:var(--ac);--zr:var(--ac)}
.ng .nv .ic{--zr:var(--tx40)}
.ng .nv.on .ic{--zr:var(--ac);stroke-width:2}
.ng .lock .ic,.ng .btn .ic,.ng .st .ic,.ng .cta .ic,.ng .path-ic .ic,.ng .supb .ic{--zr:none}

/* hero (Niki) */
.ng .hero{position:relative;flex:none;overflow:hidden;background:var(--hd)}
.ng .hero.tall{height:auto;min-height:296px;padding-bottom:0} /* NG_TAKHT_CUT15_HERO: README 296px; auto only when the intro wraps to a third line */
.ng .hero.short{height:168px}
.ng .hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 34%;filter:none} /* NG_TAKHT_CUT16_SAT: full colour (Niki: «کم‌رنگ شده») */
.ng .hero .scrim{position:absolute;inset:0;background:linear-gradient(180deg,var(--scrim-top) 0%,var(--scrim-0) 26%,var(--scrim-0) 52%,var(--scrim-mid) 80%,var(--bg) 100%)} /* NG_TAKHT_CUT16_SCRIM: photo clear in the middle, fade only at the bottom */
.ng .hero.tall .scrim{background:linear-gradient(180deg,var(--scrim-top) 0%,var(--scrim-0) 26%,var(--scrim-0) 54%,var(--scrim-mid) 82%,var(--bg) 100%)} /* NG_TAKHT_CUT2_HEROUP2 */
.ng .hd-row{position:relative;padding:12px 26px 0;display:flex;justify-content:flex-end} /* NG_TAKHT_CUT15_HDROW: 12+44 = the README's 20+36 row */
.ng .supb{width:44px;height:44px;border-radius:var(--r-ic);border:1px solid rgba(255,248,231,.22);background:rgba(13,20,34,.55);color:rgba(255,248,231,.85);display:grid;place-items:center}
.ng .supb .ic{width:18px;height:18px;stroke-width:1.6}
.ng .hero-t{position:relative;padding:6px 26px 0;text-align:center}
.ng .hero-t .halo{position:absolute;inset:74px 34px 6px;background:radial-gradient(52% 62% at 50% 52%,rgba(13,20,34,.72) 0%,rgba(13,20,34,.38) 58%,rgba(13,20,34,0) 100%);filter:blur(9px);pointer-events:none}
.ng .hero.short .hero-t .halo{inset:8px 34px 6px}
.ng .hero-t h1{position:relative;margin:68px 0 0;/* NG_TAKHT_CUT15_H1 */font-size:calc(28px * var(--ng-fs,1));line-height:1.45;font-weight:700;color:var(--tx);letter-spacing:-.015em;text-shadow:0 2px 20px var(--hero-sh),0 0 48px var(--hero-sh)} /* NG_TAKHT_CUT16_H1SH */
.ng .hero-t h1.sm{margin-top:16px;font-size:calc(24px * var(--ng-fs,1))}
.ng .wordmark{position:relative;font-size:calc(13px * var(--ng-fs,1));font-weight:600;color:rgba(232,197,71,.9);letter-spacing:.3em;margin-top:2px;line-height:1.6}
.ng .intro{position:relative;margin:9px 0 0;font-size:calc(13px * var(--ng-fs,1));line-height:1.95;color:rgba(255,248,231,.9);text-wrap:pretty;text-shadow:0 2px 14px rgba(13,20,34,.95)}
.ng .sep{position:relative;display:block;margin:11px auto 0;width:56px;height:1px;background:rgba(212,175,55,.65)}
.ng .slogan{position:relative;font-size:calc(13px * var(--ng-fs,1));line-height:1.8;font-weight:600;color:var(--ac);margin-top:8px;text-shadow:0 2px 12px rgba(13,20,34,.95)}

/* resume banner (Niki) */
.ng .resume{margin:18px 20px 0;padding:13px 15px;border-radius:var(--r-bar);background:var(--ac14);border:1px solid var(--ac4);display:flex;align-items:center;gap:12px}
.ng .resume .bang{width:34px;height:34px;flex:none;border-radius:11px;background:var(--ac2);color:var(--ac);display:grid;place-items:center;font-weight:700;font-size:calc(15px * var(--ng-fs,1))}
.ng .resume .rt b{font-size:calc(13px * var(--ng-fs,1));font-weight:700;color:var(--ac);line-height:1.6}
.ng .resume .rt small{font-size:calc(13px * var(--ng-fs,1));line-height:1.7;color:var(--tx78)}
.ng .btn-sm{flex:none;padding:0 13px;height:44px;display:inline-flex;align-items:center;border-radius:11px;background:var(--ac);color:var(--ac-ink);font-size:calc(13px * var(--ng-fs,1));font-weight:700;white-space:nowrap}
.ng .resume .x{flex:none;width:44px;height:44px;margin-inline-end:-12px;display:grid;place-items:center;color:var(--tx55);font-size:calc(15px * var(--ng-fs,1))}

/* path section (Niki) */
.ng .sec{padding:20px 20px 0}
.ng .sec-h{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:11px}
.ng .sec-h span{font-size:calc(15px * var(--ng-fs,1));font-weight:700;color:var(--tx);line-height:1.6} /* NG_CUT7_PATHLINE: 13px/600/60% -> 15px/700/full text colour (Niki: سفیدتر در شب، تیره‌تر و بولدتر در روز) */ /* NG_TAKHT_CUT6_DAYTEXT: was a literal cream — white on white in day mode (Niki) */
.ng .pill-help{flex:none;min-height:44px;display:inline-flex;align-items:center;padding:0 12px;border-radius:var(--r-pill);border:1px solid var(--green);background:var(--green);color:var(--green-ink);font-size:calc(13px * var(--ng-fs,1));font-weight:700;white-space:nowrap;line-height:1.6} /* NG_CUT7_PATHQ_GREEN: solid green (Niki: «کدام مسیر» سبز توپر) */
.ng .path{position:relative;padding:18px 18px 16px;border-radius:var(--r-card);border:1px solid var(--ln-gold);overflow:hidden}
.ng .path.teal{background:linear-gradient(165deg,var(--teal),rgba(255,248,231,.03))}
.ng .path.lapis{margin-top:12px;background:linear-gradient(165deg,var(--lapis),rgba(255,248,231,.03));border-color:var(--ln)}
.ng .path-h{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.ng .path-id{display:flex;align-items:center;gap:10px}
.ng .path-ic{width:36px;height:36px;flex:none;border-radius:var(--r-ic);background:var(--ac16);color:var(--ac);display:grid;place-items:center}
.ng .path.lapis .path-ic{background:var(--lapis5)}
.ng .path-ic .ic{width:19px;height:19px;stroke-width:1.6}
.ng .path-id b{display:block;font-size:calc(15.5px * var(--ng-fs,1));font-weight:700;color:var(--tx);white-space:nowrap;line-height:1.5}
.ng .path-id small{display:block;font-size:calc(13px * var(--ng-fs,1));color:var(--mu);line-height:1.6}
.ng .price{text-align:end;flex:none}
.ng .price small{display:block;font-size:calc(13px * var(--ng-fs,1));color:var(--tx55);line-height:1.5}
.ng .price b{display:block;font-size:calc(19px * var(--ng-fs,1));font-weight:700;color:var(--ac);line-height:1.2}
.ng .path-d{margin:12px 0 0;font-size:calc(13px * var(--ng-fs,1));line-height:2;color:var(--tx86);text-wrap:pretty}
.ng .chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}
.ng .chip{font-size:calc(13px * var(--ng-fs,1));color:var(--tx78);background:var(--chip);padding:5px 11px;border-radius:var(--r-pill);line-height:1.6}
.ng .cta{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:15px;padding:12px 16px;border-radius:var(--r-btn);min-height:44px;font-size:calc(13.5px * var(--ng-fs,1));font-weight:700}
.ng .cta.fill{background:var(--green);color:var(--green-ink)} /* NG_CUT7C_CTA_GREEN: was gold (--ac); Niki 13 Sep: «کلاً سبز توپر» — both path CTAs solid green like «کدام مسیر؟»; revert = put var(--ac)/var(--bg-page) back */
.ng .cta.line{border:1px solid var(--ac55);color:var(--ac)}
.ng .cta .ic{width:18px;height:18px;stroke-width:2.1;color:inherit}
.ng .rules{margin-top:18px;padding:14px 16px;border-radius:var(--r-bar);background:var(--sf);border:1px solid rgba(255,248,231,.08)}
.ng .rules b{font-size:calc(13px * var(--ng-fs,1));font-weight:600;color:var(--tx)}
.ng .rules p{margin:4px 0 0;font-size:calc(13px * var(--ng-fs,1));line-height:1.95;color:var(--tx78)}
.ng .links{display:flex;gap:16px;margin-top:8px}
.ng .links a{font-size:calc(13px * var(--ng-fs,1));font-weight:600;color:var(--ac)}
.ng .botname{text-align:center;font-size:calc(13px * var(--ng-fs,1));color:var(--tx55);margin-top:16px;padding-bottom:16px}

/* inner tabs (دفتر روشن structure, Niki's clothes) */
.ng .hd{height:56px;display:flex;align-items:center;justify-content:space-between;padding:8px 20px 0;flex:none}
.ng .brand{display:flex;align-items:center;gap:8px;font-size:calc(17px * var(--ng-fs,1));font-weight:700;line-height:1}
.ng .pills{display:flex;gap:8px;padding:8px 20px 4px;overflow:hidden;flex:none}
.ng .pill{flex:none;height:44px;padding:0 14px;border-radius:var(--r-pill);display:inline-flex;align-items:center;font-size:calc(13px * var(--ng-fs,1));font-weight:600;line-height:1;color:var(--mu);border:1px solid var(--ln)}
.ng .pill.on{color:var(--ac);border-color:var(--ac45);background:var(--ac1)}
.ng .body{flex:1;min-height:0;overflow:auto;padding:12px 20px 0;display:flex;flex-direction:column;gap:12px}
.ng .card{background:var(--sf);border:1px solid var(--ln);border-radius:var(--r-card);padding:18px}
.ng.zv .card{margin:14px 0} /* NG_NEGAH_NATIVE_V1: the negah cards keep their rhythm inside the app */
.ng .card.tight{padding:0 14px}
.ng .card.live{border-color:var(--ln-gold);background:linear-gradient(165deg,var(--ac14),rgba(255,248,231,.03))}
.ng .card.live.teal{background:linear-gradient(165deg,var(--teal),rgba(255,248,231,.03))}
.ng .card.live.lapis{background:linear-gradient(165deg,var(--lapis),rgba(255,248,231,.03))}
.ng .eyebrow{font-size:calc(13px * var(--ng-fs,1));line-height:24px;font-weight:600;color:var(--ac)}
.ng .eyebrow::before,.ng .lbl>span:first-child::before{content:"◆";font-size:calc(9px * var(--ng-fs,1));margin-inline-end:6px;color:var(--ac);vertical-align:middle}
.ng .card h2{font-size:calc(18px * var(--ng-fs,1));line-height:1.6;font-weight:700;margin:0 0 6px;color:var(--tx)}
.ng .meta{font-size:calc(13px * var(--ng-fs,1));line-height:1.8;color:var(--tx86);margin:0}
.ng .lead{font-size:calc(14px * var(--ng-fs,1));line-height:2;color:var(--tx86);margin:0 0 6px}
.ng .lead.tight{margin:8px 0 0}
.ng .prog{height:4px;border-radius:999px;background:var(--ln);overflow:hidden;margin:10px 0 14px}
.ng .prog i{display:block;height:100%;background:var(--ac)}
.ng .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border-radius:var(--r-btn);background:var(--ac);color:var(--bg-page);font-size:calc(15px * var(--ng-fs,1));font-weight:700;line-height:1;margin-top:10px}
.ng .lbl{font-size:calc(13px * var(--ng-fs,1));line-height:24px;font-weight:600;color:var(--mu);/* NG_TAKHT_CUT16_LBL · NG_TAKHT_CUT2_LBL_DESIGN: README */display:flex;justify-content:space-between;margin-top:4px}
.ng .lbl .r{font-weight:400;color:var(--tx55)}
.ng .list{display:flex;flex-direction:column;gap:10px}
.ng .row,.ng .les{display:flex;align-items:center;gap:12px;min-height:56px;padding:10px 16px;border-radius:var(--r-bar);background:var(--sf);border:1px solid var(--ln)}
.ng .row.quiet{background:transparent;border:1px dashed var(--ln)}
.ng .rt{flex:1;min-width:0;display:flex;flex-direction:column}
.ng .rt b{font-size:calc(15px * var(--ng-fs,1));line-height:1.6;font-weight:700}
.ng .rt b.big{font-size:calc(18px * var(--ng-fs,1))}
.ng .rt small{font-size:calc(13px * var(--ng-fs,1));line-height:1.7;color:var(--mu)}
.ng .les .ln{width:28px;text-align:center;font-size:calc(13px * var(--ng-fs,1));font-weight:600;color:var(--mu)}
.ng .les.now{border-color:var(--ac45);background:var(--ac1)}
.ng .lock .rt b,.ng .lock .ln{color:var(--mu)}
.ng .state{font-size:calc(13px * var(--ng-fs,1));line-height:1.7;color:var(--mu);display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ng .state.now{color:var(--ac);font-weight:700}
.ng .state .num{color:var(--tx)}
.ng .st{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;flex:none}
.ng .st.done{background:var(--ac16);color:var(--ac)}
.ng .tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ng .tile{padding:10px 12px;border-radius:var(--r-bar);background:var(--sf);border:1px solid var(--ln);display:flex;flex-direction:column}
.ng .tile small{font-size:calc(13px * var(--ng-fs,1));line-height:1.6;color:var(--mu)}
.ng .tile b{font-size:calc(15px * var(--ng-fs,1));line-height:1.6;font-weight:700}
.ng .tile em{font-style:normal;font-size:calc(13px * var(--ng-fs,1));line-height:1.6;color:var(--mu)}
.ng .as{display:flex;align-items:center;gap:12px;height:48px;border-bottom:1px solid var(--ln)}
.ng .as:last-child{border-bottom:0}
.ng .pr{width:96px;text-align:end;font-variant-numeric:tabular-nums}
.ng .chg{width:56px;font-size:calc(13px * var(--ng-fs,1));color:var(--mu);text-align:end}
.ng .lad{display:flex;gap:6px;width:44px;justify-content:flex-end;direction:ltr}
.ng .lad i{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--tx40)}
.ng .lad i.f{background:var(--ac);border-color:var(--ac)}
.ng .who{display:flex;gap:12px;align-items:center}
.ng .seg{display:inline-flex;min-height:44px;border-radius:var(--r-pill);border:1px solid var(--ln)}
.ng .seg a{padding:0 14px;min-height:44px;display:grid;place-items:center;font-size:calc(13px * var(--ng-fs,1));font-weight:600;line-height:1;color:var(--mu)}
.ng .seg a.on{color:var(--ac);border:1px solid var(--ac45);background:var(--ac1);border-radius:var(--r-pill);margin:-1px}
.ng .sq{width:44px;height:44px;display:grid;place-items:center;border-radius:var(--r-ic);border:1px solid var(--ln);color:var(--ac);font-size:calc(13px * var(--ng-fs,1));font-weight:600}
.ng .ctl{display:flex;gap:8px;align-items:center}
.ng .foot{font-size:calc(13px * var(--ng-fs,1));line-height:1.8;color:var(--tx55);text-align:center;padding:4px 0 8px}

/* bottom nav (Niki) */
.ng .nav{position:sticky;bottom:0;flex:none;background:var(--nav);border-top:1px solid var(--ac22);padding:10px 14px 18px;display:flex;justify-content:space-between;z-index:5}
.ng .nv{flex:1;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border-radius:var(--r-ic);font-size:calc(13px * var(--ng-fs,1));font-weight:600;line-height:1;color:var(--tx55);position:relative}
.ng .nv.on{color:var(--ac)}
.ng .nv .dot{position:absolute;top:6px;inset-inline-end:calc(50% + 10px);width:8px;height:8px;border-radius:50%;border:1.5px solid var(--ac)}

.ng .back{width:44px;height:44px;display:grid;place-items:center;margin-inline-start:-12px;color:var(--tx78)}
.ng .back .ic{transform:scaleX(-1)}
.ng .field{min-height:48px;padding:12px 16px;border-radius:var(--r-bar);background:rgba(255,248,231,.06);border:1px solid rgba(255,248,231,.22);color:var(--tx55);font-size:calc(14px * var(--ng-fs,1));line-height:1.7}
.ng .field.tall{min-height:112px}
.ng .addr{margin:8px 0;padding:10px 14px;border-radius:var(--r-ic);background:rgba(13,20,34,.55);border:1px solid var(--ln);font-size:calc(14px * var(--ng-fs,1));color:var(--tx)}
.ng .btn.ghost{background:transparent;color:var(--ac);border:1px solid var(--ac55)}
.ng .acts{display:flex;gap:8px;flex-wrap:wrap}
.ng .acts .btn{margin:0;flex:1}
.ng .player{position:relative;height:200px;border-radius:var(--r-card);background:var(--hd);border:1px solid var(--ln);display:grid;place-items:center}
.ng .player .play{width:64px;height:64px;border-radius:50%;background:var(--ac);color:var(--ac-ink);display:grid;place-items:center}
.ng .player .play .ic{width:28px;height:28px;stroke-width:2;--zr:none;margin-inline-start:-3px}
.ng .player .tc{position:absolute;bottom:12px;inset-inline-end:14px;font-size:calc(13px * var(--ng-fs,1));color:var(--tx78)}
.ng .tag{display:inline-block;margin-top:8px;font-size:calc(13px * var(--ng-fs,1));font-weight:600;color:var(--ac);border:1px solid var(--ac45);background:var(--ac1);border-radius:var(--r-pill);padding:2px 10px;line-height:1.7}
.ng .row.now{border-color:var(--ac45);background:var(--ac1)}
.ng .pr2{flex:none;text-align:end;display:flex;flex-direction:column;line-height:1.4}
.ng .pr2 b{font-size:calc(15px * var(--ng-fs,1));color:var(--ac)}
.ng .pr2 small{font-size:calc(13px * var(--ng-fs,1));color:var(--tx40);text-decoration:line-through}
.ng .card.lapis-soft{background:linear-gradient(165deg,var(--lapis),rgba(255,248,231,.03))}
.ng .pills.in{padding:0 0 4px}
.ng .pill.sm{height:44px;padding:0 12px}
.ng .chat{display:flex;flex-direction:column;gap:8px}
.ng .bub{max-width:88%;padding:10px 14px;border-radius:var(--r-bar);background:var(--sf);border:1px solid var(--ln);font-size:calc(14px * var(--ng-fs,1));line-height:1.9;align-self:flex-start}
.ng .bub.me{align-self:flex-end;background:var(--ac1);border-color:var(--ac45)}
.ng .reader{gap:8px}
.ng .rd-t{font-size:calc(22px * var(--ng-fs,1));line-height:1.6;font-weight:700;margin:0;color:var(--tx)}
.ng .rd-m{font-size:calc(13px * var(--ng-fs,1));color:var(--mu);margin:0 0 8px}
.ng .rd-p{font-size:calc(15px * var(--ng-fs,1));line-height:2.05;color:var(--tx86);margin:0}

.ng .cta.fill.green{background:var(--green);color:var(--green-ink)}
.ng .path.lapis{border-color:var(--ln-green)} /* NG_HOMEPOLISH_V1: follows the new green · NG_CARDPOLISH_V1: literal → token, so day flips */
.ng .spark{display:block;margin:2px 0;fill:none;stroke:var(--ac);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.ng .tile.t2{padding:10px 12px;height:auto}
.ng .fg .fg-h{display:flex;justify-content:space-between;align-items:center}
.ng .fg .fg-h b{font-size:calc(22px * var(--ng-fs,1));color:var(--ac)}
.ng .fg .fg-h .eyebrow{font-size:calc(17px * var(--ng-fs,1));line-height:1.5;font-weight:700;color:var(--tx)} /* NG_TAKHT_CUT6_FGBIG: the card's first line is a title, not an eyebrow (Niki: «خط اولش بزرگ باشه») */
.ng .fg .fg-h .eyebrow::before{display:none}
.ng .fg-bar{position:relative;height:6px;border-radius:999px;margin:8px 0 4px;background:linear-gradient(to left,var(--red),var(--ac) 50%,var(--green))} /* NG_MKT_COLOR_V1: fear side red, greed side green (start = ترس شدید) */
html[dir="ltr"] .ng .fg-bar{background:linear-gradient(to right,var(--red),var(--ac) 50%,var(--green))}
.ng .fg.fear .fg-h b{color:var(--red)} .ng .fg.fear .fg-bar i{background:var(--red)}
.ng .fg.greed .fg-h b{color:var(--green)} .ng .fg.greed .fg-bar i{background:var(--green)}
.ng .tile .chg.up{color:var(--green)} .ng .tile .chg.dn{color:var(--red)} /* NG_MKT_COLOR_V1: the 24h change by sign */
.ng .tile.up .spark{stroke:var(--green)} .ng .tile.dn .spark{stroke:var(--red)}
.ng .tile .closed{color:var(--mu)} /* NG_MKT_CLOSED_V1: «بازار بسته» on a sleeping metals/oil tile */
.ng .fg-bar i{position:absolute;top:-4px;width:14px;height:14px;border-radius:50%;background:var(--ac);border:2px solid var(--bg);margin-inline-start:-7px}
.ng .fg-l{display:flex;justify-content:space-between;font-size:calc(13px * var(--ng-fs,1));color:var(--tx55)}
.ng .why{padding:8px 0;border-bottom:1px solid var(--ln)}
.ng .why:last-child{border-bottom:0}
.ng .why b{display:block;font-size:calc(15px * var(--ng-fs,1));font-weight:700}
.ng .why small{display:block;font-size:calc(13px * var(--ng-fs,1));color:var(--mu);line-height:1.8}
.ng .card.quote p{margin:0;font-size:calc(14px * var(--ng-fs,1));line-height:2;color:var(--tx86)}
.ng .card.quote small{display:block;margin-top:4px;font-size:calc(13px * var(--ng-fs,1));color:var(--mu)}
.ng .sec .lbl{margin-top:20px}
.ng .sec .card,.ng .sec .tiles,.ng .sec .row{margin-top:10px}
.ng .sec .row.sup-row{margin-top:20px}
/* NG_TAKHT_CUT15_ONB: was `.ng .intro` — that name also belongs to the hero paragraph, which it inflated by 48px (Niki: hero 386px instead of 296) */
.ng .onb{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px 32px;gap:12px;position:relative}
.ng .onb .skip{position:absolute;top:20px;inset-inline-start:26px;font-size:calc(13px * var(--ng-fs,1));color:var(--tx55);min-height:44px;display:inline-flex;align-items:center}
.ng .intro-ic{width:96px;height:96px;border-radius:28px;background:var(--ac16);color:var(--ac);display:grid;place-items:center;margin-bottom:8px}
.ng .intro-ic .ic{width:44px;height:44px;stroke-width:1.5;--zr:var(--ac)}
.ng .onb h2{font-size:calc(24px * var(--ng-fs,1));line-height:1.5;margin:0;color:var(--tx)}
.ng .onb p{font-size:calc(15px * var(--ng-fs,1));line-height:2;color:var(--tx86);margin:0;max-width:34ch} /* NG_TAKHT_CUT15_ONB2 */
.ng .dots{display:flex;gap:8px;margin:8px 0}
.ng .dots i{width:8px;height:8px;border-radius:50%;background:var(--tx40)}
.ng .dots i.on{background:var(--ac);width:24px;border-radius:999px}
.ng .btn.wide{width:100%;margin-top:8px}

/* 6 · CUT 1.5 — what Niki saw on the live CUT 1 (13 Sep 2026) — NG_TAKHT_CUT15_RULES · scripts/ng_takht_cut15.py */
.ng-frame{position:fixed;inset:0;z-index:2147483600;pointer-events:none;border:8px solid var(--frame);border-radius:30px;box-shadow:0 0 0 48px var(--frame),inset 0 0 0 1px rgba(13,20,34,.45)} /* README «قاب تزئینی». The outer spread fills the four corners with the frame's own gold: on a real screen there is no «outside the phone», so the frame is a mat with a rounded opening — no dark notches over the photo (Niki 01:15Z: «این گوشه‌ها رو درست کن») */
html[data-embed="1"] .ng-frame{display:none} /* one frame per screen: an embedded document (academy / تحلیل iframe) draws none */
.ng .hero.tall img{object-position:22% 52%} /* NG_TAKHT_CUT2_HEROUP: the photo rides higher — less sky, the griffin stays */ /* persepolis: keep the griffin whole at 360–430px (cover crops ~80px of width; centred crop cut its crest) */
.ng .guide{margin:0 0 11px;padding:15px 16px;border-radius:var(--r-bar);background:rgba(232,197,71,.09);border:1px solid var(--ln-gold);font-size:calc(13px * var(--ng-fs,1));line-height:2.05;color:var(--tx86)} /* README «پنل راهنما» */
.ng button{-webkit-appearance:none;appearance:none;background:transparent;border:0;padding:0;margin:0;font:inherit;color:inherit;text-align:start;cursor:pointer;-webkit-tap-highlight-color:transparent} /* real <button>s wear the mock's <a> classes */
.ng button.cta,.ng button.row{width:100%}
.ng .resume.fold{padding:9px 15px}
.ng .resume.fold .rt b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#ngHome3 .ng-home{margin:0 -16px;font-size:calc(14px * var(--ng-fs,1));line-height:1.9} /* the newcomer home is the mock screen edge to edge (#ngHome3 pads 16px) */
#ngHome3 .ng-home .sec{padding-bottom:4px}
.ng .lbl .r .num{font-weight:600;color:var(--tx78)}


/* 7 · CUT 1.6 — Niki on the live CUT 1.5, from her phone (13 Sep 2026) — NG_TAKHT_CUT16_RULES · scripts/ng_takht_cut16.py */
/* photos: full colour, no blurred halo; the tall home hero is photo-only and its text sits under the photo */
.ng .hero-t .halo{display:none}
.ng .hero.tall{height:296px;min-height:0;padding:0}
.ng .hero.tall .hero-t{display:none}
.ng .hero-txt{position:relative;z-index:2;margin-top:-124px;padding:0 26px 2px;text-align:center} /* NG_TAKHT_CUT6_TONE: 40 px higher (was -84px; Niki: «شیفت کن به سمت بالا که پایین رو بخونن») */ /* NG_TAKHT_CUT2_HEROUP3: the text climbs into the photo's fade, on a black halo (README «هاله پشت متن») */
.ng .hero-txt::before{content:'';position:absolute;inset:-22px 18px -6px;z-index:-1;pointer-events:none;border-radius:40%;background:radial-gradient(60% 68% at 50% 46%,var(--hero-halo) 0%,var(--hero-halo-mid) 58%,var(--hero-halo-0) 100%);filter:blur(10px)}
.ng .hero-txt h1{text-shadow:0 2px 20px var(--hero-sh),0 0 48px var(--hero-sh)}
.ng .hero-txt h1{margin:0;font-size:calc(28px * var(--ng-fs,1));line-height:1.45;font-weight:700;color:var(--tx);letter-spacing:-.015em}
.ng .hero-txt .wordmark{margin-top:2px}
.ng .hero-txt .intro{margin-top:8px;color:var(--tx86);text-shadow:none;font-weight:600} /* NG_TAKHT_CUT6_INTRO: «یه ذره بولدتر» */
.ng .hero-txt .slogan{text-shadow:none}
/* short heroes: the one-word title rides the bottom edge of the photo, where the fade is */
.ng .hero.short{display:flex;flex-direction:column}
.ng .hero.short .hero-t{margin-top:auto;padding-bottom:12px}
.ng .hero.short .hero-t h1.sm{margin-top:0}
html[data-ngmode] #tab-home .ng.hero-wrap .hero-txt{display:block}
#tab-home .ng.hero-wrap .hero-txt{display:none}
/* the support button says what it is (Niki: «ممکنه نبینن») */
.ng .supb{width:auto;min-width:44px;padding:0 14px 0 12px;display:inline-flex;align-items:center;gap:7px;font-size:calc(13px * var(--ng-fs,1));font-weight:600;line-height:1;color:var(--tx)}
.ng .supb span{white-space:nowrap}
/* تحلیل: the in-app iframe never lives in a display:none subtree (WebKit: wrong width + no repaint), and never overflows */
#acadFrame{width:100%!important;min-width:100%;max-width:100%;display:block} /* NG_NEGAH_NATIVE_V1: #tab-negah is a normal tab again (no iframe) */
html[data-embed="1"] body{overflow-x:hidden;width:100%;max-width:100%}
#negahWait{padding:14px}

/* 8 · CUT 2 — status, client (13 Sep 2026) — NG_TAKHT_CUT2_RULES · scripts/ng_takht_cut2.py + js/ng-takht-hub.js + js/ng-takht-status.js */
.ng .body-m{display:flex;flex-direction:column;gap:12px;padding:8px 20px 12px}
#ngMe2 .body-m,#ngClubPlans .body-m{padding:8px 6px 12px}
/* NG_TAKHT_CUT5_HOME1: the two CUT 2 member-only home rules left — the home is #ngHome3 for everyone; app-v2.css NG_TAKHT_V1 hides the rest under html[data-ngmode] */
html[data-ngmode="member"]:not([data-ngtab]) main,html[data-ngmode="member"][data-ngtab="home"] main{padding:0 0 calc(96px + env(safe-area-inset-bottom,0px))}
html[data-ngmode="member"] #tab-home>.ng.hero-wrap{margin:0 0 4px;display:block!important}
#tab-me > :not(.hero-wrap):not(#ngMe2){display:none!important}   /* «من» is rows now; the V3 cards stay only as the DOM the old handlers write into */
#ngMe2 #me-receipts,#ngMe2 #ngRejoinCard{margin:0}
#ngMe2 .seg a{cursor:pointer}
#ngMe2 .sq{cursor:pointer}
.ng .row .state{flex:none}
.ng .rt b,.ng .rt small{white-space:normal;overflow-wrap:anywhere}
/* the lamp on legacy cards (exam / homework cards in the cabin keep their markup) */
.ng-svc-card.live,.ng-card.live{border-color:var(--ln-gold)!important;background:linear-gradient(165deg,var(--ac14),rgba(255,248,231,.03))!important}
/* cabin lists in the mock's clothes */
#ngLessonsList,#ngAsgList{display:flex;flex-direction:column;gap:10px;margin-top:8px}
#ngLessonsList .lbl,#ngAsgList .lbl{margin-top:10px}
#ngLessonsNext .card,#ngAsgNext .card{margin:4px 0 6px}
.ng .les .rt b{font-size:calc(15px * var(--ng-fs,1))}
.ng .les.lock{opacity:.85}
.ng .les .st{margin-inline-start:4px}
/* the player's second bar: «تکلیف این جلسه» / «جلسه بعد» */
#ngVideo .ng-vid-bar{flex-wrap:wrap}
#ngVidActs{flex-basis:100%;display:flex;gap:8px;padding-top:8px}
#ngVidActs:empty{display:none}
#ngVidActs button{flex:1;min-height:44px;border-radius:var(--r-btn);border:1px solid var(--ac55);background:transparent;color:var(--ac);font:inherit;font-weight:700;font-size:var(--t-sm);display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer}
#ngVidActs button .ic{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
/* first-run intro */
#ngIntro{position:fixed;inset:0;z-index:2147483500;background:var(--bg);display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0)}
#ngIntro .onb .skip{cursor:pointer}
#ngIntro .onb .foot{margin-top:4px}
#ngClubLampSlot .body-m{padding:0 0 8px}
#tier-list[hidden]{display:none}
html[data-ngmode] #tab-home[data-ng3-screen]:not([data-ng3-screen="main"]) .ng.hero-wrap .hero.tall{height:168px} /* NG_TAKHT_CUT2_SUBHERO */
html[data-ngmode] #tab-home[data-ng3-screen]:not([data-ng3-screen="main"]) .ng.hero-wrap .hero-txt{display:none}
html[data-ngmode] #tab-home[data-ng3-screen]:not([data-ng3-screen="main"]) .ng.hero-wrap .hero.tall .scrim{background:linear-gradient(180deg,var(--scrim-top) 0%,var(--scrim-0) 40%,var(--scrim-mid) 80%,var(--bg) 100%)}

/* 9 · CUT 2b type step withdrawn — NG_TAKHT_CUT2_TYPEDOWN (Niki 13 Sep ~10:40Z: «فونت و سایز مثل Claude Design») */
/* 5 · legacy components in Niki's clothes — until CUT 2/3 convert the markup, the old class names wear the
   same tokens as the mock: paper text on navy, hairline borders, 20/16/13 radii, gold fill + ink text, no light. */
html{background:var(--bg)}
body{background:var(--bg);color:var(--tx);font-family:'Vazirmatn','Vazirmatn Fallback',system-ui,Tahoma,sans-serif;font-variant-numeric:tabular-nums;font-feature-settings:'tnum' 1;-webkit-tap-highlight-color:var(--ac1)}
bdi,.num,[dir=ltr]{font-variant-numeric:tabular-nums}

/* photo hero replaces the 48px brand row; it bleeds to the edges of the padded <main> */
header#ngHeader{display:none!important}
main>section.tab>.ng.hero-wrap{margin:-14px -14px 16px}
html[data-ngmode] #tab-home>.ng.hero-wrap{margin:0 0 4px}
html[data-ngmode] #tab-home>.ng.hero-wrap{display:block!important}
html[data-ngmode] #ngHome3 .ng3-hero{display:none}          /* the photo hero carries title, intro and slogan */
.ng.hero-wrap .hero.tall .hero-t h1{margin-top:68px} /* NG_TAKHT_CUT15_H1B */
.ng.hero-wrap .hero.short .hero-t h1.sm{margin-top:16px}
.ng.hero-wrap .supb{cursor:pointer;-webkit-appearance:none;appearance:none;padding:0;font:inherit}
.ng.hero-wrap .hero.short{height:168px}
#tab-home .ng.hero-wrap .hero.tall{display:none}
html[data-ngmode] #tab-home .ng.hero-wrap .hero.tall{display:block}
html[data-ngmode] #tab-home .ng.hero-wrap .hero.short{display:none}

/* cards: one surface, one hairline, one radius */
.card,.ngh-card,.ng3-card,.world-card,.ng-card,.ngf2-card,.tier-card,.plan-card,.ng-svc-card,.ng-prow,.ng-dept,.ng-ann,.session-item,.ng-les,.ng-stat,.ng-mini,.ng-course,.ng-svc,.ng-free-points,.ng-free-cta,.zv-card,.hero-card{background:var(--sf)!important;border:1px solid var(--ln)!important;border-radius:var(--r-card)!important;box-shadow:none!important}
.hero-card{background:var(--ac14)!important;border-color:var(--ln-gold)!important}
.hero-card .hero-title,.hero-card .hero-sub,.hero-card .hero-eyebrow{color:var(--tx)!important;letter-spacing:0;text-transform:none}
.world-card,.ng3-row,.ng-prow,.session-item,.ng-les{border-radius:var(--r-bar)!important}
.card .card,.ngh-card .ngh-card{background:var(--chip)!important}

/* buttons: gold fill + ink text; ghost = gold hairline + gold text; 44px minimum touch */
.upgrade-btn,.ng3-btn,.ng-btn-gold,.hero-cta,.ng-cta,button.primary,.btn.gold,.btn-gold,.ngu-pill.active,.zv-btn,.hubsup-start-btn,.why-cta{background:var(--ac)!important;color:var(--ac-ink)!important;border:0!important;border-radius:var(--r-btn)!important;font-weight:700!important;box-shadow:none!important;text-shadow:none!important;min-height:44px}
.ng-btn-ghost,.btn.ghost,.ng3-action,.ngf2-ghost{background:transparent!important;color:var(--ac)!important;border:1px solid var(--ac55)!important;border-radius:var(--r-btn)!important;font-weight:700!important;min-height:44px}
button,.btn,.ng-btn{font-family:inherit}
.ng3-btn--green{background:var(--green)!important;color:var(--green-ink)!important}   /* door 2: «ورود به باشگاه سرمایه‌گذاری» */
.ng3-door--primary .ng3-action,.ng3-door .ng3-action[hidden]{display:none}

/* pills, sub-tabs, chips */
.sub-tabs,.ngu-sub,.plan-tabs{background:transparent!important;border:0!important;gap:8px;padding:8px 0 4px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.sub-tabs::-webkit-scrollbar,.ngu-sub::-webkit-scrollbar{display:none}
.ngu-sub{background:var(--bg)!important;padding:8px 16px 6px}          /* it is sticky: it must not be see-through */
.ngu-pill{flex:0 0 auto!important;min-width:0}
.sub-tab,.plan-tab,.ngu-pill,.ng-sup-tab,.chip{min-height:44px;padding:0 14px!important;border-radius:var(--r-pill)!important;border:1px solid var(--ln)!important;background:transparent!important;color:var(--mu)!important;font-size:var(--t-xs)!important;font-weight:600!important;line-height:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;box-shadow:none!important}
.sub-tab.active,.plan-tab.active,.ngu-pill.active,.ng-sup-tab.active,.chip.current{color:var(--ac)!important;border-color:var(--ac45)!important;background:var(--ac1)!important}
.ngu-pill.active .lb,.ngu-pill .lb{color:inherit!important}
.ngu-pill{flex-direction:row!important}
.ngu-pill .ic{font-size:0!important;width:18px;height:18px;opacity:1!important}
.ng3-chip,.ng-pill,.ngf2-chip,.tier-badge,.risk-tag,.ng-badge,.featured-badge,.investor-badge{border-radius:var(--r-pill)!important;font-weight:600!important;box-shadow:none!important}

/* section titles: Persian, no uppercase, no tracking */
.section-title,.ng-h2,.ng3-eb,.zv-h2{letter-spacing:0!important;text-transform:none!important;font-size:var(--t-xs)!important;font-weight:600!important;color:var(--tx55)!important;margin:20px 4px 10px!important}

/* fields */
input,textarea,select,.inp,.ng-input{background:rgba(255,248,231,.06)!important;border:1px solid rgba(255,248,231,.22)!important;border-radius:var(--r-bar)!important;color:var(--tx)!important;font-family:inherit;min-height:48px;box-shadow:none!important}
input::placeholder,textarea::placeholder{color:var(--tx40)}
input:focus,textarea:focus,select:focus{outline:2px solid var(--ac45);outline-offset:0;border-color:var(--ac45)!important}
input[type=checkbox],input[type=radio],input[type=range]{min-height:0;background:none!important;border:0!important}

/* bottom nav: the mock's .nav/.nv, on the three existing navs (#bottom-nav in the hub, .ngu-nav in the academy and negah) */
nav#bottom-nav,.ngu-nav{position:fixed;left:0;right:0;bottom:0;z-index:60;max-width:440px;margin:0 auto;display:flex!important;justify-content:space-between;grid-template-columns:none;background:var(--nav)!important;border-top:1px solid var(--ac22)!important;padding:10px 14px calc(10px + env(safe-area-inset-bottom,8px))!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
nav#bottom-nav button,.ngu-nav .ngu-btn{flex:1;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:0;border:0;border-radius:var(--r-ic);background:none;font-family:inherit;font-size:var(--t-nav);font-weight:600;line-height:1;color:var(--tx55)!important;position:relative;opacity:1!important}
nav#bottom-nav button.active,.ngu-nav .ngu-btn.active{color:var(--ac)!important}
nav#bottom-nav button .label,.ngu-nav .ngu-btn .lb{font-size:var(--t-nav)!important;font-weight:600!important;color:inherit!important;line-height:1}
nav#bottom-nav svg.ic,.ngu-nav svg.ic{width:22px;height:22px;flex:none;fill:var(--tx40);stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;opacity:1}
nav#bottom-nav button.active svg.ic,.ngu-nav .ngu-btn.active svg.ic{fill:var(--ac);stroke-width:2}
.ngu-nav .ngu-btn .ic{font-size:0;opacity:1}
.ngu-nav .tabgift{display:none!important}
nav#bottom-nav .dot,.ngu-nav .dot{position:absolute;top:6px;inset-inline-end:calc(50% + 10px);width:8px;height:8px;border-radius:50%;border:1.5px solid var(--ac)}

/* 10 · CUT 3 — server + iframe (13 Sep 2026) — NG_TAKHT_CUT3_CSS · scripts/ng_takht_cut3.py */
.ng .resume.calm{background:var(--sf);border-color:var(--ln)}                 /* an order under review: a quiet line, not a lit one */
.ng .resume.calm .bang{background:var(--ac14);color:var(--ac)}
.ng .resume.calm .rt b{color:var(--tx)}
.ng .resume .state{flex:none;margin-inline-start:auto}
.ng .tile.t2 .spark{width:100%;height:24px}                                    /* the 24h line fills the tile (mock gen5: 64×24 in a 3-column grid) */
#ngMe2Rec #ngRejoinCard,#ngMe2Rec #me-receipts{display:contents}              /* the two legacy blocks are rows of «سوابق» now, not cards */
#ng-rcpt-body{display:flex;flex-direction:column;gap:10px}
#ng-rcpt-body .row{cursor:default}
#ng-rcpt-body .rt small.num{direction:ltr;text-align:left;word-break:break-all}
/* NG_TAKHT_CUT3_CSS2: «−0.7%، 24 ساعت» is 91px at 13px; a 390-wide tile gives 86 → one line by a tighter tile (9px padding, 6px gap = 94px), and under 386px the «، 24 ساعت» half hides */
.ng .tile.t2{padding:10px 9px}
.ng .tile.t2 em{white-space:nowrap}
.ng .tiles:has(.t2){gap:6px}
@media (max-width:385px){.ng .tile.t2 em .h24{display:none}}

/* type discipline: three weights, nothing under 13px, Persian never tracked */
b,strong{font-weight:700}
h1,h2,h3,h4{font-weight:700;letter-spacing:0}
small,.small,.muted,.meta{font-size:var(--t-xs)}
[lang=fa],[dir=rtl]{letter-spacing:0}

/* 9 · CUT 5 — one home for everyone (13 Sep 2026) — NG_TAKHT_CUT5_HOME1 · scripts/ng_takht_cut5_home1.py */
.ng .card.quote audio{display:block;width:100%;height:40px;margin:2px 0 6px}
/* the bottom nav, one step slimmer (Niki, 13 Sep: «تب‌های پایین خیلی پهنه») */
nav#bottom-nav,.ngu-nav{padding:4px 8px calc(4px + env(safe-area-inset-bottom,6px))!important;min-height:0!important;gap:4px}
nav#bottom-nav button,.ngu-nav .ngu-btn{min-height:52px!important;gap:4px!important;padding:0 2px!important;border-radius:14px;transition:background-color .15s,color .15s}   /* NG_TAKHT_CUT5_NAV2: 53→61px (Niki: «فقط یه کم بزرگ‌تر») */
nav#bottom-nav button .label,.ngu-nav .ngu-btn .lb{line-height:1.2!important}
nav#bottom-nav svg.ic,.ngu-nav svg.ic{width:22px;height:22px}
/* the tab you are on is a lit gold tile, not just a gold word (Niki: «مشخص بشه تو کدوم تب هستم») */
nav#bottom-nav button.active,.ngu-nav .ngu-btn.active{background:transparent!important;box-shadow:none!important;color:var(--ac)!important} /* NG_TAKHT_CUT6_NAVBOX: the tile of NAV2 is gone (Niki: «این باکس رو بردار»); the gold word + icon, bold, mark the tab */
nav#bottom-nav button.active .label,.ngu-nav .ngu-btn.active .lb{font-weight:700!important}
nav#bottom-nav button:active,.ngu-nav .ngu-btn:active{background:var(--ac22)!important}
/* the cabin's four pills share the width instead of clipping «پشتیبانی» (Niki's screenshot, 13 Sep) */
.ng .pills{gap:6px;padding:8px 12px 4px;overflow-x:auto;scrollbar-width:none}
.ng .pills::-webkit-scrollbar{display:none}
.ng .pill,.ng .pill.sm{flex:1 1 0;min-width:0;justify-content:center;height:40px;padding:0 8px;font-size:calc(12.5px * var(--ng-fs,1));white-space:nowrap}
.ng .pill svg.ic,.ng .pill .ic{width:16px;height:16px;flex:none}
/* the cabin pills (.ngu-pill in index.html) share the width: «پشتیبانی» was clipped at 390px (scrollWidth 402) */
.ngu-sub{padding:8px 12px 6px!important;gap:6px}
.ngu-pill{flex:1 1 0!important;min-width:0;padding:0 8px!important;white-space:nowrap;gap:5px}
.ngu-pill .ic{width:16px;height:16px}
@media (max-width:374px){.ngu-pill{padding:0 5px!important;gap:4px}}
/* NG_TAKHT_CUT5_FS: 71 literal px sizes above now follow --ng-fs (the «من › اندازه متن» step) */

/* NG_HOMEPOLISH_V1 (13 Sep 2026) — Niki's polish of the two cards, the tiles and «چرا نیک‌گلد؟». Numbers measured in the local mirror at 390/375/360:
   a 390 phone gives the chip row 313px; three chips at the old 15px were 427px. `cqi` sizes the label to the card so all three
   share one row from 375px up (11.5px floor; a 360 phone wraps the third, which beats a 10.9px label). */
.ng .path{padding-top:22px;container-type:inline-size}                             /* title block a little lower (Niki) */
.ng .path-id b{font-size:calc(19px * var(--ng-fs,1));line-height:1.4}              /* bigger, bolder look (700 is the heaviest face we ship) */
.ng .path-id small{font-size:calc(14.5px * var(--ng-fs,1));margin-top:3px;color:var(--tx78)}   /* «از صفر تا صد…» a touch larger, apart from the paragraph */
.ng .path-d{font-size:calc(14px * var(--ng-fs,1))}                /* NG_CARDPOLISH_V1: the 22px margin never rendered (#ngHome3 p{margin:0} wins) — the air now sits on .path-h below */
.ng .path .chips{gap:4px;margin-top:12px}
/* NG_CARDPOLISH_V1: the 11.5px chip clamp is gone — it sat under the 13px floor written above; the block at the end of this file sizes the chips */
.ng .cta.fill.gold{background:var(--ac);color:var(--ac-ink)}                        /* academy = gold, club = green — no longer twins (Niki) */
.ng .tile{align-items:center;text-align:center}                                    /* tile content centred (was hugging the right edge) */
.ng .tile b{font-size:calc(16px * var(--ng-fs,1))}
@media (max-width:399px){.ng .tile.t2 em .h24{display:none}}                     /* centred, «−0.4%، 24 ساعت» (105px at 1.15×) no longer has a right edge to hide behind: below 400px only the change shows */
.ng .why b{font-size:calc(16px * var(--ng-fs,1));line-height:1.6}
.ng .why small{font-size:calc(14px * var(--ng-fs,1));color:var(--tx78);line-height:1.9;margin-top:2px}
.ng .why-res{margin-top:14px;margin-bottom:2px}
.ng .ng3-results .ng3-card{margin-top:12px}

/* ====== NG_CARDPOLISH_V1 (14 Sep 2026) — the two home path cards as four calm rows + Niki's «چرا نیک‌گلد؟» colours + her risk-test box.
   Judge panel B (4 lenses, 2 proposals, 2 judges) → «calm hierarchy». Scope .ng.ng-home = the newcomer/member home only
   (ng-takht-hub.js courseCard() keeps the two-column .price header and ng.css 150–159 — NG_CARDPOLISH_V2 later).
   Sizes calc(N × --ng-fs), floor 13px, weights 400/600/700, steps 8/16/24 (4 = micro), colours = tokens, no shadow/gradient/blur. */
.ng.ng-home .path{padding:24px 18px 16px}
.ng.ng-home .path.teal{border-color:var(--ln-gold-hi)}
.ng.ng-home .path.lapis{margin-top:16px}
.ng.ng-home .path.lapis+.lbl{margin-top:24px}
.ng.ng-home .sec-h{margin-bottom:16px}
/* row 1 — header block: icon + title + subtitle + meta line, full width */
.ng.ng-home .path-h{display:block;margin-bottom:16px}
.ng.ng-home .path-id{display:flex;align-items:flex-start;gap:10px;min-width:0}
.ng.ng-home .path-ic{margin-top:-3px}
.ng.ng-home .path-tx{flex:1 1 auto;min-width:0}
.ng.ng-home .path-tx>b{display:block;font-size:calc(19px * var(--ng-fs,1));font-weight:700;line-height:1.4;color:var(--tx);white-space:normal;text-wrap:balance}
.ng.ng-home .path-tx>small{display:block;margin-top:4px;font-size:calc(15px * var(--ng-fs,1));font-weight:600;line-height:1.7;color:var(--tx78);text-wrap:balance}
.ng.ng-home .path-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin-top:8px}
.ng.ng-home .path-meta>small{margin:0;font-size:calc(13px * var(--ng-fs,1));font-weight:600;line-height:1.5;color:var(--mu)}
.ng.ng-home .path-meta>b{font-size:calc(17px * var(--ng-fs,1));font-weight:700;line-height:1.3;color:var(--ac);min-width:0;overflow-wrap:anywhere;white-space:normal}
/* row 2 — body */
.ng.ng-home .path-d{margin:0;font-size:calc(14px * var(--ng-fs,1));line-height:1.9;color:var(--tx86);text-wrap:pretty}
html[dir="ltr"] .ng.ng-home .path-d{line-height:1.65}
/* row 3 — chips (labels, not buttons) */
.ng.ng-home .path .chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.ng.ng-home .path .chip{min-height:32px;padding:0 10px!important;border:0!important;border-radius:var(--r-pill)!important;background:var(--chip)!important;color:var(--tx78)!important;font-size:calc(13px * var(--ng-fs,1))!important;font-weight:600!important;line-height:1.5;white-space:nowrap;display:inline-flex;align-items:center;cursor:default;transition:none}
/* row 3b — Niki's risk-test box (club card, newcomers): a quiet card with the club's green edge, above the CTA */
.ng.ng-home .path-risk{margin-top:16px;padding:10px 12px;border-radius:var(--r-bar);background:var(--sf);border:1px solid var(--ln);border-inline-start:3px solid var(--green)}
.ng.ng-home .path-risk b{display:block;font-size:calc(14px * var(--ng-fs,1));font-weight:700;line-height:1.7;color:var(--tx);text-wrap:balance}
.ng.ng-home .path-risk small{display:block;margin-top:2px;font-size:calc(13px * var(--ng-fs,1));line-height:1.9;color:var(--tx78);text-wrap:pretty}
/* row 4 — CTA: label and chevron as one centred unit, 48px */
.ng.ng-home .path .cta,.ng.ng-home .why-res{justify-content:center;gap:8px;line-height:1.5;min-height:48px;padding:12px 16px}
.ng.ng-home .path .cta{margin-top:16px}
.ng.ng-home .why-res{margin-top:16px;margin-bottom:0}
.ng.ng-home .why b{line-height:1.7;text-wrap:balance}
/* EN: same markup, LTR flow, forward chevron */
html[dir="ltr"] .ng.ng-home{direction:ltr}
html[dir="ltr"] .ng.ng-home .cta .ic,html[dir="ltr"] .ng.ng-home .ic.chev{transform:scaleX(-1)}
/* «چرا نیک‌گلد؟» — Niki 14 Sep: heading green + bold (◆ too); lines 1 and 3 green, line 2 red. Tokens only, day flips (6.32/5.84/4.85:1 night · 4.51/5.00/6.04:1 day). */
.ng .lbl.why-h>span:first-child{color:var(--green);font-weight:700}
.ng .lbl.why-h>span:first-child::before{color:var(--green)}
.ng .why.why-g b{color:var(--green)}
.ng .why.why-r b{color:var(--warn)}
/* NG_CARDPOLISH_V1 end */

/* NG_CLUBSELL_V1 (Track D, 14 Sep 2026) — the club's first page: hero → for-whom row → risk-test box → what you get → proof row → four rows (untouched) → which plan → ONE green CTA.
   Every block reuses .card.live.lapis .eyebrow h2 .meta .lbl .why .row .list .chips .chip .cta.fill.green — no new colour, shadow, gradient or weight; nothing under 13px. */
.ng .card.cl2-risk{border-color:var(--ln-green)}                                                        /* Niki's box wears the club's green hairline (= .path.lapis on the home; token flips by day) */
.ng .cl2-risk .eyebrow,.ng .cl2-risk .eyebrow::before{color:var(--green)}                               /* #1FAE5A on the night card ≈ 6:1; day #0F7A3A on paper 4.6:1 */
.ng .cl2-risk .chips{margin-top:12px;gap:6px}
.ng .cl2-risk .chip{min-height:34px;padding:0 10px!important;font-size:calc(13px * var(--ng-fs,1))!important;line-height:1.6;white-space:nowrap}   /* facts, not pills: three chips ≈ 270px of 314 at 390; wrap on 360 is intended */
.ng .card.cl2-get{padding:10px 18px}                                                                    /* the three .why rows carry 8px of their own → 18 top/bottom like every card */
.ng .ng3-invest .body-m>.lbl,#ngClubPlans .body-m>.lbl{margin-top:8px;margin-bottom:-2px}              /* a label sits 20 under the block above and 10 over the one it names (body-m gap 12) */
.ng .cl2-pick{color:var(--tx78)}                                                                        /* «فقط سبد می‌خواهید…» one shade quieter than the meta */
.ng .ng3-invest .body-m>.cta,#ngClubPlans .body-m>.cta{margin-top:4px;justify-content:center;gap:8px;min-height:48px}   /* .cta defaults to 15 + gap 12 = 27; 4 + 12 = 16 on the 8-rhythm; label + chevron centred like the home cards */
.ng .cl2-soon{margin:4px 0 0;padding:14px 16px;border:1px dashed var(--ln);border-radius:var(--r-bar);text-align:center}   /* gated: inv_soon reads as a state, not a stray paragraph */
/* NG_CLUBSELL_V1 end */
