/* =====================================================================
   سامانه اطلاع‌رسانی بخشنامه‌ها - سیستم طراحی (Design System) v2
   فونت‌ها، متغیرهای رنگی (لایت/دارک)، پایه، تایپوگرافی، کامپوننت‌ها
   ===================================================================== */

/* ---------- فونت وزیرمتن (لوکال، بدون درخواست شبکه اضافه) ---------- */
@font-face{font-family:'Vazirmatn';src:url('fonts/Vazirmatn-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Vazirmatn';src:url('fonts/Vazirmatn-Medium.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap;}
@font-face{font-family:'Vazirmatn';src:url('fonts/Vazirmatn-SemiBold.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap;}
@font-face{font-family:'Vazirmatn';src:url('fonts/Vazirmatn-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;}

/* ---------- متغیرهای رنگی: حالت روشن (پیش‌فرض) ---------- */
:root{
  color-scheme: light;
  --primary:#4F46E5;
  --primary-dark:#3730A3;
  --primary-light:#EEF0FF;
  --accent:#F43F5E;
  --success:#10B981;
  --success-bg:#E7F9F1;
  --urgent:#F43F5E;
  --urgent-bg:#FEECEF;
  --warn:#D97706;
  --warn-bg:#FEF3E2;
  --text:#0F172A;
  --muted:#64748B;
  --border:#E2E8F0;
  --bg:#F8FAFC;
  --card:#FFFFFF;
  --card-glass: rgba(255,255,255,.7);
  --radius:16px;
  --radius-sm:10px;
  --shadow-sm: 0 1px 3px rgba(15,23,42,.06);
  --shadow-md: 0 6px 20px rgba(15,23,42,.08);
  --shadow-lg: 0 16px 40px rgba(15,23,42,.14);
  --ease: cubic-bezier(.22,1,.36,1);
}

/* ---------- متغیرهای رنگی: حالت تیره ---------- */
html[data-theme="dark"]{
  color-scheme: dark;
  --primary:#818CF8;
  --primary-dark:#A5B4FC;
  --primary-light:#1E1B4B;
  --accent:#FB7185;
  --success:#34D399;
  --success-bg:#0B2E23;
  --urgent:#FB7185;
  --urgent-bg:#3A1620;
  --warn:#FBBF24;
  --warn-bg:#3A2A0B;
  --text:#E2E8F0;
  --muted:#94A3B8;
  --border:#293244;
  --bg:#0F172A;
  --card:#171F32;
  --card-glass: rgba(23,31,50,.7);
  --shadow-sm: 0 1px 3px rgba(0,0,0,.3);
  --shadow-md: 0 6px 20px rgba(0,0,0,.35);
  --shadow-lg: 0 16px 40px rgba(0,0,0,.5);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important;}
}

body{
  margin:0;
  font-family:'Vazirmatn',Tahoma,'Segoe UI',Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
  direction:rtl;
  -webkit-font-smoothing:antialiased;
  transition:background .25s var(--ease), color .25s var(--ease);
  min-height:100vh;
}

/* ---------- تایپوگرافی ---------- */
h1{font-size:clamp(1.8rem,3.5vw,2.6rem);font-weight:700;line-height:1.3;margin:0;}
h2{font-size:clamp(1.35rem,2.6vw,1.9rem);font-weight:700;line-height:1.4;margin:0;}
h3{font-size:1.15rem;font-weight:600;line-height:1.5;margin:0;}
p{font-size:.98rem;line-height:1.9;color:var(--text);}
a{color:var(--primary);}
.text-muted{color:var(--muted);}

/* ---------- کانتینر کلی ---------- */
.container{max-width:1080px;margin:0 auto;padding:0 16px 60px;}

/* =====================================================================
   کامپوننت: دکمه‌ها (۶ واریانت)
   ===================================================================== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:11px 20px;border-radius:var(--radius-sm);
  font-family:inherit;font-size:14px;font-weight:600;
  border:1px solid transparent;cursor:pointer;text-decoration:none;
  background:var(--primary);color:#fff;
  transition:transform .15s var(--ease), box-shadow .15s var(--ease), background .15s;
  box-shadow:0 2px 8px rgba(79,70,229,.25);
}
.btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(79,70,229,.32);text-decoration:none;color:#fff;}
.btn:active{transform:translateY(0) scale(.97);}
.btn-secondary{background:var(--primary-light);color:var(--primary-dark);box-shadow:none;}
.btn-secondary:hover{background:var(--primary);color:#fff;}
.btn-outline{background:transparent;color:var(--primary);border-color:var(--border);box-shadow:none;}
.btn-outline:hover{background:var(--primary-light);color:var(--primary);}
.btn-ghost{background:transparent;color:var(--text);box-shadow:none;border-color:transparent;}
.btn-ghost:hover{background:var(--primary-light);color:var(--primary);}
.btn-danger{background:var(--urgent);box-shadow:0 2px 8px rgba(244,63,94,.25);}
.btn-danger:hover{box-shadow:0 8px 20px rgba(244,63,94,.32);}
.btn-success{background:var(--success);box-shadow:0 2px 8px rgba(16,185,129,.25);}
.btn-success:hover{box-shadow:0 8px 20px rgba(16,185,129,.32);}
.btn-sm{padding:7px 14px;font-size:12.5px;}
.btn-block{width:100%;}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none !important;}
.btn-outline-light{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.65);}
.btn-outline-light:hover{background:rgba(255,255,255,.26);color:#fff;text-decoration:none;}

/* =====================================================================
   کامپوننت: کارت (شیشه‌ای سبک)
   ===================================================================== */
.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow-sm);
  padding:22px;
  margin-bottom:16px;
  transition:box-shadow .2s var(--ease), transform .2s var(--ease), background .25s;
}
.card-glass{
  background:var(--card-glass);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(148,163,184,.18);
}
.card-hover:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}
.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;}
.card-footer{margin-top:16px;padding-top:14px;border-top:1px solid var(--border);}

/* =====================================================================
   کامپوننت: ورودی با لیبل شناور (Floating Label)
   ===================================================================== */
.field{position:relative;margin-bottom:22px;}
.field input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=color]),
.field select,
.field textarea{
  width:100%;padding:16px 14px 8px;border:1.5px solid var(--border);border-radius:var(--radius-sm);
  background:var(--card);color:var(--text);font-family:inherit;font-size:14.5px;
  transition:border-color .15s, box-shadow .15s;
}
.field textarea{padding-top:20px;min-height:110px;resize:vertical;}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none;border-color:var(--primary);box-shadow:0 0 0 4px rgba(79,70,229,.14);
}
.field label{
  position:absolute;right:14px;top:14px;color:var(--muted);font-size:14.5px;
  pointer-events:none;transition:all .15s var(--ease);background:transparent;padding:0 4px;
}
.field input:focus + label, .field input:not(:placeholder-shown) + label,
.field select + label,
.field textarea:focus + label, .field textarea:not(:placeholder-shown) + label{
  top:-9px;font-size:11.5px;color:var(--primary);background:var(--card);
}
.field select:focus + label{color:var(--primary);}
.field-hint{font-size:12px;color:var(--muted);margin-top:6px;}
.field-error{font-size:12px;color:var(--urgent);margin-top:6px;display:none;}
.field.has-error input, .field.has-error select, .field.has-error textarea{border-color:var(--urgent);}
.field.has-error .field-error{display:block;}

