
  @import url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@400;500;600;700;800;900&family=Lalezar&display=swap');

  /* ===== فونت اختصاصی «حانا» — لوگوتایپ Hasti (جاسازی‌شده به‌صورت base64 برای اجرای مطمئن در Apps Script) ===== */
  @font-face {
    font-family: 'Hasti';
    src: url(data:font/woff;charset=utf-8;base64,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) format('woff');
    font-weight: 400 900;
    font-style: normal;
    font-display: swap;
  }


  :root {
    /* ================================================================
     *  پالت «حانا کیدز» — نسخه‌ی «آتلیه‌ی گرم» (لوکس، مونته‌سوری، حرفه‌ای)
     *  پایه: کرم گرم + بژ شنی، تاکید: سبز سیج + طلایی عسلی + مرجانی نرم
     *  عمق: آبی-نیلی شبانه برای سایدبار/هدر و کنتراست‌های حرفه‌ای
     * ================================================================ */
    --bg: #F8F5EC;
    --bg-warm: #F1EFE9;
    --surface: #FFFFFF;
    --surface-2: #FBFAF8;
    --ink: #2B2A33;
    --ink-soft: #6B6975;
    --ink-faint: #A3A1AC;
    --border: #E7E5DE;
    --border-strong: #D9D6CC;

    --primary: #4A5DC7;
    --primary-dark: #38449E;
    --primary-light: #8792E0;
    --primary-tint: #EEF0FB;

    --sidebar-bg: #202A22;
    --sidebar-bg-2: #17201A;
    --sidebar-border: rgba(244,232,201,0.10);
    --sidebar-ink: rgba(244,238,222,0.66);
    --sidebar-ink-strong: #FBFAF8;

    --green: #2F9E6E;
    --green-tint: #E4F5EC;
    --gold: #C67C2E;
    --gold-dark: #A6621F;
    --gold-tint: #FBEEDC;
    --coral: #C1483C;
    --coral-tint: #FAE6E3;
    --pink: #A24B6F;
    --pink-tint: #F5E7ED;
    --lavender: #6B4E9E;
    --lavender-tint: #EFEAF7;

    --radius-lg: 20px;
    --radius-md: 14px;
    --radius-sm: 10px;
    --radius-pill: 999px;

    --shadow-xs: 0 1px 2px rgba(43,42,51,0.06);
    --shadow-sm: 0 3px 10px -3px rgba(43,42,51,0.09);
    --shadow-md: 0 14px 32px -14px rgba(43,42,51,0.20);
    --shadow-lg: 0 30px 64px -24px rgba(43,42,51,0.28);

    --font-display: 'Vazirmatn', sans-serif;
    --font-hasti: 'Hasti', 'Vazirmatn', sans-serif;
  }

  /* ============================================================
   *  لوگوتایپ «حانا» — استفاده‌ی جذاب از فونت Hasti برای نام مجموعه
   *  در هدر، سایدبار، فوتر، صفحه‌ی ورود و کارنامه‌ی رشد (PDF)
   * ============================================================ */
  .font-hasti {
    font-family: var(--font-hasti);
    font-weight: 400;
    line-height: 1;
    display: inline-block;
    letter-spacing: 0.5px;
  }
  .brand-hasti {
    font-family: var(--font-hasti);
    font-weight: 400;
    line-height: 1.15;
    display: inline-block;
    padding-inline-end: 2px;
    font-size: 1.22em;
    vertical-align: -0.1em;
  }

  * { box-sizing: border-box; }

  html, body {
    margin: 0;
    padding: 0;
    background: var(--bg);
    color: var(--ink);
    font-family: 'Vazirmatn', sans-serif;
    direction: rtl;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    max-width: 100%;
    overflow-x: hidden; /* شبکه‌ی ایمنیِ کلی: حتی اگر عنصری در جایی سرریزِ افقی داشته باشد،
      کلِ صفحه دیگر اسکرولِ افقی نمی‌گیرد — اسکرولِ افقیِ واقعی فقط داخلِ
      کانتینرهایِ اختصاصی مثلِ .table-scroll مجاز است، نه در سطحِ کلِ صفحه. */
  }

  body {
    background:
      radial-gradient(1100px 520px at 8% -8%, rgba(198,124,46,0.07), transparent 60%),
      radial-gradient(900px 480px at 100% 0%, rgba(74,93,199,0.06), transparent 55%),
      var(--bg);
  }

  ::selection { background: var(--gold); color: #fff; }

  ::-webkit-scrollbar { width: 10px; height: 10px; }
  ::-webkit-scrollbar-track { background: transparent; }
  ::-webkit-scrollbar-thumb { background: var(--border-strong); border-radius: 99px; border: 2px solid var(--bg); }
  ::-webkit-scrollbar-thumb:hover { background: var(--ink-faint); }

  .hidden { display: none !important; }
  a { color: inherit; text-decoration: none; }
  button { font-family: inherit; cursor: pointer; }
  svg { display: block; }


  /* ============================================================
   *  ری‌دیزاین صفحه‌ی اول — نسخه‌ی «دفترچه‌ی روزانه» (بازطراحی ساختاری کامل)
   *  زبان بصری: کاغذِ کرم با خط‌کشیِ ریز، لهجه‌ی کرافت + مهرِ قرمز،
   *  اعداد با فونتِ مونو و زیرخط، ریلِ ایندکس‌تبِ عمودی به‌جای منویِ افقی،
   *  هیروی «برگه‌ی گزارش روزانه‌ی نمونه» به‌جای گرادیان و کارت‌های شناور.
   * ============================================================ */

  #landingView {
    --l-paper: #FBF7EC;
    --l-paper-2: #F3EDDD;
    --l-ink: #242A20;
    --l-ink-soft: #5B6152;
    --l-kraft: #B98A2E;
    --l-kraft-tint: #F1E2BE;
    --l-stamp: #A13D2B;
    --l-stamp-tint: #F4DFD8;
    --l-line: #DCD2B4;
    --l-board: #1E271F;
    --l-good: #3F7A52;
    background: var(--l-paper);
    color: var(--l-ink);
    padding-inline-end: 0;
  }
  #landingView * { box-sizing: border-box; }
  #landingView h1, #landingView h2, #landingView h3, #landingView h4 { font-family: 'Vazirmatn', sans-serif; font-weight: 800; letter-spacing: -0.01em; margin: 0; }
  #landingView p { margin: 0; }
  #landingView .num { font-variant-numeric: tabular-nums; direction: ltr; display: inline-block; }
  #landingView .l-inner { max-width: 1180px; margin: 0 auto; padding: 0 24px; }
  #landingView .l-inner-narrow { max-width: 680px; }

  /* ---------------- نوار ناوبری: افقی روی موبایل / ریلِ عمودی روی دسکتاپ ---------------- */
  #landingView .l-nav-wrap {
    position: sticky; top: 0; z-index: 40;
    background: var(--l-board); border-bottom: 1px solid rgba(255,255,255,0.08);
  }
  #landingView .l-nav-wrap.is-stuck { box-shadow: 0 10px 24px -18px rgba(0,0,0,0.5); }
  #landingView .l-nav-inner { display: flex; align-items: center; justify-content: space-between; padding: 12px 20px; gap: 14px; }
  #landingView .l-brand { display: flex; align-items: center; gap: 10px; }
  #landingView .brand-mark {
    width: 34px; height: 34px; border-radius: 9px; background: var(--l-kraft); color: var(--l-board);
    display: flex; align-items: center; justify-content: center; font-weight: 900; font-size: 15px; flex-shrink: 0;
  }
  #landingView .l-brand b { color: #fff; font-size: 14.5px; font-weight: 800; }
  #landingView .l-brand-text { display: flex; flex-direction: column; line-height: 1.3; }
  #landingView .l-brand-text small { color: rgba(255,255,255,0.45); font-size: 10.5px; font-weight: 600; }
  #landingView .l-nav-links { display: none; }
  #landingView .l-nav-ctas { display: flex; align-items: center; gap: 8px; }

  #landingView .l-btn { border: none; border-radius: 10px; padding: 10px 16px; font-weight: 700; font-size: 13px; cursor: pointer; transition: filter .15s ease, transform .15s ease; font-family: 'Vazirmatn', sans-serif; }
  #landingView .l-btn-lg { padding: 13px 22px; font-size: 14px; }
  #landingView .l-btn-stamp { background: var(--l-stamp); color: #fff; }
  #landingView .l-btn-stamp:hover { filter: brightness(1.08); transform: translateY(-1px); }
  #landingView .l-btn-ghost { background: rgba(255,255,255,0.1); color: #fff; border: 1px solid rgba(255,255,255,0.2); }
  #landingView .l-btn-outline { background: transparent; border: 1.5px solid var(--l-ink); color: var(--l-ink); }
  #landingView .l-nav-burger { display: flex; width: 36px; height: 36px; border-radius: 9px; background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.2); align-items: center; justify-content: center; color: #fff; }

  #landingView .l-mobile-menu {
    position: fixed; inset: 0; z-index: 60; background: var(--l-board); color: #fff;
    display: flex; flex-direction: column; padding: 18px 20px; gap: 4px;
    transform: translateX(100%); transition: transform .28s ease;
  }
  #landingView .l-mobile-menu.open { transform: translateX(0); }
  #landingView .l-mobile-menu-top { display: flex; align-items: center; justify-content: space-between; padding-bottom: 16px; border-bottom: 1px solid rgba(255,255,255,0.12); margin-bottom: 8px; }
  #landingView .l-mobile-menu-close { background: none; border: none; color: #fff; font-size: 18px; }
  #landingView .l-mobile-menu a { color: rgba(255,255,255,0.75); font-weight: 700; font-size: 15px; padding: 13px 6px; border-bottom: 1px solid rgba(255,255,255,0.08); }
  #landingView .l-mobile-menu .l-btn { margin-top: 16px; }

  @media (min-width: 981px) {
    #landingView .l-nav-wrap {
      position: fixed; inset-inline-end: 0; top: 0; bottom: 0; width: 76px; z-index: 40;
      border-bottom: none; border-inline-start: 1px solid rgba(255,255,255,0.08);
    }
    #landingView .l-nav-inner { flex-direction: column; height: 100%; padding: 20px 10px; justify-content: flex-start; }
    #landingView .l-brand-text { display: none; }
    #landingView .l-nav-links { display: flex; flex-direction: column; gap: 4px; margin: 26px 0 auto; }
    #landingView .l-nav-links a {
      writing-mode: vertical-rl; text-orientation: mixed; color: rgba(255,255,255,0.5);
      font-size: 12.5px; font-weight: 700; padding: 14px 0; border-radius: 8px; letter-spacing: .03em;
      transition: color .15s ease, background .15s ease;
    }
    #landingView .l-nav-links a:hover { color: #fff; background: rgba(255,255,255,0.06); }
    #landingView .l-nav-ctas { flex-direction: column; gap: 8px; }
    #landingView .l-nav-ctas .l-btn { writing-mode: vertical-rl; padding: 14px 10px; }
    #landingView .l-nav-burger, #landingView .l-mobile-menu { display: none; }
    #landingView .l-page { padding-inline-end: 76px; }
  }

  /* ---------------- صفحاتِ دفترچه‌ای (بدونِ خط‌کشیِ افقی) ---------------- */
  #landingView .l-page { position: relative; padding: 64px 0; border-bottom: 1px solid var(--l-line); background: var(--l-paper); overflow: hidden; }
  #landingView .l-page-alt { background: var(--l-paper-2); }
  #landingView .l-page-rule { position: absolute; top: 0; bottom: 0; inset-inline-end: 24px; width: 1px; background: var(--l-stamp); opacity: .22; display: none; }
  @media (min-width: 981px) { #landingView .l-page-rule { display: block; inset-inline-end: 100px; } }
  /* شماره‌ی بزرگِ کم‌رنگِ هر بخش — امضایِ بصریِ متمایز به‌جایِ خط‌کشیِ پس‌زمینه */
  #landingView .l-page-index { position: absolute; top: 26px; inset-inline-start: 24px; font-size: 90px; font-weight: 900; color: var(--l-ink); opacity: .045; line-height: 1; user-select: none; pointer-events: none; }
  @media (max-width: 640px) { #landingView .l-page-index { display: none; } }

  #landingView .l-head { display: flex; align-items: baseline; gap: 14px; margin-bottom: 32px; flex-wrap: wrap; position: relative; z-index: 1; }
  #landingView .l-head h2 { font-size: 25px; }
  #landingView .l-tag { background: var(--l-kraft-tint); color: #7A5A16; font-size: 11.5px; font-weight: 700; padding: 5px 12px; border-radius: 99px; }

  /* ---------------- هیرو ---------------- */
  #landingView .l-hero { padding-top: 54px; }
  #landingView .l-hero-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 44px; align-items: center; position: relative; z-index: 1; }
  #landingView .l-kicker { font-size: 13px; color: var(--l-ink-soft); margin-bottom: 10px; }
  #landingView .l-hero h1 { font-size: 42px; line-height: 1.25; margin-bottom: 16px; letter-spacing: -0.015em; }
  #landingView .l-hero h1 em { font-style: normal; text-decoration: underline; text-decoration-color: var(--l-stamp); text-decoration-thickness: 3px; text-underline-offset: 6px; }
  #landingView .l-lede { font-size: 15px; color: var(--l-ink-soft); max-width: 46ch; margin-bottom: 22px; line-height: 1.85; }
  #landingView .l-hero-ctas { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 26px; }
  #landingView .l-hero-stats { display: flex; gap: 26px; }
  #landingView .l-hero-stats div { display: flex; flex-direction: column; }
  #landingView .l-hero-stats b { font-size: 19px; font-weight: 700; }
  #landingView .l-hero-stats span { font-size: 11.5px; color: var(--l-ink-soft); }

  #landingView .l-report-card { background: #fff; border: 1px solid var(--l-line); border-radius: 14px; box-shadow: 0 18px 40px -22px rgba(30,39,31,0.35); overflow: hidden; transform: rotate(-1.1deg); }
  #landingView .l-report-head { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px dashed var(--l-line); }
  #landingView .l-report-who { font-weight: 800; font-size: 14.5px; }
  #landingView .l-report-who small { display: block; font-weight: 500; font-size: 11.5px; color: var(--l-ink-soft); margin-top: 2px; }
  #landingView .l-report-stamp { width: 50px; height: 50px; border-radius: 50%; border: 2.5px solid var(--l-good); color: var(--l-good); display: flex; align-items: center; justify-content: center; font-size: 22px; transform: rotate(-8deg); flex-shrink: 0; }
  #landingView .l-report-body { padding: 18px 20px; }
  #landingView .l-report-row { display: flex; align-items: center; gap: 10px; padding: 8px 0; font-size: 13.5px; border-bottom: 1px solid #F1EEE3; }
  #landingView .l-report-row:last-of-type { border: none; }
  #landingView .l-check { width: 18px; height: 18px; border-radius: 5px; background: var(--l-good); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 11px; flex-shrink: 0; }
  #landingView .l-report-note { background: var(--l-paper-2); border-radius: 10px; padding: 12px 14px; font-size: 12.5px; color: var(--l-ink-soft); margin-top: 10px; }

  @media (max-width: 860px) { #landingView .l-hero-grid { grid-template-columns: 1fr; } #landingView .l-report-card { transform: none; } }

  /* ---------------- تایم‌لاین روزانه ---------------- */
  #landingView .l-dayline { display: flex; overflow-x: auto; gap: 0; padding-bottom: 8px; }
  #landingView .l-day-stop { flex: 1; min-width: 128px; text-align: center; position: relative; padding: 0 8px; display: flex; flex-direction: column; align-items: center; }
  #landingView .l-day-stop::before { content: ''; position: absolute; top: 9px; right: 0; left: 0; height: 2px; background: var(--l-line); }
  #landingView .l-day-stop:first-child::before { right: 50%; }
  #landingView .l-day-stop:last-child::before { left: 50%; }
  #landingView .l-day-dot { width: 20px; height: 20px; border-radius: 50%; background: #fff; border: 2px solid var(--l-kraft); margin-bottom: 10px; position: relative; z-index: 1; font-size: 10px; display: flex; align-items: center; justify-content: center; }
  #landingView .l-day-stop b { font-size: 12.5px; }
  #landingView .l-day-stop span:last-child { font-size: 13px; font-weight: 700; margin-top: 2px; }

  /* ---------------- ردیف‌های دفترچه‌ای (رویکرد آموزشی) ---------------- */
  #landingView .l-ledger-rows { display: flex; flex-direction: column; }
  #landingView .l-ledger-row { display: flex; gap: 18px; padding: 22px 0; border-bottom: 1px solid var(--l-line); }
  #landingView .l-ledger-row:nth-child(2) { padding-inline-start: 40px; }
  #landingView .l-ledger-row:nth-child(3) { padding-inline-start: 80px; }
  @media (max-width: 640px) { #landingView .l-ledger-row:nth-child(2), #landingView .l-ledger-row:nth-child(3) { padding-inline-start: 0; } }
  #landingView .l-ledger-row:last-child { border: none; }
  #landingView .l-ledger-tab { width: 5px; border-radius: 4px; background: var(--l-kraft); flex-shrink: 0; align-self: stretch; }
  #landingView .l-ledger-tab-2 { background: var(--l-good); }
  #landingView .l-ledger-tab-3 { background: var(--l-stamp); }
  #landingView .l-ledger-row h3 { font-size: 16.5px; margin-bottom: 6px; }
  #landingView .l-ledger-row p { font-size: 13.5px; color: var(--l-ink-soft); line-height: 1.85; max-width: 60ch; }

  /* ---------------- اخبار ---------------- */
  #landingView .news-filter-tabs { display: flex; gap: 8px; margin-bottom: 22px; flex-wrap: wrap; }
  #landingView .news-filter-tab { background: #fff; border: 1px solid var(--l-line); border-radius: 99px; padding: 8px 16px; font-size: 12.5px; font-weight: 700; color: var(--l-ink-soft); font-family: 'Vazirmatn', sans-serif; }
  #landingView .news-filter-tab.active { background: var(--l-board); color: #fff; border-color: var(--l-board); }
  #landingView .news-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 18px; }
  #landingView .news-card { background: #fff; border: 1px solid var(--l-line); border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; }
  #landingView .news-thumb { width: 100%; height: 140px; object-fit: cover; }
  #landingView .news-card .badge { align-self: flex-start; margin: 14px 16px 0; background: var(--l-kraft-tint); color: #7A5A16; font-size: 11px; font-weight: 700; padding: 4px 10px; border-radius: 99px; }
  #landingView .news-card h3 { font-size: 14.5px; margin: 10px 16px 4px; }
  #landingView .news-card p { font-size: 12.5px; color: var(--l-ink-soft); margin: 0 16px; line-height: 1.8; }
  #landingView .news-card .meta { display: flex; justify-content: space-between; font-size: 11px; color: var(--l-ink-soft); margin: 12px 16px 0; opacity: .8; }
  #landingView .btn-readmore { background: none; border: none; color: var(--l-stamp); font-weight: 700; font-size: 12.5px; text-align: right; padding: 10px 16px 16px; font-family: 'Vazirmatn', sans-serif; }
  #landingView .news-empty { grid-column: 1/-1; text-align: center; padding: 30px; color: var(--l-ink-soft); font-size: 13px; }

  /* ---------------- معلمان ---------------- */
  #landingView .teachers-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 16px; }
  #landingView .teacher-card { background: #fff; border: 1px solid var(--l-line); border-radius: 4px 12px 12px 4px; border-inline-start: 4px solid var(--l-kraft); padding: 16px; }
  #landingView .teacher-card-avatar { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; margin-bottom: 10px; display: block; }
  #landingView .teacher-card-avatar-fallback { background: var(--l-kraft-tint); color: #7A5A16; display: flex; align-items: center; justify-content: center; font-weight: 800; }
  #landingView .teacher-card h3 { font-size: 14px; margin-bottom: 2px; }
  #landingView .teacher-card p { font-size: 12px; color: var(--l-ink-soft); }
  #landingView .teacher-card-class { display: inline-block; margin-top: 8px; font-size: 11px; background: var(--l-paper-2); padding: 3px 10px; border-radius: 99px; color: var(--l-ink-soft); }

  /* ---------------- ثبت‌نام: مراحل شماره‌دار ---------------- */
  #landingView .l-steps { display: flex; flex-direction: column; margin-bottom: 26px; }
  #landingView .l-step { display: flex; gap: 18px; padding: 20px 0; border-bottom: 1px solid var(--l-line); }
  #landingView .l-step:last-child { border: none; }
  #landingView .l-step-n { font-size: 19px; font-weight: 700; color: var(--l-kraft); width: 32px; flex-shrink: 0; }
  #landingView .l-step h4 { font-size: 14.5px; margin-bottom: 4px; }
  #landingView .l-step p { font-size: 12.5px; color: var(--l-ink-soft); }

  /* ---------------- تماس ---------------- */
  #landingView .l-contact-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
  #landingView .l-contact-card { background: #fff; border: 1px solid var(--l-line); border-radius: 12px; padding: 18px; display: flex; flex-direction: column; gap: 8px; color: var(--l-ink); }
  #landingView .l-contact-card b { font-size: 13px; }
  #landingView .l-contact-card span { font-size: 12.5px; color: var(--l-ink-soft); }
  @media (max-width: 640px) { #landingView .l-contact-grid { grid-template-columns: 1fr; } }

  /* ---------------- فوتر ---------------- */
  #landingView .l-footer { background: var(--l-board); color: rgba(255,255,255,0.65); padding: 46px 0 24px; }
  #landingView .l-footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 26px; }
  #landingView .l-footer .l-brand b { color: #fff; }
  #landingView .l-footer-about p { font-size: 12.5px; line-height: 1.85; margin-top: 12px; max-width: 32ch; }
  #landingView .l-footer-col h4 { color: #fff; font-size: 13px; margin-bottom: 12px; }
  #landingView .l-footer-col a { display: block; font-size: 12.5px; padding: 6px 0; color: rgba(255,255,255,0.6); }
  #landingView .l-footer-bottom { text-align: center; font-size: 11.5px; opacity: .55; margin-top: 30px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,0.1); }
  @media (max-width: 780px) { #landingView .l-footer-grid { grid-template-columns: 1fr 1fr; } }
  @media (max-width: 480px) { #landingView .l-footer-grid { grid-template-columns: 1fr; } }
  /* ================= MODAL — کارت شیشه‌ای با انیمیشن ورود نرم ================= */
  @keyframes modalOverlayIn { from { opacity: 0; } to { opacity: 1; } }
  @keyframes modalBoxIn { from { opacity: 0; transform: translateY(22px) scale(.96); } to { opacity: 1; transform: translateY(0) scale(1); } }

  /* برش عکس پروفایل باید همیشه بالاتر از مودال‌های دیگر (مثل ویرایش دانش‌آموز/معلم) نمایش داده شود چون از داخل آن‌ها باز می‌شود */
  #photoCropModal { z-index: 250; }
  .modal-overlay {
    position: fixed; inset: 0;
    background: radial-gradient(900px 500px at 50% 0%, rgba(35,35,55,0.55), rgba(20,18,14,0.68));
    backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
    display: flex; align-items: center; justify-content: center;
    z-index: 100;
    padding: 20px;
    animation: modalOverlayIn .22s ease;
  }
  .modal-box-coral { border-top-color: var(--coral); }
  .btn-block-coral { background: var(--coral); }
  .btn-block-coral:hover { background: #A63A2F; }

  .modal-box {
    background: linear-gradient(180deg, rgba(255,255,255,0.94), rgba(255,255,255,0.985));
    backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
    border-radius: 26px;
    width: 100%; max-width: 440px;
    max-height: 90vh; overflow-y: auto; -webkit-overflow-scrolling: touch;
    padding: 38px 34px;
    box-shadow: 0 4px 12px rgba(43,42,51,0.06), var(--shadow-lg), 0 0 0 1px rgba(255,255,255,0.5) inset;
    position: relative;
    border: 1px solid rgba(255,255,255,0.6);
    border-top: none;
    animation: modalBoxIn .34s cubic-bezier(.2,.8,.2,1);
  }
  /* نوارِ تزئینیِ بالای مودال — به‌جای یک خطِ تخت، یک گرادیانِ درخشان و ضخیم‌تر که با
     شکلِ گردِ خودِ مودال هم‌راستا می‌شود؛ حس یک کارتِ خاص و برندشده می‌دهد. */
  .modal-box::before {
    content: ''; position: absolute; top: 0; right: 0; left: 0; height: 6px;
    border-radius: 26px 26px 0 0;
    background: linear-gradient(90deg, var(--primary-dark), var(--primary) 45%, var(--gold) 100%);
  }
  .modal-box-coral::before { background: linear-gradient(90deg, var(--coral), #A63A2F); }
  .modal-box-yellow::before { background: linear-gradient(90deg, var(--gold), #C67C2E); }
  @media (max-width: 480px) {
    .modal-box { padding: 28px 20px 24px; border-radius: 22px; }
    .modal-box::before { border-radius: 22px 22px 0 0; }
  }
  /* دکمه‌ی بستن مودال — به‌جای دایره‌ی معمولی، یک «اسکوییرکل» نامتقارن (شکل امضادار
     این پروژه) با آیکون X دوخطیِ SVG که هر خط مستقل حرکت می‌کند: در هاور دو خط از
     هم باز می‌شوند و با کمی تأخیر دوباره به X کامل برمی‌گردند (حس قیچی‌مانند)،
     پس‌زمینه هم از حالت شیشه‌ای به گرادیانِ کورال زنده می‌رود. */
  .modal-close {
    position: absolute; top: 16px; left: 16px; z-index: 2;
    background: linear-gradient(145deg, var(--surface) 0%, var(--surface-2) 100%);
    border: 1px solid var(--border);
    width: 36px; height: 36px; border-radius: 34% 66% 62% 38% / 42% 38% 62% 58%;
    color: var(--ink-soft);
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 1px 2px rgba(43,42,51,0.05), 0 5px 12px rgba(43,42,51,0.07);
    transition: color .18s ease, background .22s ease, border-color .18s ease,
      transform .32s cubic-bezier(.34,1.56,.64,1), box-shadow .22s ease, border-radius .3s ease;
  }
  .modal-close-icon { width: 15px; height: 15px; overflow: visible; }
  .modal-close-icon .mc-line { transition: transform .28s cubic-bezier(.34,1.56,.64,1); transform-origin: 12px 12px; }
  .modal-close:hover {
    color: #fff;
    background: linear-gradient(145deg, var(--coral) 0%, #A63A2F 100%);
    border-color: transparent;
    border-radius: 62% 38% 34% 66% / 58% 62% 38% 42%;
    transform: scale(1.08) rotate(-6deg);
    box-shadow: 0 4px 14px rgba(193,72,60,0.4);
  }
  .modal-close:hover .mc-line-1 { transform: rotate(-25deg) scaleX(1.08); }
  .modal-close:hover .mc-line-2 { transform: rotate(25deg) scaleX(1.08); }
  .modal-close:active { transform: scale(.9) rotate(0deg); border-radius: 50%; }
  .modal-box h2 { font-size: 21px; font-weight: 800; margin: 6px 0 6px; letter-spacing: -0.01em; }
  .modal-box .sub { font-size: 13px; color: var(--ink-soft); margin-bottom: 24px; line-height: 1.7; }
  .modal-box-yellow { border-top-color: var(--gold); }

  /* ================= مودال ورود دو‌بخشی — کارت شیشه‌ای لوکس ================= */
  .modal-box-login {
    max-width: 720px; padding: 0; overflow: hidden;
    display: grid; grid-template-columns: 0.85fr 1.15fr;
    border-top: none;
  }
  .modal-box-login::before { display: none; }
  .login-brand-pane {
    background: linear-gradient(155deg, var(--sidebar-bg), var(--sidebar-bg-2));
    color: #fff; padding: 40px 32px; display: flex; flex-direction: column;
    position: relative; overflow: hidden;
  }
  .login-brand-pane::before {
    content: ""; position: absolute; width: 240px; height: 240px; border-radius: 50%;
    background: radial-gradient(circle, rgba(198,124,46,0.28), transparent 70%);
    bottom: -110px; left: -80px;
  }
  /* موتیف امضادار: همان بلوک‌های آموزشی مونته‌سوری (A/B/C) که در لندینگ هم دیده می‌شوند،
     اینجا به‌صورت شناور و آرام در پس‌زمینه‌ی پنل ورود تکرار می‌شوند تا هویت بصری یکدست بماند. */
  .login-brand-illustration { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
  .login-brand-illustration svg { position: absolute; filter: drop-shadow(0 8px 14px rgba(0,0,0,0.22)); }
  .lbi-block-1 { width: 46px; bottom: 22%; left: 8%; animation: hiBob 5s ease-in-out infinite; opacity: .92; }
  .lbi-block-2 { width: 34px; bottom: 12%; left: 34%; animation: hiBob 5.6s ease-in-out infinite .4s; opacity: .8; }
  .lbi-block-3 { width: 30px; bottom: 32%; left: 46%; animation: hiBob 4.6s ease-in-out infinite .8s; opacity: .6; }
  @media (prefers-reduced-motion: reduce) { .login-brand-illustration svg { animation: none !important; } }
  .login-brand-mark {
    width: 48px; height: 48px; border-radius: 14px; margin-bottom: 18px;
    background: linear-gradient(135deg, var(--gold), var(--coral));
    display: flex; align-items: center; justify-content: center; color: var(--sidebar-bg-2);
    box-shadow: 0 10px 22px -8px rgba(198,124,46,0.6); position: relative; z-index: 1;
  }
  .login-brand-pane b { font-size: 19px; font-weight: 800; position: relative; z-index: 1; }
  .login-brand-pane > span { font-size: 12.5px; color: rgba(255,255,255,0.55); margin: 4px 0 26px; position: relative; z-index: 1; }
  .login-brand-points { list-style: none; margin: auto 0 0; padding: 0; display: flex; flex-direction: column; gap: 14px; position: relative; z-index: 1; }
  .login-brand-points li {
    font-size: 12.5px; line-height: 1.7; color: rgba(255,255,255,0.82); padding-right: 22px; position: relative;
  }
  .login-brand-points li::before {
    content: ""; position: absolute; right: 0; top: 6px; width: 8px; height: 8px; border-radius: 3px;
    background: var(--gold); transform: rotate(45deg);
  }
  .login-form-pane { padding: 38px 34px; }
  .login-form-pane h2 { margin-top: 0; }
  .modal-box-login .modal-close { z-index: 2; }
  @media (max-width: 640px) {
    .modal-box-login { grid-template-columns: 1fr; max-width: 400px; }
    .login-brand-pane { padding: 26px 28px 20px; }
    .login-brand-points { display: none; }
    .login-form-pane { padding: 26px 28px 32px; }
  }

  .field { margin-bottom: 16px; text-align: right; }
  .field label { display: block; font-size: 12.5px; font-weight: 700; margin-bottom: 7px; color: var(--ink); }
  /* فیلد با آیکون داخل ورودی — برای فرم ورود، تجربه‌ی حرفه‌ای‌تری از یک اینپوت ساده می‌دهد */
  .field-icon { position: relative; }
  .field-icon input { padding-right: 42px !important; }
  .field-icon-ico {
    position: absolute; right: 14px; top: 38px; width: 18px; height: 18px; color: var(--ink-faint);
    display: flex; align-items: center; justify-content: center; pointer-events: none; transition: color .15s ease;
  }
  .field-icon-ico svg { width: 100%; height: 100%; }
  .field-icon:focus-within .field-icon-ico { color: var(--primary); }
  .field input,
  .field textarea {
    width: 100%;
    padding: 12px 14px;
    border-radius: var(--radius-sm);
    border: 1.5px solid var(--border-strong);
    font-family: 'Vazirmatn', sans-serif;
    font-size: 14px;
    background: var(--surface-2);
    color: var(--ink);
    outline: none;
    transition: border-color .15s ease, background .15s ease;
  }
  .field input:focus, .field textarea:focus { border-color: var(--primary); background: var(--surface); }
  .field textarea { resize: vertical; min-height: 90px; }

  /* ---- استایلِ یکدستِ همه‌ی دراپ‌باکس‌های برنامه ----
     قبلاً فقط سلکت‌های داخلِ .field این ظاهرِ زیبا را داشتند و هر دراپ‌باکسِ
     دیگری (فیلترها، جدول‌ها، پیکرها و ...) با ظاهرِ پیش‌فرضِ زشتِ مرورگر رها
     می‌شد. با تعمیمِ این قانون به تگِ select به‌طورِ کلی، هیچ دراپ‌باکسی در کلِ
     برنامه بدونِ استایل نمی‌ماند؛ کلاس‌های اختصاصی‌تر (مثلِ .pay-filter-select)
     همچنان به‌خاطرِ specificity بالاتر، روی همین پایه سوار می‌شوند. */
  select {
    width: 100%;
    padding: 12px 42px 12px 14px;
    border-radius: var(--radius-sm);
    border: 1.5px solid var(--border-strong);
    font-family: 'Vazirmatn', sans-serif;
    font-size: 14px;
    font-weight: 600;
    background-color: var(--surface-2);
    color: var(--ink);
    outline: none;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236C6F85' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: left 14px center;
    background-size: 16px;
  }
  select:hover { border-color: var(--primary-light); }
  select:focus { border-color: var(--primary); background-color: var(--surface); box-shadow: 0 0 0 3px var(--primary-tint); }
  select:disabled { opacity: .6; cursor: not-allowed; }
  select option { padding: 10px; background: var(--surface); color: var(--ink); }

  /* ---- رفعِ زوم خودکارِ iOS Safari روی فوکوسِ ورودی‌ها ----
     هر input/select/textarea با فونتِ کوچک‌تر از 16px، در سافاری iOS باعثِ
     زوم ناخواسته‌ی کل صفحه هنگامِ فوکوس می‌شود — یک باگِ رسپانسیوِ کلاسیک که
     تقریباً هر فرمِ برنامه (ورود، ثبتِ دانش‌آموز، گزارش روزانه، پرداخت و...)
     را تحت‌تاثیر قرار می‌داد. اینجا فقط در موبایل، فونت را به ۱۶px می‌رسانیم؛
     ظاهرِ فشرده‌ترِ دسکتاپ دست‌نخورده می‌ماند. ---- */
  @media (max-width: 760px) {
    .field input, .field select, .field textarea,
    input[type="text"], input[type="number"], input[type="tel"],
    input[type="password"], input[type="email"], input[type="date"],
    input[type="search"], select, textarea {
      font-size: 16px !important;
    }
  }

  /* ---- بزرگ‌ترشدنِ اهدافِ لمسیِ دکمه‌های آیکونی در موبایل ----
     ۳۴px برای انگشت روی صفحه‌ی لمسی کمی کوچک است؛ استانداردِ رایج (اپل/گوگل)
     حداقل ۴۴px را توصیه می‌کند. اینجا فقط در موبایل کمی بزرگ‌تر می‌شویم؛
     ظرافتِ دسکتاپ حفظ می‌شود. ---- */
  @media (max-width: 760px) {
    .btn-refresh, .modal-close, .manual-refresh-btn { width: 40px !important; height: 40px !important; }
    .btn-refresh svg { width: 17px; height: 17px; }
  }

  .btn-reset-pass {
    background: var(--surface); border: 1.5px solid var(--border-strong);
    padding: 6px 14px; border-radius: var(--radius-pill); font-size: 11.5px; font-weight: 700;
    color: var(--ink-soft); transition: border-color .15s ease, color .15s ease;
  }
  .btn-reset-pass:hover { border-color: var(--coral); color: #A63A2F; }

  .btn-block {
    width: 100%;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: #fff;
    border: none;
    padding: 13px;
    border-radius: var(--radius-sm);
    font-weight: 700;
    font-size: 14.5px;
    margin-top: 6px;
    box-shadow: 0 10px 22px -10px rgba(56,68,158,0.55);
    transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
  }
  .btn-block:hover { filter: brightness(1.06); transform: translateY(-1px); box-shadow: 0 14px 26px -10px rgba(56,68,158,0.6); }
  .btn-block:active { transform: translateY(0); }
  .btn-block:disabled { opacity: .55; cursor: default; transform: none; }

  .form-msg {
    font-size: 12.5px; font-weight: 700; padding: 10px 14px;
    border-radius: var(--radius-sm); margin-bottom: 14px; display: none;
  }
  .form-msg.show { display: block; }
  .form-msg.error { background: var(--coral-tint); color: #A63A2F; }
  .form-msg.success { background: var(--green-tint); color: #2F9E6E; }

  .cred-box {
    background: var(--surface-2); border: 1.5px solid var(--border);
    border-radius: var(--radius-md); padding: 16px 18px; margin-bottom: 16px;
    display: flex; flex-direction: column; gap: 10px;
  }
  .cred-box div { display: flex; align-items: center; justify-content: space-between; font-size: 13.5px; }
  .cred-box span { color: var(--ink-soft); }
  .cred-box b { font-size: 15px; letter-spacing: 0.02em; }
  .cred-warning {
    font-size: 12px; color: #A6621F; background: var(--gold-tint);
    padding: 10px 14px; border-radius: var(--radius-sm); line-height: 1.8; margin-bottom: 18px;
  }
  .cred-contracts-row { display: flex; gap: 10px; margin-bottom: 14px; flex-wrap: wrap; }
  .cred-contracts-row .btn-secondary { flex: 1; min-width: 140px; }

  /* ================= APP SHELL (SIDEBAR + MAIN) ================= */
  .app-shell {
    display: flex;
    align-items: stretch;
    height: 100vh;
    height: 100dvh; /* رفعِ باگ اصلیِ سایدبار: قبلاً min-height:100vh بود، یعنی اگر
      محتوایِ main از یک صفحه بلندتر می‌شد، خودِ .app-shell (و در نتیجه html/body)
      به همان اندازه کشیده و اسکرول می‌شد. سایدبار هم چون sticky+height:100vh
      بود، وقتی صفحه اسکرول می‌شد چیزی برایِ «چسبیدن» نداشت (جعبه‌ی خودش دقیقاً
      هم‌قدِ صفحه بود) و همراهِ بقیه‌ی صفحه پایین می‌رفت و از پایین شکسته/جدا
      به‌نظر می‌رسید. حالا app-shell ارتفاعِ ثابتِ واقعیِ صفحه را دارد و خودش
      اسکرول نمی‌شود؛ فقط .app-main درونش اسکرول می‌شود (پایین‌تر). */
    overflow: hidden;
    background: var(--bg);
  }

  /* ---- سایدبار ---- */
  .sidebar {
    width: 252px;
    flex-shrink: 0;
    background: var(--sidebar-bg);
    display: flex;
    flex-direction: column;
    padding: 14px 12px;
    /* رفعِ باگِ اصلی: دیگر position:sticky + height:100vh نیست. حالا سایدبار
       یک آیتمِ flexِ معمولی در .app-shell است که ارتفاعِ ثابتی دارد (بالا،
       overflow:hidden) و align-items:stretch به‌طورِ خودکار سایدبار را دقیقاً
       هم‌قدِ app-shell می‌کند — بدونِ هیچ محاسبه‌ی vh/dvh جداگانه و بدونِ خطرِ
       جدا شدن از پایینِ صفحه هنگامِ اسکرول. */
    z-index: 46; /* بالاتر از .mobile-bottom-nav (که z-index:45 دارد) تا وقتی
      سایدبارِ موبایل باز است، همیشه رویِ نوارِ پایینیِ موبایل قرار بگیرد و
      فوترِ آن (دکمه‌ی خروج) هرگز زیرِ آن نوار پنهان نشود. */
    /* محافظِ نهایی: اگر مجموعِ برند+منو+فوتر از ارتفاعِ واقعیِ قابل‌مشاهده
       بیشتر شد، کاربر می‌تواند کلِ سایدبار را اسکرول کند و به فوتر برسد. */
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .sidebar-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 2px 4px 12px;
    margin-bottom: 4px;
    border-bottom: 1px solid var(--sidebar-border);
    flex-shrink: 0;
  }
  .sidebar-brand .brand-mark {
    width: 34px; height: 34px; border-radius: 11px;
    background: linear-gradient(135deg, var(--gold), var(--coral));
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0; color: var(--sidebar-bg-2);
    box-shadow: 0 6px 14px -6px rgba(198,124,46,0.65);
  }
  .sidebar-brand .brand-mark svg { width: 17px; height: 17px; }
  .sidebar-brand-text {
    font-weight: 800; font-size: 14px; color: #fff; line-height: 1.25;
  }
  .sidebar-brand-text small {
    display: block; font-size: 10px; font-weight: 500; color: rgba(255,255,255,0.4);
    margin-top: 1px;
  }

  /* رفعِ باگ: قبلاً flex:1 داشت که باعث می‌شد رویِ صفحه‌نمایش‌هایِ بلندِ
     دسکتاپ، منو تا ته کشیده شود و دکمه‌ی «خروج» با یک فاصله‌ی خالیِ بزرگ و
     زشت به‌زورِ پایینِ صفحه بچسبد. حالا فهرست فقط به‌اندازه‌ی محتوایِ خودش
     جا می‌گیرد و فوتر بلافاصله بعدِ آخرین آیتم می‌آید (دقیقاً مثلِ نسخه‌ی
     قبل)؛ اگر تعدادِ آیتم‌ها برایِ یک نقش خیلی زیاد شد و جا نشد، خودِ
     .sidebar (نه این بخش) به‌عنوانِ راهِ فرارِ ایمن اسکرول می‌گیرد. */
  .sidebar-nav {
    display: flex; flex-direction: column; gap: 1px;
    padding-top: 4px;
  }
  .sidebar-section-label {
    font-size: 10.5px; font-weight: 700; color: rgba(255,255,255,0.3);
    padding: 12px 10px 4px; letter-spacing: 0.04em;
  }
  .nav-item {
    display: flex; align-items: center; gap: 10px;
    width: 100%; border: none; background: transparent;
    padding: 8px 10px; border-radius: var(--radius-pill);
    color: var(--sidebar-ink);
    font-family: 'Vazirmatn', sans-serif;
    font-size: 12.8px; font-weight: 600;
    text-align: right;
    position: relative;
    transition: background .18s ease, color .18s ease, transform .12s ease;
  }
  .nav-item:hover { background: rgba(244,232,201,0.08); color: #fff; transform: translateX(-1px); }
  .nav-item:active { transform: scale(.98); }
  .nav-item.active {
    background: linear-gradient(90deg, rgba(198,124,46,0.20), rgba(244,232,201,0.06));
    color: var(--sidebar-ink-strong);
  }
  .nav-item.active::before {
    content: ""; position: absolute; right: -2px; top: 50%; transform: translateY(-50%);
    width: 3px; height: 60%; border-radius: 3px; background: var(--gold);
  }
  .nav-item.active .nav-badge { background: var(--gold); color: var(--sidebar-bg-2); }
  .nav-badge {
    width: 28px; height: 28px; border-radius: 9px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0; transition: background .18s ease, color .18s ease;
    background: rgba(244,232,201,0.07);
  }
  .nav-badge svg { width: 14.5px; height: 14.5px; }
  .badge-teal     { color: #5CB88A; }
  .badge-coral    { color: #E2A79E; }
  .badge-yellow   { color: #F0D2A0; }
  .badge-lavender { color: #B8A6D9; }
  .badge-pink     { color: #DDB3C8; }
  .badge-danger   { color: #E2A79E; }
  .badge-green    { color: #5CB88A; }

  .sidebar-footer {
    padding-top: 6px; border-top: 1px solid var(--sidebar-border); margin-top: 4px; flex-shrink: 0;
    /* رفعِ باگ: در گوشی‌هایی که نوارِ پایینیِ صفحه (Home Indicator/حرکتی) یا نوارِ
       آدرسِ مرورگر روی موبایل، فضایِ safe-area دارند، دکمه‌ی «خروج» می‌توانست
       زیرِ همان نوار پنهان/نصفه بماند. env(safe-area-inset-bottom) دقیقاً همان
       فضایِ اضافه‌ی لازم را از پایین اضافه می‌کند (در گوشی‌هایی که این مقدار را
       پشتیبانی نکنند، max(...) به مقدارِ ثابتِ ۱۰px برمی‌گردد و تغییری ایجاد نمی‌شود). */
    padding-bottom: max(10px, env(safe-area-inset-bottom));
  }
  .nav-item-logout:hover { background: rgba(193,72,60,0.14); color: #E2A79E; }

  .sidebar-overlay {
    display: none;
    position: fixed; inset: 0;
    background: rgba(15,13,28,0.5);
    z-index: 35;
  }

  /* ---- محتوای اصلی ---- */
  .app-main {
    flex: 1; min-width: 0; overflow-x: hidden;
    height: 100%;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    /* حالا این تنها ناحیه‌ای است که واقعاً اسکرول می‌شود (نه html/body)، دقیقاً
       همان چیزی که .app-topbar با position:sticky انتظارش را داشت. */
  }

  .app-topbar {
    display: flex; align-items: center; justify-content: space-between;
    gap: 18px;
    padding: 16px 30px;
    background: linear-gradient(120deg, var(--primary-dark) 0%, var(--primary) 46%, var(--lavender) 100%);
    background-size: 180% 180%;
    border-bottom: 1px solid var(--sidebar-border);
    box-shadow: var(--shadow-md);
    position: sticky; top: 0; z-index: 20;
    color: #fff;
    overflow: hidden;
  }
  .app-topbar::before {
    content: ''; position: absolute; inset: 0;
    background-image: radial-gradient(circle at 8% 120%, rgba(255,255,255,0.16) 0%, transparent 46%),
                       radial-gradient(circle at 94% -30%, rgba(255,255,255,0.14) 0%, transparent 50%);
    pointer-events: none;
  }
  .app-topbar > * { position: relative; z-index: 1; }
  .mobile-menu-btn {
    display: none;
    width: 36px; height: 36px; border-radius: var(--radius-sm);
    border: 1.5px solid rgba(255,255,255,0.28); background: rgba(255,255,255,0.1);
    align-items: center; justify-content: center; color: #fff;
    flex-shrink: 0;
  }
  .mobile-menu-btn svg { width: 18px; height: 18px; }

  .topbar-title { min-width: 0; flex: 1 1 auto; overflow: hidden; }
  .topbar-title h1 { font-size: 18px; font-weight: 800; margin: 0; letter-spacing: -0.01em; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .topbar-title p { font-size: 12px; color: rgba(255,255,255,0.72); margin: 3px 0 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

  .topbar-clock {
    display: flex; align-items: center; gap: 10px;
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.22);
    border-radius: var(--radius-pill);
    padding: 7px 16px 7px 8px;
    backdrop-filter: blur(6px);
    margin-inline-start: auto;
    flex-shrink: 0;
  }
  .topbar-clock-ico {
    width: 26px; height: 26px; border-radius: 50%;
    background: rgba(255,255,255,0.18);
    display: flex; align-items: center; justify-content: center; color: #fff;
  }
  .topbar-clock-ico svg { width: 14px; height: 14px; }
  .topbar-clock-text { display: flex; flex-direction: column; line-height: 1.35; }
  .topbar-clock-text b { font-size: 12px; font-weight: 700; color: #fff; }
  .topbar-clock-text small { font-size: 11px; color: rgba(255,255,255,0.72); font-variant-numeric: tabular-nums; }
  @media (max-width: 860px) { .topbar-clock { display: none; } }

  /* دکمه‌ی بروزرسانی — همان زبان طراحیِ «اسکوییرکل نامتقارن» دکمه‌ی بستن را دارد
     تا این دو با هم یک زبان بصریِ تازه و یکدست بسازند؛ در کلیک به‌جای چرخش ساده،
     یک موج (ripple) از داخل دکمه منتشر می‌شود و آیکون با یک چرخش فنری/الاستیک
     (کمی overshoot) می‌چرخد که حس زنده‌تر و شیک‌تری می‌دهد. */
  .manual-refresh-btn {
    position: relative; overflow: hidden;
    width: 38px; height: 38px; flex-shrink: 0;
    border-radius: 38% 62% 58% 42% / 46% 40% 60% 54%;
    background: rgba(255,255,255,0.14);
    border: 1px solid rgba(255,255,255,0.26);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.18), 0 2px 6px rgba(0,0,0,0.08);
    color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer;
    transition: background .18s ease, border-color .18s ease, border-radius .3s ease,
      transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .18s ease;
  }
  .manual-refresh-btn svg { width: 16px; height: 16px; position: relative; z-index: 1; }
  .manual-refresh-btn::before {
    content: ''; position: absolute; inset: 0; border-radius: inherit;
    background: radial-gradient(circle, rgba(234,208,155,.55) 0%, transparent 70%);
    opacity: 0; transform: scale(0);
    transition: opacity .5s ease, transform .5s ease;
  }
  .manual-refresh-btn:hover {
    background: rgba(255,255,255,0.24); border-color: rgba(255,255,255,0.4);
    border-radius: 58% 42% 38% 62% / 54% 60% 40% 46%;
    transform: translateY(-1px) rotate(8deg);
  }
  .manual-refresh-btn:active { transform: translateY(0) scale(.92) rotate(0deg); }
  .manual-refresh-btn.spinning { background: rgba(198,124,46,0.32); border-color: var(--gold); }
  .manual-refresh-btn.spinning::before { opacity: 1; transform: scale(1.6); }
  .manual-refresh-btn.spinning svg { animation: manualRefreshSpin .75s cubic-bezier(.34,1.56,.64,1); }
  @keyframes manualRefreshSpin { 0% { transform: rotate(0deg); } 65% { transform: rotate(400deg); } 100% { transform: rotate(360deg); } }


  .topbar-user { display: flex; align-items: center; gap: 12px; }
  .topbar-user-info { text-align: left; }
  .topbar-user-info .name { font-weight: 700; font-size: 13.5px; color: #fff; }
  .role-pill {
    display: inline-block; font-size: 10.5px; font-weight: 700;
    padding: 3px 12px; border-radius: var(--radius-pill);
    background: rgba(255,255,255,0.18); color: #fff;
    margin-top: 3px;
  }
  .avatar-ring {
    width: 44px; height: 44px; border-radius: 50%;
    padding: 2.5px;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, var(--gold), var(--coral));
    box-shadow: 0 0 0 3px rgba(255,255,255,0.16);
  }
  .avatar-ring.ring-teal { background: linear-gradient(135deg, var(--green), #5CB88A); }
  .avatar-ring.ring-coral { background: linear-gradient(135deg, var(--coral), var(--pink)); }
  .avatar-ring.ring-yellow { background: linear-gradient(135deg, var(--gold), #F0D2A0); }
  .avatar-ring.ring-lavender { background: linear-gradient(135deg, var(--lavender), var(--primary-light)); }
  .avatar {
    width: 100%; height: 100%; border-radius: 50%;
    background: var(--primary-dark);
    display: flex; align-items: center; justify-content: center;
    font-weight: 800; color: #fff; font-size: 14.5px;
    overflow: hidden;
  }
  .avatar-img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }

  .app-content { padding: 26px 30px 70px; max-width: 100%; overflow-x: hidden; }
  .content-section.hidden { display: none; }

  /* ---- کارت خوشامد ---- */
  .welcome-block {
    background: var(--surface);
    border: 1px solid var(--border);
    border-inline-start: 4px solid var(--gold);
    border-radius: var(--radius-md);
    padding: 22px 26px;
    margin-bottom: 20px;
    display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
    position: relative; overflow: hidden; box-shadow: var(--shadow-xs);
  }
  .welcome-block-glow { display: none; }
  /* پژواک همان موتیف بلوک‌های مونته‌سوری (لندینگ/ورود) در گوشه‌ی کارت خوشامد، بسیار ملایم
     تا هویت بصری در سراسر اپ یکدست بماند بدون این‌که توجه را از محتوا بگیرد */
  .welcome-block-blocks { position: absolute; left: 22px; bottom: -10px; display: flex; gap: 6px; opacity: .16; pointer-events: none; z-index: 0; }
  .welcome-block-blocks svg { width: 34px; height: 34px; }
  .welcome-block-blocks svg:nth-child(2) { margin-top: 10px; }
  @media (max-width: 640px) { .welcome-block-blocks { display: none; } }
  .welcome-block-main { display: flex; align-items: center; gap: 16px; position: relative; z-index: 1; }
  .welcome-block-ico {
    width: 44px; height: 44px; border-radius: 12px; flex-shrink: 0;
    background: var(--gold-tint); color: var(--gold-dark);
    display: flex; align-items: center; justify-content: center;
  }
  .welcome-block h1 { font-size: 20px; margin: 0 0 6px; font-weight: 800; letter-spacing: -0.01em; }
  .welcome-block p { color: var(--ink-soft); margin: 0; font-size: 13.5px; line-height: 1.8; }
  .welcome-year {
    display: flex; align-items: center; gap: 9px;
    background: var(--bg-warm); border: 1px solid var(--border);
    padding: 9px 16px; border-radius: var(--radius-pill);
    font-weight: 700; font-size: 12.5px; color: var(--ink);
    font-variant-numeric: tabular-nums;
    flex-shrink: 0; position: relative; z-index: 1;
  }
  .welcome-year-ico { color: var(--gold-dark); display: flex; }
  .welcome-year-ico svg { width: 15px; height: 15px; }

  .stats-strip {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px;
    margin-bottom: 20px;
  }
  .stats-strip.hidden { display: none; }
  .stat-card {
    background: var(--surface); border: 1px solid var(--border);
    border-radius: var(--radius-md);
    padding: 16px 18px; display: flex; align-items: center; gap: 13px;
    transition: border-color .15s ease;
  }
  .stat-card:hover { border-color: var(--border-strong); }
  .stat-card .nav-badge { background: var(--gold-tint); color: var(--gold-dark); border-radius: var(--radius-sm); }
  .stat-card .stat-num { font-size: 21px; font-weight: 700; font-variant-numeric: tabular-nums; }
  .stat-card .stat-label { font-size: 12px; color: var(--ink-soft); }

  .dash-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
  }
  .feature-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    padding: 20px;
    transition: border-color .15s ease;
  }
  .feature-card:hover { border-color: var(--gold); }
  .feature-card .ico {
    width: 40px; height: 40px; border-radius: var(--radius-sm);
    background: var(--gold-tint); color: var(--gold-dark);
    display: flex; align-items: center; justify-content: center;
    font-size: 18px; margin-bottom: 14px;
  }
  .feature-card .ico svg { width: 19px; height: 19px; }
  .feature-card h4 { font-size: 14.5px; font-weight: 800; margin: 0 0 6px; }
  .feature-card p { font-size: 12.5px; color: var(--ink-soft); line-height: 1.8; margin: 0 0 12px; }
  .soon-tag {
    display: inline-block; font-size: 10.5px; font-weight: 700;
    background: var(--gold-tint); color: #A6621F;
    padding: 3px 10px; border-radius: var(--radius-pill);
  }

  /* ---- کارت پنل فرم و لیست ---- */
  .panel-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 24px 26px 28px;
    box-shadow: var(--shadow-xs);
  }

  .field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
  @media (max-width: 560px) { .field-row { grid-template-columns: 1fr; } }

  .data-table { width: 100%; border-collapse: collapse; font-size: 13px; }
  .table-scroll { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .table-scroll .data-table { min-width: 560px; }
  @media (min-width: 720px) { .table-scroll .data-table { min-width: 0; } }
  .data-table th {
    text-align: right; padding: 12px 10px; background: var(--surface-2);
    color: var(--ink-soft); font-weight: 700; font-size: 11.5px;
    border-bottom: 1.5px solid var(--border);
  }
  .data-table th:first-child { border-top-right-radius: var(--radius-sm); }
  .data-table th:last-child { border-top-left-radius: var(--radius-sm); }
  .data-table td { padding: 12px 10px; border-bottom: 1px solid var(--border); }
  .data-table tbody tr { transition: background .12s ease; }
  .data-table tbody tr:hover { background: var(--surface-2); }
  .table-empty { text-align: center; color: var(--ink-soft); padding: 24px !important; }

  .settings-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 26px 28px;
    max-width: 480px;
  }
  .settings-card h3 { font-size: 16px; font-weight: 800; margin: 0 0 4px; }
  .settings-card .sub { font-size: 12.5px; color: var(--ink-soft); margin-bottom: 20px; }

  .settings-card-head { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 18px; }
  .settings-card-icon {
    width: 40px; height: 40px; flex-shrink: 0; border-radius: 12px; background: var(--lavender-tint);
    display: flex; align-items: center; justify-content: center; font-size: 19px;
  }
  .settings-card-head h3 { margin: 0 0 3px; }
  .settings-card-head .sub { margin-bottom: 0; }

  .settings-toggle-row {
    display: flex; align-items: center; justify-content: space-between; gap: 14px;
    padding: 14px 0; border-top: 1px solid var(--border);
  }
  .settings-toggle-row:first-of-type { border-top: none; padding-top: 4px; }
  .settings-toggle-info { display: flex; flex-direction: column; gap: 3px; }
  .settings-toggle-info strong { font-size: 13px; color: var(--ink); }
  .settings-toggle-info span { font-size: 11.5px; color: var(--ink-soft); }

  .switch-toggle { position: relative; display: inline-block; width: 46px; height: 26px; flex-shrink: 0; }
  .switch-toggle input { opacity: 0; width: 0; height: 0; }
  .switch-slider {
    position: absolute; cursor: pointer; inset: 0; background: var(--border);
    border-radius: var(--radius-pill); transition: background .2s ease;
  }
  .switch-slider::before {
    content: ""; position: absolute; width: 20px; height: 20px; right: 3px; bottom: 3px;
    background: #fff; border-radius: 50%; transition: transform .2s ease; box-shadow: var(--shadow-xs);
  }
  .switch-toggle input:checked + .switch-slider { background: #2F9E6E; }
  .switch-toggle input:checked + .switch-slider::before { transform: translateX(-20px); }
  .switch-toggle input:disabled + .switch-slider { opacity: .5; cursor: default; }

  /* ---- اطلاعیه‌ی «این بخش هنوز فعال نشده» برای معلم وقتی مدیریت گزینه را روشن نکرده ---- */
  .feature-locked-notice { text-align: center; padding: 46px 20px; }
  .feature-locked-notice .fln-icon { font-size: 40px; display: block; margin-bottom: 12px; }
  .feature-locked-notice h3 { font-size: 15px; margin: 0 0 8px; }
  .feature-locked-notice .sub { max-width: 340px; margin: 0 auto; }

  .panel-card h3 { font-size: 16px; font-weight: 800; margin: 0 0 4px; display: flex; align-items: center; gap: 9px; }
  .panel-card h3::before { content: ""; width: 6px; height: 6px; border-radius: 2px; background: var(--gold); transform: rotate(45deg); flex-shrink: 0; }
  .settings-card h3 { display: flex; align-items: center; gap: 9px; }
  .settings-card h3::before { content: ""; width: 6px; height: 6px; border-radius: 2px; background: var(--gold); transform: rotate(45deg); flex-shrink: 0; }
  .panel-card > .sub { font-size: 12.5px; color: var(--ink-soft); margin-bottom: 20px; }
  .news-admin-list { margin-top: 18px; }

  /* ---- سربرگ کارت پنل (عنوان + دکمه‌های به‌روزرسانی/چاپ) ---- */
  .panel-card-head {
    display: flex; align-items: center; justify-content: space-between;
    gap: 12px; margin-bottom: 16px; flex-wrap: wrap;
  }
  .panel-card-head > div:first-child { min-width: 0; flex: 1 1 auto; }
  .panel-card-head h3 { margin: 0; min-width: 0; flex: 1 1 auto; }
  .panel-card-head-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; flex-shrink: 0; }

  /* ---- سربرگ‌های کارت‌ها در موبایل: به‌جای فشرده‌شدن/سرریزِ افقی، عنوان و
     دکمه‌ها هر کدام ردیفِ خودشان را می‌گیرند؛ دکمه‌ها هم داخلِ یک نوارِ ملایمِ
     پس‌زمینه‌دار قرار می‌گیرند تا به‌جای پخش‌شدنِ خام، مثلِ یک تولبارِ یکپارچه
     و شیک دیده شوند. ---- */
  @media (max-width: 640px) {
    .panel-card-head, .dash-card-head {
      flex-direction: column; align-items: stretch; gap: 12px;
    }
    .panel-card-head-actions {
      width: 100%; justify-content: flex-start;
      background: var(--surface-2); border: 1px solid var(--border);
      border-radius: var(--radius-md); padding: 8px;
    }
    .panel-card-head-actions > * { flex: 0 0 auto; }
    .panel-card-head-actions > select, .panel-card-head-actions > .btn-print { flex: 1 1 140px; }
    .panel-card-head h3, .dash-card-head h3 { font-size: 15px; }
    .settings-card-head { gap: 10px; }
  }

  /* دکمه‌ی به‌روزرسانیِ کارت‌ها — به‌جای دایره‌ی ساده با فلش چرخان، یک «اسکوییرکلِ»
     نامتقارن هم‌زبان با دکمه‌ی manual-refresh-btن نوار بالا؛ آیکون SVG دو-پیکانه
     (نه یک فلش تک‌خطی) و در حالت spinning یک موج رنگی از داخل دکمه منتشر می‌شود. */
  .btn-refresh {
    position: relative; overflow: hidden;
    width: 34px; height: 34px; flex-shrink: 0;
    border-radius: 34% 66% 62% 38% / 40% 34% 66% 60%;
    border: 1px solid var(--border); background: var(--surface);
    color: var(--primary); cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: background .18s ease, border-color .18s ease, border-radius .3s ease,
      transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .18s ease;
  }
  .btn-refresh svg { width: 16px; height: 16px; position: relative; z-index: 1; }
  .btn-refresh::before {
    content: ''; position: absolute; inset: 0; border-radius: inherit;
    background: radial-gradient(circle, var(--primary-tint) 0%, transparent 72%);
    opacity: 0; transform: scale(0);
    transition: opacity .5s ease, transform .5s ease;
  }
  .btn-refresh:hover {
    background: var(--primary-tint); border-color: var(--primary-light);
    border-radius: 62% 38% 34% 66% / 60% 66% 34% 40%;
    transform: translateY(-1px) rotate(6deg);
    box-shadow: 0 2px 6px rgba(74,93,199,0.16);
  }
  .btn-refresh:active { transform: translateY(0) scale(.92) rotate(0deg); }
  .btn-refresh.spinning { background: var(--primary-tint); border-color: var(--gold); }
  .btn-refresh.spinning::before { opacity: 1; transform: scale(1.7); }
  .btn-refresh.spinning svg { animation: btnRefreshSpin_ .75s cubic-bezier(.34,1.56,.64,1); }
  @keyframes btnRefreshSpin_ { 0% { transform: rotate(0deg); } 65% { transform: rotate(400deg); } 100% { transform: rotate(360deg); } }

  .btn-print {
    border: 1px solid var(--border); background: var(--surface);
    color: var(--ink); font-size: 12.5px; font-weight: 700;
    padding: 8px 14px; border-radius: var(--radius-pill); cursor: pointer;
    white-space: nowrap;
  }
  .btn-print:hover { background: var(--surface-2); border-color: var(--border-strong); }

  .fd-header-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }

  .finance-form-actions { display: flex; align-items: center; gap: 12px; margin-top: 6px; }
  .finance-form-actions .btn-block { margin-top: 0; }

  .news-form-actions { display: flex; align-items: center; gap: 12px; margin-top: 6px; }
  .news-form-actions .btn-block { margin-top: 0; }
  .btn-cancel-edit {
    background: transparent; border: none; color: var(--ink-soft);
    font-size: 12.5px; font-weight: 700; text-decoration: underline;
    padding: 8px 4px; flex-shrink: 0;
  }
  .btn-cancel-edit:hover { color: #A63A2F; }

  .news-actions { display: flex; gap: 6px; flex-wrap: nowrap; white-space: nowrap; }
  .btn-installment-plan { background: var(--gold-tint) !important; color: var(--gold-dark) !important; border-color: #EEDBA6 !important; }
  .btn-installment-plan:hover { filter: brightness(0.97); }
  .btn-danger-text:hover { border-color: #A63A2F; color: #A63A2F; }

  .status-pill {
    display: inline-block; font-size: 11px; font-weight: 700;
    padding: 4px 12px; border-radius: var(--radius-pill);
  }
  .status-published { background: var(--green-tint); color: #2F9E6E; }
  .status-draft { background: var(--gold-tint); color: #A6621F; }
  .status-pending { background: var(--coral-tint); color: #A63A2F; }
  .status-debt { background: var(--coral-tint); color: #A63A2F; }
  .status-neutral { background: var(--surface-2); color: var(--ink-soft); }

  /* ================= امور مالی: شهریه و پرداخت‌ها ================= */
  .badge-green { color: #5CB88A; }

  .btn-block-green { background: var(--green); }
  .btn-block-green:hover { background: #2F9E6E; }

  .finance-summary-card { padding: 20px 24px; }
  .parent-finance-summary-card { padding: 0; overflow: hidden; border: none; box-shadow: none; background: none; }
  .finance-balance-strip {
    display: flex; align-items: center; gap: 22px; flex-wrap: wrap;
    padding: 16px 18px; margin: 14px 0 20px; border-radius: var(--radius-md);
    background: var(--surface-2); border: 1px solid var(--border);
  }
  .fd-balance-item { display: flex; flex-direction: column; gap: 3px; font-size: 12.5px; color: var(--ink-soft); }
  .fd-balance-item b { font-size: 15px; font-weight: 800; color: var(--ink); }
  .fd-balance-item b.fd-green { color: #2F9E6E; }
  .fd-balance-item b.fd-coral { color: #A63A2F; }

  /* ---- کارت هیرو وضعیت شهریه (پنل اولیا) ---- */
  .finance-hero {
    border-radius: var(--radius-lg); padding: 22px 24px 20px;
    background: linear-gradient(125deg, var(--primary-dark) 0%, var(--primary) 55%, var(--lavender) 120%);
    background-size: 160% 160%;
    color: #fff; box-shadow: var(--shadow-md); position: relative; overflow: hidden;
  }
  .finance-hero::before {
    content: ''; position: absolute; inset: 0;
    background-image: radial-gradient(rgba(255,255,255,0.10) 1px, transparent 1px);
    background-size: 14px 14px; opacity: .5; pointer-events: none;
  }
  .finance-hero-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; position: relative; z-index: 1; }
  .finance-hero-label { font-size: 13px; font-weight: 700; color: rgba(255,255,255,0.85); }
  .finance-hero .status-pill { background: rgba(255,255,255,0.16); color: #fff; }
  .finance-hero-progress-track {
    height: 8px; border-radius: 999px; background: rgba(255,255,255,0.18); overflow: hidden;
    margin: 16px 0 18px; position: relative; z-index: 1;
  }
  .finance-hero-progress-fill { height: 100%; border-radius: 999px; background: linear-gradient(90deg, #5CB88A, #B8A6D9); transition: width .4s ease; }
  .finance-hero-items {
    display: flex; gap: 26px; flex-wrap: wrap; position: relative; z-index: 1;
  }
  .finance-hero-items .fd-balance-item { color: rgba(255,255,255,0.7); }
  .finance-hero-items .fd-balance-item b { color: #fff; }
  .finance-hero-items .fd-balance-item b.fd-green { color: #5CB88A; }
  .finance-hero-items .fd-balance-item b.fd-coral { color: #F0C7BF; }

  /* ---- دو بخشِ مجزا و حرفه‌ای برای پرداخت: آنلاین (زرین‌پال) در برابر کارت‌به‌کارت ---- */
  .pay-sections-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; align-items: start; }
  @media (max-width: 860px) { .pay-sections-grid { grid-template-columns: 1fr; } }
  .pay-section-head { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 16px; }
  .pay-section-head h3 { margin: 0 0 3px; font-size: 14.5px; }
  .pay-section-head .sub { margin: 0; font-size: 11.5px; line-height: 1.7; }
  .pay-section-ico {
    width: 42px; height: 42px; border-radius: 13px; flex-shrink: 0; font-size: 19px;
    display: flex; align-items: center; justify-content: center;
  }
  .pay-ico-online { background: linear-gradient(135deg, #2F9E6E, #5CB88A); color: #fff; }
  .pay-ico-card { background: linear-gradient(135deg, var(--primary), var(--lavender)); color: #fff; }
  .payment-online-card { display: flex; flex-direction: column; }
  .payment-online-btn.payment-online-btn { margin: 4px 0 10px; } /* بازنویسیِ .payment-online-btn قدیمی که دیگر لینک نیست بلکه دکمه است */
  .pay-online-hint {
    margin: 0; font-size: 11px; color: #2F9E6E; background: var(--green-tint);
    border-radius: var(--radius-sm); padding: 8px 12px; line-height: 1.8;
  }
  .payment-card2card-card .payment-request-form { margin-top: 14px; }

  .card-info-row { display: flex; align-items: center; justify-content: space-between; padding: 4px 0; font-size: 12.5px; }
  .card-info-row .ci-label { color: var(--ink-soft); }
  .card-info-row b { color: var(--ink); font-weight: 700; }

  .field-hint { display: block; margin-top: 5px; font-size: 10.5px; color: var(--ink-faint); line-height: 1.7; }

  /* ================= جعبه‌ی «نحوه‌ی پرداخت» در فرمِ ثبتِ دانش‌آموز ================= */
  .inst-plan-box {
    background: var(--surface-2); border: 1.5px solid var(--border-strong); border-radius: var(--radius-md);
    padding: 16px; margin-bottom: 14px;
  }
  .inst-plan-head { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
  .inst-plan-ico { font-size: 20px; }
  .inst-plan-head b { display: block; font-size: 12.5px; color: var(--ink); }
  .inst-plan-head span { display: block; font-size: 10.5px; color: var(--ink-soft); margin-top: 2px; }

  .inst-plan-toggle { display: flex; gap: 8px; margin-bottom: 4px; }
  .inst-toggle-btn {
    flex: 1; padding: 10px 8px; border: 1.5px solid var(--border-strong); border-radius: var(--radius-sm);
    background: var(--surface); color: var(--ink-soft); font-family: inherit; font-size: 12px; font-weight: 700;
    cursor: pointer; transition: border-color .15s ease, background .15s ease, color .15s ease;
  }
  .inst-toggle-btn:hover { border-color: var(--primary-light); }
  .inst-toggle-btn.active { background: var(--primary); border-color: var(--primary); color: #fff; }
  #instPlanFields { margin-top: 12px; }

  .inst-preview { margin-top: 12px; background: var(--surface); border: 1px dashed var(--primary-light); border-radius: var(--radius-sm); padding: 10px 12px; }
  .inst-preview-title { font-size: 11px; font-weight: 700; color: var(--primary-dark); margin-bottom: 8px; }
  .inst-preview-list { display: flex; flex-direction: column; gap: 4px; max-height: 200px; overflow-y: auto; }
  .inst-preview-row {
    display: flex; align-items: center; gap: 10px; font-size: 11.5px; padding: 6px 8px; border-radius: 8px; background: var(--surface-2);
  }
  .inst-preview-row span { width: 20px; height: 20px; border-radius: 50%; background: var(--primary-tint); color: var(--primary-dark); font-weight: 800; font-size: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
  .inst-preview-row b { flex: 1; color: var(--ink); }
  .inst-preview-row small { color: var(--ink-faint); flex-shrink: 0; }

  /* پیش‌نمایشِ اقساط داخلِ مودالِ «ثبت‌نام انجام شد» */
  .cred-installment-preview { margin-top: 14px; background: var(--surface-2); border: 1px solid var(--border-strong); border-radius: var(--radius-md); padding: 12px 14px; }
  .cred-inst-title { font-size: 11.5px; font-weight: 700; color: var(--ink); margin-bottom: 8px; }
  .cred-inst-list { display: flex; flex-direction: column; gap: 4px; max-height: 180px; overflow-y: auto; }
  .cred-inst-row { display: flex; align-items: center; gap: 10px; font-size: 11.5px; padding: 6px 8px; border-radius: 8px; background: var(--surface); }
  .cred-inst-row span { width: 18px; height: 18px; border-radius: 50%; background: var(--primary-tint); color: var(--primary-dark); font-weight: 800; font-size: 9.5px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
  .cred-inst-row b { flex: 1; color: var(--ink); }
  .cred-inst-row small { color: var(--ink-faint); flex-shrink: 0; }

  .contract-dual-sign-note { font-size: 10.5px; color: var(--ink-soft); background: var(--surface-2); border: 1px dashed var(--border-strong); border-radius: 10px; padding: 8px 12px; margin: 4px 0 10px; line-height: 1.8; }

  @media (max-width: 560px) {
    .inst-plan-toggle { flex-direction: column; }
  }

  /* ================= جدولِ اقساط — پنلِ اولیا ================= */
  .inst-schedule-summary { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 16px; }
  .inst-schedule-summary > div {
    flex: 1; min-width: 140px; background: var(--surface-2); border: 1px solid var(--border-strong); border-radius: var(--radius-md);
    padding: 12px 14px; text-align: center;
  }
  .inst-schedule-summary span { display: block; font-size: 10.5px; color: var(--ink-soft); margin-bottom: 4px; }
  .inst-schedule-summary b { font-size: 15px; color: var(--ink); }
  .inst-schedule-summary .is-remaining b { color: var(--coral); }
  .inst-schedule-summary .is-paid b { color: var(--green); }

  .inst-schedule-list { display: flex; flex-direction: column; gap: 8px; }
  .inst-schedule-row {
    display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid var(--border);
    border-radius: var(--radius-md); background: var(--surface-2); transition: box-shadow .15s ease;
  }
  .inst-schedule-row:hover { box-shadow: var(--shadow-xs); }
  .inst-schedule-row.is-overdue { border-color: var(--coral-light, var(--coral)); background: var(--coral-tint); }
  .inst-schedule-seq {
    width: 30px; height: 30px; border-radius: 50%; background: var(--primary-tint); color: var(--primary-dark);
    display: flex; align-items: center; justify-content: center; font-size: 11.5px; font-weight: 800; flex-shrink: 0;
  }
  .inst-schedule-body { flex: 1; min-width: 0; }
  .inst-schedule-title { font-size: 12.5px; font-weight: 700; color: var(--ink); margin-bottom: 3px; }
  .inst-schedule-meta { font-size: 10.5px; color: var(--ink-faint); display: flex; gap: 8px; flex-wrap: wrap; }
  .inst-schedule-overdue-tag { color: var(--coral); font-weight: 700; }
  .inst-schedule-amount { text-align: left; flex-shrink: 0; display: flex; flex-direction: column; gap: 4px; align-items: flex-end; }
  .inst-schedule-amount b { font-size: 13px; color: var(--ink); }
  @media (max-width: 480px) {
    .inst-schedule-row { flex-wrap: wrap; }
    .inst-schedule-amount { align-items: flex-start; margin-right: 42px; }
  }

  /* ================= سررسیدها و معوقات — پنلِ مدیر/مؤسس ================= */
  .overdue-tabs { display: flex; gap: 8px; margin-bottom: 16px; flex-wrap: wrap; }
  .overdue-tab {
    padding: 9px 18px; border: 1.5px solid var(--border-strong); border-radius: 999px; background: var(--surface-2);
    color: var(--ink-soft); font-family: inherit; font-size: 12px; font-weight: 700; cursor: pointer; transition: all .15s ease;
  }
  .overdue-tab:hover { border-color: var(--primary-light); }
  .overdue-tab.active { background: var(--primary); border-color: var(--primary); color: #fff; }
  .overdue-tab.tab-danger.active { background: var(--coral); border-color: var(--coral); }

  .overdue-list { display: flex; flex-direction: column; gap: 8px; }
  .overdue-row {
    display: flex; align-items: center; gap: 12px; padding: 13px 15px; border: 1px solid var(--border);
    border-radius: var(--radius-md); background: var(--surface-2); transition: box-shadow .15s ease;
  }
  .overdue-row:hover { box-shadow: var(--shadow-xs); }
  .overdue-row.is-danger { border-color: var(--coral); background: var(--coral-tint); }
  .overdue-avatar {
    width: 34px; height: 34px; border-radius: 50%; background: var(--lavender-tint); color: var(--lavender);
    display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 800; flex-shrink: 0;
  }
  .overdue-body { flex: 1; min-width: 0; }
  .overdue-name { font-size: 12.5px; font-weight: 800; color: var(--ink); }
  .overdue-meta { font-size: 10.5px; color: var(--ink-faint); margin-top: 2px; display: flex; gap: 8px; flex-wrap: wrap; }
  .overdue-days-badge { font-size: 9.5px; font-weight: 800; border-radius: 999px; padding: 2px 10px; }
  .overdue-days-badge.days-warn { background: var(--gold-tint); color: var(--gold-dark); }
  .overdue-days-badge.days-danger { background: #FBE3E1; color: var(--coral); }
  .overdue-amount { text-align: left; flex-shrink: 0; }
  .overdue-amount b { font-size: 13.5px; color: var(--ink); }
  .overdue-call-btn {
    flex-shrink: 0; padding: 7px 12px; border-radius: var(--radius-pill); border: 1px solid var(--border-strong);
    background: var(--surface); color: var(--ink-soft); font-size: 10.5px; font-weight: 700; cursor: pointer; text-decoration: none;
  }
  .overdue-call-btn:hover { border-color: var(--primary-light); color: var(--primary); }
  @media (max-width: 560px) {
    .overdue-row { flex-wrap: wrap; }
    .overdue-amount { margin-right: 46px; }
  }

  /* ---- نوار فیلتر تاریخچه‌ی بررسی‌شده‌های پرداخت (پنل مدیر) ---- */
  .pay-filter-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 4px 0 16px; }
  .pay-filter-tabs { display: flex; gap: 4px; background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius-pill); padding: 3px; }
  .pay-filter-tab {
    border: none; background: transparent; padding: 6px 14px; border-radius: var(--radius-pill);
    font-size: 11.5px; font-weight: 700; color: var(--ink-soft); cursor: pointer; font-family: inherit;
    transition: background .15s ease, color .15s ease;
  }
  .pay-filter-tab:hover { color: var(--ink); }
  .pay-filter-tab.active { background: var(--primary); color: #fff; }
  .pay-filter-search {
    display: flex; align-items: center; gap: 7px; padding: 7px 12px; border: 1px solid var(--border);
    border-radius: var(--radius-pill); background: var(--surface-2); flex: 1; min-width: 180px; max-width: 280px;
  }
  .pay-filter-search svg { width: 14px; height: 14px; color: var(--ink-faint); flex-shrink: 0; }
  .pay-filter-search input { border: none; outline: none; background: transparent; font: inherit; font-size: 12px; width: 100%; color: var(--ink); }
  #payHistoryMethodFilter {
    border: 1px solid var(--border); border-radius: var(--radius-pill); background: var(--surface-2);
    padding: 7px 14px; font: inherit; font-size: 11.5px; color: var(--ink); cursor: pointer;
  }

  /* ---- فهرست درخواست‌های پرداخت اولیا: تایم‌لاین کارتی به‌جای جدول خشک ---- */
  .pay-request-list { display: flex; flex-direction: column; gap: 8px; }
  .pay-req-item {
    display: flex; align-items: center; gap: 12px; padding: 12px 14px;
    background: var(--surface-2); border: 1px solid var(--border); border-inline-start: 3px solid var(--border-strong);
    border-radius: var(--radius-md); transition: box-shadow .15s ease;
  }
  .pay-req-item:hover { box-shadow: var(--shadow-xs); }
  .pay-req-item.pay-req-pending  { border-inline-start-color: var(--gold); }
  .pay-req-item.pay-req-approved { border-inline-start-color: var(--green); }
  .pay-req-item.pay-req-rejected { border-inline-start-color: var(--coral); }
  .pay-req-ico {
    width: 36px; height: 36px; border-radius: 50%; background: var(--surface); border: 1px solid var(--border);
    display: flex; align-items: center; justify-content: center; font-size: 16px; flex-shrink: 0;
  }
  .pay-req-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; flex: 1; }
  .pay-req-top-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
  .pay-req-top-row b { font-size: 13.5px; color: var(--ink); font-weight: 800; }
  .pay-req-sub { font-size: 11.5px; color: var(--ink-soft); }

  .finance-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 22px; }
  @media (max-width: 640px) { .finance-form-row { grid-template-columns: 1fr; } }
  .finance-mini-form {
    background: var(--surface-2); border: 1px solid var(--border);
    border-radius: var(--radius-md); padding: 16px 16px 18px;
  }
  .finance-mini-form h4 { font-size: 13.5px; font-weight: 800; margin: 0 0 12px; }

  .finance-history-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
  @media (max-width: 640px) { .finance-history-cols { grid-template-columns: 1fr; } }
  .finance-history-cols h4 { font-size: 13px; font-weight: 800; margin: 0 0 10px; color: var(--ink-soft); }
  .finance-history-list { display: flex; flex-direction: column; gap: 8px; max-height: 260px; overflow-y: auto; }
  .finance-history-row {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--radius-sm);
    background: var(--surface); font-size: 12.5px;
  }
  .finance-history-row > div:first-child { display: flex; flex-direction: column; gap: 2px; }
  .finance-history-row > div:first-child span { color: var(--ink-soft); font-size: 11px; }
  .fd-row-actions { display: flex; align-items: center; gap: 10px; }
  .fd-remove-btn {
    background: none; border: none; color: var(--ink-faint); font-size: 13px;
    width: 22px; height: 22px; border-radius: 50%; flex-shrink: 0; line-height: 1;
  }

  /* ---- پاپ‌آپ جزئیات مالی دانش‌آموز ---- */
  .modal-box-finance {
    max-width: 800px;
    max-height: 88vh;
    overflow-y: auto;
    border-top-color: var(--primary);
  }

  /* ---- فیلتر ماه شمسی در هزینه‌ها/حقوق/درآمد ---- */
  .finance-month-filter {
    appearance: none;
    -webkit-appearance: none;
    border: 1.5px solid var(--border-strong);
    background-color: var(--surface-2);
    color: var(--ink);
    font-family: 'Vazirmatn', sans-serif;
    font-size: 12.5px;
    font-weight: 700;
    padding: 9px 34px 9px 14px;
    border-radius: var(--radius-pill);
    cursor: pointer;
    outline: none;
    transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236C6F85' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: left 12px center;
    background-size: 14px;
  }
  .finance-month-filter:hover { border-color: var(--primary); }
  .finance-month-filter:focus { border-color: var(--primary); background-color: var(--surface); box-shadow: 0 0 0 3px var(--primary-tint); }
  .finance-month-filter option { font-family: 'Vazirmatn', sans-serif; padding: 10px; background: var(--surface); color: var(--ink); }
  
  .fd-remove-btn:hover { background: var(--coral-tint); color: #A63A2F; }
  .fd-edit-btn {
    background: none; border: none; color: var(--ink-faint); font-size: 13px;
    width: 22px; height: 22px; border-radius: 50%; flex-shrink: 0; line-height: 1;
  }
  .fd-edit-btn:hover { background: var(--primary-tint); color: var(--primary); }

  /* ---- ریسپانسیو سایدبار ---- */
  @media (max-width: 980px) {
    .sidebar {
      position: fixed; right: 0; top: 0;
      height: 100vh;
      height: 100dvh; /* در حالتِ fixed دیگر از app-shell ارتفاع نمی‌گیرد، پس اینجا صریحاً تنظیم می‌شود. */
      transform: translateX(100%);
      transition: transform .25s ease;
      box-shadow: var(--shadow-lg);
    }
    .app-shell.sidebar-open .sidebar { transform: translateX(0); }
    .app-shell.sidebar-open .sidebar-overlay { display: block; }
    /* باگِ رفع‌شده: نوارِ پایینیِ موبایل (.mobile-bottom-nav با z-index:45) رویِ
       فوترِ سایدبار (دکمه‌ی «خروج») می‌نشست و آن را کاملاً می‌پوشاند، چون هر دو
       هم‌زمان در پایینِ صفحه ثابت (fixed) بودند. حالا وقتی سایدبار باز است،
       نوارِ پایین اصلاً نمایش داده نمی‌شود (چون همه‌ی آیتم‌های آن، از جمله
       خروج، همین الان در خودِ سایدبار در دسترس‌اند) — هم مشکلِ هم‌پوشانی رفع
       می‌شود و هم تکرارِ ناوبری حذف می‌شود. */
    .app-shell.sidebar-open .mobile-bottom-nav { display: none; }
    .mobile-menu-btn { display: flex; }
    .topbar-title p { display: none; }
  }
  @media (max-width: 720px) {
    .dash-grid, .stats-strip { grid-template-columns: 1fr; }
    .app-topbar { padding: 14px 16px; gap: 10px; }
    .app-content { padding: 18px 18px 60px; }
    .topbar-title h1 { font-size: 15.5px; }
  }
  @media (max-width: 480px) {
    .topbar-user-info { display: none; }
    .app-topbar { gap: 8px; }
  }

  /* ---- تب‌های تاپ‌بار ---- */
  .topbar-tabs {
    display: flex; gap: 8px; padding: 0 30px 14px; background: var(--surface);
    border-bottom: 1px solid var(--border); flex-wrap: wrap; position: sticky; top: 69px; z-index: 19;
  }
  .topbar-tabs.hidden { display: none; }
  .topbar-tab {
    border: 1.5px solid var(--border); background: var(--surface); color: var(--ink-soft);
    padding: 8px 16px; border-radius: var(--radius-pill); font-weight: 700; font-size: 12.5px;
    font-family: 'Vazirmatn', sans-serif; transition: all .15s ease;
  }
  .topbar-tab.active { background: var(--primary); color: #fff; border-color: var(--primary); }

  /* ---- تب‌های گروه‌بندی‌شده و تایل‌مانند (مثلاً «مدیریت اشخاص»: تعریف/فهرست‌ها) ---- */
  .topbar-tabs.topbar-tabs-grouped {
    align-items: flex-start;
    gap: 26px;
    padding: 18px 30px 20px;
  }
  .tab-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
    position: relative;
  }
  .tab-group + .tab-group {
    padding-inline-start: 24px;
    border-inline-start: 1.5px dashed var(--border-strong);
  }
  .tab-group-label {
    font-size: 11px;
    font-weight: 800;
    color: var(--ink-faint);
    letter-spacing: .3px;
  }
  .tab-tile-row { display: flex; gap: 10px; flex-wrap: wrap; }
  .tab-tile {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 10px 18px 10px 14px;
    border-radius: var(--radius-md);
    background: var(--surface);
    border: 1.5px solid var(--border);
    font-family: 'Vazirmatn', sans-serif;
    font-weight: 700;
    font-size: 13px;
    color: var(--ink-soft);
    box-shadow: var(--shadow-xs);
    transition: transform .15s ease, box-shadow .15s ease, color .15s ease, border-color .15s ease, background .15s ease;
  }
  .tab-tile:hover {
    border-color: var(--primary-light);
    color: var(--primary);
    transform: translateY(-1px);
    box-shadow: var(--shadow-sm);
  }
  .tab-tile-ico {
    width: 26px; height: 26px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    border-radius: var(--radius-sm);
    background: var(--primary-tint);
    color: var(--primary);
  }
  .tab-tile-ico svg { width: 16px; height: 16px; }
  .tab-tile.active {
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
    border-color: transparent;
    color: #fff;
    box-shadow: var(--shadow-md);
  }
  .tab-tile.active .tab-tile-ico { background: rgba(255,255,255,0.2); color: #fff; }
  .tab-group:nth-child(2) .tab-tile.active {
    background: linear-gradient(135deg, var(--green), #2F9E6E);
  }
  /* ---- نسخه‌ی موبایلِ تب‌های گروه‌بندی‌شده/تایل‌مانند — به‌جای کارت‌های بزرگِ
     پشت‌سرهم (که ارتفاعِ زیادی از صفحه را می‌گرفت)، هر گروه به یک نوارِ افقیِ
     قابلِ اسکرول از چیپ‌های کوچک و فشرده تبدیل می‌شود؛ خاص‌تر و مرتب‌تر، و صرفِ‌نظر
     از تعدادِ آیتم‌ها فقط یک ردیفِ کوتاه اشغال می‌کند. دسکتاپ دست‌نخورده می‌ماند. ---- */
  @media (max-width: 980px) {
    .topbar-tabs.topbar-tabs-grouped { padding: 12px 14px 14px; gap: 12px; }
    .tab-group {
      gap: 6px;
      /* باگِ رفع‌شده: .tab-group به‌عنوانِ آیتمِ فلکسِ افقیِ .topbar-tabs، بدونِ
         این دو خط، اندازه‌ی حداقلش برابرِ عرضِ کاملِ محتوایِ داخلی‌اش (یعنی
         همه‌ی تایل‌های ردیف، بدونِ شکست) حساب می‌شد؛ در نتیجه خودِ .tab-group
         بزرگ‌تر از عرضِ صفحه می‌شد و هیچ‌وقت به overflow-x:auto ِ .tab-tile-row
         داخلی‌اش نمی‌رسید که سرریز کند و اسکرول بدهد — سرریز به‌جای اسکرولِ
         داخلی، به بیرون از کادرِ صفحه می‌رفت و توسطِ overflow-x:hidden سراسریِ
         body/html به‌سادگی «قطع» می‌شد، بدونِ هیچ اسکرولی. با min-width:0 و
         width:100%، عرضِ .tab-group همیشه دقیقاً برابرِ فضایِ واقعیِ موجود
         می‌ماند و .tab-tile-row مجبور می‌شود خودش داخلی اسکرول کند. */
      min-width: 0;
      width: 100%;
    }
    .tab-group + .tab-group {
      padding-inline-start: 0; border-inline-start: none;
      padding-top: 10px; border-top: 1px dashed var(--border-strong);
    }
    .tab-group-label {
      display: flex; align-items: center; gap: 6px;
      font-size: 10px; letter-spacing: .2px; margin: 0 2px;
    }
    .tab-group-label::before {
      content: ''; width: 5px; height: 5px; border-radius: 2px;
      background: var(--gold); transform: rotate(45deg); flex-shrink: 0;
    }
    .tab-tile-row {
      flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x proximity;
      gap: 7px; margin: 0 -14px; padding: 1px 14px 4px;
      -webkit-overflow-scrolling: touch; scrollbar-width: none;
    }
    .tab-tile-row::-webkit-scrollbar { display: none; }
    .tab-group { position: relative; }
    .tab-group::after {
      content: ''; position: absolute; top: 22px; bottom: 4px; left: 0; width: 18px;
      background: linear-gradient(to left, transparent, var(--surface) 85%);
      pointer-events: none;
    }
    .tab-tile {
      flex: 0 0 auto; scroll-snap-align: start;
      gap: 6px; padding: 7px 13px 7px 9px; border-radius: var(--radius-pill);
      font-size: 11.5px; white-space: nowrap;
    }
    .tab-tile-ico { width: 19px; height: 19px; border-radius: 7px; }
    .tab-tile-ico svg { width: 12px; height: 12px; }
    .tab-tile:hover, .tab-tile:active { transform: none; }
  }

  /* ---- گالری تصاویر خبر ---- */
  .image-preview-grid { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 10px; }
  .image-preview-item { position: relative; width: 80px; height: 80px; border-radius: var(--radius-sm); overflow: hidden; border: 1.5px solid var(--border); }
  .image-preview-item img { width: 100%; height: 100%; object-fit: cover; }
  .image-preview-item .remove-img {
    position: absolute; top: 3px; left: 3px; background: rgba(20,18,36,0.65); color: #fff;
    border: none; width: 18px; height: 18px; border-radius: 50%; font-size: 10px; line-height: 1;
    display: flex; align-items: center; justify-content: center;
  }
  .news-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; margin: 16px 0; }
  .news-gallery img { width: 100%; height: 110px; object-fit: cover; border-radius: var(--radius-sm); }
  .news-card .btn-readmore {
    background: none; border: none; color: var(--primary); font-weight: 700;
    font-size: 12.5px; padding: 0; cursor: pointer;
  }
  .modal-box-wide { max-width: 720px; max-height: 88vh; overflow-y: auto; }
  .modal-box-sm { max-width: 380px; }
  @media (max-width: 900px) { .modal-box-finance { max-width: 94vw; } }
  @media (max-width: 640px) { .modal-box-wide { max-width: 100%; } }

  .lightbox-img {
    max-width: 92vw; max-height: 88vh; border-radius: var(--radius-md);
    box-shadow: 0 20px 60px rgba(0,0,0,.4); cursor: default;
  }

  /* ---- برش عکس پروفایل ---- */
  .crop-stage-wrap {
    width: 240px; height: 240px; margin: 16px auto; border-radius: 50%; overflow: hidden;
    position: relative; background: #2B2A33; touch-action: none; cursor: grab;
    box-shadow: 0 0 0 3px var(--surface-2), 0 0 0 4px var(--border);
  }
  .crop-stage-wrap:active { cursor: grabbing; }
  .crop-stage { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
  .crop-stage img { position: absolute; top: 50%; left: 50%; max-width: none; user-select: none; pointer-events: none; transform: translate(-50%, -50%) scale(1); }
  .crop-zoom-row { display: flex; align-items: center; gap: 10px; margin: 4px 4px 14px; color: var(--ink-soft); }
  .crop-zoom-row svg { width: 16px; height: 16px; flex-shrink: 0; }
  .crop-zoom-row input[type="range"] { flex: 1; accent-color: var(--primary); }
  .news-full-content { font-size: 14px; line-height: 2; color: var(--ink); white-space: pre-line; }

  /* ================= داشبورد ادمین ================= */
  .admin-dashboard.hidden { display: none; }
  .admin-dashboard { margin-top: 18px; }

  .stat-cards-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-bottom: 18px;
  }
  .stat-card2 {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    padding: 16px 18px;
    display: flex; align-items: center; gap: 13px;
    position: relative;
    overflow: hidden;
  }
  .stat-card2::before {
    content: ''; position: absolute; top: 0; right: 0; left: 0; height: 3px;
    background: var(--bar-color, var(--primary));
  }
  .stat-card2 .stat-ico {
    width: 42px; height: 42px; border-radius: var(--radius-sm);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    background: var(--ico-tint, var(--primary-tint)); color: var(--ico-color, var(--primary));
  }
  .stat-card2 .stat-ico svg { width: 21px; height: 21px; }
  .stat-card2 .stat-num { font-size: 22px; font-weight: 700; font-feature-settings: "tnum"; }
  .stat-card2 .stat-label { font-size: 12px; color: var(--ink-soft); margin-top: 1px; }

  .dash-main-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 16px;
  }
  .dash-main-grid .calendar-card { grid-column: 1; grid-row: span 2; }
  .dash-main-grid .finance-summary-card { grid-column: 2; grid-row: 1; }
  .dash-main-grid .stage-card { grid-column: 2; grid-row: 2; }
  .dash-main-grid .activities-card { grid-column: 1 / -1; }
  .dash-main-grid .top3-card { grid-column: 1 / -1; }
  @media (max-width: 1100px) {
    .dash-main-grid { grid-template-columns: 1fr; }
    .dash-main-grid .calendar-card { grid-column: 1; grid-row: auto; }
    .dash-main-grid .finance-summary-card, .dash-main-grid .stage-card { grid-column: 1; grid-row: auto; }
  }
  .dash-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-inline-start: 3px solid var(--gold);
    border-radius: var(--radius-md);
    padding: 20px 22px;
  }
  .dash-card-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; gap: 10px; flex-wrap: wrap; }
  .dash-card-title { display: flex; align-items: center; gap: 10px; }
  .dash-card-head h3 { font-size: 14.5px; font-weight: 800; margin: 0; }
  .dash-card-ico {
    width: 30px; height: 30px; border-radius: 9px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
  }
  .dash-card-ico svg { width: 15px; height: 15px; }
  .dash-card-ico.ico-cal { background: var(--primary-tint); color: var(--primary); }
  .dash-card-ico.ico-finance { background: var(--gold-tint); color: var(--gold-dark); }
  .dash-card-ico.ico-stage { background: var(--lavender-tint); color: var(--lavender); }
  .dash-card-ico.ico-activity { background: var(--coral-tint); color: var(--coral); }
  .dash-card-ico.ico-top3 { background: var(--green-tint); color: var(--green); }
  .dash-card-sub { font-size: 11px; color: var(--ink-soft); }
  .btn-view-all {
    border: 1.5px solid var(--border-strong); color: var(--ink-soft); background: transparent;
    padding: 6px 15px; border-radius: var(--radius-pill); font-weight: 700; font-size: 11.5px;
    transition: all .15s ease;
  }
  .btn-view-all:hover { border-color: var(--primary); color: var(--primary); }

  /* ---- تقویم حضور: طراحی مینیمال — فقط نوار پیمایش ماه + جدول روزها، بدون شلوغی ---- */
  .calendar-nav {
    display: flex; align-items: center; justify-content: center; gap: 4px; margin-bottom: 14px;
  }
  .cal-nav-btn {
    width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--border); background: var(--surface);
    color: var(--ink-soft); display: flex; align-items: center; justify-content: center; cursor: pointer;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
  }
  .cal-nav-btn:hover { background: var(--primary); border-color: var(--primary); color: #fff; }
  .cal-nav-btn svg { width: 15px; height: 15px; }
  .cal-nav-label {
    min-width: 148px; text-align: center; padding: 6px 16px; border-radius: var(--radius-pill);
    border: none; background: transparent; font-size: 14px; font-weight: 800; color: var(--ink); cursor: pointer;
    transition: background .15s ease;
  }
  .cal-nav-label:hover { background: var(--surface-2); }
  .calendar-picker {
    background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius-md);
    padding: 12px; margin-bottom: 14px;
  }
  .calendar-years { display: flex; gap: 6px; margin-bottom: 10px; overflow-x: auto; padding-bottom: 2px; }
  .calendar-year-pill {
    flex-shrink: 0; padding: 5px 4px; min-width: 40px; text-align: center; cursor: pointer;
    border-radius: var(--radius-sm); font-size: 12px; font-weight: 700; color: var(--ink-soft);
    transition: background .15s ease;
  }
  .calendar-year-pill:hover { background: var(--surface); }
  .calendar-year-pill.current { background: var(--primary); color: #fff; }
  .calendar-months { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
  .calendar-month-cell {
    padding: 7px 4px; border-radius: var(--radius-sm); background: var(--surface); cursor: pointer;
    border: 1px solid transparent;
    color: var(--ink-soft); font-weight: 700; font-size: 11.5px; text-align: center;
    transition: background .15s ease, color .15s ease;
  }
  .calendar-month-cell:hover { border-color: var(--border); }
  .calendar-month-cell.current { background: var(--primary); color: #fff; }
  .calendar-weekdays { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; margin-bottom: 4px; }
  .calendar-weekdays span { text-align: center; font-size: 10.5px; font-weight: 700; color: var(--ink-soft); }
  .calendar-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
  .calendar-day-cell {
    aspect-ratio: 1 / 1; display: flex; align-items: center; justify-content: center;
    border-radius: 50%; font-size: 12px; font-weight: 600; color: var(--ink);
    background: transparent; cursor: pointer; transition: background .15s ease, color .15s ease;
  }
  .calendar-day-cell:hover { background: var(--surface-2); }
  .calendar-day-cell.today { background: var(--primary); color: #fff; font-weight: 800; }
  .calendar-day-cell.today:hover { background: var(--primary); opacity: .9; }
  .calendar-day-cell.empty { background: transparent; cursor: default; }
  .calendar-day-cell.empty:hover { background: transparent; }
  .calendar-day-cell.selected { outline: 2px solid var(--primary); outline-offset: -2px; font-weight: 800; }

  /* ==================================================================
     پاپ‌آور انتخاب‌گر تاریخ شمسی (فیلد حضور و غیاب / گزارش روزانه و ...)
     ================================================================== */
  .jdp-trigger { cursor: pointer; background: var(--surface-2); }
  .jdp-popover {
    position: fixed; z-index: 5000; width: 280px; background: var(--surface); border: 1px solid var(--border);
    border-radius: var(--radius-md); box-shadow: var(--shadow-md); padding: 12px;
  }
  .jdp-footer { margin-top: 8px; text-align: center; }
  .jdp-today-btn {
    background: var(--lavender-tint); color: var(--primary-dark); border: none; border-radius: var(--radius-pill);
    padding: 6px 16px; font-size: 11.5px; font-weight: 700; cursor: pointer;
  }
  .jdp-today-btn:hover { background: var(--primary); color: #fff; }

  /* ---- خلاصه مالی نمای کلی (مورد ۱۰) ---- */
  .finance-summary-grid { display: flex; flex-direction: column; gap: 10px; }
  .fs-item {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    padding: 12px 14px; border-radius: var(--radius-sm); background: var(--surface-2);
    border-inline-start: 3px solid var(--border-strong);
  }
  .fs-label { font-size: 12.5px; font-weight: 700; color: var(--ink-soft); }
  .fs-value { font-size: 14.5px; font-weight: 800; font-feature-settings: "tnum"; }
  .fs-item.fs-income { border-inline-start-color: var(--green); }
  .fs-item.fs-income .fs-value { color: #2F9E6E; }
  .fs-item.fs-outflow { border-inline-start-color: var(--coral); }
  .fs-item.fs-outflow .fs-value { color: #A63A2F; }
  .fs-item.fs-profit { border-inline-start-color: var(--primary); }
  .fs-item.fs-loss { border-inline-start-color: var(--coral); }
  .fs-item.fs-loss .fs-value { color: #A63A2F; }
  .fs-item.fs-debt { border-inline-start-color: var(--gold); }
  .fs-item.fs-debt .fs-value { color: #8C5518; }

  /* ---- نمودار توزیع کلاس‌ها ---- */
  .stage-body { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; }
  .stage-legend { display: flex; flex-direction: column; gap: 14px; flex: 1; }
  .stage-legend-item { display: flex; align-items: center; gap: 10px; }
  .stage-dot { width: 10px; height: 10px; border-radius: 3px; flex-shrink: 0; }
  .stage-legend-item .stage-name { font-weight: 700; font-size: 13px; display: block; }
  .stage-legend-item .stage-count { font-size: 17px; font-weight: 800; }
  .stage-bars { display: flex; align-items: flex-end; gap: 10px; height: 120px; }
  .stage-bar-wrap { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; }
  .stage-bar { width: 22px; border-radius: 4px 4px 2px 2px; transition: height .4s ease; }
  .dash-empty { text-align: center; color: var(--ink-soft); font-size: 12.5px; padding: 20px 0; }

  /* ---- فعالیت‌ها ---- */
  .activities-list { display: flex; flex-direction: column; }
  .activity-row { padding: 12px 2px; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; gap: 10px; }
  .activity-row:last-child { border-bottom: none; }
  .activity-row .activity-title { font-weight: 700; font-size: 13.5px; }
  .activity-row .activity-date { font-size: 11px; color: var(--ink-soft); flex-shrink: 0; }

  /* ---- ۳ دانش‌آموز برتر ---- */
  .top3-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }

  /* ---- شبکه‌ی «دسترسیِ سریع» در نمای کلیِ اولیا/معلم ---- */
  .quick-nav-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .quick-nav-btn {
    display: flex; align-items: center; gap: 10px; padding: 12px 12px; border-radius: 14px;
    border: 1.5px solid var(--border); background: var(--surface); cursor: pointer; text-align: right;
    font-family: inherit; transition: all .15s ease;
  }
  .quick-nav-btn:hover { border-color: var(--primary); transform: translateY(-1px); box-shadow: var(--shadow-xs); }
  .quick-nav-btn .ico { width: 34px; height: 34px; border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 16px; }
  .quick-nav-btn b { font-size: 12px; color: var(--ink); display: block; }
  @media (max-width: 560px) { .quick-nav-grid { grid-template-columns: 1fr; } }
  .top3-card-item {
    border-radius: var(--radius-md);
    padding: 16px 10px 14px;
    text-align: center;
    color: #fff;
    position: relative;
  }
  .top3-card-item.rank-1 { background: var(--green); }
  .top3-card-item.rank-2 { background: var(--primary); }
  .top3-card-item.rank-3 { background: var(--gold); }
  .top3-photo {
    width: 52px; height: 52px; border-radius: 50%;
    margin: 0 auto 10px; border: 2px solid rgba(255,255,255,0.85);
    object-fit: cover; display: block;
    background: rgba(255,255,255,0.25);
  }
  .top3-photo-fallback {
    width: 52px; height: 52px; border-radius: 50%; margin: 0 auto 10px;
    border: 2px solid rgba(255,255,255,0.85);
    background: rgba(255,255,255,0.18);
    display: flex; align-items: center; justify-content: center;
    font-weight: 800; font-size: 18px;
  }
  .top3-name { font-weight: 700; font-size: 12.5px; margin-bottom: 4px; line-height: 1.4; }
  .top3-pct { font-weight: 800; font-size: 17px; margin-bottom: 12px; font-feature-settings: "tnum"; }
  .top3-rank-badge {
    display: inline-block; background: rgba(255,255,255,0.2);
    padding: 6px 0; width: 100%; border-radius: var(--radius-sm); font-weight: 700; font-size: 11.5px;
  }

  /* ================= آپلود عکس پروفایل ================= */
  .photo-upload-row { display: flex; align-items: center; gap: 14px; }
  .photo-preview {
    width: 56px; height: 56px; border-radius: 50%;
    background: var(--surface-2); border: 1.5px dashed var(--border-strong);
    display: flex; align-items: center; justify-content: center;
    color: var(--ink-faint); overflow: hidden; flex-shrink: 0;
  }
  .photo-preview svg { width: 24px; height: 24px; }
  .photo-preview img { width: 100%; height: 100%; object-fit: cover; }

  /* ================= امضای دیجیتال + مهر مؤسسه ================= */
  .signature-upload-row { align-items: center; }
  .photo-preview.signature-preview, .photo-preview.stamp-preview {
    width: 140px; height: 72px; border-radius: var(--radius-sm); background: #fff;
  }
  .photo-preview.signature-preview img, .photo-preview.stamp-preview img { object-fit: contain; width: 100%; height: 100%; }
  .signature-preview-empty { font-size: 11px; color: var(--ink-faint); }

  /* ================= پنل اولیا: قراردادها و امضا ================= */
  .contract-status-panel { padding: 20px; }
  .contract-hero-title { font-size: 15px; font-weight: 800; color: var(--ink); margin-bottom: 10px; }
  .contract-amount-line {
    display: flex; justify-content: space-between; align-items: center;
    background: var(--surface-2); border-radius: var(--radius-sm); padding: 10px 14px; margin-bottom: 14px;
  }
  .contract-amount-line b { font-size: 15px; color: var(--primary); }
  .contract-cards-row { display: flex; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
  .contract-mini-card {
    flex: 1; min-width: 150px; border: 1px solid var(--border); border-radius: var(--radius-sm);
    padding: 12px 14px; display: flex; flex-direction: column; gap: 8px;
  }
  .contract-mini-title { font-size: 12.5px; font-weight: 700; color: var(--ink); }
  .contract-badge { font-size: 11px; font-weight: 700; padding: 4px 10px; border-radius: 999px; display: inline-block; width: fit-content; }
  .contract-badge-signed { background: #E4F5EC; color: #2F9E6E; }
  .contract-badge-pending { background: #FDEFE3; color: #B36A2E; }
  .contract-badge-rejected { background: #FBE7E5; color: #C1443A; }
  .contract-signature-missing {
    font-size: 12px; color: #A6621F; background: var(--gold-tint); border-radius: var(--radius-sm);
    padding: 12px 14px; line-height: 1.8; display: flex; flex-direction: column; gap: 10px; margin-bottom: 4px;
  }
  .contract-draft-btn { margin-top: 10px; }
  .contract-help-card h3 { margin: 0 0 8px; font-size: 13.5px; }
  .contract-help-card .sub { font-size: 12px; color: var(--ink-faint); line-height: 1.9; margin: 0; }

  /* ================= رضایت‌نامه‌ها ================= */
  .consent-list-item { min-width: 220px; }
  .consent-item-scope { font-size: 11.5px; color: var(--ink-faint); margin: 4px 0 8px; line-height: 1.7; }
  .news-admin-item {
    border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 14px 16px; margin-bottom: 12px;
  }
  .news-admin-item-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 4px; }
  .news-admin-item-head b { font-size: 13.5px; color: var(--ink); }
  .cn-body-preview {
    white-space: pre-wrap; font-size: 12.5px; line-height: 1.9; color: var(--ink);
    background: var(--surface-2); border-radius: var(--radius-sm); padding: 14px 16px; margin: 10px 0 14px; max-height: 260px; overflow-y: auto;
  }

  /* ---- خلاصه‌ی آماریِ وضعیتِ امضاها (مودالِ گزارش) ---- */
  .cn-status-summary { display: flex; gap: 10px; flex-wrap: wrap; margin: 4px 0 18px; }
  .cn-status-chip {
    flex: 1; min-width: 128px; text-align: center;
    font-size: 12px; font-weight: 700; color: var(--ink-soft);
    border-radius: var(--radius-md); padding: 10px 12px;
    border: 1px solid var(--border); background: var(--surface-2);
  }
  .cn-status-chip b { display: block; font-size: 19px; font-weight: 800; margin-top: 3px; }
  .cn-status-chip-signed { background: #E4F5EC; border-color: #CDECDA; color: #257A54; }
  .cn-status-chip-declined { background: #FBE7E5; border-color: #F4D2CE; color: #A63A2F; }
  .cn-status-chip-pending { background: #FDEFE3; border-color: #F5DFC2; color: #8A5417; }
  .cn-status-modal-actions { display: flex; flex-direction: column; gap: 10px; margin-top: 18px; }
  @media (max-width: 480px) { .cn-status-chip { min-width: 100%; } }

  /* ================= شهریه‌ی گروهی — بازطراحیِ کامل ================= */
  .bulk-charge-card { position: relative; overflow: hidden; }
  .bulk-charge-icon { background: var(--gold-tint); font-size: 20px; }

  .bulk-charge-toggle-btn {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    background: linear-gradient(135deg, var(--gold), var(--gold-dark));
    box-shadow: 0 10px 22px -10px rgba(166,98,31,0.55);
  }
  .bulk-charge-toggle-btn:hover { filter: brightness(1.05); }
  .bulk-charge-toggle-btn.bulk-charge-toggle-open {
    background: var(--surface-2); color: var(--ink-soft); border: 1.5px solid var(--border-strong);
    box-shadow: none;
  }
  .bulk-toggle-plus { font-size: 16px; font-weight: 800; line-height: 1; }

  .bulk-charge-form {
    margin-top: 18px; padding-top: 18px; border-top: 1px dashed var(--border-strong);
    animation: bulkFormIn .22s ease;
  }
  @keyframes bulkFormIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }

  .bulk-step { margin-bottom: 22px; }
  .bulk-step-head {
    display: flex; align-items: center; gap: 9px; font-size: 13px; font-weight: 800; color: var(--ink);
    margin-bottom: 14px;
  }
  .bulk-step-num {
    width: 22px; height: 22px; border-radius: 50%; background: var(--primary); color: #fff;
    display: flex; align-items: center; justify-content: center; font-size: 11.5px; font-weight: 800; flex-shrink: 0;
  }

  /* ---- کارت‌های انتخابِ مشمولین (به‌جای دراپ‌باکسِ ساده) ---- */
  .bulk-target-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 16px;
  }
  .bulk-target-card {
    position: relative; text-align: right; cursor: pointer; font-family: inherit;
    background: var(--surface-2); border: 1.5px solid var(--border-strong); border-radius: var(--radius-md);
    padding: 16px 14px; display: flex; flex-direction: column; gap: 6px;
    transition: border-color .15s ease, background .15s ease, transform .15s ease, box-shadow .15s ease;
  }
  .bulk-target-card:hover { border-color: var(--primary-light); transform: translateY(-2px); }
  .bulk-target-card.active {
    background: var(--primary-tint); border-color: var(--primary); box-shadow: var(--shadow-sm);
  }
  .bulk-target-ico { font-size: 22px; line-height: 1; }
  .bulk-target-title { font-size: 12.5px; font-weight: 800; color: var(--ink); }
  .bulk-target-desc { font-size: 10.5px; color: var(--ink-soft); line-height: 1.6; }
  .bulk-target-check {
    position: absolute; top: 10px; left: 10px; width: 18px; height: 18px; border-radius: 50%;
    background: var(--primary); color: #fff; font-size: 10px; display: none; align-items: center; justify-content: center;
  }
  .bulk-target-card.active .bulk-target-check { display: flex; }
  @media (max-width: 640px) { .bulk-target-grid { grid-template-columns: 1fr; } }

  .bulk-class-field { margin-bottom: 4px; }

  .bulk-students-field { margin-bottom: 4px; }
  .bulk-students-field > label { display: block; font-size: 12.5px; font-weight: 700; margin-bottom: 7px; color: var(--ink); }
  .bulk-picker-search {
    display: flex; align-items: center; gap: 7px; padding: 8px 12px; border: 1.5px solid var(--border-strong);
    border-radius: var(--radius-sm); background: var(--surface-2); margin-bottom: 8px;
  }
  .bulk-picker-search svg { width: 14px; height: 14px; color: var(--ink-faint); flex-shrink: 0; }
  .bulk-picker-search input { border: none; outline: none; background: transparent; font: inherit; font-size: 12.5px; width: 100%; color: var(--ink); }

  .bulk-student-picker {
    max-height: 260px; overflow-y: auto; border: 1.5px solid var(--border-strong); border-radius: var(--radius-md);
    padding: 6px; display: flex; flex-direction: column; gap: 2px; background: var(--surface-2);
  }
  .bulk-student-row {
    display: flex; align-items: center; gap: 10px; padding: 9px 10px; font-size: 12.5px; color: var(--ink);
    border-radius: var(--radius-sm); cursor: pointer; transition: background .12s ease;
  }
  .bulk-student-row:hover { background: var(--surface); }
  .bulk-student-row:has(input:checked) { background: var(--primary-tint); }
  .bulk-student-row-all { border-bottom: 1.5px solid var(--border); margin-bottom: 4px; padding-bottom: 11px; }
  .bulk-student-row input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--primary); flex-shrink: 0; cursor: pointer; }
  .bulk-student-avatar {
    width: 26px; height: 26px; border-radius: 50%; background: var(--lavender-tint); color: var(--lavender);
    display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 800; flex-shrink: 0;
  }
  .bulk-student-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .bulk-student-class {
    color: var(--ink-soft); font-size: 10.5px; background: var(--surface); border: 1px solid var(--border);
    border-radius: var(--radius-pill); padding: 2px 9px; flex-shrink: 0;
  }

  /* ---- خلاصه‌ی زنده‌ی مبلغ ---- */
  .bulk-summary-box {
    display: flex; flex-wrap: wrap; gap: 10px; background: linear-gradient(135deg, var(--primary-tint), var(--lavender-tint));
    border: 1px solid var(--primary-light); border-radius: var(--radius-md); padding: 14px 16px; margin-bottom: 16px;
  }
  .bulk-summary-row {
    flex: 1; min-width: 120px; display: flex; flex-direction: column; gap: 4px;
    font-size: 11.5px; color: var(--ink-soft); font-weight: 700;
  }
  .bulk-summary-row b { font-size: 15px; color: var(--primary-dark); font-weight: 800; }
  .bulk-summary-total { border-right: 1.5px dashed var(--primary-light); padding-right: 14px; }
  .bulk-summary-total b { color: var(--gold-dark); font-size: 17px; }
  @media (max-width: 560px) {
    .bulk-summary-box { flex-direction: column; }
    .bulk-summary-total { border-right: none; padding-right: 0; border-top: 1.5px dashed var(--primary-light); padding-top: 10px; }
  }

  .bulk-submit-btn { background: linear-gradient(135deg, var(--green), #257A54); box-shadow: 0 10px 22px -10px rgba(47,158,110,0.55); }
  .bulk-submit-btn:hover { filter: brightness(1.06); }

  /* ---- تاریخچه‌ی شارژهای گروهی ---- */
  .bulk-history-wrap { margin-top: 20px; padding-top: 18px; border-top: 1px dashed var(--border-strong); }
  .bulk-history-list { display: flex; flex-direction: column; gap: 8px; }
  .bulk-history-item {
    display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid var(--border);
    border-radius: var(--radius-md); background: var(--surface-2); transition: box-shadow .15s ease;
  }
  .bulk-history-item:hover { box-shadow: var(--shadow-xs); }
  .bulk-history-ico {
    width: 36px; height: 36px; border-radius: var(--radius-sm); background: var(--gold-tint); flex-shrink: 0;
    display: flex; align-items: center; justify-content: center; font-size: 16px;
  }
  .bulk-history-body { flex: 1; min-width: 0; }
  .bulk-history-title { font-size: 12.5px; font-weight: 800; color: var(--ink); margin-bottom: 2px; }
  .bulk-history-meta { font-size: 10.5px; color: var(--ink-faint); line-height: 1.6; }
  .bulk-history-amount {
    text-align: left; font-size: 12.5px; font-weight: 800; color: var(--gold-dark); flex-shrink: 0;
    display: flex; flex-direction: column; gap: 1px;
  }
  .bulk-history-amount small { font-size: 9.5px; font-weight: 700; color: var(--ink-faint); }
  @media (max-width: 480px) {
    .bulk-history-item { flex-wrap: wrap; }
    .bulk-history-amount { text-align: right; margin-right: 48px; }
  }

  /* ================= تنظیمات: تغییر عکس فرزندان ================= */
  .settings-children-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 14px; }
  .settings-child-card {
    display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px;
    padding: 16px 12px; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface-2);
  }
  .settings-child-photo-preview { width: 72px; height: 72px; border: 2px solid var(--surface); box-shadow: 0 0 0 2px var(--primary-tint); }
  .settings-child-photo-fallback {
    width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
    background: var(--primary); color: #fff; font-weight: 800; font-size: 22px;
  }
  .settings-child-card-body { display: flex; flex-direction: column; align-items: center; gap: 6px; width: 100%; }
  .settings-child-card-body strong { font-size: 13.5px; color: var(--ink); }
  .settings-child-card-body .sub { font-size: 11.5px; color: var(--ink-soft); }
  .settings-child-card-body input[type="file"] { width: 100%; font-size: 11px; }
  .settings-child-card-body .btn-block { padding: 8px 10px; font-size: 12.5px; }
  .settings-child-card-body .form-msg:empty { display: none; }
  .avatar-cell { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; display: block; background: var(--surface-2); }
  .avatar-cell-fallback {
    width: 32px; height: 32px; border-radius: 50%; background: var(--primary-tint);
    color: var(--primary); display: flex; align-items: center; justify-content: center;
    font-weight: 800; font-size: 12.5px;
  }

  /* ================= پنل معلم: کلاس من + حضور و غیاب ================= */
  .myclass-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-bottom: 18px; }
  .myclass-head h3 { font-size: 16px; font-weight: 800; margin: 0 0 4px; }
  .att-date-input {
    border: 1.5px solid var(--border-strong); border-radius: var(--radius-sm);
    padding: 9px 12px; font-family: 'Vazirmatn', sans-serif; font-size: 13px; color: var(--ink);
    background: var(--surface-2);
  }
  .roster-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)); gap: 14px 10px; margin-bottom: 20px; }
  .att-card { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; }
  .att-avatar-btn {
    position: relative; width: 64px; height: 64px; border-radius: 50%; padding: 3px; border: none;
    background: var(--border-strong); cursor: pointer; transition: transform .12s ease, background .15s ease;
  }
  .att-avatar-btn:hover { transform: scale(1.05); }
  .att-avatar-btn.att-ring-present { background: linear-gradient(135deg, #4CAF7D, #2F9E6E); }
  .att-avatar-btn.att-ring-absent { background: linear-gradient(135deg, #D98B82, var(--coral)); }
  .att-avatar-circle {
    display: block; width: 100%; height: 100%; border-radius: 50%; overflow: hidden;
    background: var(--primary-tint); color: var(--primary); font-weight: 800; font-size: 20px;
    display: flex; align-items: center; justify-content: center; border: 2px solid var(--surface);
  }
  .att-avatar-circle img { width: 100%; height: 100%; object-fit: cover; }
  .att-avatar-fallback { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
  .att-allergy-dot {
    position: absolute; top: -2px; left: -2px; background: var(--surface); border-radius: 50%;
    width: 20px; height: 20px; display: flex; align-items: center; justify-content: center; font-size: 11px;
    box-shadow: var(--shadow-xs);
  }
  .att-card-name { font-size: 11.5px; font-weight: 700; color: var(--ink); max-width: 90px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .att-mini-toggle { display: flex; gap: 4px; }
  .att-mini-btn {
    width: 26px; height: 26px; border-radius: 50%; border: 1.5px solid var(--border-strong); background: var(--surface);
    color: var(--ink-faint); font-size: 12px; font-weight: 800; cursor: pointer; transition: all .15s ease;
    display: flex; align-items: center; justify-content: center;
  }
  .att-mini-btn.att-mini-present.active { background: var(--green-tint); border-color: #2F9E6E; color: #2F9E6E; }
  .att-mini-btn.att-mini-absent.active { background: var(--coral-tint); border-color: var(--coral); color: #A63A2F; }
  @media (max-width: 380px) { .roster-list { grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); } .att-avatar-btn { width: 56px; height: 56px; } }

  /* ================= پنل ولی: فرزند من — طراحی کامل در ادامه («بخش فرزند من») ================= */

  /* ================= نوار پایین موبایل ================= */
  .mobile-bottom-nav {
    display: none;
    position: fixed; bottom: 0; right: 0; left: 0;
    background: var(--surface);
    border-top: 1px solid var(--border);
    padding: 8px 6px calc(8px + env(safe-area-inset-bottom));
    z-index: 45;
    box-shadow: var(--shadow-lg);
  }
  .mobile-bottom-nav .mb-item {
    flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px;
    border: none; background: transparent; color: var(--ink-soft);
    padding: 6px 2px; font-family: 'Vazirmatn', sans-serif; font-size: 10px; font-weight: 700;
  }
  .mobile-bottom-nav .mb-item svg { width: 19px; height: 19px; transition: transform .15s ease; }
  .mobile-bottom-nav .mb-item.active { color: var(--primary); }
  .mobile-bottom-nav .mb-item.active svg { transform: translateY(-2px); }

  /* ================= ریسپانسیو داشبورد ================= */
  @media (max-width: 980px) {
    .stat-cards-row { grid-template-columns: repeat(2, 1fr); }
    .dash-main-grid { grid-template-columns: 1fr; }
    .dash-grid { grid-template-columns: repeat(2, 1fr); }
  }
  @media (max-width: 560px) {
    .dash-grid { grid-template-columns: 1fr; }
  }
  @media (max-width: 720px) {
    .mobile-bottom-nav { display: flex; }
    .app-content { padding-bottom: 90px; }
    .welcome-block { flex-direction: column; align-items: flex-start; }
    .top3-grid { grid-template-columns: 1fr; }
    .stage-body { flex-direction: column; align-items: stretch; }
    .stage-bars { align-self: center; }
  }
  @media (max-width: 480px) {
    .stat-cards-row { grid-template-columns: 1fr; }
    .calendar-months { grid-template-columns: repeat(2, 1fr); }
  }

  /* ================= چاپ گزارش‌ها (شهریه/بدهی/صورت‌حساب) ================= */
  #printArea { display: none; }

  @media print {
    body * { visibility: hidden; }
    #printArea, #printArea * { visibility: visible; }
    #printArea {
      display: block; position: absolute; inset: 0; width: 100%;
      padding: 18px 26px; direction: rtl; font-family: 'Vazirmatn', Tahoma, sans-serif;
      color: #2B2A33;
    }
    .print-header {
      display: flex; align-items: center; justify-content: space-between;
      border-bottom: 2px solid #4A3A7A; padding-bottom: 12px; margin-bottom: 16px;
    }
    .print-header h1 { font-size: 18px; margin: 0 0 4px; color: #4A3A7A; }
    .print-header .print-sub { font-size: 11.5px; color: #6E6C7D; margin: 0; }
    .print-header .print-meta { text-align: left; font-size: 11px; color: #6E6C7D; }
    .print-table { width: 100%; border-collapse: collapse; font-size: 11.5px; margin-bottom: 14px; }
    .print-table th, .print-table td {
      border: 1px solid #E4E3F0; padding: 7px 8px; text-align: right;
    }
    .print-table th { background: #EFEAF7; font-weight: 800; }
    .print-table tfoot td { font-weight: 800; background: #FFFFFF; }
    .print-summary-row {
      display: flex; gap: 18px; margin-bottom: 16px; font-size: 12px; flex-wrap: wrap;
    }
    .print-summary-row span { background: #FFFFFF; border: 1px solid #EFEAF7; border-radius: 8px; padding: 8px 14px; }
    .print-summary-row b { color: #4A3A7A; }
    .print-section-title { font-size: 13.5px; font-weight: 800; margin: 14px 0 6px; }
    .print-balance-line {
      display: flex; justify-content: flex-end; gap: 24px; font-size: 13px;
      border-top: 2px solid #4A3A7A; padding-top: 10px; margin-top: 4px;
    }
    .print-balance-line b { font-size: 15px; }
    .print-footer { margin-top: 24px; font-size: 10.5px; color: #A3A1AC; text-align: center; }

    /* ============================================================
     *  کارنامه‌ی رشد فردی (مونته‌سوری) — طراحی حرفه‌ای برای چاپ/PDF
     * ============================================================ */
    .gr-report { direction: rtl; font-family: 'Vazirmatn', Tahoma, sans-serif; }

    /* ---- نوار برند بالای گزارش (لوگوتایپ Hasti + عنوان سند) ---- */
    .gr-brand-bar {
      background: linear-gradient(135deg, #232337 0%, #2C2E52 45%, #38449E 100%);
      color: #FFFFFF; border-radius: 14px 14px 0 0; padding: 16px 22px;
      display: flex; align-items: center; justify-content: space-between; gap: 14px;
      -webkit-print-color-adjust: exact; print-color-adjust: exact;
    }
    .gr-brand-left { display: flex; align-items: center; gap: 12px; }
    .gr-brand-mark {
      width: 38px; height: 38px; border-radius: 50%; flex-shrink: 0;
      background: rgba(255,255,255,0.14); border: 1px solid rgba(255,255,255,0.28);
      display: flex; align-items: center; justify-content: center;
    }
    .gr-brand-text { display: flex; flex-direction: column; }
    .gr-brand-name { color: #EAD09B; font-size: 25px; line-height: 1.1; }
    .gr-brand-tagline { font-size: 10px; color: rgba(255,255,255,0.72); font-weight: 600; margin-top: 3px; }
    .gr-brand-right { text-align: left; display: flex; flex-direction: column; gap: 4px; }
    .gr-doc-title { font-size: 13.5px; font-weight: 800; }
    .gr-doc-code { font-size: 9.5px; color: rgba(255,255,255,0.68); font-weight: 500; }

    /* ---- کارت هویتیِ دانش‌آموز، بلافاصله زیر نوار برند ---- */
    .gr-student-card {
      background: #FBFAF8; border: 1px solid #E7E5DE; border-top: none;
      border-radius: 0 0 14px 14px; padding: 14px 22px; margin-bottom: 16px;
      display: flex; align-items: center; gap: 14px;
    }
    .gr-avatar { width: 54px; height: 54px; border-radius: 50%; object-fit: cover; border: 2px solid #38449E; flex-shrink: 0; }
    .gr-avatar-fallback {
      display: flex; align-items: center; justify-content: center;
      background: #EEF0FB; color: #38449E; font-weight: 800; font-size: 19px;
    }
    .gr-student-info { flex: 1; min-width: 0; }
    .gr-student-info h1 { font-size: 17px; margin: 0 0 6px; color: #232337; }
    .gr-student-chips { display: flex; flex-wrap: wrap; gap: 6px; }
    .gr-chip { font-size: 10px; font-weight: 700; color: #6B6975; background: #FFFFFF; border: 1px solid #E7E5DE; border-radius: 999px; padding: 3px 10px; }
    .gr-student-period { text-align: left; font-size: 10px; color: #6B6975; flex-shrink: 0; }
    .gr-student-period span { display: block; margin-bottom: 3px; }
    .gr-student-period b { font-size: 11px; color: #232337; }

    /* ---- کارت‌های آماریِ خلاصه‌ی اجرایی ---- */
    .gr-stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 16px; }
    .gr-stat-card {
      border: 1px solid #E7E5DE; border-radius: 12px; padding: 10px 8px; text-align: center;
      display: flex; flex-direction: column; align-items: center; gap: 2px;
      -webkit-print-color-adjust: exact; print-color-adjust: exact;
    }
    .gr-stat-icon { font-size: 15px; margin-bottom: 2px; }
    .gr-stat-card b { font-size: 19px; font-weight: 800; }
    .gr-stat-card span { font-size: 9.5px; color: #6B6975; font-weight: 600; }
    .gr-stat-mastered { background: #E7F5EC; } .gr-stat-mastered b { color: #1F7A4D; }
    .gr-stat-practicing { background: #FBF0DE; } .gr-stat-practicing b { color: #A6621F; }
    .gr-stat-notstarted { background: #F4F3EF; } .gr-stat-notstarted b { color: #6B6975; }
    .gr-stat-time { background: #EEF0FB; } .gr-stat-time b { color: #38449E; }

    /* ---- نوار پیشرفت کلی ---- */
    .gr-overall { margin-bottom: 18px; }
    .gr-overall-head { display: flex; justify-content: space-between; align-items: baseline; font-size: 11px; color: #6B6975; margin-bottom: 6px; }
    .gr-overall-head b { font-size: 14px; color: #232337; }
    .gr-progress-track { height: 10px; border-radius: 999px; background: #EFEEE8; overflow: hidden; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .gr-progress-track-sm { height: 6px; margin: 6px 0 8px; }
    .gr-progress-fill { height: 100%; border-radius: 999px; -webkit-print-color-adjust: exact; print-color-adjust: exact; }

    /* ---- عنوان بخش‌ها ---- */
    .gr-section-title { font-size: 13.5px; font-weight: 800; color: #232337; margin: 16px 0 10px; border-right: 3px solid #38449E; padding-right: 9px; }

    /* ---- شبکه‌ی کارت‌های حوزه‌های پنج‌گانه ---- */
    .gr-areas-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-bottom: 6px; }
    .gr-area-card {
      border: 1px solid #E7E5DE; border-top: 3px solid #4A5DC7; border-radius: 10px;
      padding: 10px 12px 6px; break-inside: avoid; background: #FFFFFF;
      -webkit-print-color-adjust: exact; print-color-adjust: exact;
    }
    .gr-area-card-head { display: flex; align-items: center; gap: 8px; margin-bottom: 2px; }
    .gr-area-icon {
      width: 26px; height: 26px; border-radius: 50%; flex-shrink: 0; font-size: 13px;
      display: flex; align-items: center; justify-content: center;
      -webkit-print-color-adjust: exact; print-color-adjust: exact;
    }
    .gr-area-card-title { flex: 1; min-width: 0; }
    .gr-area-card-title h3 { font-size: 12px; font-weight: 800; margin: 0; color: #2B2A33; }
    .gr-area-sub { font-size: 9px; color: #A3A1AC; }
    .gr-area-pct { font-size: 14px; font-weight: 800; }
    .gr-skill-table { width: 100%; border-collapse: collapse; margin-top: 4px; }
    .gr-skill-table td { font-size: 10.5px; padding: 4px 2px; border-bottom: 1px dashed #EDECE6; }
    .gr-skill-table tr:last-child td { border-bottom: none; }
    .gr-skill-table tr td:first-child { width: 58%; color: #4A4954; }
    .gr-status-cell { text-align: left !important; }
    .gr-status-pill {
      display: inline-block; font-weight: 700; font-size: 9.5px; border-radius: 999px; padding: 2px 8px;
      -webkit-print-color-adjust: exact; print-color-adjust: exact;
    }
    .gr-status-pill.gr-status-mastered { color: #1F7A4D; background: #E7F5EC; }
    .gr-status-pill.gr-status-practicing { color: #A6621F; background: #FBF0DE; }
    .gr-status-pill.gr-status-notstarted { color: #8A8878; background: #F4F3EF; }

    /* ---- نمودار میله‌ایِ زمانِ چرخه‌ی کار ---- */
    .gr-time-chart { border: 1px solid #E7E5DE; border-radius: 10px; padding: 12px 14px; margin-bottom: 6px; break-inside: avoid; }
    .gr-time-row { display: flex; align-items: center; gap: 10px; margin-bottom: 9px; }
    .gr-time-row:last-child { margin-bottom: 0; }
    .gr-time-label { font-size: 10.5px; font-weight: 700; color: #4A4954; width: 108px; flex-shrink: 0; }
    .gr-time-track { flex: 1; height: 9px; border-radius: 999px; background: #F1EFE9; overflow: hidden; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .gr-time-fill { height: 100%; border-radius: 999px; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .gr-time-value { font-size: 10px; font-weight: 700; color: #6B6975; width: 62px; flex-shrink: 0; text-align: left; }

    /* ---- مشاهدات/یادداشت‌های استعداد ---- */
    .gr-notes-grid { display: flex; flex-direction: column; gap: 8px; }
    .gr-note-card { border: 1px solid #E4E3F0; border-radius: 10px; padding: 9px 13px; background: #FCFBFF; break-inside: avoid; }
    .gr-note-card-head { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
    .gr-note-quote { font-size: 16px; font-weight: 800; color: #C9C6DA; line-height: 1; }
    .gr-note-date { font-size: 9.5px; font-weight: 700; color: #6E6C7D; }
    .gr-note-badge {
      font-size: 9px; font-weight: 700; border-radius: 999px; padding: 2px 8px; margin-inline-start: auto;
      -webkit-print-color-adjust: exact; print-color-adjust: exact;
    }
    .gr-note-card p { margin: 0; font-size: 11px; line-height: 1.7; color: #2B2A33; }
    .gr-empty { font-size: 11px; color: #A3A1AC; }

    /* ---- یادداشت روایی معلم (متن آزاد رنگی/فرمت‌دار) در گزارش رشدِ عکس‌دار ---- */
    .gr-note-card-lg { padding: 16px 20px; break-inside: avoid; }
    .gr-text { font-size: 12.5px; line-height: 2; position: relative; z-index: 1; }
    .gr-text p { margin: 0 0 8px; }
    .gr-text .rt-box {
      display: block; background: #EEF0FB; border-right: 4px solid #4A5DC7;
      border-radius: 8px; padding: 10px 14px; margin: 8px 0;
      -webkit-print-color-adjust: exact; print-color-adjust: exact;
    }

    /* ---- گالریِ عکس‌های این دوره ---- */
    .gr-gallery { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 4px; }
    .gr-photo { width: 150px; height: 150px; object-fit: cover; border-radius: 12px; border: 1px solid #E7E5DE; break-inside: avoid; }

    /* ---- جعبه‌ی فلسفه‌ی مونته‌سوری ---- */
    .gr-philosophy-box {
      display: flex; align-items: center; gap: 10px; margin-top: 18px; padding: 10px 16px;
      background: #F1EFE9; border-radius: 10px; break-inside: avoid;
    }
    .gr-philosophy-icon { font-size: 18px; flex-shrink: 0; }
    .gr-philosophy-box p { margin: 0; font-size: 10.5px; color: #6B6975; line-height: 1.8; }

    /* ---- امضا/مهر ---- */
    .gr-signoff { display: flex; gap: 12px; margin-top: 18px; }
    .gr-signoff-box {
      flex: 1; border: 1px dashed #D9D6CC; border-radius: 10px; padding: 12px 14px 22px;
      display: flex; flex-direction: column; gap: 4px; font-size: 10px; color: #6B6975;
    }
    .gr-signoff-box b { font-size: 11.5px; color: #232337; }
    .gr-signoff-stamp { align-items: center; justify-content: center; }

    .gr-footer { margin-top: 14px; }

    @page { size: A4; margin: 12mm 14mm; }
  }

  /* ---------------- مودال «مشاهده کلاس» (مورد ۶) ---------------- */
  .btn-secondary {
    border: 1.5px solid var(--border-strong); color: var(--ink); background: var(--surface-2);
    padding: 0 18px; border-radius: var(--radius-sm); font-weight: 700; font-size: 13px;
    transition: all .15s ease; white-space: nowrap;
  }
  .btn-secondary:hover { border-color: var(--primary); color: var(--primary); }
  .cd-section { margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--border); }
  .cd-section:first-of-type { margin-top: 18px; padding-top: 0; border-top: none; }
  .cd-section h4 { font-size: 13.5px; font-weight: 800; margin: 0 0 12px; }
  .cd-section .field-row { align-items: flex-end; }
  .cd-student-group-title { font-size: 12px; font-weight: 700; color: var(--ink-soft); margin: 14px 0 8px; }

  /* ---- کارت آواتاریِ معلمِ فعلی + فرم تغییر (پیش‌فرض بسته) ---- */
  .cd-teacher-card {
    display: flex; align-items: center; gap: 12px; padding: 12px 14px;
    border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface-2);
  }
  .cd-teacher-avatar {
    width: 46px; height: 46px; border-radius: 50%; overflow: hidden; flex-shrink: 0;
    background: var(--primary-tint); color: var(--primary); font-weight: 800; font-size: 17px;
    display: flex; align-items: center; justify-content: center;
  }
  .cd-teacher-avatar img { width: 100%; height: 100%; object-fit: cover; }
  .cd-teacher-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
  .cd-teacher-name { font-size: 13.5px; font-weight: 800; color: var(--ink); }
  .cd-teacher-hint { font-size: 10.5px; color: var(--ink-faint); }
  .cd-teacher-change-btn { flex-shrink: 0; padding: 7px 14px; font-size: 11.5px; }
  .cd-teacher-edit { margin-top: 10px; }

  /* ---- چیپ‌های دایره‌ایِ دانش‌آموزان (فقط عکس + اسم) ---- */
  .cd-student-chip-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(78px, 1fr)); gap: 12px 6px; margin-bottom: 8px; }
  .cd-student-chip {
    display: flex; flex-direction: column; align-items: center; gap: 5px; text-align: center;
    background: transparent; border: none; cursor: pointer; font-family: inherit; padding: 4px;
  }
  .cd-chip-avatar {
    width: 56px; height: 56px; border-radius: 50%; overflow: hidden; background: var(--primary-tint); color: var(--primary);
    font-weight: 800; font-size: 18px; display: flex; align-items: center; justify-content: center;
    border: 2.5px solid var(--border-strong); transition: transform .12s ease, border-color .15s ease;
  }
  .cd-chip-avatar img { width: 100%; height: 100%; object-fit: cover; }
  .cd-student-chip:hover .cd-chip-avatar { transform: scale(1.06); }
  .cd-chip-avatar.cd-chip-owe { border-color: var(--coral); }
  .cd-chip-avatar.cd-chip-clear { border-color: #2F9E6E; }
  .cd-chip-name { font-size: 11px; font-weight: 700; color: var(--ink); max-width: 78px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .cd-student-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  @media (max-width: 560px) { .cd-student-grid { grid-template-columns: 1fr; } }
  .cd-student-card {
    display: flex; align-items: center; gap: 10px; padding: 11px 13px;
    border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface);
    box-shadow: var(--shadow-xs); transition: box-shadow .15s, transform .1s; position: relative; overflow: hidden;
  }
  .cd-student-card::before { content: ''; position: absolute; inset-inline-start: 0; top: 0; bottom: 0; width: 3px; background: var(--border); }
  .cd-student-card:hover { box-shadow: var(--shadow-sm); transform: translateY(-1px); }
  .cd-student-card.cd-owe::before { background: var(--coral); }
  .cd-student-card.cd-clear::before { background: #2F9E6E; }
  .cd-student-avatar {
    width: 40px; height: 40px; border-radius: 50%; overflow: hidden; flex-shrink: 0;
    background: var(--primary-tint); color: var(--primary); display: flex; align-items: center; justify-content: center;
    font-weight: 800; font-size: 15px; box-shadow: 0 0 0 2px var(--surface), 0 0 0 3px var(--border);
  }
  .cd-student-avatar img { width: 100%; height: 100%; object-fit: cover; }
  .cd-student-info { flex: 1; min-width: 0; }
  .cd-student-name { font-size: 13px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .cd-student-parent { font-size: 11px; color: var(--ink-soft); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

  /* ---- افزودن دانش‌آموز موجود به کلاس با یک کلیک (پیکر) ---- */
  .cd-picker-search {
    width: 100%; padding: 10px 14px; border: 1.5px solid var(--border); border-radius: var(--radius-md);
    font-family: inherit; font-size: 13px; margin-bottom: 10px; background: var(--surface);
  }
  .cd-picker-search:focus { outline: none; border-color: var(--primary); }
  .cd-picker-list { max-height: 280px; overflow-y: auto; border: 1px solid var(--border); border-radius: var(--radius-md); padding: 6px; background: var(--surface-2); }
  .cd-picker-row {
    display: flex; align-items: center; gap: 12px; padding: 9px 10px; cursor: pointer;
    border-radius: var(--radius-sm); margin-bottom: 4px; background: var(--surface);
    box-shadow: var(--shadow-xs); transition: transform .1s ease, box-shadow .15s ease;
  }
  .cd-picker-row:last-child { margin-bottom: 0; }
  .cd-picker-row:hover { transform: translateX(-2px); box-shadow: var(--shadow-sm); }
  .cd-picker-row-disabled { cursor: default; opacity: .55; }
  .cd-picker-row-disabled:hover { transform: none; box-shadow: var(--shadow-xs); }
  .cd-picker-avatar {
    width: 36px; height: 36px; border-radius: 50%; overflow: hidden; flex-shrink: 0;
    background: var(--primary-tint); display: flex; align-items: center; justify-content: center;
    font-size: 13px; font-weight: 800; color: var(--primary);
  }
  .cd-picker-avatar img { width: 100%; height: 100%; object-fit: cover; }
  .cd-picker-name { flex: 1; min-width: 0; font-size: 13px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .cd-picker-status { font-size: 10.5px; font-weight: 700; padding: 3px 9px; border-radius: var(--radius-pill); flex-shrink: 0; }
  .cd-picker-in { background: var(--green-tint); color: #2F9E6E; }
  .cd-picker-elsewhere { background: var(--gold-tint); color: #A6621F; }
  .cd-picker-none { background: var(--surface-2); color: var(--ink-soft); }

  /* ---------------- مودال حضور و غیاب یک روز (مورد ۹) ---------------- */
  .day-att-class-block { padding: 14px 0; border-bottom: 1px solid var(--border); }
  .day-att-class-block:last-child { border-bottom: none; }
  .day-att-class-title { font-size: 14px; font-weight: 800; margin-bottom: 10px; }
  .day-att-row { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 8px; }
  .day-att-row:last-child { margin-bottom: 0; }
  .day-att-label {
    flex-shrink: 0; min-width: 78px; font-size: 11.5px; font-weight: 700; padding: 4px 10px;
    border-radius: var(--radius-pill); text-align: center;
  }
  .day-att-label.present { background: var(--green-tint); color: #2F9E6E; }
  .day-att-label.absent { background: var(--coral-tint); color: #A63A2F; }
  .day-att-chips { display: flex; flex-wrap: wrap; gap: 6px; }
  .day-att-chip {
    font-size: 12px; font-weight: 600; padding: 4px 11px; border-radius: var(--radius-pill);
    background: var(--surface-2); border: 1px solid var(--border);
  }
  .day-att-empty { font-size: 12px; color: var(--ink-soft); }

.debt-badge {
    display: inline-flex; align-items: center; justify-content: center;
    padding: 5px 12px; border-radius: 999px; font-size: 12px; font-weight: 700;
    border: none; font-family: inherit;
  }
  .debt-badge-owe { background: var(--coral-tint); color: #A63A2F; cursor: pointer; transition: transform .15s; }
  .debt-badge-owe:hover { transform: scale(1.06); }
  .debt-badge-clear { background: var(--green-tint); color: #2F9E6E; cursor: default; }
  .debt-badge-none { background: #EEF0FB; color: var(--ink-soft); cursor: default; }

  /* ================= هشدار بصری آلرژی/حساسیت غذایی ================= */
  .allergy-alert-badge {
    display: inline-flex; align-items: center; gap: 3px;
    margin-inline-start: 8px; padding: 3px 10px; border-radius: 999px;
    font-size: 11px; font-weight: 800; white-space: nowrap;
    background: #FAE6E3; color: #8C5518; border: 1px solid #E7E5DE;
    vertical-align: middle;
    animation: allergyPulse 2.2s ease-in-out infinite;
  }
  @keyframes allergyPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(198,124,46, .35); }
    50% { box-shadow: 0 0 0 5px rgba(198,124,46, 0); }
  }
  .roster-row-allergy {
    background: linear-gradient(90deg, #FBFAF8, transparent 30%);
    border-inline-start: 3px solid #C67C2E;
  }

  /* ================= پورتفولیوی رشد و مشاهدات مونته‌سوری ================= */
  .growth-modal-subtitle { font-size: 12.5px; color: var(--ink-soft); margin: -6px 0 18px; line-height: 1.7; }

  /* ---- کارت پروفایل بالای مودال رشد (آواتار + چیپ‌های اطلاعاتی) ---- */
  .gm-profile-card { display: flex; align-items: center; gap: 14px; margin: 6px 0 4px; padding-left: 30px; }
  .gm-pdf-btn {
    flex-shrink: 0; align-self: flex-start; border: 1px solid var(--border); background: var(--surface);
    color: var(--primary); font-family: inherit; font-weight: 700; font-size: 11.5px;
    padding: 8px 14px; border-radius: var(--radius-pill); cursor: pointer; transition: background .15s ease;
  }
  .gm-pdf-btn:hover { background: var(--primary-tint); }
  .gm-pdf-btn:disabled { opacity: .6; cursor: default; }  .gm-profile-avatar {
    width: 58px; height: 58px; border-radius: 50%; overflow: hidden; flex-shrink: 0;
    background: var(--primary-tint); color: var(--primary); font-weight: 800; font-size: 20px;
    display: flex; align-items: center; justify-content: center; box-shadow: var(--shadow-xs);
  }
  .gm-profile-avatar img { width: 100%; height: 100%; object-fit: cover; }
  .gm-profile-info { min-width: 0; }
  .gm-profile-info h2 { margin: 0 0 6px; font-size: 18px; font-weight: 800; color: var(--ink); }
  .gm-profile-chips { display: flex; flex-wrap: wrap; gap: 6px; }
  .gm-chip { font-size: 10.5px; font-weight: 700; color: var(--ink-soft); background: var(--surface-2); border-radius: var(--radius-pill); padding: 4px 10px; }
  .gm-chip-warn { color: #A63A2F; background: var(--coral-tint); }
  @media (max-width: 480px) {
    .gm-profile-card { flex-wrap: wrap; padding-left: 0; }
    .gm-pdf-btn { margin-inline-start: auto; }
  }
  .growth-view-btn { margin-top: 10px; width: auto !important; padding: 8px 16px; font-size: 12.5px; }

  .growth-tabs { display: flex; gap: 6px; border-bottom: 1px solid var(--border); margin-bottom: 18px; }
  .growth-tab {
    background: none; border: none; font-family: inherit; font-size: 13px; font-weight: 700;
    color: var(--ink-soft); padding: 9px 14px; cursor: pointer; border-bottom: 2px solid transparent;
    transition: color .15s, border-color .15s;
  }
  .growth-tab:hover { color: var(--ink); }
  .growth-tab.active { color: var(--primary); border-bottom-color: var(--primary); }
  .growth-tab-panel.hidden { display: none; }

  /* ================= کاشی‌های چک‌لیست رشد (مونته‌سوری) ================= */
  .skill-group-card {
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
    padding: 16px 17px 15px; margin-bottom: 14px; box-shadow: var(--shadow-xs);
  }
  .skill-group-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
  .skill-group-title { display: flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 800; color: var(--ink); }
  .skill-group-ico {
    width: 28px; height: 28px; border-radius: 9px; background: var(--primary-tint);
    display: flex; align-items: center; justify-content: center; font-size: 14px; flex-shrink: 0;
  }
  .skill-group-count { font-size: 11px; font-weight: 700; color: var(--ink-soft); background: var(--surface-2); border: 1px solid var(--border); border-radius: 999px; padding: 2px 10px; }
  .skill-group-progress-track { height: 6px; border-radius: 999px; background: var(--border); overflow: hidden; margin-bottom: 12px; }
  .skill-group-progress-fill { height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--green), #5CB88A); transition: width .35s ease; }

  .skill-tile-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
  .skill-tile {
    display: flex; flex-direction: column; align-items: flex-start; gap: 6px;
    padding: 10px 11px; border-radius: var(--radius-md); background: var(--surface-2);
    border: 1px solid var(--border); transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
  }
  .skill-tile-clickable { cursor: pointer; }
  .skill-tile-clickable:hover { transform: translateY(-2px); box-shadow: var(--shadow-sm); border-color: var(--border-strong); }
  .skill-tile-status-dot { font-size: 10px; }
  .skill-tile-label { font-size: 12px; font-weight: 600; color: var(--ink); line-height: 1.5; }
  .skill-tile-pill {
    font-size: 10px; font-weight: 700; padding: 2px 9px; border-radius: 999px; white-space: nowrap; margin-top: auto;
  }
  .skill-tile.gs-not-started { }
  .skill-tile.gs-practicing { border-color: #F0D2A0; background: #FBFAF8; }
  .skill-tile.gs-mastered { border-color: #5CB88A; background: var(--green-tint); }
  .gs-not-started.skill-tile-pill, .skill-tile-pill.gs-not-started { background: #EEF0FB; color: var(--ink-soft); }
  .gs-practicing.skill-tile-pill, .skill-tile-pill.gs-practicing { background: #FBEEDC; color: #A6621F; }
  .gs-mastered.skill-tile-pill, .skill-tile-pill.gs-mastered { background: var(--green-tint); color: #2F9E6E; }
  .growth-hint { font-size: 11.5px; color: var(--ink-soft); margin-top: 8px; text-align: center; }


  .workcycle-bars { display: flex; flex-direction: column; gap: 12px; margin-bottom: 20px; }
  .workcycle-bar-row { display: flex; align-items: center; gap: 10px; }
  .wc-label { width: 88px; flex-shrink: 0; font-size: 12.5px; font-weight: 700; color: var(--ink); }
  .wc-bar-track { flex: 1; height: 10px; border-radius: 999px; background: var(--surface-2); overflow: hidden; }
  .wc-bar-fill { height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--primary), var(--gold)); transition: width .4s ease; }
  .wc-minutes { width: 68px; flex-shrink: 0; font-size: 12px; color: var(--ink-soft); text-align: left; }

  .growth-log-form { display: flex; flex-direction: column; gap: 10px; margin-bottom: 18px; }
  .growth-log-form .form-row { display: flex; gap: 10px; }
  .growth-log-form input, .growth-log-form textarea {
    width: 100%; border: 1px solid var(--border); border-radius: 10px; padding: 9px 12px;
    font-family: inherit; font-size: 13px; background: var(--surface); color: var(--ink); resize: vertical;
  }
  /* سلکت‌های این فرم دیگر اینجا استایل نمی‌گیرند — ظاهرِ یکدست از قانونِ عمومیِ select می‌آید */
  .growth-log-form select { font-size: 13px; }

  .growth-timeline { display: flex; flex-direction: column; gap: 10px; }
  .growth-timeline-item { padding: 10px 14px; border-radius: 10px; background: var(--surface-2); border-inline-start: 3px solid var(--border); }
  .growth-timeline-item.talent-note { border-inline-start-color: var(--gold); background: #FBEEDC; }
  .gt-date { font-size: 12px; font-weight: 700; color: var(--ink); }
  .talent-star { color: #A6621F; font-weight: 800; }
  .gt-meta { font-size: 11.5px; color: var(--ink-soft); margin-top: 2px; }
  .gt-note { font-size: 12.5px; color: var(--ink); margin-top: 4px; line-height: 1.6; }

  /* ================= صفحه‌ی بارگذاری اولیه: هم‌رنگ با هویت برند ================= */
  #appLoader {
    position: fixed; inset: 0; z-index: 9999;
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px;
    background: var(--sidebar-bg);
    transition: opacity .4s cubic-bezier(.4,0,.2,1), visibility .4s;
  }
  #appLoader.loader-hidden { opacity: 0; visibility: hidden; pointer-events: none; }

  .loader-mark {
    width: 46px; height: 46px; border-radius: 13px; background: var(--gold); color: var(--sidebar-bg);
    display: flex; align-items: center; justify-content: center;
    font-weight: 900; font-size: 20px; font-family: 'Vazirmatn', sans-serif;
    animation: loaderMarkPulse 1.6s ease-in-out infinite;
  }
  @keyframes loaderMarkPulse { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(.92); opacity: .8; } }

  .loader-dots-mono { display: flex; align-items: center; gap: 10px; }
  .loader-dots-mono i {
    width: 7px; height: 7px; border-radius: 50%; background: var(--gold);
    opacity: .25; animation: loaderDotMono 1.3s ease-in-out infinite;
  }
  .loader-dots-mono i:nth-child(2) { animation-delay: .18s; }
  .loader-dots-mono i:nth-child(3) { animation-delay: .36s; }
  @keyframes loaderDotMono {
    0%, 80%, 100% { opacity: .2; transform: scale(.7); }
    40% { opacity: 1; transform: scale(1); }
  }
  @media (prefers-reduced-motion: reduce) { .loader-dots-mono i, .loader-mark { animation: none; opacity: .8; } }

  /* ================= لاگ‌های سیستم (پنل مؤسس) ================= */
  .logs-toolbar { display: flex; gap: 10px; margin-bottom: 14px; }
  .logs-search {
    flex: 1; display: flex; align-items: center; gap: 8px;
    background: var(--surface-2); border: 1px solid var(--border);
    border-radius: var(--radius-md); padding: 9px 14px; color: var(--ink-faint);
  }
  .logs-search svg { width: 16px; height: 16px; flex-shrink: 0; }
  .logs-search input {
    border: none; background: transparent; outline: none; font: inherit;
    color: var(--ink); width: 100%; direction: rtl;
  }

  .logs-category-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
  .log-chip {
    display: inline-flex; align-items: center; gap: 7px;
    border: 1px solid var(--border); background: var(--surface);
    color: var(--ink-soft); font: inherit; font-size: 12px; font-weight: 700;
    padding: 7px 13px; border-radius: var(--radius-pill); cursor: pointer;
    transition: all .15s ease;
  }
  .log-chip:hover { border-color: var(--border-strong); }
  .log-chip-count {
    background: rgba(0,0,0,.06); color: inherit; font-size: 10.5px; font-weight: 800;
    padding: 1px 7px; border-radius: var(--radius-pill); min-width: 18px; text-align: center;
  }
  .log-chip.active { color: #fff; border-color: transparent; }
  .log-chip.logcat-all.active { background: var(--primary); }
  .log-chip.logcat-auth.active { background: var(--lavender); }
  .log-chip.logcat-students.active { background: var(--coral); }
  .log-chip.logcat-teachers.active { background: var(--primary-light); }
  .log-chip.logcat-managers.active { background: var(--pink); }
  .log-chip.logcat-classes.active { background: var(--gold); }
  .log-chip.logcat-finance.active { background: var(--green); }
  .log-chip.logcat-news.active { background: var(--lavender); }
  .log-chip.logcat-enrollment.active { background: var(--coral); }
  .log-chip.logcat-attendance.active { background: var(--primary); }
  .log-chip.logcat-profile.active { background: var(--ink-soft); }
  .log-chip.logcat-other.active { background: var(--ink-faint); }
  .log-chip.active .log-chip-count { background: rgba(255,255,255,.28); color: #fff; }

  .logs-list { display: flex; flex-direction: column; gap: 22px; }
  .log-day-group { position: relative; }
  .log-day-label {
    font-size: 11.5px; font-weight: 800; color: var(--ink-soft);
    background: var(--surface-2); display: inline-block;
    padding: 4px 12px; border-radius: var(--radius-pill); margin-bottom: 10px;
  }

  .log-row {
    display: flex; gap: 12px; padding: 11px 4px;
    border-bottom: 1px solid var(--border);
  }
  .log-row:last-child { border-bottom: none; }
  .log-row-dot {
    width: 9px; height: 9px; border-radius: 50%; margin-top: 6px; flex-shrink: 0;
    background: var(--ink-faint);
  }
  .log-row.log-sev-success .log-row-dot { background: var(--green); }
  .log-row.log-sev-warning .log-row-dot { background: var(--gold); }
  .log-row.log-sev-danger .log-row-dot { background: var(--coral); }
  .log-row.log-sev-info .log-row-dot { background: var(--primary-light); }

  .log-row-body { flex: 1; min-width: 0; }
  .log-row-top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
  .log-row-top b { font-size: 13px; font-weight: 700; color: var(--ink); }
  .log-row-time { font-size: 11px; color: var(--ink-faint); margin-inline-start: auto; }
  .log-row-sub { font-size: 12px; color: var(--ink-soft); margin-top: 3px; line-height: 1.6; }

  .log-chip-tiny {
    font-size: 10px; font-weight: 700; padding: 2px 9px; border-radius: var(--radius-pill);
    background: var(--surface-2); color: var(--ink-soft);
  }
  .logcat-auth.log-chip-tiny { background: var(--lavender-tint); color: var(--lavender); }
  .logcat-students.log-chip-tiny { background: var(--coral-tint); color: #A63A2F; }
  .logcat-teachers.log-chip-tiny { background: var(--primary-tint); color: var(--primary); }
  .logcat-managers.log-chip-tiny { background: var(--pink-tint); color: var(--pink); }
  .logcat-classes.log-chip-tiny { background: var(--gold-tint); color: #A6621F; }
  .logcat-finance.log-chip-tiny { background: var(--green-tint); color: #2F9E6E; }
  .logcat-news.log-chip-tiny { background: var(--lavender-tint); color: var(--lavender); }
  .logcat-enrollment.log-chip-tiny { background: var(--coral-tint); color: #A63A2F; }
  .logcat-attendance.log-chip-tiny { background: var(--primary-tint); color: var(--primary); }
  .logcat-profile.log-chip-tiny { background: var(--surface-2); color: var(--ink-soft); }
  .logcat-other.log-chip-tiny { background: var(--surface-2); color: var(--ink-soft); }

  .logs-load-more-wrap { text-align: center; margin-top: 18px; }
  .btn-ghost-block {
    border: 1px solid var(--border); background: var(--surface);
    color: var(--primary); font: inherit; font-size: 12.5px; font-weight: 700;
    padding: 10px 22px; border-radius: var(--radius-pill); cursor: pointer;
  }
  .btn-ghost-block:hover { background: var(--primary-tint); border-color: var(--border-strong); }

  @media (max-width: 560px) {
    .logs-toolbar { flex-direction: column; }
    .log-row-time { margin-inline-start: 0; }
  }

  /* ==================================================
   *  بخش «فرزند من» در پنل اولیا — طراحی کامل از نو
   * ================================================== */
  #myChildWrap { display: flex; flex-direction: column; gap: 18px; }

  /* ---- سوییچر فرزندان: وقتی ولی بیش از یک فرزند دارد — کارت‌های جذاب ---- */
  .child-switch-bar {
    display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 18px;
    overflow-x: auto; padding-bottom: 2px; -webkit-overflow-scrolling: touch;
  }
  .child-switch-chip {
    display: flex; align-items: center; gap: 12px; cursor: pointer; border: 2px solid var(--border);
    background: var(--surface); border-radius: var(--radius-lg); padding: 10px 16px 10px 10px;
    box-shadow: var(--shadow-xs); transition: border-color .15s, transform .12s, box-shadow .15s, background .15s;
    font-family: inherit; position: relative; min-width: 200px; flex: 0 0 auto;
  }
  .child-switch-chip:hover { transform: translateY(-2px); box-shadow: var(--shadow-sm); }
  .child-switch-chip.active {
    border-color: var(--primary);
    background: linear-gradient(135deg, var(--primary-tint) 0%, var(--surface) 85%);
    box-shadow: 0 6px 18px -8px rgba(107,78,158,.45);
  }
  .child-switch-avatar-ring {
    position: relative; flex-shrink: 0; width: 46px; height: 46px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, var(--primary) 0%, var(--lavender) 100%);
    padding: 2px;
  }
  .child-switch-chip:not(.active) .child-switch-avatar-ring { background: var(--border); }
  .child-switch-avatar { width: 42px; height: 42px; border-radius: 50%; object-fit: cover; flex-shrink: 0; display: block; background: var(--surface-2); border: 2px solid var(--surface); }
  .child-switch-avatar-fallback {
    display: flex; align-items: center; justify-content: center;
    background: var(--primary); color: #fff; font-weight: 800; font-size: 15px; border: 2px solid var(--surface);
  }
  .child-switch-dot {
    position: absolute; bottom: -1px; left: -1px; width: 12px; height: 12px; border-radius: 50%;
    border: 2px solid var(--surface);
  }
  .child-switch-dot.dot-on { background: #2F9E6E; }
  .child-switch-dot.dot-off { background: #A6A0B8; }
  .child-switch-text { display: flex; flex-direction: column; align-items: flex-start; line-height: 1.5; min-width: 0; }
  .child-switch-name { font-size: 13.5px; font-weight: 800; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 130px; }
  .child-switch-class { font-size: 11px; color: var(--ink-faint); font-weight: 600; }
  .child-switch-check {
    display: none; flex-shrink: 0; width: 20px; height: 20px; border-radius: 50%; background: var(--primary);
    color: #fff; font-size: 11px; align-items: center; justify-content: center; margin-inline-start: 4px;
  }
  .child-switch-chip.active .child-switch-check { display: flex; }
  .child-switch-chip.inactive-child { opacity: .6; }
  .child-switch-chip.inactive-child .child-switch-class::after { content: ' · غیرفعال'; }

  /* ---- تب‌های داخلیِ پنل «فرزند من»: خلاصه / گزارش روزانه / گزارش قابل‌چاپ ---- */
  .mc-tabs-bar { margin-bottom: 18px; max-width: 480px; }
  .mc-tab-panel { display: flex; flex-direction: column; gap: 18px; }

  /* ---- خلاصه‌ی خانواده: مجموع بدهی همه‌ی فرزندان ---- */
  .fam-finance-hero {
    border-radius: var(--radius-lg); padding: 22px 24px 20px;
    background: linear-gradient(125deg, var(--primary-dark) 0%, var(--primary) 55%, var(--lavender) 120%);
    background-size: 160% 160%; color: #fff; box-shadow: var(--shadow-md); position: relative; overflow: hidden;
  }
  .fam-finance-hero::before {
    content: ''; position: absolute; inset: 0;
    background-image: radial-gradient(rgba(255,255,255,0.10) 1px, transparent 1px);
    background-size: 14px 14px; opacity: .5; pointer-events: none;
  }
  .fam-hero-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; position: relative; z-index: 1; flex-wrap: wrap; }
  .fam-hero-label { font-size: 13px; font-weight: 700; color: rgba(255,255,255,0.85); }
  .fam-hero-count { font-size: 11px; color: rgba(255,255,255,0.65); }
  .fam-hero-items { display: flex; gap: 26px; flex-wrap: wrap; position: relative; z-index: 1; margin-top: 16px; }
  .fam-hero-items .fd-balance-item { color: rgba(255,255,255,0.7); }
  .fam-hero-items .fd-balance-item b { color: #fff; font-size: 18px; }
  .fam-hero-items .fd-balance-item b.fd-green { color: #5CB88A; }
  .fam-hero-items .fd-balance-item b.fd-coral { color: #F0C7BF; }

  /* ---- کارت‌های تفکیکی هر فرزند ---- */
  .fam-finance-children-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin: 16px 0; }
  .fam-child-card {
    display: flex; align-items: center; gap: 12px; cursor: pointer; text-align: right; font-family: inherit;
    border: 2px solid var(--border); background: var(--surface); border-radius: var(--radius-md);
    padding: 12px 14px; transition: border-color .15s, box-shadow .15s, transform .1s;
  }
  .fam-child-card:hover { transform: translateY(-1px); box-shadow: var(--shadow-xs); }
  .fam-child-card.active { border-color: var(--primary); box-shadow: var(--shadow-sm); }
  .fam-child-avatar { width: 42px; height: 42px; border-radius: 50%; object-fit: cover; flex-shrink: 0; background: var(--surface-2); }
  .fam-child-avatar-fallback {
    width: 42px; height: 42px; border-radius: 50%; flex-shrink: 0; display: flex; align-items: center; justify-content: center;
    background: var(--primary); color: #fff; font-weight: 800; font-size: 16px;
  }
  .fam-child-info { display: flex; flex-direction: column; gap: 4px; min-width: 0; flex: 1; }
  .fam-child-name { font-size: 13px; font-weight: 700; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .fam-child-class { font-size: 10.5px; color: var(--ink-faint); }
  .fam-child-balance-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 2px; }
  .fam-child-balance { font-size: 12.5px; font-weight: 800; }
  .fam-child-balance.fd-green { color: #2F9E6E; }
  .fam-child-balance.fd-coral { color: #A63A2F; }

  /* ---- تب‌های پرداخت: آنلاین / کارت‌به‌کارت / سوابق ---- */
  .pay-tabs-card { padding-top: 14px; }
  .pay-tabs-bar {
    display: flex; gap: 4px; background: var(--surface-2); border: 1px solid var(--border);
    border-radius: var(--radius-pill); padding: 4px; margin-bottom: 20px;
  }
  .pay-tab-btn {
    flex: 1; min-width: 0; border: none; background: transparent; padding: 10px 6px; border-radius: var(--radius-pill);
    font-size: 12.5px; font-weight: 700; color: var(--ink-soft); cursor: pointer; font-family: inherit;
    transition: background .15s ease, color .15s ease, box-shadow .15s ease;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  }
  .pay-tab-btn:hover { color: var(--ink); }
  .pay-tab-btn.active { background: var(--surface); color: var(--primary); box-shadow: var(--shadow-xs); }
  @media (max-width: 560px) { .pay-tab-btn { font-size: 10.5px; padding: 9px 3px; } }

  /* ---- سوییچِ سربرگِ شهریه: «امور مالی و گزارشات» در برابرِ «پرداخت شهریه» ---- */
  .fin-mode-switch { display: flex; gap: 10px; margin-bottom: 18px; }
  .fin-mode-btn {
    flex: 1; display: flex; align-items: center; gap: 10px; text-align: right;
    border: 1.5px solid var(--border); background: var(--surface); border-radius: 16px;
    padding: 14px 14px; cursor: pointer; font-family: inherit; transition: all .18s ease;
    box-shadow: var(--shadow-xs);
  }
  .fin-mode-btn:hover { border-color: var(--primary); transform: translateY(-1px); }
  .fin-mode-btn .fin-mode-ico { font-size: 22px; line-height: 1; flex-shrink: 0; }
  .fin-mode-btn .fin-mode-text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
  .fin-mode-btn .fin-mode-text b { font-size: 13.5px; color: var(--ink); }
  .fin-mode-btn .fin-mode-text small { font-size: 10.5px; color: var(--ink-faint); white-space: normal; }
  .fin-mode-btn.active {
    background: linear-gradient(135deg, var(--primary-tint), var(--surface));
    border-color: var(--primary); box-shadow: var(--shadow-sm);
  }
  .fin-mode-btn.active .fin-mode-text b { color: var(--primary); }
  @media (max-width: 560px) {
    .fin-mode-switch { flex-direction: column; }
    .fin-mode-btn .fin-mode-text small { display: none; }
  }
  .inst-mode-tabs { margin-bottom: 16px; }
  .inst-existing-note {
    font-size: 11.5px; color: var(--ink-soft); background: var(--surface-2); border: 1px dashed var(--border);
    border-radius: 10px; padding: 10px 12px; margin-top: -6px; margin-bottom: 14px; line-height: 1.9;
  }
  .settings-tabs-bar { max-width: 480px; }
  .settings-build-version { font-size: 10.5px; color: var(--ink-faint); margin: -4px 0 16px; }
  .settings-build-version b { color: var(--ink-soft); font-weight: 700; }
  .pay-tab-subhead { font-size: 12.5px; font-weight: 800; color: var(--ink); margin: 18px 0 10px; }
  .pay-tab-subhead:first-child { margin-top: 0; }
  .pay-for-child-badge {
    display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; font-weight: 700;
    color: var(--primary); background: var(--primary-tint); border-radius: var(--radius-pill);
    padding: 5px 12px; margin: -10px 0 16px;
  }

  /* ---- ۱) بنر هیرو گرادیانی ---- */
  .child-hero {
    position: relative; overflow: hidden; border-radius: var(--radius-lg);
    background: linear-gradient(125deg, var(--primary-dark) 0%, var(--primary) 55%, var(--lavender) 130%);
    background-size: 160% 160%;
    padding: 24px 26px; color: #fff; box-shadow: var(--shadow-md);
    display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap;
  }
  .child-hero::before {
    content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .5;
    background-image: radial-gradient(rgba(255,255,255,0.10) 1px, transparent 1px);
    background-size: 16px 16px;
  }
  .child-hero-main { display: flex; align-items: center; gap: 16px; position: relative; z-index: 1; min-width: 0; }
  .child-avatar-ring {
    display: flex; padding: 3px; border-radius: 50%; background: rgba(255,255,255,0.25); flex-shrink: 0;
  }
  .child-avatar { width: 66px; height: 66px; border-radius: 50%; object-fit: cover; flex-shrink: 0; display: block; background: var(--surface-2); }
  .child-avatar-fallback {
    display: flex; align-items: center; justify-content: center;
    background: rgba(255,255,255,0.18); color: #fff; font-weight: 800; font-size: 24px;
  }
  .child-hero-text { min-width: 0; }
  .child-hero-text h3 { font-size: 18px; font-weight: 800; margin: 0 0 8px; color: #fff; }
  .child-emoji { font-size: 16px; }
  .child-hero-chips { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 6px; }
  .child-hero-chip {
    font-size: 11px; font-weight: 700; background: rgba(255,255,255,0.16); color: #fff;
    padding: 4px 11px; border-radius: 999px; white-space: nowrap;
  }
  .child-hero .allergy-alert-badge { background: #FAE6E3; }
  .child-hero-cta {
    position: relative; z-index: 1; flex-shrink: 0; border: none; cursor: pointer; font-family: inherit;
    background: #fff; color: var(--primary-dark); font-size: 12.5px; font-weight: 800;
    padding: 11px 20px; border-radius: 999px; white-space: nowrap;
    box-shadow: 0 6px 16px -6px rgba(0,0,0,0.35); transition: transform .15s ease;
  }
  .child-hero-cta:hover { transform: translateY(-1px); }
  .child-hero-cta:active { transform: scale(.97); }
  @media (max-width: 640px) { .child-hero { padding: 20px; } .child-hero-cta { width: 100%; text-align: center; } }

  /* ---- ۲) نوار کاشی‌های آماری ---- */
  .child-stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
  @media (max-width: 760px) { .child-stats-grid { grid-template-columns: repeat(2, 1fr); } }
  .child-stat-tile {
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
    padding: 18px 12px 15px; text-align: center; display: flex; flex-direction: column; align-items: center;
    gap: 5px; transition: transform .15s ease, box-shadow .15s ease; box-shadow: var(--shadow-xs);
  }
  .child-stat-tile:hover { transform: translateY(-2px); box-shadow: var(--shadow-sm); }
  .child-stat-ico {
    width: 38px; height: 38px; border-radius: 12px; display: flex; align-items: center; justify-content: center;
    font-size: 18px; margin-bottom: 2px;
  }
  .cst-ico-skill  { background: var(--green-tint); }
  .cst-ico-time   { background: var(--lavender-tint); }
  .cst-ico-talent { background: var(--gold-tint); }
  .child-stat-value { font-size: 21px; font-weight: 800; color: var(--ink); }
  .child-stat-caption { font-size: 10.5px; font-weight: 700; color: var(--ink-soft); }
  .mini-progress { width: 100%; height: 5px; border-radius: var(--radius-pill); background: var(--border); overflow: hidden; margin: 2px 0; }
  .mini-progress-fill { height: 100%; border-radius: var(--radius-pill); }

  /* ---- ۳) اطلاعات و یادداشت‌ها ---- */
  .child-info-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
  @media (max-width: 860px) { .child-info-grid { grid-template-columns: 1fr; } }
  .child-info-box {
    display: flex; align-items: flex-start; gap: 11px; background: var(--surface-2);
    border: 1px solid var(--border); border-radius: var(--radius-md); padding: 13px 14px;
  }
  .child-info-box-warn { background: #FBFAF8; border-color: #E7E5DE; }
  .child-info-box-note { background: var(--primary-tint); border-color: var(--primary-light); }
  .child-info-ico { font-size: 17px; flex-shrink: 0; margin-top: 1px; }
  .child-info-box b { display: block; font-size: 11px; font-weight: 800; color: var(--ink-soft); margin-bottom: 3px; }
  .child-info-box span { font-size: 12.5px; color: var(--ink); line-height: 1.7; word-break: break-word; }

  /* ================= نوار پایین موبایل ================= */

  .att-donut-svg { width: 84px; height: 84px; }
  .att-donut-track { fill: none; stroke: var(--border); stroke-width: 9; }

  /* ================= کاشی‌های تاریخچه‌ی حضور و غیاب (پنل اولیا) ================= */
  .att-tile-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; margin-top: 4px; }
  .att-tile {
    display: flex; align-items: center; gap: 10px; padding: 12px 13px;
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md);
    border-inline-start: 3px solid var(--border-strong);
    transition: box-shadow .15s ease, transform .15s ease;
  }
  .att-tile:hover { box-shadow: var(--shadow-xs); transform: translateY(-1px); }
  .att-tile-ico { font-size: 19px; flex-shrink: 0; }
  .att-tile-meta { display: flex; flex-direction: column; gap: 1px; flex: 1; min-width: 0; }
  .att-tile-meta b { font-size: 12.5px; color: var(--ink); font-weight: 700; }
  .att-tile-meta small { font-size: 10.5px; color: var(--ink-faint); }
  .att-tile-status { font-size: 10.5px; font-weight: 800; padding: 3px 9px; border-radius: 999px; flex-shrink: 0; white-space: nowrap; }
  .att-tile-present  { border-inline-start-color: var(--green); }
  .att-tile-present  .att-tile-status { background: var(--green-tint); color: #2F9E6E; }
  .att-tile-absent   { border-inline-start-color: var(--coral); }
  .att-tile-absent   .att-tile-status { background: var(--coral-tint); color: #A63A2F; }
  .att-tile-late     { border-inline-start-color: var(--gold); }
  .att-tile-late     .att-tile-status { background: #FBEEDC; color: #8C5518; }
  .att-tile-excused  { border-inline-start-color: var(--lavender); }
  .att-tile-excused  .att-tile-status { background: var(--lavender-tint); color: var(--lavender); }

  /* ================= پنل ولی: فرزند من — پوسته/اسکلتون/خطا (بازنویسی) ================= */
  .mc-shell { min-height: 220px; }
  .mc-section-title { font-size: 14.5px; font-weight: 800; color: var(--ink); margin: 22px 0 12px; }

  /* ---- نمودار روند رشد (SVG دستی) ---- */
  .mc-trend-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; }
  .mc-trend-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 14px 16px 6px; box-shadow: var(--shadow-xs); }
  .mc-trend-card-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 6px; }
  .mc-trend-card-head span { font-size: 12.5px; font-weight: 800; color: var(--ink); }
  .mc-trend-card-head small { font-size: 10.5px; color: var(--ink-faint); }
  .mc-trend-svg { width: 100%; height: auto; display: block; }
  .mc-trend-line { fill: none; stroke: var(--primary); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
  .mc-trend-area { fill: var(--primary); opacity: .08; }
  .mc-trend-dot { fill: var(--primary); }
  .mc-trend-bar { fill: var(--primary); opacity: .82; }
  .mc-trend-point-label { font-size: 8.5px; font-weight: 700; fill: var(--ink); font-family: inherit; }
  .mc-trend-axis-label { font-size: 8px; fill: var(--ink-faint); font-family: inherit; }
  .mc-trend-empty { font-size: 11.5px; color: var(--ink-faint); text-align: center; padding: 24px 0; }

  /* ---- خلاصه‌ی روایی هفتگی ---- */
  .mc-narrative-card {
    background: linear-gradient(135deg, var(--primary-tint) 0%, var(--surface) 65%);
    border: 1px solid var(--border); border-radius: var(--radius-lg);
    padding: 16px 18px; margin-bottom: 4px;
  }
  .mc-narrative-head { font-size: 12.5px; font-weight: 800; color: var(--primary); margin-bottom: 8px; }
  .mc-narrative-card p { margin: 0; font-size: 13px; line-height: 2; color: var(--ink); }
  .mc-narrative-empty { background: var(--surface-2); }
  .mc-narrative-empty p { color: var(--ink-faint); }

  /* ---- نقشه‌ی فعالیت (شبیه نمودار مشارکت گیت‌هاب) ---- */
  .mc-heatmap-wrap { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; overflow-x: auto; padding-bottom: 4px; }
  .mc-heatmap-grid { display: flex; flex-direction: row-reverse; gap: 3px; }
  .mc-heatmap-col { display: flex; flex-direction: column; gap: 3px; }
  .mc-heatmap-cell { width: 12px; height: 12px; border-radius: 3px; background: var(--surface-2); display: block; }
  .mc-heatmap-cell.mc-heat-future { background: transparent; }
  .mc-heatmap-cell.mc-heat-1 { background: #C7D4F0; }
  .mc-heatmap-cell.mc-heat-2 { background: #8FA6E0; }
  .mc-heatmap-cell.mc-heat-3 { background: var(--primary); }
  .mc-heatmap-legend { display: flex; align-items: center; gap: 4px; font-size: 10.5px; color: var(--ink-faint); }
  .mc-heatmap-legend .mc-heatmap-cell { width: 10px; height: 10px; }

  /* ---- آلبوم کلاس ---- */
  .album-upload-preview { margin-top: 10px; border-radius: var(--radius-md); overflow: hidden; max-width: 260px; }
  .album-upload-preview img { width: 100%; display: block; }
  .album-parent-head { text-align: center; }
  .album-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px; }
  .album-tile { position: relative; border-radius: var(--radius-md); overflow: hidden; background: var(--surface); box-shadow: var(--shadow-xs); display: flex; flex-direction: column; }
  .album-tile-img-wrap { position: relative; aspect-ratio: 1 / 1; overflow: hidden; background: var(--surface-2); }
  .album-tile img { width: 100%; height: 100%; object-fit: cover; cursor: zoom-in; display: block; transition: transform .2s; }
  .album-tile-img-wrap:hover img { transform: scale(1.04); }
  .album-tile-del {
    position: absolute; top: 6px; left: 6px; width: 28px; height: 28px; border: none; border-radius: 50%;
    background: rgba(20,20,20,0.55); color: #fff; font-size: 13px; cursor: pointer; display: flex; align-items: center; justify-content: center;
  }
  .album-tile-info {
    position: absolute; right: 0; left: 0; bottom: 0; padding: 8px 10px 6px;
    background: linear-gradient(0deg, rgba(0,0,0,0.72) 0%, rgba(0,0,0,0) 100%); color: #fff; pointer-events: none;
  }
  .album-tile-info p { font-size: 10.5px; font-weight: 600; margin: 0 0 2px; line-height: 1.4; }
  .album-tile-info span { font-size: 9px; opacity: .85; }
  @media (max-width: 480px) { .album-grid { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; } }

  /* ---- گروه‌بندی آلبومِ ولی: تبِ «کلاس» و تبِ «بچه‌ها» ---- */
  .album-group { margin-bottom: 26px; }
  .album-group:last-child { margin-bottom: 0; }
  .album-group-header { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
  .album-group-icon { font-size: 18px; }
  .album-group-avatar {
    width: 34px; height: 34px; border-radius: 50%; object-fit: cover; flex-shrink: 0;
    border: 2px solid var(--surface); box-shadow: 0 0 0 2px var(--primary-tint);
  }
  .album-group-avatar-fallback { display: flex; align-items: center; justify-content: center; background: var(--primary); color: #fff; font-weight: 800; font-size: 14px; }
  .album-group-avatar-sm { width: 26px; height: 26px; font-size: 11px; }
  .album-group-title { font-size: 14px; font-weight: 800; color: var(--ink); }
  .album-child-subhead { display: flex; align-items: center; gap: 8px; margin: 14px 0 10px; padding-inline-start: 4px; }
  .album-child-subhead-name { font-size: 12.5px; font-weight: 700; color: var(--ink-soft); }
  .album-tile-scope-avatar { display: flex; align-items: center; gap: 5px; padding: 3px 8px 3px 3px; }
  .album-tile-scope-avatar img { width: 18px; height: 18px; border-radius: 50%; object-fit: cover; border: 1px solid rgba(255,255,255,.7); flex-shrink: 0; }

  /* ---- انتخابگر سطح نمایش پست (کلی/کلاس/دانش‌آموز) ---- */
  .album-scope-picker { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 4px 0 18px; }
  .album-scope-btn {
    display: flex; flex-direction: column; align-items: center; gap: 3px; text-align: center;
    border: 2px solid var(--border); background: var(--surface); border-radius: var(--radius-md);
    padding: 14px 8px; cursor: pointer; font-family: inherit; transition: border-color .15s, background .15s, transform .1s;
  }
  .album-scope-btn:hover { transform: translateY(-1px); }
  .album-scope-btn.active { border-color: var(--primary); background: var(--primary-tint); }
  .album-scope-ico { font-size: 20px; }
  .album-scope-btn span:nth-child(2) { font-size: 12px; font-weight: 800; color: var(--ink); }
  .album-scope-btn small { font-size: 9.5px; color: var(--ink-faint); line-height: 1.3; }
  @media (max-width: 420px) { .album-scope-picker { grid-template-columns: 1fr; } .album-scope-btn { flex-direction: row; justify-content: flex-start; padding: 10px 12px; } }

  #albumStudentSelect { width: 100%; border: 1px solid var(--border); border-radius: var(--radius-sm); font-family: inherit; font-size: 12.5px; margin-top: 6px; }

  /* ---- تب‌های فیلترِ سطح در گرید مدیریت (مدیر/مؤسس) ---- */
  .album-filter-tabs { display: flex; gap: 4px; background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius-pill); padding: 3px; }
  .album-filter-tab { border: none; background: transparent; padding: 6px 12px; border-radius: var(--radius-pill); font-size: 11px; font-weight: 700; color: var(--ink-soft); cursor: pointer; font-family: inherit; white-space: nowrap; }
  .album-filter-tab.active { background: var(--surface); color: var(--primary); box-shadow: var(--shadow-xs); }

  .album-tile-scope {
    position: absolute; top: 6px; right: 6px; background: rgba(20,20,20,0.55); color: #fff;
    font-size: 8.5px; font-weight: 700; padding: 3px 7px; border-radius: var(--radius-pill); backdrop-filter: blur(2px);
  }

  /* ---- کارت‌های کلاس (بجای جدول ساده) ---- */
  .class-card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; }
  .class-card {
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
    padding: 16px; box-shadow: var(--shadow-xs); transition: box-shadow .15s, transform .1s;
  }
  .class-card:hover { box-shadow: var(--shadow-sm); transform: translateY(-2px); }
  .class-card-top { display: flex; align-items: center; gap: 12px; }
  .class-ring {
    --pct: 0; width: 56px; height: 56px; border-radius: 50%; flex-shrink: 0; display: flex; flex-direction: column;
    align-items: center; justify-content: center; position: relative;
    background: conic-gradient(var(--ring-color, var(--primary)) calc(var(--pct) * 1%), var(--surface-2) 0);
  }
  .class-ring::before { content: ''; position: absolute; inset: 5px; border-radius: 50%; background: var(--surface); }
  .class-ring-num { position: relative; font-size: 14px; font-weight: 800; color: var(--ink); line-height: 1.1; }
  .class-ring-cap { position: relative; font-size: 8px; color: var(--ink-faint); }
  .class-ring.ring-teal { --ring-color: var(--primary); }
  .class-ring.ring-coral { --ring-color: var(--coral); }
  .class-ring.ring-lavender { --ring-color: var(--lavender); }
  .class-ring.ring-gold { --ring-color: var(--gold); }
  .class-ring.class-ring-full { --ring-color: #C1483C; }
  .class-card-title { min-width: 0; flex: 1; }
  .class-card-title h4 { margin: 0 0 4px; font-size: 14.5px; font-weight: 800; color: var(--ink); }
  .class-card-teacher { display: flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--ink-soft); }
  .class-teacher-avatar {
    width: 20px; height: 20px; border-radius: 50%; background: var(--primary-tint); color: var(--primary);
    font-size: 10px; font-weight: 800; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  }
  .class-card-actions { display: flex; align-items: center; gap: 8px; margin-top: 14px; }
  .class-card-actions .btn-secondary { flex: 1; padding: 9px 10px; font-size: 12px; }
  .class-card-icon-btn {
    width: 34px; height: 34px; border-radius: var(--radius-sm); border: 1px solid var(--border); background: var(--surface);
    cursor: pointer; font-size: 13px; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
    box-shadow: 0 1px 2px rgba(43,42,51,0.04);
    transition: background .15s ease, border-color .15s ease, transform .15s cubic-bezier(.34,1.56,.64,1), box-shadow .15s ease;
  }
  .class-card-icon-btn:hover { background: var(--surface-2); transform: translateY(-1px); box-shadow: 0 3px 8px rgba(43,42,51,0.08); }
  .class-card-icon-btn:active { transform: translateY(0) scale(.94); }
  .class-card-icon-danger:hover { background: var(--coral-tint); border-color: var(--coral); color: var(--coral); }
  .mc-att-empty { grid-column: 1 / -1; text-align: center; padding: 30px; color: var(--ink-faint); font-weight: 600; }

  @keyframes mcShimmer { 0% { background-position: -200px 0; } 100% { background-position: 200px 0; } }
  .mc-skel-block {
    border-radius: 16px;
    background: linear-gradient(90deg, var(--surface-2) 25%, var(--border) 37%, var(--surface-2) 63%);
    background-size: 400px 100%;
    animation: mcShimmer 1.4s ease-in-out infinite;
  }
  .mc-skel-hero { height: 128px; margin-bottom: 14px; }
  .mc-skel-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
  .mc-skel-card { height: 96px; }
  @media (max-width: 640px) { .mc-skel-row { grid-template-columns: 1fr; } }

  .mc-error-box {
    display: flex; flex-direction: column; align-items: center; text-align: center;
    padding: 46px 20px; gap: 6px;
  }
  .mc-error-ico { font-size: 34px; margin-bottom: 6px; }
  .mc-error-box b { font-size: 15px; color: var(--ink); }
  .mc-error-box p { font-size: 13px; color: var(--ink-soft); max-width: 380px; margin: 4px 0 6px; line-height: 1.8; }
  .mc-error-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin-top: 8px; }

  .att-donut-progress { transition: stroke-dashoffset .6s ease; }
  .att-donut-num { font-size: 18px; font-weight: 800; fill: var(--ink); font-family: inherit; }
  .att-donut-label { font-size: 8px; font-weight: 700; fill: var(--ink-soft); font-family: inherit; }

  /* ================= عملیات ردیفی: دکمه‌های تایید/رد ================= */
  .row-actions { display: flex; gap: 6px; flex-wrap: wrap; }
  .icon-btn-success, .icon-btn-danger, .icon-btn-ghost {
    border: 1px solid transparent; border-radius: var(--radius-pill); padding: 6px 13px;
    font-size: 11.5px; font-weight: 700; cursor: pointer; white-space: nowrap;
    transition: filter .15s ease, transform .15s cubic-bezier(.34,1.56,.64,1), box-shadow .15s ease;
    font-family: inherit;
  }
  .icon-btn-success { background: var(--green-tint); color: #2F9E6E; }
  .icon-btn-danger { background: var(--coral-tint); color: #A63A2F; }
  .icon-btn-ghost { background: var(--surface-2); color: var(--ink-soft); border-color: var(--border); padding: 6px 10px; }
  .icon-btn-success:hover, .icon-btn-danger:hover, .icon-btn-ghost:hover { filter: brightness(.95); transform: translateY(-1px); box-shadow: 0 3px 8px rgba(43,42,51,0.1); }
  .icon-btn-success:active, .icon-btn-danger:active, .icon-btn-ghost:active { transform: translateY(0) scale(.94); }
  .status-archived { background: var(--coral-tint); color: #A63A2F; }

  /* ================= اسکلتون لودینگ مینیمال ================= */
  @keyframes skeletonPulse { 0%, 100% { opacity: .5; } 50% { opacity: 1; } }
  .msg-skeleton-wrap { display: flex; flex-direction: column; gap: 4px; padding: 4px; }
  .msg-skeleton-item { display: flex; align-items: center; gap: 10px; padding: 10px; }
  .msg-skeleton-avatar {
    width: 38px; height: 38px; border-radius: 50%; background: var(--surface-2);
    flex-shrink: 0; animation: skeletonPulse 1.3s ease-in-out infinite;
  }
  .msg-skeleton-lines { flex: 1; display: flex; flex-direction: column; gap: 6px; }
  .msg-skeleton-lines span {
    display: block; height: 8px; border-radius: 4px; background: var(--surface-2);
    animation: skeletonPulse 1.3s ease-in-out infinite;
  }
  .msg-skeleton-lines span:first-child { width: 55%; }
  .msg-skeleton-lines span:last-child { width: 80%; }
  .msg-skeleton-thread { display: flex; flex-direction: column; gap: 12px; padding: 4px; }
  .msg-skeleton-thread span {
    display: block; height: 34px; border-radius: 16px; background: var(--surface-2);
    animation: skeletonPulse 1.3s ease-in-out infinite; max-width: 60%;
  }
  .msg-skeleton-thread span:nth-child(1) { align-self: flex-start; width: 45%; }
  .msg-skeleton-thread span:nth-child(2) { align-self: flex-end; width: 55%; }
  .msg-skeleton-thread span:nth-child(3) { align-self: flex-start; width: 35%; }

  /* ================= پرداخت شهریه (ولی) ================= */
  .payment-online-btn { display: block; width: 100%; text-align: center; text-decoration: none; cursor: pointer; font: inherit; border: none; }
  .payment-card-info {
    background: var(--surface-2); border: 1px dashed var(--border-strong);
    border-radius: var(--radius-sm); padding: 12px 14px; font-size: 13px;
    line-height: 1.9; color: var(--ink);
  }
  .receipt-preview { margin-top: 10px; border-radius: var(--radius-sm); overflow: hidden; border: 1px solid var(--border); max-width: 240px; }
  .receipt-preview img { width: 100%; display: block; }
  .payment-request-form .field:last-of-type { margin-bottom: 10px; }
  .payment-settings-form { max-width: 480px; }

  /* ================= اطلاعیه‌ها — فیدِ تایم‌لاینِ عمودی (متفاوت از چیدمانِ کارت-شبکه‌ای) ================= */
  .ann-composer-card { background: linear-gradient(180deg, var(--surface) 0%, var(--primary-tint) 260%); }
  .ann-composer-head { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 16px; }
  .ann-composer-head h3 { margin: 0 0 3px; font-size: 14.5px; }
  .ann-composer-head .sub { margin: 0; font-size: 11.5px; }
  .ann-composer-ico {
    width: 42px; height: 42px; border-radius: 13px; flex-shrink: 0; font-size: 19px;
    background: linear-gradient(135deg, var(--primary), var(--lavender)); color: #fff;
    display: flex; align-items: center; justify-content: center;
  }
  .ann-char-count { text-align: left; direction: ltr; }

  .ann-filter-tabs { display: flex; gap: 4px; background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius-pill); padding: 3px; margin-bottom: 18px; width: fit-content; }
  .ann-filter-tab {
    border: none; background: transparent; padding: 6px 15px; border-radius: var(--radius-pill);
    font-size: 11.5px; font-weight: 700; color: var(--ink-soft); cursor: pointer; font-family: inherit;
    transition: background .15s ease, color .15s ease;
  }
  .ann-filter-tab:hover { color: var(--ink); }
  .ann-filter-tab.active { background: var(--primary); color: #fff; }

  .ann-feed-daygroup { margin-bottom: 6px; }
  .ann-feed-day-label {
    font-size: 11px; font-weight: 800; color: var(--ink-faint); margin: 18px 0 10px 30px;
    text-transform: uppercase; letter-spacing: .03em;
  }
  .ann-feed-daygroup:first-child .ann-feed-day-label { margin-top: 0; }
  .ann-feed-item { display: flex; gap: 0; position: relative; }
  .ann-feed-rail {
    width: 30px; flex-shrink: 0; display: flex; flex-direction: column; align-items: center; position: relative;
  }
  .ann-feed-rail::before {
    content: ''; position: absolute; top: 16px; bottom: -10px; width: 2px; background: var(--border);
  }
  .ann-feed-item:last-child .ann-feed-rail::before { display: none; }
  .ann-feed-dot {
    width: 12px; height: 12px; border-radius: 50%; margin-top: 6px; flex-shrink: 0; z-index: 1;
    border: 2.5px solid var(--surface); box-shadow: 0 0 0 2px var(--border-strong);
  }
  .ann-dot-teal   { background: #2F9E6E; }
  .ann-dot-yellow { background: #A6621F; }
  .ann-dot-coral  { background: #C1483C; }
  .ann-dot-lavender { background: var(--lavender); }

  .ann-feed-body {
    position: relative; flex: 1; min-width: 0; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
    padding: 14px 16px 12px; margin: 0 0 14px 12px; box-shadow: var(--shadow-xs);
    transition: box-shadow .18s ease;
  }
  .ann-feed-body:hover { box-shadow: var(--shadow-sm); }
  .ann-feed-body.is-fresh { border-color: var(--primary-light); }
  /* آواتار فرزندی که این اطلاعیه‌ی خصوصی مخصوص اوست — گوشه‌ی بالای کارت، به‌صورت مدال‌مانند */
  .ann-feed-child-avatar {
    position: absolute; top: -10px; inset-inline-end: 14px; width: 34px; height: 34px; border-radius: 50%;
    overflow: hidden; border: 2px solid var(--surface); box-shadow: 0 3px 8px -2px rgba(43,42,51,.35), 0 0 0 2px var(--coral);
    background: var(--surface-2); display: block;
  }
  .ann-feed-child-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .ann-feed-top { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; flex-wrap: wrap; }
  .ann-feed-time { margin-inline-start: auto; font-size: 10.5px; color: var(--ink-faint); font-variant-numeric: tabular-nums; }
  .ann-new-pill {
    font-size: 9.5px; font-weight: 800; color: #fff; background: var(--primary);
    border-radius: 999px; padding: 2px 9px; letter-spacing: .02em;
  }
  .ann-feed-body h4 { margin: 0 0 4px; font-size: 14px; font-weight: 800; color: var(--ink); line-height: 1.5; }
  .ann-feed-body p { margin: 0; font-size: 13px; line-height: 1.85; color: var(--ink-soft); white-space: pre-line; }
  .ann-feed-bottom { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-top: 10px; margin-top: 10px; border-top: 1px dashed var(--border); }
  .announcement-author { display: flex; align-items: center; gap: 7px; font-size: 11px; color: var(--ink-soft); font-weight: 700; }
  .ann-author-avatar {
    width: 22px; height: 22px; border-radius: 50%; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center; overflow: hidden;
    background: var(--primary-tint); color: var(--primary); font-size: 10.5px; font-weight: 800;
  }
  .ann-author-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block; }
  .mini-scope-badge {
    font-size: 10.5px; font-weight: 700; padding: 4px 10px; border-radius: var(--radius-pill);
    display: inline-flex; align-items: center; gap: 4px;
  }
  .mini-scope-badge.badge-teal     { background: var(--green-tint); color: #2F9E6E; }
  .mini-scope-badge.badge-yellow   { background: var(--gold-tint); color: #A6621F; }
  .mini-scope-badge.badge-coral    { background: var(--coral-tint); color: #A63A2F; }
  .mini-scope-badge.badge-lavender { background: var(--lavender-tint); color: var(--lavender); }

  /* ================= پیام‌رسانی مستقیم ================= */
  .nav-badge { position: relative; }
  .nav-unread-dot {
    position: absolute; top: -1px; inset-inline-end: -1px; width: 9px; height: 9px;
    border-radius: 50%; background: var(--coral); border: 2px solid var(--primary);
  }
  .nav-item.active .nav-unread-dot { border-color: rgba(255,255,255,0.16); }

  .messages-layout {
    display: grid; grid-template-columns: 292px 1fr; gap: 0;
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
    overflow: hidden; height: min(660px, 78vh); box-shadow: var(--shadow-md);
  }
  @media (max-width: 760px) { .messages-layout { grid-template-columns: 1fr; height: auto; } }

  /* ---- ستون مخاطبین: مثل یک برنامه چت واقعی با هدر و جستجو ---- */
  .msg-sidebar {
    display: flex; flex-direction: column; min-height: 0;
    border-inline-end: 1px solid var(--border); background: var(--surface-2);
  }
  @media (max-width: 760px) { .msg-sidebar { max-height: 320px; border-inline-end: none; border-bottom: 1px solid var(--border); } }

  .msg-sidebar-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 14px 16px 10px; flex-shrink: 0;
  }
  .msg-sidebar-title { font-size: 14px; font-weight: 800; color: var(--ink); }
  .msg-sidebar-count {
    font-size: 11px; font-weight: 700; color: var(--ink-soft);
    background: var(--surface); border: 1px solid var(--border); border-radius: 999px;
    padding: 1px 9px; min-width: 20px; text-align: center;
  }

  .msg-search-box {
    display: flex; align-items: center; gap: 8px; margin: 0 12px 10px; padding: 8px 12px;
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-pill);
    flex-shrink: 0; transition: border-color .15s ease, box-shadow .15s ease;
  }
  .msg-search-box:focus-within { border-color: var(--primary-light); box-shadow: 0 0 0 3px var(--primary-tint); }
  .msg-search-box svg { width: 15px; height: 15px; color: var(--ink-faint); flex-shrink: 0; }
  .msg-search-box input {
    border: none; outline: none; background: transparent; font: inherit; font-size: 12.5px;
    color: var(--ink); width: 100%;
  }
  .msg-search-box input::placeholder { color: var(--ink-faint); }

  .msg-contact-list {
    overflow-y: auto; padding: 4px 8px 10px;
    display: flex; flex-direction: column; gap: 2px; min-height: 0; flex: 1;
  }

  .msg-contact-item {
    display: flex; align-items: center; gap: 10px; padding: 9px 8px; border-radius: var(--radius-md);
    background: none; border: none; text-align: right; cursor: pointer; width: 100%;
    font-family: inherit; transition: background .15s ease; min-width: 0;
  }
  .msg-contact-item:hover { background: var(--surface); }
  .msg-contact-item.active { background: var(--surface); box-shadow: var(--shadow-xs); }

  .msg-contact-avatar-wrap { position: relative; flex-shrink: 0; }
  .msg-contact-avatar {
    width: 40px; height: 40px; border-radius: 50%; color: #fff; display: flex;
    align-items: center; justify-content: center; font-weight: 800; flex-shrink: 0; font-size: 14px;
    background: linear-gradient(135deg, var(--primary), var(--lavender));
    box-shadow: 0 2px 6px -1px rgba(43,42,51,0.25); overflow: hidden;
  }
  .msg-contact-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block; }
  .msg-avatar-teacher { background: linear-gradient(135deg, #2F9E6E, #5CB88A); }
  .msg-avatar-manager { background: linear-gradient(135deg, #C1483C, #E2A79E); }
  .msg-avatar-founder { background: linear-gradient(135deg, #A6621F, #F0D2A0); }
  .msg-avatar-parent  { background: linear-gradient(135deg, var(--primary), var(--lavender)); }

  /* آیکن نقش، مثل تیک عضویت کانال روی گوشه‌ی آواتار */
  .msg-role-dot {
    position: absolute; bottom: -2px; inset-inline-end: -2px; width: 16px; height: 16px;
    border-radius: 50%; border: 2px solid var(--surface-2); display: flex; align-items: center; justify-content: center;
    color: #fff;
  }
  .msg-role-dot svg { width: 9px; height: 9px; }
  .msg-role-dot-teacher { background: #2F9E6E; }
  .msg-role-dot-manager { background: #C1483C; }
  .msg-role-dot-founder { background: #A6621F; }
  .msg-role-dot-parent  { background: var(--primary); }
  .msg-thread-header .msg-role-dot { border-color: var(--surface); }

  /* آواتار کوچکِ فرزندی که این گفتگو درباره‌ی اوست — گوشه‌ی مخالفِ آیکونِ نقش */
  .msg-child-badge {
    position: absolute; top: -3px; inset-inline-start: -3px; width: 17px; height: 17px; border-radius: 50%;
    border: 2px solid var(--surface-2); overflow: hidden; display: block; box-shadow: 0 1px 3px rgba(43,42,51,.3);
  }
  .msg-thread-header .msg-child-badge { border-color: var(--surface); }
  .msg-child-badge img { width: 100%; height: 100%; object-fit: cover; display: block; }

  .msg-contact-meta { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 2px; }
  .msg-contact-name-row { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; }
  .msg-contact-name { font-size: 13px; font-weight: 700; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .msg-contact-time { font-size: 10px; color: var(--ink-faint); flex-shrink: 0; font-weight: 600; }
  .msg-contact-last { font-size: 11.5px; color: var(--ink-soft); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .msg-unread-pill {
    background: var(--coral); color: #fff; font-size: 10px; font-weight: 800;
    border-radius: 999px; padding: 2px 7px; min-width: 18px; text-align: center; flex-shrink: 0;
    box-shadow: 0 2px 5px -1px rgba(193,72,60,0.5);
  }

  .msg-thread-panel { display: flex; flex-direction: column; min-width: 0; min-height: 0; background: var(--surface); position: relative; }
  .msg-thread-panel::before {
    content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .5;
    background-image: radial-gradient(var(--border) .6px, transparent .6px);
    background-size: 16px 16px;
  }
  .msg-thread-header {
    display: flex; align-items: center; gap: 10px; padding: 12px 18px; border-bottom: 1px solid var(--border);
    flex-shrink: 0; min-height: 62px; background: var(--surface); position: relative; z-index: 1;
    box-shadow: var(--shadow-xs);
  }
  .msg-thread-header-meta { display: flex; flex-direction: column; gap: 1px; }
  .msg-thread-header-meta strong { font-size: 13.5px; color: var(--ink); }
  .msg-thread-header-meta .sub { margin: 0; font-size: 11px; }

  .msg-thread-body { flex: 1; overflow-y: auto; padding: 18px; display: flex; flex-direction: column; gap: 8px; min-height: 0; position: relative; z-index: 1; }
  .msg-empty-thread { margin: auto; text-align: center; color: var(--ink-soft); font-size: 13px; padding: 20px; }

  .msg-bubble-row { display: flex; width: 100%; }
  .msg-bubble-row.mine { justify-content: flex-start; }
  .msg-bubble-row.theirs { justify-content: flex-end; }
  .msg-bubble {
    max-width: 74%; padding: 10px 14px 17px; border-radius: 17px; font-size: 13px; line-height: 1.75;
    position: relative; word-break: break-word; box-shadow: var(--shadow-xs);
  }
  .msg-bubble-row.mine .msg-bubble { background: var(--primary); color: #fff; border-start-start-radius: 4px; }
  .msg-bubble-row.theirs .msg-bubble { background: var(--surface-2); color: var(--ink); border: 1px solid var(--border); border-end-end-radius: 4px; }
  .msg-bubble-time {
    position: absolute; bottom: 5px; inset-inline-end: 13px; font-size: 9px; opacity: .65;
    display: flex; align-items: center; gap: 3px;
  }
  /* ---- تیکِ وضعیت پیام، مثل تلگرام: یک تیک = ارسال‌شده، دو تیک روشن = دیده‌شده ---- */
  .msg-tick { display: inline-flex; align-items: center; }
  .msg-tick svg { width: 13px; height: 9px; display: block; }
  .msg-tick-sent { opacity: .75; }
  .msg-tick-read svg path { stroke: #6FE0FF; }
  .msg-tick-pending { opacity: .55; }
  .msg-tick-pending svg { width: 9px; height: 9px; animation: msgTickSpin 1.1s linear infinite; }
  @keyframes msgTickSpin { to { transform: rotate(360deg); } }

  .msg-composer-wrap {
    display: flex; align-items: flex-end; gap: 8px; padding: 12px 14px; border-top: 1px solid var(--border);
    flex-shrink: 0; background: var(--surface); position: relative; z-index: 1;
  }
  .msg-composer-wrap textarea {
    flex: 1; resize: none; border: 1px solid var(--border); border-radius: 18px;
    padding: 10px 16px; font: inherit; font-size: 13px; max-height: 100px; background: var(--surface-2);
    line-height: 1.5;
  }
  .msg-composer-wrap textarea:focus { border-color: var(--primary); outline: none; background: var(--surface); }
  .msg-send-btn {
    background: var(--primary); color: #fff; border: none; border-radius: 50%;
    width: 40px; height: 40px; display: flex; align-items: center; justify-content: center;
    cursor: pointer; flex-shrink: 0; transition: background .15s ease, transform .1s ease;
  }
  .msg-send-btn svg { width: 18px; height: 18px; transform: scaleX(-1); }
  .msg-send-btn:hover { background: var(--primary-dark); }
  .msg-send-btn:active { transform: scale(.92); }
  .msg-send-btn:disabled { opacity: .5; cursor: default; }
  .msg-new-badge { color: var(--primary-dark); font-weight: 600; }

  .btn-secondary-sm {
    background: var(--surface-2); color: var(--ink); border: 1px solid var(--border); border-radius: var(--radius-sm);
    padding: 9px 16px; font-size: 12.5px; font-weight: 700; cursor: pointer; font-family: inherit; transition: background .15s ease, border-color .15s ease;
  }
  .btn-secondary-sm:hover { background: var(--surface); border-color: var(--primary); color: var(--primary-dark); }
  .btn-secondary-sm:disabled { opacity: .6; cursor: default; }

  /* ==================================================================
     Skeleton loader عمومی — برای هر لیستی که در حال بارگذاری است
     ================================================================== */
  @keyframes skeletonShimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } }
  .skel-line, .skel-block, .skel-avatar, .skel-photo {
    background: linear-gradient(90deg, var(--surface-2) 25%, var(--border) 37%, var(--surface-2) 63%);
    background-size: 400% 100%;
    animation: skeletonShimmer 1.4s ease infinite;
    border-radius: 8px;
  }
  .skel-line { height: 12px; margin-bottom: 8px; }
  .skel-avatar { width: 40px; height: 40px; border-radius: 50%; flex-shrink: 0; }
  .skel-photo { width: 100%; aspect-ratio: 1/1; border-radius: 14px; }
  .skel-card { display: flex; gap: 10px; align-items: center; padding: 12px; }
  .skel-card .skel-body { flex: 1; }
  .skel-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 10px; }

  /* ==================================================================
     Micro-interactions
     ================================================================== */
  @keyframes likePop { 0% { transform: scale(1); } 35% { transform: scale(1.45) rotate(-8deg); } 60% { transform: scale(.9); } 100% { transform: scale(1); } }
  .like-pop-anim { animation: likePop .45s cubic-bezier(.36,1.6,.4,1); }

  @keyframes heartBurst {
    0% { transform: translate(-50%,-50%) scale(.3); opacity: 1; }
    70% { transform: translate(-50%,-50%) scale(1.6); opacity: .5; }
    100% { transform: translate(-50%,-50%) scale(2.1); opacity: 0; }
  }
  .heart-burst {
    position: absolute; top: 50%; left: 50%; font-size: 42px; pointer-events: none;
    animation: heartBurst .6s ease-out forwards; z-index: 5;
  }

  @keyframes checkPulse { 0% { transform: scale(1); } 40% { transform: scale(1.22); } 100% { transform: scale(1); } }
  .att-check-anim { animation: checkPulse .3s ease; }

  @keyframes successFlash {
    0% { box-shadow: 0 0 0 0 rgba(47,158,110,.55); }
    100% { box-shadow: 0 0 0 18px rgba(47,158,110,0); }
  }
  .upload-success-anim { animation: successFlash .7s ease-out; }

  @keyframes toastPopIn { 0% { transform: translateY(14px) scale(.92); opacity: 0; } 100% { transform: translateY(0) scale(1); opacity: 1; } }
  .micro-toast {
    position: fixed; bottom: 26px; inset-inline-start: 50%; transform: translateX(-50%);
    background: var(--ink); color: #fff; padding: 10px 20px; border-radius: 30px; font-size: 12.5px;
    box-shadow: var(--shadow-md); z-index: 4000; display: flex; align-items: center; gap: 8px;
    animation: toastPopIn .25s cubic-bezier(.2,.9,.3,1.3);
  }
  .micro-toast.success { background: #1F7A50; }

  /* ==================================================================
     لایک / کامنت آلبوم
     ================================================================== */
  .album-card-footer {
    display: flex; align-items: center; gap: 14px; padding: 8px 10px 2px; position: relative;
  }
  .album-like-btn, .album-comment-btn {
    display: flex; align-items: center; gap: 5px; background: none; border: none; cursor: pointer;
    font-size: 12px; color: var(--ink-soft); padding: 4px 6px; border-radius: 10px; transition: color .15s ease, background .15s ease;
  }
  .album-like-btn:hover, .album-comment-btn:hover { background: var(--surface-2); color: var(--ink); }
  .album-like-btn svg, .album-comment-btn svg { width: 17px; height: 17px; }
  .album-like-btn.liked { color: #E0435C; font-weight: 700; }
  .album-like-btn.liked svg path { fill: #E0435C; stroke: #E0435C; }

  .album-comments-panel {
    border-top: 1px solid var(--border); margin-top: 6px; padding: 10px; display: flex; flex-direction: column; gap: 8px;
  }
  .album-comment-item { display: flex; gap: 8px; font-size: 12px; align-items: flex-start; }
  .album-comment-item .ac-avatar {
    width: 26px; height: 26px; border-radius: 50%; background: var(--lavender-tint); color: var(--primary-dark);
    display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 11px; flex-shrink: 0; overflow: hidden;
  }
  .album-comment-item .ac-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block; }
  .album-comment-item .ac-bubble { background: var(--surface-2); border-radius: 12px; padding: 6px 10px; flex: 1; }
  .album-comment-item .ac-name { font-weight: 700; font-size: 11px; color: var(--ink); }
  .album-comment-item .ac-time { font-size: 9.5px; color: var(--ink-soft); margin-inline-start: 6px; }
  .album-comment-item .ac-del { border: none; background: none; color: var(--ink-soft); cursor: pointer; font-size: 10px; padding: 2px 4px; }
  .album-comment-item .ac-del:hover { color: #E0435C; }
  .album-comment-form { display: flex; gap: 6px; }
  .album-comment-form input {
    flex: 1; border: 1px solid var(--border); border-radius: 16px; padding: 7px 12px; font: inherit; font-size: 12px; background: var(--surface-2);
  }
  .album-comment-form input:focus { outline: none; border-color: var(--primary); background: var(--surface); }
  .album-comment-form button {
    background: var(--primary); color: #fff; border: none; border-radius: 14px; padding: 0 14px; font-size: 12px; cursor: pointer;
  }

  /* ==================================================================
     گزارش روزانه فرزند
     ================================================================== */
  .dr-choice-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(90px, 1fr)); gap: 8px; margin-bottom: 14px; }
  .dr-choice-chip {
    border: 1.5px solid var(--border); background: var(--surface); border-radius: 12px; padding: 10px 6px; text-align: center;
    cursor: pointer; font-size: 12px; transition: all .15s ease; display: flex; flex-direction: column; align-items: center; gap: 4px;
  }
  .dr-choice-chip .emoji { font-size: 20px; }
  .dr-choice-chip.active { border-color: var(--primary); background: var(--lavender-tint); color: var(--primary-dark); font-weight: 700; }
  .dr-status-strip { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
  .dr-status-pill {
    font-size: 11px; padding: 5px 10px; border-radius: 20px; border: 1px solid var(--border); cursor: pointer; background: var(--surface);
  }
  .dr-status-pill.filled { background: #E7F5EC; border-color: #9FD7B4; color: #1F7A50; }
  .dr-status-pill.missing { background: #FDECEC; border-color: #F0B6B6; color: #B33A3A; }
  .dr-card { border: 1px solid var(--border); border-radius: 14px; padding: 14px; margin-bottom: 10px; background: var(--surface); }
  .dr-card-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
  .dr-card-date { font-weight: 700; font-size: 13px; color: var(--ink); }
  .dr-tag-row { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
  .dr-tag { font-size: 11.5px; background: var(--surface-2); border-radius: 20px; padding: 4px 10px; }
  .dr-notes { font-size: 12.5px; color: var(--ink-soft); line-height: 1.8; }

  /* ================= احساسات کودک در خانه (ثبت اولیا) ================= */
  .hf-field-label { font-size: 13px; font-weight: 700; color: var(--ink); margin: 16px 0 10px; }
  .hf-field-label:first-of-type { margin-top: 0; }
  .hf-mood-row { display: flex; flex-wrap: wrap; gap: 8px; }
  .hf-mood-btn {
    background: var(--surface-2); border: 1.5px solid var(--border); border-radius: var(--radius-pill);
    padding: 9px 16px; font-size: 13px; font-weight: 600; color: var(--ink); font-family: 'Vazirmatn', sans-serif;
    transition: border-color .15s ease, background .15s ease;
  }
  .hf-mood-btn.active { border-color: var(--gold); background: var(--gold-tint); color: var(--gold-dark); font-weight: 700; }
  .hf-trait-row { display: flex; flex-wrap: wrap; gap: 8px; }
  .hf-trait-chip {
    background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius-pill);
    padding: 7px 14px; font-size: 12.5px; font-weight: 600; color: var(--ink-soft); font-family: 'Vazirmatn', sans-serif;
    transition: border-color .15s ease, background .15s ease, color .15s ease;
  }
  .hf-trait-chip.active { border-color: var(--coral); background: var(--coral-tint); color: #A63A2F; }
  #homeFeedbackContainer textarea { width: 100%; border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 10px 12px; font-family: 'Vazirmatn', sans-serif; font-size: 13px; resize: vertical; }

  /* ==================================================================
     نمودار رادیال/دونات پیشرفت مهارت‌ها (Chart.js)
     ================================================================== */
  .growth-donut-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 14px; margin-bottom: 16px; }
  .growth-donut-card { background: var(--surface); border: 1px solid var(--border); border-radius: 16px; padding: 12px; text-align: center; }
  .growth-donut-card canvas { max-width: 120px; max-height: 120px; margin: 0 auto; }
  .growth-donut-card .gd-label { font-size: 12px; font-weight: 700; margin-top: 6px; color: var(--ink); }
  .growth-donut-card .gd-pct { font-size: 18px; font-weight: 800; color: var(--primary-dark); }
  .growth-donut-wrap { position: relative; }
  .growth-donut-wrap .gd-center-pct {
    position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
    font-size: 15px; font-weight: 800; color: var(--ink);
  }

  /* ==================================================================
     گزارش رشد قابل چاپ — کارت‌ها و فرم
     ================================================================== */
  .gr-status-badge { font-size: 10.5px; padding: 3px 10px; border-radius: 20px; font-weight: 700; }
  .gr-status-badge.st-Draft { background: var(--surface-2); color: var(--ink-soft); }
  .gr-status-badge.st-PendingApproval { background: #FDF3D8; color: #92660B; }
  .gr-status-badge.st-Approved { background: #E7F5EC; color: #1F7A50; }
  .gr-status-badge.st-Rejected, .gr-status-badge.st-RevisionRequested { background: #FDECEC; color: #B33A3A; }
  .gr-report-card { border: 1px solid var(--border); border-radius: 16px; padding: 14px; margin-bottom: 12px; background: var(--surface); }
  .gr-report-card-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; margin-bottom: 8px; }
  .gr-report-title { font-weight: 700; font-size: 14px; }
  .gr-report-sub { font-size: 11px; color: var(--ink-soft); margin-top: 2px; }
  .gr-report-text-preview { font-size: 12.5px; color: var(--ink-soft); line-height: 1.8; margin: 8px 0; max-height: 60px; overflow: hidden; }
  .gr-review-note { background: #FDECEC; border-radius: 10px; padding: 8px 10px; font-size: 12px; color: #B33A3A; margin-top: 8px; }
  .gr-photo-picker { display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 8px; max-height: 220px; overflow-y: auto; padding: 4px; }
  .gr-photo-pick-item { position: relative; border-radius: 10px; overflow: hidden; cursor: pointer; aspect-ratio: 1/1; border: 2px solid transparent; }
  .gr-photo-pick-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .gr-photo-pick-item.selected { border-color: var(--primary); }
  .gr-photo-pick-item .gp-check {
    position: absolute; top: 4px; left: 4px; width: 18px; height: 18px; border-radius: 50%; background: var(--primary);
    color: #fff; font-size: 11px; display: none; align-items: center; justify-content: center;
  }
  .gr-photo-pick-item.selected .gp-check { display: flex; }
  .gr-analytics-strip { display: flex; gap: 10px; margin-bottom: 14px; flex-wrap: wrap; }
  .gr-analytics-box { flex: 1; min-width: 100px; background: var(--surface-2); border-radius: 12px; padding: 10px; text-align: center; }
  .gr-analytics-box .num { font-size: 17px; font-weight: 800; color: var(--primary-dark); }
  .gr-analytics-box .lbl { font-size: 10.5px; color: var(--ink-soft); margin-top: 2px; }

  /* ==================================================================
     ادیتور متن غنی برای نگارش گزارش رشد (بولد/رنگ/کادر)
     ================================================================== */
  .rt-toolbar {
    display: flex; flex-wrap: wrap; gap: 4px; align-items: center; background: var(--surface-2);
    border: 1.5px solid var(--border-strong); border-bottom: none; border-radius: var(--radius-sm) var(--radius-sm) 0 0; padding: 6px;
  }
  .rt-toolbar button {
    background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: 6px 10px;
    font-size: 12px; cursor: pointer; font-family: inherit; color: var(--ink); line-height: 1;
  }
  .rt-toolbar button:hover { background: var(--lavender-tint); border-color: var(--primary); }
  .rt-toolbar .rt-sep { width: 1px; height: 20px; background: var(--border); margin: 0 4px; }
  .rt-toolbar .rt-color-btn { font-weight: 800; }
  .rt-editable {
    width: 100%; min-height: 160px; max-height: 340px; overflow-y: auto; box-sizing: border-box;
    padding: 12px 14px; border-radius: 0 0 var(--radius-sm) var(--radius-sm); border: 1.5px solid var(--border-strong);
    border-top: none; font-family: 'Vazirmatn', sans-serif; font-size: 14px; line-height: 1.9; background: var(--surface);
  }
  .rt-editable:focus { outline: none; border-color: var(--primary); }
  .rt-editable:empty:before { content: attr(data-placeholder); color: var(--ink-faint); }
  .rt-editable .rt-box, .gr-report-text-preview .rt-box {
    display: block; background: var(--lavender-tint); border-right: 4px solid var(--primary);
    border-radius: 8px; padding: 8px 12px; margin: 6px 0;
  }
  /* رنگ‌های مجازِ متن گزارش رشد؛ همین کلاس‌ها عیناً در PDF خروجی (GrowthReport.gs) هم تعریف شده‌اند */
  .rt-color-blue   { color: #4A5DC7; }
  .rt-color-green  { color: #1F7A50; }
  .rt-color-red    { color: #B33A3A; }
  .rt-color-orange { color: #92660B; }
  .gr-report-text-preview p { margin: 0 0 6px; }

