/* پنل هوش بازاریابی زورا — زبان طراحی خانوادهٔ زورا (docs/DESIGN-ZORA-FAMILY.md)
   هم‌خانوادهٔ «Zora Audit» (fin-audit.zorafx.io): همان token‌ها (پالت HSL اپل برای روشن و تیره، شعاع، سایه، حرکت، جزیره‌ها و
   شیشه) و همان مؤلفه‌ها (جزیرهٔ کناری و نوار بالا، کارت شاخص با گرادیان رنگ خودش، کارت سلامت منبع، قرص‌ها، جدول، کشو)،
   راست‌به‌چپ با ویژگی‌های منطقی (inline-start/end). رنگ‌های معنایی (درجهٔ اتکا، شدت یافته) روی token‌های معنایی Zora Audit
   (success، warning، destructive، info) نشسته‌اند و همیشه با نشانه و واژه‌اند، نه فقط رنگ. */
@font-face{font-family:'YekanBakh';src:url('fonts/YEKANBAKH-REGULAR.TTF') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:'YekanBakh';src:url('fonts/YEKANBAKH-SEMIBOLD.TTF') format('truetype');font-weight:500 600;font-display:swap}
@font-face{font-family:'YekanBakh';src:url('fonts/YEKANBAKH-BOLD.TTF') format('truetype');font-weight:700 900;font-display:swap}

/* ============ 1. token‌های مستقل از پوسته (Zora Audit، vendor/cpg-theme.css §2) ============ */
:root{
  /* نوشتار: روی مک و iOS فونت سیستم (SF Arabic فارسی را خوب می‌نویسد؛ theme.js کلاس apple را می‌گذارد)، جای دیگر یکان‌بخ.
     یکان‌بخ نباید در پشتهٔ اپل باشد: Chrome حرف فارسی را به اولین فونت فهرست که آن را دارد می‌دهد، پیش از SF Arabic سیستم. */
  --font-sans:'YekanBakh',system-ui,'Segoe UI',Tahoma,sans-serif;
  --font-mono:ui-monospace,'SF Mono','SFMono-Regular',Menlo,Consolas,monospace;
  --radius:.75rem; --radius-sm:.5rem; --radius-pill:999px;
  --ease-standard:cubic-bezier(.32,.72,0,1); --ease-exit:cubic-bezier(.4,0,1,1);
  --duration-fast:.15s; --duration-base:.25s; --duration-slow:.4s;
  --layout-sidebar-width:16rem; --layout-navbar-height:3.75rem; --layout-content-max:95rem;
  --material-blur:saturate(180%) blur(20px); --material-opacity:.72;
  --island-gap:.75rem; --island-radius:1rem;
}
html.apple{--font-sans:-apple-system,BlinkMacSystemFont,system-ui,'Helvetica Neue',sans-serif}

/* ============ 2. پوستهٔ روشن (پالت سیستمی اپل، همان سه‌تایی‌های HSL) ============ */
:root{
  color-scheme:light;
  --background:240 20% 97%; --foreground:240 6% 10%;
  --card:0 0% 100%; --card-foreground:240 6% 10%; --popover:0 0% 100%; --popover-foreground:240 6% 10%;
  --primary:211 100% 50%; --primary-foreground:0 0% 100%;
  --secondary:240 12% 94%; --secondary-foreground:240 6% 10%;
  --muted:240 12% 94%; --muted-foreground:240 4% 46%;
  --accent:240 12% 94%; --accent-foreground:240 6% 10%;
  --border:240 10% 89%; --input:240 10% 89%;
  --destructive:4 100% 59%; --destructive-foreground:0 0% 100%;
  --success:135 54% 49%; --success-foreground:0 0% 100%;
  --warning:35 100% 50%; --warning-foreground:0 0% 100%;
  --info:211 100% 50%; --info-foreground:0 0% 100%;
  --ring:211 100% 50%;
  --success-text:135 62% 28%; --warning-text:28 92% 32%; --destructive-text:4 78% 44%; --info-text:211 100% 40%;
  --shadow-color:240 20% 40%; --shadow-strength:.10;
  /* رنگ کارت‌های شاخص (--metric-color) و جوهر عددشان (--metric-ink)؛ آبی، کهربایی، قرمز و سبز همان token‌های معنایی‌اند */
  --tone-purple:280 75% 60%; --ink-purple:270 64% 50%;
  --tone-indigo:236 72% 62%; --ink-indigo:236 60% 48%;
  --tone-teal:186 72% 40%; --ink-teal:186 80% 28%;
  --tone-gray:240 5% 60%; --ink-gray:240 4% 40%;
  /* سری‌های نمودار (فقط نشانه‌های نمودار): همان رنگ‌های کارت‌های مسیر در Zora Audit */
  --series-sales:216 90% 52%; --series-disc:158 66% 38%; --series-com:270 70% 56%; --series-pay:28 96% 52%;
}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]){
  color-scheme:dark;
  --background:240 6% 6%; --foreground:0 0% 96%;
  --card:240 5% 11%; --card-foreground:0 0% 96%; --popover:240 5% 13%; --popover-foreground:0 0% 96%;
  --primary:211 100% 52%; --primary-foreground:0 0% 100%;
  --secondary:240 4% 17%; --secondary-foreground:0 0% 96%;
  --muted:240 4% 15%; --muted-foreground:240 5% 65%;
  --accent:240 4% 17%; --accent-foreground:0 0% 96%;
  --border:240 4% 20%; --input:240 4% 20%;
  --destructive:4 100% 61%; --success:135 64% 50%; --warning:37 100% 52%; --warning-foreground:240 6% 10%;
  --info:211 100% 62%; --ring:211 100% 52%;
  --success-text:135 64% 62%; --warning-text:37 100% 64%; --destructive-text:4 100% 72%; --info-text:211 100% 72%;
  --shadow-color:240 30% 2%; --shadow-strength:.45;
  --ink-purple:270 85% 77%; --ink-indigo:236 90% 78%; --ink-teal:186 70% 60%; --ink-gray:240 5% 72%;
  --series-sales:216 90% 60%; --series-disc:158 60% 45%; --series-com:270 80% 72%; --series-pay:28 96% 58%;
}}
:root[data-theme="dark"]{
  color-scheme:dark;
  --background:240 6% 6%; --foreground:0 0% 96%;
  --card:240 5% 11%; --card-foreground:0 0% 96%; --popover:240 5% 13%; --popover-foreground:0 0% 96%;
  --primary:211 100% 52%; --primary-foreground:0 0% 100%;
  --secondary:240 4% 17%; --secondary-foreground:0 0% 96%;
  --muted:240 4% 15%; --muted-foreground:240 5% 65%;
  --accent:240 4% 17%; --accent-foreground:0 0% 96%;
  --border:240 4% 20%; --input:240 4% 20%;
  --destructive:4 100% 61%; --success:135 64% 50%; --warning:37 100% 52%; --warning-foreground:240 6% 10%;
  --info:211 100% 62%; --ring:211 100% 52%;
  --success-text:135 64% 62%; --warning-text:37 100% 64%; --destructive-text:4 100% 72%; --info-text:211 100% 72%;
  --shadow-color:240 30% 2%; --shadow-strength:.45;
  --ink-purple:270 85% 77%; --ink-indigo:236 90% 78%; --ink-teal:186 70% 60%; --ink-gray:240 5% 72%;
  --series-sales:216 90% 60%; --series-disc:158 60% 45%; --series-com:270 80% 72%; --series-pay:28 96% 58%;
}

/* ============ 3. سایه (cpg-theme.css §8) ============ */
:root{
  --shadow-sm:0 1px 2px hsl(var(--shadow-color) / calc(var(--shadow-strength) * .6));
  --shadow-md:0 2px 4px hsl(var(--shadow-color) / calc(var(--shadow-strength) * .5)),0 6px 16px hsl(var(--shadow-color) / calc(var(--shadow-strength) * .6));
  --shadow-lg:0 4px 8px hsl(var(--shadow-color) / calc(var(--shadow-strength) * .5)),0 16px 40px hsl(var(--shadow-color) / calc(var(--shadow-strength) * .8));
}

/* ============ 4. لایهٔ شیشه (Zora Audit، public/styles.css «Liquid glass») ============ */
:root{
  --island-gap:1.125rem; --island-radius:1.75rem; --radius:1.4rem; --radius-sm:.85rem;
  --layout-sidebar-width:15.25rem; --layout-navbar-height:3.8rem;
  --glass-chrome:rgb(255 255 255 / .6); --glass-content:rgb(255 255 255 / .82); --glass-raised:rgb(255 255 255 / .94);
  --glass-control:rgb(255 255 255 / .66); --glass-hover:rgb(255 255 255 / .9); --glass-line:rgb(31 41 55 / .07);
  --glass-shadow:0 12px 36px -18px rgb(26 39 65 / .18),0 2px 6px rgb(26 39 65 / .025);
  --glass-float:0 18px 48px -18px rgb(26 39 65 / .22),inset 0 0 0 1px rgb(255 255 255 / .6);
  --glass-canvas:radial-gradient(ellipse at 91% 0%,#e0e8f0 0%,transparent 48%),radial-gradient(ellipse at 10% 25%,#eae5ef 0%,transparent 45%),linear-gradient(215deg,#f3f5f7,#edf0f3 55%,#f6f3ef);
  /* افزوده‌های این پنل: همتای مات «glass-content» برای سرستون چسبان و لایه‌های روی هم، و ته‌رنگ خنثای قرص و ورودی */
  --glass-solid:rgb(255 255 255); --soft:rgb(125 130 145 / .075); --soft-2:rgb(125 130 145 / .04);
}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]){
  --glass-chrome:rgb(32 35 42 / .66); --glass-content:rgb(33 36 43 / .88); --glass-raised:rgb(39 42 50 / .96);
  --glass-control:rgb(255 255 255 / .065); --glass-hover:rgb(255 255 255 / .11); --glass-line:rgb(255 255 255 / .065);
  --glass-shadow:0 16px 38px -16px rgb(0 0 0 / .36),0 2px 5px rgb(0 0 0 / .1);
  --glass-float:0 20px 48px -18px rgb(0 0 0 / .5),inset 0 0 0 1px rgb(255 255 255 / .07);
  --glass-canvas:radial-gradient(ellipse at 90% 0%,#202b39 0%,transparent 48%),radial-gradient(ellipse at 5% 35%,#2a2634 0%,transparent 50%),linear-gradient(215deg,#171b22,#11141a);
  --glass-solid:rgb(32 35 42); --soft:rgb(125 130 145 / .1); --soft-2:rgb(125 130 145 / .06);
}}
:root[data-theme="dark"]{
  --glass-chrome:rgb(32 35 42 / .66); --glass-content:rgb(33 36 43 / .88); --glass-raised:rgb(39 42 50 / .96);
  --glass-control:rgb(255 255 255 / .065); --glass-hover:rgb(255 255 255 / .11); --glass-line:rgb(255 255 255 / .065);
  --glass-shadow:0 16px 38px -16px rgb(0 0 0 / .36),0 2px 5px rgb(0 0 0 / .1);
  --glass-float:0 20px 48px -18px rgb(0 0 0 / .5),inset 0 0 0 1px rgb(255 255 255 / .07);
  --glass-canvas:radial-gradient(ellipse at 90% 0%,#202b39 0%,transparent 48%),radial-gradient(ellipse at 5% 35%,#2a2634 0%,transparent 50%),linear-gradient(215deg,#171b22,#11141a);
  --glass-solid:rgb(32 35 42); --soft:rgb(125 130 145 / .1); --soft-2:rgb(125 130 145 / .06);
}

/* ============ 5. نام‌های معنایی این پنل، روی token‌های Zora Audit ============
   درجهٔ اتکا: تأییدشده = success، بازسازی‌شده = info، تخمینی = warning، مغایرت = destructive، در داده نیست = متن کم‌رنگ.
   شدت یافته: بحرانی = destructive، هشدار = warning، اطلاع = info، بدون مغایرت = success. */
:root{
  --ink:hsl(var(--foreground)); --ink-2:hsl(var(--foreground) / .78); --ink-3:hsl(var(--muted-foreground));
  --rule:var(--glass-line); --rule-2:hsl(var(--foreground) / .14); --rule-strong:hsl(var(--foreground) / .55);
  --bg:hsl(var(--background)); --surface:var(--glass-solid); --surface-2:var(--soft); --hover:var(--soft-2);
  --focus:hsl(var(--ring));
  --crit:hsl(var(--destructive-text)); --crit-tint:hsl(var(--destructive) / .12);
  --warn:hsl(var(--warning-text)); --warn-tint:hsl(var(--warning) / .14); --warn-fill:hsl(var(--warning));
  --ok:hsl(var(--success-text)); --ok-tint:hsl(var(--success) / .13);
  --sev-info:hsl(var(--info-text)); --sev-info-tint:hsl(var(--info) / .12);
  --conf-v:var(--ok); --conf-v-tint:var(--ok-tint);
  --conf-r:hsl(var(--info-text)); --conf-r-tint:hsl(var(--info) / .12);
  --conf-e:var(--warn); --conf-e-tint:var(--warn-tint);
  --conf-u:var(--ink-3); --conf-u-tint:var(--soft);
  --conf-x:var(--crit); --conf-x-tint:var(--crit-tint);
  --s-sales:hsl(var(--series-sales)); --s-disc:hsl(var(--series-disc)); --s-com:hsl(var(--series-com)); --s-pay:hsl(var(--series-pay));
  --scrim:rgb(25 31 42 / .22);
  --nav-w:var(--layout-sidebar-width);
  --f-text:var(--font-sans); --f-fig:var(--font-sans);
  /* نام‌های قدیمی که style درون‌خطی app.js، نمودارها و الگوهای svg می‌خوانند */
  --paper:var(--glass-solid); --dim:var(--ink-3); --line:var(--rule);
  --critical:hsl(var(--destructive)); --good:var(--ok); --sales:var(--s-sales); --discount:var(--s-disc);
  --commission:var(--s-com); --payout:var(--s-pay); --payout-ink:hsl(var(--warning-text)); --on-sales:#fff; --on-band-2:var(--ink-3);
}

/* ============ 6. پایه ============ */
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;padding:0;height:100%}
body{background:var(--glass-canvas);background-color:hsl(var(--background));background-attachment:fixed;color:hsl(var(--foreground));
  font:400 13px/1.7 var(--font-sans);direction:rtl;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}
