/* ══════════════════════════════════════════════════════════════════
   نمای تازهٔ راک فرم (۱۴۰۵/۰۷/۱۱) — طرح: docs/mockups/ux-v3-mockup.html

   قاعدهٔ اصلی این فایل: «همهٔ» قواعد زیرِ :root[data-ui=new] هستند. تا
   کاربر خودش نمای تازه را روشن نکرده، این فایل هیچ اثری ندارد و ظاهر قبلی
   پیکسل‌به‌پیکسل همان می‌ماند (tests/ui-new-css.test.js همین را می‌سنجد).
   منطق صفحه‌ها، دیتابیس و API دست نمی‌خورند؛ فقط ظاهر و چیدمان.
   رنگ‌ها همان توکن‌های styles.css است؛ تازه فقط فونت وب و on-accent.
   ══════════════════════════════════════════════════════════════════ */

@font-face{font-family:"Vazirmatn RF";src:url("fonts/vazirmatn-var.woff2") format("woff2");
  font-weight:100 900;font-display:swap}

:root[data-ui=new]{
  --f-ui:"Vazirmatn RF","Vazirmatn","IRANSansX",Tahoma,"Segoe UI",sans-serif;
  --on-accent:#FFFFFF;--accent-ink:#17603A;--surface-3:#ECE7DF;
  --nu-rail:240px;--nu-top:58px;--nu-bnav:64px;
  --nu-r:8px;--nu-r-lg:12px;
  --nu-pop:0 2px 6px rgba(28,26,23,.08),0 14px 36px rgba(28,26,23,.14);
}
@media (prefers-color-scheme:dark){:root[data-ui=new]{
  --on-accent:#0E1A13;--accent-ink:#7FD3A6;--surface-3:#2F2B27;
  --nu-pop:0 2px 8px rgba(0,0,0,.5),0 16px 40px rgba(0,0,0,.45)}}
:root[data-ui=new][data-theme="dark"]{
  --on-accent:#0E1A13;--accent-ink:#7FD3A6;--surface-3:#2F2B27;
  --nu-pop:0 2px 8px rgba(0,0,0,.5),0 16px 40px rgba(0,0,0,.45)}
:root[data-ui=new][data-theme="light"]{
  --on-accent:#FFFFFF;--accent-ink:#17603A;--surface-3:#ECE7DF;
  --nu-pop:0 2px 6px rgba(28,26,23,.08),0 14px 36px rgba(28,26,23,.14)}

:root[data-ui=new] body{font-size:14px;line-height:1.75}

/* نوار اسکرول: صفحه باریک و کم‌رنگ؛ بخش‌های داخلی (منو، جدول‌ها، پنجره‌ها) فقط
   وقتی نشانگر رویشان است (گزارش کاربر ۱۴۰۵/۰۷/۱۳: خاکستریِ پررنگ تو ذوق می‌زد) */
:root[data-ui=new]{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--ink-3) 40%,transparent) transparent}
:root[data-ui=new] body *{scrollbar-width:thin;scrollbar-color:transparent transparent}
:root[data-ui=new] body *:hover{scrollbar-color:color-mix(in srgb,var(--ink-3) 45%,transparent) transparent}
:root[data-ui=new] ::-webkit-scrollbar{width:8px;height:8px}
:root[data-ui=new] ::-webkit-scrollbar-track{background:transparent}
:root[data-ui=new] ::-webkit-scrollbar-thumb{background:transparent;border-radius:8px}
:root[data-ui=new] :hover::-webkit-scrollbar-thumb,:root[data-ui=new]::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--ink-3) 40%,transparent)}
:root[data-ui=new] :focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ═════════ پوسته ═════════ */
:root[data-ui=new] #header{position:sticky;top:0;z-index:60}
:root[data-ui=new] .nu-rail{position:fixed;inset-block:0;inset-inline-start:0;width:var(--nu-rail);z-index:70;
  background:var(--surface);border-inline-end:1px solid var(--rule);display:flex;flex-direction:column}
:root[data-ui=new] .nu-brand{height:var(--nu-top);display:flex;align-items:center;gap:10px;padding:0 16px;
  border-bottom:1px solid var(--rule);text-decoration:none;color:var(--ink);flex-shrink:0}
:root[data-ui=new] .nu-mark{width:32px;height:32px;border-radius:8px;background:var(--accent);color:var(--on-accent);
  display:grid;place-items:center;font-weight:800;font-size:13px;flex-shrink:0}
:root[data-ui=new] .nu-logo{height:30px;max-width:64px;object-fit:contain;border-radius:4px;flex-shrink:0}
:root[data-ui=new] .nu-brand b{display:block;font-size:14.5px;font-weight:800;line-height:1.25}
:root[data-ui=new] .nu-brand small{display:block;font-size:11px;color:var(--ink-3);line-height:1.4}
:root[data-ui=new] .nu-start{margin:12px 12px 2px;display:flex;align-items:center;justify-content:center;gap:8px;
  min-height:42px;border:1px solid var(--accent);border-radius:var(--nu-r);color:var(--accent-ink);font-weight:700;
  font-size:13.5px;text-decoration:none;background:var(--surface);transition:background .15s}
:root[data-ui=new] .nu-start:hover{background:var(--accent-soft)}
:root[data-ui=new] .nu-nav{flex:1;overflow-y:auto;padding:6px 10px 14px}
:root[data-ui=new] .nu-grp{font-size:11.5px;font-weight:700;color:var(--ink-3);margin:14px 10px 4px}
:root[data-ui=new] .nu-item{position:relative;display:flex;align-items:center;gap:10px;min-height:40px;padding:0 10px;
  border-radius:var(--nu-r);color:var(--ink-2);text-decoration:none;font-weight:600;font-size:13.5px}
:root[data-ui=new] .nu-item svg{width:18px;height:18px;flex-shrink:0;opacity:.85}
:root[data-ui=new] .nu-item:hover{background:var(--surface-2);color:var(--ink)}
:root[data-ui=new] .nu-item.active{background:var(--accent-soft);color:var(--accent-ink);font-weight:800}
:root[data-ui=new] .nu-item.active::before{content:"";position:absolute;inset-inline-start:-10px;top:9px;bottom:9px;
  width:3px;border-radius:0 3px 3px 0;background:var(--accent)}
:root[data-ui=new] .nu-badge{margin-inline-start:auto;min-width:20px;height:20px;padding:0 6px;border-radius:10px;
  background:var(--accent);color:var(--on-accent);font-size:11px;font-weight:800;display:inline-grid;place-items:center}
:root[data-ui=new] .nu-rail-foot{border-top:1px solid var(--rule);padding:8px 10px}
:root[data-ui=new] .nu-scrim{position:fixed;inset:0;background:rgba(20,18,15,.42);z-index:65}

:root[data-ui=new] .nu-top{height:var(--nu-top);display:flex;align-items:center;gap:8px;padding:0 20px;
  background:var(--surface);border-bottom:1px solid var(--rule)}
:root[data-ui=new] .nu-top .spacer{flex:1}
:root[data-ui=new] .nu-ib{width:40px;height:40px;border-radius:var(--nu-r);border:0;background:transparent;color:var(--ink-2);
  display:inline-grid;place-items:center;cursor:pointer;position:relative;flex-shrink:0}
:root[data-ui=new] .nu-ib:hover{background:var(--surface-2);color:var(--ink)}
:root[data-ui=new] .nu-ib svg{width:19px;height:19px}
:root[data-ui=new] .nu-burger{display:none}
:root[data-ui=new] .nu-collapse{display:none}
@media (min-width:1200px){:root[data-ui=new] .nu-collapse{display:inline-grid}}
:root[data-ui=new] .nu-collapse[aria-pressed="true"]{color:var(--accent-ink)}

/* ردیفِ مورد فعال با فلشِ بازوبستهٔ بخش‌های صفحه */
:root[data-ui=new] .nu-item-row{position:relative}
:root[data-ui=new] .nu-item-row > .nu-item{padding-inline-end:42px}
:root[data-ui=new] .nu-sub-toggle{position:absolute;inset-inline-end:4px;top:50%;transform:translateY(-50%);width:32px;height:32px;
  border:0;border-radius:6px;background:transparent;color:var(--ink-3);display:grid;place-items:center;cursor:pointer}
