/* ===================== فونت ===================== */
/* اول فایل محلی (assets/fonts)، بعد سایت دانشگاه، بعد فونت‌های سیستم */
@font-face{font-family:IRANYekan;font-weight:400;font-display:swap;
  src:local('IRANYekan'),url('fonts/iranyekanwebregular.woff') format('woff'),url('https://kouhbananeman.ir/wp-content/uploads/2021/09/iranyekanwebregular.woff') format('woff')}
@font-face{font-family:IRANYekan;font-weight:700;font-display:swap;
  src:local('IRANYekan Bold'),url('fonts/iranyekanwebbold.woff') format('woff'),url('https://kouhbananeman.ir/wp-content/uploads/2021/09/iranyekanwebbold.woff') format('woff')}
@font-face{font-family:IRANYekan;font-weight:900;font-display:swap;
  src:local('IRANYekan Black'),url('fonts/iranyekanwebblack.woff') format('woff'),url('https://kouhbananeman.ir/wp-content/uploads/2021/09/iranyekanwebblack.woff') format('woff')}

:root{
  --bg:#f3f5fa; --surface:#fff; --surface-2:#f8f9fc; --ink:#111827; --ink-2:#374151; --muted:#6b7280;
  --line:#e6e9f0; --line-2:#eef1f6;
  --primary:#3b5bdb; --primary-ink:#2b47b8; --primary-soft:#edf2ff;
  --ok:#0ca678; --ok-soft:#e6fcf5; --warn:#e67700; --warn-soft:#fff4e6; --bad:#e03131; --bad-soft:#fff5f5;
  --sidebar:#0f172a; --sidebar-2:#1e293b; --sidebar-ink:#cbd5e1;
  --radius:14px; --radius-sm:10px;
  --shadow:0 1px 2px rgba(16,24,40,.04),0 4px 16px rgba(16,24,40,.05);
  --font:IRANYekan,Vazirmatn,"Segoe UI",Tahoma,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.75;font-feature-settings:"ss01"}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.hidden{display:none!important}
.muted{color:var(--muted)}
.ltr{direction:ltr;unicode-bidi:isolate}
.nowrap{white-space:nowrap}