/* فرم ساده (بدون لیبل شناور) - برای فرم‌های فشرده مثل شاخص‌ها */
.form-box label{display:block;font-size:13px;font-weight:600;color:var(--text);margin:14px 0 6px;}
.form-box input[type=text], .form-box input[type=number], .form-box input[type=password],
.form-box input[type=file], .form-box select, .form-box textarea{
  width:100%;padding:11px 14px;border:1.5px solid var(--border);border-radius:var(--radius-sm);
  font-family:inherit;font-size:14px;background:var(--card);color:var(--text);
  transition:border-color .15s, box-shadow .15s;
}
.form-box textarea{min-height:100px;resize:vertical;}
.form-box input:focus, .form-box select:focus, .form-box textarea:focus{
  outline:none;border-color:var(--primary);box-shadow:0 0 0 4px rgba(79,70,229,.14);
}
.mini-input{padding:8px 10px !important;border-radius:8px !important;font-size:13px !important;}
.checkbox-row{display:flex;align-items:center;gap:8px;margin:12px 0;}

/* آپلود درگ-اند-دراپ */
.dropzone{
  border:2px dashed var(--border);border-radius:var(--radius);padding:28px 16px;
  text-align:center;cursor:pointer;transition:border-color .15s, background .15s;
  background:var(--bg);
}
.dropzone:hover, .dropzone.dragover{border-color:var(--primary);background:var(--primary-light);}
.dropzone-icon{font-size:30px;margin-bottom:8px;}
.dropzone-text{font-size:13.5px;color:var(--muted);}
.file-progress-list{margin-top:12px;display:flex;flex-direction:column;gap:8px;}
.file-progress-item{display:flex;align-items:center;gap:10px;font-size:12.5px;background:var(--bg);border-radius:8px;padding:8px 10px;}
.file-progress-bar-track{flex:1;height:6px;border-radius:4px;background:var(--border);overflow:hidden;}
.file-progress-bar-fill{height:100%;background:var(--success);border-radius:4px;transition:width .2s;}

/* =====================================================================
   کامپوننت: نشان (Badge)
   ===================================================================== */
.badge{
  display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:20px;
  font-size:11.5px;font-weight:700;background:var(--primary-light);color:var(--primary-dark);
}
.badge-urgent{background:var(--urgent-bg);color:var(--urgent);}
.badge-unread{background:var(--warn-bg);color:var(--warn);}
.badge-tag{background:var(--bg);color:var(--muted);border:1px solid var(--border);font-weight:600;}
.badge-success{background:var(--success-bg);color:var(--success);}