:root[data-ui=new] .nu-sub-toggle:hover{background:var(--surface-3);color:var(--ink)}
:root[data-ui=new] .nu-sub-toggle svg{width:12px;height:12px;transition:transform .2s ease}
:root[data-ui=new] .nu-sub-toggle[aria-expanded="false"] svg{transform:rotate(90deg)}
:root[data-ui=new] .nu-subnav[hidden]{display:none}

/* منوی جمع‌شده روی دسکتاپ: فقط آیکون‌ها؛ برچسب‌ها با نگه داشتن نشانگر */
@media (min-width:1200px){
  :root[data-ui=new]{--nu-rail-open:240px}
  :root[data-ui=new][data-rail=collapsed]{--nu-rail:76px}
  :root[data-ui=new] body.nu-has-shell{transition:padding-inline-start .2s ease}
  :root[data-ui=new] .nu-rail{transition:width .2s ease}
  :root[data-ui=new][data-rail=collapsed] .nu-brand{justify-content:center;padding:0}
  :root[data-ui=new][data-rail=collapsed] .nu-brand > span{display:none}
  :root[data-ui=new][data-rail=collapsed] .nu-start{width:48px;height:44px;min-height:44px;margin:12px auto 2px;padding:0}
  :root[data-ui=new][data-rail=collapsed] .nu-start span{display:none}
  :root[data-ui=new][data-rail=collapsed] .nu-nav{padding:6px 10px 14px}
  :root[data-ui=new][data-rail=collapsed] .nu-grp{font-size:0;height:1px;background:var(--rule);margin:10px 6px}
  :root[data-ui=new][data-rail=collapsed] .nu-item{justify-content:center;padding:0;min-height:44px}
  :root[data-ui=new][data-rail=collapsed] .nu-item svg{width:20px;height:20px}
  :root[data-ui=new][data-rail=collapsed] .nu-item > span:not(.nu-badge){display:none}
  :root[data-ui=new][data-rail=collapsed] .nu-item .nu-badge{position:absolute;top:3px;left:6px;margin:0;min-width:17px;height:17px;font-size:10px;padding:0 4px}
  :root[data-ui=new][data-rail=collapsed] .nu-item-row > .nu-item{padding-inline-end:0}
  :root[data-ui=new][data-rail=collapsed] .nu-sub-toggle,:root[data-ui=new][data-rail=collapsed] .nu-subnav{display:none}
  :root[data-ui=new][data-rail=collapsed] .nu-rail-foot{padding:8px 10px}
}
:root[data-ui=new] .nu-top-brand{display:none;align-items:center;gap:8px;font-weight:800;font-size:14.5px;color:var(--ink);text-decoration:none}
:root[data-ui=new] .nu-top-brand .nu-mark{width:28px;height:28px;font-size:11.5px;border-radius:7px}
:root[data-ui=new] .nu-search{display:flex;align-items:center;gap:9px;height:40px;width:min(380px,100%);padding:0 12px;
  border:1px solid var(--rule);border-radius:var(--nu-r);background:var(--surface-2);color:var(--ink-3);
  font-family:var(--f-ui);font-size:13px;cursor:text;text-align:start}
:root[data-ui=new] .nu-search:hover{border-color:var(--rule-2)}
:root[data-ui=new] .nu-search span{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
:root[data-ui=new] .nu-search kbd,:root[data-ui=new] .cmdk-esc{font:700 10.5px/1 var(--f-ui);border:1px solid var(--rule-2);
  border-bottom-width:2px;border-radius:4px;padding:3px 5px;color:var(--ink-3);background:var(--surface);direction:ltr}
:root[data-ui=new] .nu-top .bell-cnt{top:3px;inset-inline-start:3px;color:var(--on-accent);border:2px solid var(--surface)}
:root[data-ui=new] .nu-user{padding:4px 8px 4px 6px;min-height:42px;border-radius:var(--nu-r);color:var(--ink)}
:root[data-ui=new] .nu-user .avatar-sm{width:32px;height:32px}
:root[data-ui=new] .nu-who{display:grid;text-align:start;line-height:1.3}
:root[data-ui=new] .nu-who b{font-size:13px;color:var(--ink)}
:root[data-ui=new] .nu-who small{font-size:11px;color:var(--ink-3);font-weight:500}
:root[data-ui=new] .bell-drop,:root[data-ui=new] .user-drop{border-radius:var(--nu-r-lg);box-shadow:var(--nu-pop);border:1px solid var(--rule)}
:root[data-ui=new] .nu-user-drop{min-width:270px;padding:6px}
:root[data-ui=new] .nu-ud-head{display:flex;gap:10px;align-items:center;padding:8px 10px 10px;border-bottom:1px solid var(--rule);margin-bottom:6px}
:root[data-ui=new] .nu-ud-head .avatar-sm{width:40px;height:40px}
:root[data-ui=new] .nu-ud-head span{display:grid;line-height:1.4}
:root[data-ui=new] .nu-ud-head small{color:var(--ink-3);font-size:12px}
:root[data-ui=new] .nu-user-drop .user-item{border-radius:7px;min-height:40px;border-top:0;color:var(--ink-2);font-size:13.5px}
:root[data-ui=new] .nu-user-drop .user-item.nu-danger{color:var(--bad)}
:root[data-ui=new] .nu-sep{height:1px;background:var(--rule);margin:6px 4px}
:root[data-ui=new] .nu-vswitch{margin:2px 2px 6px;padding:10px;border-radius:var(--nu-r);background:var(--surface-2);display:grid;gap:7px}
:root[data-ui=new] .nu-vs-l{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--ink-3);font-weight:600}
:root[data-ui=new] .nu-seg{display:flex;gap:2px;padding:2px;border-radius:var(--nu-r);background:var(--surface-3)}
:root[data-ui=new] .nu-seg button{flex:1;border:0;background:transparent;border-radius:6px;min-height:34px;font-family:var(--f-ui);
  font-size:12.5px;font-weight:700;color:var(--ink-2);cursor:pointer}
