/* ===== ultra-fast-v10-hints ===== */

  img{content-visibility:auto}
  .tab-content,.panel,.card,.section{content-visibility:auto;contain-intrinsic-size:1px 800px}

/* ===== smart-theme-fix-v11 ===== */

/* Smart Theme Fix v11: better contrast for home/menu cards in light and dark mode */
.toggle-btn{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  text-shadow:0 1px 2px rgba(0,0,0,.28);
}
.toggle-btn > *, .toggle-btn span, .toggle-btn i, .toggle-btn svg{
  position:relative;
  z-index:1;
}
body:not(.dark-mode) .toggle-btn{
  background:linear-gradient(90deg, rgba(36,47,71,.96) 0%, rgba(93,107,133,.78) 52%, rgba(244,246,250,.92) 100%) !important;
  color:#172033 !important;
  border:1px solid rgba(20,30,48,.10);
  box-shadow:0 10px 24px rgba(15,23,42,.10);
}
body:not(.dark-mode) .toggle-btn > *,
body:not(.dark-mode) .toggle-btn span,
body:not(.dark-mode) .toggle-btn i,
body:not(.dark-mode) .toggle-btn svg{
  color:#172033 !important;
  fill:currentColor;
  text-shadow:0 1px 1px rgba(255,255,255,.20);
}
body:not(.dark-mode) .toggle-btn::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(255,255,255,.00) 0%, rgba(255,255,255,.00) 58%, rgba(255,255,255,.18) 100%);
  pointer-events:none;
  z-index:0;
}
body.dark-mode .toggle-btn{
  background:linear-gradient(90deg, rgba(33,41,57,.98) 0%, rgba(12,28,49,.96) 58%, rgba(7,48,79,.88) 100%) !important;
  color:#f8fafc !important;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 14px 32px rgba(0,0,0,.34);
}
body.dark-mode .toggle-btn > *,
body.dark-mode .toggle-btn span,
body.dark-mode .toggle-btn i,
body.dark-mode .toggle-btn svg{
  color:#f8fafc !important;
  fill:currentColor;
  text-shadow:0 1px 3px rgba(0,0,0,.52);
}
body.dark-mode .toggle-btn::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(246,196,83,.08) 0%, rgba(76,201,240,.05) 100%);
  pointer-events:none;
  z-index:0;
}

/* ===== schedule-tag-ui-v1 ===== */

