/* ۱۰.۲۲۹ — نشانهٔ «style.css رسید» برای index.html */
:root { --fs-css-ok: 1; }
/* ۱۰.۲۳۰ — فونت ایران (با مجوز امیر) — اول IRAN، اگر نرسید Vazirmatn */
@font-face { font-family: IRAN; src: url(/fonts/IRAN_SemiBold.woff2) format("woff2"), url(/fonts/IRAN_SemiBold.woff) format("woff"); font-weight: 600; font-display: swap; }
@font-face { font-family: IRAN; src: url(/fonts/IRAN.woff2) format("woff2"), url(/fonts/IRAN.woff) format("woff"); font-weight: 400; font-display: swap; } @font-face { font-family: Vazirmatn; src: url(/fonts/Vazirmatn-Regular.woff2) format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: IRAN; src: url(/fonts/IRANBold.woff2) format("woff2"), url(/fonts/IRANBold.woff) format("woff"); font-weight: 700; font-display: swap; } @font-face { font-family: Vazirmatn; src: url(/fonts/Vazirmatn-Bold.woff2) format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: IRAN; src: url(/fonts/IRANBlack.woff2) format("woff2"), url(/fonts/IRANBlack.woff) format("woff"); font-weight: 900; font-display: swap; } @font-face { font-family: Vazirmatn; src: url(/fonts/Vazirmatn-Black.woff2) format("woff2"); font-weight: 900; font-display: swap; }

:root {
  --ink: #17181A; --paper: #F3F1EC; --card: #FFFFFF; --line: #E2DFD6;
  --gold: #D9A421; --muted: #8A8A85; --sub: #55544F; --danger: #B3391F; --warnbg: #FCF3DE;
  --field: #FBFAF7; --chip: #F0EEE7; --line2: #C9C6BC;
  --good: #2C7A4B; --goodbg: #E8F4EC; --badbg: #FBE9E4;
  --topbg: #17181A; --topink: #F3F1EC;
  --r: 12px;
}
/* حالت تیره — فقط متغیرها عوض می‌شوند، نه قاعده‌ها.
 * شب‌ها و در آشپزخانه کم‌نور، صفحه روشن چشم را می‌زند. */
body.dark {
  --ink: #ECEAE4; --paper: #14151A; --card: #1C1E24; --line: #2E313A;
  --muted: #8E9099; --sub: #B4B6BE; --warnbg: #3A2F16;
  --field: #23262E; --chip: #2A2D36; --line2: #3A3D47;
  --good: #6FCF97; --goodbg: #1D3327; --danger: #F08C74; --badbg: #3A211B;
  --topbg: #0F1014; --topink: #ECEAE4;
  color-scheme: dark;
}
* { box-sizing: border-box; margin: 0; padding: 0; -webkit-tap-highlight-color: transparent; }
body { font-family: IRAN, Vazirmatn, Tahoma, sans-serif; background: var(--paper); color: var(--ink); font-size: 15px; line-height: 1.6; }
.boot { text-align: center; padding: 60px 20px; color: var(--muted); }
button, input, select, textarea { font-family: inherit; font-size: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }

/* ---------- ورود ---------- */
/* صفحه ورود — سفید، با خوش‌آمد و لوگوی همه مجموعه‌ها در پایین.
 * عمداً به حالت تیره کاری ندارد: در ورودی، برند باید یک‌شکل دیده شود. */
.login { min-height: 100dvh; display: grid; grid-template-rows: 1fr auto; justify-items: center;
  background: #FFFFFF; padding: 24px 24px 12px; }
.login-box { width: 100%; max-width: 360px; text-align: center; align-self: center; }
.shield { width: 66px; height: 72px; background: #17181A; color: #F3F1EC; font-weight: 900; font-size: 26px;
  display: grid; place-items: center; margin: 0 auto 14px; letter-spacing: -1px;
  clip-path: polygon(0 0, 100% 0, 100% 68%, 50% 100%, 0 68%); }
.login h1 { color: #17181A; font-size: 20px; font-weight: 900; }
.login .welcome { color: #55544F; font-size: 14px; font-weight: 700; margin: 4px 0 2px; }
.login p { color: #8A8A85; font-size: 12.5px; margin-bottom: 22px; }
.login input { width: 100%; background: #F7F6F2; border: 1px solid #D8D5CC; color: #17181A;
  border-radius: 10px; padding: 13px 14px; margin-bottom: 10px; }
.login input::placeholder { color: #9A9992; }
.login input:focus { outline: none; border-color: var(--gold); }
.login button { width: 100%; background: var(--gold); color: #17181A; border: 0; border-radius: 10px;
  padding: 13px; font-weight: 900; font-size: 16px; }
.login button:disabled { opacity: .55; }
.login .err { color: #B3391F; font-size: 13px; margin-bottom: 10px; text-align: right; }
.login .vtag { color: #8A8A85; }
.login .vtag a { color: #8A8A85; }
.loginlogos { display: flex; flex-wrap: wrap; justify-content: center; align-items: center;
  gap: 24px 30px; padding: 30px 8px 18px; max-width: 900px; }
.loginlogos img { height: 54px; width: auto; max-width: 172px; object-fit: contain;
  filter: grayscale(6%); opacity: .96; }
.loginlogos img.big { height: 68px; }
@media (max-width: 520px) {
  .loginlogos { gap: 18px 24px; max-width: 100%; }
  .loginlogos img { height: 44px; max-width: 132px; }
  .loginlogos img.big { height: 54px; }
}

/* ---------- چیدمان ---------- */
.top { background: var(--ink); color: var(--paper); padding: 12px 16px; display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
/* بلوک برند دکمه خانه است */
.brand.homebtn { border: 0; padding: 0; text-align: right; color: inherit; font: inherit; cursor: pointer; background: transparent; }
.brand.homebtn:active { opacity: .75; }
.selrow { display: flex; gap: 8px; align-items: center; min-width: 0; margin-inline-start: auto; }
.iconrow { display: flex; gap: 7px; align-items: center; flex: none; }
.iconrow .iconbtn, .iconrow .drawerbtn, .iconrow .bell { height: 36px; display: inline-flex; align-items: center; }
@media (max-width: 720px) {
  /* ردیف اول: برند + چهار آیکن؛ ردیف دوم: شعبه و ماه تمام‌عرض و خوانا */
  .iconrow { order: 2; margin-inline-start: auto; }
  .selrow { order: 3; width: 100%; margin-inline-start: 0; }
  .selrow .msel { flex: 1; width: auto; max-width: none; min-width: 0; }
}
.brand { display: flex; gap: 10px; align-items: center; min-width: 0; overflow: hidden; }
.brand .shield { width: 36px; height: 40px; font-size: 15px; margin: 0; flex: none; }
/* بدون این min-width، بلوک نام روی موبایل جمع نمی‌شود و از کادر بیرون می‌زند روی انتخاب‌گر شعبه */
.brand > div { min-width: 0; overflow: hidden; }
.bname { font-weight: 900; font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bsub { font-size: 11px; color: #B8B6AE; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.msel { background: #26272A; color: var(--paper); border: 1px solid #3C3D40; border-radius: 8px; padding: 7px 9px; font-size: 13px; }
/* فهرست بازشوی select را سیستم‌عامل روی پس‌زمینه سفید می‌کشد و رنگ متنِ
 * روشنِ بالا را به ارث می‌برد؛ نتیجه‌اش سفید روی سفید بود. رنگ گزینه‌ها
 * جداگانه تعریف می‌شود تا در هر سیستم‌عاملی خوانا بماند. */
.msel option, .msel optgroup { background-color: var(--card); color: #17181A; }
.msel optgroup { font-weight: 900; }
.msel option:checked { background-color: #E9E6DD; }
.iconbtn { background: transparent; border: 1px solid #3C3D40; color: #CFCDC5; border-radius: 8px; padding: 6px 11px; font-size: 13px; }

.tabs { background: var(--ink); display: flex; gap: 6px; padding: 0 12px 11px; overflow-x: auto; scrollbar-width: none; }
.tabs::-webkit-scrollbar { display: none; }
.tabs button { white-space: nowrap; border: 1px solid #3A3B3E; background: transparent; color: #CFCDC5;
  border-radius: 999px; padding: 7px 14px; font-size: 13px; display: flex; gap: 6px; align-items: center; }
.tabs button.on { background: var(--gold); border-color: var(--gold); color: var(--ink); font-weight: 900; }
.cnt { background: #3A3B3E; border-radius: 999px; padding: 0 7px; font-size: 11px; font-weight: 700; }
.tabs button.on .cnt { background: rgba(0,0,0,.17); }

.screen { max-width: 880px; margin: 0 auto; padding: 18px 14px 70px; }
.fhead { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 8px; margin-bottom: 6px; }
.fhead h2 { font-size: 19px; font-weight: 900; }
.code { font-size: 11px; color: var(--muted); border: 1px solid var(--line); border-radius: 5px; padding: 1px 7px; }
.ftotal { font-size: 13px; color: var(--sub); }
.ftotal b { color: var(--ink); }
.hint { font-size: 12.5px; color: var(--muted); margin-bottom: 12px; }

/* ---------- فرم ---------- */
.entry { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: 14px; margin-bottom: 18px; }
.grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.f { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.f > span { font-size: 11.5px; font-weight: 700; color: var(--sub); }
.f input, .f select, .f textarea { border: 1px solid var(--line); border-radius: 9px; padding: 10px;
  background: var(--field); width: 100%; font-size: 15px; }
.f textarea { resize: vertical; min-height: 46px; }
.f.w2 { grid-column: span 2; } .f.w3 { grid-column: span 3; } .f.w4 { grid-column: span 4; }
.acts { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
.btn { background: var(--ink); color: var(--card); border: 0; border-radius: 10px; padding: 11px 24px; font-weight: 900; }
.btn:disabled { opacity: .5; }
.btn.ghost { background: transparent; border: 1px solid var(--line2); color: var(--sub); font-weight: 700; }
.err { color: var(--danger); font-size: 13px; margin-top: 9px; }
.ok { color: var(--good); font-size: 13px; margin-top: 9px; }

/* ---------- فهرست ---------- */
.list { display: flex; flex-direction: column; gap: 8px; }
.ticket { background: var(--card); border: 1px solid var(--line); border-right: 4px solid var(--gold);
  border-radius: 10px; padding: 10px 14px; }
.tmeta { display: flex; justify-content: space-between; gap: 8px; font-size: 12px; color: var(--muted); }
.tmoney { font-weight: 900; color: var(--ink); white-space: nowrap; }
.tline { font-size: 14.5px; font-weight: 700; margin: 2px 0; }
.tnotes { font-size: 12.5px; color: var(--sub); }
.tacts { display: flex; gap: 6px; justify-content: flex-end; margin-top: 6px; }
.mini { font-size: 12px; border: 1px solid var(--line); background: var(--field); border-radius: 7px; padding: 4px 11px; color: var(--sub); }
.mini.danger:hover { border-color: var(--danger); color: var(--danger); }
/* ۱۰.۱۳۵ — دکمه‌ای که «نوبت شما» است، دیده شود */
.mini.primary { background: #2F7A55; border-color: #2F7A55; color: #fff; font-weight: 700; }
.empty { text-align: center; color: var(--muted); font-size: 13.5px; padding: 34px 14px;
  border: 1px dashed var(--line2); border-radius: var(--r); background: var(--field); }

/* ---------- داشبورد ---------- */
.hero { background: var(--ink); color: var(--paper); border-radius: 16px; padding: 20px; margin-bottom: 14px; }
.hlabel { font-size: 12.5px; color: #B8B6AE; }
.hnum { font-size: clamp(28px, 8vw, 38px); font-weight: 900; color: var(--gold); margin: 4px 0; }
.hnum small { font-size: 14px; color: #B8B6AE; font-weight: 700; }
.hsub { font-size: 12px; color: var(--muted); }
.cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: 14px; }
.card { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: 12px 14px; }
.ct { font-size: 12px; color: var(--muted); font-weight: 700; }
.cv { font-size: 18px; font-weight: 900; margin: 2px 0; word-break: break-all; }
.cv small { font-size: 11px; color: var(--muted); }
.cn { font-size: 11.5px; color: var(--muted); }
.warn { background: var(--warnbg); border: 1px solid #E8CE93; border-radius: 10px; padding: 10px 14px; font-size: 13px; margin-bottom: 14px; }
.panel { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: 14px; margin-bottom: 14px; }
.panel h3 { font-size: 14px; font-weight: 900; margin-bottom: 12px; }
.bars { display: flex; align-items: flex-end; gap: 3px; height: 110px; }
.barcol { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; gap: 3px; }
.bar { width: 100%; max-width: 24px; background: var(--ink); border-radius: 4px 4px 0 0; min-height: 3px; }
.barcol span { font-size: 10px; color: var(--muted); }
.hrow { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.hname { width: 128px; flex-shrink: 0; font-size: 12.5px; font-weight: 700; }
.htrack { flex: 1; background: var(--chip); border-radius: 999px; height: 12px; overflow: hidden; }
.hfill { height: 100%; background: var(--ink); border-radius: 999px; }
.hfill.gold { background: var(--gold); }
.hval { min-width: 62px; text-align: left; font-size: 12px; font-weight: 900; }
.exports { display: flex; flex-wrap: wrap; gap: 7px; }

/* ---------- کاربران ---------- */
.utable { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.utable th { text-align: right; font-size: 11.5px; color: var(--muted); padding: 6px 8px; border-bottom: 1px solid var(--line); }
.utable td { padding: 9px 8px; border-bottom: 1px solid var(--chip); }
.pill { font-size: 11px; font-weight: 700; border-radius: 999px; padding: 2px 9px; background: var(--chip); color: var(--sub); }
.pill.manager { background: var(--ink); color: var(--card); }
.pill.chef { background: var(--gold); color: var(--ink); }
.off { opacity: .45; }

.toast { position: fixed; bottom: 18px; left: 50%; transform: translateX(-50%); background: var(--ink);
  color: var(--paper); padding: 10px 22px; border-radius: 999px; font-size: 13.5px; z-index: 99;
  box-shadow: 0 6px 22px rgba(0,0,0,.28); }
.offline { position: sticky; top: 0; z-index: 50; background: var(--danger); color: var(--card); text-align: center; font-size: 12.5px; padding: 5px; }

@media (max-width: 640px) {
  .grid { grid-template-columns: repeat(2, 1fr); }
  .f.w3, .f.w4 { grid-column: span 2; }
  .cards { grid-template-columns: 1fr; }
  .hname { width: 96px; }
}

/* ---------- ابزار جستجوی کاربران ---------- */
.usertools { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 12px; }
.usearch { flex: 1 1 200px; min-width: 0; border: 1px solid var(--line); border-radius: 9px;
  padding: 9px 12px; background: var(--field); font-size: 14px; }
.ubfilter { background: var(--field); color: var(--ink); border: 1px solid var(--line); border-radius: 9px;
  padding: 9px 10px; font-size: 13px; max-width: 190px; }
.ucount { font-size: 12px; color: var(--muted); white-space: nowrap; }

/* ---------- تب شعبه در شبکه دسترسی ---------- */
.permtabs { display: flex; gap: 6px; flex-wrap: wrap; margin: 6px 0 12px; }
.permtabs .mini { border-radius: 999px; padding: 6px 13px; display: inline-flex; align-items: center; gap: 5px; }
.permtabs .mini.on { background: var(--ink); color: var(--card); border-color: var(--ink); font-weight: 900; }
.permtabs .pcount { background: var(--gold); color: var(--ink); font-weight: 900; }
.permtabs .mini.on .pcount { background: var(--gold); color: var(--ink); }

/* ---------- شبکه تیک دسترسی ---------- */
.permbox { border-top: 1px solid var(--line); margin-top: 14px; padding-top: 12px; }
.presets { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 10px; }
.plabel { font-size: 12px; font-weight: 700; color: var(--sub); }
.permtable { width: 100%; border-collapse: collapse; }
.permtable th { font-size: 11.5px; color: var(--sub); padding: 6px 4px; border-bottom: 1px solid var(--line); text-align: center; }
.permtable th:first-child { text-align: right; }
.permtable td { padding: 8px 4px; text-align: center; border-bottom: 1px solid var(--chip); }
.permtable td.fname { text-align: right; font-size: 13px; font-weight: 700; line-height: 1.35; }
.permtable td.fname small { display: block; font-size: 10.5px; color: var(--muted); font-weight: 400; }
.permtable input[type=checkbox] { width: 20px; height: 20px; accent-color: var(--gold); cursor: pointer; }
.colall { display: block; margin: 4px auto 0; font-size: 10.5px; padding: 1px 8px; }
.muline { display: flex; gap: 8px; align-items: center; margin-top: 12px; font-size: 13px; font-weight: 700; }
.muline input { width: 20px; height: 20px; accent-color: var(--gold); }
.caphints { margin-top: 10px; font-size: 11.5px; color: var(--muted); line-height: 1.7; }

/* ---------- کارت کاربر ---------- */
.ucard { border: 1px solid var(--line); border-radius: 11px; padding: 11px 13px; margin-bottom: 9px; background: var(--field); }
.ucard.off { opacity: .5; }
.utop { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; align-items: flex-start; }
.uname { font-size: 14.5px; font-weight: 900; }
.uuser { font-size: 12px; color: var(--muted); text-align: right; }
.usum { font-size: 12px; color: var(--sub); margin-top: 6px; }
.editbox { margin-top: 10px; border-top: 1px dashed var(--line2); }
.vtag { margin-top: 16px; font-size: 11.5px; color: #6A6A66; }
.vtag a { color: var(--muted); }

/* ---------- انتخاب شعبه ---------- */
.bsel { max-width: 150px; }

/* ---------- ویرایشگر داده پایه ---------- */
.mbox { margin-top: 4px; }
.mth { font-size: 13.5px; font-weight: 900; margin: 14px 0 8px; }
.mtable { display: flex; flex-direction: column; gap: 5px; overflow-x: auto; }
.mrow { display: grid; gap: 5px; align-items: center; min-width: 460px; }
.mrow input, .mrow select { border: 1px solid var(--line); border-radius: 7px; padding: 7px 8px;
  background: var(--field); font-size: 13.5px; width: 100%; font-family: inherit; }
.mrow.mhead { font-size: 11.5px; font-weight: 700; color: var(--sub); min-width: 460px; }
.mrow > .mlbl { display: none; }
.mrow.mhead span { padding-right: 3px; }
/* ۱۰.۷.۲ — جدول کادردار (گزارش بدهکاران): خط دور و بین ستون‌ها، مثل برگهٔ چاپی */
.mtable.boxed { gap: 0; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.mtable.boxed .mrow { gap: 0; border-bottom: 1px solid var(--line); border-radius: 0; }
.mtable.boxed .mrow:last-child { border-bottom: 0; }
.mtable.boxed .mrow > * { padding: 7px 9px; border-inline-start: 1px solid var(--line); min-height: 100%; }
.mtable.boxed .mrow > *:last-child { border-inline-start: 0; }
.mtable.boxed .mrow.mhead { background: var(--field); color: var(--ink); }
.mtable.boxed .mrow.mhead span { padding-right: 9px; }
.mtable.boxed .mrow.mdet { background: var(--field); }
/* ۱۰.۷.۳ — «الان ندارم» روی فیلدهای پرونده */
.pdefer { margin-top: 2px; background: none; border: 1px dashed var(--line2); color: var(--sub);
  border-radius: 8px; padding: 4px 9px; font: inherit; font-size: 11.5px; cursor: pointer; align-self: flex-start; }
.pdefer.on { border-style: solid; border-color: var(--good); color: var(--good); font-weight: 700; }
.pfield.deferred input, .pfield.deferred select, .pfield.deferred textarea { opacity: .5; }
.warn.alert.pnagbad { background: var(--badbg); border-color: var(--danger); }
.pendbox .f i { font-style: normal; font-size: 11.5px; }
.permbranch { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; margin-bottom: 10px; background: var(--field); }
.pbname { font-size: 13px; font-weight: 900; margin-bottom: 8px; }
.phrow { display: flex; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--chip); font-size: 13px; }
.phrow:last-child { border: 0; }
.phrow b { flex-shrink: 0; width: 56px; }
.warn.alert { background: var(--badbg); border-color: #E8B4A5; }

/* ---------- فیلد محاسبه‌شده ---------- */
input.auto { background: var(--chip); font-weight: 900; color: var(--sub); }
input.auto.bad { background: var(--badbg); color: var(--danger); border-color: #E8B4A5; }
input.auto.good { background: var(--goodbg); color: var(--good); border-color: #A9D3B9; }

/* ---------- لیست خرید ---------- */
.prtag { font-size: 11px; font-weight: 900; border-radius: 999px; padding: 2px 10px; }
.prtag.pending  { background: #FCF3DE; color: #854F0B; }
.prtag.approved { background: #E6F1FB; color: #185FA5; }
.prtag.done     { background: var(--goodbg); color: var(--good); }
.prtag.rejected { background: var(--badbg); color: #8C2C18; }
.ticket.pr-approved { border-right-color: #378ADD; }
.ticket.pr-done     { border-right-color: var(--good); }
.ticket.pr-rejected { border-right-color: #B3391F; opacity: .7; }
.pritems { margin-top: 8px; border-top: 1px dashed var(--line2); padding-top: 8px; }
.pritem { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 6px 0; border-bottom: 1px solid var(--chip); }
.pritem:last-child { border: 0; }
.piname { flex: 1; min-width: 140px; font-size: 13.5px; }
.piname small { color: var(--muted); font-weight: 400; }
.pibtns { display: flex; gap: 5px; }
.mini.pick { border-radius: 999px; padding: 4px 12px; }
.mini.pick.on { background: #17181A; color: var(--card); border-color: #17181A; }
.mini.pick.danger.on { background: var(--danger); border-color: var(--danger); color: var(--card); }
.pistate { font-size: 11.5px; font-weight: 700; border-radius: 999px; padding: 2px 10px; background: var(--chip); color: var(--sub); }
.pistate.bought { background: var(--goodbg); color: var(--good); }
.pistate.missed { background: var(--badbg); color: #8C2C18; }
.prreason, .prdetail { font-family: inherit; font-size: 12.5px; border: 1px solid var(--line);
  border-radius: 7px; padding: 5px 8px; background: var(--field); flex: 1; min-width: 130px; }
.missrow, .bkrow { display: flex; justify-content: space-between; gap: 10px; align-items: center;
  padding: 8px 0; border-bottom: 1px solid var(--chip); }
.missrow:last-child, .bkrow:last-child { border: 0; }
.missname { font-size: 13.5px; font-weight: 700; }
.misstag { font-size: 11.5px; color: var(--muted); white-space: nowrap; }
.buyerline { border-top: 1px dashed var(--line2); padding-top: 9px; margin-top: 4px; }
.buyerline small { color: var(--muted); font-weight: 400; }
.pbname small { color: var(--muted); font-weight: 400; font-size: 11.5px; }
pre.cmd { background: #17181A; color: #F3F1EC; border-radius: 8px; padding: 10px 12px; font-size: 12px;
  direction: ltr; text-align: left; overflow-x: auto; margin: 8px 0; font-family: var(--font-mono, monospace); }
.nodash { color: var(--line2); font-size: 13px; }

/* ---------- چک‌لیست ---------- */
.clbox { margin-top: 12px; border-top: 1px solid var(--line); }
.clrow { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: space-between;
  padding: 9px 2px; border-bottom: 1px solid var(--chip); }
.cltext { font-size: 13.5px; flex: 1; min-width: 160px; line-height: 1.5; }
.clbtns { display: flex; gap: 5px; flex-shrink: 0; }
.clpick.on { background: var(--goodbg); border-color: #A9D3B9; color: var(--good); font-weight: 900; }
.clpick.danger.on { background: var(--badbg); border-color: #E8B4A5; color: var(--danger); }
.clnote { width: 100%; border: 1px solid var(--line); border-radius: 7px; padding: 6px 9px;
  font-size: 13px; background: var(--field); font-family: inherit; }
.tmoney.bad { color: var(--danger); }
.muline.sub { font-size: 12px; font-weight: 700; margin: 0 0 8px; color: var(--sub); }
.muline.sub input { width: 17px; height: 17px; }
.missrow { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start;
  padding: 9px 2px; border-bottom: 1px solid var(--chip); font-size: 13.5px; }
.missrow:last-child { border: 0; }
.missrow.late { background: #FCF3DE; border-radius: 7px; padding: 9px 8px; }
.diffbad { color: var(--danger); font-weight: 900; }
.diffover { color: var(--good); font-weight: 900; }
/* ۱۰.۶ — ارزان‌ترین سبز، کارت هشدار */
.okgreen { color: var(--good); font-weight: 900; }
.card.warncard { border-color: var(--danger); }
.card.warncard .cv { color: var(--danger); }

/* ---------- کنترل کیفیت کالای ورودی ---------- */
.qcbox { width: 100%; display: flex; flex-direction: column; gap: 6px; margin-top: 6px;
  border-top: 1px dashed var(--line2); padding-top: 8px; }
.qcissues { display: flex; flex-wrap: wrap; gap: 5px; }
.qcissues .mini.on { background: var(--badbg); border-color: #E8B4A5; color: var(--danger); font-weight: 900; }
.qcphotos { display: flex; flex-wrap: wrap; gap: 6px; }
.qcthumb { width: 62px; height: 62px; object-fit: cover; border-radius: 8px;
  border: 1px solid var(--line); cursor: pointer; }
.qcfile { font-size: 12px; }
.urow { display: flex; justify-content: space-between; gap: 10px; padding: 7px 0;
  border-bottom: 1px solid var(--chip); font-size: 13.5px; }
.urow:last-child { border: 0; }
.uk { color: var(--sub); font-weight: 700; }
.ulog { margin-top: 10px; background: var(--field); border: 1px solid var(--line);
  border-radius: 9px; padding: 10px; }
.uline { font-size: 12.5px; padding: 3px 0; }

/* ---------- شیفت، غذا، KPI ---------- */
.poshead { background: var(--chip); border-radius: 7px; padding: 6px 4px; font-size: 12px; margin-top: 8px; }
.poshead small { color: var(--muted); font-weight: 400; }
.poshead span { text-align: center; }
.short { color: var(--danger); font-weight: 900; }
.over  { color: #B07A12; font-weight: 900; }
.okc   { color: var(--good); font-weight: 900; }
.posname { }
/* غذای پرسنل — تیک «می‌خواهم»، روزی یک غذا */
.mealwrap { display: block; }        /* برخلاف mtable اسکرول افقی لازم ندارد */
.mealsel { display: flex; flex-wrap: wrap; gap: 6px; }
/* گرید دو ستونه (تیک + متن)؛ با فلکس، ستون متن تا عرض صفر جمع می‌شد */
.mealday { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 7px;
  align-items: start; padding: 7px 9px; border: 1px solid var(--line); border-radius: 9px;
  background: var(--field); min-width: 132px; cursor: pointer; }
.mealday input[type="checkbox"] { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--ink); }
.mealday > span { display: block; overflow-wrap: break-word; }
.mealday b { display: block; font-size: 12.5px; }
.mealday small { display: block; font-size: 11px; color: var(--sub); }
.mealday small.muted { color: var(--muted); }
.mealday.off { opacity: .45; cursor: default; }
.mealday.locked { background: var(--chip); border-style: dashed; cursor: default; }

/* نمره‌دهی اجباری به غذای هفته گذشته */
.gateon { border: 1px solid #E8B4A5; background: var(--badbg); }
.raterow { padding: 9px 0; border-bottom: 1px solid var(--line); }
.raterow:last-child { border-bottom: none; }
.ratehead { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.ratedish { font-size: 12.5px; color: var(--sub); }
.ratestars { display: flex; gap: 5px; margin: 7px 0; }
.starbtn { width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 8px;
  background: var(--field); color: var(--ink); font-family: inherit; font-size: 13px;
  font-weight: 900; cursor: pointer; }
.starbtn.on { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.raterow input { width: 100%; border: 1px solid var(--line); border-radius: 8px;
  padding: 8px 10px; font-family: inherit; font-size: 13px; background: var(--card); color: var(--ink); }
.raterow input.needed { border-color: var(--danger); background: var(--badbg); }
.diffline { margin-top: 10px; padding: 9px 12px; border-radius: 9px; font-size: 13.5px; font-weight: 700; }
.diffline.ok  { background: var(--goodbg); color: var(--good); border: 1px solid #A9D3B9; }
.diffline.bad { background: var(--badbg); color: var(--danger); border: 1px solid #E8B4A5; }
.chname { font-size: 13px; font-weight: 700; padding-top: 8px; }
.ticket.od { border-right-color: var(--danger); }

/* ---------- آموزش و توجیه ---------- */
.principle { background: #17181A; color: #F3F1EC; border-radius: 12px; padding: 14px 16px; margin-bottom: 12px; }
.principle b { font-size: 15px; color: var(--gold); }
.principle .tnotes { color: #B8B6AE; }
.steps { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.step { flex: 1; min-width: 150px; background: var(--card); border: 1px solid var(--line);
  border-radius: 10px; padding: 9px 11px; font-size: 12.5px; }
.step b { font-size: 13px; }
.whybox { width: 100%; border: 1px solid var(--line); border-radius: 9px; padding: 10px;
  background: var(--field); font-family: inherit; font-size: 14px; }
.whyline { font-size: 13px; background: #FCF3DE; border-right: 3px solid var(--gold);
  border-radius: 7px; padding: 7px 10px; margin: 5px 0; }
.stagetag { font-size: 11px; border-radius: 999px; padding: 2px 9px; font-weight: 700; }
.stagetag.s0 { background: var(--chip); color: var(--sub); }
.stagetag.s1 { background: #FCF3DE; color: #B07A12; }
.stagetag.s2 { background: #E4EEF7; color: #2A5D8A; }
.stagetag.s3 { background: var(--goodbg); color: var(--good); }
.missrow.intr { background: #E4EEF7; border-radius: 7px; padding: 9px 8px; }
.intrnote { color: #2A5D8A; }
.lateName { color: var(--danger); font-weight: 900; }

/* ---------- منوی گروه‌بندی‌شده ---------- */
.tabs { gap: 4px; padding-bottom: 10px; }
.menugroup { position: relative; }
.menugroup > button { white-space: nowrap; border: 1px solid #3A3B3E; background: transparent;
  color: #CFCDC5; border-radius: 999px; padding: 7px 15px; font-size: 13.5px; font-family: inherit;
  display: flex; gap: 5px; align-items: center; cursor: pointer; }
.menugroup > button.on { background: var(--gold); border-color: var(--gold); color: var(--ink); font-weight: 900; }
.caret { font-size: 10px; opacity: .7; }
.menupop { display: none; position: absolute; top: calc(100% + 6px); right: 0; z-index: 60;
  background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 6px;
  min-width: 190px; box-shadow: 0 10px 30px rgba(0,0,0,.22); }
.menugroup.open .menupop { display: block; }
.menuitem { display: block; width: 100%; text-align: right; background: transparent; border: 0;
  border-radius: 8px; padding: 9px 12px; font-family: inherit; font-size: 13.5px;
  color: var(--ink); cursor: pointer; }
.menuitem:hover { background: #F3F1EC; }
.menuitem.cur { background: var(--ink); color: var(--card); font-weight: 900; }
@media (max-width: 640px) { .menupop { min-width: 170px; } }

/* ---------- نشان‌گر کارهای منتظر ---------- */
.badge { background: var(--danger); color: var(--card); border-radius: 999px; padding: 1px 7px;
  font-size: 11px; font-weight: 900; margin-right: 5px; min-width: 18px; display: inline-block; text-align: center; }
.menugroup > button.on .badge { background: var(--ink); }
.menuitem .badge { float: left; }

/* ==========================================================
   نمای موبایل — جدول‌های افقی به کارت عمودی تبدیل می‌شوند
   چون همه پرسنل با گوشی وارد می‌شوند
   ========================================================== */
@media (max-width: 720px) {
  .screen { padding: 12px 10px 80px; }
  .grid { grid-template-columns: 1fr 1fr; gap: 9px; }
  .f.w2, .f.w3, .f.w4 { grid-column: span 2; }

  /* جدول‌های تکرارشونده: هر ردیف یک کارت */
  .mtable { gap: 10px; }
  .mrow { display: block !important; background: var(--card); border: 1px solid var(--line);
    border-radius: 11px; padding: 10px 11px; min-width: 0 !important; }
  .mrow.mhead { display: none !important; }
  .mrow > input, .mrow > select { margin-bottom: 7px; }
  .mrow > input:last-child, .mrow > select:last-child { margin-bottom: 0; }
  /* برچسب هر فیلد از ستون متناظر سرصفحه ساخته می‌شود */
  .mrow > *[data-lbl]::before { content: attr(data-lbl); display: block; font-size: 11px;
    font-weight: 700; color: var(--sub); margin-bottom: 3px; }
  .mrow .mini.danger { width: 100%; margin-top: 4px; }
  /* ۱۰.۲۶۱ — ::before روی input/select رندر نمی‌شود؛ برچسب واقعی (.mlbl) را app.js کنار هر خانه می‌گذارد.
   * گزارش حمید سلطانی (بستن صندوق روی گوشی): ستون‌های «فیش‌های تسویه‌شده»، «اصلاح‌شده» و… عنوان نداشتند. */
  .mrow > .mlbl { display: block; font-size: 11px; font-weight: 700; color: var(--sub); margin-bottom: 3px; }
  /* نام روز کنار هر کشو — ::before روی <select> رندر نمی‌شود، پس برچسب
   * را به‌صورت عنصر واقعی می‌گذاریم */
  .daycell { display: block; margin-bottom: 7px; }
  .daycell small { display: block; font-size: 11px; font-weight: 700;
    color: var(--sub); margin-bottom: 3px; }
  .daycell select { width: 100%; }
  .mrow .chname { display: block; font-weight: 900; font-size: 14px; margin-bottom: 6px;
    padding-bottom: 6px; border-bottom: 1px solid var(--chip); }
  .poshead { display: block !important; }
  .poshead span { display: inline-block; margin-left: 6px; }

  /* دکمه‌ها بزرگ‌تر برای انگشت */
  .btn { padding: 13px 20px; font-size: 15px; }
  .mini { padding: 7px 13px; font-size: 12.5px; }
  .clpick { padding: 9px 14px; }
  .tabs { padding: 0 10px 10px; }
  .menugroup > button { padding: 9px 14px; }

  /* چک‌لیست و ردیف‌های پیگیری */
  .clrow { flex-direction: column; align-items: stretch; gap: 7px; }
  .clbtns { justify-content: stretch; }
  .clbtns .mini { flex: 1; }
  .missrow { flex-direction: column; align-items: stretch; gap: 6px; }
  .missrow .mini { width: 100%; }
  .utop { flex-direction: column; }
  .permtable input[type=checkbox] { width: 24px; height: 24px; }
  .cards { grid-template-columns: 1fr; }
  .steps { flex-direction: column; }
}

/* ---------- رفع بریده‌شدن منوی کشویی ----------
   overflow-x روی نوار منو باعث می‌شد منوی بازشده زیر محتوای صفحه برود.
   حالا نوار wrap می‌شود و منو با موقعیت ثابت روی همه‌چیز می‌نشیند. */
.tabs { overflow: visible !important; flex-wrap: wrap; row-gap: 6px; position: relative; z-index: 200; }
.menugroup { position: static; }
.menupop { position: fixed; z-index: 9995; max-height: 70vh; overflow-y: auto; }




/* ---------- کارتابل: اعلان و وظیفه ---------- */
.ticket.seen { opacity: .62; }
.ntkind { background: var(--chip); color: var(--sub); border-radius: 999px; padding: 1px 9px; font-weight: 700; }
.taskrow { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start;
  padding: 11px 2px; border-bottom: 1px solid var(--chip); }
.taskrow:last-child { border: 0; }
.taskrow.late { background: var(--badbg); border-radius: 8px; padding: 11px 9px; }
.stbadge { font-size: 11px; border-radius: 999px; padding: 2px 9px; font-weight: 700; margin-right: 5px; }
.stbadge.grey { background: var(--chip); color: var(--sub); }
.stbadge.amber { background: #FCF3DE; color: #B07A12; }
.stbadge.blue { background: #E4EEF7; color: #2A5D8A; }
.stbadge.green { background: var(--goodbg); color: var(--good); }
.stbadge.red { background: var(--badbg); color: var(--danger); }
.prbadge { font-size: 11px; border-radius: 999px; padding: 2px 8px; font-weight: 900; margin-right: 4px; }
.prbadge.urg { background: var(--danger); color: var(--card); }
.prbadge.imp { background: var(--gold); color: var(--ink); }
.pbar { height: 6px; background: var(--chip); border-radius: 999px; margin-top: 7px; overflow: hidden; }
.pfill { height: 100%; background: var(--gold); border-radius: 999px; }
@media (max-width: 720px) { .taskrow { flex-direction: column; } .taskrow .tacts { width: 100%; } }
.kindlist { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.kindlist .ntkind { font-size: 12px; }

/* ---------- گزارش‌ها ---------- */
.repout { margin-top: 14px; }
.sumbar { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; }
.sumcell { background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 9px 13px; min-width: 130px; }
.sumcell .sk { font-size: 11.5px; color: var(--sub); }
.sumcell .sv { font-size: 15px; font-weight: 900; margin-top: 3px; }
.repscroll { overflow-x: auto; background: var(--card); border: 1px solid var(--line); border-radius: 11px; }
.reptable { width: 100%; border-collapse: collapse; font-size: 12.5px; min-width: 500px; }
.reptable th { background: var(--ink); color: var(--card); padding: 8px 9px; font-weight: 700; white-space: nowrap; }
.reptable td { padding: 7px 9px; border-bottom: 1px solid var(--chip); white-space: nowrap; }
.reptable tr:last-child td { border: 0; }
.unitpick select { font-weight: 700; }
.subcard { background: var(--card); border: 1px solid var(--line); border-radius: 11px;
  padding: 11px; margin-bottom: 9px; }
.subcard .grid { gap: 8px; }
.bulkout { margin-top: 12px; }
.kindlist .mini.on { background: var(--gold); border-color: var(--gold); color: var(--ink); font-weight: 900; }
.codeblock { background: #F3F1EC; border: 1px solid var(--line); border-radius: 8px;
  padding: 10px 12px; font-family: monospace; font-size: 12px; direction: ltr;
  word-break: break-all; margin: 8px 0; }
.bigtext { width: 100%; font-family: inherit; font-size: 14px; padding: 9px 11px;
  border: 1px solid var(--line); border-radius: 9px; background: var(--field); resize: vertical; }
.f.chk { flex-direction: row; align-items: center; gap: 8px; }
.f.chk input { width: 20px; height: 20px; }
.sumcell .sv.bad { color: var(--danger); }
/* ---------- ورودی مبلغ با واحد ---------- */
.moneywrap { display: flex; align-items: center; gap: 6px; }
.moneyin { flex: 1; text-align: left; direction: ltr; font-variant-numeric: tabular-nums;
  letter-spacing: .3px; }
.moneyunit { font-size: 12px; color: var(--sub); white-space: nowrap; font-weight: 700; }
.mrow .moneywrap { width: 100%; }
.checklist { background: var(--field); border: 1px solid var(--line); border-radius: 10px;
  padding: 10px 12px; margin: 10px 0; }
.checklist .f.chk { display: flex; flex-direction: row; align-items: center; gap: 9px;
  padding: 6px 0; }
.checklist .f.chk input { width: 22px; height: 22px; flex: none; }

/* ---------- رنگ برند هر شعبه ---------- */
#brandbar { position: fixed; top: 0; left: 0; right: 0; height: 5px; z-index: 300; display: none; }
/* کل نوار بالا (سربرگ و ردیف منو) رنگ برند می‌گیرد، نه سیاه */
body.hasbrand .top,
body.hasbrand .tabs { background: var(--brand); }
body.hasbrand .top { border-top: 0; color: var(--brand-ink); }
body.hasbrand .bsub { color: var(--brand-ink); opacity: .82; }
body.hasbrand .msel { background: rgba(255,255,255,.15); color: var(--brand-ink); border-color: rgba(255,255,255,.32); }
body.hasbrand .iconbtn, body.hasbrand .drawerbtn, body.hasbrand .bell {
  border-color: rgba(255,255,255,.38); color: var(--brand-ink); }
/* فقط چیپ‌های خود نوار — نه دکمه‌های داخل منوی بازشو که پس‌زمینه سفید دارند */
body.hasbrand .menugroup > button,
body.hasbrand .tabs > button { border-color: rgba(255,255,255,.30); color: var(--brand-ink); }
body.hasbrand .menugroup > button .cnt,
body.hasbrand .tabs > button .cnt { background: rgba(0,0,0,.18); }
body.hasbrand .menupop { color: var(--ink); }
body.hasbrand .menuitem { color: var(--ink); }
body.hasbrand .menuitem.cur { background: var(--brand); color: var(--brand-ink); }
body.hasbrand .bsel.brandsel {
  border-color: rgba(255,255,255,.45);
  box-shadow: none;
}
/* چیپ گروه فعال روی نوار برند وارونه می‌شود تا دیده شود، نه هم‌رنگ نوار */
body.hasbrand .menugroup > button.on {
  background: var(--brand-ink); border-color: var(--brand-ink); color: var(--brand);
}
body.hasbrand .btn:not(.ghost):not(.danger) {
  background: var(--brand); border-color: var(--brand); color: var(--brand-ink);
}
body.hasbrand .menuitem.cur { background: var(--brand); color: var(--brand-ink); }
body.hasbrand .stbadge.amber { }

/* ================================= پرونده پرسنلی (ویزارد پس از ورود) */
.pwiz { min-height: 100dvh; background: var(--paper); padding: 18px 12px 60px;
  display: flex; align-items: flex-start; justify-content: center; }
.pwiz-box { width: 100%; max-width: 760px; background: var(--card);
  border: 1px solid var(--line); border-radius: var(--r); padding: 18px 16px 24px; }
.pwiz-head { display: flex; gap: 12px; align-items: center; margin-bottom: 14px; }
.pwiz-head .shield { width: 48px; height: 52px; font-size: 18px; margin: 0; flex: 0 0 auto;
  background: var(--ink); color: var(--paper); }
.pwiz-head h1 { font-size: 18px; font-weight: 900; margin: 0 0 3px; }
.pwiz-head p { margin: 0; font-size: 12.5px; color: var(--sub); }

.pbar { height: 6px; border-radius: 6px; background: #EDEAE2; overflow: hidden; }
.pbar i { display: block; height: 100%; background: var(--gold); transition: width .25s; }
.pcount { font-size: 12px; color: var(--muted); margin: 6px 0 14px; }

.pstep h3 { font-size: 15px; font-weight: 900; margin: 0 0 12px; }
.pgrid { display: flex; flex-wrap: wrap; gap: 12px; }
.pfield { display: flex; flex-direction: column; gap: 4px; flex: 1 1 220px; min-width: 0; }
.pfield.wide { flex-basis: 100%; }
.pfield .plbl { font-size: 11.5px; font-weight: 700; color: var(--sub); }
.pfield input, .pfield select, .pfield textarea {
  width: 100%; border: 1px solid var(--line); border-radius: 9px; padding: 10px;
  background: var(--field); font-size: 15px; color: var(--ink); }
.pfield textarea { resize: vertical; min-height: 60px; }
.pfield input::placeholder { color: #A9A69D; }
.pfield.bad input, .pfield.bad select, .pfield.bad textarea { border-color: var(--danger); background: #FDF3F0; }
.phint { font-size: 12px; color: var(--muted); line-height: 1.8; }

/* شبکه‌ای، نه فلکس — با فلکس، برچسب‌های بلند تا یک حرف در سطر فشرده می‌شدند */
.pmulti { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px; }
/* گرید دو ستونه (تیک + متن). با فلکس، ستون متن تا عرض صفر جمع می‌شد
 * و برچسب‌های بلند حرف‌به‌حرف در سطرهای جدا می‌افتادند. */
.pchk { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start;
  gap: 8px; font-size: 13px; line-height: 1.8; padding: 9px 11px;
  border: 1px solid var(--line); border-radius: 9px; background: var(--field); cursor: pointer; }
.pchk input { margin: 4px 0 0; }
.pchk > span { overflow-wrap: break-word; }
.pchk.big { width: 100%; margin-bottom: 8px; line-height: 1.9; font-size: 13.5px; }
.pchk:has(input:checked) { border-color: var(--gold); background: #FCF7E9; }

.pq { border: 1px solid var(--line); border-radius: 11px; padding: 12px; margin-bottom: 12px; }
.pqt { font-size: 14px; font-weight: 700; line-height: 1.9; margin-bottom: 8px; }
.popt { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start;
  gap: 8px; padding: 8px 6px; font-size: 13px; line-height: 1.8;
  border-radius: 8px; cursor: pointer; }
.popt:hover { background: var(--chip); }
.popt input { margin: 4px 0 0; }
.popt > span { overflow-wrap: break-word; }

.pdocs { display: flex; flex-wrap: wrap; gap: 12px; margin: 10px 0; }
.pdoc { flex: 1 1 240px; min-width: 0; border: 1px solid var(--line); border-radius: 11px;
  padding: 12px; background: var(--field); }
.pdoc.ok { border-color: #9DCBAF; background: #F3F9F5; }
.pdt { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; margin-bottom: 5px; font-size: 13.5px; }
.pdt .badge.ok { font-size: 11px; border-radius: 999px; padding: 2px 9px;
  background: var(--goodbg); color: var(--good); font-weight: 700; }
.pprev img { max-width: 100%; max-height: 150px; border-radius: 8px; margin: 8px 0; display: block; }
.pfile { position: absolute; width: 1px; height: 1px; opacity: 0;
  clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; }
.pdoc .btn { width: 100%; margin-top: 8px; padding: 10px; }
.pdocbtns { display: flex; gap: 8px; }
.pdocbtns .btn { flex: 1 1 0; min-width: 0; white-space: nowrap; padding: 10px 6px; }
.pthumb { width: 90px; height: 90px; object-fit: cover; border-radius: 8px;
  border: 1px solid var(--line); cursor: pointer; }

.pnav { display: flex; gap: 10px; margin-top: 18px; }
.pnav .btn { flex: 1; padding: 13px; font-size: 15px; }
.plink { display: block; margin: 16px auto 0; background: none; border: 0;
  color: var(--muted); font-size: 12.5px; text-decoration: underline; }
.pnag { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.pnag .btn { flex: 0 0 auto; padding: 8px 16px; font-size: 13px; }

@media (max-width: 560px) {
  .pwiz { padding: 0; }
  .pwiz-box { border: 0; border-radius: 0; min-height: 100dvh; }
  .pfield, .pdoc { flex-basis: 100%; }
  .pnag { align-items: flex-start; }
  .pnag .btn { width: 100%; }
}

/* ---------- کارت رسپی: راهنمای فیلد و بهای تمام‌شده ---------- */
.fhint { font-size: 11px; color: var(--muted); line-height: 1.7; margin-top: 2px; }
.tnotes.cost { background: var(--chip); border: 1px solid var(--line); border-radius: 9px;
  padding: 8px 10px; margin-top: 8px; }
.tnotes.cost b { font-weight: 900; color: var(--ink); }
.warnline { color: var(--danger); font-size: 12px; margin-top: 4px; line-height: 1.8; }
.mtable input[list] { background: var(--field); }
.fcbadge { font-size: 11.5px; border-radius: 999px; padding: 3px 10px; font-weight: 900; }
.fcbadge.good { background: var(--goodbg); color: var(--good); }
.fcbadge.mid  { background: #FCF3DE; color: #B07A12; }
.fcbadge.bad  { background: var(--badbg); color: #B3391F; }

/* روی موبایل، شبکه فرم‌های پایه دو ستونه است؛ فیلدهای w3 و w4 باید کل عرض را بگیرند */
@media (max-width: 720px) {
  .grid .f.w3, .grid .f.w4 { grid-column: span 2; }
}
@media (max-width: 420px) {
  .grid { grid-template-columns: 1fr; }
  .grid .f.w2, .grid .f.w3, .grid .f.w4 { grid-column: span 1; }
}
.stalebox { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.stalebox .btn { padding: 8px 16px; font-size: 13px; }

/* ---------- آیین‌نامه انضباطی داخل تعهدنامه ---------- */
.policy { border: 1px solid var(--line); border-radius: 11px; overflow: hidden; margin-bottom: 8px; }
.policyhd { background: var(--ink); color: var(--paper); padding: 10px 13px; font-size: 13.5px; }
.policyhd .tnotes { color: #B8B6AE; }
/* ۱۰.۱۴۶ — متن آیین‌نامه پررنگ و خوانا (خانم غنیمی: «کاملاً کم‌رنگه») */
.policyscroll { max-height: 55vh; overflow-y: auto; padding: 14px 16px; background: #FFFDF8;
  font-size: 14.5px; line-height: 2.05; color: #1B1B1B; font-weight: 500; }
.policyscroll .pintro { color: #2A2A2A; margin-bottom: 10px; }
.policyscroll li { color: #1B1B1B; }
.policydl { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.policydl .btn { background: #fff; color: #1B1B1B; border-color: #fff; text-decoration: none; padding: 6px 10px; font-size: 12.5px; }
.policyscroll .psec { font-size: 13.5px; font-weight: 900; margin: 14px 0 5px; color: var(--ink); }
.policyscroll .psec:first-of-type { margin-top: 4px; }
.plist { margin: 0; padding-inline-start: 18px; }
.plist li { margin-bottom: 5px; }
.phint.ok { color: var(--good); font-weight: 700; }

@media (max-width: 480px) {
  .pmulti { grid-template-columns: 1fr; }
  .policyscroll { max-height: 50vh; font-size: 14px; }
}

/* ---------- قرارداد الکترونیکی ---------- */
.cwrap { border-bottom: 1px solid var(--line); padding-bottom: 10px; margin-bottom: 10px; }
.cwrap:last-child { border: 0; margin-bottom: 0; }
.capprove { background: var(--field); border: 1px solid var(--line); border-radius: 10px;
  padding: 12px; margin-top: 8px; }
.tnotes.okline { color: var(--good); }
.ccard { border: 1px solid var(--line); border-radius: var(--r); padding: 13px; margin-bottom: 12px; }
.cchd { display: flex; justify-content: space-between; align-items: center; gap: 10px;
  flex-wrap: wrap; margin-bottom: 6px; }
.ccard .policyscroll { margin: 10px 0; }
.cline { padding-inline-start: 6px; }
.csign { border-top: 1px dashed var(--line); margin-top: 12px; padding-top: 12px; }
.cstep { margin-bottom: 14px; }
.cstep > b { display: block; font-size: 13.5px; margin-bottom: 6px; }
.cstep .btn { margin: 6px 0; }
.codein { display: block; width: 160px; text-align: center; letter-spacing: 6px;
  font-size: 19px; padding: 10px; border: 1px solid var(--line); border-radius: 9px;
  background: var(--field); margin: 6px 0; }
.codein:disabled { opacity: .5; }
.sigpad { border: 2px dashed var(--line2); border-radius: 11px; background: var(--card); padding: 6px; }
.sigpad canvas { width: 100%; height: auto; display: block; touch-action: none; cursor: crosshair; }
.sigbar { display: flex; justify-content: space-between; align-items: center;
  gap: 10px; flex-wrap: wrap; padding: 6px 4px 2px; }
.sigbar .btn { padding: 6px 14px; font-size: 12.5px; margin: 0; }
.sigshot { max-width: 240px; border: 1px solid var(--line); border-radius: 8px;
  background: var(--card); margin-top: 8px; display: block; }

/* ---------- جلسات و مصوبات ---------- */
.decbox { border-top: 1px dashed var(--line); margin-top: 10px; padding-top: 8px; }
.decbox .psec { font-size: 13px; font-weight: 900; margin-bottom: 6px; }
.decsel { max-width: 160px; flex: 0 0 auto; font-family: inherit; font-size: 13px;
  padding: 8px 9px; border: 1px solid var(--line); border-radius: 8px;
  background: var(--field); color: var(--ink); }
.decsel option { background-color: var(--card); color: #17181A; }
.ticket details { margin-top: 8px; }
.ticket details summary { cursor: pointer; font-size: 12.5px; color: var(--sub); }
.ticket details .psec { font-size: 13px; font-weight: 900; margin: 10px 0 4px; }
.ticket details .cline { font-size: 13px; line-height: 1.9; }

/* ضریب روز هفته — کنار شمارش پایان شب */
.wkpanel .wkrow { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 9px; }
.wkcell { display: grid; gap: 2px; padding: 8px 11px; min-width: 92px;
  border: 1px solid var(--line); border-radius: 9px; background: var(--field); }
.wkcell b { font-size: 12.5px; }
.wkcell .wkf { font-size: 16px; font-weight: 900; }
.wkcell small { font-size: 11px; color: var(--muted); }
.wkcell.on { border-color: var(--ink); background: var(--chip); }
.wkcell .wknow { color: var(--good); font-weight: 900; }

/* قواعد روی صفحه — مثل غذای پرسنل */
.rulesbox { background: var(--field); }
.ruleshead { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.ruleslist { margin-top: 10px; display: grid; gap: 8px; }
.rulerow { display: grid; grid-template-columns: minmax(120px, 170px) minmax(0, 1fr); gap: 10px;
  align-items: start; padding-bottom: 8px; border-bottom: 1px solid var(--line); }
.rulerow:last-child { border-bottom: none; padding-bottom: 0; }
.rulerow b { font-size: 13px; }
.rulerow span { font-size: 12.5px; color: var(--sub); overflow-wrap: break-word; }
@media (max-width: 560px) { .rulerow { grid-template-columns: 1fr; gap: 2px; } }

/* صف شماره‌های بی‌صاحب در پرونده پرسنلی */
.inboxrow { align-items: center; gap: 10px; flex-wrap: wrap; }
.inboxacts { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.inboxcode { width: 110px; border: 1px solid var(--line); border-radius: 8px; padding: 7px 9px;
  font-family: inherit; font-size: 13px; background: var(--field); color: var(--ink); }
.nophone { margin-top: 12px; }
.nophone summary { cursor: pointer; font-size: 13px; font-weight: 700; }
.nplist { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.npchip { font-size: 12px; background: var(--chip); border: 1px solid var(--line);
  border-radius: 999px; padding: 3px 10px; color: var(--sub); }

/* کدهای انبار — گروه‌بندی از روی پیشوند */
.codegrid { display: grid; gap: 6px; margin-top: 10px; max-height: 420px; overflow-y: auto; }
.coderow { display: grid; grid-template-columns: 80px 70px 170px minmax(0, 1fr);
  gap: 8px; align-items: center; padding: 6px 8px; border: 1px solid var(--line);
  border-radius: 8px; background: var(--field); }
.coderow.hid { display: none; }
.coderow b { font-size: 13px; direction: ltr; text-align: right; }
.coderow .cn { font-size: 11.5px; color: var(--muted); }
.coderow input { border: 1px solid var(--line); border-radius: 7px; padding: 6px 8px;
  font-family: inherit; font-size: 13px; background: var(--card); color: var(--ink); }
.coderow small { font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 560px) { .coderow { grid-template-columns: 70px 60px 1fr; }
  .coderow small { display: none; } }

/* لایه مالی — زنجیره امضا و بستن ماه */
.flowline { display: flex; gap: 6px; margin-bottom: 12px; flex-wrap: wrap; }
.flowstep { flex: 1 1 150px; padding: 8px 11px; border: 1px solid var(--line);
  border-radius: 9px; background: var(--field); }
.flowstep b { display: block; font-size: 12.5px; }
.flowstep small { font-size: 11px; color: var(--muted); }
.flowstep.on { border-color: var(--ink); background: var(--chip); }
.signrow { display: flex; justify-content: space-between; align-items: center; gap: 10px;
  padding: 10px 0; border-bottom: 1px solid var(--line); }
.signrow:last-child { border-bottom: none; }
.signrow.done { opacity: .75; }
.okline { color: var(--good); font-weight: 700; font-size: 13.5px; padding: 8px 0; }
.pname small.nocontract { color: var(--danger); font-weight: 700; }
.pname small.isnew { color: var(--good); font-weight: 700; }

/* تابلوی نقش‌های کلیدی در صفحه کاربران */
.roleboard .rolerow { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px;
  align-items: start; padding: 11px 0; border-bottom: 1px solid var(--line); }
.roleboard .rolerow:last-of-type { border-bottom: none; }
.roleinfo b { font-size: 13.5px; }
.roleholders { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.rolechip { display: inline-flex; align-items: center; gap: 5px; font-size: 12px;
  background: var(--chip); border: 1px solid var(--line); border-radius: 999px; padding: 3px 10px; }
.rolechip small { color: var(--muted); }
.chipx { border: 0; background: transparent; color: var(--danger); font-size: 14px;
  line-height: 1; padding: 0 2px; font-weight: 900; }
.rolegap { font-size: 12px; color: var(--danger); font-weight: 700; }
.roleassign { display: flex; gap: 6px; align-items: center; }
@media (max-width: 560px) {
  .roleboard .rolerow { grid-template-columns: 1fr; }
  .roleassign { justify-content: flex-start; }
}

/* ناظر عملیات — شدت یافته با نوار کناری */
.ticket.find-crit { border-right-color: var(--danger); }
.ticket.find-warn { border-right-color: #D9A421; }
.ticket.find-note { border-right-color: var(--muted); }

/* ---------- حالت تیره: تکه‌هایی که رنگ ثابت لازم دارند ---------- */
body.dark .top, body.dark .tabs { background: var(--topbg); }
body.dark .hero { background: #0F1014; }
body.dark .login { background: #FFFFFF; }
body.dark .msel { background: #23262E; border-color: #3A3D47; }
body.dark .msel option, body.dark .msel optgroup { background-color: #1C1E24; color: #ECEAE4; }
body.dark .btn { background: var(--gold); color: #17181A; }
body.dark .btn.ghost { background: transparent; color: var(--sub); border-color: var(--line2); }
body.dark .starbtn.on { background: var(--gold); color: #17181A; border-color: var(--gold); }
body.dark .mealday input[type="checkbox"] { accent-color: var(--gold); }
body.dark input, body.dark select, body.dark textarea { color: var(--ink); }
body.dark .warn.alert { background: var(--warnbg); }

/* ---------- کشوی منو از سمت راست ---------- */
.drawerbtn { background: transparent; border: 1px solid #3C3D40; color: #CFCDC5;
  border-radius: 8px; padding: 6px 11px; font-size: 13px; display: flex; gap: 6px; align-items: center; }
/* z-index بالاتر از .tabs (که خودش ۲۰۰ است تا زیر محتوا نرود) — وگرنه وقتی
 * کشو باز است نوار دسته‌ها رویش سوار می‌شود و کشو نصفه‌کاره به‌نظر می‌رسد. */
.drawerwrap { position: fixed; inset: 0; z-index: 220; display: none; }
.drawerwrap.open { display: block; }
.drawerveil { position: absolute; inset: 0; background: rgba(0,0,0,.45); }
.drawer { position: absolute; top: 0; right: 0; bottom: 0; width: min(320px, 86vw);
  background: var(--card); border-left: 1px solid var(--line); overflow-y: auto;
  box-shadow: -14px 0 34px rgba(0,0,0,.22); }
.drawerhead { display: flex; justify-content: space-between; align-items: center;
  gap: 8px; padding: 14px 16px; background: var(--topbg); color: var(--topink); }
.drawerhead b { font-size: 15px; }
.drawerhead small { display: block; font-size: 11px; color: #B8B6AE; }
.drawerx { background: transparent; border: 0; color: var(--topink); font-size: 22px; line-height: 1; }
.dgroup { border-bottom: 1px solid var(--line); }
.dgroup > button { width: 100%; display: flex; justify-content: space-between; align-items: center;
  gap: 8px; background: transparent; border: 0; padding: 13px 16px; font-size: 14px;
  font-weight: 700; color: var(--ink); text-align: right; }
.dgroup.on > button { background: var(--chip); }
.ditems { display: none; padding-bottom: 6px; }
.dgroup.on .ditems { display: block; }
.ditems button { width: 100%; background: transparent; border: 0; padding: 9px 30px 9px 16px;
  font-size: 13.5px; color: var(--sub); text-align: right; display: flex;
  justify-content: space-between; align-items: center; gap: 8px; }
.ditems button.cur { color: var(--ink); font-weight: 900; background: var(--field); }
.dcaret { font-size: 11px; color: var(--muted); }
.drawer .badge { background: var(--danger); color: #fff; border-radius: 999px;
  padding: 0 7px; font-size: 11px; font-weight: 700; }

/* ---------- زنگ اعلان ---------- */
.bellwrap { position: relative; }
.bell { background: transparent; border: 1px solid #3C3D40; color: #CFCDC5;
  border-radius: 8px; padding: 6px 10px; font-size: 15px; line-height: 1; }
.belldot { position: absolute; top: -6px; left: -6px; background: var(--danger); color: #fff;
  border-radius: 999px; min-width: 18px; height: 18px; padding: 0 5px; font-size: 10.5px;
  font-weight: 900; display: grid; place-items: center; }
.bellpop { position: fixed; z-index: 210; width: min(360px, 92vw); max-height: 62vh; overflow-y: auto;
  background: var(--card); border: 1px solid var(--line); border-radius: 12px;
  box-shadow: 0 18px 40px rgba(0,0,0,.22); padding: 6px 0; display: none; }
.bellpop.open { display: block; }
.bellhead { display: flex; justify-content: space-between; align-items: center;
  padding: 8px 14px; border-bottom: 1px solid var(--line); font-size: 12.5px; color: var(--muted); }
.bellrow { padding: 9px 14px; border-bottom: 1px solid var(--line); }
.bellrow:last-child { border-bottom: none; }
.bellrow b { font-size: 13px; display: block; }
.bellrow small { font-size: 11.5px; color: var(--sub); display: block; }
.bellrow .bk { font-size: 10.5px; color: var(--muted); }
/* ردیف اعلان کلیک‌شدنی شد (۱۰.۱۸.۰) — باید هم لمسی به نظر برسد */
.bellrow { cursor: pointer; }
.bellrow:active { background: var(--bg2, #F1EFE7); }
.bellrow .bgo { color: var(--brand, #6E8050); font-weight: 700; }
.bellrow.openrow { background: var(--bg2, #F1EFE7); }
.bellrow.openrow .bbody { white-space: pre-wrap; color: var(--ink, #10130F); }
.bellempty { padding: 22px 14px; text-align: center; color: var(--muted); font-size: 13px; }

/* روی گوشی، ردیف گروه‌های منو جایش را به کشو می‌دهد */
@media (max-width: 720px) { .tabs { display: none; } }
@media (min-width: 721px) { .daycell small { display: none; } .daycell { display: contents; } }
.vcode { font-family: ui-monospace, monospace; direction: ltr; }
.vnum { text-align: left; direction: ltr; font-variant-numeric: tabular-nums; }
.mrow.mfoot { font-weight: 900; background: var(--chip); }

/* ---------- هشدار سفارش تکراری خرید ---------- */
.duprow { grid-column: 1 / -1; background: var(--badbg); border: 1px solid var(--danger);
  border-radius: 8px; padding: 7px 10px; margin: -4px 0 8px; font-size: 12.5px;
  color: var(--danger); display: flex; flex-direction: column; gap: 2px; }
.duprow b { font-size: 12.5px; }
.dupflag { background: var(--badbg); color: var(--danger); border-radius: 7px;
  padding: 3px 8px; margin-top: 4px; font-size: 12px; font-weight: 700; width: fit-content; }

/* آیتم خانه در کشو */
.dhome { width: 100%; display: flex; gap: 10px; align-items: center; background: transparent;
  border: 0; border-bottom: 1px solid var(--line); padding: 14px 16px; font-size: 14.5px;
  font-weight: 900; color: var(--ink); text-align: right; }
.dhome.cur { background: var(--field); }

/* ---------- انتخابگر با جست‌وجو ---------- */
.spick { position: relative; min-width: 0; }
.spickin { width: 100%; }
.spickpop { position: absolute; top: calc(100% + 4px); right: 0; left: 0; z-index: 60;
  background: var(--card); border: 1px solid var(--line); border-radius: 10px;
  box-shadow: 0 14px 30px rgba(0,0,0,.18); max-height: 260px; overflow-y: auto; display: none; }
.spickpop.open { display: block; }
.spickitem { width: 100%; display: flex; flex-direction: column; align-items: flex-start; gap: 1px;
  background: transparent; border: 0; border-bottom: 1px solid var(--line);
  padding: 9px 12px; text-align: right; color: var(--ink); }
.spickitem:last-child { border-bottom: 0; }
.spickitem b { font-size: 13.5px; }
.spickitem small { font-size: 11.5px; color: var(--muted); }
.spickitem:hover, .spickitem:focus { background: var(--field); }
.spickempty { padding: 14px 12px; color: var(--muted); font-size: 12.5px; text-align: center; }

/* ---------- صفحه کاربران: کارت‌های ورودی ---------- */
.ucards { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; margin-top: 6px; }
.ucard { background: var(--card); border: 1px solid var(--line); border-radius: var(--r);
  padding: 16px 15px 14px; text-align: right; display: flex; flex-direction: column; gap: 6px;
  cursor: pointer; transition: border-color .15s; }
.ucard:hover { border-color: var(--gold); }
.ucard.uwarn { border-inline-start: 4px solid var(--danger); }
.ucardtop { display: flex; justify-content: space-between; align-items: center; }
.uicon { font-size: 24px; }
.ucard .ucount { font-size: 11.5px; font-weight: 900; background: var(--chip); color: var(--sub);
  border-radius: 999px; padding: 3px 10px; }
.ucard .ucount.bad { background: var(--badbg); color: var(--danger); }
.ucard b { font-size: 15px; color: var(--ink); }
.ucard small { font-size: 12px; color: var(--muted); line-height: 1.7; }
.ubar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin: 4px 0 12px; }
.utabs { display: flex; gap: 6px; flex-wrap: wrap; }
.utabs .mini.on { background: var(--ink); color: var(--paper); border-color: var(--ink); }
@media (max-width: 720px) { .utabs { display: none; } }

/* ---------- بیمه: زنجیره وضعیت و جدول ---------- */
.flowchip { padding: 5px 12px; border-radius: 999px; font-size: 12px; font-weight: 700;
  background: var(--field); border: 1px solid var(--line); color: var(--muted); }
.flowchip.done { background: var(--goodbg); color: var(--good); border-color: transparent; }
.flowchip.cur { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.flowsep { color: var(--muted); font-size: 12px; align-self: center; }
.mrow.ssibad { background: var(--badbg); }
.mrow.ssiwarn { background: var(--warnbg); }
.duprow.soft { background: var(--warnbg); border-color: var(--line2); color: var(--sub); }
.linklike { background: transparent; border: 0; color: var(--ink); font-weight: 700;
  text-align: right; padding: 0; text-decoration: underline; cursor: pointer; }
.clmwrap { border-top: 1px dashed var(--line); margin-top: 8px; padding-top: 4px; }
a.mini { display: inline-flex; align-items: center; text-decoration: none; }

/* ---------- قیمت‌گذاری و مهندسی منو ---------- */
.pricehint { grid-column: 1 / -1; font-size: 12px; color: var(--sub); background: var(--field);
  border-radius: 7px; padding: 4px 10px; margin: -4px 0 8px; }
.sgup { color: var(--danger); font-weight: 900; }
.quadcards .ucard { cursor: default; }
.quadcards .ucard:hover { border-color: var(--line); }

/* جدول‌های عددی روی گوشی به‌جای له شدن، اسکرول افقی می‌گیرند */
.mtable.scrollx { overflow-x: auto; }
.mtable.scrollx .mrow { min-width: 560px; }
@media (max-width: 720px) {
  /* جدول عددی با اسکرول افقی — قاعده کارت‌شدن ردیف‌ها اینجا صدق نمی‌کند */
  .mtable.scrollx .mrow { display: grid !important; min-width: 560px !important;
    background: transparent; border: 0; border-radius: 0; padding: 4px 0; }
  .mtable.scrollx .mrow.mhead { display: grid !important; }
  .mtable.scrollx { gap: 2px; }
}
.ghostmini { background: transparent; border-style: dashed; }
input.auto { border-color: var(--good); background: var(--goodbg); }
/* عدد در جدول‌های اسکرولی: چسبیده به راستِ ستون، هم‌تراز با سرستون —
 * وگرنه عدد چپ‌چین زیر ستون بغلی دیده می‌شود و جدول «جابه‌جا» به نظر می‌رسد */
.mtable.scrollx .vnum { text-align: right; }
.mtable.scrollx .mrow.mhead span { text-align: right; }
.bellrow.seenrow { opacity: .62; }
/* شیفت خودِ بیننده در تابلوی هفته */
.missrow.mineshift { border-color: var(--good); background: var(--goodbg); }

/* ---------- راهنمای من ---------- */
.gsec .ghead { width: 100%; display: flex; justify-content: space-between; align-items: center;
  background: transparent; border: 0; padding: 2px 0; font-size: 15px; color: var(--ink);
  text-align: right; cursor: pointer; }
.gsec .gbody { display: none; padding-top: 6px; }
.gsec.on .gbody { display: block; }
.gsec.on .dcaret { transform: rotate(180deg); }
.gsteps { padding-right: 20px; margin: 8px 0; }
.gsteps li { margin-bottom: 8px; line-height: 2; font-size: 13.5px; }
.gtip { background: var(--warnbg); border-radius: 9px; padding: 8px 12px; font-size: 12.5px;
  margin-top: 6px; line-height: 1.9; }
.pcap { display: block; }
.pcap small { display: block; font-size: 11px; color: var(--sub); font-weight: 700; margin-bottom: 3px; }
@media (min-width: 721px) { .pcap small { display: none; } }
.rolechip.ismain { background: var(--goodbg); color: var(--good); font-weight: 900; }
.chipstar { background: transparent; border: 0; color: var(--gold); font-size: 14px;
  padding: 0 4px; cursor: pointer; line-height: 1; }

/* ---------- دسته اقلام خرید ---------- */
.catchip { display: inline-block; background: var(--chip); color: var(--sub); border-radius: 999px;
  padding: 1px 9px; font-size: 11px; font-weight: 700; margin-inline-start: 6px; }
.catchip.cap { background: var(--warnbg); color: #854F0B; }
.capnote { grid-column: 1 / -1; background: var(--warnbg); border-radius: 8px; padding: 6px 10px;
  font-size: 12px; color: #854F0B; margin: -4px 0 8px; }

/* ---------- دکمه نمایش رمز ---------- */
/* خانه رمز داخل یک قاب نسبی می‌نشیند و دکمه «نمایش» روی سمت راست آن.
 * چون متن رمز چپ‌چین است، سمت راست همیشه خالی می‌ماند و دکمه روی حروف نمی‌افتد. */
.pwwrap { position: relative; }
/* مرورگرها به‌طور پیش‌فرض input[type=password] را چپ‌چین می‌کنند (فرض
 * می‌کنند محتوایش نقطه‌های رمز است) — حتی وقتی dir صفحه راست‌به‌چپ باشد.
 * برای رمزهای واقعی فرقی نمی‌کند (نقطه‌ها جهت ندارند)، ولی متن جانگهدار
 * فارسی طولانی («ذخیره شده — …») را چپ‌چین می‌کند و زیر دکمهٔ «نمایش»
 * (سمت راست) قایم می‌شود — دو متن روی هم می‌افتد. راست‌چین صریح رفعش می‌کند. */
.pwwrap > input { padding-right: 62px; margin-bottom: 0; direction: rtl; text-align: right; }
.login .pwwrap { margin-bottom: 10px; }
button.pweye {
  position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
  width: auto; min-width: 0; margin: 0; padding: 5px 8px;
  background: transparent; border: 0; border-radius: 7px;
  color: var(--sub, #8A8A85); font-size: 12px; font-weight: 700; line-height: 1;
}
.login button.pweye { color: #8A8A85; font-size: 12.5px; }
button.pweye:active { opacity: .6; }

/* ---------- خزانه (TR-52) ---------- */
.bignum { font-size: 19px; font-weight: 900; letter-spacing: -.2px; margin-top: 3px; direction: ltr; text-align: right; }
.subcard.warn { background: var(--badbg); border-color: #E8B4A5; }
.clnote.trnum { font-weight: 900; direction: ltr; white-space: nowrap; }
.clnote.trin  { color: var(--good); }
.clnote.trout { color: var(--danger); }
.clrow.diffbad { background: var(--badbg); border-radius: 8px; }
/* قلم کنارگذاشته‌شده در برگهٔ درخواست (۱۰.۱۸.۱) — پاک نشده، کنار گذاشته شده */
/* ریز دستگاه‌های یک کانال دریافتی (۱۰.۱۸.۲) */
.chparts { margin: 2px 0 8px; padding: 0 4px 6px; }
.chparts > summary { cursor: pointer; font-size: 12px; color: var(--sub); padding: 4px 0; }
.chpartrow { display: grid; grid-template-columns: 1.4fr 1.6fr auto; gap: 6px;
  align-items: center; margin-bottom: 6px; }
.chpartlist { margin: 4px 0 6px; }
@media (max-width: 600px) { .chpartrow { grid-template-columns: 1fr 1fr auto; } }

.clrow.rqoff { opacity: .55; }
.clrow.rqoff .cltext b { text-decoration: line-through; }
.clact { display: flex; gap: 6px; align-items: center; }
tr.rqoff td { opacity: .6; }
tr.rqoff td:first-child { text-decoration: line-through; }
.mtable.scrollx .mrow .stbadge { justify-self: start; }
.fhead select.monthsel { border: 1px solid var(--line); border-radius: 8px; padding: 6px 9px;
  background: var(--field); font-family: inherit; font-size: 12.5px; max-width: 190px; }
/* ---------- گفتگو (CM-54) ---------- */
.msg { border: 1px solid var(--line); border-radius: 10px; padding: 8px 11px; margin-bottom: 8px;
  background: var(--field); max-width: 88%; margin-inline-end: auto; }
.msg.mine { background: var(--goodbg); border-color: #A9D3B9;
  margin-inline-end: 0; margin-inline-start: auto; }
.msgwho { font-size: 11px; color: var(--sub); font-weight: 700; margin-bottom: 3px; }
.msgtext { font-size: 13.5px; line-height: 1.9; white-space: pre-wrap; word-break: break-word; }
.entry textarea { border: 1px solid var(--line); border-radius: 8px; padding: 8px 9px;
  background: var(--field); font-family: inherit; font-size: 13.5px; width: 100%; resize: vertical; }
.mrow .vname { font-weight: 700; font-size: 12.5px; }

/* ---------- لوگوی رسمی (جایگزین سپر سیاه) ---------- */
.fslogo { display: block; width: 132px; height: auto; margin: 0 auto 14px; }
.fsmark { width: 34px; height: 34px; object-fit: contain; flex: none; margin: 0; }
.brand .fsmark { width: 34px; height: 34px; background: #fff; border-radius: 9px;
  padding: 3px; box-sizing: border-box; }
.pwiz-head .fslogo { width: 76px; margin: 0 0 0 2px; }
.login-box .fslogo { width: 150px; margin-bottom: 16px; }

/* برچسب اقدام در گزارش فعالیت — وزن عادی، چون b پیش‌فرض توپر است */
.nrm { font-weight: 500; }

/* ------------------------------------------------ نمودارها (SA-57)
 * SVG خالص، بدون کتابخانه. رنگ متن و تور از متغیرهای پوسته می‌آید تا
 * حالت تیره خودبه‌خود درست شود. */
.vwrap { position: relative; margin: 6px 0 2px; }
.vsvg { width: 100%; height: auto; display: block; overflow: visible; }
.vax { fill: var(--muted); font-size: 11px; font-family: IRAN, Vazirmatn, Tahoma, sans-serif;
       direction: ltr; unicode-bidi: isolate; }   /* در RTL، text-anchor برعکس می‌شد */
.vlegend { display: flex; gap: 14px; flex-wrap: wrap; justify-content: center;
           font-size: 12px; color: var(--sub); margin-top: 6px; }
.vlgi { display: inline-flex; align-items: center; gap: 6px; }
.vdot { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }
.vtip { position: absolute; z-index: 5; pointer-events: none; background: var(--ink);
        color: var(--paper); border-radius: 8px; padding: 7px 10px; font-size: 12px;
        line-height: 1.7; white-space: nowrap; transform: translateX(50%);
        box-shadow: 0 6px 18px rgba(0,0,0,.18); }
.vtip b { display: block; margin-bottom: 2px; }

/* کادر تشخیص — جمله‌هایی که مدیر باید بخواند، نه فقط عدد */
.vsay { display: flex; gap: 9px; align-items: flex-start; padding: 9px 0;
        border-bottom: 1px solid var(--line); font-size: 13.5px; line-height: 1.9; }
.vsay:last-child { border-bottom: 0; }
.vsay .vmk { flex: 0 0 auto; font-weight: 900; font-size: 12px; border-radius: 6px;
             padding: 1px 8px; white-space: nowrap; }
.vsay.key   .vmk { background: var(--ink);    color: var(--paper); }
.vsay.bad   .vmk { background: var(--badbg);  color: var(--danger); }
.vsay.good  .vmk { background: var(--goodbg); color: var(--good); }
.vsay.warn  .vmk { background: var(--warnbg); color: var(--sub); }
.vsay.info  .vmk, .vsay.flat .vmk { background: var(--chip); color: var(--sub); }
.vsay.key   { font-weight: 700; }

/* چهار عدد بالای صفحه */
.vkpi { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.vkpi .k { background: var(--field); border: 1px solid var(--line); border-radius: var(--r); padding: 11px 13px; }
.vkpi .kt { font-size: 12px; color: var(--muted); }
.vkpi .kv { font-size: 19px; font-weight: 900; margin-top: 3px; }
.vkpi .kd { font-size: 12px; margin-top: 2px; }
.vkpi .kd.up { color: var(--good); } .vkpi .kd.dn { color: var(--danger); }
.vkpi .kd.na { color: var(--muted); }
.vbarmini { display: block; width: 100%; min-width: 70px; height: 8px; border-radius: 5px;
            background: var(--chip); overflow: hidden; }
.vbarmini span { display: block; height: 100%; border-radius: 5px; }
.vunit { font-size: 11px; color: var(--muted); text-align: left; margin-bottom: 2px; }

/* ------------------------------------------------ میله‌های افقی */
.hb { margin: 8px 0 4px; }
.hbrow { display: grid; grid-template-columns: minmax(90px, 34%) 1fr auto;
         align-items: center; gap: 10px; padding: 5px 0; }
.hblab { font-size: 13px; color: var(--ink); overflow: hidden; text-overflow: ellipsis;
         white-space: nowrap; }
.hblab small { display: block; font-size: 11px; color: var(--muted); }
.hbtrack { position: relative; height: 16px; background: var(--chip); border-radius: 8px; }
.hbfill { height: 100%; border-radius: 8px; min-width: 3px; transition: width .25s; }
.hbcmp { position: absolute; inset-block-end: -5px; inset-inline-start: 0; height: 3px;
         border-radius: 3px; min-width: 3px; opacity: .9; }
.hbval { font-size: 12.5px; font-weight: 700; color: var(--sub); white-space: nowrap;
         min-width: 44px; text-align: left; }

/* یک میلهٔ چندتکه — ترکیب یک کل */
.sbwrap { margin: 10px 0 4px; }
.sb { display: flex; height: 22px; border-radius: 11px; overflow: hidden;
      background: var(--chip); gap: 2px; }
.sb span { display: block; height: 100%; }

/* ------------------------------------------ بارگذاری فایل با درصد */
.uplist { margin: 10px 0 4px; display: grid; gap: 10px; }
.uprow { border: 1px solid var(--line); border-radius: 10px; padding: 9px 11px;
         background: var(--field); }
.uptop { display: flex; justify-content: space-between; align-items: center; gap: 10px;
         font-size: 12.5px; margin-bottom: 6px; }
.upname { color: var(--ink); font-weight: 700; overflow: hidden; text-overflow: ellipsis;
          white-space: nowrap; direction: ltr; text-align: right; }
.uppct { color: var(--sub); white-space: nowrap; font-weight: 700; }
.uptrack { height: 7px; border-radius: 4px; background: var(--chip); overflow: hidden; }
.upfill { height: 100%; width: 0; border-radius: 4px; background: #2a78d6; transition: width .2s; }
.upmsg { font-size: 12px; color: var(--muted); margin-top: 6px; line-height: 1.8; }
.uprow.working .upfill { background: #eda100;
  background-image: linear-gradient(115deg, rgba(255,255,255,.45) 25%, transparent 25%,
                    transparent 50%, rgba(255,255,255,.45) 50%, rgba(255,255,255,.45) 75%,
                    transparent 75%); background-size: 18px 18px;
  animation: upmove .7s linear infinite; }
@keyframes upmove { from { background-position: 0 0; } to { background-position: 18px 0; } }
.uprow.done { border-color: var(--good); }
.uprow.done .upfill { background: var(--good); }
.uprow.done .uppct { color: var(--good); }
.uprow.bad  { border-color: var(--danger); }
.uprow.bad .upfill { background: var(--danger); }
.uprow.bad .uppct { color: var(--danger); }
.upok { background: var(--goodbg); color: var(--good); border-radius: 9px;
        padding: 9px 12px; font-size: 13px; font-weight: 700; }
@media (prefers-reduced-motion: reduce) { .uprow.working .upfill { animation: none; } }

/* ------------------------------ نوار پوشش روزها (کدام روز داده دارد) */
.cvstrip { display: flex; flex-wrap: wrap; gap: 4px; margin: 10px 0 8px; }
/* این «.cv» با «.cv»ِ عددِ کارت داشبورد (خط ۱۴۸) هم‌نام بود و چون پایین‌تر
 * نوشته شده بود، روی آن می‌نشست: عددِ هر کارت داشبورد در یک جعبهٔ ۲۷ پیکسلیِ
 * inline-grid می‌افتاد و «ریال» و خط توضیح روی هم سوار می‌شدند. روی گوشی کمتر
 * به چشم می‌آمد، روی تبلت کاملاً خراب دیده می‌شد. حالا محدود به همین نوار است. */
.cvstrip .cv, .vlegend .cv { min-width: 27px; height: 27px; border-radius: 7px; display: inline-grid;
      place-items: center; font-size: 11px; font-weight: 700; border: 1px solid var(--line); }
.cvstrip .cv.full, .vlegend .cv.full { background: #1baf7a; border-color: #1baf7a; color: #fff; }
.cvstrip .cv.part, .vlegend .cv.part { background: #eda100; border-color: #eda100; color: #2A2200; }
.cvstrip .cv.none, .vlegend .cv.none { background: var(--chip); color: var(--muted); }

/* ================================================== جدول‌های داده (.tbl)
 * تا نسخه ۹.۵۰ این کلاس اصلاً استایل نداشت: جدول‌ها بدون فاصله و بدون خط
 * رندر می‌شدند و دو ستون عددیِ کنار هم به‌هم می‌چسبیدند — «۱۱,۸۸۶,۳۱۹
 * ۱۷,۴۳۷,۲۳۰,۰۰۰» یک عدد بلند دیده می‌شد. */
.tblwrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 6px 0 2px;
           border: 1px solid var(--line); border-radius: 11px; background: var(--card); }
.tbl { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.tbl th, .tbl td {
  padding: 9px 12px; text-align: right; vertical-align: middle;
  white-space: nowrap; border-bottom: 1px solid var(--line);
}
/* خط جداکنندهٔ ستون‌ها — کم‌رنگ، فقط برای اینکه چشم مرز را پیدا کند */
.tbl th + th, .tbl td + td { border-inline-start: 1px solid var(--line); }
.tbl thead th {
  background: var(--chip); color: var(--sub); font-size: 12px; font-weight: 800;
  position: sticky; top: 0; z-index: 1;
}
.tbl tbody tr:last-child td { border-bottom: 0; }
.tbl tbody tr:nth-child(even) td { background: color-mix(in srgb, var(--field) 55%, transparent); }
.tbl tbody tr.warn td { background: var(--warnbg); }
.tbl tbody tr.bad  td { background: var(--badbg); }
/* ردیف سرگروه (مثلاً «یک روز» در مطالبات صندوق) — از ردیف عادی جدا بایستد */
.tbl tbody tr.subhead td { background: var(--field); border-top: 2px solid var(--line); }
/* خانهٔ عددی: ارقام هم‌عرض، چپ‌چین و بدون شکستن — تا ستون‌ها زیر هم بنشینند */
.tbl td.n, .tbl th.n {
  font-variant-numeric: tabular-nums; direction: ltr; text-align: left;
  font-feature-settings: "tnum" 1;
}
.tbl td:first-child { font-weight: 600; }
@media (max-width: 560px) { .tbl th, .tbl td { padding: 8px 9px; font-size: 12.5px; } }
/* ستون اول (نام) موقع لغزیدن افقی سرِ جایش می‌ماند، وگرنه روی گوشی
 * عدد می‌بینی و نمی‌دانی مال کیست. */
.tbl th:first-child, .tbl td:first-child {
  position: sticky; inset-inline-end: 0; z-index: 2;
  background: var(--card); border-inline-start: 1px solid var(--line);
}
.tbl thead th:first-child { background: var(--chip); z-index: 3; }
.tbl tbody tr:nth-child(even) td:first-child { background: color-mix(in srgb, var(--field) 92%, var(--card)); }
.tbl tbody tr.warn td:first-child { background: var(--warnbg); }
.tbl tbody tr.bad  td:first-child { background: var(--badbg); }
/* نام‌های بلند ستون اول را کوتاه می‌کنیم، وگرنه ستونِ چسبیده نصف صفحه
 * را می‌گیرد. متن کامل روی همان خانه به‌صورت راهنما می‌ماند. */
.tbl td:first-child { max-width: 46vw; overflow: hidden; text-overflow: ellipsis; }
@media (min-width: 700px) { .tbl td:first-child { max-width: 280px; } }


/* ---------- نوار شعبهٔ نمایشی ---------- */
.demobar { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px;
  padding: 9px 16px; background: repeating-linear-gradient(135deg,
    #FBEFD2 0 14px, #F6E7C2 14px 28px);
  color: #6B4F0C; border-bottom: 2px solid #D7A93A; font-size: 13px; }
.demobar b { font-weight: 700; flex: none; }
.demobar span { opacity: .9; }
body.dark .demobar { background: repeating-linear-gradient(135deg,
    #2A2413 0 14px, #241F10 14px 28px); color: #E3C570; border-bottom-color: #7A5F1A; }
@media (max-width: 520px) { .demobar { padding: 8px 12px; font-size: 12px; } }

/* ---------- کارهای پروژه ---------- */
.tgrp { border: 1px solid var(--line); border-radius: 8px; margin-bottom: 8px;
  overflow: hidden; background: var(--card); }
.tgrp > summary { cursor: pointer; padding: 9px 12px; font-size: 13.5px;
  background: var(--soft); display: flex; align-items: baseline; gap: 8px; }
.tgrp > summary b { font-weight: 800; }
.tgrp > summary .code { margin-inline-start: auto; }
.tgrp > summary::-webkit-details-marker { display: none; }
.tgrp .missrow { padding: 9px 12px; align-items: flex-start; }
.tgrp .missrow .sub { font-size: 11.5px; color: var(--sub); margin-top: 2px; line-height: 1.7; }
select.mini { font-size: 12px; padding: 3px 6px; height: auto; width: auto;
  flex: none; margin-inline-start: 8px; }
.hbtrack { height: 8px; background: var(--soft); border-radius: 4px; overflow: hidden;
  margin: 6px 0 2px; }
.hbfill { height: 100%; background: var(--ok, #2C7A4B); border-radius: 4px; }
td.bad, .tbl td.bad { color: #B3391F; font-weight: 700; }
tr.sum td { font-weight: 800; background: var(--soft); }

/* ---------- راهنمای قدم‌به‌قدم پروژه ---------- */
.stepr { display: flex; gap: 12px; align-items: flex-start; padding: 10px 0;
  border-bottom: 1px solid var(--line); }
.stepr:last-child { border-bottom: 0; }
.stepr .sn { flex: none; width: 24px; height: 24px; border-radius: 50%;
  border: 1.5px solid var(--gold, #B8871A); color: var(--gold, #B8871A);
  display: grid; place-items: center; font-size: 12px; font-weight: 800; margin-top: 2px; }
.stepr b { font-weight: 800; font-size: 14px; }
.stepr .sub { font-size: 12.5px; color: var(--sub); line-height: 1.8; margin-top: 2px; }
.warnpanel { border-color: #D7A93A; }
.warnpanel h3 { color: #8A6D00; }
.seedbox { border: 1px dashed var(--line); border-radius: 8px; padding: 12px 14px;
  margin-bottom: 10px; background: var(--soft); }
.seedbox b { display: block; font-weight: 800; font-size: 13.5px; }
.seedbox .sub { font-size: 12.5px; color: var(--sub); margin: 4px 0 9px; line-height: 1.8; }
.partybox .missrow { align-items: flex-start; }
.partybox .missrow a.tmoney { text-decoration: none; }
.linkbtn { border: 0; background: none; color: #B3391F; font: inherit; font-size: 12px;
  cursor: pointer; padding: 2px 6px; margin-inline-start: 8px; }
.linkbtn:hover { text-decoration: underline; }
.tkleft { flex: 1; min-width: 0; }
.tkbar { max-width: 220px; margin-top: 6px; }
.hbfill.full { background: var(--gold, #B8871A); }
.tkctl { display: flex; align-items: center; gap: 6px; flex: none; }
.pctwrap { display: inline-flex; align-items: center; gap: 3px; font-size: 12px; color: var(--sub); }
input.pctin { width: 62px; text-align: center; font-size: 13px; padding: 4px 6px;
  height: auto; direction: ltr; }
/* روش سنجش مقداری — «۲۰ از ۲۷ نقطه» به‌جای یک درصد حدسی */
input.pctin.qtyin { width: 54px; }
.qtywrap { gap: 4px; flex-wrap: nowrap; }
.qtywrap .unitlbl { font-size: 11px; color: var(--sub); white-space: nowrap;
  max-width: 78px; overflow: hidden; text-overflow: ellipsis; }
select.pctsel { font-size: 12px; padding: 4px 6px; height: auto; max-width: 190px; }
.btn.tiny { font-size: 12px; padding: 5px 10px; }
@media (max-width: 560px) {
  .tkctl { flex-wrap: wrap; justify-content: flex-end; }
  .qtywrap .unitlbl { max-width: 60px; }
  select.pctsel { max-width: 150px; }
}
.sub.blocked { color: #B3391F; font-weight: 700; }
.missrow.offrow { opacity: .5; }
.missrow.offrow b { text-decoration: line-through; }
.tgrp > summary .code.done { color: #2C7A4B; border-color: #2C7A4B; }

/* پیشرفت به تفکیک مرحله — کنار درصد کل، تا معلوم باشد کدام مخرج */
.projphase { padding: 9px 2px 9px 14px; border-bottom: 1px solid var(--chip); }
.projphase:last-child { border: 0; }
.phhd { display: flex; justify-content: space-between; align-items: baseline; gap: 10px;
  font-size: 13.5px; }
.projphase .tkbar { max-width: none; margin: 5px 0 3px; }
.projphase .sub { font-size: 11.5px; }
.projphase .tmoney.ok { color: #2C7A4B; }

/* زبانه‌های داخل صفحهٔ پروژه — روشن، جدا از منوی اصلی */
.ptabs { display: flex; gap: 6px; flex-wrap: wrap; margin: 4px 0 12px; }
.ptabs button { border: 1px solid var(--line); background: var(--field); color: var(--sub);
  border-radius: 9px; padding: 7px 13px; font-size: 12.5px; font-weight: 700;
  display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.ptabs button.on { background: var(--ink); border-color: var(--ink); color: var(--paper);
  font-weight: 900; }
.ptabs button .badge { background: #B3391F; color: #fff; border-radius: 9px;
  font-size: 10.5px; padding: 1px 6px; font-weight: 900; }
.ptabbody[hidden] { display: none !important; }

/* گفتگوی تیم محتوا */
.igchat { max-height: 420px; overflow-y: auto; display: flex; flex-direction: column;
  gap: 8px; padding: 4px 2px; }
.igmsg { background: var(--field); border: 1px solid var(--line); border-radius: 10px;
  padding: 8px 12px; max-width: 85%; align-self: flex-start; font-size: 13.5px; }
.igmsg.mine { align-self: flex-end; background: var(--tint, #F6F4ED); }
.igmsg b { display: block; font-size: 11.5px; color: var(--sub); margin-bottom: 2px; }
.igmsg .sub { display: block; font-size: 10.5px; color: var(--sub); margin-top: 3px;
  direction: ltr; text-align: left; }
.igsend { display: flex; gap: 8px; margin-top: 10px; }
.igsend input { flex: 1; }
.tnotes.blockedtxt { color: #B3391F; }

/* روتین روزانهٔ ادمین — چک‌لیست داخل گزارش */
.rtlist { display: flex; flex-direction: column; gap: 2px; margin: 4px 0 8px; }
.f.chk.rt { flex-direction: row; align-items: flex-start; gap: 8px; font-size: 12.5px;
  padding: 5px 2px; border-bottom: 1px dashed var(--chip); }
.f.chk.rt:last-child { border-bottom: 0; }
.f.chk.rt input { margin-top: 2px; width: 17px; height: 17px; flex: none; }

/* ----------------------------- صندوق فروش (SL-61) — لمسی و درشت */
.pxwrap { display: flex; gap: 14px; align-items: flex-start; }
.pxmenu { flex: 1.6; min-width: 0; }
.pxside { flex: 1; min-width: 260px; position: sticky; top: 8px;
  background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 12px;
  display: flex; flex-direction: column; gap: 10px; }
.pxcat { font-weight: 900; margin: 12px 0 6px; color: var(--sub); }
.pxgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.pxbtn { border: 1px solid var(--line); background: var(--card); border-radius: 12px;
  padding: 14px 10px; text-align: center; cursor: pointer; min-height: 74px; }
.pxbtn b { display: block; font-size: 15px; margin-bottom: 4px; }
.pxbtn span { color: var(--sub); font-size: 13px; }
.pxbtn:active { transform: scale(.97); }
/* کارت منوی صندوق‌دار: از button به div عوض شد (۱۰.۱۸.۰) — این‌ها را
   خودِ button رایگان می‌داد و حالا باید صریح نوشته شوند. */
.pxbtn { font: inherit; color: inherit; -webkit-tap-highlight-color: transparent;
  user-select: none; }
.pxbtn.pxdis { pointer-events: none; }
.pxbtn.inCart { border-color: var(--ink, #10130F); box-shadow: inset 0 0 0 1px var(--ink, #10130F); }
/* شمارندهٔ روی کارت صندوق‌دار — صندوق‌دار همان‌جا کم و زیاد می‌کند،
   بدون رفتن به سبدِ ته صفحه. */
.pxbstep { display: flex; align-items: center; justify-content: center; gap: 8px;
  margin-top: 8px; padding-top: 7px; border-top: 1px dashed var(--line); }

/* ---- فهرست «منو و قیمت اجرایی» (۱۰.۱۸.۰) ----
   تا اینجا یک ردیف flex با هفت کنترل بی‌برچسب بود و روی تبلت می‌پیچید. */
.pxmenucat { font-weight: 800; font-size: 13.5px; color: var(--sub);
  margin: 16px 0 4px; padding-bottom: 4px; border-bottom: 2px solid var(--line); }
.pxmenurow { display: grid; gap: 8px 12px; align-items: center; padding: 10px 0;
  border-bottom: 1px solid var(--line);
  grid-template-columns: minmax(140px, 1.1fr) minmax(300px, 1.1fr) auto; }
.pxmenuhead { display: flex; align-items: center; gap: 9px; min-width: 0; }
.pxmenuname { font-size: 14.5px; overflow-wrap: anywhere; }
.pxnothumb { display: flex; align-items: center; justify-content: center;
  background: var(--bg2, #F1EFE7); font-size: 19px; }
.pxmenufields { display: flex; gap: 8px; flex-wrap: wrap; }
.pxfield { display: flex; flex-direction: column; gap: 2px; flex: 1 1 84px; min-width: 0; }
.pxfield > span { font-size: 10.5px; color: var(--sub); }
.pxfield input { width: 100%; box-sizing: border-box; }
.pxmenuacts { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.pxmenuacts .mini { white-space: nowrap; }
@media (max-width: 900px) {
  .pxmenurow { grid-template-columns: 1fr; }
  .pxmenuacts { justify-content: stretch; }
  .pxmenuacts .mini { flex: 1 1 auto; }
}
.pxrow { display: flex; justify-content: space-between; align-items: center;
  border-bottom: 1px solid var(--line); padding: 7px 0; gap: 8px; }
.pxtotal { font-size: 19px; font-weight: 900; text-align: left; padding: 6px 0; }
.pxsubmit { font-size: 18px; padding: 14px; width: 100%; }
.pxask { background: var(--field); border: 1px solid var(--line); border-radius: 12px;
  padding: 12px; margin-bottom: 8px; }
.pxdisplay { text-align: center; padding: 10px; }
.pxcols { display: flex; gap: 16px; margin-top: 14px; }
.pxcol { flex: 1; background: var(--card); border: 1px solid var(--line);
  border-radius: 14px; padding: 14px; min-height: 300px; }
.pxcol h2 { margin: 0 0 12px; }
.pxnum { display: inline-block; font-size: 44px; font-weight: 900; margin: 8px;
  padding: 8px 22px; border-radius: 14px; background: var(--field); }
.pxcol:first-child .pxnum { background: var(--ink); color: var(--card); }
@media (max-width: 760px) {
  .pxwrap { flex-direction: column; }
  .pxside { position: static; width: 100%; }
}

/* فیش حرارتی — فقط موقع چاپ دیده می‌شود (قالب سپیدز، ۱۰.۹.۴) */
#pxprint { display: none; }
@media print {
  body > *:not(#pxprint) { display: none !important; }
  #pxprint { display: block !important; width: 72mm; margin: 0; padding: 2mm 2mm 0;
    font-family: Tahoma, IRAN, "Vazirmatn", sans-serif; font-size: 10pt; direction: rtl; color: #000;
    background: #fff; line-height: 1.6; }
  #pxprint .pxr { page-break-after: always; }
  #pxprint .pxr:last-child { page-break-after: auto; }
  #pxprint .pxr-b { font-weight: 900; }
  #pxprint .pxr-c { text-align: center; }
  #pxprint .pxr-s { font-size: .85em; }
  #pxprint .pxr-hr { border-top: 1.5px solid #000; margin: 1.5mm 0; height: 0; overflow: hidden; }
  #pxprint .pxr-hd { display: flex; justify-content: space-between; align-items: stretch; gap: 1.5mm; }
  #pxprint .pxr-cell { border: 1.5px solid #000; border-radius: 1.5mm; padding: 1mm 1.5mm; text-align: center; min-width: 17mm; }
  #pxprint .pxr-lbl { font-size: .8em; }
  #pxprint .pxr-big { font-size: 1.5em; font-weight: 900; line-height: 1.2; }
  /* ۱۰.۱۳۰ — شمارهٔ اشتراک = موبایل ۱۱ رقمی؛ درشت ولی در خانه جا شود */
  #pxprint .pxr-mid { font-size: 1.05em; font-weight: 900; line-height: 1.3; letter-spacing: -.02em; white-space: nowrap; }
  #pxprint .pxr-logo { flex: 1; display: flex; align-items: center; justify-content: center; text-align: center; }
  #pxprint .pxr-logo img { max-height: 16mm; max-width: 28mm; object-fit: contain; filter: grayscale(1); }
  #pxprint .pxr-col { display: flex; flex-direction: column; align-items: stretch; }
  #pxprint .pxr-under { text-align: center; font-weight: 900; font-size: .95em; margin-top: .6mm; }
  #pxprint .pxr-logo img[src^="brand/"] { max-height: 24mm; max-width: 30mm; }
  #pxprint .pxr-row2 { display: flex; justify-content: space-between; font-size: .9em; margin-top: 1mm; }
  #pxprint .pxr-kv { display: flex; justify-content: flex-start; gap: 1mm; }
  #pxprint .pxr-kv b { font-weight: 700; }
  #pxprint .pxr-tb { width: 100%; border-collapse: collapse; margin: 1mm 0; }
  #pxprint .pxr-tb th, #pxprint .pxr-tb td { padding: .6mm 1mm; text-align: right; vertical-align: top; }
  #pxprint .pxr-tb th { font-weight: 700; border-top: 1.5px solid #000; border-bottom: 1.5px solid #000; }
  #pxprint .pxr-tb.bands th { background: #000; color: #fff; border: 0; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  #pxprint .pxr-tb .pxr-n { text-align: center; white-space: nowrap; direction: ltr; }
  #pxprint .pxr-tb td:last-child { text-align: left; }
  /* ۱۰.۳۹.۱ — خط زیر هر قلم. نام قلم روی کاغذ ۸۰ میلی‌متری اغلب دو سطر
   * می‌شود («سرویس تنقلات»)، و بدون خط معلوم نیست سطر دوم دنبالهٔ همان قلم
   * است یا قلم بعدی. خط توپر انتخاب شد نه نقطه‌چین: پرینتر حرارتی تک‌بیتی
   * است و نقطه‌چینِ نازک روی بعضی درایورها اصلاً چاپ نمی‌شود. */
  #pxprint .pxr-tb tbody td { border-bottom: 1px solid #000; }
  #pxprint .pxr-tb tbody tr:last-child td { border-bottom: 0; }
  /* دلیل تخفیف، کمی تورفته زیر خودِ عدد */
  #pxprint .pxr-why { padding-right: 3mm; }
  #pxprint .pxr-band { display: flex; justify-content: space-between; align-items: center; margin: 1.5mm 0;
    padding: 1.2mm 2mm; border: 1.5px solid #000; border-radius: 1mm; font-size: 1.15em; font-weight: 900; }
  #pxprint .pxr-band.dark { background: #000; color: #fff; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  /* ۱۰.۱۱.۰ — سربرگ میز (فیش سالن) و برگهٔ دوم پیک */
  #pxprint .pxr-tbl { text-align: center; font-size: 1.35em; font-weight: 900;
    border: 1.5px solid #000; border-radius: 1mm; padding: 1mm 0; margin: 1.5mm 0; }
  #pxprint .pxr-cut { border-top: 1.5px dashed #000; margin: 4mm 0 2mm; height: 0; }
  #pxprint .pxr-blank { display: flex; justify-content: space-between; align-items: flex-end;
    gap: 2mm; margin: 2.2mm 0; }
  #pxprint .pxr-dots { flex: 1; border-bottom: 1px dotted #000; min-height: 1em; text-align: left; }
  /* خط‌کش کالیبراسیون */
  #pxprint .pxruler { position: relative; height: 14mm; margin: 2mm 0; }
  #pxprint .pxrtick { position: absolute; top: 0; }
  #pxprint .pxrtick i { display: block; width: 0; height: 6mm; border-right: 0.4mm solid #000; }
  #pxprint .pxrtick b { display: block; font-size: 7pt; transform: translateX(50%); }
  #pxprint .pxr-foot { text-align: center; font-weight: 700; letter-spacing: .5px; direction: ltr; margin-top: 1mm; }
  #pxprint .pxr-feed { height: 6mm; }
  /* ۱۰.۲۵۱ — QR پیگیری زیر فیش (مثل جلاتوهاوس) */
  #pxprint .pxr-qr { text-align: center; margin: 1.5mm 0; }
  /* ۱۰.۲۵۸ — نسخهٔ صندوق: برچسب بالای فیش و جدا شدن با برش از فیش مشتری */
  #pxprint .pxr-tilltag { text-align: center; font-weight: 900; border: 1px dashed #000; padding: 1mm; margin-bottom: 1.5mm; }
  #pxprint .pxr-till { page-break-before: always; }
  #pxprint .pxr-qrt { font-weight: 900; font-size: 1.05em; line-height: 1.5; }
  #pxprint .pxr-qri svg { width: 30mm; height: 30mm; display: block; margin: 1mm auto; }
  #pxprint .pxr-qrs { font-size: .85em; line-height: 1.5; }
  #pxprint .pxr-qre { font-weight: 900; margin-top: 1mm; border: 1.5px dashed #000; border-radius: 1mm; padding: .8mm 0; }
  @page { size: 80mm auto; margin: 0; }
}

/* ============================= کیوسک عکس‌دار (۹.۸۲) — پالت نان و لقمه */
.pxkiosk { --nl-dark: #323615; --nl-copper: #9D723D; --nl-cream: #F8F0E6;
  background: var(--nl-cream); border-radius: 18px; padding: 14px;
  color: var(--nl-dark); }
.pxktop { display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 10px; }
.pxkbrand { font-size: 20px; font-weight: 900; color: var(--nl-dark); }
.pxatexit { border: none; background: none; color: var(--nl-copper);
  font-size: 13px; cursor: pointer; opacity: .7; }
.pxattract { min-height: 70vh; display: flex; flex-direction: column;
  align-items: center; justify-content: center; text-align: center;
  background: linear-gradient(160deg, var(--nl-dark) 0%, #4a5020 100%);
  color: var(--nl-cream); }
.pxatlogo { font-size: 96px; line-height: 1; margin-bottom: 12px;
  filter: drop-shadow(0 6px 18px rgba(0,0,0,.35)); }
.pxattitle { font-size: 42px; font-weight: 900; margin: 0 0 6px;
  color: var(--nl-cream); }
.pxatsub { font-size: 18px; color: var(--nl-copper); margin-bottom: 34px; }
.pxatgo { font-size: 22px; font-weight: 900; padding: 18px 46px;
  border: none; border-radius: 999px; cursor: pointer;
  background: var(--nl-copper); color: #fff;
  box-shadow: 0 8px 24px rgba(0,0,0,.35);
  animation: pxpulse 2s ease-in-out infinite; }
@keyframes pxpulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.05); } }
.pxattract .pxatexit { margin-top: 26px; color: rgba(248,240,230,.5); }
.pxchips { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.pxchip { display: flex; align-items: center; gap: 6px; padding: 10px 16px;
  border-radius: 999px; border: 2px solid var(--nl-copper);
  background: #fff; color: var(--nl-dark); font-weight: 700; font-size: 15px;
  cursor: pointer; }
.pxchip.on { background: var(--nl-dark); border-color: var(--nl-dark); color: var(--nl-cream); }
.pxchipico { font-size: 18px; }
.pxcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 12px; }
.pxcard { display: flex; flex-direction: column; padding: 0; overflow: hidden;
  border: none; border-radius: 16px; background: #fff; cursor: pointer;
  text-align: right; box-shadow: 0 3px 10px rgba(50,54,21,.12);
  transition: transform .1s; }
.pxcard:active { transform: scale(.97); }
/* قاب عکس کارت (۱۰.۱۷.۹): ارتفاع ثابت نداریم — نسبت داریم.
   تا قبل از این ارتفاع روی ۱۱۰ پیکسل قفل بود ولی عرض کارت با پهنای صفحه
   عوض می‌شد؛ روی گوشی‌های پهن نسبت قاب به ۲٫۲ می‌رسید و سوژهٔ عمودی
   (قلیان) از بالا و پایین بریده می‌شد. حالا نسبت قاب را خودِ عکسِ آپلودشده
   تعیین می‌کند — pos.js آن را در --pxratio می‌نویسد. */
.pxcardimg { aspect-ratio: var(--pxratio, 16 / 10); height: auto; min-height: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: clamp(38px, 16vw, 64px); overflow: hidden;
  background: linear-gradient(150deg, #efe4d2, #e2d3ba); }
.pxcardimg img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pxcardname { display: block; padding: 8px 10px 2px; font-size: 14px;
  color: var(--nl-dark); }
.pxcardfoot { display: flex; justify-content: space-between; align-items: center;
  gap: 6px; padding: 2px 10px 10px; }
.pxcardprice { font-size: 12.5px; color: #6b6b58; white-space: nowrap; }
/* وقتی شمارنده روی کارت است، جا تنگ می‌شود و قیمت دو خط می‌افتد */
.pxcardfoot:has(.pxstep) .pxcardprice { font-size: 11px; }
.pxcardadd { width: 28px; height: 28px; border-radius: 50%; display: flex;
  align-items: center; justify-content: center; font-size: 20px; font-weight: 900;
  background: var(--nl-copper); color: #fff; }
/* شمارندهٔ روی کارت (۱۰.۱۷.۵) — مهمان تعداد را همان‌جا می‌بیند و کم می‌کند،
   بدون رفتن به سبدِ پایین صفحه. دکمه‌ها عمداً درشت‌اند: انگشت، نه ماوس. */
.pxstep { display: flex; align-items: center; gap: 4px; }
.pxstepb { width: 26px; height: 26px; min-width: 26px; padding: 0; border: none;
  border-radius: 50%; font-size: 17px; font-weight: 900; line-height: 1; cursor: pointer;
  background: var(--nl-copper); color: #fff; display: flex; align-items: center;
  justify-content: center; }
.pxstepb.ghost { background: #efe7da; color: var(--nl-dark); }
.pxstepb:active { transform: scale(.9); }
.pxstepn { min-width: 16px; text-align: center; font-size: 15px; font-weight: 800;
  color: var(--nl-dark); }
.pxcard[role="button"] { -webkit-tap-highlight-color: transparent; }

/* پنل تاشوی «پیگیری خرید روزانه» (۱۰.۱۷.۵) — همان قاب panel، با تیتر کلیک‌شدنی */
details.panel > summary { cursor: pointer; list-style: none; padding: 2px 0;
  display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
details.panel > summary::-webkit-details-marker { display: none; }
details.panel > summary::before { content: "▸"; display: inline-block; transition: transform .15s;
  color: var(--muted, #77735F); }
details.panel[open] > summary::before { transform: rotate(90deg); }
details.panel > summary b { font-size: 1.02em; }

/* پنجرهٔ افزودنی (۱۰.۱۷.۵) — روی موبایل از پایین، روی دسکتاپ وسط */
.pxsheet { position: fixed; inset: 0; z-index: 60; background: rgba(24,26,14,.5);
  display: flex; align-items: flex-end; justify-content: center; padding: 0; }
.pxsheetbox { background: #fff; width: 100%; max-width: 460px; border-radius: 20px 20px 0 0;
  padding: 20px 18px calc(20px + env(safe-area-inset-bottom)); text-align: right;
  box-shadow: 0 -8px 30px rgba(0,0,0,.25); }
.pxsheettitle { display: block; font-size: 20px; font-weight: 900; color: var(--nl-dark, #323615); }
.pxsheetsub { font-size: 14px; color: #6b6b58; margin-top: 2px; }
.pxsheethint { font-size: 13.5px; color: #6b6b58; line-height: 1.9; margin: 12px 0 10px; }
.pxsheetchips { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
.pxsheetacts { display: flex; gap: 10px; }
.pxsheetacts .btn { flex: 1; font-size: 16px; padding: 13px 10px; }
@media (min-width: 700px) {
  .pxsheet { align-items: center; }
  .pxsheetbox { border-radius: 20px; }
}

/* چیپ افزودنی (۱۰.۱۷.۵) — خاموش/روشن، نه رادیو: هیچ‌کدام هم انتخابی است */
.pxaddchip { border: 1.5px solid var(--nl-copper, #9b6b3f); background: #fff;
  color: var(--nl-dark, #323615); border-radius: 999px; padding: 9px 16px;
  font-size: 15px; font-weight: 700; cursor: pointer; }
.pxaddchip.on { background: var(--nl-copper, #9b6b3f); color: #fff; }
.pxaddchip.on::before { content: "✓ "; }

.pxkiosk .pxside { background: #fff; border-radius: 16px; padding: 12px; }
.pxkiosk .pxsubmit { background: var(--nl-dark); }
.pxthumb { width: 42px; height: 42px; object-fit: cover; border-radius: 8px;
  vertical-align: middle; margin-inline-end: 8px; }

/* ============================= نمایشگر آشپزخانه (KDS) */
/* ۱۰.۹.۴: زمینهٔ صفحه سفید؛ هر کارت تا حد مجاز یکسره سبز و بعدش یکسره قرمز،
 * شماره و زمان سفید — از آن سر آشپزخانه فقط رنگ کارت را می‌بینند و کافی است. */
.kdswrap { background: #ffffff; border-radius: 16px; padding: 14px; min-height: 78vh;
  border: 1px solid #e3e6dc; color: #1b1b1b; }
.kdstop { display: flex; justify-content: space-between; align-items: center; }
.kdstop h2 { color: #1b1b1b; margin: 0; }
.kdstop .btn.ghost { color: #1b1b1b; border-color: #c9cdb9; background: #fff; }
.kdsboard { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 14px; margin-top: 14px; }
.kdsempty { grid-column: 1/-1; text-align: center; color: #8b8f78;
  font-size: 22px; padding: 60px 0; }
.kdscard { background: #2C7A4B; border-radius: 14px; padding: 12px;
  border: 1px solid #23613c; color: #fff; display: flex;
  flex-direction: column; gap: 8px; box-shadow: 0 2px 8px rgba(0,0,0,.12); }
.kdscard.late { background: #D64533; border-color: #b3382a; animation: kdsblink 1.2s ease-in-out infinite; }
@keyframes kdsblink { 0%,100% { box-shadow: 0 2px 8px rgba(0,0,0,.12); } 50% { box-shadow: 0 0 0 5px rgba(214,69,51,.45); } }
.kdscard.done { opacity: .75; }
.kdshd { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.kdsno { font-size: 44px; font-weight: 900; line-height: 1; color: #fff; padding: 4px 6px; }
/* ۱۰.۳۶ — وقتی میز داریم، میز بزرگ است و شمارهٔ فیش کوچک و کنارش. آشپز اول
 * باید بداند برای کدام میز می‌پزد؛ شمارهٔ فیش کار صندوق است. */
.kdsno.small { font-size: 22px; opacity: .85; }
.kdstbl { display: flex; align-items: baseline; gap: 6px; color: #fff;
  background: rgba(0,0,0,.28); border-radius: 12px; padding: 2px 12px 4px; }
.kdstbl small { font-size: 15px; font-weight: 700; opacity: .9; }
.kdstbl b { font-size: 52px; font-weight: 900; line-height: 1; }
/* نام قلم کامل بیاید — بریده نشود و بشکند به سطر بعد */
.kdsit b, .kdsline b { white-space: normal; overflow-wrap: anywhere; }
.kdstime { font-size: 26px; font-weight: 900; direction: ltr; color: #fff; }
.kdstime.over { text-decoration: underline; }
.kdsitems { flex: 1; display: flex; flex-direction: column; gap: 4px; }
.kdsit { font-size: 16px; background: #fff; color: #1b1b1b; border-radius: 8px;
  padding: 6px 10px; }
.kdsbtn { border: none; border-radius: 10px; padding: 14px; font-size: 18px;
  font-weight: 900; cursor: pointer; background: #fff; color: #2C7A4B; }
.kdsbtn.deliver { background: #9D723D; color: #fff; }

/* سفارش نشسته (۹.۸۴) */
.pxdefer { display: flex; align-items: center; gap: 8px; font-size: 13.5px;
  padding: 4px 2px; cursor: pointer; user-select: none; }
/* نحوهٔ فروش و تخفیف صندوق (۹.۹۳) */
.pxchans { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.pxchan { border: 1.5px solid var(--line2); background: var(--field); color: var(--ink); border-radius: 999px;
  padding: 7px 14px; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; min-height: 40px; }
.pxchan.on { background: var(--ink); color: var(--card); border-color: var(--ink); }
/* ۱۰.۱۷۱ — اقلام منتظر در سبد بخش دیگر */
.pxchanb { display: inline-block; min-width: 18px; margin-inline-start: 6px; padding: 0 5px; border-radius: 999px;
  background: #d97706; color: #fff; font-size: 11px; font-weight: 800; line-height: 18px; text-align: center; }
.pxchanmv { flex-basis: 100%; text-align: start; }
.pxtiming { margin: 6px 0 10px; } .pxtiming summary { cursor: pointer; font-weight: 700; }
.pxtmtb { width: 100%; border-collapse: collapse; font-size: 12px; margin-top: 6px; }
.pxtmtb th, .pxtmtb td { border-bottom: 1px solid var(--line2); padding: 3px 5px; text-align: start; vertical-align: top; }
.pxtmtb td:last-child { direction: ltr; text-align: left; font-family: ui-monospace, monospace; font-size: 11px; }
.pxtmtb td.bad { color: #b91c1c; font-weight: 800; }
.pxsubmit.busy { opacity: .75; cursor: progress; }
.pxdisc { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 6px 0; }
/* کارت و PIN (۹.۹۵) */
.pxmodal { position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 900; display: flex;
  align-items: center; justify-content: center; padding: 16px; }
.pxmodalbox { background: var(--card); color: var(--ink); border-radius: 16px; padding: 18px; width: 320px; max-width: 100%;
  box-shadow: 0 12px 40px rgba(0,0,0,.3); display: flex; flex-direction: column; gap: 10px; }
.pxsecret { font-size: 24px; letter-spacing: 6px; text-align: center; padding: 10px; }
.pxpad { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.pxkey { min-height: 52px; font-size: 20px; font-weight: 800; border: 1px solid var(--line2); border-radius: 12px;
  background: var(--field); color: var(--ink); cursor: pointer; }
.pxkey.ok { background: var(--ink); color: var(--card); }
.pxdisc select { max-width: 200px; }
.kdsnote { font-size: 14px; font-weight: 700; color: #7a5a00;
  background: #fff3c4; border-radius: 8px; padding: 4px 10px; }
.kdsdue .tnotes { color: #fff; }

/* تقسیم فیش (۹.۸۸) */
.pxsplit { margin: 8px 0 12px; padding: 10px; border-radius: 12px; background: var(--field); }
.pxsplit .missrow { background: var(--card); }
.pxsub { font-size: 12.5px; color: var(--muted, #77735F); font-weight: 400; }

/* آشتی تنخواه (PC-62) */
.pctiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin: 10px 0; }
.pctile { background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 12px 14px;
  border-top: 5px solid var(--line); }
.pctile.ok { border-top-color: #2C7A4B; } .pctile.warn { border-top-color: #C99700; } .pctile.bad { border-top-color: #D64533; }
.pctl { font-size: 12.5px; color: var(--sub); } .pctv { font-size: 22px; font-weight: 900; margin-top: 4px; }
.pcts { font-size: 12px; color: var(--sub); margin-top: 2px; }

/* ---------------------------------------------- کاتالوگ v2 (CT-63) */
.subpanel { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; margin: 10px 0; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 6px 0; }
.chips input { flex: 1 1 140px; min-width: 120px; font-size: 12.5px; padding: 5px 8px; }
.chip { display: inline-flex; align-items: center; gap: 4px; font-size: 12px;
  background: var(--chip); border: 1px solid var(--line); border-radius: 999px; padding: 3px 10px; }
.chip.chipok  { border-color: var(--ok, #15803d); }
.chip.chipbad { border-color: var(--danger); background: transparent; }
.btn.small { font-size: 12px; padding: 5px 10px; }
.btn.ghost { background: transparent; color: var(--text); border: 1px solid var(--line); }
.chk { display: flex; align-items: center; gap: 8px; margin-top: 8px; font-size: 13px; }

/* =====================================================================
 * تبلت و نمایشگر بزرگ
 *
 * تا امروز همه‌چیز موبایل‌اول بود و بس: ستون محتوا روی ۸۸۰ پیکسل قفل
 * می‌شد و متن روی ۱۵ پیکسل می‌ماند. روی تبلت نتیجه‌اش این بود که یک
 * ستون باریک وسط صفحه بنشیند، دو طرفش خالی، و ریزمتن‌ها از فاصلهٔ عادیِ
 * دست‌گرفتن تبلت خوانده نشوند. اینجا فقط اندازه‌ها بزرگ می‌شوند؛ هیچ
 * چیدمانی عوض نمی‌شود تا رفتار صفحه‌ها همان بماند.
 * ===================================================================== */
@media (min-width: 860px) {
  body { font-size: 15.5px; }
  .screen { max-width: 1080px; padding: 22px 20px 80px; }

  .fhead h2 { font-size: 21.5px; }
  .code { font-size: 12px; padding: 2px 8px; }
  .hint { font-size: 13.5px; }
  .ftotal { font-size: 14px; }
  .mth { font-size: 15px; }

  .entry, .panel { padding: 18px; }
  .panel h3 { font-size: 15.5px; }
  .f > span { font-size: 12.5px; }
  .f input, .f select, .f textarea { font-size: 15.5px; padding: 11px 12px; }
  .btn { padding: 12px 26px; }
  .mini { font-size: 13px; padding: 6px 13px; }
  .err, .ok { font-size: 14px; }

  /* داشبورد: چهار کارت در یک ردیف، نه دو تا با نصف صفحه خالی */
  .cards { grid-template-columns: repeat(4, 1fr); gap: 12px; }
  .card { padding: 14px 16px; }
  .ct { font-size: 13px; }
  .cv { font-size: 21px; }
  .cv small, .cn { font-size: 12.5px; }
  .hero { padding: 26px; }
  .hlabel { font-size: 13.5px; }
  .hsub { font-size: 13px; }

  /* فهرست‌ها */
  .tline { font-size: 15.5px; }
  .tnotes { font-size: 13.5px; }
  .tmeta { font-size: 13px; }
  .bignum { font-size: 21px; }
  .empty { font-size: 14.5px; }
  .warn { font-size: 14px; }

  /* جدول‌ها روی تبلت جا دارند؛ ریز نگه داشتنشان فقط خواندن را سخت می‌کند */
  .tbl th, .tbl td { padding: 9px 12px; font-size: 14px; }
  .utable { font-size: 14.5px; }
  .utable th { font-size: 12.5px; }

  /* دکمه‌های خروجی اکسل: به جای ردیف‌های دندانه‌دار، ستون‌های هم‌عرض */
  .exports { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 8px; }
  .exports .btn { padding: 10px 8px; text-align: center; font-size: 13.5px; }
}

@media (min-width: 1280px) {
  body { font-size: 16px; }
  .screen { max-width: 1200px; }
  .cards { gap: 14px; }
  .exports { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); }
}

@media (min-width: 1700px) {
  .screen { max-width: 1340px; }
}

/* ---------- برنامهٔ پرداخت اقساطی غرفه (FH-51/۲) ---------- */
/* قسط پرداخت‌شده باید کم‌رنگ باشد، نه پررنگ — چشم باید روی چیزی برود که
 * هنوز کاری دارد. */
.tbl tbody tr.fhpaid td { color: var(--sub); }
.tbl tbody tr.fhpaid td:first-child { font-weight: 500; }
.tbl td .mini { padding: 3px 9px; font-size: 11.5px; margin-inline-start: 4px; }
.tbl td .mini.good { border-color: var(--good); color: var(--good); font-weight: 800; }
/* جعبهٔ ثبت واریز — داخل خانهٔ جدول باز می‌شود، پس عرضش را خودش می‌سازد */
.fhpay { display: flex; flex-wrap: wrap; gap: 7px; align-items: flex-end;
  background: var(--field); border: 1px solid var(--line); border-radius: 10px;
  padding: 9px; margin-top: 7px; min-width: 320px; white-space: normal; }
.fhpay .f { min-width: 120px; }
.fhpay .btn { padding: 7px 14px; }

/* ۱۰.۱۰.۱ — سرتیتر زیرگروه داخل کشوی منو (دفتر کل، دریافت و پرداخت…) */
.menuhead, .ditems .menuhead {
  display: block; padding: 8px 12px 3px; margin-top: 4px;
  font-size: 11px; font-weight: 700; letter-spacing: .2px; opacity: .55;
  border-top: 1px solid var(--line, rgba(0,0,0,.08)); cursor: default; text-align: right;
}
.menupop .menuhead:first-child, .ditems .menuhead:first-child { border-top: 0; margin-top: 0; }
/* ۱۰.۱۰.۱ — آیتم‌های داخل کشوی منو تا حالا سبکِ دکمه‌های نوار بالا (.tabs button) را
 * می‌گرفتند: قاب گرد و متن کم‌رنگ #CFCDC5 روی کارت روشن. اختصاصی‌تر می‌کنیم. */
.tabs .menupop .menuitem { border: 0; border-radius: 8px; color: var(--ink); background: transparent; font-weight: 500; }
.tabs .menupop .menuitem:hover { background: #F3F1EC; }
.tabs .menupop .menuitem.cur { background: var(--ink); color: var(--card); font-weight: 900; }
body.hasbrand .tabs .menupop .menuitem { color: var(--ink); border-color: transparent; }
body.hasbrand .tabs .menupop .menuitem.cur { color: var(--card); }  /* ۱۰.۱۴۳.۲ — گزینهٔ فعال روی شعبهٔ رنگی نامرئی بود */

/* ── ثبت‌نام بله ─────────────────────────────────────────────────────────
 * رنگِ سلول در جدولِ وضعیت. .ok/.warn/.bad از قبل معنی دیگری دارند
 * (کادر هشدار)، پس اسم جدا گرفتیم تا اشتباه روی هم نیفتد. */
.tbl td.cok   { color: var(--good);   font-weight: 600; }
.tbl td.cwarn { color: #9A6B12;       font-weight: 600; }
.tbl td.cbad  { color: var(--danger); }
.rowline {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  padding: 8px 0; border-bottom: 1px solid var(--line);
}
.rowline:last-child { border-bottom: 0; }
.tbl tbody tr.sel td { background: color-mix(in srgb, var(--accent) 12%, transparent); }

/* ── فهرست کاربران: انتخاب مجموعه و چیپ شعبه ───────────────────────────── */
.ubfwrap { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.ubfwrap > span { font-size: 12px; color: var(--muted); }
.ubfwrap .ubfilter { min-width: 11rem; }
.uchips { display: flex; flex-wrap: wrap; gap: 5px; margin: 6px 0 2px; }
.uchips .chip {
  font-size: 11.5px; padding: 2px 8px; border-radius: 99px;
  background: var(--field); border: 1px solid var(--line); color: var(--ink);
}
.uchips .chip.glob { background: var(--warnbg); border-color: #E8CE93; color: #7A5A0C; }
.uchips .chip.more { color: var(--muted); }

/* حسابی که تیک فقط‌خواندنی و دسترسی ثبت را با هم دارد — در فهرست کاربران
   باید از فاصله دیده شود، چون تنها نشانهٔ یک خرابیِ کاملاً بی‌صداست. */
.uchips .chip.stuck{background:#FAE7E5;color:#9B2A2F;border-color:#E5B9B4;font-weight:700}

/* ۱۰.۲۳ — «برگهٔ من کجاست؟» و خط «نوبت» */
.trackp .missrow.late { border-inline-start: 3px solid var(--amber, #f59e0b); }
.nextline, .nextwho { color: #b45309; font-weight: 700; }
.flashcard { animation: flashcard 1.6s ease-out 1; }
@keyframes flashcard { 0% { box-shadow: 0 0 0 4px rgba(245,158,11,.7); } 100% { box-shadow: 0 0 0 0 rgba(245,158,11,0); } }

/* ---------- ۱۰.۲۳ نردبان قیمت (نبض منو) ---------- */
.ladder { margin: 10px 0 4px; font-size: 13px; }
.ladder > b { display: block; margin-bottom: 8px; }
.ladderrows { display: grid; gap: 6px; }
.ladrow { display: grid; grid-template-columns: 1.1fr 1.2fr 2fr 1.6fr; gap: 10px; align-items: center;
  padding: 6px 10px; background: var(--field); border: 1px solid var(--line); border-radius: 10px; }
.ladrow.empty { border-style: dashed; color: var(--muted); }
.ladrow.empty .ladl::after { content: " — خالی"; color: var(--danger); font-weight: 700; }
.ladl { font-weight: 700; }
.ladr { color: var(--sub); font-size: 12px; direction: rtl; }
.ladbar { height: 10px; background: var(--chip); border-radius: 6px; overflow: hidden; }
.ladbar i { display: block; height: 100%; background: var(--accent, var(--gold)); border-radius: 6px; }
.ladv { font-size: 12px; color: var(--sub); white-space: nowrap; }
@media (max-width: 720px) { .ladrow { grid-template-columns: 1fr 1fr; } .ladbar { grid-column: 1 / -1; } .ladv { grid-column: 1 / -1; white-space: normal; } }

/* =====================================================================
 * ۱۰.۲۳ — پوستهٔ Toast
 * پالت: نارنجی Toast برای هر چیزِ «کنش» (دکمهٔ اصلی، تبِ فعال، عدد قهرمان)،
 * زغالی برای نوار و حالت تیره، کاغذِ گرم برای زمینه، کارت سفید با حاشیهٔ نرم.
 * قاعده‌ها همان‌اند؛ فقط توکن‌ها و چند جای «متن روی رنگ» عوض شده‌اند.
 * ===================================================================== */
:root {
  --accent: #F24C05; --accent-ink: #FFFFFF; --accent-soft: #FFE9DE; --accent-deep: #C93C00;
  --gold: var(--accent);
  --paper: #F6F4F0; --card: #FFFFFF; --line: #E7E3DC; --line2: #CFCAC1;
  --field: #FBFAF8; --chip: #F1EEE8;
  --ink: #1B1D22; --sub: #4F5259; --muted: #858892;
  --topbg: #1B1D22; --topink: #F6F4F0;
  --r: 14px;
  --shadow: 0 1px 2px rgba(20,20,20,.04), 0 8px 24px -14px rgba(20,20,20,.16);
}
body.dark {
  --accent: #FF5E1F; --accent-ink: #FFFFFF; --accent-soft: #3A2117; --accent-deep: #FF7A45;
  --paper: #15171B; --card: #1E2126; --line: #2C3037; --line2: #3A3F48;
  --field: #23262C; --chip: #2A2E35;
  --ink: #ECEAE4; --sub: #B4B6BE; --muted: #8E9099;
  --topbg: #0F1013; --topink: #ECEAE4;
  --shadow: 0 1px 2px rgba(0,0,0,.4), 0 8px 24px -14px rgba(0,0,0,.6);
}
.top { background: var(--topbg); color: var(--topink); }
.tabs { background: var(--topbg); }
/* متن روی نارنجی سفید است، نه سیاه — همان قاعدهٔ Toast */
.login button, .tabs button.on, .menugroup > button.on, .pill.chef, .permtabs .pcount,
.permtabs .mini.on .pcount, .prbadge.imp, .kindlist .mini.on, body.dark .btn, body.dark .starbtn.on,
.mini.pick.on { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
.login button { box-shadow: 0 6px 18px -8px var(--accent); }
.btn { background: var(--accent); color: var(--accent-ink); box-shadow: 0 6px 18px -10px var(--accent); }
.btn:hover { background: var(--accent-deep); }
.btn.ghost { background: transparent; color: var(--sub); box-shadow: none; }
.btn.ghost:hover { background: var(--chip); }
.menugroup > button.on .badge { background: rgba(0,0,0,.28); }
.hero { background: linear-gradient(135deg, #1B1D22 0%, #2A2D34 100%); }
.hnum { color: var(--accent-deep); color: #FF7A45; }
.card, .panel, .ucard { box-shadow: var(--shadow); }
.card { padding: 14px 16px; }
.card .ct { font-size: 12px; color: var(--sub); font-weight: 700; }
.card .cv { font-size: 22px; font-weight: 900; margin: 4px 0 2px; }
.ucard:hover { border-color: var(--accent); }
.f input:focus, .f select:focus, .f textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.whyline { border-right-color: var(--accent); background: var(--accent-soft); }
.pchk:has(input:checked) { border-color: var(--accent); background: var(--accent-soft); }
.ticket { border-right-color: var(--accent); }
.principle b { color: var(--accent-deep); }
.chipstar { color: var(--accent); }
.tbl tbody tr.sel td { background: color-mix(in srgb, var(--accent) 12%, transparent); }
body.hasbrand .tabs > button.on, body.hasbrand .menugroup > button.on { background: #FFFFFF; color: var(--brand); border-color: #FFFFFF; }
body.hasbrand .menugroup > button.on .badge { background: var(--brand); color: var(--brand-ink); }
/* برند روی نوار می‌ماند؛ «کنش» همه‌جا نارنجی است — یک زبان برای همهٔ شعبه‌ها */
body.hasbrand .btn:not(.ghost):not(.danger) { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
body.hasbrand .btn:not(.ghost):not(.danger):hover { background: var(--accent-deep); }
body.hasbrand .menuitem.cur { background: var(--accent-soft); color: var(--accent-deep); }

/* ---------- نمای کلی گروه ---------- */
.ovw { margin-bottom: 18px; }
.ovhero { display: flex; justify-content: space-between; align-items: flex-end; gap: 10px; flex-wrap: wrap; margin: 2px 0 12px; }
.ovhero h2 { font-size: 22px; font-weight: 900; letter-spacing: -.2px; }
.ovdate { font-size: 12.5px; color: var(--muted); margin-top: 2px; }
.ovtodo { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.ovtd { display: inline-flex; align-items: center; gap: 8px; background: var(--accent-soft); color: var(--ink);
  border: 1px solid color-mix(in srgb, var(--accent) 35%, transparent); border-radius: 999px; padding: 7px 14px; font-size: 13px; text-align: right; }
.ovtd b { color: var(--accent-deep); }
.ovtd span { color: var(--sub); font-size: 12px; }
.kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 12px; }
.kpi { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: 12px 14px; box-shadow: var(--shadow); min-width: 0; }
.kpi .kt { font-size: 12px; font-weight: 700; color: var(--sub); }
.kpi .kv { font-size: 21px; font-weight: 900; margin: 4px 0 2px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; letter-spacing: -.3px; }
.kpi .ks { font-size: 11.5px; color: var(--muted); }
.delta { display: inline-block; font-size: 12px; font-weight: 800; border-radius: 999px; padding: 2px 9px; white-space: nowrap; letter-spacing: 0; }
.delta.up { background: var(--goodbg); color: var(--good); }
.delta.down { background: var(--badbg); color: var(--danger); }
.delta.flat { background: var(--chip); color: var(--sub); }
.delta.na { background: transparent; color: var(--muted); font-weight: 600; padding-inline: 0; }
.ovtrend { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: 14px 14px 8px; box-shadow: var(--shadow); margin-bottom: 12px; }
.ovh { font-size: 14px; font-weight: 900; margin-bottom: 10px; }
.ovbars { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 6px; align-items: end; direction: rtl; }
.ovcol { display: flex; flex-direction: column; justify-content: flex-end; align-items: center; min-width: 0;
         background: none; border: 0; padding: 4px 0 2px; margin: 0; font: inherit; color: inherit; cursor: pointer; border-radius: 8px; }
.ovcol.sel { background: var(--accent-soft); }
.ovunit { display: inline-block; font-size: 12px; font-weight: 800; color: var(--sub); background: var(--field); border-radius: 999px; padding: 2px 10px; margin: -4px 0 10px; }
.ovinfo { font-size: 13px; color: var(--ink); background: var(--field); border-radius: 10px; padding: 8px 11px; margin: 10px 0 6px; line-height: 1.8; }
.ovtk { width: 100%; display: flex; justify-content: center; align-items: flex-end; }
.ovbar { width: 100%; max-width: 40px; height: max(3px, calc(var(--h, 0) * 150px)); background: var(--accent); border-radius: 6px 6px 3px 3px; transition: height .35s ease, width .35s ease; }
.ovcol.nil .ovbar { background: var(--line); }
.ovcol.nil .ovv { color: var(--muted); font-weight: 600; }
.ovcol.wknd .ovbar { background: var(--accent-deep); }
.ovcol.today .ovbar { background: color-mix(in srgb, var(--accent) 45%, var(--card)); border: 1px dashed var(--accent); }
.ovv { font-size: 13.5px; color: var(--ink); font-weight: 800; white-space: nowrap; margin-bottom: 4px; line-height: 1.2; font-variant-numeric: tabular-nums; }
.ovd { display: flex; flex-direction: column; align-items: center; margin-top: 5px; line-height: 1.25; }
.ovd b { font-size: 12px; color: var(--sub); font-weight: 800; }
.ovd small { font-size: 10.5px; color: var(--muted); white-space: nowrap; }
.ovcol.wknd .ovd small { color: var(--accent-deep); font-weight: 700; }
.ovd .ws { display: none; }
@media (max-width: 1250px) and (min-width: 721px) { .ovd .wf { display: none; } .ovd .ws { display: block; } }
.ovgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(290px, 100%), 1fr)); gap: 10px; margin-bottom: 12px; }
.ovcard { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: 12px 14px; text-align: right; box-shadow: var(--shadow);
  color: var(--ink); cursor: pointer; transition: border-color .15s, transform .15s; font: inherit; }
.ovcard:hover { border-color: var(--accent); transform: translateY(-1px); }
.ovcard.cur { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.ovbh { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; font-size: 14px; }
.ovdot { width: 10px; height: 10px; border-radius: 50%; flex: none; }
.ovrow { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 8px; padding: 3px 0; font-size: 13px; }
.ovl { color: var(--sub); }
.ovn { font-weight: 900; font-size: 15px; white-space: nowrap; }
.ovsunit { font-size: 11px; color: var(--muted); margin-top: 8px; }
.ovspark { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 5px; align-items: end; margin: 2px 0 6px; direction: rtl; }
.ovsc { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; min-width: 0; height: 92px; }
.ovsc i { width: 100%; max-width: 26px; height: max(3px, calc(var(--h, 0) * 50px)); background: color-mix(in srgb, var(--accent) 55%, var(--card)); border-radius: 4px 4px 0 0; }
.ovsc.wknd i { background: color-mix(in srgb, var(--accent) 80%, var(--card)); }
.ovsc.today i { background: var(--accent); }
.ovsc.nil i { background: var(--line); }
.ovsc em { font-style: normal; font-size: 10.5px; font-weight: 800; color: var(--ink); line-height: 1.2; margin-bottom: 3px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ovsc.nil em { color: var(--muted); font-weight: 600; }
.ovsc small { font-size: 10px; color: var(--muted); margin-top: 3px; line-height: 1.1; white-space: nowrap; }
.ovfoot { font-size: 11.5px; color: var(--muted); }
.ovfoot .bad { color: var(--danger); font-weight: 700; }
.ovnodata { font-size: 12.5px; color: var(--muted); background: var(--field); border: 1px dashed var(--line2); border-radius: 12px; padding: 9px 12px; margin-bottom: 12px; }
.ovins { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 8px; margin-bottom: 4px; }
.ovin { display: flex; gap: 10px; align-items: flex-start; background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; font-size: 13px; box-shadow: var(--shadow); }
.ovin .ovico { font-weight: 900; flex: none; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; font-size: 12px; }
.ovin.up .ovico { background: var(--goodbg); color: var(--good); }
.ovin.down .ovico { background: var(--badbg); color: var(--danger); }
.ovin.stale .ovico { background: var(--warnbg); color: #854F0B; }
@media (max-width: 720px) {
  .kpis { grid-template-columns: repeat(2, 1fr); }
  .kpi .kv { font-size: 18px; }
  /* گوشی: هر روز یک ردیف افقی «روز | نوار | عدد» */
  .ovbars { grid-auto-flow: row; grid-auto-columns: auto; gap: 2px; }
  .ovcol { display: grid; grid-template-columns: 74px 1fr 58px; align-items: center; gap: 8px; padding: 3px 6px; text-align: right; }
  .ovcol .ovd { order: 1; flex-direction: row; gap: 5px; margin: 0; justify-content: flex-start; }
  .ovcol .ovd b { order: 2; } .ovcol .ovd small { order: 1; font-size: 11.5px; }
  .ovcol .ovtk { order: 2; justify-content: flex-start; height: 16px; background: var(--field); border-radius: 5px; }
  .ovcol .ovbar { order: 0; max-width: none; height: 100%; width: max(3px, calc(var(--h, 0) * 100%)); border-radius: 5px; }
  .ovcol .ovv { order: 3; margin: 0; font-size: 13px; text-align: left; }
  .ovsc em { font-size: 11px; }
  .ovhero h2 { font-size: 19px; }
}

/* ---------- جست‌وجوی سراسری ---------- */
.searchbtn { gap: 7px; }
.searchbtn kbd { font: 700 10px/1 IRAN, Vazirmatn, sans-serif; border: 1px solid rgba(255,255,255,.35); border-radius: 5px; padding: 3px 5px; opacity: .8; direction: ltr; }
@media (max-width: 720px) { .searchbtn .sbl, .searchbtn kbd { display: none; } }
.cmdk { position: fixed; inset: 0; z-index: 400; background: rgba(15,16,20,.45); backdrop-filter: blur(3px); display: flex; justify-content: center; align-items: flex-start; padding: 8vh 12px 12px; }
.cmdkbox { width: min(640px, 100%); background: var(--card); color: var(--ink); border-radius: 16px; box-shadow: 0 30px 80px -20px rgba(0,0,0,.5); overflow: hidden; border: 1px solid var(--line); }
.cmdkin { width: 100%; border: 0; border-bottom: 1px solid var(--line); background: var(--card); color: var(--ink); padding: 16px 18px; font-size: 16px; outline: none; }
.cmdkin::placeholder { color: var(--muted); }
.cmdklist { max-height: 60vh; overflow-y: auto; padding: 6px; }
.cmdkg { font-size: 11px; font-weight: 800; color: var(--muted); padding: 8px 12px 4px; letter-spacing: .2px; }
.cmdkit { display: flex; align-items: center; gap: 12px; width: 100%; text-align: right; background: transparent; border: 0; border-radius: 10px; padding: 9px 12px; color: var(--ink); font: inherit; }
.cmdkit.sel, .cmdkit:hover { background: var(--accent-soft); }
.cmdkic { width: 30px; height: 30px; border-radius: 9px; background: var(--chip); display: grid; place-items: center; flex: none; font-size: 14px; }
.cmdkt { display: flex; flex-direction: column; min-width: 0; }
.cmdkt b { font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cmdkt small { font-size: 12px; color: var(--sub); }
.cmdkempty { padding: 22px 14px; color: var(--muted); font-size: 13px; text-align: center; }
/* ۱۰.۲۳۱ — جست‌وجوی جامع: جواب کوتاه زیر پرسش، بخش بی‌دسترسی، کادر «بپرس» در راهنما */
.cmdkans { margin: 0 12px 8px 12px; padding: 10px 12px; border-radius: 10px; background: var(--chip); font-size: 13px; line-height: 1.9; color: var(--ink); }
.cmdkans p { margin: 0 0 6px; }
.cmdkans ol { margin: 0 0 8px; padding-inline-start: 20px; }
.cmdkans .mini { margin-top: 2px; }
.cmdkit.lock { opacity: .62; }
.cmdkit.lock .cmdkic { filter: grayscale(1); }
.cmdkin::-webkit-search-cancel-button { cursor: pointer; }
.gask { display: flex; gap: 8px; margin: 0 0 14px; }
.gask input { flex: 1; min-width: 0; padding: 11px 14px; border-radius: 12px; border: 1px solid var(--line); background: var(--card); color: var(--ink); font: inherit; }
@media (max-width: 720px) { .cmdk { padding-top: 10px; } .cmdklist { max-height: 72vh; } }
/* حالت تیره برای ردیف‌های رنگی — تا اینجا زمینهٔ روشن با متن روشن می‌ماند و خوانا نبود */
body.dark .missrow.late { background: var(--warnbg); }
body.dark .missrow.intr { background: #1E2A38; }
body.dark .missrow.pxold { background: var(--badbg); }

/* ---------- آفر روز (۱۰.۲۴) ---------- */
.offcard { display: grid; grid-template-columns: 150px 1fr; gap: 0; background: var(--card); border: 1px solid var(--line); border-radius: 16px; overflow: hidden; box-shadow: var(--shadow); }
.offcard img, .offnoimg { width: 100%; height: 100%; min-height: 130px; object-fit: cover; display: block; }
.offnoimg { display: grid; place-items: center; font-size: 42px; background: linear-gradient(135deg, var(--accent-soft), var(--chip)); }
.offt { padding: 12px 14px; display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.offbrand { font-size: 11.5px; color: var(--accent-deep); font-weight: 800; }
.offt > b { font-size: 16px; }
.offbody { font-size: 13px; color: var(--sub); white-space: pre-line; line-height: 1.7; }
.offmeta { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin-top: auto; font-size: 13px; }
.offprice { font-weight: 900; color: var(--accent-deep); display: inline-flex; gap: 8px; align-items: baseline; }
.offprice s { color: var(--muted); font-weight: 400; font-size: 12px; }
.offtime { color: var(--sub); font-size: 12px; }
.offcard.small { grid-template-columns: 96px 1fr; border-radius: 12px; box-shadow: none; }
.offcard.small img, .offcard.small .offnoimg { min-height: 90px; }
.offcard.small .offt { padding: 8px 10px; } .offcard.small .offt > b { font-size: 14px; } .offcard.small .offnoimg { font-size: 28px; }
.offweek { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
.offday { border: 1px solid var(--line); border-radius: 14px; padding: 10px; background: var(--field); display: flex; flex-direction: column; gap: 8px; }
.offday.today { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.offday.empty { border-style: dashed; }
.offdayh { display: flex; justify-content: space-between; align-items: center; }
.offnone { color: var(--muted); font-size: 12.5px; text-align: center; padding: 14px 0; }
.offedit { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 10px; display: flex; flex-direction: column; gap: 8px; }
.offrow2 { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
/* ۱۰.۲۷۷ — ردیف‌های فرم در کارت شریک روی گوشی می‌شکنند، نه اینکه صفحه را پهن کنند */
.offrow2 > input { min-width: 0; max-width: 100%; }
.refcard, .refdetail { min-width: 0; }
.offthumb { width: 120px; height: 90px; border-radius: 10px; border: 1px dashed var(--line2); background: var(--chip); display: grid; place-items: center; overflow: hidden; cursor: pointer; color: var(--sub); font-size: 13px; flex: none; }
.offthumb img { width: 100%; height: 100%; object-fit: cover; }
.offacts { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.offdated { border: 1px solid var(--line); border-radius: 12px; padding: 10px; margin-bottom: 8px; display: flex; flex-direction: column; gap: 8px; }
.offdatedh { font-weight: 800; font-size: 13px; }
@media (max-width: 520px) { .offcard { grid-template-columns: 1fr; } .offcard img, .offnoimg { min-height: 160px; max-height: 220px; } .offcard.small { grid-template-columns: 96px 1fr; } .offcard.small img { min-height: 90px; } }

/* ---------- شرکای معرف (۱۰.۲۵) ---------- */
.refbr { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.refbrc { display: inline-flex; align-items: center; gap: 6px; background: var(--field); border: 1px solid var(--line); border-radius: 999px; padding: 5px 11px; font-size: 12.5px; }
.refbrc i { width: 9px; height: 9px; border-radius: 50%; }
.refcard { border: 1px solid var(--line); border-radius: 14px; padding: 12px 14px; margin-bottom: 10px; background: var(--card); box-shadow: var(--shadow); }
.refcard.off { opacity: .6; }
.refh { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 15px; }
.refsub { font-size: 12.5px; color: var(--sub); margin: 4px 0 8px; }
.refstats { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; margin-bottom: 8px; }
.refstats > div { background: var(--field); border-radius: 10px; padding: 8px 10px; }
.refstats b { display: block; font-size: 16px; }
.refstats small { color: var(--muted); font-size: 11.5px; }
.refdetail { border-top: 1px dashed var(--line); margin-top: 10px; padding-top: 10px; display: flex; flex-direction: column; gap: 8px; }
.refpre { white-space: pre-wrap; font: inherit; font-size: 13px; background: var(--field); border-radius: 10px; padding: 10px; line-height: 1.8; }
.offacts a.mini { text-decoration: none; display: inline-block; }

/* ------------------------------------------- نمای ساده (۱۰.۳۱)
 * برای همکارانی که فقط چند کار مشخص دارند: بدون کشو، بدون گروه، همه‌چیز
 * درشت. اندازه‌ها عمداً بزرگ‌اند — روی گوشی با انگشت و بدون عینک. */
.simplenav { flex-wrap: wrap; row-gap: 8px; padding: 0 12px 12px; }
/* روی گوشی نوار .tabs پنهان می‌شود چون جایش کشوی «☰ منو» است — ولی در نمای
 * ساده کشویی وجود ندارد، پس این ردیف باید بماند وگرنه کاربر داخل یک فرم
 * گیر می‌کند بی‌آنکه راهی به بخش بعدی داشته باشد. */
@media (max-width: 720px) { .tabs.simplenav { display: flex !important; } }
.simplenav .sbtn { white-space: nowrap; border: 1px solid #3A3B3E; background: transparent;
  color: #EDEBE4; border-radius: 12px; padding: 11px 16px; font: inherit; font-size: 16px;
  font-weight: 700; cursor: pointer; display: inline-flex; align-items: center; gap: 7px; }
.simplenav .sbtn.on { background: var(--gold); border-color: var(--gold); color: var(--ink); font-weight: 900; }
.simplenav .sbtn.on .badge { background: var(--ink); }

.shome { padding: 6px 2px 18px; }
.shtitle { margin: 10px 4px 16px; font-size: 21px; font-weight: 900; }
.shgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.shtile { position: relative; display: flex; align-items: center; gap: 13px; text-align: start;
  background: var(--card); border: 1px solid var(--line); border-radius: 16px;
  padding: 18px 16px; cursor: pointer; font: inherit; color: inherit; min-height: 86px;
  box-shadow: 0 1px 2px rgba(0,0,0,.05); }
.shtile:hover { border-color: var(--gold); box-shadow: 0 3px 10px rgba(0,0,0,.09); }
.shic { font-size: 30px; line-height: 1; flex: none; }
.shtx { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.shtx b { font-size: 18px; font-weight: 900; }
.shtx small { font-size: 13.5px; opacity: .72; line-height: 1.6; }
.shtile .badge { position: absolute; inset-block-start: 10px; inset-inline-start: 10px; font-size: 13px; }
.shfoot { margin: 18px 4px 0; font-size: 13.5px; opacity: .65; line-height: 1.8; }

/* لینک فرم استخدام روی صفحهٔ اصلی (۱۰.۵۶) */
.aplybox { margin: 18px 0 0; padding: 14px 16px; border: 1px solid var(--line, #E2DFD6);
           border-radius: 16px; background: var(--card, #fff); }
.aplybox h3 { margin: 0 0 6px; font-size: 16px; font-weight: 900; }
.aplybox .hint { margin: 0 0 10px; }
.aplyurl { direction: ltr; text-align: left; font-family: monospace; font-size: 13px;
           background: rgba(127,127,127,.09); border-radius: 10px; padding: 9px 11px;
           word-break: break-all; user-select: all; margin-bottom: 10px; }
.aplybox .acts { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 480px) { .aplybox .acts .btn { flex: 1 1 auto; } }

/* در نمای ساده نوار بالا هم سبک‌تر می‌شود: ماه و برند فرعی‌اند */
body.simple .top { padding: 11px 14px; }
body.simple .bsub { font-size: 12.5px; }
@media (max-width: 560px) {
  .shgrid { grid-template-columns: 1fr; }
  .simplenav { gap: 6px; row-gap: 6px; padding: 0 10px 10px; }
  .simplenav .sbtn { font-size: 14px; padding: 8px 11px; gap: 5px; }
  .shtile { min-height: 76px; padding: 15px 14px; }
  .shic { font-size: 26px; }
  .shtx b { font-size: 17px; }
}

/* ---------------------- منوی QR مهمان (۱۰.۶۰) ---------------------- */
.qmpub .aplyurl { margin-bottom: 10px; }
.qmlangs { display: flex; flex-wrap: wrap; gap: 14px; margin: 10px 0 4px; }
.qmcats { display: grid; gap: 10px; margin-top: 8px; }
.qmcat { display: grid; grid-template-columns: 74px 1fr 1fr auto auto; gap: 10px; align-items: end;
  background: #FAF8F3; border: 1px solid var(--line, #e6e3dd); border-radius: 12px; padding: 10px; }
.qmcat.off { opacity: .55; }
.qmcat input.num { text-align: center; }
.qmcat > .f { margin: 0; }
.qmcat > .chk { align-self: center; white-space: nowrap; }
.qmcat > .mini { align-self: center; }
.qmsearch { width: 100%; margin: 8px 0 12px; }
.qmitem { display: grid; grid-template-columns: 52px 1fr auto auto; gap: 10px; align-items: center;
  padding: 7px 4px; border-bottom: 1px solid var(--line, #e6e3dd); }
.qmitem.off { opacity: .5; }
.qmthumb { width: 52px; height: 52px; border-radius: 10px; overflow: hidden; background: #EFE8D9;
  display: grid; place-items: center; cursor: pointer; font-size: 18px; }
.qmthumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.qmthumb.big { width: 110px; height: 110px; border-radius: 14px; font-size: 13px; text-align: center; }
.qmnm { min-width: 0; display: flex; flex-direction: column; line-height: 1.6; }
.qmnm small { color: #8d9490; font-size: 11.5px; direction: ltr; }
.qmpr { font-weight: 800; white-space: nowrap; }
.qmedit { grid-column: 1 / -1; background: #FAF8F3; border: 1px solid var(--line, #e6e3dd);
  border-radius: 14px; padding: 12px; margin: 8px 0 4px; }
.qmrow2 { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.qmtags { display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: center; }
.qmtags .f.chk { margin: 0; white-space: nowrap; }
.qmtags > .f:last-child { min-width: 150px; }
@media (max-width: 620px) {
  .qmcat { grid-template-columns: 74px 1fr; }
  .qmcat > .f:nth-child(3) { grid-column: 1 / -1; }
  .qmcat > .chk, .qmcat > .mini { grid-column: auto; justify-self: start; }
}
/* ۱۰.۸۳ — قلمِ منوی QR که به صندوق وصل است */
.qmnm small.qmlink { direction: rtl; color: #1F3A2E; background: #EAF3EC; border-radius: 6px; padding: 1px 7px; width: max-content; font-size: 11px; margin-top: 2px; }

/* ---------- کمپین (۱۰.۸۶) ---------- */
.campcard { border: 1px solid var(--line); border-radius: 14px; padding: 12px; background: var(--field); display: flex; flex-direction: column; gap: 6px; margin-bottom: 10px; }
.campcard.live { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.camph { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.camph b { font-size: 15px; }
.campst { font-size: 11.5px; font-weight: 800; border-radius: 999px; padding: 3px 10px; background: var(--chip); color: var(--sub); }
.campst.ok { background: #DDF3E4; color: #1F3A2E; }
.campst.wait { background: #FBEFD5; color: #7A5A12; }
.campmeta { font-size: 12.5px; color: var(--sub); line-height: 1.8; }
.campstat { font-size: 12.5px; font-weight: 700; }
.campstat.dim { font-weight: 400; color: var(--sub); }
.camptpl { display: flex; gap: 8px; flex-wrap: wrap; }
.camptplo { border: 2px solid; border-radius: 12px; padding: 12px 14px; min-width: 110px; cursor: pointer; font: inherit; opacity: .7; }
.camptplo.on { opacity: 1; box-shadow: 0 0 0 3px var(--accent-soft); }
.camptplo b { font-size: 13px; }
.campdays { display: flex; flex-wrap: wrap; gap: 6px 12px; }
.campday { display: flex; align-items: center; gap: 6px; font-size: 13px; cursor: pointer; }
.campday input { width: 18px; height: 18px; }
.camppick { display: flex; flex-direction: column; gap: 8px; }
.campchips { display: flex; flex-wrap: wrap; gap: 6px; }
.campchip { display: inline-flex; align-items: center; gap: 6px; background: var(--accent-soft); color: var(--ink); border-radius: 999px; padding: 4px 6px 4px 12px; font-size: 12.5px; font-weight: 700; }
.campx { border: 0; background: var(--card); color: var(--sub); width: 22px; height: 22px; border-radius: 50%; cursor: pointer; font-weight: 900; line-height: 1; }
.campitems { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 6px; max-height: 220px; overflow: auto; }
.campitem { text-align: right; border: 1px solid var(--line); background: var(--card); border-radius: 10px; padding: 7px 10px; cursor: pointer; font: inherit; display: flex; flex-direction: column; gap: 2px; }
.campitem b { font-size: 13px; } .campitem span { font-size: 11.5px; color: var(--sub); }

/* ---- انبار دو محلی و انبارگردانی (۱۰.۸۸) ---- */
.invqty { text-align: left; }
.loctag { display: inline-block; margin-inline-start: 6px; padding: 1px 7px; border-radius: 999px;
          background: var(--chip, #eef2f7); color: var(--muted, #556); font-size: 11px; }
.cntrow { display: grid; grid-template-columns: 1fr 92px 110px auto; gap: 8px; align-items: center; }
.cntinp { width: 100%; text-align: center; }
.cntdiff { text-align: left; font-size: 12px; }
.cntdiff .tmoney { font-size: 13px; }
@media (max-width: 520px) {
  .cntrow { grid-template-columns: 1fr 78px 92px; gap: 6px; }
  .cntdiff { font-size: 11px; }
  /* دکمهٔ «قفسه دست خورد» روی گوشی سطر خودش را می‌گیرد */
  .cntrow .cntrc { grid-column: 1 / -1; justify-content: flex-start; margin-top: 2px; }
}

/* ---- دفتر رفتار (۱۰.۹۰) ---- */
.cbar { display: flex; gap: 3px; height: 26px; border-radius: 8px; overflow: hidden; margin: 4px 0 10px; }
.cseg { display: flex; align-items: center; justify-content: center; font-size: 12px; min-width: 0; white-space: nowrap; overflow: hidden; }
.cseg.cw { background: #e6efe3; color: #2f5133; }
.cseg.cy { background: #f6e7a8; color: #6b5300; }
.cseg.cr { background: #f1c4bd; color: #7a1f14; }
.cchip { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 11px; margin-inline-start: 6px; }
.cchip.cw { background: #e6efe3; color: #2f5133; }
.cchip.cy { background: #f6e7a8; color: #6b5300; }
.cchip.cr { background: #f1c4bd; color: #7a1f14; }
.ticket.cwhite { border-inline-start: 4px solid #6f9a6a; }
.ticket.cyellow { border-inline-start: 4px solid #d9b83a; }
.ticket.cred { border-inline-start: 4px solid #c0392b; }

/* تطبیق رسپی و منوی فروش — ۱۰.۹۲.۱ */
.rcaudit { margin-bottom: 14px; }
.rcaudit > summary { cursor: pointer; list-style: none; display: flex; align-items: center;
  gap: 8px; flex-wrap: wrap; font-size: 14px; }
.rcaudit > summary::-webkit-details-marker { display: none; }
.rcaudit > summary::before { content: "▸"; color: var(--muted); font-size: 12px; }
.rcaudit[open] > summary::before { content: "▾"; }
.rcaudit h4.mth { margin: 12px 0 4px; }
.rcaudit .tnotes { line-height: 2.1; }
.mlink { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.mlinkbox { display: none; align-items: center; gap: 6px; }
.minisel { font-family: inherit; font-size: 12px; padding: 3px 6px; border-radius: 8px;
  border: 1px solid var(--line); background: var(--paper); color: inherit; max-width: 200px; }
/* ورود گروهی شمارش — ۱۰.۹۲.۲ */
.bulkcnt { margin: 10px 0 14px; }
.bulkcnt > summary { cursor: pointer; list-style: none; display: flex; align-items: center;
  gap: 8px; flex-wrap: wrap; font-size: 14px; }
.bulkcnt > summary::-webkit-details-marker { display: none; }
.bulkcnt > summary::before { content: "▸"; color: var(--muted); font-size: 12px; }
.bulkcnt[open] > summary::before { content: "▾"; }
.bulkcnt textarea { font-family: inherit; font-size: 13px; line-height: 1.9; padding: 8px 10px;
  border-radius: 10px; border: 1px solid var(--line); background: var(--paper); color: inherit;
  direction: rtl; margin: 8px 0; }
/* خط تولید روی اقلام انبار — ۱۰.۹۳.۰ */
.mth.lineh { color: var(--forest, #1F5C3A); border-top: 1px solid var(--line);
  padding-top: 8px; margin-top: 10px; font-size: 13px; }
body.dark .mth.lineh { color: var(--gold); }
/* نقشهٔ دسترسی‌ها — ۱۰.۹۷.۰ */
.permmx { margin-bottom: 14px; }
.permmx > summary { cursor: pointer; list-style: none; display: flex; align-items: center;
  gap: 8px; flex-wrap: wrap; font-size: 14px; }
.permmx > summary::-webkit-details-marker { display: none; }
.permmx > summary::before { content: "▸"; color: var(--muted); font-size: 12px; }
.permmx[open] > summary::before { content: "▾"; }
.permmx .missrow { align-items: flex-start; }

/* ---------- بازبینی آنالیزها (۱۰.۹۸.۰) ---------- */
.stbadge.gray { background: var(--chip); color: var(--sub); }
.rdbar { align-items: center; margin: 10px 0 6px; }
.rdbar input { flex: 1 1 160px; min-width: 140px; }
.rdgroup > summary { cursor: pointer; font-size: 14px; padding: 4px 0; }
.rdver { background: var(--chip); margin-top: 10px; }
.rdver .frow3 { display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-end; margin: 8px 0; }
.rdver .frow3 label { display: flex; flex-direction: column; gap: 3px; font-size: 12px; }
.rdver .frow3 label.chk { flex-direction: row; align-items: center; }
.rdver .frow3 input[type="number"] { width: 110px; }
.rdtbl { margin-top: 10px; display: flex; flex-direction: column; gap: 4px; }
.rdrow { display: grid; grid-template-columns: 2.2fr 1fr 1fr 34px; gap: 6px; align-items: center; }
.rdrow input { padding: 5px 7px; font-size: 12.5px; }
.rdrow.rdhead { font-size: 11.5px; color: var(--sub); font-weight: 700; }
.rdrow input.unknownmat { border-color: var(--danger); background: var(--badbg); }
.rdrow .warnmat { grid-column: 1 / -1; color: var(--danger); }
.statrow { display: flex; flex-wrap: wrap; gap: 4px; margin: 8px 0; }
@media (max-width: 560px) {
  .rdrow { grid-template-columns: 1fr 62px 58px 24px; gap: 4px; }
  .rdrow input { padding: 5px 4px; font-size: 12px; }
  .rdver { padding-left: 8px; padding-right: 8px; }
}

/* ---------- «قفسه حین شمارش دست خورد» (۱۰.۱۰۱.۰) ---------- */
.cntrow .cntrc { display: flex; align-items: center; justify-content: flex-end; }
.cntrow.rcrow { background: var(--badbg); border-radius: 8px; }
.cntrow.rcrow .cntinp { border-color: var(--danger); }

/* ---------- حداکثر موجودی (۱۰.۱۰۴.۰) ---------- */
.missrow.overmax { background: #FCF3DE; border-radius: 8px; padding: 11px 9px; }

/* ---------- قواعد سرآشپز (۱۰.۱۰۵.۰) ---------- */
.chefrules > summary { cursor: pointer; font-size: 14px; padding: 4px 0; }
.chefrules ul { margin: 8px 0 4px; padding-right: 18px; font-size: 13px; line-height: 1.9; }
.chefrules li { margin-bottom: 3px; }

/* ===================== نظرسنجی مشتری (۱۰.۱۰۹) */
.svline { display: flex; align-items: center; gap: 8px; font-size: 14px; }
.svdot { width: 11px; height: 11px; border-radius: 50%; flex: none; background: var(--muted); }
.svdot.on { background: var(--good); box-shadow: 0 0 0 4px var(--goodbg); }
.svfacts { color: var(--sub); font-size: 12.5px; margin: 8px 0 10px; line-height: 1.9; }
.svacts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.svper { display: flex; gap: 6px; margin: 0 0 10px; flex-wrap: wrap; }
.svper .mini.on { background: var(--ink); color: var(--card); border-color: var(--ink); font-weight: 900; }
.svcard { border: 1px solid var(--line); border-radius: 12px; padding: 12px; margin-bottom: 10px; background: var(--card); }
.svcard.low { border-color: #E8B4A5; box-shadow: inset 4px 0 0 var(--danger); }
.svcard.test { opacity: .8; border-style: dashed; }
.svch { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.svch small { color: var(--muted); margin-inline-start: auto; }
.svavg { color: #fff; font-weight: 900; border-radius: 8px; padding: 2px 8px; font-size: 13px; }
.svfs { font-size: 12px; border-radius: 999px; padding: 2px 10px; font-weight: 700; background: var(--chip); }
.svfs.bad { background: var(--badbg); color: var(--danger); }
.svfs.wait { background: var(--warnbg); }
.svfs.ok { background: var(--goodbg); color: var(--good); }
.svmeta { color: var(--sub); font-size: 12.5px; margin: 6px 0; line-height: 1.8; }
.svmeta a { color: inherit; font-weight: 700; }
.svans { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0; }
.svchip { background: var(--chip); border-radius: 999px; padding: 3px 10px; font-size: 12.5px; }
.svchip.bad { background: var(--badbg); color: var(--danger); font-weight: 700; }
.svchip.mid { background: var(--warnbg); }
.svcom { margin: 8px 0; padding: 8px 12px; border-inline-start: 3px solid var(--line2); background: var(--paper); border-radius: 8px; font-size: 13.5px; line-height: 1.9; white-space: pre-wrap; }
.svmedia { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 8px 0; }
.svth { width: 92px; height: 92px; object-fit: cover; border-radius: 10px; border: 1px solid var(--line); cursor: zoom-in; background: var(--chip); }
.svaud { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 13px; }
.svaud audio { height: 36px; max-width: 260px; }
.svjoin { font-size: 12.5px; color: var(--good); margin-top: 4px; }
.svjoin.dim { color: var(--muted); }
.svfn { font-size: 12.5px; background: var(--paper); border-radius: 8px; padding: 6px 10px; margin-top: 8px; }
.svfollow { border-top: 1px dashed var(--line); margin-top: 10px; padding-top: 10px; }
.svq { display: flex; flex-direction: column; gap: 6px; }
.svqr { display: grid; grid-template-columns: 120px 1fr; gap: 2px 10px; font-size: 12.5px; padding: 6px 8px; border-radius: 8px; background: var(--paper); }
.svqr small { grid-column: 2; color: var(--muted); }
.svqr.failed b { color: var(--danger); }
.svqr.sent b { color: var(--good); }
.svqr.skipped { opacity: .7; }
.svpre { white-space: pre-wrap; font-family: inherit; font-size: 13px; background: var(--paper); border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; margin: 6px 0; line-height: 1.9; }
.svtest a { word-break: break-all; font-size: 13px; }
.svqs { display: flex; flex-direction: column; gap: 6px; }
.svqrow { display: grid; grid-template-columns: 1fr 150px auto auto; gap: 6px; align-items: center; }
@media (max-width: 640px) {
  .svqrow { grid-template-columns: 1fr auto auto; }
  .svqrow select { grid-column: 1 / -1; grid-row: 2; }
  .svqr { grid-template-columns: 1fr; }
  .svqr small { grid-column: 1; }
}
.svkpi { margin-bottom: 12px; }

/* ۱۰.۱۰۹.۳ — لینک فرم درخواست همکاری، بالا سمت راست صفحهٔ ورود */
.login { position: relative; }
.loginjob { position: absolute; top: 16px; right: 18px; z-index: 2; display: inline-flex; align-items: center; gap: 7px;
  background: #007239; color: #fff; text-decoration: none; font-weight: 800; font-size: 13.5px;
  padding: 9px 16px; border-radius: 999px; box-shadow: 0 6px 16px -8px rgba(0,114,57,.7);
  transition: transform .15s ease, box-shadow .15s ease; }
.loginjob:hover { transform: translateY(-1px); box-shadow: 0 10px 20px -10px rgba(0,114,57,.8); }
.loginjob .ljic { color: #D3AC67; font-size: 12px; }
@media (max-width: 520px) { .loginjob { top: 10px; right: 10px; font-size: 12.5px; padding: 7px 12px; } }
.ovstale { background: var(--warnbg); border: 1px solid #E8CE93; border-radius: 12px; padding: 9px 13px; font-size: 13px; line-height: 1.9; margin: -2px 0 12px; }
.ovstale b { color: #7A4E07; }

/* ---------- فهرست کاربران: بخش شعبه و بستهٔ بقیه (۱۰.۱۱۰.۰) ---------- */
.usec { border: 1px solid var(--line); border-radius: var(--r); background: var(--card); margin-bottom: 10px; overflow: hidden; }
.usec > summary { display: flex; align-items: center; gap: 10px; padding: 11px 13px; cursor: pointer; font-size: 14px; list-style: none; }
.usec > summary::-webkit-details-marker { display: none; }
.usec > summary::before { content: "▾"; color: var(--muted); font-size: 12px; transition: transform .15s; }
.usec:not([open]) > summary::before { transform: rotate(90deg); }
.usec > summary b { font-weight: 900; }
.usec > summary .ucount { margin-inline-start: auto; background: var(--chip); color: var(--sub); border-radius: 999px; padding: 2px 9px; font-size: 12px; font-weight: 700; }
.usec > .hint { padding: 0 13px 8px; margin: 0; }
.usec > div > .ucard { border-radius: 0; border-inline: 0; border-bottom: 0; box-shadow: none; }
.usecb { background: var(--field); border-top: 1px solid var(--line); padding: 7px 13px; font-size: 12.5px; font-weight: 800; color: var(--sub); }
.uhome { font-size: 12px; color: var(--sub); margin-top: 2px; }
.uhome.dim { color: var(--muted); }
.uhome .usep { color: var(--muted); }
.uhome .diffbad { color: var(--danger); font-weight: 700; }

/* ---------- انتخاب زبان در اپ باشگاه (۱۰.۱۱۱.۰) ----------
 * دکمه‌اش همیشه سر جای ثابتی است: بالای صفحهٔ ورود و کنار نام در هدر.
 * مهمان خارجی اول چیزی که دنبالش می‌گردد همین است. */
.langbtn { display: inline-flex; align-items: center; gap: 5px; border: 1px solid rgba(255,255,255,.35);
  background: rgba(255,255,255,.12); color: inherit; border-radius: 999px; padding: 5px 11px;
  font: inherit; font-size: 12.5px; font-weight: 700; cursor: pointer; line-height: 1; }
.langbtn .lgl { font-size: 14px; }
.langbtn .lgn { letter-spacing: .04em; }
.langbtn.top { position: absolute; inset-inline-end: 14px; inset-block-start: 14px; border-color: var(--line2); color: var(--sub); background: var(--field); }
#club header { position: relative; }
/* دکمهٔ زبان وسط هدر می‌نشیند، میان نام مهمان و سطحش — در راست‌چین و
 * چپ‌چین هر دو سر جای خودش می‌ماند و روی چیزی نمی‌افتد. */
#club header .langbtn.hd { align-self: center; margin-inline: 8px; flex: none;
  padding: 4px 9px; font-size: 11.5px; background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.3); }
#club header .langbtn.hd .lgl { font-size: 12px; }
.langov { position: fixed; inset: 0; background: rgba(28,25,23,.55); display: flex; align-items: flex-end; z-index: 30; }
.langsh { background: var(--card); width: 100%; max-width: 440px; margin: 0 auto; border-radius: 24px 24px 0 0; padding: 18px 16px 22px; }
.langsh h3 { margin: 0 0 12px; font-size: 16px; text-align: center; }
.langgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 14px; }
.langgrid button { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 10px 4px;
  border: 1px solid var(--line); border-radius: 14px; background: var(--field); color: var(--ink); font: inherit; cursor: pointer; }
.langgrid button.on { border-color: var(--accent); background: var(--accent-soft); font-weight: 800; }
.langgrid button i { font-style: normal; font-size: 20px; line-height: 1; }
.langgrid button b { font-size: 13px; font-weight: 700; }
.langgrid button small { font-size: 10px; color: var(--muted); }
/* در زبان‌های چپ‌چین، اپ باشگاه همان چیدمان را آینه می‌کند — چون همه‌چیز
 * با inset-inline و margin-inline نوشته شده، فقط چند استثنا مانده بود. */
html[dir="ltr"] #club .qname, html[dir="ltr"] #club .qpts { direction: ltr; }
html[dir="ltr"] #club .vcode, html[dir="ltr"] #club .bcode { direction: ltr; }

/* ---------- جعبهٔ ترجمهٔ نام آفر و جایزه (۱۰.۱۱۱.۰) ---------- */
.i18nbox { border: 1px dashed var(--line2); border-radius: 12px; background: var(--field); margin: 10px 0; padding: 0 12px; }
.i18nbox > summary { display: flex; align-items: center; gap: 10px; padding: 10px 0; cursor: pointer; list-style: none; font-size: 13px; }
.i18nbox > summary::-webkit-details-marker { display: none; }
.i18nbox > summary::before { content: "▾"; color: var(--muted); font-size: 11px; }
.i18nbox:not([open]) > summary::before { transform: rotate(90deg); display: inline-block; }
.i18ncount { margin-inline-start: auto; font-size: 11.5px; color: var(--muted); }
.i18nbox > .hint { margin: 0 0 8px; }
.i18ngrid { display: grid; gap: 6px; padding-bottom: 12px; }
.i18nrow { display: grid; grid-template-columns: 130px 1fr 1fr; gap: 6px; align-items: center; }
.i18nrow .i18nl { font-size: 12px; color: var(--sub); }
.i18nrow input { margin: 0; }
@media (max-width: 720px) { .i18nrow { grid-template-columns: 1fr; } .i18nrow .i18nl { font-weight: 700; margin-top: 4px; } }
.smsrow { display: grid; grid-template-columns: 130px 1fr auto; gap: 8px; align-items: start; padding: 5px 0; }
.smsrow textarea { margin: 0; font-size: 12.5px; }
@media (max-width: 720px) { .smsrow { grid-template-columns: 1fr auto; } .smsrow .i18nl { grid-column: 1 / -1; font-weight: 700; } }

/* ------------------------------------------- هزینه‌های ماه (۱۰.۱۱۷) */
.pdash .pdhead { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.pdunit { font-size: 12px; color: var(--muted); }
.pdkpi { margin: 10px 0 6px; }
.pdkpi .k.cost .kv { color: var(--ink); }
.pdrow { display: grid; grid-template-columns: minmax(200px, 280px) 1fr; gap: 18px; align-items: start; margin-top: 8px; }
@media (max-width: 640px) { .pdrow { grid-template-columns: 1fr; } .pdring { max-width: 260px; margin: 0 auto; } }
.pdring { width: 100%; }
.pdsvg { width: 100%; height: auto; display: block; overflow: visible; }
.pdseg { transition: transform .25s cubic-bezier(.2,1.3,.4,1), opacity .2s; cursor: pointer; }
.pdseg.on { transform: translate(var(--dx), var(--dy)); }
.pdseg.dim { opacity: .35; }
.pdpct { font-size: 12px; font-weight: 900; fill: var(--ink); font-family: IRAN, Vazirmatn, Tahoma, sans-serif; }
.pdtot { font-size: 22px; font-weight: 900; fill: var(--ink); font-family: IRAN, Vazirmatn, Tahoma, sans-serif; }
.pdsub { font-size: 11.5px; fill: var(--muted); font-family: IRAN, Vazirmatn, Tahoma, sans-serif; }
.pdlist { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pditem { border-bottom: 1px solid var(--line); }
.pditem:last-child { border-bottom: 0; }
.pdrowbtn { width: 100%; display: grid; grid-template-columns: 12px 1fr auto auto 14px; align-items: center; gap: 10px;
  background: none; border: 0; padding: 10px 4px; color: var(--ink); text-align: right; border-radius: 8px; }
.pdrowbtn:hover, .pditem.on .pdrowbtn { background: var(--chip); }
.pdsw { width: 12px; height: 12px; border-radius: 4px; }
.pdnm { font-weight: 700; font-size: 14px; min-width: 0; }
.pdpc { font-size: 12.5px; color: var(--sub); font-variant-numeric: tabular-nums; }
.pdam { font-weight: 900; font-size: 14px; font-variant-numeric: tabular-nums; }
.pdar { color: var(--muted); transition: transform .2s; }
.pditem.on .pdar { transform: rotate(-90deg); }
.pddet { padding: 2px 26px 10px 4px; }
.pdli { display: grid; grid-template-columns: 1fr auto; gap: 2px 10px; padding: 5px 0; font-size: 13px; border-top: 1px dashed var(--line); }
.pdli:first-child { border-top: 0; }
.pdli b { font-variant-numeric: tabular-nums; }
.pdli small { grid-column: 1 / -1; color: var(--muted); font-size: 12px; }
.pdh5 { font-size: 14px; margin: 16px 0 2px; }
.pdcur { fill: var(--ink); font-weight: 900; }
.pdtbl { margin-top: 8px; font-size: 13px; }
.pdtbl summary { cursor: pointer; color: var(--sub); }
.pdash .vwrap { max-width: 680px; margin-inline: auto; }

/* ۱۰.۱۲۳ — نفرات زیر هر شریک معرف */
.refmem { margin-top: 10px; padding-top: 8px; border-top: 1px dashed var(--line); }
.refmemrow { border: 1px solid var(--line); border-radius: 12px; padding: 8px 10px; margin: 6px 0; background: var(--field, var(--card)); }
.refmemrow.off { opacity: .6; }
.refmemrow b { margin-left: 6px; }

/* ===== ۱۰.۱۳۸ — فهرست جمع‌آوری شعبه ===== */
.cosum { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin: 10px 0 6px; }
.cocard { background: var(--card, #fff); border: 1px solid var(--line, #E6DDCB); border-radius: 14px; padding: 10px 12px; }
.cocard span { display: block; font-size: 12px; color: var(--muted, #6F6D66); }
.cocard b { display: block; font-size: 20px; font-weight: 900; margin-top: 2px; }
.cocard i { display: block; font-style: normal; font-size: 11.5px; color: var(--muted, #6F6D66); }
.cophotos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 10px; }
.coshot { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-height: 120px;
  border: 2px dashed var(--line, #D8D2C4); border-radius: 14px; cursor: pointer; background: var(--bg2, #FAF8F3);
  font-weight: 700; font-size: 13.5px; text-align: center; padding: 8px; overflow: hidden; }
.coshot img { width: 100%; max-height: 180px; object-fit: cover; border-radius: 10px; }
.colink { display: flex; gap: 14px; align-items: flex-start; flex-wrap: wrap; }
.colink .coqr svg { display: block; border-radius: 10px; border: 1px solid var(--line, #E6DDCB); }
.colink > div:last-child { flex: 1; min-width: 240px; }
.colink input { width: 100%; font-size: 13px; }
.cofilter { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin: 14px 0 10px; }
.cofilter input[type=search] { flex: 1; min-width: 200px; }
.cogrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.coitem { background: var(--card, #fff); border: 1px solid var(--line, #E6DDCB); border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; }
.coitem.done { opacity: .7; }
.coimg { position: relative; height: 170px; background: #F1EEE7; display: flex; align-items: center; justify-content: center; color: #999; font-size: 13px; }
.coimg img { width: 100%; height: 100%; object-fit: cover; cursor: zoom-in; }
.coimg img.co2 { position: absolute; left: 8px; bottom: 8px; width: 56px; height: 56px; border-radius: 10px; border: 2px solid #fff; box-shadow: 0 2px 8px rgba(0,0,0,.3); }
.cotxt { padding: 9px 11px 4px; line-height: 1.7; }
.cotxt b { font-size: 15px; }
.coqty { font-weight: 900; color: var(--brand, #14694A); }
.codisp { font-weight: 800; color: #B3391F; font-size: 13px; }
.coacts { display: flex; gap: 6px; flex-wrap: wrap; padding: 4px 11px 10px; margin-top: auto; }
.cosale { display: grid; gap: 6px; padding: 0 11px 10px; }
.cozoom { position: fixed; inset: 0; z-index: 200; background: rgba(0,0,0,.85); display: flex; align-items: center; justify-content: center; cursor: zoom-out; }
.cozoom img { max-width: 96vw; max-height: 94vh; border-radius: 8px; }
@media (max-width: 600px) { .cogrid { grid-template-columns: 1fr 1fr; gap: 8px; } .coimg { height: 130px; } .cotxt b { font-size: 13.5px; } }
/* ۱۰.۱۳۹ — گردش‌ها و شرکا */
.coimg .coleft { position: absolute; top: 8px; right: 8px; background: #14694A; color: #fff; font-size: 12px; font-weight: 800; padding: 3px 9px; border-radius: 999px; }
.coimg .coleft.zero { background: #6F6D66; }
.comoves { margin-top: 6px; display: grid; gap: 3px; }
.comv { display: flex; align-items: center; justify-content: space-between; gap: 4px; font-size: 12px; padding: 3px 7px; border-radius: 8px; background: #EEF3F8; color: #1F4A6E; }
.comv.k-sale { background: #E6F4EA; color: #155234; }
.comv.k-rep { background: #FFF3E0; color: #8A4B0F; }
.comv.k-out { background: #F3EFEA; color: #5A554D; }
.comv .mini { padding: 0 6px; min-height: 0; line-height: 1.6; }
.comove { margin: 0 11px 11px; padding: 10px; border: 1.5px solid var(--brand, #14694A); border-radius: 12px; background: var(--bg2, #FAF8F3); }
.comove > b { display: block; font-size: 13px; margin-bottom: 6px; }
.comovegrid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 8px; }
.comovegrid label.f { margin: 0; }
.comovegrid label.f span { font-size: 11.5px; }
.cotbl { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.cotbl th, .cotbl td { padding: 6px 8px; border-bottom: 1px solid var(--line, #E6DDCB); text-align: right; }
.cotbl td.num { font-variant-numeric: tabular-nums; font-weight: 700; }
.cotbl tr.sum td { font-weight: 900; border-top: 2px solid var(--ink, #1B1D22); }
.coshedit .row2 { display: flex; gap: 6px; align-items: center; margin: 4px 0; }
.coshedit .row2 input:first-child { flex: 1; }
.mini.primary { background: var(--brand, #14694A); color: #fff; border-color: var(--brand, #14694A); }
@media (max-width: 600px) { .comovegrid { grid-template-columns: 1fr; } }

/* ---------- دفترچهٔ رسپی آشپزخانه (RB-95) ---------- */
.rbwrap { position: relative; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; transition: filter .15s; }
.rbwrap input, .rbwrap textarea, .rbwrap select { user-select: text; -webkit-user-select: text; }
.rbwm { position: fixed; inset: 0; pointer-events: none; z-index: 150; background-repeat: repeat; }
body.rbhidden .rbwrap { filter: blur(24px); }
body.rbhidden .rbwm { background-color: rgba(246,244,240,.6); }
.rbgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; margin-top: 12px; }
.rbcard { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; cursor: pointer; box-shadow: var(--shadow); transition: transform .12s; }
.rbcard:hover { transform: translateY(-2px); }
.rbimg, .rbheroimg, .rbstepimg, .rbplateimg, .rbpickimg { background: var(--chip) center/cover no-repeat; }
.rbimg { aspect-ratio: 4/3; }
.rbimg.empty, .rbheroimg.empty, .rbstepimg.empty, .rbplateimg.empty, .rbpickimg.empty { display: flex; align-items: center; justify-content: center; color: var(--muted); font-size: 12px; }
.rbtx { padding: 10px 12px; }
.rbtx b { display: block; font-size: 15px; }
.rbmeta { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
.rbmeta span, .rbchips span { font-size: 12px; background: var(--chip); border-radius: 999px; padding: 2px 9px; }
.rbmeta .ok { background: var(--goodbg); color: var(--good); }
.rbmeta .no { background: var(--badbg); color: var(--danger); }
.rbmeta .al, .rbchips .al { background: #FFF1D6; color: #8A5A00; font-weight: 700; }
.rbmeta .st { background: var(--warnbg); }
.rbchips .hot, .rbfact.hot b, .rbtbl td.hot { color: var(--danger); }
.rbchips { display: flex; flex-wrap: wrap; gap: 6px; }
.btn.on { background: var(--accent-soft); }
.rbsheet { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; margin-top: 10px; box-shadow: var(--shadow); }
.rbhero { display: grid; grid-template-columns: 1.1fr 1fr; }
.rbheroimg { min-height: 260px; }
.rbherotx { padding: 18px 20px; display: flex; flex-direction: column; justify-content: center; gap: 6px; }
.rbherotx h1 { font-size: 26px; font-weight: 900; line-height: 1.3; }
.rbkick { font-size: 12px; color: var(--accent); font-weight: 700; letter-spacing: .02em; }
.rbstate { align-self: flex-start; background: var(--badbg); color: var(--danger); border-radius: 8px; padding: 3px 10px; font-size: 13px; font-weight: 700; }
.rbfacts { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.rbfact { padding: 10px 12px; border-inline-start: 1px solid var(--line); }
.rbfact:first-child { border-inline-start: 0; }
.rbfact span { display: block; font-size: 11px; color: var(--muted); }
.rbfact b { font-size: 15px; }
.rbnote { margin: 12px 18px 0; background: #E9F3FB; color: #1F4E79; border-radius: 10px; padding: 8px 12px; font-size: 14px; }
.rbsec { padding: 14px 18px; border-bottom: 1px dashed var(--line); }
.rbsec h3 { font-size: 16px; font-weight: 900; margin-bottom: 8px; }
.rbsech { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.rbsech h3 { margin: 0; }
.rbscale { display: flex; align-items: center; gap: 6px; font-size: 13px; }
.rbscale input { border: 1px solid var(--line2); border-radius: 8px; padding: 4px 8px; background: var(--field); text-align: center; color: var(--ink); }
.rbtbl { width: 100%; border-collapse: collapse; font-size: 14px; margin-bottom: 6px; }
.rbtbl th { text-align: start; font-size: 12px; color: var(--muted); font-weight: 700; border-bottom: 2px solid var(--line); padding: 6px; }
.rbtbl td { border-bottom: 1px solid var(--line); padding: 7px 6px; vertical-align: top; }
.rbtbl td.num { font-weight: 900; font-variant-numeric: tabular-nums; white-space: nowrap; }
.rbstep { display: grid; grid-template-columns: 34px 200px 1fr; gap: 12px; align-items: start; padding: 10px 0; border-bottom: 1px solid var(--line); }
.rbstep:last-child { border-bottom: 0; }
.rbstep:not(:has(.rbstepimg)) { grid-template-columns: 34px 1fr; }
.rbstep.ccp { background: linear-gradient(90deg, transparent, #FFF6E5); border-radius: 10px; }
.rbn { width: 30px; height: 30px; border-radius: 50%; background: var(--accent); color: var(--accent-ink); display: flex; align-items: center; justify-content: center; font-weight: 900; }
.rbstepimg { aspect-ratio: 4/3; border-radius: 10px; }
.rbsteptx p { margin-bottom: 6px; white-space: pre-line; }
.rbplate { display: grid; grid-template-columns: 240px 1fr; gap: 14px; }
.rbplate:not(:has(.rbplateimg)) { grid-template-columns: 1fr; }
.rbplateimg { aspect-ratio: 1; border-radius: 12px; }
.rbplate p { margin-bottom: 6px; }
.rbpre { white-space: pre-line; }
.rbsec.warnsec { background: var(--badbg); }
.rbfoot { padding: 10px 18px; text-align: center; }
/* ویرایشگر */
.rbeg { display: grid; grid-template-columns: 180px 1fr; gap: 12px; align-items: start; }
.rbpick { display: flex; flex-direction: column; gap: 5px; cursor: pointer; font-size: 13px; color: var(--accent-deep); font-weight: 700; text-align: center; }
.rbpickimg { aspect-ratio: 4/3; border-radius: 10px; border: 2px dashed var(--line2); }
.rbchecks { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 6px; font-size: 14px; }
.rbestep { display: grid; grid-template-columns: 34px 150px 1fr; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.rbestx { display: flex; flex-direction: column; gap: 6px; }
.rbestx textarea, .rbwrap section.entry > textarea { width: 100%; border: 1px solid var(--line2); border-radius: 8px; padding: 8px; background: var(--field); color: var(--ink); }
.rbrow { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; margin: 4px 0; }
.rbrow input { flex: 1; min-width: 90px; border: 1px solid var(--line2); border-radius: 8px; padding: 6px 8px; background: var(--field); color: var(--ink); }
@media (max-width: 700px) {
  .rbhero { grid-template-columns: 1fr; }
  .rbheroimg { min-height: 220px; }
  .rbherotx h1 { font-size: 22px; }
  .rbstep { grid-template-columns: 30px 1fr; }
  .rbstepimg, .rbsteptx { grid-column: 2; }
  .rbstep { gap: 8px; }
  .rbplate, .rbeg { grid-template-columns: 1fr; }
  .rbestep { grid-template-columns: 30px 1fr; }
  .rbestep .rbpick, .rbestx { grid-column: 2; }
  .rbsec { padding: 12px; }
  .rbgrid { grid-template-columns: 1fr 1fr; gap: 8px; }
  .rbtbl td.tnotes { display: none; }
}
@media print { .rbwrap, .rbwm { display: none !important; } body.rbprotect::after { content: "چاپ دفترچهٔ رسپی مجاز نیست."; display: block; padding: 40px; font-size: 20px; } }
.rbpub { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 15px; margin-bottom: 6px; }
.rbpub input { width: 20px; height: 20px; }

/* ---------- پنجرهٔ چک‌های نزدیک سررسید (۱۰.۱۴۱) ---------- */
.cqov { position: fixed; inset: 0; z-index: 950; background: rgba(15,16,20,.55); backdrop-filter: blur(3px);
  display: flex; align-items: center; justify-content: center; padding: 14px; }
.cqbox { background: var(--card); color: var(--ink); width: min(720px, 100%); max-height: 92vh; border-radius: 18px;
  display: flex; flex-direction: column; box-shadow: 0 20px 60px rgba(0,0,0,.35); overflow: hidden; }
.cqhead { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; padding: 16px 18px 8px;
  border-top: 6px solid var(--accent, #F24C05); }
.cqhead h2 { font-size: 21px; font-weight: 900; }
.cqx { background: none; border: 0; font-size: 28px; line-height: 1; color: var(--muted); padding: 0 4px; }
.cqsum { display: flex; flex-wrap: wrap; gap: 8px; padding: 4px 18px 10px; }
.cqchip { background: var(--chip); border-radius: 12px; padding: 6px 12px; display: flex; flex-direction: column; min-width: 120px; }
.cqchip span { font-size: 12px; color: var(--muted); }
.cqchip b { font-size: 16px; font-weight: 900; font-variant-numeric: tabular-nums; }
.cqchip.out b { color: var(--danger); } .cqchip.in b { color: var(--good); }
.cqchip.today { background: #FFF1D6; } .cqchip.today b { color: #8A5A00; }
.cqchip.late { background: var(--badbg); } .cqchip.late b { color: var(--danger); }
.cqbody { overflow-y: auto; padding: 0 18px 8px; flex: 1; }
.cqsec { margin: 8px 0 12px; }
.cqsech { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; flex-wrap: wrap;
  border-bottom: 2px solid var(--line); padding-bottom: 4px; margin-bottom: 6px; }
.cqsech h3 { font-size: 16px; font-weight: 900; }
.cqrow { display: grid; grid-template-columns: 92px 1fr auto; gap: 4px 12px; align-items: center; padding: 10px 10px;
  border: 1px solid var(--line); border-radius: 12px; margin-bottom: 6px; background: var(--field); }
.cqrow.late { border-color: var(--danger); background: var(--badbg); }
.cqrow.today { border-color: #E0A21B; background: #FFF6E3; }
.cqrow.done { opacity: .55; }
.cqwhen { display: flex; flex-direction: column; text-align: center; border-left: 1px solid var(--line); padding-left: 8px; }
.cqwhen b { font-size: 14px; font-weight: 900; }
.cqwhen span { font-size: 12px; color: var(--muted); }
.cqrow.late .cqwhen b { color: var(--danger); } .cqrow.today .cqwhen b { color: #8A5A00; }
.cqt { font-weight: 700; }
.cqdir { font-size: 11px; border-radius: 999px; padding: 1px 8px; font-weight: 700; }
.cqdir.out { background: var(--badbg); color: var(--danger); } .cqdir.in { background: var(--goodbg); color: var(--good); }
.cqamt { font-size: 17px; font-weight: 900; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cqacts { grid-column: 2 / 4; display: flex; gap: 6px; justify-content: flex-end; }
.cqdone { color: var(--good); font-weight: 700; font-size: 13px; }
/* ۱۰.۲۴۲ — تأمین وجه و بابت */
.cqext { grid-column: 1 / -1; }
.cqext:empty { display: none; }
.cqacts { flex-wrap: wrap; }
.cqbabat { color: var(--ink); }
.cqbabat.none { color: var(--muted); font-style: italic; }
.chqfnone { color: #8A5A00; } .chqfok { color: var(--good); font-weight: 700; }
.chqfund { border: 1px dashed var(--line2); border-radius: 10px; padding: 8px 10px; margin-top: 6px; background: var(--paper); }
.chqfsum { font-weight: 700; font-size: 13.5px; }
.chqfbar { height: 8px; background: var(--line); border-radius: 999px; overflow: hidden; margin: 6px 0; }
.chqfbar > i { display: block; height: 100%; background: var(--good); }
.chqfrow { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 13px; padding: 3px 0; border-bottom: 1px solid var(--line); }
.cqrest { margin-top: 4px; } .cqrest > summary { cursor: pointer; color: var(--muted); font-size: 13px; padding: 4px 0; }
.cqfoot { border-top: 1px solid var(--line); padding: 10px 18px 14px; display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.cqfoot .acts { margin-top: 0; }
.cqmode { font-size: 13px; color: var(--muted); display: flex; align-items: center; gap: 6px; }
.cqmode select { border: 1px solid var(--line2); border-radius: 8px; padding: 4px 6px; background: var(--field); color: var(--ink); }
@media (max-width: 600px) {
  .cqov { padding: 0; align-items: flex-end; }
  .cqbox { max-height: 94vh; border-radius: 18px 18px 0 0; }
  .cqrow { grid-template-columns: 74px 1fr; }
  .cqamt { grid-column: 2; font-size: 16px; }
  .cqacts { grid-column: 1 / 3; }
  .cqchip { min-width: 0; flex: 1 1 45%; }
  .cqfoot { flex-direction: column; align-items: stretch; }
  .cqfoot { padding: 8px 12px 12px; gap: 6px; }
  .cqfoot .acts { justify-content: stretch; gap: 6px; } .cqfoot .acts .btn { flex: 1 1 auto; padding: 10px 8px; font-size: 13px; white-space: nowrap; line-height: 1.3; }
  .cqbody { padding: 0 12px 8px; } .cqsum { padding: 4px 12px 8px; } .cqhead { padding: 14px 14px 6px; }
}

/* ---------- بخش شخصی رمزدار (VT-96، ۱۰.۱۴۲) ---------- */
.vtwrap { transition: filter .15s; }
body.vthidden .vtwrap { filter: blur(22px); }
@media print { .vtwrap { display: none !important; } }
.vtlock { max-width: 420px; margin: 7vh auto 0; background: var(--card); border: 1px solid var(--line); border-radius: 20px;
  padding: 26px 22px; text-align: center; box-shadow: var(--shadow); display: flex; flex-direction: column; gap: 10px; }
.vtlock.wide { max-width: 560px; }
.vtlock form { display: flex; flex-direction: column; gap: 10px; }
.vtlock input { border: 1px solid var(--line2); border-radius: 12px; padding: 12px 14px; font-size: 16px; background: var(--field); color: var(--ink); text-align: center; }
.vtlk { font-size: 44px; line-height: 1; }
.vtlock h2 { font-size: 20px; font-weight: 900; }
.vtlock p { font-size: 14px; line-height: 1.8; }
.vterr { color: var(--danger); font-size: 13px; min-height: 1em; }
.vtrec { font-family: ui-monospace, Menlo, Consolas, monospace; direction: ltr; font-size: 19px; font-weight: 700; letter-spacing: 1px;
  background: #FFF6E3; color: #5b4418; border: 2px dashed #E0A21B; border-radius: 12px; padding: 14px; word-break: break-all; user-select: all; }
.vtok { display: flex; gap: 8px; align-items: center; justify-content: center; font-size: 14px; }
.vtdue { background: #FFF1D6; color: #8A5A00; border-radius: 10px; padding: 8px; font-size: 13px; font-weight: 700; }
.vthead { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 8px; }
.vthead h2 { font-size: 20px; font-weight: 900; }
.vtnav { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 6px; margin-bottom: 10px; scrollbar-width: thin; }
.vtsub { flex: none; border: 1px solid var(--line); background: var(--card); color: var(--ink); border-radius: 999px; padding: 7px 13px; font-size: 14px; white-space: nowrap; }
.vtsub.on { background: var(--ink); color: var(--card); border-color: var(--ink); font-weight: 700; }
.vtcnt { display: inline-block; margin-inline-start: 6px; background: var(--chip); color: var(--ink); border-radius: 999px; padding: 0 7px; font-size: 12px; }
.vtsub.on .vtcnt { background: rgba(255,255,255,.2); color: inherit; }
.vtkpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 8px; margin-bottom: 10px; }
.vtkpi { background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 10px 12px; display: flex; flex-direction: column; }
.vtkpi span { font-size: 12px; color: var(--muted); }
.vtkpi b { font-size: 17px; font-weight: 900; font-variant-numeric: tabular-nums; }
.vtkpi small { font-size: 12px; color: var(--muted); direction: rtl; }
.vtkpi.net { background: var(--ink); color: var(--card); border-color: var(--ink); } .vtkpi.net span, .vtkpi.net small { color: rgba(255,255,255,.7); }
.vtkpi.in b, .vtamt.in, td.in { color: var(--good); } .vtkpi.out b, .vtamt.out, td.out { color: var(--danger); }
.vttbl { width: 100%; border-collapse: collapse; font-size: 13px; }
.vttbl th { text-align: start; color: var(--muted); font-size: 12px; border-bottom: 2px solid var(--line); padding: 5px; }
.vttbl td { border-bottom: 1px solid var(--line); padding: 6px 5px; }
.vttbl td.num { font-variant-numeric: tabular-nums; white-space: nowrap; }
.vtev { display: grid; grid-template-columns: 96px 1fr auto; gap: 10px; align-items: center; padding: 9px 10px; border: 1px solid var(--line);
  border-radius: 12px; margin-bottom: 6px; background: var(--field); cursor: pointer; }
.vtev.late { border-color: var(--danger); background: var(--badbg); } .vtev.today { border-color: #E0A21B; background: #FFF6E3; }
.vtevd { font-weight: 900; font-size: 13px; text-align: center; }
.vtev.late .vtevd { color: var(--danger); } .vtev.today .vtevd { color: #8A5A00; }
.vtrow { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 12px; margin: 8px 0; }
.vtmain b { font-size: 15px; }
.vtside { text-align: end; }
.vtamt { font-size: 16px; font-weight: 900; font-variant-numeric: tabular-nums; white-space: nowrap; }
.vtacts { grid-column: 1 / 3; display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.vtnote { white-space: pre-line; }
.vtdd { display: inline-block; font-size: 12px; font-weight: 700; border-radius: 999px; padding: 0 8px; background: var(--chip); }
.vtdd.late { background: var(--badbg); color: var(--danger); } .vtdd.today { background: #FFF1D6; color: #8A5A00; } .vtdd.soon { background: #FFF6E3; color: #8A5A00; }
.vtbar { height: 6px; background: var(--chip); border-radius: 99px; overflow: hidden; margin-top: 4px; min-width: 120px; }
.vtbar i { display: block; height: 100%; background: var(--danger); }
.vtbar.ok i { background: var(--good); }
.vtul { padding-inline-start: 20px; font-size: 14px; line-height: 1.9; }
.vtpw { border: 1px solid var(--line2); border-radius: 10px; padding: 8px 10px; background: var(--field); color: var(--ink); }
.cqvault { background: var(--ink); color: var(--card); border-radius: 14px; padding: 10px 12px; }
.cqvault .cqsech { border-color: rgba(255,255,255,.2); } .cqvault .tnotes { color: rgba(255,255,255,.75); }
@media (max-width: 600px) {
  .vtlock { margin-top: 3vh; padding: 20px 16px; }
  .vtev { grid-template-columns: 76px 1fr; } .vtev .vtamt { grid-column: 2; }
  .vtkpis { grid-template-columns: 1fr 1fr; }
  .vtkpi b { font-size: 15px; }
}
.vttblw { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.vttbl { min-width: 560px; }

/* ۱۰.۱۴۴ — ستون حسابداری در بستن روز */
.dcaccform { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; margin: 10px 0; }
.dcaccform .tnotes { font-size: 11px; }
.dctbl td .tnotes { font-size: 11px; margin-top: 2px; }

/* ۱۰.۱۴۵ — توضیح پشت ⓘ و ویرایشگر سمت‌ها */
.infohint { margin: 6px 0; }
.infohint > summary { cursor: pointer; color: var(--muted, #777); font-size: 13px; list-style: none; display: inline-block; padding: 2px 8px; border: 1px dashed var(--line); border-radius: 999px; }
.infohint > summary::-webkit-details-marker { display: none; }
.infohint[open] > summary { margin-bottom: 6px; }
.hrtitles > summary { cursor: pointer; font-weight: 600; }
.hrtgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; margin: 10px 0; }
.hrtcard { display: flex; flex-direction: column; gap: 6px; border: 1px solid var(--line); border-radius: 10px; padding: 8px; }
.hrtcard textarea { width: 100%; box-sizing: border-box; }
.exitcancel { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.exitcancel input { flex: 1 1 220px; min-width: 0; }

/* ۱۰.۱۴۵ — نمای پوشه‌ای برگه‌های صندوق */
.cashviewbar .mini.on { background: var(--ink, #222); color: var(--card, #fff); }
.cashday { border: 1px solid var(--line); border-radius: 12px; margin: 8px 0; background: var(--card, #fff); }
.cashday > summary { cursor: pointer; padding: 12px 14px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; list-style: none; }
.cashday > summary::-webkit-details-marker { display: none; }
.cashday.wait { border-right: 4px solid #E3A33B; }
.cashday.bad { border-right: 4px solid #C94A3A; }
.cashday.done { border-right: 4px solid #3F9A64; }
.cashday .cdstat { margin-inline-start: auto; display: flex; gap: 4px; flex-wrap: wrap; }
.cashchips { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 12px 10px; }
.cashchip { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-width: 130px; padding: 8px 10px; border-radius: 10px; border: 1px solid var(--line); background: var(--bg, #faf9f6); cursor: pointer; text-align: right; font: inherit; }
.cashchip small { font-size: 11px; opacity: .75; }
.cashchip .chst { font-weight: 600; opacity: 1; }
.cashchip.green { border-color: #9DCBAF; } .cashchip.green .chst { color: #2F7D4F; }
.cashchip.amber { border-color: #E9C98B; } .cashchip.amber .chst { color: #9A6A12; }
.cashchip.red { border-color: #E4A59B; } .cashchip.red .chst { color: #B03A2A; }
.cashchip.blue { border-color: #9DB8E0; } .cashchip.blue .chst { color: #2C5DA8; }
.cashchip.on { outline: 2px solid var(--ink, #222); outline-offset: 1px; }
.cashone { padding: 0 8px 8px; }
.cashone > .ticket { margin: 0; }
@media (max-width: 560px) { .cashchip { min-width: calc(50% - 4px); flex: 1 1 calc(50% - 4px); } }

/* ۱۰.۱۴۶ — مرور فروش */
.srevchips { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.srevchip { display: inline-flex; align-items: center; gap: 4px; border: 1px solid var(--line); border-radius: 999px; padding: 4px 10px; font-size: 12.5px; cursor: pointer; }
.srevchip.on { background: #EAF4EE; border-color: #9DCBAF; }
.srevchip input { margin: 0; }
.mini.on, .srevtab.on { background: var(--ink, #222); color: var(--card, #fff); }
.srevcharts { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; margin: 8px 0 14px; }
.srevchart { border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; }
.srevbarline { display: grid; grid-template-columns: minmax(80px, 34%) 1fr auto; align-items: center; gap: 8px; margin: 5px 0; font-size: 12.5px; }
.srevlbl { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.srevtrk { background: #EFEDE7; border-radius: 6px; height: 14px; overflow: hidden; }
.srevtrk i { display: block; height: 100%; background: #3F9A7A; border-radius: 6px; }
.srevval { font-variant-numeric: tabular-nums; direction: ltr; white-space: nowrap; }
.srevtabs { display: flex; gap: 6px; overflow-x: auto; padding: 4px 0 8px; -webkit-overflow-scrolling: touch; }
.srevtab { flex: 0 0 auto; border: 1px solid var(--line); background: var(--card, #fff); border-radius: 999px; padding: 7px 13px; font: inherit; font-size: 13px; cursor: pointer; }
.srevbar { gap: 8px; align-items: center; }
.srevq { flex: 1 1 200px; min-width: 0; }
.srevtbl td.n, .srevtbl th.n { text-align: left; direction: ltr; white-space: nowrap; }
.srevbr > summary { cursor: pointer; padding: 6px 0; font-weight: 600; font-size: 13.5px; }
.pdoc .pstatus { width: 100%; margin-top: 8px; padding: 10px; border-radius: 10px; border: 1px solid var(--line); background: var(--field, #faf9f6); font: inherit; }

/* ۱۰.۱۴۸ — دستور پرداخت */
.tacts:has(> .pofm) { flex-wrap: wrap; }
.tacts > .pofm { flex: 0 0 100%; order: -1; margin: 6px 0 4px; }
.ticket.late { border-right: 3px solid var(--danger); }
/* ۱۰.۱۵۰ — وضعیت ذخیرهٔ پیش‌نویس برگهٔ صندوق */
.drstate{align-self:center;margin-inline-start:10px}
.drstate.ok{color:#2C7A4B}
.drstate.bad{color:#B3261E}

/* ===== ۱۰.۱۵۳ — کارتابل نامه‌ها ===== */
.ltwrap .lthead { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ltwrap .lthead h3 { margin: 0 0 0 auto; }
.ltboxes { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 8px; }
.ltbox { border: 1px solid var(--line); background: var(--card); color: var(--ink); border-radius: 999px; padding: 6px 12px; font: inherit; font-size: 13px; cursor: pointer; }
.ltbox.on { background: var(--ink); color: var(--card); border-color: var(--ink); }
.ltq { width: 100%; box-sizing: border-box; margin-bottom: 8px; }
.ltlist { display: grid; gap: 6px; }
.ltrow { border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; cursor: pointer; background: var(--card); border-inline-start: 4px solid var(--line); }
.ltrow:hover { border-color: var(--accent, #0f766e); }
.ltrow.unread { border-inline-start-color: #0f766e; }
.ltrow.unread .lttop b { font-weight: 900; }
.ltrow.late { border-inline-start-color: #b91c1c; }
.lttop { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.lttop b { font-weight: 600; }
.ltsub { font-size: 12.5px; color: var(--sub); margin-top: 2px; }
.ltpri { background: #fee2e2; color: #991b1b; border-radius: 6px; padding: 0 6px; font-size: 12px; font-weight: 700; }
.ltsec { background: #fef3c7; color: #92400e; border-radius: 6px; padding: 0 6px; font-size: 12px; font-weight: 700; }
.ltclip { font-size: 12px; color: var(--sub); }
.ltform { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; margin: 10px 0; }
.ltf { display: grid; gap: 4px; }
.ltf > span { font-size: 12.5px; color: var(--sub); }
.ltf.wide, .ltform .wide { grid-column: 1 / -1; }
.ltf.chk { display: flex; align-items: center; gap: 6px; grid-column: 1 / -1; }
.ltpick { border: 1px solid var(--line); border-radius: 10px; padding: 6px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; background: var(--field, #fff); }
.ltpick input { border: 0; flex: 1 1 180px; min-width: 140px; background: transparent; outline: none; font: inherit; }
.ltchips { display: contents; }
.ltchip { display: inline-flex; align-items: center; gap: 4px; background: #e6f4f1; color: #134e4a; border-radius: 999px; padding: 3px 4px 3px 10px; font-size: 13px; }
.ltchip button { border: 0; background: transparent; cursor: pointer; color: inherit; font-size: 12px; }
.lttool { display: flex; gap: 4px; }
.lted { min-height: 180px; border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; background: var(--field, #fff); line-height: 2; outline: none; }
.lted:empty::before { content: attr(data-ph); color: var(--sub); }
.ltsheet { background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 18px; margin: 10px 0; box-shadow: 0 4px 16px rgba(0,0,0,.05); }
.ltshead { display: flex; justify-content: space-between; gap: 12px; border-bottom: 2px solid #134e4a; padding-bottom: 10px; margin-bottom: 10px; }
.ltshead h3 { margin: 4px 0 0; }
.ltkind { font-size: 12px; color: var(--sub); }
.ltmeta { font-size: 13px; line-height: 1.9; text-align: start; white-space: nowrap; }
.ltwho { font-size: 14px; line-height: 2; margin-bottom: 8px; }
.ltreflink { font-size: 13px; }
.ltbody { line-height: 2.1; font-size: 15px; min-height: 80px; overflow-wrap: anywhere; }
.ltsign { display: grid; justify-items: end; gap: 2px; margin-top: 16px; }
.ltstamp { border: 2px solid #134e4a; color: #134e4a; border-radius: 8px; padding: 0 8px; font-size: 12px; transform: rotate(-3deg); }
.ltfiles { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; border-top: 1px dashed var(--line); padding-top: 10px; }
.ltflow { margin-top: 12px; display: grid; gap: 6px; }
.ltstep { border-inline-start: 3px solid var(--line); padding: 4px 10px; }
.ltstep.done { border-inline-start-color: #15803d; }
.ltstep.late { border-inline-start-color: #b91c1c; }
.ltstepk { color: var(--sub); font-size: 13px; }
.ltnote { font-size: 13px; background: #f5f5f4; border-radius: 8px; padding: 4px 8px; margin-top: 3px; }
body.dark .ltnote { background: #26262b; } body.dark .ltchip { background: #1f3b37; color: #d1fae5; }
@media (max-width: 560px) { .ltshead { flex-direction: column; } .ltmeta { white-space: normal; } .ltsheet { padding: 12px; } }

/* ۱۰.۱۵۹ — هشدار موجودی منفی: بالاتر از توست عادی، کهربایی، تا زده نشود بسته نمی‌شود (۹ ثانیه) */
.toast.warnt { bottom: 74px; border-radius: 14px; background: #8A5A00; color: #fff; max-width: min(92vw, 560px); white-space: normal; line-height: 1.8; cursor: pointer; }
/* 10.161 — مدت‌ها و بندهای مهم قرارداد: پررنگ و قرمز (خانم شیروانیان) */
b.cimp { color: #B3261E; font-weight: 800; }
body.dark b.cimp { color: #FF8A80; }
@media print { b.cimp { color: #B3261E !important; } }
/* 10.164 — بایگانی قراردادهای امضاشده */
.cagrid { display: grid; grid-template-columns: minmax(220px, 38%) 1fr; gap: 14px; align-items: start; }
.cagrid .caprev { width: 100%; border-radius: 10px; border: 1px solid var(--line); background: #fff; }
@media (max-width: 720px) { .cagrid { grid-template-columns: 1fr; } }
.cachips { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 6px; }
.cagallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
.caitem { position: relative; border: 1px solid var(--line); border-radius: 10px; padding: 6px; background: var(--field); }
.caitem img { width: 100%; height: 170px; object-fit: contain; border-radius: 6px; cursor: zoom-in; background: #fff; }
.caitem .chipx { position: absolute; top: 4px; left: 4px; }
.tnotes.ok { color: #1B7F3B; }
.tnotes.warn { color: #8A5A00; }
label.f.chk { flex-direction: row; align-items: center; gap: 6px; }
/* 10.165 — نگهبان سامانه */
.wdi { border-inline-start: 5px solid var(--line); }
.wdi.wd-bad, .wdi.wd-err { border-inline-start-color: #B3261E; }
.wdi.wd-warn { border-inline-start-color: #C98A00; }
.wdi.wd-ok { border-inline-start-color: #1B7F3B; padding-top: 8px; padding-bottom: 8px; }
.wdi summary { cursor: pointer; }
.wdb { display: inline-block; border-radius: 8px; padding: 0 8px; font-size: 12px; color: #fff; background: #1B7F3B; }
.wdb-warn { background: #C98A00; } .wdb-bad, .wdb-err { background: #B3261E; }
.wdl { margin: 6px 0 0; padding-inline-start: 18px; line-height: 1.9; font-size: 13.5px; }

/* ---------- ۱۰.۱۶۶ — رزرو و نوبت‌دهی (RV-99) ---------- */
.rvtabs, .rvday, .rvfilters, .rvadd { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 8px 0; }
.rvdate { width: 118px; text-align: center; padding: 5px 8px; border: 1px solid var(--line); border-radius: 8px; background: var(--field); color: var(--ink); }
.rvnow { color: var(--muted); font-size: 12.5px; margin-inline-start: auto; }
.rvsel, .rvsearch { padding: 5px 8px; border: 1px solid var(--line); border-radius: 8px; background: var(--field); color: var(--ink); font-size: 13px; }
.rvsearch { flex: 1 1 160px; min-width: 140px; }
.rvkpi { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 8px; margin: 8px 0; }
.rvk { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 8px 10px; text-align: center; }
.rvk b { display: block; font-size: 20px; font-weight: 900; }
.rvk span { font-size: 12px; color: var(--muted); }
.rvcard { display: grid; grid-template-columns: 64px 1fr; gap: 4px 10px; background: var(--card); border: 1px solid var(--line);
  border-inline-start: 5px solid var(--line2); border-radius: 12px; padding: 10px; margin: 8px 0; }
.rvcard.rv-q { border-inline-start-color: #2563EB; } .rvcard.rv-b { border-inline-start-color: #7C3AED; }
.rvcard.rv-c { border-inline-start-color: #DC2626; background: var(--badbg); } .rvcard.rv-y { border-inline-start-color: #16A34A; background: var(--goodbg); }
.rvcard.rv-a { border-inline-start-color: #D97706; } .rvcard.rv-s { border-inline-start-color: #0F766E; }
.rvcard.rv-d, .rvcard.rv-x { opacity: .72; }
.rvwhen { text-align: center; align-self: start; }
.rvwhen b { display: block; font-size: 18px; font-weight: 900; line-height: 1.3; }
.rvwhen small { color: var(--muted); font-size: 11px; }
.rvmid { min-width: 0; }
.rvname { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.rvname b { font-size: 15.5px; font-weight: 900; }
.rvparty, .rvtbl { font-size: 12.5px; background: var(--chip); border-radius: 999px; padding: 1px 8px; }
.rvtbl { background: var(--ink); color: var(--card); font-weight: 700; }
.rvsrc { font-size: 13px; }
.rvtags { display: flex; flex-wrap: wrap; gap: 4px; margin: 4px 0; }
.rvtag { font-size: 11.5px; border: 1px solid var(--line); border-radius: 999px; padding: 1px 8px; background: var(--field); color: var(--sub); }
.rvtag.gold { border-color: var(--gold); color: #8a6512; background: var(--warnbg); }
.rvtag.bad { border-color: var(--danger); color: var(--danger); }
.rvtags.pickable .rvtag { cursor: pointer; font-size: 12.5px; padding: 3px 10px; }
.rvtags.pickable .rvtag.on { background: var(--ink); color: var(--card); border-color: var(--ink); }
.rvgnote { font-size: 12.5px; background: var(--warnbg); border-radius: 8px; padding: 3px 8px; margin: 3px 0; }
.rvsub { font-size: 12.5px; color: var(--sub); margin: 2px 0; }
.rvst { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 4px; }
.rvchip { font-size: 12px; font-weight: 800; border-radius: 6px; padding: 1px 8px; background: var(--chip); }
.rvtime { font-size: 12.5px; color: var(--sub); font-variant-numeric: tabular-nums; }
.rvtime.hot { color: var(--danger); font-weight: 900; }
.rvok { font-size: 12px; color: var(--good); font-weight: 700; }
.rvbad { font-size: 12px; color: var(--danger); font-weight: 700; }
.rvacts { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; }
.rvacts .mini { padding: 6px 11px; font-size: 12.5px; }
.rvring:empty { display: none; }
.rvringc { background: #0F766E; color: #fff; border-radius: 12px; padding: 10px 12px; margin: 8px 0; animation: rvpulse 1.2s ease-in-out 3; }
.rvringc .rvsub, .rvringc .rvph { color: #D1FAE5; }
.rvringc .pill { background: #fff; color: #0F766E; }
.rvringc .rvtag { background: transparent; color: #fff; border-color: #99F6E4; }
.rvringc .rvgnote { color: #17181A; }
.rvringt { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 16px; }
@keyframes rvpulse { 50% { box-shadow: 0 0 0 6px rgba(15,118,110,.25); } }
.rvov { position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 900; display: flex; align-items: flex-end; justify-content: center; }
.rvsheet { background: var(--paper); width: 100%; max-width: 760px; max-height: 92dvh; border-radius: 16px 16px 0 0; display: flex; flex-direction: column; }
@media (min-width: 760px) { .rvov { align-items: center; } .rvsheet { border-radius: 16px; } }
.rvshead { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 12px 14px; border-bottom: 1px solid var(--line); }
.rvsbody { overflow-y: auto; padding: 12px 14px 20px; }
.rvtgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(78px, 1fr)); gap: 8px; margin: 8px 0; }
.rvt { border: 2px solid var(--line); border-radius: 12px; background: var(--card); color: var(--ink); padding: 6px 4px; min-height: 66px; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.rvt b { font-size: 17px; font-weight: 900; } .rvt small { font-size: 11px; color: var(--muted); } .rvt i { font-style: normal; font-size: 10.5px; line-height: 1.4; text-align: center; }
.rvt.free { border-color: #16A34A; } .rvt.busy { border-color: #DC2626; background: var(--badbg); } .rvt.soon { border-color: #D97706; background: var(--warnbg); }
.rvt.small { opacity: .5; } .rvt.on { background: var(--ink); color: var(--card); border-color: var(--ink); } .rvt.on small { color: var(--card); }
.rvt.sug { box-shadow: 0 0 0 3px var(--gold); }
.rvform .grid { margin-bottom: 6px; }
.rvquick { display: flex; flex-wrap: wrap; gap: 4px; }
.rvquick .mini { padding: 3px 8px; font-size: 12px; }
.rvtrow { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 6px 0; }
.rvgbox { background: var(--card); border: 1px dashed var(--line2); border-radius: 10px; padding: 8px 10px; margin: 6px 0; }
.rvchk { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; color: var(--sub); margin-inline-end: 10px; }
.rvlog { display: grid; grid-template-columns: 48px auto 1fr; gap: 8px; font-size: 12.5px; padding: 3px 0; border-bottom: 1px dotted var(--line); }
.rvlt { color: var(--muted); font-variant-numeric: tabular-nums; }
.rvbar { display: grid; grid-template-columns: 110px 1fr 44px; gap: 8px; align-items: center; font-size: 12.5px; margin: 3px 0; }
.rvbt { background: var(--chip); border-radius: 6px; height: 12px; overflow: hidden; } .rvbt i { display: block; height: 100%; background: var(--gold); }
.rvmeal { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 4px 0; }
.rvmeal input { width: 90px; padding: 4px 6px; border: 1px solid var(--line); border-radius: 7px; background: var(--field); color: var(--ink); }
.rvlink { direction: ltr; font-size: 12px; background: var(--field); border: 1px solid var(--line); border-radius: 8px; padding: 6px 8px; word-break: break-all; margin: 4px 0; }
.rvqr { display: flex; justify-content: center; padding: 10px; background: #fff; border-radius: 12px; }
@media (max-width: 520px) { .rvcard { grid-template-columns: 50px 1fr; } .rvwhen b { font-size: 15px; } .rvbar { grid-template-columns: 80px 1fr 36px; } }
/* نقشهٔ میز صندوق: برچسب رزرو */
.hallresv { position: absolute; top: -9px; inset-inline-start: -4px; font-style: normal; font-size: 10px; background: #7C3AED; color: #fff; border-radius: 6px; padding: 0 5px; white-space: nowrap; }
.hallresv.seat { background: #0F766E; }
.pxtResv { font-size: 12px; color: #7C3AED; font-weight: 700; }
.pxtResv.seat { color: #0F766E; }
.rvsheet input:not([type=checkbox]), .rvsheet textarea,
.rvcfg input:not([type=checkbox]), .rvcfg textarea { padding: 8px 10px; border: 1px solid var(--line); border-radius: 9px; background: var(--field); color: var(--ink); font: inherit; }
/* ---------- ۱۰.۱۶۷ — جدول زمانی میزها، بیعانه ---------- */
.rvmode { display: inline-flex; gap: 4px; margin-inline-end: 6px; }
.rvdep { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; margin-bottom: 4px; }
.rvdepchip { font-size: 12px; font-weight: 700; border-radius: 6px; padding: 1px 8px; font-variant-numeric: tabular-nums; }
.rvdepchip.dep-w { background: var(--warnbg); color: #8a6512; } .rvdepchip.dep-p { background: var(--goodbg); color: var(--good); }
.rvdepchip.dep-r { background: #E0ECFF; color: #1E40AF; } .rvdepchip.dep-x { background: var(--chip); color: var(--muted); }
body.dark .rvdepchip.dep-r { background: #1E2A44; color: #9DB8FF; }
.rvtl { margin: 8px 0; }
.rvtl-loose { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; background: var(--warnbg); border-radius: 10px; padding: 6px 8px; margin-bottom: 8px; font-size: 13px; }
.rvtl-chip { border: 1px solid var(--line2); background: var(--card); color: var(--ink); border-radius: 999px; padding: 3px 10px; font-size: 12.5px; }
.rvtl-chip.on { background: var(--ink); color: var(--card); }
.rvtl-scroll { overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; background: var(--card); max-height: 70vh; overflow-y: auto; }
.rvtl-grid { position: relative; }
.rvtl-row { display: flex; border-bottom: 1px solid var(--line); min-height: 46px; }
.rvtl-head { position: sticky; top: 0; z-index: 3; background: var(--card); min-height: 28px; }
.rvtl-lab { position: sticky; right: 0; z-index: 4; width: 150px; flex: 0 0 150px; background: var(--card); border-inline-end: 1px solid var(--line);
  padding: 4px 8px; display: flex; flex-direction: column; justify-content: center; }
.rvtl-lab b { font-size: 13px; } .rvtl-lab small { font-size: 11px; color: var(--muted); }
.rvtl-hallrow { min-height: 26px; background: var(--chip); } .rvtl-hallrow .rvtl-lab { background: var(--chip); font-size: 12px; font-weight: 800; }
.rvtl-track { position: relative; flex: 0 0 auto; cursor: cell; }
.rvtl-h { position: absolute; top: 5px; transform: translateX(50%); font-size: 11px; color: var(--muted); font-variant-numeric: tabular-nums; }
.rvtl-gl { position: absolute; top: 0; bottom: 0; width: 0; border-right: 1px dashed var(--line); }
.rvtl-now { position: absolute; top: 0; bottom: 0; width: 2px; background: var(--danger); z-index: 1; }
.rvtl-bar { position: absolute; top: 5px; bottom: 5px; border-radius: 8px; padding: 2px 8px; font-size: 11.5px; overflow: hidden; white-space: nowrap;
  background: #EDE9FE; border: 1px solid #7C3AED; color: #3B0764; cursor: grab; touch-action: none; z-index: 2; display: flex; flex-direction: column; justify-content: center; line-height: 1.35; }
.rvtl-bar b { font-size: 12px; overflow: hidden; text-overflow: ellipsis; } .rvtl-bar span { opacity: .8; }
.rvtl-bar.rv-s { background: #CCFBF1; border-color: #0F766E; color: #134E4A; }
.rvtl-bar.rv-q, .rvtl-bar.rv-a { background: #DBEAFE; border-color: #2563EB; color: #1E3A8A; }
.rvtl-bar.rv-c { background: #FEE2E2; border-color: #DC2626; color: #7F1D1D; } .rvtl-bar.rv-y { background: #DCFCE7; border-color: #16A34A; color: #14532D; }
.rvtl-bar.rv-d, .rvtl-bar.rv-x { opacity: .45; }
.rvtl-bar.busy { background: repeating-linear-gradient(45deg, #E5E7EB, #E5E7EB 6px, #F3F4F6 6px, #F3F4F6 12px); border-color: #9CA3AF; color: #374151; cursor: default; }
.rvtl-bar.drag { box-shadow: 0 6px 18px rgba(0,0,0,.25); z-index: 6; cursor: grabbing; opacity: .92; }
body.dark .rvtl-bar { filter: brightness(.85); }

/* ۱۰.۱۶۸ — پیش‌نمایش پیامک رزرو */
.rvsmshead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px}
.rvsmshead .rvsub{margin:0}
.rvsmsmeta{font-size:12px;color:var(--muted,#777);margin:2px 0 4px}
.rvsmsmeta.over{color:#b3261e;font-weight:600}
.rvphs{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:4px 14px;margin:6px 0 8px;font-size:12.5px}
.rvph{display:flex;gap:6px;align-items:baseline}
.rvph code{background:rgba(0,0,0,.06);border-radius:5px;padding:0 5px;font-size:12px;white-space:nowrap}
.rvsmspv{white-space:pre-wrap;word-break:break-word;background:#eef3e6;border:1px solid #d6dfc8;border-radius:12px 12px 12px 4px;padding:8px 10px;font-size:13px;line-height:1.7;max-width:420px}
@media (prefers-color-scheme: dark){ .rvsmspv{background:#2a2f22;border-color:#3b4230;color:#eee} }

/* ۱۰.۱۶۹ — حذف/ادغام قلم و مرور روزانهٔ انبار */
.invtools{flex-wrap:wrap;gap:8px;margin:6px 0 10px}
.missrow .invx{margin-inline-start:8px;white-space:nowrap}
.invxinfo{background:rgba(0,0,0,.04);border-radius:10px;padding:8px 10px;margin-bottom:8px;line-height:1.8}
.invdup{border:1px solid rgba(0,0,0,.1);border-radius:12px;padding:6px 10px;margin:10px 0}
.invduphd{font-size:12px;color:#8a2d16;font-weight:600;margin-bottom:2px}
.invdaybar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0}
.invdaydate{width:110px;text-align:center}
.invdaysum{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.invchip{background:rgba(0,0,0,.06);border-radius:999px;padding:3px 10px;font-size:12.5px}
.invchip.ok{background:#e3f1e0;color:#256b2a}.invchip.bad{background:#fbe4e1;color:#a4271b}.invchip.wait{background:#fff3d6;color:#7a5600}
.invdayrow{display:flex;gap:8px;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(0,0,0,.07);padding:8px 4px}
.invdayrow.ok{background:rgba(46,125,50,.06)}.invdayrow.bad{background:rgba(198,40,40,.07)}.invdayrow.odd{box-shadow:inset 3px 0 0 #c62828}
.invdaymain{min-width:0;flex:1}
.invtime{font-size:12px;color:#777;font-variant-numeric:tabular-nums}
.invqtyb{font-weight:700;white-space:nowrap}
.invodd{color:#b3261e;font-size:12.5px;font-weight:600}
.invdayacts{display:flex;gap:6px;flex-shrink:0}
.invdayacts .mini{min-width:40px;font-size:15px}
table.invtot{width:100%;border-collapse:collapse}table.invtot th,table.invtot td{border-bottom:1px solid rgba(0,0,0,.08);padding:5px;text-align:right}
@media (prefers-color-scheme: dark){ .invxinfo,.invchip{background:rgba(255,255,255,.07)} }

/* ۱۰.۱۷۰ — تطبیق بانک و اجاره */
.brup .brupr{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 4px;border-bottom:1px solid rgba(0,0,0,.07)}
.brup .brupr.bad{background:rgba(198,40,40,.07)}.brup .brupr.wait{background:rgba(255,179,0,.08)}
.brtabs{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.brtiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin:8px 0}
.brtile{border:1px solid rgba(0,0,0,.1);border-radius:12px;padding:9px 11px;background:rgba(0,0,0,.02)}
.brtile.bad{border-color:#e7a39b;background:#fdf0ee}.brtile.wait{border-color:#f0cf7a;background:#fff8e3}.brtile.ok{border-color:#b9d7b3}
.brtile.rent{border-color:#8a2d16;background:#fbf2ee}
.brtl{font-size:12px;color:#666}.brtv{font-size:17px;font-weight:700;margin-top:2px;font-variant-numeric:tabular-nums}
.brwrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:6px 0}
table.brtbl{width:100%;border-collapse:collapse;font-size:12.5px;min-width:420px}
table.brtbl th,table.brtbl td{border-bottom:1px solid rgba(0,0,0,.08);padding:5px 6px;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
table.brtbl th{background:rgba(0,0,0,.04);font-weight:600}
table.brtbl tr.bad td{background:#fdf0ee}table.brtbl tr.wait td{background:#fff8e3}table.brtbl tr.sum td{font-weight:700;border-top:2px solid rgba(0,0,0,.2)}
.brrow{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:8px 4px;border-bottom:1px solid rgba(0,0,0,.07)}
.brrow.bad{background:rgba(198,40,40,.05)}
.brrm{min-width:0;flex:1}.brrm .tnotes{overflow-wrap:anywhere}
.brout{color:#a4271b}.brin{color:#256b2a}
.brra{display:flex;gap:6px;align-items:center;flex-shrink:0;flex-wrap:wrap}.brra select{max-width:170px}
.stbadge.red{background:#fbe4e1;color:#a4271b}
.brchks{display:flex;flex-wrap:wrap;gap:4px 14px;margin:4px 0 8px}
@media (max-width:560px){ .brrow{flex-direction:column;align-items:stretch} .brra{justify-content:flex-start} }
@media (prefers-color-scheme: dark){ .brtile{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12)} .brtile.bad{background:#3a2220}.brtile.wait{background:#3a3320}.brtile.rent{background:#35241f} table.brtbl tr.bad td,.brrow.bad{background:#3a2220} }

/* ۱۰.۱۷۱ — بستن روز: روش پرداخت و تخفیف پنهان */
.dcpahd { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; }
.dcpar { padding: 6px 0; border-bottom: 1px dashed var(--line2); }
.dcpar:last-child { border-bottom: 0; }
.dcpafix { color: #92400e; }
.dcpasum { margin-top: 8px; font-weight: 700; }
.mth.diffwarn { color: #b45309; }

/* ۱۰.۱۷۱ — حساب شرکا: ردیف منفی و انتقال */
.vcneg { color: #b91c1c; }
.ticket.vcnegt { border-inline-start: 3px solid #dc2626; }
.vctr { margin: 4px 0; } .vctr summary { cursor: pointer; font-weight: 700; }
.stbadge.orange { background: #fed7aa; color: #9a3412; }

/* ۱۰.۱۷۲ — گزارش‌های صبح بله */
.dgpre { white-space: pre-wrap; direction: rtl; font-family: inherit; font-size: 13px; line-height: 1.8;
  background: var(--field); border: 1px solid var(--line2); border-radius: 10px; padding: 10px 12px; max-height: 420px; overflow: auto; }
.dgbox details { margin-top: 8px; } .dgbox summary { cursor: pointer; font-weight: 700; }

/* ۱۰.۱۷۶ — تابلوهای دیجیتال */
.chip.on { background: var(--accent); color: #fff; border-color: var(--accent); }
.sgscr { border: 1px solid var(--line); border-radius: 12px; padding: 10px; margin: 8px 0; display: flex; flex-direction: column; gap: 8px; background: var(--card); }
.sgtop { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.sgtop > div:nth-child(2) { flex: 1; min-width: 160px; display: flex; flex-direction: column; }
.sgtop small { color: var(--sub); font-size: 12px; }
.sgdot { width: 12px; height: 12px; border-radius: 50%; flex: none; background: var(--line2, #bbb); }
.sgdot.on { background: #16a34a; box-shadow: 0 0 0 4px rgba(22,163,74,.18); }
.sgdot.down { background: #dc2626; }
.sgst { font-size: 12.5px; color: var(--sub); }
.sgua { font-size: 11px; direction: ltr; text-align: left; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.sgua.sgtele { direction: rtl; text-align: right; white-space: normal; line-height: 1.8; }
/* ۱۰.۱۷۷ — «الان روی صفحه» در کارت تابلو */
.sgnow { display: flex; align-items: center; gap: 10px; margin-top: 8px; padding: 8px; border-radius: 10px; background: var(--chip); }
.sgnow .sgth { width: 54px; height: 96px; cursor: default; font-size: 22px; }
.sgnow .sgth.land { width: 128px; height: 72px; }
.sgnow b { display: block; font-size: 12px; }
.sgnow small { color: var(--muted); font-size: 11px; }
.sglist { display: flex; flex-direction: column; gap: 6px; margin: 10px 0; }
.sgit { display: flex; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 10px; padding: 6px; background: var(--card); }
.sgit.off { opacity: .5; }
.sgitt { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.sgitt small { color: var(--sub); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sgita { display: flex; gap: 2px; flex-wrap: wrap; }
.sgth { width: 64px; height: 48px; border-radius: 8px; overflow: hidden; background: var(--chip); display: grid; place-items: center; flex: none; font-size: 20px; cursor: pointer; border: 2px solid transparent; }
.sgth img, .sgth video { width: 100%; height: 100%; object-fit: cover; }
.sgth.on { border-color: var(--accent); }
.sgpick { display: flex; flex-wrap: wrap; gap: 6px; max-height: 220px; overflow: auto; }
.sgpick .sgth { width: 96px; height: 72px; font-size: 12px; }
.sgcats { display: flex; flex-wrap: wrap; gap: 4px 0; }
.sgcats .hint { flex-basis: 100%; }
.sgdays { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.sgdays .chip { cursor: pointer; min-width: 30px; justify-content: center; }
.sgmedia { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; margin-top: 10px; }
.sgm { border: 1px solid var(--line); border-radius: 10px; padding: 6px; display: flex; flex-direction: column; gap: 4px; background: var(--card); }
.sgm .sgth { width: 100%; height: 80px; cursor: default; }
.sgm small { font-size: 11px; color: var(--sub); }
.sgscr .offrow2, .sgwrap { flex-wrap: wrap; }
.sgwrap code { word-break: break-all; min-width: 0; flex: 1 1 200px; }
.sgscr select { max-width: 100%; flex: 1 1 160px; }
.sgscr .offedit label select { flex: none; }   /* ۱۰.۱۸۶ — داخل فرم، فهرست کشویی ۱۶۰ پیکسل قد می‌کشید */
@media (max-width: 560px) { .sgit { flex-wrap: wrap; } .sgitt { flex-basis: calc(100% - 80px); } .sgita { flex-basis: 100%; justify-content: flex-end; } }

/* ۱۰.۱۸۰ — چک‌لیست اتصال تابلو و راهنمای نصب */
.sgcheck { margin-top: 8px; display: grid; gap: 2px; font-size: 12px; }
.sgcheck .ok { color: #2C7A4B; } .sgcheck .bad { color: #B3261E; font-weight: 700; } .sgcheck .info { color: var(--muted); }
.sgguide { margin-top: 10px; } .sgguide summary { cursor: pointer; font-weight: 700; font-size: 13px; }
.sgguide .hint { margin-top: 4px; }
/* ۱۰.۱۸۳ — ویرایشگر صفحه‌های معرفی مجموعه‌ها و «خیابان» در اسلاید صفحهٔ انتظار */
.sgintro { margin-top: 10px; border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; }
.sgintro summary { cursor: pointer; font-weight: 800; }
.sgib { border-top: 1px dashed var(--line); padding-top: 8px; margin-top: 8px; display: flex; flex-direction: column; gap: 6px; }
.sgib textarea { width: 100%; }
.sgth { position: relative; }
.sgord { position: absolute; top: 2px; right: 2px; background: var(--accent); color: #fff; font-size: 11px; font-weight: 900; border-radius: 999px; min-width: 18px; height: 18px; display: grid; place-items: center; }
/* ۱۰.۱۸۳ — پیش‌نمایش چاپ روی برگ چک */
.chqpv { margin: 8px 0; }
.chqpv iframe { width: 100%; aspect-ratio: 170 / 92; border: 1px solid var(--line); border-radius: 8px; background: #fffdf7; }
.ltrnum { direction: ltr; unicode-bidi: isolate; display: inline-block; }   /* ۱۰.۱۸۸ — شمارهٔ تلفن برعکس نشود */

/* ۱۰.۱۹۰ — سفر مهمان */
.jrfunnel { display: flex; flex-direction: column; gap: 6px; margin: 8px 0; }
.jrf { display: grid; grid-template-columns: 150px 1fr; gap: 10px; align-items: center; }
.jrfl { display: flex; flex-direction: column; font-size: 13px; }
.jrfl small { color: var(--sub); font-size: 11.5px; }
.jrfbar { height: 30px; border-radius: 8px; background: linear-gradient(90deg, var(--acc, #1f7a45), color-mix(in srgb, var(--acc, #1f7a45) 60%, #fff)); display: flex; align-items: center; padding: 0 10px; color: #fff; min-width: 34px; transition: width .4s; }
.jrfbar b { font-size: 13px; }
.jrchk { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 4px 0 10px; }
.jrpick { border: 1px dashed var(--line); border-radius: 10px; padding: 8px 10px; margin: 8px 0; }
.jrpick b { display: block; font-size: 13.5px; }
.jrpick small { color: var(--sub); font-size: 12px; display: block; margin-bottom: 6px; }
.jrpick input { width: 100%; margin-bottom: 6px; }
.jrpicklist { display: flex; flex-wrap: wrap; gap: 4px 10px; max-height: 160px; overflow: auto; }
.jrpicklist .rvchk.on { color: var(--ink); font-weight: 700; }

/* ۱۰.۱۹۲ — دکمه‌های هفتهٔ قبل/بعد کنار کادر شروع هفته */
.weeknav { display: flex; gap: 6px; margin-top: 6px; flex-wrap: wrap; }
/* ۱۰.۱۹۲ — «کی امتیاز دارد» در ارزیابی عملکرد */
.kpiwho { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 10px; }
.kpiwho .tnotes { flex-basis: 100%; }
.kpichip.ok { border-color: #2F7A55; color: #2F7A55; }
.kpichip.some { border-color: #b7791f; color: #b7791f; }
.kpichip.none { border-color: var(--danger); color: var(--danger); }
.kpimissing { margin-top: 10px; padding: 10px 12px; border: 1px dashed var(--danger); border-radius: 10px; }
.kpimissing .kpiun { font-weight: 700; color: var(--ink); }

/* ۱۰.۱۹۳ — مجالس و شرکتی */
.subtabs { display: flex; gap: 6px; flex-wrap: wrap; margin: 8px 0 12px; }
.evres { margin-top: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--card); }
.evres.bad { border-color: var(--danger); background: var(--badbg); }
.evres tr.sum td { font-weight: 700; background: var(--chip); }
.evpkitems { margin-top: 8px; display: flex; flex-direction: column; gap: 6px; }
.evpkrow { display: grid; grid-template-columns: 2fr 80px auto 34px; gap: 6px; align-items: center; }
.evitems input, .evitems select { min-width: 70px; width: 100%; padding: 4px 6px; font-size: 12.5px; }
.evitems td:first-child input { min-width: 140px; }
.evitems td:nth-child(6) { font-size: 11.5px; white-space: nowrap; }
.evitems tr.bad td { background: var(--badbg); }

/* ۱۰.۱۹۶ — امانی‌های باز */
.loanp .missrow { align-items: center; }
.loanp .loanold { background: #fff4e5; border-radius: 10px; }
.loanp .loanold .tnotes { color: #8a4b00; font-weight: 600; }

/* ۱۰.۱۹۸.۱ — ورود پنل تهیه غذای فرش (fresh35153.ir/admin): همان صفحهٔ ورود اپ، پالت آبی سازمانی */
html.ctskin { --accent: #10347E; --accent-ink: #FFFFFF; --accent-soft: #E3E9F6; --accent-deep: #0B2560; --gold: #C9A24A; }
html.ctskin body, .ctlogin { background: #F6F4EE; }
.ctlogin .login-box .ctlogo { width: 230px; max-width: 80%; height: auto; margin: 0 auto 18px; display: block; }
.ctlogin .welcome { color: #10347E; font-size: 15px; font-weight: 900; }
.ctlogin p { color: #6B7390; }
.ctlogin input { background: #FFFFFF; border-color: #CBD3E6; }
.ctlogin input:focus { border-color: #10347E; box-shadow: 0 0 0 3px rgba(16,52,126,.12); }
.ctlogin button:not(.pweye) { background: #10347E; border-color: #10347E; color: #fff; box-shadow: 0 8px 20px -10px rgba(16,52,126,.85); }
.ctlogin button:not(.pweye):hover { background: #0B2560; }
.ctlogin .loginjob { background: #10347E; box-shadow: 0 6px 16px -8px rgba(16,52,126,.7); }
.ctlogin .loginjob .ljic { color: #E2C77A; }
.ctlogin .loginlogos { display: none; }
.ctlogin::before { content: ""; position: fixed; inset: 0 0 auto 0; height: 6px; background: linear-gradient(90deg, #10347E, #C9A24A, #10347E); }

/* ۱۰.۲۰۰.۱ — لغو چندتایی اقلام باز خرید */
.missrow.pusel-row { justify-content: flex-start; }
.missrow.pusel-row > div { flex: 1; min-width: 0; }
.pucb { width: 22px; height: 22px; margin: 3px 0 0; flex: none; accent-color: var(--bad, #c0392b); cursor: pointer; }
.pusel { position: sticky; bottom: 8px; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 10px;
  margin-top: 10px; padding: 10px 12px; border-radius: 12px; background: var(--card, #fff); box-shadow: 0 6px 22px -10px rgba(0,0,0,.35);
  border: 1px solid var(--line, #e5e5e5); }
.pusel-all { display: inline-flex; align-items: center; gap: 6px; font-weight: 800; font-size: 13.5px; cursor: pointer; }
.pusel-all input { width: 20px; height: 20px; accent-color: var(--bad, #c0392b); }
.pusel .mini[disabled] { opacity: .5; }
@media (max-width: 600px) { .missrow.pusel-row { flex-direction: row; flex-wrap: wrap; } .missrow.pusel-row .mini { width: auto; flex: 1 0 100%; } }

/* ۱۰.۲۰۴ — کارت‌های مقایسهٔ تبلت حضور و غیاب: روی گوشی دوتایی، نه یکی‌یکی */
.clkcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; margin: 10px 0; }
@media (max-width: 640px) { .clkcards { grid-template-columns: 1fr 1fr; gap: 8px; } .clkcards .bignum { font-size: 18px; } }

/* ۱۰.۲۰۸ — کالری و ارزش غذایی منو */
.nutstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin:10px 0}
.nutstat{background:var(--card,#fff);border:1px solid var(--line,#e5e7eb);border-radius:12px;padding:8px 10px;display:flex;flex-direction:column;gap:2px}
.nutstat b{font-size:20px}.nutstat span{font-size:12px;opacity:.75}
.nutstat.ok{border-color:#16a34a}.nutstat.warn{border-color:#d97706}
.nutbar{height:8px;border-radius:6px;background:var(--line,#e5e7eb);overflow:hidden;margin:4px 0}
.nutbar i{display:block;height:100%;background:#16a34a}
.nutform{border:1px dashed var(--line,#d1d5db);border-radius:12px;padding:10px;margin:6px 0;display:grid;gap:6px}
.stbadge.gray{background:#e5e7eb;color:#374151}

/* ===== ۱۰.۲۱۰ — سامانهٔ مودیان ===== */
.subtabs { display: flex; gap: 6px; flex-wrap: wrap; margin: 4px 0 14px; }
.mdntiles { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; margin-bottom: 14px; }
.mdntile { border-radius: 12px; padding: 10px 8px; text-align: center; cursor: pointer; border: 1px solid var(--line); background: var(--card); display: flex; flex-direction: column; gap: 2px; }
.mdntile b { font-size: 22px; } .mdntile span { font-size: 12px; font-weight: 700; } .mdntile small { font-size: 10.5px; color: var(--muted); }
.mdntile.green b { color: var(--good); } .mdntile.red b { color: var(--danger); } .mdntile.amber b { color: #B07A12; } .mdntile.blue b { color: #2A5D8A; } .mdntile.grey b { color: var(--muted); }
.mdnent { border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px; margin: 6px 0; } .mdnent.on { border-color: var(--good); } .mdnent.off { border-color: #E8CE93; }
.mdnenth { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.mdnkv { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px 12px; font-size: 12.5px; margin: 6px 0; }
.mdnkv div { display: flex; gap: 6px; } .mdnkv span { color: var(--muted); } .mdnkv b { direction: ltr; unicode-bidi: embed; }
.mdnchips { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin: 4px 0; }
.mdnstep { display: flex; gap: 8px; align-items: flex-start; margin: 5px 0; font-size: 13px; line-height: 1.8; }
.mdnstep .k { flex: none; width: 24px; height: 24px; border-radius: 50%; background: var(--ink); color: var(--card); text-align: center; line-height: 24px; font-weight: 700; font-size: 12px; }
.mdnstep.ok .k { background: var(--good); } .mdnstep.bad .k { background: var(--danger); }
.mdnkeys, .mdnimgs { border-top: 1px dashed var(--line); margin-top: 10px; padding-top: 8px; } .mdnkeys h4, .mdnimgs h4 { margin: 0 0 4px; font-size: 14px; }
.mdnkeys textarea, .mdncsr textarea { min-height: 90px; font-family: monospace; font-size: 11px; width: 100%; }
.mdncsr { background: var(--field); border-radius: 10px; padding: 10px; margin-top: 8px; }
.mdnupick { display: flex; gap: 4px; flex-wrap: wrap; max-height: 120px; overflow: auto; }
.mdnback { z-index: 9800; } .mdnbox { max-height: 90vh; overflow: auto; width: min(640px, 100%); }
.mdnlist { max-height: 40vh; overflow: auto; border: 1px solid var(--line); border-radius: 10px; }
.mdncust { margin-bottom: 8px; }
.tbl.mdninv td, .tbl.mdnitems td { font-size: 12.5px; } .tbl.mdninv code { background: var(--field); padding: 1px 4px; border-radius: 4px; }
@media (max-width: 760px) { .mdntiles { grid-template-columns: repeat(3, 1fr); } .mdnkv { grid-template-columns: 1fr 1fr; } }
.pxrcptback.mdnback { position: fixed; inset: 0; z-index: 9800; background: rgba(20,24,22,.45); display: flex; align-items: center; justify-content: center; padding: 16px; }
.pxrcptbox.mdnbox { background: var(--card); color: var(--ink); border-radius: 18px; padding: 18px; box-shadow: 0 20px 60px rgba(0,0,0,.3); display: grid; gap: 10px; }
.pxrcptbox.mdnbox .pxrcpth { font-size: 17px; font-weight: 900; }
.pxrcptbox.mdnbox input, .pxrcptbox.mdnbox textarea { border: 1px solid var(--line); border-radius: 9px; padding: 9px; font: inherit; width: 100%; box-sizing: border-box; }
.tbl.mdninv td.mdnacts { white-space: nowrap; } .tbl.mdninv td.mdnacts .mini { margin: 1px; }

/* ۱۰.۲۱۱.۲ — جست‌وجو و فیلتر فهرست کارت‌های رسپی (درخواست خانم ذبیحی) */
.mqbar { position: sticky; top: 0; z-index: 20; background: var(--paper); padding: 10px 0 8px; margin: 4px 0 8px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; border-bottom: 1px solid var(--line); }
.mqbar input[type=search] { flex: 1 1 100%; font: inherit; font-size: 15px; padding: 11px 14px; border: 1.5px solid var(--line2); border-radius: 12px; background: var(--card); color: var(--ink); outline: 0; }
.mqbar input[type=search]:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.mqchips { display: flex; flex-wrap: wrap; gap: 6px; flex: 1; }
.mqchip { font: inherit; font-size: 13px; font-weight: 700; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--line); background: var(--card); color: var(--sub); cursor: pointer; }
.mqchip.on { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
.mqcnt { font-size: 12.5px; color: var(--muted); white-space: nowrap; }
details.newcard > summary { cursor: pointer; list-style: none; font-weight: 800; color: var(--accent-deep); }
details.newcard > summary::-webkit-details-marker { display: none; }
details.newcard[open] > summary { margin-bottom: 10px; }
details.newcard:not([open]) { padding: 12px 14px; margin-bottom: 10px; }

/* ۱۰.۲۱۲ — بازیافت و فروش ضایعات خشک */
.rcytiles { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
.rcytiles .mdntile b { font-size: 17px; }
.rcyform .rcylines { display: flex; flex-direction: column; gap: 8px; margin: 8px 0; }
.rcyline { display: grid; grid-template-columns: 1.4fr 1fr 1.2fr 1.2fr auto; gap: 6px; align-items: center; padding: 8px; border: 1px solid var(--line); border-radius: 12px; background: var(--field); }
.rcyline select, .rcyline input { font: inherit; font-size: 14px; padding: 9px 10px; border: 1px solid var(--line2); border-radius: 10px; background: var(--card); width: 100%; min-width: 0; }
.rcyline .warnline { grid-column: 1 / -1; }
.rcyq { display: flex; align-items: center; gap: 4px; }
.rcyunit { font-size: 12px; color: var(--sub); white-space: nowrap; }
.rcytot { font-weight: 800; font-size: 15px; margin: 6px 0 4px; color: var(--ink); }
.rcypl { display: flex; flex-direction: column; gap: 2px; max-width: 560px; }
.rcypl > div { display: flex; justify-content: space-between; gap: 12px; padding: 6px 2px; border-bottom: 1px dashed var(--line); font-size: 14px; }
.rcypl > div.sub { color: var(--sub); font-size: 13px; }
.rcypl > div.t { border-bottom: 0; border-top: 2px solid var(--line2); font-size: 16px; padding-top: 9px; }
.rcypl > div.pos b { color: var(--good); } .rcypl > div.neg b { color: var(--danger); }
td.neg { color: var(--danger); font-weight: 700; }
.rcystaff { margin: 10px 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.rcystaff input { font: inherit; padding: 8px 10px; border: 1px solid var(--line2); border-radius: 10px; min-width: 220px; }
.rcysr { display: flex; flex-wrap: wrap; gap: 6px; width: 100%; }
.rcymats { margin-top: 12px; display: flex; flex-direction: column; gap: 6px; }
.rcymat { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.rcymat input { font: inherit; padding: 7px 10px; border: 1px solid var(--line2); border-radius: 10px; flex: 1; min-width: 150px; }
.rcymat select { font: inherit; padding: 7px; border: 1px solid var(--line2); border-radius: 10px; }
.rcymat.off input { opacity: .5; text-decoration: line-through; }
@media (max-width: 640px) {
  .rcyline { grid-template-columns: 1fr 1fr; }
  .rcyline select { grid-column: 1 / -1; }
}

/* ۱۰.۲۱۳ — ویدئو وال */
.vwtop { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; margin-bottom: 14px; }
.vwtop .vwsave { margin-inline-start: auto; }
.vwpv { width: 100%; aspect-ratio: 4412 / 560; border: 0; border-radius: 10px; background: #0B0F0D; display: block; }
.vwchips { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 4px; align-items: center; }
.vwchips input { flex: 1; min-width: 140px; }
a.mini { text-decoration: none; display: inline-flex; align-items: center; }
.vwsec > summary { cursor: pointer; display: flex; gap: 10px; align-items: baseline; font-size: 14.5px; list-style: none; }
.vwsec > summary::before { content: "◂"; color: var(--muted); transition: transform .2s; }
.vwsec[open] > summary::before { transform: rotate(-90deg); }
.vwsec > summary small { color: var(--muted); font-size: 12px; }
.vwsec[open] > summary { margin-bottom: 12px; }
.vwcard { display: flex; gap: 12px; border: 1px solid var(--line); border-radius: 12px; padding: 10px; margin-bottom: 10px; background: var(--field); }
.vwposter { width: 96px; flex: none; display: flex; flex-direction: column; gap: 6px; align-items: stretch; }
.vwposter img { width: 96px; height: 144px; object-fit: cover; border-radius: 8px; background: #111; }
.vwposter.sq img { height: 96px; }
.vwposter.wide { width: 150px; }
.vwposter.wide img { width: 150px; height: 60px; }
.vwposter > span { min-width: 72px; height: 90px; display: flex; align-items: center; justify-content: center; border: 1px dashed var(--line2); border-radius: 8px; color: var(--muted); font-size: 12px; }
.vwup { cursor: pointer; text-align: center; }
.vwbody { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.vwgrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.vwgrid .w2 { grid-column: span 2; } .vwgrid .w3 { grid-column: span 3; } .vwgrid .w4 { grid-column: 1 / -1; }
.vwrow { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.vwbtns { display: flex; gap: 4px; margin-inline-start: auto; }
.vwdel { color: var(--danger); }
.vwok { color: var(--good); font-size: 12.5px; font-weight: 700; }
.vwcat { font-weight: 900; font-size: 13px; margin: 12px 0 6px; color: var(--sub); }
.vwitems { max-height: 520px; overflow: auto; border: 1px solid var(--line); border-radius: 10px; padding: 8px; margin: 8px 0 12px; }
.vwit { display: flex; gap: 8px; align-items: center; padding: 5px 4px; border-radius: 8px; }
.vwit.on { background: var(--goodbg); }
.vwit img { width: 40px; height: 40px; border-radius: 8px; object-fit: cover; flex: none; background: var(--chip); }
.vwit .nm { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.vwit .nm b { font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vwit .nm small { color: var(--muted); font-size: 11.5px; }
.vwstar.on { background: #F6E7B8; border-color: #D2AC67; color: #6B4E12; font-weight: 900; }
.vwover { background: var(--field); border: 1px dashed var(--line2); border-radius: 8px; padding: 8px; margin: 2px 0 8px; }
.vwseq { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 12px; }
.vwseqcol h4 { font-size: 13px; margin-bottom: 6px; }
.vwseqrow { display: flex; gap: 6px; align-items: center; padding: 5px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.vwseqrow span { flex: 1; min-width: 0; }
.vwseqrow.off span { color: var(--muted); text-decoration: line-through; }
.vwseqrow .vwsec2 { width: 52px; text-align: center; padding: 4px; }
@media (max-width: 720px) {
  .vwgrid { grid-template-columns: 1fr 1fr; }
  .vwgrid .w3, .vwgrid .w2 { grid-column: 1 / -1; }
  .vwseq { grid-template-columns: 1fr; }
  .vwcard { flex-direction: column; }
  .vwposter, .vwposter.wide { width: 100%; flex-direction: row; align-items: center; }
}

/* ۱۰.۲۱۵ — ورود با اثر انگشت / چهره */
.pkbtn { width: 100%; padding: 14px; border-radius: 14px; border: 0; background: var(--accent); color: #fff; font: inherit; font-weight: 700; font-size: 16px; cursor: pointer; margin: 6px 0 4px; }
.pkor { text-align: center; color: var(--sub); font-size: 12.5px; margin: 6px 0 2px; }
.logintip { text-align: center; margin-top: 8px; }
.pkbox { max-width: 420px; text-align: center; padding: 18px 22px 22px !important; }
.pkbox .hint { line-height: 1.9; }
.pkbox .pkic { font-size: 44px; line-height: 1; margin: 6px 0 4px; }
.pkbox .acts { justify-content: center; }

/* ۱۰.۲۱۶ — دوربین‌های مداربسته */
.camchips { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 10px; }
.camchips .mini.on { background: var(--accent); color: #fff; border-color: var(--accent); }
.camgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; margin-bottom: 12px; }
@media (max-width: 560px) { .camgrid { grid-template-columns: 1fr 1fr; gap: 6px; } }
.camtile { position: relative; aspect-ratio: 16 / 9; background: #0d0f12; border-radius: 12px; overflow: hidden; cursor: pointer; }
.camtile video { width: 100%; height: 100%; object-fit: cover; display: block; }
.camcap { position: absolute; inset: auto 0 0 0; padding: 18px 10px 6px; font-size: 12px; color: #fff; background: linear-gradient(transparent, rgba(0,0,0,.72)); display: flex; align-items: center; gap: 5px; }
.camdot { width: 8px; height: 8px; border-radius: 50%; background: #888; display: inline-block; flex: none; }
.camdot.on { background: #2fbf71; box-shadow: 0 0 6px #2fbf71; } .camdot.off { background: #e05a4b; }
.cammsg { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; text-align: center; padding: 10px; color: #cfd5d2; font-size: 13px; pointer-events: none; }
.camfull { position: fixed; inset: 0; z-index: 960; background: #000; display: flex; flex-direction: column; }
.camfull video { flex: 1; width: 100%; min-height: 0; object-fit: contain; background: #000; }
.camfull .cammsg { top: 50px; }
.camfullbar { display: flex; align-items: center; gap: 10px; padding: 10px 14px; color: #fff; background: #111; }
.camfullbar .cqx { margin-inline-start: auto; color: #fff; }
/* ۱۰.۲۳۲ — بازبینی و عکس دوره‌ای */
.camfullbar { flex-wrap: wrap; }
.camtabs { display: inline-flex; gap: 6px; }
.camtabs .mini { background: #222; color: #ddd; border-color: #333; }
.camtabs .mini.on { background: #c8102e; color: #fff; border-color: #c8102e; }
.campb { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 8px 14px; background: #161616; color: #ddd; }
.campb input { width: auto; min-width: 0; max-width: 130px; padding: 6px 8px; background: #222; color: #fff; border: 1px solid #333; border-radius: 8px; font: inherit; }
.campb .tnotes { color: #aaa; }
.campbclk { color: #fff; font-variant-numeric: tabular-nums; margin-inline-start: auto; }
.camsnapbar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 6px 0 10px; }
.camsnapbar input, .camsnapbar select { width: auto; max-width: 180px; }
.camsnaps { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; margin-top: 6px; }
@media (max-width: 560px) { .camsnaps { grid-template-columns: 1fr 1fr; gap: 6px; } }
.camsnap { margin: 0; background: #000; border-radius: 10px; overflow: hidden; cursor: pointer; }
.camsnap img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.camsnap figcaption { font-size: 12px; color: #eee; padding: 4px 8px; background: #111; }
.camsnapbig { flex: 1; min-height: 0; width: 100%; object-fit: contain; background: #000; }
.camidle { position: fixed; inset: 0; z-index: 990; background: rgba(0,0,0,.55); display: flex; align-items: center; justify-content: center; padding: 16px; }
.camidlebox { background: var(--card); color: var(--ink); border-radius: 16px; padding: 18px; max-width: 360px; width: 100%; display: flex; flex-direction: column; gap: 8px; box-shadow: 0 20px 60px -20px rgba(0,0,0,.6); }

/* ۱۰.۲۱۶.۱ — دکمهٔ بستن برگه */
.btn.ghost.danger { color: var(--danger); border-color: var(--danger); }

/* ۱۰.۲۱۶.۲ — پیشنهاد کالا با موجودی */
.sugwrap { position: relative; min-width: 0; }
.sugwrap > input { width: 100%; }
.sugline { font-size: 11px; color: var(--sub); line-height: 1.5; min-height: 14px; margin-top: 2px; }
.sugline.ok { color: var(--good); } .sugline.low { color: var(--danger); font-weight: 700; }
.sugline.inline { min-height: 0; margin: 0; display: inline; }
.sugpop { position: absolute; top: 100%; right: 0; left: 0; z-index: 60; background: var(--card); border: 1px solid var(--chip); border-radius: 10px;
          box-shadow: 0 10px 24px rgba(0,0,0,.14); max-height: 260px; overflow: auto; margin-top: -14px; min-width: 240px; }
.sugrow { padding: 7px 10px; cursor: pointer; border-bottom: 1px solid var(--chip); display: flex; flex-direction: column; gap: 1px; }
.sugrow:last-child { border-bottom: 0; }
.sugrow:hover, .sugrow.hi { background: var(--accent-soft); }
.sugrow b { font-size: 13px; } .sugrow small { font-size: 11px; color: var(--sub); } .sugrow small.low { color: var(--danger); font-weight: 700; }
.mtable:has(.sugpop:not([style*="none"])) { overflow: visible; }   /* فهرست پیشنهاد زیر جدول بریده نشود */
.mrow:has(.sugwrap) { align-items: start; }

/* ۱۰.۲۲۰ — اعضا و طرح‌های بیمهٔ تکمیلی */
.polplans { margin: 8px 0; }
.polplan, .polmrow { align-items: end; border: 1px dashed var(--line, #ddd); border-radius: 10px; padding: 8px; margin: 6px 0; }
.polmrow.gone { opacity: .55; }
.polmembers .mtable { margin-top: 6px; }
.polmed textarea { width: 100%; font: inherit; }
/* ۱۰.۲۲۰ — نظرسنجی پرسنل */
.pollopt { display: flex; gap: 8px; align-items: center; padding: 8px 10px; border: 1px solid var(--line, #ddd); border-radius: 10px; margin: 6px 0; cursor: pointer; }
.pollopt input { width: 18px; height: 18px; }
.pollbar { margin: 6px 0; }
.pollbl { display: flex; justify-content: space-between; font-size: 13px; }
.pollbg { height: 10px; background: var(--line, #e5e5e5); border-radius: 6px; overflow: hidden; }
.pollfill { height: 100%; background: var(--accent, #2a7); border-radius: 6px; transition: width .3s; }
.pollbar.mine .pollfill { background: var(--ok, #1a8f5a); }
.pollcard.closed { opacity: .85; }
.pollvoters { margin-top: 8px; }
.pollvoters summary { cursor: pointer; font-size: 13px; }

/* ۱۰.۲۲۱ — گروه کاری، فهرست چارت، فراموشی رمز */
.login button.fgbtn{background:none;box-shadow:none;border:0;color:#2f6f3e;text-decoration:underline;font:inherit;font-size:14px;padding:8px 0;width:auto;margin:6px auto 0;display:block;cursor:pointer}
.rcdir{padding:8px 0;border-bottom:1px solid #ddd}
.wgbar{display:flex;height:22px;border-radius:6px;overflow:hidden;margin:8px 0}
.wgbar>i{display:block;height:100%}
.wgrow{display:flex;flex-direction:column;gap:6px;padding:8px 0;border-bottom:1px solid #ddd}
.wgrow select{width:100%}
/* ۱۰.۲۲۲ — کاشی‌های تطبیق مودیان: عددهای بلند (ریال) روی گوشی */
.mdntiles.rec { grid-template-columns: repeat(3, 1fr); }
.mdntiles.rec b { font-size: 14px; word-break: break-all; direction: ltr; }
.mdntiles.rec span { font-size: 11px; }
@media (max-width: 760px) { .mdntiles.rec { grid-template-columns: repeat(2, 1fr); } }
.mdntile.blue { border-color: #8fb3e0; } .mdntile.red b { color: #b3391f; } .mdntile.green b { color: #2f6f3e; } .mdntile.amber b { color: #a86a00; }

/* ۱۰.۲۲۳ — دفتر کل */
.lglines{display:flex;flex-direction:column;gap:2px;margin:8px 0;font-size:12.5px}
.lgline{display:grid;grid-template-columns:52px 1fr 92px 92px;gap:6px;align-items:center;padding:4px 0;border-bottom:1px dashed #e3ddd2}
.lgline .lgcode{direction:ltr;text-align:left;color:#6b665e}.lgline .vnum{direction:ltr;text-align:right;font-variant-numeric:tabular-nums}
.lgline.lgtot{font-weight:700;border-bottom:0}
@media (max-width:480px){.lgline{grid-template-columns:44px 1fr 80px 80px;font-size:11.5px}}
.stmt{white-space:pre-wrap;font:inherit;font-size:13px;background:#faf7f1;border:1px solid #e3ddd2;border-radius:10px;padding:10px;max-height:50vh;overflow:auto;direction:rtl;text-align:right}

/* ===== ۱۰.۲۲۹ — انتخاب چندتایی جمع‌آوری، صورت اموال، لیست سفارشات، پرتی آیتم منو، ثبت‌های نگه‌داشتهٔ تبلت ===== */
.coimg .cosel { position: absolute; top: 8px; left: 8px; width: 26px; height: 26px; accent-color: #14694A; z-index: 2; cursor: pointer; }
.coimg .cofix { position: absolute; bottom: 8px; right: 8px; background: #B3391F; color: #fff; font-size: 12px; font-weight: 800; padding: 3px 9px; border-radius: 999px; }
.coitem.sel { outline: 3px solid #14694A; outline-offset: -1px; }
.cobulk { position: sticky; top: 0; z-index: 5; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 8px 10px; margin: 8px 0; border-radius: 12px; border: 1px dashed rgba(0,0,0,.18); background: rgba(255,255,255,.92); }
.cobulk.on { border: 2px solid #14694A; background: #EAF4EE; }
.cobulk select { max-width: 220px; }
.mini.warnbtn { background: #FBEDE9; color: #B3391F; border-color: #F0C9BE; }
.obatch summary, .wmenu summary { cursor: pointer; font-weight: 800; }
.obgrid { display: grid; gap: 4px; margin: 8px 0; }
.obrow { display: grid; grid-template-columns: 28px 2.4fr 1fr 1fr 1fr; gap: 6px; align-items: center; }
.obrow.obhead b { font-size: 12px; color: #6F6D66; }
.obrow input, .obrow select { min-width: 0; }
@media (max-width: 600px) { .obrow { grid-template-columns: 22px 2fr 1fr 1fr 1.1fr; gap: 4px; } .obrow input, .obrow select { font-size: 13px; padding: 6px; } }
.wmtable { display: grid; gap: 4px; margin: 8px 0; }
.wmrow { display: grid; grid-template-columns: 2fr 1.3fr 1fr 1.2fr; gap: 6px; align-items: center; padding: 4px 6px; border-radius: 8px; }
.wmrow.wmhead b { font-size: 12px; color: #6F6D66; }
.wmrow.kept { background: #EAF4EE; text-decoration: line-through; color: #6F6D66; }
.wmrow .wmq { width: 70px; }
.wmkeep { display: flex; gap: 4px; align-items: center; font-size: 13px; cursor: pointer; }
.wmtot { font-weight: 700; }
.clkheld.bad { border: 2px solid #B3391F; }
.clkhrow { display: flex; gap: 12px; align-items: flex-start; padding: 8px 0; border-top: 1px solid rgba(0,0,0,.08); }
.clkhpics { display: flex; gap: 6px; }
.clkhpics figure { margin: 0; text-align: center; font-size: 11px; color: #6F6D66; }
.clkhpics img { width: 64px; height: 82px; object-fit: cover; border-radius: 8px; display: block; }
body.dark .cobulk { background: rgba(30,30,30,.92); } body.dark .cobulk.on { background: #17332A; } body.dark .wmrow.kept { background: #17332A; }

/* ۱۰.۲۳۳ — پشتیبانی IT */
.itgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 8px; }
.itnew > summary, .itnew .btn { margin-top: 6px; }
.itthumbs { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0; }
.itthumb { position: relative; display: inline-block; width: 72px; height: 72px; border-radius: 10px; overflow: hidden; border: 1px solid var(--line); background: var(--chip); }
.itthumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.itthumb .mini { position: absolute; top: 2px; left: 2px; padding: 0 5px; line-height: 18px; }
.itcard .ittitle { font-weight: 800; font-size: 15px; margin: 4px 0 2px; }
.itcard.iturgent { border-right-color: var(--danger); box-shadow: 0 0 0 1px var(--badbg) inset; }
.itcard .itlate { color: var(--danger); }
.itwork { background: var(--goodbg); border-radius: 10px; padding: 8px 10px; margin-top: 6px; font-size: 13px; }
.itwork .mini { margin-top: 4px; display: inline-block; }
.itacts { flex-wrap: wrap; }
.itbox { border-top: 1px dashed var(--line); margin-top: 8px; padding-top: 8px; }
.itbox textarea, .itbox input:not([type=checkbox]), .itbox select { width: 100%; box-sizing: border-box; }
.itstars { display: flex; gap: 2px; font-size: 22px; margin: 4px 0; }
.itstars .chipstar { font-size: 24px; padding: 0 2px; }
.itlog { margin: 4px 0; padding-inline-start: 20px; font-size: 13px; }
.itlog li { margin-bottom: 4px; }
.itfilter { margin: 10px 0 4px; }
.itbill { border: 1px solid var(--line); border-radius: 12px; padding: 10px; margin-top: 10px; }
.itbill .tacts input { flex: 1 1 140px; }
@media (max-width: 600px) { .itcard .tmeta { flex-direction: column; gap: 4px; } }

/* ۱۰.۲۳۴ — تطبیق با فهرست مرجع (جمع‌آوری) */
.crrow { border: 1px solid var(--line); border-right: 4px solid var(--line); border-radius: 10px; padding: 8px 10px; margin: 6px 0; background: var(--card); }
.crrow.both { border-right-color: var(--good); } .crrow.diff { border-right-color: #d9a21b; } .crrow.refOnly { border-right-color: var(--danger); } .crrow.marked { opacity: .8; }
.crtop { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.critems { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.crit { display: inline-flex; align-items: center; gap: 6px; background: var(--chip); border-radius: 8px; padding: 3px 8px 3px 3px; font-size: 12.5px; }
.crit img { width: 38px; height: 38px; object-fit: cover; border-radius: 6px; cursor: zoom-in; }
.crpick { max-height: 240px; overflow: auto; margin: 6px 0; }
.cocard.on { outline: 2px solid var(--accent); }

/* ===================== ۱۰.۲۳۸ — گزارش صبح مدیر (IBCS: رنگ فقط روی انحراف) ===================== */
.mr { --mr-forest: #1F3A2E; --mr-cream: #F8F4EC; --mr-red: #B23A2B; --mr-green: #2E7D4F; --mr-gold: #A9781E; --mr-grey: #B5B0A6;
  display: flex; flex-direction: column; gap: 16px; max-width: 1360px; margin: 0 auto; }
body.dark .mr { --mr-red: #F08C74; --mr-green: #6FCF97; --mr-gold: #E2B65A; --mr-grey: #6E7280; }
.mr .bad { color: var(--mr-red); font-weight: 900; } .mr .good { color: var(--mr-green); font-weight: 900; }
.mr .warnc { color: var(--mr-gold); font-weight: 800; } .mr .goodc { color: var(--mr-green); } .mr .dim { color: var(--muted); }
.mrhead { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.mrtitle h2 { margin: 0; font-size: 22px; font-weight: 900; }
.mrsub { font-size: 13px; color: var(--sub); }
.mrpills { display: flex; gap: 6px; flex-wrap: wrap; }
.mrpill { border: 1px solid var(--line2); background: var(--card); color: var(--ink); border-radius: 999px; padding: 7px 15px; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
.mrpill.on { background: var(--mr-forest); border-color: var(--mr-forest); color: var(--mr-cream); }
.mrhl { background: var(--mr-forest); color: var(--mr-cream); border-radius: 18px; padding: 18px 22px; display: flex; flex-wrap: wrap; gap: 18px; align-items: center; }
.mrhlt { flex: 999 1 480px; min-width: 0; }
.mrhl small { display: block; font-size: 12.5px; color: #C9D3C4; font-weight: 700; margin-bottom: 4px; }
.mrhlt p { margin: 0; font-size: 19px; line-height: 1.9; font-weight: 700; }
.mrhla { flex: 1 1 240px; display: flex; flex-direction: column; gap: 8px; }
.mrhlbox { background: rgba(248,244,236,.1); border-radius: 12px; padding: 9px 12px; font-size: 14px; }
.mrhlbtn { background: var(--mr-cream); color: var(--mr-forest); border: 0; border-radius: 12px; padding: 10px 12px; font: inherit; font-size: 14.5px; font-weight: 900; cursor: pointer; }
.mrhlbtn.ghost { background: transparent; color: var(--mr-cream); border: 1px solid rgba(248,244,236,.45); font-weight: 700; }
.mrtiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
@media (min-width: 1180px) { .mrtiles { grid-template-columns: repeat(6, 1fr); } }
.mrtile { background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 14px 16px; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.mrtl { font-size: 13.5px; color: var(--sub); font-weight: 700; }
.mrtv { font-size: 28px; font-weight: 900; line-height: 1.25; font-variant-numeric: tabular-nums; }
.mrtv small { font-size: 13.5px; font-weight: 500; color: var(--sub); }
.mrtr { display: flex; gap: 6px; align-items: baseline; font-size: 12.5px; color: var(--sub); flex-wrap: wrap; }
.mrspark { width: 100%; height: 30px; color: var(--ink); margin-top: 4px; }
.mrcap { position: relative; height: 12px; background: var(--chip); border-radius: 6px; overflow: hidden; margin-top: 8px; }
.mrcap i { position: absolute; top: 0; bottom: 0; right: 0; background: var(--ink); }
.mrcap u { position: absolute; top: -2px; bottom: -2px; width: 2px; background: var(--mr-red); }
.mrcard { background: var(--card); border: 1px solid var(--line); border-radius: 18px; padding: 16px 18px; min-width: 0; }
.mrch { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px; margin-bottom: 10px; }
.mrch h3 { margin: 0; font-size: 17px; font-weight: 900; }
.mrch small, .mrnote { font-size: 12.5px; color: var(--sub); }
.mrnote { margin-top: 6px; line-height: 1.8; }
.mrtw { overflow-x: auto; }
.mrtable { width: 100%; border-collapse: collapse; font-size: 14px; min-width: 900px; }
.mrtable th { text-align: right; font-size: 12.5px; color: var(--sub); font-weight: 700; padding: 8px 6px; border-bottom: 2px solid var(--ink); white-space: nowrap; }
.mrtable td { padding: 10px 6px; border-bottom: 1px solid var(--line); }
.mrtable td.nm { font-weight: 700; } .mrtable td.num { font-variant-numeric: tabular-nums; white-space: nowrap; } .mrtable td.b { font-weight: 900; }
.mrtable td.fr { font-size: 12.5px; white-space: nowrap; }
.mrtable tr.hot td { background: var(--badbg); }
.mrtable tr.tot td { font-weight: 900; border-top: 2px solid var(--ink); border-bottom: 0; }
.mrtable td.vc { width: 240px; } .mrtable td.vc > * { vertical-align: middle; }
.mrtable td.vc { white-space: nowrap; }
.mrtable td.vc .mrvbar { display: inline-block; width: 120px; margin-left: 8px; }
.mrtable.edit { min-width: 760px; } .mrtable.edit input { width: 100%; min-width: 64px; }
.mrvbar { position: relative; height: 14px; background: var(--chip); border-radius: 3px; }
.mrvbar .mid { position: absolute; top: -3px; bottom: -3px; left: 50%; width: 1px; background: var(--ink); }
.mrvbar b { position: absolute; top: 2px; bottom: 2px; }
.mrvbar b.neg { right: 50%; background: var(--mr-red); } .mrvbar b.pos { left: 50%; background: var(--mr-green); }
.mrvbar + .vt, .vt { font-size: 13px; }
.mrbcards { display: none; }
.mrbc { border-bottom: 1px solid var(--line); padding: 10px 2px; display: flex; flex-direction: column; gap: 6px; }
.mrbc.hot { background: var(--badbg); border-radius: 8px; padding: 10px 8px; }
.mrbc .l1 { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; }
.mrbc .l1 small { color: var(--sub); font-size: 12px; white-space: nowrap; }
.mrbc .l2 { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.mrbc .l2 .sv { min-width: 74px; font-weight: 800; font-variant-numeric: tabular-nums; }
.mrbc .l2 .mrvbar { flex: 1; } .mrbc .l2 .vt { min-width: 52px; text-align: left; }
.mrbc .l3 { font-size: 12px; color: var(--sub); }
.mrbc.tot { border-top: 2px solid var(--ink); border-bottom: 0; font-weight: 900; flex-direction: row; justify-content: space-between; }
.mrrow { display: flex; flex-wrap: wrap; gap: 14px; }
.mrrow .grow { flex: 999 1 540px; } .mrrow .side { flex: 1 1 300px; }
.mrchs { font-size: 14px; } .mrchs span { color: var(--sub); }
.mrchart { width: 100%; height: auto; display: block; margin-top: 6px; }
.mrchart .grid { stroke: var(--line); } .mrchart .axis { stroke: var(--ink); }
.mrchart polyline { fill: none; } .mrchart .a { stroke: var(--mr-forest); stroke-width: 3.5; }
body.dark .mrchart .a { stroke: var(--ink); }
.mrchart .t { stroke: var(--ink); stroke-width: 2; stroke-dasharray: 6 5; } .mrchart .c { stroke: var(--mr-grey); stroke-width: 2; }
.mrchart .dot { fill: var(--mr-forest); } body.dark .mrchart .dot { fill: var(--ink); }
.mrchart text { font-size: 11px; fill: var(--sub); font-family: inherit; }
.mrlg, .mrlegend { display: flex; flex-wrap: wrap; gap: 14px; font-size: 12.5px; color: var(--sub); margin-top: 4px; }
.mrlg span, .mrlegend span { display: inline-flex; align-items: center; gap: 6px; }
.mrlg span::before, .mrlegend span.a::before, .mrlegend span.t::before, .mrlegend span.c::before, .mrlegend span.r::before, .mrlegend span.g::before { content: ""; display: inline-block; width: 20px; height: 0; }
.mrlg .a::before, .mrlegend .a::before { border-top: 4px solid var(--mr-forest); }
.mrlg .t::before, .mrlegend .t::before { border-top: 2px dashed var(--ink); }
.mrlg .c::before, .mrlegend .c::before { border-top: 3px solid var(--mr-grey); }
.mrlegend .r::before { border-top: 10px solid var(--mr-red); width: 12px !important; } .mrlegend .g::before { border-top: 10px solid var(--mr-green); width: 12px !important; }
.mrfoodbig b { font-size: 28px; font-weight: 900; } .mrfoodbig span { color: var(--sub); }
.mrfr { display: flex; justify-content: space-between; gap: 8px; border-bottom: 1px solid var(--line); padding: 6px 0; font-size: 14px; }
.mrexc { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; border: 1px solid var(--line); border-radius: 14px; padding: 11px 13px; margin-bottom: 9px; }
.mrexc.red { background: var(--badbg); border-color: rgba(178,58,43,.3); }
.mrexc.amber { background: var(--warnbg); border-color: rgba(169,120,30,.3); }
.mrexc.done { background: var(--goodbg); }
.mrtag { border-radius: 8px; padding: 2px 10px; font-size: 12.5px; font-weight: 900; color: #fff; background: var(--muted); }
.mrtag.red { background: #B23A2B; } .mrtag.amber { background: #A9781E; } .mrtag.done { background: #2E7D4F; }
.mrexb { flex: 999 1 300px; min-width: 0; } .mrexd { font-size: 13px; color: var(--sub); line-height: 1.8; }
.mrexo { flex: 1 1 110px; font-size: 13px; } .mrexo small { display: block; color: var(--sub); }
.mrst { border: 1px solid var(--line2); border-radius: 999px; padding: 3px 11px; font-size: 12.5px; font-weight: 700; }
.mrst.late { color: var(--mr-red); border-color: var(--mr-red); } .mrst.done { color: var(--mr-green); border-color: var(--mr-green); }
.mrassign { border: 1px solid var(--ink); background: var(--card); color: var(--ink); border-radius: 10px; padding: 7px 12px; font: inherit; font-size: 13.5px; font-weight: 800; cursor: pointer; }
.mrform { flex-basis: 100%; display: grid; grid-template-columns: 1.2fr 2fr .8fr auto; gap: 8px; align-items: end; }
.mrform .err { grid-column: 1 / -1; }
.mrsubh { font-size: 13px; font-weight: 800; color: var(--sub); margin: 12px 0 8px; }
.mrok { color: var(--mr-green); font-weight: 800; padding: 6px 0; }
@media (max-width: 760px) {
  .mr { gap: 12px; }
  .mrtitle h2 { font-size: 19px; }
  .mrpills { width: 100%; } .mrpill { flex: 1; padding: 7px 0; text-align: center; }
  .mrhl { padding: 14px; border-radius: 16px; } .mrhlt p { font-size: 16px; }
  .mrtiles { grid-template-columns: 1fr 1fr; gap: 8px; }
  .mrtile { padding: 11px; border-radius: 14px; } .mrtv { font-size: 22px; } .mrtv small { font-size: 11.5px; }
  .mrtr { font-size: 11.5px; }
  .mrcard { padding: 13px 12px; border-radius: 16px; }
  .mr .mrtw:not(.keep) { display: none; } .mrbcards { display: block; }
  .mrform { grid-template-columns: 1fr; }
  .mrchart text { font-size: 21px; }
  .mrexo { flex: 1 1 40%; }
}

/* ===================================================== ۱۰.۲۴۰ — نسخهٔ آموزشی */
.trnbar { position: sticky; top: 0; z-index: 260; color: #1B1B1B; text-align: center;
  background: repeating-linear-gradient(-45deg, #F2B705 0 16px, #E5A800 16px 32px);
  font-size: 12.5px; font-weight: 700; padding: 5px 10px; letter-spacing: 0; }
.trnfab { position: fixed; left: 14px; bottom: 14px; z-index: 250; background: #1B1B1B; color: #F2B705; border: 2px solid #F2B705;
  border-radius: 999px; padding: 9px 14px; font: inherit; font-size: 13px; font-weight: 700;
  box-shadow: 0 4px 14px rgba(0,0,0,.22); cursor: pointer; }
.trnfab:hover { filter: brightness(1.08); }
.trnov { position: fixed; inset: 0; z-index: 960; background: rgba(15,16,20,.5); display: flex;
  align-items: flex-end; justify-content: center; padding: 12px; }
.trnbox { background: var(--card); color: var(--ink); width: min(560px, 100%); max-height: 88vh; overflow-y: auto;
  border-radius: 14px; padding: 16px; box-shadow: 0 10px 40px rgba(0,0,0,.3); }
@media (min-width: 700px) { .trnov { align-items: center; } }
.trnbox h3 { margin: 0 0 4px; } .trnbox h4 { margin: 14px 0 6px; font-size: 14px; }
.trnbox textarea { width: 100%; box-sizing: border-box; margin: 8px 0; font: inherit; }
.trnmeta { font-size: 12.5px; color: var(--muted, #666); }
.trnpills { display: flex; gap: 6px; flex-wrap: wrap; margin: 8px 0; }
.trnrow { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.trnrow.wrap > input { flex: 1 1 180px; min-width: 0; }
.trnmsg { font-size: 13px; margin-top: 6px; }
.trnpage { display: grid; gap: 12px; max-width: 980px; }
.trncard h3 { margin: 0 0 6px; }
.trnline { margin: 6px 0 10px; font-size: 13.5px; }
.trnwarn { background: #FDECEA; color: #8C1D18; border-radius: 8px; padding: 6px 10px; margin: 6px 0; font-size: 13px; }
.trnwarn.sm { padding: 2px 8px; font-size: 12px; margin: 0; }
.trnppl { display: grid; gap: 6px; margin: 8px 0 12px; }
.trnp { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; padding: 6px 0; border-bottom: 1px solid var(--line); }
.trnbadge { font-size: 11.5px; padding: 1px 8px; border-radius: 999px; background: var(--line); }
.trnbadge.lead { background: #1B1B1B; color: #F2B705; }
.trnnew { margin-top: 10px; font-size: 13.5px; } .trnnew summary { cursor: pointer; }
.trnnew .trnrow { margin-top: 8px; }
.trnfb { border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; margin: 8px 0; }
.trnfb.st3, .trnfb.st4 { opacity: .7; }
.trnfb p { margin: 6px 0; white-space: pre-wrap; }
.trnfbh { display: flex; gap: 8px; flex-wrap: wrap; align-items: baseline; font-size: 12.5px; }
.trnkind { font-size: 11.5px; padding: 1px 8px; border-radius: 999px; background: var(--line); }
.trnkind.k0 { background: #FDECEA; color: #8C1D18; } .trnkind.k2 { background: #E8F0FE; color: #174EA6; }
.trnstate { margin-inline-start: auto; font-weight: 700; }
.trnreply { font-size: 13px; background: var(--paper); border-radius: 8px; padding: 6px 8px; }
.trnfb .trnrow input { flex: 1 1 160px; min-width: 0; }
@media print { .trnfab { display: none; } }

/* ۱۰.۲۴۱ — اقلام تکراری: جست‌وجو، قلم ماندنی، اصلاح نام */
.invdupsearch { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin: 10px 0; }
.invdupsearch input { flex: 1 1 220px; min-width: 0; }
.missrow.invkeep { background: color-mix(in srgb, #2F7A55 8%, transparent); border-radius: 8px; }
.invrename { min-width: 220px; flex: 1 1 220px; }
.invdupok { margin-top: 14px; } .invdupok summary { cursor: pointer; font-weight: 700; }
/* ۱۰.۲۴۱ — تعهد برگشت وجه به مشتری در بستن روز */
.dcrefund .dcrrow { border-top: 1px solid var(--line); padding: 8px 0; }
.dcrefund .dcrrow.paid { opacity: .8; }
.dcrefund .acts { flex-wrap: wrap; align-items: center; gap: 6px; }
.dcrdate { width: 110px; }
.dcradd { margin-top: 8px; } .dcradd summary { cursor: pointer; font-weight: 700; }
.locroute { padding: 10px 12px; border: 1px dashed var(--line2, var(--line)); border-radius: 10px; font-weight: 700; background: var(--field, transparent); }

/* ۱۰.۲۴۲ — کتابخانهٔ عکس منو در تابلوها */
.mplib .sgm { cursor: pointer; }
.mplib .sgm.sel { outline: 3px solid var(--brand, #C0392B); outline-offset: -3px; }
.mplib .sgm.on { opacity: .55; cursor: default; }
.mplib .sgm small { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ۱۰.۲۴۴ — جاری شرکا */
.pclwrap { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 12px; margin: 10px 0; }
.pclcard { border: 1px solid var(--line); border-radius: 14px; padding: 14px; background: var(--field); border-top: 5px solid var(--line2); }
.pclcard.pos { border-top-color: var(--good); } .pclcard.neg { border-top-color: var(--danger); }
.pclcard.mine { box-shadow: 0 0 0 2px var(--brand, #C0392B) inset; }
.pclh { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.pclh h3 { margin: 0; font-size: 17px; }
.pclsh { font-size: 12.5px; color: var(--muted); }
.pclg { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 10px 0 6px; }
.pclkv { background: var(--paper); border-radius: 10px; padding: 8px 10px; }
.pclkv span { display: block; font-size: 12px; color: var(--muted); }
.pclkv b { display: block; font-size: 16px; font-weight: 900; }
.pclkv small { display: block; font-size: 11px; color: var(--muted); direction: rtl; }
.pclkv.good b { color: var(--good); } .pclkv.bad b { color: var(--danger); }
.pclmini { border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; background: var(--field); }
.pclrow { display: flex; justify-content: space-between; gap: 10px; font-size: 13.5px; padding: 3px 0; border-bottom: 1px dashed var(--line); }
.pclsub { font-size: 12px; color: var(--muted); margin-top: 8px; font-weight: 700; }
.pcltbl td.num, .pclrow .num { font-variant-numeric: tabular-nums; white-space: nowrap; text-align: left; }
.pcltbl td.good { color: var(--good); }
.pcldesc { min-width: 220px; font-size: 12.5px; }
.pclad { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.pclusers { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 13px; width: 100%; }
.pclsharesedit { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; }
@media (max-width: 600px) { .pclg { grid-template-columns: 1fr; } }

/* ===================================================== ۱۰.۲۴۷ — فضای کار مالی (ک۱۳۵، نمونهٔ آقای فاضل) */
:root { --fside: #1C2F4A; --fside2: #233A5B; --fsink: #C9D4E3; --fsmut: #8FA3BF; --fact: #2F7D4E; --fin-in: #2F7D4E; --fin-out: #C0563B; }
body.dark { --fside: #121B29; --fside2: #1A2638; --fsink: #C3CCD9; --fsmut: #7D8BA0; --fact: #2E7A4D; --fin-in: #6FCF97; --fin-out: #F08C74; }
body.finmode { background: var(--paper); }
.fshell { display: flex; min-height: 100dvh; }
.fside { position: sticky; top: 0; height: 100dvh; width: 264px; flex: 0 0 264px; background: var(--fside); color: var(--fsink);
  display: flex; flex-direction: column; overflow-y: auto; z-index: 40; }
.fbrand { display: flex; align-items: center; gap: 10px; padding: 18px 16px 12px; }
.fbrand .fsmark { width: 40px; height: 40px; border-radius: 10px; background: #fff; padding: 3px; }
.fbrand b { display: block; color: #fff; font-size: 16px; font-weight: 900; }
.fbrand small { color: #F5B33B; font-size: 11px; font-weight: 700; letter-spacing: .3px; }
.forg { margin: 4px 12px 10px; padding: 10px 12px; border-radius: 12px; background: var(--fside2); display: grid; gap: 3px; }
.forg small { color: var(--fsmut); font-size: 11.5px; }
.forg b { color: #fff; font-size: 13.5px; }
.forg .fbsel { width: 100%; background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.18); border-radius: 8px; padding: 6px 8px; font-size: 13px; }
.forg .fbsel option { color: #17181A; }
.fsec { color: var(--fsmut); font-size: 11.5px; padding: 6px 18px 4px; }
.ftree { display: grid; gap: 2px; padding: 0 8px 12px; }
.fitem, .fghead { display: flex; align-items: center; gap: 9px; width: 100%; background: transparent; border: 0; color: var(--fsink);
  padding: 9px 10px; border-radius: 10px; font-size: 14px; text-align: right; min-height: 40px; }
.fitem:hover, .fghead:hover { background: rgba(255,255,255,.06); color: #fff; }
.fitem.cur { background: var(--fact); color: #fff; font-weight: 700; }
.fitem.sub { font-size: 13.2px; padding: 7px 10px 7px 10px; padding-right: 36px; min-height: 36px; }
.fitem.sub .fic { display: none; }
.fic { width: 20px; text-align: center; flex: 0 0 20px; }
.flab { flex: 1; }
.fcaret { opacity: .6; transition: transform .15s; }
.fgrp.on .fcaret { transform: rotate(180deg); }
.fgitems { display: none; }
.fgrp.on .fgitems { display: grid; gap: 1px; }
.fside .badge { background: #F5B33B; color: #17181A; }
.ffoot { margin-top: auto; padding: 12px; border-top: 1px solid rgba(255,255,255,.08); display: grid; gap: 8px; }
.fwho { display: flex; align-items: center; gap: 10px; }
.fav { width: 34px; height: 34px; border-radius: 50%; background: var(--fact); color: #fff; display: grid; place-items: center; font-weight: 900; }
.fwho b { display: block; color: #fff; font-size: 13.5px; }
.fwho small { color: var(--fsmut); font-size: 11.5px; }
.fbtn2 { background: var(--fside2); color: var(--fsink); border: 0; border-radius: 9px; padding: 8px; font-size: 13px; }
.fbtn2:hover { color: #fff; }
.fmain { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.ftop { position: sticky; top: 0; z-index: 30; display: flex; align-items: center; gap: 10px; padding: 10px 18px;
  background: var(--card); border-bottom: 1px solid var(--line); }
.fcrumb { flex: 1; display: flex; gap: 6px; align-items: center; color: var(--muted); font-size: 13.5px; min-width: 0; }
.fcrumb b { color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fsep { opacity: .5; }
.ftools { display: flex; gap: 6px; align-items: center; }
.ftools .msel { min-width: 120px; }
.ftop .iconbtn, body.hasbrand .ftop .iconbtn, .ftop .bell, body.hasbrand .ftop .bell { background: var(--chip); color: var(--ink); border: 1px solid var(--line); height: 36px; display: inline-flex; align-items: center; }
.ftop .searchbtn kbd { border-color: var(--line2); }
.ftop .fburger, body.hasbrand .ftop .fburger { display: none; }
.fscreen { padding: 18px; max-width: 1280px; width: 100%; }
.fveil { display: none; }
.iconbtn.finbtn { white-space: nowrap; }
@media (max-width: 960px) {
  .fside { position: fixed; right: 0; top: 0; transform: translateX(105%); transition: transform .2s; box-shadow: -8px 0 30px rgba(0,0,0,.25); }
  .fside.open { transform: none; }
  .fveil.open { display: block; position: fixed; inset: 0; background: rgba(0,0,0,.35); z-index: 35; }
  .ftop .fburger, body.hasbrand .ftop .fburger { display: inline-flex; }
  .ftop { padding: 8px 10px; flex-wrap: wrap; }
  .ftools { flex-wrap: wrap; justify-content: flex-end; }
  .ftools .msel { min-width: 0; max-width: 128px; height: 36px; }
  .fcrumb > span:first-child, .fcrumb .fsep { display: none; }
  .fscreen { padding: 12px; }
}

/* داشبورد مالی */
.fdhead { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.fdkick { color: var(--good); font-size: 12px; font-weight: 700; }
.fdhead h2 { font-size: 22px; font-weight: 900; margin: 2px 0; }
.fdsub, .fdsub2 { color: var(--muted); font-size: 12.5px; }
.fdacts { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.fdchip { background: var(--chip); border: 1px solid var(--line); border-radius: 99px; padding: 4px 12px; font-size: 12.5px; }
.fdseg { display: inline-flex; background: var(--chip); border: 1px solid var(--line); border-radius: 10px; padding: 2px; }
.fdseg button { border: 0; background: transparent; color: var(--sub); padding: 6px 12px; border-radius: 8px; font-size: 12.5px; min-height: 34px; }
.fdseg button.on { background: var(--card); color: var(--ink); font-weight: 700; box-shadow: 0 1px 2px rgba(0,0,0,.08); }
.fdnew { background: var(--fact); color: #fff; border: 0; border-radius: 10px; padding: 10px 18px; font-weight: 900; min-height: 40px; }
.fdnew:hover { filter: brightness(1.08); }
.fdkpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; }
.fdkpi { text-align: right; background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 14px; display: grid; gap: 2px; color: var(--ink); }
.fdkpi:not(:disabled):hover { border-color: var(--line2); box-shadow: 0 6px 18px -12px rgba(0,0,0,.35); }
.fdkpi:disabled { cursor: default; opacity: 1; }
.fdkh { display: flex; align-items: center; gap: 8px; color: var(--sub); font-size: 13px; font-weight: 700; }
.fdki { width: 30px; height: 30px; border-radius: 9px; background: var(--chip); display: grid; place-items: center; }
.fdkv { font-size: 21px; font-weight: 900; margin-top: 8px; direction: ltr; text-align: right; font-variant-numeric: tabular-nums; }
.fdku { color: var(--muted); font-size: 11.5px; }
.fdks { color: var(--sub); font-size: 12px; margin-top: 4px; }
.fdkpi.amber { border-color: #E8C46A; }
.fdkpi.red .fdkv { color: var(--danger); }
.fdrow { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 12px; margin-bottom: 14px; }
.fdpanel { background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 14px; }
.fdpanel h3 { font-size: 15.5px; font-weight: 900; }
.fdph { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
.fdpi { color: var(--muted); }
.fdatt { display: flex; align-items: center; gap: 10px; width: 100%; text-align: right; background: transparent; border: 0;
  border-bottom: 1px solid var(--line); padding: 10px 2px; color: var(--ink); min-height: 44px; }
.fdatt:last-of-type { border-bottom: 0; }
.fdatt:not(:disabled):hover { background: var(--chip); }
.fdatt > div { flex: 1; display: grid; }
.fdatt small { color: var(--muted); font-size: 12px; }
.fddot { width: 9px; height: 9px; border-radius: 50%; background: var(--line2); flex: 0 0 9px; }
.fdatt.amber .fddot { background: #D9A421; }
.fdatt.red .fddot { background: var(--danger); }
.fdn { font-weight: 900; font-variant-numeric: tabular-nums; }
.fdok { color: var(--good); padding: 14px 0; }
.fdvs { color: var(--muted); font-size: 12px; margin-top: 8px; }
.fdempty { color: var(--muted); font-size: 13px; padding: 26px 8px; text-align: center; border: 1px dashed var(--line2); border-radius: 10px; margin-top: 10px; }
.fdchart { width: 100%; height: auto; margin-top: 6px; }
.fdchart .ax { stroke: var(--line2); stroke-width: 1; }
.fdchart .bin { fill: var(--fin-in); }
.fdchart .bout { fill: var(--fin-out); }
.fdchart .lb { fill: var(--muted); font-size: 12px; font-family: inherit; }
.fdleg { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12px; color: var(--sub); margin-top: 4px; }
.fdleg span::before { content: ""; display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-left: 5px; vertical-align: -1px; }
.fdleg .lin::before { background: var(--fin-in); }
.fdleg .lout::before { background: var(--fin-out); }
.fdleg span:not(.lin):not(.lout)::before { display: none; }
.fdquick { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 8px; margin-top: 10px; }
.fdq { display: flex; gap: 8px; align-items: center; background: var(--chip); border: 1px solid var(--line); border-radius: 10px; padding: 10px; color: var(--ink); font-size: 13.5px; min-height: 44px; }
.fdq:hover { border-color: var(--line2); }
@media (max-width: 1100px) { .fdkpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fdrow { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .fdkpis { grid-template-columns: 1fr; } .fdkv { font-size: 19px; } }

/* سند جدید */
.fdlgveil { position: fixed; inset: 0; background: rgba(0,0,0,.4); z-index: 200; display: grid; place-items: center; padding: 16px; }
.fdlg { background: var(--card); color: var(--ink); border-radius: 16px; padding: 18px; width: 100%; max-width: 860px; max-height: 92dvh; overflow-y: auto; display: grid; gap: 10px; }
.fdlg h3 { font-size: 17px; font-weight: 900; }
.fdlines { display: grid; gap: 6px; }
.fdl { display: grid; grid-template-columns: 110px 1.2fr 1.4fr 130px 130px 36px; gap: 6px; align-items: center; }
.fdl input { width: 100%; padding: 8px; border: 1px solid var(--line2); border-radius: 8px; background: var(--field); color: var(--ink); }
.fdlh { color: var(--muted); font-size: 12px; }
.fdlname { font-size: 12.5px; color: var(--sub); }
.fdtot { font-size: 13px; color: var(--good); font-weight: 700; }
.fdtot.bad { color: var(--danger); }
@media (max-width: 720px) {
  .fdl { grid-template-columns: 1fr 1fr; }
  .fdl .fdlname { grid-column: 1 / -1; }
  .fdlh { display: none; }
}

/* ۱۰.۲۴۹ — ردپای ثبت و ویرایش */
.fhist { max-width: 720px; }
.fhinfo { display: grid; grid-template-columns: auto 1fr; gap: 4px 10px; background: var(--soft, #f5f5f4); border-radius: 10px; padding: 10px; font-size: 13px; }
.fhrow { border: 1px solid var(--line, #e7e5e4); border-radius: 12px; padding: 10px; display: grid; gap: 6px; }
.fhrow.del { border-color: #fca5a5; }
.fhhead { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 13px; }
.fhat { color: var(--mute, #78716c); font-size: 12px; margin-inline-start: auto; }
.fhch { display: grid; grid-template-columns: minmax(90px, 1fr) minmax(0, 2fr) auto minmax(0, 2fr); gap: 6px; font-size: 12.5px; align-items: start; }
.fhlab { color: var(--mute, #78716c); }
.fhfrom { color: #b91c1c; text-decoration: line-through; text-decoration-color: rgba(185,28,28,.35); overflow-wrap: anywhere; }
.fhto { color: #15803d; overflow-wrap: anywhere; }
.fharr { color: var(--mute, #78716c); }
.fhwho { display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: center; }
.fhbtn { white-space: nowrap; }
.fhrow .fhbtn { justify-self: start; }
@media (max-width: 560px) { .fhch { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 2px 6px; } .fhlab { grid-column: 1 / -1; font-weight: 700; } }

/* ۱۰.۲۴۹ — تطبیق کارت‌به‌کارت */
.c2crange { align-items: flex-end; flex-wrap: wrap; }
.c2crange .f { min-width: 120px; max-width: 160px; }
.c2ccard .entry { display: grid; gap: 8px; margin-top: 8px; }
.c2csale { color: #15803d; }
.c2ctbl tr.bad td { background: rgba(220, 38, 38, .06); }

/* ۱۰.۲۵۰ — نامهٔ اداری پرسنل */
.slsteps { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0; }
.slstep { display: grid; gap: 1px; border: 1px solid var(--line, #e7e5e4); border-radius: 10px; padding: 4px 8px; font-size: 12px; min-width: 90px; }
.slstep small { color: var(--mute, #78716c); font-size: 11px; }
.slstep.ok { border-color: #86efac; background: rgba(34,197,94,.07); }
.slstep.no { border-color: #fca5a5; background: rgba(239,68,68,.07); }
.slstep.cur { border-color: #fcd34d; background: rgba(245,158,11,.08); }
.slpreview { background: var(--soft, #f5f5f4); border-radius: 10px; padding: 10px 12px; font-size: 13px; line-height: 1.9; display: grid; gap: 4px; }
.slpick { display: flex; flex-wrap: wrap; gap: 6px; }
.slact { margin-top: 8px; }

/* ۱۰.۲۵۰ — قیمت‌گذاری: آستانه‌ها، قیمت قبلی، مرجع */
.prlegend { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 12.5px; margin: 6px 0 10px; }
.prprev { display: block; font-size: 11px; line-height: 1.5; }
.prmeta { margin: 4px 0 10px; }

/* ۱۰.۲۶۶ — تولید: خلاصهٔ روز و تأیید، کارت نگهداری، برچسب */
.prodtabs { flex-wrap: wrap; gap: 6px; margin: 6px 0 12px; }
.prodtabs .btn { flex: 1 1 150px; }
.prodsum { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 8px 0; }
.prodsum span { border-radius: 999px; padding: 3px 10px; font-size: 13px; font-weight: 700; background: var(--chip); }
.prodsum .ok { background: var(--goodbg); color: var(--good); }
.prodsum .wait { background: var(--warnbg); }
.prodsum .bad { background: var(--badbg); color: var(--danger); }
.prodline { display: flex; flex-direction: column; gap: 8px; }
.prodrec { border: 1px solid var(--line); border-inline-start: 4px solid var(--line2, var(--line)); border-radius: 10px; padding: 8px 10px; display: flex; flex-direction: column; gap: 3px; }
.prodrec.ok { border-inline-start-color: var(--good); }
.prodrec.bad { border-inline-start-color: var(--danger); background: var(--badbg); }
.prodrec.wait { border-inline-start-color: var(--gold); }
.prodrec-h { font-weight: 800; }
.prodrec-st { font-size: 12.5px; font-weight: 700; color: var(--sub); }
.prodrec .acts { flex-wrap: wrap; gap: 6px; }
.prodrec .acts input { border: 1px solid var(--line); border-radius: 8px; padding: 6px 8px; font: inherit; min-width: 0; }
.prbadge.ok { background: var(--goodbg); color: var(--good); }
.prbadge:not(.ok):not(.urg):not(.imp) { background: var(--warnbg); }
.prodcard.off { opacity: .55; }
.prodcard .tmeta { flex-wrap: wrap; gap: 6px; }
.prodsteps summary { cursor: pointer; font-weight: 700; font-size: 13px; }
.prodsteps div { font-size: 13px; padding: 2px 0; }
.prodlabel .grid textarea, .prodcards textarea { width: 100%; }
.prodlbl.soon { border-color: var(--gold); }
.prodlbl.late { border-color: var(--danger); background: var(--badbg); }
.prodlbl.off { opacity: .55; }

/* ===================================================================== ۱۰.۲۶۷ — قالب سورمه‌ای مالی (بستهٔ آقای فاضل)
 * رنگ‌ها و اندازه‌ها از contracts/design-tokens.json همان بسته؛ فونت FS Finance محلی (مجوز OFL/DejaVu کنار فایل‌ها). */
@font-face{font-family:"FS Finance";src:url(fonts/fsfin/fs-finance-latin-regular.woff) format("woff");font-weight:400;font-display:swap}
@font-face{font-family:"FS Finance";src:url(fonts/fsfin/fs-finance-latin-bold.woff) format("woff");font-weight:700;font-display:swap}
@font-face{font-family:"FS Finance";src:url(fonts/fsfin/fs-finance-arabic-regular.woff) format("woff");font-weight:400;font-display:swap;unicode-range:U+0600-06FF,U+0750-077F,U+0870-089F,U+08A0-08FF,U+200C-200D,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"FS Finance";src:url(fonts/fsfin/fs-finance-arabic-bold.woff) format("woff");font-weight:700;font-display:swap;unicode-range:U+0600-06FF,U+0750-077F,U+0870-089F,U+08A0-08FF,U+200C-200D,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"FS Finance";src:url(fonts/fsfin/fs-finance-numerals-regular.woff) format("woff");font-weight:400;font-display:swap;unicode-range:U+0030-0039,U+0660-0669,U+06F0-06F9}
@font-face{font-family:"FS Finance";src:url(fonts/fsfin/fs-finance-numerals-bold.woff) format("woff");font-weight:700;font-display:swap;unicode-range:U+0030-0039,U+0660-0669,U+06F0-06F9}
body.rkmode {
  --rk-navy: #142a43; --rk-top: #203e60; --rk-line: #365371; --rk-head: #eaf2fb; --rk-ink: #24384c;
  --rk-rule: #bfccd9; --rk-surface: #f4f7fb; --rk-summary: #e9eff8; --rk-sel: #fff6d9;
  --ink: #24384c; --paper: #f4f7fb; --card: #ffffff; --line: #bfccd9; --line2: #9fb2c6; --field: #ffffff; --chip: #e9eff8;
  --sub: #3b526a; --muted: #5d7186; --accent: #203e60; --accent-deep: #142a43; --accent-soft: #e9eff8; --r: 2px;
  font-family: "FS Finance", Tahoma, Arial, sans-serif; font-size: 14px;
  background: linear-gradient(180deg, #22446a 0%, #4f6f90 55%, #7290ad 100%) fixed; color: var(--ink);
}
body.rkmode.dark { --ink: #24384c; }
body.rkmode #brandbar { display: none; }
.rkshell { min-height: 100dvh; display: flex; flex-direction: column; }
.rktop { position: sticky; top: 0; z-index: 30; display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 6px 12px;
  background: linear-gradient(180deg, #203e60, #142a43); color: var(--rk-head); border-bottom: 1px solid var(--rk-line); }
.rkws { display: flex; align-items: center; gap: 8px; background: transparent; border: 0; color: var(--rk-head); font: inherit; padding: 2px; }
.rklogo { width: 34px; height: 34px; border-radius: 2px; background: #eef3f9; display: grid; place-items: center; overflow: hidden; }
.rklogo img { width: 28px; height: 28px; object-fit: contain; }
.rkcrumb { flex: 1; min-width: 0; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; opacity: .92; }
.rktools { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.rktools .iconbtn { background: transparent; color: var(--rk-head); border: 1px solid var(--rk-line); border-radius: 2px; }
.rksel { background: #1b3553; color: var(--rk-head); border: 1px solid var(--rk-line); border-radius: 2px; padding: 4px 6px; font: inherit; font-size: 12.5px; max-width: 180px; }
.rkwho { font-size: 12px; opacity: .85; }
/* ۱۰.۲۸۷ — برگشت به اپ، همیشه بالا سمت چپ */
.rkback { background: #c7a764; color: #142a43; border: 0; border-radius: 2px; padding: 5px 10px; font: inherit; font-size: 12.5px; font-weight: 700; margin-inline-start: auto; white-space: nowrap; }
.rkstart { max-width: 420px; margin: 18vh auto 0; background: rgba(255,255,255,.94); border: 1px solid var(--rk-line); padding: 18px; text-align: center; color: var(--ink); display: grid; gap: 8px; }
.rkstart b { font-size: 16px; color: #142a43; }
.rkstartrow { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin-top: 6px; }
.rkstartbtn { background: #203e60; color: #fff; border: 1px solid #203e60; border-radius: 2px; padding: 9px 14px; font: inherit; font-weight: 700; }
.rkstartbtn.ghost { background: #fff; color: #203e60; }
.rkveil { position: fixed; inset: 0; background: rgba(10, 22, 36, .35); z-index: 40; display: none; }
.rkveil.open { display: block; }
.rkdrawer { position: fixed; top: 0; bottom: 0; right: 0; width: 340px; max-width: 92vw; z-index: 41; background: var(--rk-navy); color: var(--rk-head);
  transform: translateX(105%); transition: transform .18s ease; display: flex; flex-direction: column; border-left: 1px solid var(--rk-line); }
.rkdrawer.open { transform: none; }
.rkq { margin: 10px; padding: 7px 9px; border-radius: 2px; border: 1px solid var(--rk-line); background: #0f2236; color: var(--rk-head); font: inherit; }
.rkdbody { flex: 1; overflow-y: auto; padding: 0 6px 10px; }
.rksec { font-size: 11.5px; letter-spacing: .3px; opacity: .65; margin: 10px 8px 4px; }
.rkempty { opacity: .7; font-size: 13px; padding: 8px; }
.rkgrp summary { list-style: none; cursor: pointer; padding: 6px 8px; font-size: 13px; display: flex; align-items: center; gap: 6px; border-radius: 2px; }
.rkgrp summary::-webkit-details-marker { display: none; }
.rkgrp summary::before { content: "◂"; font-size: 10px; opacity: .7; transition: transform .15s; }
.rkgrp[open] > summary::before { transform: rotate(-90deg); }
.rkgrp summary:hover { background: #1d3756; }
.rkgrp.d0 > summary { font-weight: 700; font-size: 13.5px; }
.rkgrp .rkgrp, .rkgrp .rkleaf { margin-inline-start: 12px; }
.rkn { margin-inline-start: auto; font-size: 10.5px; background: #2a4a6e; border-radius: 9px; padding: 0 6px; }
.rkleaf { display: flex; align-items: center; }
.rkleaf > button:first-child { flex: 1; text-align: start; background: transparent; border: 0; color: var(--rk-head); font: inherit; font-size: 13px; padding: 5px 8px; border-radius: 2px; display: flex; flex-direction: column; }
.rkleaf > button:first-child small { font-size: 10.5px; opacity: .6; }
.rkleaf > button:first-child:hover:not(:disabled) { background: #1d3756; }
.rkleaf.off > button:first-child { opacity: .42; cursor: not-allowed; }
.rkleaf.cur > button:first-child { background: #2a4a6e; }
.rkstar { background: transparent; border: 0; color: #c7a764; font-size: 13px; padding: 2px 6px; opacity: .55; }
.rkstar.on { opacity: 1; }
.rkdfoot { display: flex; gap: 6px; flex-wrap: wrap; padding: 8px; border-top: 1px solid var(--rk-line); }
.rkdfoot button { flex: 1 1 auto; background: #1b3553; color: var(--rk-head); border: 1px solid var(--rk-line); border-radius: 2px; padding: 6px 8px; font: inherit; font-size: 12px; }
.rkwork { flex: 1; padding: 8px 6px 20px; }
.rkdoc { background: #fff; border: 1px solid var(--rk-line); max-width: 1280px; margin: 0 auto; min-height: calc(100dvh - 76px); }
.rkdoctitle { display: flex; align-items: center; justify-content: space-between; min-height: 26px; padding: 2px 8px; background: var(--rk-top); color: var(--rk-head); font-size: 12.5px; font-weight: 700; }
.rkdoctitle button { background: transparent; color: var(--rk-head); border: 1px solid var(--rk-line); border-radius: 2px; width: 24px; height: 22px; line-height: 1; font-size: 12px; }
body.rkmode .rkscreen { max-width: none; padding: 12px; }
/* داخل قاب: گوشه‌های کم، سایهٔ کم، کادرهای کم‌رنگ آبی — مثل کادر مشخصات سند مرجع */
body.rkmode .rkscreen .entry, body.rkmode .rkscreen .panel, body.rkmode .rkscreen .ticket, body.rkmode .rkscreen section.list > article { border-radius: 2px; box-shadow: none; border-color: var(--rk-rule); }
body.rkmode .rkscreen .entry, body.rkmode .rkscreen .panel { background: var(--rk-surface); }
body.rkmode .rkscreen input, body.rkmode .rkscreen select, body.rkmode .rkscreen textarea { border-radius: 2px; border-color: var(--rk-rule); background: #fff; }
body.rkmode .rkscreen .btn { border-radius: 2px; }
body.rkmode .rkscreen .btn:not(.ghost) { background: var(--rk-top); border-color: var(--rk-top); color: #fff; }
body.rkmode .rkscreen h2, body.rkmode .rkscreen h3, body.rkmode .rkscreen .mth { color: var(--rk-navy); }
body.rkmode .rkscreen table th, body.rkmode .rkscreen .mhead { background: var(--rk-summary); }
body.rkmode .rkscreen tr.sel td, body.rkmode .rkscreen .sel { background: var(--rk-sel); }
body.rkmode .rkscreen * { font-variant-numeric: tabular-nums; }
@media (max-width: 640px) {
  .rktop { flex-wrap: wrap; } .rkwho { display: none; } .rkcrumb { order: 3; flex-basis: 100%; }
  .rkwork { padding: 4px 0 16px; } body.rkmode .rkscreen { padding: 8px; }
}
@media print { body.rkmode { background: #fff; } .rktop, .rkdrawer, .rkveil, .rkdoctitle { display: none !important; } .rkdoc { border: 0; } }
body.rkmode .rkscreen *:not(.badge):not(.prbadge):not(.rkn) { border-radius: 2px !important; }
body.rkmode .rkscreen .ticket, body.rkmode .rkscreen article { box-shadow: none !important; }

/* ۱۰.۲۶۷ — انبار: زبانهٔ جدای ورود و خروج، مرور هر نوع، کاردکس قلم */
.invdirbar { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-bottom: 8px; }
.invdirbtn { border: 2px solid var(--line); background: var(--card); color: var(--sub); border-radius: var(--r); padding: 10px 8px; font-weight: 800; font-size: 15px; }
.invdirbtn.in.on { background: #E6F4EA; border-color: #2C7A4B; color: #1E5E37; }
.invdirbtn.out.on { background: #FDECE7; border-color: #B3391F; color: #8E2A15; }
.entry.invdir-in { border-inline-start: 5px solid #2C7A4B; }
.entry.invdir-out { border-inline-start: 5px solid #B3391F; }
.btn.invsv-in { background: #2C7A4B !important; border-color: #2C7A4B !important; color: #fff !important; }
.btn.invsv-out { background: #B3391F !important; border-color: #B3391F !important; color: #fff !important; }
.invdaygrp { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 8px 0; }
.invkxin { flex: 1 1 200px; min-width: 0; border: 1px solid var(--line); border-radius: 8px; padding: 6px 8px; font: inherit; font-size: 13px; }
.invkxlink { cursor: pointer; text-decoration: underline dotted; }
.invkx { display: flex; flex-direction: column; gap: 2px; margin-top: 8px; overflow-x: auto; }
.invkxr { display: grid; grid-template-columns: 120px 1.2fr 80px 80px 90px 2fr 56px; gap: 6px; align-items: center; padding: 5px 6px; border-radius: 6px; font-size: 13px; min-width: 720px; }
.invkxr.head { background: var(--chip); font-weight: 800; font-size: 12px; }
.invkxr.in b { color: #2C7A4B; } .invkxr.out b { color: #B3391F; }
.invkxr.twin { background: var(--warnbg); outline: 1px solid var(--gold); }

/* ۱۰.۲۶۸ — برگهٔ حساب (خروج، تغییر رمز) */
.acctbox { width: min(420px, 100%); padding: 16px 18px; box-sizing: border-box; }
.acctbox input { width: 100%; margin: 6px 0; }
.acctacts { display: flex; flex-direction: column; gap: 8px; margin: 12px 0 8px; }
.acctacts .btn { width: 100%; }

/* ۱۰.۲۶۸ — میزانپلاس سالن و کنترل با دوربین */
.mepsec { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; margin: 10px 0; }
.mepsech { display: flex; justify-content: space-between; align-items: center; }
.mepsech h3 { margin: 0; font-size: 1em; }
.mepitem { border-top: 1px solid var(--line); padding: 8px 0; }
.mepitem.st-ok .mepit { color: #2c7a4b; }
.mepitem.st-fix .mepit { color: #b3391f; font-weight: 700; }
.mepitem.st-na .mepit { opacity: .55; }
.mepbtns { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; }
.mepfix { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin-top: 6px; }
.mepfix input { flex: 1; min-width: 140px; }
.mepent { max-width: 260px; border-radius: 10px; margin: 8px 0; cursor: pointer; }
.mepphs { display: flex; gap: 6px; flex-wrap: wrap; }
.mepphs img { max-width: 120px; border-radius: 8px; cursor: pointer; }
.mepbars { display: flex; align-items: flex-end; gap: 6px; height: 160px; padding: 6px 0; }
.mepbar { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; }
.mepbarv { width: 70%; border-radius: 6px 6px 0 0; background: #9aa; }
.mepbarv.g { background: #2c7a4b; } .mepbarv.a { background: #d9a421; } .mepbarv.r { background: #b3391f; } .mepbarv.none { background: #ddd; }
.mepbarn { font-size: 11px; } .mepbar small { font-size: 10px; color: var(--muted, #888); }
.ppeimg { max-width: 280px; width: 100%; border-radius: 10px; margin: 6px 0; cursor: pointer; }
/* ۱۰.۲۶۸ — ثبت با جمله */
.finxbox { background: var(--bg2, #f6f4ee); border-radius: 10px; padding: 8px; margin: 8px 0; }
.finxbox textarea { width: 100%; box-sizing: border-box; }
.finxsug { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; margin: 4px 0; }
.finxrow { border-bottom: 1px solid var(--line); padding: 6px 0; }
.finxrow.bad { opacity: .75; }

/* ۱۰.۲۶۹ — فرم‌های بومی قالب آقای فاضل (سند، ساختار حساب، تراز، دفاتر) */
.rknhost { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.rknative { min-width: 960px; direction: rtl; }
.rknat { display: inline-block; align-self: flex-start; margin-top: 2px; font-size: 10px; background: #c7a764; color: #142a43; border-radius: 2px; padding: 0 5px; font-weight: 700; }
.rknmodal { border-radius: 2px; max-width: 720px; }
.rknlist { display: grid; gap: 4px; max-height: 60dvh; overflow-y: auto; }
.rknli { display: grid; grid-template-columns: 56px 92px 70px 1fr 120px 80px; gap: 6px; align-items: center; text-align: start; background: #fff; border: 1px solid var(--rk-rule, #c9d6e3); border-radius: 2px; padding: 6px 8px; font: inherit; font-size: 12.5px; }
.rknli:hover { background: var(--rk-sel, #e3edf7); }
.rknd { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; opacity: .8; }
.rkst { font-size: 11px; border-radius: 2px; padding: 1px 6px; text-align: center; background: #eef2f6; }
.rkst.draft { background: #fff4d6; color: #7a5a00; }
.rkst.approved { background: #e6f4ea; color: #1e5e37; }
.rkst.rejected { background: #fdece7; color: #8e2a15; }
@media (max-width: 640px) { .rknli { grid-template-columns: 48px 84px 1fr 90px; } .rknli > :nth-child(3), .rknli > :nth-child(4) { display: none; } }
@media (max-width: 640px) { .rknative { min-width: 760px; } }

/* ۱۰.۲۷۱ — حالت نگهداری */
.maintbar { position: sticky; top: 0; z-index: 300; background: #8e2a15; color: #fff; padding: 6px 12px; font-size: 13px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; justify-content: center; }
.maintbar .mini { background: #fff; color: #8e2a15; border: 0; border-radius: 6px; padding: 2px 10px; font: inherit; font-weight: 700; }
.maintscr { position: fixed; inset: 0; z-index: 400; background: rgba(250, 248, 242, .97); display: grid; place-items: center; padding: 20px; }
.maintbox { max-width: 420px; text-align: center; display: grid; gap: 12px; justify-items: center; }
.maintbox h2 { font-size: 20px; font-weight: 900; }
.maintcard ol { padding-right: 18px; }
.btn.danger { background: var(--danger); border-color: var(--danger); color: #fff; }
/* ۱۰.۲۷۱ — ورود بی‌تأمین‌کننده */
.nosuplist { display: grid; gap: 4px; max-height: 320px; overflow-y: auto; margin: 6px 0; }
.nosuprow { display: grid; grid-template-columns: 24px 88px 1fr auto auto; gap: 8px; align-items: center; padding: 4px 8px; border: 1px solid var(--line); border-radius: 8px; background: var(--card); font-size: 13px; }
.nosuprow small { opacity: .7; }
@media (max-width: 560px) { .nosuprow { grid-template-columns: 24px 70px 1fr auto; } .nosuprow small { display: none; } }

/* ۱۰.۲۷۲ — زیر فرم انبار: ثبت‌های همین قلم در همین تاریخ */
.invsame { margin-top: 10px; border: 1px dashed var(--line, #ddd); border-radius: 10px; padding: 8px 10px; font-size: 13px; }
.invsame.has { border-color: #c98a1a; background: rgba(201, 138, 26, .07); }
.invsame-h { margin-bottom: 4px; }
.invsame-r { display: flex; flex-wrap: wrap; gap: 4px 10px; justify-content: space-between; padding: 3px 0; border-top: 1px solid var(--line, #eee); }
.invsame-r.in > span:first-child { color: #1f7a3f; }
.invsame-r.out > span:first-child { color: #b3391f; }

/* ۱۰.۲۷۲ — هزینه‌های بله */
.bxcard { border-inline-start: 4px solid #c98a1a; }
.bxcard.st-approved { border-inline-start-color: #1f7a3f; opacity: .9; }
.bxcard.st-rejected { border-inline-start-color: #b3391f; opacity: .75; }
.bxtop { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 8px; }
.bxphoto { width: 96px; height: 96px; object-fit: cover; border-radius: 8px; border: 1px solid var(--line, #ddd); flex: none; }
.bxphoto.none { display: flex; align-items: center; justify-content: center; font-size: 12px; color: var(--muted, #888); }
.bxinfo { flex: 1; min-width: 0; }
.bxraw { white-space: pre-wrap; font-size: 13px; margin-top: 4px; background: var(--field, #f6f6f6); padding: 6px 8px; border-radius: 6px; overflow-wrap: anywhere; }
.bxcfg summary { cursor: pointer; font-weight: 700; }
@media (max-width: 560px) { .bxphoto { width: 72px; height: 72px; } }
/* ۱۰.۲۷۶ — گزارش چک‌لیست به تفکیک روز و برگه */
.clrepday { margin: 14px 0; padding: 10px 12px; border: 1px solid var(--line, #e3ded6); border-radius: 12px; }
.clrepday > h4 { margin: 0 0 8px; }
.clrephead { margin: 10px 0 4px; }
.reptable tr.clbad td { color: #B3391F; font-weight: 700; }
.reptable.cltbl { min-width: 0; width: 100%; table-layout: fixed; }
.reptable.cltbl th, .reptable.cltbl td { white-space: normal; overflow-wrap: anywhere; }
.reptable.cltbl th:nth-child(1) { width: 55%; } .reptable.cltbl th:nth-child(2) { width: 20%; }
@media (max-width: 560px) { .reptable.cltbl th, .reptable.cltbl td { padding: 8px 6px; font-size: 13px; } .reptable.cltbl th:nth-child(1) { width: 50%; } .reptable.cltbl th:nth-child(2) { width: 24%; } }

/* ۱۰.۲۸۰ — خانم صنیعی: کادر «جست‌وجو در منو» در حالت تاریک متن سرمه‌ای روی زمینهٔ سرمه‌ای می‌نوشت */
body .rkdrawer input.rkq, body.dark .rkdrawer input.rkq, body.rkmode .rkdrawer input.rkq {
  color: #F5F7FA !important; caret-color: #F5F7FA; background: #0f2236 !important; -webkit-text-fill-color: #F5F7FA; }
body .rkdrawer input.rkq::placeholder { color: #7F93AB !important; -webkit-text-fill-color: #7F93AB; opacity: 1; }
body .rkdrawer input.rkq:focus { border-color: #F24C05; outline: none; }
.rkdrawer mark.rkhit { background: #F2B705; color: #142a43; border-radius: 2px; padding: 0 1px; }

/* ۱۰.۲۸۰ — شعبه‌های انتخابی متقاضی و تصمیم مدیر */
.hbchips { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; margin: 6px 0; }
.hbchip { font-size: 12px; border-radius: 999px; padding: 2px 9px; border: 1px solid #D9D6CC; background: #F7F5F0; }
.hbchip.approved { background: #E6F3EC; border-color: #2F7A55; color: #2F7A55; font-weight: 700; }
.hbchip.rejected { background: #FBE9E6; border-color: #B03A2A; color: #B03A2A; }
.hbchip.closed { opacity: .55; }
.hbdecide { border: 1px dashed #F24C05; border-radius: 10px; padding: 8px 10px; margin: 8px 0; display: flex; flex-direction: column; gap: 6px; }
.hbdecide textarea { width: 100%; font: inherit; }
body.dark .hbchip { background: #26302B; border-color: #2E3732; }

/* ===== 10.280 — فرم‌های بومی راهکاری: ساختار حساب‌ها، نوع تفصیلی، حساب تفصیلی ===== */
.rkx { color: var(--rk-ink, #24384c); font-size: 13px; padding: 0 0 18px; background: #fff; border: 1px solid var(--rk-line, #365371); min-height: calc(100dvh - 90px); }
.rkxhead { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; background: var(--rk-top, #203e60); color: #fff; padding: 8px 12px; }
.rkxhead > b { font-size: 15px; }
.rkxmeta { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 11.5px; color: #dbe6f3; margin-inline-start: auto; }
.rkxmeta small { color: #9fb4cc; }
.rkxbar { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 8px 10px; background: var(--rk-summary, #e9eff8); border-bottom: 1px solid var(--rk-rule, #bfccd9); }
.rkxbar select { height: 30px; font-size: 12.5px; padding: 0 6px; border: 1px solid var(--rk-rule, #bfccd9); background: #fff; color: inherit; }
.rkxb { height: 30px; padding: 0 12px; font: inherit; font-size: 12.5px; border: 1px solid #8ea4bd; background: #fff; color: var(--rk-ink, #24384c); cursor: pointer; border-radius: 3px; white-space: nowrap; }
.rkxb:hover { background: #f1f6fc; border-color: var(--rk-top, #203e60); }
.rkxb.pri { background: var(--rk-top, #203e60); border-color: var(--rk-top, #203e60); color: #fff; }
.rkxb.pri:hover { background: var(--rk-navy, #142a43); }
.rkxb.warn { color: #b3261e; border-color: #e0a29d; }
.rkxb:disabled { opacity: .5; cursor: default; }
.rkxgrid { display: grid; grid-template-columns: minmax(260px, 340px) 1fr; gap: 0; align-items: start; }
.rkxgrid.wide { grid-template-columns: 1fr; }
.rkxgrid.list { grid-template-columns: minmax(360px, 46%) 1fr; }
.rkxtree { border-inline-end: 1px solid var(--rk-rule, #bfccd9); background: var(--rk-surface, #f4f7fb); min-height: 420px; }
.rkxq { display: block; width: calc(100% - 16px); margin: 8px; height: 32px; padding: 0 8px; border: 1px solid var(--rk-rule, #bfccd9); background: #fff; color: var(--rk-ink, #24384c); font: inherit; }
.rkxtbody { max-height: 68vh; overflow: auto; padding: 0 4px 8px; }
.rkxnode { display: flex; align-items: center; gap: 6px; padding: 5px 6px; cursor: pointer; border-bottom: 1px dotted #d6e0ea; line-height: 1.5; }
.rkxnode:hover { background: #eaf2fb; }
.rkxnode.on { background: var(--rk-sel, #fff6d9); outline: 1px solid #e6c766; }
.rkxnode.off { color: #8a99a8; text-decoration: line-through; }
.rkxnode.d0 { font-weight: 700; color: var(--rk-navy, #142a43); }
.rkxnode.d1 { padding-inline-start: 22px; }
.rkxnode.d2 { padding-inline-start: 40px; font-size: 12.5px; }
.rkxnode .tg { width: 16px; text-align: center; color: #5b7390; flex: none; }
.rkxnode .c { font-family: Vazirmatn, monospace; color: #3c5f86; min-width: 52px; flex: none; direction: ltr; text-align: end; }
.rkxnode .n { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rkxform { padding: 10px 14px; background: #fff; min-width: 0; }
.rkxform > h4, .rkxform > b { display: block; margin: 0 0 8px; color: var(--rk-navy, #142a43); font-size: 14px; }
.rkxfg { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px 12px; margin-bottom: 10px; }
.rkxf { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.rkxf > span { font-size: 11.5px; color: #5b7390; }
.rkxf.s2 { grid-column: span 2; }
.rkxf.s4 { grid-column: 1 / -1; }
.rkxf input, .rkxf select, .rkxf textarea { height: 32px; padding: 0 8px; border: 1px solid var(--rk-rule, #bfccd9); background: #fff; color: var(--rk-ink, #24384c); font: inherit; font-size: 13px; width: 100%; box-sizing: border-box; border-radius: 2px; }
.rkxf textarea { height: auto; min-height: 56px; padding: 6px 8px; resize: vertical; }
.rkxf input:focus, .rkxf select:focus, .rkxf textarea:focus { outline: none; border-color: #F24C05; box-shadow: 0 0 0 2px rgba(242,76,5,.12); }
.rkx input.ro, .rkx .ro input, .rkx .ro select { background: #eef2f6 !important; color: #5b6b7b !important; }
.rkxc { display: inline-flex; align-items: center; gap: 4px; font-size: 12.5px; white-space: nowrap; cursor: pointer; }
.rkxcks { display: flex; flex-wrap: wrap; gap: 6px 16px; padding: 8px 0; margin-bottom: 8px; border-top: 1px dashed #d6e0ea; border-bottom: 1px dashed #d6e0ea; }
.rkxcode { font-family: Vazirmatn, monospace; direction: ltr; font-weight: 700; color: #3c5f86; display: flex; align-items: center; gap: 4px; }
.rkxcode input { flex: 1; min-width: 0; text-align: center; }
.rkxcode input:first-child { flex: 1.2; }
.rkxtabs { margin-top: 12px; border: 1px solid var(--rk-rule, #bfccd9); }
.rkxtabbar { display: flex; flex-wrap: wrap; background: var(--rk-summary, #e9eff8); border-bottom: 1px solid var(--rk-rule, #bfccd9); }
.rkxtabbar button { border: 0; background: transparent; padding: 8px 14px; font: inherit; font-size: 12.5px; color: #3d5470; cursor: pointer; border-bottom: 2px solid transparent; }
.rkxtabbar button.on { color: var(--rk-navy, #142a43); font-weight: 700; border-bottom-color: #F24C05; background: #fff; }
.rkxtabbody { padding: 10px; background: #fff; min-height: 80px; overflow-x: auto; }
.rkxtable { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.rkxtable th { background: var(--rk-top, #203e60); color: #fff; font-weight: 600; padding: 6px 8px; text-align: start; white-space: nowrap; position: sticky; top: 0; }
.rkxtable td { padding: 5px 8px; border-bottom: 1px solid #e3e9f0; vertical-align: top; }
.rkxtable td.c { font-family: Vazirmatn, monospace; direction: ltr; text-align: end; color: #3c5f86; white-space: nowrap; }
.rkxtable td.n { direction: ltr; text-align: end; white-space: nowrap; font-variant-numeric: tabular-nums; }
.rkxtable tbody tr { cursor: pointer; }
.rkxtable tbody tr:hover { background: #f1f6fc; }
.rkxtable tr.on { background: var(--rk-sel, #fff6d9) !important; }
.rkxtable tr.off td { color: #8a99a8; }
.rkxtable tr.grp td { background: var(--rk-summary, #e9eff8); font-weight: 700; color: var(--rk-navy, #142a43); }
.rkxtable tr.flt td { background: #fafcfe; padding: 3px 4px; }
.rkxtable tr.flt input { width: 100%; height: 26px; border: 1px solid #d6e0ea; padding: 0 6px; font: inherit; font-size: 12px; box-sizing: border-box; }
.rkxtable tr.sum td { background: var(--rk-summary, #e9eff8); font-weight: 700; border-top: 2px solid var(--rk-rule, #bfccd9); }
.rkxlvl { border: 1px solid #d6e0ea; padding: 8px 10px; margin-bottom: 8px; background: #fafcfe; }
.rkxlvl > b { display: block; font-size: 12.5px; margin-bottom: 6px; color: var(--rk-navy, #142a43); }
.rkxchips { display: flex; flex-wrap: wrap; gap: 6px; }
.rkxchips .chip { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border: 1px solid #b7c7d8; border-radius: 14px !important; background: #fff; font-size: 12px; cursor: pointer; }
.rkxchips .chip.on { background: var(--rk-top, #203e60); border-color: var(--rk-top, #203e60); color: #fff; }
.rkxgroupbox { border: 1px solid var(--rk-rule, #bfccd9); padding: 10px; margin: 8px 0; }
.rkxcap { font-size: 12px; color: #5b7390; margin: 4px 0 8px; }
.rkxhint { font-size: 11.5px; color: #6b7f94; margin: 4px 0; line-height: 1.7; }
.rkxempty { padding: 24px; text-align: center; color: #8a99a8; }
.rkxerr { padding: 8px 10px; background: #fdecea; color: #b3261e; border: 1px solid #f3c2bd; margin: 8px 0; font-size: 12.5px; }
.rkxacts { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 10px; margin-top: 8px; border-top: 1px solid #e3e9f0; }
@media (max-width: 820px) {
  .rkxgrid, .rkxgrid.list { grid-template-columns: 1fr; }
  .rkxtree { border-inline-end: 0; border-bottom: 1px solid var(--rk-rule, #bfccd9); min-height: 0; }
  .rkxtbody { max-height: 42vh; }
  .rkxfg { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rkxf.s2 { grid-column: 1 / -1; }
  .rkxmeta { margin-inline-start: 0; }
}
body.dark .rkx .rkxform, body.dark .rkx .rkxtabbody { background: #fff; }
.rkxtable td input, .rkxtable td select { width: 100%; min-width: 60px; height: 28px; box-sizing: border-box; border: 1px solid #d6e0ea; padding: 0 6px; font: inherit; font-size: 12.5px; background: #fff; color: inherit; }
.rkxlvl { overflow-x: auto; }
.rkxchips input { height: 28px; border: 1px solid #d6e0ea; padding: 0 8px; font: inherit; font-size: 12px; min-width: 150px; }
.rkxchips .chip button { border: 0; background: transparent; color: inherit; cursor: pointer; padding: 0 2px; font-size: 13px; }

/* ===== ۱۰.۲۸۳ — استاندارد آیکون و نوار ابزار (Lucide) + فرم سند حسابداری راهکارانی (خانم صنیعی، موارد ۵ و ۶) ===== */
.rkxtb { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 0; padding: 3px 6px; background: linear-gradient(#2c4a69, #1b334e); border-bottom: 1px solid #122a44; }
.rkxtg { display: inline-flex; align-items: center; gap: 1px; padding: 0 5px; }
.rkxtg + .rkxtg { border-inline-start: 1px solid rgba(255,255,255,.2); }
.rkxi { position: relative; width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 1px solid transparent; border-radius: 3px; background: transparent; color: #d2e4f6; cursor: pointer; }
.rkxi .fsi { width: 18px; height: 18px; display: block; }
.rkxi:hover:not(.off), .rkxi:focus-visible { background: #49617a; border-color: #d7b36d; color: #fff1c3; outline: none; }
.rkxi.t-pri { color: #f2cf86; }
.rkxi.t-ok { color: #7fe0a3; }
.rkxi.t-dng { color: #ff9f95; }
.rkxi.off { opacity: .3; cursor: default; filter: grayscale(.6); }
.rkxbadge { position: absolute; bottom: 1px; left: 3px; font: 700 11px/1 Vazirmatn, sans-serif; font-style: normal; color: inherit; }
.rkxrowtb { background: var(--rk-summary, #e9eff8); border: 1px solid var(--rk-rule, #bfccd9); border-top: 0; margin: 0 10px; padding: 2px 4px; }
.rkxrowtb .rkxtg + .rkxtg { border-inline-start-color: #bfccd9; }
.rkxrowtb .rkxi { width: 30px; height: 30px; color: #24384c; }
.rkxrowtb .rkxi.t-dng { color: #b3261e; }
.rkxrowtb .rkxi:hover:not(.off) { background: #fff; color: #142a43; }
.rkxdup { display: none !important; }
.rkxf.s3 { grid-column: span 3; }
#fstip { position: fixed; z-index: 100000; background: #142a43; color: #fff; font: 12px/1.5 Vazirmatn, Tahoma, sans-serif; padding: 4px 9px; border-radius: 4px; pointer-events: none; white-space: nowrap; box-shadow: 0 3px 10px rgba(0,0,0,.25); border: 1px solid #d7b36d; }
.rkx.dirty .rkxhead > b::after { content: " ●"; color: #f2cf86; }
.rkxpill { font-size: 12px; background: #e2e6ff; color: #2b3a8f; padding: 3px 9px; border-radius: 10px; }
.rkxhelp { max-width: 640px; } .rkxhelp ul { padding-inline-start: 18px; line-height: 1.9; font-size: 13px; } .rkxhelp .rkxkeys { margin: 8px 0 12px; } .rkxhelp .fsi { width: 16px; height: 16px; color: #203e60; }
.vchstate { display: flex; flex-wrap: wrap; gap: 5px; padding: 6px 10px; background: #f6f8fb; border-bottom: 1px solid #dde5ee; }
.vchst { display: inline-block; font-size: 11.5px; line-height: 1.6; padding: 1px 8px; border-radius: 10px; background: #e8eef5; color: #24384c; margin-inline-end: 3px; }
.vchst.draft { background: #fff4d6; color: #7a5600; } .vchst.approved { background: #dcf3e4; color: #1d6b3d; }
.vchst.rejected, .vchst.rej { background: #fde3e0; color: #a2261b; } .vchst.fin { background: #e2e6ff; color: #2b3a8f; }
.vchst.cfo { background: #d8f1ee; color: #0f6b60; } .vchst.exp { background: #ece3ff; color: #5b2b9b; }
.vchst.auto { background: #eef2f6; color: #3c5f86; } .vchst.warn { background: #fff0d6; color: #8a4b00; }
fieldset.vchspec, fieldset.vchsum { border: 1px solid var(--rk-rule, #bfccd9); margin: 8px 10px; padding: 4px 10px 6px; min-width: 0; }
fieldset.vchspec legend, fieldset.vchsum legend { font-weight: 700; color: var(--rk-navy, #142a43); padding: 0 6px; font-size: 12.5px; }
.vchnotes { width: calc(100% - 20px); margin: 8px 10px; min-height: 120px; border: 1px solid var(--rk-rule, #bfccd9); font: inherit; padding: 8px; box-sizing: border-box; }
.vchgridwrap { margin: 8px 10px 0; overflow: auto; max-height: 50vh; border: 1px solid var(--rk-rule, #bfccd9); }
.vchgrid td { padding: 0 4px; vertical-align: middle; }
.vchgrid td input { width: 100%; min-width: 64px; height: 30px; border: 0; background: transparent; font: inherit; font-size: 12.5px; padding: 0 4px; color: inherit; box-sizing: border-box; }
.vchgrid td input:focus { outline: 2px solid #d7b36d; background: #fffbe9; }
.vchgrid td.c input { direction: ltr; text-align: end; min-width: 76px; }
.vchgrid td.n input { direction: ltr; text-align: end; min-width: 112px; }
.vchgrid tr.bad td { background: #fff6f5; }
.vchgrid tbody tr.on td { background: var(--rk-sel, #fff6d9); }
.vchok { text-align: center; font-weight: 700; width: 40px; }
.vchok.ok { color: #1d6b3d; } .vchok.soft { color: #b07800; } .vchok.bad { color: #b3261e; }
.vchgrid.nol23 .l23 { display: none; }
.vchlistwrap { overflow: auto; max-height: calc(100dvh - 270px); margin: 0 10px; }
.vchlist td.vchd { max-width: 360px; }
.vchlist tr.st-rejected td { color: #a2261b; }
.vchsg input.bad { color: #b3261e !important; font-weight: 700; } .vchsg input.okv { color: #1d6b3d !important; font-weight: 700; }
.vchsg .rkxhint.s4 { grid-column: 1 / -1; }
.vchfinal { max-width: 640px; margin: 10px; border: 1px solid var(--rk-rule, #bfccd9); }
@media (max-width: 760px) {
  .rkxi { width: 36px; height: 36px; }
  .rkxf.s3 { grid-column: 1 / -1; }
  .vchgridwrap { max-height: none; }
}
@media print { .rkxtb, .rkxbar, .rkxtabbar { display: none !important; } }

/* ۱۰.۲۸۸ — مزایای پرسنل گروه (کارت من) */
.spbenefit { margin-top: 10px; border-top: 1px dashed var(--line); padding-top: 10px; }
.spbenefit h4 { margin: 0 0 6px; font-size: 15px; }
.spbenefit ul { padding-right: 18px; line-height: 1.9; font-size: 13.5px; color: var(--sub); margin: 0; }

/* ===== ۱۰.۲۹۷ — منوی اصلی هشت‌گروهی با آیکون (خانم صنیعی مورد ۷) و فرم‌های خزانه ===== */
.rkgrp.d0 > summary.rkgtop { font-size: 19px; font-weight: 700; gap: 12px; padding: 9px 10px; margin: 2px 0; }
.rkgrp.d0 > summary.rkgtop::before { display: none; }
.rkgrp.d0 > summary.rkgtop .rkgico { width: 30px; height: 30px; flex: none; stroke-width: 1.6; color: #d7b36d; }
.rkgrp.d0 > summary.rkgtop .rkgt { flex: 1; }
.rkgrp.d0[open] > summary.rkgtop { background: #1d3756; }
.rkempty.sm { font-size: 11.5px; opacity: .6; padding: 2px 10px 6px; }
.trtabs { margin: 10px 10px 0; }
.trgrid td select { width: 100%; min-width: 120px; height: 30px; border: 0; background: transparent; font: inherit; font-size: 12px; color: inherit; }
.trgrid td select:focus { outline: 2px solid #d7b36d; background: #fffbe9; }
.trgrid th { white-space: nowrap; }
.trgridwrap .rkxempty { padding: 14px; }
.trfoot { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: end; margin: 8px 10px 12px; }
.trfoot .rkxf { min-width: 160px; }
.trfoot .rkxf input { direction: ltr; text-align: end; font-weight: 700; }
.trbase .rkxfg { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; }
.trpick { max-width: 860px; width: 94vw; }
.trpickwrap { max-height: 56vh; overflow: auto; margin: 8px 0; }
.trpickwrap tr { cursor: pointer; }
.trcols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 12px; margin: 8px 0 12px; }
.rkxtable tr.off td { opacity: .5; }

/* ===== ۱۰.۲۹۸ — فروش لحظه‌ای گروه ===== */
.lvwrap { max-width: 1100px; margin: 0 auto; padding: 4px 2px 40px; }
.lvhead { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-bottom: 10px; }
.lvhead h2 { margin: 0; font-size: 20px; }
.lvtime { color: var(--sub, #6b665e); font-size: 12.5px; flex: 1; }
.lvtotal { background: #14324a; color: #fff; border-radius: 14px; padding: 14px 16px; margin-bottom: 14px; }
.lvtl { font-size: 13px; opacity: .8; }
.lvtv { font-size: 28px; font-weight: 900; margin: 2px 0; font-variant-numeric: tabular-nums; }
.lvts { font-size: 13px; opacity: .85; }
.lvtotal .lvnote { color: #c9d6e3; }
.lvdeltas { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.lvdelta { font-size: 12px; border-radius: 999px; padding: 2px 8px; background: rgba(127,127,127,.15); }
.lvdelta.up { color: #1d7a45; background: #e5f5ea; }
.lvdelta.dn { color: #b3391f; background: #fde9e4; }
.lvgrp h3 { font-size: 15px; margin: 16px 2px 8px; }
.lvgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.lvcard { text-align: start; border: 1px solid var(--line, #e4ded2); background: var(--card, #fff); color: inherit; border-radius: 14px; padding: 12px 14px; cursor: pointer; font: inherit; box-shadow: 0 1px 3px rgba(0,0,0,.05); }
.lvcard:hover { border-color: #d7b36d; }
.lvcn { font-weight: 800; font-size: 14px; }
.lvcv { font-size: 21px; font-weight: 900; margin: 4px 0 2px; font-variant-numeric: tabular-nums; }
.lvcs { font-size: 12.5px; color: var(--sub, #6b665e); }
.lvtags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.lvtag { font-size: 11.5px; border-radius: 6px; padding: 2px 7px; background: #eef2f6; color: #3d5470; }
.lvtag.warn { background: #fff4e0; color: #7a4a00; }
.lvtag.bad { background: #fde9e4; color: #9b2c14; }
.lvnote { font-size: 11.5px; color: var(--sub, #6b665e); margin-top: 6px; }
.lvnote.warn { color: #7a4a00; background: #fff4e0; border-radius: 8px; padding: 6px 9px; }
.lvcard.m-sepidz .lvcv { color: #5d6b78; }
.lvbar2 { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 8px; }
.lvdate { width: 110px; }
.lvbn { margin: 6px 2px 10px; }
.lvtiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; margin-bottom: 12px; }
.lvtile { border: 1px solid var(--line, #e4ded2); border-radius: 12px; padding: 9px 11px; background: var(--card, #fff); display: flex; flex-direction: column; gap: 3px; }
.lvtile span { font-size: 12px; color: var(--sub, #6b665e); }
.lvtile b { font-size: 15px; font-variant-numeric: tabular-nums; }
.lvcols { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 10px; }
.lvsec { border: 1px solid var(--line, #e4ded2); border-radius: 12px; padding: 10px 12px; background: var(--card, #fff); margin-bottom: 10px; }
.lvsec h4 { margin: 0 0 8px; font-size: 14px; }
.lvrow { position: relative; display: flex; justify-content: space-between; gap: 8px; padding: 5px 6px; font-size: 13px; }
.lvrk { position: relative; z-index: 1; }
.lvrv { position: relative; z-index: 1; font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--sub, #4b5563); }
.lvrbar { position: absolute; inset-block: 2px; right: 0; background: #e8eef5; border-radius: 4px; z-index: 0; }
.lvli { font-size: 12.5px; padding: 5px 2px; border-bottom: 1px dashed var(--line, #e4ded2); }
.lvempty { font-size: 12.5px; color: var(--sub, #6b665e); }
.lvchart { width: 100%; height: auto; max-height: 220px; }
.lvchart .lvbar { fill: #2f6fa8; }
.lvchart .lvbar:hover { fill: #d98a1c; }
.lvchart .lvyline { stroke: #9aa5b1; stroke-width: 2; stroke-dasharray: 4 3; }
.lvchart .lvaxis { stroke: #d5dbe1; }
.lvchart .lvtick { font-size: 9px; fill: #6b7785; }
.lvlegend { display: flex; gap: 12px; font-size: 12px; color: var(--sub, #6b665e); margin-bottom: 4px; }
.lvlg::before { content: ""; display: inline-block; width: 12px; height: 8px; border-radius: 2px; margin-inline-end: 5px; vertical-align: middle; }
.lvlg.t::before { background: #2f6fa8; }
.lvlg.y::before { height: 0; border-top: 2px dashed #9aa5b1; }
body.dark .lvcard, body.dark .lvsec, body.dark .lvtile { background: #1a1c21; border-color: #2c3037; }
body.dark .lvrbar { background: #24303d; }
body.dark .lvtag { background: #24303d; color: #c9d6e3; }
.lvmore { margin-top: 6px; }

/* ===== ۱۰.۳۰۰ — خانم صنیعی FS-REQ-1405-07-21: صفحهٔ ورود بدون کادر، منوی ریزتر، ✕ روی زبانه، فضای کار زبانه‌دار ===== */
.rkmenubtn { background: transparent; border: 1px solid var(--rk-line); color: var(--rk-head); border-radius: 2px; width: 36px; height: 34px; display: grid; place-items: center; padding: 0; flex: none; cursor: pointer; }
.rkmenubtn:hover { background: #1d3756; }
.rkmenuico { width: 22px; height: 22px; stroke-width: 2; }
div.rkws { cursor: default; }
.rktabs { display: flex; align-items: flex-end; gap: 2px; padding: 6px 8px 0; background: #142a43; border-bottom: 1px solid var(--rk-line); overflow-x: auto; scrollbar-width: thin; }
.rktabs::-webkit-scrollbar { height: 4px; } .rktabs::-webkit-scrollbar-thumb { background: #2a4a6e; }
.rktab { display: flex; align-items: center; gap: 2px; flex: none; max-width: 230px; background: #1d3756; color: #c9d6e6; border: 1px solid var(--rk-line); border-bottom: 0; border-radius: 3px 3px 0 0; padding: 0 4px 0 2px; opacity: .78; }
.rktab.on { background: #fff; color: #142a43; opacity: 1; border-color: #fff; }
.rktabl { background: transparent; border: 0; color: inherit; font: inherit; font-size: 12.5px; font-weight: 600; padding: 7px 8px 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 190px; cursor: pointer; }
.rktab.on .rktabl { font-weight: 700; }
.rktabdot { width: 7px; height: 7px; border-radius: 50%; background: #F28C28; display: none; flex: none; }
.rktab.dirty .rktabdot { display: inline-block; }
.rktabx, .rktabplus, .rkdx { background: transparent; border: 0; color: inherit; width: 22px; height: 22px; border-radius: 2px; display: grid; place-items: center; padding: 0; cursor: pointer; flex: none; }
.rktabx:hover { background: rgba(127,147,171,.25); }
.rktabxi { width: 15px; height: 15px; stroke-width: 2.2; }
.rktabplus { color: var(--rk-head); width: 30px; height: 28px; margin-bottom: 3px; border: 1px dashed var(--rk-line); }
.rktabplus:hover { background: #1d3756; }
.rkboot { color: #fff; text-align: center; margin-top: 18vh; }
/* ✕ داخلی فرم‌های بومی — بستن فقط از روی زبانه */
.rknhost .form-titlebar > button, .rkxhead .rkxclose { display: none !important; }
/* پانل منو: ✕ بالا-چپ کنار جست‌وجو */
.rkdhead { display: flex; align-items: center; gap: 6px; padding: 10px 10px 4px; }
.rkdhead .rkq { flex: 1; margin: 0; min-width: 0; }
.rkdx { color: var(--rk-head); width: 32px; height: 32px; border: 1px solid var(--rk-line); }
.rkdx:hover { background: #1d3756; }
/* مورد ۹ — فونت منو ریزتر: هر هشت گروه بدون اسکرول روی موبایل */
.rkgrp.d0 > summary.rkgtop { font-size: 15px; font-weight: 600; gap: 9px; padding: 6px 10px; margin: 1px 0; }
.rkgrp.d0 > summary.rkgtop .rkgico { width: 22px; height: 22px; }
.rkgrp summary, .rkleaf > button:first-child { font-size: 13px; }
.rksec { font-size: 12px; margin: 8px 8px 3px; }
/* پرسش بستن فرم ذخیره‌نشده */
.rkaskbox { max-width: 420px; border-radius: 4px; text-align: center; }
.rkaskbox h3 { font-size: 15px; color: #142a43; }
.rkaskrow { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin-top: 4px; }
body.dark .rkaskbox h3 { color: var(--ink); }
@media print { .rktabs { display: none !important; } }
@media (max-width: 640px) { .rktabl { max-width: 140px; font-size: 12px; padding: 7px 6px 6px; } .rktabs { padding: 5px 4px 0; } }
@media (max-width: 640px) { .rkcrumb { display: none; } .rktools { margin-inline-start: auto; } }