:root[data-ui=new] .nu-seg button[aria-pressed="true"]{background:var(--surface);color:var(--accent-ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}
:root[data-ui=new] .nu-seg button:disabled{cursor:default}

:root[data-ui=new] .nu-bnav{display:none}

@media (min-width:1200px){
  :root[data-ui=new] body.nu-has-shell{padding-inline-start:var(--nu-rail)}
  :root[data-ui=new] body.nu-has-shell #toast-host{inset-inline-start:calc(var(--nu-rail) + 18px)}
  :root[data-ui=new] .nu-scrim{display:none}
}
@media (max-width:1199px){
  :root[data-ui=new] .nu-rail{transform:translateX(105%);transition:transform .22s cubic-bezier(.2,.7,.2,1);box-shadow:var(--nu-pop);width:min(300px,86vw)}
  :root[data-ui=new] .nu-rail.open{transform:none}
  :root[data-ui=new] .nu-burger{display:inline-grid}
  :root[data-ui=new] .nu-top-brand{display:flex}
  :root[data-ui=new] .nu-top{padding:0 10px}
}
@media (max-width:760px){
  :root[data-ui=new] .nu-search{width:40px;padding:0;justify-content:center;background:transparent;border-color:transparent}
  :root[data-ui=new] .nu-search span,:root[data-ui=new] .nu-search kbd,:root[data-ui=new] .nu-who,
  :root[data-ui=new] .nu-user .chev,:root[data-ui=new] .nu-top .bell-wrap{display:none}
  :root[data-ui=new] .nu-bnav{display:flex;position:fixed;inset-inline:0;bottom:0;z-index:60;height:calc(var(--nu-bnav) + env(safe-area-inset-bottom,0px));
    padding:4px 4px env(safe-area-inset-bottom,0px);background:var(--surface);border-top:1px solid var(--rule);
    justify-content:space-around;align-items:center}
  :root[data-ui=new] body.nu-has-shell{padding-bottom:calc(var(--nu-bnav) + env(safe-area-inset-bottom,0px) + 8px)}
  :root[data-ui=new] .nu-bn{position:relative;display:grid;justify-items:center;gap:1px;min-width:60px;min-height:52px;padding-top:6px;
    border:0;background:transparent;color:var(--ink-3);font-family:var(--f-ui);font-size:11px;font-weight:700;text-decoration:none;cursor:pointer}
  :root[data-ui=new] .nu-bn svg{width:21px;height:21px}
  :root[data-ui=new] .nu-bn.active{color:var(--accent-ink)}
  :root[data-ui=new] .nu-bn .nu-badge{position:absolute;top:0;inset-inline-start:calc(50% + 2px);margin:0;height:17px;min-width:17px;font-size:10px;padding:0 4px}
  :root[data-ui=new] .nu-fab{width:54px;min-width:54px;height:54px;min-height:54px;padding:0;border-radius:50%;place-items:center;
    background:var(--accent);color:var(--on-accent);margin-top:-22px;box-shadow:var(--nu-pop)}
  :root[data-ui=new] .nu-fab svg{width:24px;height:24px}
  :root[data-ui=new] #toast-host{bottom:calc(var(--nu-bnav) + 14px)}
}

/* ═════════ صفحه و اجزای مشترک ═════════ */
:root[data-ui=new] .page{max-width:1180px;padding:24px 28px 56px;animation:none}
:root[data-ui=new] .page h1{font-size:21px;font-weight:800;line-height:1.45;margin:0 0 4px;text-wrap:balance}
:root[data-ui=new] .page .page-sub{font-size:13.5px;color:var(--ink-2);margin:0 0 20px;max-width:72ch}
:root[data-ui=new] .section-h{font-size:15px;margin:28px 0 12px}
:root[data-ui=new] .breadcrumb{font-size:13px;gap:6px;margin-bottom:12px}
:root[data-ui=new] .breadcrumb a{color:var(--ink-3)}
:root[data-ui=new] .breadcrumb a:hover{color:var(--accent-ink)}

:root[data-ui=new] .btn{min-height:38px;padding:0 14px;border-radius:var(--nu-r);font-family:var(--f-ui);font-size:13.5px;
  font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:7px;line-height:1.4;
  transition:background .15s,border-color .15s,transform .1s}
:root[data-ui=new] .btn:active:not(:disabled){transform:scale(.98)}
:root[data-ui=new] a.btn{text-decoration:none}
:root[data-ui=new] .btn{white-space:nowrap}
:root[data-ui=new] .btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
:root[data-ui=new] .btn.primary:hover{filter:none;background:var(--accent-ink);border-color:var(--accent-ink)}
:root[data-ui=new] .btn.reject{background:transparent;border-color:var(--bad);color:var(--bad)}
:root[data-ui=new] .btn.reject:hover{background:var(--bad-soft);filter:none}
:root[data-ui=new] .btn:disabled{opacity:.45;cursor:not-allowed}
:root[data-ui=new] td .btn.view,:root[data-ui=new] td .btn{min-height:34px;font-size:12.5px;padding:0 12px}
:root[data-ui=new] .icon-btn{width:40px;height:40px;border-radius:var(--nu-r)}

:root[data-ui=new] .card{border-radius:var(--nu-r-lg)}
:root[data-ui=new] .tablewrap{border-radius:var(--nu-r-lg)}
:root[data-ui=new] table.data{font-size:13.5px}
:root[data-ui=new] table.data th{font-size:12px;font-weight:700;color:var(--ink-3);padding:10px 14px;letter-spacing:0}
:root[data-ui=new] table.data td{padding:12px 14px}
:root[data-ui=new][data-density="compact"] table.data td{padding:6px 12px}
:root[data-ui=new] table.data tbody tr{animation:none}
:root[data-ui=new] table.data tbody tr:hover{box-shadow:none}
:root[data-ui=new] .numchip{direction:ltr;unicode-bidi:isolate;font-variant-numeric:tabular-nums}

/* وضعیت: نقطهٔ رنگی + متن (نه فقط رنگ) */
:root[data-ui=new] .badge{font-size:12px;padding:3px 10px 3px 9px;border-radius:20px;font-weight:700}

/* ورودی‌ها */
:root[data-ui=new] .fieldrow label{font-size:13px;font-weight:700;color:var(--ink-2);margin-bottom:6px}
:root[data-ui=new] .fieldrow input,:root[data-ui=new] .fieldrow select,:root[data-ui=new] .fieldrow textarea,
:root[data-ui=new] .confirm-field input,:root[data-ui=new] .confirm-field select,:root[data-ui=new] .confirm-field textarea{
  min-height:40px;border-radius:var(--nu-r);padding:8px 12px;font-size:14px;font-family:var(--f-ui)}
:root[data-ui=new] .fieldrow input:focus,:root[data-ui=new] .fieldrow select:focus,:root[data-ui=new] .fieldrow textarea:focus,
:root[data-ui=new] .confirm-field input:focus,:root[data-ui=new] .confirm-field select:focus,:root[data-ui=new] .confirm-field textarea:focus{
  outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
:root[data-ui=new] .listbar{gap:8px;margin:14px 0 12px}
:root[data-ui=new] .search-wrap input[type=search],:root[data-ui=new] .listbar>input[type=search]{min-height:40px;border-radius:var(--nu-r);font-size:13.5px}
:root[data-ui=new] .listbar select{min-height:40px;border-radius:var(--nu-r);font-size:13.5px;padding:0 10px}
@media (max-width:760px){
  :root[data-ui=new] .listbar select{flex:1 1 calc(50% - 8px);min-width:0}
  :root[data-ui=new] .listbar .search-wrap{flex:1 1 100%;max-width:none}
}

/* زبانه‌ها */
:root[data-ui=new] .boxtabs{gap:2px;margin-bottom:4px}
:root[data-ui=new] .boxtab{min-height:44px;font-size:13.5px;padding:0 14px}
:root[data-ui=new] .boxtab .cnt{color:var(--on-accent);font-size:11px}

/* خالی / خطا / بارگذاری */
:root[data-ui=new] .empty{padding:48px 20px}
:root[data-ui=new] .empty b{font-size:15px;color:var(--ink);margin-bottom:6px}
:root[data-ui=new] .empty p{font-size:13.5px;color:var(--ink-2);max-width:48ch;margin-inline:auto}
:root[data-ui=new] .errbanner{border-radius:var(--nu-r-lg);padding:14px 16px;gap:12px;font-size:13.5px}
:root[data-ui=new] .skel-row{height:52px}

/* فیلترهای فعال */
:root[data-ui=new] .filter-chip{border-radius:20px;min-height:30px;font-size:12.5px}

/* کشوهای بازشونده */
:root[data-ui=new] .bell-drop,:root[data-ui=new] .start-drop{border-radius:var(--nu-r-lg)}

/* ── پنجره‌ها (ویرایش/افزودن): وسط صفحه، دکمه‌ها همیشه پایینِ پنجره ──
   (گزارش کاربر ۱۴۰۵/۰۷/۱۳: کشوی سمت چپ برای فرم‌های کوتاه دور از چشم بود.)
   روی موبایل از پایین بالا می‌آید. */
:root[data-ui=new] .modal-back{align-items:center;justify-content:center;padding:24px;background:rgba(20,18,15,.45)}
:root[data-ui=new] .modal{width:min(620px,100%);max-width:min(620px,100%)!important;max-height:calc(100vh - 48px);height:auto;margin:0;border:0;
  border-radius:16px;box-shadow:var(--nu-pop);overflow-y:auto;padding:22px 24px 0;animation:nuPop .18s cubic-bezier(.2,.7,.2,1)}
:root[data-ui=new] .modal h3{font-size:17px;font-weight:800;margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid var(--rule)}
:root[data-ui=new] .modal > div:last-child:has(.btn.primary),:root[data-ui=new] .modal > form > div:last-child:has(.btn.primary){
  position:sticky;bottom:0;z-index:2;background:var(--surface);padding:12px 0 18px;margin-top:8px;border-top:1px solid var(--rule)}
:root[data-ui=new] .modal > :last-child{margin-bottom:0}
@keyframes nuPop{from{transform:translateY(8px) scale(.98);opacity:0}to{transform:none;opacity:1}}
@keyframes nuDrawer{from{transform:translateX(-24px);opacity:.4}to{transform:none;opacity:1}}
:root[data-ui=new] .confirm-dlg{border-radius:14px;box-shadow:var(--nu-pop)}
:root[data-ui=new] .confirm-dlg form{padding:22px 24px 18px}
:root[data-ui=new] .confirm-title{font-size:16px}
:root[data-ui=new] .confirm-msg{font-size:13.5px;color:var(--ink-2)}
:root[data-ui=new] .toast{border-radius:10px;padding:11px 16px;font-size:13.5px;box-shadow:var(--nu-pop)}

/* پالت فرمان */
:root[data-ui=new] .cmdk-box{border-radius:14px;box-shadow:var(--nu-pop)}
:root[data-ui=new] .cmdk-input-row input{font-size:15px;font-family:var(--f-ui)}
:root[data-ui=new] .cmdk-item{min-height:42px;border-radius:8px}

/* ═════════ کارتابل ═════════ */
:root[data-ui=new] .status-strip{margin:-6px 0 16px;gap:8px}
:root[data-ui=new] .status-strip span{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;
  border-radius:var(--nu-r);background:var(--surface);border:1px solid var(--rule);font-size:13px;font-weight:700;color:var(--ink-2)}
:root[data-ui=new] .status-strip .ss-turn{border-color:var(--rule);color:var(--ink);font-size:13px}
:root[data-ui=new] .status-strip .ss-bad{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 35%,var(--rule))}
:root[data-ui=new] .status-strip .ss-wait{color:var(--wait);border-color:color-mix(in srgb,var(--wait) 35%,var(--rule))}
:root[data-ui=new] .status-strip [data-nu-sla]{cursor:pointer}
:root[data-ui=new] .status-strip [data-nu-sla][aria-pressed="true"]{box-shadow:inset 0 0 0 1.5px currentColor}
:root[data-ui=new] .nu-head{display:flex;align-items:flex-end;gap:12px 16px;flex-wrap:wrap;margin-bottom:16px}
:root[data-ui=new] .nu-head>.nu-head-t{flex:1;min-width:240px}
:root[data-ui=new] .nu-head>.nu-head-t h1{margin:0}
:root[data-ui=new] .nu-head>.nu-head-t .page-sub{margin:4px 0 0}
:root[data-ui=new] .nu-head .start-wrap{margin:0!important}
:root[data-ui=new] .start-cta{min-height:42px;padding:0 18px;border-radius:var(--nu-r);font-size:14px}
:root[data-ui=new] .sv-block{border-inline-start:3px solid var(--slate);border-radius:var(--nu-r-lg)}
:root[data-ui=new] tr.nu-grp td{background:var(--surface-2);font-size:12px;font-weight:800;color:var(--ink-2);padding:7px 14px}
:root[data-ui=new] tr.nu-grp.bad td{color:var(--bad)}
:root[data-ui=new] tr.nu-grp.wait td{color:var(--wait)}
:root[data-ui=new] .nu-mroute{display:inline-flex;gap:3px;align-items:center;margin-top:5px}
:root[data-ui=new] .nu-mroute i{width:14px;height:4px;border-radius:2px;background:var(--rule-2)}
:root[data-ui=new] .nu-mroute i.d{background:var(--ok)}
:root[data-ui=new] .nu-mroute i.n{width:20px;background:var(--wait)}
:root[data-ui=new] .nu-stage-sub{display:block;font-size:11.5px;color:var(--ink-3);margin-top:2px}

/* «شروع فرم جدید»: کشوی کناری تمام‌قد */
/* «شروع فرم جدید»: پنجرهٔ وسط صفحه (گزارش کاربر ۱۴۰۵/۰۷/۱۳: کشوی کناری جالب نبود)؛
   بدون transform تا clampDrop قبلی رویش اثری نگذارد. روی موبایل از پایین می‌آید. */
:root[data-ui=new] .start-wrap .start-drop{position:fixed;inset:0;margin:auto;width:min(720px,calc(100vw - 32px));
  height:min(700px,calc(100vh - 48px));min-width:0;max-width:none;max-height:none;border-radius:16px;z-index:90;
  transform:none!important;animation:nuPop .18s cubic-bezier(.2,.7,.2,1);box-shadow:var(--nu-pop),0 0 0 100vmax rgba(20,18,15,.42)}
@media (min-width:761px){
  :root[data-ui=new] .start-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;align-content:start}
  :root[data-ui=new] .start-list .start-group{grid-column:1/-1}
  :root[data-ui=new] .start-list .start-item{margin-bottom:0}
  :root[data-ui=new] .start-list > .bell-empty{grid-column:1/-1}
}
:root[data-ui=new] .start-search{padding:16px 18px;border-bottom:1px solid var(--rule)}
:root[data-ui=new] .start-search input{min-height:44px;border-radius:var(--nu-r);font-size:15px}
:root[data-ui=new] .start-list{padding:6px 12px 20px}
:root[data-ui=new] .start-group{font-size:12px;font-weight:800;color:var(--ink-3);padding:14px 8px 6px}
:root[data-ui=new] .start-item{border:1px solid var(--rule);border-radius:var(--nu-r);margin-bottom:6px;padding:10px 12px;min-height:52px}
:root[data-ui=new] .start-item:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}
:root[data-ui=new] .start-item .t{font-size:14px}
:root[data-ui=new] .start-item .why,:root[data-ui=new] .start-item .start-chain{font-size:12px}
:root[data-ui=new] .start-item .code-chip{font-size:11px;padding:1px 6px;direction:ltr}
:root[data-ui=new] .nu-drawer-h{display:flex;align-items:center;gap:10px;padding:14px 18px 0}
:root[data-ui=new] .nu-drawer-h b{flex:1;font-size:17px}

