/* =====================================================================
   theme.css — لایه تکمیلی: تم تاریک/روشن، فلش‌ها، پالت جستجو، اسکلت،
   پورتال‌ها، انتخاب واحد، چاپ و حداقل ارتفاع لمسی ۴۴px
   ===================================================================== */

/* ---------- فونت وزیرمتن (محلی) ---------- */
@font-face{
    font-family:'Vazirmatn';
    src:url('../fonts/vazirmatn.woff2') format('woff2-variations');
    font-weight:100 900;font-style:normal;font-display:swap;
}

/* ---------- تم تاریک ---------- */
[data-theme="dark"]{
    --bg:#0b1220; --card:#111a2c; --text:#e2e8f0; --muted:#8ea0b8;
    --border:#223049; --primary-soft:rgba(99,102,241,.16);
    --success-soft:rgba(16,185,129,.15); --danger-soft:rgba(239,68,68,.15);
    --warning-soft:rgba(245,158,11,.15); --info-soft:rgba(14,165,233,.15);
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 12px 32px -16px rgba(0,0,0,.55);
}
[data-theme="dark"] body{color:var(--text)}
[data-theme="dark"] .table th{background:rgba(148,163,184,.07)}
[data-theme="dark"] .input:focus,.select:focus,.textarea:focus{border-color:var(--primary)}
/* 🆕 v3.99: خوانایی کامل فرم‌ها در تم تیره — پس‌زمینهٔ سفید هاردکد جای متن هم‌رنگ می‌ماند */
[data-theme="dark"] .input,[data-theme="dark"] .select,[data-theme="dark"] .textarea{background:var(--card);color:var(--text);border-color:var(--border)}
[data-theme="dark"] .input:hover,[data-theme="dark"] .select:hover,[data-theme="dark"] .textarea:hover{border-color:#3b4d6e}
[data-theme="dark"] select option{background:#111a2c;color:#e2e8f0}
[data-theme="dark"] select optgroup{background:#111a2c;color:#8ea0b8}
[data-theme="dark"] label,[data-theme="dark"] .lbl{color:var(--text)}
[data-theme="dark"] input::placeholder,[data-theme="dark"] textarea::placeholder{color:var(--muted)}
[data-theme="dark"] input[type="checkbox"],[data-theme="dark"] input[type="radio"]{accent-color:var(--primary)}
/* 🆕 v3.99: فهرست بازشدنی native در همهٔ پلتفرم‌ها خوانا باشد */
select option{background:#fff!important;color:#0f172a!important}
label{color:var(--text)}
[data-theme="dark"] .topbar{background:rgba(17,26,44,.85)}
[data-theme="dark"] .stat-chip{background:rgba(148,163,184,.08);color:var(--muted)}
[data-theme="dark"] .palette{background:#111a2c;border-color:var(--border)}
[data-theme="dark"] .flash{background:rgba(148,163,184,.08)}
[data-theme="dark"] .flash-success{border-color:rgba(16,185,129,.4)}
[data-theme="dark"] .flash-danger{border-color:rgba(239,68,68,.4)}
[data-theme="dark"] .flash-warning{border-color:rgba(245,158,11,.4)}
[data-theme="dark"] .flash-info{border-color:rgba(14,165,233,.4)}

/* ---------- 🆕 v3.99.4 — خوانایی فرم‌ها در همهٔ مرورگرها (WebView / Force-Dark اندروید) ----------
   اعلام color-scheme جلوی وارونه‌سازی خودکار Chromium در WebView را می‌گیرد که باعث
   «متن هم‌رنگ پس‌زمینه» در تم روشن و تاریک می‌شد؛ رنگ‌های صریح هم ضمانت خوانایی است. */
:root{color-scheme:light}
[data-theme="dark"]{color-scheme:dark}
.input,.select,.textarea{color:#0f172a}
[data-theme="dark"] .input,[data-theme="dark"] .select,[data-theme="dark"] .textarea{color:#e2e8f0}
[data-theme="dark"] select option{background:#111a2c!important;color:#e2e8f0!important}
[data-theme="dark"] select optgroup{background:#111a2c!important;color:#93a9c6!important}

/* چیدمان فشردهٔ ردیف‌های فیلتر گزارش‌ساز — کنترل‌ها کنار هم، نه کشیده‌شدهٔ تمام‌عرض */
.frow{align-items:center}
.frow .input{width:auto;flex:0 1 auto;max-width:260px}

/* ---------- حداقل سطح لمسی ۴۴px ---------- */
.btn,.qa,.menu-item,.icon-btn,.select,.input,.checkbox{min-height:44px}
.btn-sm{min-height:38px}

/* ---------- فلش‌ها ---------- */
.flashes{display:grid;gap:10px}
.flash{
    display:flex;align-items:center;gap:10px;
    background:var(--card);border:1px solid var(--border);
    border-radius:12px;padding:12px 14px;font-size:13.5px;
    box-shadow:var(--shadow);
}
.flash .flash-ic{
    width:26px;height:26px;border-radius:50%;flex:none;
    display:flex;align-items:center;justify-content:center;
    font-weight:800;font-size:14px;color:#fff;
}
.flash-success{border-inline-start:4px solid var(--success)} .flash-success .flash-ic{background:var(--success)}
.flash-danger{border-inline-start:4px solid var(--danger)} .flash-danger .flash-ic{background:var(--danger)}
.flash-warning{border-inline-start:4px solid var(--warning)} .flash-warning .flash-ic{background:var(--warning)}
.flash-info{border-inline-start:4px solid var(--info)} .flash-info .flash-ic{background:var(--info)}
.flash a{font-weight:700}

/* ---------- عنوان گروه منو ---------- */
.c-muted{color:var(--muted)}
.menu-title{
    font-size:10.5px;font-weight:700;color:rgba(203,213,225,.45);
    padding:14px 10px 4px;letter-spacing:.02em;
}
.menu-item span{flex:1}
.topbar-actions{display:flex;align-items:center;gap:8px;margin-inline-start:auto}
.icon-btn{
    width:44px;height:44px;border-radius:11px;border:1px solid var(--border);
    background:var(--card);color:var(--text);cursor:pointer;font-size:17px;
    display:inline-flex;align-items:center;justify-content:center;
}
.icon-btn .icon{width:19px;height:19px}
.icon-btn:hover{border-color:var(--primary);color:var(--primary)}

/* ---------- پالت جستجو (Ctrl+K) ---------- */
.palette-overlay[hidden]{display:none}
.palette-overlay{
    position:fixed;inset:0;background:rgba(2,6,23,.55);z-index:120;
    display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 0;
    backdrop-filter:blur(3px);
}
.palette{
    width:100%;max-width:560px;background:var(--card);border:1px solid var(--border);
    border-radius:16px;box-shadow:0 24px 60px -12px rgba(2,6,23,.5);overflow:hidden;
}
.palette input{
    width:100%;border:none;outline:none;background:transparent;color:var(--text);
    padding:16px 18px;font-size:15px;font-family:inherit;border-bottom:1px solid var(--border);
}
.palette-results{max-height:46vh;overflow:auto;padding:8px}
.palette-item{
    display:flex;align-items:center;gap:10px;width:100%;text-align:right;
    padding:11px 12px;border:none;background:none;color:var(--text);
    font-family:inherit;font-size:13.5px;border-radius:10px;cursor:pointer;min-height:44px;
}
.palette-item:hover,.palette-item.sel{background:var(--primary-soft)}
.palette-item .icon{width:17px;height:17px;color:var(--primary)}
.palette-item small{margin-inline-start:auto;color:var(--muted)}
.palette-empty{padding:22px;text-align:center;color:var(--muted);font-size:13px}

/* ---------- اسکلت بارگذاری ---------- */
.skeleton{
    position:relative;overflow:hidden;background:var(--border);border-radius:10px;
    min-height:14px;
}
.skeleton::after{
    content:'';position:absolute;inset:0;transform:translateX(-100%);
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);
    animation:skel 1.3s infinite;
}
[data-theme="dark"] .skeleton::after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent)}
@keyframes skel{100%{transform:translateX(100%)}}
.skeleton-line{height:14px;margin:8px 0}
.skeleton-card{height:86px;border-radius:14px}
.skeleton-grid{display:grid;gap:12px}

/* ---------- شمارش انیمیشنی KPI ---------- */
.count-up{font-variant-numeric:tabular-nums}

/* ---------- نمودار ---------- */
.chart-box{position:relative;height:290px}
.chart-box canvas{max-width:100%}
.chart-tabs{display:flex;gap:6px;flex-wrap:wrap}
.chart-tabs .btn-sm.active{background:var(--primary);color:#fff;border-color:var(--primary)}

/* ---------- پورتال‌ها ---------- */
.portal-wrap{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}
.portal-head{
    display:flex;align-items:center;gap:14px;flex-wrap:wrap;
    background:var(--card);border-bottom:1px solid var(--border);
    padding:12px 18px;position:sticky;top:0;z-index:40;
}
.portal-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-inline-start:auto}
.portal-tabs .qa{padding:10px 16px}
.child-picker{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.child-chip{
    border:1.5px solid var(--border);background:var(--card);border-radius:12px;
    padding:10px 16px;cursor:pointer;font-family:inherit;font-size:13.5px;color:var(--text);min-height:44px;
}
.child-chip.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-600);font-weight:700}

/* ---------- حضور و غیاب ---------- */
.att-grid{display:grid;gap:8px}
.att-row{
    display:grid;grid-template-columns:minmax(140px,1.6fr) repeat(4,minmax(74px,1fr));
    gap:6px;align-items:center;background:var(--bg);border-radius:12px;padding:8px;
}
.att-row .att-name{font-size:13px;font-weight:600;display:flex;align-items:center;gap:8px}
.att-row .att-no{color:var(--muted);font-size:11px;min-width:22px}
.att-opt{position:relative}
.att-opt input{position:absolute;opacity:0;inset:0}
.att-opt label{
    display:flex;align-items:center;justify-content:center;gap:5px;
    border:1.5px solid var(--border);border-radius:9px;padding:9px 4px;
    font-size:12px;cursor:pointer;color:var(--muted);min-height:40px;user-select:none;
}
.att-opt input:checked + label{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-600);font-weight:700}
.att-opt.st-present input:checked + label{border-color:var(--success);background:var(--success-soft);color:var(--success)}
.att-opt.st-absent input:checked + label{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}
.att-opt.st-late input:checked + label{border-color:var(--warning);background:var(--warning-soft);color:var(--warning)}
.att-opt.st-excused input:checked + label{border-color:var(--info);background:var(--info-soft);color:var(--info)}
.att-stats{display:flex;gap:8px;flex-wrap:wrap}
.att-stats .stat-chip{position:static;font-size:12px}
@media(max-width:640px){
    .att-row{grid-template-columns:1fr;gap:8px}
    .att-row .att-opts{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}
}

/* ---------- انتخاب واحد ---------- */
.sel-progress{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.sel-progress .bar-track{flex:1;height:12px;border-radius:99px;background:var(--bg);overflow:hidden}
.sel-progress .bar-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--primary),#7c3aed);transition:width .3s}
.sel-progress b{font-size:13px;white-space:nowrap}
.sel-chips{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.sel-chip{
    display:inline-flex;align-items:center;gap:6px;background:var(--primary-soft);
    color:var(--primary-600);border-radius:99px;padding:5px 12px;font-size:12px;font-weight:600;
}
.sel-chip.saved{background:var(--warning-soft);color:var(--warning)}
.sel-chip .x{cursor:pointer;font-weight:800;padding:0 3px}
.sel-chip .x:hover{color:var(--danger)}
.course-pick{border:1.5px solid var(--border);border-radius:14px;padding:12px 14px;margin-bottom:10px;background:var(--card);transition:.15s}
.course-pick.picked{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}
.course-pick .cc-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.course-pick .cc-title{font-weight:700;font-size:14px;flex:1;min-width:150px}
.course-pick .cc-meta{display:flex;gap:6px;flex-wrap:wrap;font-size:11.5px;color:var(--muted)}
.course-pick .cc-actions{display:flex;align-items:center;gap:10px;margin-inline-start:auto}
.mod-rows{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px;padding-top:9px;border-top:1px dashed var(--border)}
.mod-row{
    display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--border);
    border-radius:9px;padding:6px 10px;font-size:12px;cursor:pointer;user-select:none;color:var(--muted);min-height:38px;
}
.mod-row input{display:none}
.mod-row.checked{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-600);font-weight:700}
.excluded-note{background:var(--info-soft);border:1px dashed var(--info);border-radius:12px;padding:10px 14px;font-size:12.5px;margin:10px 0;color:var(--text)}
.web-login-code{
    font-size:34px;font-weight:800;letter-spacing:.35em;text-align:center;
    background:var(--primary-soft);color:var(--primary-600);border-radius:14px;padding:14px 10px;
    direction:ltr;font-variant-numeric:tabular-nums;
}
.qr-box{background:#fff;border:1px solid var(--border);border-radius:16px;padding:16px;display:inline-flex;flex-direction:column;align-items:center;gap:10px}
.qr-box canvas,.qr-box img{border-radius:8px}
.idcard{
    width:340px;border:1px solid var(--border);border-radius:16px;padding:16px;
    background:var(--card);position:relative;overflow:hidden;
}
.idcard::before{content:'';position:absolute;inset-inline-end:-40px;top:-40px;width:140px;height:140px;border-radius:50%;background:var(--primary-soft)}
.idcard .idc-head{display:flex;gap:10px;align-items:center;margin-bottom:12px;position:relative}
.idcard .idc-name{font-weight:800;font-size:15px}
.idcard .idc-rows{display:grid;grid-template-columns:1fr 1fr;gap:7px 12px;font-size:12px;position:relative}
.idcard .idc-rows b{color:var(--muted);font-weight:600;display:block;font-size:10.5px}
.idcard .idc-qr{position:absolute;bottom:14px;inset-inline-start:14px}
.idcard .idc-rows{padding-bottom:96px}
.tabbtns{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.tabbtns .btn-sm.active{background:var(--primary);color:#fff;border-color:var(--primary)}

/* ---------- داشبورد ---------- */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.retry-btn{margin-inline-start:auto}

/* ---------- کارنامه / پروفایل ---------- */
.profile-head{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.timeline{display:grid;gap:8px}
.timeline-item{
    display:flex;gap:12px;align-items:flex-start;background:var(--bg);
    border-radius:12px;padding:10px 12px;font-size:13px;
}
.timeline-item .tl-date{color:var(--muted);font-size:11.5px;white-space:nowrap}

/* ---------- برنامه هفتگی ---------- */
.sched-table{width:100%;border-collapse:collapse;font-size:12.5px}
.sched-table th,.sched-table td{border:1px solid var(--border);padding:8px 6px;text-align:center;vertical-align:middle}
.sched-table th{background:var(--bg);font-size:11.5px;color:var(--muted)}
.sched-cell{min-width:110px;position:relative}
.sched-cell .lesson-name{font-weight:700}
.sched-cell .teacher-name{color:var(--muted);font-size:11px}
.sched-select{width:100%;min-height:38px}
/* ویرایش زندهٔ سلول‌های برنامه — خانهٔ قابل کلیک با پژواک بصری هنگام هاور */
.sched-cell.editable{cursor:pointer;transition:background .12s,box-shadow .12s}
.sched-cell.editable:hover{background:var(--primary-soft,#eef2ff);box-shadow:inset 0 0 0 2px var(--primary,#4f46e5)}
.sched-cell.editable::after{content:'✏';position:absolute;top:3px;inset-inline-end:5px;font-size:10px;opacity:0;transition:opacity .12s;color:var(--primary,#4f46e5)}
.sched-cell.editable:hover::after{opacity:.85}
[data-theme="dark"] .sched-cell.editable:hover{background:rgba(99,102,241,.14)}

/* ---------- چاپ ---------- */
.print-body{background:#fff;color:#111827;font-size:12.5px;padding:26px}
.print-head{text-align:center;border-bottom:2.5px solid #111827;padding-bottom:12px;margin-bottom:18px}
.print-school{font-size:19px;font-weight:800}
.print-title{font-size:14.5px;margin-top:5px}
.print-meta{font-size:11px;color:#475569;margin-top:4px}
.print-body .table{box-shadow:none}
.print-body .table th{background:#f1f5f9!important;color:#111827}
.print-body .no-print{display:none!important}
@media print{
    @page{size:A4;margin:12mm}
    body{padding:0}
    .print-page-break{page-break-before:always}
}

/* ---------- صفحه ورود (استایل اصلی در base.css — طرح اسپلیت v3.6) ---------- */
.portal-hint{background:var(--bg);border:1px dashed var(--border);border-radius:12px;padding:10px 13px;font-size:12px;color:var(--muted);line-height:1.9}
[data-theme="dark"] .portal-hint{background:rgba(148,163,184,.08)}

/* ---------- جدول پاسخ‌گو ---------- */
.table-wrap{overflow-x:auto;border-radius:12px}
.table th{white-space:nowrap}
@media(max-width:760px){
    .content{padding:14px 12px 30px}
    .qa-grid{grid-template-columns:repeat(2,1fr)!important}
    .kpi-grid{grid-template-columns:repeat(2,1fr)}
    .grid-2,.grid-3,.grid-4{grid-template-columns:1fr!important}
    .topbar{padding:10px 14px}
    .topbar-date{display:none}
}

/* ---------- فاز ۲: دفتر نمرات ---------- */
.table-sticky thead th{position:sticky;top:0;background:var(--surface,#fff);z-index:2}
.gb-cat{background:var(--primary-soft,#eef2ff)!important;text-align:center}
.gb-comp{font-weight:normal;font-size:11px;background:var(--surface-2,#f8fafc)!important}
.gb-cell{width:64px;padding:5px 6px!important;text-align:center;font-size:13px}
.gb-final{background:var(--surface-2,#f8fafc);text-align:center}
.btn-link-danger{background:none;border:none;color:var(--danger);cursor:pointer;font-weight:bold;font-size:12px;padding:0 2px}
.btn-link-danger:hover{text-decoration:underline}

/* ---------- اجزای نسخه 3.6.0 در تم تاریک ---------- */
[data-theme="dark"] .auth-card{background:#111a2c;border-color:rgba(148,163,184,.18)}
[data-theme="dark"] .auth-brand b{color:var(--text)}
[data-theme="dark"] .switch-auth{background:rgba(148,163,184,.08);border-color:var(--border)}
[data-theme="dark"] .switch-auth a.active{background:rgba(99,102,241,.2);color:#c7d2fe;box-shadow:none}
[data-theme="dark"] .switch-auth a:hover{background:rgba(148,163,184,.08)}
[data-theme="dark"] .seg{background:rgba(148,163,184,.08)}
[data-theme="dark"] .seg-btn:hover{background:rgba(148,163,184,.1)}
[data-theme="dark"] .seg-btn.on{background:rgba(99,102,241,.25);color:#c7d2fe;box-shadow:none}
[data-theme="dark"] .steps-bar{background:var(--card)}
[data-theme="dark"] .step b{background:rgba(148,163,184,.1)}
[data-theme="dark"] .up-zone{background:rgba(99,102,241,.08);border-color:#3b4769}
[data-theme="dark"] .up-zone:hover,.up-zone.drag{background:var(--primary-soft)}
[data-theme="dark"] .up-zone .up-ic{background:var(--primary-soft)}
[data-theme="dark"] .table tbody tr:nth-child(even){background:rgba(148,163,184,.04)}
[data-theme="dark"] .table tbody tr:hover{background:rgba(99,102,241,.12)}
[data-theme="dark"] .table th{background:linear-gradient(180deg,rgba(148,163,184,.12),rgba(148,163,184,.06))}
[data-theme="dark"] .qa{background:rgba(148,163,184,.05)}
[data-theme="dark"] .card-h{background:linear-gradient(180deg,rgba(148,163,184,.07),transparent)}
[data-theme="dark"] .card-f{background:rgba(148,163,184,.05)}
[data-theme="dark"] .result-card h2{color:var(--text)}
[data-theme="dark"] .file-name{background:rgba(148,163,184,.08)}

/* ================= فاز ۷ — نوار بالا، زیرمنو، اعلان‌ها، کپچا ================= */
.topnav{position:sticky;top:0;z-index:600;background:linear-gradient(135deg,var(--primary,#2563eb),#1e40af);box-shadow:0 2px 14px rgba(15,23,42,.18)}
.topnav-in{max-width:1500px;margin:0 auto;display:flex;align-items:center;gap:10px;padding:0 14px;min-height:60px}
.topnav .brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;flex-shrink:0}
.topnav .brand-logo{width:38px;height:38px;border-radius:11px;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;color:#fff}
.topnav .brand-logo svg{width:22px;height:22px}
.topnav .brand-text{display:flex;flex-direction:column;line-height:1.25}
.topnav .brand-text b{font-size:14.5px;color:#fff}
.topnav .brand-text small{font-size:10.5px;color:rgba(255,255,255,.75)}
/* پایداری منو: آیتم‌ها هرگز به سطر دوم نمی‌روند — در عرض کم، نوار منو
   افقی اسکرول می‌شود (بدون اسکرول‌بار مرئی) تا جای گروه‌ها («سیستمی» و…)
   با تغییر badgeها یا متن ساعت جابه‌جا نشود. */
.topnav-menu{display:flex;align-items:center;gap:2px;margin-inline-start:8px;flex:1;min-width:0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
.topnav-menu::-webkit-scrollbar{display:none}
.navdrop{position:relative;flex-shrink:0}
.navdrop-btn{background:transparent;border:0;color:rgba(255,255,255,.88);font:inherit;font-size:13.5px;font-weight:600;padding:9px 12px;border-radius:10px;cursor:pointer;display:flex;align-items:center;gap:5px;transition:.15s}
.navdrop-btn:hover,.navdrop.open .navdrop-btn{background:rgba(255,255,255,.14);color:#fff}
.navdrop .caret{font-size:9px;opacity:.75;transition:transform .15s}
.navdrop.open .caret{transform:rotate(180deg)}
.navdrop-panel{position:absolute;top:100%;inset-inline-start:0;min-width:230px;background:var(--surface,#fff);border:1px solid var(--border,#e2e8f0);border-radius:0 0 14px 14px;box-shadow:0 18px 44px rgba(15,23,42,.18);padding:7px;display:none;z-index:70}
/* پل نامرئی: زیر دکمه + بالای پنل با عرض کامل پنل — حرکت ماوس (مستقیم یا مورب) هرگز
   از ناحیه خالی رد نمی‌شود چون پنل بدون فاصله به نوار چسبیده و نوار بالای پنل هم جزء پنل است */
.navdrop::after{content:'';position:absolute;top:100%;inset-inline:-8px;height:10px;display:none;z-index:69}
.navdrop.open::after{display:block}
.navdrop-panel::after{content:'';position:absolute;top:-12px;inset-inline:0;height:12px}
.navdrop.open .navdrop-panel{display:block;animation:navOpacity .12s ease}
/* پنل باز با position:fixed در سطح viewport جای‌گذاری می‌شود (مختصات از JS/rect دکمه).
   دلیل: .topnav-menu برای جلوگیری از شکستن سطر overflow-x:auto دارد و هر ظرف اسکرول‌دار
   فرزندان absolute خود را کلیپ می‌کند — در 3.56.0 همین باعث شد پنل باز شود اما دیده نشود. */
.navdrop-panel.fixed{position:fixed;top:auto;inset-inline-start:auto;left:auto;right:auto;margin:0}
@keyframes navFade{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
@keyframes navOpacity{from{opacity:0}to{opacity:1}}
.navdrop-panel::before{display:none}
.navdrop-item{display:flex;align-items:center;gap:9px;padding:9px 11px;border-radius:9px;color:var(--text,#1e293b);text-decoration:none;font-size:13px;font-weight:500;transition:.12s}
.navdrop-item svg{width:16px;height:16px;opacity:.65;flex-shrink:0}
.navdrop-item:hover{background:var(--surface-2,#f1f5f9)}
.navdrop-item.active{background:var(--primary-soft,#eff6ff);color:var(--primary,#2563eb);font-weight:700}
.navdrop-item.danger{color:var(--danger,#dc2626)}
.topnav-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
.topnav .icon-btn{color:#fff;background:rgba(255,255,255,.1)}
.topnav .icon-btn:hover{background:rgba(255,255,255,.2)}
/* --- سرریز نوار منو (زوم ۱۰۰٪ / لپ‌تاپ) --- تا 3.56.2 در عرض‌های تنگ، انتهای منو
   بی‌اعلان کنار آیکون «ظاهر و چیدمان» بریده می‌شد. سه اصلاح: (۱) در ≤۱۵۶۰px
   ساعت/تقویم زندهٔ نوار پنهان می‌شود تا منو جا شود (تقویم کامل در فوتر هست)؛
   (۲) اگر باز هم سرریز شد (گروه‌های سفارشی زیاد)، لبهٔ بریده با محوِ هم‌رنگ نوار
   نشان داده می‌شود که «ادامه دارد»؛ (۳) چرخ ماوس روی منو، آن را افقی می‌گذارد. */
.topnav{--nav-fade:#2447c9}
@supports (background:color-mix(in srgb,red,blue)){
    .topnav{--nav-fade:color-mix(in srgb,var(--primary,#2563eb) 55%,#1e40af)}
}
.topnav-actions{position:relative}
.topnav-actions::before{content:'';position:absolute;inset-inline-start:-27px;top:0;bottom:0;width:27px;background:linear-gradient(90deg,var(--nav-fade) 10%,rgba(0,0,0,0) 100%);opacity:0;pointer-events:none;transition:opacity .15s}
.topnav.clip-able .topnav-actions::before{opacity:1}
@media(max-width:1600px){.navdrop-btn{padding-inline:10px}}
/* ساعت/تقویم زنده در همهٔ عرض‌ها دیده می‌شود (خواستهٔ کاربر — پنهان‌کردنش ممنوع)؛
   در عرض‌های تنگ فقط جمع‌وجور می‌شود تا جای منو آزاد بماند؛ مهار سرریز منو با
   محوِ لبه + اسکرول افقی (چرخ ماوس/لمس) انجام می‌شود، نه حذف اجزا */
@media(max-width:1560px){.topbar-date{min-width:0;padding:5px 10px;font-size:11.5px;gap:4px}}
[data-style="classic"] .topnav{--nav-fade:#1e3a8a}
[data-style="flat"] .topnav{--nav-fade:#fff}
[data-theme="dark"][data-style="flat"] .topnav{--nav-fade:#111a2c}
.nav-bell .icon-btn{position:relative}
.bell-badge{position:absolute;top:-4px;inset-inline-start:-4px;background:#ef4444;color:#fff;font-size:10px;font-weight:700;min-width:17px;height:17px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px;border:2px solid #1e40af}
.notif-panel{width:330px;max-width:88vw;padding:0;overflow:hidden}
.notif-panel-h{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;border-bottom:1px solid var(--border,#e2e8f0);font-size:13px}
.notif-panel-h a{font-size:12px;color:var(--primary,#2563eb);text-decoration:none}
.notif-panel-list{max-height:330px;overflow-y:auto}
.notif-empty{padding:26px 14px;text-align:center;color:var(--muted,#64748b);font-size:12.5px}
.notif-row{display:flex;flex-direction:column;gap:3px;padding:10px 14px;border-bottom:1px solid var(--border,#e2e8f0);text-decoration:none;color:var(--text,#1e293b);font-size:12.5px}
.notif-row:last-child{border-bottom:0}
.notif-row b{font-size:13px}
.notif-row span{color:var(--muted,#64748b)}
.notif-row small{color:var(--muted,#94a3b8);font-size:10.5px}
.notif-row.unread{background:var(--primary-soft,#eff6ff);border-inline-start:3px solid var(--primary,#2563eb)}
.notif-row:hover{background:var(--surface-2,#f1f5f9)}
.user-chip-btn{background:rgba(255,255,255,.12);border:0;border-radius:12px;padding:5px 10px;display:flex;align-items:center;gap:8px;cursor:pointer;font:inherit}
.user-chip-btn:hover{background:rgba(255,255,255,.2)}
.user-chip-btn .avatar{width:30px;height:30px;font-size:13px;background:#fff;color:var(--primary,#2563eb)}
.user-chip-btn .user-info{display:flex;flex-direction:column;align-items:flex-start;line-height:1.3}
.user-chip-btn .user-info b{font-size:12.5px;color:#fff}
.user-chip-btn .user-info small{font-size:10px;color:rgba(255,255,255,.75)}
.user-panel{min-width:190px}
/* ویجت ساعت/تقویم — کپسول گرادیانی با متن سفید؛ روی توپ‌بار روشن و تاریک خواناست
   (قبلاً متن سفید روی چیپ روشنِ var(--bg) عملاً ناخوانا بود) */
.topbar-date{color:#fff;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap;
    min-width:238px;font-variant-numeric:tabular-nums;flex-shrink:0;
    background:linear-gradient(135deg,var(--primary,#4f46e5),var(--accent,#7c3aed));
    border:0;padding:7px 14px;border-radius:99px;box-shadow:0 2px 10px -3px rgba(79,70,229,.5)}
/* چیپ کاربر در توپ‌بار — در تم روشن متن تیره روی کارت روشن، در تم تاریک متن روشن */
.topbar .user-chip-btn{background:var(--card,#fff);border:1px solid var(--border,#e5e9f4);box-shadow:0 1px 4px rgba(15,23,42,.08)}
.topbar .user-chip-btn .user-info b{color:var(--text,#17203a)}
.topbar .user-chip-btn .user-info small{color:var(--muted,#64748b)}
[data-theme="dark"] .topbar .user-chip-btn{background:rgba(255,255,255,.12);border-color:transparent;box-shadow:none}
[data-theme="dark"] .topbar .user-chip-btn .user-info b{color:#fff}
[data-theme="dark"] .topbar .user-chip-btn .user-info small{color:rgba(255,255,255,.75)}
.topbar-date svg{width:14px;height:14px}
.mobnav{display:none;background:var(--surface,#fff);border-bottom:1px solid var(--border,#e2e8f0);padding:8px 14px 14px;box-shadow:0 8px 22px rgba(15,23,42,.08)}
.mobnav-group{margin-bottom:6px}
.mobnav .menu-item{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:9px;color:var(--text,#1e293b);text-decoration:none;font-size:13px}
.mobnav .menu-item svg{width:16px;height:16px;opacity:.6}
.mobnav .menu-item.active{background:var(--primary-soft,#eff6ff);color:var(--primary,#2563eb);font-weight:700}
@media(max-width:1024px){.topnav-menu{display:none}.only-desktop{display:none!important}}
@media(min-width:1025px){.mobnav{display:none!important}}
@media(max-width:1024px){.mobnav[hidden]{display:none}.mobnav:not([hidden]){display:block}}
@media(max-width:640px){.user-chip-btn .user-info{display:none}.topnav .brand-text small{display:none}}

/* اعلان‌ها صفحه */
.notif-list{display:flex;flex-direction:column;gap:8px}
.notif-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border,#e2e8f0);border-radius:12px}
.notif-item.unread{background:var(--primary-soft,#eff6ff);border-inline-start:3px solid var(--primary,#2563eb)}
.notif-item .notif-ic{width:36px;height:36px;border-radius:10px;background:var(--surface-2,#f1f5f9);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.notif-item .notif-ic svg{width:17px;height:17px;color:var(--primary,#2563eb)}
.notif-item .notif-body{flex:1;min-width:0}
.notif-item .notif-body b{font-size:13.5px;display:block}
.notif-item .notif-body p{margin:2px 0;font-size:12.5px;color:var(--muted,#64748b)}

/* کپچا */
.captcha-row{display:flex;gap:8px;align-items:center}
.captcha-svg{display:inline-flex;border-radius:10px;overflow:hidden;flex-shrink:0}
.captcha-svg svg{display:block;height:48px;width:auto}

/* صفحه محتوایی پس از حذف سایدبار */
.app-body{padding-top:0}
.content{max-width:1500px;margin:0 auto;padding:18px 16px 8px;width:100%}
.foot{max-width:1500px;margin:0 auto;padding:14px 16px;color:var(--muted,#64748b);font-size:11.5px}

/* ================= فاز ۸ — بهبودهای کلی رابط (مچ فز ۸) ================= */

/* نوار توضیح کمکی زیر هدر */
.page-note{display:flex;align-items:flex-start;gap:8px;background:#eaf3ff;border:1px solid #bcd7fb;border-radius:10px;padding:9px 12px;font-size:12.5px;line-height:1.9;margin-bottom:12px}
body.dark .page-note{background:#122a44;border-color:#1d3f66}
.page-note .icon{color:#2f6fd8;flex:none;margin-top:2px}

/* نوار تیره پس‌زمینه برای صفحات بزرگ (کاملاً جمع‌وجور) */
.bulk-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;background:var(--panel,#fff);border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:12px}
body.dark .bulk-bar{background:var(--panel-d,#16243a)}
.bulk-bar .grp{display:flex;flex-direction:column;gap:4px}
.bulk-bar label{font-size:11.5px;font-weight:600;color:var(--muted,#5d6c82)}

/* عرض کم برای فرم‌های بدون نیاز به تمام عرض */
.wrap-narrow{max-width:760px;margin-inline:auto}
.wrap-mid{max-width:1000px;margin-inline:auto}

/* گرید مجوزها (شبیه جدول ولی ردیف‌شده) */
.perm-grid{display:flex;flex-direction:column;gap:4px}
.perm-grid .pg-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 6px;background:#f7f9fc;border:1px solid var(--border);border-radius:10px;padding:8px 12px}
body.dark .perm-grid .pg-row{background:#12213a;border-color:#22344f}
.perm-grid .pg-row:hover{background:#eef4ff}
.perm-grid .pg-name{flex:none;font-weight:700;font-size:13px;margin-inline-end:8px;min-width:110px}
.perm-grid label{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;color:var(--text,#1c2a3a);cursor:pointer;padding:3px 6px;border-radius:6px;transition:.15s}
.perm-grid label:hover{background:#dbe9ff}
body.dark .perm-grid label{color:#c9d5e6}
body.dark .perm-grid label:hover{background:#1e3454}
.perm-grid input[type=checkbox]{width:14px;height:14px;accent-color:#2f6fd8}

/* مودال گفتگو */
.chat{display:flex;flex-direction:column;height:calc(100vh - 210px);min-height:420px;background:var(--panel,#fff);border:1px solid var(--border);border-radius:14px;overflow:hidden}
body.dark .chat{background:var(--panel-d,#16243a)}
.chat-head{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#f5f8fd;border-bottom:1px solid var(--border);font-weight:700;font-size:13.5px}
body.dark .chat-head{background:#12213a}
.chat-head .who{display:flex;align-items:center;gap:8px}
.chat-head .who b{font-size:13.5px}
.chat-head .who small{display:block;font-size:10.5px;color:var(--muted,#5d6c82);font-weight:400}
.chat-body{flex:1;overflow-y:auto;padding:14px;background:#fbfcfe;display:flex;flex-direction:column;gap:10px}
body.dark .chat-body{background:#0d1626}
.chat-bub{max-width:72%;padding:9px 13px;border-radius:14px;font-size:13px;line-height:1.85;box-shadow:0 1px 2px rgba(0,0,0,.06);word-wrap:break-word}
.chat-bub .meta{display:block;font-size:10px;opacity:.6;margin-top:4px;text-align:left}
.chat-bub.me{align-self:flex-start;background:#e3eeff;color:#1a3a6b;border-end-end-radius:4px}
.chat-bub.them{align-self:flex-end;background:#fff;border:1px solid var(--border);border-end-start-radius:4px}
body.dark .chat-bub.me{background:#1e3a66;color:#dbe9ff}
body.dark .chat-bub.them{background:#16243a;border-color:#22344f;color:#e6eefb}
.chat-foot{display:flex;gap:8px;padding:10px 14px;border-top:1px solid var(--border);background:var(--panel,#fff)}
body.dark .chat-foot{background:var(--panel-d,#16243a)}
.chat-foot textarea{flex:1;resize:none;border:1px solid var(--border);border-radius:10px;padding:9px 12px;font-family:inherit;font-size:13px;background:#fff;outline:none}
body.dark .chat-foot textarea{background:#0d1626;color:#e6eefb;border-color:#22344f}
.chat-foot textarea:focus{border-color:#2f6fd8;box-shadow:0 0 0 3px rgba(47,111,216,.12)}

/* لیست مخاطبین گفتگو */
.chat-list{display:flex;flex-direction:column;gap:8px;max-height:calc(100vh - 210px);overflow-y:auto;padding-inline-end:4px}
.chat-list a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;text-decoration:none;color:var(--text,#1c2a3a);background:var(--panel,#fff);border:1px solid var(--border);transition:.15s}
.chat-list a:hover{background:#eef4ff;border-color:#bcd7fb;transform:translateY(-1px)}
body.dark .chat-list a{background:var(--panel-d,#16243a);border-color:#22344f;color:#e6eefb}
body.dark .chat-list a:hover{background:#1e3454;border-color:#3a5a8c}
.chat-list .avatar{flex:none;width:38px;height:38px;border-radius:50%;background:#2f6fd8;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
.chat-list .avatar.mentor{background:#16a34a}
.chat-list .avatar.tech{background:#ea8a2a}
.chat-list .avatar.stud{background:#7c3aed}
.chat-list .info{flex:1;min-width:0}
.chat-list .info b{display:block;font-size:13px}
.chat-list .info small{display:block;font-size:11px;color:var(--muted,#5d6c82)}
.chat-list .badge-new{flex:none;background:#ef4444;color:#fff;font-size:10px;font-weight:700;border-radius:10px;padding:2px 7px}

/* نشان تعداد پیام جدید در هدر */
.chat-badge{position:absolute;top:-6px;inset-inline-end:-6px;background:#ef4444;color:#fff;font-size:10px;font-weight:700;border-radius:50%;min-width:17px;height:17px;display:flex;align-items:center;justify-content:center;padding:0 3px}

/* هدر محتوا */
.content-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.content-head h1{font-size:16px;font-weight:800;margin:0}
.content-head p{font-size:12.5px;color:var(--muted,#5d6c82);margin:0;flex:1;min-width:180px}

/* وضعیت آنلاین در داشبورد */
.online-chip{display:inline-flex;align-items:center;gap:6px;background:#e8f9ee;border:1px solid #b7e6c6;color:#14823a;font-size:11.5px;font-weight:600;padding:4px 10px;border-radius:999px}
body.dark .online-chip{background:#123322;border-color:#1c4d30;color:#8ee6ac}
.online-chip .dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.15)}

/* کارت ورود — نقش‌ها */
.login-roles{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:16px 0 12px}
.login-roles label{display:flex;flex-direction:column;align-items:center;gap:6px;border:1.5px solid var(--border,#e2e8f0);border-radius:12px;padding:12px 6px;cursor:pointer;transition:.15s;font-size:12px;font-weight:600;background:#f8fafc}
.login-roles label:hover{border-color:#bcd7fb;background:#eef4ff}
.login-roles input:checked + span{color:#2f6fd8}
.login-roles label:has(input:checked){border-color:#2f6fd8;background:#eef4ff;color:#2f6fd8;font-weight:700}
.login-roles .ic{font-size:20px}

/* منوی موبایل هامبرگر */
@media (max-width:860px){
  .nav-burger{display:inline-flex !important}
  .wrap-narrow,.wrap-mid{max-width:100%}
}

/* جدول‌ها موبایل: فونت کوچکتر و اسکرول افقی */
@media (max-width:760px){
  .table-wrap{margin-inline:-10px;padding-inline:10px}
  .table th,.table td{font-size:12px;padding:8px 10px}
  .bulk-bar{flex-direction:column;align-items:stretch}
  .bulk-bar .grp{width:100%}
  .perm-grid .pg-row{padding:10px}
  .perm-grid .pg-name{min-width:100%;margin-inline-end:0}
  .login-roles{grid-template-columns:1fr}
  .content-head{flex-direction:column;align-items:flex-start;gap:4px}
}

/* حالت چاپ */
@media print{
  .sidebar,.topbar,.content-head,.bulk-bar,.page-note,.btn,.pagination{display:none !important}
  .main-content{margin:0 !important;padding:0 !important;box-shadow:none !important}
  .card{box-shadow:none !important;border:1px solid #ccc !important;break-inside:avoid}
}

/* انتخاب کشویی با جستجو */
.search-select{position:relative}
.search-select .ss-input{margin-bottom:6px;font-size:12.5px;padding:7px 10px;border-radius:9px;border:1px solid var(--border,#e2e8f0);width:100%;background:#fff}
.search-select .ss-input:focus{outline:none;border-color:#2f6fd8;box-shadow:0 0 0 3px rgba(47,111,216,.12)}
.search-select select{max-height:190px;overflow-y:auto}

/* ============ فاز ۹ — چیدمان مرتب و حرفه‌ای اداری/مالی ============ */

/* عرض استاندارد محتوا — جمع‌وجور و خوانا (به‌جای تمام‌عرض) */
.content{max-width:1180px}
.content-wide{max-width:1480px}

/* کارت‌ها: فاصله استاندارد و گوشه‌های یکدست */
.card{border-radius:14px}
.card-h{padding:12px 16px;font-size:13.5px}
.card-b{padding:14px 16px}

/* نوار فیلتر/ابزار به‌صورت پنل مرتب (به‌جای ردیف شلخته تمام‌عرض) */
.toolbar{
  display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;
  background:var(--surface-2,#f8fafc);
  border:1px solid var(--border,#e2e8f0);
  border-radius:12px;
  padding:12px 14px;
}
body.dark .toolbar{background:#101c30}
.toolbar .lbl{font-size:11.5px;color:var(--muted,#64748b);margin-bottom:4px;display:block}
.toolbar .input,.toolbar .select{max-width:230px}

/* جدول‌ها: فشرده، راه‌راه، هاور، هدر چسبان */
.table{font-size:12.8px}
.table th{
  font-size:11.3px;font-weight:700;color:var(--muted,#64748b);
  padding:9px 10px;white-space:nowrap;
  position:sticky;top:0;z-index:2;
  background:var(--surface-2,#f1f5f9);
}
body.dark .table th{background:#16243a;color:#93a4bd}
.table td{padding:8px 10px;vertical-align:middle}
.table tbody tr{transition:background .12s}
.table tbody tr:nth-child(even){background:rgba(148,163,184,.05)}
.table tbody tr:hover{background:var(--primary-soft,#eff6ff)}
.table-wrap{
  border:1px solid var(--border,#e2e8f0);
  border-radius:12px;
  max-height:72vh;overflow:auto;
}
.table-wrap .table{border:0}
.table-wrap .table th:first-child{border-start-start-radius:11px}
.table-wrap .table th:last-child{border-start-end-radius:11px}

/* اعداد و ارقام: هم‌ترازی مرتب در ستون‌های مالی */
.mod-finance .table td:nth-child(n+4){font-variant-numeric:tabular-nums}

/* KPI های اداری/مالی: کوچک‌تر و مرتب‌تر */
.mod-finance .kpi-grid,.mod-payments .kpi-grid,.mod-cafeteria .kpi-grid,
.mod-library .kpi-grid,.mod-transport .kpi-grid,.mod-hr .kpi-grid,
.mod-documents .kpi-grid,.mod-visitors .kpi-grid,.mod-facilities .kpi-grid,
.mod-inventory .kpi-grid,.mod-alumni .kpi-grid,.mod-excel .kpi-grid{
  grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:10px;
}
.mod-finance .kpi-grid .card.stat,.mod-hr .kpi-grid .card.stat{padding:10px 12px}

/* فرم‌های ثبت داخل کارت: مرتب و شبکه‌ای */
.mod-finance .toolbar,.mod-hr .toolbar,.mod-payments .toolbar,
.mod-cafeteria .toolbar,.mod-library .toolbar,.mod-transport .toolbar,
.mod-inventory .toolbar,.mod-documents .toolbar,.mod-visitors .toolbar,
.mod-facilities .toolbar,.mod-alumni .toolbar{
  border-style:dashed;border-width:1.5px;
}

/* دکمه‌های ردیف جدول: کوچک و هم‌تراز */
.row-actions{display:flex;gap:5px;align-items:center;white-space:nowrap}
.row-actions .btn{padding:4px 10px;font-size:11.5px}

/* صفحات فرم‌محور: وسط‌چین و محدود */
.mod-settings .card,.mod-users .card,.mod-bells .card{
  max-width:920px;margin-inline:auto;
}

/* تب‌ها: چوب‌کبریتی مرتب */
.tabbtns{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}

/* موبایل: جدول‌ها اسکرول افقی نرم */
@media(max-width:760px){
  .content{padding:14px 12px}
  .table th{position:static}
  .table-wrap{max-height:none}
}

/* ============ فاز ۱۰ — ماژول ارزیابی (نمرات، تکالیف، امتحانات، گزارش‌ها، هوش مصنوعی) ============ */

/* دفتر نمرات: هدر دومن چسبان + ستون نام هنرجو چسبان */
.table-sticky thead tr:nth-child(1) th{top:0}
.table-sticky thead tr:nth-child(2) th{top:37px}
.table-sticky th:first-child{
  position:sticky;right:0;z-index:3;
  background:var(--surface-2,#f1f5f9);
  border-inline-end:1px solid var(--border,#e2e8f0);
  min-width:180px;text-align:start;
}
.table-sticky td:first-child{
  position:sticky;right:0;z-index:1;
  background:var(--surface,#fff);
  border-inline-end:1px solid var(--border,#e2e8f0);
}
body.dark .table-sticky td:first-child{background:#101a2c}
.table-sticky tbody tr:hover td:first-child{background:var(--primary-soft,#eff6ff)}

/* سلول نمره: کوچک، وسط‌چین، بدون فلش‌های اسپینر */
.gb-cell{
  width:62px;padding:4px 6px;text-align:center;font-size:12.5px;
  -moz-appearance:textfield;appearance:textfield;
}
.gb-cell::-webkit-outer-spin-button,.gb-cell::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.gb-cell:focus{border-color:var(--primary,#2563eb);box-shadow:0 0 0 3px rgba(37,99,235,.12)}

/* هدر دسته‌بندی و اجزا + ستون نمره نهایی */
.table-sticky .gb-cat{
  background:var(--primary-soft,#eff6ff);
  color:var(--primary,#2563eb);text-align:center;font-size:11.5px;
}
.table-sticky .gb-comp{text-align:center;font-size:10.5px;font-weight:600}
.table-sticky .gb-final{
  background:rgba(148,163,184,.08);text-align:center;font-size:13px;min-width:72px;
}
body.dark .table-sticky .gb-cat{background:#16294d;color:#8ab4ff}
body.dark .table-sticky .gb-final{background:#16243a}

/* KPI ارزیابی: فشرده و یکدست */
.mod-grades .grid.grid-3,.mod-grades .grid.grid-4,
.mod-exams .grid.grid-4,.mod-exams .grid.grid-2,
.mod-reports .grid.grid-4,.mod-reports .grid.grid-2,
.mod-assignments .kpi-grid,.mod-ai .grid.grid-2{
  gap:10px;
}
.mod-grades .card.stat,.mod-exams .card.stat,
.mod-reports .card.stat,.mod-assignments .card.stat{padding:10px 12px}

/* نوار فیلتر ارزیابی: ورودی‌ها هم‌ارتفاع و مرتب */
.mod-grades .toolbar .input,.mod-grades .toolbar .select,
.mod-assignments .toolbar .input,.mod-assignments .toolbar .select,
.mod-exams .toolbar .input,.mod-exams .toolbar .select,
.mod-reports .toolbar .input,.mod-reports .toolbar .select{height:34px;padding:5px 10px;font-size:12.5px}

/* جدول تکالیف و امتحانات: ستون اقدامات فشرده */
.mod-assignments .table td:last-child,.mod-exams .table td:last-child{
  white-space:nowrap;text-align:center;
}

/* گزارش‌ها: کارت نمودار هم‌ارتفاع */
.mod-reports .grid.grid-2 > .card{min-height:0}
.mod-reports canvas{max-width:100%}

/* موبایل: دفتر نمرات اسکرول کامل */
@media(max-width:760px){
  .table-sticky th:first-child,.table-sticky td:first-child{min-width:130px}
  .table-sticky thead tr:nth-child(2) th{top:33px}
}

/* ============ فاز ۱۱ — جستجوی زنده + پنل تحلیل فوری ============ */

/* جستجوی زنده */
.live-search{position:relative}
.ls-input{width:100%;max-width:420px}
.ls-results{
  display:none;position:absolute;top:calc(100% + 6px);inset-inline-start:0;
  width:min(420px,100%);max-height:280px;overflow-y:auto;z-index:80;
  background:var(--surface,#fff);border:1px solid var(--border,#e2e8f0);
  border-radius:12px;box-shadow:0 18px 40px rgba(15,23,42,.18);padding:6px;
}
body.dark .ls-results{background:#101a2c}
.ls-item{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  width:100%;border:0;background:transparent;font:inherit;text-align:start;
  padding:9px 11px;border-radius:9px;cursor:pointer;transition:.12s;
}
.ls-item:hover{background:var(--primary-soft,#eff6ff)}
.ls-item b{font-size:13px;color:var(--text,#1e293b)}
body.dark .ls-item b{color:#e2e8f0}
.ls-item span{font-size:11px;color:var(--muted,#64748b);direction:ltr}
.ls-empty{padding:14px;text-align:center;font-size:12.5px;color:var(--muted,#64748b)}
.ls-chip{
  display:flex;align-items:center;gap:9px;margin-top:8px;
  background:var(--primary-soft,#eff6ff);border:1px solid var(--primary,#2563eb);
  border-radius:11px;padding:7px 11px;max-width:420px;
}
.ls-chip .ls-avatar{width:30px;height:30px;font-size:13px;background:var(--primary,#2563eb);color:#fff}
.ls-chip b{flex:1;font-size:13px;color:var(--primary,#2563eb)}
.ls-x{border:0;background:transparent;color:var(--muted,#64748b);cursor:pointer;font-size:13px;padding:2px 5px}
.ls-x:hover{color:var(--danger,#dc2626)}

/* پنل تحلیل فوری */
.ai-result-wrap{margin:10px 0}
.ai-alert{
  background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;
  border-radius:11px;padding:12px 14px;font-size:13px;
}
.ai-instant{
  background:var(--surface,#fff);border:1px solid var(--border,#e2e8f0);
  border-radius:16px;padding:16px;box-shadow:0 8px 28px rgba(15,23,42,.08);
}
body.dark .ai-instant{background:#101a2c;border-color:#22344f}
.ai-instant.level-danger{border-inline-start:4px solid #dc2626}
.ai-instant.level-warning{border-inline-start:4px solid #f59e0b}
.ai-instant.level-ok{border-inline-start:4px solid #16a34a}

.ai-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.ai-who{display:flex;align-items:center;gap:10px}
.ai-who .avatar{width:44px;height:44px;font-size:18px;background:var(--primary,#2563eb);color:#fff}
.ai-who b{font-size:15.5px;display:block}
.ai-who small{color:var(--muted,#64748b);font-size:11.5px}
.risk-badge{padding:6px 14px;border-radius:999px;font-size:12.5px;font-weight:800}

.ai-top{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.ai-gauge{position:relative;width:124px;height:124px;flex:none}
.ai-gauge svg{width:100%;height:100%}
.ai-gauge-val{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ai-gauge-val b{font-size:23px;color:var(--text,#1e293b)}
body.dark .ai-gauge-val b{color:#e2e8f0}
.ai-gauge-val small{font-size:10px;color:var(--muted,#64748b)}
.ai-tiles{display:flex;gap:8px;flex-wrap:wrap;flex:1;min-width:230px}
.ai-tile{
  flex:1;min-width:86px;background:var(--surface-2,#f8fafc);
  border:1px solid var(--border,#e2e8f0);border-radius:12px;
  padding:9px 8px;text-align:center;
}
body.dark .ai-tile{background:#16243a;border-color:#22344f}
.ai-tile b{display:block;font-size:15px;color:var(--text,#1e293b)}
body.dark .ai-tile b{color:#e2e8f0}
.ai-tile small{font-size:10.5px;color:var(--muted,#64748b)}

.ai-sec{margin:14px 0}
.ai-sec-t{font-size:13px;font-weight:800;color:var(--text,#1e293b);margin-bottom:8px;display:flex;align-items:center;gap:6px}
body.dark .ai-sec-t{color:#e2e8f0}
.ai-sec-t::before{content:'';width:4px;height:15px;border-radius:2px;background:var(--primary,#2563eb);display:inline-block}
.ai-chips{display:flex;gap:7px;flex-wrap:wrap}
.ai-chip{padding:6px 12px;border-radius:999px;font-size:12px;font-weight:600}
.ai-chip.weak{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}
.ai-chip.strong{background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}
.ai-chip-empty{font-size:12px;color:var(--muted,#64748b)}

.ai-text{
  background:var(--surface-2,#f8fafc);border:1px solid var(--border,#e2e8f0);
  border-radius:12px;padding:12px 14px;font-size:13px;line-height:2;
  max-height:320px;overflow-y:auto;
}
body.dark .ai-text{background:#16243a;border-color:#22344f}
.ai-text h1{font-size:14.5px;margin:0 0 10px}
.ai-text h2{font-size:13px;margin:12px 0 6px;color:var(--primary,#2563eb)}
.ai-text ul{margin:4px 0;padding-inline-start:18px}
.ai-text li{margin:3px 0}

.ai-foot{margin-top:12px;font-size:11.5px;color:var(--muted,#64748b)}
.ai-foot a{color:var(--primary,#2563eb)}

/* دکمه لودینگ */
.btn.loading{opacity:.6;pointer-events:none;position:relative}
.btn.loading::after{
  content:'';display:inline-block;width:12px;height:12px;margin-inline-start:6px;
  border:2px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;
  animation:aiSpin .7s linear infinite;vertical-align:middle;
}
@keyframes aiSpin{to{transform:rotate(360deg)}}

/* موبایل */
@media(max-width:640px){
  .ai-top{flex-direction:column;align-items:stretch}
  .ai-gauge{margin:0 auto}
  .ai-tiles{grid-template-columns:repeat(2,1fr)}
  .ls-results{width:100%}
}

/* ============ فاز ۱۲ — بخش کاربران (جدول + مودال ویرایش/ایجاد) ============ */

/* سلول کاربر در جدول */
.u-cell{display:flex;align-items:center;gap:9px;min-width:170px}
.u-avatar{
  width:32px;height:32px;border-radius:9px;flex:none;
  background:var(--primary-soft,#eff6ff);color:var(--primary,#2563eb);
  font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;
}
.u-info{line-height:1.35;min-width:0}
.u-info b{display:block;font-size:12.5px}
.u-info small{display:block;font-size:11px;color:var(--muted,#64748b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}

/* انتخابگر نقش‌ها در مودال */
.role-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
  gap:7px;max-height:190px;overflow-y:auto;padding:3px;
  border:1px solid var(--border,#e2e8f0);border-radius:12px;
}
.role-chip{
  display:flex;align-items:center;gap:7px;
  border:1.5px solid var(--border,#e2e8f0);border-radius:10px;
  padding:7px 10px;cursor:pointer;font-size:12.5px;
  transition:border-color .12s, background .12s;user-select:none;
}
.role-chip:hover{border-color:var(--primary,#2563eb)}
.role-chip input{accent-color:var(--primary,#2563eb);margin:0;flex:none}
.role-chip input:checked + span{color:var(--primary,#2563eb);font-weight:700}
.role-chip:has(input:checked){border-color:var(--primary,#2563eb);background:var(--primary-soft,#eff6ff)}

/* هدر مودال ویرایش: بلوک هویت کاربر */
.eu-ident{
  display:flex;align-items:center;gap:11px;
  background:var(--surface-2,#f8fafc);border:1px solid var(--border,#e2e8f0);
  border-radius:12px;padding:10px 13px;margin-bottom:14px;
}
body.dark .eu-ident{background:#16243a;border-color:#22344f}
.eu-ident .avatar{width:40px;height:40px;font-size:17px;background:var(--primary,#2563eb);color:#fff;font-weight:800;flex:none}
.eu-ident small{display:block;font-size:10.5px;color:var(--muted,#64748b)}
.eu-ident b{font-size:14px}

/* سکشن‌های فرم مودال */
.eu-sec{
  display:flex;align-items:center;gap:7px;
  font-size:12px;font-weight:800;color:var(--muted,#64748b);
  margin:15px 0 8px;
}
.eu-sec::before{content:'';width:4px;height:13px;border-radius:2px;background:var(--primary,#2563eb);display:inline-block}

/* فرم داخل مودال: فاصله بهینه */
.modal-b .form-grid{gap:11px}
.modal-b .portal-hint{font-size:11.5px;color:var(--muted,#64748b)}

/* موبایل: جدول کاربران */
@media(max-width:760px){
  .u-info small{max-width:110px}
  .role-grid{grid-template-columns:repeat(auto-fill,minmax(125px,1fr))}
}

/* ============ فاز ۱۳ — همبرگر، مودال، نقش‌ها ============ */

/* همبرگر: در همه عرض‌ها فعال — پنل منوی کامل زیر نوار بالا */
.nav-burger{display:inline-flex !important}
.mobnav{
  position:absolute;top:100%;inset-inline:0;z-index:65;
  background:var(--surface,#fff);border-bottom:1px solid var(--border,#e2e8f0);
  box-shadow:0 14px 30px rgba(15,23,42,.18);
  padding:10px 16px 16px;max-height:calc(100vh - 70px);overflow-y:auto;
  display:none;
}
body.dark .mobnav{background:#101a2c}
.mobnav:not([hidden]){display:block}
@media(max-width:1024px){.mobnav:not([hidden]){display:block}}
/* پنل منو: ستون‌بندی مرتب دوتایی در دسکتاپ */
.mobnav{columns:2;column-gap:26px}
.mobnav-group{break-inside:avoid;margin-bottom:10px}
@media(max-width:760px){.mobnav{columns:1}}

/* مودال: پس‌زمینه تیره (modal-open) + فرم جمع‌وجور
   توجه: topnav با z-index:600 بالای صفحه چسبان است؛ مودال و backdrop باید بالای آن
   بنشینند وگرنه نوار بالای صفحه، سرتیتر مودال («ساخت کلاس جدید» و…) را می‌پوشاند */
.modal{align-items:flex-start;z-index:660}
#modal-backdrop{z-index:650}
#toast-box{z-index:700}
.modal-card{max-height:90vh;background:#fff;box-shadow:0 40px 90px -20px rgba(2,6,23,.55);backdrop-filter:none}
body.dark .modal-card{background:#101a2c}
.modal-b{padding:16px 18px;background:#fff}
body.dark .modal-b{background:#101a2c}
.modal-h{background:#fff}
body.dark .modal-h{background:#101a2c}
.modal-f{background:#fff}
body.dark .modal-f{background:#101a2c}
.modal-b .form-grid{gap:10px}
.modal-b .input,.modal-b .select,.modal-b .textarea{background:#fff}
body.dark .modal-b .input,body.dark .modal-b .select,body.dark .modal-b .textarea{background:#0d1727}
#modal-backdrop{background:rgba(2,6,23,.78);backdrop-filter:none}

/* انتخابگر نقش در مودال ویرایش کاربر: سه‌ستونه فشرده داخل کادر */
.role-panel{
  border:1px solid var(--border,#e2e8f0);border-radius:12px;
  background:var(--surface,#fff);overflow:hidden;
}
body.dark .role-panel{background:#0d1727;border-color:#22344f}
.role-panel-h{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  padding:8px 11px;background:var(--surface-2,#f8fafc);
  border-bottom:1px solid var(--border,#e2e8f0);font-size:11.5px;
}
body.dark .role-panel-h{background:#16243a}
.role-panel-h b{font-size:11.5px;color:var(--text,#1e293b)}
.role-panel-h .cnt{color:var(--primary,#2563eb);font-weight:800}
.role-panel-h .qa{margin-inline-start:auto;display:flex;gap:5px}
.role-panel-h .qa button{
  border:1px solid var(--border,#e2e8f0);background:#fff;border-radius:7px;
  font-size:10.5px;padding:3px 8px;cursor:pointer;color:var(--muted,#64748b);
}
body.dark .role-panel-h .qa button{background:#16243a;border-color:#22344f;color:#9db0c8}
.role-panel-h .qa button:hover{color:var(--primary,#2563eb);border-color:var(--primary,#2563eb)}
.role-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;max-height:250px;padding:0;background:var(--surface,#fff);
}
body.dark .role-grid{background:#0d1727}
.role-chip{
  display:flex;align-items:center;gap:6px;
  padding:7px 10px;font-size:11.5px;border-radius:0;
  border:0;border-bottom:1px solid var(--border,#e2e8f0);
  border-inline-start:1px solid var(--border,#e2e8f0);
  margin:0;background:transparent;
}
body.dark .role-chip{border-color:#1d2c47}
.role-chip:hover{background:var(--primary-soft,#eff6ff)}
.role-chip input{width:13px;height:13px;margin:0;flex:none;accent-color:var(--primary,#2563eb)}
.role-chip span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text,#1e293b)}
body.dark .role-chip span{color:#dbe4f0}
.role-chip.on{background:var(--primary-soft,#eff6ff)}
.role-chip.on span{color:var(--primary,#2563eb);font-weight:700}
body.dark .role-chip.on{background:#16294d}
body.dark .role-chip.on span{color:#8ab4ff}

/* صفحه نقش‌ها/مجوزها */
.role-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.role-tab{
  border:1.5px solid var(--border,#e2e8f0);background:var(--surface-2,#f8fafc);
  border-radius:10px;padding:7px 12px;cursor:pointer;font:inherit;font-size:12.5px;
  display:flex;flex-direction:column;align-items:flex-start;line-height:1.5;transition:.12s;
}
body.dark .role-tab{background:#16243a;border-color:#22344f}
.role-tab small{font-size:10px;color:var(--muted,#64748b);direction:ltr}
.role-tab:hover{border-color:var(--primary,#2563eb)}
.role-tab.on{border-color:var(--primary,#2563eb);background:var(--primary-soft,#eff6ff)}
.role-tab.on b,.role-tab.on{color:var(--primary,#2563eb);font-weight:700}
.perm-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.perm-group{
  border:1px solid var(--border,#e2e8f0);border-radius:12px;padding:10px 12px;
  max-height:330px;overflow-y:auto;
}
.perm-group > b{display:block;font-size:12px;color:var(--primary,#2563eb);margin-bottom:7px;
  position:sticky;top:-10px;background:var(--surface,#fff);padding:4px 0;z-index:1}
body.dark .perm-group > b{background:#101a2c}
.perm-group label{display:flex;gap:6px;align-items:flex-start;font-size:12px;margin:4px 0;cursor:pointer;line-height:1.6}
.perm-group input{accent-color:var(--primary,#2563eb);margin-top:3px;flex:none}
@media(max-width:860px){.perm-groups{grid-template-columns:1fr}}

/* ============================================================
   نسخه 3.8 — درِر منوی کامل (☰) + چیدمان حرفه‌ای + سلف + فرم وب
   ============================================================ */

/* ---------- درِر منوی کامل — در همه اندازه‌صفحه‌ها باز می‌شود ---------- */
body.drawer-lock{overflow:hidden}
.drawer-overlay{position:fixed;inset:0;background:rgba(15,23,42,.55);backdrop-filter:blur(2px);z-index:95;animation:navFade .15s ease}
.navdrawer{
  position:fixed;top:0;bottom:0;left:0;width:320px;max-width:88vw;z-index:96;
  background:var(--card,#fff);box-shadow:18px 0 50px rgba(15,23,42,.28);
  transform:translateX(-100%);transition:transform .22s ease;display:flex;flex-direction:column;
  border-right:1px solid var(--border,#e2e8f0);
}
.navdrawer.open{transform:translateX(0)!important}
.navdrawer-head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border,#e2e8f0);background:linear-gradient(135deg,var(--primary,#4f46e5),#1e40af);flex:none}
.navdrawer-head .brand-logo{width:38px;height:38px;border-radius:11px;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;color:#fff;flex:none}
.navdrawer-head .brand-logo svg{width:21px;height:21px}
.navdrawer-head-t{flex:1;line-height:1.35}
.navdrawer-head-t b{color:#fff;font-size:14px;display:block}
.navdrawer-head-t small{color:rgba(255,255,255,.78);font-size:10.5px}
.navdrawer-head .icon-btn{color:#fff;background:rgba(255,255,255,.14);flex:none}
.navdrawer-head .icon-btn:hover{background:rgba(255,255,255,.26)}
.navdrawer-body{flex:1;overflow-y:auto;padding:12px 12px 18px;scrollbar-width:thin}
.navdrawer-group{margin-bottom:14px;border:1px solid var(--border,#e2e8f0);border-radius:14px;padding:8px;background:var(--bg,var(--surface-2,#f8fafc))}
[data-theme="dark"] .navdrawer-group{background:rgba(148,163,184,.06)}
.navdrawer-group.current{border-color:var(--primary,#4f46e5);box-shadow:0 0 0 3px rgba(79,70,229,.08)}
.navdrawer-title{font-size:11px;font-weight:800;color:var(--muted,#64748b);letter-spacing:.3px;padding:3px 8px 7px;display:flex;align-items:center;gap:6px}
.navdrawer-title::after{content:'';flex:1;height:1px;background:var(--border,#e2e8f0)}
.navdrawer-group.current .navdrawer-title{color:var(--primary,#4f46e5)}
.navdrawer-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;color:var(--text,#1e293b);text-decoration:none;font-size:13px;font-weight:500;transition:.13s;line-height:1.5}
[data-theme="dark"] .navdrawer-item{color:#cbd5e1}
[data-theme="dark"] .navdrawer-title{color:#8ea0b8}
[data-theme="dark"] .navdrawer-title::after{background:#223049}
[data-theme="dark"] .navdrawer-foot{background:transparent}
.navdrawer-item svg{width:16px;height:16px;opacity:.6;flex:none}
.navdrawer-item:hover{background:var(--card,#fff);color:var(--primary,#4f46e5);transform:translateX(-2px)}
[data-theme="dark"] .navdrawer-item:hover{background:rgba(148,163,184,.1);color:#a5b4fc}
.navdrawer-item:hover svg{opacity:1}
.navdrawer-item.active{background:linear-gradient(135deg,var(--primary,#4f46e5),var(--primary,#6366f1));color:#fff;font-weight:700;box-shadow:0 4px 14px rgba(79,70,229,.35)}
.navdrawer-item.active svg{opacity:1}
.navdrawer-foot{flex:none;padding:10px 16px;border-top:1px solid var(--border,#e2e8f0);font-size:10.5px;color:var(--muted,#64748b);background:var(--bg,#f8fafc)}
.nav-burger{font-size:17px;letter-spacing:1px}

/* ---------- بهبود چیدمان زیرمنوهای نوار بالا ---------- */
.navdrop-panel{min-width:248px;padding:8px}
.navdrop-item{padding:9px 12px;border-radius:10px;font-size:13px}
.navdrop-item:hover{background:var(--primary-soft,#eff6ff);color:var(--primary,#4f46e5)}
.navdrop-item:hover svg{opacity:1}
.navdrop-item.active{background:linear-gradient(135deg,var(--primary,#4f46e5),var(--primary,#6366f1));color:#fff}
.navdrop-item.active svg{opacity:1}
.navdrop-panel .navdrop-item + .navdrop-item{margin-top:2px}

/* ---------- کارت‌ها: عمق و نظم بیشتر ---------- */
.card{box-shadow:0 1px 3px rgba(15,23,42,.05),0 6px 18px -8px rgba(15,23,42,.08)}
.card-h{letter-spacing:.1px}
.card.stat{transition:transform .16s ease,box-shadow .16s ease}
.card.stat:hover{transform:translateY(-3px);box-shadow:0 12px 26px -10px rgba(15,23,42,.22)}
body.dark .card{box-shadow:0 1px 3px rgba(0,0,0,.35),0 8px 20px -10px rgba(0,0,0,.45)}

/* ---------- سلف: کارت‌های روزانه منو ---------- */
.cfm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:12px}
.cfm-day{
  border:1px solid var(--border,#e2e8f0);border-radius:16px;background:var(--card,#fff);

  padding:12px;display:flex;flex-direction:column;gap:8px;position:relative;overflow:hidden;
  transition:transform .15s ease,box-shadow .15s ease;min-height:130px;
}
.cfm-day:hover{transform:translateY(-3px);box-shadow:0 14px 30px -12px rgba(15,23,42,.25)}
.cfm-day.today{border-color:var(--primary,#4f46e5);box-shadow:0 0 0 3px rgba(79,70,229,.09)}
.cfm-day.today::before{content:'';position:absolute;inset-inline:0;top:0;height:3px;background:linear-gradient(90deg,var(--primary,#4f46e5),var(--primary-2,#8b5cf6))}
.cfm-date{display:flex;align-items:center;justify-content:space-between;gap:6px}
.cfm-date b{font-size:13px;color:var(--text,#1e293b)}
.cfm-date small{color:var(--muted,#64748b);font-size:10.5px}
.cfm-today-badge{background:linear-gradient(135deg,var(--primary,#4f46e5),var(--primary,#6366f1));color:#fff;font-size:9.5px;font-weight:800;padding:3px 9px;border-radius:999px}
.cfm-items{display:flex;flex-direction:column;gap:6px;flex:1}
.cfm-item{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--surface-2,#f8fafc);border:1px solid var(--border,#e2e8f0);border-radius:10px;padding:7px 9px}
body.dark .cfm-item{background:#16243a;border-color:#22344f}
.cfm-item .t{font-size:12.5px;font-weight:700;color:var(--text,#1e293b);display:flex;align-items:center;gap:6px}
.cfm-item .t svg{width:13px;height:13px;color:var(--success,#16a34a);flex:none}
.cfm-item .p{font-size:11.5px;color:var(--muted,#64748b);white-space:nowrap}
.cfm-item form{margin:0;display:flex}
.cfm-item .del{background:none;border:0;color:#dc2626;cursor:pointer;font-size:13px;padding:2px 4px;opacity:.7}
.cfm-item .del:hover{opacity:1}
.cfm-empty{color:var(--muted,#94a3b8);font-size:11.5px;text-align:center;padding:14px 4px;border:1px dashed var(--border,#e2e8f0);border-radius:10px}
.cfm-day-add{margin-top:2px}
.cfm-day-add .btn{width:100%;justify-content:center}

/* ---------- سلف: کیف پول ---------- */
.wallet-row{display:flex;align-items:center;gap:10px}
.wallet-av{width:34px;height:34px;border-radius:10px;background:var(--primary-soft,#eef2ff);color:var(--primary,#4f46e5);font-weight:800;display:flex;align-items:center;justify-content:center;font-size:13px;flex:none}
.wallet-low{color:#dc2626}
.balance-chip{display:inline-block;min-width:96px;text-align:center;font-weight:800;border-radius:10px;padding:5px 10px;font-size:12.5px}
.balance-chip.ok{background:rgba(22,163,74,.1);color:#16a34a}
.balance-chip.low{background:rgba(220,38,38,.1);color:#dc2626}

/* ---------- گزارش تحلیل: میله‌های درس کلاس ---------- */
.ai-lesson-bars{display:flex;flex-direction:column;gap:9px}
.ai-lesson-bar{display:grid;grid-template-columns:130px 1fr auto;align-items:center;gap:10px;font-size:12px}
.ai-lesson-bar .alb-name{font-weight:700;color:var(--text,#1e293b);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ai-lesson-bar .alb-track{height:9px;border-radius:6px;background:rgba(148,163,184,.2);overflow:hidden}
.ai-lesson-bar .alb-fill{display:block;height:100%;border-radius:6px}
.ai-lesson-bar .alb-val{min-width:38px;text-align:center;font-size:12.5px}
.ai-lesson-bar .alb-fail{grid-column:2/-1;color:var(--muted,#64748b);font-size:10.5px;margin-top:-4px}
.ai-report h3{margin:14px 0 6px;font-size:14px;color:var(--primary,#4f46e5);border-inline-start:3px solid var(--primary,#4f46e5);padding-inline-start:8px}
.ai-report ul{margin:6px 18px 6px 0;display:flex;flex-direction:column;gap:5px}
.ai-report li{line-height:1.9;font-size:13px}
.ai-report p{margin:6px 0;line-height:2;font-size:13px}
.ai-report i{color:var(--muted,#64748b)}
.no-print{}
@media print{
  .topnav,.foot,.navdrawer,.drawer-overlay,.no-print,.flash{display:none!important}
  body{background:#fff}
  .content{padding:0}
  .ai-instant{border:1px solid #cbd5e1;box-shadow:none}
}

/* ---------- فرم وب انتخاب واحد هنرجو (ساعت/محیط حرفه‌ای) ---------- */
.sw-hero{text-align:center;padding:6px 0 14px}
.sw-hero .sw-ic{width:64px;height:64px;margin:0 auto 10px;border-radius:20px;background:linear-gradient(135deg,var(--primary,#4f46e5),var(--primary-2,#8b5cf6));color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 26px -8px rgba(79,70,229,.55)}
.sw-hero .sw-ic svg{width:32px;height:32px}
.sw-hero h2{font-size:17.5px;margin:0 0 4px;color:var(--text,#1e293b)}
.sw-hero p{margin:0;color:var(--muted,#64748b);font-size:12px}
.sw-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}
.sw-stat{border:1px solid var(--border,#e2e8f0);border-radius:12px;padding:9px 10px;text-align:center;background:var(--surface-2,#f8fafc)}
.sw-stat b{display:block;font-size:16.5px;color:var(--primary,#4f46e5)}
.sw-stat small{font-size:10.5px;color:var(--muted,#64748b)}
.auth-card .input{font-size:15px}
.sw-form-title{display:flex;align-items:center;gap:8px;font-size:14.5px;margin-bottom:12px;color:var(--text,#1e293b)}
.sw-form-title svg{width:18px;height:18px;color:var(--primary,#4f46e5)}
.sw-foot-note{margin-top:12px;text-align:center;font-size:11px;color:var(--muted,#94a3b8)}

/* ---------- کارت CTA فرم وب در پنل هنرجو ---------- */
.sw-cta{
  display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:16px;text-decoration:none;
  background:linear-gradient(135deg,var(--primary,#4f46e5),#7c3aed);color:#fff;
  box-shadow:0 12px 28px -10px rgba(79,70,229,.5);transition:transform .15s ease,box-shadow .15s ease;
}
.sw-cta:hover{transform:translateY(-2px);box-shadow:0 16px 34px -10px rgba(79,70,229,.6);color:#fff}
.sw-cta .sw-cta-ic{width:44px;height:44px;border-radius:13px;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;flex:none}
.sw-cta .sw-cta-ic svg{width:22px;height:22px}
.sw-cta b{display:block;font-size:14.5px}
.sw-cta small{opacity:.85;font-size:11.5px}
.sw-cta .go{margin-inline-start:auto;font-size:18px}

/* ---------- پاکسازی و نگهداری ---------- */
.mnt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.mnt-card{border:1px solid var(--border,#e2e8f0);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:8px;background:var(--card,#fff)}
[data-theme="dark"] .mnt-card{background:#101a2c;border-color:#22344f}
.mnt-card .mnt-h{display:flex;align-items:center;gap:9px}
.mnt-card .mnt-h svg{width:19px;height:19px;color:var(--primary,#4f46e5)}
.mnt-card .mnt-h b{font-size:13.5px}
.mnt-card p{margin:0;font-size:11.8px;color:var(--muted,#64748b);line-height:1.9;flex:1}
.mnt-card .mnt-n{font-size:12px;background:var(--primary-soft,#eef2ff);color:var(--primary,#4f46e5);border-radius:9px;padding:4px 9px;font-weight:800;display:inline-block}
body.dark .mnt-card .mnt-n{background:rgba(99,102,241,.15)}

/* ---------- موبایل ---------- */
@media(max-width:640px){
  .cfm-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
  .ai-lesson-bar{grid-template-columns:90px 1fr auto}
  .navdrawer{width:86vw}
}

/* ================= گفتگو — رابط حرفه‌ای ================= */
.chat-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:900px){.chat-layout{grid-template-columns:1fr}}
.chat-people .card-b{display:flex;flex-direction:column;gap:10px}
.chat-search{display:flex;gap:8px}
.chat-search .input{flex:1;min-width:0}
.chat-sec-title{font-size:11px;font-weight:800;color:var(--muted,#64748b);letter-spacing:.3px;margin-top:4px}
.chat-list{display:flex;flex-direction:column;gap:6px;max-height:46vh;overflow-y:auto;padding-inline-end:3px}
.chat-list-scroll{max-height:44vh}
.chat-person{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:12px;text-decoration:none;color:var(--text,#1e293b);border:1px solid transparent;transition:.14s}
.chat-person:hover{background:var(--primary-soft,#eef2ff);border-color:var(--border,#e2e8f0)}
.chat-person .avatar{flex:none;width:38px;height:38px;border-radius:50%;background:#linear-gradient(135deg,var(--primary,var(--primary,#6366f1)),var(--primary-2,#8b5cf6));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
.chat-person-info{flex:1;min-width:0}
.chat-person-info b{display:block;font-size:12.8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-person-info small{display:block;font-size:10.5px;color:var(--muted,#64748b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-person.has-unread{background:var(--primary-soft,#eef2ff);border-color:rgba(99,102,241,.25)}
.chat-person .bell-badge{flex:none;background:#ef4444;color:#fff;font-size:10.5px;font-weight:700;border-radius:10px;padding:2px 8px}
.chat-intro .chat-rules{margin:8px 0 0;padding-inline-start:18px;font-size:12.5px;color:var(--muted,#64748b);line-height:2}
.chat-cta{display:flex;align-items:center;gap:10px;margin-top:14px;padding:12px 14px;border:1px dashed var(--border,#e2e8f0);border-radius:14px;background:var(--primary-soft,#eef2ff)}
.chat-cta b{font-size:13px}
.chat-cta small{display:block;color:var(--muted,#64748b);font-size:11px}
.chat-cta .btn{flex:none;margin-inline-start:auto}

.chat-thread-card{display:flex;flex-direction:column}
.chat-thread-head{display:flex;align-items:center;gap:12px}
.chat-thread-user{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.chat-thread-user .avatar{flex:none;width:38px;height:38px;border-radius:50%;background:#linear-gradient(135deg,var(--primary,var(--primary,#6366f1)),var(--primary-2,#8b5cf6));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
.chat-thread-user b{font-size:13.5px;display:block}
.chat-thread-user small{display:block;font-size:10.5px;color:var(--muted,#64748b)}
.chat-live{flex:none;display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;color:#94a3b8;border:1px solid var(--border,#e2e8f0);border-radius:999px;padding:3px 10px}
.chat-live span{width:7px;height:7px;border-radius:50%;background:#cbd5e1;transition:.3s}
.chat-live.on{color:#14823a;border-color:#b7e6c6}
.chat-live.on span{background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.18);animation:chatPulse 2s infinite}
@keyframes chatPulse{0%,100%{box-shadow:0 0 0 3px rgba(34,197,94,.18)}50%{box-shadow:0 0 0 6px rgba(34,197,94,.08)}}

.chat-msgs{height:min(56vh,520px);min-height:360px;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:
  radial-gradient(circle at 20% 10%,rgba(99,102,241,.05),transparent 40%),
  radial-gradient(circle at 80% 90%,rgba(139,92,246,.05),transparent 40%),var(--card,#fff)}
.chat-day{display:flex;justify-content:center;margin:6px 0}
.chat-day span{font-size:10.5px;font-weight:700;color:var(--muted,#64748b);background:var(--primary-soft,#eef2ff);border-radius:999px;padding:3px 12px}
.chat-msg{display:flex;flex-direction:column;max-width:min(72%,480px)}
.chat-msg.mine{align-self:flex-end;align-items:flex-start}
.chat-msg.theirs{align-self:flex-start;align-items:flex-start}
.chat-bubble{padding:9px 13px;border-radius:16px;font-size:13px;line-height:1.9;word-wrap:break-word;overflow-wrap:anywhere;box-shadow:0 1px 2px rgba(15,23,42,.08);animation:chatIn .18s ease}
@keyframes chatIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.chat-msg.mine .chat-bubble{background:linear-gradient(135deg,var(--primary,var(--primary,#6366f1)),#7c3aed);color:#fff;border-end-start-radius:6px}
.chat-msg.theirs .chat-bubble{background:var(--bg,#f8fafc);border:1px solid var(--border,#e2e8f0);color:var(--text,#1e293b);border-end-end-radius:6px}
.chat-msg small{margin-top:4px;font-size:10px;color:var(--muted,#64748b)}
.chat-empty{margin:auto;text-align:center;color:var(--muted,#64748b);font-size:13px;padding:30px}

.chat-send{display:flex;gap:10px;align-items:flex-end;padding:12px 14px;border-top:1px solid var(--border,#e2e8f0);background:var(--card,#fff)}
.chat-send textarea{flex:1;resize:none;border:1px solid var(--border,#e2e8f0);border-radius:14px;padding:10px 14px;font-family:inherit;font-size:13px;line-height:1.8;min-height:42px;max-height:120px;background:var(--bg,#f8fafc);color:var(--text,#1e293b);outline:none}
.chat-send textarea:focus{border-color:var(--primary,var(--primary,#6366f1));box-shadow:0 0 0 3px rgba(99,102,241,.14)}
.chat-send .btn{flex:none;height:42px}

body.dark .chat-person:hover{background:rgba(148,163,184,.08);border-color:#223049}
body.dark .chat-person.has-unread{background:rgba(99,102,241,.16);border-color:rgba(99,102,241,.35)}
body.dark .chat-msgs{background:
  radial-gradient(circle at 20% 10%,rgba(99,102,241,.09),transparent 40%),
  radial-gradient(circle at 80% 90%,rgba(139,92,246,.09),transparent 40%),#0e1729}
body.dark .chat-day span{background:rgba(148,163,184,.12);color:#8ea0b8}
body.dark .chat-msg.theirs .chat-bubble{background:#16243a;border-color:#22344f;color:#e6eefb}
body.dark .chat-send{background:#111a2c;border-color:#223049}
body.dark .chat-send textarea{background:#0d1626;border-color:#22344f;color:#e6eefb}
body.dark .chat-cta{background:rgba(99,102,241,.14);border-color:#223049}

/* ---------- سیستم تم و چیدمان (انتخاب کاربر) ---------- */
html{--primary-2:#7c3aed}
html[data-accent="ocean"]{--primary:#0284c7;--primary-600:#0369a1;--primary-soft:#e0f2fe;--primary-2:#0ea5e9}
html[data-accent="emerald"]{--primary:#059669;--primary-600:#047857;--primary-soft:#d1fae5;--primary-2:#10b981}
html[data-accent="sunset"]{--primary:#ea580c;--primary-600:#c2410c;--primary-soft:#ffedd5;--primary-2:#f59e0b}
html[data-accent="rose"]{--primary:#e11d48;--primary-600:#be123c;--primary-soft:#ffe4e6;--primary-2:#f43f5e}
html[data-accent="royal"]{--primary:#2563eb;--primary-600:#1d4ed8;--primary-soft:#dbeafe;--primary-2:#3b82f6}
[data-theme="dark"]{--primary-soft:rgba(99,102,241,.16)}
[data-theme="dark"][data-accent="ocean"]{--primary-soft:rgba(14,165,233,.16)}
[data-theme="dark"][data-accent="emerald"]{--primary-soft:rgba(16,185,129,.16)}
[data-theme="dark"][data-accent="sunset"]{--primary-soft:rgba(245,158,11,.16)}
[data-theme="dark"][data-accent="rose"]{--primary-soft:rgba(244,63,94,.16)}
[data-theme="dark"][data-accent="royal"]{--primary-soft:rgba(59,130,246,.16)}

/* چیدمان ستون کنار (سایدبار) */
body.layout-sidebar .topnav-menu{display:none}
body.layout-sidebar .side-nav{display:block}
/* سایدبار ثابت در سمت inline-start است؛ محتوا با padding (نه margin) جابه‌جا
   می‌شود تا مرکزچینی و عرض کارت‌ها هرگز خراب نشود */
body.layout-sidebar .content{max-width:none;margin-inline:0;padding-inline-start:296px;padding-inline-end:30px}
body.layout-sidebar .foot{margin-inline:0;padding-inline-start:296px}
.side-nav{display:none;position:fixed;top:64px;bottom:0;inset-inline-start:0;width:264px;overflow-y:auto;z-index:60;
  background:var(--card,#fff);border-inline-end:1px solid var(--border,#e2e8f0);padding:14px 12px 30px;box-shadow:6px 0 24px rgba(15,23,42,.05)}
.side-nav-group{margin-bottom:12px}
.side-nav-group>b{display:block;font-size:10.5px;font-weight:800;color:var(--muted,#64748b);padding:8px 10px 4px;letter-spacing:.3px}
.side-nav a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:12px;color:var(--text,#1e293b);text-decoration:none;font-size:12.8px;font-weight:600;transition:.13s;line-height:1.6}
.side-nav a:hover{background:var(--primary-soft,#eef2ff);color:var(--primary,#4f46e5);transform:translateX(0)}
.side-nav a.active{background:linear-gradient(135deg,var(--primary,#4f46e5),var(--primary-2,#7c3aed));color:#fff;box-shadow:0 6px 16px -8px var(--primary,#4f46e5)}
.side-nav a svg{width:16px;height:16px;flex:none;opacity:.9}
@media (max-width:1100px){
  body.layout-sidebar .side-nav{display:none}
  body.layout-sidebar .topnav-menu{display:flex}
  body.layout-sidebar .content{padding-inline-start:24px;padding-inline-end:22px}
  body.layout-sidebar .foot{padding-inline-start:16px}
}

/* پایداری چیدمان — هیچ عنصری نباید شبکه یا عرض والد را بشکند */
.grid>*,.form-grid>*,.kpi-grid>*,.news-grid>*,.people>*,.toolbar>*{min-width:0}
.content>*{max-width:100%;min-width:0}
.content{overflow-x:clip}
img,svg,canvas,iframe,video{max-width:100%}
.card{overflow-wrap:break-word}
.toolbar{flex-wrap:wrap;row-gap:10px}

/* =====================================================================
   فاز ۸ — پنل حرفه‌ای: سبک‌های قالب، حالت تاریک باکیفیت، منوهای چندستونه
   ===================================================================== */

/* ---------- متغیرهای سطح (Surface) — قبلاً تعریف نشده بودند و در تم تاریک
   به‌جای پنل‌ها رنگ سفید جایگزین می‌شد (علت اصلی ناخوانایی متن تاریک) ---------- */
:root{
    --surface:#ffffff;
    --surface-2:#f1f5f9;
    --panel:#ffffff;
    --panel-d:#16243a;
}
[data-theme="dark"]{
    --surface:#111a2c;
    --surface-2:#1c2942;
    --panel:#111a2c;
    --text:#e8eef8;
    --muted:#9db0c9;
    --border:#28374f;
}
/* ورودی‌ها، برچسب‌ها و اجزای با پس‌زمینه سفید ثابت */
[data-theme="dark"] .input,[data-theme="dark"] .select,[data-theme="dark"] .textarea{
    background:#0f1930;border-color:#2c3d5c;color:var(--text);
}
[data-theme="dark"] .input:hover,[data-theme="dark"] .select:hover,[data-theme="dark"] .textarea:hover{border-color:#3d5173}
[data-theme="dark"] .input::placeholder,[data-theme="dark"] .textarea::placeholder{color:#7288a5}
[data-theme="dark"] label{color:#d5e0ef}
[data-theme="dark"] .checkbox{background:#0f1930;border-color:#2c3d5c;color:var(--text)}
[data-theme="dark"] .qr-box{background:#111a2c}
[data-theme="dark"] .timeline-item{background:#0f1930}
[data-theme="dark"] .sched-table th{background:#0f1930}
[data-theme="dark"] .portal-hint{background:rgba(99,102,241,.1);border-color:#334363;color:#c7d2fe}
[data-theme="dark"] .hint{color:var(--muted)}
[data-theme="dark"] .toolbar .input{background:#0f1930}
[data-theme="dark"] .modal,[data-theme="dark"] .modal-b{background:#111a2c;color:var(--text)}
[data-theme="dark"] .appear,[data-theme="dark"] .palette{background:#111a2c;border-color:#2c3d5c}
[data-theme="dark"] .appear-seg button{background:#0f1930;color:var(--text);border-color:#2c3d5c}
[data-theme="dark"] .appear-seg button.sel{background:var(--primary);color:#fff;border-color:var(--primary)}
[data-theme="dark"] .appear-swatch{background:#0f1930}
[data-theme="dark"] .side-nav{background:#111a2c}
[data-theme="dark"] .mobnav{background:#111a2c}
[data-theme="dark"] .user-chip-btn .avatar{background:var(--primary);color:#fff}
[data-theme="dark"] .scrollctl button{background:#111a2c;color:#a5b4fc;border-color:#2c3d5c}
[data-theme="dark"] .scrollctl button:hover{background:var(--primary);color:#fff}

/* ---------- منوی آبشاری چندستونه (رفع حالت تک‌ستونی و فضای خالی) ---------- */
.navdrop-panel.multi{min-width:230px}
.navdrop.open .navdrop-panel.multi{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(215px,max-content));
    gap:2px 6px;
    width:max-content;
    max-width:min(680px,92vw);
    align-items:start;
    padding:8px;
}
.navdrop-panel.multi .navdrop-item{white-space:nowrap}
@media(max-width:1024px){
    .navdrop.open .navdrop-panel.multi{
        display:none; /* در موبایل از درِر منوی کامل استفاده می‌شود */
    }
}

/* ---------- دکمه‌های پیمایش بالا/پایین ---------- */
.scrollctl{
    position:fixed;bottom:20px;inset-inline-end:18px;z-index:95;
    display:flex;flex-direction:column;gap:8px;
}
.scrollctl button{
    width:42px;height:42px;border-radius:13px;border:1px solid var(--border);
    background:var(--surface,#fff);color:var(--primary);font-size:16px;font-weight:900;
    cursor:pointer;opacity:0;pointer-events:none;transform:translateY(12px);
    transition:opacity .2s,transform .2s,background .15s,color .15s;
    box-shadow:0 10px 26px rgba(15,23,42,.18);
}
.scrollctl button.on{opacity:1;pointer-events:auto;transform:none}
.scrollctl button:hover{background:var(--primary);color:#fff}

/* ---------- نوار تب‌های حرفه‌ای (تنظیمات) ---------- */
.tabstrip{
    display:flex;gap:8px;flex-wrap:wrap;align-items:center;
    position:sticky;top:66px;z-index:40;
    background:color-mix(in srgb,var(--card,#fff) 97%,transparent);
    border:1px solid var(--border,#e2e8f0);border-radius:14px;
    padding:8px;margin-bottom:16px;box-shadow:var(--shadow);
}
.tabstrip .tablink{
    display:inline-flex;align-items:center;gap:7px;
    padding:8px 14px;border-radius:10px;text-decoration:none;
    font-size:12.5px;font-weight:700;color:var(--muted,#64748b);
    border:1px solid transparent;transition:.15s;
}
.tabstrip .tablink:hover{background:var(--primary-soft,#eef2ff);color:var(--primary)}
.tabstrip .tablink.on{background:var(--primary);color:#fff;box-shadow:0 6px 16px -8px var(--primary)}
.tabstrip .tablink.dim{margin-inline-start:auto;border:1px solid var(--border,#e2e8f0)}
[data-theme="dark"] .tabstrip{background:color-mix(in srgb,#111a2c 92%,transparent)}

/* ---------- کارت‌های دسترسی سریع نگهداری ---------- */
.ops-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.ops-card{
    display:flex;flex-direction:column;gap:5px;text-decoration:none;
    background:var(--card,#fff);border:1px solid var(--border,#e2e8f0);border-radius:15px;
    padding:16px;transition:.18s;box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.ops-card:hover{transform:translateY(-3px);border-color:var(--primary);box-shadow:0 14px 30px -18px var(--primary,.5)}
.ops-card .ic{font-size:24px;line-height:1}
.ops-card b{font-size:13.5px;color:var(--text)}
.ops-card small{font-size:11.5px;color:var(--muted);line-height:1.8}

/* ---------- سلکت قابل جستجو ---------- */
.sselect{position:relative;min-width:0}
.sselect .sselect-input{min-height:44px}
.sselect-list{
    position:absolute;top:calc(100% + 4px);inset-inline:0;z-index:50;
    background:var(--surface,#fff);border:1px solid var(--border,#e2e8f0);
    border-radius:12px;box-shadow:0 18px 44px rgba(15,23,42,.18);
    max-height:280px;overflow-y:auto;padding:5px;
}
.sselect-item{display:block;width:100%;text-align:right;background:none;border:0;font:inherit;font-size:13px;color:var(--text,#1e293b);padding:8px 11px;border-radius:8px;cursor:pointer}
.sselect-item:hover{background:var(--primary-soft,#eef2ff);color:var(--primary)}
.sselect-empty{padding:14px;text-align:center;color:var(--muted);font-size:12.5px}

/* =====================================================================
   سبک‌های قالب — سه هویت واقعاً متمایز (نه فقط رنگ):
   • مدرن: گرادیان، شیشه‌ای، گوشه‌گرد ۱۴px، سایه‌های نرم (پیش‌فرض)
   • کلاسیک: رسمی سندگونه — زمینهٔ عاجی، حاشیه‌های سرمه‌ای، جدول شطرنجی،
     سرفصل‌های خط‌کشی‌دار وزین، دکمه‌های مستطیلی
   • فلت: تخت و تیز — بدون هیچ سایه‌ای، گوشهٔ ۳px، توپ‌بار سفید با متن تیره،
     حاشیه‌های پررنگ، جدول خطی
   ===================================================================== */
[data-style="classic"]{
    --radius:8px;
    --shadow:0 1px 3px rgba(30,58,138,.08);
    --shadow-lift:0 3px 12px -6px rgba(30,58,138,.25);
}
[data-style="classic"] body{background:#f1efe8;background-image:none}
[data-style="classic"] .card{border-radius:8px;border:1.5px solid #c9d4ec;box-shadow:0 1px 3px rgba(30,58,138,.08)}
[data-style="classic"] .card-h{background:linear-gradient(180deg,#e8edf8,transparent);border-bottom:1.5px solid #c9d4ec;border-radius:8px 8px 0 0}
[data-style="classic"] .card-h b{font-weight:900;font-size:14.5px}
[data-style="classic"] .page-title{font-weight:900;font-size:17px;display:inline-block;border-bottom:3px double #1e3a8a;padding-bottom:7px}
[data-style="classic"] .btn{border-radius:4px}
[data-style="classic"] .btn-primary,[data-style="classic"] .btn-success,[data-style="classic"] .btn-danger{
    background-image:linear-gradient(180deg,color-mix(in srgb,var(--primary) 88%,#fff),var(--primary));
    border:1px solid color-mix(in srgb,var(--primary) 70%,#000)}
[data-style="classic"] .btn-outline{border:1.5px solid var(--border)}
[data-style="classic"] .input,[data-style="classic"] .select,[data-style="classic"] .textarea,[data-style="classic"] .checkbox{border-radius:4px;border-width:1.5px}
[data-style="classic"] .table th,[data-style="classic"] .table td{border:1px solid #dbe3f2}
[data-style="classic"] .table thead th{background:#dfe7f7;color:#1e3a8a;font-weight:900;border-bottom:2px solid #1e3a8a}
[data-style="classic"] .badge{border-radius:4px;border:1px solid rgba(30,58,138,.25)}
[data-style="classic"] .topnav{background:#1e3a8a;background-image:none;box-shadow:none;border-bottom:3px solid #16266b}
[data-style="classic"] .topnav .brand-logo{border-radius:6px}
[data-style="classic"] .navdrop-btn{border-radius:4px}
[data-style="classic"] .navdrop-panel{border-radius:6px;border:1.5px solid #c9d4ec}
[data-style="classic"] .side-nav{background:#1e3a8a;border-inline-end:3px solid #16266b}
[data-style="classic"] .side-nav a{color:#dbeafe;border-radius:5px}
[data-style="classic"] .side-nav a.active{background:#16266b;box-shadow:none;color:#fff}
[data-style="classic"] .side-nav b{color:#93c5fd;letter-spacing:0;font-weight:900}
[data-style="classic"] .navdrawer{border-inline-start:3px solid #16266b}
[data-style="classic"] .stat-chip{border-radius:8px;border:1.5px solid #c9d4ec}
[data-style="classic"] .flash,[data-style="classic"] .modal,[data-style="classic"] .appear{border-radius:7px}
[data-style="classic"] .icon-btn{border-radius:6px}
[data-style="classic"] .foot{border-top:3px double #c9d4ec;background:transparent}

[data-theme="dark"][data-style="classic"] body{background:#0e1526}
[data-theme="dark"][data-style="classic"] .card{border-color:#2c3d63}
[data-theme="dark"][data-style="classic"] .card-h{background:linear-gradient(180deg,rgba(147,197,253,.09),transparent);border-color:#2c3d63}
[data-theme="dark"][data-style="classic"] .table th,[data-theme="dark"][data-style="classic"] .table td{border-color:#2c3d63}

[data-style="flat"]{
    --radius:3px;
    --shadow:none;
    --shadow-lift:none;
    --ring:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent);
}
[data-style="flat"] body{background:#f2f3f5;background-image:none;color:#0f172a}
[data-style="flat"] .card{border-radius:3px;box-shadow:none;border:1.5px solid #b9c2cf}
[data-style="flat"] .card-h{background:none;border-bottom:2px solid #0f172a}
[data-style="flat"] .page-title{font-weight:900}
[data-style="flat"] .btn{border-radius:3px;box-shadow:none;background-image:none}
[data-style="flat"] .btn-outline{border:1.5px solid #0f172a;color:#0f172a}
[data-style="flat"] .btn-primary,[data-style="flat"] .btn-success,[data-style="flat"] .btn-danger{box-shadow:none}
[data-style="flat"] .input,[data-style="flat"] .select,[data-style="flat"] .textarea,
[data-style="flat"] .icon-btn,[data-style="flat"] .checkbox{border-radius:3px;box-shadow:none;border-width:1.5px}
/* توپ‌بار سفید با متن تیره — چیدمان کاملاً متفاوت از گرادیان مدرن */
[data-style="flat"] .topnav{background:#fff;background-image:none;box-shadow:none;border-bottom:2px solid #0f172a}
[data-style="flat"] .topnav .brand-text b{color:#0f172a}
[data-style="flat"] .topnav .brand-text small{color:#64748b}
[data-style="flat"] .topnav .brand-logo{background:#0f172a;color:#fff;border-radius:3px}
[data-style="flat"] .navdrop-btn{color:#0f172a;border-radius:0}
[data-style="flat"] .navdrop-btn:hover,[data-style="flat"] .navdrop.open .navdrop-btn{background:#eef2ff;color:var(--primary)}
[data-style="flat"] .navdrop.open-active .navdrop-btn{background:#eef2ff;color:var(--primary)}
[data-style="flat"] .topbar .user-chip-btn{border:1.5px solid #cbd5e1;box-shadow:none}
[data-style="flat"] .topbar-date{background:#0f172a;box-shadow:none;border-radius:3px}
[data-style="flat"] .topnav .icon-btn{color:#0f172a}
[data-style="flat"] .navdrop-panel{border-radius:3px;box-shadow:none;border:1.5px solid #0f172a}
[data-style="flat"] .navdrop-panel::before{display:none}
[data-style="flat"] .side-nav{background:#fff;border-inline-end:1.5px solid #0f172a;border-radius:0}
[data-style="flat"] .side-nav a{color:#0f172a}
[data-style="flat"] .side-nav a.active{background:#0f172a;color:#fff}
[data-style="flat"] .navdrawer{border-inline-start:1.5px solid #0f172a;border-radius:0}
[data-style="flat"] .stat-chip,[data-style="flat"] .stat,[data-style="flat"] .kpi-grid .card{background:#fff;background-image:none;border:1.5px solid #b9c2cf;border-radius:3px;box-shadow:none}
[data-style="flat"] .badge{border-radius:2px;box-shadow:none;background-image:none;border:1.5px solid currentColor}
[data-style="flat"] .flash{box-shadow:none;background-image:none;border-radius:3px;border-width:1.5px}
[data-style="flat"] .table thead th{background:#e5e7eb;color:#0f172a;font-weight:900;border-bottom:2px solid #0f172a}
[data-style="flat"] .table th,[data-style="flat"] .table td{border-bottom:1px solid #d3d9e2}
[data-style="flat"] .modal,[data-style="flat"] .appear{border-radius:3px;box-shadow:0 0 0 4px rgba(15,23,42,.08)}
[data-style="flat"] .tabstrip,[data-style="flat"] .ops-card,[data-style="flat"] .scrollctl button{box-shadow:none;border-radius:3px}
[data-style="flat"] .user-chip-btn{border-radius:3px}
[data-style="flat"] .foot{border-top:2px solid #0f172a;background:transparent}

[data-theme="dark"][data-style="flat"] .topnav{background:#111a2c;border-color:#334155}
[data-theme="dark"][data-style="flat"] .topnav .brand-text b{color:#f1f5f9}
[data-theme="dark"][data-style="flat"] .topnav .brand-text small{color:#94a3b8}
[data-theme="dark"][data-style="flat"] .navdrop-btn{color:#cbd5e1}
[data-theme="dark"][data-style="flat"] .navdrop-btn:hover,[data-theme="dark"][data-style="flat"] .navdrop.open .navdrop-btn{background:#1e293b;color:#93c5fd}
[data-theme="dark"][data-style="flat"] .topnav .icon-btn{color:#e2e8f0}
[data-theme="dark"][data-style="flat"] .card{border-color:#334155}
[data-theme="dark"][data-style="flat"] .card-h{border-color:#64748b}
/* برند و نشانگر فعال در فلت — بر قاعدهٔ !important تم روشن (سفید روی سفید نبودنش)؛
   دو صفت = specificity بالاتر از قاعدهٔ سفیدکنندهٔ [data-theme="light"] */
[data-theme="light"][data-style="flat"] .topnav .brand,
[data-theme="light"][data-style="flat"] .topnav .brand-text b{color:#0f172a!important}
[data-theme="light"][data-style="flat"] .topnav .brand-text small{color:#64748b!important}
[data-style="flat"] .navdrop.open-active .navdrop-btn::after{background:var(--primary)}
[data-theme="dark"][data-style="flat"] .topnav .brand,
[data-theme="dark"][data-style="flat"] .topnav .brand-text b{color:#f1f5f9!important}
[data-theme="dark"][data-style="flat"] .topnav .brand-text small{color:#94a3b8!important}
[data-theme="dark"][data-style="flat"] .navdrop.open-active .navdrop-btn::after{background:#93c5fd}



.table-wrap{max-width:100%}
/* فرم‌های چندستونه فشرده + جمع‌شدن در موبایل */
.form-grid.cols-4{grid-template-columns:repeat(4,1fr);gap:12px}
@media (max-width:900px){.form-grid.cols-4{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.form-grid.cols-4{grid-template-columns:1fr}.form-grid.cols-4>[style*="span 2"]{grid-column:1/-1!important}}

/* تراکم فشرده */
html[data-density="compact"] .content{font-size:12.8px}
html[data-density="compact"] .card-h{padding:9px 14px}
html[data-density="compact"] .card-b{padding:10px 12px}
html[data-density="compact"] .table th,html[data-density="compact"] .table td{padding:6px 9px}
html[data-density="compact"] .btn{padding:6px 13px;font-size:12px}
html[data-density="compact"] .input,html[data-density="compact"] .select,html[data-density="compact"] .textarea{padding:7px 11px;font-size:12.5px}
html[data-density="compact"] .stat-chip{padding:7px 12px}

/* گوشه‌ها */
html[data-radius="soft"] .card,html[data-radius="soft"] .btn,html[data-radius="soft"] .input,html[data-radius="soft"] .select,html[data-radius="soft"] .textarea,html[data-radius="soft"] .stat-chip{border-radius:9px}
html[data-radius="sharp"] .card,html[data-radius="sharp"] .btn,html[data-radius="sharp"] .input,html[data-radius="sharp"] .select,html[data-radius="sharp"] .textarea,html[data-radius="sharp"] .stat-chip{border-radius:3px}

/* پنل ظاهر و چیدمان */
.appear-overlay[hidden]{display:none}
.appear-overlay{position:fixed;inset:0;background:rgba(15,23,42,.5);backdrop-filter:blur(3px);z-index:110;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto}
.appear{width:560px;max-width:100%;background:var(--card,#fff);border:1px solid var(--border,#e2e8f0);border-radius:20px;box-shadow:0 30px 80px -20px rgba(15,23,42,.45);overflow:hidden}
.appear-h{display:flex;align-items:center;gap:10px;padding:16px 20px;border-bottom:1px solid var(--border,#e2e8f0);font-weight:800;font-size:14.5px}
.appear-h .x{margin-inline-start:auto;border:none;background:none;font-size:16px;cursor:pointer;color:var(--muted,#64748b);padding:4px 8px;border-radius:8px}
.appear-h .x:hover{background:var(--bg,#f8fafc)}
.appear-b{padding:16px 20px 20px;display:flex;flex-direction:column;gap:16px}
.appear-sec>b{display:block;font-size:11.5px;font-weight:800;color:var(--muted,#64748b);margin-bottom:8px}
.appear-swatches{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.appear-swatch{position:relative;border:2px solid var(--border,#e2e8f0);border-radius:12px;padding:0;cursor:pointer;background:none;overflow:hidden}
.appear-swatch i{display:block;height:34px;border-radius:0}
.appear-swatch small{display:block;font-size:9.5px;font-weight:700;color:var(--text,#1e293b);padding:4px 0}
.appear-swatch.sel{border-color:var(--primary,#4f46e5);box-shadow:0 0 0 3px var(--primary-soft,#eef2ff)}
.appear-seg{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.appear-seg button{border:1.5px solid var(--border,#e2e8f0);background:none;border-radius:10px;padding:8px 6px;font-family:inherit;font-size:11.8px;font-weight:700;color:var(--text,#1e293b);cursor:pointer;transition:.13s}
.appear-seg button.sel{border-color:var(--primary,#4f46e5);background:var(--primary-soft,#eef2ff);color:var(--primary,#4f46e5)}
.appear-f{display:flex;align-items:center;gap:8px;padding:12px 20px;border-top:1px solid var(--border,#e2e8f0);background:var(--bg,#f8fafc)}
.appear-f small{color:var(--muted,#64748b);font-size:10.5px;flex:1}
body.dark .appear{background:#111a2c;border-color:#223049}
body.dark .appear-h{border-color:#223049}
body.dark .appear-f{background:#0e1729;border-color:#223049}
body.dark .appear-seg button{color:#cbd5e1;border-color:#223049}
body.dark .appear-swatch small{color:#e2e8f0}

/* =====================================================================
   3.11 — پالایش نهایی چیدمان: عرض پنجره، فاصله‌ها و آیتم‌های مدرن
   ===================================================================== */
:root{--content-max:1560px;--gutter:clamp(16px,2.4vw,34px);--r-lg:16px;--r-md:11px}

/* عرض ستون محتوا هماهنگ با نوار بالا — مرکزچین در هر عرضی */
.topnav-in{max-width:var(--content-max)}
.content{max-width:var(--content-max);padding:22px var(--gutter) 14px}
.foot{max-width:var(--content-max);padding:14px var(--gutter)}

/* حالت «ستون کنار»: ستون محتوا در فضای باقی‌مانده از کنار سایدبار مرکزچین می‌شود */
body.layout-sidebar .content{
    max-width:calc(var(--content-max) + 296px);margin-inline:auto;
    padding:22px calc(max((100% - var(--content-max) - 296px) / 2, 0px) + 30px) 14px
            calc(max((100% - var(--content-max) - 296px) / 2, 0px) + 296px);
}
body.layout-sidebar .foot{
    margin-inline:auto;max-width:calc(var(--content-max) + 296px);
    padding:14px calc(max((100% - var(--content-max) - 296px) / 2, 0px) + 296px)
            calc(max((100% - var(--content-max) - 296px) / 2, 0px) + 30px);
}
@media (max-width:1100px){
    body.layout-sidebar .content{max-width:none;padding:18px 24px 12px}
    body.layout-sidebar .foot{max-width:none;padding:14px 16px}
}

/* کارت‌ها — سایه لطیف دولایه و گوشه ۱۶px */
.card{border-radius:var(--r-lg);box-shadow:0 1px 2px rgba(15,23,42,.05),0 10px 30px -22px rgba(15,23,42,.28)}
.card-h{font-weight:800;letter-spacing:.005em}

/* فرم‌ها و دکمه‌ها — شعاع یکدست، حلقه فوکوس و بازخورد لمسی */
.btn{border-radius:11px;transition:transform .12s ease,box-shadow .15s ease,background .15s ease,border-color .15s ease,color .15s ease}
.btn:active{transform:translateY(1px)}
.btn-primary{box-shadow:0 6px 16px -8px rgba(79,70,229,.55)}
.btn-primary:hover{box-shadow:0 8px 20px -8px rgba(79,70,229,.65)}
.input,.select,.textarea{border-radius:11px;transition:border-color .15s,box-shadow .15s,background .15s}
.input:focus-visible,.select:focus-visible,.textarea:focus-visible,.btn:focus-visible,.checkbox:focus-within{
    outline:none;border-color:var(--primary,#6366f1);box-shadow:0 0 0 3px var(--primary-soft,#eef2ff)}

/* نشان‌ها — کپسولی */
.badge{border-radius:999px;padding:3px 11px;font-weight:700}

/* کارت‌های آماری — ارتفاع یکسان و شکستن امن */
.kpi-grid{gap:14px}
.kpi-grid>*{min-width:0;height:100%}

/* شبکه‌های فرم — سلول‌ها هرگز از کادر بیرون نمی‌زنند */
.form-grid>*{min-width:0}
.mnt-grid>*{min-width:0}
.toolbar{flex-wrap:wrap}

/* اسکرول‌بار ظریف و هماهنگ */
*{scrollbar-width:thin;scrollbar-color:rgba(148,163,184,.5) transparent}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:rgba(148,163,184,.45);border-radius:99px;border:2px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:rgba(148,163,184,.7);background-clip:content-box;border:2px solid transparent}
::-webkit-scrollbar-track{background:transparent}
::selection{background:var(--primary-soft,#e0e7ff)}

/* گاردهای رسانه‌ای */
img,canvas,iframe,svg,video{max-width:100%}

/* موبایل — فاصله‌های بهینه */
@media (max-width:760px){
    .content{padding:16px 14px 10px}
    .card-h{padding:12px 14px}
    .card-b{padding:12px 14px}
}

/* احترام به تنظیم «کاهش حرکت» سیستم عامل */
@media (prefers-reduced-motion:reduce){
    *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
}

/* ===================== نسخه 3.12.0 — سلکت جستجودار + تقویم شمسی ===================== */
.srch-sel{position:relative;min-width:0}
select.srch-native{position:absolute;opacity:0;pointer-events:none;height:0;width:0}
.srch-box{position:relative;display:flex;align-items:center}
.srch-input{width:100%;padding-inline-end:34px}
.srch-toggle{position:absolute;inset-inline-end:6px;background:none;border:none;cursor:pointer;
    color:var(--muted,#64748b);font-size:12px;padding:6px;line-height:1}
.srch-list{position:absolute;top:calc(100% + 6px);inset-inline:0;z-index:70;background:var(--card,#fff);
    border:1px solid var(--line,#e2e8f0);border-radius:12px;box-shadow:0 18px 44px rgba(15,23,42,.16);
    max-height:280px;overflow:auto;padding:6px}
.srch-item{display:block;width:100%;text-align:start;background:none;border:none;cursor:pointer;
    padding:9px 11px;border-radius:8px;font:inherit;font-size:13px;color:var(--ink,#0f172a);transition:.12s}
.srch-item:hover{background:var(--primary-soft,#eef2ff);color:var(--primary,#4f46e5)}
.srch-item.sel{background:var(--primary,#4f46e5);color:#fff;font-weight:700}
.srch-empty{padding:12px;text-align:center;color:var(--muted,#64748b);font-size:12.5px}

.jcal{position:fixed;z-index:90;background:var(--card,#fff);border:1px solid var(--line,#e2e8f0);
    border-radius:16px;box-shadow:0 24px 60px rgba(15,23,42,.22);padding:12px;width:272px;
    animation:jcalIn .16s ease}
@keyframes jcalIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.jcal-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.jcal-h b{font-size:13.5px;font-weight:800}
.jcal-h button{width:30px;height:30px;border-radius:9px;border:1px solid var(--line,#e2e8f0);
    background:var(--card,#fff);cursor:pointer;font-size:14px;color:var(--ink,#0f172a)}
.jcal-h button:hover{background:var(--primary-soft,#eef2ff)}
.jcal-d{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}
.jcal-d span{text-align:center;font-size:10.5px;font-weight:800;color:var(--muted,#64748b);padding:3px 0}
.jcal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.jcal-g button{height:30px;border-radius:8px;border:1px solid transparent;background:none;
    cursor:pointer;font:inherit;font-size:12px;color:var(--ink,#0f172a)}
.jcal-g button:hover{background:var(--primary-soft,#eef2ff);color:var(--primary,#4f46e5)}
.jcal-g button.on{background:var(--primary,#4f46e5);color:#fff;font-weight:800}
.jcal-f{display:flex;gap:8px;justify-content:space-between;margin-top:10px;border-top:1px dashed var(--line,#e2e8f0);padding-top:9px}
.jcal-f button{border:1px solid var(--line,#e2e8f0);background:var(--card,#fff);border-radius:9px;
    padding:6px 12px;font:inherit;font-size:12px;font-weight:700;cursor:pointer;color:var(--ink,#0f172a)}
.jcal-f button:hover{background:var(--primary-soft,#eef2ff)}

/* گریدهای چندستونه فرم‌ها */
.form-cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.form-cols .lbl{display:block;font-size:12px;font-weight:700;margin-bottom:5px;color:var(--muted,#64748b)}
@media(max-width:1100px){.form-cols{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.form-cols{grid-template-columns:1fr}}
.card-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.card-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media(max-width:1100px){.card-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.card-grid-2,.card-grid-3{grid-template-columns:1fr}}

/* ===================== نسخه 3.12.0 — نوار ابزار مدیریت (کاربران و بخش‌های سیستمی) ===================== */
.admin-toolbar{display:grid;grid-template-columns:minmax(320px,1.6fr) auto;gap:14px;align-items:end;
    background:var(--card,#fff);border:1px solid var(--line,#e2e8f0);border-radius:16px;
    padding:16px 18px;margin-bottom:14px;box-shadow:var(--shadow-sm,0 1px 2px rgba(15,23,42,.04))}
.admin-search{display:grid;grid-template-columns:1.4fr 1fr auto auto;gap:10px;align-items:end}
.admin-search .lbl{display:block;font-size:11.5px;font-weight:700;color:var(--muted,#64748b);margin-bottom:5px}
.admin-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.admin-bulk{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:linear-gradient(135deg,#eef2ff,#f5f3ff);
    border:1px solid #c7d2fe;border-radius:13px;padding:10px 14px;margin:0 0 12px}
.admin-bulk .bulk-selected{font-size:12.5px;font-weight:800;color:#3730a3}
@media(max-width:1000px){.admin-toolbar{grid-template-columns:1fr}.admin-search{grid-template-columns:1fr 1fr}.admin-actions{justify-content:flex-start}}
@media(max-width:620px){.admin-search{grid-template-columns:1fr}}

/* نمرات زیر ۱۰ و قبولی در جداول پورتال */
.f10{color:#b91c1c;font-weight:800}
.fok{color:#065f46;font-weight:700}
/* ---------- داشبورد پیشرفته (بنر خوش‌آمد + ابزارهای مدیریتی) ---------- */
.dash-hero{background:linear-gradient(120deg,var(--primary,#4f46e5),var(--primary-2,#7c3aed) 55%,#0ea5e9);border-radius:16px;padding:18px 22px;color:#fff;box-shadow:0 14px 34px -14px rgba(79,70,229,.55);margin-bottom:14px}
.dash-hero-in{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.dash-hero b{font-size:17px;display:block}
.dash-hero small{opacity:.85;font-size:12.5px}
.dash-hero-actions{display:flex;gap:8px;flex-wrap:wrap}
.today-bells{display:flex;gap:8px;flex-wrap:wrap}
.tb-chip{display:flex;flex-direction:column;gap:1px;background:var(--primary-soft,#eef2ff);border:1px solid color-mix(in srgb,var(--primary) 25%,transparent);border-radius:11px;padding:7px 13px;text-decoration:none;color:var(--text);transition:.15s;min-width:118px}
.tb-chip:hover{transform:translateY(-2px);box-shadow:0 8px 18px -8px rgba(79,70,229,.4)}
.tb-chip b{font-size:11.5px;color:var(--primary)}
.tb-chip span{font-size:12.5px;font-weight:700}
.tb-chip small{font-size:10.5px;color:var(--muted)}
.att-ring{--p:0;width:104px;height:104px;border-radius:50%;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:conic-gradient(var(--success) calc(var(--p)*1%),color-mix(in srgb,var(--border) 70%,transparent) 0);position:relative}
.att-ring::before{content:'';position:absolute;inset:11px;border-radius:50%;background:var(--card,#fff)}
.att-ring b,.att-ring small{position:relative;z-index:1;line-height:1.35}
.att-ring b{font-size:20px}
.att-ring small{font-size:10.5px;color:var(--muted)}
.att-legend{display:flex;flex-direction:column;gap:6px;font-size:12.5px}
.att-legend span{display:flex;align-items:center;gap:7px}
.att-legend i{width:11px;height:11px;border-radius:4px;display:inline-block}
.att-legend b{margin-inline-start:auto;min-width:34px;text-align:left}
.mini-progress{height:8px;border-radius:99px;background:color-mix(in srgb,var(--border) 60%,transparent);overflow:hidden;margin-bottom:6px}
.mini-progress i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--success),#34d399);transition:width .4s}
.unrec-list{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.unrec-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 11px;border:1px solid var(--border);border-radius:10px;text-decoration:none;color:var(--text);font-size:12.5px;background:rgba(220,38,38,.04)}
.unrec-row:hover{border-color:var(--danger)}
.bar-row{display:flex;align-items:center;gap:9px;margin-bottom:9px}
.bar-label{min-width:92px;font-size:12px;font-weight:700;color:var(--text)}
.bar-track{flex:1;height:12px;border-radius:99px;background:color-mix(in srgb,var(--border) 55%,transparent);overflow:hidden}
.bar-track i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--danger),#f87171)}
.bar-row b{min-width:30px;text-align:left;font-size:12px}
.bday-list{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}
.bday-chip{display:inline-flex;align-items:center;gap:6px;background:var(--warning-soft,#fef3c7);color:#92400e;border-radius:99px;padding:5px 12px;font-size:12px;font-weight:700}
.bday-chip small{font-weight:500;opacity:.75}
.pay-week{border-top:1px dashed var(--border);padding-top:9px;font-size:12.5px;color:var(--text)}
@media(max-width:900px){.grid-3.dash-3{grid-template-columns:1fr}}

/* ==================================================================
   لایهٔ واکنش‌گرای موبایل (نسخهٔ 3.26) — تنظیم حرفه‌ای برای تلفن همراه
   منوی اصلی در نمایشگرهای کوچک: دکمهٔ ☰ نوار بالا + کشوی کناری navdrawer.
   این لایه فقط ظاهر صفحه را برای تلفن تنظیم می‌کند؛ دسکتاپ دست‌نخورده است.
   ================================================================== */

/* جلوگیری از سرریز افقی کل صفحه روی موبایل */
@media (max-width:760px){
    html,body{max-width:100%;overflow-x:hidden}
}

/* ---- نوار بالا: فشرده، بدون شکستن، همهٔ دکمه‌ها لمس‌پذیر ---- */
@media (max-width:760px){
    .topnav-in{min-height:54px;padding:0 10px;gap:6px}
    .topnav .brand{padding:0;min-width:0;flex:1 1 auto}
    .topnav .brand-text{min-width:0;overflow:hidden}
    .topnav .brand-text b{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
    .topnav-actions{gap:3px;flex-shrink:0}
    .topnav-actions .icon-btn{width:37px;height:37px;padding:0;border-radius:10px}
    .topnav-actions .icon-btn svg{width:18px;height:18px}
    .topnav-actions .icon-btn .bell-badge{font-size:9.5px;min-width:16px;height:16px;line-height:16px;top:-4px;inset-inline-start:-4px}
    /* در تلفن واقعی دو دکمهٔ کم‌مصرف پنهان می‌شوند تا نوار جا شود؛
       جست‌وجوی سریع و شخصی‌سازی از مسیرهای دیگر هم در دسترس‌اند */
    @media (max-width:480px){
        .topnav-actions #paletteBtn,.topnav-actions #appearBtn{display:none}
    }
    /* پنل‌های شناور نوار (اعلان‌ها/حساب کاربری): تمام‌عرض صفحه تا بیرون نمایشگر نزنند */
    .notif-panel,.user-panel{position:fixed;inset-inline:8px;top:58px;width:auto;max-width:none;min-width:0}
    .navdrop-panel::before{display:none}
    /* نوار تب‌های sticky نباید زیر نوار بالای موبایل گیر کند */
    .tabstrip{top:56px;padding:6px}
    .tabstrip .tablink{padding:7px 11px;font-size:12px}
}

/* ---- فرم‌ها: فونت 16px جلوی بزرگ‌نمایی خودکار iOS را می‌گیرد ---- */
@media (max-width:640px){
    .input,.select,.textarea{font-size:16px !important}
    .form-grid{gap:12px}
    .input-ic svg{width:17px;height:17px}
}

/* ---- مودال: برگهٔ پایینی تمام‌عرض (bottom sheet) — عادت اپ‌های موبایل ---- */
@media (max-width:640px){
    .modal{padding:0;align-items:flex-end}
    .modal-card{max-width:100%;max-height:94vh;border-radius:18px 18px 0 0;box-shadow:0 -20px 60px rgba(15,23,42,.35)}
    .modal-h{padding:14px 16px}
}

/* ---- محتوا و کارت‌ها: جمع‌وجور و خوانا ---- */
@media (max-width:600px){
    .topbar{padding:10px 12px;gap:8px;flex-wrap:wrap}
    .page-title{font-size:15.5px}
    .card-h{padding:13px 14px}
    .card-f{padding:10px 12px}
    .topbar-actions{gap:6px}
    .toolbar{gap:6px}
}

/* ---- شبکه‌بندی: تک‌ستونه در تلفن واقعی (≤480px) ---- */
@media (max-width:480px){
    .grid-3,.grid-4,.grid-5,.qa-grid,.color-grid{grid-template-columns:1fr}
    .stat{padding:14px 16px}
    .stat-info b{font-size:21px}
    .mnt-card{padding:12px}
    .gb-cell{width:56px;font-size:12px}
}

/* ---- کشوی کناری منو (navdrawer): از سمت راست (شروع در RTL) باز می‌شود و
       بالاتر از نوار بالا است تا سربرگ و دکمهٔ بستن همیشه دیده شوند ---- */
.navdrawer{
    left:auto;right:0;
    transform:translateX(110%);
    border-inline-end:0;border-inline-start:1px solid var(--border,#e2e8f0);
    box-shadow:-18px 0 50px rgba(15,23,42,.28);
    z-index:700;
}
.drawer-overlay{z-index:690}
.navdrawer.open{transform:translateX(0)!important}

/* ---- اجزای خاص ---- */
.idcard{width:min(340px,100%)}
.navdrawer{width:min(320px,86vw)}
@supports (padding:env(safe-area-inset-bottom)){
    .navdrawer-body{padding-bottom:calc(18px + env(safe-area-inset-bottom))}
    .content{padding-bottom:calc(30px + env(safe-area-inset-bottom))}
}

/* ---------- حالت روشن: تضمین کنتراست اجزای کلیدی ----------
   هر قاعدهٔ دیگری که رنگ این اجزا را در تم روشن خراب کند، خنثی می‌شود:
   دکمهٔ اصلی همیشه سرمه‌ای/بنفش پررنگ با متن سفید، دکمه‌های ثانویه با متن
   تیره روی سفید، متن‌های راهنما خاکستری خوانا. */
[data-theme="light"] .btn-primary,
[data-theme="light"] [data-style] .btn-primary{
    background:linear-gradient(135deg,#4f46e5,#6d28d9)!important;color:#fff!important;
    border:1px solid #4338ca!important;text-shadow:none!important;
}
[data-theme="light"] .btn-primary:hover{background:linear-gradient(135deg,#4338ca,#5b21b6)!important;color:#fff!important}
[data-theme="light"] .btn-primary .icon,[data-theme="light"] .btn-primary svg{color:#fff!important;fill:currentColor}
[data-theme="light"] .btn-outline,[data-theme="light"] .btn-ghost{
    background:#fff!important;color:#1e293b!important;border:1.5px solid #cbd5e1!important;
}
[data-theme="light"] .btn-outline:hover,[data-theme="light"] .btn-ghost:hover{border-color:#4f46e5!important;color:#4f46e5!important}
[data-theme="light"] .btn-danger{background:linear-gradient(135deg,#dc2626,#b91c1c)!important;color:#fff!important;border:1px solid #b91c1c!important}
[data-theme="light"] .btn-success{background:linear-gradient(135deg,#059669,#047857)!important;color:#fff!important;border:1px solid #047857!important}
[data-theme="light"] .btn-warning{background:linear-gradient(135deg,#d97706,#b45309)!important;color:#fff!important;border:1px solid #b45309!important}
[data-theme="light"] .hint{color:#475569!important}
[data-theme="light"] .lbl{color:#1e293b!important}
[data-theme="light"] .input,[data-theme="light"] .select,[data-theme="light"] .textarea{
    background:#fff!important;color:#0f172a!important;border:1.5px solid #dbe2f0!important;
}
[data-theme="light"] .input::placeholder{color:#94a3b8!important}
[data-theme="light"] .up-zone{background:#f8faff!important;border:2px dashed #c7d2fe!important;color:#1e293b!important}
[data-theme="light"] .file-name{color:#475569!important}
[data-theme="light"] summary.btn{background:#fff!important;color:#1e293b!important;border:1.5px solid #cbd5e1!important}
[data-theme="light"] .flash{color:#0f172a!important}
[data-theme="light"] .table td,[data-theme="light"] .table th{color:#17203a!important}
[data-theme="light"] .card,[data-theme="light"] .card-h,[data-theme="light"] .card-b{color:#17203a!important}
[data-theme="light"] .card-b .btn{min-height:38px}
[data-theme="light"] a{color:#4f46e5!important}
[data-theme="light"] .btn-soft{background:#eef2ff!important;color:#4338ca!important;border:1px solid #c7d2fe!important}

/* ---------- حالت روشن: خوانایی پورتال و جزئیات (تکمیلی) ---------- */
[data-theme="light"] .portal-hint{background:#f8faff!important;border:1px solid #dbe2f0!important;color:#1e293b!important}
[data-theme="light"] .card small,[data-theme="light"] .card .c-muted{color:#52627a!important}
[data-theme="light"] .empty-state{color:#52627a!important}
[data-theme="light"] .timeline-item{background:#fff!important;border:1px solid #e2e8f0!important;color:#17203a!important}
[data-theme="light"] .tl-date{color:#64748b!important}
[data-theme="light"] .steps-bar .step{color:#334155!important}
[data-theme="light"] .steps-bar .step.on{color:#1e293b!important}
[data-theme="light"] .steps-bar .step b{background:#4f46e5!important;color:#fff!important}
[data-theme="light"] code{background:#f1f5f9;color:#0f172a!important}
[data-theme="light"] .stat-chip{color:#334155!important}
[data-theme="light"] .card label,[data-theme="light"] .card .lbl{color:#1e293b!important}
[data-theme="light"] .badge-muted{background:#e2e8f0!important;color:#334155!important}
[data-theme="light"] .badge,[data-theme="light"] .badge b{color:inherit}
[data-theme="light"] .flash .btn,[data-theme="light"] .modal .btn{min-height:38px}
[data-theme="light"] .auth-card,[data-theme="light"] .auth-card *{color:#17203a}
[data-theme="light"] .auth-card .btn-primary{color:#fff!important}
[data-theme="light"] .switch-auth{background:#f8faff!important;border:1px solid #dbe2f0!important}
[data-theme="light"] .side-nav a,[data-theme="light"] .mobnav a{color:#17203a}
[data-theme="light"] .side-nav a.active,[data-theme="light"] .side-nav a:hover{color:#4f46e5!important}
[data-theme="light"] .topnav{color:#fff!important}


/* ---------- 3.37.0: رفع باگ منوها ----------
   ۱) متن نامرئی زیرمنو: قانون سراسری «a» در تم روشن، رنگ آیتم فعال زیرمنو و کشوی منو
   (سفید روی گرادیان سرمه‌ای) و آیتم خطر را هم سرمه‌ای می‌کرد → رنگ‌های مخصوص منو تثبیت شد.
   ۲) تیرهٔ ماندگار دکمهٔ گروه: پس‌زمینهٔ تیره فقط هنگام باز بودن یا هاور است؛
   گروهِ صفحهٔ فعلی فقط یک نقطهٔ کوچک زیر دکمه دارد و با خروج از منو پاک دیده می‌شود. */
[data-theme="light"] .navdrop-item,
[data-theme="light"] .navdrawer-item{color:#1e293b!important}
[data-theme="light"] .navdrop-item.active,
[data-theme="light"] .navdrop-item.active svg,
[data-theme="light"] .navdrawer-item.active,
[data-theme="light"] .navdrawer-item.active svg{color:#fff!important}
[data-theme="light"] .navdrop-item.danger,
[data-theme="light"] .navdrawer-item.danger{color:#dc2626!important}
[data-theme="light"] .notif-row{color:#1e293b!important}
[data-theme="light"] .notif-row b{color:#0f172a!important}
[data-theme="light"] .notif-row span{color:#64748b!important}
[data-theme="light"] .topnav .brand,
[data-theme="light"] .topnav .brand-text b,
[data-theme="light"] .topnav .brand-text small{color:#fff!important}
.navdrop.open-active .navdrop-btn{background:transparent;color:rgba(255,255,255,.95);position:relative}
.navdrop.open-active .navdrop-btn::after{content:'';position:absolute;bottom:1px;right:50%;transform:translateX(50%);width:12px;height:3px;border-radius:2px;background:rgba(255,255,255,.5)}

/* ---- v3.46.0: کنتراست و خوانایی تب‌ها، دکمه‌های کم‌رنگ و متن‌های خاکستری ---- */
.tabstrip .tablink{color:var(--text,#1e293b);font-weight:600}
.tabstrip .tablink:hover{color:var(--primary,#4f46e5)}
.tabstrip .tablink.on{color:#fff;font-weight:800;box-shadow:0 6px 16px -8px var(--primary),inset 0 0 0 1px rgba(255,255,255,.18)}
.tabstrip .tablink.dim{color:var(--text,#1e293b);background:var(--card,#fff)}
.tabstrip .tablink:focus-visible{outline:2px solid var(--primary,#4f46e5);outline-offset:2px}
[data-theme="dark"] .tabstrip .tablink{color:var(--text,#e2e8f0)}
[data-theme="dark"] .tabstrip .tablink.dim{background:#16213a}
.c-muted{color:#475569}
[data-theme="dark"] .c-muted{color:#b9c6d8}

/* ---- v3.47.0: خوانایی حالت تیره + چینش استاندارد تب‌ها و کارت‌های سیستمی ---- */
/* چک‌باکس/رادیو: رنگ برند در هر دو حالت (استاندارد) */
input[type="checkbox"],input[type="radio"]{accent-color:var(--primary)}

/* حالت روشن: متن ثانویه پررنگ‌تر (سازگاری AA برای متن‌های ریز) */
:root{--muted:#5b6b82}

/* حالت تیره: توکن‌های روشن‌تر — رفع «ناخوانا شدن نوشته‌ها» */
[data-theme="dark"]{--muted:#a9bfd9;--text:#eef3fc}
[data-theme="dark"] .hint,[data-theme="dark"] .stat-chip,[data-theme="dark"] .navdrawer-title{color:var(--muted)}
[data-theme="dark"] .input::placeholder,[data-theme="dark"] .textarea::placeholder{color:#93a9c6}
[data-theme="dark"] option{background:#111a2c;color:var(--text)}
[data-theme="dark"] .btn-outline,[data-theme="dark"] summary.btn{background:#1c2942;color:#c7d2fe;border-color:#334363}
[data-theme="dark"] .btn-outline:hover,[data-theme="dark"] summary.btn:hover{border-color:var(--primary);background:#243352;color:#c7d2fe}
[data-theme="dark"] .badge-muted{background:rgba(148,163,184,.14);color:#c3cfe0;border-color:#223049}
[data-theme="dark"] .badge-warning{color:#fbbf24}
[data-theme="dark"] .badge-success{color:#34d399}
[data-theme="dark"] .badge-danger{color:#f87171}
[data-theme="dark"] .badge-info{color:#7dd3fc}
[data-theme="dark"] .badge-primary{color:#a5b4fc}
[data-theme="dark"] .flash{color:#eef3fc}
[data-theme="dark"] .table td a{color:#a5b4fc}
[data-theme="dark"] .c-muted{color:#c3cfe0}

/* نوار تب‌ها: حالت استاندارد —‌ فعال: گرادیان برند + سفید؛ غیرفعال: خوانا */
.tabstrip{gap:6px;padding:7px}
.tabstrip .tablink{padding:9px 15px;border-radius:999px;font-weight:700;color:var(--muted,#5b6b82)}
.tabstrip .tablink.on{background:linear-gradient(135deg,var(--primary),var(--primary-600,#4338ca));color:#fff;font-weight:800;box-shadow:0 8px 18px -8px var(--primary)}
.tabstrip .tablink.on:hover{color:#fff}
.tabstrip .tablink.dim{background:transparent;color:var(--muted,#5b6b82);border:1px solid var(--border)}
.tabstrip .tablink.dim:hover{border-color:var(--primary);color:var(--primary)}
[data-theme="dark"] .tabstrip .tablink{color:#b9c9df}
[data-theme="dark"] .tabstrip .tablink.dim{background:transparent;color:#b9c9df}

/* کارت‌های سیستمی (ops): کاشی آیکن + هاور حرفه‌ای */
.ops-card{align-items:flex-start}
.ops-card .ic{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;font-size:22px;border-radius:12px;background:var(--primary-soft);border:1px solid color-mix(in srgb,var(--primary) 22%,transparent);flex:none;margin-bottom:4px;transition:.18s}
.ops-card:hover .ic{background:var(--primary);border-color:var(--primary)}
[data-theme="dark"] .ops-card .ic{background:rgba(99,102,241,.18);border-color:#334363}
[data-theme="dark"] .ops-card:hover .ic{background:var(--primary)}

/* ============ پنل تنظیمات سیستمی — بازطراحی بصری v3.53 ============ */
.set-hero{
    display:flex;align-items:center;gap:14px;
    background:linear-gradient(135deg,var(--primary,#4f46e5),var(--accent,#7c3aed));
    border-radius:var(--radius,16px);color:#fff;
    padding:16px 22px;margin-bottom:14px;
    box-shadow:0 12px 28px -16px rgba(79,70,229,.6);
}
.set-hero .set-ic{font-size:28px;line-height:1;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.25);border-radius:14px;width:54px;height:54px;display:flex;align-items:center;justify-content:center;flex:none}
.set-hero h2{margin:0;font-size:16.5px;font-weight:800;letter-spacing:-.01em}
.set-hero p{margin:3px 0 0;font-size:12.5px;opacity:.92;line-height:1.8}
.set-hero .set-crumb{margin-inline-start:auto;font-size:11px;background:rgba(255,255,255,.16);padding:5px 12px;border-radius:99px;white-space:nowrap}
@media(max-width:640px){.set-hero .set-crumb{display:none}}
/* نوار تب‌های تنظیمات — چسبان، کارتی، گروه‌بندی‌شده با برچسب گروه و جداکنندهٔ عمودی */
.set-tabs{
    position:sticky;top:66px;z-index:40;
    display:flex;flex-wrap:wrap;align-items:stretch;gap:10px 14px;
    background:var(--card,#fff);border:1px solid var(--border,#e5e9f4);border-radius:14px;
    padding:9px 14px 10px;margin-bottom:16px;max-width:1180px;margin-inline:auto;
    box-shadow:var(--shadow,0 1px 2px rgba(15,23,42,.05));
}
.set-tabs .set-grp{display:flex;flex-direction:column;gap:4px}
.set-tabs .set-grp-t{font-size:10px;font-weight:800;letter-spacing:.02em;color:var(--muted,#64748b);padding-inline-start:4px}
.set-tabs .set-grp-tabs{display:flex;flex-wrap:wrap;gap:6px}
.set-tabs .set-grp-sep{width:1px;background:var(--border,#e5e9f4);align-self:stretch;margin-block:2px}
.set-tabs .tablink{
    display:inline-flex;align-items:center;gap:7px;border-radius:99px;padding:7px 14px;
    font-size:12.5px;font-weight:600;border:1px solid var(--border,#e5e9f4);
    background:var(--surface-2,#f8fafc);color:var(--text,#1e293b);text-decoration:none;transition:.14s;
}
.set-tabs .tablink span{font-size:14.5px;line-height:1}
.set-tabs .tablink:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-1px)}
.set-tabs .tablink.on{background:linear-gradient(135deg,var(--primary,#4f46e5),var(--accent,#7c3aed));border-color:transparent;color:#fff;box-shadow:0 8px 18px -10px rgba(79,70,229,.7)}
.set-tabs .tablink.dim{border-style:dashed}
@media(max-width:900px){.set-tabs{position:static}.set-tabs .set-grp-sep{display:none}}
[data-theme="dark"] .set-tabs{background:#131c30}
[data-theme="dark"] .set-tabs .tablink{background:#1a2540;border-color:#2a3956;color:#e2e8f0}
[data-theme="dark"] .set-tabs .set-grp-sep{background:#2a3956}
.set-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(430px,100%),1fr));gap:14px;align-items:start;max-width:1180px;margin-inline:auto}
.set-sec{
    background:var(--card,#fff);border:1px solid var(--border,#e5e9f4);border-radius:var(--radius,16px);
    padding:16px 18px;box-shadow:var(--shadow,0 1px 2px rgba(15,23,42,.05));
    display:flex;flex-direction:column;gap:11px;min-width:0;
}
.set-sec .set-sec-t{display:flex;align-items:center;gap:9px;font-size:13.5px;padding-bottom:9px;border-bottom:1px dashed var(--border,#e5e9f4)}
.set-sec .set-sec-t .sic{font-size:17px;line-height:1;flex:none}
.set-sec .set-sec-d{color:var(--muted,#64748b);font-size:11.5px;line-height:1.9;margin-top:-3px}
.set-toggle{
    display:flex;gap:10px;align-items:flex-start;font-size:12.8px;line-height:1.9;
    background:var(--surface-2,#f8fafc);border:1px solid var(--border,#e5e9f4);border-radius:12px;
    padding:9px 12px;transition:.14s;cursor:pointer;
}
.set-toggle:hover{border-color:var(--primary)}
.set-toggle input{appearance:none;-webkit-appearance:none;width:36px;height:20px;border-radius:99px;background:#cbd5e1;position:relative;cursor:pointer;transition:.15s;flex:none;margin-top:3px;border:0}
.set-toggle input::after{content:'';position:absolute;top:2px;inset-inline-start:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:.15s;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.set-toggle input:checked{background:var(--primary,#4f46e5)}
.set-toggle input:checked::after{transform:translateX(-16px)}
.set-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border,#e5e9f4);border-radius:99px;padding:6px 13px;font-size:12px;cursor:pointer;transition:.13s;background:var(--card,#fff);user-select:none}
.set-chip:has(input:checked){background:var(--primary-soft,#eef2ff);border-color:var(--primary);color:var(--primary);font-weight:700}
.set-chip input{accent-color:var(--primary);width:14px;height:14px}
.set-foot{display:flex;gap:10px;align-items:center;justify-content:flex-end;border-top:1px dashed var(--border,#e5e9f4);padding-top:13px;margin-top:4px;grid-column:1/-1}
.set-foot .hint{margin-inline-end:auto;font-size:11.5px}
[data-theme="dark"] .set-toggle{background:rgba(148,163,184,.07)}
[data-theme="dark"] .set-toggle input{background:#4a5a75}
[data-theme="dark"] .set-chip:has(input:checked){background:rgba(99,102,241,.16)}
@media(max-width:640px){.set-hero{padding:14px 16px}.set-sec{padding:13px 14px}}

/* — v3.66: تفکیک دروس عمومی/مشترک از تخصصی — */
.sselect-ghead{padding:6px 11px 3px;font-size:11.3px;font-weight:800;color:var(--muted,#64748b);border-top:1px solid var(--border,#e2e8f0);margin-top:3px;background:var(--soft,#f8fafc);position:sticky;top:0}
.sselect-ghead:first-child{border-top:0;margin-top:0}
.grp-row td{background:var(--primary-soft,#eef2ff);font-weight:800;font-size:12.2px;color:var(--primary,#4f46e5);border-inline-start:3px solid var(--primary,#4f46e5)}
.grid[data-lshow="common"] tr[data-ltype="spec"]{display:none!important}
.grid[data-lshow="spec"] tr[data-ltype="common"]{display:none!important}
.grid[data-lshow="common"] tr.grp-row[data-gtype="spec"]{display:none!important}
.grid[data-lshow="spec"] tr.grp-row[data-gtype="common"]{display:none!important}

/* =====================================================================
   v3.99.2 — پنل تنظیمات: کنتراست تضمینی در حالت روشن + چیدمان جذاب‌تر
   رنگ‌های حالت روشن «ثابت» هستند (وابسته به متغیر نیستند) تا در هر
   محیطی خوانا بمانند؛ پس‌زمینهٔ ثابت زیر گرادیان‌ها هم برای مرورگرهایی
   که گرادیان را رندر نمی‌کنند قرار داده شد (رفع متنِ سفید روی سفید).
   ===================================================================== */

/* ---------- سربرگ (Hero) ---------- */
.set-hero{
    position:relative;overflow:hidden;
    background-color:#4338ca;                                   /* جایگزینِ امن زیر گرادیان */
    background-image:linear-gradient(135deg,#4f46e5 0%,#6d28d9 55%,#7c3aed 100%);
    color:#fff!important;border-radius:18px;padding:18px 24px;
    box-shadow:0 16px 34px -18px rgba(79,70,229,.55),inset 0 1px 0 rgba(255,255,255,.18);
}
.set-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(420px 160px at 85% -30%,rgba(255,255,255,.22),transparent 70%);pointer-events:none}
.set-hero .set-ic{
    font-size:26px;width:56px;height:56px;border-radius:16px;
    background:rgba(255,255,255,.16);border:1.5px solid rgba(255,255,255,.35);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.25);position:relative;
}
.set-hero h2{color:#fff!important;font-size:17px;text-shadow:0 1px 2px rgba(0,0,0,.18);position:relative}
.set-hero p{color:rgba(255,255,255,.95)!important;text-shadow:0 1px 2px rgba(0,0,0,.16);position:relative}
.set-hero .set-crumb{position:relative;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.3);color:#fff;font-weight:700;padding:6px 14px;border-radius:99px}

/* ---------- نوار تب‌ها ---------- */
.set-tabs{border-radius:16px;box-shadow:0 2px 10px -6px rgba(15,23,42,.12)}
.set-tabs .set-grp-t{color:#475569!important;font-size:10.5px}
.set-tabs .tablink{
    background:#fff!important;color:#0f172a!important;border:1.5px solid #cbd5e1;
    padding:8px 15px;font-size:12.8px;font-weight:700;border-radius:99px;
    box-shadow:0 1px 2px rgba(15,23,42,.06);
}
.set-tabs .tablink span{font-size:15px}
.set-tabs .tablink:hover{border-color:var(--primary,#4f46e5);color:var(--primary,#4f46e5)!important;transform:translateY(-2px);box-shadow:0 6px 14px -8px rgba(79,70,229,.5)}
.set-tabs .tablink.on{
    background-color:var(--primary-600,#4f46e5)!important;      /* جایگزین امن زیر گرادیان */
    background-image:linear-gradient(135deg,var(--primary,#4f46e5),var(--accent,#7c3aed))!important;
    border-color:transparent!important;color:#fff!important;font-weight:800;
    box-shadow:0 8px 18px -9px rgba(79,70,229,.75),inset 0 1px 0 rgba(255,255,255,.25);
}
.set-tabs .tablink.on::after{content:'✓';font-size:10.5px;background:rgba(255,255,255,.25);border-radius:50%;width:15px;height:15px;display:inline-flex;align-items:center;justify-content:center;margin-inline-start:2px}
.set-tabs .tablink.dim{border-style:dashed;background:#f8fafc!important;color:#475569!important}
.set-tabs .set-grp-sep{background:#dbe3ee}

/* ---------- کارت‌های بخش ---------- */
.set-sec{
    border-radius:16px;border:1px solid #dbe3ee;
    transition:box-shadow .18s,border-color .18s;position:relative;
}
.set-sec::before{content:'';position:absolute;top:0;inset-inline:14px;height:3px;border-radius:0 0 6px 6px;background:linear-gradient(90deg,var(--primary,#4f46e5),var(--accent,#7c3aed));opacity:.75}
.set-sec:hover{border-color:#b6c3d9;box-shadow:0 10px 26px -18px rgba(15,23,42,.35)}
.set-sec .set-sec-t{font-size:13.8px;font-weight:800;color:#0f172a;padding-bottom:10px}
.set-sec .set-sec-t .sic{width:32px;height:32px;border-radius:10px;background:#eef2ff;border:1px solid #dbe3ee;display:inline-flex;align-items:center;justify-content:center}
.set-sec .set-sec-d{color:#64748b!important;font-size:11.8px}
[data-theme="dark"] .set-sec{border-color:#28374f}
[data-theme="dark"] .set-sec:hover{border-color:#3b4d6e}
[data-theme="dark"] .set-sec .set-sec-t{color:#eef3fc}
[data-theme="dark"] .set-sec .set-sec-t .sic{background:rgba(99,102,241,.14);border-color:#2a3956}
[data-theme="dark"] .set-sec .set-sec-d{color:#a9bfd9!important}

/* ---------- حالت تاریکِ نوار تب‌ها (حفظ رنگ‌های قبلی به‌صورت صریح) ---------- */
[data-theme="dark"] .set-hero{background-color:#312e81;background-image:linear-gradient(135deg,#3730a3,#5b21b6)}
[data-theme="dark"] .set-tabs .tablink{background:#1a2540!important;color:#e2e8f0!important;border-color:#2a3956;box-shadow:none}
[data-theme="dark"] .set-tabs .tablink:hover{color:#a5b4fc!important;border-color:#4f46e5}
[data-theme="dark"] .set-tabs .tablink.on{background-color:#4338ca!important;background-image:linear-gradient(135deg,#4f46e5,#7c3aed)!important;color:#fff!important}
[data-theme="dark"] .set-tabs .tablink.dim{background:#16213a!important;color:#b9c6d8!important}
[data-theme="dark"] .set-tabs .set-grp-t{color:#a9bfd9!important}
[data-theme="dark"] .set-tabs{background:#131c30}
@media(max-width:640px){.set-hero{padding:15px 16px}.set-hero .set-ic{width:48px;height:48px;font-size:22px}}
@media(max-width:480px){.set-hero .set-crumb{display:none}.set-hero{gap:11px}}
