/* ═══════════════════════════════════════════════════════════════════
   ui/os/os.css — پوسته‌ی «ورژن ۲ فرانت» (س۳۰۲ · س۳۰۲-ج · docs/s302/os-v2.md · docs/s302-DECISIONS.md)

   📌 Ali (و۹۱): «حسِ توی یه فضایی بودن و این آیکون‌ها و شیشه‌ها روی اون فضا شناورن · برو لندینگ‌پیجی که الان طراحی شده رو ببین ·
      یه حس اون‌جوری می‌خوام · دارکِ لاکچری باید دقیقاً اون مدلی بشه»
   📌 Ali (و۹۲): «روشنمون هم گرافیکِ جذاب‌تری داشته باشه · الان خیلی حسِ گوشی‌های ده سالِ قبل رو می‌ده»
   📌 Ali (و۸۸): «حسِ شیشه‌ای بودن و خودِ دومینو و حسِ زوم‌این و زوم‌اوت که توی ورژن ۱ در تقویم‌ها داشتیم، الان توی همه‌جا استفاده کنیم»
   📌 Ali (و۸۹): «حسِ با فیدِ آروم بالا اومدن»

   دو تم با یک مجموعه توکن (`--os-*`):
     تیره  = **عینِ** لندینگِ لاکچریِ س۲۹۹ (`lux-theme-s299-core.ts` · `ui/my/lux-s299.css` · نمونه‌ی `landing-prototype.tpl.html`):
             زمینه‌ی ‎#02090C‎ + لابیِ از پیش محوشده (`/lux/ambience.webp`) + حوضچه‌های نورِ گرم و فیروزه‌ایِ عمق + غبارِ طلاییِ ساکن ·
             جوهرِ ‎#F2ECE4‎ · طلاییِ ‎#D9BC8C‎ · کارتِ ۲۶ پیکسلیِ شیشه‌ی گرم با لبه‌ی نور و سایه‌ی چندلایه · دکمه‌ی طلاییِ قرصی · لبخندِ سبک.
             ⚡ L6 لندینگ: در تیره هیچ `backdrop-filter`/`filter:blur` (شیشه‌ی گرم نیمه‌شفاف روی فضای ازپیش‌محو؛ همان حس، بی‌داغیِ گوشی).
     روشن  = «شیشه‌ی سفید روی فیروزه‌ای» (فریزِ تم · §⑩) به زبانِ امروز: هاله‌ی رنگیِ پرعمق (فیروزه‌ای، آبی، بنفش، هلویی) با نورِ بالا ·
             لیکویید گلسِ ورژن ۱ (`dn-motion-s256.js`: درخششِ بالا، لبه‌ی نوریِ رنگی، ضخامتِ زیرین، سایه‌ی رنگیِ نرم) · دکمه‌ی سرمه‌ای.
   🌡️ درسِ ⒺⓏ㉜: هیچ انیمیشنِ بی‌پایان روی صفحه‌ای که می‌ماند — ورودها یک بار، پارالاکس فقط با نشانگر، حلقه‌ی لوگو فقط در صحنه‌ی بوت.
   🔒 اپ‌ها فقط توکن می‌خوانند؛ رنگِ خام فقط رنگِ کاشیِ خودِ اپ (جدولِ `TILES` در os-core.js).
   ═══════════════════════════════════════════════════════════════════ */
@font-face{font-family:"Labkhand";src:url('/fonts/Labkhand-FaNum-VF.woff2') format("woff2");font-weight:100 700;font-display:swap}