/* ═════════ پرونده ═════════ */
:root[data-ui=new] .nu-routecard{padding:0;margin-bottom:14px;overflow:hidden}
:root[data-ui=new] .nu-routecard-h{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--rule);flex-wrap:wrap}
:root[data-ui=new] .nu-routecard-h h2{flex:1;margin:0;font-size:14.5px}
:root[data-ui=new] .nu-routecard-b{padding:16px 12px 14px;overflow-x:auto}
:root[data-ui=new] .nu-routecard .flow-toggle{margin:0}
/* همان استپرِ قبلی، افقی: «مسیر امضا» */
:root[data-ui=new] .nu-routecard .stepper{display:flex;flex-direction:row;align-items:flex-start;min-width:min-content}
:root[data-ui=new] .nu-routecard .flow-tab{white-space:nowrap}
:root[data-ui=new] .nu-routecard .step{flex:1 0 128px;min-width:128px;display:flex;flex-direction:column;align-items:center;text-align:center;
  padding:0 6px;position:relative;margin:0}
:root[data-ui=new] .nu-routecard .step-rail{width:100%;display:flex;justify-content:center;position:relative;height:36px;flex-direction:row}
:root[data-ui=new] .nu-routecard .step-dot{width:36px;height:36px;font-size:13px;position:relative;z-index:1;margin:0}
:root[data-ui=new] .nu-routecard .step-line{position:absolute;top:17px;height:2px;width:auto;transform:none;
  inset-inline-start:calc(50% + 18px);inset-inline-end:calc(-50% + 18px);bottom:auto;margin:0}