/* ===================== ورود ===================== */
.login-view{min-height:100vh;display:grid;place-items:center;padding:24px;
  background:radial-gradient(1200px 600px at 80% -10%,#dbe4ff 0,transparent 60%),radial-gradient(900px 500px at 0% 110%,#d3f9d8 0,transparent 55%),var(--bg)}
.login-card{width:min(410px,100%);background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:32px 28px;box-shadow:0 20px 60px rgba(16,24,40,.08)}
.login-card .brand-icon{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:var(--primary-soft);font-size:24px;margin-bottom:10px}
.login-card h1{margin:0;font-size:21px;font-weight:900}
.login-card p{margin:4px 0 0;color:var(--muted)}
.login-card form{display:flex;flex-direction:column;gap:10px;margin-top:20px}
.login-card label{font-size:12px;color:var(--muted)}
.login-card input{border:1px solid var(--line);border-radius:var(--radius-sm);padding:11px 12px;background:var(--surface-2)}
.login-card input:focus{background:#fff;border-color:var(--primary)}
.step-badge{align-self:flex-start;font-size:11px;font-weight:700;color:var(--primary-ink);background:var(--primary-soft);padding:3px 10px;border-radius:999px}
.login-note{font-size:12px;color:var(--muted);margin:0}
.mobile-input,.otp-input{direction:ltr;text-align:center;letter-spacing:2px}
.error{background:var(--bad-soft);color:var(--bad);border:1px solid #ffc9c9;border-radius:var(--radius-sm);padding:10px 14px;margin:10px 0}

/* ===================== چیدمان ===================== */
.layout{display:grid;grid-template-columns:252px minmax(0,1fr);min-height:100vh}
.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;background:var(--sidebar);color:#fff;padding:18px 12px;display:flex;flex-direction:column}
.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 18px;border-bottom:1px solid #ffffff12;margin-bottom:10px}
.brand-mark{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#4c6ef5,#15aabf);display:grid;place-items:center;font-weight:900}
.brand strong{display:block;font-size:15px}
.brand small{display:block;color:#94a3b8;font-size:11px;line-height:1.4}
.nav-section{font-size:11px;color:#64748b;font-weight:700;padding:14px 10px 4px}
.nav{display:flex;flex-direction:column;gap:2px}
.nav button,.nav a{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;color:var(--sidebar-ink);
  padding:9px 10px;border-radius:10px;cursor:pointer;text-align:right;text-decoration:none;font-size:13.5px}
.nav button .ico,.nav a .ico{width:22px;text-align:center;opacity:.9}
.nav button:hover,.nav a:hover{background:var(--sidebar-2);color:#fff}
.nav button.active{background:linear-gradient(90deg,#3b5bdb33,#3b5bdb22);color:#fff;box-shadow:inset -3px 0 0 #748ffc}
.sidebar-foot{margin-top:auto;padding-top:12px;border-top:1px solid #ffffff12}
.logout{width:100%;border:0;background:none;color:#ffa8a8;padding:9px 10px;border-radius:10px;cursor:pointer;text-align:right}
.logout:hover{background:#ff6b6b1a}
.who{font-size:11px;color:#64748b;padding:2px 10px 8px}

.main{min-width:0}
.header{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:14px;padding:14px 26px;
  background:rgba(243,245,250,.86);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.header h1{margin:0;font-size:19px;font-weight:900}
.header p{margin:0;color:var(--muted);font-size:12.5px}
.header-actions{margin-inline-start:auto;display:flex;gap:8px}
.menu-btn{display:none;border:1px solid var(--line);background:var(--surface);border-radius:10px;width:38px;height:38px;cursor:pointer}
.content{padding:18px 26px 60px;max-width:1560px}

/* ===================== دکمه و فیلتر ===================== */
.btn{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:7px 14px;cursor:pointer;font-weight:700;font-size:13px;white-space:nowrap}
.btn:hover{border-color:#cdd3df}
.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}
.btn.primary:hover{background:var(--primary-ink)}
.btn.soft{background:var(--primary-soft);border-color:transparent;color:var(--primary-ink)}
.btn.wide{width:100%;padding:11px}
.btn.sm{padding:4px 10px;font-size:12px}

.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);padding:12px 14px;box-shadow:var(--shadow)}
.filters .f{display:flex;flex-direction:column;gap:2px;min-width:140px;flex:1}
.filters .f.wide{flex:2;min-width:220px}
.filters label{font-size:11px;color:var(--muted)}
.filters input,.filters select{border:1px solid var(--line);border-radius:9px;padding:7px 10px;background:var(--surface-2);min-width:0;width:100%}
.filters input:focus,.filters select:focus{background:#fff;border-color:var(--primary)}
.filter-actions{display:flex;gap:6px}
.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:3px;gap:2px}
.seg button{border:0;background:none;padding:5px 12px;border-radius:8px;cursor:pointer;font-size:12.5px;color:var(--ink-2)}
.seg button.active{background:var(--surface);color:var(--primary-ink);font-weight:700;box-shadow:0 1px 3px rgba(16,24,40,.12)}
.toolbar{display:flex;align-items:center;gap:10px;margin:12px 0 4px;flex-wrap:wrap}
.toolbar .range-note{font-size:12px;color:var(--muted)}

/* ===================== کارت‌های عددی ===================== */
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin:14px 0}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.kpi::before{content:"";position:absolute;inset-inline-start:0;top:14px;bottom:14px;width:3px;border-radius:3px;background:var(--c,var(--primary))}
.kpi .v{font-size:24px;font-weight:900;line-height:1.3;letter-spacing:-.3px}
.kpi .l{font-size:12px;color:var(--muted)}
.kpi .s{font-size:11.5px;color:var(--muted);margin-top:2px}
.kpi .s b{color:var(--ink-2)}

/* ===================== پنل ===================== */
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:14px 0}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:14px 0}
.grid-2-1{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:14px;margin:14px 0}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin:14px 0;min-width:0}
.grid-2>.panel,.grid-3>.panel,.grid-2-1>.panel{margin:0}
.panel-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line-2);flex-wrap:wrap}
.panel-head h2{margin:0;font-size:14.5px;font-weight:900}
.panel-head .hint{font-size:11.5px;color:var(--muted)}
.panel-head .actions{margin-inline-start:auto;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.panel-body{padding:14px 16px}
.panel-body.flush{padding:0}
.empty{padding:28px 16px;text-align:center;color:var(--muted);font-size:13px}
.loading{padding:40px;text-align:center;color:var(--muted)}
.loading::before{content:"";display:inline-block;width:16px;height:16px;border:2px solid var(--primary);border-inline-end-color:transparent;border-radius:50%;animation:spin .8s linear infinite;vertical-align:-3px;margin-inline-end:8px}
@keyframes spin{to{transform:rotate(360deg)}}
.notice{background:var(--primary-soft);color:#364fc7;border:1px solid #dbe4ff;border-radius:var(--radius-sm);padding:10px 14px;font-size:12.5px;margin:14px 0}
.warn-box{background:var(--warn-soft);color:#a35200;border:1px solid #ffd8a8;border-radius:var(--radius-sm);padding:10px 14px;font-size:12.5px;margin:14px 0}

/* ===================== جدول ===================== */
.table-scroll{overflow:auto;max-height:640px}
table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
th,td{padding:9px 12px;text-align:right;border-bottom:1px solid var(--line-2);vertical-align:top}
th{position:sticky;top:0;background:var(--surface-2);color:var(--muted);font-size:11.5px;font-weight:700;white-space:nowrap;z-index:1}
tbody tr:hover td{background:#fafbff}
tr.total td{font-weight:900;background:var(--surface-2)}
td.num{text-align:center;direction:ltr;font-variant-numeric:tabular-nums;white-space:nowrap}
th.num{text-align:center}
.pill{display:inline-block;font-size:11px;font-weight:700;padding:1px 9px;border-radius:999px;margin:1px 0 1px 3px;white-space:nowrap}
.pill.on{background:var(--ok-soft);color:#087f5b}.pill.off{background:var(--bad-soft);color:#c92a2a}
.pill.warn{background:var(--warn-soft);color:#d9480f}.pill.info{background:var(--primary-soft);color:#364fc7}
.pill.purple{background:#f3f0ff;color:#6741d9}.pill.gray{background:#f1f3f5;color:#495057}
.pagination{display:flex;gap:4px;justify-content:center;padding:12px;flex-wrap:wrap}
.pagination button{border:1px solid var(--line);background:var(--surface);border-radius:8px;min-width:34px;padding:4px 10px;cursor:pointer}
.pagination button.current{background:var(--primary);border-color:var(--primary);color:#fff}

/* متن طولانی */
.clip{color:var(--ink-2);max-width:620px;word-break:break-word}
.clip .more{border:0;background:none;color:var(--primary);cursor:pointer;padding:0 4px;font-size:12px;font-weight:700}
.clip.open .full{white-space:pre-wrap;max-height:320px;overflow:auto;background:var(--surface-2);border-radius:8px;padding:8px 10px;margin:4px 0}

/* ===================== نمودار ===================== */
.chart{position:relative;direction:ltr}
.chart svg{display:block;width:100%;height:auto;overflow:visible}
.chart{min-height:40px}
.chart .grid-line{stroke:var(--line-2);stroke-width:1}
.chart .axis-label{fill:var(--muted);font-size:10px;font-family:var(--font)}
.chart .hover-line{stroke:#adb5bd;stroke-dasharray:3 3}
.chart-tip{position:absolute;pointer-events:none;background:#111827;color:#fff;border-radius:8px;padding:7px 10px;font-size:12px;line-height:1.6;
  direction:rtl;white-space:nowrap;box-shadow:0 8px 24px rgba(0,0,0,.18);z-index:4;transform:translate(-50%,-110%)}
.chart-tip i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-inline-end:6px}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;direction:rtl}
.legend button,.legend span{display:inline-flex;align-items:center;gap:6px;border:0;background:none;padding:0;font-size:12px;color:var(--ink-2);cursor:pointer}
.legend button.off{opacity:.35}
.legend i{width:10px;height:10px;border-radius:3px;display:inline-block}

.donut-wrap{display:flex;align-items:center;gap:16px;flex-wrap:wrap;direction:rtl}
.donut-wrap .donut{flex:0 0 auto;position:relative}
.donut-wrap .donut svg{width:140px;height:140px}
.donut-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}
.donut-center b{font-size:19px;font-weight:900;line-height:1.2}
.donut-center span{font-size:10.5px;color:var(--muted)}
.donut-legend{flex:1;min-width:150px;display:flex;flex-direction:column;gap:5px}
.donut-legend .row{display:flex;align-items:center;gap:8px;font-size:12.5px}
.donut-legend .row i{width:10px;height:10px;border-radius:3px;flex:0 0 auto}
.donut-legend .row span{flex:1;color:var(--ink-2);line-height:1.4}
.donut-legend .row b{font-variant-numeric:tabular-nums}
.donut-legend .row em{font-style:normal;color:var(--muted);font-size:11px;min-width:38px;text-align:left}
.donut-title{font-size:12.5px;font-weight:700;color:var(--ink-2);margin-bottom:6px}

.hbars{display:flex;flex-direction:column;gap:7px}
.hbar{display:grid;grid-template-columns:minmax(90px,30%) 1fr auto;gap:10px;align-items:center;font-size:12.5px}
.hbar .lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-2)}
.hbar .track{height:10px;background:var(--line-2);border-radius:999px;overflow:hidden;display:flex}
.hbar .track i{display:block;height:100%}
.hbar b{font-variant-numeric:tabular-nums;min-width:40px;text-align:left}
.hbar.clickable{cursor:pointer}.hbar.clickable:hover .lbl{color:var(--primary)}

.stack-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;margin-bottom:10px;color:var(--ink-2)}
.stack-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-inline-end:5px;vertical-align:-1px}

.cloud{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;line-height:1.4}
.cloud button{border:0;background:none;cursor:pointer;color:var(--primary-ink);padding:0}
.cloud button:hover{text-decoration:underline}

/* زنجیره گفتگو */
.thread-msg{border-inline-start:3px solid var(--primary-soft);padding:8px 12px;margin:8px 0;background:var(--surface-2);border-radius:8px}
.thread-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.reply-card{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line-2)}
.reply-card:last-child{border-bottom:0}
.reply-rank{flex:0 0 26px;height:26px;border-radius:8px;background:var(--primary-soft);color:var(--primary-ink);display:grid;place-items:center;font-weight:900;font-size:12px}
.pair-row{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line-2);font-size:13px}

/* انتخاب گروه در جزئیات */
.group-pick{min-width:220px;border:1px solid var(--line);border-radius:9px;padding:6px 10px;background:var(--surface-2)}
.mini-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-bottom:16px}
.mini-stats div{background:var(--surface-2);border-radius:10px;padding:8px 12px}
.mini-stats b{display:block;font-size:17px;font-weight:900}
.mini-stats span{font-size:11.5px;color:var(--muted)}

/* ===================== موبایل ===================== */
@media (max-width:1100px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2-1{grid-template-columns:1fr}}
@media (max-width:900px){
  .layout{grid-template-columns:1fr}
  .sidebar{position:fixed;inset-block:0;inset-inline-start:0;width:262px;z-index:30;transform:translateX(105%);transition:transform .2s ease}
  .sidebar.open{transform:none;box-shadow:0 0 0 100vmax rgba(15,23,42,.45)}
  .menu-btn{display:inline-grid;place-items:center}
  .header{padding:10px 14px}.content{padding:12px 14px 50px}
  .grid-2,.grid-3{grid-template-columns:1fr}
  #printBtn{display:none}
  .header p{display:none}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (prefers-reduced-motion:reduce){.sidebar{transition:none}.loading::before{animation-duration:2.4s}}

/* ===================== چاپ ===================== */
@media print{
  .sidebar,.header-actions,.filters,.toolbar,.menu-btn,.panel-head .actions,.legend button{display:none!important}
  .layout{display:block}.header{position:static;background:none;border:0}
  body{background:#fff}.panel,.kpi{box-shadow:none;break-inside:avoid}
  .table-scroll{max-height:none;overflow:visible}
}

/* ===================== تنظیمات ===================== */
.setting-row{display:flex;gap:20px;align-items:flex-start}
.setting-text{flex:1}
.setting-text h2{margin:0 0 4px;font-size:15px;font-weight:900}
.setting-text p{margin:0;color:var(--ink-2);font-size:13px}
.setting-card.is-off{border-color:#ffd8a8}
.switch{position:relative;display:inline-flex;align-items:center;gap:10px;cursor:pointer;flex:0 0 auto;user-select:none}
.switch input{position:absolute;opacity:0;width:0;height:0}
.switch .slider{width:50px;height:28px;border-radius:999px;background:#ced4da;position:relative;transition:background .15s}
.switch .slider::after{content:"";position:absolute;top:3px;inset-inline-end:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:inset-inline-end .15s}
.switch input:checked + .slider{background:var(--ok)}
.switch input:checked + .slider::after{inset-inline-end:25px}
.switch input:focus-visible + .slider{outline:2px solid var(--primary);outline-offset:2px}
.switch b{font-size:13px;min-width:44px}
.switch input:disabled + .slider{opacity:.6}