:root,html[data-os-theme="light"]{
  --os-bg:#EDF3F8; --os-ink:#0B1324; --os-ink2:#46546B; --os-ink3:#7C8AA0; --os-line:rgba(15,23,42,.085);
  --os-card:rgba(255,255,255,.6); --os-card2:rgba(255,255,255,.86); --os-edge:rgba(255,255,255,.85);
  --os-accent:#3B5BFD; --os-accent2:#6D5BF7; --os-btn:#1E2A5A; --os-btn-ink:#fff;
  --os-pos:#0FB5A3; --os-warn:#F59E0B; --os-bad:#DC2626; --os-chip:rgba(59,91,253,.1);
  --os-shadow:0 1px 2px rgba(15,23,42,.05),0 10px 26px -12px rgba(30,41,59,.22),0 22px 48px -30px rgba(59,91,253,.32);
  --os-shadow2:0 2px 4px rgba(15,23,42,.05),0 24px 60px -18px rgba(30,41,59,.32),0 30px 80px -40px rgba(59,91,253,.45);
  --os-a1:#7FE3D4; --os-a2:#9CC2FF; --os-a3:#CDB9FF; --os-a4:#FFD7AA;
  --os-dock:rgba(255,255,255,.42); --os-scrim:rgba(15,23,42,.26); --os-field:rgba(255,255,255,.82);
  --os-blur:blur(24px) saturate(1.8);
  --os-font:"Labkhand",Vazirmatn,Tahoma,system-ui,sans-serif;
  --os-ease:cubic-bezier(.22,1,.36,1); --os-spring:cubic-bezier(.34,1.36,.64,1); --os-out:cubic-bezier(.19,1,.22,1);
  /* لیکویید گلسِ ورژن ۱ (dn-motion-s256 · LG_BG / RIM / LG_SHADOW) */
  --os-glass:radial-gradient(130% 70% at 12% 0%,rgba(255,255,255,.92),rgba(255,255,255,0) 58%),linear-gradient(170deg,rgba(255,255,255,.74) 0%,rgba(250,252,255,.6) 55%,rgba(234,246,252,.56) 100%);
  --os-glass-solid:radial-gradient(130% 70% at 12% 0%,rgba(255,255,255,.98),rgba(255,255,255,0) 58%),linear-gradient(170deg,rgba(255,255,255,.96) 0%,rgba(250,252,255,.93) 55%,rgba(234,246,252,.92) 100%);
  --os-rim:linear-gradient(140deg,rgba(255,255,255,1) 0%,rgba(255,255,255,.25) 32%,rgba(45,212,191,.28) 64%,rgba(109,91,247,.42) 100%);
  --os-inset:inset 0 1px 0 rgba(255,255,255,1),inset 0 -1px 0 rgba(148,163,184,.2);
  --os-pearl:#F4F1EA;
  --os-btn-bg:linear-gradient(180deg,#34479A 0%,#1E2A5A 60%,#18224B 100%);
  --os-btn-sh:inset 0 1px 0 rgba(255,255,255,.28),inset 0 -1px 0 rgba(0,0,0,.25),0 2px 4px rgba(15,23,42,.12),0 12px 24px -12px rgba(30,42,90,.75);
  color-scheme:light;
}
html[data-os-theme="dark"]{
  --os-bg:#02090C; --os-ink:#F2ECE4; --os-ink2:#CFC7BD; --os-ink3:#9C958D; --os-line:rgba(242,236,228,.11);
  --os-card:linear-gradient(160deg,rgba(44,36,28,.78),rgba(16,15,14,.7) 70%); --os-card2:rgba(255,246,232,.07); --os-edge:rgba(255,236,210,.08);
  --os-accent:#D9BC8C; --os-accent2:#A9875A; --os-btn:#D9BC8C; --os-btn-ink:#15110B;
  --os-pos:#9AD3B0; --os-warn:#E8C48B; --os-bad:#E7998C; --os-chip:rgba(217,188,140,.13);
  --os-shadow:0 1px 1px rgba(0,0,0,.25),0 8px 18px -8px rgba(0,0,0,.5);
  --os-shadow2:0 1px 1px rgba(0,0,0,.25),0 8px 16px -6px rgba(0,0,0,.35),0 28px 56px -18px rgba(0,0,0,.6),0 60px 110px -40px rgba(0,0,0,.55);
  --os-a1:rgba(242,200,140,.12); --os-a2:rgba(242,210,160,.085); --os-a3:rgba(88,170,170,.10); --os-a4:rgba(217,188,140,.08);
  --os-dock:linear-gradient(160deg,rgba(42,34,27,.96),rgba(13,12,11,.95) 70%); --os-scrim:rgba(1,5,7,.66); --os-field:rgba(255,255,255,.04);
  --os-blur:none;
  --os-rim-d:inset 0 1px 0 rgba(255,244,226,.13),inset 0 0 0 1px rgba(255,236,210,.07);
  --os-gold:linear-gradient(180deg,#F7EAD0,#DCC08F 55%,#BC9963);
  --os-gold-text:linear-gradient(170deg,#FFFDF8 20%,#F1DDB6 60%,#C9A36C 100%);
  --jw:radial-gradient(120% 85% at 30% 12%,rgba(255,246,226,.22),rgba(255,246,226,0) 44%) padding-box,radial-gradient(95% 95% at 50% 66%,#1C1813 0%,#0C0B09 70%,#050504 100%) padding-box,conic-gradient(from 215deg,#FFF3D4,#B88E55 16%,#4A3519 31%,#EED3A0 49%,#7B5A31 66%,#F8E6BF 84%,#FFF3D4) border-box;
  --jwsh:inset 0 1px 0 rgba(255,240,210,.42),inset 0 -3px 6px rgba(0,0,0,.7),inset 0 0 0 1px rgba(0,0,0,.6),inset 0 7px 12px -8px rgba(255,236,200,.22),0 9px 18px -7px rgba(0,0,0,.9),0 0 22px -9px rgba(217,188,140,.5);
  --os-btn-bg:linear-gradient(180deg,#F7EAD0,#DCC08F 55%,#BC9963);
  --os-btn-sh:inset 0 1px 0 rgba(255,255,255,.65),inset 0 -1px 0 rgba(120,90,50,.3),0 2px 4px rgba(0,0,0,.25),0 14px 30px -10px rgba(217,188,140,.42),0 30px 60px -24px rgba(0,0,0,.6);
  color-scheme:dark;
}
html,body{height:100%;margin:0}
body{background:var(--os-bg);color:var(--os-ink);font-family:var(--os-font);font-size:15px;line-height:1.75;-webkit-font-smoothing:antialiased;overflow:hidden;
  -webkit-tap-highlight-color:transparent;overscroll-behavior:none}
html[data-os-theme="dark"] body{font-weight:300}
html[data-os-theme="dark"] b,html[data-os-theme="dark"] strong{font-weight:500}
*{box-sizing:border-box}
button{font:inherit;color:inherit;border:0;background:none;cursor:pointer;padding:0}
input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:2.5px solid var(--os-accent);outline-offset:2px;border-radius:10px}
html[data-os-theme="dark"] :focus-visible{outline-width:1px;outline-offset:3px}
html[data-os-theme="dark"] ::selection{background:rgba(217,188,140,.32);color:#fff}
html[data-os-theme="dark"] ::placeholder{color:#6F6962}
#dn-splash{display:none!important} /* بارگذاریِ ورژن ۲ = صحنه‌ی لوگو و حلقه (و۲ · و۴) */

/* ═════════ فضا (و۹۱ · و۹۲) ═════════ */
.os-aura{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;background:linear-gradient(180deg,#F4F8FC 0%,#EAF1F7 55%,#EEF0FA 100%)}
.os-aura>*{position:absolute;display:block;transition:transform 1.2s var(--os-out)}
.os-aura .amb{inset:0;background:radial-gradient(120% 70% at 50% -12%,rgba(255,255,255,.95),rgba(255,255,255,0) 58%)}
.os-aura i{border-radius:50%;opacity:.78;background:radial-gradient(circle,var(--a) 0%,transparent 66%)}
.os-aura i:nth-child(2){width:78vmax;height:78vmax;--a:var(--os-a1);top:-30vmax;right:-26vmax;transform:translate3d(calc(var(--px,0)*-18px),calc(var(--py,0)*-14px),0)}
.os-aura i:nth-child(3){width:64vmax;height:64vmax;--a:var(--os-a2);top:24%;left:-30vmax;transform:translate3d(calc(var(--px,0)*14px),calc(var(--py,0)*12px),0)}
.os-aura i:nth-child(4){width:54vmax;height:54vmax;--a:var(--os-a3);top:46%;right:-24vmax;opacity:.62;transform:translate3d(calc(var(--px,0)*-10px),calc(var(--py,0)*16px),0)}
.os-aura i:nth-child(5){width:50vmax;height:50vmax;--a:var(--os-a4);bottom:-22vmax;left:8%;opacity:.6;transform:translate3d(calc(var(--px,0)*12px),calc(var(--py,0)*-10px),0)}
.os-aura .dust,.os-aura .vig{display:none}
/* تیره: عینِ `luxAmbient`ِ لندینگ — لابیِ ازپیش‌محو، نورِ گرم، عمقِ فیروزه‌ای، غبارِ ساکن، سایه‌ی لبه */
html[data-os-theme="dark"] .os-aura,.os-boot .os-aura{background:#02090C}
html[data-os-theme="dark"] .os-aura .amb,.os-boot .os-aura .amb{inset:-6% -4%;background:#02090C url('/lux/ambience.webp') 30% 50%/cover no-repeat;opacity:.9;transform:translate3d(calc(var(--px,0)*-8px),calc(var(--py,0)*-6px),0) scale(1.04)}
html[data-os-theme="dark"] .os-aura i,.os-boot .os-aura i{opacity:1}
html[data-os-theme="dark"] .os-aura i:nth-child(2),.os-boot .os-aura i:nth-child(2){--a:rgba(242,200,140,.12);width:120vmin;height:120vmin;top:-48vmin;right:-40vmin}
html[data-os-theme="dark"] .os-aura i:nth-child(3),.os-boot .os-aura i:nth-child(3){--a:rgba(242,210,160,.085);width:110vmin;height:110vmin;top:auto;bottom:4%;left:-52vmin}
html[data-os-theme="dark"] .os-aura i:nth-child(4),.os-boot .os-aura i:nth-child(4){--a:rgba(70,160,165,.12);width:100vmin;height:100vmin;top:30%;right:-52vmin}
html[data-os-theme="dark"] .os-aura i:nth-child(5),.os-boot .os-aura i:nth-child(5){--a:rgba(217,188,140,.075);width:96vmin;height:96vmin;bottom:-40vmin;left:auto;right:10%}
html[data-os-theme="dark"] .os-aura .dust,.os-boot .os-aura .dust{display:block;inset:-4%;opacity:.5;
  background-image:radial-gradient(1.6px 1.6px at 30px 40px,rgba(255,236,200,.8),transparent 70%),radial-gradient(1.1px 1.1px at 150px 120px,rgba(255,236,200,.55),transparent 70%),radial-gradient(1.4px 1.4px at 90px 210px,rgba(255,226,180,.65),transparent 70%),radial-gradient(3px 3px at 200px 30px,rgba(255,236,200,.25),transparent 70%);
  background-size:240px 260px;transform:translate3d(calc(var(--px,0)*22px),calc(var(--py,0)*18px),0)}
html[data-os-theme="dark"] .os-aura .vig,.os-boot .os-aura .vig{display:block;inset:0;background:radial-gradient(120% 90% at 50% 45%,transparent 40%,rgba(1,5,7,.72)),linear-gradient(180deg,rgba(2,9,12,0),rgba(2,9,12,.35))}

/* ═════════ لوگوی دومینونت (و۱ · و۳ · ورژن ۱ `dn-motion-s256`): تیغه‌های افتان + نورِ سفیدِ گذرا ═════════ */
.os-mk{overflow:visible;display:block}
.os-mk g{fill:none;stroke:currentColor;stroke-width:18;stroke-linecap:round;stroke-linejoin:round}
.os-mk path{transform-box:fill-box}
.os-mk .t1,.os-mk .t1x{transform-origin:23% 100%}.os-mk .t2{transform-origin:22% 100%}.os-mk .t3{transform-origin:29% 100%}
.os-mk .t1x{opacity:0}
/* یک بار (پیش‌فرض) */
.os-mk.fall .t1{animation:osk1 2.4s .25s linear both}.os-mk.fall .t1x{animation:osk1 2.4s .25s linear both,osxo 2.4s .25s linear both}
.os-mk.fall .t2{animation:osk2 2.4s .25s linear both}.os-mk.fall .t3{animation:osk3 2.4s .25s linear both}
/* حلقه — فقط صحنه‌ی بوت */
.os-mk.loop .t1{animation:osk1 2.4s linear infinite}.os-mk.loop .t1x{animation:osk1 2.4s linear infinite,osxo 2.4s linear infinite}
.os-mk.loop .t2{animation:osk2 2.4s linear infinite}.os-mk.loop .t3{animation:osk3 2.4s linear infinite}
@keyframes osxo{0%{opacity:0}3%,63%{opacity:1}67%,100%{opacity:0}}
@keyframes osk1{0%{transform:none;animation-timing-function:cubic-bezier(.3,.7,.3,1)}14%,44%{transform:rotate(-54deg);animation-timing-function:cubic-bezier(.55,0,.9,.4)}68%{transform:rotate(0);animation-timing-function:ease-out}73%{transform:rotate(-5deg);animation-timing-function:ease-in}78%,100%{transform:none}}
@keyframes osk2{0%,5%{transform:none;animation-timing-function:cubic-bezier(.3,.7,.3,1)}20%,52%{transform:rotate(-44deg);animation-timing-function:cubic-bezier(.55,0,.9,.4)}74%{transform:rotate(0);animation-timing-function:ease-out}79%{transform:rotate(-4deg);animation-timing-function:ease-in}84%,100%{transform:none}}
@keyframes osk3{0%,10%{transform:none;animation-timing-function:cubic-bezier(.3,.7,.3,1)}26%,59%{transform:rotate(-34deg);animation-timing-function:cubic-bezier(.55,0,.9,.4)}80%{transform:rotate(0);animation-timing-function:ease-out}85%{transform:rotate(-3deg);animation-timing-function:ease-in}90%,100%{transform:none}}
.os-logo{position:relative;display:inline-block;color:var(--os-pearl)}
.os-logo .shine{position:absolute;inset:-10%;pointer-events:none;
  background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.95) 48%,rgba(255,255,255,0) 60%) no-repeat;background-size:250% 100%;
  animation:osshine 2.8s .9s ease-in-out both;-webkit-mask:var(--mk) center/contain no-repeat;mask:var(--mk) center/contain no-repeat}
.os-logo.loop .shine{animation:osshine 2.8s ease-in-out infinite}
@keyframes osshine{0%{background-position:130% 0}60%,100%{background-position:-60% 0}}
.os-pearl{background:linear-gradient(160deg,#FFFFFF,#EDE6DA 45%,#D9D2C7 70%,#FBF8F2);-webkit-background-clip:text;background-clip:text}

/* ═════════ صحنه‌ی بوت (و۱ · و۹۱): فضای لاکچری، لوگوی صدفی ═════════ */
.os-boot{position:fixed;inset:0;z-index:200;display:grid;place-items:center;background:#02090C;color:#F4F1EA;transition:opacity .7s var(--os-ease),transform .7s var(--os-ease)}
.os-boot.out{opacity:0;transform:scale(1.06);pointer-events:none}
.os-boot .bx{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:14px;animation:osbootin 1s var(--os-out) both}
.os-boot .os-logo svg{width:124px;height:74px;filter:drop-shadow(0 0 22px rgba(217,188,140,.35))}
.os-boot .nm{font-size:15px;font-weight:200;letter-spacing:.06em;background:linear-gradient(180deg,#FFF8EC,#D9BC8C);-webkit-background-clip:text;background-clip:text;color:transparent}
.os-boot .ring{position:absolute;z-index:1;bottom:16vh;left:50%;transform:translateX(-50%);color:#D9BC8C}
.os-boot .os-ring::before{background:radial-gradient(circle at 35% 25%,rgba(255,246,226,.14),rgba(255,246,226,.02) 60%);box-shadow:inset 0 0 0 1px rgba(255,236,210,.1)}
@keyframes osbootin{0%{opacity:0;transform:translateY(16px) scale(.96)}100%{opacity:1;transform:none}}

/* ═════════ حلقه‌ی بارگذاری با درصد (و۴) ═════════ */
.os-ring{position:relative;width:52px;height:52px;display:inline-grid;place-items:center}
.os-ring::before{content:"";position:absolute;inset:5px;border-radius:50%;background:var(--os-glass-solid);box-shadow:var(--os-inset),0 6px 16px -8px rgba(30,41,59,.35)}
html[data-os-theme="dark"] .os-ring::before{background:radial-gradient(circle at 35% 25%,rgba(255,246,226,.14),rgba(255,246,226,.02) 60%);box-shadow:inset 0 0 0 1px rgba(255,236,210,.1),0 8px 18px -8px #000}
.os-ring svg{position:absolute;inset:0;transform:rotate(-90deg);overflow:visible}
.os-ring circle{fill:none;stroke-width:3.4}
.os-ring .bg{stroke:currentColor;opacity:.13}
.os-ring .fg{stroke:currentColor;stroke-linecap:round;transition:stroke-dashoffset .35s var(--os-ease);filter:drop-shadow(0 0 3px currentColor)}
.os-ring b{position:relative;font-size:11px;font-weight:700;line-height:1}
html[data-os-theme="dark"] .os-ring b{font-weight:400;color:var(--os-ink)}
.os-loading{display:grid;place-items:center;gap:10px;padding:48px 0;color:var(--os-accent);animation:osfade .4s ease both}
.os-loading p{margin:0;color:var(--os-ink3);font-size:13px}

/* ═════════ صفحه‌ی اصلی ═════════ */
#os{position:fixed;inset:0;z-index:1}
.os-home{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;overscroll-behavior-y:contain;
  padding:calc(env(safe-area-inset-top,0px) + 14px) max(16px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 136px) max(16px,env(safe-area-inset-left,0px));
  transition:transform .5s cubic-bezier(.22,.8,.26,1),opacity .5s ease}
.os-home::-webkit-scrollbar{display:none}
/* زوم‌این به داخلِ اپ: خانه بزرگ‌تر و محو می‌شود (همان «لایه‌ی قبلی بزرگ و محو»ِ تقویمِ ورژن ۱) */
.os-home.dim{transform:scale(1.08);opacity:0;pointer-events:none}
@media (min-width:900px){.os-home.dim{opacity:.14}}
.os-wrap{max-width:1080px;margin:0 auto;transform:translate3d(calc(var(--px,0)*-4px),calc(var(--py,0)*-3px),0);transition:transform 1.2s var(--os-out)}
.os-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px;animation:osrise .8s var(--os-out) both}
/* 🆕 س۳۰۲-د (و۱۱۷): سرخط = لوگوی متحرکِ دومینونتِ ورژن ۱ (بی‌قاب، به رنگِ متن · همان `.brand svg`ِ ورژن ۱) + نامِ مجموعه.
   🩸 «اسمِ مجموعه می‌ره زیرِ آیکونِ تیره و روشن»: ستونِ نام `min-width:0` نداشت ⇒ کمینه‌ی پهنایش = کلِ نامِ تک‌خطی ⇒ برند جمع نمی‌شد و
      زیرِ دکمه‌ها می‌رفت. حالا برند هر جای مانده را می‌گیرد و نامِ بلند «…» می‌شود؛ دکمه‌ها `flex:none` و از ۳۶۰ پیکسل به پایین کوچک‌تر. */
.os-brand{display:flex;align-items:center;gap:9px;min-width:0;flex:1 1 auto}
.os-brand .bt{flex:1 1 auto;min-width:0}
.os-mark{flex:none;display:grid;place-items:center;width:46px;height:40px;border-radius:14px;color:var(--os-ink);transition:transform .2s var(--os-spring)}
.os-mark:active{transform:scale(.92)}
.os-mark svg{width:44px;height:27px}
html[data-os-theme="dark"] .os-mark{color:#EAD3A6;filter:drop-shadow(0 0 10px rgba(217,188,140,.28))}
/* نام تا دو خط، بعد «…» (نامِ کوتاه در یک خط کامل؛ نامِ بلند هرگز زیرِ دکمه‌ها نمی‌رود) */
.os-brand .n{font-size:18px;font-weight:700;line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow-wrap:break-word;letter-spacing:-.01em}

html[data-os-theme="dark"] .os-brand .n{font-weight:400;background:linear-gradient(180deg,#FFF8EC,#D9BC8C);-webkit-background-clip:text;background-clip:text;color:transparent}
.os-brand .d{font-size:12px;color:var(--os-ink3);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-os-theme="dark"] .os-brand .d{color:var(--os-accent);font-weight:300;letter-spacing:.02em}
.os-tbtns{display:flex;gap:8px;flex:none}
.os-tb{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--os-glass);border:1px solid var(--os-edge);
  backdrop-filter:var(--os-blur);-webkit-backdrop-filter:var(--os-blur);box-shadow:var(--os-inset),0 6px 16px -8px rgba(30,41,59,.3);transition:transform .2s var(--os-spring);color:var(--os-ink2)}
html[data-os-theme="dark"] .os-tb{background:rgba(255,246,232,.04);border-color:transparent;box-shadow:inset 0 0 0 1px rgba(242,236,228,.16),0 10px 24px -14px rgba(0,0,0,.6);color:var(--os-ink2)}
.os-tb:active{transform:scale(.9)}
.os-tb svg{width:19px;height:19px}
/* گوشیِ باریک (≤۳۶۰): دکمه‌ها و لوگو کوچک‌تر تا نامِ مجموعه جا داشته باشد (بعد از قاعده‌های پایه تا بر آن‌ها بچربد) */
@media (max-width:360px){.os-brand .n{font-size:15.5px}.os-brand .d{font-size:11px}.os-mark{width:38px}.os-mark svg{width:36px;height:22px}.os-brand{gap:6px}.os-tbtns{gap:4px}.os-tb{width:34px;height:34px}.os-tb svg{width:16px;height:16px}}

/* ═════════ شیشه (کارت) ═════════ */
.os-card{position:relative;background:var(--os-glass);backdrop-filter:var(--os-blur);-webkit-backdrop-filter:var(--os-blur);border:1px solid rgba(255,255,255,.7);
  box-shadow:var(--os-inset),var(--os-shadow);border-radius:24px}
/* لبه‌ی نوریِ رنگیِ ورژن ۱ (ماسک ⇒ فقط لبه، متن هرگز محو نمی‌شود) */
.os-card::after{content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;border:1.5px solid transparent;background:var(--os-rim) border-box;
  -webkit-mask:linear-gradient(#000 0 0) padding-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.85}
html[data-os-theme="dark"] .os-card{background:var(--os-card);border-color:transparent;border-radius:26px;box-shadow:var(--os-rim-d),var(--os-shadow2)}
html[data-os-theme="dark"] .os-card::after{inset:0;border:0;-webkit-mask:none;mask:none;opacity:1;background:radial-gradient(120% 70% at 85% 0%,rgba(255,232,196,.075),rgba(255,232,196,0) 55%)}
.os-card .os-card{box-shadow:var(--os-inset),0 4px 14px -8px rgba(30,41,59,.25)}
html[data-os-theme="dark"] .os-card .os-card{box-shadow:var(--os-rim-d),0 8px 18px -8px rgba(0,0,0,.5)}

/* ═════════ دومینو (و۱۸ · و۸۸) ═════════ */
.os-domino{display:flex;gap:12px;align-items:center;padding:12px 14px 12px 12px;margin-bottom:14px;animation:osrise .9s .08s var(--os-out) both}
html:not([data-os-theme="dark"]) .os-domino{background:radial-gradient(90% 120% at 100% 0%,rgba(127,227,212,.32),rgba(127,227,212,0) 60%),var(--os-glass)}
html[data-os-theme="dark"] .os-domino{background:linear-gradient(160deg,rgba(64,50,34,.82),rgba(18,16,14,.74) 70%)}
.os-domino .ch{flex:none;width:56px;display:grid;place-items:center;margin-top:-6px}
.os-domino .ch .dndm-hit{border-radius:16px}
/* 🌡️ حرکت‌های بی‌پایانِ کاراکتر ⇒ فقط یک بار (سلامِ ورود) و بعد ساکن (درسِ ⒺⓏ㉜) */
.os-domino .dndm,.os-domino .dndm *{animation-iteration-count:1!important}
.os-dchar{flex:none;width:46px;height:62px}
.os-domino .say{flex:1;min-width:0;font-size:14px;line-height:1.8;transition:opacity .4s}
.os-domino .ln{transition:opacity .35s}
.os-domino .say b{font-weight:700}
.os-domino .stk{font-size:12px;color:var(--os-ink3);font-weight:600;margin-top:2px}
/* و۱۱۸: سرور جمله‌ای نگفت ⇒ فقط استریک (هیچ جمله‌ی پیش‌فرضی نیست) */
.os-domino .say.none .stk{margin-top:0;font-size:13.5px}
html[data-os-theme="dark"] .os-domino .stk{color:var(--os-accent);font-weight:300}
.os-go{flex:none;padding:8px 18px;border-radius:99px;background:var(--os-btn-bg);color:var(--os-btn-ink);font-weight:700;font-size:13.5px;box-shadow:var(--os-btn-sh);transition:transform .2s var(--os-spring)}
html[data-os-theme="dark"] .os-go{font-weight:500}
.os-go:active{transform:scale(.94)}
.os-search{display:flex;align-items:center;justify-content:center;gap:7px;margin:2px auto 22px;padding:8px 20px;border-radius:99px;background:var(--os-glass);border:1px solid var(--os-edge);
  font-size:13.5px;color:var(--os-ink2);font-weight:600;backdrop-filter:var(--os-blur);-webkit-backdrop-filter:var(--os-blur);box-shadow:var(--os-inset),0 8px 20px -12px rgba(30,41,59,.3);animation:osrise .9s .14s var(--os-out) both}
html[data-os-theme="dark"] .os-search{background:rgba(255,246,232,.04);border-color:transparent;box-shadow:inset 0 0 0 1px rgba(242,236,228,.16),0 10px 24px -14px rgba(0,0,0,.6);font-weight:300}
.os-search svg{width:16px;height:16px}

/* ═════════ شبکه‌ی اپ‌ها و کاشی‌ها (و۸۶ · و۹۳) ═════════ */
.os-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));row-gap:22px;column-gap:6px}
@media (min-width:600px){.os-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media (min-width:960px){.os-grid{grid-template-columns:repeat(8,minmax(0,1fr));row-gap:28px}}
.os-app{display:flex;flex-direction:column;align-items:center;gap:7px;position:relative;min-width:0}
.os-app .lbl{font-size:11.5px;font-weight:600;line-height:1.3;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;color:var(--os-ink)}
html[data-os-theme="dark"] .os-app .lbl{font-weight:400;color:var(--os-ink2);text-shadow:0 1px 2px rgba(0,0,0,.6)}
.os-grid.in .os-app,.os-dock.in .os-app{animation:ostile .85s var(--os-out) both;animation-delay:calc(var(--i,0) * 38ms + 160ms)}
.os-dock.in .os-app{animation-delay:calc(var(--i,0) * 50ms + 380ms)}
@keyframes ostile{0%{opacity:0;transform:translate3d(0,22px,0) scale(.9)}100%{opacity:1;transform:none}}
.os-app.enter .os-icon{animation:osinstall .7s var(--os-spring)}
@keyframes osinstall{0%{transform:scale(0) rotate(-20deg)}100%{transform:none}}

/* کاشی: SVGِ ۶۰×۶۰ کلِ کاشی را می‌سازد · `--b1 --b2 --bx --f --k1` روشن · `--d1 --d2 --dx --df --k2` تیره (os-core.js TILES)
   پس‌افتِ قدیمی: `<span class="os-icon" style="--c1;--c2">` + آیکونِ خطیِ ۲۴ (store.js) */
/* 🆕 س۳۰۲-د (و۱۲۳ «حالتِ آیکون‌های اپ‌ها همچنان جا داره شیشه‌ای‌تر و قشنگ‌تر بشه … کاشی‌ها و آیکون‌های داخلِ اپِ گزارش بیشتر این حس رو
   منتقل می‌کنن»): زبانِ مانیتورهای گزارش روی هر کاشی، بی‌دست‌زدن به هویتِ هر اپ (`TILES`):
     ① شیشه‌ی عمیق: نورِ درونیِ پایین به رنگِ خودِ کاشی + سایه‌ی رنگیِ نرم زیرش (مثلِ هاله‌ی مانیتور) — دیگر سایه‌ی خاکستریِ «گوشیِ ده سال پیش» نیست
     ② لبه‌ی نور: قابِ ۱ پیکسلیِ گرادیانی (بالا-راست روشن، پایین محو) با ماسک ⇒ فقط لبه
     ③ درخششِ بالا: هلالِ شیشه‌ای روی نقش (همان `::after`ِ مانیتور) · تمِ تیره: جواهرِ گرم با هاله‌ی رنگِ همان اپ و لبه‌ی طلایی.
   🌡️ هیچ حرکتِ همیشگی؛ فقط یک برقِ گذرا روی شبکه هنگامِ ورود (`.os-grid.in`). */
.os-icon{position:relative;width:60px;height:60px;flex:none;border-radius:23%;display:grid;place-items:center;overflow:hidden;isolation:isolate;
  color:var(--f,#fff);--k:var(--k1,var(--c2,#3B5BFD));
  background:radial-gradient(120% 70% at 50% 118%,rgba(255,255,255,.26),rgba(255,255,255,0) 58%),var(--bx,linear-gradient(160deg,var(--b1,var(--c1,#94A3B8)),var(--b2,var(--c2,#64748B))));
  box-shadow:inset 0 -2px 4px rgba(0,0,0,.08),0 1px 1.5px rgba(15,23,42,.1),0 12px 22px -12px rgba(15,23,42,.5);
  box-shadow:inset 0 -2px 4px rgba(0,0,0,.08),0 1px 1.5px rgba(15,23,42,.1),0 12px 22px -10px color-mix(in srgb,var(--b2,var(--c2,#64748B)) 62%,rgba(15,23,42,.45)),0 3px 8px -4px color-mix(in srgb,var(--b1,var(--c1,#94A3B8)) 45%,transparent);
  transition:transform .3s var(--os-spring)}
.os-icon::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:3;padding:1px;
  background:linear-gradient(150deg,rgba(255,255,255,.95),rgba(255,255,255,.35) 26%,rgba(255,255,255,0) 52%,rgba(255,255,255,.08) 78%,rgba(255,255,255,.45));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
.os-icon::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:2;
  background:radial-gradient(130% 62% at 28% -6%,rgba(255,255,255,.5),rgba(255,255,255,.12) 46%,rgba(255,255,255,0) 60%),linear-gradient(118deg,rgba(255,255,255,.16),rgba(255,255,255,0) 34%);box-shadow:inset 0 0 0 .5px rgba(15,23,42,.1)}
.os-icon svg{position:relative;z-index:1;width:46%;height:46%}
.os-icon svg.tg{width:100%;height:100%;filter:drop-shadow(0 1px 1.2px rgba(15,23,42,.18))}
html[data-os-theme="dark"] .os-icon{
  background:radial-gradient(110% 70% at 50% 120%,color-mix(in srgb,var(--b1,var(--c1,#D9BC8C)) 30%,transparent),transparent 62%),var(--dx,linear-gradient(160deg,var(--d1,rgba(255,246,232,.12)),var(--d2,rgba(255,246,232,.03))));
  color:var(--df,var(--c1,#D9BC8C));--k:var(--k2,var(--d2,#0C0B09));
  box-shadow:inset 0 -3px 7px rgba(0,0,0,.5),0 0 0 .5px rgba(0,0,0,.55),0 16px 28px -12px #000,0 0 24px -10px rgba(217,188,140,.32);
  box-shadow:inset 0 -3px 7px rgba(0,0,0,.5),0 0 0 .5px rgba(0,0,0,.55),0 16px 28px -12px #000,0 0 26px -10px color-mix(in srgb,var(--b1,var(--c1,#D9BC8C)) 42%,transparent)}
html[data-os-theme="dark"] .os-icon::before{background:linear-gradient(150deg,rgba(255,240,215,.7),rgba(255,240,215,.16) 28%,rgba(217,188,140,0) 52%,rgba(217,188,140,.06) 78%,rgba(231,203,151,.42))}
html[data-os-theme="dark"] .os-icon::after{background:radial-gradient(120% 58% at 28% -6%,rgba(255,240,215,.26),rgba(255,240,215,.05) 48%,rgba(255,240,215,0) 62%);box-shadow:none}
/* یک برقِ گذرا روی شبکه هنگامِ ورود (فقط یک بار، فقط transform) */
.os-grid.in .os-app .os-icon::after{animation:ossheen 1.1s var(--os-out) both;animation-delay:calc(var(--i,0) * 38ms + 520ms)}
@keyframes ossheen{0%{transform:translate3d(-60%,0,0);opacity:0}35%{opacity:1}100%{transform:none;opacity:1}}
@media (min-width:960px){.os-icon{width:66px;height:66px}}
.os-app:active .os-icon{transform:scale(.88)}
@media (hover:hover){.os-app:hover .os-icon{transform:translateY(-3px)}}
.os-badge{position:absolute;top:-6px;left:2px;min-width:21px;height:21px;padding:0 6px;border-radius:99px;background:linear-gradient(180deg,#FF5A4E,#E5281B);color:#fff;font-size:11.5px;font-weight:700;display:grid;place-items:center;box-shadow:0 0 0 2px var(--os-bg),0 4px 10px -4px rgba(229,40,27,.7);z-index:3}

.os-dock{position:fixed;z-index:5;left:50%;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom,0px) + 12px);width:min(calc(100% - 20px),520px);
  padding:12px 8px 10px;border-radius:34px;display:flex;justify-content:space-around;background:var(--os-dock);border:1px solid rgba(255,255,255,.75);
  backdrop-filter:blur(28px) saturate(1.9);-webkit-backdrop-filter:blur(28px) saturate(1.9);box-shadow:var(--os-inset),var(--os-shadow2);transition:transform .45s var(--os-ease),opacity .45s}
.os-dock::after{content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;border:1.5px solid transparent;background:var(--os-rim) border-box;
  -webkit-mask:linear-gradient(#000 0 0) padding-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
html[data-os-theme="dark"] .os-dock{border-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:var(--os-rim-d),inset 0 1px 0 rgba(217,188,140,.22),var(--os-shadow2)}
html[data-os-theme="dark"] .os-dock::after{display:none}
.os-dock .os-app{width:64px}
.os-dock .os-app .lbl{font-size:11px}
.os-dock.hide{transform:translate(-50%,140%);opacity:0}

/* ═════════ پنجره‌ی اپ ═════════ */
.os-win{position:fixed;inset:0;z-index:20;background:var(--os-bg);overflow:hidden;display:flex;flex-direction:column;transform-origin:50% 50%}
/* زومِ باز/بسته (os-core.js `OS.open`/`OS.close` · و۱۰۷): فقط در طولِ حرکت لایه‌ی جدا و گوشه‌ی گرد (۵۶px ⇐ در اندازه‌ی آیکون ≈ گوشه‌ی کاشی) */
.os-win.zm{will-change:transform,opacity;border-radius:56px}
@media (min-width:900px){.os-win{inset:24px max(24px,calc(50% - 520px));border-radius:32px;box-shadow:var(--os-shadow2);border:1px solid var(--os-edge)}}
.os-win .os-aura{position:absolute}
.os-cover{position:absolute;inset:0;z-index:30;display:grid;place-items:center;pointer-events:none;color:var(--f,#fff);--k:var(--k1,var(--c2));
  background:var(--bx,linear-gradient(160deg,var(--b1,var(--c1)),var(--b2,var(--c2))))}
html[data-os-theme="dark"] .os-cover{background:var(--dx,linear-gradient(160deg,var(--d1,#0B1114),var(--d2,#050607)));color:var(--df,var(--c1));--k:var(--k2,var(--d2))}
/* نقشِ کاشی هم‌پهنای پنجره ⇒ در لحظه‌ی هم‌اندازه‌شدن با آیکون، دقیقاً هم‌اندازه‌ی نقشِ خودِ آیکون (زومِ یکنواخت) */
.os-cover svg{width:100%;height:auto;aspect-ratio:1/1;flex:none}
.os-vw{position:relative;z-index:1;display:flex;flex-direction:column;flex:1;min-height:0}
.os-view{display:flex;flex-direction:column;flex:1;min-height:0;transform-origin:50% 40%}
.os-view.os-ghost{position:absolute;inset:0;z-index:2;pointer-events:none}
.os-wh{display:flex;align-items:center;gap:10px;padding:calc(env(safe-area-inset-top,0px) + 12px) max(16px,env(safe-area-inset-right,0px)) 10px max(16px,env(safe-area-inset-left,0px))}
.os-wh .ttl{display:flex;align-items:center;gap:11px;flex:1;min-width:0}
.os-wh .ttl .os-icon{width:36px;height:36px;box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 6px 14px -8px rgba(15,23,42,.5)}
.os-wh h1{margin:0;font-size:25px;font-weight:700;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.015em}
html[data-os-theme="dark"] .os-wh h1{font-weight:300;font-size:26px;background:linear-gradient(180deg,#FFF8EC,#D9BC8C);-webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:2px}
.os-wh h1.sm{font-size:19px}
html[data-os-theme="dark"] .os-wh h1.sm{font-size:20px}
.os-wh .lt{display:flex;gap:8px;flex:none;direction:ltr}
.os-back{display:flex;align-items:center;gap:2px;height:38px;padding:0 13px 0 8px;border-radius:99px;background:var(--os-glass);border:1px solid var(--os-edge);color:var(--os-accent);font-weight:700;font-size:14px;direction:rtl;
  box-shadow:var(--os-inset),0 6px 14px -8px rgba(30,41,59,.3);backdrop-filter:var(--os-blur);-webkit-backdrop-filter:var(--os-blur);transition:transform .2s var(--os-spring);max-width:46vw}
.os-back span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-os-theme="dark"] .os-back{background:rgba(255,246,232,.04);border-color:transparent;box-shadow:inset 0 0 0 1px rgba(242,236,228,.18),0 10px 24px -14px rgba(0,0,0,.6);font-weight:400;color:var(--os-ink)}
.os-back:active,.os-gear:active{transform:scale(.94)}
.os-back svg{width:17px;height:17px;transform:scaleX(-1);flex:none}
.os-gear{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--os-glass);border:1px solid var(--os-edge);color:var(--os-ink2);box-shadow:var(--os-inset),0 6px 14px -8px rgba(30,41,59,.3);transition:transform .2s var(--os-spring)}
html[data-os-theme="dark"] .os-gear{background:rgba(255,246,232,.04);border-color:transparent;box-shadow:inset 0 0 0 1px rgba(242,236,228,.18)}
.os-gear svg{width:19px;height:19px}
/* و۱۲۵ (درسِ ⒺⓏ⑯): `contain` فقط روی همین ظرفِ اسکرول‌دار ⇒ کشیدنِ ته/سرِ فهرست صفحه را تازه نمی‌کند و به پشتِ پنجره نمی‌رسد */
.os-wb{position:relative;flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;
  padding:4px max(16px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 36px) max(16px,env(safe-area-inset-left,0px))}
.os-hq svg{width:18px;height:18px}
/* و۱۲۵: ورودیِ کوچک‌تر از ۱۶ پیکسل در آیفون صفحه را زوم می‌کند و بعد از بستنِ کیبورد بزرگ می‌ماند (حسِ «قفل‌شدن») ⇒ روی لمسی همیشه ۱۶ */
@media (pointer:coarse){input.os-field,textarea.os-field,select.os-field,.os-spot input{font-size:16px!important}}
/* 🆕 س۳۰۲-د (و۱۱۵): خطِ پایینِ آیفونی و «بالا کشیدن برای بستن» برداشته شد ⇒ بستن فقط «بازگشت» (بالا چپ) و بازگشتِ خودِ گوشی/مرورگر */

/* ═════════ فید و بالا آمدنِ آرام (و۸۹) — os-core.js `riseIn` ═════════ */
.os-rise{animation:osrise .78s var(--os-out) both;animation-delay:calc(var(--ri,0) * 45ms)}
@keyframes osrise{0%{opacity:0;transform:translate3d(0,14px,0)}100%{opacity:1;transform:none}}

/* ═════════ اجزای مشترکِ اپ‌ها ═════════ */
.os-sec{font-size:12.5px;font-weight:700;color:var(--os-ink3);margin:20px 8px 9px;display:flex;justify-content:space-between;align-items:center;gap:8px;letter-spacing:.01em}
html[data-os-theme="dark"] .os-sec{font-weight:400;color:var(--os-accent)}
html[data-os-theme="dark"] .os-sec::before{content:"";flex:none;width:22px;height:1px;background:linear-gradient(270deg,var(--os-accent),transparent);order:-1;margin-left:-14px;display:none}
.os-pad{padding:15px}
.os-list{padding:2px 0;overflow:hidden}
.os-li{display:flex;align-items:center;gap:12px;padding:12px 15px;text-align:right;width:100%;min-width:0;position:relative;transition:background .2s}
.os-li+.os-li{border-top:1px solid var(--os-line)}
.os-li .tx{flex:1;min-width:0}
.os-li .t1{display:block;font-weight:700;font-size:14.5px;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html[data-os-theme="dark"] .os-li .t1{font-weight:500}
.os-li .t2{display:block;font-size:12.5px;color:var(--os-ink2);line-height:1.55}
.os-li .end{font-size:12.5px;color:var(--os-ink2);font-weight:600;text-align:left;white-space:nowrap}
.os-li .chev{width:16px;height:16px;color:var(--os-ink3);transform:scaleX(-1);flex:none}
button.os-li:active{background:var(--os-chip)}
@media (hover:hover){button.os-li:hover{background:rgba(59,91,253,.05)}html[data-os-theme="dark"] button.os-li:hover{background:rgba(255,246,232,.035)}}
.os-li .os-icon.sm,.os-icon.sm{width:36px;height:36px}
.os-icon.md{width:52px;height:52px}
.os-av{flex:none;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:15px;overflow:hidden;
  background:radial-gradient(120% 90% at 25% 10%,rgba(255,255,255,.45),rgba(255,255,255,0) 52%),linear-gradient(150deg,var(--c1,#7EA2FF),var(--c2,#6D5BF7));box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 6px 14px -8px var(--c2,#6D5BF7)}
html[data-os-theme="dark"] .os-av{background:var(--jw);border:1.5px solid transparent;box-shadow:var(--jwsh);color:#E7CB97;font-weight:400}
.os-av img{width:100%;height:100%;object-fit:cover}
.os-ic{flex:none;width:36px;height:36px;border-radius:11px;display:grid;place-items:center;color:#fff;position:relative;overflow:hidden;
  background:radial-gradient(120% 90% at 25% 10%,rgba(255,255,255,.5),rgba(255,255,255,0) 52%),linear-gradient(150deg,var(--c1,#5B8CFF),var(--c2,#3B5BFD));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55),inset 0 -1px 0 rgba(15,23,42,.12),0 8px 16px -10px var(--c2,#3B5BFD)}
html[data-os-theme="dark"] .os-ic{background:radial-gradient(95% 60% at 30% 0%,rgba(255,240,215,.16),rgba(255,240,215,0) 62%),linear-gradient(160deg,rgba(255,246,232,.09),rgba(255,246,232,.025));color:var(--c1,#D9BC8C);box-shadow:inset 0 1px 0 rgba(255,240,215,.2),inset 0 0 0 1px rgba(255,236,210,.08),0 8px 16px -10px #000}
.os-ic svg{width:19px;height:19px}
.os-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 10px;border-radius:99px;font-size:11.5px;font-weight:700;background:var(--os-chip);color:var(--os-accent);white-space:nowrap}
html[data-os-theme="dark"] .os-chip{font-weight:400;background:transparent;box-shadow:inset 0 0 0 1px rgba(217,188,140,.32)}
.os-chip.g{background:rgba(18,184,166,.14);color:var(--os-pos)}.os-chip.o{background:rgba(245,158,11,.15);color:var(--os-warn)}
.os-chip.r{background:rgba(220,38,38,.12);color:var(--os-bad)}.os-chip.s{background:var(--os-line);color:var(--os-ink2)}
html[data-os-theme="dark"] .os-chip.g{box-shadow:inset 0 0 0 1px rgba(154,211,176,.35);background:transparent}
html[data-os-theme="dark"] .os-chip.o{box-shadow:inset 0 0 0 1px rgba(232,196,139,.35);background:transparent}
html[data-os-theme="dark"] .os-chip.r{box-shadow:inset 0 0 0 1px rgba(231,153,140,.35);background:transparent}
html[data-os-theme="dark"] .os-chip.s{box-shadow:inset 0 0 0 1px var(--os-line);background:transparent}
.os-chips{display:flex;flex-wrap:wrap;gap:7px;padding:2px 0 10px}
.os-chips button{padding:6px 14px;border-radius:99px;background:var(--os-glass);border:1px solid var(--os-edge);font-size:13px;font-weight:600;box-shadow:var(--os-inset),0 4px 10px -6px rgba(30,41,59,.25);transition:all .25s var(--os-ease)}
html[data-os-theme="dark"] .os-chips button{background:transparent;border-color:transparent;box-shadow:inset 0 0 0 1px var(--os-line);font-weight:300;color:var(--os-ink2)}
.os-chips button[aria-pressed="true"]{background:var(--os-btn-bg);color:var(--os-btn-ink);border-color:transparent;box-shadow:var(--os-btn-sh)}
html[data-os-theme="dark"] .os-chips button[aria-pressed="true"]{font-weight:500;color:var(--os-btn-ink);background:var(--os-btn-bg);box-shadow:var(--os-btn-sh)}
.os-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:0 20px;border-radius:16px;font-weight:700;font-size:15px;
  background:var(--os-btn-bg);color:var(--os-btn-ink);box-shadow:var(--os-btn-sh);transition:transform .2s var(--os-spring),opacity .2s,box-shadow .3s}
html[data-os-theme="dark"] .os-btn{border-radius:999px;font-weight:500}
.os-btn:active{transform:scale(.96)}
.os-btn[disabled]{opacity:.4;pointer-events:none}
.os-btn.soft{background:var(--os-glass-solid);color:var(--os-ink);border:1px solid rgba(255,255,255,.9);box-shadow:var(--os-inset),0 6px 14px -8px rgba(30,41,59,.28)}
html[data-os-theme="dark"] .os-btn.soft{background:rgba(255,246,232,.04);border-color:transparent;box-shadow:inset 0 0 0 1px rgba(242,236,228,.22),0 10px 24px -14px rgba(0,0,0,.6);color:var(--os-ink)}
.os-btn.pos{background:linear-gradient(180deg,#2BD3BF,#0FA595);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 12px 22px -12px #0FA595}
html[data-os-theme="dark"] .os-btn.pos{background:linear-gradient(180deg,#BFE8CF,#86C4A0);color:#0C1A12;box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 12px 24px -12px rgba(154,211,176,.4)}
.os-btn.bad{background:transparent;color:var(--os-bad);border:1px solid var(--os-line);box-shadow:none}
.os-btn.w{width:100%}
.os-btn svg{width:18px;height:18px}
.os-btns{display:flex;gap:8px;flex-wrap:wrap}.os-btns .os-btn{flex:1}
.os-field{width:100%;min-height:50px;padding:0 16px;border-radius:16px;border:1.5px solid rgba(15,23,42,.07);background:var(--os-field);font-size:16px;font-weight:600;text-align:right;color:var(--os-ink);
  box-shadow:inset 0 1px 2px rgba(15,23,42,.05),0 1px 0 rgba(255,255,255,.9);transition:border-color .2s,box-shadow .2s}
html[data-os-theme="dark"] .os-field{border:0;border-radius:16px;box-shadow:inset 0 0 0 1px rgba(242,236,228,.16);font-weight:400}
.os-field:focus{outline:none;border-color:var(--os-accent);box-shadow:0 0 0 4px var(--os-chip)}
html[data-os-theme="dark"] .os-field:focus{box-shadow:inset 0 0 0 1px var(--os-accent),0 0 0 4px rgba(217,188,140,.1)}
.os-field.os-q{min-height:44px;font-size:15px;margin-bottom:10px}
textarea.os-field{min-height:120px;padding:12px 14px;font-size:14.5px;font-weight:500;line-height:1.85;resize:vertical}
html[data-os-theme="dark"] textarea.os-field{font-weight:300}
select.os-field{appearance:auto}
.os-ltr{direction:ltr;text-align:left}
.os-muted{color:var(--os-ink2);font-size:13px}
.os-kv{display:flex;justify-content:space-between;gap:10px;font-size:13.5px;padding:5px 0}.os-kv b{font-weight:700}
html[data-os-theme="dark"] .os-kv b{font-weight:500}
.os-sw{flex:none;width:51px;height:31px;border-radius:99px;background:rgba(120,128,145,.24);position:relative;transition:background .25s;box-shadow:inset 0 1px 2px rgba(15,23,42,.12)}
.os-sw::after{content:"";position:absolute;top:2px;right:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 3px 8px rgba(15,23,42,.25),0 1px 1px rgba(15,23,42,.1);transition:transform .32s var(--os-spring)}
.os-sw[aria-checked="true"]{background:linear-gradient(180deg,#2BD3BF,#0FA595)}.os-sw[aria-checked="true"]::after{transform:translateX(-20px)}
html[data-os-theme="dark"] .os-sw{background:rgba(255,246,232,.09);box-shadow:inset 0 0 0 1px rgba(242,236,228,.12)}
html[data-os-theme="dark"] .os-sw::after{background:linear-gradient(180deg,#EDE6DA,#BDB4A6)}
html[data-os-theme="dark"] .os-sw[aria-checked="true"]{background:var(--os-gold)}
html[data-os-theme="dark"] .os-sw[aria-checked="true"]::after{background:#15110B}

/* حالتِ خالی: نشانِ شیشه‌ای (روشن) / جواهری (تیره) */
.os-empty{text-align:center;padding:34px 18px;color:var(--os-ink2);font-size:13.5px;line-height:1.85}
.os-empty .em{display:grid;place-items:center;width:66px;height:66px;margin:0 auto 12px;border-radius:50%;color:var(--os-accent);
  background:var(--os-glass-solid);box-shadow:var(--os-inset),0 14px 28px -14px rgba(59,91,253,.45),0 0 0 6px rgba(255,255,255,.35)}
html[data-os-theme="dark"] .os-empty .em{background:var(--jw);border:1.5px solid transparent;box-shadow:var(--jwsh);color:#E7CB97}
.os-empty svg{width:28px;height:28px}
.os-empty>svg{width:40px;height:40px;color:var(--os-ink3);margin-bottom:6px;display:block;margin-inline:auto}
.os-empty b{display:block;color:var(--os-ink);font-size:15.5px;margin-bottom:2px}
html[data-os-theme="dark"] .os-empty b{font-weight:400}

/* تب‌ها (و۲۸): کنترلِ بخش‌بندیِ شیشه‌ای با قرصِ لغزان */
.os-tabs{position:relative;display:flex;gap:4px;padding:4px;border-radius:16px;background:rgba(120,128,145,.13);margin-bottom:14px;box-shadow:inset 0 1px 2px rgba(15,23,42,.06)}
html[data-os-theme="dark"] .os-tabs{background:rgba(255,246,232,.04);box-shadow:inset 0 0 0 1px rgba(242,236,228,.1);border-radius:999px}
.os-tabs button{position:relative;z-index:1;flex:1;padding:7px 4px;border-radius:12px;font-size:13px;font-weight:700;color:var(--os-ink2);transition:color .25s,background .25s var(--os-ease)}
html[data-os-theme="dark"] .os-tabs button{font-weight:400;border-radius:999px}
.os-tabs button[aria-pressed="true"]{background:var(--os-glass-solid);color:var(--os-ink);box-shadow:var(--os-inset),0 3px 10px -4px rgba(15,23,42,.18)}
html[data-os-theme="dark"] .os-tabs button[aria-pressed="true"]{background:var(--os-gold);color:var(--os-btn-ink);box-shadow:0 8px 18px -10px rgba(217,188,140,.5)}
.os-tabs-x button[aria-pressed="true"],html[data-os-theme="dark"] .os-tabs-x button[aria-pressed="true"]{background:transparent;box-shadow:none}
.os-tabs .pill{position:absolute;top:4px;bottom:4px;left:0;width:0;border-radius:12px;opacity:0;pointer-events:none;
  background:var(--os-glass-solid);box-shadow:var(--os-inset),0 3px 10px -4px rgba(15,23,42,.18);transition:transform .42s var(--os-spring),width .42s var(--os-spring),opacity .2s}
html[data-os-theme="dark"] .os-tabs .pill{border-radius:999px;background:var(--os-gold);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 8px 18px -10px rgba(217,188,140,.5)}

/* ═════════ شبکه‌ی آیکونِ زوم‌شونده (و۲۶ · و۸۷): نشانِ رنگیِ شیشه‌ایِ ورژن ۱ ═════════ */
.os-ig{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:16px 8px;padding:6px 0}
.os-ig button{display:flex;flex-direction:column;align-items:center;gap:7px;position:relative;min-width:0}
.os-ig .gi{position:relative;width:58px;height:58px;border-radius:18px;display:grid;place-items:center;color:#fff;font-size:21px;font-weight:700;
  background:radial-gradient(120% 90% at 25% 10%,rgba(255,255,255,.55),rgba(255,255,255,0) 52%),linear-gradient(150deg,var(--g1,#5B8CFF),var(--g2,#3B5BFD));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6),inset 0 -1px 0 rgba(15,23,42,.14),0 3px 0 -1px rgba(15,23,42,.08),0 12px 22px -12px var(--g2,#3B5BFD);transition:transform .25s var(--os-spring),box-shadow .25s}
html[data-os-theme="dark"] .os-ig .gi{color:var(--gdf,#E7CB97);font-weight:400;
  background:radial-gradient(95% 60% at 30% 0%,rgba(255,240,215,.2),rgba(255,240,215,0) 62%),linear-gradient(160deg,var(--gd1,#2A231B),var(--gd2,#0E0C0A));
  box-shadow:inset 0 1px 0 rgba(255,240,215,.24),inset 0 0 0 1px rgba(255,236,210,.09),inset 0 -2px 5px rgba(0,0,0,.45),0 12px 22px -12px #000,0 0 20px -12px rgba(217,188,140,.4)}
.os-ig .gi em{font-style:normal;text-shadow:0 1px 2px rgba(15,23,42,.2)}
.os-ig .gi svg{width:26px;height:26px;filter:drop-shadow(0 1px 1px rgba(15,23,42,.18))}
.os-ig .gi.im{background:var(--os-card2)}
.os-ig .gi img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
/* زیرگروه‌دار: لبه‌ی کاشیِ پشتی (حسِ «داخلش چیزه») */
.os-ig button.br .gi::before{content:"";position:absolute;inset:5px -5px -5px 5px;border-radius:inherit;background:inherit;opacity:.35;z-index:-1}
.os-ig button:active .gi{transform:scale(.9)}
@media (hover:hover){.os-ig button:hover .gi{transform:translateY(-3px)}}
.os-ig .gl{font-size:11.5px;font-weight:600;line-height:1.35;text-align:center;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
html[data-os-theme="dark"] .os-ig .gl{font-weight:400;color:var(--os-ink2)}
.os-ig .gn{font-size:10.5px;color:var(--os-ink3)}
.os-ig .tk{position:absolute;top:-5px;left:-5px;width:22px;height:22px;border-radius:50%;background:linear-gradient(180deg,#2BD3BF,#0FA595);color:#fff;display:none;place-items:center;box-shadow:0 0 0 2px var(--os-bg),0 4px 10px -4px #0FA595;z-index:2}
html[data-os-theme="dark"] .os-ig .tk{background:var(--os-gold);color:#15110B}
.os-ig .tk svg{width:13px;height:13px;filter:none}
.os-ig button[aria-pressed="true"] .tk{display:grid;animation:ospop .4s var(--os-spring)}
.os-ig button[aria-pressed="true"] .gi{box-shadow:0 0 0 2.5px var(--os-bg),0 0 0 4.5px var(--os-pos),0 12px 22px -12px var(--g2,#3B5BFD)}
html[data-os-theme="dark"] .os-ig button[aria-pressed="true"] .gi{box-shadow:0 0 0 2px var(--os-bg),0 0 0 3.5px var(--os-accent),0 0 22px -6px rgba(217,188,140,.6)}
.os-tabg button[aria-pressed="true"] .tk{display:none}
.os-crumb{display:flex;flex-wrap:wrap;gap:4px;align-items:center;font-size:12.5px;color:var(--os-ink3);margin-bottom:8px}
.os-crumb button{color:var(--os-accent);font-weight:700;padding:3px 11px;border-radius:99px;background:var(--os-glass);border:1px solid var(--os-edge);box-shadow:var(--os-inset)}
html[data-os-theme="dark"] .os-crumb button{background:transparent;border-color:transparent;box-shadow:inset 0 0 0 1px rgba(217,188,140,.3);font-weight:400}
.os-crumb .sep{opacity:.6}
/* لایه‌های زوم (تقویم و شبکه‌ی آیکون · os-core.js `zswap`) */
.os-zs{position:relative}
.os-zl{transform-origin:0 0;transition:transform .44s cubic-bezier(.22,.8,.26,1),opacity .44s ease}
.os-zl.out{position:absolute;inset:0;pointer-events:none;z-index:0;transition:transform .44s cubic-bezier(.22,.8,.26,1),opacity .26s ease}
.os-zl.in{position:relative;z-index:1}

/* ═════════ ویزارد (و۲۲ · و۸۸): تیغه‌های دومینو ═════════ */
.os-wiz{padding:18px 16px 16px;position:relative}
.os-dots{display:flex;gap:5px;justify-content:center;margin-bottom:14px}
.os-dots i{width:7px;height:7px;border-radius:99px;background:rgba(120,128,145,.25);transition:all .45s var(--os-spring)}
.os-dots i.on{width:22px;background:linear-gradient(90deg,var(--os-accent2),var(--os-accent));box-shadow:0 2px 8px -2px var(--os-accent)}
.os-dots i.done{background:var(--os-accent);opacity:.45}
html[data-os-theme="dark"] .os-dots i{background:rgba(242,236,228,.14)}
html[data-os-theme="dark"] .os-dots i.on{background:var(--os-gold);box-shadow:0 0 10px -2px rgba(217,188,140,.6)}
html[data-os-theme="dark"] .os-dots i.done{background:var(--os-accent);opacity:.5}
.os-wiz .q{font-size:18.5px;font-weight:700;margin:0 0 14px;line-height:1.6;text-wrap:balance}
html[data-os-theme="dark"] .os-wiz .q{font-weight:300;font-size:20px}
.os-wiz .st{transform-origin:50% 100% -18px;backface-visibility:hidden}
/* 🆕 س۳۰۳ (و۱۲۸) — گذارِ قدم با WAAPI و فرمول‌های `dn-deck-s257`ِ ورژن ۱ (os-core `deckPlay`)؛ اینجا فقط جای تیغه‌ی کپی */
.os-wiz-ghost{position:absolute!important;left:16px;right:16px;z-index:3;pointer-events:none;transform-origin:50% 100% -18px;overflow:hidden}
.os-wiz .nav{display:flex;gap:8px;margin-top:16px}
.os-wiz .nav .os-btn{flex:1}
.os-wiz .nav [data-w="back"]{flex:0 0 auto;padding-inline:14px;display:inline-flex;align-items:center;gap:2px}
.os-wiz .nav [data-w="back"] svg{width:15px;height:15px}
.os-path{display:flex;align-items:center;gap:12px;padding:14px 15px;border-radius:18px;background:var(--os-glass-solid);border:1px solid rgba(255,255,255,.9);width:100%;text-align:right;margin-bottom:9px;
  box-shadow:var(--os-inset),0 8px 18px -12px rgba(30,41,59,.3);transition:transform .2s var(--os-spring),box-shadow .25s}
html[data-os-theme="dark"] .os-path{background:rgba(255,246,232,.04);border-color:transparent;box-shadow:inset 0 0 0 1px rgba(242,236,228,.13),0 10px 24px -16px rgba(0,0,0,.7)}
@media (hover:hover){.os-path:hover{box-shadow:var(--os-inset),0 14px 26px -14px rgba(59,91,253,.45)}html[data-os-theme="dark"] .os-path:hover{box-shadow:inset 0 0 0 1px rgba(217,188,140,.45),0 10px 24px -16px rgba(0,0,0,.7)}}
.os-path:active{transform:scale(.97)}
.os-path .tx{flex:1}.os-path .t1{display:block;font-weight:700;font-size:15.5px}.os-path .t2{display:block;font-size:12.5px;color:var(--os-ink2)}
html[data-os-theme="dark"] .os-path .t1{font-weight:500}
.os-done{text-align:center;padding:10px 0 4px}
.os-tick{position:relative;width:88px;height:88px;margin:6px auto 12px;border-radius:50%;display:grid;place-items:center;color:#fff;
  background:radial-gradient(120% 90% at 30% 15%,rgba(255,255,255,.45),rgba(255,255,255,0) 55%),linear-gradient(160deg,#34E0C8,#0FA595);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 18px 36px -14px #0FA595;animation:ospop .6s var(--os-spring) both}
.os-tick::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid #2BD3BF;opacity:0;animation:osburst .9s .2s var(--os-out) both}
html[data-os-theme="dark"] .os-tick{background:radial-gradient(120% 90% at 30% 15%,rgba(255,255,255,.55),rgba(255,255,255,0) 55%),var(--os-gold);color:#15110B;box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 18px 40px -14px rgba(217,188,140,.55)}
html[data-os-theme="dark"] .os-tick::after{border-color:#D9BC8C}
.os-tick svg{width:42px;height:42px;stroke-dasharray:30;stroke-dashoffset:30;animation:osdraw .5s .3s var(--os-ease) forwards}
@keyframes osdraw{to{stroke-dashoffset:0}}
@keyframes ospop{0%{transform:scale(.6);opacity:0}100%{transform:none;opacity:1}}
@keyframes osburst{0%{opacity:.8;transform:scale(.85)}100%{opacity:0;transform:scale(1.5)}}

/* ═════════ تقویمِ زوم‌شونده (و۲۴ · و۸۷ · ورژن ۱ `dn-zoomcal` و اتاقِ فرمان) ═════════ */
.os-cal{padding:12px;overflow:hidden}
.os-cal .hd{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}
.os-cal .hd b{font-size:17px;flex:1;text-align:center;white-space:nowrap}
html[data-os-theme="dark"] .os-cal .hd b{font-weight:300;font-size:18px;background:linear-gradient(180deg,#FFF8EC,#D9BC8C);-webkit-background-clip:text;background-clip:text;color:transparent}
.os-cal .hd>button{width:36px;height:36px;flex:none;border-radius:50%;background:var(--os-glass-solid);display:grid;place-items:center;box-shadow:var(--os-inset),0 4px 10px -6px rgba(30,41,59,.3);color:var(--os-accent)}
html[data-os-theme="dark"] .os-cal .hd>button{background:transparent;box-shadow:inset 0 0 0 1px rgba(242,236,228,.16)}
.os-cal .hd button svg{width:16px;height:16px}
.os-cal .hd{flex-wrap:wrap}
.os-cal .hd b{flex:1 1 calc(100% - 96px)}
/* سطحِ سال/ماه/روز: کنترلِ بخش‌بندیِ شیشه‌ای؛ در گوشی خطِ دوم، وسط · پهن‌تر: کنارِ عنوان */
.os-cal .lv{display:flex;gap:2px;padding:3px;border-radius:12px;background:rgba(120,128,145,.13);order:4;margin:0 auto;box-shadow:inset 0 1px 2px rgba(15,23,42,.06)}
.os-cal .hd .lv button{width:auto;height:auto;padding:3px 14px;border-radius:9px;font-size:12.5px;font-weight:700;background:none;color:var(--os-ink2);box-shadow:none;display:block;transition:all .25s var(--os-ease)}
.os-cal .hd .lv button[aria-pressed="true"]{background:var(--os-glass-solid);color:var(--os-ink);box-shadow:var(--os-inset),0 2px 8px -3px rgba(15,23,42,.2)}
html[data-os-theme="dark"] .os-cal .lv{background:rgba(255,246,232,.04);box-shadow:inset 0 0 0 1px rgba(242,236,228,.1);border-radius:999px}
html[data-os-theme="dark"] .os-cal .hd .lv button{font-weight:400;border-radius:999px}
html[data-os-theme="dark"] .os-cal .hd .lv button[aria-pressed="true"]{background:var(--os-gold);color:#15110B;font-weight:500}
@media (min-width:560px){.os-cal .hd{flex-wrap:nowrap}.os-cal .hd b{flex:1 1 auto;text-align:right;padding-inline:4px}.os-cal .lv{order:0;margin:0}}
.os-cal .yr{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
@media (min-width:720px){.os-cal .yr{grid-template-columns:repeat(4,1fr)}}
.os-cal .yr button{padding:11px 10px;border-radius:16px;text-align:right;min-height:76px;background:var(--os-glass-solid);border:1px solid rgba(255,255,255,.85);box-shadow:var(--os-inset),0 8px 16px -12px rgba(30,41,59,.35);transition:transform .2s var(--os-spring)}
.os-cal .yr button.cur{box-shadow:var(--os-inset),0 0 0 2px var(--os-accent),0 10px 20px -12px var(--os-accent)}
html[data-os-theme="dark"] .os-cal .yr button{background:linear-gradient(160deg,rgba(255,246,232,.06),rgba(255,246,232,.015));border-color:transparent;box-shadow:inset 0 0 0 1px rgba(242,236,228,.09),0 10px 22px -14px #000}
html[data-os-theme="dark"] .os-cal .yr button.cur{box-shadow:inset 0 0 0 1px rgba(217,188,140,.55),0 0 22px -10px rgba(217,188,140,.5)}
.os-cal .yr button:active,.os-cal .mo button:active{transform:scale(.94)}
.os-cal .yr button b{display:block;font-size:14px}
html[data-os-theme="dark"] .os-cal .yr button b{font-weight:400}
.os-cal .yr button .n{font-size:12px;color:var(--os-ink2)}
.os-cal .yr button .bars{display:flex;gap:2px;margin-top:7px;height:6px}
.os-cal .yr button .bars i{flex:1;border-radius:2px;background:var(--os-accent);opacity:.18}
.os-cal .yr button .bars i.on{opacity:1;background:linear-gradient(180deg,var(--os-accent2),var(--os-accent))}
html[data-os-theme="dark"] .os-cal .yr button .bars i.on{background:var(--os-gold)}
.os-cal .mo{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.os-cal .mo .wd{font-size:11px;color:var(--os-ink3);text-align:center;font-weight:700;padding-bottom:2px}
html[data-os-theme="dark"] .os-cal .mo .wd{font-weight:400;color:var(--os-accent)}
.os-cal .mo button{aspect-ratio:1;max-height:62px;min-height:38px;max-width:100%;border-radius:13px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:14px;font-weight:600;transition:transform .2s var(--os-spring),background .2s}
html[data-os-theme="dark"] .os-cal .mo button{font-weight:300}
.os-cal .mo button.has{background:rgba(59,91,253,.07)}
html[data-os-theme="dark"] .os-cal .mo button.has{background:rgba(255,246,232,.045)}
.os-cal .mo button.today{background:linear-gradient(160deg,#5B7BFF,#3B5BFD);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 10px 18px -8px rgba(59,91,253,.7)}
html[data-os-theme="dark"] .os-cal .mo button.today{background:var(--os-gold);color:#15110B;box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 10px 20px -8px rgba(217,188,140,.5);font-weight:500}
.os-cal .mo button .dts{display:flex;gap:2px;min-height:5px}
.os-cal .mo button .dts i{width:5px;height:5px;border-radius:50%;background:var(--os-accent)}
.os-cal .mo button.today .dts i{background:currentColor}
.os-cal .dy{display:flex;flex-direction:column;gap:7px}
.os-cal .dy .it{display:flex;gap:10px;align-items:stretch;padding:11px 12px;border-radius:16px;width:100%;text-align:right;background:var(--os-glass-solid);border:1px solid rgba(255,255,255,.85);box-shadow:var(--os-inset),0 8px 18px -12px rgba(30,41,59,.3);
  animation:osrise .7s var(--os-out) both;animation-delay:calc(var(--ri,0) * 45ms)}
html[data-os-theme="dark"] .os-cal .dy .it{background:linear-gradient(160deg,rgba(255,246,232,.06),rgba(255,246,232,.015));border-color:transparent;box-shadow:inset 0 0 0 1px rgba(242,236,228,.09),0 10px 22px -14px #000}
.os-cal .dy .it .tm{width:46px;flex:none;font-size:12.5px;font-weight:700;color:var(--os-ink3);padding-top:1px}
html[data-os-theme="dark"] .os-cal .dy .it .tm{font-weight:400;color:var(--os-accent)}
.os-cal .dy .it .bar{width:4px;border-radius:4px;background:var(--c,var(--os-accent));flex:none;box-shadow:0 0 10px -2px var(--c,var(--os-accent))}
.os-cal .dy .it .tx{flex:1;min-width:0}.os-cal .dy .it .t1{display:block;font-weight:700;font-size:14px}.os-cal .dy .it .t2{display:block;font-size:12.5px;color:var(--os-ink2)}
html[data-os-theme="dark"] .os-cal .dy .it .t1{font-weight:500}
.os-cal .dy .it.done .t1{text-decoration:line-through;opacity:.6}
.os-cal .dy .os-loading{padding:30px 0}

/* ═════════ برگه، جست‌وجو، راهنما، توست ═════════ */
.os-ov{position:fixed;inset:0;z-index:70}
.os-scrim{position:absolute;inset:0;background:var(--os-scrim);backdrop-filter:blur(10px) saturate(1.2);-webkit-backdrop-filter:blur(10px) saturate(1.2);animation:osfade .3s}
html[data-os-theme="dark"] .os-scrim{backdrop-filter:none;-webkit-backdrop-filter:none}
@keyframes osfade{0%{opacity:0}}
.os-sheet{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom,0px) + 8px);width:min(calc(100% - 16px),560px);z-index:2;padding:10px 16px 20px;border-radius:32px;
  background:var(--os-glass-solid);border:1px solid rgba(255,255,255,.9);box-shadow:var(--os-inset),var(--os-shadow2);backdrop-filter:blur(30px) saturate(1.9);-webkit-backdrop-filter:blur(30px) saturate(1.9);
  animation:osup .5s var(--os-out);max-height:86vh;max-height:86dvh;overflow:auto;overscroll-behavior:contain}
html[data-os-theme="dark"] .os-sheet{background:linear-gradient(160deg,#2A221B,#110F0D 70%);border-color:transparent;box-shadow:var(--os-rim-d),inset 0 1px 0 rgba(217,188,140,.2),var(--os-shadow2);backdrop-filter:none;-webkit-backdrop-filter:none}
@keyframes osup{0%{transform:translate(-50%,110%)}}
.os-sheet .grab{width:40px;height:5px;border-radius:99px;background:rgba(120,128,145,.35);margin:0 auto 12px}
html[data-os-theme="dark"] .os-sheet .grab{background:rgba(217,188,140,.35)}
.os-sheet h3{margin:0 0 6px;font-size:18px;font-weight:700}
html[data-os-theme="dark"] .os-sheet h3{font-weight:300;font-size:20px}
.os-spot{position:absolute;left:50%;transform:translateX(-50%);top:calc(env(safe-area-inset-top,0px) + 14px);width:min(calc(100% - 24px),640px);z-index:2;animation:osdown .4s var(--os-out)}
@keyframes osdown{0%{transform:translate(-50%,-30px);opacity:0}}
.os-spot .box{display:flex;align-items:center;gap:8px;padding:0 16px;border-radius:20px;background:var(--os-glass-solid);border:1px solid rgba(255,255,255,.9);box-shadow:var(--os-inset),var(--os-shadow2)}
html[data-os-theme="dark"] .os-spot .box,html[data-os-theme="dark"] .os-spot .res{background:linear-gradient(160deg,#2A221B,#110F0D 70%);border-color:transparent;box-shadow:var(--os-rim-d),var(--os-shadow2)}
.os-spot .box svg{width:18px;height:18px;color:var(--os-ink3)}
.os-spot input{flex:1;min-width:0;border:0;background:none;min-height:54px;font-size:16px;outline:none;color:var(--os-ink)}
.os-spot .res{margin-top:10px;border-radius:22px;background:var(--os-glass-solid);border:1px solid rgba(255,255,255,.9);box-shadow:var(--os-inset),var(--os-shadow2);max-height:68vh;max-height:68dvh;overflow:auto;overscroll-behavior:contain}
.os-spot .res .os-li .os-icon{width:38px;height:38px}
.os-ask{padding:12px 14px;font-size:14px;line-height:1.9;white-space:pre-wrap}
.os-help-pin{position:fixed;z-index:95;border-radius:14px;box-shadow:0 0 0 3px var(--os-accent),0 0 0 9999px rgba(0,0,0,.45);pointer-events:none;transition:all .35s var(--os-ease)}
.os-help-tip{position:fixed;z-index:96;max-width:min(320px,calc(100% - 32px));padding:13px 15px;border-radius:18px;background:var(--os-glass-solid);border:1px solid rgba(255,255,255,.9);box-shadow:var(--os-inset),var(--os-shadow2);font-size:14px;line-height:1.85}
html[data-os-theme="dark"] .os-help-tip{background:linear-gradient(160deg,#2A221B,#110F0D 70%);border-color:transparent;box-shadow:var(--os-rim-d),var(--os-shadow2)}
.os-help-tip .os-btns{margin-top:8px}
.os-toast{position:fixed;top:calc(env(safe-area-inset-top,0px) + 14px);left:50%;z-index:120;transform:translateX(-50%);max-width:min(88%,480px);padding:10px 18px;border-radius:99px;
  background:rgba(15,23,42,.86);color:#fff;font-size:13.5px;font-weight:600;text-align:center;line-height:1.55;backdrop-filter:blur(20px) saturate(1.6);-webkit-backdrop-filter:blur(20px) saturate(1.6);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 14px 30px -12px rgba(15,23,42,.55);animation:ostoast 3s var(--os-ease) forwards;pointer-events:none}
html[data-os-theme="dark"] .os-toast{background:linear-gradient(160deg,#2E251C,#14110E);color:var(--os-ink);font-weight:400;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:inset 0 0 0 1px rgba(217,188,140,.3),0 18px 36px -12px #000}
@keyframes ostoast{0%{transform:translate(-50%,-20px) scale(.96);opacity:0}10%,85%{transform:translate(-50%,0);opacity:1}100%{transform:translate(-50%,-10px);opacity:0}}

/* ═════════ ویزاردِ پیکربندی (و۲۹–و۳۶): صفحه‌ی تمام‌سیاه/سفید، فید، نورِ گذرا ═════════ */
/* برگه و توستی که وسطِ پیکربندیِ اولیه باز می‌شوند، بالای صفحه‌ی پیکربندی */
.os-setup ~ .os-ov{z-index:160}.os-setup ~ .os-toast{z-index:190}
.os-setup{position:fixed;inset:0;z-index:150;display:grid;place-items:center;padding:24px max(16px,env(safe-area-inset-right,0px)) 24px max(16px,env(safe-area-inset-left,0px));animation:osfade .8s ease;overflow:auto}
.os-setup.k{background:#000;color:#F2ECE4}.os-setup.w{background:#fff;color:#0F172A}
.os-setup .sbox{position:relative;width:min(560px,100%);padding:26px 22px;border-radius:28px;overflow:hidden;animation:osrise2 .7s var(--os-ease)}
.os-setup.k .sbox{background:linear-gradient(160deg,rgba(44,36,28,.78),rgba(16,15,14,.7) 70%);box-shadow:inset 0 1px 0 rgba(255,244,226,.13),inset 0 0 0 1px rgba(255,236,210,.07)}
.os-setup.w .sbox{background:#F5F7FA;border:1px solid rgba(15,23,42,.06)}
@keyframes osrise2{0%{transform:translateY(18px);opacity:0}100%{transform:none;opacity:1}}
/* نورِ گذرا: دو بار و بعد ساکن (درسِ ⒺⓏ㉜) */
.os-setup .sbox::before{content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;
  background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.55) 46%,transparent 62%) no-repeat;background-size:260% 100%;animation:oslight 3.4s ease-in-out 2 both;mix-blend-mode:soft-light}
.os-setup.w .sbox::before{background-image:linear-gradient(115deg,transparent 30%,rgba(59,91,253,.18) 46%,transparent 62%);mix-blend-mode:normal}
@keyframes oslight{0%{background-position:130% 0}55%,100%{background-position:-40% 0}}
.os-setup h2{margin:0 0 6px;font-size:24px;font-weight:700;line-height:1.4;text-wrap:balance}
.os-setup.k h2{font-weight:300}
.os-setup p.l{margin:0 0 16px;opacity:.75}
.os-setup .snav{display:flex;gap:8px;margin-top:18px}
.os-setup .snav .os-btn{flex:1}
.os-setup .skip{opacity:.65;font-weight:700;font-size:14px;padding:8px}
.os-themes{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.os-themes button{border-radius:20px;padding:14px;text-align:center;font-weight:700;border:2px solid transparent;transition:transform .25s var(--os-spring),border-color .25s}
.os-themes button:active{transform:scale(.96)}
.os-themes button[aria-pressed="true"]{border-color:var(--os-accent)}
.os-themes .pv{height:120px;border-radius:14px;margin-bottom:8px;display:grid;place-items:center}
.os-themes .k .pv{background:radial-gradient(60% 60% at 80% 10%,rgba(242,200,140,.18),transparent 70%),#02090C;color:#D9BC8C;box-shadow:inset 0 0 0 1px rgba(217,188,140,.25)}
.os-themes .w .pv{background:radial-gradient(60% 60% at 85% 10%,rgba(127,227,212,.6),transparent 70%),radial-gradient(60% 60% at 10% 90%,rgba(156,194,255,.6),transparent 70%),#F4F8FC;color:#3B5BFD;box-shadow:inset 0 0 0 1px rgba(15,23,42,.08)}

/* ═════════ 📊 OS.viz — زبانِ گرافیکیِ «گزارش» (س۳۰۲-د · و۱۲۰ · os-core.js `OS.viz` · قرار: os-v2.md §۲.۷) ═════════
   📌 Ali: «کلِ این گرافیک باید در کلِ اپ‌ها، مدلِ شمارش و رنگ و لعاب‌ها، همه‌چی باید این‌جوری باشه»
   همان CSSِ خصوصیِ `apps/reports.js` (پیش‌تر `.rp-*`) حالا مشترک (`.osv-*`) · `--c` رنگِ هر مانیتور/پنل/کاشی (فقط توکن) ·
   🌡️ هر حرکت یک بار (ورود، رشدِ میله، کمان) · نقطه‌ی «زنده» سه تپش و بعد ساکن · اسکلت حداکثر ۶ دور (درسِ ⒺⓏ㉜). */
.osv-top{display:flex;align-items:center;gap:10px;margin:0 2px 12px}.osv-top b{flex:1;font-size:15px;font-weight:800}.osv-top small{display:block;font-size:12px;color:var(--os-ink2);font-weight:600}
html[data-os-theme="dark"] .osv-top b{font-weight:500}html[data-os-theme="dark"] .osv-top small{font-weight:300}
.osv-live{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:99px;background:color-mix(in srgb,var(--os-pos) 14%,transparent);color:var(--os-pos);font-size:11.5px;font-weight:800}
.osv-live i{width:7px;height:7px;border-radius:50%;background:currentColor;animation:osvPulse 1.8s ease-out 3}
.osv-wall{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}@media(min-width:760px){.osv-wall{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* مانیتور */
.osv-mon{--c:var(--os-accent);position:relative;display:flex;flex-direction:column;gap:2px;min-width:0;min-height:168px;padding:12px 12px 10px;border-radius:22px;overflow:hidden;text-align:right;isolation:isolate;
  background:linear-gradient(170deg,var(--os-card2),color-mix(in srgb,var(--c) 7%,var(--os-card)));border:1px solid var(--os-edge);backdrop-filter:var(--os-blur);-webkit-backdrop-filter:var(--os-blur);
  box-shadow:0 18px 34px -22px color-mix(in srgb,var(--c) 70%,transparent),var(--os-shadow);animation:osvUp .55s var(--os-ease) both;animation-delay:calc(var(--i,0) * 60ms);transition:transform .28s var(--os-spring)}
.osv-mon:active{transform:scale(.97)}@media(hover:hover){.osv-mon:hover{transform:translateY(-3px)}}
.osv-mon::before{content:"";position:absolute;z-index:-1;width:150px;height:150px;top:-70px;left:-50px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--c) 34%,transparent),transparent 70%);opacity:.9;pointer-events:none}
.osv-mon::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:linear-gradient(118deg,rgba(255,255,255,.28),rgba(255,255,255,0) 34%);mix-blend-mode:soft-light}
.osv-mon.wide{grid-column:1/-1;min-height:196px}
.osv-mh{display:flex;align-items:center;gap:8px;min-width:0}.osv-mh b{flex:1;min-width:0;font-size:13.5px;font-weight:800;color:var(--os-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-os-theme="dark"] .osv-mh b{font-weight:500}
.osv-ic{flex:none;width:30px;height:30px;border-radius:10px;display:grid;place-items:center;color:var(--os-btn-ink);background:linear-gradient(145deg,color-mix(in srgb,var(--c) 70%,var(--os-card2)),var(--c));box-shadow:0 8px 16px -8px var(--c)}.osv-ic svg{width:17px;height:17px}
.osv-go{flex:none;width:22px;height:22px;display:grid;place-items:center;color:var(--os-ink3)}.osv-go svg{width:15px;height:15px}
.osv-v{display:flex;align-items:baseline;gap:5px;margin-top:6px;line-height:1.15;white-space:nowrap;overflow:hidden}.osv-v b{font-size:clamp(22px,7vw,30px);font-weight:800;color:color-mix(in srgb,var(--c) 72%,var(--os-ink));letter-spacing:-.3px}.osv-v small{font-size:12px;color:var(--os-ink2);font-weight:600}
html[data-os-theme="dark"] .osv-v b{font-weight:500}
.osv-s{font-size:11.5px;color:var(--os-ink2);line-height:1.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.osv-z{flex:1;display:flex;align-items:flex-end;margin-top:6px;min-height:46px}.osv-z>svg{width:100%;height:54px;display:block;overflow:visible}.osv-mon.wide .osv-z>svg{height:78px}
.osv-zr{display:flex;align-items:center;gap:10px;width:100%}.osv-zr>svg{flex:none;width:58px;height:58px}
.osv-zr ul,.osv-lg{list-style:none;margin:0;padding:0;flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--os-ink2)}
.osv-zr li,.osv-lg li{display:flex;align-items:center;gap:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.osv-zr li i,.osv-lg li i{flex:none;width:7px;height:7px;border-radius:50%}
.osv-sk{display:block;height:10px;border-radius:6px;margin-top:8px;background:linear-gradient(90deg,var(--os-line),color-mix(in srgb,var(--os-ink3) 22%,transparent),var(--os-line));background-size:200% 100%;animation:osvSk 1.2s linear 6}.osv-sk.l{height:26px;width:55%}
.osv-err{display:block;font-size:12px;color:var(--os-ink3);margin-top:8px}
/* کاشیِ عدد و پنل */
.osv-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:4px}
.osv-st{--c:var(--os-accent);position:relative;display:flex;flex-direction:column;gap:1px;min-width:0;padding:12px 13px;border-radius:18px;overflow:hidden;background:linear-gradient(170deg,var(--os-card2),color-mix(in srgb,var(--c) 8%,var(--os-card)));border:1px solid var(--os-edge);box-shadow:var(--os-shadow);animation:osvUp .5s var(--os-ease) both;animation-delay:calc(var(--i,0) * 50ms)}
.osv-st::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,transparent,var(--c),transparent);opacity:.85}
.osv-st small{font-size:12px;color:var(--os-ink2);font-weight:600}.osv-st b{font-size:clamp(17px,5.2vw,22px);font-weight:800;color:color-mix(in srgb,var(--c) 70%,var(--os-ink));overflow-wrap:anywhere;line-height:1.5}.osv-st em{font-style:normal;font-size:11.5px;color:var(--os-ink2)}
html[data-os-theme="dark"] .osv-st b{font-weight:500}html[data-os-theme="dark"] .osv-st small{font-weight:300}
.osv-pn{--c:var(--os-accent);position:relative;margin-top:12px;padding:14px;border-radius:22px;background:var(--os-card);border:1px solid var(--os-edge);backdrop-filter:var(--os-blur);-webkit-backdrop-filter:var(--os-blur);box-shadow:var(--os-shadow);animation:osvUp .5s var(--os-ease) both}
.osv-pn>h4{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:14px;font-weight:800}.osv-pn>h4 .osv-ic{width:26px;height:26px;border-radius:9px}.osv-pn>h4 .osv-ic svg{width:15px;height:15px}
html[data-os-theme="dark"] .osv-pn>h4{font-weight:500}
.osv-note{font-size:12.5px;color:var(--os-ink2);line-height:1.8;margin:8px 2px 0}
.osv-area{width:100%;height:150px;display:block}.osv-area svg{width:100%;height:100%;display:block;overflow:visible}.osv-ax{display:flex;justify-content:space-between;font-size:10.5px;color:var(--os-ink3);margin-top:4px}
.osv-hb{display:flex;flex-direction:column;gap:10px}.osv-hb .r{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:4px 8px;align-items:center;font-size:13px}
.osv-hb .n{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;font-size:11px;font-weight:800;background:color-mix(in srgb,var(--bc) 16%,transparent);color:var(--bc)}
.osv-hb .l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--os-ink);font-weight:600}.osv-hb .v{color:var(--os-ink2);font-weight:800;font-size:12.5px}
.osv-hb .t{grid-column:2/-1;height:9px;border-radius:99px;background:var(--os-line);overflow:hidden}
.osv-hb .t i{display:block;height:100%;border-radius:inherit;background:linear-gradient(270deg,var(--bc),color-mix(in srgb,var(--bc) 55%,var(--os-card2)));box-shadow:0 0 12px -2px var(--bc);transform-origin:right;animation:osvGrow .8s var(--os-ease) both}
.osv-dn{display:flex;align-items:center;gap:14px}.osv-dn svg{flex:none;width:132px;height:132px}
.osv-dn ul{list-style:none;margin:0;padding:0;flex:1;min-width:0;display:flex;flex-direction:column;gap:7px;font-size:12.5px}
.osv-dn li{display:flex;align-items:center;gap:7px;min-width:0}.osv-dn li i{flex:none;width:11px;height:11px;border-radius:4px;box-shadow:0 0 8px -1px currentColor}.osv-dn li span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.osv-dn li b{font-weight:800}
@media (max-width:360px){.osv-dn{flex-direction:column;align-items:stretch}.osv-dn svg{align-self:center}}
.osv-arc{transition:stroke-dashoffset 1s var(--os-ease)}
.osv-ring{display:flex;align-items:center;gap:14px}.osv-ring svg{flex:none;width:96px;height:96px}.osv-ring p{margin:0;font-size:13px;color:var(--os-ink2);line-height:1.8}
.osv-pre{margin:0 0 10px}
@keyframes osvUp{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}@keyframes osvGrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes osvPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,currentColor 60%,transparent)}100%{box-shadow:0 0 0 8px transparent}}@keyframes osvSk{to{background-position:-200% 0}}
@keyframes osvRise{from{opacity:0;transform:scaleY(.15)}to{opacity:1;transform:none}}
.osv-line,.osv-fill{transform-box:view-box;transform-origin:50% 100%;animation:osvRise .9s var(--os-ease) both}.osv-fill{animation-delay:.08s}
html[data-os-theme="dark"] .osv-mon::after{opacity:.4}

/* ═════════ همان زبان روی اجزای عمومیِ پوسته (و۱۲۰ «در کلِ اپ‌ها») — بی‌تغییرِ هیچ اپی ═════════
   کارت: هاله‌ی رنگیِ گوشه‌ی مانیتور (`--c`، پیش‌فرض رنگِ پوسته) · سرخطِ بخش: نوارِ رنگیِ درخشان مثلِ آیکونِ پنل · عددِ `.os-kv b` و
   `.os-li .end`: رنگِ عددِ مانیتور و شمارشِ خودکار (os-core.js `vcount`) · بارگذاری و حالتِ خالی: هاله‌ی نرم پشتِ حلقه/نشان. */
.os-card{background:radial-gradient(170px 150px at 0% 0%,color-mix(in srgb,var(--c,var(--os-accent)) 11%,transparent),transparent 72%),var(--os-glass)}
html[data-os-theme="dark"] .os-card{background:radial-gradient(170px 150px at 0% 0%,color-mix(in srgb,var(--c,var(--os-accent)) 9%,transparent),transparent 72%),var(--os-card)}
html:not([data-os-theme="dark"]) .os-card.os-domino{background:radial-gradient(90% 120% at 100% 0%,rgba(127,227,212,.32),rgba(127,227,212,0) 60%),var(--os-glass)}
html[data-os-theme="dark"] .os-card.os-domino{background:linear-gradient(160deg,rgba(64,50,34,.82),rgba(18,16,14,.74) 70%)}
.os-sec{position:relative;padding-inline-start:11px}
.os-sec::before{content:"";display:block!important;position:absolute;inset-inline-start:0;top:50%;width:4px;height:14px;margin:-7px 0 0!important;border-radius:4px;background:linear-gradient(180deg,var(--os-accent2),var(--os-accent));box-shadow:0 0 10px -1px var(--os-accent)}
html[data-os-theme="dark"] .os-sec::before{width:4px;height:14px;background:var(--os-gold);box-shadow:0 0 10px -2px rgba(217,188,140,.6)}
.os-kv b,.os-li .end{color:color-mix(in srgb,var(--c,var(--os-accent)) 58%,var(--os-ink));font-variant-numeric:tabular-nums}
.os-loading .os-ring{filter:drop-shadow(0 10px 18px color-mix(in srgb,var(--os-accent) 30%,transparent))}
.os-empty .em{position:relative}
.os-empty .em::before{content:"";position:absolute;inset:-18px;z-index:-1;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--os-accent) 22%,transparent),transparent 68%)}
.os-empty{isolation:isolate}


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

/* ── s303 help tour ── (و۱۴۰ · تورِ «؟» در هر اپ: پرده، شمارنده، قبلی/بعدی، فهرستِ اپ‌ها در تهِ تورِ خانه) */
.os-help-veil{position:fixed;inset:0;z-index:94;background:transparent;transition:background .3s var(--os-ease)}
.os-help-veil.dim{background:rgba(0,0,0,.45)}
.os-help-tip{transition:top .3s var(--os-ease),left .3s var(--os-ease)}
.os-help-tip.mid{max-width:min(360px,calc(100% - 32px))}
.os-help-tip.apps{width:min(400px,calc(100% - 32px));max-width:none;max-height:min(78vh,640px);display:flex;flex-direction:column}
.os-help-hd{display:flex;align-items:center;gap:10px;margin-bottom:6px;min-height:20px}
.os-help-hd b{flex:1;min-width:0;font-size:15.5px;font-weight:800}
.os-help-hd .os-icon{flex:none}
.os-help-n{flex:none;margin-inline-start:auto;padding:1px 9px;border-radius:999px;background:var(--os-chip);color:var(--os-ink2);font-size:11.5px;font-weight:700}
.os-help-sub{margin:0 0 6px;font-size:12.5px;color:var(--os-ink2)}
.os-help-apps{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;margin:0 -8px;border-radius:14px}
.os-help-apps .os-li{padding:9px 8px}
.os-help-apps .os-li .t2{display:block;font-size:12px;line-height:1.7;color:var(--os-ink2);white-space:normal}
.os-help-tip .os-btns{flex-wrap:wrap}