:root[data-ui=new] .nu-routecard .step:last-child .step-line{display:none}
:root[data-ui=new] .nu-routecard .step-body{padding:6px 0 0;min-width:0}
:root[data-ui=new] .nu-routecard .step-role{font-size:12.5px;line-height:1.45}
:root[data-ui=new] .nu-routecard .step-note,:root[data-ui=new] .nu-routecard .step-facts{font-size:11.5px}
:root[data-ui=new] .nu-routecard .flowmap-card{border:0;padding:0;margin:0;box-shadow:none}
:root[data-ui=new] .nu-casehead{display:flex;align-items:flex-end;gap:10px 16px;flex-wrap:wrap;margin-bottom:12px}
:root[data-ui=new] .nu-casehead .nu-ct{flex:1;min-width:240px}
:root[data-ui=new] .nu-casehead h1{font-size:20px;margin:0;line-height:1.45}
:root[data-ui=new] .nu-casehead .nu-cmeta{font-size:12.5px;color:var(--ink-3);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
:root[data-ui=new] .nu-cview{display:inline-flex;gap:2px;padding:2px;border-radius:var(--nu-r);background:var(--surface-2);border:1px solid var(--rule)}
:root[data-ui=new] .nu-cview button{border:0;background:transparent;border-radius:6px;min-height:36px;padding:0 12px;font-family:var(--f-ui);
  font-size:13px;font-weight:700;color:var(--ink-2);cursor:pointer;display:inline-flex;align-items:center;gap:6px}
:root[data-ui=new] .nu-cview button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.1)}
:root[data-ui=new] .run-grid{gap:18px}
:root[data-ui=new] .nu-main{min-width:0;display:grid;gap:14px;align-content:start}
:root[data-ui=new] .nu-main>[hidden]{display:none!important}
:root[data-ui=new] .stepper-card{top:calc(var(--nu-top) + 14px)}
:root[data-ui=new] .stepper-card{border-radius:var(--nu-r-lg)}
:root[data-ui=new] .paper-wrap{border-radius:var(--nu-r-lg)}
:root[data-ui=new] .paper-toolbar{gap:8px}
:root[data-ui=new] .stage-actions-inner{border-radius:var(--nu-r-lg)}
:root[data-ui=new] .dec-btn{min-height:40px;border-radius:var(--nu-r);font-family:var(--f-ui);font-weight:700}
:root[data-ui=new] .return-banner,:root[data-ui=new] .readonly-strip,:root[data-ui=new] .done-banner,:root[data-ui=new] .rejected-banner{border-radius:var(--nu-r-lg)}
:root[data-ui=new] .comment-box{border-radius:var(--nu-r-lg)}
/* نمای «خلاصه و تصمیم» */
:root[data-ui=new] .nu-sum{display:grid;gap:14px}
:root[data-ui=new] .nu-sum .card{padding:16px 18px}
:root[data-ui=new] .nu-sum h2{font-size:15px;margin:0 0 12px}
:root[data-ui=new] .nu-sum-stage{font-size:12px;font-weight:800;color:var(--ink-3);margin:14px 0 6px;padding-top:12px;border-top:1px dashed var(--rule-2)}
:root[data-ui=new] .nu-sum-stage:first-of-type{border-top:0;padding-top:0;margin-top:0}
:root[data-ui=new] .nu-kv{display:grid;grid-template-columns:minmax(120px,max-content) minmax(0,1fr);gap:8px 18px;margin:0;font-size:14px}
:root[data-ui=new] .nu-kv dt{color:var(--ink-3)}
:root[data-ui=new] .nu-kv dd{margin:0;font-weight:600;min-width:0;overflow-wrap:anywhere}
:root[data-ui=new] .nu-amount{font-size:26px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.3}
:root[data-ui=new] .nu-amount small{font-size:13px;color:var(--ink-3);font-weight:600}
:root[data-ui=new] .nu-decide{border:1px solid var(--wait);box-shadow:0 0 0 3px var(--wait-soft)}
:root[data-ui=new] .nu-decide-btns{display:flex;gap:8px;flex-wrap:wrap}
:root[data-ui=new] .nu-decide-btns .btn{min-height:46px;font-size:14.5px;padding:0 18px}
:root[data-ui=new] .nu-decide-btns .btn.mid{background:var(--turn-soft);border-color:var(--turn);color:var(--turn)}
:root[data-ui=new] .nu-hint{font-size:12.5px;color:var(--ink-3);margin:10px 0 0}

/* ═════════ بقیهٔ صفحه‌ها ═════════ */
:root[data-ui=new] .kpi-tile{border-radius:var(--nu-r-lg)}
:root[data-ui=new] .kpi-tile:hover{transform:none}
:root[data-ui=new] .proj-card{border-radius:var(--nu-r-lg);padding:14px 16px 16px}
:root[data-ui=new] .proj-card-cover{margin:0 -16px 6px}
:root[data-ui=new] .proj-card-name{font-size:15px}
:root[data-ui=new] .chip{border-radius:20px;min-height:32px}
:root[data-ui=new] .sv-card{border-radius:var(--nu-r-lg)}

/* منوی ⋯ ردیف‌ها (کاربران، فرم‌ساز) */
:root[data-ui=new] .nu-rowmenu{display:inline-block;position:relative}
:root[data-ui=new] .nu-more{min-width:34px;padding:0 8px;font-size:16px;letter-spacing:1px}
:root[data-ui=new] .nu-menu{position:fixed;z-index:95;min-width:180px;background:var(--surface);border:1px solid var(--rule);
  border-radius:10px;box-shadow:var(--nu-pop);padding:5px;display:grid;gap:2px}
:root[data-ui=new] .nu-menu[hidden]{display:none}
:root[data-ui=new] .nu-menu .btn{justify-content:flex-start;border:0;background:transparent;min-height:38px;width:100%;font-weight:600;color:var(--ink-2)}
:root[data-ui=new] .nu-menu .btn:hover{background:var(--surface-2);color:var(--ink)}
:root[data-ui=new] .nu-menu .btn.btn-danger{color:var(--bad)}
:root[data-ui=new] .nu-menu .btn.btn-danger:hover{background:var(--bad-soft)}

/* بخش‌های صفحه زیرِ مورد فعالِ منوی کناری؛ روی صفحه‌های پهن نوار بالا پنهان است */
:root[data-ui=new] .nu-subnav{display:grid;gap:1px;margin:2px 0 8px;padding-inline-start:30px;position:relative}
:root[data-ui=new] .nu-subnav::before{content:"";position:absolute;inset-inline-start:19px;top:4px;bottom:4px;width:1px;background:var(--rule-2)}
:root[data-ui=new] .nu-subnav a{display:block;font-size:12.5px;font-weight:600;color:var(--ink-3);text-decoration:none;padding:5px 10px;
  border-radius:6px;line-height:1.5;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
:root[data-ui=new] .nu-subnav a:hover{background:var(--surface-2);color:var(--ink)}
:root[data-ui=new] .nu-subnav a[aria-current]{color:var(--accent-ink);background:var(--accent-soft)}
@media (min-width:1200px){:root[data-ui=new] nav.nu-jump{display:none}}
:root[data-ui=new] .guide-editbar{top:calc(var(--nu-top) + 8px)}

/* نوار پرش به بخش‌ها */
:root[data-ui=new] .nu-jump{max-width:100%;min-width:0;position:sticky;top:var(--nu-top);z-index:20;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;
  padding:8px 0;margin:4px 0 8px;background:var(--ground)}
:root[data-ui=new] .nu-jump::-webkit-scrollbar{display:none}
:root[data-ui=new] .nu-jump a{flex-shrink:0;white-space:nowrap;font-size:12.5px;font-weight:700;color:var(--ink-2);text-decoration:none;
  border:1px solid var(--rule);border-radius:20px;padding:4px 12px;background:var(--surface)}
:root[data-ui=new] .nu-jump a:hover{border-color:var(--accent);color:var(--accent-ink)}
:root[data-ui=new] .section-h,:root[data-ui=new] .card > h2{scroll-margin-top:calc(var(--nu-top) + 56px)}

/* کارت «نمایش» پروفایل */
:root[data-ui=new] .nu-pref-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 0;border-top:1px solid var(--rule)}
:root[data-ui=new] .nu-pref-row>span{flex:1;min-width:120px;font-size:13.5px;font-weight:600;color:var(--ink-2)}
:root[data-ui=new] .nu-pref-row .nu-seg{min-width:min(320px,100%)}