h1,h2,h3,h4{margin:0;font-family:var(--font-sans);font-weight:700;line-height:1.35}
h3{font-size:.875rem;font-weight:650}
p{margin:0}
a{color:hsl(var(--primary));text-decoration:none}
a:hover{text-decoration:underline}
bdi,.ltr{unicode-bidi:isolate} .ltr{direction:ltr;display:inline-block}
.num,.amt,td.n,.fig,svg text{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
.amt{display:inline-block;direction:ltr;unicode-bidi:isolate;white-space:nowrap}
.amt:not(.neg)::after{content:'';display:inline-block;width:.42em}
.amt.out{color:var(--ink)} .amt.bad{color:var(--crit)} .amt.in{color:var(--ok)} .amt.u{color:var(--ink-3)}
.fig{font-family:var(--font-sans);font-weight:800;line-height:1.1;white-space:nowrap}
.fig .fr{font-size:.62em}
.fig .u{font:600 .6875rem/1 var(--font-sans);color:var(--ink-3);margin-inline-start:.4em;letter-spacing:0}
.muted{color:var(--ink-2)} .mini{color:var(--ink-3);font-size:.72rem}
:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:hsl(var(--muted-foreground) / .3);border-radius:999px;border:3px solid transparent;background-clip:content-box}
::-webkit-scrollbar-track{background:transparent}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.grow{flex:1}
svg.ic{width:1rem;height:1rem;flex:0 0 1rem;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;display:inline-block}
button svg,a svg{pointer-events:none}

/* ============ 7. پوسته: جزیره‌های شناور روی بوم ============ */
#app{display:grid;grid-template-columns:var(--nav-w) minmax(0,1fr);gap:var(--island-gap);height:100vh;height:100dvh;width:100%;padding:var(--island-gap)}
html.nav-min{--nav-w:4.6rem}
aside#side{display:flex;flex-direction:column;min-width:0;overflow:hidden;z-index:80;padding:.5rem;border-radius:var(--island-radius);
  background:var(--glass-chrome);backdrop-filter:blur(32px) saturate(145%);-webkit-backdrop-filter:blur(32px) saturate(145%);box-shadow:var(--glass-float)}
.brand{display:flex;align-items:center;gap:.75rem;padding:.55rem .875rem .35rem;margin-top:.35rem;flex:0 0 auto;min-width:0}
.mark{width:2.1rem;height:2.1rem;flex:0 0 2.1rem;border-radius:.7rem;display:grid;place-items:center;color:#fff;
  background:radial-gradient(circle at 25% 20%,hsl(200 100% 70%),transparent 60%),linear-gradient(135deg,hsl(211 100% 52%),hsl(262 80% 60%));
  box-shadow:0 6px 16px hsl(var(--primary) / .32),inset 0 0 0 1px rgb(255 255 255 / .18)}