/* =====================================================================
   کامپوننت: مودال
   ===================================================================== */
.modal-overlay{
  position:fixed;inset:0;background:rgba(15,23,42,.5);backdrop-filter:blur(2px);
  display:none;align-items:center;justify-content:center;z-index:200;padding:16px;
}
.modal-overlay.show{display:flex;animation:fadeIn .18s var(--ease);}
.modal-box{
  background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-lg);
  max-width:440px;width:100%;padding:26px;animation:modalIn .22s var(--ease);
}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes modalIn{from{opacity:0;transform:translateY(16px) scale(.97);}to{opacity:1;transform:translateY(0) scale(1);}}

/* =====================================================================
   کامپوننت: نوتیفیکیشن Toast
   ===================================================================== */
.toast-stack{position:fixed;bottom:22px;left:22px;z-index:300;display:flex;flex-direction:column;gap:10px;max-width:320px;}
.toast{
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);
  box-shadow:var(--shadow-lg);padding:13px 16px;font-size:13.5px;display:flex;align-items:center;gap:10px;
  animation:toastIn .25s var(--ease);
}
.toast-success{border-inline-start:4px solid var(--success);}
.toast-error{border-inline-start:4px solid var(--urgent);}
.toast-info{border-inline-start:4px solid var(--primary);}
@keyframes toastIn{from{opacity:0;transform:translateX(-16px);}to{opacity:1;transform:translateX(0);}}
.toast.toast-out{animation:toastOut .2s var(--ease) forwards;}
@keyframes toastOut{to{opacity:0;transform:translateX(-16px);}}

/* =====================================================================
   کامپوننت: نوار پیشرفت
   ===================================================================== */
.progress-track{flex:1;height:9px;border-radius:6px;background:var(--border);overflow:hidden;}
.progress-fill{height:100%;border-radius:6px;background:var(--primary);transition:width .35s var(--ease);}
.progress-fill.mid{background:var(--warn);}
.progress-fill.low{background:var(--urgent);}
.progress-fill.high{background:var(--success);}
.progress-row{display:flex;align-items:center;gap:12px;margin:10px 0;font-size:13px;}
.progress-label{flex:0 0 150px;color:var(--muted);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
a.progress-label:hover{color:var(--primary);text-decoration:underline;}
.progress-pct{flex:0 0 40px;text-align:left;font-weight:700;}

/* نوار پیشرفت مطالعه (بالای صفحه) */
.reading-progress{position:fixed;top:0;right:0;left:0;height:3px;background:var(--primary);z-index:250;width:0%;transition:width .1s linear;}

/* =====================================================================
   کامپوننت: تب‌ها
   ===================================================================== */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:18px;overflow-x:auto;}
.tab-btn{
  padding:10px 16px;font-size:13.5px;font-weight:600;color:var(--muted);background:transparent;
  border:none;border-bottom:2px solid transparent;cursor:pointer;font-family:inherit;white-space:nowrap;
}
.tab-btn.active{color:var(--primary);border-color:var(--primary);}

/* =====================================================================
   اسکلتون لودینگ
   ===================================================================== */
.skeleton{background:linear-gradient(90deg,var(--border) 25%,var(--bg) 50%,var(--border) 75%);background-size:200% 100%;animation:skeletonShine 1.4s ease-in-out infinite;border-radius:8px;}
@keyframes skeletonShine{0%{background-position:200% 0;}100%{background-position:-200% 0;}}
.skeleton-card{height:150px;border-radius:var(--radius);margin-bottom:16px;}
.skeleton-line{height:14px;margin-bottom:8px;}

/* =====================================================================
   دکمه شناور تغییر تم + بازگشت به بالا
   ===================================================================== */
.fab-stack{position:fixed;bottom:22px;left:22px;z-index:120;display:flex;flex-direction:column;gap:10px;}
.fab{
  width:46px;height:46px;border-radius:50%;background:var(--card);border:1px solid var(--border);
  box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:center;font-size:19px;
  cursor:pointer;transition:transform .15s var(--ease), box-shadow .15s;color:var(--text);
}
.fab:hover{transform:translateY(-3px) scale(1.05);box-shadow:var(--shadow-lg);}
.fab-scrolltop{opacity:0;pointer-events:none;transform:translateY(8px);}
.fab-scrolltop.show{opacity:1;pointer-events:auto;transform:translateY(0);}

/* =====================================================================
   حالت خالی / پیام‌های موفقیت و خطا
   ===================================================================== */
.empty-state{text-align:center;padding:44px 16px;color:var(--muted);}
.empty-icon{font-size:38px;display:block;margin-bottom:10px;}
.success-msg{background:var(--success-bg);color:var(--success);padding:12px 16px;border-radius:var(--radius-sm);margin-bottom:16px;font-size:13.5px;}
.error-msg{background:var(--urgent-bg);color:var(--urgent);padding:12px 16px;border-radius:var(--radius-sm);margin-bottom:16px;font-size:13.5px;}