/* پیوندهای داخل جدول */
:root[data-ui=new] table.data td a:not(.btn):not(.projchip){color:var(--accent-ink);text-decoration:none;font-weight:700}
:root[data-ui=new] table.data td a:not(.btn):not(.projchip):hover{text-decoration:underline}
:root[data-ui=new] .proj-card:not(.has-cover){border-top:3px solid var(--slate)}

/* داشبورد پروژه‌ها: فقط پوسته تازه است؛ پهنا و فاصله‌های خودِ داشبورد همان قبلی */
:root[data-ui=new] .dash .dpage{max-width:1240px;padding:18px 24px 60px}

/* ═════════ ورود ═════════ */
:root[data-ui=new] .login-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:0;min-height:100vh;align-items:stretch}
:root[data-ui=new] .nu-login-side{background:var(--slate);color:var(--on-slate);display:grid;align-content:center;gap:14px;padding:56px}
:root[data-ui=new] .nu-login-side strong{font-size:26px;line-height:1.5;max-width:16ch;font-weight:800}
:root[data-ui=new] .nu-login-side > span{opacity:.85;max-width:38ch;font-size:15px}
:root[data-ui=new] .nu-lroute{display:flex;align-items:center;margin-bottom:12px}
:root[data-ui=new] .nu-lroute i{width:22px;height:22px;border-radius:50%;border:2px dashed currentColor;opacity:.7;flex-shrink:0}
:root[data-ui=new] .nu-lroute i.d{background:var(--on-slate);border-style:solid;opacity:1}
:root[data-ui=new] .nu-lroute i.n{border:2px solid var(--wait);background:var(--wait-soft);opacity:1}
:root[data-ui=new] .nu-lroute b{width:46px;height:2px;background:var(--on-slate)}
:root[data-ui=new] .nu-lroute b.o{opacity:.4}

/* ── مسیرِ «ساختمانِ در حال ساخت» (۱۴۰۵/۰۷/۱۴، public/route-building.js) ──
   صفحهٔ ورود و کارتابل؛ ادمین از «تنظیمات» روشن/خاموشش می‌کند. ساختمان‌ها روی
   زمینهٔ تیرهٔ slate طراحی شده‌اند (همان ستون ورود). */
:root[data-ui=new] .rb-route{display:flex;align-items:flex-start;min-width:0}
:root[data-ui=new] .rb-step{display:block;width:var(--rb-node,72px);flex-shrink:0}
:root[data-ui=new] .rb-step svg{width:100%;height:auto;display:block;overflow:visible}
:root[data-ui=new] .rb-link{flex:1 1 20px;min-width:8px;max-width:34px;height:2px;border-radius:2px;background:#7D8E9B;
  margin-top:calc(var(--rb-node,72px) * .7 - 1px)}