.mark svg{width:58%;height:58%;fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.brand .bt{min-width:0}
.brand h1{font-size:.9375rem;font-weight:750;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand .sub{color:var(--ink-3);font-size:.6875rem;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand .sub .en{direction:ltr;unicode-bidi:isolate;letter-spacing:.08em;text-transform:uppercase;font-size:.58rem;font-weight:650;opacity:.85}
nav#nav{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:.85rem .25rem 1rem;display:flex;flex-direction:column;gap:.15rem}
/* برچسب بخش: ریز و کم‌رنگ؛ حرف فارسی را نمی‌شود فاصله‌گذاری حرفی کرد (پیوستگی حرف‌ها می‌شکند)، پس فاصلهٔ واژه‌ها */
nav .grp{color:var(--ink-3);font-size:.66rem;font-weight:650;word-spacing:.18em;padding:.95rem .9rem .3rem;opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
nav .grp:first-child{padding-top:.2rem}
nav#nav>*{flex-shrink:0}   /* ستون خم‌پذیر: برچسب بخش (overflow:hidden) نباید تا ارتفاع صفر جمع شود */
nav a{display:flex;align-items:center;gap:.7rem;min-height:2.45rem;padding:0 .85rem;border-radius:999px;color:hsl(var(--foreground) / .84);font-size:.8125rem;font-weight:500;
  cursor:pointer;line-height:1.3;white-space:nowrap;text-decoration:none;transition:background-color var(--duration-fast) ease,color var(--duration-fast) ease}
nav a .lb{min-width:0;overflow:hidden;text-overflow:ellipsis}
nav a svg.ic{width:1.05rem;height:1.05rem;flex-basis:1.05rem;color:hsl(var(--primary))}
nav a[data-g="1"] svg.ic{color:hsl(var(--ink-purple))} nav a[data-g="2"] svg.ic{color:hsl(var(--success-text))}
nav a[data-g="3"] svg.ic{color:hsl(var(--warning-text))} nav a[data-g="4"] svg.ic{color:hsl(var(--ink-teal))}
nav a[data-g="5"] svg.ic{color:hsl(var(--ink-gray))}
nav a:hover{background:var(--glass-control);color:hsl(var(--foreground));text-decoration:none}
nav a.on{background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-weight:650;box-shadow:0 6px 16px hsl(var(--primary) / .3)}
nav a.on svg.ic{color:hsl(var(--primary-foreground))}
nav a .cnt{margin-inline-start:auto;font-size:.6875rem;color:var(--ink-3);font-weight:600}
.sidefoot{flex:0 0 auto;border-top:1px solid var(--glass-line);padding:.75rem .5rem .35rem;display:flex;flex-direction:column;gap:.6rem}
.sidefoot .fx{color:var(--ink-3);font-size:.64rem;line-height:1.75;padding-inline:.35rem}
.sidefoot .fx b{color:var(--ink-2);font-weight:600}
/* منبع و تازگی داده پایین هر صفحه (مثل Zora Audit، فهرست کناری فقط کاربر را نگه می‌دارد) */
.pagefoot{display:flex;flex-wrap:wrap;justify-content:center;gap:.35rem 1.25rem;margin-top:1.5rem;padding:1.1rem .5rem .4rem;
  border-top:1px solid var(--glass-line);color:var(--ink-3);font-size:.6875rem;line-height:1.7;text-align:center}
.pagefoot b{color:var(--ink-2);font-weight:600}
#mathcheck{font-weight:650;color:var(--ink-3)}
#mathcheck.ok{color:var(--conf-v)} #mathcheck.bad{color:var(--conf-x)}
.ucard{display:flex;align-items:center;gap:.35rem;min-width:0}
#userslot{flex:1;min-width:0;display:flex}
.userbox{display:flex;align-items:center;gap:.6rem;flex:1;min-width:0;padding:.35rem .45rem;border-radius:1.1rem;cursor:pointer;transition:background-color var(--duration-fast)}
.userbox:hover{background:var(--glass-control)}
.userbox .av{width:2.1rem;height:2.1rem;flex:0 0 2.1rem;border-radius:50%;display:grid;place-items:center;background:var(--glass-control);box-shadow:var(--glass-shadow),inset 0 0 0 1px var(--glass-line);
  color:hsl(var(--foreground));font:700 .72rem var(--font-sans)}
.userbox>div:last-child{min-width:0}
.userbox .nm{font-size:.75rem;font-weight:650;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.userbox .rl{color:var(--ink-3);font-size:.66rem;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidefoot .navmin{flex:0 0 auto;width:2.1rem;min-height:2.1rem;padding:0;justify-content:center;border-radius:50%;background:transparent;box-shadow:none;color:var(--ink-3)}
.sidefoot .navmin:hover{background:var(--glass-control);color:hsl(var(--foreground))}
html.nav-min .sidefoot .navmin svg{transform:scaleX(-1)}
html.nav-min .brand .bt,html.nav-min nav .grp,html.nav-min nav a .lb,html.nav-min nav a .cnt,html.nav-min .sidefoot .fx,html.nav-min .userbox>div:last-child{display:none}
html.nav-min nav a{justify-content:center;padding:0}
html.nav-min nav .grp{display:block;height:.6rem;padding:0;font-size:0}
html.nav-min .brand{justify-content:center;padding-inline:0}
html.nav-min .ucard{flex-direction:column}
html.nav-min .userbox{justify-content:center;padding:.2rem}

main{display:flex;flex-direction:column;min-width:0;min-height:0}
header.cmd{height:var(--layout-navbar-height);flex:0 0 var(--layout-navbar-height);display:flex;align-items:center;gap:.5rem;padding:0 1.1rem 0 .7rem;min-width:0;position:relative;z-index:40;
  border-radius:999px;background:var(--glass-chrome);backdrop-filter:blur(32px) saturate(145%);-webkit-backdrop-filter:blur(32px) saturate(145%);box-shadow:var(--glass-float)}
.crumbs{display:flex;align-items:center;gap:.3rem;min-width:0;max-width:19rem;flex:0 0 auto;font-size:.8125rem;white-space:nowrap}
.crumbs .bc-muted{color:var(--ink-3)}
.crumbs svg.ic{width:.875rem;height:.875rem;flex-basis:.875rem;color:var(--ink-3);opacity:.6}
.crumb{font-weight:600;color:hsl(var(--foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:22rem}
.crumb small{font-weight:400;color:var(--ink-3);margin-inline-start:.5rem}
.cmd .sep{display:none}
.iconbtn{width:2.25rem;min-width:2.25rem;min-height:2.25rem;padding:0;justify-content:center;border-radius:50%;background:transparent;box-shadow:none;color:var(--ink-2)}
.iconbtn:hover{background:var(--glass-control);color:hsl(var(--foreground))}
#themebtn .ic-sun{display:none}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) #themebtn .ic-sun{display:inline-block} :root:not([data-theme="light"]) #themebtn .ic-moon{display:none} }
:root[data-theme="dark"] #themebtn .ic-sun{display:inline-block} :root[data-theme="dark"] #themebtn .ic-moon{display:none}
.btn-sign-out{background:transparent;box-shadow:none;color:var(--ink-3);padding:0 .7rem}
.btn-sign-out:hover{background:var(--glass-control);color:hsl(var(--destructive-text))}
.btn-sign-out svg.ic{transform:scaleX(-1)}
#menubtn{display:none}
#view{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:1.75rem .5rem 3.5rem;margin-inline:-.5rem;scroll-behavior:smooth;min-width:0}
#view>*{max-width:var(--layout-content-max);margin-inline:auto}
#navmask{display:none}

/* انتخاب‌گر بازه، محدوده، تازگی داده و جست‌وجو: قرص‌های شیشه‌ای نوار بالا */
.pctl{position:relative;flex:0 0 auto}
.pctl>button{min-height:2.25rem;gap:.4rem;padding:0 .85rem;font-weight:650}
.pctl>button .ic{color:hsl(var(--primary))}
.pctl>button .cv{color:var(--ink-3);width:.8rem;height:.8rem;flex-basis:.8rem}
.pctl>button:disabled{opacity:1;color:var(--ink-3);background:transparent;box-shadow:inset 0 0 0 1px var(--glass-line);cursor:not-allowed}
.pctl>button:disabled .ic{color:var(--ink-3)}
.pop{position:absolute;top:calc(100% + .6rem);inset-inline-start:0;min-width:19rem;z-index:95;padding:.45rem;display:none;border-radius:1.25rem;
  background:var(--glass-raised);backdrop-filter:blur(40px) saturate(140%);-webkit-backdrop-filter:blur(40px) saturate(140%);box-shadow:var(--glass-float),var(--shadow-lg)}
.pop.open{display:block}
.pop .opt{display:flex;align-items:center;gap:.5rem;width:100%;min-height:2.2rem;padding:0 .75rem;border-radius:.8rem;background:transparent;box-shadow:none;font-weight:500;color:hsl(var(--foreground))}
.pop .opt:hover{background:var(--glass-control)}
.pop .opt .ck{width:.9rem;color:hsl(var(--primary));font-weight:800}
.pop .opt.on{font-weight:650;background:hsl(var(--primary) / .1)}
.pop .cust{border-top:1px solid var(--glass-line);margin-top:.4rem;padding:.6rem .4rem .3rem;display:flex;flex-direction:column;gap:.45rem}
.pop .cust .r{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.pop .cust label{font-size:.7rem;color:var(--ink-3)}
.scopechip,.fchip,.fresh{display:inline-flex;align-items:center;gap:.4rem;height:2.25rem;padding:0 .85rem;border-radius:999px;font:500 .75rem/1 var(--font-sans);color:var(--ink-3);white-space:nowrap;max-width:100%;
  background:var(--glass-control);box-shadow:inset 0 0 0 1px var(--glass-line)}
.scopechip b,.fchip b,.fresh b{color:hsl(var(--foreground));font-weight:650}
.scopechip svg.ic{color:hsl(var(--primary));width:.9rem;height:.9rem;flex-basis:.9rem}
.fresh{flex:0 1 auto;min-width:0;overflow:hidden}
.pctl,#scopeslot,.iconbtn,.btn-sign-out{flex-shrink:0}
.fresh .dot{width:.45rem;height:.45rem;border-radius:50%;background:hsl(var(--success));flex:0 0 .45rem;box-shadow:0 0 0 4px hsl(var(--success) / .14)}
.fresh.stale{background:hsl(var(--warning) / .12);box-shadow:inset 0 0 0 1px hsl(var(--warning) / .22);color:var(--ink-2)}
.fresh.stale .dot{background:hsl(var(--warning));box-shadow:0 0 0 4px hsl(var(--warning) / .16)}
.fresh.stale>b:last-child{color:hsl(var(--warning-text))}
.fresh .greg{color:var(--ink-3)}
.pchip{font-size:.75rem;color:var(--ink-2);white-space:nowrap}
.pchip b{color:hsl(var(--foreground));font-weight:650}
.search{position:relative;display:flex;align-items:center;gap:.45rem;height:2.25rem;padding:0 .85rem;width:15rem;flex:0 2 15rem;min-width:7.5rem;border-radius:999px;
  background:var(--soft);box-shadow:inset 0 0 0 1px var(--glass-line)}
.search .ic{color:var(--ink-3)}
.search input[type=text]{border:0;border-radius:0;outline:0;background:transparent;box-shadow:none;font:.8125rem var(--font-sans);color:hsl(var(--foreground));width:100%;padding:0;min-width:0;min-height:0;height:2rem}
.search input[type=text]:focus{box-shadow:none}
.search input::placeholder{color:var(--ink-3)}
.search:focus-within{box-shadow:inset 0 0 0 1px hsl(var(--foreground) / .2),0 0 0 3px hsl(var(--ring) / .16)}
.sres{position:absolute;top:calc(100% + .6rem);inset-inline-start:0;width:23rem;max-width:92vw;max-height:22rem;overflow:auto;z-index:60;padding:.35rem;border-radius:1.25rem;
  background:var(--glass-raised);backdrop-filter:blur(40px) saturate(140%);-webkit-backdrop-filter:blur(40px) saturate(140%);box-shadow:var(--glass-float),var(--shadow-lg)}
.sres div{padding:.55rem .75rem;cursor:pointer;border-radius:.8rem;font-size:.8125rem}
.sres div:hover,.sres div:focus{background:var(--glass-control)}

/* بنر دادهٔ کهنه: پیام کهربایی زیر نوار بالا */
.stale{margin-top:.75rem;padding:.6rem 1.1rem;border-radius:1.25rem;background:hsl(var(--warning) / .12);box-shadow:inset 0 0 0 1px hsl(var(--warning) / .18);color:hsl(var(--foreground));
  font-size:.75rem;line-height:1.8;display:flex;gap:.75rem;align-items:baseline;flex:0 0 auto}
.stale .tx{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.stale.all .tx{white-space:normal}
.stale b{color:hsl(var(--warning-text))}
.stale button.link{font-size:.75rem}

/* منوی کاربر (کنار کارت کاربر در پایین جزیرهٔ کناری) */
.menu{position:fixed;bottom:calc(var(--island-gap) + 4.4rem);inset-inline-start:calc(var(--island-gap) + .5rem);min-width:16rem;z-index:90;display:none;padding:.4rem;overflow:hidden;border-radius:1.25rem;
  background:var(--glass-raised);backdrop-filter:blur(40px) saturate(140%);-webkit-backdrop-filter:blur(40px) saturate(140%);box-shadow:var(--glass-float),var(--shadow-lg)}
.menu.open{display:block}
.menu .hd{padding:.5rem .75rem .7rem;border-bottom:1px solid var(--glass-line);margin-bottom:.3rem;font-size:.75rem;color:var(--ink-2);line-height:1.9}
.menu a{display:block;padding:.5rem .75rem;border-radius:.8rem;font-size:.8125rem;color:hsl(var(--foreground));cursor:pointer;text-decoration:none}
.menu a:hover{background:var(--glass-control);text-decoration:none}

/* ============ 8. سرصفحه (مثل Zora Audit: قرص سرچسب، عنوان بسیار درشت، یک خط توضیح، زمان داده و دکمهٔ بارگذاری) ============ */
.ws{min-width:0}
.wsh{display:block;margin:.25rem 0 1.75rem;padding-inline:.25rem;min-width:0}
.wsh .t{min-width:0}
.wline{display:flex;align-items:flex-end;justify-content:space-between;gap:.75rem 1.5rem;flex-wrap:wrap;margin-top:.65rem;min-width:0}
.wline .ld{flex:1 1 22rem;min-width:0}
.kicker{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .75rem;margin-bottom:.8rem;border-radius:999px;background:hsl(var(--primary) / .12);color:hsl(var(--primary));
  font-size:.7rem;font-weight:750;word-spacing:.22em;line-height:1.2}
.wsh h1{font-size:clamp(1.9rem,3.6vw,3.5rem);font-weight:800;line-height:1.15;letter-spacing:0}
.wsh .lede{margin:0;color:var(--ink-3);font-size:.875rem;line-height:1.75;max-width:62rem;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.wsh .lede.all{display:block}
.wsh .more{background:transparent;box-shadow:none;color:hsl(var(--primary));min-height:0;padding:0;font-weight:600;font-size:.75rem;margin-top:.2rem}
.wsh .more:hover{background:transparent;text-decoration:underline}
.wsh .acts{display:flex;align-items:center;justify-content:flex-end;gap:.6rem;flex-wrap:wrap;flex:0 1 auto;margin-inline-start:auto}
.wsh .updated{font-size:.75rem;color:var(--ink-3);white-space:nowrap}
.wsh .updated b{font-weight:600;color:var(--ink-2)}
.ws>.body{min-width:0}
h2.sec,.sech{display:flex;gap:.35rem 1rem;align-items:baseline;flex-wrap:wrap;margin:2rem .25rem .85rem}
h2.sec{font-size:1.05rem}
.sech h2{font-size:1.05rem;font-weight:700;display:flex;gap:.5rem;align-items:center}
.sech .note,h2.sec+.note{color:var(--ink-3);font-size:.75rem;font-family:var(--font-sans);font-weight:400;background:none;border:0;box-shadow:none;padding:0;line-height:1.7;border-radius:0}
.body>.sech:first-child,.body>h2.sec:first-child{margin-top:0}
.sec{margin-bottom:1rem}
.sec>.hd{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.6rem}
.sec>.hd h2{font-size:1.05rem;display:flex;gap:.5rem;align-items:center}
.sec>.hd .note{color:var(--ink-3);font-size:.75rem;background:none;box-shadow:none;border:0;padding:0}
h2.h3{font-size:.9375rem}

/* نوار فیلتر (مثل فیلترهای Zora Audit) و کنترل بخش‌بندی‌شده */
.filters{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.6rem .75rem;margin-bottom:1rem;min-width:0;border-radius:1.25rem;background:var(--glass-control);box-shadow:inset 0 0 0 1px var(--glass-line)}
.filters.hd{margin-bottom:1rem}
.seg{display:inline-flex;gap:.2rem;padding:.3rem;border-radius:999px;background:rgb(125 130 145 / .1);overflow-x:auto;max-width:100%;scrollbar-width:none}
.seg::-webkit-scrollbar{display:none}
.seg button{background:transparent;box-shadow:none;color:var(--ink-3);border-radius:999px;padding:0 .9rem;font:600 .75rem var(--font-sans);white-space:nowrap;min-height:2rem}
.seg button:hover{background:var(--glass-control);color:hsl(var(--foreground))}
.seg button.on{background:var(--glass-raised);color:hsl(var(--foreground));box-shadow:0 3px 10px rgb(0 0 0 / .08)}
.range{display:inline-flex;align-items:center;gap:.4rem;flex-wrap:wrap}

/* ============ 9. کنترل‌ها (دکمهٔ قرصی، ورودی گرد) ============ */
button,.btn{font:600 .75rem/1.3 var(--font-sans);border:0;border-radius:999px;background:var(--glass-control);color:hsl(var(--foreground));padding:0 .95rem;cursor:pointer;min-height:2.25rem;
  display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap;box-shadow:0 2px 8px rgb(0 0 0 / .045),inset 0 0 0 1px var(--glass-line);
  transition:background-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease,transform var(--duration-fast) ease}
button:hover,.btn:hover{background:var(--glass-hover)}
button.pri,.btn.pri{background:hsl(var(--primary));color:hsl(var(--primary-foreground));box-shadow:0 5px 14px hsl(var(--primary) / .22)}
button.pri:hover{background:hsl(var(--primary) / .88)}
button.ghost{background:transparent;box-shadow:inset 0 0 0 1px var(--glass-line);color:var(--ink-2)}
button.ghost:hover{background:var(--glass-control);color:hsl(var(--foreground))}
button.danger{background:hsl(var(--destructive) / .1);box-shadow:inset 0 0 0 1px hsl(var(--destructive) / .25);color:hsl(var(--destructive-text))}
button.danger:hover{background:hsl(var(--destructive) / .18)}
button.link{background:transparent;box-shadow:none;color:hsl(var(--primary));padding:0;min-height:0;font-weight:650;border-radius:0}
button.link:hover{text-decoration:underline;background:transparent}
button.sm{padding:0 .75rem;font-size:.7rem;min-height:1.9rem}
button:disabled{opacity:.45;cursor:not-allowed}
button:active:not(:disabled){transform:translateY(1px)}
select,input[type=text],input[type=number],input[type=date],input[type=password],input:not([type]),textarea{background:var(--soft);border:0;border-radius:.9rem;color:hsl(var(--foreground));
  box-shadow:inset 0 0 0 1px var(--glass-line);padding:.3rem .8rem;font:.8125rem var(--font-sans);outline:none;min-height:2.25rem;max-width:100%}
select{padding-inline-end:.5rem}
select option{background:hsl(var(--popover));color:hsl(var(--popover-foreground))}
select:focus,input:focus,textarea:focus{box-shadow:inset 0 0 0 1px hsl(var(--foreground) / .22),0 0 0 3px hsl(var(--ring) / .16)}
label{color:var(--ink-2);font-size:.75rem}

/* ============ 10. قرص‌ها: شدت، وضعیت، مهر درجهٔ اتکا، برچسب تغییر، نشانه ============ */
.sev,.st{display:inline-flex;align-items:center;gap:.35rem;font:650 .6875rem/1.2 var(--font-sans);padding:.3rem .65rem;border-radius:999px;white-space:nowrap;border:0}
.sev::before{font-size:.6rem;line-height:1}
.sev.crit{color:hsl(var(--destructive-text));background:hsl(var(--destructive) / .12)} .sev.crit::before{content:'●'}
.sev.warn{color:hsl(var(--warning-text));background:hsl(var(--warning) / .14)} .sev.warn::before{content:'▲'}
.sev.info{color:hsl(var(--info-text));background:hsl(var(--info) / .12)} .sev.info::before{content:'i';font:800 .7rem var(--font-sans)}
.sev.ok{color:hsl(var(--success-text));background:hsl(var(--success) / .13)} .sev.ok::before{content:'✓'}
.st{font-weight:550;color:var(--ink-2);background:var(--soft)}
.st.open{color:hsl(var(--foreground));font-weight:650;box-shadow:inset 0 0 0 1px var(--glass-line)}
.st.passed{color:var(--ink-3)}
.count-badge,.fq .fqbar .cnt,.tbar .sub{display:inline-flex;align-items:center;justify-content:center;min-width:1.6rem;border-radius:999px;padding:.2rem .6rem;background:rgb(125 130 145 / .1);
  font:600 .6875rem/1.3 var(--font-sans);color:var(--ink-3);white-space:nowrap}
.chip{display:inline-flex;gap:.3rem;align-items:center;font:650 .6875rem/1.2 var(--font-sans);padding:.28rem .6rem;border-radius:999px;white-space:nowrap;background:var(--soft);color:var(--ink-2)}
.chip .w{font-weight:500}
.chip.fav{background:hsl(var(--success) / .13);color:hsl(var(--success-text))} .chip.unf{background:hsl(var(--destructive) / .12);color:hsl(var(--destructive-text))}
.chip.warn{background:hsl(var(--warning) / .14);color:hsl(var(--warning-text))} .chip.flat{background:var(--soft);color:var(--ink-2)}
.chip b{color:hsl(var(--foreground));font-weight:700}
/* مهر: نشانه + واژه + لبهٔ نازک (خط‌چین برای تخمینی، نقطه‌چین برای «در داده نیست») تا بی‌رنگ هم خوانده شود */
.stamp{display:inline-flex;gap:.25rem;align-items:center;font:650 .66rem/1.2 var(--font-sans);padding:.22rem .6rem;border:1px solid currentColor;border-radius:999px;
  white-space:nowrap;color:var(--conf-u);background:var(--conf-u-tint);max-width:100%;vertical-align:middle}
.stamp::before{content:attr(data-g);font-weight:800}
.stamp.v{color:var(--conf-v);background:var(--conf-v-tint);border-color:hsl(var(--success) / .35)}
.stamp.r{color:var(--conf-r);background:var(--conf-r-tint);border-color:hsl(var(--info) / .35)}
.stamp.e{color:var(--conf-e);background:var(--conf-e-tint);border-style:dashed}
.stamp.u{color:var(--conf-u);background:var(--conf-u-tint);border-style:dotted}
.stamp.x{color:var(--conf-x);background:var(--conf-x-tint);border-color:hsl(var(--destructive) / .4)}
.stamp.ok{color:var(--ok);background:var(--ok-tint);border-color:hsl(var(--success) / .35)}
.stamp.q{white-space:normal;line-height:1.35;border-radius:.8rem;padding:.3rem .65rem}
.tick{font:800 .8rem var(--font-sans);color:var(--conf-v);white-space:nowrap}
.tick.r{color:var(--conf-r)} .tick.e{color:var(--conf-e)} .tick.miss,.tick.u{color:var(--conf-u)} .tick.bad,.tick.x{color:var(--conf-x)} .tick.sum{color:var(--ink-2)}
.ticks,.ticklegend{display:flex;flex-wrap:wrap;gap:.35rem 1.1rem;font-size:.72rem;color:var(--ink-3);margin-top:1.5rem;padding:.75rem 1.1rem;border-radius:1.25rem;background:var(--glass-control);align-items:center}
.ticks .tick,.ticklegend .tick{margin-inline-end:.3rem}
.ticklegend b{color:var(--ink-2);font-weight:650}
.tag{display:inline-block;padding:.15rem .55rem;border-radius:999px;font:600 .6875rem/1.5 var(--font-sans);color:var(--ink-2);background:var(--soft);white-space:nowrap}
.t-ok{background:hsl(var(--success) / .13);color:hsl(var(--success-text))}
.t-warn{background:hsl(var(--warning) / .14);color:hsl(var(--warning-text))}
.t-bad{background:hsl(var(--destructive) / .12);color:hsl(var(--destructive-text))}
.t-info{background:hsl(var(--primary) / .12);color:hsl(var(--info-text))}
.t-dim{background:var(--soft);color:var(--ink-2)}
.t-vio{background:hsl(var(--tone-purple) / .14);color:hsl(var(--ink-purple))}
.pill{display:inline-block;padding:.15rem .6rem;border-radius:999px;font-size:.6875rem;line-height:1.5;background:var(--soft);color:var(--ink-2);white-space:nowrap}
.i{display:inline-grid;place-items:center;width:.95rem;height:.95rem;border-radius:50%;border:1px solid currentColor;font:700 .56rem/1 var(--font-sans);cursor:help;flex:0 0 .95rem;opacity:.55;color:var(--ink-3)}
.i:hover,.i:focus-visible{opacity:1}

/* ============ 11. سطح‌ها: کارت و پنل (جزیره‌های محتوا) ============ */
.panel,.card{background:var(--glass-content);border:0;border-radius:var(--island-radius);box-shadow:var(--glass-shadow);min-width:0}
.card{padding:1.25rem 1.5rem}
.card.pad0,.panel{padding:0;overflow:hidden}
.panel>.ph,.card>.tbar,.tbar{display:flex;align-items:center;gap:.5rem .75rem;flex-wrap:wrap;min-height:3.4rem;padding:1.1rem 1.5rem .8rem}
.panel>.ph h3,.tbar h3{font-size:1.05rem;font-weight:700;display:flex;align-items:center;gap:.5rem}
.panel>.ph .sub{color:var(--ink-3);font-size:.75rem}
.panel>.pb{padding:.25rem 1.5rem 1.25rem}
.panel>.pb.flush{padding:0}
.card .hint{color:var(--ink-3);font-size:.75rem;line-height:1.85}
.card>h3{margin-bottom:.5rem;font-size:.9375rem;font-weight:700;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.wg{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem;margin-bottom:1rem}
.c12{grid-column:span 12} .c8{grid-column:span 8} .c7{grid-column:span 7} .c6{grid-column:span 6} .c5{grid-column:span 5} .c4{grid-column:span 4}
.grid{display:grid;gap:1rem}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g6{grid-template-columns:repeat(6,minmax(0,1fr))}
.gap{height:1rem}

/* ============ 12. کارت‌های شاخص (Zora Audit «metric card»: گرادیان رنگ خودش، عدد درشت رنگی، نشانه در دایرهٔ رنگی) ============
   رنگ هر کارت: data-tone ← --metric-color (گرادیان) و --metric-ink (عدد و دایرهٔ نشانه). درخشش شعاعی در گوشهٔ نشانه
   است، که در راست‌به‌چپ گوشهٔ بالا-چپ است. */
.kgrid,.kstrip{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem;margin-bottom:1.25rem}
.kstrip>*{grid-column:span 3}
.kstrip>.sp3{grid-column:span 3} .kstrip>.sp4{grid-column:span 4} .kstrip>.sp6{grid-column:span 6} .kstrip>.sp12{grid-column:span 12}
.kpi{--metric-color:var(--primary);--metric-ink:var(--primary);position:relative;overflow:hidden;min-width:0;display:flex;flex-direction:column;gap:.3rem;padding:1.35rem 1.5rem 1.2rem;
  border-radius:var(--island-radius);box-shadow:var(--glass-shadow);
  background:radial-gradient(ellipse at 0% 0%,hsl(var(--metric-color) / .4),transparent 78%),linear-gradient(220deg,hsl(var(--metric-color) / .17),hsl(var(--metric-color) / .055)),var(--glass-content);
  transition:transform var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard)}
.kpi[data-tone=amber]{--metric-color:var(--warning);--metric-ink:var(--warning-text)}
.kpi[data-tone=red]{--metric-color:var(--destructive);--metric-ink:var(--destructive-text)}
.kpi[data-tone=green]{--metric-color:var(--success);--metric-ink:var(--success-text)}
.kpi[data-tone=purple]{--metric-color:var(--tone-purple);--metric-ink:var(--ink-purple)}
.kpi[data-tone=indigo]{--metric-color:var(--tone-indigo);--metric-ink:var(--ink-indigo)}
.kpi[data-tone=teal]{--metric-color:var(--tone-teal);--metric-ink:var(--ink-teal)}
.kpi[data-tone=gray]{--metric-color:var(--tone-gray);--metric-ink:var(--ink-gray)}
.kpi .cap,.kpi .lb{display:flex;align-items:center;gap:.45rem;font:650 .8125rem/1.45 var(--font-sans);color:hsl(var(--foreground));min-height:2.4rem}
.kpi .cap .lbl{min-width:0;flex:0 1 auto}
.kpi .cap .dw{display:none}
.kic{margin-inline-start:auto;flex:0 0 2.4rem;width:2.4rem;height:2.4rem;border-radius:50%;display:grid;place-items:center;color:#fff;background:hsl(var(--metric-ink));box-shadow:0 6px 15px hsl(var(--metric-color) / .25)}
.kic svg.ic{width:1.15rem;height:1.15rem;flex-basis:1.15rem;stroke-width:2}
.kpi .fig,.kpi>.v{font:800 clamp(2.1rem,3vw,3.2rem)/1.05 var(--font-sans);color:hsl(var(--metric-ink));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums;
  margin:.55rem 0 .35rem;letter-spacing:-.02em}
.kpi .fig .u{display:inline-block;font-size:.8rem;font-weight:650;color:var(--ink-2);letter-spacing:0}
.kpi .row,.kpi .d{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;font-size:.75rem;color:var(--ink-3);min-height:1.2rem;line-height:1.6}
.kpi .row b{color:var(--ink-2);font-weight:650}
.kpi .foot{margin-top:auto;padding-top:.55rem;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;min-height:1.9rem}
.kpi .spark{width:4.6rem;height:1.4rem;overflow:visible;flex:0 0 auto}
.spark .sl{fill:none;stroke:hsl(var(--metric-ink));stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}
.spark .se{fill:hsl(var(--metric-ink))}
.kpi .trc{display:inline-grid;place-items:center;width:1.75rem;height:1.75rem;border-radius:50%;background:hsl(var(--metric-color) / .15);color:hsl(var(--metric-ink));opacity:.75}
.kpi.click{cursor:pointer}
.kpi.click:hover{transform:translateY(-2px);box-shadow:var(--glass-float)}
.kpi.click:hover .trc,.kpi.click:focus-visible .trc{opacity:1;background:hsl(var(--metric-color) / .25)}
.kpi.click:focus-visible{outline-offset:2px}
.kpi.na .fig{font:650 1rem/1.6 var(--font-sans);color:var(--conf-u);padding-top:.4rem;letter-spacing:0}
.grid>.kpi{border-radius:var(--island-radius)}
/* نوار شاخص کوچک (دومین ردیف نمای کلی، صفحه‌های دیگر): همان کارت، کوچک‌تر */
.kstrip.mini .kpi{padding:1rem 1.25rem .95rem;border-radius:1.4rem}
.kstrip.mini .kpi .fig,.kstrip.mini .kpi>.v{font-size:clamp(1.6rem,2.2vw,2.2rem);margin:.3rem 0 .2rem}
.kstrip.mini .kic{width:2rem;height:2rem;flex-basis:2rem}
.kstrip.mini .kic svg.ic{width:1rem;height:1rem}
.kstrip.mini .kpi .cap,.kstrip.mini .kpi .lb{min-height:2rem}
.meter{position:relative;height:.4rem;background:rgb(125 130 145 / .16);margin:.35rem 0 .15rem;border-radius:999px}
.meter>i{position:absolute;inset-block:0;inset-inline-start:0;background:hsl(var(--destructive));max-width:100%;border-radius:999px}
.meter>b{position:absolute;inset-block:-.25rem;width:2px;background:hsl(var(--foreground));border-radius:1px}
.cmix{display:flex;gap:2px;height:.5rem;margin:.4rem 0 .15rem;border-radius:999px;overflow:hidden}
.cmix i{display:block;height:100%;min-width:2px}
.cmix .v{background:hsl(var(--success))} .cmix .r{background:hsl(var(--info))} .cmix .e{background:hsl(var(--warning))}

/* ============ 13. پوشش منابع (کارت سلامت Zora Audit با وضعیت زنده / بررسی) ============ */
.srcgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-bottom:1.25rem}
.hcard{display:flex;align-items:center;gap:.7rem;min-width:0;padding:1.05rem 1.1rem;border-radius:1.35rem;background:var(--glass-content);box-shadow:var(--glass-shadow);cursor:pointer;
  transition:background-color var(--duration-base),transform var(--duration-base) var(--ease-standard),box-shadow var(--duration-base)}
.hcard:hover{background:var(--glass-hover);box-shadow:var(--glass-float);transform:translateY(-2px)}
.hcard .hic{display:grid;place-items:center;width:2.25rem;height:2.25rem;flex:0 0 2.25rem;border-radius:50%;background:hsl(var(--primary) / .1);color:hsl(var(--primary))}
.hcard.h-check .hic{background:hsl(var(--destructive) / .1);color:hsl(var(--destructive-text))}
.hcard.h-stale .hic{background:hsl(var(--warning) / .12);color:hsl(var(--warning-text))}
.hcard .hb{flex:1;min-width:0}
.hcard .hn{font-size:.8125rem;font-weight:650;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hcard .hnote{font-size:.6875rem;color:var(--ink-3);line-height:1.55;margin-top:.1rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hst{display:inline-flex;align-items:center;gap:.3rem;font:750 .625rem/1 var(--font-sans);white-space:nowrap;color:hsl(var(--success-text));flex:0 0 auto}
.hst::before{content:'';width:.45rem;height:.45rem;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px hsl(var(--success) / .16)}
.hst.h-check{color:hsl(var(--destructive-text))} .hst.h-check::before{box-shadow:0 0 0 3px hsl(var(--destructive) / .16)}
.hst.h-stale{color:hsl(var(--warning-text))} .hst.h-stale::before{box-shadow:0 0 0 3px hsl(var(--warning) / .18)}
.hst.u{color:var(--ink-3)} .hst.u::before{box-shadow:none}

/* ============ 14. جدول‌ها (سرستون نرم، ردیف با hover، بدون خط راه‌راه) ============ */
.tw{overflow:auto;max-width:100%}
.card.pad0>.tw{border:0}
table{border-collapse:separate;border-spacing:0;width:100%;font-size:.8125rem}
th{position:sticky;top:0;z-index:2;background:linear-gradient(var(--soft-2),var(--soft-2)),var(--glass-solid);color:var(--ink-3);font:600 .6875rem/1.45 var(--font-sans);text-align:right;
  padding:.8rem .8rem;border:0;border-bottom:1px solid var(--glass-line);white-space:nowrap;vertical-align:bottom}
th:first-child,td:first-child{padding-inline-start:1.5rem} th:last-child,td:last-child{padding-inline-end:1.5rem}
th .u{color:var(--ink-3);font-weight:400}
th.srt{cursor:pointer;user-select:none}
th.srt:hover{color:hsl(var(--foreground))}
th .dir{color:hsl(var(--primary));margin-inline-start:.3rem;font-size:.6rem}
td{padding:.5rem .8rem;height:2.6rem;border-top:1px solid var(--glass-line);white-space:nowrap;vertical-align:middle;color:hsl(var(--foreground))}
tbody tr:first-child td{border-top:0}
tbody tr:hover td{background:var(--soft-2)}
tr.click{cursor:pointer}
tr[tabindex]:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:-2px}
tr.sel td{background:hsl(var(--primary) / .1)!important}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tw td>.amt.bad{color:inherit}   /* منفی در جدول دفتری با پرانتز خوانده می‌شود؛ رنگ فقط برای معنا */
td.tk,th.tk{width:2.4rem;text-align:center;padding-inline:.3rem}
.tw.wrap td{white-space:normal;min-width:110px;max-width:440px;line-height:1.6}
.tw.wrap td.n{white-space:nowrap;min-width:0}
tr.grp td{background:var(--soft)!important;color:var(--ink-2);font-weight:650;font-size:.72rem;padding-block:.35rem;height:auto}
tr.grp[data-dom] td{padding:0}
tr.grp[data-dom] td>div{padding:.45rem 1.5rem;font:650 .72rem var(--font-sans);color:var(--ink-2);display:flex;align-items:center;gap:.5rem}
tr.grp[data-dom] td>div::before{content:'';width:.55rem;height:.55rem;border-radius:50%;background:var(--ink-3)}
tr.grp[data-dom=sales] td>div::before{background:var(--s-sales)} tr.grp[data-dom=discount] td>div::before{background:var(--s-disc)}
tr.grp[data-dom=payout] td>div::before{background:var(--s-pay)} tr.grp[data-dom=ink] td>div::before{background:hsl(var(--foreground))}
tr.sub td{font-weight:700;border-top:1px solid var(--rule-strong);background:transparent!important}
tfoot td,tr.total td{font-weight:750;border-top:1px solid var(--rule-strong);border-bottom:3px double var(--rule-strong);background:var(--glass-solid)!important;position:sticky;bottom:0}
tr.total td{position:static;background:transparent!important}
tfoot td small{display:block;font:400 .66rem var(--font-sans);color:var(--ink-3)}
tr.memo td{color:var(--ink-2)}
tr.memo .tagm{font-size:.62rem;padding:.1rem .45rem;border-radius:999px;margin-inline-end:.4rem;color:var(--ink-3);background:var(--soft)}
tr.unk td{color:var(--ink-3)}
td .src{display:block;font-size:.66rem;color:var(--ink-3);font-weight:400;white-space:normal;max-width:520px;line-height:1.55}
td .ref{color:var(--ink-3);font-size:.7rem}
.ledger td.desc{white-space:normal;min-width:300px}
.empty{padding:1.5rem;text-align:center;color:var(--ink-3);font-size:.8125rem}
.pager{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.85rem 1.5rem;border-top:1px solid var(--glass-line);color:var(--ink-3);font-size:.75rem}
.email{direction:ltr;unicode-bidi:isolate;display:inline-block;font-size:.75rem;color:var(--ink-2)}
.life{display:inline-flex;align-items:center;gap:.4rem}
.life i{width:.45rem;height:.45rem;border-radius:50%;background:var(--ink-3);flex:0 0 .45rem}
.life.l-act i{background:hsl(var(--success));box-shadow:0 0 0 3px hsl(var(--success) / .15)} .life.l-risk i{background:hsl(var(--warning))} .life.l-dorm i{background:var(--ink-3)} .life.l-lost i{background:hsl(var(--foreground) / .25)}
.free{color:hsl(var(--success-text));font-weight:650}
.mbar{display:inline-block;width:2.5rem;height:.35rem;background:rgb(125 130 145 / .16);vertical-align:middle;margin-inline-start:.4rem;position:relative;border-radius:999px;overflow:hidden}
.mbar i{position:absolute;inset-block:0;inset-inline-start:0;background:var(--ink-3);border-radius:999px}
.mbar.hi i{background:hsl(var(--success))} .mbar.mid i{background:hsl(var(--warning))}

/* نوار سهم */
.bar{height:.45rem;background:rgb(125 130 145 / .14);overflow:hidden;min-width:56px;position:relative;border-radius:999px}
.bar>i{display:block;height:100%;background:var(--ink-3);border-radius:999px}
.bar.sales>i{background:var(--s-sales)} .bar.discount>i{background:var(--s-disc)} .bar.payout>i{background:var(--s-pay)}
.bar.commission>i{background:var(--s-com)} .bar.ink>i{background:linear-gradient(90deg,hsl(var(--primary)),hsl(var(--tone-purple)))}
.brow{display:grid;grid-template-columns:minmax(0,190px) minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:.3rem 0}
.brow .bl{font-size:.8125rem;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.brow .bv{font-size:.8125rem;text-align:right;white-space:nowrap}
.brow.click{cursor:pointer;border-radius:.8rem} .brow.click:hover .bl{color:hsl(var(--primary))}

/* نوار خلاصه (بالای جدول مشتریان و در سازندهٔ گروه) */
.summary{display:flex;flex-wrap:wrap;align-items:stretch;margin-bottom:1rem;overflow:hidden;border-radius:var(--island-radius);background:var(--glass-content);box-shadow:var(--glass-shadow)}
.summary>div{flex:1 1 150px;min-width:0;padding:.9rem 1.25rem;border-inline-start:1px solid var(--glass-line)}
.summary>div:first-child{border-inline-start:0}
.summary small{display:block;color:var(--ink-3);font-size:.68rem;line-height:1.5}
.summary b{font:800 1.2rem/1.4 var(--font-sans);font-variant-numeric:tabular-nums}
.summary>div:first-child b{color:hsl(var(--primary))}
.summary .acts{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;flex:1 1 100%;border-inline-start:0;border-top:1px solid var(--glass-line);padding:.7rem 1.25rem;background:var(--soft-2)}
.summary>.note{flex:1 1 100%;border-radius:0}

/* سازندهٔ شرط */
.fb{display:flex;flex-direction:column;gap:.45rem}
.fr{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap;padding:.4rem .6rem;border-radius:1.1rem;background:var(--glass-control);box-shadow:inset 0 0 0 1px var(--glass-line)}
.fr .lg{color:var(--ink-3);font-size:.72rem;min-width:1.4rem;font-weight:650}
.fr select[data-k=op]{color:hsl(var(--primary));font-weight:650}
.fr select,.fr input{font-size:.75rem;min-width:0;min-height:2rem}
.fr .x{margin-inline-start:auto;width:2rem;padding:0;justify-content:center;border-radius:50%}
.fr.bad{background:hsl(var(--destructive) / .08);box-shadow:inset 0 0 0 1px hsl(var(--destructive) / .35)}
.fr.bad [data-k=value]{box-shadow:inset 0 0 0 1px hsl(var(--destructive) / .6);color:hsl(var(--destructive-text))}
.fbacts{display:flex;gap:.5rem;flex-wrap:wrap}

/* ============ 15. صف یافته‌ها ============ */
.fq .fqbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:0 1.5rem 1rem}
.fq .fqbar input[type=text]{width:13rem}
.fq table.fqt{table-layout:fixed;min-width:720px}
.fq.compact table.fqt{min-width:560px}
.fq.compact .c-src,.fq.compact .c-status{display:none}   /* صف نمای کلی: فقط یافته‌های باز؛ منبع در عنوان است */
.fqt .c-sev{width:110px} .fqt .c-src{width:150px} .fqt .c-amount{width:112px} .fqt .c-count{width:76px}
.fqt .c-period{width:126px} .fqt .c-status{width:104px}
.fq td{height:3.3rem}
.fq td.tt{white-space:normal;line-height:1.5;overflow:hidden}
.fq td.tt b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650}
.fq td.tt .d{display:block;color:var(--ink-3);font-size:.7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fqt td.mini{white-space:normal;line-height:1.45}
.fqt .amt.bad,.tr-sec .amt.bad{color:inherit}   /* اختلاف علامت‌دار یک کنترل، نه زیان: پرانتز، رنگ متن */
.fq tr.passed td{color:var(--ink-3)}
.fq tr.passed td.tt b{font-weight:450}
.fq .withheld{padding:.7rem 1.5rem;border-top:1px solid var(--glass-line);font-size:.72rem;color:var(--ink-3);background:var(--soft-2)}
.fqsum{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}

/* ============ 16. پنل ردیابی ============ */
.tr-sec{padding:1rem 0;border-top:1px solid var(--glass-line)}
.tr-sec:first-child{border-top:0;padding-top:.25rem}
.tr-sec>h4{font:650 .66rem/1.4 var(--font-sans);color:var(--ink-3);margin-bottom:.5rem;word-spacing:.18em}
.tr-sec p{margin:0;line-height:1.9;font-size:.8125rem;color:hsl(var(--foreground))}
.tr-fig{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}
.tr-fig .fig{font-size:2.4rem;letter-spacing:-.02em}
.tr-kv{display:grid;grid-template-columns:minmax(110px,auto) minmax(0,1fr);gap:.4rem 1rem;font-size:.8125rem;padding:.8rem 1rem;border-radius:1.1rem;background:var(--glass-control);margin:0}
.tr-kv dt{color:var(--ink-3)} .tr-kv dd{margin:0;min-width:0;overflow-wrap:anywhere}
.tr-links{display:flex;flex-direction:column;align-items:stretch;gap:.45rem}
.tr-links button{justify-content:flex-start;width:100%}
.tr-sec .tw{border-radius:1.1rem;background:var(--glass-control)}

/* ============ 17. نمودارها (رنگ‌ها از token‌های سری؛ متن هرگز رنگ سری ندارد) ============ */
.chart{min-width:0}
.chart .ch{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:.6rem}
.chart .ch h3{font:700 .9375rem var(--font-sans)}
.scroll-x{overflow-x:auto;overflow-y:hidden;max-width:100%}
.legend{display:flex;gap:.35rem 1rem;flex-wrap:wrap;font-size:.72rem;color:var(--ink-2)}
.legend span{display:inline-flex;align-items:center;gap:.4rem}
.legend i{width:.65rem;height:.65rem;display:inline-block;flex:0 0 .65rem;border-radius:.2rem}
.legend i.ln{height:.18rem;width:.9rem;border-radius:999px}
.legend i.dash{height:0;width:.9rem;border-top:2px dashed var(--ink-3);border-radius:0}
.legend i.unk{border:1.5px dotted var(--conf-u)}
.legend i.pz{background:var(--soft);outline:1px dashed var(--ink-3)}
.legend i.pt{background:repeating-linear-gradient(135deg,var(--ink-3) 0 2px,transparent 2px 5px)}
.k-sales{background:var(--s-sales)} .k-disc{background:var(--s-disc)} .k-pay{background:var(--s-pay)} .k-com{background:var(--s-com)}
.k-ink{background:hsl(var(--foreground))} .k-ink3{background:var(--ink-3)} .k-good{background:hsl(var(--success))}
svg{direction:ltr;display:block}
svg.ic{display:inline-block}
svg text{font-family:var(--font-sans);font-size:11px;fill:var(--ink-3)}
svg text.lb{fill:hsl(var(--foreground));font-weight:650} svg text.yr{fill:var(--ink-2);font-weight:700}
svg text.v{font-size:12.5px;font-weight:750;fill:hsl(var(--foreground))} svg text.v.out{fill:hsl(var(--foreground))}
svg text.pk{fill:hsl(var(--foreground));font-weight:750} svg text.an{fill:hsl(var(--primary));font-weight:750}
svg text.gl-v{fill:var(--conf-v);font-weight:800;font-size:12px} svg text.gl-r{fill:var(--conf-r);font-weight:800;font-size:12px}
svg text.gl-e{fill:var(--conf-e);font-weight:800;font-size:12px} svg text.gl-u{fill:var(--conf-u);font-weight:800;font-size:12px}
svg text.gl-x{fill:var(--conf-x);font-weight:800;font-size:12px}
svg text.pz{fill:var(--ink-3);font-weight:650}
.g-grid{stroke:var(--glass-line);stroke-width:1} .g-zero{stroke:hsl(var(--foreground) / .35);stroke-width:1}
.m-sales{fill:var(--s-sales)} .m-disc{fill:var(--s-disc)} .m-pay{fill:var(--s-pay)} .m-com{fill:var(--s-com)}
.m-soft{fill-opacity:.6} .m-part{fill-opacity:.45}
.m-ink{fill:hsl(var(--foreground))} .m-in{fill:hsl(var(--success))} .m-conn{stroke:var(--ink-3);stroke-dasharray:3 3;stroke-width:1}
.m-unk{fill:none;stroke:var(--conf-u);stroke-width:1.5;stroke-dasharray:1.5 2.5}
.m-est{fill:url(#h-est)} .m-recon{fill:url(#h-recon)} .m-hpart{fill:url(#h-partial)}
.l-net{fill:none;stroke:hsl(var(--foreground));stroke-width:2}
.l-s{fill:none;stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.l-sales{stroke:var(--s-sales)} .l-disc{stroke:var(--s-disc)} .l-pay{stroke:var(--s-pay)} .l-good{stroke:var(--s-com)} .l-list{stroke:var(--ink-3);stroke-dasharray:5 4}
.a-sales{fill:var(--s-sales);fill-opacity:.1} .a-good{fill:var(--s-com);fill-opacity:.1}
.dot{fill:var(--glass-solid);stroke:hsl(var(--foreground));stroke-width:1.5} .dot.neg{fill:hsl(var(--destructive));stroke:hsl(var(--destructive))}
.pause{fill:var(--soft);stroke:hsl(var(--foreground) / .18);stroke-dasharray:4 3}
.xhair{stroke:var(--ink-3);stroke-width:1;stroke-dasharray:2 3}
.hit{fill:transparent;cursor:crosshair}
.brace{fill:none;stroke:var(--ink-3);stroke-width:1}
.finding{display:flex;gap:.6rem;align-items:flex-start;border-radius:1.1rem;background:hsl(var(--destructive) / .09);padding:.7rem 1rem;margin-top:.75rem;font-size:.8125rem;color:hsl(var(--foreground))}
.finding b.t{color:hsl(var(--destructive-text));white-space:nowrap}
.two{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);gap:1rem}
/* نقشهٔ گرما */
.hm td{padding:0;border:0;background:transparent!important;height:auto}
.hm .c{height:1.75rem;min-width:44px;display:grid;place-items:center;font-size:.68rem;margin:2px;cursor:pointer;color:hsl(var(--foreground));border-radius:.4rem;border:1px solid transparent;font-variant-numeric:tabular-nums}
.hm .c.hot{color:var(--on-sales)}
.hm .c:hover{border-color:hsl(var(--foreground))}

/* پل (مسیر پول) */
.trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1rem}
.trio>div{padding:1.1rem 1.35rem;min-width:0;position:relative;border-radius:var(--island-radius);background:var(--glass-content);box-shadow:var(--glass-shadow)}
.trio>div+div::before{content:'←';position:absolute;inset-inline-start:-.8rem;top:42%;width:1.5rem;height:1.5rem;display:grid;place-items:center;border-radius:50%;
  background:var(--glass-raised);box-shadow:var(--glass-shadow);color:var(--ink-3);font-size:.8rem;line-height:1}
.trio .k{font:650 .75rem var(--font-sans);color:var(--ink-3);display:flex;gap:.4rem;align-items:center}
.trio .fig{font-size:2rem;margin:.3rem 0 .4rem}
.trio .cv{font-size:.72rem;color:var(--ink-3);margin-top:.25rem}
.trio .cv.w{color:hsl(var(--warning-text));font-weight:650}
.hbridge{display:none}
.hb-row{display:grid;grid-template-columns:minmax(0,110px) minmax(0,1fr) auto;gap:.5rem;align-items:center;padding:.4rem 0;border-bottom:1px solid var(--glass-line);font-size:.75rem}
.hb-row .tr{position:relative;height:.75rem;background:rgb(125 130 145 / .12);border-radius:999px}
.hb-row .tr i{position:absolute;inset-block:0;border-radius:999px}
.hb-row .tr i.unk{border:1.5px dotted var(--conf-u);background:transparent;width:.9rem}
.hb-row.tot{border-bottom:3px double var(--rule-strong);font-weight:750}
.hb-row .l small{display:block;color:var(--ink-3);font-size:.62rem}
.hb-row .a{text-align:right;font-weight:650}
.f-sales{background:var(--s-sales)} .f-sales.soft,.f-disc.soft{opacity:.6} .f-disc{background:var(--s-disc)} .f-pay{background:var(--s-pay)}
.f-com{background:var(--s-com)} .f-ink{background:hsl(var(--foreground))} .f-est{background:repeating-linear-gradient(135deg,hsl(var(--warning)) 0 3px,hsl(var(--foreground)) 3px 6px)}
.bsum td{height:2.3rem}
.bsum td.bb{width:38%;min-width:90px}
.panel .bsum td:first-child{padding-inline-start:1.5rem}

/* ============ 18. کشو (پنل ردیابی و پروندهٔ مشتری) — مثل کشوی جزئیات Zora Audit: جزیرهٔ شناور ============ */
#drawer{position:fixed;top:var(--island-gap);bottom:var(--island-gap);left:var(--island-gap);width:min(560px,calc(100vw - 2 * var(--island-gap)));z-index:120;display:flex;flex-direction:column;overflow:hidden;
  border-radius:2rem;background:var(--glass-raised);backdrop-filter:blur(40px) saturate(140%);-webkit-backdrop-filter:blur(40px) saturate(140%);box-shadow:var(--glass-float),var(--shadow-lg);
  transform:translateX(calc(-100% - 2 * var(--island-gap)));transition:transform var(--duration-slow) var(--ease-standard),visibility 0s linear var(--duration-slow);visibility:hidden}
#drawer.wide{width:min(940px,calc(100vw - 2 * var(--island-gap)))}
#drawer.open{transform:none;visibility:visible;transition:transform var(--duration-slow) var(--ease-standard)}
#drawer .dh{display:flex;align-items:center;gap:.5rem .6rem;flex-wrap:wrap;padding:1.35rem 1.6rem .9rem;color:hsl(var(--foreground))}
#drawer .dh .dtab{order:0;font:650 .66rem/1.2 var(--font-sans);word-spacing:.18em;color:hsl(var(--primary));background:hsl(var(--primary) / .12);padding:.38rem .7rem;border-radius:999px;white-space:nowrap}
#drawer .dh #dclose{order:1;margin-inline-start:auto;width:2.1rem;min-width:2.1rem;min-height:2.1rem;background:var(--glass-control);box-shadow:inset 0 0 0 1px var(--glass-line)}
#drawer .dh .grow{display:none}
#drawer .dh .crumb{order:2;flex:1 1 100%;max-width:none;white-space:normal;font-size:1.5rem;font-weight:800;line-height:1.3;margin-top:.35rem}
#drawer .dh .email{color:hsl(var(--foreground));font-size:1.15rem;font-weight:750}
#drawer .dh #dact{order:3;flex:1 1 100%;display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}
#drawer .dh #dact:empty{display:none}
#drawer .db{flex:1;overflow:auto;padding:.4rem 1.6rem 1.6rem}
#mask{position:fixed;inset:0;background:var(--scrim);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);z-index:110;display:none}
#mask.open{display:block}
.why{background:var(--glass-control);border-radius:1.25rem;padding:.9rem 1.1rem;font-size:.8125rem;line-height:1.85}
.why h3{font-size:.8125rem;font-weight:700}
.why li{margin:.15rem 0}
.kv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}
.kv .it{padding:.7rem .9rem;min-width:0;border-radius:1rem;background:var(--glass-control)}
.kv .it .k{color:var(--ink-3);font-size:.66rem;line-height:1.5}
.kv .it .v:not(.stamp){font:800 1rem/1.45 var(--font-sans);font-variant-numeric:tabular-nums;margin-top:.1rem;overflow-wrap:anywhere}
.kv .it .v small{font:400 .66rem var(--font-sans);color:var(--ink-3)}
.kv .it .v .tag,.kv .it .v .stamp,.kv .it .v .life{font-family:var(--font-sans);font-size:.72rem}
.kv .it:first-child .v{color:hsl(var(--primary))}
.kv .it.pay .v{color:var(--payout-ink)}
.scores{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.score .k{font:650 .75rem var(--font-sans);display:flex;justify-content:space-between;gap:.5rem}
.score .trk{height:.45rem;background:rgb(125 130 145 / .16);margin:.4rem 0;position:relative;border-radius:999px;overflow:hidden}
.score .trk i{position:absolute;inset-block:0;inset-inline-start:0;background:var(--ink-3);border-radius:999px}
.score .trk i.hi{background:hsl(var(--success))} .score .trk i.mid{background:hsl(var(--warning))}
.score p{margin:0;color:var(--ink-2);font-size:.72rem;line-height:1.8;white-space:normal}
.tl .ev{display:grid;grid-template-columns:124px 8px minmax(0,1fr) auto;gap:.6rem;align-items:center;padding:.45rem .25rem;border-bottom:1px solid var(--glass-line);font-size:.75rem}
.tl .ev .dt{color:var(--ink-3);font-variant-numeric:tabular-nums}
.tl .ev .sq{width:.5rem;height:.5rem;border-radius:50%;background:var(--ink-3)}
.tl .ev .bd{min-width:0;overflow-wrap:anywhere}
.tl .ev .bd b{font-weight:650;margin-inline-end:.4rem}
.ev-sales{background:var(--s-sales)!important} .ev-pay{background:var(--s-pay)!important} .ev-bad{background:hsl(var(--destructive))!important}
.ev-good{background:hsl(var(--success))!important} .ev-warn{background:hsl(var(--warning))!important} .ev-dim{background:hsl(var(--foreground) / .25)!important}
.supp{background:hsl(var(--destructive) / .09);border-radius:1.25rem;padding:.8rem 1.1rem;color:hsl(var(--foreground));font-size:.8125rem}
.supp b{color:hsl(var(--destructive-text))}
.tabs{display:inline-flex;gap:.2rem;padding:.3rem;border-radius:999px;background:rgb(125 130 145 / .1);margin:1.1rem 0 .8rem;flex-wrap:wrap;max-width:100%}
.tabs button{background:transparent;box-shadow:none;color:var(--ink-3);border-radius:999px;padding:0 .9rem;min-height:2rem;font-size:.75rem}
.tabs button:hover{color:hsl(var(--foreground));background:var(--glass-control)}
.tabs button.on{color:hsl(var(--foreground));background:var(--glass-raised);box-shadow:0 3px 10px rgb(0 0 0 / .08)}
.chain{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;font-size:.75rem}
.chain .tag{white-space:normal;max-width:100%}   /* نام بلند گروه یا مخاطب داخل کارت می‌پیچد، از لبهٔ کشو بیرون نمی‌زند */

/* ============ 19. حالت‌ها ============ */
.load{padding:1rem .25rem;color:var(--ink-3);font-size:.8125rem}
.load .cap{margin-bottom:.6rem}
.sk{height:.7rem;border-radius:999px;background:linear-gradient(90deg,var(--soft),rgb(125 130 145 / .2),var(--soft));background-size:200% 100%;animation:sk 1.2s linear infinite;margin:.6rem 0}
@keyframes sk{from{background-position:100% 0}to{background-position:-100% 0}}
.spin{display:none}
.state{border-radius:1.25rem;padding:1rem 1.25rem;font-size:.8125rem;margin:.25rem 0 1rem;background:var(--glass-content);box-shadow:var(--glass-shadow)}
.state h3{font-size:.875rem;margin-bottom:.3rem}
.state.empty{text-align:center;padding:1.5rem;background:var(--glass-control);box-shadow:inset 0 0 0 1px var(--glass-line)}
.state.empty .ic{font:800 1.3rem var(--font-sans);color:var(--ink-3)}
.state.error{background:hsl(var(--destructive) / .08);box-shadow:inset 0 0 0 1px hsl(var(--destructive) / .2)}
.state.error h3{color:hsl(var(--destructive-text));display:flex;gap:.5rem;align-items:center}
.state .acts{margin-top:.75rem;display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}
.state.error .acts{justify-content:flex-start}

/* ============ 20. یادداشت، راهنما، کارت فرصت ============ */
.note{background:var(--glass-control);border:0;border-radius:1.25rem;padding:.8rem 1.1rem;color:var(--ink-2);font-size:.8125rem;line-height:1.9}
.note.warn{background:hsl(var(--warning) / .11);color:hsl(var(--foreground))}
.note.warn b{color:hsl(var(--warning-text))}
.helpbox{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem;padding:1.1rem 1.4rem;padding-inline-end:3rem;margin-bottom:1.25rem;border-radius:var(--island-radius);
  background:linear-gradient(220deg,hsl(var(--primary) / .1),transparent 70%),var(--glass-content);box-shadow:var(--glass-shadow)}
.helpbox .hq b{display:block;color:hsl(var(--primary));font:700 .75rem var(--font-sans);margin-bottom:.2rem}
.helpbox .hq span{color:var(--ink-2);font-size:.75rem;line-height:1.85}
.helpbox .hx{position:absolute;inset-inline-end:.7rem;top:.7rem;width:1.9rem;min-width:1.9rem;min-height:1.9rem;padding:0;justify-content:center;border-radius:50%;background:transparent;box-shadow:none;color:var(--ink-3)}
.helpbox .hx:hover{color:hsl(var(--foreground));background:var(--glass-control)}
button.helpmini{margin:0}
.opp{display:flex;flex-direction:column;gap:.6rem;min-width:0;padding:1.25rem 1.4rem;border-radius:var(--island-radius);
  background:linear-gradient(220deg,hsl(var(--tone-purple) / .16),hsl(var(--tone-purple) / .03) 80%),var(--glass-content);box-shadow:var(--glass-shadow)}
.opp .t{font:700 .9375rem/1.5 var(--font-sans)}
.opp .m{display:flex;gap:1.2rem;flex-wrap:wrap;padding:.6rem .9rem;border-radius:1rem;background:var(--glass-control)}
.opp .m .k{color:var(--ink-3);font-size:.66rem}
.opp .m .v:not(.stamp){font:800 1.05rem/1.4 var(--font-sans);font-variant-numeric:tabular-nums;color:hsl(var(--ink-purple))}
.opp p{margin:0;font-size:.75rem;color:var(--ink-2);line-height:1.9}
.opp .ev{background:var(--glass-control);border-radius:.9rem;padding:.55rem .8rem;font-size:.72rem;color:var(--ink-2);line-height:1.85}

/* ============ 21. پنجره، پیام کوتاه، راهنمای روی عدد ============ */
.modal{position:fixed;inset:0;background:var(--scrim);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);z-index:150;display:none;place-items:center;padding:1rem}
.modal.open{display:grid}
.modal .box{width:min(580px,94vw);max-height:88vh;overflow:auto;border-radius:1.75rem;background:var(--glass-raised);backdrop-filter:blur(40px) saturate(140%);-webkit-backdrop-filter:blur(40px) saturate(140%);box-shadow:var(--glass-float),var(--shadow-lg)}
.modal .box h3{padding:1.3rem 1.5rem .5rem;font:750 1.15rem var(--font-sans)}
.modal .box .bd{padding:.6rem 1.5rem 1.1rem;display:flex;flex-direction:column;gap:.7rem}
.modal .box .ft{padding:.9rem 1.5rem 1.2rem;display:flex;gap:.5rem;justify-content:flex-start}
.modal label{display:block;margin-bottom:.3rem}
.modal input,.modal select,.modal textarea{width:100%}
#toast{position:fixed;bottom:1.25rem;left:50%;transform:translateX(-50%);background:hsl(var(--foreground));color:hsl(var(--background));border-radius:999px;padding:.65rem 1.2rem;font-size:.8125rem;z-index:300;display:none;
  box-shadow:var(--shadow-lg);max-width:min(520px,90vw)}
#tip{position:fixed;z-index:200;max-width:320px;background:hsl(var(--foreground) / .94);color:hsl(var(--background));border-radius:1rem;padding:.6rem .85rem;font-size:.72rem;line-height:1.8;box-shadow:var(--shadow-lg);display:none;pointer-events:none;
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
#tip b{display:block;margin-bottom:.2rem;font-size:.75rem}
#tip .f{opacity:.85;margin-top:.3rem;border-top:1px solid rgb(127 127 127 / .35);padding-top:.3rem}
#tip .row{display:flex;justify-content:space-between;gap:.9rem}
.perm{display:flex;align-items:center;gap:.5rem;padding:.4rem .15rem;border-bottom:1px solid var(--glass-line);font-size:.75rem;flex-wrap:wrap}
.perm .g{margin-inline-start:auto;display:flex;gap:.25rem;align-items:center}
.perm button{min-height:1.6rem;padding:0 .55rem;font-size:.66rem}
.perm button.on{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}
.wizard{display:flex;flex-direction:column;gap:.45rem}
.wstep{display:flex;align-items:center;gap:.6rem;padding:.6rem .8rem;border-radius:1.1rem;background:var(--glass-control)}
.wstep .n{width:1.5rem;height:1.5rem;display:grid;place-items:center;font-size:.72rem;background:var(--soft);color:var(--ink-2);flex:0 0 1.5rem;border-radius:50%}
.wstep.done .n{background:hsl(var(--success) / .15);color:hsl(var(--success-text))}
.wstep .t{font-size:.8125rem;font-weight:650}
.wstep .d{color:var(--ink-3);font-size:.72rem}

/* ============ 22. پیش‌بینی ============ */
.fancard .ch{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.6rem}
.fancard .ch h3{font:700 .9375rem var(--font-sans)}
.fancard .chips{display:flex;gap:.4rem;flex-wrap:wrap}
.fan .legend{margin-bottom:.4rem}
.fan .f{fill:var(--ink-2)} .fan[data-dom=sales] .f{fill:var(--s-sales)} .fan[data-dom=payout] .f{fill:var(--s-pay)}
.fan .f80{fill-opacity:.14} .fan .f50{fill-opacity:.3}
.l-hist{fill:none;stroke:hsl(var(--foreground));stroke-width:2;stroke-linejoin:round}
.l-p50{fill:none;stroke:var(--ink-2);stroke-width:2;stroke-dasharray:6 4}
.fan[data-dom=sales] .l-p50{stroke:var(--s-sales)} .fan[data-dom=payout] .l-p50{stroke:var(--s-pay)}
.l-p50.tick{stroke-dasharray:none;stroke-width:2.5}
.l-scn{fill:none;stroke:hsl(var(--warning));stroke-width:1.5;stroke-dasharray:1.5 3}
.m-wtd{fill:var(--glass-solid);stroke:hsl(var(--foreground));stroke-width:1.5}
.g-now{stroke:var(--ink-3);stroke-width:1;stroke-dasharray:3 3}
.legend i.fb{background:var(--ink-2)} .fan[data-dom=sales] .legend i.fb{background:var(--s-sales)} .fan[data-dom=payout] .legend i.fb{background:var(--s-pay)}
.legend i.fb.f80{opacity:.22} .legend i.fb.f50{opacity:.5}
.legend i.wtd{border:1.5px solid hsl(var(--foreground));background:var(--glass-solid)}
.legend i.scn{height:0;width:.9rem;border-top:2px dotted hsl(var(--warning))}
/* جمع‌های پیش‌بینی: کارت شاخص کوچک در رنگ همان سری */
.fcsum{display:flex;flex-wrap:wrap;align-items:stretch;gap:.6rem;margin:.9rem 0}
.fcsum>div{--metric-color:var(--primary);--metric-ink:var(--primary);display:flex;flex-direction:column;justify-content:space-between;gap:.2rem;min-width:0;flex:1 1 11rem;padding:.75rem 1rem;border-radius:1.1rem;
  background:radial-gradient(ellipse at 0% 0%,hsl(var(--metric-color) / .28),transparent 75%),linear-gradient(220deg,hsl(var(--metric-color) / .12),hsl(var(--metric-color) / .04)),var(--glass-control)}
.fancard:has(.fan[data-dom=payout]) .fcsum>div{--metric-color:var(--warning);--metric-ink:var(--warning-text)}
.fancard:has(.fan[data-dom=ink]) .fcsum>div{--metric-color:var(--tone-indigo);--metric-ink:var(--ink-indigo)}
.fcsum>.stamp{align-self:center;flex:0 0 auto}
.fcsum .k{color:var(--ink-3);font-size:.68rem}
.fcsum b{font:800 1.05rem/1.4 var(--font-sans);font-variant-numeric:tabular-nums;color:hsl(var(--metric-ink))}
.fcsum b.big{font-size:1.9rem;letter-spacing:-.02em}
.fcfoot{line-height:1.9;margin-top:.5rem}
.fcwhy ul{margin:.3rem 0 0;padding-inline-start:1.1rem} .fcwhy li{margin:.15rem 0}
.ncbar{position:relative;height:.8rem;background:rgb(125 130 145 / .14);margin:.35rem 0 .5rem;border-radius:999px}
.ncbar i{position:absolute;inset-block:0;border-radius:999px} .ncbar i.mtd{inset-inline-start:0;background:var(--s-sales)}
.ncbar i.b80{background:var(--s-sales);opacity:.22} .ncbar i.b50{background:var(--s-sales);opacity:.45}
.ncbar b{position:absolute;inset-block:-.3rem;width:2px;background:hsl(var(--foreground))}
.book .fig{font:800 1.5rem/1.4 var(--font-sans);font-variant-numeric:tabular-nums;margin:.15rem 0;color:hsl(var(--primary))}

/* صورت وضعیت: روی صفحهٔ باریک ستون جمع در ستون جزء جمع می‌شود */
.tot-m{display:none}
.stmt th{white-space:normal}
@media (max-width:1399px){ .stmt .c-bar{display:none} .stmt td.desc{min-width:260px} }

/* ============ 23. واکنش‌گرایی ============ */
@media (max-width:1600px){ .fresh .greg,.fresh .pre{display:none} .wsh .updated .tz{display:none} }
@media (max-width:1440px){ .scopechip .pre{display:none} }
@media (max-width:1280px){ .search{width:12rem} }
@media (max-width:1180px){
  .g6{grid-template-columns:repeat(3,minmax(0,1fr))} .g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .two{grid-template-columns:minmax(0,1fr)}
  .c8,.c7,.c6,.c5,.c4{grid-column:span 12}
  .helpbox{grid-template-columns:minmax(0,1fr)}
  .srcgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #scopeslot{display:none}
  .btn-sign-out span{display:none}
}
@media (max-width:1000px){ .kstrip>.sp3,.kstrip>.sp4{grid-column:span 6} }
@media (max-width:760px){
  :root{--island-gap:.75rem;--island-radius:1.4rem}
  #app{grid-template-columns:minmax(0,1fr)}
  html.nav-min{--nav-w:var(--layout-sidebar-width)}
  aside#side{position:fixed;inset-block:var(--island-gap);inset-inline-start:var(--island-gap);width:min(86vw,300px);background:var(--glass-raised);
    transform:translateX(calc(100% + 2 * var(--island-gap)));transition:transform var(--duration-base) var(--ease-standard),visibility 0s linear var(--duration-base);visibility:hidden}
  aside#side.open{transform:none;visibility:visible;transition:transform var(--duration-base) var(--ease-standard)}
  html.nav-min .brand .bt,html.nav-min nav .grp,html.nav-min nav a .lb,html.nav-min .sidefoot .fx,html.nav-min .userbox>div:last-child{display:revert}
  html.nav-min nav .grp{height:auto;padding:.95rem .9rem .3rem;font-size:.66rem}
  html.nav-min nav a{justify-content:flex-start;padding:0 .85rem}
  html.nav-min .ucard{flex-direction:row}
  .sidefoot .navmin{display:none}
  #navmask.open{display:block;position:fixed;inset:0;background:var(--scrim);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:70}
  #menubtn{display:inline-flex}
  header.cmd{gap:.35rem;padding:0 .45rem;height:3.2rem;flex-basis:3.2rem}
  .crumbs{flex:1 1 auto}
  .crumbs .bc-muted,.crumbs svg.ic{display:none}
  .crumb{max-width:none}
  header.cmd .search{display:none}
  aside .search{display:flex;width:auto;margin:.5rem .5rem 0;flex:0 0 auto}
  #snapchip{display:none}
  .pctl>button{padding:0 .6rem}
  .pctl>button .lbx{max-width:96px;overflow:hidden;text-overflow:ellipsis}
  .pop{inset-inline-start:auto;inset-inline-end:-4rem;min-width:min(19rem,92vw)}
  .btn-sign-out{width:2.25rem;padding:0;justify-content:center;border-radius:50%}
  #view{padding:1.1rem .5rem 3rem}
  .wsh{margin-bottom:1.1rem;gap:.75rem}
  .wsh .t{flex-basis:100%}
  .wsh h1{font-size:1.875rem}
  .wsh .lede{-webkit-line-clamp:2;font-size:.8125rem}
  .wsh .updated{display:none}
  .kstrip{gap:.6rem}
  .kstrip>.sp3,.kstrip>.sp4,.kstrip>.sp6{grid-column:span 6}
  .kpi{padding:.95rem 1rem .9rem;border-radius:1.25rem}
  .kpi .cap,.kpi .lb{font-size:.72rem;min-height:2rem;align-items:flex-start}
  .kic{width:1.8rem;height:1.8rem;flex-basis:1.8rem}
  .kic svg.ic{width:.9rem;height:.9rem}
  .kpi .fig,.kpi>.v,.kstrip.mini .kpi .fig,.kstrip.mini .kpi>.v{font-size:1.6rem;white-space:normal}
  .kpi .fig .u{display:block;margin:.25rem 0 0;font-size:.66rem}
  .kpi .spark{display:none}
  .srcgrid{grid-template-columns:minmax(0,1fr);gap:.5rem}
  .g2,.g3,.g4,.g6{grid-template-columns:minmax(0,1fr)}
  .trio{grid-template-columns:minmax(0,1fr);gap:.6rem}
  .trio>div+div::before{content:'↓';inset-inline-start:50%;top:-1.05rem}
  .trio .fig{font-size:1.6rem}
  .vbridge{display:none} .hbridge{display:block}
  .kv{grid-template-columns:repeat(2,minmax(0,1fr))}
  .scores{grid-template-columns:minmax(0,1fr)}
  #drawer,#drawer.wide{width:calc(100vw - 2 * var(--island-gap));border-radius:1.5rem}
  #drawer .dh{padding:1.1rem 1.1rem .7rem}
  #drawer .dh .crumb{font-size:1.2rem}
  #drawer .db{padding:.3rem 1.1rem 1.2rem}
  .tl .ev{grid-template-columns:92px 8px minmax(0,1fr)}
  .tl .ev .am{grid-column:3}
  .scroll-x svg{min-width:640px}
  button,.btn{min-height:2.4rem} button.sm{min-height:2.1rem}
  .seg button{min-height:2.1rem}
  .brow{grid-template-columns:minmax(0,110px) minmax(0,1fr) auto}
  .stmt .c-ref,.stmt .c-src,.stmt .c-tot,.stmt .c-bar{display:none}
  .tot-m{display:inline}
  .ledger td.desc{min-width:190px}
  .summary>div{flex-basis:50%}
  .filters{gap:.4rem}
  .sres{width:min(340px,86vw)}
  .fq .fqbar{padding:0 1rem .8rem}
  .fq .fqbar input[type=text]{width:100%}
  .fq td.tt{min-width:200px}
  .fq td.tt b{white-space:normal}   /* روی صفحهٔ باریک عنوان یافته می‌پیچد؛ شرحش یک خط می‌ماند */
  .panel>.ph,.tbar{padding:.95rem 1rem .7rem}
  .card{padding:1rem 1.1rem}
  th:first-child,td:first-child{padding-inline-start:1rem} th:last-child,td:last-child{padding-inline-end:1rem}
  #ct-tw td:first-child,#ct-tw th:first-child{position:sticky;inset-inline-start:0;z-index:1;background:var(--glass-solid);box-shadow:-1px 0 0 var(--glass-line)}
  #ct-tw th:first-child{z-index:3}
  .chip{white-space:normal;max-width:100%;line-height:1.45}   /* برچسب بلند (هشدار موج تخفیف) می‌پیچد، در لبهٔ صفحه بریده نمی‌شود */
  .fcsum{gap:.45rem} .fcsum b.big{font-size:1.5rem}
  .helpbox{padding:1rem 1.1rem;padding-inline-end:2.8rem}
  .menu{bottom:calc(var(--island-gap) + 4.6rem)}
}
@media (min-width:761px){ aside .search{display:none} }
@media (prefers-reduced-motion:reduce){ *{transition:none!important;animation:none!important;scroll-behavior:auto!important} }
@media (prefers-reduced-transparency:reduce),(prefers-contrast:more){
  aside#side,header.cmd,#drawer,.pop,.sres,.menu,.modal .box,.panel,.card,.kpi,.hcard,.summary{backdrop-filter:none;-webkit-backdrop-filter:none}
  aside#side,header.cmd,#drawer,.pop,.sres,.menu,.modal .box{background:hsl(var(--card))}
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){ aside#side,header.cmd,#drawer,.pop,.sres,.menu{background:hsl(var(--card))} }
@media print{ aside,header.cmd,#drawer,#mask,.stale{display:none} body{overflow:visible;background:#fff} #app{display:block;padding:0} #view{overflow:visible} }

/* ============ 24. ورود (مثل صفحهٔ ورود Zora Audit: نشان، خوشامد، کارت شیشه‌ای، دکمهٔ قرصی) ============ */
body.login{display:grid;place-items:center;min-height:100vh;min-height:100dvh;overflow:auto;padding:2rem 1rem}
body.login>main{display:block;width:100%;max-width:25rem}
.lbrand{display:flex;flex-direction:column;align-items:center;gap:.75rem;margin-bottom:1.5rem;text-align:center}
.lbrand .mark{width:2.9rem;height:2.9rem;flex-basis:2.9rem;border-radius:.95rem}
.lbrand h1{font-size:1.35rem;font-weight:800;line-height:1.3}
.lbrand .sub{font-size:.8125rem;color:var(--ink-3);margin-top:.2rem}
.lbrand .sub .en{direction:ltr;unicode-bidi:isolate;letter-spacing:.08em;text-transform:uppercase;font-size:.62rem;font-weight:650}
.lw{width:100%;padding:1.6rem 1.6rem 1.4rem;border-radius:var(--island-radius);background:var(--glass-content);box-shadow:var(--glass-shadow);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
.lw .lhd h2{font-size:1.05rem;font-weight:750}
.lw .lhd p{color:var(--ink-3);font-size:.8125rem;margin-top:.25rem;line-height:1.7}
.lbody{margin-top:1.25rem;display:flex;flex-direction:column}
.lw label{display:block;margin:.95rem 0 .4rem;font-weight:600;color:hsl(var(--foreground))}
.lw label:first-child{margin-top:0}
.lw input{width:100%;padding:.55rem 1rem;font-size:.875rem;min-height:2.75rem;border-radius:1rem}
.lw button{width:100%;margin-top:1.4rem;justify-content:center;min-height:2.75rem;font-size:.875rem}
.lw .err{margin-top:.9rem;background:hsl(var(--destructive) / .1);color:hsl(var(--foreground));padding:.7rem 1rem;font-size:.75rem;display:none;border-radius:1rem;box-shadow:inset 0 0 0 1px hsl(var(--destructive) / .25)}
.lnote{margin-top:1.5rem;color:var(--ink-3);font-size:.72rem;line-height:1.9;text-align:center}
