/* =====================================================================
   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)}
[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)}

/* ---------- حداقل سطح لمسی ۴۴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}

/* ---------- چاپ ---------- */
.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)}
.topnav-menu{display:flex;align-items:center;gap:2px;margin-inline-start:8px;flex:1;flex-wrap:wrap}
.navdrop{position:relative}
.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,.navdrop.open-active .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}
@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)}
.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}
.topbar-date{color:rgba(255,255,255,.85);font-size:12px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.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) + فرم جمع‌وجور */
.modal{align-items:flex-start}
.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) 92%,transparent);
    backdrop-filter:blur(8px);
    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}

/* =====================================================================
   سبک‌های قالب — مدرن (پیش‌فرض) / کلاسیک / فلت
   ===================================================================== */
[data-style="classic"]{
    --radius:10px;
    --shadow:0 1px 2px rgba(23,32,58,.06), 0 8px 22px -18px rgba(23,32,58,.2);
    --shadow-lift:0 4px 10px -4px rgba(23,32,58,.14), 0 14px 30px -22px rgba(23,32,58,.3);
}
[data-style="classic"] body{
    background:#eef1f7;
    background-image:none;
}
[data-style="classic"] .card,[data-style="classic"] .stat-chip{border-radius:10px;border-width:1.5px}
[data-style="classic"] .btn,[data-style="classic"] .input,[data-style="classic"] .select,
[data-style="classic"] .textarea,[data-style="classic"] .icon-btn,[data-style="classic"] .checkbox{border-radius:8px}
[data-style="classic"] .topnav{background:#1e3a8a;background-image:none}
[data-style="classic"] .navdrop-panel{border-radius:10px}
[data-style="classic"] .side-nav a.active{background:#1e3a8a;box-shadow:none}
[data-style="classic"] .card-h{background:linear-gradient(180deg,rgba(30,58,138,.05),transparent)}

[data-style="flat"]{
    --radius:6px;
    --shadow:none;
    --shadow-lift:none;
    --ring:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent);
}
[data-style="flat"] body{background:#f5f6f8;background-image:none}
[data-style="flat"] .card,[data-style="flat"] .stat-chip{border-radius:6px;box-shadow:none;border-width:1.5px}
[data-style="flat"] .btn{border-radius:6px;box-shadow:none}
[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:6px;box-shadow:none}
[data-style="flat"] .topnav{background:var(--primary);background-image:none;box-shadow:none}
[data-style="flat"] .navdrop-panel,[data-style="flat"] .side-nav{border-radius:6px;box-shadow:none}
[data-style="flat"] .navdrop-panel::before{display:none}
[data-style="flat"] .side-nav a.active{background:var(--primary);box-shadow:none}
[data-style="flat"] .card-h{background:none;border-bottom:1.5px solid var(--border)}
[data-style="flat"] .tabstrip{box-shadow:none}
[data-style="flat"] .ops-card,[data-style="flat"] .scrollctl button{box-shadow:none;border-radius:6px}
[data-style="flat"] .badge,[data-style="flat"] .flash,[data-style="flat"] .modal,[data-style="flat"] .appear{border-radius:6px}
[data-style="flat"] .user-chip-btn{border-radius:6px}

/* تقویت تمایز حالت‌های ظاهری (بازخورد کاربران: تفاوت کم بود) */
[data-style="flat"] .btn-primary,[data-style="flat"] .btn-success,[data-style="flat"] .btn-danger{background-image:none}
[data-style="flat"] .stat,[data-style="flat"] .kpi-grid .card{background:#fff;background-image:none;border:1.5px solid var(--border)}
[data-style="flat"] .badge,[data-style="flat"] .flash{box-shadow:none;background-image:none}
[data-style="flat"] .table thead th{background:#f1f5f9}
[data-style="flat"] .topnav,[data-style="flat"] .navdrawer-head{box-shadow:none}
[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) 92%,#fff),var(--primary))}
[data-style="classic"] .card{border-width:1.5px;border-color:#c7d2fe}
[data-style="classic"] .topnav,[data-style="classic"] .navdrawer-head{box-shadow:0 3px 10px rgba(30,58,138,.35)}
[data-style="classic"] .side-nav{background:#1e3a8a}
[data-style="classic"] .side-nav a{color:#dbeafe}
[data-style="classic"] .side-nav b{color:#93c5fd}
[data-style="classic"] .page-title{letter-spacing:.2px;border-bottom:2px solid var(--primary);padding-bottom:6px;display:inline-block}
[data-style="classic"] .table thead th{background:#eef2ff;color:#1e3a8a}



.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}}