.schedule-tag-field{display:flex;flex-direction:column;gap:8px}
.schedule-tag-wrap{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:2px 0}
.schedule-tag-btn{border:none;border-radius:999px;padding:8px 12px;font-weight:900;cursor:pointer;background:rgba(67,97,238,.10);color:var(--text-main);box-shadow:none}
.schedule-tag-btn.active{background:var(--primary);color:#fff;box-shadow:0 10px 22px rgba(67,97,238,.18)}
.schedule-tag-btn.muted{background:rgba(0,0,0,.06);color:var(--text-sec)}
.schedule-tag-help{font-size:.84em;color:var(--text-sec);font-weight:800}
.schedule-date-badge{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;background:rgba(16,185,129,.12);color:#047857;font-weight:900;font-size:.84em}
body.dark-mode .schedule-tag-btn{background:rgba(255,255,255,.08);color:var(--text-main)}
body.dark-mode .schedule-tag-btn.active{background:var(--primary);color:#111827}
body.dark-mode .schedule-tag-btn.muted{background:rgba(255,255,255,.06);color:var(--text-sec)}
body.dark-mode .schedule-date-badge{background:rgba(16,185,129,.18);color:#d1fae5}

/* ===== teacher-login-v3-smart-session ===== */

#teacherLoginScreen{position:fixed;inset:0;z-index:100001;background:radial-gradient(900px 520px at 20% 12%, rgba(67,97,238,.34), transparent 58%),radial-gradient(760px 520px at 85% 18%, rgba(246,196,83,.28), transparent 54%),linear-gradient(135deg, rgba(2,6,23,.86), rgba(15,23,42,.78));backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);display:none;align-items:center;justify-content:center;padding:20px}
#teacherLoginScreen::before{content:"";position:absolute;inset:18px;border:1px solid rgba(255,255,255,.12);border-radius:30px;pointer-events:none}
#teacherLoginScreen .teacher-login-box{width:min(94vw,440px);position:relative;overflow:hidden;background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.76));border:1px solid rgba(255,255,255,.42);border-radius:30px;box-shadow:0 28px 90px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.7);padding:26px;color:#0f172a;animation:ssLoginPop .32s ease both}
body.dark-mode #teacherLoginScreen .teacher-login-box{background:linear-gradient(180deg, rgba(17,24,39,.94), rgba(15,23,42,.80));color:#f8fafc;border-color:rgba(255,255,255,.13)}
#teacherLoginScreen .teacher-login-box::before{content:"";position:absolute;inset:-80px -80px auto auto;width:180px;height:180px;border-radius:999px;background:linear-gradient(135deg, var(--primary), var(--accent));opacity:.20;filter:blur(3px)}
.teacher-login-brand{display:flex;align-items:center;gap:12px;margin-bottom:14px;position:relative;z-index:1}.teacher-login-logo{width:54px;height:54px;border-radius:18px;box-shadow:0 16px 35px rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.4)}.teacher-login-kicker{font-weight:1000;color:var(--primary);font-size:.84rem;letter-spacing:.2px}
#teacherLoginScreen h2{margin:0;font-size:clamp(1.35rem,4vw,1.75rem);font-weight:1000;line-height:1.2;color:inherit}#teacherLoginScreen p{margin:0 0 16px;color:var(--text-sec);font-weight:800;line-height:1.9;position:relative;z-index:1}
.teacher-login-field{position:relative;margin-bottom:11px;z-index:1}.teacher-login-field .teacher-login-ico{position:absolute;right:15px;top:50%;transform:translateY(-50%);font-size:1.05rem;opacity:.72;pointer-events:none}
#teacherLoginScreen .teacher-login-input{width:100%;padding:15px 48px 15px 16px;margin:0;border:1px solid rgba(67,97,238,.18);border-radius:18px;background:rgba(255,255,255,.76);color:inherit;font-weight:900;box-shadow:0 10px 28px rgba(15,23,42,.07);transition:border-color .15s, box-shadow .15s, transform .15s}body.dark-mode #teacherLoginScreen .teacher-login-input{background:rgba(2,6,23,.38);border-color:rgba(255,255,255,.12)}#teacherLoginScreen .teacher-login-input:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(67,97,238,.18);transform:translateY(-1px)}
#teacherLoginScreen .teacher-login-btn{width:100%;padding:15px 16px;border:none;border-radius:18px;background:linear-gradient(90deg,var(--primary),#3f37c9 55%,#7c3aed);color:#fff;font-weight:1000;cursor:pointer;box-shadow:0 16px 35px rgba(67,97,238,.32);position:relative;z-index:1;transition:transform .14s, filter .14s}#teacherLoginScreen .teacher-login-btn:active{transform:scale(.985)}
#teacherLoginScreen .teacher-login-msg{margin-top:12px;min-height:24px;font-weight:900;text-align:center;color:#d32f2f;position:relative;z-index:1}#teacherLoginScreen .teacher-login-demo{margin-top:14px;font-size:.88em;color:var(--text-sec);text-align:center;font-weight:800;position:relative;z-index:1}
.teacher-session-chip{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.teacher-session-name{padding:8px 12px;border-radius:999px;background:rgba(67,97,238,.12);border:1px solid var(--border);font-weight:1000;color:var(--text-main)}.teacher-session-logout{padding:9px 13px;border:none;border-radius:12px;background:#d32f2f;color:#fff;font-weight:1000;cursor:pointer}
@keyframes ssLoginPop{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:520px){#teacherLoginScreen{align-items:flex-start;padding-top:13vh}#teacherLoginScreen .teacher-login-box{border-radius:26px;padding:22px}.teacher-login-logo{width:48px;height:48px}}
.schedule-btn-main{background:linear-gradient(90deg,#0ea5e9,#2563eb)!important;color:#fff;}.schedule-day-badge{display:inline-flex;align-items:center;justify-content:center;min-width:86px;padding:6px 10px;border-radius:999px;background:rgba(37,99,235,.12);color:#1d4ed8;font-weight:900;}body.dark-mode .schedule-day-badge{background:rgba(14,165,233,.18);color:#e0f2fe;}.schedule-card{padding:12px;border:1px solid var(--border);border-radius:14px;background:var(--input-bg);margin-bottom:10px;box-shadow:var(--shadow-card);}.schedule-empty{text-align:center;color:var(--text-sec);font-weight:800;padding:18px 8px;}.schedule-list{display:flex;flex-direction:column;gap:10px;margin-top:10px;}.schedule-row{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;}.schedule-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;}.schedule-mini-btn{border:none;border-radius:10px;padding:8px 12px;font-weight:900;cursor:pointer;}.schedule-mini-del{background:#d32f2f;color:#fff;}.schedule-mini-edit{background:#1d4ed8;color:#fff;}#scheduleManagerCard .settings-input,#scheduleViewModal .settings-input{margin:0;}#scheduleViewModal .modal-content{max-width:760px;}

/* ===== schedule-modern-native-v2 ===== */

.schedule-modern-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;align-items:end;}
.schedule-modern-field{display:flex;flex-direction:column;gap:8px;min-width:0;}
.schedule-modern-label{font-weight:900;color:var(--text-sec);font-size:.92em;padding-inline:2px;}
.schedule-modern-input{width:100%;padding:14px 16px;border-radius:18px;border:1px solid var(--border);background:var(--input-bg);color:var(--text-main);font-weight:800;box-shadow:var(--shadow-card);min-height:54px;}
.schedule-modern-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(59,130,246,.18);outline:none;}
.schedule-modern-note{min-height:110px;resize:vertical;line-height:1.8;}
.schedule-auto-day{display:flex;align-items:center;justify-content:center;min-height:54px;padding:14px 16px;border-radius:18px;background:rgba(67,97,238,.10);color:var(--text-main);font-weight:900;border:1px dashed rgba(67,97,238,.28);text-align:center;}
.schedule-inline-help{margin-top:6px;font-size:.84em;color:var(--text-sec);font-weight:800;line-height:1.8;}
.schedule-date-badge-modern,.schedule-time-badge-modern,.schedule-day-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-weight:900;}
.schedule-date-badge-modern{background:rgba(59,130,246,.12);color:#1d4ed8;}
.schedule-time-badge-modern{background:rgba(16,185,129,.14);color:#047857;}
.schedule-note-box{margin-top:10px;padding:10px 12px;border-radius:14px;background:rgba(15,23,42,.05);color:var(--text-sec);font-weight:700;line-height:1.9;word-break:break-word;}
.schedule-note-link{color:#2563eb !important;text-decoration:none;font-weight:900;word-break:break-word;}
.schedule-note-link:hover{text-decoration:underline;}
body.dark-mode .schedule-note-link{color:#7dd3fc !important;}
@media (max-width:560px){.schedule-modern-grid{grid-template-columns:1fr;}}

/* ===== schedule-grouped-ui-v3 ===== */

.schedule-group-title{font-weight:1000;color:var(--primary);margin:14px 2px 8px;font-size:1.02em}
.schedule-group-box{border:1px solid var(--border);border-radius:16px;padding:10px;background:rgba(67,97,238,.05);margin-bottom:12px}
.schedule-class-group{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.schedule-class-group-title{font-weight:1000;color:var(--primary);font-size:.96em;padding-inline:2px}
.schedule-class-chip-wrap{display:flex;gap:8px;flex-wrap:wrap}
body.dark-mode .schedule-group-box{background:rgba(255,255,255,.04)}

/* ===== ss-expiry-ui-v1 ===== */

.ss-expiry-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-top:10px}
.ss-expiry-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:rgba(245,158,11,.14);color:#b45309;font-weight:900;font-size:.8em}
body.dark-mode .ss-expiry-badge{background:rgba(245,158,11,.18);color:#fde68a}
.ss-inline-muted{font-size:.85em;color:var(--text-sec);font-weight:800}

/* ===== ss-notify-archive-ui-v1 ===== */

.ss-filter-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.ss-filter-chip{border:none;border-radius:999px;padding:8px 12px;font-weight:900;cursor:pointer;background:rgba(67,97,238,.10);color:var(--text-main)}
.ss-filter-chip.active{background:var(--primary);color:#fff;box-shadow:0 8px 18px rgba(67,97,238,.18)}
.ss-archived-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:rgba(107,114,128,.16);color:#4b5563;font-weight:900;font-size:.8em}
body.dark-mode .ss-archived-badge{background:rgba(255,255,255,.12);color:#e5e7eb}

/* ===== ss-admin-cleanup-v2 ===== */

.ss-admin-clean-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:10px}
.ss-admin-clean-btn{
  border:none;border-radius:14px;padding:14px 16px;font-weight:900;cursor:pointer;color:#fff;
  pointer-events:auto !important; touch-action:manipulation; user-select:none; -webkit-tap-highlight-color:transparent;
  position:relative; z-index:5; box-shadow:0 8px 20px rgba(0,0,0,.18);
}
.ss-admin-clean-btn:active{transform:scale(.98)}
.ss-admin-clean-btn.red{background:#d32f2f}
.ss-admin-clean-btn.orange{background:#f57c00}
.ss-admin-clean-btn.blue{background:#1d4ed8}
.ss-admin-clean-btn.gray{background:#6b7280}
.ss-admin-clean-btn.dark{background:#111827}
.ss-admin-clean-help{margin-top:8px;font-size:.85em;color:var(--text-sec);font-weight:800;line-height:1.8}

/* ===== smart-install-button-v1 ===== */

.teacher-install-btn{
  width:100%;margin-top:12px;padding:14px 16px;border:none;border-radius:18px;
  background:linear-gradient(90deg,#10b981,#22c55e);color:#fff;font-weight:1000;cursor:pointer;
  box-shadow:0 14px 30px rgba(16,185,129,.28);position:relative;z-index:1;
}
.teacher-install-btn:active{transform:scale(.985)}
.teacher-install-note{margin-top:8px;text-align:center;font-size:.83em;color:var(--text-sec);font-weight:800;line-height:1.7;position:relative;z-index:1}

/* ===== ss-performance-patch-v1-6-3 ===== */

  /* SmartSchool Performance Patch v1.6.3: faster mobile scrolling/navigation */
  :root{
    --glass-blur: 0px !important;
    --shadow: 0 4px 12px rgba(2,6,23,.10) !important;
    --shadow-strong: 0 6px 18px rgba(2,6,23,.14) !important;
    --shadow-card: 0 4px 12px rgba(2,6,23,.08) !important;
  }

  html{ scroll-behavior:auto !important; }
  body{
    text-rendering: optimizeSpeed;
    -webkit-font-smoothing: antialiased;
    overscroll-behavior: contain;
    touch-action: manipulation;
  }

  /* Heavy glass effects cause visible shaking/jank on many Android browsers. */
  header, .card, .panel, .tabbar, .tabbar-top, .pro-tabbar, .modal-content,
  .content-box, .section-box, .teacher-card, .student-card, .ss-card,
  .ss-select-sheet, .ss-notify-dropdown, #security-screen, #expired-screen,
  #v23UltraModal, #v23UltraModal .v23m-box, .v23-ov, .v23-card, .v24-ov, .v24-card{
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }

  .pro-tabbar, .tabbar, .table-wrapper, .table-container, .ss-log-list,
  #export-overlay, .modal, .v23-card{
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
  }

  button, .btn, .eval-btn, .toggle-btn, .season-btn, .pro-tabbtn,
  input, select, textarea{
    touch-action: manipulation;
  }

  @media (max-width: 768px){
    body{
      background: var(--bg-body) !important;
      padding-left:8px !important;
      padding-right:8px !important;
    }

    /* Keep interactions crisp; remove decorative motion on phones. */
    *, *::before, *::after{
      animation-duration: .001ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: .001ms !important;
      scroll-behavior: auto !important;
    }

    header, .card, .panel, .content-box, .modal-content, .teacher-card,
    .student-card, .ss-card, .tp-card, .v23-card, .v24-card{
      box-shadow: 0 2px 8px rgba(0,0,0,.12) !important;
    }

    .app-logo, .status-pro, .eval-btn, .toggle-btn, .pro-tabbar{
      box-shadow: none !important;
    }

    input, select, textarea{
      font-size:16px !important;
    }

    .container{
      max-width:100% !important;
      contain: layout style;
    }

    .card, .panel, .content-box, .table-container, .teacher-card, .student-card{
      content-visibility:auto;
      contain-intrinsic-size: 1px 360px;
    }

    .pro-tabbar{
      transform: translateZ(0);
      will-change: transform;
    }
  }

  @media (prefers-reduced-motion: reduce){
    *, *::before, *::after{
      animation:none !important;
      transition:none !important;
      scroll-behavior:auto !important;
    }
  }

/* ===== ss-scroll-safe-patch-v1-6-6 ===== */

  /* SmartSchool v1.6.6: Scroll-safe performance patch.
     Keeps the speed improvements, but restores normal Android vertical scrolling. */
  html, body{
    height:auto !important;
    min-height:100% !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    scroll-behavior:auto !important;
    overscroll-behavior-y:auto !important;
    touch-action:pan-y !important;
    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;
  }
  body{
    position:relative !important;
    -webkit-overflow-scrolling:touch !important;
  }
  .container, .app-header, .control-panel, .collapsible-content,
  #gradesPanel, #gradesContainer, .table-wrapper, .table-container,
  .card, .panel, .content-box, .teacher-card, .student-card{
    content-visibility:visible !important;
    contain:none !important;
    transform:none !important;
    will-change:auto !important;
  }
  #gradesPanel, #gradesContainer{
    overflow:visible !important;
    -webkit-overflow-scrolling:touch !important;
  }
  #gradesContainer .table-responsive,
  .table-responsive, .pro-tabbar, .v23-stylebar, .ss-log-list,
  #notesListContainer, .tp-list{
    overflow:auto !important;
    -webkit-overflow-scrolling:touch !important;
    touch-action:pan-x pan-y !important;
    overscroll-behavior:auto !important;
  }
  button, .btn, .eval-btn, .toggle-btn, .season-btn, .pro-tabbtn,
  input, select, textarea{
    touch-action:manipulation !important;
  }
  @media (max-width:900px){
    *, *::before, *::after{
      scroll-behavior:auto !important;
    }
    .app-header, .control-panel, .card, .panel, .content-box, .collapsible-content,
    .table-wrapper, .table-container, #gradesPanel, #gradesContainer,
    .modal-content, .teacher-card, .student-card, .eval-btn, .toggle-btn{
      filter:none !important;
      backdrop-filter:none !important;
      -webkit-backdrop-filter:none !important;
    }
    input, select, textarea, button{ font-size:16px !important; }
  }

/* ===== ss-pinch-zoom-fix-v1 ===== */

/* === Pinch-Zoom Fix: گەورەکردن و بچووکردنەوە ===
   touch-action:pan-y هەمیشە pinch-zoom بلۆک دەکات.
   pan-x pan-y pinch-zoom = هەم scroll هەم pinch-zoom کار دەکات. */
html, body {
  touch-action: pan-x pan-y pinch-zoom !important;
}
/* Buttons and inputs keep manipulation (tap-fast), but don't block parent pinch */
button, .btn, .eval-btn, .toggle-btn, .season-btn, .pro-tabbtn,
input, select, textarea, .ss-nav-btn, .ss-auto-btn {
  touch-action: manipulation !important;
}
/* Scrollable containers keep full pan+pinch */
.table-responsive, .pro-tabbar, .v23-stylebar, .ss-log-list,
#notesListContainer, .tp-list, #gradesContainer, .table-wrapper {
  touch-action: pan-x pan-y pinch-zoom !important;
}

/* ===== ss-qn-print-white-bg-fix-v1 ===== */

/* === Questionnaire Batch Export: shrink page to content, no gray gap === */
.qn-page.qn-page-print-shrink {
  /* Remove fixed A4 dimensions - shrink to content */
  height: auto !important;
  min-height: 0 !important;
  /* Remove card styling */
  border-radius: 0 !important;
  box-shadow: none !important;
  border: none !important;
  /* Full white background */
  background: #ffffff !important;
  overflow: visible !important;
  /* Full width layout */
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  display: block !important;
}
.qn-page.qn-page-print-shrink .qn-page-inner {
  /* Make it a normal block element, not absolute positioned */
  position: static !important;
  inset: auto !important;
  height: auto !important;
  min-height: 0 !important;
  width: 100% !important;
  /* Restore normal flex layout */
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  padding: 12mm 14mm !important;
  box-sizing: border-box !important;
  background: #ffffff !important;
}
.qn-page.qn-page-print-shrink .qn-modern-header,
.qn-page.qn-page-print-shrink .qn-body,
.qn-page.qn-page-print-shrink .qn-section-divider,
.qn-page.qn-page-print-shrink .qn-footer {
  background: #ffffff !important;
  color: #111 !important;
  width: 100% !important;
  max-width: 100% !important;
}
.qn-page.qn-page-print-shrink .qn-body {
  flex: none !important;
  overflow: visible !important;
  min-height: 0 !important;
  height: auto !important;
}

/* === export-container: no padding when showing batch questionnaire pages === */
#export-container .qn-batch-print-wrap {
  background: #ffffff !important;
  padding: 0 !important;
  margin: 0 !important;
  display: block !important;
  width: 100% !important;
}

/* === Questionnaire Print White Background Fix ===
   The gray (bor) that appears in PDF is the app's --bg-main variable leaking into print.
   Force white on all questionnaire print surfaces. */
.qn-page,
.qn-page-inner,
.qn-print-root,
.qn-pages,
.qn-batch-print-wrap,
.qn-modern-header,
.qn-body,
.qn-footer,
.qn-section-divider {
  background: #ffffff !important;
  color: #111111 !important;
}
/* Export container when showing questionnaires */
#export-container .qn-batch-print-wrap,
#export-container .qn-page {
  background: #ffffff !important;
}
@media print {
  .qn-page, .qn-page-inner, .qn-print-root, .qn-pages,
  .qn-batch-print-wrap, .qn-modern-header, .qn-body, .qn-footer {
    background: #ffffff !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
}

/* ===== ss-effort-parent-inline ===== */

/* SmartSchool — Formative Effort Tracking & Smart Parent Contact */
:root{
  --ss-effort-violet:#3B0086;
  --ss-effort-teal:#008B8B;
  --ss-effort-olive:#808000;
  --ss-effort-magenta:#8B008B;
  --ss-effort-brown:#8B4513;
  --ss-effort-gray:#374151;
}
.ss-effort-modal{
  position:fixed; inset:0; z-index:100001; display:none; align-items:center; justify-content:center;
  padding:18px; background:rgba(15,23,42,.55); backdrop-filter:blur(10px); direction:rtl;
}
body.dark-mode .ss-effort-modal{ background:rgba(2,6,23,.78); }
.ss-effort-modal.is-open{display:flex}
.ss-effort-shell{
  width:min(980px,100%); max-height:min(94vh,960px); overflow:hidden; display:flex; flex-direction:column;
  border:1px solid color-mix(in srgb,var(--border) 78%,#22c55e 22%); border-radius:26px;
  background:linear-gradient(180deg,color-mix(in srgb,var(--bg-panel) 96%,#0f172a 4%),var(--bg-panel));
  color:var(--text-main); box-shadow:0 28px 80px rgba(0,0,0,.48);
}
.ss-effort-head{
  position:sticky; top:0; z-index:4; display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:16px 18px; border-bottom:1px solid var(--border); background:color-mix(in srgb,var(--bg-panel) 94%,#0f172a 6%);
}
.ss-effort-head-title{font-size:clamp(1.02rem,3vw,1.32rem);font-weight:1000;line-height:1.35}
.ss-effort-head-sub{margin-top:3px;color:var(--text-sec);font-size:.84rem;font-weight:800}
.ss-effort-close{
  flex:0 0 auto;width:48px;height:48px;border-radius:16px;border:1px solid rgba(239,68,68,.45);
  background:rgba(127,29,29,.18);color:#ef4444;font-size:1.45rem;font-weight:1000;cursor:pointer;
}
.ss-effort-body{overflow:auto;padding:16px;overscroll-behavior:contain}
.ss-effort-student-card{
  border:1px solid var(--border); border-radius:22px; padding:16px; margin-bottom:14px;
  background:linear-gradient(135deg,rgba(59,0,134,.18),rgba(0,139,139,.10));
}
.ss-effort-student-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ss-effort-student-name{font-size:clamp(1.15rem,4vw,1.6rem);font-weight:1000}
.ss-effort-student-meta{color:var(--text-sec);font-weight:800;margin-top:5px}
.ss-effort-badges{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ss-effort-pill{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;border:1px solid var(--border);font-weight:900;background:rgba(255,255,255,.05)}
.ss-effort-term-pill{background:linear-gradient(90deg,#3B0086,#6d28d9);color:#fff;border:none}
.ss-effort-trend.improving{color:#22c55e}.ss-effort-trend.declining{color:#f59e0b}.ss-effort-trend.stable{color:var(--text-sec)}
.ss-effort-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:14px}
.ss-effort-card{border:1px solid var(--border);border-radius:20px;padding:15px;background:rgba(255,255,255,.035)}
.ss-effort-card-title{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-weight:1000;font-size:1.05rem;margin-bottom:12px}
.ss-effort-muted{color:var(--text-sec);font-weight:750;font-size:.88rem;line-height:1.8}
.ss-effort-rubric{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.ss-effort-level{
  min-height:74px;border:none;border-radius:16px;padding:10px 8px;cursor:pointer;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:4px;font-family:inherit;font-weight:1000;box-shadow:inset 0 0 0 1px rgba(255,255,255,.13);
  transition:transform .14s ease,box-shadow .14s ease,opacity .14s ease;
}
.ss-effort-level:hover{transform:translateY(-1px)}
.ss-effort-level.is-selected{box-shadow:0 0 0 3px #fff,0 0 0 6px #22c55e;transform:translateY(-2px)}
.ss-effort-level:disabled{cursor:not-allowed;opacity:.58;transform:none}
.ss-effort-level-score{font-size:.83rem;opacity:.92}
.ss-effort-excused{
  display:flex;align-items:center;gap:10px;margin-top:12px;padding:12px 14px;border-radius:14px;
  background:rgba(55,65,81,.42);border:1px dashed rgba(156,163,175,.6);font-weight:900;
}
.ss-effort-excused input{width:22px;height:22px;accent-color:#22c55e}
.ss-effort-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ss-effort-summary{
  border:1px solid var(--border);border-radius:18px;padding:14px;text-align:center;background:rgba(255,255,255,.035)
}
.ss-effort-summary-label{color:var(--text-sec);font-weight:900;font-size:.9rem}
.ss-effort-summary-number{font-size:2rem;font-weight:1000;margin:7px 0 4px}
.ss-effort-summary-sub{color:var(--text-sec);font-size:.82rem;font-weight:800}
.ss-effort-term-result{margin-top:10px;border-radius:18px;padding:16px;color:#fff;text-align:center;box-shadow:0 14px 34px rgba(0,0,0,.18)}
.ss-effort-term-result strong{display:block;font-size:1.35rem;margin-top:4px}
.ss-effort-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.ss-effort-action{
  border:none;border-radius:14px;padding:12px 15px;font-family:inherit;font-weight:1000;cursor:pointer;text-decoration:none;
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
}
.ss-effort-action.primary{background:linear-gradient(90deg,#16a34a,#22c55e);color:#fff}
.ss-effort-action.secondary{background:#172554;color:#fff;border:1px solid rgba(96,165,250,.28)}
.ss-effort-action.ghost{background:rgba(255,255,255,.05);color:var(--text-main);border:1px solid var(--border)}
.ss-effort-history{margin-top:14px}
.ss-effort-week-row{
  display:grid;grid-template-columns:1.35fr .8fr .7fr;gap:8px;align-items:center;padding:11px 12px;margin-top:8px;
  border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.03)
}
.ss-effort-week-date{font-weight:900}.ss-effort-week-level{font-weight:1000}.ss-effort-week-note{color:var(--text-sec);font-size:.82rem;font-weight:800;text-align:left}
.ss-effort-empty{padding:22px;text-align:center;color:var(--text-sec);font-weight:900;border:1px dashed var(--border);border-radius:16px}
.ss-parent-drawer-backdrop{position:fixed;inset:0;z-index:100003;background:rgba(2,6,23,.74);display:none;direction:rtl}
.ss-parent-drawer-backdrop.is-open{display:block}
.ss-parent-drawer{
  position:absolute;top:0;bottom:0;right:0;width:min(430px,92vw);padding:18px;overflow:auto;
  background:var(--bg-panel);border-left:1px solid var(--border);box-shadow:-24px 0 60px rgba(0,0,0,.45);
}
.ss-parent-drawer-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-bottom:14px;border-bottom:1px solid var(--border)}
.ss-parent-drawer-title{font-size:1.2rem;font-weight:1000}.ss-parent-drawer-close{width:44px;height:44px;border-radius:14px;border:1px solid var(--border);background:rgba(255,255,255,.05);color:var(--text-main);font-size:1.25rem;font-weight:1000}
.ss-parent-card{margin-top:14px;padding:15px;border:1px solid var(--border);border-radius:18px;background:rgba(255,255,255,.035)}
.ss-parent-role{color:var(--text-sec);font-size:.86rem;font-weight:900}.ss-parent-name{font-size:1.12rem;font-weight:1000;margin-top:4px}.ss-parent-phone{direction:ltr;text-align:right;margin-top:6px;color:#22c55e;font-weight:1000}
.ss-parent-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}
.ss-parent-link{padding:11px;border-radius:13px;text-decoration:none;text-align:center;font-weight:1000;color:#fff}
.ss-parent-link.tel{background:#2563eb}.ss-parent-link.wa{background:#16a34a}.ss-parent-link.is-disabled{background:#374151;color:#9ca3af;pointer-events:none}
.ss-effort-level[data-level="peshang"],.ss-effort-term-result[data-level="peshang"]{background:#3B0086;color:#fff}
.ss-effort-level[data-level="peshkewtu"],.ss-effort-term-result[data-level="peshkewtu"]{background:#008B8B;color:#fff}
.ss-effort-level[data-level="mamnawand"],.ss-effort-term-result[data-level="mamnawand"]{background:#808000;color:#fff}
.ss-effort-level[data-level="lawaz"],.ss-effort-term-result[data-level="lawaz"]{background:#8B008B;color:#fff}
.ss-effort-level[data-level="napabend"],.ss-effort-term-result[data-level="napabend"]{background:#8B4513;color:#fff}
.ss-effort-level[data-level="absent"],.ss-effort-term-result[data-level="absent"]{background:#374151;color:#d1d5db}
@media(max-width:760px){
  .ss-effort-modal{padding:0;align-items:stretch}.ss-effort-shell{width:100%;height:100%;max-height:none;border-radius:0;border-left:0;border-right:0}
  .ss-effort-body{padding:12px}.ss-effort-grid{grid-template-columns:1fr}.ss-effort-rubric{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ss-effort-summary-number{font-size:1.65rem}.ss-effort-week-row{grid-template-columns:1fr}.ss-effort-week-note{text-align:right}
}
@media(max-width:420px){.ss-effort-rubric{grid-template-columns:1fr 1fr}.ss-effort-level{min-height:68px}.ss-effort-summary-grid{grid-template-columns:1fr}}

/* V12 — Modern dynamic effort meter and analytics */
.ss-effort-meter-card{border:1px solid color-mix(in srgb,var(--border) 75%,#22c55e 25%);border-radius:20px;padding:14px;background:linear-gradient(145deg,rgba(15,23,42,.16),rgba(255,255,255,.025));overflow:hidden}
.ss-effort-meter-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}
.ss-effort-meter-heading>div:first-child{display:grid;gap:4px}.ss-effort-meter-heading span{color:var(--text-sec);font-size:.84rem;font-weight:850}.ss-effort-meter-heading strong{font-size:1.18rem;font-weight:1000}
.ss-effort-live-score{min-width:74px;padding:10px 12px;text-align:center;border-radius:16px;background:color-mix(in srgb,var(--score-color) 18%,transparent);border:1px solid color-mix(in srgb,var(--score-color) 58%,transparent);color:var(--score-color);font-weight:1000;font-size:1.05rem;direction:ltr}
.ss-effort-meter-wrap{position:relative;padding-top:54px;direction:ltr;margin:0 4px 14px}
.ss-effort-meter-track{height:18px;border-radius:999px;display:grid;grid-template-columns:repeat(6,1fr);overflow:hidden;border:3px solid color-mix(in srgb,var(--bg-panel) 80%,#fff 20%);box-shadow:0 8px 26px rgba(2,6,23,.28),inset 0 1px 0 rgba(255,255,255,.25)}
.ss-effort-meter-segment{display:block;min-width:0}.ss-effort-meter-segment+ .ss-effort-meter-segment{border-left:2px solid rgba(255,255,255,.36)}
.ss-effort-meter-marker{position:absolute;left:var(--marker-left);top:0;transform:translateX(-50%);display:flex;align-items:center;gap:7px;z-index:3;padding:7px 10px;border-radius:14px;background:var(--marker-color);color:#fff;box-shadow:0 10px 28px color-mix(in srgb,var(--marker-color) 46%,transparent);white-space:nowrap;font-weight:1000;animation:ssEffortPinIn .32s ease-out}
.ss-effort-meter-marker:after{content:"";position:absolute;left:50%;bottom:-10px;transform:translateX(-50%);border-left:8px solid transparent;border-right:8px solid transparent;border-top:11px solid var(--marker-color)}
.ss-effort-meter-marker b{display:grid;place-items:center;min-width:28px;height:28px;border-radius:9px;background:rgba(255,255,255,.2);font-size:.9rem}
.ss-effort-meter-scale{display:flex;justify-content:space-between;color:var(--text-sec);font-weight:900;font-size:.76rem;padding:6px 1px 0}
.ss-effort-level-grid-modern{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;direction:rtl}
.ss-effort-level-modern{min-height:64px!important;display:flex!important;flex-direction:row!important;justify-content:flex-start!important;gap:9px!important;text-align:right!important;background:rgba(255,255,255,.035)!important;color:var(--text-main)!important;border:1px solid var(--border)!important;box-shadow:none!important;padding:9px 10px!important}
.ss-effort-level-modern:hover{background:rgba(255,255,255,.075)!important}.ss-effort-level-modern.is-selected{border-color:#22c55e!important;box-shadow:0 0 0 2px rgba(34,197,94,.35),0 12px 26px rgba(2,6,23,.18)!important;transform:translateY(-1px)!important}
.ss-effort-level-dot{width:14px;height:36px;border-radius:999px;flex:0 0 auto;box-shadow:inset 0 1px 1px rgba(255,255,255,.28)}
.ss-effort-level-copy{display:grid;gap:2px;min-width:0}.ss-effort-level-copy strong{font-size:.9rem;line-height:1.25}.ss-effort-level-copy small{font-size:.75rem;color:var(--text-sec);font-weight:850;direction:ltr;text-align:right}
.ss-effort-rings{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ss-effort-ring-card{border:1px solid var(--border);border-radius:20px;padding:14px;text-align:center;background:linear-gradient(160deg,rgba(255,255,255,.055),rgba(255,255,255,.018));box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.ss-effort-ring{position:relative;width:min(150px,90%);aspect-ratio:1;margin:0 auto;border-radius:50%;background:conic-gradient(var(--ring-color) var(--ring-angle),rgba(148,163,184,.18) 0);box-shadow:0 16px 34px rgba(2,6,23,.24)}
.ss-effort-ring:before{content:"";position:absolute;inset:13px;border-radius:50%;background:var(--bg-panel);border:1px solid color-mix(in srgb,var(--border) 80%,transparent)}
.ss-effort-ring-center{position:absolute;inset:22px;z-index:2;display:grid;place-content:center;gap:4px}.ss-effort-ring-center strong{font-size:1.28rem;font-weight:1000;direction:ltr}.ss-effort-ring-center span{font-size:.78rem;color:var(--text-sec);font-weight:900}
.ss-effort-ring-title{margin-top:11px;font-weight:1000}.ss-effort-ring-sub{margin-top:3px;color:var(--text-sec);font-size:.76rem;font-weight:800}
.ss-effort-mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.ss-effort-mini-stats>div{padding:10px 7px;border-radius:15px;border:1px solid var(--border);background:rgba(255,255,255,.025);text-align:center}.ss-effort-mini-stats span{display:block;color:var(--text-sec);font-size:.72rem;font-weight:850;line-height:1.4}.ss-effort-mini-stats strong{display:block;margin-top:4px;font-size:1.05rem;font-weight:1000}
.ss-effort-analytics{margin-top:14px;background:linear-gradient(145deg,rgba(59,0,134,.09),rgba(0,139,139,.06))}
.ss-effort-chart-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.ss-effort-chart-kpis>div{border:1px solid var(--border);border-radius:14px;padding:10px;text-align:center;background:rgba(255,255,255,.028)}.ss-effort-chart-kpis span{display:block;color:var(--text-sec);font-size:.78rem;font-weight:850}.ss-effort-chart-kpis strong{display:block;margin-top:5px;font-size:1.08rem;font-weight:1000;direction:ltr}
.ss-effort-chart-wrap{border:1px solid var(--border);border-radius:18px;padding:10px 8px 7px;background:rgba(2,6,23,.14);overflow:hidden}.ss-effort-line-chart{display:block;width:100%;height:auto;min-height:170px}.ss-effort-chart-guide{stroke:currentColor;opacity:.11;stroke-width:1;stroke-dasharray:5 7}.ss-effort-chart-axis{fill:currentColor;opacity:.58;font-size:13px;font-weight:900}.ss-effort-chart-caption{display:flex;justify-content:space-between;color:var(--text-sec);font-size:.75rem;font-weight:850;padding:0 12px 2px}
@keyframes ssEffortPinIn{from{opacity:0;transform:translate(-50%,8px) scale(.9)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
@media(max-width:760px){.ss-effort-level-grid-modern{grid-template-columns:repeat(2,minmax(0,1fr))}.ss-effort-meter-marker span{max-width:120px;overflow:hidden;text-overflow:ellipsis}.ss-effort-rings{gap:8px}.ss-effort-ring-card{padding:11px 7px}.ss-effort-ring{width:min(132px,96%)}.ss-effort-ring:before{inset:11px}.ss-effort-ring-center{inset:18px}.ss-effort-mini-stats,.ss-effort-chart-kpis{gap:6px}.ss-effort-chart-kpis>div{padding:9px 5px}.ss-effort-line-chart{min-height:150px}}
@media(max-width:420px){.ss-effort-level-grid-modern{grid-template-columns:1fr 1fr}.ss-effort-meter-heading{align-items:flex-start}.ss-effort-live-score{min-width:65px}.ss-effort-meter-marker{font-size:.78rem;padding:6px 8px}.ss-effort-meter-marker b{min-width:24px;height:24px}.ss-effort-ring-center strong{font-size:1.08rem}.ss-effort-ring-title{font-size:.86rem}.ss-effort-ring-sub{font-size:.68rem}.ss-effort-mini-stats span,.ss-effort-chart-kpis span{font-size:.65rem}.ss-effort-chart-kpis strong{font-size:.92rem}}


/* V14 — Kurdistan academic calendar: daily → weekly → monthly → term → annual */
.ss-effort-rings-four{grid-template-columns:repeat(2,minmax(0,1fr))}
.ss-effort-term-compare{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}
.ss-effort-term-compare>div{border:1px solid var(--border);border-radius:15px;padding:11px;text-align:center;background:rgba(255,255,255,.028)}
.ss-effort-term-compare span{display:block;color:var(--text-sec);font-size:.78rem;font-weight:900}
.ss-effort-term-compare strong{display:block;margin-top:5px;font-size:1.05rem;font-weight:1000;direction:ltr}
.ss-effort-mini-stats-five{grid-template-columns:repeat(5,minmax(0,1fr))}
.ss-effort-calendar-note{margin-top:11px;padding:12px 13px;border-radius:15px;border:1px dashed color-mix(in srgb,var(--border) 72%,#22c55e 28%);background:rgba(34,197,94,.065);color:var(--text-sec);font-size:.84rem;font-weight:850;line-height:1.85}
@media(max-width:760px){.ss-effort-mini-stats-five{grid-template-columns:repeat(2,minmax(0,1fr))}.ss-effort-mini-stats-five>div:last-child{grid-column:1/-1}.ss-effort-rings-four{grid-template-columns:1fr 1fr}}
@media(max-width:390px){.ss-effort-rings-four{grid-template-columns:1fr}.ss-effort-term-compare{grid-template-columns:1fr}}


/* ===== ss-school-analytics-style-v23 ===== */

/* SmartSchool V23 — School analytics with smart WhatsApp queue */
#schoolAnalyticsToggleBtn{background:linear-gradient(100deg,#0f766e,#2563eb 52%,#7c3aed);color:#fff;border-color:transparent;box-shadow:0 16px 38px rgba(37,99,235,.2)}
#schoolAnalyticsToggleBtn.open{filter:saturate(1.1);box-shadow:0 18px 44px rgba(124,58,237,.28)}
#schoolAnalyticsPanel{padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;overflow:visible}
.ss-an-shell{direction:rtl;color:var(--text-main);padding:14px 0 28px}
.ss-an-hero{position:relative;overflow:hidden;border:1px solid rgba(99,102,241,.22);border-radius:26px;padding:22px;background:linear-gradient(135deg,rgba(15,118,110,.16),rgba(37,99,235,.15) 48%,rgba(124,58,237,.18));box-shadow:0 18px 55px rgba(15,23,42,.11)}
.ss-an-hero:before,.ss-an-hero:after{content:"";position:absolute;border-radius:999px;filter:blur(2px);pointer-events:none}.ss-an-hero:before{width:190px;height:190px;left:-55px;top:-90px;background:rgba(34,211,238,.18)}.ss-an-hero:after{width:170px;height:170px;right:-65px;bottom:-100px;background:rgba(168,85,247,.2)}
.ss-an-hero-row{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}.ss-an-title{margin:0;font-size:clamp(1.35rem,4vw,2rem);font-weight:1000;line-height:1.55}.ss-an-subtitle{margin-top:5px;color:var(--text-sec);font-weight:800;line-height:1.9}.ss-an-role-chip{padding:9px 13px;border-radius:999px;background:rgba(255,255,255,.2);border:1px solid rgba(99,102,241,.23);font-weight:950;backdrop-filter:blur(10px)}
.ss-an-filters{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:18px}.ss-an-field label{display:block;margin:0 4px 6px;color:var(--text-sec);font-size:.79rem;font-weight:900}.ss-an-select{width:100%;min-height:48px;border:1px solid var(--border);border-radius:15px;padding:10px 12px;background:var(--input-bg);color:var(--text-main);font-weight:900;outline:none}.ss-an-select:focus{border-color:#6366f1;box-shadow:0 0 0 4px rgba(99,102,241,.13)}
.ss-an-updated{position:relative;z-index:1;margin-top:12px;display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;color:var(--text-sec);font-size:.78rem;font-weight:850}.ss-an-refresh{border:1px solid var(--border);border-radius:12px;background:var(--input-bg);color:var(--text-main);padding:8px 12px;font-weight:950;cursor:pointer}.ss-an-refresh:active{transform:scale(.98)}
.ss-an-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-top:14px}.ss-an-kpi{position:relative;overflow:hidden;min-height:126px;border:1px solid var(--border);border-radius:22px;padding:15px;background:var(--bg-panel);box-shadow:0 12px 34px rgba(15,23,42,.08);cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.ss-an-kpi:hover{transform:translateY(-2px);box-shadow:0 17px 40px rgba(15,23,42,.13);border-color:rgba(99,102,241,.35)}.ss-an-kpi:active{transform:scale(.985)}.ss-an-kpi:before{content:"";position:absolute;inset:auto -24px -38px auto;width:95px;height:95px;border-radius:999px;background:var(--an-glow,rgba(99,102,241,.16))}.ss-an-kpi-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.ss-an-kpi-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:14px;background:var(--an-soft,rgba(99,102,241,.12));font-size:1.2rem}.ss-an-kpi-value{margin-top:12px;font-size:clamp(1.55rem,4vw,2.15rem);font-weight:1000;line-height:1;direction:rtl}.ss-an-kpi-label{margin-top:8px;color:var(--text-sec);font-size:.82rem;font-weight:900}.ss-an-kpi small{display:block;margin-top:7px;color:var(--text-sec);font-size:.72rem;font-weight:800}
.ss-an-grid{display:grid;grid-template-columns:minmax(0,1.28fr) minmax(300px,.72fr);gap:14px;margin-top:14px}.ss-an-card{border:1px solid var(--border);border-radius:24px;padding:18px;background:var(--bg-panel);box-shadow:0 14px 40px rgba(15,23,42,.075);min-width:0}.ss-an-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:14px}.ss-an-card-title{font-size:1.1rem;font-weight:1000}.ss-an-card-note{color:var(--text-sec);font-size:.77rem;font-weight:800;margin-top:4px;line-height:1.7}.ss-an-total-chip{padding:7px 11px;border-radius:999px;background:rgba(99,102,241,.12);border:1px solid rgba(99,102,241,.18);font-weight:950;font-size:.8rem}
.ss-an-bars{display:flex;flex-direction:column;gap:10px}.ss-an-bar-row{display:grid;grid-template-columns:minmax(105px,150px) minmax(120px,1fr) minmax(84px,108px);align-items:center;gap:10px;padding:10px 12px;border-radius:16px;cursor:pointer;transition:background .15s ease,box-shadow .15s ease;border:1px solid transparent}.ss-an-bar-row:hover{background:color-mix(in srgb,var(--an-color) 7%,transparent);border-color:color-mix(in srgb,var(--an-color) 22%,transparent);box-shadow:0 4px 16px color-mix(in srgb,var(--an-color) 12%,transparent)}.ss-an-bar-label{display:flex;align-items:center;gap:8px;font-weight:950}.ss-an-dot{width:11px;height:11px;border-radius:999px;box-shadow:0 0 0 4px color-mix(in srgb,var(--an-color) 18%,transparent);background:var(--an-color)}.ss-an-track{height:20px;border-radius:999px;background:color-mix(in srgb,var(--an-color) 10%,rgba(148,163,184,.14));overflow:hidden;position:relative}.ss-an-fill{height:100%;min-width:0;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--an-color) 65%,#fff 35%),var(--an-color),color-mix(in srgb,var(--an-color) 85%,#000 15%));box-shadow:0 0 16px color-mix(in srgb,var(--an-color) 40%,transparent),inset 0 1px 0 rgba(255,255,255,.3);transition:width .55s cubic-bezier(.2,.8,.2,1)}.ss-an-bar-value{text-align:left;font-weight:1000;white-space:nowrap;font-size:.88rem}.ss-an-bar-value span{color:var(--text-sec);font-size:.75rem;font-weight:850}
.ss-an-donut-layout{display:grid;grid-template-columns:minmax(170px,.86fr) minmax(150px,1fr);gap:14px;align-items:center}.ss-an-donut{width:min(220px,88%);aspect-ratio:1;border-radius:50%;margin:auto;position:relative;background:var(--an-donut,conic-gradient(#cbd5e1 0 100%));box-shadow:inset 0 0 0 1px rgba(148,163,184,.16),0 18px 35px rgba(15,23,42,.1)}.ss-an-donut:after{content:"";position:absolute;inset:24%;border-radius:50%;background:var(--bg-panel);box-shadow:0 0 0 1px var(--border)}.ss-an-donut-center{position:absolute;inset:28%;z-index:1;display:grid;place-content:center;text-align:center}.ss-an-donut-center strong{font-size:1.8rem;font-weight:1000}.ss-an-donut-center span{font-size:.73rem;color:var(--text-sec);font-weight:850}.ss-an-legend{display:flex;flex-direction:column;gap:7px}.ss-an-legend-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 9px;border-radius:12px;cursor:pointer}.ss-an-legend-item:hover{background:rgba(99,102,241,.07)}.ss-an-legend-name{display:flex;align-items:center;gap:8px;font-weight:900;font-size:.84rem}.ss-an-legend-count{font-weight:1000;font-size:.8rem}
.ss-an-role-bars{display:flex;flex-direction:column;gap:13px}.ss-an-role-row{display:grid;grid-template-columns:105px 1fr 58px;gap:9px;align-items:center;cursor:pointer}.ss-an-role-name{font-weight:950}.ss-an-role-track{height:12px;background:rgba(148,163,184,.17);border-radius:999px;overflow:hidden}.ss-an-role-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--an-color),color-mix(in srgb,var(--an-color) 65%,#fff));transition:width .45s ease}.ss-an-role-count{text-align:left;font-weight:1000}
.ss-an-insights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.ss-an-insight{border:1px solid var(--border);border-radius:18px;padding:14px;background:linear-gradient(145deg,var(--bg-panel),rgba(99,102,241,.045));min-height:112px}.ss-an-insight-label{color:var(--text-sec);font-size:.76rem;font-weight:900}.ss-an-insight-value{margin-top:9px;font-weight:1000;line-height:1.65}.ss-an-insight-meta{margin-top:4px;color:var(--text-sec);font-size:.74rem;font-weight:800}
.ss-an-empty{padding:34px 12px;text-align:center;border:1px dashed var(--border);border-radius:18px;color:var(--text-sec);font-weight:900;line-height:1.9}.ss-an-footnote{margin-top:12px;padding:10px 12px;border-radius:14px;background:rgba(99,102,241,.07);border:1px solid rgba(99,102,241,.14);color:var(--text-sec);font-size:.77rem;font-weight:800;line-height:1.85}
.ss-an-drawer{position:fixed;inset:0;z-index:100005;display:none;align-items:flex-end;justify-content:center;background:rgba(2,6,23,.58);backdrop-filter:blur(7px);padding:16px}.ss-an-drawer.open{display:flex}.ss-an-sheet{width:min(820px,100%);max-height:min(86vh,880px);display:flex;flex-direction:column;background:var(--bg-panel);color:var(--text-main);border:1px solid var(--border);border-radius:28px 28px 20px 20px;box-shadow:0 30px 90px rgba(0,0,0,.35);overflow:hidden;animation:ssAnSheetIn .2s ease both}.ss-an-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--border);background:linear-gradient(90deg,rgba(15,118,110,.11),rgba(99,102,241,.12))}.ss-an-sheet-title{font-size:1.08rem;font-weight:1000}.ss-an-sheet-sub{margin-top:3px;color:var(--text-sec);font-size:.75rem;font-weight:800}.ss-an-close{width:42px;height:42px;border-radius:14px;border:1px solid rgba(239,68,68,.28);background:rgba(239,68,68,.1);color:#ef4444;font-size:1.25rem;font-weight:1000;cursor:pointer}.ss-an-sheet-body{overflow:auto;padding:14px;overscroll-behavior:contain}.ss-an-detail-list{display:flex;flex-direction:column;gap:9px}.ss-an-detail-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--border);border-radius:17px;padding:12px;background:var(--input-bg);cursor:pointer}.ss-an-detail-row:hover{border-color:rgba(99,102,241,.35)}.ss-an-detail-name{font-weight:1000;line-height:1.6}.ss-an-detail-meta{color:var(--text-sec);font-size:.76rem;font-weight:800;margin-top:4px;line-height:1.65}.ss-an-detail-badge{padding:7px 10px;border-radius:999px;color:#fff;background:var(--an-color,#64748b);font-weight:950;font-size:.78rem;white-space:nowrap}.ss-an-user-row{cursor:default}.ss-an-class-row{cursor:pointer}.ss-an-class-row .ss-an-detail-badge{background:#4f46e5}.ss-an-drawer-search{width:100%;min-height:45px;margin-bottom:10px;border:1px solid var(--border);border-radius:14px;background:var(--input-bg);color:var(--text-main);padding:10px 13px;font-weight:900;outline:none}
@keyframes ssAnSheetIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
body.dark-mode .ss-an-kpi,body.dark-mode .ss-an-card{box-shadow:0 15px 40px rgba(0,0,0,.22)}
@media(max-width:900px){.ss-an-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.ss-an-grid{grid-template-columns:1fr}.ss-an-insights{grid-template-columns:1fr 1fr}.ss-an-donut-layout{grid-template-columns:220px 1fr}}
@media(max-width:620px){.ss-an-shell{padding-top:8px}.ss-an-hero{border-radius:22px;padding:16px}.ss-an-filters{grid-template-columns:1fr}.ss-an-kpis{gap:8px}.ss-an-kpi{min-height:113px;border-radius:18px;padding:13px}.ss-an-card{border-radius:21px;padding:14px}.ss-an-bar-row{grid-template-columns:100px 1fr 75px;gap:7px;padding:7px 4px}.ss-an-bar-label{font-size:.8rem}.ss-an-track{height:14px}.ss-an-donut-layout{grid-template-columns:1fr}.ss-an-donut{width:190px}.ss-an-insights{grid-template-columns:1fr}.ss-an-drawer{padding:0}.ss-an-sheet{max-height:92vh;border-radius:24px 24px 0 0}.ss-an-detail-row{grid-template-columns:1fr}.ss-an-detail-badge{justify-self:start}.ss-an-role-row{grid-template-columns:90px 1fr 48px}}
@media(max-width:390px){.ss-an-kpis{grid-template-columns:1fr 1fr}.ss-an-kpi-value{font-size:1.45rem}.ss-an-kpi-label{font-size:.75rem}.ss-an-bar-row{grid-template-columns:92px 1fr 68px}.ss-an-bar-value{font-size:.82rem}}


/* V22: school structure, analytics and smart WhatsApp queue */
.ss-an-grid-single{grid-template-columns:1fr}
.ss-an-grade-list{display:flex;flex-direction:column;gap:10px}
.ss-an-grade-row{width:100%;display:grid;grid-template-columns:minmax(150px,210px) minmax(130px,1fr) minmax(86px,115px);align-items:center;gap:12px;border:1px solid var(--border);border-radius:17px;padding:12px 13px;background:linear-gradient(135deg,var(--input-bg),rgba(37,99,235,.045));color:var(--text-main);font:inherit;text-align:right;cursor:pointer;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
.ss-an-grade-row:hover{transform:translateY(-1px);border-color:rgba(37,99,235,.35);box-shadow:0 10px 26px rgba(37,99,235,.08)}
.ss-an-grade-title{display:flex;flex-direction:column;gap:4px}.ss-an-grade-title strong{font-weight:1000}.ss-an-grade-title span{color:var(--text-sec);font-size:.75rem;font-weight:850}
.ss-an-grade-track{height:15px;border-radius:999px;background:rgba(148,163,184,.18);overflow:hidden}.ss-an-grade-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#0f766e,#2563eb 58%,#7c3aed);box-shadow:0 6px 18px rgba(37,99,235,.22);transition:width .45s cubic-bezier(.2,.8,.2,1)}
.ss-an-grade-count{text-align:left;font-weight:1000;white-space:nowrap}
.ss-an-subject-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.ss-an-subject-chip{min-height:76px;border:1px solid var(--border);border-radius:17px;padding:12px;background:linear-gradient(145deg,var(--input-bg),rgba(124,58,237,.045));color:var(--text-main);font:inherit;text-align:right;cursor:pointer;display:flex;flex-direction:column;justify-content:center;gap:5px;transition:transform .15s ease,border-color .15s ease}.ss-an-subject-chip:hover{transform:translateY(-1px);border-color:rgba(124,58,237,.34)}.ss-an-subject-chip strong{font-weight:1000;line-height:1.55}.ss-an-subject-chip span{font-size:.73rem;color:var(--text-sec);font-weight:850;line-height:1.55}
.ss-an-more{width:100%;margin-top:11px;border:1px solid rgba(99,102,241,.22);border-radius:14px;background:rgba(99,102,241,.08);color:var(--text-main);padding:10px 12px;font:inherit;font-weight:950;cursor:pointer}.ss-an-more:hover{background:rgba(99,102,241,.13)}
.ss-an-teacher-pulse{display:flex;flex-direction:column;gap:10px}.ss-an-teacher-row{display:grid;grid-template-columns:minmax(135px,210px) 1fr 46px;gap:10px;align-items:center}.ss-an-teacher-name{display:flex;flex-direction:column;gap:3px;min-width:0}.ss-an-teacher-name strong{font-size:.84rem;font-weight:1000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ss-an-teacher-name span{color:var(--text-sec);font-size:.69rem;font-weight:800}.ss-an-teacher-meter{height:11px;border-radius:999px;background:rgba(148,163,184,.18);overflow:hidden}.ss-an-teacher-meter i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#0f766e,#22c55e);transition:width .45s ease}.ss-an-teacher-row>b{text-align:left;font-size:.85rem;font-weight:1000}
@media(max-width:1080px){.ss-an-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.ss-an-grade-row{grid-template-columns:1fr 78px;gap:8px}.ss-an-grade-track{grid-column:1/-1;grid-row:2}.ss-an-grade-count{grid-column:2;grid-row:1}.ss-an-subject-grid{grid-template-columns:1fr}.ss-an-teacher-row{grid-template-columns:minmax(115px,1fr) 74px}.ss-an-teacher-meter{grid-column:1/-1;grid-row:2}.ss-an-teacher-row>b{grid-column:2;grid-row:1}.ss-an-filters{grid-template-columns:1fr}}


/* V22 — Single send + smart batch WhatsApp queue */
.ss-an-sheet-head-main{min-width:0;flex:1}.ss-an-sheet-head-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}.ss-an-batch-header-btn{min-height:42px;border:0;border-radius:14px;padding:9px 13px;background:linear-gradient(135deg,#16a34a,#059669);color:#fff;font-weight:1000;cursor:pointer;box-shadow:0 10px 24px rgba(5,150,105,.22);white-space:nowrap}.ss-an-batch-header-btn:hover{filter:brightness(1.04)}.ss-an-drawer-tools{padding:12px 14px 0}.ss-an-detail-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.ss-an-wa-mini{width:42px;height:42px;display:inline-grid;place-items:center;border:1px solid rgba(37,211,102,.4);border-radius:13px;background:rgba(37,211,102,.14);color:#16a34a;font-size:1.08rem;cursor:pointer;box-shadow:0 7px 18px rgba(22,163,74,.12)}.ss-an-wa-mini:hover{background:#25d366;color:#fff}.ss-an-wa-mini.is-disabled{opacity:.42;filter:grayscale(1);cursor:not-allowed}.ss-an-batch-view{display:flex;flex-direction:column;gap:14px;max-width:720px;margin:0 auto}.ss-an-batch-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.ss-an-step-badge{display:inline-flex;align-items:center;min-height:38px;padding:7px 12px;border-radius:999px;background:rgba(37,99,235,.12);border:1px solid rgba(37,99,235,.22);color:var(--text-main);font-weight:1000}.ss-an-batch-level{display:inline-flex;padding:7px 11px;border-radius:999px;background:var(--an-color,#64748b);color:#fff;font-weight:1000}.ss-an-batch-student,.ss-an-batch-parent{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;align-items:center;border:1px solid var(--border);border-radius:18px;padding:14px;background:var(--input-bg)}.ss-an-batch-student span,.ss-an-batch-parent span{color:var(--text-sec);font-size:.78rem;font-weight:900}.ss-an-batch-student strong,.ss-an-batch-parent strong{font-size:1.05rem;font-weight:1000}.ss-an-batch-student small,.ss-an-batch-parent small{grid-column:2;color:var(--text-sec);font-weight:800}.ss-an-batch-label{font-weight:1000;color:var(--text-main)}.ss-an-batch-textarea{width:100%;resize:vertical;min-height:210px;border:1px solid var(--border);border-radius:18px;background:var(--input-bg);color:var(--text-main);padding:14px;line-height:1.9;font:inherit;font-weight:800;outline:none}.ss-an-batch-textarea:focus{border-color:rgba(37,99,235,.55);box-shadow:0 0 0 4px rgba(37,99,235,.1)}.ss-an-batch-actions{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(130px,.7fr) minmax(150px,.8fr);gap:9px}.ss-an-batch-actions button{min-height:48px;border-radius:15px;padding:10px 12px;font:inherit;font-weight:1000;cursor:pointer}.ss-an-batch-primary{border:0;background:linear-gradient(135deg,#16a34a,#059669);color:#fff;box-shadow:0 12px 26px rgba(5,150,105,.2)}.ss-an-batch-primary:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(1)}.ss-an-batch-secondary{border:1px solid rgba(59,130,246,.28);background:rgba(59,130,246,.1);color:var(--text-main)}.ss-an-batch-tertiary{border:1px solid rgba(239,68,68,.25);background:rgba(239,68,68,.09);color:#ef4444}.ss-an-batch-warning{padding:11px 13px;border-radius:14px;background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.24);font-weight:900;color:var(--text-main)}.ss-an-batch-complete{text-align:center;padding:34px 18px}.ss-an-batch-complete-icon{font-size:3rem}.ss-an-batch-complete h3{margin:10px 0 4px;font-size:1.35rem}.ss-an-batch-complete p{color:var(--text-sec);font-weight:800;margin:0 0 18px}.ss-an-batch-complete .ss-an-batch-primary{min-height:46px;border-radius:15px;padding:10px 18px;font:inherit;font-weight:1000;cursor:pointer}
@media(max-width:700px){.ss-an-sheet-head{align-items:flex-start}.ss-an-sheet-head-actions{width:100%;justify-content:space-between}.ss-an-batch-header-btn{flex:1;white-space:normal;line-height:1.5}.ss-an-detail-row.ss-an-student-row{grid-template-columns:minmax(0,1fr) auto}.ss-an-detail-actions{flex-direction:column;align-items:flex-end}.ss-an-batch-actions{grid-template-columns:1fr}.ss-an-batch-actions button{width:100%}.ss-an-batch-student,.ss-an-batch-parent{grid-template-columns:1fr}.ss-an-batch-student small,.ss-an-batch-parent small{grid-column:1}.ss-an-batch-textarea{min-height:240px}}


/* SmartSchool V23 — dashboard contrast + collision-free drawer header */
/* Global app button rules do not apply safely to dashboard KPI buttons. */
.ss-an-shell,
.ss-an-sheet{
  color:var(--text-main)!important;
}
.ss-an-kpi{
  display:block!important;
  width:100%;
  text-align:right!important;
  color:var(--text-main)!important;
  -webkit-text-fill-color:var(--text-main)!important;
  appearance:none;
}
.ss-an-kpi-top{
  width:100%;
  flex-wrap:nowrap!important;
}
.ss-an-kpi-top > span[aria-hidden="true"]{
  color:var(--text-sec)!important;
  -webkit-text-fill-color:var(--text-sec)!important;
}
.ss-an-kpi-value,
.ss-an-card-title,
.ss-an-total-chip,
.ss-an-bar-label,
.ss-an-bar-value,
.ss-an-donut-center strong,
.ss-an-legend-name,
.ss-an-legend-count,
.ss-an-role-name,
.ss-an-role-count,
.ss-an-insight-value,
.ss-an-grade-title strong,
.ss-an-grade-count,
.ss-an-subject-chip strong,
.ss-an-teacher-name strong,
.ss-an-teacher-row > b,
.ss-an-detail-name,
.ss-an-sheet-title,
.ss-an-batch-student strong,
.ss-an-batch-parent strong,
.ss-an-batch-complete h3{
  color:var(--text-main)!important;
  -webkit-text-fill-color:var(--text-main)!important;
  opacity:1!important;
}
.ss-an-kpi-label,
.ss-an-kpi small,
.ss-an-card-note,
.ss-an-bar-value span,
.ss-an-donut-center span,
.ss-an-insight-label,
.ss-an-insight-meta,
.ss-an-grade-title span,
.ss-an-subject-chip span,
.ss-an-teacher-name span,
.ss-an-detail-meta,
.ss-an-sheet-sub,
.ss-an-batch-student span,
.ss-an-batch-parent span,
.ss-an-batch-student small,
.ss-an-batch-parent small,
.ss-an-batch-complete p{
  color:var(--text-sec)!important;
  -webkit-text-fill-color:var(--text-sec)!important;
  opacity:1!important;
}
body.dark-mode .ss-an-kpi,
body.dark-mode .ss-an-card,
body.dark-mode .ss-an-insight,
body.dark-mode .ss-an-sheet{
  color:#f3efff!important;
}
body.dark-mode .ss-an-kpi-value,
body.dark-mode .ss-an-card-title,
body.dark-mode .ss-an-total-chip,
body.dark-mode .ss-an-bar-label,
body.dark-mode .ss-an-bar-value,
body.dark-mode .ss-an-donut-center strong,
body.dark-mode .ss-an-legend-name,
body.dark-mode .ss-an-legend-count,
body.dark-mode .ss-an-role-name,
body.dark-mode .ss-an-role-count,
body.dark-mode .ss-an-insight-value,
body.dark-mode .ss-an-grade-title strong,
body.dark-mode .ss-an-grade-count,
body.dark-mode .ss-an-subject-chip strong,
body.dark-mode .ss-an-teacher-name strong,
body.dark-mode .ss-an-teacher-row > b,
body.dark-mode .ss-an-detail-name,
body.dark-mode .ss-an-sheet-title{
  color:#f3efff!important;
  -webkit-text-fill-color:#f3efff!important;
}
body.dark-mode .ss-an-kpi-label,
body.dark-mode .ss-an-kpi small,
body.dark-mode .ss-an-card-note,
body.dark-mode .ss-an-bar-value span,
body.dark-mode .ss-an-donut-center span,
body.dark-mode .ss-an-insight-label,
body.dark-mode .ss-an-insight-meta,
body.dark-mode .ss-an-grade-title span,
body.dark-mode .ss-an-subject-chip span,
body.dark-mode .ss-an-teacher-name span,
body.dark-mode .ss-an-detail-meta,
body.dark-mode .ss-an-sheet-sub{
  color:#b9acd6!important;
  -webkit-text-fill-color:#b9acd6!important;
}

/* Drawer header: title and close button always occupy separate cells. */
.ss-an-sheet-head{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center!important;
  gap:12px!important;
  position:relative;
}
.ss-an-sheet-head-main{
  min-width:0!important;
  grid-column:1;
  grid-row:1;
}
.ss-an-sheet-title{
  line-height:1.55!important;
  overflow-wrap:anywhere;
  word-break:normal;
}
.ss-an-sheet-head-actions{
  width:auto!important;
  min-width:42px;
  grid-column:2;
  grid-row:1;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  flex-wrap:nowrap!important;
  gap:9px!important;
}
.ss-an-close{
  flex:0 0 42px!important;
  width:42px!important;
  min-width:42px!important;
  max-width:42px!important;
  height:42px!important;
  min-height:42px!important;
  padding:0!important;
  margin:0!important;
  display:grid!important;
  place-items:center!important;
  line-height:1!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  color:#ef4444!important;
  -webkit-text-fill-color:#ef4444!important;
}

@media(max-width:700px){
  .ss-an-sheet-head{
    grid-template-columns:minmax(0,1fr) 44px!important;
    align-items:start!important;
    padding:15px 14px!important;
  }
  .ss-an-sheet-head-actions{
    display:contents!important;
  }
  .ss-an-close{
    grid-column:2;
    grid-row:1;
    justify-self:end;
  }
  .ss-an-batch-header-btn{
    grid-column:1 / -1;
    grid-row:2;
    width:100%!important;
    max-width:none!important;
    margin-top:10px;
    white-space:normal!important;
    line-height:1.55!important;
  }
  .ss-an-sheet-title{
    padding-inline-end:6px;
    font-size:1rem!important;
  }
  .ss-an-sheet-sub{
    font-size:.72rem!important;
  }
}

/* V28 archived-term comparison */
.ss-an-term-compare{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-top:14px}
.ss-an-term-compare>div{padding:15px 10px;border-radius:16px;background:linear-gradient(145deg,rgba(255,255,255,.76),rgba(241,245,249,.68));border:1px solid rgba(148,163,184,.22);text-align:center;box-shadow:0 8px 24px rgba(15,23,42,.05)}
.ss-an-term-compare span{display:block;color:var(--text-sec,#64748b);font-weight:800;font-size:.78rem;min-height:2.2em}
.ss-an-term-compare strong{display:block;margin-top:8px;color:var(--text-main,#0f172a);font-size:1.22rem}
@media(max-width:800px){.ss-an-term-compare{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-color-scheme:dark){.ss-an-term-compare>div{background:rgba(15,23,42,.72)}.ss-an-term-compare strong{color:#f8fafc}}
body.dark-mode .ss-an-term-compare>div{background:rgba(15,23,42,.72)}body.dark-mode .ss-an-term-compare strong{color:#f8fafc}


/* ===== ss-school-analytics-style-v77 ===== */

/* SmartSchool V77 — teacher aggregate analytics, one chart per teacher */
#schoolAnalyticsPanel{max-width:100%;overflow:visible!important}
#schoolAnalyticsPanel *{box-sizing:border-box}
.ss-an-shell{width:100%;max-width:1440px;margin-inline:auto;padding:18px 8px 36px!important;overflow:hidden;color:var(--text-main)}
.ss-an-shell,.ss-an-card,.ss-an-kpi,.ss-an-insight,.ss-an-hero,.ss-an-smart-card,.ss-an-tab-card{min-width:0}
.ss-an-hero{border-radius:30px!important;padding:24px!important;isolation:isolate;background:linear-gradient(135deg,rgba(14,165,233,.15),rgba(99,102,241,.13) 45%,rgba(168,85,247,.12))!important;box-shadow:0 26px 80px rgba(15,23,42,.13)!important;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.ss-an-kpis{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))!important;gap:14px!important;margin-top:16px!important}
.ss-an-kpi{min-height:132px!important;padding:17px!important;border-radius:24px!important;overflow:hidden!important;background:linear-gradient(145deg,color-mix(in srgb,var(--bg-panel) 92%,#fff 8%),color-mix(in srgb,var(--bg-panel) 98%,#6366f1 2%))!important;box-shadow:0 16px 44px rgba(15,23,42,.09)!important}
.ss-an-kpi-value{font-variant-numeric:tabular-nums;font-feature-settings:'tnum';white-space:nowrap;line-height:1.05!important}
.ss-an-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr))!important;gap:16px!important;margin-top:16px!important;align-items:stretch!important}
.ss-an-grid-single{grid-template-columns:1fr!important}
.ss-an-card{border-radius:28px!important;padding:20px!important;overflow:hidden!important;background:linear-gradient(145deg,color-mix(in srgb,var(--bg-panel) 94%,#fff 6%),color-mix(in srgb,var(--bg-panel) 97%,#2563eb 3%))!important;border:1px solid color-mix(in srgb,var(--border) 80%,#818cf8 20%)!important;box-shadow:0 22px 65px rgba(15,23,42,.10)!important;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.ss-an-card-title{font-size:clamp(1.02rem,1.5vw,1.28rem)!important;line-height:1.55!important;overflow-wrap:anywhere}
.ss-an-card-note{font-size:.82rem!important;line-height:1.9!important}
.ss-an-bars{gap:12px!important}.ss-an-bar-row{grid-template-columns:minmax(125px,170px) minmax(160px,1fr) minmax(92px,120px)!important;gap:12px!important;padding:11px 10px!important}.ss-an-bar-label,.ss-an-bar-value{min-width:0}.ss-an-bar-label span:last-child{overflow-wrap:anywhere;line-height:1.45}.ss-an-bar-value{font-variant-numeric:tabular-nums;font-feature-settings:'tnum';text-align:left!important;white-space:nowrap}
.ss-an-track{height:18px!important}.ss-an-fill{min-width:0!important}
.ss-an-donut-layout{grid-template-columns:minmax(220px,.85fr) minmax(220px,1.15fr)!important;align-items:center!important}.ss-an-donut{width:min(250px,92%)!important;min-width:190px!important}.ss-an-legend{min-width:0}.ss-an-legend-item{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center}.ss-an-legend-name{min-width:0;overflow-wrap:anywhere}.ss-an-legend-count{white-space:nowrap;font-variant-numeric:tabular-nums;font-feature-settings:'tnum'}
.ss-an-insights{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))!important;gap:14px!important}.ss-an-insight{border-radius:22px!important;min-height:126px!important;background:linear-gradient(145deg,color-mix(in srgb,var(--bg-panel) 95%,#06b6d4 5%),color-mix(in srgb,var(--bg-panel) 97%,#7c3aed 3%))!important}
.ss-an-subject-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))!important;gap:12px!important}.ss-an-subject-chip{min-width:0!important;min-height:92px;border-radius:20px!important;overflow:hidden!important}
.ss-an-grade-row{grid-template-columns:minmax(150px,230px) minmax(170px,1fr) minmax(88px,120px)!important;gap:12px!important;min-width:0!important}.ss-an-grade-title,.ss-an-grade-count{min-width:0}.ss-an-grade-count{white-space:nowrap}
.ss-an-role-row{grid-template-columns:minmax(96px,140px) minmax(160px,1fr) minmax(44px,70px)!important}.ss-an-teacher-row{grid-template-columns:minmax(150px,260px) minmax(150px,1fr) minmax(45px,70px)!important;gap:12px!important}.ss-an-teacher-name{min-width:0}.ss-an-teacher-name strong,.ss-an-teacher-name span{overflow-wrap:anywhere}
.ss-an-total-chip{white-space:nowrap}.ss-an-updated span{overflow-wrap:anywhere}.ss-an-select{font-size:.94rem!important;min-width:0!important}
.ss-an-tabs{display:flex;gap:9px;flex-wrap:wrap;margin:14px 0 0}.ss-an-tab-pill{border:1px solid color-mix(in srgb,var(--border) 78%,#818cf8 22%);border-radius:999px;padding:9px 13px;background:rgba(99,102,241,.08);color:var(--text-main);font-weight:950;font-size:.82rem;box-shadow:0 10px 28px rgba(15,23,42,.06)}
.ss-an-modern-band{position:relative;margin-top:16px;border-radius:30px;padding:18px;border:1px solid rgba(129,140,248,.20);background:linear-gradient(135deg,rgba(14,165,233,.09),rgba(124,58,237,.09));overflow:hidden;box-shadow:0 22px 70px rgba(15,23,42,.10)}
.ss-an-modern-band:before{content:"";position:absolute;inset:-120px auto auto -90px;width:260px;height:260px;border-radius:999px;background:rgba(34,211,238,.13);filter:blur(4px);pointer-events:none}.ss-an-modern-band:after{content:"";position:absolute;inset:auto -120px -130px auto;width:300px;height:300px;border-radius:999px;background:rgba(168,85,247,.14);filter:blur(4px);pointer-events:none}.ss-an-modern-band>*{position:relative;z-index:1}
.ss-an-smart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:14px;margin-top:14px}.ss-an-smart-card{position:relative;overflow:hidden;border:1px solid color-mix(in srgb,var(--border) 76%,var(--an-accent,#6366f1) 24%);border-radius:26px;padding:16px;background:linear-gradient(145deg,color-mix(in srgb,var(--bg-panel) 94%,var(--an-accent,#6366f1) 6%),color-mix(in srgb,var(--bg-panel) 98%,#020617 2%));box-shadow:0 20px 56px rgba(15,23,42,.10);transition:transform .18s ease,box-shadow .18s ease}.ss-an-smart-card:hover{transform:translateY(-2px);box-shadow:0 28px 70px rgba(15,23,42,.14)}
.ss-an-smart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.ss-an-smart-name{font-weight:1000;font-size:1.04rem;line-height:1.6}.ss-an-smart-meta{color:var(--text-sec);font-size:.78rem;font-weight:850;line-height:1.8}.ss-an-smart-status{padding:8px 10px;border-radius:999px;background:var(--an-accent,#6366f1);color:#fff;font-weight:1000;font-size:.75rem;white-space:nowrap;box-shadow:0 12px 28px color-mix(in srgb,var(--an-accent,#6366f1) 24%,transparent)}
.ss-an-mini-chart{display:grid;grid-template-columns:120px minmax(0,1fr);gap:13px;align-items:center}.ss-an-mini-donut{width:116px;aspect-ratio:1;border-radius:50%;background:var(--an-donut);position:relative;box-shadow:inset 0 0 0 1px rgba(148,163,184,.18),0 16px 28px rgba(15,23,42,.10)}.ss-an-mini-donut:after{content:"";position:absolute;inset:25%;border-radius:50%;background:var(--bg-panel);box-shadow:0 0 0 1px var(--border)}.ss-an-mini-donut b{position:absolute;inset:0;display:grid;place-content:center;z-index:1;font-size:1.25rem;font-weight:1000;font-variant-numeric:tabular-nums}
.ss-an-stack{display:flex;height:18px;border-radius:999px;background:rgba(148,163,184,.18);overflow:hidden}.ss-an-stack i{display:block;height:100%;min-width:0}.ss-an-smart-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:9px}.ss-an-smart-legend span{display:flex;align-items:center;gap:6px;font-size:.72rem;color:var(--text-sec);font-weight:850;min-width:0;overflow-wrap:anywhere}.ss-an-smart-legend em{width:9px;height:9px;border-radius:999px;background:var(--c);flex:0 0 auto}.ss-an-smart-report{margin-top:12px;padding:12px;border-radius:18px;border:1px solid color-mix(in srgb,var(--border) 75%,var(--an-accent,#6366f1) 25%);background:rgba(99,102,241,.06);line-height:2;font-weight:850;color:var(--text-sec)}.ss-an-smart-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.ss-an-smart-actions button{border:1px solid var(--border);border-radius:14px;padding:10px;background:var(--input-bg);color:var(--text-main);font-weight:950;cursor:pointer}.ss-an-review-box{margin-top:9px;display:grid;gap:7px}.ss-an-review-box textarea{min-height:74px;border-radius:14px;border:1px solid var(--border);background:var(--input-bg);color:var(--text-main);padding:10px;resize:vertical}.ss-an-review-row{display:flex;gap:7px;flex-wrap:wrap}.ss-an-review-row button{flex:1;min-width:110px;border:0;border-radius:13px;padding:10px;color:#fff;font-weight:1000;cursor:pointer}.ss-an-review-ok{background:#16a34a}.ss-an-review-mid{background:#2563eb}.ss-an-review-warn{background:#ea580c}
.ss-an-matrix{display:flex;flex-direction:column;gap:10px}.ss-an-matrix-row{display:grid;grid-template-columns:minmax(160px,260px) minmax(180px,1fr) minmax(74px,105px);gap:12px;align-items:center;padding:12px;border-radius:18px;border:1px solid var(--border);background:rgba(99,102,241,.045);min-width:0}.ss-an-matrix-title{min-width:0}.ss-an-matrix-title strong{display:block;font-weight:1000;line-height:1.55;overflow-wrap:anywhere}.ss-an-matrix-title span{display:block;color:var(--text-sec);font-size:.76rem;font-weight:850;line-height:1.7}.ss-an-matrix-score{text-align:left;font-weight:1000;white-space:nowrap;color:var(--text-sec)}
@media (min-width:1180px){.ss-an-shell{padding-inline:12px!important}.ss-an-card{min-height:320px}.ss-an-grid:first-of-type .ss-an-card{min-height:390px}.ss-an-modern-band{padding:20px}.ss-an-smart-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ss-an-kpis{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
@media (max-width:980px){.ss-an-filters{grid-template-columns:repeat(2,minmax(0,1fr))!important}.ss-an-donut-layout{grid-template-columns:1fr!important}.ss-an-donut{max-width:230px}.ss-an-bar-row,.ss-an-grade-row,.ss-an-role-row,.ss-an-teacher-row,.ss-an-matrix-row{grid-template-columns:1fr!important}.ss-an-bar-value,.ss-an-grade-count,.ss-an-role-count,.ss-an-matrix-score{text-align:right!important}.ss-an-mini-chart{grid-template-columns:1fr}.ss-an-mini-donut{margin:auto}.ss-an-smart-actions{grid-template-columns:1fr}}
@media (max-width:560px){.ss-an-shell{padding-inline:0!important}.ss-an-hero,.ss-an-card,.ss-an-modern-band{border-radius:22px!important;padding:14px!important}.ss-an-filters{grid-template-columns:1fr!important}.ss-an-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}.ss-an-kpi{min-height:118px!important;padding:13px!important}.ss-an-kpi-value{font-size:1.5rem!important}.ss-an-smart-grid{grid-template-columns:1fr}.ss-an-smart-legend{grid-template-columns:1fr}.ss-an-tabs{gap:6px}.ss-an-tab-pill{font-size:.72rem;padding:7px 9px}}

/* ===== ss-v28-term-archive-css ===== */


.ss-term-strip{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:12px 0;padding:12px 14px;border:1px solid color-mix(in srgb,var(--border) 72%,#7c3aed 28%);border-radius:18px;background:linear-gradient(135deg,rgba(124,58,237,.10),rgba(14,165,233,.08));color:var(--text-main)}
.ss-term-strip strong{font-weight:1000}.ss-term-strip small{display:block;color:var(--text-sec);font-weight:750;margin-top:3px}.ss-term-actions{display:flex;gap:8px;flex-wrap:wrap}.ss-term-btn{border:0;border-radius:13px;padding:10px 13px;font-weight:950;cursor:pointer;background:#6d28d9;color:#fff}.ss-term-btn.secondary{background:var(--input-bg);color:var(--text-main);border:1px solid var(--border)}
.ss-term-view-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.ss-term-view-tabs button{border:1px solid var(--border);background:var(--input-bg);color:var(--text-main);padding:9px 13px;border-radius:999px;font-weight:900}.ss-term-view-tabs button.active{background:linear-gradient(135deg,#5b21b6,#2563eb);color:#fff;border-color:transparent}
.ss-official-score-card{margin:12px 0;padding:14px;border-radius:20px;border:1px solid var(--border);background:linear-gradient(135deg,rgba(59,0,134,.10),rgba(0,139,139,.10))}.ss-official-score-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:10px}.ss-official-score-grid>div{padding:11px;border-radius:15px;background:var(--input-bg);border:1px solid var(--border);text-align:center}.ss-official-score-grid span{display:block;color:var(--text-sec);font-weight:800;font-size:.82rem}.ss-official-score-grid strong{display:block;margin-top:4px;font-size:1.15rem;color:var(--text-main)}
@media(max-width:650px){.ss-official-score-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ss-term-strip{align-items:stretch}.ss-term-actions{width:100%}.ss-term-btn{flex:1}}

/* V28 term archive, official 40-mark effort and comparison */
.ss-term-view-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}
.ss-term-view-tabs button{border:1px solid rgba(99,102,241,.22);border-radius:14px;padding:11px 8px;background:rgba(255,255,255,.58);color:var(--text-main,#172033);font-weight:900;cursor:pointer;transition:transform .15s ease,background .15s ease,color .15s ease}
.ss-term-view-tabs button.active{background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff;border-color:transparent;box-shadow:0 9px 24px rgba(79,70,229,.23)}
.ss-official-score{border-color:rgba(59,130,246,.22)!important;background:linear-gradient(135deg,rgba(37,99,235,.08),rgba(124,58,237,.08))!important}
.ss-official-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}
.ss-official-grid>div{padding:14px 10px;border-radius:16px;background:rgba(255,255,255,.62);border:1px solid rgba(148,163,184,.25);text-align:center}
.ss-official-grid span{display:block;color:var(--text-sec,#64748b);font-size:.82rem;font-weight:800;margin-bottom:6px}
.ss-official-grid strong{font-size:1.25rem;color:var(--text-main,#111827)}
.ss-official-grid .total{background:linear-gradient(135deg,var(--primary),var(--primary-mid,var(--primary)));border-color:transparent}
.ss-official-grid .total span,.ss-official-grid .total strong{color:#fff}
.ss-term-comparison{background:linear-gradient(145deg,rgba(255,255,255,.74),rgba(238,242,255,.7))!important}
.ss-compare-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}
.ss-compare-grid>div{padding:17px 12px;border-radius:18px;text-align:center;border:1px solid rgba(148,163,184,.22);background:rgba(255,255,255,.68)}
.ss-compare-grid span,.ss-compare-grid small{display:block;color:var(--text-sec,#64748b);font-weight:800}
.ss-compare-grid strong{display:block;font-size:1.65rem;margin:7px 0;color:var(--text-main,#111827)}
.ss-compare-grid .term-one{box-shadow:inset 0 3px #3b82f6}.ss-compare-grid .term-two{box-shadow:inset 0 3px #7c3aed}.ss-compare-grid .delta{box-shadow:inset 0 3px #0f766e}
.ss-compare-bars{display:grid;gap:10px;margin-top:16px}.ss-compare-bars>div{display:grid;grid-template-columns:110px 1fr;gap:10px;align-items:center;font-weight:900;color:var(--text-main,#111827)}
.ss-compare-bars i{height:13px;border-radius:999px;background:rgba(148,163,184,.18);overflow:hidden}.ss-compare-bars b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2563eb,#7c3aed)}
@media(max-width:650px){.ss-official-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ss-compare-grid{grid-template-columns:1fr}.ss-term-view-tabs button{font-size:.86rem}.ss-compare-bars>div{grid-template-columns:92px 1fr}}
@media(prefers-color-scheme:dark){.ss-term-view-tabs button,.ss-official-grid>div,.ss-compare-grid>div{background:rgba(15,23,42,.72);color:#e5e7eb}.ss-official-grid strong,.ss-compare-grid strong,.ss-compare-bars>div{color:#f8fafc}.ss-term-comparison{background:linear-gradient(145deg,rgba(15,23,42,.84),rgba(30,41,59,.8))!important}}
body.dark-mode .ss-term-view-tabs button,body.dark-mode .ss-official-grid>div,body.dark-mode .ss-compare-grid>div{background:rgba(15,23,42,.72);color:#e5e7eb}
body.dark-mode .ss-official-grid strong,body.dark-mode .ss-compare-grid strong,body.dark-mode .ss-compare-bars>div{color:#f8fafc}


/* ===== v30-modal-nav-font-fix ===== */

/* SmartSchool V30 — modal nav hide + modern safe typography */
.pro-tabbar{transition:transform .18s ease,opacity .18s ease,box-shadow .18s ease;}
body.ss-overlay-nav-hidden .pro-tabbar{
  transform:translateY(calc(100% + 18px));
  opacity:0;
  pointer-events:none;
  box-shadow:none;
}
@media (max-width:768px){
  body.ss-overlay-nav-hidden #settingsPanel .pro-tabs{padding-bottom:0 !important;}
}
body{
  text-rendering:optimizeLegibility;
  line-height:1.65;
}
.app-title,
.pro-title,
.class-title,
#reportModal .ss-report-modal-toolbar-title,
.ss-br-report-header h2,
#historyHeaderTarget{
  line-height:1.36;
  letter-spacing:-0.01em;
}
.pro-card,
.modal-content,
#reportModal .ss-report-modal-content,
.result-summary-box,
.board,
.control-panel,
.glass-card,
.glass-panel{
  border-radius:18px;
}
.pro-tabbtn,
.backup-btn,
.restore-btn,
.settings-save-btn,
.toggle-btn,
.board-docs-btn,
.pro-upload,
.pro-whatsapp{
  font-weight:850;
  letter-spacing:0;
}
.pro-tabbtn{min-height:58px;}
.pro-txt{line-height:1.12;}
.app-subtitle,
.pro-hint,
.pro-footnote,
.ss-br-note-text,
.ss-br-report-section p{
  line-height:1.78;
}
#reportContent,
#historyList,
#historyResultBox,
#scheduleViewList,
.modal-content{
  overflow-wrap:anywhere;
  word-break:break-word;
}
@media (max-width:768px){
  .pro-tabbtn{
    min-width:72px;
    min-height:62px;
    padding:9px 8px;
    border-radius:15px;
  }
  .pro-txt{font-size:clamp(.64rem,2.45vw,.76rem);}
  .pro-ic{font-size:1.05rem;}
  .ss-br-report-grid,
  .ss-br-form,
  .ss-br-metrics{grid-template-columns:1fr !important;}
  .ss-br-report-grid>div,
  .ss-br-form>*{min-width:0;}
}
body.ss-font-large .app-title{font-size:clamp(1.04rem,3vw,1.28rem);}
body.ss-font-xlarge .app-title{font-size:clamp(.98rem,2.8vw,1.18rem);}
body.ss-font-large .app-subtitle,
body.ss-font-xlarge .app-subtitle{
  white-space:normal;
  max-width:100%;
  line-height:1.5;
}
body.ss-font-large .pro-tabbtn,
body.ss-font-xlarge .pro-tabbtn{
  min-width:74px;
  padding:9px 7px;
}
body.ss-font-large .pro-txt{font-size:.68rem;}
body.ss-font-xlarge .pro-txt{font-size:.64rem;}
body.ss-font-large .toggle-btn,
body.ss-font-xlarge .toggle-btn,
body.ss-font-large .backup-btn,
body.ss-font-large .restore-btn,
body.ss-font-large .settings-save-btn,
body.ss-font-xlarge .backup-btn,
body.ss-font-xlarge .restore-btn,
body.ss-font-xlarge .settings-save-btn,
body.ss-font-xlarge .toggle-btn{
  font-size:1rem;
  line-height:1.32;
}
body.ss-font-large table,
body.ss-font-xlarge table{font-size:.92em;}
body.ss-font-large .ss-br-report-grid strong,
body.ss-font-xlarge .ss-br-report-grid strong{font-size:1rem;}
body.ss-font-large .ss-br-report-grid span,
body.ss-font-xlarge .ss-br-report-grid span{font-size:.78rem;}


/* V31 export toolbar simplification */
#export-overlay .btn-pdf,
#export-overlay .btn-word,
#export-overlay .btn-png,
#export-overlay .export-btn-fast,
#export-overlay .btn-edit,
#export-overlay .btn-cancel{display:none !important;}
#export-overlay .export-toolbar{justify-content:flex-end;gap:10px;}
#export-overlay .export-toolbar .btn-close{order:3;}
#export-overlay .export-toolbar .btn-print{order:2;}
#export-overlay .export-toolbar .btn-excel{order:1;}

/* ===== ss-v42-subject-left-second-line-style ===== */

.v23hdr .v23left{ text-align:left !important; direction:rtl !important; }
.v23hdr .v23left>div{ text-align:left !important; direction:rtl !important; unicode-bidi:plaintext; }

/* ===== ss-v82-teacher-aggregate-css ===== */

/* V82: one aggregate chart/report per teacher with upward column chart */
.ss-an-smart-grid.teacher-aggregate{grid-template-columns:repeat(auto-fit,minmax(min(100%,430px),1fr));align-items:stretch}
.ss-an-smart-card.teacher-aggregate{min-height:0}
.ss-an-smart-card.teacher-aggregate .ss-an-mini-chart{display:grid;grid-template-columns:minmax(190px,240px) minmax(0,1fr);gap:14px;align-items:center;margin-top:12px}
.ss-an-scope-chips{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 2px}.ss-an-scope-chip{padding:7px 10px;border-radius:999px;background:rgba(99,102,241,.09);border:1px solid rgba(99,102,241,.16);font-size:.75rem;font-weight:950;color:var(--text-main)}
.ss-an-scope-list{display:grid;gap:6px;margin-top:10px;padding:10px 12px;border-radius:16px;background:rgba(148,163,184,.08);border:1px solid var(--border);color:var(--text-sec);font-size:.78rem;font-weight:850;line-height:1.8}.ss-an-scope-list b{color:var(--text-main)}
.ss-an-mini-vbars{padding:12px 12px 8px;border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(2,6,23,.02));border:1px solid rgba(99,102,241,.14);box-shadow:0 14px 32px rgba(15,23,42,.10)}
.ss-an-mini-vbars-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.ss-an-mini-vbars-head strong{font-size:.8rem;font-weight:950;color:var(--text-main)}.ss-an-mini-vbars-head span{font-size:.7rem;font-weight:900;color:var(--text-sec)}
.ss-an-vbars{height:190px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;align-items:end;padding:10px 4px 0;border-bottom:1px dashed rgba(148,163,184,.18)}
.ss-an-vbar-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:0}
.ss-an-vbar-num{font-size:.72rem;font-weight:1000;color:var(--text-main);margin-bottom:6px;font-variant-numeric:tabular-nums;line-height:1}
.ss-an-vbar-track{width:100%;height:142px;display:flex;align-items:flex-end;justify-content:center;background:linear-gradient(180deg,rgba(148,163,184,.03),rgba(148,163,184,.08));border-radius:16px 16px 10px 10px;padding:0 3px;overflow:hidden}
.ss-an-vbar{width:100%;min-height:6px;border-radius:12px 12px 6px 6px;box-shadow:0 8px 18px rgba(15,23,42,.16),inset 0 1px 0 rgba(255,255,255,.28);transition:transform .18s ease,filter .18s ease}
.ss-an-vbar:hover{transform:translateY(-2px);filter:brightness(1.04)}
.ss-an-vbar-label{font-size:.68rem;font-weight:900;color:var(--text-sec);margin-top:7px;text-align:center;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.ss-an-vbar-label span{display:block;font-size:.62rem;margin-top:2px}.ss-an-vbar-label b{display:block;color:var(--text-main);font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(min-width:1180px){.ss-an-smart-grid.teacher-aggregate{grid-template-columns:repeat(2,minmax(0,1fr))}.ss-an-smart-grid.teacher-aggregate>.ss-an-smart-card:only-child{grid-column:1/-1}}
@media(max-width:720px){.ss-an-smart-card.teacher-aggregate .ss-an-mini-chart{grid-template-columns:1fr}.ss-an-scope-chips{gap:6px}.ss-an-scope-chip{font-size:.7rem}.ss-an-vbars{height:176px;gap:6px}.ss-an-vbar-track{height:128px}.ss-an-vbar-label{font-size:.61rem}}