:root[data-ui=new] .rb-link.done{background:#fff}
:root[data-ui=new] .rb-trolley{animation:rb-trolley var(--rb-cd,6s) ease-in-out infinite}
:root[data-ui=new] .rb-cable{transform-box:fill-box;transform-origin:50% 0;animation:rb-cable var(--rb-cd,6s) ease-in-out infinite}
:root[data-ui=new] .rb-hook{animation:rb-hook var(--rb-cd,6s) ease-in-out infinite}
:root[data-ui=new] .rb-glow{animation:rb-glow 3.2s ease-in-out infinite}
:root[data-ui=new] .rb-bp{animation:rb-bp 4s ease-in-out infinite}
@keyframes rb-trolley{0%,12%{transform:translateX(0)}45%,62%{transform:translateX(-26px)}90%,100%{transform:translateX(0)}}
@keyframes rb-cable{0%,12%{transform:scaleY(1)}30%{transform:scaleY(.45)}45%,52%{transform:scaleY(.45)}62%{transform:scaleY(1.35)}78%,100%{transform:scaleY(1)}}
@keyframes rb-hook{0%,12%{transform:translate(0,0)}30%{transform:translate(0,-12px)}45%,52%{transform:translate(-26px,-12px)}62%{transform:translate(-26px,7.5px)}78%{transform:translate(-26px,0)}90%,100%{transform:translate(0,0)}}
@keyframes rb-glow{0%,100%{opacity:.55}50%{opacity:.95}}
@keyframes rb-bp{0%,100%{opacity:.5}50%{opacity:.8}}
@media (prefers-reduced-motion:reduce){:root[data-ui=new] .rb-trolley,:root[data-ui=new] .rb-cable,:root[data-ui=new] .rb-hook,:root[data-ui=new] .rb-glow,:root[data-ui=new] .rb-bp{animation:none}}
/* صفحهٔ ورود: جای چهار دایرهٔ ساده */
:root[data-ui=new] .nu-login-side .rb-host{--rb-node:92px;margin-bottom:6px;min-width:0}
/* کارتابل: مسیر کوچکِ هر ردیف روی یک قرص تیره */
:root[data-ui=new] .rb-mini{display:inline-block;margin-top:6px;padding:4px 8px 2px;border-radius:9px;background:var(--rb-bg,#344B5C);max-width:100%;overflow:hidden}
:root[data-ui=new] .rb-mini .rb-route{--rb-node:38px}
:root[data-ui=new] .rb-mini .rb-link{max-width:12px;min-width:4px}
:root[data-ui=new] .empty .rb-empty{width:150px;margin:0 auto 6px;padding:8px 14px 2px;border-radius:14px;background:#344B5C}
:root[data-ui=new] .empty .rb-empty svg{width:100%;height:auto;display:block}
/* سبکِ «تازه» (۱۴۰۵/۰۷/۲۵، public/building-scene.js + building-scene.css): اندازه‌ها
   این‌جاست تا پیش از بار شدنِ صحنه چیدمانِ جدول نپرد */
:root[data-ui=new] .bs-mini{display:block;width:64px;min-height:55px;margin-top:6px}
:root[data-ui=new] .empty .bs-empty{position:relative;width:min(300px,86%);aspect-ratio:720/444;margin:0 auto 10px;border-radius:14px;overflow:hidden;background:var(--surface-2)}
:root[data-ui=new] .login-box{align-self:center;justify-self:center;padding:24px 16px}
:root[data-ui=new] .login-card{border:0;background:transparent;box-shadow:none;max-width:380px}
:root[data-ui=new] .login-head{background:transparent;border:0;padding:0 0 20px}
:root[data-ui=new] .login-head h1{font-size:22px}
:root[data-ui=new] .login-head .login-org{font-size:13px}
:root[data-ui=new] .login-body{padding:0}
:root[data-ui=new] .login-body .btn.primary{min-height:46px;font-size:15px}
/* چشمِ رمز سمت راست؛ ورودی رمز dir=ltr است، پس فاصله‌ها فیزیکی‌اند (گزارش کاربر ۱۴۰۵/۰۷/۱۳) */
:root[data-ui=new] .pass-wrap input{padding-left:12px;padding-right:46px}
:root[data-ui=new] .pass-toggle{left:auto;right:4px}
:root[data-ui=new] .theme-btn--float{left:auto;right:16px}
:root[data-ui=new] .nu-caps{font-size:12.5px;color:var(--wait);font-weight:700;margin-top:6px}
@media (max-width:900px){
  :root[data-ui=new] .login-wrap{grid-template-columns:1fr}
  :root[data-ui=new] .nu-login-side{display:none}
}

/* ═════════ موبایل ═════════ */
@media (max-width:760px){
  :root[data-ui=new] .page{padding:16px 16px 32px}
  :root[data-ui=new] .page h1{font-size:18px}
  :root[data-ui=new] .fieldrow input,:root[data-ui=new] .fieldrow select,:root[data-ui=new] .fieldrow textarea,
  :root[data-ui=new] .search-wrap input[type=search],:root[data-ui=new] .listbar select,:root[data-ui=new] .confirm-field input,
  :root[data-ui=new] .confirm-field select,:root[data-ui=new] .confirm-field textarea{font-size:16px}
  :root[data-ui=new] .bottom-nav{display:none}
  :root[data-ui=new] .modal-back{align-items:flex-end;padding:0}
  :root[data-ui=new] .start-wrap .start-drop{inset:auto 0 0 0;margin:0;width:100%;height:88vh;border-radius:16px 16px 0 0}
  :root[data-ui=new] .modal{width:100%;max-height:92vh;border-radius:16px 16px 0 0;padding:18px 16px 0}
  :root[data-ui=new] .nu-head .start-wrap,:root[data-ui=new] .nu-head .start-cta{width:100%}
  :root[data-ui=new] .nu-casehead .nu-cview{width:100%}
  :root[data-ui=new] .nu-casehead .nu-cview button{flex:1;justify-content:center}
  :root[data-ui=new] .nu-routecard .step{flex-basis:96px;min-width:96px}
  :root[data-ui=new] .nu-routecard .step-facts{display:none}
  :root[data-ui=new] .nu-kv{grid-template-columns:1fr;gap:2px}
  :root[data-ui=new] .nu-kv dd{margin-bottom:8px}
  :root[data-ui=new] .nu-decide-btns .btn{flex:1}
}

/* چاپ: پوستهٔ تازه هیچ‌وقت روی کاغذ نمی‌آید */
@media print{
  :root[data-ui=new] body{padding:0!important}
  :root[data-ui=new] .nu-rail,:root[data-ui=new] .nu-top,:root[data-ui=new] .nu-bnav,:root[data-ui=new] .nu-scrim,
  :root[data-ui=new] .nu-routecard,:root[data-ui=new] .nu-casehead,:root[data-ui=new] .nu-sum{display:none!important}
}
@media (prefers-reduced-motion:reduce){
  :root[data-ui=new] .nu-rail,:root[data-ui=new] .modal,:root[data-ui=new] .start-wrap .start-drop,:root[data-ui=new] .btn{transition:none;animation:none}
}

/* ═════════ اصلاحات ظاهری ۱۴۰۵/۰۷/۲۲ — طرح: docs/mockups/escalation-ui-mockup.html ═════════ */
/* رنگ دکمهٔ «شروع فرم جدید» و نوار زبانه‌های کارتابل. این مقدارها همان پیش‌فرضِ
   src/shared/ui-chrome.js هستند (تست هم‌خوانی‌شان را می‌سنجد)؛ ادمین از «تنظیمات ←
   ظاهر سامانه» جدا برای روشن و تیره عوضشان می‌کند و themeCss با html:root… رویشان می‌نشیند. */
:root[data-ui=new]{--nu-start-bg:#D9F2E2;--nu-start-ink:#164125;--nu-start-line:#B2CFBC;
  --nu-tabs-bg:#E8F5EC;--nu-tabs-ink:#1A3C25;--nu-tabs-mut:#587461}
@media (prefers-color-scheme:dark){:root[data-ui=new]:not([data-theme=light]){--nu-start-bg:#2F6B4B;--nu-start-ink:#EAF6EF;
  --nu-start-line:#54876C;--nu-tabs-bg:#2B4A3B;--nu-tabs-ink:#ECF4F0;--nu-tabs-mut:#B2C1BA}}
:root[data-ui=new][data-theme=dark]{--nu-start-bg:#2F6B4B;--nu-start-ink:#EAF6EF;--nu-start-line:#54876C;
  --nu-tabs-bg:#2B4A3B;--nu-tabs-ink:#ECF4F0;--nu-tabs-mut:#B2C1BA}
:root[data-ui=new] .nu-start{background:var(--nu-start-bg);border-color:var(--nu-start-line);color:var(--nu-start-ink)}
:root[data-ui=new] .nu-start:hover{background:color-mix(in srgb,var(--nu-start-bg) 86%,var(--nu-start-ink))}
:root[data-ui=new] .nu-start:focus-visible{outline:2px solid var(--nu-start-ink);outline-offset:2px}
:root[data-ui=new] #boxTabs{background:var(--nu-tabs-bg);border:1px solid color-mix(in srgb,var(--nu-tabs-ink) 14%,transparent);
  border-radius:var(--nu-r-lg);padding:4px;gap:2px;margin-bottom:6px}
:root[data-ui=new] #boxTabs .boxtab{color:var(--nu-tabs-mut);border-radius:calc(var(--nu-r-lg) - 3px);min-height:40px}
:root[data-ui=new] #boxTabs .boxtab:hover{color:var(--nu-tabs-ink)}
:root[data-ui=new] #boxTabs .boxtab::after{display:none}
:root[data-ui=new] #boxTabs .boxtab.active{background:var(--surface);color:var(--accent-ink);box-shadow:0 1px 3px rgba(0,0,0,.14)}

/* زمانِ هر مرحله زیر نوار مسیر پرونده (src/shared/stage-time.js) */
:root[data-ui=new] .step-time{display:block;margin-top:5px;padding-top:4px;border-top:1px dotted var(--rule-2);
  font-size:11px;line-height:1.6;color:var(--ink-2);font-variant-numeric:tabular-nums}
:root[data-ui=new] .step-time svg{width:11px;height:11px;display:inline-block;vertical-align:-1px;margin-inline-end:4px}
:root[data-ui=new] .step.current .step-time{color:var(--accent-ink);font-weight:800}

/* فایل‌های یک فیلد در پروندهٔ قفل‌شده: هر فایل یک کارت شماره‌دار (src/shared/field-files.js).
   روی کاغذِ سند (همیشه روشن)، پس رنگ‌ها ثابت و روشن‌اند، نه توکن‌های پوسته. */
:root[data-ui=new] .doc-files{margin:0 0 10px;font-family:var(--f-ui)}
:root[data-ui=new] .doc-files-h{display:flex;align-items:center;gap:6px 8px;flex-wrap:wrap;margin-bottom:6px}
:root[data-ui=new] .ff-count{font-size:11.5px;color:#5E574F;background:#F1ECE4;border-radius:999px;padding:0 8px;font-weight:600}
:root[data-ui=new] .ff-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}
:root[data-ui=new] .ff-card{display:grid;grid-template-columns:auto 44px minmax(0,1fr);gap:4px 10px;align-items:center;border:1px solid #DDD6CB;
  border-radius:10px;padding:10px;background:#fff;color:#1C1A17;line-height:1.6}
:root[data-ui=new] .ff-no{width:24px;height:24px;border-radius:50%;background:#E6EDF1;color:#2F4858;font-weight:800;font-size:12px;
  display:grid;place-items:center;align-self:start}
:root[data-ui=new] .ff-ic{width:44px;height:44px;border-radius:8px;display:grid;place-items:center;align-content:center;background:#F1EEE9;color:#5E574F}
:root[data-ui=new] .ff-ic svg{width:20px;height:20px}
:root[data-ui=new] .ff-ic small{font-size:9.5px;font-weight:800;line-height:1.2}
:root[data-ui=new] .ff-ic.ff-pdf{background:#F6E5E1;color:#9A3B2C}
:root[data-ui=new] .ff-ic.ff-img{background:#E4EEF6;color:#1F4F7A}
:root[data-ui=new] .ff-meta{min-width:0}
:root[data-ui=new] .ff-meta b{display:block;font-size:13px;overflow-wrap:anywhere}
:root[data-ui=new] .ff-meta small{display:block;font-size:11px;color:#6B635A;min-height:1.6em}
:root[data-ui=new] .ff-acts{grid-column:1/-1;display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap;border-top:1px dashed #DDD6CB;padding-top:8px;margin-top:2px}
:root[data-ui=new] .ff-btn{display:inline-flex;align-items:center;gap:5px;min-height:34px;padding:0 12px;border:1px solid #CFC7BB;border-radius:8px;
  background:#fff;color:#2B2621;font-size:12.5px;font-weight:700;text-decoration:none;cursor:pointer;white-space:nowrap}
:root[data-ui=new] .ff-btn:hover{background:#F4F1EC;border-color:#B9B0A3}
:root[data-ui=new] .ff-btn.ghost{border-color:transparent;background:transparent}
:root[data-ui=new] .ff-btn.ghost:hover{background:#F4F1EC}
:root[data-ui=new] .ff-btn svg{width:15px;height:15px;flex-shrink:0}
:root[data-ui=new] .ff-btn:focus-visible{outline:2px solid #2F4858;outline-offset:2px}
:root[data-ui=new] .ff-zip:not([href]){display:none}
@media (max-width:760px){:root[data-ui=new] .ff-list{grid-template-columns:minmax(0,1fr)}}
@media print{:root[data-ui=new] .ff-acts,:root[data-ui=new] .ff-zip{display:none}}

/* پیش‌نمایشِ فایل («دیدن») */
:root[data-ui=new] .ff-lb{width:min(820px,calc(100vw - 24px));height:min(88vh,900px);max-width:none;max-height:none;padding:0;border:0;
  border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:var(--nu-pop);overflow:hidden}
:root[data-ui=new] .ff-lb[open]{display:flex;flex-direction:column}
:root[data-ui=new] .ff-lb::backdrop{background:rgba(15,13,11,.72)}
:root[data-ui=new] .ff-lb-h,:root[data-ui=new] .ff-lb-f{display:flex;align-items:center;gap:8px;padding:8px 12px;flex-wrap:wrap}
:root[data-ui=new] .ff-lb-h{border-bottom:1px solid var(--rule)}
:root[data-ui=new] .ff-lb-h b{font-size:13.5px;overflow-wrap:anywhere;min-width:0}
:root[data-ui=new] .ff-lb-h .grow{flex:1}
:root[data-ui=new] .ff-lb-h .ff-no{background:var(--slate-soft);color:var(--slate);align-self:center;flex-shrink:0}
:root[data-ui=new] .ff-lb .btn svg{width:15px;height:15px;flex-shrink:0}
:root[data-ui=new] .ff-lb-h .btn{display:inline-flex;align-items:center;gap:5px;text-decoration:none}
:root[data-ui=new] .ff-lb small{color:var(--ink-3);font-size:11.5px}
:root[data-ui=new] .ff-lb-f{border-top:1px solid var(--rule);justify-content:space-between}
:root[data-ui=new] .ff-lb-v{flex:1;min-height:0;overflow:auto;background:var(--surface-2);display:grid;place-items:center;padding:12px}
:root[data-ui=new] .ff-lb-v img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px;background:#fff}
:root[data-ui=new] .ff-lb-v iframe{width:100%;height:100%;border:0;border-radius:6px;background:#fff}
:root[data-ui=new] .ff-lb-v .ff-state{color:var(--ink-2);font-size:13px;text-align:center;max-width:42ch}
:root[data-ui=new] .ff-lb .nu-ib{flex-shrink:0}
@media (max-width:760px){:root[data-ui=new] .ff-lb{width:100vw;height:100dvh;border-radius:0}}

/* تنظیم رنگ دکمهٔ شروع و نوار زبانه‌ها در «ظاهر سامانه» (public/theme-chrome.js) */
:root[data-ui=new] .tc{border-top:1px dashed var(--rule-2);padding-top:12px}
:root[data-ui=new] .tc-h b{display:block;font-size:13px;color:var(--ink)}
:root[data-ui=new] .tc-h small,:root[data-ui=new] .tc-auto small,:root[data-ui=new] .tc-pv-h small{display:block;font-size:11.5px;color:var(--ink-3);font-weight:500;line-height:1.7}
:root[data-ui=new] .tc .tc-auto{display:flex;gap:10px;align-items:flex-start;margin:10px 0;padding:10px 12px;border:1px solid var(--rule);
  border-radius:var(--nu-r);background:var(--surface-2);cursor:pointer;font-weight:500;color:var(--ink)}
:root[data-ui=new] .tc .tc-auto input{width:18px;height:18px;margin:3px 0 0;flex-shrink:0;accent-color:var(--accent)}
:root[data-ui=new] .tc .tc-auto b{font-size:13px}
:root[data-ui=new] .tc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border:0;margin:0;padding:0;min-width:0}
:root[data-ui=new] .tc-grid:disabled .tc-grp{opacity:.6}
:root[data-ui=new] .tc-grp{border:1px solid var(--rule);border-radius:var(--nu-r-lg);padding:8px 12px 4px;min-width:0}
:root[data-ui=new] .tc-grp h4{margin:0 0 2px;font-size:13px}
:root[data-ui=new] .tc-pick{padding:8px 0;border-top:1px dashed var(--rule)}
:root[data-ui=new] .tc-grp h4+.tc-pick{border-top:0}
:root[data-ui=new] .tc .tc-l{font-size:12.5px;margin-bottom:4px}
:root[data-ui=new] .tc-sws{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}
:root[data-ui=new] .tc-sw{width:26px;height:26px;border-radius:50%;border:1px solid rgba(0,0,0,.2);cursor:pointer;padding:0}
:root[data-ui=new] .tc-sw[aria-pressed="true"]{outline:2px solid var(--accent);outline-offset:2px}
:root[data-ui=new] .tc-sw:disabled{cursor:default}
:root[data-ui=new] .tc-cr{font-size:11.5px;color:var(--ink-3);margin-top:6px;display:flex;gap:4px 6px;align-items:center;flex-wrap:wrap;line-height:1.7}
:root[data-ui=new] .tc-smp{border:1px solid;border-radius:6px;padding:0 8px;font-weight:800}
:root[data-ui=new] .tc-badge{border-radius:999px;padding:0 8px;font-weight:800;font-size:11px}
:root[data-ui=new] .tc-badge.ok{background:var(--ok-soft);color:var(--ok)}
:root[data-ui=new] .tc-badge.wait{background:var(--wait-soft);color:var(--wait)}
:root[data-ui=new] .tc-badge.bad{background:var(--bad-soft);color:var(--bad)}
:root[data-ui=new] .tc-err{font-size:11.5px;color:var(--bad);font-weight:700}
:root[data-ui=new] .tc-err:empty{display:none}
:root[data-ui=new] .tc .th-color input[aria-invalid=true]{border-color:var(--bad)}
:root[data-ui=new] .tc-pv-h{margin:12px 0 6px}
:root[data-ui=new] .tc-pv-h b{font-size:12.5px}
:root[data-ui=new] .tc-pv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
:root[data-ui=new] .tc-mini{border:1px solid var(--r);border-radius:10px;overflow:hidden;background:var(--g);color:var(--i);font-size:11.5px}
:root[data-ui=new] .tc-mini-h{display:flex;justify-content:space-between;padding:3px 10px;font-weight:800;color:var(--i3);border-bottom:1px solid var(--r);background:var(--s)}
:root[data-ui=new] .tc-mini-b{display:grid;gap:8px;padding:10px}
:root[data-ui=new] .tc-start{min-height:32px;border:1px solid var(--sl);border-radius:7px;background:var(--sb);color:var(--si);font-weight:700;
  display:flex;align-items:center;justify-content:center}
:root[data-ui=new] .tc-tabs{display:flex;gap:2px;padding:3px;border-radius:9px;background:var(--tb);border:1px solid color-mix(in srgb,var(--ti) 14%,transparent);overflow:hidden}
:root[data-ui=new] .tc-tabs span{flex:1 1 auto;padding:4px 6px;border-radius:7px;color:var(--tm);font-weight:700;white-space:nowrap;text-align:center;font-size:10.5px}
:root[data-ui=new] .tc-tabs span.on{background:var(--s);color:var(--ai);box-shadow:0 1px 3px rgba(0,0,0,.14)}
:root[data-ui=new] .tc-tabs i{font-style:normal;background:var(--a);color:var(--oa);border-radius:99px;padding:0 5px;margin-inline-start:4px}
:root[data-ui=new] .tc-foot{display:flex;justify-content:flex-start;margin-top:10px}
@media (max-width:600px){:root[data-ui=new] .tc-grid,:root[data-ui=new] .tc-pv{grid-template-columns:minmax(0,1fr)}}