/* =====================================================================
   Utilities
   ===================================================================== */
.meta{display:flex;gap:8px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);}
.meta-chip{background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:4px 11px;}
.back-link{display:inline-block;margin-bottom:14px;font-size:13px;color:var(--primary);text-decoration:none;font-weight:600;}
.back-link:hover{text-decoration:underline;}

/* =====================================================================
   چیدمان کلی: نوار بالا (Sticky) + سایدبار
   ===================================================================== */
.app-topbar{
  position:sticky;top:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 20px;background:var(--card);border-bottom:1px solid var(--border);
  box-shadow:var(--shadow-sm);
}
.app-topbar-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);font-weight:700;font-size:15px;}
.app-topbar-brand-icon{
  width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--primary),var(--accent));
  display:flex;align-items:center;justify-content:center;font-size:17px;color:#fff;
}
.app-topbar-right{display:flex;align-items:center;gap:10px;}
.unread-pill{
  display:flex;align-items:center;gap:5px;background:var(--urgent-bg);color:var(--urgent);
  padding:5px 12px;border-radius:20px;font-size:12px;font-weight:700;text-decoration:none;
}
.user-menu{display:flex;align-items:center;gap:8px;}
.user-avatar{
  width:34px;height:34px;border-radius:50%;background:var(--primary-light);color:var(--primary-dark);
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0;
}
.user-info{display:flex;flex-direction:column;line-height:1.3;}
.user-info b{font-size:12.5px;}
.user-info span{font-size:11px;color:var(--muted);}
.sidebar-toggle-btn{
  display:none;width:38px;height:38px;border-radius:9px;border:1px solid var(--border);
  background:var(--card);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:4px;
}
.sidebar-toggle-btn span{width:18px;height:2px;background:var(--text);border-radius:2px;}
.theme-toggle-btn{
  width:38px;height:38px;border-radius:9px;border:1px solid var(--border);background:var(--card);
  cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--text);
  transition:transform .15s var(--ease);
}
.theme-toggle-btn:hover{transform:rotate(15deg);}

.app-shell{display:flex;min-height:calc(100vh - 61px);}
.app-sidebar{
  width:250px;flex-shrink:0;background:var(--card);border-inline-end:1px solid var(--border);
  padding:18px 12px;position:sticky;top:61px;height:calc(100vh - 61px);overflow-y:auto;
  transition:transform .25s var(--ease);
}
.sidebar-section-title{font-size:11px;color:var(--muted);font-weight:700;padding:14px 12px 6px;letter-spacing:.03em;}
.sidebar-link{
  display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;
  color:var(--text);text-decoration:none;font-size:13.5px;font-weight:600;margin-bottom:2px;
  transition:background .15s, color .15s;
}
.sidebar-link:hover{background:var(--primary-light);color:var(--primary);text-decoration:none;}
.sidebar-link.active{background:var(--primary);color:#fff;}
.sidebar-link .sidebar-icon{width:20px;text-align:center;flex-shrink:0;}
.sidebar-link .count-pill{
  margin-inline-start:auto;background:var(--urgent);color:#fff;font-size:10.5px;font-weight:700;
  padding:1px 7px;border-radius:10px;
}
.sidebar-link.logout-link{color:var(--urgent);margin-top:10px;border-top:1px solid var(--border);padding-top:14px;}

.app-main{flex:1;min-width:0;padding:22px 22px 60px;}
.sidebar-overlay{display:none;}

@media (max-width:900px){
  .sidebar-toggle-btn{display:flex;}
  .app-sidebar{
    position:fixed;top:0;right:0;height:100vh;z-index:180;width:270px;
    transform:translateX(100%);box-shadow:var(--shadow-lg);top:0;padding-top:78px;
  }
  .app-sidebar.open{transform:translateX(0);}
  .sidebar-overlay.show{display:block;position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:170;}
  .app-main{padding:16px 14px 50px;}
  .user-info{display:none;}
}

/* =====================================================================
   لندینگ‌پیج: هدر با گرادیانت متحرک + Masonry
   ===================================================================== */
body.landing-body{background:var(--bg);}
.landing-hero{
  position:relative;overflow:hidden;color:#fff;text-align:center;
  padding:64px 20px 130px;
  background:linear-gradient(135deg,var(--primary) 0%,#6D28D9 55%,var(--accent) 120%);
}
.landing-orb{position:absolute;border-radius:50%;filter:blur(50px);opacity:.55;animation:orbFloat 12s ease-in-out infinite;}
.landing-orb-1{width:280px;height:280px;background:#F43F5E;top:-80px;left:-60px;}
.landing-orb-2{width:340px;height:340px;background:#22D3EE;bottom:-140px;right:-80px;animation-delay:-4s;}
.landing-orb-3{width:200px;height:200px;background:#A78BFA;top:40%;left:60%;animation-delay:-8s;}
@keyframes orbFloat{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(20px,-24px) scale(1.08);}}
.landing-hero-inner{position:relative;z-index:2;max-width:640px;margin:0 auto;display:flex;flex-direction:column;align-items:center;}
.landing-hero-icon{
  font-size:40px;width:78px;height:78px;border-radius:22px;background:rgba(255,255,255,.14);
  display:flex;align-items:center;justify-content:center;margin-bottom:18px;
  animation:pulseIcon 2.6s ease-in-out infinite;backdrop-filter:blur(6px);
}
@keyframes pulseIcon{0%,100%{transform:scale(1);}50%{transform:scale(1.07);}}
.landing-hero h1{
  background:linear-gradient(90deg,#fff,#E0E7FF);-webkit-background-clip:text;background-clip:text;color:transparent;
  margin-bottom:12px;
}
.landing-hero p{font-size:15px;font-weight:300;opacity:.92;line-height:1.9;margin:0 0 26px;max-width:520px;}
.landing-hero-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
.scroll-indicator{position:relative;z-index:2;margin-top:36px;width:26px;height:42px;border:2px solid rgba(255,255,255,.55);border-radius:16px;display:flex;justify-content:center;padding-top:7px;}
.scroll-indicator span{width:4px;height:8px;border-radius:3px;background:#fff;animation:scrollDot 1.6s ease-in-out infinite;}
@keyframes scrollDot{0%{opacity:1;transform:translateY(0);}100%{opacity:0;transform:translateY(10px);}}

.landing-search-wrap{max-width:620px;margin:-56px auto 0;position:relative;z-index:3;padding:0 16px;}
.landing-search{
  display:flex;gap:8px;background:var(--card-glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(148,163,184,.2);border-radius:18px;padding:8px;box-shadow:var(--shadow-lg);
}
.landing-search-icon{display:flex;align-items:center;padding:0 10px;color:var(--muted);font-size:16px;}
.landing-search input{
  flex:1;border:none;background:transparent;padding:12px 4px;font-family:inherit;font-size:14px;color:var(--text);outline:none;
}
.landing-search .btn{border-radius:12px;}

.landing-wrap{max-width:1080px;margin:0 auto;padding:34px 16px 40px;}
.landing-cat-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px;justify-content:center;}
.cat-chip{
  padding:7px 16px;border-radius:20px;border:1px solid var(--border);background:var(--card);
  font-size:12.5px;font-weight:600;color:var(--text);text-decoration:none;transition:all .15s var(--ease);
}
.cat-chip:hover{border-color:var(--primary);text-decoration:none;transform:translateY(-1px);}
.cat-chip.active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 4px 12px rgba(79,70,229,.3);}

.landing-section-title{font-size:19px;margin:0 0 20px;text-align:center;font-weight:700;}

/* Masonry با CSS ستونی خالص - بدون نیاز به کتابخانه جاوااسکریپت */
.news-masonry{column-count:1;column-gap:18px;}
@media (min-width:640px){.news-masonry{column-count:2;}}
@media (min-width:1000px){.news-masonry{column-count:3;}}
.news-card{
  break-inside:avoid;margin-bottom:18px;display:flex;flex-direction:column;
  overflow:hidden;padding:0;text-decoration:none;color:inherit;
}
.news-card-cover{position:relative;overflow:hidden;}
.news-card-cover img{width:100%;display:block;transition:transform .35s var(--ease);}
.news-card:hover .news-card-cover img{transform:scale(1.06);}
.news-card-badges{position:absolute;top:10px;right:10px;display:flex;gap:6px;flex-wrap:wrap;}
.news-card-body{padding:18px;text-align:center;display:flex;flex-direction:column;align-items:center;}
.news-card-body h3{font-size:16px;margin:8px 0 6px;}
.news-card-body .meta{justify-content:center;margin-bottom:8px;}
.news-body{font-size:14px;line-height:1.9;color:var(--muted);}
.news-body.excerpt{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.news-read-more{margin-top:12px;font-size:13px;font-weight:700;color:var(--primary);display:inline-flex;align-items:center;gap:4px;text-decoration:none;}
.news-body img, .rte-editor img{max-width:100%;height:auto;display:block;margin:10px auto;border-radius:10px;}
.news-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;margin-top:16px;}
.news-gallery img{width:100%;height:110px;object-fit:cover;border-radius:10px;}
.share-row{display:flex;gap:8px;align-items:center;justify-content:center;margin-top:22px;padding-top:16px;border-top:1px dashed var(--border);flex-wrap:wrap;}

.landing-footer{
  text-align:center;color:var(--muted);font-size:12.5px;padding:40px 16px 30px;
  border-top:1px solid var(--border);margin-top:20px;
}
.footer-social{display:flex;gap:14px;justify-content:center;margin-bottom:14px;}
.footer-social a{
  width:36px;height:36px;border-radius:50%;background:var(--primary-light);color:var(--primary);
  display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:15px;
  transition:transform .15s var(--ease);
}
.footer-social a:hover{transform:translateY(-3px);}
.footer-links{display:flex;gap:16px;justify-content:center;margin-bottom:12px;flex-wrap:wrap;}
.footer-links a{color:var(--muted);text-decoration:none;font-size:12.5px;}
.footer-links a:hover{color:var(--primary);}

/* =====================================================================
   داشبورد و فهرست بخشنامه‌ها
   ===================================================================== */
.dash-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:20px;}
.dash-search{
  flex:1;min-width:200px;display:flex;align-items:center;gap:8px;background:var(--card);
  border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:0 14px;
}
.dash-search input{border:none;background:transparent;padding:11px 4px;flex:1;font-family:inherit;font-size:13.5px;color:var(--text);outline:none;}
.view-switch{display:flex;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;}
.view-switch button{
  border:none;background:transparent;padding:10px 14px;cursor:pointer;font-size:14px;color:var(--muted);
}
.view-switch button.active{background:var(--primary);color:#fff;}

.circular-link{text-decoration:none;color:inherit;display:block;}
.circular-item{padding:20px 22px;}
.circular-badges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;}
.circular-title{margin:0 0 10px;font-size:16.5px;font-weight:700;line-height:1.6;color:var(--text);}
.circular-item .meta{margin-bottom:10px;}
.circular-item .excerpt{background:var(--bg);border-radius:10px;padding:11px 13px;margin-bottom:10px;color:var(--muted);font-size:13.5px;}
.circular-tags{display:flex;gap:4px;flex-wrap:wrap;padding-top:8px;border-top:1px dashed var(--border);}
.badge-deadline{padding:4px 12px;border-radius:20px;font-size:11.5px;font-weight:700;}
.badge-deadline.deadline-soon{background:var(--warn-bg);color:var(--warn);}
.badge-deadline.deadline-passed{background:var(--urgent-bg);color:var(--urgent);}
.badge-deadline.deadline-ok{background:var(--success-bg);color:var(--success);}
.badge-deadline.deadline-critical{background:var(--urgent-bg);color:var(--urgent);animation:pulseBadge 1.6s ease-in-out infinite;}
.badge-deadline.deadline-normal{background:var(--bg);color:var(--muted);border:1px solid var(--border);}
@keyframes pulseBadge{0%,100%{opacity:1;}50%{opacity:.6;}}

.circular-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;}
.circular-grid .circular-item{height:100%;}

.data-table{width:100%;border-collapse:collapse;font-size:13.5px;}
.data-table th{text-align:right;padding:10px 12px;color:var(--muted);font-weight:600;border-bottom:2px solid var(--border);font-size:12.5px;}
.data-table td{padding:12px;border-bottom:1px solid var(--border);}
.data-table tr:hover td{background:var(--bg);}
.admin-table{width:100%;border-collapse:collapse;font-size:13px;}
.admin-table th{text-align:right;padding:10px;color:var(--muted);font-size:12px;border-bottom:2px solid var(--border);}
.admin-table td{padding:10px;border-bottom:1px solid var(--border);}

/* =====================================================================
   صفحه مشاهده بخشنامه (Breadcrumb + دوستونی)
   ===================================================================== */
.breadcrumb{display:flex;gap:6px;align-items:center;font-size:12.5px;color:var(--muted);margin-bottom:16px;flex-wrap:wrap;}
.breadcrumb a{color:var(--muted);text-decoration:none;}
.breadcrumb a:hover{color:var(--primary);}
.view-columns{display:grid;grid-template-columns:1fr;gap:20px;}
@media (min-width:900px){.view-columns{grid-template-columns:7fr 3fr;align-items:start;}}
.view-columns aside{position:sticky;top:78px;}
.view-title{font-size:clamp(1.3rem,2.4vw,1.9rem);font-weight:700;margin:10px 0 14px;line-height:1.5;}
.circular-body{font-size:15px;line-height:2.1;}
.comment-timeline{position:relative;padding-inline-start:20px;}
.comment-item{position:relative;padding:12px 0;border-bottom:1px solid var(--border);}
.comment-item:last-child{border-bottom:none;}
.comment-meta{font-size:12px;color:var(--muted);margin-bottom:6px;display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
.comment-body{font-size:13.5px;line-height:1.9;}

/* =====================================================================
   ماژول ارزشیابی: ویزارد چندمرحله‌ای
   ===================================================================== */
.eval-school-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 16px;}
.eval-school-grid > div{min-width:0;}
@media (max-width:600px){.eval-school-grid{grid-template-columns:1fr;}}

.wizard-progress{display:flex;align-items:center;gap:4px;margin-bottom:26px;overflow-x:auto;padding-bottom:6px;}
.wizard-step{
  flex:1;min-width:70px;text-align:center;font-size:11px;color:var(--muted);position:relative;cursor:pointer;
}
.wizard-step-dot{
  width:30px;height:30px;border-radius:50%;background:var(--border);color:var(--muted);
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;margin:0 auto 6px;
  transition:all .2s var(--ease);
}
.wizard-step.active .wizard-step-dot{background:var(--primary);color:#fff;box-shadow:0 0 0 5px var(--primary-light);}
.wizard-step.done .wizard-step-dot{background:var(--success);color:#fff;}
.wizard-step.active{color:var(--primary);font-weight:700;}
.wizard-pane{display:none;}
.wizard-pane.active{display:block;animation:fadeIn .25s var(--ease);}
.wizard-nav{display:flex;justify-content:space-between;margin-top:24px;gap:10px;}
.autosave-indicator{font-size:11.5px;color:var(--muted);display:flex;align-items:center;gap:5px;}
.autosave-indicator .dot{width:7px;height:7px;border-radius:50%;background:var(--success);}

.eval-category{margin:0;}
.eval-category-title{font-size:15px;color:var(--primary-dark);margin:0 0 14px;}
.eval-row{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding:11px 0;border-bottom:1px solid var(--border);}
.eval-row:last-child{border-bottom:none;}
.eval-q{flex:1 1 260px;font-size:13.5px;line-height:1.7;}
.eval-input{flex:0 0 auto;}
.rating-pills{display:flex;gap:6px;flex-wrap:wrap;}
.rating-pill{position:relative;cursor:pointer;}
.rating-pill input{position:absolute;opacity:0;width:0;height:0;}
.rating-pill span{
  display:inline-flex;align-items:center;justify-content:center;padding:8px 14px;border:1.5px solid var(--border);
  border-radius:20px;font-size:12.5px;background:var(--card);color:var(--muted);transition:all .15s var(--ease);white-space:nowrap;
}
.rating-pill input:checked + span{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:700;transform:scale(1.04);}
.rating-pill:hover span{border-color:var(--primary);}

.eval-item .eval-item-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;}
.eval-item h3{margin:0;font-size:15.5px;}
.eval-score{font-weight:700;font-size:14px;padding:4px 14px;border-radius:20px;white-space:nowrap;}
.eval-score-high{background:var(--success-bg);color:var(--success);}
.eval-score-mid{background:var(--warn-bg);color:var(--warn);}
.eval-score-low{background:var(--urgent-bg);color:var(--urgent);}
.eval-score-big{font-size:28px;font-weight:800;padding:12px 22px;border-radius:16px;white-space:nowrap;}
.eval-score-big.eval-score-high{background:var(--success-bg);color:var(--success);}
.eval-score-big.eval-score-mid{background:var(--warn-bg);color:var(--warn);}
.eval-score-big.eval-score-low{background:var(--urgent-bg);color:var(--urgent);}
.eval-view-row{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding:9px 0;border-bottom:1px solid var(--border);font-size:13.5px;}
.eval-view-row:last-child{border-bottom:none;}
.eval-view-answer{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.badge-rating{padding:4px 13px;border-radius:20px;font-size:11.5px;font-weight:700;}
.badge-rating-1{background:var(--urgent-bg);color:var(--urgent);}
.badge-rating-2{background:var(--warn-bg);color:var(--warn);}
.badge-rating-3{background:var(--warn-bg);color:var(--warn);}
.badge-rating-4{background:var(--primary-light);color:var(--primary-dark);}
.badge-rating-5{background:var(--success-bg);color:var(--success);}
.chart-wrap{max-width:520px;margin:0 auto 20px;}

/* دکمه چاپ گزارش + استایل مخصوص چاپ */
@media print{
  .app-topbar, .app-sidebar, .sidebar-overlay, .fab-stack, .no-print, .back-link, .wizard-nav{display:none !important;}
  .app-shell{display:block;}
  .app-main{padding:0;}
  body{background:#fff;color:#000;}
  .card{box-shadow:none;border:1px solid #ccc;break-inside:avoid;}
}

/* =====================================================================
   صفحه ورود/ثبت‌نام
   ===================================================================== */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,var(--primary),#6D28D9);}
.login-box{background:var(--card);border-radius:20px;box-shadow:var(--shadow-lg);padding:36px 30px;max-width:380px;width:100%;text-align:center;}
.login-icon{width:64px;height:64px;border-radius:18px;background:var(--primary-light);display:flex;align-items:center;justify-content:center;font-size:30px;margin:0 auto 14px;}
.login-subtitle{color:var(--muted);font-size:13px;margin:-6px 0 22px;}
.login-box form{text-align:right;}
.login-box input{
  width:100%;padding:12px 14px;margin-bottom:12px;border:1.5px solid var(--border);border-radius:var(--radius-sm);
  font-family:inherit;font-size:14px;background:var(--card);color:var(--text);
}
.login-box input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px rgba(79,70,229,.14);}

/* =====================================================================
   نوار ابزار متن ساده (ویرایشگر خبر)
   ===================================================================== */
.rte-toolbar{display:flex;gap:6px;flex-wrap:wrap;background:var(--bg);border:1px solid var(--border);border-bottom:none;border-radius:10px 10px 0 0;padding:8px;}
.rte-toolbar button, .rte-toolbar select{
  border:1px solid var(--border);background:var(--card);border-radius:6px;padding:6px 10px;font-size:12.5px;cursor:pointer;font-family:inherit;color:var(--text);
}
.rte-toolbar button:hover{background:var(--primary-light);}
.rte-editor{min-height:220px;border:1px solid var(--border);border-radius:0 0 10px 10px;padding:14px;font-size:14px;line-height:2;background:var(--card);}
.rte-editor:focus{outline:2px solid var(--primary);}

/* =====================================================================
   عناصر عمومی صفحات ادمین/داشبورد (کارت آمار، جدول، فیلتر، گالری)
   ===================================================================== */
.top-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px;}
.search-bar{display:flex;gap:8px;flex-wrap:wrap;}
.search-bar input, .search-bar select{
  padding:10px 13px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-family:inherit;font-size:13.5px;background:var(--card);color:var(--text);
}
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:16px;}

.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:22px;}
.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;text-align:center;box-shadow:var(--shadow-sm);}
.stat-num{font-size:26px;font-weight:800;color:var(--primary);}
.stat-label{font-size:12px;color:var(--muted);margin-top:4px;}

.role-pill, .role-tag{padding:2px 10px;border-radius:20px;font-size:10.5px;font-weight:700;background:var(--primary-light);color:var(--primary-dark);}
.role-pill-super_admin, .role-tag-super_admin{background:var(--urgent-bg);color:var(--urgent);}
.role-pill-admin, .role-tag-admin{background:var(--warn-bg);color:var(--warn);}
.role-pill-user, .role-tag-user{background:var(--primary-light);color:var(--primary-dark);}

.unread-banner{background:var(--warn-bg);color:var(--warn);padding:12px 16px;border-radius:var(--radius-sm);margin-bottom:16px;font-size:13.5px;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;}
.unread-count-text{font-weight:700;}

.gallery-thumbs{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0;}
.gallery-thumb{position:relative;width:86px;height:86px;border-radius:10px;overflow:hidden;border:1px solid var(--border);}
.gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.gallery-thumb form{position:absolute;top:2px;left:2px;margin:0;}
.gallery-thumb button{background:rgba(0,0,0,.55);color:#fff;border:none;border-radius:50%;width:20px;height:20px;font-size:11px;line-height:1;cursor:pointer;}

.attachment-list{display:flex;flex-direction:column;gap:6px;}
.attachment-list a{color:var(--primary);text-decoration:none;font-size:13px;}
.attachment-list a:hover{text-decoration:underline;}

.comment-textarea{width:100%;min-height:80px;padding:11px 14px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-family:inherit;font-size:13.5px;background:var(--card);color:var(--text);resize:vertical;}
.badge-read{background:var(--success-bg);color:var(--success);}
.read-status-table{width:100%;border-collapse:collapse;font-size:13px;}
.read-status-table td, .read-status-table th{padding:9px;border-bottom:1px solid var(--border);text-align:right;}

.meta-box{background:var(--bg);border-radius:var(--radius-sm);padding:14px 16px;font-size:13px;color:var(--muted);}

.sms-template-box{border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:14px;background:var(--bg);}
.sms-template-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;flex-wrap:wrap;gap:8px;}
.sms-template-params{font-size:12px;color:var(--muted);margin-bottom:8px;}
.sms-template-sample{background:var(--card);border:1px dashed var(--border);border-radius:8px;padding:10px 12px;font-size:12.5px;line-height:1.9;direction:rtl;}
.sms-toggle{display:flex;align-items:center;gap:8px;}

.news-cover{width:100%;max-height:320px;object-fit:cover;border-radius:12px;margin:6px 0 14px;}
.jalali-date-input{cursor:pointer;background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%2364748B' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5M1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4z'/%3E%3C/svg%3E") left 12px center/16px no-repeat;}

.hide-on-narrow{display:inline;}
@media (max-width:480px){.hide-on-narrow{display:none;}}
.badge-unread2{background:var(--urgent-bg);color:var(--urgent);}

/* انتخاب‌گر تاریخ شمسی با سه منوی کشویی */
.jalali-3select{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.jalali-3select select.jd-part{min-width:78px;padding:9px 8px;border-radius:8px;border:1px solid var(--border);background:var(--card-bg);color:var(--text);font-family:inherit;font-size:13.5px;}
.jalali-3select select.jd-year{min-width:88px;}
.jalali-3select .btn{padding:7px 10px;font-size:12px;}
@media (max-width:480px){
  .jalali-3select select.jd-part{min-width:0;flex:1;padding:9px 4px;font-size:12.5px;}
}
