/* ===== css/00-connection-status.css ===== */
.ss-conn-banner{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:99999;
  text-align:center;
  padding:7px 10px;
  font-weight:900;
  font-size:.92em;
  display:none;
  box-shadow:0 2px 8px rgba(0,0,0,.15);
  transition:background-color .25s ease;
}
.ss-conn-banner.ss-conn-offline{ background:#d32f2f; color:#fff; }
.ss-conn-banner.ss-conn-syncing{ background:#f9a825; color:#1a1a1a; }
.ss-conn-banner.ss-conn-online{ background:#2e7d32; color:#fff; }

/* ===== css/01-ss-behavior-rehabilitation-inline.css ===== */
/* ===== ss-behavior-rehabilitation-inline ===== */

/* SmartSchool — Multi-Tier Behavior Rehabilitation Workflow */
.ss-br-tabs{display:flex;gap:8px;align-items:center;overflow-x:auto;padding:2px 0 12px;margin-bottom:12px;border-bottom:1px solid var(--border);scrollbar-width:thin}
.ss-br-tab{flex:0 0 auto;border:1px solid var(--border);background:var(--input-bg);color:var(--text-main);padding:11px 14px;border-radius:14px;font-family:inherit;font-weight:950;cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:transform .14s ease,border-color .14s ease,background .14s ease}
.ss-br-tab:active{transform:scale(.98)}
.ss-br-tab.active{background:linear-gradient(100deg,var(--primary),#7c3aed);border-color:transparent;color:#fff;box-shadow:0 10px 24px rgba(67,97,238,.2)}
.ss-br-tab-count{min-width:23px;height:23px;padding:0 6px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.18);font-size:.78em}
.ss-br-shell{direction:rtl;text-align:right;color:var(--text-main)}
.ss-br-head{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;margin-bottom:14px}
.ss-br-title{margin:0;font-size:1.25rem;font-weight:1000;line-height:1.55}
.ss-br-sub{color:var(--text-sec);font-weight:800;line-height:1.8;margin-top:4px}
.ss-br-badge{display:inline-flex;align-items:center;gap:6px;padding:8px 11px;border-radius:999px;font-weight:950;font-size:.83rem;border:1px solid rgba(245,158,11,.35);background:rgba(245,158,11,.13);color:#b45309}
body.dark-mode .ss-br-badge{color:#fbbf24;background:rgba(245,158,11,.12)}
.ss-br-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ss-br-card{background:var(--input-bg);border:1px solid var(--border);border-radius:18px;padding:14px;box-shadow:var(--shadow);min-width:0}
.ss-br-student-card{cursor:pointer;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
.ss-br-student-card:hover{transform:translateY(-1px);border-color:var(--primary);box-shadow:var(--shadow-strong)}
.ss-br-student-name{font-weight:1000;font-size:1.05rem;line-height:1.6}
.ss-br-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:11px}
.ss-br-metric{padding:9px;border-radius:12px;background:rgba(67,97,238,.07);border:1px solid var(--border);text-align:center}
.ss-br-metric strong{display:block;font-size:1.08rem}.ss-br-metric span{display:block;color:var(--text-sec);font-weight:800;font-size:.75rem;margin-top:2px}
.ss-br-back{border:1px solid var(--border);background:var(--input-bg);color:var(--text-main);padding:9px 12px;border-radius:12px;font-family:inherit;font-weight:900;cursor:pointer}
.ss-br-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:14px}
.ss-br-form .ss-br-wide{grid-column:1/-1}
.ss-br-input,.ss-br-textarea,.ss-br-select{width:100%;box-sizing:border-box;background:var(--input-bg);color:var(--text-main);border:1px solid var(--border);border-radius:14px;padding:12px 13px;font-family:inherit;font-weight:800;outline:none}
.ss-br-textarea{min-height:92px;resize:vertical;line-height:1.8}
.ss-br-input:focus,.ss-br-textarea:focus,.ss-br-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(67,97,238,.14)}
.ss-br-type-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ss-br-type{border:1px solid var(--border);background:var(--input-bg);color:var(--text-main);border-radius:13px;padding:11px;font-family:inherit;font-weight:950;cursor:pointer}
.ss-br-type.active.positive{background:rgba(34,197,94,.14);border-color:#22c55e;color:#15803d}
.ss-br-type.active.negative{background:rgba(239,68,68,.13);border-color:#ef4444;color:#b91c1c}
body.dark-mode .ss-br-type.active.positive{color:#86efac}body.dark-mode .ss-br-type.active.negative{color:#fca5a5}
.ss-br-primary,.ss-br-secondary,.ss-br-danger{border:none;border-radius:14px;padding:12px 15px;font-family:inherit;font-weight:1000;cursor:pointer;transition:transform .14s ease,filter .14s ease;display:inline-flex;align-items:center;justify-content:center;gap:7px}
.ss-br-primary{background:linear-gradient(100deg,var(--primary),#7c3aed);color:#fff;box-shadow:0 12px 28px rgba(67,97,238,.22)}
.ss-br-secondary{background:rgba(59,130,246,.12);color:#1d4ed8;border:1px solid rgba(59,130,246,.28)}
.ss-br-danger{background:rgba(220,38,38,.12);color:#b91c1c;border:1px solid rgba(220,38,38,.3)}
body.dark-mode .ss-br-secondary{color:#93c5fd}body.dark-mode .ss-br-danger{color:#fca5a5}
.ss-br-primary:active,.ss-br-secondary:active,.ss-br-danger:active{transform:scale(.985)}
.ss-br-primary:disabled,.ss-br-secondary:disabled,.ss-br-danger:disabled,.ss-br-type:disabled{opacity:.48;cursor:not-allowed;filter:grayscale(.35)}
.ss-br-section-title{margin:0 0 10px;font-weight:1000;font-size:1.05rem}
.ss-br-note-list{display:flex;flex-direction:column;gap:8px;max-height:330px;overflow:auto;padding-left:2px}
.ss-br-note{border:1px solid var(--border);background:var(--card);border-radius:14px;padding:11px 12px}
.ss-br-note-top{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:5px}
.ss-br-note-type{font-weight:1000}.ss-br-note-type.positive{color:#16a34a}.ss-br-note-type.negative{color:#dc2626}
.ss-br-note-status{font-size:.75rem;font-weight:900;color:var(--text-sec);padding:4px 7px;border-radius:999px;background:rgba(148,163,184,.13)}
.ss-br-note-text{font-weight:850;line-height:1.75}.ss-br-note-meta{font-size:.78rem;color:var(--text-sec);font-weight:750;margin-top:5px}
.ss-br-workflow{display:flex;flex-direction:column;gap:12px;margin-top:14px}
.ss-br-stage{border:1px solid var(--border);background:var(--card);border-radius:18px;padding:14px}
.ss-br-stage.locked{opacity:.72}
.ss-br-stage-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.ss-br-stage-head h4{margin:0;font-size:1.05rem;font-weight:1000}
.ss-br-stage-chip{padding:6px 9px;border-radius:999px;background:rgba(67,97,238,.11);color:var(--primary);font-weight:950;font-size:.78rem}
.ss-br-vote-summary{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.ss-br-vote-pill{padding:7px 10px;border-radius:999px;background:rgba(148,163,184,.12);border:1px solid var(--border);font-size:.82rem;font-weight:900}
.ss-br-teacher-list{display:flex;flex-direction:column;gap:9px}.ss-br-teacher{border:1px solid var(--border);border-radius:14px;padding:11px;background:var(--input-bg)}
.ss-br-teacher-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.ss-br-teacher-name{font-weight:950}.ss-br-vote-actions{display:flex;gap:7px;flex-wrap:wrap}
.ss-br-vote{border:1px solid var(--border);background:var(--card);color:var(--text-main);border-radius:11px;padding:8px 10px;font-family:inherit;font-weight:900;cursor:pointer}
.ss-br-vote.yes.active{border-color:#22c55e;background:rgba(34,197,94,.14);color:#15803d}.ss-br-vote.more.active{border-color:#f59e0b;background:rgba(245,158,11,.14);color:#b45309}
body.dark-mode .ss-br-vote.yes.active{color:#86efac}body.dark-mode .ss-br-vote.more.active{color:#fcd34d}
.ss-br-diagnostic{border:1px dashed rgba(124,58,237,.45);background:rgba(124,58,237,.08);border-radius:15px;padding:12px;line-height:1.9;font-weight:800}
.ss-br-empty{border:1px dashed var(--border);border-radius:16px;padding:24px 14px;text-align:center;color:var(--text-sec);font-weight:850;line-height:1.9}
.ss-br-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:11px}.ss-br-actions>*{flex:1;min-width:190px}
.ss-br-case-inline{margin-top:7px}
.ss-br-original-badge{display:inline-flex;margin-top:7px}
@media(max-width:700px){.ss-br-grid{grid-template-columns:1fr}.ss-br-form{grid-template-columns:1fr}.ss-br-form .ss-br-wide{grid-column:auto}.ss-br-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.ss-br-card{padding:12px}.ss-br-teacher-row{align-items:flex-start}.ss-br-vote-actions{width:100%}.ss-br-vote{flex:1;min-width:120px}.ss-br-actions>*{min-width:100%}}
@media(max-width:420px){.ss-br-metrics{grid-template-columns:1fr}.ss-br-tab{padding:10px 11px;font-size:.88rem}.ss-br-title{font-size:1.1rem}}


/* V6 — student report modal toolbar: close button no longer overlaps tabs/content */
#reportModal{padding:12px;box-sizing:border-box;}
#reportModal .ss-report-modal-content{
  width:min(95%,680px);
  max-height:90dvh;
  padding:0 18px 20px;
  overflow-y:auto;
  overflow-x:hidden;
  border-radius:22px;
  box-sizing:border-box;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
#reportModal .ss-report-modal-toolbar{
  position:sticky;
  top:0;
  z-index:60;
  display:flex;
  direction:rtl;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:64px;
  margin:0 -18px 14px;
  padding:10px 14px;
  box-sizing:border-box;
  background:var(--card-strong);
  background:color-mix(in srgb,var(--card-strong) 94%,transparent);
  border-bottom:1px solid var(--border);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
#reportModal .ss-report-modal-toolbar-title{
  min-width:0;
  color:var(--text-main);
  font-size:1.05rem;
  font-weight:1000;
  line-height:1.45;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#reportModal .ss-report-modal-close{
  position:static;
  flex:0 0 44px;
  width:44px;
  height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(239,68,68,.35);
  border-radius:14px;
  background:rgba(239,68,68,.13);
  color:#ef4444;
  font-family:inherit;
  font-size:2rem;
  font-weight:1000;
  line-height:1;
  cursor:pointer;
  box-shadow:0 6px 18px rgba(239,68,68,.12);
  transition:transform .14s ease,background .14s ease,border-color .14s ease;
  -webkit-tap-highlight-color:transparent;
}
#reportModal .ss-report-modal-close:hover{background:rgba(239,68,68,.2);border-color:rgba(239,68,68,.55);}
#reportModal .ss-report-modal-close:active{transform:scale(.94);}
#reportModal .ss-report-modal-close:focus-visible{outline:3px solid rgba(239,68,68,.25);outline-offset:2px;}
#reportModal #reportContent{min-width:0;width:100%;overflow-wrap:anywhere;}
#reportModal .ss-br-tabs{margin-top:0;padding-inline:0;}
@media(max-width:520px){
  #reportModal{padding:0;align-items:stretch;}
  #reportModal .ss-report-modal-content{
    width:100%;
    max-width:none!important;
    max-height:100dvh;
    height:100dvh;
    border-radius:0;
    padding:0 14px calc(18px + env(safe-area-inset-bottom));
  }
  #reportModal .ss-report-modal-toolbar{
    min-height:62px;
    margin:0 -14px 12px;
    padding:8px 12px;
    padding-top:max(8px,env(safe-area-inset-top));
  }
  #reportModal .ss-report-modal-close{flex-basis:42px;width:42px;height:42px;border-radius:13px;font-size:1.85rem;}
  #reportModal .ss-report-modal-toolbar-title{font-size:1rem;}
  #reportModal .ss-br-tabs{scroll-padding-inline:8px;}
}


/* V7 — official decision reports, permanent record and teacher notifications */
.ss-br-section-block{margin-top:16px}.ss-br-section-block:first-of-type{margin-top:0}
.ss-br-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}.ss-br-section-head h4{margin:0;font-size:1.08rem;font-weight:1000}
.ss-br-report-list{display:flex;flex-direction:column;gap:9px}
.ss-br-report-card{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:right;border:1px solid var(--border);background:var(--input-bg);color:var(--text-main);border-radius:15px;padding:12px 14px;font-family:inherit;cursor:pointer;transition:transform .14s ease,border-color .14s ease}
.ss-br-report-card:hover{border-color:var(--primary);transform:translateY(-1px)}
.ss-br-official-badge{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 10px;border-radius:999px;border:1px solid rgba(22,163,74,.35);background:rgba(22,163,74,.12);color:#15803d;font-weight:1000;font-size:.8rem;white-space:nowrap}
body.dark-mode .ss-br-official-badge{color:#86efac;background:rgba(34,197,94,.12)}
.ss-br-official-card{border-color:rgba(22,163,74,.28);background:linear-gradient(145deg,rgba(22,163,74,.07),var(--input-bg))}
.ss-br-official-report{background:var(--input-bg);border:1px solid var(--border);border-radius:20px;padding:18px;box-shadow:var(--shadow);overflow:hidden}
.ss-br-report-header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;padding-bottom:14px;border-bottom:2px solid var(--border)}
.ss-br-report-header h2{margin:3px 0 0;font-size:1.35rem;line-height:1.6}.ss-br-report-kicker{font-weight:1000;color:var(--primary)}
.ss-br-report-actions{margin:14px 0}.ss-br-report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}
.ss-br-report-grid>div{border:1px solid var(--border);background:var(--card);border-radius:13px;padding:11px;min-width:0}.ss-br-report-grid span{display:block;color:var(--text-sec);font-size:.78rem;font-weight:850}.ss-br-report-grid strong{display:block;margin-top:4px;font-weight:1000;overflow-wrap:anywhere}
.ss-br-report-section{margin-top:14px;border:1px solid var(--border);background:var(--card);border-radius:15px;padding:13px}.ss-br-report-section h3{margin:0 0 8px;font-size:1.02rem;font-weight:1000}.ss-br-report-section p{margin:0;color:var(--text-main);font-weight:800;line-height:1.95;white-space:pre-wrap}
.ss-br-table-wrap{overflow:auto;border-radius:12px;border:1px solid var(--border)}.ss-br-report-table{width:100%;border-collapse:collapse;min-width:620px}.ss-br-report-table th,.ss-br-report-table td{padding:10px;border-bottom:1px solid var(--border);border-left:1px solid var(--border);text-align:right;vertical-align:top}.ss-br-report-table th{background:rgba(67,97,238,.1);font-weight:1000}.ss-br-report-table tr:last-child td{border-bottom:none}
.ss-br-report-footer{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:2px solid var(--border);color:var(--text-sec);font-weight:850}
@media(max-width:700px){.ss-br-report-grid{grid-template-columns:1fr}.ss-br-report-card{align-items:flex-start}.ss-br-official-report{padding:13px}.ss-br-report-header h2{font-size:1.18rem}.ss-br-report-footer{flex-direction:column}}



/* V18 — guaranteed readable contrast for behavior/student cards in every theme */
.ss-br-shell{
  --ssbr-surface:#ffffff;
  --ssbr-surface-soft:#f3f6fb;
  --ssbr-text:#111827;
  --ssbr-muted:#596579;
  --ssbr-border:rgba(15,23,42,.14);
}
body.dark-mode .ss-br-shell{
  --ssbr-surface:#0f172a;
  --ssbr-surface-soft:#182235;
  --ssbr-text:#f8fafc;
  --ssbr-muted:#c3cce0;
  --ssbr-border:rgba(226,232,240,.18);
}
.ss-br-shell .ss-br-card,
.ss-br-shell .ss-br-student-card,
.ss-br-shell .ss-br-note,
.ss-br-shell .ss-br-stage,
.ss-br-shell .ss-br-teacher,
.ss-br-shell .ss-br-report-card,
.ss-br-shell .ss-br-official-report,
.ss-br-shell .ss-br-report-grid>div,
.ss-br-shell .ss-br-report-section{
  background:var(--ssbr-surface)!important;
  color:var(--ssbr-text)!important;
  border-color:var(--ssbr-border)!important;
}
.ss-br-shell .ss-br-student-card{
  appearance:none;
  -webkit-appearance:none;
  color:var(--ssbr-text)!important;
}
.ss-br-shell .ss-br-metric,
.ss-br-shell .ss-br-vote-pill,
.ss-br-shell .ss-br-note-status{
  background:var(--ssbr-surface-soft)!important;
  border-color:var(--ssbr-border)!important;
}
.ss-br-shell .ss-br-student-name,
.ss-br-shell .ss-br-title,
.ss-br-shell .ss-br-section-title,
.ss-br-shell .ss-br-section-head h4,
.ss-br-shell .ss-br-stage-head h4,
.ss-br-shell .ss-br-teacher-name,
.ss-br-shell .ss-br-note-text,
.ss-br-shell .ss-br-metric strong,
.ss-br-shell .ss-br-report-card strong,
.ss-br-shell .ss-br-report-grid strong,
.ss-br-shell .ss-br-report-section h3,
.ss-br-shell .ss-br-report-section p{
  color:var(--ssbr-text)!important;
}
.ss-br-shell .ss-br-sub,
.ss-br-shell .ss-br-metric span,
.ss-br-shell .ss-br-note-meta,
.ss-br-shell .ss-br-note-status,
.ss-br-shell .ss-br-report-grid span,
.ss-br-shell .ss-br-report-footer{
  color:var(--ssbr-muted)!important;
}
.ss-br-shell .ss-br-back,
.ss-br-shell .ss-br-input,
.ss-br-shell .ss-br-textarea,
.ss-br-shell .ss-br-select,
.ss-br-shell .ss-br-type,
.ss-br-shell .ss-br-vote{
  background:var(--ssbr-surface-soft)!important;
  color:var(--ssbr-text)!important;
  border-color:var(--ssbr-border)!important;
}
.ss-br-shell .ss-br-type.active.positive,
.ss-br-shell .ss-br-vote.yes.active{color:#15803d!important;background:rgba(34,197,94,.14)!important;border-color:#22c55e!important}
.ss-br-shell .ss-br-type.active.negative{color:#b91c1c!important;background:rgba(239,68,68,.13)!important;border-color:#ef4444!important}
.ss-br-shell .ss-br-vote.more.active{color:#b45309!important;background:rgba(245,158,11,.14)!important;border-color:#f59e0b!important}
body.dark-mode .ss-br-shell .ss-br-type.active.positive,
body.dark-mode .ss-br-shell .ss-br-vote.yes.active{color:#86efac!important}
body.dark-mode .ss-br-shell .ss-br-type.active.negative{color:#fca5a5!important}
body.dark-mode .ss-br-shell .ss-br-vote.more.active{color:#fcd34d!important}


/* V75 customer build: owner tool is not included in the app UI. */
body.customer-mode #ownerPanelCard,
body.customer-mode [onclick^="owner"],
body.customer-mode #ownCmdBox,
body.customer-mode #ownKeyStatus{display:none !important;}

/* ===== css/02-part-02.css ===== */
/* ===== inline ===== */

html{-webkit-text-size-adjust:100%;text-size-adjust:100%;font-size:100%;}
body{font-size:1rem;}

    /* --- GLOBAL VARIABLES --- */
    :root {
      --c1: #3706AF;
      --c2: #AF0B8B;
      --c3: #00DAD0;
      --c4: #DA7D00;
      --c5: #B2DA00;
      --c6: #FFCF8F;
      --c7: #8A6534;

      --primary:      #3706AF;
      --primary-mid:  #AF0B8B;
      --primary-dark: #2a0490;
      --accent:       #DA7D00;
      --accent2:      #00DAD0;

      /* پاشخانی ڕووناک — گرادیەنتی نیشتمانی */
      --bg-body: linear-gradient(145deg,
        rgba(55,6,175,0.07) 0%,
        rgba(175,11,139,0.05) 35%,
        rgba(0,218,208,0.05) 65%,
        rgba(178,218,0,0.06) 100%),
        #f8f7ff;

      --bg-panel: rgba(255,255,255,0.90);
      --card:     rgba(255,255,255,0.85);
      --card-strong: rgba(255,255,255,0.98);

      --text-main: #12001f;
      --text-sec:  #4a3060;
      --muted:     var(--text-sec);

      --border:   rgba(55,6,175,0.13);
      --input-bg: rgba(255,255,255,0.98);

      --shadow:        0 2px 12px rgba(55,6,175,0.09), 0 1px 3px rgba(0,0,0,0.05);
      --shadow-strong: 0 6px 28px rgba(175,11,139,0.13), 0 2px 8px rgba(0,0,0,0.07);
      --shadow-card:   0 4px 20px rgba(55,6,175,0.10);

      --table-head:      #3706AF;
      --table-head-text: #ffffff;
      --table-row-even:  rgba(55,6,175,0.04);

      --highlight-row:    rgba(218,125,0,0.14);
      --highlight-border: #DA7D00;

      --radius:    20px;
      --radius-sm: 14px;
      --glass-blur: 24px;

      --app-font: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
      --app-font-size: 1rem;
      --print-font-size: 0.6875rem;
      --print-row-pad: 4px;
      --print-margin-top: 14mm;
      --print-margin-bottom: 16mm;
      --print-margin-side: 14mm;

      /* V95 — silver section surfaces (light mode) */
      --section-surface: linear-gradient(180deg, rgba(244,246,248,0.98) 0%, rgba(228,232,237,0.98) 100%);
      --section-surface-border: rgba(128,138,150,0.28);
      --section-surface-text: #181818;
      --section-surface-shadow: 0 10px 24px rgba(148, 163, 184, 0.20);
    }

    body.dark-mode {
      --primary:      #00DAD0;
      --primary-mid:  #AF0B8B;
      --primary-dark: #009e98;
      --accent:       #FFCF8F;
      --accent2:      #B2DA00;

      /* پاشخانی تاریک — ئاسمانی شەو */
      --bg-body: linear-gradient(145deg,
        #000000 0%,
        #050505 40%,
        #080808 75%,
        #000000 100%);

      --bg-panel: rgba(10,10,10,0.92);
      --card:     rgba(14,14,14,0.88);
      --card-strong: rgba(18,18,18,0.98);

      --text-main: #e8e0ff !important;
      --text-sec:  #a090c0;

      --border:   rgba(0,218,208,0.15);
      --input-bg: rgba(15,15,15,0.90);

      --shadow:        0 2px 12px rgba(0,0,0,0.50);
      --shadow-strong: 0 8px 32px rgba(0,0,0,0.65);
      --shadow-card:   0 4px 24px rgba(0,0,0,0.55);

      --table-head:      rgba(0,218,208,0.55);
      --table-head-text: #ffffff;
      --table-row-even:  rgba(0,218,208,0.04);

      --highlight-row:    rgba(255,207,143,0.12);
      --highlight-border: #FFCF8F;

      /* V95 — silver section surfaces (dark mode) */
      --section-surface: linear-gradient(180deg, rgba(66,70,76,0.98) 0%, rgba(39,42,46,0.98) 100%);
      --section-surface-border: rgba(183,191,201,0.18);
      --section-surface-text: #ffffff;
      --section-surface-shadow: 0 10px 24px rgba(0, 0, 0, 0.38);
    }

    * { box-sizing: border-box; -webkit-tap-highlight-color: transparent; outline: none; }
    html { font-size: var(--app-font-size); height: 100%; scroll-behavior: smooth; }
    body {
      font-family: var(--app-font) !important;
      background: var(--bg-body); margin: 0; padding: 10px; color: var(--text-main);
      padding-bottom: 90px; transition: background 0.4s ease, color 0.3s ease;
      overscroll-behavior-y: none; font-size: 1rem; min-height: 100vh;
    }
    input, button, select, textarea, table { font-family: var(--app-font) !important; font-size: inherit; }
    .container { max-width: 1000px; margin: 0 auto; }
    
    /* --- SMART INSTALL BANNER --- */
    #install-banner {
        display: none; position: fixed; bottom: 0; left: 0; width: 100%;
        background: var(--bg-panel); color: var(--text-main); box-shadow: 0 -5px 20px rgba(0,0,0,0.2);
        padding: 20px; z-index: 11000; flex-direction: column; align-items: center; text-align: center;
        border-top: 5px solid var(--primary);
        border-top-left-radius: 20px; border-top-right-radius: 20px;
        animation: slideUp 0.6s ease-out;
    }
    #install-banner h3 { margin: 0 0 5px; color: var(--primary); font-size: 1.2rem; }
    #install-banner p { margin: 0 0 15px; font-size: 0.95em; color: var(--text-sec); }
    #install-btn-action {
        background: linear-gradient(45deg, var(--primary), #3f37c9); color: #fff; border: none; padding: 12px 35px;
        border-radius: 25px; font-weight: 900; cursor: pointer; font-size: 1em;
        box-shadow: 0 4px 10px rgba(67, 97, 238, 0.4); transition: transform 0.2s; margin-bottom: 10px;
    }
    #install-btn-action:active { transform: scale(0.95); }
    #close-install-btn {
        background: transparent; border: none; color: var(--text-sec); font-size: 0.9em; text-decoration: underline; cursor: pointer;
    }
    @keyframes slideUp { from { transform: translateY(100%); } to { transform: translateY(0); } }

    /* Manual Install Instructions Modal */
    #manual-install-modal {
        display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%;
        background: rgba(0,0,0,0.85); z-index: 12000; align-items: center; justify-content: center; backdrop-filter: blur(5px);
    }
    .install-box {
        background: var(--bg-panel); color: var(--text-main); padding: 25px; border-radius: 20px;
        max-width: 320px; text-align: center; position: relative; box-shadow: 0 10px 30px rgba(0,0,0,0.3); border: 1px solid var(--border);
    }
    .install-icon { font-size: 1.5em; margin: 0 5px; vertical-align: middle; }

    /* --- HEADER --- */
    .app-header { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; padding: 10px 15px; background: var(--card); border-bottom: 2px solid transparent; background-clip: padding-box; position: relative;
      backdrop-filter: blur(var(--glass-blur));
      -webkit-backdrop-filter: blur(var(--glass-blur));
border-radius: var(--radius); box-shadow: var(--shadow-strong); border: 1px solid var(--border);

      transform: translateZ(0);
}
    .header-left { display: flex; flex-direction: column; }
    .app-title { font-weight: 900; margin: 0; font-size: clamp(1.1rem, 3.2vw, 1.5rem); background: linear-gradient(90deg, var(--primary), var(--accent)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
        .title-row{display:flex;align-items:center;gap:12px;min-width:0}
        .app-logo{width:52px;height:52px;border-radius:14px;box-shadow:0 12px 30px rgba(0,0,0,.22);border:1px solid var(--border);flex:0 0 auto}
        .title-stack{display:flex;flex-direction:column;line-height:1.05;min-width:0}
        .app-subtitle{font-size:.85rem;color:var(--muted);margin-top:4px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width: 58vw}
    .status-badge { font-size: 0.75em; padding: 2px 8px; border-radius: 4px; font-weight: bold; display: inline-block; margin-top: 2px; }
    .status-free { background: #6c757d; color: #fff; }
    .status-pro { background: linear-gradient(45deg, #f72585, #4361ee); color: #fff; box-shadow: 0 2px 5px rgba(247, 37, 133, 0.4); }
    .digital-clock { text-align: left; display: flex; flex-direction: column; align-items: flex-end; min-width: 120px; }
    .clock-time { font-size: 1.1em; font-weight: 800; color: var(--text-main); line-height: 1; }
    .clock-date { font-size: 0.75em; color: var(--text-sec); font-weight: 600; margin-top: 3px; }

    /* --- CONTROLS --- */
    .control-panel { background: var(--card); border-right: 3px solid #3706AF;
      backdrop-filter: blur(var(--glass-blur));
      -webkit-backdrop-filter: blur(var(--glass-blur));
padding: 20px; border-radius: var(--radius-sm); box-shadow: var(--shadow-strong); margin-bottom: 20px; border: 1px solid var(--border);

      transform: translateZ(0);
}
    .selectors { display: flex; gap: 12px; margin-bottom: 20px; flex-wrap: wrap; }
    select { flex: 1; min-width: 100%; padding: 13px 14px; font-size: 1rem; border: 1.5px solid var(--border); border-radius: 14px; font-weight: 700; background: rgba(10,8,30,0.82); color: #fff; transition: border-color 0.15s, box-shadow 0.15s; appearance: auto; } select:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px var(--shadow-card,rgba(55,6,175,0.14)); } select option { background: #0f0a24; color: #fff; }

    /* Class filter (🔎) next to class select — keep UI clean on mobile */
    .class-row{ display:flex; gap:10px; align-items:stretch; width:100%; }
    .class-row select{ flex:1; min-width:0; }
    .mini-filter-btn{
      width:54px; min-width:54px;
      padding:0;
      border-radius:12px;
      border:2px solid var(--border);
      background: var(--input-bg);
      color: var(--text-main);
      font-size:20px;
      display:flex;
      align-items:center;
      justify-content:center;
      cursor:pointer;
      box-shadow: 0 6px 14px rgba(0,0,0,.12);
      user-select:none;
      -webkit-tap-highlight-color: transparent;
    }
    .mini-filter-btn:active{ transform: translateY(1px); }
    .class-filters{ width:100%; display:flex; gap:10px; flex-wrap:wrap; margin-top:10px; }
    .class-filters select{ min-width:0; flex:1; }
    .exam-panel { background: rgba(67, 97, 238, 0.1); padding: 15px; border-radius: 12px; margin-bottom: 20px; display: flex; gap: 10px; align-items: center; justify-content: center; flex-wrap: wrap; }
    .exam-input-main { width: 80px; padding: 10px; border-radius: 8px; border: 2px solid var(--bg-panel); text-align: center; font-weight: 800; font-size: 1.2rem; background: var(--input-bg); color: var(--text-main); }
    .season-toggle { display: flex; background: var(--border); border-radius: 12px; padding: 5px; margin-bottom: 20px; }
    .season-btn { flex: 1; padding: 11px; border: none; border-radius: 10px; cursor: pointer; font-weight: 800; color: var(--text-sec); background: transparent; transition: all 0.18s ease; }
    .season-btn.active { background: linear-gradient(135deg,var(--primary),var(--primary-mid,var(--primary))); color: #fff; box-shadow: 0 4px 14px var(--shadow-card,rgba(55,6,175,0.30)); }
    .input-group { display: flex; gap: 10px; margin-bottom: 20px; flex-wrap: wrap; }
    .date-input { flex: 1; padding: 12px; border: 2px solid var(--border); border-radius: 12px; text-align: center; min-width: 45%; font-weight: 600; background: var(--input-bg); color: var(--text-main); }
    #activityNoteSelect { flex: 1; padding: 12px 15px; border: 2px solid var(--primary); border-radius: 12px; text-align: center; min-width: 45%; font-weight: 700; background: rgba(10,8,30,0.82); color: #fff; cursor: pointer; } #activityNoteSelect option { background: #0f0a24; color: #fff; }
    .big-buttons-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
    @media (max-width: 430px){ .big-buttons-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); } }
    @media (max-width: 320px){ .big-buttons-grid{ grid-template-columns: 1fr; } }
    .eval-btn { padding: 12px 8px; font-weight: 800; color: #fff; border: none; border-radius: 16px; cursor: pointer; box-shadow: 0 4px 14px rgba(0,0,0,0.15); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-height: 74px; max-height: 96px; overflow: hidden; text-align: center; transition: transform 0.13s ease, box-shadow 0.13s ease; }
    .eval-btn .btn-label { font-size: clamp(14px, 1.05rem, 18px); line-height: 1.12; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; }
    .eval-btn .btn-score { font-size: clamp(12px, 0.95rem, 16px); font-weight: 700; opacity: 0.92; }
    .eval-btn:active { transform: scale(0.93); box-shadow: 0 1px 4px rgba(0,0,0,0.10); }
    .eval-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(0,0,0,0.20); }
    .btn-blue   { background: linear-gradient(135deg,var(--primary),var(--primary-mid,var(--primary))); }
    .btn-green  { background: linear-gradient(135deg,#00DAD0,#009e98); color:#0a1a1a; }
    .btn-yellow { background: linear-gradient(135deg,#B2DA00,#8aaa00); color:#1a1f00; }
    .btn-red    { background: linear-gradient(135deg,#AF0B8B,#7a0662); }
    .btn-orange { background: linear-gradient(135deg,#DA7D00,#a85f00); }
    .btn-gray   { background: linear-gradient(135deg,#8A6534,#5c4220); }

    /* --- TABLES & MODALS --- */
    .toggle-btn { width: 100%; padding: 15px 18px; background: linear-gradient(100deg, var(--primary) 0%, var(--primary-mid,var(--primary)) 60%, rgba(0,0,0,0) 100%), var(--primary); color: #fff; border: none; border-radius: 14px; font-size: 1.05em; cursor: pointer; margin-top: 15px; font-weight: 800; display: flex; justify-content: space-between; align-items: center; box-shadow: 0 4px 18px var(--shadow-card,rgba(55,6,175,0.22)); transition: opacity 0.15s, transform 0.13s; } .toggle-btn:hover { opacity: 0.90; } .toggle-btn:active { transform: scale(0.985); }
    .toggle-btn:active { transform: scale(0.98); }
    .collapsible-content { display: none; background: var(--card);
      backdrop-filter: blur(var(--glass-blur));
      -webkit-backdrop-filter: blur(var(--glass-blur));
padding: 15px; border-radius: var(--radius-sm); margin-top: 10px; box-shadow: var(--shadow-strong); border: 1px solid var(--border);

      background: var(--card); backdrop-filter: blur(var(--glass-blur)); -webkit-backdrop-filter: blur(var(--glass-blur));
}
    
    .class-container { 
        border: 1px solid var(--border);
border-radius: 10px; padding: 0; margin-bottom: 25px; 
        background: var(--card);
      backdrop-filter: blur(var(--glass-blur));
      -webkit-backdrop-filter: blur(var(--glass-blur));
overflow: hidden;
        scroll-margin-top: 20px; 
        transition: all 0.5s ease;
    
      background: var(--card); backdrop-filter: blur(var(--glass-blur)); -webkit-backdrop-filter: blur(var(--glass-blur));
}
    .highlight-active {
        border: 2px solid #ffd700 !important;
        box-shadow: 0 0 20px rgba(255, 215, 0, 0.6) !important;
        animation: flashHighlight 1.5s ease-in-out;
    }
    @keyframes flashHighlight {
        0% { background-color: rgba(255, 215, 0, 0.3); }
        50% { background-color: rgba(255, 215, 0, 0.1); }
        100% { background-color: var(--bg-panel); }
    }

    .class-header-row { display: flex; justify-content: space-between; align-items: center; background: rgba(67, 97, 238, 0.1); padding: 12px 15px; border-bottom: 2px solid var(--primary); }
    .class-title { margin: 0; color: var(--text-main); font-weight: 900; font-size: 1.1em; }
    .table-responsive { width: 100%; overflow-x: auto; }
    table { width: 100%; border-collapse: collapse; font-size: 0.95em; min-width: 600px; } 
    thead tr { background: var(--table-head); color: var(--table-head-text); }
    th { padding: 12px 10px; font-weight: 800; border: none; border-bottom: 2px solid rgba(255,255,255,0.18); white-space: nowrap; letter-spacing: 0.01em; }
    td { padding: 8px; border: 1px solid var(--border); text-align: center; color: var(--text-main); }
    td.name-cell { text-align: right; min-width: 160px; font-weight: 600; }
    tbody tr:nth-child(even) { background: var(--table-row-even); }
    tbody tr:hover { background: rgba(246, 196, 83, 0.10); }

    
    tr.selected-student-row td {
        background-color: var(--highlight-row) !important;
        box-shadow: inset 0 0 0 9999px rgba(246,196,83,0.08);
        border-top: 2px solid var(--highlight-border) !important;
        border-bottom: 2px solid var(--highlight-border) !important;
        font-weight: 900 !important;
    }

    .table-input { width: 55px; padding: 8px; text-align: center; border: 1px solid var(--border); border-radius: 6px; font-weight: bold; background: var(--input-bg); color: var(--text-main); }
    .name-input { width: 100%; padding: 5px; border: 1px solid transparent; background: transparent; text-align: right; font-weight: bold; color: var(--text-main); }
    #notify { position: fixed; top: 22px; left: 50%; transform: translateX(-50%) translateY(-4px); background: linear-gradient(100deg,#3706AF,#AF0B8B); color: #fff; padding: 11px 28px; border-radius: 50px; opacity: 0; transition: opacity 0.25s ease, transform 0.25s ease; pointer-events: none; z-index: 3000; font-weight: 800; box-shadow: 0 8px 28px rgba(55,6,175,0.40); letter-spacing: 0.01em; }
    .modal { display: none; position: fixed; z-index: 2000; left: 0; top: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.55); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); align-items: center; justify-content: center; }
    .modal-content { background: var(--card);
      backdrop-filter: blur(var(--glass-blur));
      -webkit-backdrop-filter: blur(var(--glass-blur));
padding: 25px; border-radius: 20px; width: 95%; max-width: 600px; max-height: 85vh; overflow-y: auto; position: relative; color: var(--text-main); 
      background: var(--card-strong); backdrop-filter: blur(var(--glass-blur)); -webkit-backdrop-filter: blur(var(--glass-blur));
}
    .close-btn { position: absolute; left: 20px; top: 15px; font-size: 1.875rem; cursor: pointer; color: #d32f2f; font-weight: bold; }
    .settings-input { padding: 12px 14px; margin: 8px 0; border: 1.5px solid var(--border); border-radius: 12px; width: 100%; display: block; background: var(--input-bg); color: var(--text-main); transition: border-color 0.15s, box-shadow 0.15s; } .settings-input:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px var(--shadow-card,rgba(55,6,175,0.14)); }
    .backup-btn, .restore-btn, .settings-save-btn { color: #fff; padding: 12px 16px; border: none; border-radius: 12px; cursor: pointer; margin: 5px 0; font-weight: 800; width: 100%; font-size: 1em; transition: opacity 0.15s, transform 0.13s; } .backup-btn:hover, .restore-btn:hover, .settings-save-btn:hover { opacity: 0.88; } .backup-btn:active, .restore-btn:active, .settings-save-btn:active { transform: scale(0.97); }
    .backup-btn     { background: linear-gradient(135deg,var(--primary),var(--primary-mid,var(--primary))); }
    .restore-btn    { background: linear-gradient(135deg,var(--accent,#DA7D00),var(--accent2,#8A6534)); }
    .settings-save-btn { background: linear-gradient(135deg,var(--primary),var(--primary-mid,var(--primary))); }
    .export-btn-group button { padding: 6px 12px; font-size: 0.85em; border-radius: 6px; border: none; color: white; cursor: pointer; font-weight: bold; margin-left: 5px; }
    .note-manager-item { display: flex; justify-content: space-between; align-items: center; gap: 10px; background: rgba(0,0,0,0.05); padding: 8px 12px; margin-bottom: 5px; border-radius: 6px; font-weight: bold; }
    .note-manager-item span{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .note-delete-btn { background: #d32f2f; color: #fff; border: none; border-radius: 4px; padding: 4px 8px; cursor: pointer; font-size: 0.8em; }
    /* Notes add row: stays inside bounds even with large font */
    /* Notes add row: keep + button always inside the card even on max font size */
    .note-add-row{ display:flex; gap:8px; margin-bottom:10px; flex-wrap:nowrap; align-items:stretch; width:100%; max-width:100%; }
    .note-add-input{ flex: 1 1 auto; min-width: 0; padding:12px; border-radius:10px; border:1px solid var(--border); background:var(--input-bg); color:var(--text-main); }
    .note-add-btn{
      flex: 0 0 48px;
      width:48px; min-width:48px; max-width:48px;
      height:48px;
      display:flex; align-items:center; justify-content:center;
      background:var(--primary); color:#fff;
      border:none; border-radius:10px;
      font-weight:1000; font-size:1.35em; line-height:1;
      overflow:hidden;
    }
    .note-add-btn:active{ transform: scale(0.98); }

    /* Security & Expired Screens */
    #security-screen, #expired-screen { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(20, 20, 30, 0.98); z-index: 10000; flex-direction: column; align-items: center; justify-content: center; backdrop-filter: blur(10px); color: #fff; }
    .pin-display { display: flex; gap: 15px; margin-bottom: 40px; }
    .pin-dot { width: 20px; height: 20px; border-radius: 50%; border: 2px solid #fff; background: transparent; transition: 0.2s; }
    .pin-dot.filled { background: var(--primary); border-color: var(--primary); }
    .pin-pad { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
    .pin-btn { width: 70px; height: 70px; border-radius: 50%; border: 2px solid rgba(255,255,255,0.2); background: rgba(255,255,255,0.1); color: #fff; font-size: 1.5rem; font-weight: bold; cursor: pointer; transition: 0.2s; display: flex; align-items: center; justify-content: center; }
    .pin-btn:active { background: rgba(255,255,255,0.3); transform: scale(0.95); }
    .pin-btn.clear { font-size: 1rem; background: rgba(211, 47, 47, 0.4); border-color: #d32f2f; }
    @keyframes shake { 0% { transform: translateX(0); } 25% { transform: translateX(-10px); } 50% { transform: translateX(10px); } 75% { transform: translateX(-10px); } 100% { transform: translateX(0); } }

    #export-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: #ffffff; z-index: 9999; padding: 0; overflow-y: auto; }
    .print-controls { background: #eee; padding: 10px; border-radius: 10px; margin: 10px auto; max-width: 21cm; display: flex; gap: 15px; justify-content: center; align-items: center; flex-wrap: wrap; border: 1px solid #ccc; }
    .print-control-item { display: flex; flex-direction: column; align-items: center; font-size: 0.85em; font-weight: bold; color: #333; }
    .print-control-item input { margin-top: 5px; cursor: pointer; }
    .export-content { background: #fff !important; width: 21cm; min-height: 29.7cm; margin: 0 auto; padding-top: var(--print-margin-top) !important; padding-bottom: var(--print-margin-bottom) !important; padding-left: var(--print-margin-side) !important; padding-right: var(--print-margin-side) !important; box-sizing: border-box; direction: rtl; color: #000000 !important; box-shadow: 0 0 15px rgba(0,0,0,0.1); }
    .formal-header { display: flex; justify-content: space-between; align-items: center; border-bottom: 4px double #000000; padding-bottom: 10px; margin-bottom: 15px; color: #000000 !important; font-family: inherit; }
    .header-side { width: 30%; text-align: right; font-weight: bold; line-height: 1.6; font-size: var(--print-font-size) !important; }
    .header-left-side { text-align: left; }
    .header-center { width: 40%; text-align: center; display: flex; flex-direction: column; align-items: center; }
    .header-logo-img { height: calc(var(--print-font-size) * 6) !important; margin-bottom: 5px; max-height: 100px; width: auto; }
    .header-main-title { font-weight: 900; text-decoration: underline; margin-top: 5px; font-size: calc(var(--print-font-size) * 1.5) !important; }
    .header-line span { font-weight: normal; }
    .export-content * { color: #000000 !important; }
    .export-content table { width: 100%; border-collapse: collapse; border: 3px solid #000000 !important; font-size: var(--print-font-size) !important; margin-top: 10px; font-family: inherit; }
    .export-content th, .export-content td { border: 1px solid #000000 !important; padding: var(--print-row-pad) 2px !important; line-height: 1.1; height: auto; background: #fff !important; }
    .export-content th { background: #e0e0e0 !important; font-weight: 900 !important; text-align: center; border-bottom: 2px solid #000 !important; }
    .export-content td { text-align: center; font-weight: 600 !important; }
    
    @media print {
        @page { size: A4; margin: 0; } 
        body, html { background-color: #ffffff !important; margin: 0; padding: 0; width: 100%; height: 100%; overflow: visible; }
        .container, .app-header, #notify, #security-screen, #expired-screen, #install-banner, #manual-install-modal { display: none !important; }
        #export-overlay { display: block !important; position: relative !important; width: 100%; height: auto; overflow: visible; background: #fff !important; padding: 0 !important; margin: 0 !important; }
        .close-preview-btn, .print-controls { display: none !important; }
        .export-content { width: 100% !important; margin: 0; border: none; box-shadow: none; padding-top: var(--print-margin-top) !important; padding-bottom: var(--print-margin-bottom) !important; padding-left: var(--print-margin-side) !important; padding-right: var(--print-margin-side) !important; box-sizing:border-box !important; }
        table { width: 100% !important; max-width: 100% !important; table-layout: fixed !important; border-collapse: collapse !important; }
        th, td { white-space: normal !important; overflow-wrap: break-word !important; word-break: break-word !important; text-align: center !important; vertical-align: middle !important; font-size: var(--print-font-size) !important; padding: var(--print-row-pad) 2px !important; line-height: 1.15 !important; }
        td, th { overflow-wrap: break-word; word-break: break-word; }
        thead { display: table-header-group; }
        tr { page-break-inside: avoid; break-inside: avoid; }
        .formal-header { page-break-inside: avoid; }
        
        tr.selected-student-row td {
            background-color: transparent !important;
            border-top: 1px solid #000 !important;
            border-bottom: 1px solid #000 !important;
            font-weight: 600 !important;
        }
    }
    @media (min-width: 600px) { .selectors { flex-direction: row; } select { min-width: auto; } }
  

/* --- Project Tabs (Screen 2) --- */
.pro-tabs{ background: transparent; }
.pro-tabbar{
  display:flex; gap:8px; flex-wrap:wrap;
  position: sticky; top: 0;
  padding: 8px 0 12px;
  background: var(--bg-panel);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(var(--glass-blur));
  border-bottom: 1px solid var(--border);
  z-index: 5;
}
.pro-tabbtn{
  border:none; cursor:pointer;
  padding:10px 12px;
  border-radius: 12px;
  background: rgba(59,130,246,0.10);
  color: var(--text-main);
  font-weight: 900;
  font-size: .95em;
  transition: transform .12s ease, background .12s ease;
}
.pro-tabbtn:active{ transform: scale(0.98); }
.pro-tabbtn.active{ background: linear-gradient(135deg,var(--primary),var(--primary-mid,var(--primary))) !important; color:#fff !important; box-shadow: 0 3px 14px var(--shadow-card,rgba(55,6,175,0.28)); }
.pro-tabpanel{ display:none; padding-top: 14px; }
.pro-tabpanel.active{ display:block; }
.pro-card{
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 14px;
  box-shadow: var(--shadow-card);
}
.pro-title{ margin:0 0 10px; font-weight: 1000; color: var(--text-main); }
.pro-hint{ font-size: .88em; color: var(--text-sec); }
.pro-footnote{ font-size: .85em; color: var(--text-sec); margin: 10px 0 0; }
.pro-upload{
  cursor:pointer; display:inline-block;
  background: rgba(67, 97, 238, 0.10);
  padding: 10px 16px;
  border-radius: 12px;
  border: 1px solid var(--primary);
  font-weight: 900;
  margin-top: 10px;
  color: var(--text-main);
}
.pro-whatsapp{
  text-decoration:none;
  background:#25D366;
  color:white;
  padding:10px 16px;
  border-radius:12px;
  font-weight:900;
  display:inline-flex;
  align-items:center;
  gap:6px;
  width:100%;
  justify-content:center;
}


.buy-grid{ display:grid; gap:10px; margin-top:10px; }
.buy-row{ display:flex; gap:10px; flex-wrap:wrap; }
.buy-row input{ flex:1; min-width:160px; }
.buy-device{
  background: rgba(67,97,238,0.06);
  border: 1px dashed var(--border);
  padding: 10px 12px;
  border-radius: 12px;
  text-align:center;
  font-weight:900;
  overflow:hidden;
}
.buy-device code{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: .95em;
  direction:ltr;
  unicode-bidi: plaintext;
  display:inline-block;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.buy-note{ width:100%; min-height:90px; resize:vertical; }
.buy-privacy{ font-size:.85em; color: var(--text-sec); margin:6px 0 0; }

/* --- Pro Tab UX polish --- */
.pro-tabbtn{ display:flex; align-items:center; gap:8px; }
.pro-ic{ font-size:1.1em; line-height:1; }
.pro-txt{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:100%;
}
.pro-tabbar{ scroll-behavior:smooth; }
.pro-tabbtn:focus{ outline: 2px solid var(--primary, rgba(67,97,238,0.35)); outline-offset: 2px; }
.pro-tabbtn:focus:not(:focus-visible){ outline: none; }

@keyframes proFadeUp {
  from { opacity:0; transform: translateY(8px); }
  to   { opacity:1; transform: translateY(0); }
}
.pro-tabpanel.active{ animation: proFadeUp .18s ease; }

/* Mobile: Bottom Tab Bar */
@media (max-width: 768px){
  .pro-tabbar{
    position: fixed;
    top: auto;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 10px 10px calc(10px + env(safe-area-inset-bottom));
    gap: 6px;
    flex-wrap: nowrap;
    overflow-x: auto;
    border-bottom: none;
    border-top: 1px solid var(--border);
    box-shadow: 0 -14px 30px rgba(2,6,23,0.18);
  }
  .pro-tabbtn{
    flex: 1 0 auto;
    min-width: clamp(64px, 18vw, 92px);
    justify-content: center;
    flex-direction: column;
    gap: 4px;
    padding: 10px 8px;
    border-radius: 14px;
  }
  .pro-txt{ font-size: clamp(.68em, 2.6vw, .78em); line-height:1.05; }
  #settingsPanel .pro-tabs{ padding-bottom: calc(92px + env(safe-area-inset-bottom)); }
}

/* === SMART UI (no overflow) === */
:root{
  /* Use rem-based clamps so Android/iOS accessibility font scaling still works */
  --fs-base: clamp(0.95rem, 3.6vw, 1.125rem);
  --fs-title: clamp(1.05rem, 4.6vw, 1.35rem);
  --fs-big: clamp(1.15rem, 5.2vw, 1.6rem);
}
html{ -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body{ font-size: var(--fs-base); }

/* --- CRITICAL: Keep owner tabs clickable & visible (no clipping) --- */
/* Some global "no overflow" rules can clip fixed tab bars on certain Android browsers.
   These overrides ensure the Project Tabs always stay interactive and never get cut off. */
.pro-tabs{ max-width:100%; overflow:visible !important; }
.pro-tabbar{
  max-width:100%;
  overflow-x:auto !important;
  overflow-y:visible !important;
  -webkit-overflow-scrolling: touch;
  pointer-events:auto;
}
.pro-tabbtn{ pointer-events:auto; touch-action: manipulation; }
@media (max-width: 768px){
  .pro-tabbar{ z-index: 9999; }
  #settingsPanel{ overflow: visible !important; }
}
/* Allow flex items to shrink properly */
.buy-row, .tabbar, .tabbar-top, .tabs, .card, .panel, .row, .grid{
  max-width:100%;
  overflow:hidden;
}
.buy-row{ gap:10px; }
.buy-row > *{ min-width:0 !important; }
.buy-row input{
  min-width: 140px !important;
  width: 100%;
  max-width: 100%;
  font-size: var(--fs-base);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
/* Force wrap to column on very small screens OR when fonts are huge */
@media (max-width: 480px){
  .buy-row{ flex-direction:column; }
  .buy-row input{ min-width: 0 !important; }
  #ownModeWrap{ flex-direction:column; }
  #ownModeWrap button{ width:100%; min-width:0 !important; }
}
/* Override inline min-width on mode buttons */
#ownModeWrap button{ min-width:0 !important; max-width:100%; }
/* Headings and long labels */
h1,h2,h3,.title,.section-title{
  font-size: var(--fs-title);
  line-height:1.25;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.muted, p, label, small{ overflow-wrap:anywhere; word-break:break-word; }
button, .pro-btn, .btn{
  font-size: var(--fs-base);
  max-width:100%;
  white-space: normal;        /* allow wrapping for large system font */
  overflow-wrap: anywhere;
  word-break: break-word;
  line-height: 1.25;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
}


/* === Smart Responsive Forms (System font-safe) === */
input, textarea, select, button { max-width: 100%; box-sizing: border-box; }
.pro-card, .buy-grid { max-width: 100%; overflow: hidden; }

/* Generic rows that contain inputs/buttons */
.buy-row, .note-add-row, .settings-theme-row, .input-group {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
}
.buy-row > *, .note-add-row > *, .settings-theme-row > *, .input-group > * { min-width: 0; }

/* Make fields wrap nicely on small screens / large system fonts */
.buy-row input, .buy-row select, .buy-row textarea,
.note-add-row input, .note-add-row select, .note-add-row textarea,
.settings-theme-row input, .settings-theme-row select,
.input-group input, .input-group select, .input-group textarea {
  flex: 1 1 240px;
  width: 100%;
}

/* Ensure action buttons don't overflow */
.buy-row button, .settings-theme-row button, .input-group button {
  flex: 0 0 auto;
  width: auto;
}

/* Notes + button: keep + inside bounds always */
.note-add-btn{
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  min-width: 48px;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  line-height: 1;
  border-radius: 12px;
}

/* Long IDs / codes should never break layout */
.buy-device code, code{
  word-break: break-all;
  overflow-wrap: anywhere;
}

/* Buttons text may wrap instead of overflow */
.pro-whatsapp, button{
  white-space: normal;
}


/* --- Owner Advanced (collapsible) --- */
.owner-adv > summary::-webkit-details-marker{ display:none; }
.owner-adv > summary{ display:flex; align-items:center; justify-content:center; gap:8px; }
.owner-adv[open] > summary{ opacity:.9; }

  /* --- Grades search (safe, no-focus-loss) --- */
  .grades-tools{
    display:flex;
    gap:10px;
    align-items:center;
    margin: 4px 0 10px;
    padding: 10px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--card);
  }
  .grades-tools input{
    flex:1;
    min-width: 140px;
    padding: 12px 12px;
    border-radius: 12px;
    border: 1px solid var(--border);
    background: var(--input-bg);
    color: var(--text-main);
    font-family: inherit;
    font-size: clamp(13px, 1.7vw, 16px);
  }
  .grades-tools input::placeholder{ color: var(--text-sec); }
  .grades-clear{
    flex:0 0 auto;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    border: 1px solid var(--border);
    background: transparent;
    color: var(--text-main);
    font-weight: 900;
    cursor: pointer;
  }
  .grades-meta{
    margin: -2px 0 8px;
    font-size: 0.9em;
    color: var(--text-sec);
    text-align: right;
  }
  .is-hidden{ display:none !important; }


/* === SMART GLOBAL LAYOUT (No Overlap) === */
.container{
  max-width: 1000px;
  margin: 0 auto;
  padding: 16px 14px 140px; /* bottom space for tabs */
  display: flex;
  flex-direction: column;
  gap: 16px;
}
@media (min-width: 900px){
  .container{ padding: 20px 18px 150px; gap: 18px; }
}

/* Make all major blocks participate in normal flow */
.app-header,
.control-panel,
.project-info,
.section,
.card,
.panel,
.board,
.table-wrap,
.tabs,
.tab-content,
.form-section,
.form-card,
.glass-card,
.glass-panel{
  position: relative !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  transform: none !important;
  margin: 0 !important;
}

/* Standard spacing for common blocks (fallback if they don't have their own) */
.app-header{ margin-bottom: 4px !important; }
.control-panel,
.project-info,
.form-section,
.form-card,
.glass-card,
.glass-panel,
.board,
.table-wrap{
  width: 100%;
}

/* Prevent any accidental overlay from long content */
.control-panel,
.project-info,
.form-section,
.form-card,
.glass-card,
.glass-panel,
.board,
.table-wrap{
  overflow: visible;
}

/* If a block was previously overlapping due to z-index, normalize it */
.control-panel,
.project-info,
.form-section,
.form-card,
.glass-card,
.glass-panel,
.board,
.table-wrap{
  z-index: 1;
}

/* Bottom navigation safety */
.bottom-nav,
#bottom-nav,
.navbar,
.tabs-bar{
  z-index: 5000;
}

/* Mobile: ensure selects/inputs don't collide */
.selectors{
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.selectors select{
  flex: 1 1 220px;
  min-width: 180px;
}

/* Ensure any "floating" decorative elements do not cover content */
[class*="floating"],
[class*="float"],
[class*="decor"],
[class*="orb"],
[class*="bubble"]{
  pointer-events: none;
  z-index: 0 !important;
}


    .tp-meta{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
    .tp-row{display:flex;gap:10px;flex-wrap:wrap}
    .tp-input{flex:1;min-width:200px;padding:12px 14px;border:2px solid var(--border);border-radius:12px;background:var(--input-bg);color:var(--text-main);font-weight:700}
    .tp-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:8px}
    .tp-btn{border:none;border-radius:12px;padding:12px 14px;font-weight:900;cursor:pointer;background:var(--bg-panel);color:var(--text-main);box-shadow:var(--shadow-card);border:1px solid var(--border)}
    .tp-btn:active{transform:scale(.98)}
    .tp-btn-primary{background:linear-gradient(90deg,var(--primary),#3f37c9);color:#fff;border:none}
    .tp-btn-save{background:linear-gradient(90deg,#2e7d32,#43a047);color:#fff;border:none}
    .tp-btn-mini{padding:10px 12px;font-weight:800}
    .tp-tab{display:none;margin-top:10px}
    .tp-tab.active{display:block}
    .tp-subactions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:6px 0 12px}
    .tp-list{display:flex;flex-direction:column;gap:12px}
    .tp-card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:12px;box-shadow:var(--shadow-card)}
    .tp-card-head{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:10px}
    .tp-title{flex:1;min-width:160px;padding:10px 12px;border:2px solid var(--border);border-radius:12px;background:var(--input-bg);color:var(--text-main);font-weight:900}
    .tp-drag{cursor:grab;user-select:none;font-size:20px;padding:6px 10px;border-radius:10px;background:rgba(0,0,0,.06)}
    body.dark-mode .tp-drag{background:rgba(255,255,255,.08)}
    .tp-del{border:none;background:#e53935;color:#fff;border-radius:12px;padding:10px 12px;font-weight:900;cursor:pointer}
    .tp-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 120px;gap:10px;margin-top:10px;max-width:100%}
    .tp-grid .tp-input{min-width:0 !important;width:100%}
    .tp-card{max-width:100%}
    .tp-card-head > *{min-width:0}
    .tp-title{min-width:0}

    @media(max-width:520px){.tp-grid{grid-template-columns:1fr}}
    .tp-text{width:100%;min-height:110px;padding:12px;border:2px solid var(--border);border-radius:12px;background:var(--input-bg);color:var(--text-main);font-weight:650;resize:vertical}
    .tp-hint{margin-top:8px;text-align:center;color:var(--text-sec);font-weight:800;font-size:.92em}
    .tp-import-area{width:100%;min-height:240px;padding:12px;border:2px solid var(--border);border-radius:12px;background:var(--input-bg);color:var(--text-main);font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;direction:ltr}


/* =========================
   Questionnaire Preview (Fullscreen like Grades)
   ========================= */
.qn-fullscreen-modal{
  position:fixed;
  inset:0;
  z-index:9999;
  background:#fff;
  overflow:hidden;
}
.qn-fullscreen-box{
  width:100%;
  height:100%;
  max-width:none;
  margin:0;
  border-radius:0;
  box-shadow:none;
  display:flex;
  flex-direction:column;
  background:#fff;
}
.qn-sticky-toolbar{
  position:sticky;
  top:0;
  z-index:10;
  background:#fff;
  border-bottom:2px solid #000;
}
.qn-doc-viewport{flex:1;
  overflow:auto;
  background:#efefef;
  padding:12px;
  -webkit-overflow-scrolling: touch;
  direction:ltr; /* allow horizontal pan both sides on mobile */
  touch-action: pan-x pan-y; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; padding-left:12px; padding-right:12px; }
.qn-doc-viewport .qn-print-root{
  width:100%;
  display:flex;
  direction:rtl;
  flex-direction:column;
  align-items:center;
  gap:12px;
  background:transparent;
  padding:0;
}
.qn-doc-viewport .qn-page{
  box-shadow:0 2px 10px rgba(0,0,0,.18);
}
@media (max-width: 520px){
  .qn-doc-viewport{ padding:8px; }
}

/* =========================
   Questionnaire (A4) styles
   Scoped to .qn-print-root
   ========================= */
.qn-print-root{ font-family: var(--app-font) !important; }
.qn-pages{ display:flex; flex-direction:column; gap:18px; align-items:center; width:100%; }

html[data-qn-paper="A4"][data-qn-ori="portrait"] .qn-page{ width:210mm; height:297mm; }
html[data-qn-paper="A4"][data-qn-ori="landscape"] .qn-page{ width:297mm; height:210mm; }
html[data-qn-paper="Letter"][data-qn-ori="portrait"] .qn-page{ width:216mm; height:279mm; }
html[data-qn-paper="Letter"][data-qn-ori="landscape"] .qn-page{ width:279mm; height:216mm; }

.qn-page{
  width:210mm;
  height:297mm;
  background:#ffffff !important;
  color:#111;
  position:relative;
  overflow:hidden;
  border:1px solid #d9dee7;
  border-radius:14px;
  -webkit-print-color-adjust:exact !important;
  print-color-adjust:exact !important;
  box-shadow:0 10px 30px rgba(15,23,42,.10), 0 2px 8px rgba(15,23,42,.06);
}

.qn-page-inner{
  position:absolute;
  inset:7mm 7mm 8mm 7mm;
  display:flex;
  flex-direction:column;
  min-height:0;
}
html[data-qn-ori="landscape"] .qn-page-inner{ inset:6mm 6mm 7mm 6mm; }

.qn-modern-header{
  border:1.5px solid #1f2937;
  border-radius:12px;
  padding:10px 12px 8px;
  background:linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85);
}
.qn-modern-header-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.qn-modern-brand,
.qn-modern-meta{
  width:30%;
  font-size:10.2pt;
  line-height:1.65;
}
.qn-modern-brand{ text-align:right; }
.qn-modern-meta{ text-align:left; }
.qn-modern-title-wrap{
  width:40%;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
}
.qn-modern-logo{
  width:42px;
  height:42px;
  object-fit:contain;
  display:block;
}
.qn-modern-school{
  font-size:15pt;
  font-weight:900;
  letter-spacing:.2px;
}
.qn-modern-title{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:180px;
  padding:6px 18px;
  border:2px solid #111827;
  border-radius:999px;
  font-size:13pt;
  font-weight:900;
  background:#fff;
}
.qn-modern-subline{
  margin-top:8px;
  padding-top:8px;
  border-top:1.5px solid #cfd8e3;
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:8px;
}
.qn-meta-chip{
  border:1px solid #d6dde7;
  border-radius:10px;
  padding:7px 10px;
  background:linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  font-size:10pt;
  min-height:40px;
}
.qn-meta-chip b{
  display:block;
  margin-bottom:2px;
  font-size:9pt;
  color:#475569;
  font-weight:800;
}
.qn-section-divider{
  height:0;
  border-top:2px solid #111827;
  margin:10px 1px 8px;
  opacity:.92;
}
.qn-body{
  flex:1;
  min-height:0;
  overflow:hidden;
  padding:0;
}
.qn-exam-content{
  height:100%;
  font-size:11.2pt;
  line-height:1.9;
  color:#111;
}
.qn-exam-item{
  border:1.5px solid #1f2937;
  border-radius:12px;
  overflow:hidden;
  margin:0 0 10px 0;
  background:#fff;
  break-inside:avoid;
  page-break-inside:avoid;
}
.qn-exam-item-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:8px 12px;
  background:#f8fafc;
  border-bottom:1.5px solid #cbd5e1;
}
.qn-exam-item-no{
  font-weight:900;
  font-size:10pt;
  white-space:nowrap;
}
.qn-exam-item-label{
  flex:1;
  text-align:right;
  font-weight:900;
  font-size:10.8pt;
}
.qn-exam-item-body{
  padding:10px 12px 12px;
  font-size:11pt;
  line-height:1.95;
}
.qn-exam-item-body img{
  max-width:100%;
  max-height:150px;
  object-fit:contain;
  border-radius:8px;
}
.qn-exam-item-body table{
  width:100%;
  border-collapse:collapse;
}
.qn-exam-item-body td,
.qn-exam-item-body th{
  border:1px solid #cbd5e1;
  padding:6px 8px;
}
.qn-exam-item-body p,
.qn-exam-item-body ul,
.qn-exam-item-body ol,
.qn-exam-item-body table,
.qn-exam-item-body .qn-block,
.qn-exam-item-body .question-block{
  margin-top:0;
  margin-bottom:10px;
}
.qn-footer{
  margin-top:8px;
  border-top:1.5px solid #cfd8e3;
  padding-top:6px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:9.8pt;
  color:#334155;
}
.qn-page-no{ font-weight:900; }

:root{
  --qn-zoom: 1;
  --qn-font: 15px;
  --qn-line: 1.85;
  --qn-pad: 10px;
  --qn-border: 2px;
  --qn-paper: A4;
  --qn-ori: portrait;
}

.qn-controls{
  background:#eee; padding:10px; border-radius:12px; margin:10px auto; max-width:21cm;
  display:flex; gap:12px; justify-content:center; align-items:center; flex-wrap:wrap;
  border:1px solid #ccc;
}
.qn-control-item{ display:flex; flex-direction:column; align-items:center; font-size:.85em; font-weight:900; color:#333; }
.qn-control-item input, .qn-control-item select{ margin-top:6px; cursor:pointer; }

.qn-sticky-controls{ position: sticky; top: 58px; z-index: 110; }
.qn-doc-viewport{ padding-bottom: 18px; }

body.qn-preview-open #qnPages{ zoom: var(--qn-zoom); }
body.qn-preview-open #qnPages .qn-page,
body.qn-exporting #qnPages .qn-page{ transform:none !important; }
body.qn-preview-open #qnPages .qn-exam-item,
body.qn-exporting #qnPages .qn-exam-item{ border-width: calc(var(--qn-border) * .75px) !important; }
body.qn-preview-open #qnPages .qn-exam-item-body,
body.qn-exporting #qnPages .qn-exam-item-body{
  font-size: var(--qn-font) !important;
  line-height: var(--qn-line) !important;
  padding: calc(var(--qn-pad) * 1px) !important;
}

@media print{
  html, body{ background:#fff !important; margin:0 !important; padding:0 !important; }
}

#qnPages .qn-modern-header,
#qnPages .qn-modern-brand,
#qnPages .qn-modern-meta,
#qnPages .qn-modern-title,
#qnPages .qn-exam-item-body,
#qnPages .qn-exam-item-head{
  color:#000 !important;
  opacity:1 !important;
  text-shadow:none !important;
}
#qnPages .qn-section-divider{ opacity:1 !important; }

.qn-fullscreen-modal{ overflow:hidden; }
.qn-fullscreen-box{ min-height:0; }
.qn-doc-viewport{
  min-height:0;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  touch-action: pan-x pan-y;
}
.qn-controls-scroll{
  max-height:45vh;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y;
}
@media print{
}

.qn-word-editor:empty:before{content:attr(data-placeholder);color:rgba(0,0,0,.35);}

/* --- Block Question (text + image) --- */
.qn-block{border:1px dashed rgba(0,0,0,.22);border-radius:12px;padding:10px;margin:10px 0;background:#fff;position:relative}
.qn-block[draggable="true"]{cursor:grab}
.qn-block.dragging{opacity:.55}
.qn-block-handle{font-size:13px;opacity:.75;margin-bottom:8px;user-select:none;display:flex;justify-content:space-between;align-items:center}
.qn-block-actions{display:flex;gap:6px}
.qn-block-text{min-height:44px;border:1px solid rgba(0,0,0,.12);border-radius:10px;padding:10px;background:#fff;color:#111;outline:none;line-height:1.8}
.qn-block-text:empty:before{content:attr(data-placeholder);color:rgba(0,0,0,.35)}
.qn-block-row{display:flex;gap:12px;align-items:flex-start}
.qn-block-row.right .qn-block-text{order:1;flex:1}
.qn-block-row.right .qn-block-media{order:2;width:38%}
.qn-block-row.left .qn-block-text{order:2;flex:1}
.qn-block-row.left .qn-block-media{order:1;width:38%}
.qn-block-media{min-width:140px}
.qn-block-media img{max-width:100%;height:auto;border-radius:10px;border:1px solid rgba(0,0,0,.12);display:block}
.qn-block-media .qn-media-placeholder{border:1px dashed rgba(0,0,0,.18);border-radius:10px;padding:10px;text-align:center;opacity:.8;font-size:13px;background:rgba(0,0,0,.02)}
.qn-mini{padding:8px 10px;font-size:13px;border-radius:10px}
.qn-select{padding:8px 10px;border-radius:10px;border:1px solid rgba(0,0,0,.18);background:#fff}
.page-break{break-after:page;page-break-after:always;height:0;border-top:1px dashed rgba(0,0,0,.12);margin:14px 0}

.qnHeaderFields{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 12px 0}
.qnSmallInput{flex:1;min-width:150px}
.qnChk{display:flex;align-items:center;gap:6px;padding:10px 12px;border:1px solid rgba(0,0,0,.18);border-radius:12px;background:#fff;color:#000}
.qnSelect{padding:10px 12px;border-radius:12px;border:1px solid rgba(0,0,0,.18);background:#fff;color:#000;min-width:130px}
.qn-logo{width:44px;height:44px;object-fit:contain;display:block;margin-bottom:6px}

/* === Board green button: open student docs inside Grades list (no flashback) === */
.board-docs-btn{
  width:100%;
  margin-top:12px;
  padding:16px 14px;
  border:none;
  border-radius:12px;
  background: linear-gradient(90deg, var(--accent2,#2e7d32), color-mix(in srgb,var(--accent2,#43a047) 80%,#fff 20%));
  color:#fff;
  font-size:1.1em;
  font-weight:900;
  cursor:pointer;
  box-shadow: var(--shadow);
  display:flex;
  justify-content:center;
  align-items:center;
  gap:8px;
}
.board-docs-btn:active{ transform: scale(0.98); }

/* --- QN Print/Export overrides (modern + safe) --- */
#qnPages .qn-page-inner{ inset:7mm 7mm 8mm 7mm; }
#qnPages .qn-exam-item-body .qn-line{ border-bottom:1px dotted #333 !important; height:18px !important; margin:10px 0 0 0 !important; }
@media print{
  body.qn-exporting .qn-controls,
  body.qn-exporting #qnExportPanel,
  body.qn-exporting .qn-toolbar,
  body.qn-exporting .qn-btnbar,
  body.qn-exporting .qn-fab,
  body.qn-exporting .app-header,
  body.qn-exporting .sidebar,
  body.qn-exporting .no-print{ display:none !important; }
  body.qn-exporting{ background:#fff !important; }
  #qnPages{ padding:0 !important; margin:0 auto !important; }
  .qn-page{ page-break-after:always; }
  @page { margin: 8mm; size: A4; }
}

/* ===== Export/Preview Toolbar (Mobile + Desktop) ===== */
#export-overlay .export-header{
  text-align:center;
  padding:10px;
  background:#444;
  position:sticky;
  top:0;
  z-index:10000;
}
#export-overlay .export-toolbar{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:10px;
  flex-wrap:nowrap;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  padding:6px 10px;
}
#export-overlay .export-toolbar::-webkit-scrollbar{ height:6px; }
#export-overlay .export-toolbar::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.35); border-radius:10px; }
#export-overlay .export-toolbar::-webkit-scrollbar-track{ background:rgba(0,0,0,.15); border-radius:10px; }

#export-overlay .export-btn{
  border:none;
  border-radius:18px;
  font-weight:800;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  white-space:nowrap;
  word-break:keep-all;
  line-height:1;
  padding:8px 18px;
  font-size:15px;
  min-width:max-content;
  user-select:none;
}
/* Icon-only export toolbar (mobile/desktop) */
.export-toolbar.icon-only .export-btn{
  width:44px;
  height:44px;
  min-width:44px;
  padding:0;
  border-radius:999px;
  font-size:18px;
  gap:0;
}
.export-toolbar.icon-only .export-btn:active{ transform: scale(0.98); }

#export-overlay .export-btn:active{ transform:scale(0.98); }

#export-overlay .btn-close{ background:#fff; color:#333; }
#export-overlay .btn-print{ background:#d32f2f; color:#fff; }
#export-overlay .btn-pdf{ background:#1976d2; color:#fff; }
#export-overlay .btn-excel{ background:#2e7d32; color:#fff; }
#export-overlay .btn-edit{ background:#6a4c93; color:#fff; }
#export-overlay .btn-png{ background:#457b9d; color:#fff; }

@media (max-width: 480px){
  #export-overlay .export-toolbar{ gap:8px; }
  #export-overlay .export-btn{
    padding:10px 14px;
    font-size:14px;
    border-radius:16px;
  }
}
@media (max-width: 360px){
  #export-overlay .export-btn{
    padding:10px 12px;
    font-size:13px;
  }
}
/* ===== End Export Toolbar ===== */


.export-btn.btn-cancel{background:#6c757d;color:#fff;}

/* === V23 Ultra Modal (Kurdish) === */
#v23UltraModal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:100010;background:rgba(0,0,0,.55);backdrop-filter: blur(2px);}
#v23UltraModal .v23m-box{width:min(92vw,460px);background:#fff;border-radius:18px;box-shadow:0 20px 60px rgba(0,0,0,.35);overflow:hidden;font-family: system-ui, -apple-system, "Segoe UI", Arial;}
#v23UltraModal .v23m-head{padding:14px 16px;border-bottom:1px solid rgba(0,0,0,.08);display:flex;align-items:center;justify-content:space-between;gap:10px}
#v23UltraModal .v23m-title{font-weight:800;font-size:15px;color:#111;opacity:.9}
#v23UltraModal .v23m-close{border:0;background:transparent;font-size:20px;line-height:1;cursor:pointer;padding:6px 10px;border-radius:10px}
#v23UltraModal .v23m-close:active{transform:scale(.98)}
#v23UltraModal .v23m-body{padding:14px 16px;color:#111;font-size:15px;line-height:1.8;direction:rtl;text-align:right;white-space:pre-wrap}
#v23UltraModal .v23m-input{width:100%;margin-top:10px;padding:10px 12px;border:1px solid rgba(0,0,0,.15);border-radius:12px;font-size:15px;direction:rtl}
#v23UltraModal .v23m-actions{display:flex;gap:10px;justify-content:flex-end;padding:14px 16px;border-top:1px solid rgba(0,0,0,.08);background:rgba(0,0,0,.02)}
#v23UltraModal .v23m-btn{border:0;border-radius:12px;padding:10px 14px;font-weight:800;font-size:14px;cursor:pointer}
#v23UltraModal .v23m-btn:active{transform:scale(.99)}
#v23UltraModal .v23m-cancel{background:#e9edf3;color:#111}
#v23UltraModal .v23m-ok{background:#2563eb;color:#fff}


.customer-mode #ownerPanelCard{display:none !important;}


/* ===== v23-print-engine-v6 ===== */

@media print{
  @page{ size:A4; margin:0 !important; }
  html, body{ margin:0 !important; padding:0 !important; background:#fff !important; }
  #export-container, .export-content, .v23page, .v23hdr, .v23txt{
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
  }
  .export-content{ width:210mm !important; min-height:297mm !important; margin:0 auto !important; padding:0 !important; background:#fff !important; box-shadow:none !important; border:0 !important; }
  .v23page{ width:210mm !important; min-height:297mm !important; margin:0 auto !important; padding-top:var(--v23-page-pt, 8mm) !important; padding-bottom:var(--v23-page-pb, 8mm) !important; padding-left:var(--v23-page-ps, 8mm) !important; padding-right:var(--v23-page-ps, 8mm) !important; background:#fff !important; border:0 !important; box-shadow: inset 0 0 0 var(--v23-page-bw, 1px) var(--v23-page-bc, rgba(0,0,0,.16)) !important; }
  .v23hdr{ background:var(--v23-hdr-bg, rgba(255,255,255,.86)) !important; background-image:var(--v23-hdr-g, linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.80))) !important; border:var(--v23-hdr-bd, 1px solid rgba(0,0,0,.10)) !important; border-radius:var(--v23-hdr-br, 10px) !important; padding:var(--v23-hdr-pd, 4mm) !important; box-shadow:var(--v23-hdr-sh, 0 1px 5px rgba(0,0,0,.06)) !important; backdrop-filter:none !important; -webkit-backdrop-filter:none !important; }
  .v23txt{ margin:0 0 var(--v23-gap-qq, 2mm) 0 !important; border:var(--v23-box-bd, none) !important; border-radius:var(--v23-box-br, 0) !important; padding:var(--v23-box-pd, 0) !important; background:var(--v23-box-bg, transparent) !important; box-shadow:var(--v23-box-sh, none) !important; page-break-inside:avoid !important; }
}

/* ===== v10-master-qn-print-fix ===== */

/* v10 master: minimal questionnaire print-flow fix based on the stable base file */
@media print{
  @page{ margin: 7mm; size: A4; }

  body.qn-exporting #qnPages,
  body.qn-exporting .qn-pages,
  body.qn-exporting .qn-print-root{
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
    gap:0 !important;
    background:#fff !important;
  }

  body.qn-exporting #qnPages .qn-page,
  body.qn-toolbar-mode #qnPages .qn-page{
    width:auto !important;
    max-width:196mm !important;
    height:auto !important;
    min-height:0 !important;
    overflow:visible !important;
    page-break-after:auto !important;
    break-after:auto !important;
    page-break-inside:auto !important;
    border:none !important;
    border-radius:0 !important;
    box-shadow:none !important;
    background:#fff !important;
  }

  body.qn-exporting #qnPages .qn-page:not(:last-child),
  body.qn-toolbar-mode #qnPages .qn-page:not(:last-child){
    page-break-after:always !important;
    break-after:page !important;
  }

  body.qn-exporting #qnPages .qn-page:last-child,
  body.qn-toolbar-mode #qnPages .qn-page:last-child{
    page-break-after:auto !important;
    break-after:auto !important;
  }

  body.qn-exporting #qnPages .qn-page-inner,
  body.qn-toolbar-mode #qnPages .qn-page-inner{
    position:static !important;
    inset:auto !important;
    min-height:0 !important;
    padding:5mm 5mm 0 5mm !important;
    display:block !important;
  }

  body.qn-exporting #qnPages .qn-body,
  body.qn-exporting #qnPages .qn-exam-content,
  body.qn-toolbar-mode #qnPages .qn-body,
  body.qn-toolbar-mode #qnPages .qn-exam-content{
    height:auto !important;
    min-height:0 !important;
    overflow:visible !important;
  }

  body.qn-exporting #qnPages .qn-modern-header,
  body.qn-toolbar-mode #qnPages .qn-modern-header{
    padding:6px 9px 5px !important;
    border-radius:10px !important;
    margin-bottom:6px !important;
    background:#fff !important;
  }

  body.qn-exporting #qnPages .qn-modern-header-top,
  body.qn-toolbar-mode #qnPages .qn-modern-header-top{
    gap:6px !important;
    align-items:flex-start !important;
  }

  body.qn-exporting #qnPages .qn-modern-brand,
  body.qn-exporting #qnPages .qn-modern-meta,
  body.qn-toolbar-mode #qnPages .qn-modern-brand,
  body.qn-toolbar-mode #qnPages .qn-modern-meta{
    font-size:8.8pt !important;
    line-height:1.35 !important;
    width:31% !important;
  }

  body.qn-exporting #qnPages .qn-modern-title-wrap,
  body.qn-toolbar-mode #qnPages .qn-modern-title-wrap{
    gap:3px !important;
    width:38% !important;
  }

  body.qn-exporting #qnPages .qn-modern-logo,
  body.qn-toolbar-mode #qnPages .qn-modern-logo{
    width:28px !important;
    height:28px !important;
  }

  body.qn-exporting #qnPages .qn-modern-school,
  body.qn-toolbar-mode #qnPages .qn-modern-school{
    font-size:11pt !important;
  }

  body.qn-exporting #qnPages .qn-modern-title,
  body.qn-toolbar-mode #qnPages .qn-modern-title{
    min-width:120px !important;
    padding:3px 10px !important;
    font-size:10.2pt !important;
    border-width:1.5px !important;
  }

  body.qn-exporting #qnPages .qn-modern-subline,
  body.qn-toolbar-mode #qnPages .qn-modern-subline{
    margin-top:5px !important;
    padding-top:5px !important;
    gap:5px !important;
  }

  body.qn-exporting #qnPages .qn-meta-chip,
  body.qn-toolbar-mode #qnPages .qn-meta-chip{
    min-height:28px !important;
    padding:4px 6px !important;
    font-size:8.2pt !important;
    border-radius:8px !important;
  }

  body.qn-exporting #qnPages .qn-meta-chip b,
  body.qn-toolbar-mode #qnPages .qn-meta-chip b{
    margin-bottom:1px !important;
    font-size:7.6pt !important;
  }

  body.qn-exporting #qnPages .qn-section-divider,
  body.qn-toolbar-mode #qnPages .qn-section-divider{
    margin:6px 0 5px !important;
  }

  body.qn-exporting #qnPages .qn-exam-content,
  body.qn-toolbar-mode #qnPages .qn-exam-content{
    font-size:10pt !important;
    line-height:1.38 !important;
  }

  body.qn-exporting #qnPages .qn-exam-item,
  body.qn-toolbar-mode #qnPages .qn-exam-item{
    margin:0 0 4px 0 !important;
    border-width:1px !important;
    border-radius:9px !important;
    break-inside:avoid !important;
    page-break-inside:avoid !important;
  }

  body.qn-exporting #qnPages .qn-exam-item-head,
  body.qn-toolbar-mode #qnPages .qn-exam-item-head{
    padding:4px 8px !important;
    gap:6px !important;
    border-bottom-width:1px !important;
  }

  body.qn-exporting #qnPages .qn-exam-item-no,
  body.qn-toolbar-mode #qnPages .qn-exam-item-no{
    font-size:8.8pt !important;
  }

  body.qn-exporting #qnPages .qn-exam-item-label,
  body.qn-toolbar-mode #qnPages .qn-exam-item-label{
    font-size:9.1pt !important;
  }

  body.qn-exporting #qnPages .qn-exam-item-body,
  body.qn-toolbar-mode #qnPages .qn-exam-item-body{
    padding:4px 8px 5px !important;
    font-size:9.6pt !important;
    line-height:1.36 !important;
  }

  body.qn-exporting #qnPages .qn-exam-item-body p,
  body.qn-exporting #qnPages .qn-exam-item-body ul,
  body.qn-exporting #qnPages .qn-exam-item-body ol,
  body.qn-exporting #qnPages .qn-exam-item-body table,
  body.qn-exporting #qnPages .qn-exam-item-body .qn-block,
  body.qn-exporting #qnPages .qn-exam-item-body .question-block,
  body.qn-toolbar-mode #qnPages .qn-exam-item-body p,
  body.qn-toolbar-mode #qnPages .qn-exam-item-body ul,
  body.qn-toolbar-mode #qnPages .qn-exam-item-body ol,
  body.qn-toolbar-mode #qnPages .qn-exam-item-body table,
  body.qn-toolbar-mode #qnPages .qn-exam-item-body .qn-block,
  body.qn-toolbar-mode #qnPages .qn-exam-item-body .question-block{
    margin-bottom:4px !important;
  }

  body.qn-exporting #qnPages .qn-footer,
  body.qn-exporting #qnPages .qn-page-no,
  body.qn-exporting #qnPages .v23pb,
  body.qn-toolbar-mode #qnPages .qn-footer,
  body.qn-toolbar-mode #qnPages .qn-page-no,
  body.qn-toolbar-mode #qnPages .v23pb{
    display:none !important;
  }
}

/* ===== v10-qn-smart-fit-print-fix ===== */

@media print{
  body.qn-smartfit-1 #qnPages .qn-modern-header,
  body.qn-smartfit-1 #qnPages .qn-modern-subline,
  body.qn-smartfit-1 #qnPages .qn-section-divider,
  body.qn-smartfit-1 #qnPages .qn-exam-item,
  body.qn-smartfit-1 #qnPages .qn-exam-item-head,
  body.qn-smartfit-1 #qnPages .qn-exam-item-body,
  body.qn-smartfit-1 #qnPages .qn-exam-item-body p,
  body.qn-smartfit-1 #qnPages .qn-exam-item-body ul,
  body.qn-smartfit-1 #qnPages .qn-exam-item-body ol,
  body.qn-smartfit-1 #qnPages .qn-exam-item-body table,
  body.qn-smartfit-1 #qnPages .qn-exam-item-body .qn-block,
  body.qn-smartfit-1 #qnPages .qn-exam-item-body .question-block,
  body.qn-smartfit-2 #qnPages .qn-modern-header,
  body.qn-smartfit-2 #qnPages .qn-modern-subline,
  body.qn-smartfit-2 #qnPages .qn-section-divider,
  body.qn-smartfit-2 #qnPages .qn-exam-item,
  body.qn-smartfit-2 #qnPages .qn-exam-item-head,
  body.qn-smartfit-2 #qnPages .qn-exam-item-body,
  body.qn-smartfit-2 #qnPages .qn-exam-item-body p,
  body.qn-smartfit-2 #qnPages .qn-exam-item-body ul,
  body.qn-smartfit-2 #qnPages .qn-exam-item-body ol,
  body.qn-smartfit-2 #qnPages .qn-exam-item-body table,
  body.qn-smartfit-2 #qnPages .qn-exam-item-body .qn-block,
  body.qn-smartfit-2 #qnPages .qn-exam-item-body .question-block,
  body.qn-smartfit-3 #qnPages .qn-modern-header,
  body.qn-smartfit-3 #qnPages .qn-modern-subline,
  body.qn-smartfit-3 #qnPages .qn-section-divider,
  body.qn-smartfit-3 #qnPages .qn-exam-item,
  body.qn-smartfit-3 #qnPages .qn-exam-item-head,
  body.qn-smartfit-3 #qnPages .qn-exam-item-body,
  body.qn-smartfit-3 #qnPages .qn-exam-item-body p,
  body.qn-smartfit-3 #qnPages .qn-exam-item-body ul,
  body.qn-smartfit-3 #qnPages .qn-exam-item-body ol,
  body.qn-smartfit-3 #qnPages .qn-exam-item-body table,
  body.qn-smartfit-3 #qnPages .qn-exam-item-body .qn-block,
  body.qn-smartfit-3 #qnPages .qn-exam-item-body .question-block{ }

  body.qn-smartfit-1 #qnPages .qn-page-inner{ inset:4.2mm 4.4mm 5mm 4.4mm !important; }
  body.qn-smartfit-1 #qnPages .qn-modern-header{ padding:5px 8px 4px !important; margin-bottom:4px !important; }
  body.qn-smartfit-1 #qnPages .qn-modern-brand,
  body.qn-smartfit-1 #qnPages .qn-modern-meta{ font-size:8.4pt !important; line-height:1.26 !important; }
  body.qn-smartfit-1 #qnPages .qn-modern-title{ font-size:9.5pt !important; padding:2px 8px !important; }
  body.qn-smartfit-1 #qnPages .qn-modern-subline{ margin-top:4px !important; padding-top:4px !important; gap:4px !important; }
  body.qn-smartfit-1 #qnPages .qn-meta-chip{ min-height:24px !important; padding:3px 5px !important; font-size:7.8pt !important; }
  body.qn-smartfit-1 #qnPages .qn-meta-chip b{ font-size:7.1pt !important; }
  body.qn-smartfit-1 #qnPages .qn-section-divider{ margin:4px 0 3px !important; }
  body.qn-smartfit-1 #qnPages .qn-exam-content{ font-size:9.4pt !important; line-height:1.24 !important; }
  body.qn-smartfit-1 #qnPages .qn-exam-item{ margin:0 0 2px 0 !important; border-radius:7px !important; }
  body.qn-smartfit-1 #qnPages .qn-exam-item-head{ padding:3px 6px !important; gap:4px !important; }
  body.qn-smartfit-1 #qnPages .qn-exam-item-no{ font-size:8.2pt !important; }
  body.qn-smartfit-1 #qnPages .qn-exam-item-label{ font-size:8.5pt !important; }
  body.qn-smartfit-1 #qnPages .qn-exam-item-body{ padding:3px 6px 3px !important; font-size:9.0pt !important; line-height:1.22 !important; }
  body.qn-smartfit-1 #qnPages .qn-exam-item-body p,
  body.qn-smartfit-1 #qnPages .qn-exam-item-body ul,
  body.qn-smartfit-1 #qnPages .qn-exam-item-body ol,
  body.qn-smartfit-1 #qnPages .qn-exam-item-body table,
  body.qn-smartfit-1 #qnPages .qn-exam-item-body .qn-block,
  body.qn-smartfit-1 #qnPages .qn-exam-item-body .question-block{ margin-bottom:2px !important; }

  body.qn-smartfit-2 #qnPages .qn-page-inner{ inset:3.5mm 3.9mm 4.1mm 3.9mm !important; }
  body.qn-smartfit-2 #qnPages .qn-modern-header{ padding:4px 7px 3px !important; margin-bottom:3px !important; }
  body.qn-smartfit-2 #qnPages .qn-modern-brand,
  body.qn-smartfit-2 #qnPages .qn-modern-meta{ font-size:7.9pt !important; line-height:1.18 !important; }
  body.qn-smartfit-2 #qnPages .qn-modern-title{ font-size:9.0pt !important; padding:2px 7px !important; }
  body.qn-smartfit-2 #qnPages .qn-modern-subline{ margin-top:3px !important; padding-top:3px !important; gap:3px !important; }
  body.qn-smartfit-2 #qnPages .qn-meta-chip{ min-height:21px !important; padding:2px 4px !important; font-size:7.2pt !important; }
  body.qn-smartfit-2 #qnPages .qn-meta-chip b{ font-size:6.7pt !important; }
  body.qn-smartfit-2 #qnPages .qn-section-divider{ margin:3px 0 2px !important; }
  body.qn-smartfit-2 #qnPages .qn-exam-content{ font-size:8.8pt !important; line-height:1.14 !important; }
  body.qn-smartfit-2 #qnPages .qn-exam-item{ margin:0 0 1px 0 !important; border-radius:6px !important; }
  body.qn-smartfit-2 #qnPages .qn-exam-item-head{ padding:2px 5px !important; gap:3px !important; }
  body.qn-smartfit-2 #qnPages .qn-exam-item-no{ font-size:7.7pt !important; }
  body.qn-smartfit-2 #qnPages .qn-exam-item-label{ font-size:8.0pt !important; }
  body.qn-smartfit-2 #qnPages .qn-exam-item-body{ padding:2px 5px 2px !important; font-size:8.5pt !important; line-height:1.12 !important; }
  body.qn-smartfit-2 #qnPages .qn-exam-item-body p,
  body.qn-smartfit-2 #qnPages .qn-exam-item-body ul,
  body.qn-smartfit-2 #qnPages .qn-exam-item-body ol,
  body.qn-smartfit-2 #qnPages .qn-exam-item-body table,
  body.qn-smartfit-2 #qnPages .qn-exam-item-body .qn-block,
  body.qn-smartfit-2 #qnPages .qn-exam-item-body .question-block{ margin-bottom:1px !important; }

  body.qn-smartfit-3 #qnPages .qn-page-inner{ inset:2.8mm 3.1mm 3.2mm 3.1mm !important; }
  body.qn-smartfit-3 #qnPages .qn-modern-header{ padding:3px 6px 2px !important; margin-bottom:2px !important; border-radius:9px !important; }
  body.qn-smartfit-3 #qnPages .qn-modern-brand,
  body.qn-smartfit-3 #qnPages .qn-modern-meta{ font-size:7.2pt !important; line-height:1.08 !important; }
  body.qn-smartfit-3 #qnPages .qn-modern-title{ font-size:8.4pt !important; padding:1px 6px !important; }
  body.qn-smartfit-3 #qnPages .qn-modern-subline{ margin-top:2px !important; padding-top:2px !important; gap:2px !important; }
  body.qn-smartfit-3 #qnPages .qn-meta-chip{ min-height:18px !important; padding:1px 4px !important; font-size:6.7pt !important; border-radius:6px !important; }
  body.qn-smartfit-3 #qnPages .qn-meta-chip b{ font-size:6.2pt !important; }
  body.qn-smartfit-3 #qnPages .qn-section-divider{ margin:2px 0 1px !important; }
  body.qn-smartfit-3 #qnPages .qn-exam-content{ font-size:8.15pt !important; line-height:1.05 !important; }
  body.qn-smartfit-3 #qnPages .qn-exam-item{ margin:0 0 1px 0 !important; border-radius:5px !important; border-width:1px !important; }
  body.qn-smartfit-3 #qnPages .qn-exam-item-head{ padding:1px 4px !important; gap:2px !important; }
  body.qn-smartfit-3 #qnPages .qn-exam-item-no{ font-size:7.2pt !important; }
  body.qn-smartfit-3 #qnPages .qn-exam-item-label{ font-size:7.5pt !important; }
  body.qn-smartfit-3 #qnPages .qn-exam-item-body{ padding:1px 4px 1px !important; font-size:7.9pt !important; line-height:1.02 !important; }
  body.qn-smartfit-3 #qnPages .qn-exam-item-body p,
  body.qn-smartfit-3 #qnPages .qn-exam-item-body ul,
  body.qn-smartfit-3 #qnPages .qn-exam-item-body ol,
  body.qn-smartfit-3 #qnPages .qn-exam-item-body table,
  body.qn-smartfit-3 #qnPages .qn-exam-item-body .qn-block,
  body.qn-smartfit-3 #qnPages .qn-exam-item-body .question-block{ margin-bottom:0 !important; }

  html[data-qn-paper="Letter"][data-qn-ori="portrait"] body.qn-smartfit-2 #qnPages .qn-page-inner,
  html[data-qn-paper="Letter"][data-qn-ori="portrait"] body.qn-smartfit-3 #qnPages .qn-page-inner{ inset:2.4mm 2.7mm 2.8mm 2.7mm !important; }
}

/* ===== final-grade-cert-print-fix ===== */

@media print{
  /* only grade list / certificate print surfaces; do not touch questionnaire sizing */
  @page{ size:A4; margin:16mm 16mm 18mm 16mm !important; }

  /* hide print tools and modal chrome from paper */
  .export-header,
  .export-toolbar,
  .export-btn,
  #btnExcelPreview,
  #btnEditPreview,
  #btnCancelPreview,
  #btnFastMode,
  .v23-stylebar,
  .v23-toolbar,
  .v23-ico,
  .v23-style-sep,
  .toolbar,
  .tools,
  .actions,
  .topbar,
  .navbar,
  header{
    display:none !important;
  }

  html, body{
    background:#fff !important;
  }

  #v23UltraModal,
  .v23m-box,
  .v23m-head,
  .v23m-body,
  .v23m-actions{
    display:none !important;
    visibility:hidden !important;
  }

  #export-container{
    padding:0 !important;
    margin:0 !important;
    background:#fff !important;
  }

  .export-content{
    width:auto !important;
    min-height:auto !important;
    margin:0 auto !important;
    padding:14mm 16mm 16mm 16mm !important;
    box-sizing:border-box !important;
    background:#fff !important;
    box-shadow:none !important;
    border:0 !important;
  }

  .v23page{
    width:auto !important;
    min-height:auto !important;
    height:auto !important;
    margin:0 auto 6mm auto !important;
    padding-top:max(14mm, var(--v23-page-pt, 8mm)) !important;
    padding-bottom:max(16mm, var(--v23-page-pb, 8mm)) !important;
    padding-left:max(16mm, var(--v23-page-ps, 8mm)) !important;
    padding-right:max(16mm, var(--v23-page-ps, 8mm)) !important;
    box-sizing:border-box !important;
    background:#fff !important;
    border:0 !important;
    box-shadow:none !important;
  }

  .export-content table,
  .v23page table{
    width:100% !important;
  }

  .export-content th,
  .export-content td,
  .v23page th,
  .v23page td{
    padding:6px 4px !important;
  }
}

/* ===== css/03-ultra-stable-v8-print.css ===== */
/* ===== ultra-stable-v8-print ===== */

@media print{
body:not(.qn-exporting):not(.qn-printing){background:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
body:not(.qn-exporting):not(.qn-printing) #export-container{width:auto!important;max-width:none!important;margin:0!important;padding:0!important;min-height:auto!important;height:auto!important;overflow:visible!important;background:#fff!important}
body:not(.qn-exporting):not(.qn-printing) .export-content,body:not(.qn-exporting):not(.qn-printing) .v23page,body:not(.qn-exporting):not(.qn-printing) .print-page,body:not(.qn-exporting):not(.qn-printing) .tp-sheet,body:not(.qn-exporting):not(.qn-printing) .certificate-shell{width:auto!important;max-width:none!important;min-height:auto!important;height:auto!important;page-break-before:auto!important;break-before:auto!important;page-break-after:auto!important;break-after:auto!important;page-break-inside:auto!important;break-inside:auto!important;box-shadow:none!important;border:0!important}
body:not(.qn-exporting):not(.qn-printing) .export-content{margin:0!important;padding:12mm 12mm 14mm 12mm!important;box-sizing:border-box!important;background:#fff!important}
body:not(.qn-exporting):not(.qn-printing) .v23page{margin:0 auto 3mm!important;padding-top:max(12mm,var(--v23-page-pt,8mm))!important;padding-bottom:max(14mm,var(--v23-page-pb,8mm))!important;padding-left:max(12mm,var(--v23-page-ps,8mm))!important;padding-right:max(12mm,var(--v23-page-ps,8mm))!important;box-sizing:border-box!important;box-shadow:none!important}
body:not(.qn-exporting):not(.qn-printing) .formal-header,body:not(.qn-exporting):not(.qn-printing) .v23hdr,body:not(.qn-exporting):not(.qn-printing) .certificate-header,body:not(.qn-exporting):not(.qn-printing) .tp-header{margin:0 0 7mm!important;padding:2mm 2mm 3mm!important;page-break-inside:avoid!important;break-inside:avoid!important}
body:not(.qn-exporting):not(.qn-printing) .formal-header img,body:not(.qn-exporting):not(.qn-printing) .v23hdr img,body:not(.qn-exporting):not(.qn-printing) .certificate-header img,body:not(.qn-exporting):not(.qn-printing) .tp-header img{max-height:18mm!important;object-fit:contain!important}
body:not(.qn-exporting):not(.qn-printing) .page-break:empty,body:not(.qn-exporting):not(.qn-printing) .v23pb:empty{display:none!important}
body:not(.qn-exporting):not(.qn-printing) .export-content>:last-child,body:not(.qn-exporting):not(.qn-printing) .v23page>:last-child{margin-bottom:0!important}
@page{size:A4;margin:12mm 12mm 14mm 12mm!important}
}

/* ===== css/04-ultra-fast-v10-hints.css ===== */
/* ===== 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}}

/* ===== css/05-ss-v82-readable-contrast-fix.css ===== */
/* ===== ss-v82-readable-contrast-fix ===== */

/* V81 goal: dark backgrounds must never use dark purple text. Keep light cards readable too. */
body.dark-mode{
  --text-main:#f8f7ff!important;
  --text-sec:#e3dcff!important;
  --muted:#e3dcff!important;
  --card:rgba(16,22,36,.94)!important;
  --card-strong:rgba(18,25,42,.98)!important;
  --input-bg:rgba(12,18,31,.96)!important;
}
body.dark-mode,
body.dark-mode .container,
body.dark-mode .collapsible-content,
body.dark-mode .control-panel,
body.dark-mode .dashboard-card,
body.dark-mode .analytics-card,
body.dark-mode .chart-card,
body.dark-mode .stat-card,
body.dark-mode .pro-card,
body.dark-mode .ss-an-shell,
body.dark-mode .ss-an-hero,
body.dark-mode .ss-an-card,
body.dark-mode .ss-an-kpi,
body.dark-mode .ss-teacher-aggregate,
body.dark-mode .ss-an-teacher-aggregate,
body.dark-mode [data-teacher-aggregate]{
  color:#f8f7ff!important;
}
body.dark-mode .collapsible-content,
body.dark-mode .control-panel,
body.dark-mode .dashboard-card,
body.dark-mode .analytics-card,
body.dark-mode .chart-card,
body.dark-mode .stat-card,
body.dark-mode .pro-card,
body.dark-mode .ss-an-hero,
body.dark-mode .ss-an-card,
body.dark-mode .ss-an-kpi,
body.dark-mode .ss-teacher-aggregate,
body.dark-mode .ss-an-teacher-aggregate,
body.dark-mode [data-teacher-aggregate]{
  background:linear-gradient(145deg,rgba(17,24,39,.96),rgba(10,15,28,.96))!important;
  border-color:rgba(160,190,255,.26)!important;
  box-shadow:0 18px 55px rgba(0,0,0,.48), inset 0 1px 0 rgba(255,255,255,.08)!important;
}
body.dark-mode .collapsible-content *:not(button):not(.eval-btn):not(.season-btn):not(.toggle-btn):not(input):not(select):not(textarea),
body.dark-mode .dashboard-card *:not(button):not(.eval-btn):not(.season-btn):not(.toggle-btn):not(input):not(select):not(textarea),
body.dark-mode .analytics-card *:not(button):not(.eval-btn):not(.season-btn):not(.toggle-btn):not(input):not(select):not(textarea),
body.dark-mode .chart-card *:not(button):not(.eval-btn):not(.season-btn):not(.toggle-btn):not(input):not(select):not(textarea),
body.dark-mode .stat-card *:not(button):not(.eval-btn):not(.season-btn):not(.toggle-btn):not(input):not(select):not(textarea),
body.dark-mode .pro-card *:not(button):not(.eval-btn):not(.season-btn):not(.toggle-btn):not(input):not(select):not(textarea),
body.dark-mode .ss-an-shell *:not(button):not(.eval-btn):not(.season-btn):not(.toggle-btn):not(input):not(select):not(textarea){
  color:inherit;
}
body.dark-mode p,
body.dark-mode .sub,
body.dark-mode .desc,
body.dark-mode .muted,
body.dark-mode .hint,
body.dark-mode .ss-an-muted,
body.dark-mode .ss-an-sub,
body.dark-mode .ss-an-report,
body.dark-mode .ss-an-legend-item,
body.dark-mode .ss-an-card-subtitle,
body.dark-mode .ss-an-meta,
body.dark-mode small{
  color:#ddd6ff!important;
}
body.dark-mode h1,
body.dark-mode h2,
body.dark-mode h3,
body.dark-mode h4,
body.dark-mode .card-title,
body.dark-mode .section-title,
body.dark-mode .ss-an-card-title,
body.dark-mode .ss-an-kpi-number,
body.dark-mode .ss-an-kpi-title,
body.dark-mode .ss-an-teacher-name{
  color:#ffffff!important;
  text-shadow:0 2px 12px rgba(0,0,0,.45)!important;
}
body.dark-mode input,
body.dark-mode select,
body.dark-mode textarea{
  background:rgba(255,255,255,.96)!important;
  color:#10001f!important;
  border-color:rgba(167,139,250,.22)!important;
}
body.dark-mode .ss-select-btn{
  background:rgba(6,4,20,0.92)!important;
  color:#fff!important;
  border-color:rgba(99,70,255,0.45)!important;
}
body.dark-mode input::placeholder,
body.dark-mode textarea::placeholder{color:#6b5a80!important;}
body.dark-mode .toggle-btn{
  color:#fff!important;
  text-shadow:0 2px 10px rgba(0,0,0,.45)!important;
  background:linear-gradient(100deg,var(--primary) 0%,var(--primary-mid,var(--primary)) 52%,var(--accent,#be185d) 100%)!important;
}
body.dark-mode .ss-an-track,
body.dark-mode .progress-track,
body.dark-mode .bar-track{background:rgba(226,232,240,.16)!important;}
body.dark-mode .ss-an-bar-row,
body.dark-mode .ss-an-grade-row,
body.dark-mode .ss-an-role-row,
body.dark-mode .ss-an-teacher-row,
body.dark-mode .ss-an-subject-card,
body.dark-mode .ss-an-insight,
body.dark-mode .ss-an-legend-item{
  background:rgba(255,255,255,.055)!important;
  color:#f8f7ff!important;
  border-color:rgba(255,255,255,.12)!important;
}
/* Landscape phones: keep dark text readable and prevent giant clipped headlines. */
@media (orientation: landscape) and (max-height: 620px){
  body.ss-mobile-ui{padding:8px!important;overflow-x:hidden!important;}
  body.ss-mobile-ui .container{width:min(100%, 1040px)!important;max-width:calc(100vw - 16px)!important;margin:0 auto!important;}
  body.ss-mobile-ui .collapsible-content,
  body.ss-mobile-ui .control-panel,
  body.ss-mobile-ui .dashboard-card,
  body.ss-mobile-ui .analytics-card,
  body.ss-mobile-ui .chart-card,
  body.ss-mobile-ui .stat-card,
  body.ss-mobile-ui .pro-card,
  body.ss-mobile-ui .ss-an-hero,
  body.ss-mobile-ui .ss-an-card{
    overflow:hidden!important;
  }
  body.ss-mobile-ui h1, body.ss-mobile-ui h2, body.ss-mobile-ui h3,
  body.ss-mobile-ui .section-title, body.ss-mobile-ui .card-title,
  body.ss-mobile-ui .ss-an-card-title{
    font-size:clamp(1.05rem,2.8vw,1.65rem)!important;
    line-height:1.55!important;
    overflow-wrap:anywhere!important;
  }
  body.ss-mobile-ui p,
  body.ss-mobile-ui .ss-an-report,
  body.ss-mobile-ui .ss-an-sub,
  body.ss-mobile-ui .ss-an-muted{
    font-size:clamp(.88rem,2.15vw,1.08rem)!important;
    line-height:1.9!important;
  }
}
/* When a dark card is shown even in light mode, enforce contrast on that local surface. */
[style*="background: #000"], [style*="background:#000"], [style*="background: black"], [style*="background:black"],
.dark-card, .glass-dark, .neo-dark{
  color:#f8f7ff!important;
}
.dark-card *, .glass-dark *, .neo-dark *{color:inherit;}

/* ===== ss-v90-unified-control-ui ===== */

/* SmartSchool V90 — Unified Control UI base (glass dark AMOLED) */
:root{
  --ss90-surface-hero: linear-gradient(115deg, rgba(129,142,163,.34) 0%, rgba(46,56,78,.72) 34%, rgba(106,118,138,.38) 100%);
  --ss90-surface-card: linear-gradient(180deg, rgba(15,22,36,.94) 0%, rgba(6,11,22,.985) 100%);
  --ss90-surface-soft: linear-gradient(180deg, rgba(18,28,44,.94) 0%, rgba(8,13,24,.99) 100%);
  --ss90-field: linear-gradient(180deg, rgba(8,13,24,.94) 0%, rgba(4,9,18,.99) 100%);
  --ss90-border: rgba(124,153,255,.24);
  --ss90-border-strong: rgba(191,214,255,.34);
  --ss90-text: #f7fbff;
  --ss90-muted: #c6d3ea;
  --ss90-glow: 0 14px 34px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.05);
  --ss90-glow-strong: 0 18px 44px rgba(0,0,0,.44), inset 0 1px 0 rgba(255,255,255,.06);
  --ss90-accent: linear-gradient(135deg,#2e70ff 0%, #19c8d4 100%);
  --ss90-accent-alt: linear-gradient(135deg,#6139ff 0%, #cc2bdd 100%);
  --ss90-danger: linear-gradient(135deg,#ef4444 0%, #b91c1c 100%);
  --ss90-warning: linear-gradient(135deg,#f59e0b 0%, #d97706 100%);
  --ss90-radius-lg: 28px;
  --ss90-radius-md: 22px;
  --ss90-radius-sm: 18px;
}
body.dark-mode{
  --primary: #69b9ff !important;
  --primary-mid: #1fd0c9 !important;
  --primary-dark: #2e70ff !important;
  --accent: #a78bfa !important;
  --accent2: #19c8d4 !important;
  --text-main: var(--ss90-text) !important;
  --text-sec: var(--ss90-muted) !important;
  --muted: var(--ss90-muted) !important;
  --bg-panel: rgba(10,15,26,.92) !important;
  --card: rgba(10,15,26,.9) !important;
  --card-strong: rgba(10,15,26,.98) !important;
  --input-bg: rgba(8,13,24,.98) !important;
  --border: var(--ss90-border) !important;
  --shadow: var(--ss90-glow) !important;
  --shadow-card: var(--ss90-glow) !important;
  --shadow-strong: var(--ss90-glow-strong) !important;
}
body:not(.qn-exporting){
  background:
    radial-gradient(circle at 18% 8%, rgba(110,167,255,.16), transparent 22%),
    radial-gradient(circle at 84% 0%, rgba(255,255,255,.07), transparent 24%),
    linear-gradient(180deg, #02050b 0%, #07101d 40%, #04070d 100%) !important;
  color: var(--ss90-text) !important;
}
body:not(.qn-exporting) .app-header{
  background: var(--ss90-surface-hero) !important;
  border: 1px solid rgba(191,214,255,.28) !important;
  border-radius: 34px !important;
  box-shadow: 0 20px 50px rgba(0,0,0,.36), inset 0 1px 0 rgba(255,255,255,.08) !important;
}
body:not(.qn-exporting) .control-panel,
body:not(.qn-exporting) .collapsible-content,
body:not(.qn-exporting) .class-container,
body:not(.qn-exporting) .modal-content,
body:not(.qn-exporting) .pro-card,
body:not(.qn-exporting) .tp-card,
body:not(.qn-exporting) .schedule-card,
body:not(.qn-exporting) .info-card,
body:not(.qn-exporting) .ss-card,
body:not(.qn-exporting) .v23-card,
body:not(.qn-exporting) .v24-card,
body:not(.qn-exporting) .ss-an-card,
body:not(.qn-exporting) .ss-an-kpi,
body:not(.qn-exporting) .ss-tt-card,
body:not(.qn-exporting) .ss-br-card,
body:not(.qn-exporting) .ss-effort-card,
body:not(.qn-exporting) .content-box,
body:not(.qn-exporting) .teacher-card,
body:not(.qn-exporting) .student-card,
body:not(.qn-exporting) #security-screen > div,
body:not(.qn-exporting) #expired-screen > div,
body:not(.qn-exporting) #manual-install-modal > div,
body:not(.qn-exporting) .table-shell,
body:not(.qn-exporting) .table-wrapper,
body:not(.qn-exporting) .table-container,
body:not(.qn-exporting) .ss-select-sheet,
body:not(.qn-exporting) .ss-notify-dropdown,
body:not(.qn-exporting) .schedule-note-box,
body:not(.qn-exporting) .schedule-modern-field,
body:not(.qn-exporting) .exam-panel,
body:not(.qn-exporting) .season-toggle{
  background: var(--ss90-surface-card) !important;
  color: var(--ss90-text) !important;
  border: 1px solid var(--ss90-border) !important;
  border-radius: var(--ss90-radius-lg) !important;
  box-shadow: var(--ss90-glow) !important;
  backdrop-filter: blur(16px) saturate(120%) !important;
  -webkit-backdrop-filter: blur(16px) saturate(120%) !important;
}
body:not(.qn-exporting) .ss-br-metric,
body:not(.qn-exporting) .ss-br-report-grid > div,
body:not(.qn-exporting) .ss-br-report-section,
body:not(.qn-exporting) .ss-an-bar-row,
body:not(.qn-exporting) .ss-tt-check,
body:not(.qn-exporting) .tp-title,
body:not(.qn-exporting) .buy-device,
body:not(.qn-exporting) .schedule-day-badge,
body:not(.qn-exporting) .schedule-date-badge-modern,
body:not(.qn-exporting) .schedule-time-badge-modern,
body:not(.qn-exporting) .ss-an-total-chip,
body:not(.qn-exporting) .ss-an-tab-pill,
body:not(.qn-exporting) .ss-br-stage-chip,
body:not(.qn-exporting) .ss-an-scope-chip,
body:not(.qn-exporting) .ss-tt-v66-chip,
body:not(.qn-exporting) .status-badge,
body:not(.qn-exporting) .stat-badge,
body:not(.qn-exporting) .v24-badge,
body:not(.qn-exporting) .header-info-stack,
body:not(.qn-exporting) #activationCardInReport > div,
body:not(.qn-exporting) #expired-screen div[style*="background:"],
body:not(.qn-exporting) #manual-install-modal div[style*="background:"]{
  background: var(--ss90-surface-soft) !important;
  color: var(--ss90-text) !important;
  border: 1px solid var(--ss90-border) !important;
  border-radius: var(--ss90-radius-md) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 10px 22px rgba(0,0,0,.26) !important;
}
body:not(.qn-exporting) .app-title,
body:not(.qn-exporting) .clock-time,
body:not(.qn-exporting) .clock-date,
body:not(.qn-exporting) .status-badge,
body:not(.qn-exporting) .ss-an-card-title,
body:not(.qn-exporting) .ss-tt-card-title,
body:not(.qn-exporting) .pro-title,
body:not(.qn-exporting) .ss-br-student-name,
body:not(.qn-exporting) .ss-effort-card-title,
body:not(.qn-exporting) .ss-an-bar-label,
body:not(.qn-exporting) .ss-an-detail-badge,
body:not(.qn-exporting) .board-docs-btn,
body:not(.qn-exporting) label,
body:not(.qn-exporting) h1,
body:not(.qn-exporting) h2,
body:not(.qn-exporting) h3,
body:not(.qn-exporting) h4,
body:not(.qn-exporting) h5,
body:not(.qn-exporting) h6{
  color: var(--ss90-text) !important;
}
body:not(.qn-exporting) .app-subtitle,
body:not(.qn-exporting) .pro-hint,
body:not(.qn-exporting) .pro-footnote,
body:not(.qn-exporting) .clock-date,
body:not(.qn-exporting) .ss-an-card-note,
body:not(.qn-exporting) .ss-tt-help,
body:not(.qn-exporting) .ss-br-sub,
body:not(.qn-exporting) .ss-effort-muted,
body:not(.qn-exporting) .info-card,
body:not(.qn-exporting) .schedule-empty,
body:not(.qn-exporting) [style*="color:var(--text-sec)"],
body:not(.qn-exporting) [style*="color: var(--text-sec)"]{
  color: var(--ss90-muted) !important;
}
body:not(.qn-exporting) button,
body:not(.qn-exporting) .btn,
body:not(.qn-exporting) .backup-btn,
body:not(.qn-exporting) .restore-btn,
body:not(.qn-exporting) .settings-save-btn,
body:not(.qn-exporting) .export-btn,
body:not(.qn-exporting) .tp-btn,
body:not(.qn-exporting) .schedule-mini-btn,
body:not(.qn-exporting) .eval-btn,
body:not(.qn-exporting) .toggle-btn,
body:not(.qn-exporting) .season-btn,
body:not(.qn-exporting) .pro-tabbtn,
body:not(.qn-exporting) .pin-btn,
body:not(.qn-exporting) .ui-preset-btn,
body:not(.qn-exporting) .board-docs-btn,
body:not(.qn-exporting) .v23m-btn,
body:not(.qn-exporting) .ss-an-refresh,
body:not(.qn-exporting) .ss-br-back,
body:not(.qn-exporting) .ss-admin-clean-btn,
body:not(.qn-exporting) .mini-filter-btn,
body:not(.qn-exporting) .theme-toggle-btn,
body:not(.qn-exporting) .pro-upload,
body:not(.qn-exporting) .ss-br-tab,
body:not(.qn-exporting) .ss-br-type,
body:not(.qn-exporting) .close-btn,
body:not(.qn-exporting) #emailBtn,
body:not(.qn-exporting) #waBtn{
  min-height: 52px;
  padding-inline: 18px !important;
  border-radius: 24px !important;
  border: 1px solid rgba(166,190,255,.28) !important;
  background: var(--ss90-surface-soft) !important;
  color: var(--text-main) !important;
  box-shadow: 0 12px 24px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.05) !important;
  font-weight: 900 !important;
  text-decoration: none !important;
}
body:not(.qn-exporting) .settings-save-btn,
body:not(.qn-exporting) .backup-btn,
body:not(.qn-exporting) .restore-btn,
body:not(.qn-exporting) .tp-btn-primary,
body:not(.qn-exporting) .tp-btn-save,
body:not(.qn-exporting) .toggle-btn,
body:not(.qn-exporting) .board-docs-btn,
body:not(.qn-exporting) .theme-toggle-btn,
body:not(.qn-exporting) .v23m-btn,
body:not(.qn-exporting) .ss-an-refresh,
body:not(.qn-exporting) .ss-br-tab.active,
body:not(.qn-exporting) .ss-br-type.active,
body:not(.qn-exporting) .season-btn.active,
body:not(.qn-exporting) #emailBtn,
body:not(.qn-exporting) #waBtn,
body:not(.qn-exporting) .pro-whatsapp,
body:not(.qn-exporting) button:not(.pro-tabbtn)[onclick*="activate"],
body:not(.qn-exporting) button:not(.pro-tabbtn)[onclick*="Activate"],
body:not(.qn-exporting) button:not(.pro-tabbtn)[onclick*="save"],
body:not(.qn-exporting) button:not(.pro-tabbtn)[onclick*="Save"],
body:not(.qn-exporting) button:not(.pro-tabbtn)[onclick*="backup"],
body:not(.qn-exporting) button:not(.pro-tabbtn)[onclick*="Backup"]{
  background: var(--ss90-accent) !important;
  color: #fff !important;
  border-color: rgba(129,215,255,.28) !important;
  box-shadow: 0 14px 30px rgba(22,108,255,.26), inset 0 1px 0 rgba(255,255,255,.10) !important;
}
body:not(.qn-exporting) #studentReportBtn,
body:not(.qn-exporting) .btn-purple,
body:not(.qn-exporting) .ui-preset-btn.active,
body:not(.qn-exporting) button[style*="#5b21b6"],
body:not(.qn-exporting) button[style*="#7c3aed"]{
  background: var(--ss90-accent-alt) !important;
  color:#fff !important;
}
body:not(.qn-exporting) .close-btn,
body:not(.qn-exporting) .btn-close,
body:not(.qn-exporting) .schedule-mini-del,
body:not(.qn-exporting) .ss-br-danger,
body:not(.qn-exporting) button[onclick*="delete"],
body:not(.qn-exporting) button[onclick*="Delete"]{
  background: var(--ss90-danger) !important;
  color:#fff !important;
  border-color: rgba(255,157,157,.22) !important;
}
body:not(.qn-exporting) .eval-btn{
  min-height: 86px !important;
  border-radius: 26px !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  box-shadow: 0 16px 30px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.06) !important;
}
body:not(.qn-exporting) .btn-blue{background:linear-gradient(135deg,#2f5dff 0%,#5937ff 100%) !important;color:#fff !important;}
body:not(.qn-exporting) .btn-green{background:linear-gradient(135deg,#11b9aa 0%,#0d8a80 100%) !important;color:#fff !important;}
body:not(.qn-exporting) .btn-yellow{background:linear-gradient(135deg,#8fae09 0%,#5b7700 100%) !important;color:#fff !important;}
body:not(.qn-exporting) .btn-red{background:linear-gradient(135deg,#d12f90 0%,#8e1468 100%) !important;color:#fff !important;}
body:not(.qn-exporting) .btn-orange{background:linear-gradient(135deg,#e28b15 0%,#ad5e02 100%) !important;color:#fff !important;}
body:not(.qn-exporting) .btn-gray{background:linear-gradient(135deg,#56495f 0%,#2e2537 100%) !important;color:#fff !important;}
body:not(.qn-exporting) input,
body:not(.qn-exporting) select,
body:not(.qn-exporting) textarea,
body:not(.qn-exporting) .settings-input,
body:not(.qn-exporting) .tp-input,
body:not(.qn-exporting) .ss-tt-input,
body:not(.qn-exporting) .ss-tt-select,
body:not(.qn-exporting) .ss-an-select,
body:not(.qn-exporting) .ss-br-input,
body:not(.qn-exporting) .ss-br-textarea,
body:not(.qn-exporting) .ss-br-select,
body:not(.qn-exporting) .schedule-modern-input,
body:not(.qn-exporting) .table-input,
body:not(.qn-exporting) .ui-color-input,
body:not(.qn-exporting) .ui-color-field,
body:not(.qn-exporting) .ui-design-select,
body:not(.qn-exporting) .schedule-modern-field input,
body:not(.qn-exporting) .schedule-modern-field select,
body:not(.qn-exporting) .qnInput,
body:not(.qn-exporting) .qnSmallInput,
body:not(.qn-exporting) .exam-input-main,
body:not(.qn-exporting) .date-input,
body:not(.qn-exporting) #activityNoteSelect,
body:not(.qn-exporting) #classSelect,
body:not(.qn-exporting) #studentSelect,
body:not(.qn-exporting) #gradeFilterSelect,
body:not(.qn-exporting) #subjectFilterSelect,
body:not(.qn-exporting) #activationTokenInput,
body:not(.qn-exporting) #finalLicenseInput,
body:not(.qn-exporting) #customerNameInput,
body:not(.qn-exporting) #customerPlaceInput{
  background: var(--ss90-field) !important;
  color: #fff !important;
  border: 1px solid rgba(166,190,255,.24) !important;
  border-radius: 24px !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 10px 18px rgba(0,0,0,.18) !important;
}
body:not(.qn-exporting) input:focus,
body:not(.qn-exporting) select:focus,
body:not(.qn-exporting) textarea:focus,
body:not(.qn-exporting) .settings-input:focus,
body:not(.qn-exporting) .tp-input:focus,
body:not(.qn-exporting) .ss-tt-input:focus,
body:not(.qn-exporting) .ss-tt-select:focus,
body:not(.qn-exporting) .ss-an-select:focus,
body:not(.qn-exporting) .ss-br-input:focus,
body:not(.qn-exporting) .ss-br-textarea:focus,
body:not(.qn-exporting) .ss-br-select:focus,
body:not(.qn-exporting) .exam-input-main:focus,
body:not(.qn-exporting) .date-input:focus,
body:not(.qn-exporting) #activityNoteSelect:focus{
  border-color: var(--ss90-border-strong) !important;
  box-shadow: 0 0 0 3px rgba(94,154,255,.18), 0 12px 22px rgba(0,0,0,.20) !important;
}
body:not(.qn-exporting) input::placeholder,
body:not(.qn-exporting) textarea::placeholder{color: rgba(224,233,255,.72) !important;}
body:not(.qn-exporting) select option{background:#0b1220 !important;color:#fff !important;}
body:not(.qn-exporting) .mini-filter-btn,
body:not(.qn-exporting) .pin-btn{display:flex;align-items:center;justify-content:center;}
body:not(.qn-exporting) .pin-display .pin-dot{background:rgba(255,255,255,.12) !important;border:1px solid rgba(255,255,255,.14) !important;}
body:not(.qn-exporting) input[type="checkbox"],
body:not(.qn-exporting) input[type="radio"]{
  accent-color:#69b9ff;
  min-height:auto !important;
  width:22px !important;
  height:22px !important;
}
body:not(.qn-exporting) .app-logo{border-radius:20px !important; background: rgba(255,255,255,.06);}
body:not(.qn-exporting) .status-pro{background: var(--ss90-accent-alt) !important;}
body:not(.qn-exporting) .status-free{background: var(--ss90-surface-soft) !important; border:1px solid var(--ss90-border) !important;}
body:not(.qn-exporting) .control-panel,
body:not(.qn-exporting) .collapsible-content,
body:not(.qn-exporting) .class-container{padding:22px !important;}
@media (max-width: 768px){
  body:not(.qn-exporting) .app-header{border-radius: 28px !important;}
  body:not(.qn-exporting) .control-panel,
  body:not(.qn-exporting) .collapsible-content,
  body:not(.qn-exporting) .class-container,
  body:not(.qn-exporting) .modal-content,
  body:not(.qn-exporting) .pro-card,
  body:not(.qn-exporting) .ss-an-card,
  body:not(.qn-exporting) .ss-tt-card,
  body:not(.qn-exporting) .ss-br-card,
  body:not(.qn-exporting) .ss-effort-card{border-radius: 24px !important; padding:18px !important;}
  body:not(.qn-exporting) button,
  body:not(.qn-exporting) .btn,
  body:not(.qn-exporting) .eval-btn,
  body:not(.qn-exporting) .board-docs-btn{border-radius:22px !important;}
}

/* ===== ss-v91-unified-modals-performance ===== */

/* SmartSchool V91 — all modal/popup sheets unified + fast/no-jank mobile scrolling */
:root{
  --ss91-popup-bg: linear-gradient(180deg, rgba(11,18,32,.985) 0%, rgba(4,8,16,.995) 100%);
  --ss91-popup-soft: linear-gradient(180deg, rgba(18,29,48,.95) 0%, rgba(7,13,24,.99) 100%);
  --ss91-popup-border: rgba(166,190,255,.25);
  --ss91-popup-border-strong: rgba(205,222,255,.36);
  --ss91-popup-text: #f8fbff;
  --ss91-popup-muted: #c6d3ea;
  --ss91-popup-radius: 28px;
  --ss91-popup-shadow: 0 22px 55px rgba(0,0,0,.48), inset 0 1px 0 rgba(255,255,255,.06);
}
body:not(.qn-exporting) .modal,
body:not(.qn-exporting) #manual-install-modal,
body:not(.qn-exporting) #expired-screen,
body:not(.qn-exporting) #security-screen,
body:not(.qn-exporting) #export-overlay,
body:not(.qn-exporting) #v23UltraModal,
body:not(.qn-exporting) .v23-ov,
body:not(.qn-exporting) .v24-ov,
body:not(.qn-exporting) .ss-modal,
body:not(.qn-exporting) .ss-dialog,
body:not(.qn-exporting) [role="dialog"]{
  background: rgba(0,0,0,.62) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  overscroll-behavior: contain !important;
  -webkit-overflow-scrolling: touch !important;
}
body:not(.qn-exporting) .modal-content,
body:not(.qn-exporting) .install-box,
body:not(.qn-exporting) #manual-install-modal > div,
body:not(.qn-exporting) #expired-screen > div,
body:not(.qn-exporting) #security-screen > div,
body:not(.qn-exporting) #v23UltraModal .v23m-box,
body:not(.qn-exporting) .v23-card,
body:not(.qn-exporting) .v24-card,
body:not(.qn-exporting) .ss-select-sheet,
body:not(.qn-exporting) .ss-notify-dropdown,
body:not(.qn-exporting) .ss-dialog-box,
body:not(.qn-exporting) .popup,
body:not(.qn-exporting) .popup-content,
body:not(.qn-exporting) .dialog,
body:not(.qn-exporting) .dialog-content,
body:not(.qn-exporting) .dropdown-menu,
body:not(.qn-exporting) .bottom-sheet,
body:not(.qn-exporting) .sheet,
body:not(.qn-exporting) .toast-card,
body:not(.qn-exporting) .pin-pad,
body:not(.qn-exporting) #notify{
  background: var(--ss91-popup-bg) !important;
  color: var(--ss91-popup-text) !important;
  border: 1px solid var(--ss91-popup-border) !important;
  border-radius: var(--ss91-popup-radius) !important;
  box-shadow: var(--ss91-popup-shadow) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
body:not(.qn-exporting) #export-overlay{
  background: #050911 !important;
}
body:not(.qn-exporting) #export-overlay .export-header,
body:not(.qn-exporting) #export-overlay .export-toolbar,
body:not(.qn-exporting) #export-container,
body:not(.qn-exporting) .v23m-head,
body:not(.qn-exporting) .v23m-body,
body:not(.qn-exporting) .v23m-foot,
body:not(.qn-exporting) .modal-header,
body:not(.qn-exporting) .modal-body,
body:not(.qn-exporting) .modal-footer,
body:not(.qn-exporting) .popup-header,
body:not(.qn-exporting) .popup-body,
body:not(.qn-exporting) .popup-footer,
body:not(.qn-exporting) .dialog-header,
body:not(.qn-exporting) .dialog-body,
body:not(.qn-exporting) .dialog-footer{
  background: var(--ss91-popup-soft) !important;
  color: var(--ss91-popup-text) !important;
  border-color: var(--ss91-popup-border) !important;
}
body:not(.qn-exporting) .modal-content *,
body:not(.qn-exporting) .install-box *,
body:not(.qn-exporting) #manual-install-modal *,
body:not(.qn-exporting) #expired-screen *,
body:not(.qn-exporting) #security-screen *,
body:not(.qn-exporting) #v23UltraModal *,
body:not(.qn-exporting) .v23-card *,
body:not(.qn-exporting) .v24-card *,
body:not(.qn-exporting) .ss-select-sheet *,
body:not(.qn-exporting) .ss-notify-dropdown *,
body:not(.qn-exporting) .popup *,
body:not(.qn-exporting) .dialog *{
  color: var(--ss91-popup-text) !important;
  text-shadow: none !important;
}
body:not(.qn-exporting) .modal-content p,
body:not(.qn-exporting) .install-box p,
body:not(.qn-exporting) #manual-install-modal p,
body:not(.qn-exporting) #expired-screen p,
body:not(.qn-exporting) .pro-footnote,
body:not(.qn-exporting) .pro-hint,
body:not(.qn-exporting) .v23m-note,
body:not(.qn-exporting) .modal-content small,
body:not(.qn-exporting) .popup small,
body:not(.qn-exporting) .dialog small{
  color: var(--ss91-popup-muted) !important;
}
body:not(.qn-exporting) .modal-content input,
body:not(.qn-exporting) .modal-content select,
body:not(.qn-exporting) .modal-content textarea,
body:not(.qn-exporting) .install-box input,
body:not(.qn-exporting) .install-box select,
body:not(.qn-exporting) .install-box textarea,
body:not(.qn-exporting) #manual-install-modal input,
body:not(.qn-exporting) #manual-install-modal select,
body:not(.qn-exporting) #manual-install-modal textarea,
body:not(.qn-exporting) #expired-screen input,
body:not(.qn-exporting) #expired-screen select,
body:not(.qn-exporting) #expired-screen textarea,
body:not(.qn-exporting) #v23UltraModal input,
body:not(.qn-exporting) #v23UltraModal select,
body:not(.qn-exporting) #v23UltraModal textarea,
body:not(.qn-exporting) .v23-card input,
body:not(.qn-exporting) .v23-card select,
body:not(.qn-exporting) .v23-card textarea,
body:not(.qn-exporting) .v24-card input,
body:not(.qn-exporting) .v24-card select,
body:not(.qn-exporting) .v24-card textarea,
body:not(.qn-exporting) .popup input,
body:not(.qn-exporting) .popup select,
body:not(.qn-exporting) .popup textarea,
body:not(.qn-exporting) .dialog input,
body:not(.qn-exporting) .dialog select,
body:not(.qn-exporting) .dialog textarea{
  background: linear-gradient(180deg, rgba(9,15,27,.96), rgba(3,7,15,.99)) !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  border: 1px solid var(--ss91-popup-border) !important;
  border-radius: 22px !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 8px 16px rgba(0,0,0,.22) !important;
}
body:not(.qn-exporting) .modal-content button,
body:not(.qn-exporting) .install-box button,
body:not(.qn-exporting) #manual-install-modal button,
body:not(.qn-exporting) #expired-screen button,
body:not(.qn-exporting) #expired-screen a,
body:not(.qn-exporting) #security-screen .pin-btn,
body:not(.qn-exporting) #v23UltraModal button,
body:not(.qn-exporting) .v23-card button,
body:not(.qn-exporting) .v24-card button,
body:not(.qn-exporting) .popup button,
body:not(.qn-exporting) .dialog button,
body:not(.qn-exporting) #export-overlay .export-btn,
body:not(.qn-exporting) .close-btn{
  background: linear-gradient(135deg,#2e70ff 0%,#19c8d4 100%) !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  border: 1px solid rgba(166,190,255,.28) !important;
  border-radius: 22px !important;
  box-shadow: 0 10px 22px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.08) !important;
  font-weight: 900 !important;
}
body:not(.qn-exporting) .close-btn,
body:not(.qn-exporting) .btn-close,
body:not(.qn-exporting) .v23-close,
body:not(.qn-exporting) button[onclick*="close"],
body:not(.qn-exporting) button[onclick*="Close"]{
  background: linear-gradient(135deg,#ef4444,#991b1b) !important;
  color:#fff !important;
}
body:not(.qn-exporting) .modal,
body:not(.qn-exporting) #manual-install-modal,
body:not(.qn-exporting) #expired-screen,
body:not(.qn-exporting) #security-screen,
body:not(.qn-exporting) #v23UltraModal,
body:not(.qn-exporting) .v23-ov,
body:not(.qn-exporting) .v24-ov,
body:not(.qn-exporting) .ss-select-sheet,
body:not(.qn-exporting) .ss-notify-dropdown,
body:not(.qn-exporting) .modal-content,
body:not(.qn-exporting) .install-box,
body:not(.qn-exporting) .v23m-box,
body:not(.qn-exporting) .v23-card,
body:not(.qn-exporting) .v24-card{
  animation: none !important;
  transition: none !important;
  transform: none !important;
  will-change: auto !important;
}
body:not(.qn-exporting) .tabbar,
body:not(.qn-exporting) .pro-tabbar,
body:not(.qn-exporting) .ss-br-tabs,
body:not(.qn-exporting) .ss-an-tabs,
body:not(.qn-exporting) .export-toolbar,
body:not(.qn-exporting) .bottom-nav,
body:not(.qn-exporting) .nav-tabs,
body:not(.qn-exporting) .tab-buttons,
body:not(.qn-exporting) .settings-theme-row,
body:not(.qn-exporting) .pin-pad,
body:not(.qn-exporting) .modal-content,
body:not(.qn-exporting) .v23m-box,
body:not(.qn-exporting) .v24-card,
body:not(.qn-exporting) .ss-select-sheet,
body:not(.qn-exporting) .ss-notify-dropdown{
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior: contain !important;
  scroll-behavior: auto !important;
}
body:not(.qn-exporting) .tabbar *,
body:not(.qn-exporting) .pro-tabbar *,
body:not(.qn-exporting) .ss-br-tabs *,
body:not(.qn-exporting) .ss-an-tabs *,
body:not(.qn-exporting) .export-toolbar *,
body:not(.qn-exporting) .tab-buttons *,
body:not(.qn-exporting) .bottom-nav *,
body:not(.qn-exporting) button,
body:not(.qn-exporting) .btn,
body:not(.qn-exporting) .eval-btn,
body:not(.qn-exporting) .toggle-btn,
body:not(.qn-exporting) .pro-tabbtn{
  transition: none !important;
  animation: none !important;
}
body:not(.qn-exporting) button:active,
body:not(.qn-exporting) .btn:active,
body:not(.qn-exporting) .eval-btn:active,
body:not(.qn-exporting) .toggle-btn:active,
body:not(.qn-exporting) .pro-tabbtn:active,
body:not(.qn-exporting) .season-btn:active{
  transform: none !important;
}
@media (pointer: coarse), (max-width: 768px){
  body:not(.qn-exporting) *{
    scroll-behavior: auto !important;
  }
  body:not(.qn-exporting) .app-header,
  body:not(.qn-exporting) .control-panel,
  body:not(.qn-exporting) .collapsible-content,
  body:not(.qn-exporting) .modal-content,
  body:not(.qn-exporting) .install-box,
  body:not(.qn-exporting) .v23m-box,
  body:not(.qn-exporting) .v23-card,
  body:not(.qn-exporting) .v24-card{
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
  body:not(.qn-exporting) .modal-content,
  body:not(.qn-exporting) .install-box,
  body:not(.qn-exporting) .v23m-box,
  body:not(.qn-exporting) .v24-card,
  body:not(.qn-exporting) .ss-select-sheet{
    max-height: min(88vh, 760px) !important;
    overflow-y: auto !important;
  }
}
@media (prefers-reduced-motion: reduce){
  body:not(.qn-exporting) *, body:not(.qn-exporting) *::before, body:not(.qn-exporting) *::after{
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}

/* ===== ss-v92-light-mode-unified-ui ===== */

/* SmartSchool V92 — Light mode compatibility: same unified UI, pearl/glass surfaces, fast/no-jank */
:root{
  --ss92-bg:
    radial-gradient(circle at 14% 8%, rgba(59,130,246,.14), transparent 25%),
    radial-gradient(circle at 86% 10%, rgba(20,184,166,.13), transparent 24%),
    radial-gradient(circle at 72% 86%, rgba(168,85,247,.10), transparent 28%),
    linear-gradient(180deg, #f7fbff 0%, #edf5ff 42%, #f8fbff 100%);
  --ss92-surface-hero: linear-gradient(115deg, rgba(255,255,255,.86) 0%, rgba(232,242,255,.88) 42%, rgba(255,255,255,.78) 100%);
  --ss92-surface-card: linear-gradient(180deg, rgba(255,255,255,.94) 0%, rgba(241,247,255,.92) 100%);
  --ss92-surface-soft: linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(234,242,255,.94) 100%);
  --ss92-field: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(240,246,255,.96) 100%);
  --ss92-border: rgba(80,111,170,.20);
  --ss92-border-strong: rgba(37,99,235,.36);
  --ss92-text: #0f1b33;
  --ss92-muted: #52617a;
  --ss92-shadow: 0 12px 26px rgba(37,99,235,.10), 0 3px 10px rgba(15,23,42,.05), inset 0 1px 0 rgba(255,255,255,.9);
  --ss92-shadow-strong: 0 18px 42px rgba(37,99,235,.14), 0 8px 22px rgba(15,23,42,.07), inset 0 1px 0 rgba(255,255,255,.9);
  --ss92-accent: linear-gradient(135deg,#2563eb 0%, #06b6d4 100%);
  --ss92-accent-alt: linear-gradient(135deg,#6d28d9 0%, #db2777 100%);
  --ss92-danger: linear-gradient(135deg,#ef4444 0%, #dc2626 100%);
  --ss92-warning: linear-gradient(135deg,#f59e0b 0%, #d97706 100%);
  --ss92-radius-lg: 28px;
  --ss92-radius-md: 22px;
  --ss92-radius-sm: 18px;
}
body:not(.dark-mode):not(.qn-exporting){
  --primary:#2563eb !important;
  --primary-mid:#06b6d4 !important;
  --primary-dark:#1d4ed8 !important;
  --accent:#7c3aed !important;
  --accent2:#14b8a6 !important;
  --text-main:var(--ss92-text) !important;
  --text-sec:var(--ss92-muted) !important;
  --muted:var(--ss92-muted) !important;
  --bg-body:var(--ss92-bg) !important;
  --bg-panel:rgba(255,255,255,.92) !important;
  --card:rgba(255,255,255,.90) !important;
  --card-strong:rgba(255,255,255,.98) !important;
  --input-bg:rgba(255,255,255,.98) !important;
  --border:var(--ss92-border) !important;
  --shadow:var(--ss92-shadow) !important;
  --shadow-card:var(--ss92-shadow) !important;
  --shadow-strong:var(--ss92-shadow-strong) !important;
  --ss90-surface-hero:var(--ss92-surface-hero) !important;
  --ss90-surface-card:var(--ss92-surface-card) !important;
  --ss90-surface-soft:var(--ss92-surface-soft) !important;
  --ss90-field:var(--ss92-field) !important;
  --ss90-border:var(--ss92-border) !important;
  --ss90-border-strong:var(--ss92-border-strong) !important;
  --ss90-text:var(--ss92-text) !important;
  --ss90-muted:var(--ss92-muted) !important;
  --ss90-glow:var(--ss92-shadow) !important;
  --ss90-glow-strong:var(--ss92-shadow-strong) !important;
  --ss90-accent:var(--ss92-accent) !important;
  --ss90-accent-alt:var(--ss92-accent-alt) !important;
  --ss90-danger:var(--ss92-danger) !important;
  --ss90-warning:var(--ss92-warning) !important;
  --ss91-popup-bg:var(--ss92-surface-card) !important;
  --ss91-popup-soft:var(--ss92-surface-soft) !important;
  --ss91-popup-border:var(--ss92-border) !important;
  --ss91-popup-border-strong:var(--ss92-border-strong) !important;
  --ss91-popup-text:var(--ss92-text) !important;
  --ss91-popup-muted:var(--ss92-muted) !important;
  --ss91-popup-shadow:var(--ss92-shadow-strong) !important;
  background:var(--ss92-bg) !important;
  color:var(--ss92-text) !important;
}
body:not(.dark-mode):not(.qn-exporting) .app-header{
  background:var(--ss92-surface-hero) !important;
  color:var(--ss92-text) !important;
  border:1px solid rgba(255,255,255,.72) !important;
  box-shadow:var(--ss92-shadow-strong) !important;
}
body:not(.dark-mode):not(.qn-exporting) .control-panel,
body:not(.dark-mode):not(.qn-exporting) .collapsible-content,
body:not(.dark-mode):not(.qn-exporting) .class-container,
body:not(.dark-mode):not(.qn-exporting) .modal-content,
body:not(.dark-mode):not(.qn-exporting) .install-box,
body:not(.dark-mode):not(.qn-exporting) .pro-card,
body:not(.dark-mode):not(.qn-exporting) .tp-card,
body:not(.dark-mode):not(.qn-exporting) .schedule-card,
body:not(.dark-mode):not(.qn-exporting) .info-card,
body:not(.dark-mode):not(.qn-exporting) .ss-card,
body:not(.dark-mode):not(.qn-exporting) .v23-card,
body:not(.dark-mode):not(.qn-exporting) .v24-card,
body:not(.dark-mode):not(.qn-exporting) .ss-an-card,
body:not(.dark-mode):not(.qn-exporting) .ss-an-kpi,
body:not(.dark-mode):not(.qn-exporting) .ss-tt-card,
body:not(.dark-mode):not(.qn-exporting) .ss-br-card,
body:not(.dark-mode):not(.qn-exporting) .ss-effort-card,
body:not(.dark-mode):not(.qn-exporting) .content-box,
body:not(.dark-mode):not(.qn-exporting) .teacher-card,
body:not(.dark-mode):not(.qn-exporting) .student-card,
body:not(.dark-mode):not(.qn-exporting) .table-shell,
body:not(.dark-mode):not(.qn-exporting) .table-wrapper,
body:not(.dark-mode):not(.qn-exporting) .table-container,
body:not(.dark-mode):not(.qn-exporting) .ss-select-sheet,
body:not(.dark-mode):not(.qn-exporting) .ss-notify-dropdown,
body:not(.dark-mode):not(.qn-exporting) .schedule-note-box,
body:not(.dark-mode):not(.qn-exporting) .schedule-modern-field,
body:not(.dark-mode):not(.qn-exporting) .exam-panel,
body:not(.dark-mode):not(.qn-exporting) .season-toggle,
body:not(.dark-mode):not(.qn-exporting) #security-screen > div,
body:not(.dark-mode):not(.qn-exporting) #expired-screen > div,
body:not(.dark-mode):not(.qn-exporting) #manual-install-modal > div{
  background:var(--ss92-surface-card) !important;
  color:var(--ss92-text) !important;
  border:1px solid var(--ss92-border) !important;
  box-shadow:var(--ss92-shadow) !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
body:not(.dark-mode):not(.qn-exporting) .ss-br-metric,
body:not(.dark-mode):not(.qn-exporting) .ss-br-report-grid > div,
body:not(.dark-mode):not(.qn-exporting) .ss-br-report-section,
body:not(.dark-mode):not(.qn-exporting) .ss-an-bar-row,
body:not(.dark-mode):not(.qn-exporting) .ss-tt-check,
body:not(.dark-mode):not(.qn-exporting) .tp-title,
body:not(.dark-mode):not(.qn-exporting) .buy-device,
body:not(.dark-mode):not(.qn-exporting) .schedule-day-badge,
body:not(.dark-mode):not(.qn-exporting) .schedule-date-badge-modern,
body:not(.dark-mode):not(.qn-exporting) .schedule-time-badge-modern,
body:not(.dark-mode):not(.qn-exporting) .ss-an-total-chip,
body:not(.dark-mode):not(.qn-exporting) .ss-an-tab-pill,
body:not(.dark-mode):not(.qn-exporting) .ss-br-stage-chip,
body:not(.dark-mode):not(.qn-exporting) .ss-an-scope-chip,
body:not(.dark-mode):not(.qn-exporting) .ss-tt-v66-chip,
body:not(.dark-mode):not(.qn-exporting) .status-badge,
body:not(.dark-mode):not(.qn-exporting) .stat-badge,
body:not(.dark-mode):not(.qn-exporting) .v24-badge,
body:not(.dark-mode):not(.qn-exporting) .header-info-stack,
body:not(.dark-mode):not(.qn-exporting) #activationCardInReport > div,
body:not(.dark-mode):not(.qn-exporting) #expired-screen div[style*="background:"],
body:not(.dark-mode):not(.qn-exporting) #manual-install-modal div[style*="background:"]{
  background:var(--ss92-surface-soft) !important;
  color:var(--ss92-text) !important;
  border:1px solid var(--ss92-border) !important;
  box-shadow:0 8px 18px rgba(37,99,235,.08), inset 0 1px 0 rgba(255,255,255,.9) !important;
}
body:not(.dark-mode):not(.qn-exporting),
body:not(.dark-mode):not(.qn-exporting) label,
body:not(.dark-mode):not(.qn-exporting) h1,
body:not(.dark-mode):not(.qn-exporting) h2,
body:not(.dark-mode):not(.qn-exporting) h3,
body:not(.dark-mode):not(.qn-exporting) h4,
body:not(.dark-mode):not(.qn-exporting) h5,
body:not(.dark-mode):not(.qn-exporting) h6,
body:not(.dark-mode):not(.qn-exporting) p,
body:not(.dark-mode):not(.qn-exporting) span,
body:not(.dark-mode):not(.qn-exporting) strong,
body:not(.dark-mode):not(.qn-exporting) .clock-time,
body:not(.dark-mode):not(.qn-exporting) .app-subtitle,
body:not(.dark-mode):not(.qn-exporting) .pro-title,
body:not(.dark-mode):not(.qn-exporting) .ss-an-card-title,
body:not(.dark-mode):not(.qn-exporting) .ss-tt-card-title,
body:not(.dark-mode):not(.qn-exporting) .ss-br-student-name,
body:not(.dark-mode):not(.qn-exporting) .ss-effort-card-title{
  color:var(--ss92-text) !important;
}
body:not(.dark-mode):not(.qn-exporting) .pro-hint,
body:not(.dark-mode):not(.qn-exporting) .pro-footnote,
body:not(.dark-mode):not(.qn-exporting) .clock-date,
body:not(.dark-mode):not(.qn-exporting) .ss-an-card-note,
body:not(.dark-mode):not(.qn-exporting) .ss-tt-help,
body:not(.dark-mode):not(.qn-exporting) .ss-br-sub,
body:not(.dark-mode):not(.qn-exporting) .ss-effort-muted,
body:not(.dark-mode):not(.qn-exporting) .schedule-empty,
body:not(.dark-mode):not(.qn-exporting) [style*="color:var(--text-sec)"],
body:not(.dark-mode):not(.qn-exporting) [style*="color: var(--text-sec)"]{
  color:var(--ss92-muted) !important;
}
body:not(.dark-mode):not(.qn-exporting) input,
body:not(.dark-mode):not(.qn-exporting) select,
body:not(.dark-mode):not(.qn-exporting) textarea,
body:not(.dark-mode):not(.qn-exporting) .settings-input,
body:not(.dark-mode):not(.qn-exporting) .tp-input,
body:not(.dark-mode):not(.qn-exporting) .ss-tt-input,
body:not(.dark-mode):not(.qn-exporting) .ss-tt-select,
body:not(.dark-mode):not(.qn-exporting) .ss-an-select,
body:not(.dark-mode):not(.qn-exporting) .ss-br-input,
body:not(.dark-mode):not(.qn-exporting) .ss-br-textarea,
body:not(.dark-mode):not(.qn-exporting) .ss-br-select,
body:not(.dark-mode):not(.qn-exporting) .schedule-modern-input,
body:not(.dark-mode):not(.qn-exporting) .table-input,
body:not(.dark-mode):not(.qn-exporting) .ui-color-input,
body:not(.dark-mode):not(.qn-exporting) .ui-color-field,
body:not(.dark-mode):not(.qn-exporting) .ui-design-select,
body:not(.dark-mode):not(.qn-exporting) .qnInput,
body:not(.dark-mode):not(.qn-exporting) .qnSmallInput,
body:not(.dark-mode):not(.qn-exporting) .exam-input-main,
body:not(.dark-mode):not(.qn-exporting) .date-input,
body:not(.dark-mode):not(.qn-exporting) #activityNoteSelect,
body:not(.dark-mode):not(.qn-exporting) #classSelect,
body:not(.dark-mode):not(.qn-exporting) #studentSelect,
body:not(.dark-mode):not(.qn-exporting) #gradeFilterSelect,
body:not(.dark-mode):not(.qn-exporting) #subjectFilterSelect,
body:not(.dark-mode):not(.qn-exporting) #activationTokenInput,
body:not(.dark-mode):not(.qn-exporting) #finalLicenseInput,
body:not(.dark-mode):not(.qn-exporting) #customerNameInput,
body:not(.dark-mode):not(.qn-exporting) #customerPlaceInput{
  background:var(--ss92-field) !important;
  color:var(--ss92-text) !important;
  -webkit-text-fill-color:var(--ss92-text) !important;
  border:1px solid var(--ss92-border) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.96), 0 7px 14px rgba(37,99,235,.06) !important;
}
body:not(.dark-mode):not(.qn-exporting) input::placeholder,
body:not(.dark-mode):not(.qn-exporting) textarea::placeholder{color:rgba(82,97,122,.72) !important;-webkit-text-fill-color:rgba(82,97,122,.72) !important;}
body:not(.dark-mode):not(.qn-exporting) select option{background:#ffffff !important;color:var(--ss92-text) !important;}
body:not(.dark-mode):not(.qn-exporting) input:focus,
body:not(.dark-mode):not(.qn-exporting) select:focus,
body:not(.dark-mode):not(.qn-exporting) textarea:focus{
  border-color:var(--ss92-border-strong) !important;
  box-shadow:0 0 0 3px rgba(37,99,235,.14), 0 10px 22px rgba(37,99,235,.10) !important;
}
body:not(.dark-mode):not(.qn-exporting) button,
body:not(.dark-mode):not(.qn-exporting) .btn,
body:not(.dark-mode):not(.qn-exporting) .backup-btn,
body:not(.dark-mode):not(.qn-exporting) .restore-btn,
body:not(.dark-mode):not(.qn-exporting) .settings-save-btn,
body:not(.dark-mode):not(.qn-exporting) .export-btn,
body:not(.dark-mode):not(.qn-exporting) .tp-btn,
body:not(.dark-mode):not(.qn-exporting) .schedule-mini-btn,
body:not(.dark-mode):not(.qn-exporting) .toggle-btn,
body:not(.dark-mode):not(.qn-exporting) .season-btn,
body:not(.dark-mode):not(.qn-exporting) .pro-tabbtn,
body:not(.dark-mode):not(.qn-exporting) .pin-btn,
body:not(.dark-mode):not(.qn-exporting) .ui-preset-btn,
body:not(.dark-mode):not(.qn-exporting) .board-docs-btn,
body:not(.dark-mode):not(.qn-exporting) .v23m-btn,
body:not(.dark-mode):not(.qn-exporting) .ss-an-refresh,
body:not(.dark-mode):not(.qn-exporting) .ss-br-back,
body:not(.dark-mode):not(.qn-exporting) .ss-admin-clean-btn,
body:not(.dark-mode):not(.qn-exporting) .mini-filter-btn,
body:not(.dark-mode):not(.qn-exporting) .theme-toggle-btn,
body:not(.dark-mode):not(.qn-exporting) .pro-upload,
body:not(.dark-mode):not(.qn-exporting) .ss-br-tab,
body:not(.dark-mode):not(.qn-exporting) .ss-br-type,
body:not(.dark-mode):not(.qn-exporting) .close-btn,
body:not(.dark-mode):not(.qn-exporting) #emailBtn,
body:not(.dark-mode):not(.qn-exporting) #waBtn{
  background:var(--ss92-surface-soft) !important;
  color:var(--ss92-text) !important;
  border:1px solid var(--ss92-border) !important;
  box-shadow:0 10px 18px rgba(37,99,235,.08), inset 0 1px 0 rgba(255,255,255,.95) !important;
}
body:not(.dark-mode):not(.qn-exporting) .settings-save-btn,
body:not(.dark-mode):not(.qn-exporting) .backup-btn,
body:not(.dark-mode):not(.qn-exporting) .restore-btn,
body:not(.dark-mode):not(.qn-exporting) .tp-btn-primary,
body:not(.dark-mode):not(.qn-exporting) .tp-btn-save,
body:not(.dark-mode):not(.qn-exporting) .toggle-btn,
body:not(.dark-mode):not(.qn-exporting) .board-docs-btn,
body:not(.dark-mode):not(.qn-exporting) .theme-toggle-btn,
body:not(.dark-mode):not(.qn-exporting) .v23m-btn,
body:not(.dark-mode):not(.qn-exporting) .ss-an-refresh,
body:not(.dark-mode):not(.qn-exporting) .ss-br-tab.active,
body:not(.dark-mode):not(.qn-exporting) .ss-br-type.active,
body:not(.dark-mode):not(.qn-exporting) .season-btn.active,
body:not(.dark-mode):not(.qn-exporting) #emailBtn,
body:not(.dark-mode):not(.qn-exporting) #waBtn,
body:not(.dark-mode):not(.qn-exporting) .pro-whatsapp,
body:not(.dark-mode):not(.qn-exporting) button:not(.pro-tabbtn)[onclick*="activate"],
body:not(.dark-mode):not(.qn-exporting) button:not(.pro-tabbtn)[onclick*="save"],
body:not(.dark-mode):not(.qn-exporting) button:not(.pro-tabbtn)[onclick*="backup"]{
  background:var(--ss92-accent) !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  border-color:rgba(37,99,235,.20) !important;
  box-shadow:0 12px 24px rgba(37,99,235,.18), inset 0 1px 0 rgba(255,255,255,.16) !important;
}
body:not(.dark-mode):not(.qn-exporting) #studentReportBtn,
body:not(.dark-mode):not(.qn-exporting) .btn-purple,
body:not(.dark-mode):not(.qn-exporting) .ui-preset-btn.active,
body:not(.dark-mode):not(.qn-exporting) button[style*="#5b21b6"],
body:not(.dark-mode):not(.qn-exporting) button[style*="#7c3aed"]{
  background:var(--ss92-accent-alt) !important;
  color:#fff !important;
}
body:not(.dark-mode):not(.qn-exporting) .close-btn,
body:not(.dark-mode):not(.qn-exporting) .btn-close,
body:not(.dark-mode):not(.qn-exporting) .schedule-mini-del,
body:not(.dark-mode):not(.qn-exporting) .ss-br-danger,
body:not(.dark-mode):not(.qn-exporting) button[onclick*="delete"],
body:not(.dark-mode):not(.qn-exporting) button[onclick*="Delete"]{
  background:var(--ss92-danger) !important;
  color:#fff !important;
}
body:not(.dark-mode):not(.qn-exporting) .eval-btn{color:#fff !important;-webkit-text-fill-color:#fff !important;}
body:not(.dark-mode):not(.qn-exporting) .modal,
body:not(.dark-mode):not(.qn-exporting) #manual-install-modal,
body:not(.dark-mode):not(.qn-exporting) #expired-screen,
body:not(.dark-mode):not(.qn-exporting) #security-screen,
body:not(.dark-mode):not(.qn-exporting) #v23UltraModal,
body:not(.dark-mode):not(.qn-exporting) .v23-ov,
body:not(.dark-mode):not(.qn-exporting) .v24-ov,
body:not(.dark-mode):not(.qn-exporting) .ss-modal,
body:not(.dark-mode):not(.qn-exporting) .ss-dialog,
body:not(.dark-mode):not(.qn-exporting) [role="dialog"]{
  background:rgba(15,23,42,.28) !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
body:not(.dark-mode):not(.qn-exporting) #notify{
  background:var(--ss92-surface-card) !important;
  color:var(--ss92-text) !important;
  border:1px solid var(--ss92-border) !important;
  box-shadow:var(--ss92-shadow-strong) !important;
}
@media(max-width:768px){
  body:not(.dark-mode):not(.qn-exporting) .app-header,
  body:not(.dark-mode):not(.qn-exporting) .control-panel,
  body:not(.dark-mode):not(.qn-exporting) .collapsible-content,
  body:not(.dark-mode):not(.qn-exporting) .class-container,
  body:not(.dark-mode):not(.qn-exporting) .modal-content,
  body:not(.dark-mode):not(.qn-exporting) .pro-card,
  body:not(.dark-mode):not(.qn-exporting) .ss-an-card,
  body:not(.dark-mode):not(.qn-exporting) .ss-tt-card,
  body:not(.dark-mode):not(.qn-exporting) .ss-br-card,
  body:not(.dark-mode):not(.qn-exporting) .ss-effort-card{border-radius:24px !important;}
}

/* ===== ss-v93-balanced-theme-layout-fix ===== */

/* SmartSchool V94 — duplicate grade/subject filter fields removed; main class/student dropdown logic preserved */
html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}body:not(.qn-exporting){overflow-x:hidden!important;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;}
:root{
  --ss93-radius-xl:30px;--ss93-radius-lg:24px;--ss93-radius-md:18px;--ss93-fast:.12s;
}
body:not(.dark-mode):not(.qn-exporting){
  --ss93-bg:radial-gradient(circle at 12% 8%,rgba(90,170,255,.18),transparent 26%),radial-gradient(circle at 92% 12%,rgba(255,220,160,.22),transparent 26%),linear-gradient(180deg,#f8fbff 0%,#eef5ff 46%,#fffaf2 100%);
  --ss93-surface:linear-gradient(180deg,rgba(255,255,255,.88),rgba(243,248,255,.74));
  --ss93-surface-strong:linear-gradient(180deg,rgba(255,255,255,.96),rgba(239,246,255,.88));
  --ss93-field:linear-gradient(180deg,rgba(255,255,255,.98),rgba(243,248,255,.93));
  --ss93-ink:#17130f;--ss93-ink-soft:#352b22;--ss93-muted:#63574b;--ss93-border:rgba(87,110,150,.20);--ss93-border-strong:rgba(55,90,145,.32);
  --ss93-shadow:0 14px 32px rgba(67,95,140,.10),0 5px 15px rgba(31,41,55,.06),inset 0 1px 0 rgba(255,255,255,.92);
  --ss93-shadow-soft:0 8px 22px rgba(67,95,140,.08),inset 0 1px 0 rgba(255,255,255,.90);
  --ss93-primary:linear-gradient(135deg,#2d7df0 0%,#13b8d8 100%);--ss93-purple:linear-gradient(135deg,#7c3aed 0%,#d82bb2 100%);
  --text-main:var(--ss93-ink)!important;--text-sec:var(--ss93-muted)!important;--muted:var(--ss93-muted)!important;--card:rgba(255,255,255,.84)!important;--card-strong:rgba(255,255,255,.96)!important;--input-bg:rgba(255,255,255,.96)!important;--border:var(--ss93-border)!important;--primary:#246fe5!important;--primary-mid:#10b4d7!important;--accent:#7c3aed!important;--accent2:#11a999!important;background:var(--ss93-bg)!important;color:var(--ss93-ink)!important;
}
body.dark-mode:not(.qn-exporting){
  --ss93-bg:radial-gradient(circle at 15% 10%,rgba(54,132,255,.18),transparent 24%),radial-gradient(circle at 88% 8%,rgba(168,85,247,.12),transparent 22%),linear-gradient(180deg,#03070f 0%,#07111f 50%,#050910 100%);
  --ss93-surface:linear-gradient(180deg,rgba(15,25,42,.92),rgba(6,12,24,.96));
  --ss93-surface-strong:linear-gradient(180deg,rgba(18,30,50,.94),rgba(8,14,28,.98));
  --ss93-field:linear-gradient(180deg,rgba(12,21,37,.96),rgba(5,10,20,.99));
  --ss93-ink:#f8fbff;--ss93-ink-soft:#e8eefb;--ss93-muted:#b7c2d6;--ss93-border:rgba(145,170,220,.22);--ss93-border-strong:rgba(180,210,255,.34);
  --ss93-shadow:0 16px 36px rgba(0,0,0,.34),0 6px 18px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.045);
  --ss93-shadow-soft:0 10px 24px rgba(0,0,0,.30),inset 0 1px 0 rgba(255,255,255,.04);
  --ss93-primary:linear-gradient(135deg,#2f75ff 0%,#12c7d2 100%);--ss93-purple:linear-gradient(135deg,#6d3cff 0%,#d12bc4 100%);
  --text-main:var(--ss93-ink)!important;--text-sec:var(--ss93-muted)!important;--muted:var(--ss93-muted)!important;--card:rgba(9,16,30,.92)!important;--card-strong:rgba(9,16,30,.98)!important;--input-bg:rgba(7,13,26,.98)!important;--border:var(--ss93-border)!important;--primary:#6fb6ff!important;--primary-mid:#1fd0c9!important;--accent:#b59cff!important;--accent2:#20d4c8!important;background:var(--ss93-bg)!important;color:var(--ss93-ink)!important;
}
body:not(.qn-exporting) .container{width:min(100% - 18px,1180px)!important;max-width:min(100% - 18px,1180px)!important;margin-inline:auto!important;padding:10px 0 90px!important;min-width:0!important;}
body:not(.qn-exporting) .app-header,body:not(.qn-exporting) .control-panel,body:not(.qn-exporting) .collapsible-content,body:not(.qn-exporting) .class-container,body:not(.qn-exporting) .modal-content,body:not(.qn-exporting) .install-box,body:not(.qn-exporting) .pro-card,body:not(.qn-exporting) .tp-card,body:not(.qn-exporting) .schedule-card,body:not(.qn-exporting) .info-card,body:not(.qn-exporting) .ss-card,body:not(.qn-exporting) .v23-card,body:not(.qn-exporting) .v24-card,body:not(.qn-exporting) .ss-an-card,body:not(.qn-exporting) .ss-an-kpi,body:not(.qn-exporting) .ss-tt-card,body:not(.qn-exporting) .ss-br-card,body:not(.qn-exporting) .ss-effort-card,body:not(.qn-exporting) .content-box,body:not(.qn-exporting) .teacher-card,body:not(.qn-exporting) .student-card,body:not(.qn-exporting) .exam-panel,body:not(.qn-exporting) .season-toggle,body:not(.qn-exporting) .table-shell,body:not(.qn-exporting) .table-wrapper,body:not(.qn-exporting) .table-container,body:not(.qn-exporting) .ss-select-sheet,body:not(.qn-exporting) .ss-notify-dropdown,body:not(.qn-exporting) .schedule-note-box{background:var(--ss93-surface)!important;color:var(--ss93-ink)!important;border:1px solid var(--ss93-border)!important;border-radius:var(--ss93-radius-xl)!important;box-shadow:var(--ss93-shadow)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;min-width:0!important;}
body:not(.qn-exporting) .app-header{background:var(--ss93-surface-strong)!important;border-radius:32px!important;padding:14px 16px!important;gap:12px!important;}
body:not(.qn-exporting) .control-panel{padding:18px!important;border-right:1px solid var(--ss93-border)!important;}
body:not(.qn-exporting) .collapsible-content,body:not(.qn-exporting) .class-container{padding:16px!important;}
body:not(.qn-exporting) .app-title,body:not(.qn-exporting) .clock-time,body:not(.qn-exporting) .clock-date,body:not(.qn-exporting) label,body:not(.qn-exporting) h1,body:not(.qn-exporting) h2,body:not(.qn-exporting) h3,body:not(.qn-exporting) h4,body:not(.qn-exporting) h5,body:not(.qn-exporting) h6,body:not(.qn-exporting) p,body:not(.qn-exporting) span,body:not(.qn-exporting) strong,body:not(.qn-exporting) div,body:not(.qn-exporting) .ss-an-card-title,body:not(.qn-exporting) .ss-tt-card-title,body:not(.qn-exporting) .ss-br-student-name{color:var(--ss93-ink)!important;}
body:not(.qn-exporting) .ss-effort-meter-marker.ss-effort-meter-marker,body:not(.qn-exporting) .ss-effort-meter-marker.ss-effort-meter-marker *,body:not(.qn-exporting) .ss-official-grid .total.total,body:not(.qn-exporting) .ss-official-grid .total.total *,body:not(.qn-exporting) .ss-effort-pill.ss-effort-pill,body:not(.qn-exporting) .season-btn.active.active,body:not(.qn-exporting) .season-btn.active.active *{color:#fff!important;}
body:not(.qn-exporting) .app-subtitle,body:not(.qn-exporting) .pro-hint,body:not(.qn-exporting) .pro-footnote,body:not(.qn-exporting) .ss-an-card-note,body:not(.qn-exporting) .ss-tt-help,body:not(.qn-exporting) .ss-br-sub,body:not(.qn-exporting) .ss-effort-muted,body:not(.qn-exporting) .schedule-empty,body:not(.qn-exporting) [style*="color:var(--text-sec)"],body:not(.qn-exporting) [style*="color: var(--text-sec)"]{color:var(--ss93-muted)!important;}
body:not(.qn-exporting) input,body:not(.qn-exporting) select,body:not(.qn-exporting) textarea,body:not(.qn-exporting) .settings-input,body:not(.qn-exporting) .tp-input,body:not(.qn-exporting) .ss-tt-input,body:not(.qn-exporting) .ss-tt-select,body:not(.qn-exporting) .ss-an-select,body:not(.qn-exporting) .ss-br-input,body:not(.qn-exporting) .ss-br-textarea,body:not(.qn-exporting) .ss-br-select,body:not(.qn-exporting) .schedule-modern-input,body:not(.qn-exporting) .table-input,body:not(.qn-exporting) .exam-input-main,body:not(.qn-exporting) .date-input,body:not(.qn-exporting) #activityNoteSelect,body:not(.qn-exporting) #classSelect,body:not(.qn-exporting) #studentSelect,body:not(.qn-exporting) #gradeFilterSelect,body:not(.qn-exporting) #subjectFilterSelect{background:var(--ss93-field)!important;color:var(--ss93-ink)!important;-webkit-text-fill-color:var(--ss93-ink)!important;border:1.4px solid var(--ss93-border)!important;border-radius:22px!important;box-shadow:var(--ss93-shadow-soft)!important;min-height:56px!important;max-width:100%!important;outline:none!important;}
body:not(.qn-exporting) input::placeholder,body:not(.qn-exporting) textarea::placeholder{color:var(--ss93-muted)!important;-webkit-text-fill-color:var(--ss93-muted)!important;opacity:.85!important;}
body:not(.qn-exporting) select option{background:var(--card-strong)!important;color:var(--ss93-ink)!important;}
body:not(.qn-exporting) input:focus,body:not(.qn-exporting) select:focus,body:not(.qn-exporting) textarea:focus{border-color:var(--ss93-border-strong)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent),var(--ss93-shadow-soft)!important;}
body:not(.qn-exporting) button,body:not(.qn-exporting) .btn,body:not(.qn-exporting) .backup-btn,body:not(.qn-exporting) .restore-btn,body:not(.qn-exporting) .settings-save-btn,body:not(.qn-exporting) .export-btn,body:not(.qn-exporting) .tp-btn,body:not(.qn-exporting) .schedule-mini-btn,body:not(.qn-exporting) .toggle-btn,body:not(.qn-exporting) .season-btn,body:not(.qn-exporting) .pro-tabbtn:not(.active),body:not(.qn-exporting) .pin-btn,body:not(.qn-exporting) .ui-preset-btn,body:not(.qn-exporting) .board-docs-btn,body:not(.qn-exporting) .mini-filter-btn,body:not(.qn-exporting) .theme-toggle-btn{border-radius:24px!important;border:1px solid var(--ss93-border)!important;background:var(--ss93-surface-strong)!important;color:var(--ss93-ink)!important;box-shadow:var(--ss93-shadow-soft)!important;font-weight:900!important;touch-action:manipulation!important;-webkit-tap-highlight-color:transparent!important;transition:filter .08s ease,transform .08s ease!important;}
body:not(.qn-exporting) .pro-tabbtn.active{background:var(--ss93-primary)!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border-color:rgba(255,255,255,.22)!important;border-radius:24px!important;box-shadow:var(--ss93-shadow-soft)!important;font-weight:900!important;}
body:not(.qn-exporting) .settings-save-btn,body:not(.qn-exporting) .backup-btn,body:not(.qn-exporting) .restore-btn,body:not(.qn-exporting) .tp-btn-primary,body:not(.qn-exporting) .toggle-btn,body:not(.qn-exporting) .board-docs-btn,body:not(.qn-exporting) .theme-toggle-btn,body:not(.qn-exporting) .season-btn.active,body:not(.qn-exporting) #emailBtn,body:not(.qn-exporting) #waBtn,body:not(.qn-exporting) button:not(.pro-tabbtn)[onclick*="save"],body:not(.qn-exporting) button:not(.pro-tabbtn)[onclick*="Save"],body:not(.qn-exporting) button:not(.pro-tabbtn)[onclick*="backup"],body:not(.qn-exporting) button:not(.pro-tabbtn)[onclick*="Backup"]{background:var(--ss93-primary)!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border-color:rgba(255,255,255,.22)!important;}
body:not(.qn-exporting) button *,body:not(.qn-exporting) .btn *,body:not(.qn-exporting) .board-docs-btn *,body:not(.qn-exporting) .toggle-btn *,body:not(.qn-exporting) .season-btn *{color:inherit!important;-webkit-text-fill-color:currentColor!important;}
body:not(.qn-exporting) #studentReportBtn,body:not(.qn-exporting) .btn-purple,body:not(.qn-exporting) .ui-preset-btn.active,body:not(.qn-exporting) button[style*="#5b21b6"],body:not(.qn-exporting) button[style*="#7c3aed"]{background:var(--ss93-purple)!important;color:#fff!important;-webkit-text-fill-color:#fff!important;}
body:not(.qn-exporting) .selectors,body:not(.qn-exporting) .input-group{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;margin-bottom:16px!important;min-width:0!important;}
body:not(.qn-exporting) .class-row{display:grid!important;grid-template-columns:minmax(0,1fr) 58px!important;gap:10px!important;width:100%!important;min-width:0!important;}
body:not(.qn-exporting) .class-filters{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;width:100%!important;}
body:not(.qn-exporting) .mini-filter-btn{min-width:58px!important;width:58px!important;min-height:56px!important;padding:0!important;display:grid!important;place-items:center!important;}
body:not(.qn-exporting) .exam-panel{display:grid!important;grid-template-columns:minmax(120px,180px) minmax(0,1fr)!important;align-items:center!important;gap:12px!important;}
body:not(.qn-exporting) .exam-input-main{width:100%!important;min-width:0!important;text-align:center!important;}
body:not(.qn-exporting) .input-group{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
body:not(.qn-exporting) .season-toggle{padding:6px!important;gap:6px!important;}
body:not(.qn-exporting) .season-btn{min-height:52px!important;}

/* V95 — replace blue section openers with silver surfaces in both themes */
body:not(.qn-exporting) .toggle-btn{
  background: var(--section-surface) !important;
  color: var(--section-surface-text) !important;
  -webkit-text-fill-color: currentColor !important;
  border: 1px solid var(--section-surface-border) !important;
  box-shadow: var(--section-surface-shadow) !important;
  text-shadow: none !important;
}
body:not(.qn-exporting) .toggle-btn *{
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
}
body:not(.qn-exporting) .toggle-btn:hover{
  filter: brightness(1.01) !important;
}
body.dark-mode:not(.qn-exporting) .toggle-btn{
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
body:not(.dark-mode):not(.qn-exporting) .toggle-btn{
  color: #181818 !important;
  -webkit-text-fill-color: #181818 !important;
}
/* keep highlighted six-evaluation buttons colorful; only section opener panels become silver */
/* Six evaluation buttons: keep original level colors, glossy and readable */
body:not(.qn-exporting) .big-buttons-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;}
body:not(.qn-exporting) .eval-btn{position:relative!important;overflow:hidden!important;min-height:96px!important;padding:14px 10px!important;border-radius:26px!important;border:1px solid rgba(255,255,255,.42)!important;box-shadow:0 12px 26px rgba(31,41,55,.12),inset 0 1px 0 rgba(255,255,255,.58)!important;text-shadow:none!important;}
body:not(.qn-exporting) .eval-btn::before{content:"";position:absolute;inset:6px 8px auto 8px;height:38%;border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.62),rgba(255,255,255,0));pointer-events:none;}
body:not(.qn-exporting) .eval-btn .btn-label,body:not(.qn-exporting) .eval-btn .btn-score{position:relative;z-index:1;color:inherit!important;-webkit-text-fill-color:currentColor!important;font-weight:950!important;}
body:not(.dark-mode):not(.qn-exporting) .btn-blue{background:linear-gradient(145deg,rgba(218,239,255,.96),rgba(175,220,255,.72))!important;color:#123556!important;border-color:rgba(61,151,232,.34)!important;}
body:not(.dark-mode):not(.qn-exporting) .btn-green{background:linear-gradient(145deg,rgba(229,250,232,.96),rgba(180,232,188,.72))!important;color:#153b1f!important;border-color:rgba(68,170,86,.32)!important;}
body:not(.dark-mode):not(.qn-exporting) .btn-yellow{background:linear-gradient(145deg,rgba(255,248,213,.96),rgba(255,225,126,.72))!important;color:#4b3500!important;border-color:rgba(215,170,31,.36)!important;}
body:not(.dark-mode):not(.qn-exporting) .btn-red{background:linear-gradient(145deg,rgba(255,230,231,.96),rgba(255,178,185,.72))!important;color:#5a1620!important;border-color:rgba(226,77,90,.34)!important;}
body:not(.dark-mode):not(.qn-exporting) .btn-orange{background:linear-gradient(145deg,rgba(255,238,219,.96),rgba(255,196,132,.72))!important;color:#5a2d00!important;border-color:rgba(230,137,34,.36)!important;}
body:not(.dark-mode):not(.qn-exporting) .btn-gray{background:linear-gradient(145deg,rgba(250,250,250,.96),rgba(220,225,232,.72))!important;color:#2b3139!important;border-color:rgba(120,130,145,.32)!important;}
body.dark-mode:not(.qn-exporting) .btn-blue{background:linear-gradient(145deg,#2f5dff,#4f2fb8)!important;color:#fff!important;}
body.dark-mode:not(.qn-exporting) .btn-green{background:linear-gradient(145deg,#09b6a8,#087c74)!important;color:#fff!important;}
body.dark-mode:not(.qn-exporting) .btn-yellow{background:linear-gradient(145deg,#b7ba16,#787a09)!important;color:#fff!important;}
body.dark-mode:not(.qn-exporting) .btn-red{background:linear-gradient(145deg,#c72d8d,#83165f)!important;color:#fff!important;}
body.dark-mode:not(.qn-exporting) .btn-orange{background:linear-gradient(145deg,#d47a12,#9b4f05)!important;color:#fff!important;}
body.dark-mode:not(.qn-exporting) .btn-gray{background:linear-gradient(145deg,#626975,#313844)!important;color:#fff!important;}
body:not(.qn-exporting) .bottom-nav,body:not(.qn-exporting) .nav-bar,body:not(.qn-exporting) .mobile-nav,body:not(.qn-exporting) .footer-nav{background:var(--ss93-surface-strong)!important;border:1px solid var(--ss93-border)!important;box-shadow:0 -10px 24px rgba(31,41,55,.10)!important;}
body:not(.qn-exporting) img,body:not(.qn-exporting) canvas,body:not(.qn-exporting) svg{max-width:100%;height:auto;}
body:not(.qn-exporting) table{max-width:100%;}
body:not(.qn-exporting) .table-responsive,body:not(.qn-exporting) .table-wrapper,body:not(.qn-exporting) .table-container{overflow:auto!important;-webkit-overflow-scrolling:touch;}
body:not(.qn-exporting) *{scrollbar-width:thin;}
@media (min-width:900px){body:not(.qn-exporting) .container{max-width:min(1180px,calc(100vw - 32px))!important;}body:not(.qn-exporting) .control-panel{display:grid!important;grid-template-columns:1fr 1fr!important;gap:16px!important;align-items:start!important;}body:not(.qn-exporting) .control-panel>.selectors,body:not(.qn-exporting) .control-panel>.big-buttons-grid,body:not(.qn-exporting) .control-panel>#currentStats,body:not(.qn-exporting) .control-panel>div[style*="display:flex"]{grid-column:1/-1!important;}body:not(.qn-exporting) .big-buttons-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}body:not(.qn-exporting) .input-group{grid-template-columns:1fr 1fr!important;}}
@media (min-width:1200px){body:not(.qn-exporting) .container{max-width:min(1360px,calc(100vw - 40px))!important;}body:not(.qn-exporting) .big-buttons-grid{grid-template-columns:repeat(6,minmax(0,1fr))!important;}body:not(.qn-exporting) .eval-btn{min-height:110px!important;}}
@media (max-width:560px){body:not(.qn-exporting) .container{width:min(100% - 12px,720px)!important;max-width:min(100% - 12px,720px)!important;padding-top:6px!important;}body:not(.qn-exporting) .app-header{padding:12px!important;border-radius:24px!important;}body:not(.qn-exporting) .control-panel,body:not(.qn-exporting) .collapsible-content,body:not(.qn-exporting) .class-container{padding:14px!important;border-radius:22px!important;}body:not(.qn-exporting) .class-filters,body:not(.qn-exporting) .input-group{grid-template-columns:1fr!important;}body:not(.qn-exporting) .exam-panel{grid-template-columns:1fr!important;text-align:center!important;}body:not(.qn-exporting) .big-buttons-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}body:not(.qn-exporting) .eval-btn{min-height:88px!important;font-size:.95rem!important;}body:not(.qn-exporting) button,body:not(.qn-exporting) select,body:not(.qn-exporting) input,body:not(.qn-exporting) textarea{font-size:16px!important;}}
@media (prefers-reduced-motion: reduce){body:not(.qn-exporting) *,body:not(.qn-exporting) *::before,body:not(.qn-exporting) *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important;}}

/* ===== css/06-ss-v94-remove-duplicate-filter-fields-style.css ===== */
/* ===== ss-v94-remove-duplicate-filter-fields-style ===== */

/* V94: hide/remove the extra inactive class/subject filter fields. Keep only the working class+student dropdowns. */
#classFilterToggle,
#classFilters,
#gradeFilterSelect,
#subjectFilterSelect{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
  height:0!important;
  min-height:0!important;
  max-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  overflow:hidden!important;
}
.selectors .class-row{width:100%!important;display:flex!important;gap:10px!important;}
.selectors .class-row #classSelect{width:100%!important;flex:1 1 100%!important;min-width:0!important;}
.selectors #studentSelect{width:100%!important;flex:1 1 100%!important;}

/* ===== css/07-part-07.css ===== */
/* ===== inline ===== */

  .tp-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;align-items:center;justify-content:center;z-index:999998;padding:14px;}
  .tp-card{width:min(520px,96vw);background:#fff;border-radius:16px;padding:14px;direction:rtl;text-align:right;box-shadow:0 12px 36px rgba(0,0,0,.30);}
  .tp-title{font-weight:900;font-size:16px;margin:0 0 10px;}
  .tp-list{display:flex;flex-direction:column;gap:8px;max-height:52vh;overflow:auto;margin-bottom:12px;}
  .tp-item{border:1px solid #e5e5e5;border-radius:12px;padding:10px;cursor:pointer;font-weight:800;}
  .tp-item small{display:block;font-weight:700;opacity:.7;margin-top:4px;}
  .tp-actions{display:flex;gap:10px;}
  .tp-actions button{flex:1;border:none;border-radius:12px;padding:10px 12px;font-weight:900;cursor:pointer;}
  .tp-cancel{background:rgba(0,0,0,.07);}

/* === Board green button: open student docs inside Grades list (no flashback) === */
.board-docs-btn{
  width:100%;
  margin-top:12px;
  padding:16px 14px;
  border:none;
  border-radius:12px;
  background: linear-gradient(90deg, var(--accent2,#2e7d32), color-mix(in srgb,var(--accent2,#43a047) 80%,#fff 20%));
  color:#fff;
  font-size:1.1em;
  font-weight:900;
  cursor:pointer;
  box-shadow: var(--shadow);
  display:flex;
  justify-content:center;
  align-items:center;
  gap:8px;
}

/* ===== css/08-part-08.css ===== */
/* ===== inline ===== */

  .v23-badge{display:none!important;position:fixed;left:10px;top:10px;z-index:999999;background:#111;color:#fff;padding:6px 10px;border-radius:999px;font-weight:900;font-size:12px;opacity:.75}
  .v23-btn-green{width:100%;border:none;border-radius:14px;padding:12px 14px;font-weight:900;cursor:pointer;margin-top:10px;background:#0f9d58;color:#fff;box-shadow:0 8px 18px rgba(0,0,0,.18);}
  .v23-ov{position:fixed;inset:0;background:rgba(0,0,0,.6);display:none;align-items:center;justify-content:center;z-index:9999999;padding:14px;}
  .v23-card{width:min(920px,96vw);max-height:88vh;overflow:auto;background:#fff;border-radius:18px;padding:14px;direction:rtl;text-align:right;box-shadow:0 12px 36px rgba(0,0,0,.30);}
  .v23-title{font-weight:900;font-size:16px;margin:0 0 10px;}
  .v23-meta{font-size:13px;opacity:.8;display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
  .v23-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
  .v23-tpl{border:1px solid #e6e6e6;border-radius:14px;padding:12px;cursor:pointer;font-weight:900;background:#fff;}
  .v23-tpl small{display:block;font-weight:700;opacity:.7;margin-top:6px;}
  .v23-stepq{font-weight:900;margin-bottom:10px;}
  .v23-prog{font-weight:900;opacity:.7;margin-bottom:8px;font-size:13px;}
  .v23-input{width:100%;min-height:84px;padding:10px;border-radius:12px;border:1px solid #ddd;margin-bottom:12px;}
  .v23-nav{display:flex;gap:10px;flex-wrap:wrap;}
  .v23-nav button{flex:1;border:none;border-radius:12px;padding:10px 12px;font-weight:900;cursor:pointer;}
  .v23-prev{background:rgba(0,0,0,.07);}
  .v23-next{background:#111;color:#fff;}
  .v23-close{background:rgba(0,0,0,.07);}
  .v23-admin{margin-top:12px;padding:12px;border-radius:14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);}
  .v23-admin label{display:block;font-weight:900;margin-bottom:6px;opacity:.9}
  .v23-admin select,.v23-admin textarea{width:100%;padding:10px;border-radius:12px;border:1px solid #d9d9d9;font-weight:800;direction:rtl}
  .v23-admin textarea{min-height:180px;line-height:1.7;font-weight:700}
  .v23-admin .row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
  .v23-admin .row .pill{padding:4px 10px;border-radius:999px;background:rgba(0,0,0,.06);font-weight:900;font-size:12px}
  .v23-admin .actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
  .v23-admin .actions button{border:none;border-radius:12px;padding:10px 12px;font-weight:900;cursor:pointer}
  .v23-save{background:#0f9d58;color:#fff}
  .v23-reset{background:#d93025;color:#fff}
  .v23-load{background:rgba(0,0,0,.07)}

/* === Board green button: open student docs inside Grades list (no flashback) === */
.board-docs-btn{
  width:100%;
  margin-top:12px;
  padding:16px 14px;
  border:none;
  border-radius:12px;
  background: linear-gradient(90deg, var(--accent2,#2e7d32), color-mix(in srgb,var(--accent2,#43a047) 80%,#fff 20%));
  color:#fff;
  font-size:1.1em;
  font-weight:900;
  cursor:pointer;
  box-shadow: var(--shadow);
  display:flex;
  justify-content:center;
  align-items:center;
  gap:8px;
}



/* v23 header fields */
.v23-hdr-fields{margin-top:10px; display:flex; flex-direction:column; gap:10px;}
.v23-hrow{display:flex; gap:10px; flex-wrap:wrap;}
.v23-hrow input{flex:1; min-width:180px; padding:10px 12px; border-radius:12px; border:1px solid rgba(0,0,0,.15); outline:none; font-family:inherit;}
@media(max-width:600px){
  .v23-hrow input{min-width:140px;}
}

  /* Ultra Pro: V23 style controls (icon-only, compact, scoped) */
  .v23-stylebar{
    display:flex;
    align-items:center;
    gap:6px;
    flex-wrap:nowrap;
    overflow:auto;
    padding:6px 4px;
    margin:8px 0 6px;
    -webkit-overflow-scrolling: touch;
  }
  .v23-stylebar::-webkit-scrollbar{ height:6px; }
  .v23-stylebar::-webkit-scrollbar-thumb{ background:rgba(0,0,0,.18); border-radius:999px; }
  .v23-style-sep{ width:10px; height:1px; background:rgba(0,0,0,.16); flex:0 0 auto; }
  body.dark-mode .v23-stylebar::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.18); }
  body.dark-mode .v23-style-sep{ background:rgba(255,255,255,.18); }
  .v23-ico{
    flex:0 0 auto;
    width:40px;
    height:40px;
    border:1px solid rgba(0,0,0,.12);
    border-radius:12px;
    background:linear-gradient(180deg,#ffffff 0%, #f1f3f5 100%);
    color:#111827;
    font-weight:900;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    user-select:none;
    position:relative;
    white-space:nowrap;
    text-shadow:none;
    box-shadow:0 6px 14px rgba(0,0,0,.10);
  }
  .v23-ico:hover{
    background:linear-gradient(180deg,#ffffff 0%, #e9edf3 100%);
    border-color:rgba(0,0,0,.18);
  }
  body.dark-mode .v23-ico{
    border-color:rgba(255,255,255,.08);
    background:rgba(255,255,255,.10);
    color:#fff;
    box-shadow:0 8px 18px rgba(0,0,0,.18);
  }
  body.dark-mode .v23-ico:hover{
    background:rgba(255,255,255,.16);
    border-color:rgba(255,255,255,.14);
  }
  .v23-ico:active{ transform:translateY(1px); }
  .v23-ico.is-on{ outline:2px solid rgba(246,196,83,.85); background:rgba(246,196,83,.20); }
  .v23-ico[data-badge]::after{
    content: attr(data-badge);
    position:absolute;
    top:-6px;
    left:-6px;
    min-width:20px;
    height:20px;
    padding:0 6px;
    border-radius:999px;
    background:#111;
    color:#fff;
    font-size:11px;
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 8px 18px rgba(0,0,0,.25);
  }
  .v23-stylebar{scroll-snap-type:x proximity;}
  .v23-ico{scroll-snap-align:start;}
  #v23AlignJustify,#v23DirRTL,#v23DirLTR{font-weight:900;letter-spacing:.2px;}

/* ===== css/09-part-09.css ===== */
/* ===== inline ===== */

  .v24-ov{position:fixed;inset:0;background:rgba(0,0,0,.65);display:none;align-items:center;justify-content:center;z-index:99999999;padding:14px;}
  .v24-card{width:min(720px,96vw);background:#fff;border-radius:18px;padding:14px;direction:rtl;text-align:right;box-shadow:0 14px 46px rgba(0,0,0,.35);}
  .v24-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;}
  .v24-h b{font-size:16px}
  .v24-x{border:none;background:rgba(0,0,0,.06);border-radius:12px;padding:8px 10px;cursor:pointer;font-weight:900;}
  .v24-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:8px 0;}
  .v24-sel{min-width:240px;padding:10px;border-radius:12px;border:1px solid #ddd;font-weight:800;}
  .v24-q{font-weight:900;font-size:18px;line-height:1.7;margin:10px 0 8px;}
  .v24-in{width:100%;padding:10px;border-radius:12px;border:1px solid #ddd;font-weight:800;line-height:1.7;}
  .v24-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px;justify-content:flex-end;}
  .v24-actions button{border:none;border-radius:12px;padding:10px 12px;font-weight:900;cursor:pointer;}
  .v24-next{background:#0f9d58;color:#fff;}
  .v24-prev{background:rgba(0,0,0,.06);}
  .v24-done{background:#1a73e8;color:#fff;}
  .v24-badge{display:inline-block;padding:4px 10px;border-radius:999px;background:rgba(0,0,0,.06);font-weight:900;font-size:12px;}
  .v24-warn{font-size:13px;opacity:.75;margin-top:6px}

/* === Board green button: open student docs inside Grades list (no flashback) === */
.board-docs-btn{
  width:100%;
  margin-top:12px;
  padding:16px 14px;
  border:none;
  border-radius:12px;
  background: linear-gradient(90deg, var(--accent2,#2e7d32), color-mix(in srgb,var(--accent2,#43a047) 80%,#fff 20%));
  color:#fff;
  font-size:1.1em;
  font-weight:900;
  cursor:pointer;
  box-shadow: var(--shadow);
  display:flex;
  justify-content:center;
  align-items:center;
  gap:8px;
}

/* ===== css/10-schedule-upload-autodetect-v1.css ===== */
/* ===== schedule-upload-autodetect-v1 ===== */

.schedule-upload-tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:10px}
.schedule-upload-btn,.schedule-upload-clear{border:none;border-radius:14px;padding:12px 14px;font-weight:900;cursor:pointer;box-shadow:var(--shadow-card)}
.schedule-upload-btn{background:linear-gradient(90deg,#0ea5e9,#2563eb);color:#fff}
.schedule-upload-clear{background:rgba(15,23,42,.08);color:var(--text-main)}
.schedule-upload-preview{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}
.schedule-upload-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:rgba(37,99,235,.10);color:var(--text-main);font-weight:800;border:1px solid rgba(37,99,235,.16);max-width:100%}
.schedule-upload-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}
body.dark-mode .schedule-upload-clear{background:rgba(255,255,255,.08)}
.schedule-note-media{margin-top:10px;display:flex;flex-direction:column;gap:10px}
.schedule-note-image{max-width:min(100%,320px);border-radius:14px;border:1px solid var(--border);box-shadow:var(--shadow-card)}
.schedule-note-attachments{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.schedule-note-file{display:inline-flex;align-items:center;gap:8px;padding:10px 12px;border-radius:14px;background:rgba(37,99,235,.10);color:var(--text-main);font-weight:900;text-decoration:none;border:1px solid rgba(37,99,235,.16);max-width:100%}
.schedule-note-file:hover{text-decoration:none;filter:brightness(0.98)}

/* ===== css/11-ss-activity-notify-v2.css ===== */
/* ===== ss-activity-notify-v2 ===== */

.ss-bell-btn{border:none;border-radius:14px;background:rgba(67,97,238,.12);color:var(--text-main);padding:10px 12px;font-weight:900;cursor:pointer;display:inline-flex;align-items:center;gap:8px;position:relative}
.ss-bell-count{position:absolute;top:-6px;left:-6px;background:#d32f2f;color:#fff;border-radius:999px;min-width:22px;height:22px;padding:0 6px;display:flex;align-items:center;justify-content:center;font-size:.76em;font-weight:900}
.ss-log-list,.ss-notify-list{display:flex;flex-direction:column;gap:10px}
.ss-card{padding:12px;border:1px solid var(--border);border-radius:14px;background:var(--input-bg);box-shadow:var(--shadow-card)}
.ss-meta{font-size:.84em;color:var(--text-sec);font-weight:800;margin-top:4px}
.ss-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.ss-mini{border:none;border-radius:10px;padding:8px 12px;font-weight:900;cursor:pointer}
.ss-history-shell{display:flex;flex-direction:column;gap:10px}.ss-history-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;border:none;border-radius:14px;padding:14px 16px;font-weight:900;cursor:pointer;background:linear-gradient(90deg, rgba(67,97,238,.16), rgba(67,97,238,.08));color:var(--text-main);box-shadow:var(--shadow-card);border:1px solid var(--border)}.ss-history-toggle:active{transform:scale(.99)}.ss-history-badge{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 10px;border-radius:999px;background:rgba(67,97,238,.18);color:var(--text-main);font-weight:1000}.ss-history-chevron{font-size:1.05em;transition:transform .2s ease}.ss-history-shell.open .ss-history-chevron{transform:rotate(180deg)}.ss-history-body{display:none}.ss-history-shell.open .ss-history-body{display:block}.ss-log-list{max-height:60vh;overflow:auto;padding-right:2px}
.ss-danger{background:#d32f2f;color:#fff}.ss-primary{background:#1d4ed8;color:#fff}.ss-muted{background:rgba(0,0,0,.08);color:var(--text-main)}
.ss-notify-dot{width:10px;height:10px;border-radius:999px;background:#f59e0b;display:inline-block}
.ss-file-link{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border-radius:999px;background:rgba(37,99,235,.10);color:#1d4ed8;text-decoration:none;font-weight:900;max-width:100%;word-break:break-word}
body.dark-mode .ss-file-link{color:#93c5fd;background:rgba(37,99,235,.18)}
.schedule-upload-chip button{border:none;background:transparent;color:#d32f2f;font-weight:1000;cursor:pointer;padding:0 2px;font-size:1rem;line-height:1}

/* ===== css/12-ss-notify-autocomplete-v3.css ===== */
/* ===== ss-notify-autocomplete-v3 ===== */

.ss-notify-field{position:relative;width:100%;}
.ss-notify-search{width:100%;}
.ss-notify-dropdown{position:absolute;top:calc(100% + 8px);right:0;left:0;z-index:99999;max-height:320px;overflow:auto;border:1px solid var(--border);border-radius:16px;background:var(--card-strong);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 18px 40px rgba(0,0,0,.18);display:none;padding:6px;}
.ss-notify-dropdown.show{display:block;}
.ss-notify-group-title{padding:8px 12px 6px;font-size:.82em;font-weight:1000;color:var(--text-sec);}
.ss-notify-option{padding:11px 12px;border-radius:12px;cursor:pointer;border:1px solid transparent;}
.ss-notify-option + .ss-notify-option{margin-top:4px;}
.ss-notify-option:hover,.ss-notify-option.active{background:rgba(59,130,246,.10);border-color:rgba(59,130,246,.18);}
.ss-notify-option-title{font-weight:900;color:var(--text-main);line-height:1.7;}
.ss-notify-option-meta{font-size:.84em;color:var(--text-sec);font-weight:800;line-height:1.6;}
.ss-notify-helper{margin-top:6px;min-height:22px;font-size:.82em;color:var(--text-sec);font-weight:800;line-height:1.7;}
.ss-notify-empty{padding:12px;border-radius:12px;text-align:center;color:var(--text-sec);font-weight:900;}
.ss-notify-mark{background:#f6c453;color:#111;padding:1px 4px;border-radius:6px;}

/* ===== css/13-ss-dark-dropdown-fix-v1.css ===== */
/* ===== ss-dark-dropdown-fix-v1 ===== */

html, body{ background-color:#000000; }
body.dark-mode,
body.dark-mode .container,
body.dark-mode .control-panel,
body.dark-mode .collapsible-content,
body.dark-mode .class-container,
body.dark-mode .pro-card,
body.dark-mode .modal-content,
body.dark-mode .settings-input,
body.dark-mode .tp-input,
body.dark-mode .qnSelect,
body.dark-mode .qn-select,
body.dark-mode #qnFlashLevel,
body.dark-mode #v23HistSel,
body.dark-mode #v23SubSel,
body.dark-mode #v24Tpl,
body.dark-mode #ssNotifyTargetType{
  background-color: #0d0d0d !important;
  color: var(--text-main) !important;
}
body.dark-mode select,
body.dark-mode input,
body.dark-mode textarea{
  background: var(--input-bg) !important;
  color: var(--text-main) !important;
  border-color: var(--border) !important;
}
body.dark-mode select option,
body.dark-mode datalist option{
  background:#111111 !important;
  color:#f8fafc !important;
}
body.dark-mode select:focus,
body.dark-mode input:focus,
body.dark-mode textarea:focus{
  box-shadow:0 0 0 3px rgba(76,201,240,.18) !important;
}
body.dark-mode .modal,
body.dark-mode #qnEditorModal,
body.dark-mode #qnLiveModal,
body.dark-mode #qnFlashModal{
  background: rgba(0,0,0,.72) !important;
}

.ss-select-wrap{
  position:relative;
  width:100%;
  min-width:0;
}
.ss-select-wrap select.ss-select-native{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  opacity:0 !important;
  pointer-events:none !important;
}
.ss-select-btn{
  width:100%;
  min-height:54px;
  border:2px solid rgba(99,70,255,0.35)!important;
  border-radius:12px;
  background:rgba(10,8,30,0.88)!important;
  color:#fff!important;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:12px 14px;
  font:inherit;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 4px 16px rgba(55,6,175,.18),inset 0 1px 0 rgba(255,255,255,.06);
}
.ss-select-btn:active{ transform:scale(.995); }
.ss-select-btn:focus-visible{ outline:2px solid rgba(67,97,238,.34); outline-offset:2px; }
.ss-select-label{
  flex:1;
  min-width:0;
  text-align:right;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.ss-select-caret{
  flex:0 0 auto;
  font-size:14px;
  line-height:1;
  opacity:.8;
  transition:transform .18s ease;
}
.ss-select-wrap.open .ss-select-caret{ transform:rotate(180deg); }
.ss-select-overlay{
  position:fixed;
  inset:0;
  z-index:100060;
  background:rgba(2,6,23,.38);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
  display:none;
  align-items:flex-end;
  justify-content:center;
  padding:14px;
}
.ss-select-overlay.open{ display:flex; }
.ss-select-sheet{
  width:min(96vw,560px);
  max-height:min(72vh,560px);
  overflow:hidden;
  border-radius:24px;
  background:#0f0a24;
  color:#fff;
  box-shadow:0 24px 80px rgba(0,0,0,.54);
  border:1px solid rgba(99,70,255,0.28);
  display:flex;
  flex-direction:column;
}
body.dark-mode .ss-select-sheet{
  background:#0f172a;
  color:#f8fafc;
  border-color:rgba(255,255,255,.08);
}
.ss-select-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:16px 18px 12px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
body.dark-mode .ss-select-head{ border-bottom-color:rgba(255,255,255,.08); }
.ss-select-title{
  font-weight:1000;
  font-size:1.02rem;
}
.ss-select-close{
  border:none;
  background:transparent;
  color:inherit;
  font-size:24px;
  line-height:1;
  cursor:pointer;
  padding:4px 8px;
  border-radius:10px;
}
.ss-select-search{
  margin:12px 16px 10px;
  width:calc(100% - 32px);
  border:1px solid rgba(99,70,255,0.25);
  border-radius:14px;
  padding:12px 14px;
  font:inherit;
  background:rgba(255,255,255,.07);
  color:#fff;
}
body.dark-mode .ss-select-search{
  background:rgba(255,255,255,.06);
  color:#f8fafc;
  border-color:rgba(255,255,255,.08);
}
.ss-select-list{
  overflow:auto;
  padding:0 0 10px;
}
.ss-select-option{
  width:100%;
  border:none;
  border-top:1px solid rgba(255,255,255,.06);
  background:transparent;
  color:#fff;
  padding:18px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  font:inherit;
  cursor:pointer;
  text-align:right;
}
body.dark-mode .ss-select-option{ border-top-color:rgba(255,255,255,.08); }
.ss-select-option:hover{ background:rgba(99,70,255,.12); }
body.dark-mode .ss-select-option:hover{ background:rgba(255,255,255,.05); }
.ss-select-option.is-selected{
  font-weight:900;
}
.ss-select-option-mark{
  flex:0 0 auto;
  width:18px;
  height:18px;
  border-radius:999px;
  border:2px solid currentColor;
  opacity:.78;
  position:relative;
}
.ss-select-option.is-selected .ss-select-option-mark::after{
  content:"";
  position:absolute;
  inset:3px;
  border-radius:999px;
  background:currentColor;
}
.ss-select-empty{
  padding:18px 20px;
  color:inherit;
  opacity:.7;
  text-align:center;
}
@media (min-width: 760px){
  .ss-select-overlay{ align-items:center; }
}

/* ===== css/14-ss-grades-jank-fix-v1-6-4.css ===== */
/* ===== ss-grades-jank-fix-v1-6-4 ===== */

  /* SmartSchool v1.6.4: grade-list jank fix. Focus: opening/scrolling لیستی نمرەکان */
  #gradesPanel{
    overflow-anchor:none;
    contain:layout style paint;
    transform:translateZ(0);
  }
  #gradesPanel .grades-tools,
  #gradesPanel .grades-meta{
    contain:layout style paint;
  }
  #gradesContainer{
    contain:layout style;
  }
  #gradesContainer .class-container{
    content-visibility:auto;
    contain:layout style paint;
    contain-intrinsic-size:1px 620px;
    box-shadow:none !important;
  }
  #gradesContainer .table-responsive{
    contain:layout style paint;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
    scrollbar-gutter:stable;
  }
  #gradesContainer table{
    table-layout:fixed;
  }
  #gradesContainer tbody tr{
    contain:layout style paint;
  }
  #gradesContainer input,
  #gradesContainer button{
    transition:none !important;
    animation:none !important;
    box-shadow:none !important;
  }
  #gradesContainer .name-input,
  #gradesContainer .table-input{
    min-height:36px;
  }
  #gradesPanel.ss-rendering #gradesContainer{
    opacity:.65;
    pointer-events:none;
  }
  #gradesPanel .ss-grade-loading{
    text-align:center;
    padding:14px;
    font-weight:900;
    color:var(--text-sec);
  }
  @media (max-width:768px){
    #gradesContainer .class-header-row{
      gap:8px !important;
      align-items:center !important;
    }
    #gradesContainer .class-actions button{
      padding:7px 10px !important;
      font-size:.9em !important;
    }
    #gradesContainer th,
    #gradesContainer td{
      padding:7px 5px !important;
    }
    #gradesContainer table{
      font-size:.88em !important;
      min-width:560px !important;
    }
  }

/* ===== css/15-ss-stable-layout-install-fix-v3.css ===== */
/* ===== ss-stable-layout-install-fix-v3 ===== */

/* Stable layout reset: do not center the app; keep normal document flow from the top. */
html, body{
  display:block !important;
  align-items:initial !important;
  justify-content:initial !important;
  margin:0 !important;
  min-height:100% !important;
  width:100% !important;
  overflow-x:hidden !important;
}
body{
  position:relative !important;
  top:0 !important;
  left:0 !important;
  right:auto !important;
  transform:none !important;
  padding-top:10px !important;
}
body > .container{
  display:flex !important;
  flex-direction:column !important;
  position:relative !important;
  top:0 !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  transform:none !important;
  margin-top:0 !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-top:12px !important;
  min-height:0 !important;
  align-self:auto !important;
}
.app-header{ margin-top:0 !important; }
#install-banner{
  position:fixed !important;
  left:0 !important; right:0 !important; bottom:0 !important; top:auto !important;
  width:100% !important;
  margin:0 !important;
  z-index:11000 !important;
}
#manual-install-modal,
#security-screen,
#expired-screen,
#teacherLoginScreen{
  position:fixed !important;
}
@media screen{
  #export-overlay:not([style*="display: block"]):not([style*="display:block"]){ display:none !important; }
}
.ss-install-mini-v3{
  border:0 !important;
  border-radius:999px !important;
  padding:8px 12px !important;
  font-weight:1000 !important;
  cursor:pointer !important;
  background:linear-gradient(135deg,#0ea5e9,#2563eb) !important;
  color:#fff !important;
  box-shadow:0 8px 18px rgba(37,99,235,.18) !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:6px !important;
  white-space:nowrap !important;
  touch-action:manipulation !important;
}
.ss-install-mini-v3.is-hidden{ display:none !important; }
@media(max-width:620px){
  body{ padding-top:6px !important; }
  body > .container{ width:100% !important; max-width:100% !important; padding-top:8px !important; }
  .ss-install-mini-v3{ padding:7px 10px !important; font-size:.86em !important; }
}

/* ===== css/16-ss-local-user-ui-font-admin-readonly-v1-style.css ===== */
/* ===== ss-local-user-ui-font-admin-readonly-v1-style ===== */

  html { font-size:16px !important; -webkit-text-size-adjust:100%; text-size-adjust:100%; }
  body { font-size:var(--app-font-size,16px) !important; }
  body, input, button, select, textarea, table { font-family: var(--app-font, 'Segoe UI', Tahoma, Arial, sans-serif) !important; }
  .ss-font-safe-note{margin-top:7px;padding:8px 10px;border-radius:11px;background:rgba(59,130,246,.08);border:1px solid rgba(59,130,246,.16);color:var(--text-sec);font-size:.76rem;font-weight:800;line-height:1.7}
  body.ss-font-large .card,body.ss-font-large .panel,body.ss-font-large .content-box,body.ss-font-large .modal-content{min-width:0;overflow-wrap:anywhere}
  body.ss-font-xlarge .ss-effort-rings,body.ss-font-xlarge .ss-effort-summary-grid{grid-template-columns:1fr!important}
  body.ss-font-xlarge .ss-effort-mini-stats,body.ss-font-xlarge .ss-effort-chart-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  @media(max-width:520px){body.ss-font-large .settings-theme-row{align-items:flex-start!important;flex-wrap:wrap!important}body.ss-font-xlarge .ss-an-kpi-grid{grid-template-columns:1fr!important}body.ss-font-xlarge .ss-effort-level-grid-modern{grid-template-columns:1fr!important}}
  #fontSizeValue{display:inline-flex;align-items:center;justify-content:center;}
  body.ss-score-readonly .eval-btn,
  body.ss-score-readonly #mainExamInput{
    opacity:.45 !important;
    cursor:not-allowed !important;
    filter:grayscale(.18);
  }
  body.ss-score-readonly #activityNoteSelect{opacity:.72;}
  #gradesContainer tr.ss-score-readonly-row .table-input{
    opacity:.50 !important;
    cursor:not-allowed !important;
    background:rgba(148,163,184,.13) !important;
  }
  #gradesContainer tr.ss-score-readonly-row .table-input:disabled,
  body.ss-score-readonly #mainExamInput:disabled{
    -webkit-text-fill-color: var(--text-sec);
    color: var(--text-sec) !important;
  }
  .ss-readonly-score-note{
    margin:8px 0 0;
    padding:8px 10px;
    border-radius:12px;
    background:rgba(245,158,11,.12);
    color:#92400e;
    font-weight:900;
    text-align:center;
    line-height:1.7;
  }
  body.dark-mode .ss-readonly-score-note{color:#fde68a;background:rgba(245,158,11,.16);}

/* ===== css/17-ss-v33-ui-print-excel-fixes.css ===== */
/* ===== ss-v33-ui-print-excel-fixes ===== */

  body, input, button, select, textarea, table, th, td,
  .clock-time, .clock-date, .btn-score, .qn-exam-item-no, .header-line span{
    font-variant-numeric: lining-nums tabular-nums;
    font-feature-settings: "lnum" 1, "tnum" 1;
  }
  .toggle-btn,
  .board-docs-btn,
  .tab-btn,
  .season-btn,
  .btn,
  .settings-save-btn,
  .backup-btn,
  .restore-btn,
  .pro-tabbtn,
  .tp-btn{
    min-width:0;
    max-width:100%;
    white-space:normal;
    overflow-wrap:anywhere;
    word-break:break-word;
    line-height:1.34;
  }
  .toggle-btn,
  .board-docs-btn{
    text-align:center;
    justify-content:center;
    flex-wrap:wrap;
  }
  .board-docs-btn{
    min-height:58px;
    padding:14px 12px;
    font-size:1rem;
  }
  .toggle-btn{padding:14px 16px;}
  .tab-btn,.season-btn{padding:10px 10px;}
  .tab-buttons,.season-toggle,.big-buttons-grid,.control-panel>div{min-width:0;}
  .big-buttons-grid .eval-btn{min-width:0;}
  .big-buttons-grid .btn-label{line-height:1.18;word-break:break-word;}
  .big-buttons-grid .btn-score{line-height:1.05;}
  .app-subtitle,.pro-hint,.pro-footnote{overflow-wrap:anywhere;word-break:break-word;}

  body.ss-font-large .toggle-btn,
  body.ss-font-large .board-docs-btn,
  body.ss-font-large .tab-btn,
  body.ss-font-large .season-btn,
  body.ss-font-large .btn,
  body.ss-font-large .tp-btn,
  body.ss-font-large .settings-save-btn,
  body.ss-font-large .backup-btn,
  body.ss-font-large .restore-btn{
    font-size:.96rem !important;
    line-height:1.28 !important;
  }
  body.ss-font-xlarge .toggle-btn,
  body.ss-font-xlarge .board-docs-btn,
  body.ss-font-xlarge .tab-btn,
  body.ss-font-xlarge .season-btn,
  body.ss-font-xlarge .btn,
  body.ss-font-xlarge .tp-btn,
  body.ss-font-xlarge .settings-save-btn,
  body.ss-font-xlarge .backup-btn,
  body.ss-font-xlarge .restore-btn{
    font-size:.90rem !important;
    line-height:1.22 !important;
  }
  body.ss-font-large .board-docs-btn,
  body.ss-font-xlarge .board-docs-btn{min-height:54px;padding:12px 10px !important;}
  body.ss-font-large .pro-txt{font-size:.66rem;}
  body.ss-font-xlarge .pro-txt{font-size:.61rem;}
  body.ss-font-large table,
  body.ss-font-xlarge table{font-size:.88em;}

  .export-content .formal-header{
    display:grid;
    grid-template-columns:1fr 1.08fr 1fr;
    gap:12px;
    align-items:end;
  }
  .export-content .header-side{
    display:flex;
    flex-direction:column;
    gap:4px;
  }
  .export-content .header-center{padding:0 6px;}
  .export-content .header-main-title{letter-spacing:.2px;}

  @media (max-width:480px){
    .board-docs-btn{font-size:.92rem !important;padding:12px 10px !important;}
    .toggle-btn{font-size:.95rem !important;padding:13px 12px !important;}
    .tab-btn,.season-btn{font-size:.88rem !important;padding:9px 8px !important;}
  }

/* ===== css/18-ss-v34-number-font-question-columns.css ===== */
/* ===== ss-v34-number-font-question-columns ===== */

  /* V34: numeric font control without removing the existing slider */
  .ss-font-number-wrap{
    display:flex;
    align-items:center;
    gap:7px;
    min-width:118px;
    padding:5px 7px;
    border:1px solid var(--border);
    border-radius:10px;
    background:var(--input-bg);
  }
  .ss-font-number-wrap label{
    font-size:.76rem;
    font-weight:900;
    color:var(--text-sec);
    white-space:nowrap;
  }
  #fontSizeNumberInput{
    width:64px;
    min-width:64px;
    height:38px;
    padding:5px 7px;
    border:1.5px solid var(--border);
    border-radius:9px;
    background:var(--card-strong,var(--card));
    color:var(--text-main);
    text-align:center;
    font-size:1rem !important;
    font-weight:1000;
    direction:ltr;
    font-variant-numeric:lining-nums tabular-nums;
  }
  #fontSizeNumberInput:focus{
    outline:none;
    border-color:var(--primary);
    box-shadow:0 0 0 3px rgba(55,6,175,.12);
  }
  .ss-font-number-unit{font-size:.76rem;font-weight:900;color:var(--text-sec);}

  /* V34 questionnaire: full-page, right/left two-column formal layout */
  .ss-qn-flat-page.ss-qn-v34-two-column{
    min-height:281mm !important;
    padding:5.5mm 6.5mm 6mm !important;
  }
  .ss-qn-flat-page.ss-qn-v34-two-column > div:first-child{
    flex:0 0 auto;
  }
  .ss-qn-flat-page.ss-qn-v34-two-column .qn-exam-content{
    display:block !important;
    column-count:2;
    column-gap:8mm;
    column-rule:1.2px solid #cbd5e1;
    column-fill:balance;
    width:100%;
    text-align:justify;
    direction:rtl;
  }
  .ss-qn-flat-page.ss-qn-v34-two-column .qn-exam-item{
    display:inline-block;
    width:100%;
    margin:0 0 6px 0 !important;
    vertical-align:top;
    break-inside:avoid-column;
    page-break-inside:avoid;
    border-radius:9px !important;
  }
  .ss-qn-flat-page.ss-qn-v34-two-column .qn-exam-item-head{
    padding:4px 8px !important;
    gap:6px !important;
  }
  .ss-qn-flat-page.ss-qn-v34-two-column .qn-exam-item-no{
    font-size:9.8pt !important;
  }
  .ss-qn-flat-page.ss-qn-v34-two-column .qn-exam-item-label{
    font-size:10pt !important;
  }
  .ss-qn-flat-page.ss-qn-v34-two-column .qn-exam-item-body{
    padding:6px 8px 7px !important;
    font-size:10.7pt !important;
    line-height:1.58 !important;
    text-align:justify !important;
  }
  .ss-qn-flat-page.ss-qn-v34-two-column .qn-exam-item-body p,
  .ss-qn-flat-page.ss-qn-v34-two-column .qn-exam-item-body ul,
  .ss-qn-flat-page.ss-qn-v34-two-column .qn-exam-item-body ol,
  .ss-qn-flat-page.ss-qn-v34-two-column .qn-exam-item-body table,
  .ss-qn-flat-page.ss-qn-v34-two-column .qn-exam-item-body .qn-block,
  .ss-qn-flat-page.ss-qn-v34-two-column .qn-exam-item-body .question-block{
    margin-top:0 !important;
    margin-bottom:5px !important;
    max-width:100% !important;
  }
  .ss-qn-flat-page.ss-qn-v34-two-column .qn-exam-item-body img{
    max-width:100% !important;
    max-height:118px !important;
    object-fit:contain;
  }
  .ss-qn-flat-page.ss-qn-v34-two-column table{
    max-width:100%;
    table-layout:auto;
  }
  .ss-qn-flat-page.ss-qn-v34-two-column td,
  .ss-qn-flat-page.ss-qn-v34-two-column th{
    overflow-wrap:anywhere;
    word-break:break-word;
  }

  @media(max-width:520px){
    .ss-font-number-wrap{width:100%;justify-content:center;}
    #fontSizeNumberInput{width:76px;}
    /* Keep the requested right/left division in preview, but tighten the gap. */
    .ss-qn-flat-page.ss-qn-v34-two-column .qn-exam-content{
      column-gap:5mm;
    }
  }

  @media print{
    .ss-qn-flat-page.ss-qn-v34-two-column{
      min-height:281mm !important;
      padding:4.5mm 5.5mm 5mm !important;
    }
    .ss-qn-flat-page.ss-qn-v34-two-column .qn-exam-content{
      column-count:2 !important;
      column-gap:7mm !important;
      column-rule:1px solid #94a3b8 !important;
      column-fill:balance !important;
    }
  }

/* ===== css/19-ss-v35-class-subject-stack-style.css ===== */
/* ===== ss-v35-class-subject-stack-style ===== */

  .ss-qn-class-subject-stack{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:4px;
    text-align:center;
    line-height:1.35;
  }
  .ss-qn-class-line{
    font-size:1.08em;
    font-weight:900;
    color:#0f172a;
  }
  .ss-qn-subject-line{
    font-size:.95em;
    font-weight:800;
    color:#334155;
  }
  .ss-qn-subject-line::before{
    content:"بابەت / ";
    color:#64748b;
    font-weight:700;
  }
  .ss-qn-hidden-subject-cell{display:none !important;}

/* ===== css/20-ss-v36-questionnaire-class-subject-separate-style.css ===== */
/* ===== ss-v36-questionnaire-class-subject-separate-style ===== */

  .ss-qn-v36-stack-line{display:block;margin:0 0 4px 0;line-height:1.7}
  .ss-qn-v36-stack-line:last-child{margin-bottom:0}
  .ss-qn-v36-stack-label{color:#475569;font-weight:800}
  .ss-qn-v36-stack-value{color:#0f172a;font-weight:900}

/* ===== css/21-ss-v37-exact-class-subject-export-style.css ===== */
/* ===== ss-v37-exact-class-subject-export-style ===== */

  .ss-v37-meta-stack{display:flex;flex-direction:column;gap:3px;line-height:1.65}
  .ss-v37-meta-line{display:block;white-space:normal}
  .ss-v37-meta-label{font-weight:800;color:#475569}
  .ss-v37-meta-value{font-weight:900;color:#0f172a}
  .export-content .ss-v37-meta-stack .header-line{margin:0}

/* ===== css/22-ss-v38-strict-class-subject-separation-style.css ===== */
/* ===== ss-v38-strict-class-subject-separation-style ===== */

  .ss-v38-meta-stack{display:flex;flex-direction:column;gap:4px;line-height:1.7}
  .ss-v38-meta-line{display:block;white-space:normal}
  .ss-v38-meta-label{font-weight:800;color:#475569}
  .ss-v38-meta-value{font-weight:900;color:#0f172a}

/* ===== css/23-ss-v39-final-class-subject-fix-style.css ===== */
/* ===== ss-v39-final-class-subject-fix-style ===== */

  .ss-v39-grade-heading{display:flex;flex-direction:column;gap:3px;min-width:0}
  .ss-v39-grade-heading .class-title{margin:0}
  .ss-v39-grade-subject{font-size:.9em;font-weight:850;color:var(--text-sec);line-height:1.5}
  .ss-v39-meta-stack{display:flex;flex-direction:column;gap:4px;line-height:1.7}
  .ss-v39-meta-label{font-weight:800;color:#475569}
  .ss-v39-meta-value{font-weight:900;color:#0f172a}

/* ===== css/24-ss-v43-performance-export-style.css ===== */
/* ===== ss-v43-performance-export-style ===== */

  /* V43: quicker tactile response without changing stored data or permissions. */
  html{touch-action:manipulation;scroll-behavior:auto}
  button,[role="button"],select,input,.eval-btn,.board-docs-btn,.toggle-btn,.tab-btn{
    touch-action:manipulation;-webkit-tap-highlight-color:transparent
  }
  .eval-btn,.board-docs-btn,.toggle-btn,.tab-btn,.btn,.export-btn{cursor:pointer}
  .eval-btn:active,.board-docs-btn:active,.toggle-btn:active,.tab-btn:active,.btn:active,.export-btn:active{
    transform:scale(.985)!important;filter:brightness(.96);transition:none!important
  }
  .eval-btn.ss-v43-saving{pointer-events:none;opacity:.82;transform:scale(.985)!important}
  #gradesPanel.ss-rendering{cursor:progress}
  #gradesContainer .table-responsive{content-visibility:auto;contain-intrinsic-size:800px}
  #gradesContainer tr{contain:layout paint}
  .ss-v43-grade-export table{table-layout:fixed!important;width:100%!important}
  .ss-v43-grade-export th,.ss-v43-grade-export td{padding:3px 4px!important;font-size:9.5pt!important;line-height:1.15!important}
  .ss-v43-grade-export .formal-header{margin-bottom:5mm!important;padding-bottom:3mm!important}
  .ss-v43-grade-export .header-main-title{font-size:17pt!important}
  .ss-qn-flat-page{box-sizing:border-box!important;width:210mm!important;max-width:100%!important;min-height:297mm!important;margin:0 auto!important;padding:9mm 11mm!important;display:flex!important;flex-direction:column!important;box-shadow:none!important}
  .ss-qn-flat-page>div:nth-child(3){flex:1 1 auto}
  .ss-qn-flat-page *{box-sizing:border-box}
  .ss-qn-flat-page table{max-width:100%!important}
  .ss-qn-flat-page .qn-question-block,.ss-qn-flat-page [class*="question"]{break-inside:avoid;page-break-inside:avoid}
  @media (hover:none),(pointer:coarse){
    button:hover,.btn:hover,.eval-btn:hover,.board-docs-btn:hover,.toggle-btn:hover,.tab-btn:hover{transform:none!important}
    .eval-btn,.board-docs-btn,.toggle-btn,.tab-btn{min-height:46px}
    *{animation-duration:.12s!important;transition-duration:.12s!important}
  }
  @media print{
    .ss-v43-grade-export{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
    .ss-v43-grade-export table{border-collapse:collapse!important}
    .ss-v43-grade-export thead{display:table-header-group}
    .ss-v43-grade-export tr{break-inside:avoid;page-break-inside:avoid;height:6.4mm!important}
    .ss-v43-grade-export th,.ss-v43-grade-export td{padding:1.2mm 1mm!important;font-size:8.5pt!important;line-height:1.05!important}
  }

/* ===== css/25-ss-v45-responsive-formal-style.css ===== */
/* ===== ss-v45-responsive-formal-style ===== */

  :root{--ss-v45-font:"Noto Sans Arabic","Segoe UI",Tahoma,Arial,sans-serif}
  html,body{font-family:var(--ss-v45-font);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
  .container,.control-panel,.collapsible-content,.pro-card,.modal-content,.table-responsive,.grades-class-card,.dashboard-card,.analytics-card,.chart-card,.stat-card{min-width:0}
  .app-title,.app-subtitle,.class-title,.grades-meta,.pro-title,.pro-hint,.stat-label,.stat-value,.chart-title,.header-line,.header-side,.qn-exam-item,.qn-exam-item-body{overflow-wrap:anywhere;word-break:normal}
  input,select,textarea,button{max-width:100%;font-family:inherit}
  .table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .table-responsive table{max-width:none}
  canvas,svg,img{max-width:100%}
  .chart-container,.chart-card,.analytics-card{overflow:hidden}
  .big-buttons-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .eval-btn,.board-docs-btn,.toggle-btn,.tab-btn,.btn,.export-btn,.pro-tabbtn{touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:transform .08s ease,filter .08s ease,box-shadow .12s ease}
  .eval-btn:active,.board-docs-btn:active,.toggle-btn:active,.tab-btn:active,.btn:active,.export-btn:active,.pro-tabbtn:active{transform:translateY(1px) scale(.985)!important;filter:brightness(.96)}
  .ss-v45-questionnaire-page{width:210mm!important;max-width:100%!important;min-height:297mm!important;margin:0 auto!important;padding:8mm 10mm 8mm!important;background:#fff!important;color:#111827!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important;box-shadow:none!important;font-family:var(--ss-v45-font)!important;font-size:10.5pt!important;line-height:1.55!important}
  .ss-v45-doc-header{border:1.35px solid #334155;border-radius:8px;overflow:hidden;background:#fff;margin:0 0 4mm;page-break-inside:avoid;break-inside:avoid}
  .ss-v45-header-grid,.ss-v45-student-grid{width:100%;border-collapse:collapse;table-layout:fixed;direction:rtl}
  .ss-v45-header-grid td{width:33.333%;vertical-align:middle;padding:3.2mm 3.5mm;min-height:22mm;border-left:1px solid #cbd5e1;font-size:9.4pt;line-height:1.55;white-space:normal;overflow-wrap:anywhere}
  .ss-v45-header-grid td:last-child{border-left:0}
  .ss-v45-head-right{text-align:right}.ss-v45-head-center{text-align:center}.ss-v45-head-left{text-align:left}
  .ss-v45-head-line{display:block;margin:0 0 1.2mm}.ss-v45-head-line:last-child{margin-bottom:0}
  .ss-v45-label{font-weight:800;color:#475569}.ss-v45-value{font-weight:900;color:#0f172a}
  .ss-v45-title{font-size:16pt;font-weight:950;line-height:1.2;margin:0;color:#0f172a}
  .ss-v45-logo{display:block;max-width:16mm;max-height:14mm;object-fit:contain;margin:0 auto 1.5mm}
  .ss-v45-student-grid{border-top:1px solid #cbd5e1}
  .ss-v45-student-grid td{width:33.333%;padding:2.4mm 3.5mm;border-left:1px solid #e2e8f0;text-align:right;font-size:9.2pt;line-height:1.45;white-space:normal;overflow-wrap:anywhere}
  .ss-v45-student-grid td:last-child{border-left:0}
  .ss-v45-questionnaire-page .qn-exam-body-wrap{flex:1 1 auto;min-height:0}
  .ss-v45-questionnaire-page .qn-exam-item,.ss-v45-questionnaire-page .qn-question-block{break-inside:avoid;page-break-inside:avoid;max-width:100%;overflow:hidden}
  .ss-v45-questionnaire-page table{max-width:100%;table-layout:fixed}
  .ss-v45-questionnaire-page th,.ss-v45-questionnaire-page td{overflow-wrap:anywhere;white-space:normal}
  .ss-v45-grade-preview table{width:100%!important;table-layout:fixed!important;border-collapse:collapse!important}
  .ss-v45-grade-preview th,.ss-v45-grade-preview td{font-size:8.4pt!important;line-height:1.05!important;padding:1.1mm .8mm!important;vertical-align:middle!important;overflow:hidden!important;overflow-wrap:anywhere!important;white-space:normal!important}
  .ss-v45-grade-preview tbody tr{height:5.8mm!important}
  .ss-v45-print-page{width:100%;page-break-after:always;break-after:page}
  .ss-v45-print-page:last-child{page-break-after:auto;break-after:auto}
  @media(max-width:760px){
    .big-buttons-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .container{width:100%;padding-left:10px;padding-right:10px}
    .ss-v45-questionnaire-page{width:100%!important;min-height:auto!important;padding:14px!important;font-size:14px!important}
    .ss-v45-header-grid td{padding:10px 8px;font-size:12px}.ss-v45-title{font-size:18px}.ss-v45-student-grid td{padding:8px;font-size:12px}
  }
  @media(max-width:480px){
    .big-buttons-grid{grid-template-columns:1fr 1fr}
    .ss-v45-header-grid,.ss-v45-student-grid{table-layout:fixed}
    .ss-v45-header-grid td{padding:8px 5px;font-size:10.5px;line-height:1.45}.ss-v45-title{font-size:15px}.ss-v45-logo{max-width:34px;max-height:30px}
    .ss-v45-student-grid td{padding:7px 5px;font-size:10.5px}
  }
  @media print{
    .ss-v45-questionnaire-page{width:100%!important;min-height:281mm!important;max-width:none!important;padding:0!important;margin:0!important;font-size:10pt!important}
    .ss-v45-doc-header{margin-bottom:3mm!important;border-radius:0!important}
    .ss-v45-header-grid td{padding:2.4mm 3mm!important;font-size:9pt!important}.ss-v45-title{font-size:15pt!important}
    .ss-v45-student-grid td{padding:1.8mm 3mm!important;font-size:8.8pt!important}
    .ss-v45-grade-preview{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
    .ss-v45-grade-preview th,.ss-v45-grade-preview td{font-size:7.8pt!important;padding:.85mm .6mm!important;line-height:1!important}
    .ss-v45-grade-preview tbody tr{height:5.65mm!important}
    .table-responsive{overflow:visible!important}
  }

/* ===== css/26-ss-v45-modern-mobile-dock-and-timetable.css ===== */
/* ===== ss-v45-modern-mobile-dock-and-timetable ===== */

/* SmartSchool V45 — clearer mobile dock + controllable modern timetable */
:root{--ss-v45-dock-height:96px}

/* The timetable must never inherit clipping from generic card rules. */
#scheduleManagerCard,#scheduleManagerCard .ss-tt,#scheduleManagerCard .ss-tt-shell,
#scheduleManagerCard .ss-tt-body,#scheduleManagerCard .ss-tt-pane,
#scheduleManagerCard .ss-tt-grid,#scheduleManagerCard .ss-tt-card{min-width:0;max-width:100%}
#scheduleManagerCard .ss-tt-card{overflow:visible!important}
#scheduleManagerCard .ss-tt-input,#scheduleManagerCard .ss-tt-select,
#scheduleManagerCard .ss-tt-btn{min-width:0;max-width:100%}

/* Modern timetable tabs: native horizontal movement on touch and mouse. */
.ss-tt-tabs{
  position:relative;display:flex!important;flex-wrap:nowrap!important;max-width:100%;
  overflow-x:auto!important;overflow-y:hidden!important;-webkit-overflow-scrolling:touch;
  touch-action:pan-x pinch-zoom!important;overscroll-behavior-x:contain;
  scroll-snap-type:x proximity;scroll-padding-inline:14px;scrollbar-width:none;
}
.ss-tt-tabs::-webkit-scrollbar{display:none}
.ss-tt-tab{scroll-snap-align:center;min-height:46px;display:inline-flex;align-items:center;justify-content:center}

/* Weekday controls no longer overflow their cells. */
.ss-tt-day-grid>*{min-width:0}
.ss-tt-check{min-width:0;overflow:hidden;white-space:normal;text-align:center;line-height:1.35}
.ss-tt-check span{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:normal;text-align:center}

/* Each period is a readable form card instead of a compressed row. */
.ss-tt-period-row{
  grid-template-columns:58px minmax(150px,1.35fr) minmax(120px,.8fr) minmax(120px,.8fr) 46px!important;
  gap:10px!important;padding:10px;margin-top:10px!important;border:1px solid var(--border);
  border-radius:17px;background:var(--input-bg);box-shadow:0 6px 18px rgba(15,23,42,.045)
}
.ss-tt-period-label{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0}
.ss-tt-period-label span{font-size:.68rem;color:var(--text-sec);font-weight:850}
.ss-tt-period-label b{font-size:1.05rem;color:var(--text-main)}
.ss-tt-period-field{display:flex;flex-direction:column;gap:5px;min-width:0}
.ss-tt-period-field>span{font-size:.72rem;color:var(--text-sec);font-weight:900;padding-inline:2px}
.ss-tt-period-field .ss-tt-input{width:100%!important;margin:0!important}
.ss-tt-remove-period{align-self:end;width:44px;height:46px;padding:0!important;font-size:1.2rem}

/* Scrollable timetable with a fixed day column and visible controls. */
.ss-v45-table-shell{max-width:100%;min-width:0;border:1px solid var(--border);border-radius:18px;overflow:hidden;background:var(--bg-panel)}
.ss-v45-table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-bottom:1px solid var(--border);background:var(--input-bg)}
.ss-v45-table-hint{display:flex;align-items:center;gap:7px;min-width:0;color:var(--text-sec);font-size:.78rem;font-weight:900;line-height:1.35}
.ss-v45-table-controls{display:flex;gap:6px;direction:ltr;flex:0 0 auto}
.ss-v45-scroll-btn{width:38px;height:36px;border:1px solid var(--border);border-radius:11px;background:var(--bg-panel);color:var(--text-main);font:inherit;font-size:1.25rem;font-weight:1000;cursor:pointer;display:grid;place-items:center}
.ss-v45-scroll-btn:active{transform:scale(.96)}
.ss-tt-table-wrap{
  position:relative;max-width:100%!important;width:100%;overflow-x:auto!important;overflow-y:auto!important;
  -webkit-overflow-scrolling:touch!important;touch-action:pan-x pan-y pinch-zoom!important;
  overscroll-behavior:contain!important;scrollbar-width:thin;scrollbar-color:#64748b transparent;
  cursor:grab;user-select:none
}
.ss-tt-table-wrap.ss-v45-dragging{cursor:grabbing;scroll-behavior:auto!important}
.ss-tt-table-wrap input,.ss-tt-table-wrap select,.ss-tt-table-wrap button,.ss-tt-cell.editable{user-select:auto}
.ss-tt-table-wrap::-webkit-scrollbar{height:9px;width:9px}
.ss-tt-table-wrap::-webkit-scrollbar-thumb{background:#64748b;border-radius:999px;border:2px solid transparent;background-clip:padding-box}
.ss-tt-table{min-width:760px!important;width:max(760px,100%)!important;table-layout:fixed}
.ss-tt-table th,.ss-tt-table td{min-width:112px}
.ss-tt-table tr>th:first-child{position:sticky!important;right:0!important;z-index:4!important;min-width:92px!important;width:92px;background:var(--bg-panel)!important;box-shadow:-5px 0 12px rgba(15,23,42,.09)}
.ss-tt-table thead tr>th:first-child{z-index:7!important}
.ss-tt-cell{min-height:74px;overflow:hidden}
.ss-tt-cell b,.ss-tt-cell span{max-width:100%;overflow-wrap:anywhere;word-break:normal}

/* Better visual hierarchy and reliable tap targets. */
.ss-tt-btn,.ss-tt-tab,.ss-tt-check{touch-action:manipulation!important;-webkit-tap-highlight-color:transparent}
.ss-tt-btn{min-height:46px}
.ss-tt-card-title{line-height:1.45}
.ss-tt-help{overflow-wrap:anywhere}

@media(max-width:768px){
  /* Bottom navigation is a clear dock, not a clipped strip. */
  .pro-tabs{overflow:visible!important}
  .pro-tabbar{
    position:fixed!important;top:auto!important;bottom:0!important;left:0!important;right:0!important;
    z-index:10020!important;display:flex!important;flex-wrap:nowrap!important;align-items:stretch!important;
    gap:8px!important;padding:8px 10px calc(8px + env(safe-area-inset-bottom))!important;
    min-height:calc(82px + env(safe-area-inset-bottom));max-width:100vw!important;
    overflow-x:auto!important;overflow-y:hidden!important;-webkit-overflow-scrolling:touch!important;
    touch-action:pan-x!important;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;
    scroll-padding-inline:10px;scrollbar-width:none;background:var(--bg-panel)!important;
    border-top:1px solid var(--border)!important;border-bottom:0!important;
    box-shadow:0 -10px 30px rgba(15,23,42,.18)!important
  }
  .pro-tabbar::-webkit-scrollbar{display:none}
  .pro-tabbtn{
    position:relative;flex:0 0 78px!important;width:78px!important;min-width:78px!important;
    min-height:68px!important;padding:7px 5px!important;gap:4px!important;scroll-snap-align:center;
    display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;
    border:1px solid var(--border)!important;border-radius:17px!important;background:var(--input-bg)!important;
    color:var(--text-main)!important;box-shadow:0 3px 10px rgba(15,23,42,.07)!important;overflow:hidden
  }
  .pro-tabbtn.active{
    color:#fff!important;border-color:transparent!important;background:linear-gradient(145deg,var(--primary),var(--primary-mid,var(--primary)))!important;
    box-shadow:0 8px 20px var(--shadow-card,rgba(79,40,210,.30))!important;transform:none!important
  }
  .pro-ic{display:grid!important;place-items:center;width:34px;height:32px;font-size:1.38rem!important;line-height:1!important;border-radius:10px;background:rgba(99,102,241,.09)}
  .pro-tabbtn.active .pro-ic{background:rgba(255,255,255,.17)}
  .pro-txt{
    display:-webkit-box!important;-webkit-box-orient:vertical;-webkit-line-clamp:2;
    white-space:normal!important;overflow:hidden!important;text-overflow:clip!important;
    max-width:70px!important;font-size:.70rem!important;line-height:1.15!important;text-align:center!important;font-weight:900!important
  }
  #settingsPanel .pro-tabs{padding-bottom:calc(var(--ss-v45-dock-height) + env(safe-area-inset-bottom))!important}

  .ss-tt-shell{border-radius:20px!important}
  .ss-tt-hero{padding:14px!important}
  .ss-tt-title{font-size:1.22rem!important}
  .ss-tt-sub{font-size:.82rem;line-height:1.65}
  .ss-tt-body{padding:10px!important}
  .ss-tt-card{padding:12px!important;border-radius:17px!important}
  .ss-tt-day-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .ss-tt-check{min-height:52px;padding:8px 5px!important;gap:6px!important;font-size:.88rem}
  .ss-tt-check input{flex:0 0 auto}
  .ss-tt-period-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;padding:10px!important;gap:9px!important}
  .ss-tt-period-label{grid-column:1/-1;flex-direction:row;justify-content:flex-start;width:max-content;padding:5px 9px;border-radius:999px;background:rgba(99,102,241,.10)}
  .ss-tt-period-name{grid-column:1/-1}
  .ss-tt-remove-period{grid-column:1/-1;width:100%!important;height:42px!important;align-self:auto}
  .ss-tt-form-grid{grid-template-columns:1fr!important}
  .ss-tt-standard-row{grid-template-columns:minmax(0,1fr) 82px!important;padding:9px;border:1px solid var(--border);border-radius:14px;background:var(--input-bg)}
  .ss-tt-standard-row button{grid-column:1/-1!important;width:100%}
  .ss-tt-actions{display:grid!important;grid-template-columns:1fr!important;width:100%}
  .ss-tt-actions>.ss-tt-btn{width:100%!important}
  .ss-tt-assignment{grid-template-columns:1fr!important;gap:8px!important}
  .ss-tt-assignment>div{min-width:0;padding:3px 0}
  .ss-tt-assignment .ss-tt-hours,.ss-tt-assignment .ss-tt-row-actions{justify-content:stretch!important}
  .ss-tt-assignment .ss-tt-row-actions{display:grid!important;grid-template-columns:1fr 1fr!important}
  .ss-tt-assignment .ss-tt-row-actions .ss-tt-btn{width:100%!important}
  .ss-v45-table-toolbar{padding:8px}
  .ss-v45-table-hint{font-size:.72rem}
  .ss-v45-scroll-btn{width:36px;height:34px}
  .ss-tt-table{min-width:700px!important;width:700px!important}
  .ss-tt-table th,.ss-tt-table td{padding:6px!important;min-width:102px}
  .ss-tt-table tr>th:first-child{min-width:84px!important;width:84px!important}
}
@media(max-width:390px){
  .pro-tabbtn{flex-basis:74px!important;width:74px!important;min-width:74px!important}
  .ss-tt-day-grid{grid-template-columns:1fr!important}
  .ss-tt-kpis{grid-template-columns:1fr 1fr!important}
}
@media(min-width:769px){
  .pro-tabbtn:hover,.ss-tt-btn:hover,.ss-tt-tab:hover{filter:brightness(.98);transform:translateY(-1px)}
}

/* ===== css/27-ss-v46-questionnaire-grade-print-fix.css ===== */
/* ===== ss-v46-questionnaire-grade-print-fix ===== */

  /* Questionnaire: never leave one whole question block trapped in the right half. */
  .ss-v46-questionnaire-page,
  .ss-v46-questionnaire-page .qn-exam-body-wrap,
  .ss-v46-questionnaire-page .qn-exam-content{
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  .ss-v46-questionnaire-page .qn-exam-content{
    display:block!important;
    column-count:initial!important;
    column-width:auto!important;
    column-gap:0!important;
    column-rule:0!important;
    width:100%!important;
    text-align:right!important;
    direction:rtl!important;
  }
  .ss-v46-question-grid{
    position:relative;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:7mm!important;
    width:100%!important;
    align-items:start!important;
    direction:rtl!important;
    column-count:initial!important;
  }
  .ss-v46-question-grid::after{
    content:"";
    position:absolute;
    top:0;
    bottom:0;
    right:50%;
    width:1px;
    transform:translateX(3.5mm);
    background:#cbd5e1;
    pointer-events:none;
  }
  .ss-v46-question-col{min-width:0;max-width:100%;direction:rtl;text-align:right}
  .ss-v46-question-col>*{max-width:100%!important;box-sizing:border-box!important}
  .ss-v46-question-col ol,
  .ss-v46-question-col ul{
    margin:0!important;
    padding-inline-start:5.5mm!important;
    padding-inline-end:0!important;
    line-height:1.48!important;
  }
  .ss-v46-question-col li{
    margin:0 0 1.5mm 0!important;
    padding-inline-start:.7mm!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
    overflow-wrap:anywhere!important;
  }
  .ss-v46-question-unit{
    margin:0 0 1.6mm 0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
    overflow:visible!important;
  }
  .ss-v46-question-unit .qn-exam-item-head{display:none!important}
  .ss-v46-question-unit .qn-exam-item-body{
    padding:0!important;
    margin:0!important;
    border:0!important;
    font-size:9.6pt!important;
    line-height:1.48!important;
    text-align:right!important;
    overflow:visible!important;
  }
  .ss-v46-question-intro,.ss-v46-question-outro{margin:0 0 2mm;line-height:1.5}

  /* Grade preview: one clean document, no giant title and no clipped table. */
  #export-container.ss-v46-grade-host{
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
    padding:12px!important;
    box-sizing:border-box!important;
    direction:rtl!important;
  }
  .ss-v46-grade-document{
    width:100%!important;
    max-width:1180px!important;
    margin:0 auto!important;
    padding:12px!important;
    background:#fff!important;
    color:#0f172a!important;
    border:1px solid #dbe3ef!important;
    border-radius:12px!important;
    box-sizing:border-box!important;
    box-shadow:0 8px 24px rgba(15,23,42,.08)!important;
    direction:rtl!important;
  }
  .ss-v46-grade-header{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    width:100%!important;
    border:1.4px solid #334155!important;
    border-radius:8px!important;
    overflow:hidden!important;
    margin:0 0 6px!important;
    background:#fff!important;
  }
  .ss-v46-grade-header-cell{
    min-width:0!important;
    min-height:58px!important;
    padding:7px 9px!important;
    border-left:1px solid #cbd5e1!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    gap:3px!important;
    font-size:11px!important;
    line-height:1.45!important;
    overflow-wrap:anywhere!important;
  }
  .ss-v46-grade-header-cell:last-child{border-left:0!important}
  .ss-v46-grade-header-right{text-align:right!important;align-items:flex-start!important}
  .ss-v46-grade-header-center{text-align:center!important;align-items:center!important}
  .ss-v46-grade-header-left{text-align:left!important;align-items:flex-end!important}
  .ss-v46-grade-logo{max-width:42px!important;max-height:40px!important;object-fit:contain!important;display:block!important}
  .ss-v46-grade-title{font-size:17px!important;font-weight:950!important;line-height:1.2!important;color:#0f172a!important;white-space:normal!important}
  .ss-v46-grade-line{display:block!important;max-width:100%!important;overflow-wrap:anywhere!important}
  .ss-v46-grade-label{color:#475569!important;font-weight:800!important}
  .ss-v46-grade-value{color:#0f172a!important;font-weight:900!important}
  .ss-v46-grade-table{
    width:100%!important;
    max-width:100%!important;
    border-collapse:collapse!important;
    table-layout:fixed!important;
    margin:0!important;
    direction:rtl!important;
  }
  .ss-v46-grade-table th,
  .ss-v46-grade-table td{
    border:1px solid #64748b!important;
    padding:4px 3px!important;
    text-align:center!important;
    vertical-align:middle!important;
    font-size:10px!important;
    line-height:1.18!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
    overflow:hidden!important;
    color:#0f172a!important;
    background:#fff!important;
  }
  .ss-v46-grade-table th{background:#e8eef7!important;font-weight:900!important}
  .ss-v46-grade-table tbody tr:nth-child(even) td{background:#f8fafc!important}
  .ss-v46-grade-table .name-cell{text-align:right!important;font-weight:800!important}
  .ss-v46-grade-table tbody tr{height:25px!important}

  @media(max-width:760px){
    #export-container.ss-v46-grade-host{padding:6px!important}
    .ss-v46-grade-document{padding:6px!important;border-radius:8px!important}
    .ss-v46-grade-header-cell{min-height:48px!important;padding:5px 4px!important;font-size:8.2px!important;line-height:1.35!important}
    .ss-v46-grade-title{font-size:12px!important}
    .ss-v46-grade-logo{max-width:28px!important;max-height:27px!important}
    .ss-v46-grade-table th,.ss-v46-grade-table td{font-size:7.2px!important;padding:3px 1px!important;line-height:1.08!important}
    .ss-v46-grade-table tbody tr{height:21px!important}
  }

  @media print{
    .ss-v46-questionnaire-page{width:100%!important;max-width:none!important;min-height:281mm!important;padding:0!important;margin:0!important}
    .ss-v46-question-grid{gap:6mm!important}
    .ss-v46-question-grid::after{transform:translateX(3mm)!important}
    .ss-v46-question-col ol,.ss-v46-question-col ul{line-height:1.42!important}
    .ss-v46-question-col li{margin-bottom:1.15mm!important}
    .ss-v46-question-unit .qn-exam-item-body{font-size:9.2pt!important;line-height:1.42!important}
    #export-container.ss-v46-grade-host{padding:0!important}
    .ss-v46-grade-document{max-width:none!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important}
  }

/* ===== css/28-ss-v47-formal-questionnaire-layout.css ===== */
/* ===== ss-v47-formal-questionnaire-layout ===== */

  .ss-v47-questionnaire-page{
    width:210mm!important;
    max-width:100%!important;
    min-height:297mm!important;
    margin:0 auto!important;
    padding:8mm 10mm!important;
    background:#fff!important;
    color:#0f172a!important;
    box-sizing:border-box!important;
    direction:rtl!important;
    font-family:"Noto Sans Arabic","Segoe UI",Tahoma,Arial,sans-serif!important;
  }
  .ss-v47-doc-header{
    width:100%!important;
    margin:0 0 4mm!important;
    border:1.35px solid #334155!important;
    border-radius:7px!important;
    overflow:hidden!important;
    background:#fff!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  .ss-v47-header-grid{
    width:100%!important;
    border-collapse:collapse!important;
    table-layout:fixed!important;
    direction:ltr!important;
  }
  .ss-v47-header-grid td{
    width:33.333%!important;
    min-width:0!important;
    min-height:23mm!important;
    padding:3mm 3.4mm!important;
    vertical-align:middle!important;
    border-right:1px solid #cbd5e1!important;
    background:#fff!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
    font-size:9.2pt!important;
    line-height:1.5!important;
    direction:rtl!important;
  }
  .ss-v47-header-grid td:last-child{border-right:0!important}
  .ss-v47-head-left{text-align:left!important}
  .ss-v47-head-center{text-align:center!important}
  .ss-v47-head-right{text-align:right!important}
  .ss-v47-head-line{display:block!important;margin:0 0 1.1mm!important;white-space:normal!important}
  .ss-v47-head-line:last-child{margin-bottom:0!important}
  .ss-v47-label{font-weight:800!important;color:#475569!important}
  .ss-v47-value{font-weight:900!important;color:#0f172a!important}
  .ss-v47-title{font-size:16pt!important;font-weight:950!important;line-height:1.15!important;margin:0!important;color:#0f172a!important}
  .ss-v47-subtitle{font-size:9pt!important;font-weight:800!important;line-height:1.35!important;margin-top:1mm!important;color:#334155!important}
  .ss-v47-logo{display:block!important;max-width:16mm!important;max-height:14mm!important;object-fit:contain!important;margin:0 auto 1.2mm!important}

  .ss-v47-questionnaire-page .qn-exam-body-wrap,
  .ss-v47-questionnaire-page .qn-exam-content{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    box-sizing:border-box!important;
    column-count:initial!important;
    column-width:auto!important;
    column-gap:0!important;
    column-rule:0!important;
    display:block!important;
    direction:rtl!important;
  }
  .ss-v47-question-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    column-gap:6mm!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    direction:ltr!important;
    align-items:start!important;
  }
  .ss-v47-question-col{
    min-width:0!important;
    max-width:100%!important;
    direction:rtl!important;
    text-align:right!important;
    font-size:9.5pt!important;
    line-height:1.46!important;
    overflow-wrap:anywhere!important;
  }
  .ss-v47-question-right{grid-column:2!important;padding-right:0!important}
  .ss-v47-question-left{grid-column:1!important;padding-left:0!important;border-right:1px solid #cbd5e1!important;padding-right:5mm!important}
  .ss-v47-question-unit{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    margin:0 0 1.6mm!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
    color:#0f172a!important;
  }
  .ss-v47-question-unit:last-child{margin-bottom:0!important}
  .ss-v47-question-unit p{margin:.25mm 0!important}
  .ss-v47-question-unit ol,.ss-v47-question-unit ul{margin:0!important;padding-inline-start:5mm!important}
  .ss-v47-question-unit li{margin:0 0 1.1mm!important;padding:0!important;line-height:1.45!important}
  .ss-v47-question-full{width:100%!important;direction:rtl!important;text-align:right!important;font-size:9.7pt!important;line-height:1.5!important}
  .ss-v47-question-full p{margin:.35mm 0!important}
  .ss-v47-questionnaire-page .qn-exam-item-head{display:none!important}
  .ss-v47-questionnaire-page .qn-exam-item-body{padding:0!important;margin:0!important;border:0!important;background:transparent!important}

  @media(max-width:760px){
    .ss-v47-questionnaire-page{width:100%!important;min-height:auto!important;padding:12px!important}
    .ss-v47-header-grid td{padding:8px 6px!important;font-size:10px!important;line-height:1.42!important}
    .ss-v47-title{font-size:15px!important}
    .ss-v47-subtitle{font-size:9px!important}
    .ss-v47-logo{max-width:34px!important;max-height:30px!important}
    .ss-v47-question-grid{column-gap:10px!important}
    .ss-v47-question-col{font-size:10px!important;line-height:1.4!important}
    .ss-v47-question-left{padding-right:8px!important}
  }

  @media print{
    .ss-v47-questionnaire-page{width:194mm!important;max-width:194mm!important;min-height:281mm!important;padding:0!important;margin:0 auto!important}
    .ss-v47-doc-header{border-radius:0!important;margin-bottom:3mm!important}
    .ss-v47-header-grid td{padding:2.2mm 2.7mm!important;font-size:8.7pt!important;line-height:1.42!important}
    .ss-v47-title{font-size:14.5pt!important}
    .ss-v47-subtitle{font-size:8.4pt!important}
    .ss-v47-logo{max-width:14mm!important;max-height:12mm!important}
    .ss-v47-question-grid{column-gap:6mm!important}
    .ss-v47-question-col{font-size:9.2pt!important;line-height:1.42!important}
    .ss-v47-question-left{padding-right:5mm!important}
    .ss-v47-question-unit{margin-bottom:1.15mm!important}
  }

/* ===== css/29-ss-v48-active-questionnaire-print-style.css ===== */
/* ===== ss-v48-active-questionnaire-print-style ===== */

  :root{--ss-v48-ink:#0f172a;--ss-v48-muted:#475569;--ss-v48-rule:#64748b;--ss-v48-soft:#cbd5e1}
  .v48page{width:210mm;max-width:100%;min-height:297mm;margin:0 auto;padding:8mm 9mm;background:#fff;color:var(--ss-v48-ink);box-sizing:border-box;direction:rtl;font-family:"Noto Sans Arabic","Segoe UI",Tahoma,Arial,sans-serif}
  .v48-header{width:100%;border-collapse:collapse;table-layout:fixed;direction:ltr;border:1.4px solid var(--ss-v48-rule);margin:0 0 4mm;background:#fff}
  .v48-header col{width:33.333%}
  .v48-header td{width:33.333%;padding:2.5mm 3mm;vertical-align:middle;border-right:1px solid var(--ss-v48-soft);direction:rtl;font-size:9pt;line-height:1.45;overflow-wrap:anywhere;word-break:normal;background:#fff}
  .v48-header td:last-child{border-right:0}
  .v48-h-left{text-align:left}.v48-h-center{text-align:center}.v48-h-right{text-align:right}
  .v48-h-line{display:block;margin:0 0 .8mm}.v48-h-line:last-child{margin-bottom:0}
  .v48-h-label{font-weight:800;color:var(--ss-v48-muted)}.v48-h-value{font-weight:900;color:var(--ss-v48-ink)}
  .v48-h-title{font-size:15pt;line-height:1.12;font-weight:950;color:var(--ss-v48-ink);margin:0}
  .v48-h-note{font-size:8.5pt;line-height:1.35;font-weight:800;color:#334155;margin-top:1mm}
  .v48-question-grid{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:6mm;width:100%;direction:ltr;align-items:start}
  .v48-question-grid:after{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:#d8dee8;transform:translateX(-.5px)}
  .v48-q-col{min-width:0;direction:rtl;text-align:right;font-size:9.5pt;line-height:1.42;overflow-wrap:anywhere;word-break:normal}
  .v48-q-right{grid-column:2;padding-left:3mm}.v48-q-left{grid-column:1;padding-right:3mm}
  .v48-q-unit{display:block;width:100%;margin:0 0 1.15mm;padding:0;break-inside:avoid;page-break-inside:avoid}
  .v48-q-unit:last-child{margin-bottom:0}.v48-q-line{white-space:pre-wrap;margin:0;min-height:1.35em}.v48-q-space{height:2.2mm}
  .v48-question-full{width:100%;direction:rtl;text-align:right;font-size:9.7pt;line-height:1.46}.v48-question-full .v48-q-unit{margin-bottom:1.3mm}
  .v48-page-break{page-break-after:always;break-after:page;height:0}
  @media(max-width:760px){
    .v48page{width:100%;min-height:auto;padding:12px}
    .v48-header td{padding:8px 6px;font-size:10px;line-height:1.4}
    .v48-h-title{font-size:15px}.v48-h-note{font-size:9px}
    .v48-question-grid{column-gap:10px}.v48-q-col{font-size:10px;line-height:1.4}.v48-q-right{padding-left:5px}.v48-q-left{padding-right:5px}
  }
  @media print{
    .v48page{width:210mm!important;max-width:210mm!important;min-height:297mm!important;padding:8mm 9mm!important;margin:0!important;page-break-after:always!important;break-after:page!important}
    .v48page:last-child{page-break-after:auto!important;break-after:auto!important}
    .v48-header{margin-bottom:3mm!important}.v48-header td{padding:2.2mm 2.7mm!important;font-size:8.6pt!important;line-height:1.4!important}
    .v48-h-title{font-size:14pt!important}.v48-h-note{font-size:8.2pt!important}
    .v48-q-col{font-size:9.1pt!important;line-height:1.39!important}.v48-question-full{font-size:9.3pt!important;line-height:1.42!important}
    .v48-q-unit{margin-bottom:1mm!important}
  }

/* ===== css/30-ss-v49-questionnaire-style.css ===== */
/* ===== ss-v49-questionnaire-style ===== */

  /* ===== V49 PAGE ===== */
  .v49page{
    width:210mm;max-width:100%;min-height:297mm;
    margin:0 auto;padding:8mm 9mm;
    background:#fff;color:#0f172a;
    box-sizing:border-box;direction:rtl;
    font-family:"Noto Sans Arabic","Segoe UI",Tahoma,Arial,sans-serif;
    display:flex;flex-direction:column;
  }

  /* ===== HEADER TABLE: 3 equal fixed columns ===== */
  .v49-hdr{
    width:100%;table-layout:fixed;border-collapse:collapse;
    direction:ltr; /* LTR so col order is: right→center→left in RTL doc */
    border:1.5px solid #334155;margin:0 0 4mm;background:#fff;
    break-inside:avoid;page-break-inside:avoid;
  }
  .v49-hdr col{width:33.333%}
  .v49-hdr td{
    width:33.333%;padding:2.8mm 3.2mm;
    vertical-align:middle;
    border-right:1px solid #cbd5e1;
    direction:rtl; /* each cell goes back to RTL */
    font-size:9.2pt;line-height:1.5;
    overflow-wrap:anywhere;word-break:normal;
    background:#fff;
  }
  .v49-hdr td:last-child{border-right:0}
  /* Because table direction:ltr, first TD = visual LEFT of page (= چەپ) */
  .v49-h-left {text-align:left }   /* پۆل/وانە/بەروار — چەپ */
  .v49-h-center{text-align:center} /* لۆگۆ + تایتڵ — ناوەڕاست */
  .v49-h-right {text-align:right}  /* قوتابی/قوتابخانە/مامۆستا — ڕاست */
  .v49-h-line{display:block;margin:0 0 1mm}
  .v49-h-line:last-child{margin-bottom:0}
  .v49-h-label{font-weight:800;color:#475569}
  .v49-h-value{font-weight:900;color:#0f172a}
  .v49-h-title{font-size:15.5pt;font-weight:950;line-height:1.12;margin:0;color:#0f172a}
  .v49-h-note{font-size:8.6pt;font-weight:800;line-height:1.35;margin-top:1.2mm;color:#334155}
  .v49-h-logo{display:block;max-width:15mm;max-height:13mm;object-fit:contain;margin:0 auto 1.2mm}

  /* ===== QUESTIONS ===== */
  .v49-body{flex:1;min-height:0}
  /* two-column balanced grid */
  .v49-grid{
    position:relative;display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    column-gap:7mm;width:100%;
    direction:ltr; /* columns: left col (col1) then right col (col2) */
    align-items:start;
  }
  .v49-grid::after{
    content:"";position:absolute;top:0;bottom:0;
    left:50%;width:1px;background:#d1d5db;
    transform:translateX(-0.5px);
  }
  .v49-col{min-width:0;direction:rtl;text-align:right;font-size:9.5pt;line-height:1.44;overflow-wrap:anywhere}
  .v49-col-right{grid-column:2;padding-left:3mm}  /* ستوونی ڕاست: پرسیاری یەکەم */
  .v49-col-left {grid-column:1;padding-right:3mm} /* ستوونی چەپ: پرسیاری دووەم */
  /* single-block or single question: full width */
  .v49-full{width:100%;direction:rtl;text-align:right;font-size:9.7pt;line-height:1.46}
  .v49-unit{display:block;width:100%;margin:0 0 1.3mm;break-inside:avoid;page-break-inside:avoid}
  .v49-unit:last-child{margin-bottom:0}
  .v49-qline{white-space:pre-wrap;margin:0;min-height:1.35em}
  .v49-gap{height:2.4mm}

  /* ===== MOBILE ===== */
  @media(max-width:760px){
    .v49page{width:100%;min-height:auto;padding:12px}
    .v49-hdr td{padding:8px 6px;font-size:10px;line-height:1.4}
    .v49-h-title{font-size:15px}.v49-h-note{font-size:9px}
    .v49-h-logo{max-width:34px;max-height:30px}
    .v49-grid{column-gap:10px}
    .v49-col{font-size:10.5px;line-height:1.4}
    .v49-full{font-size:11px}
  }

  /* ===== PRINT ===== */
  @media print{
    @page{size:A4 portrait;margin:0}
    .v49page{
      width:210mm!important;max-width:210mm!important;
      min-height:297mm!important;padding:8mm 9mm!important;
      margin:0!important;page-break-after:always!important;break-after:page!important;
    }
    .v49page:last-child{page-break-after:auto!important;break-after:auto!important}
    .v49-hdr{margin-bottom:3mm!important}
    .v49-hdr td{padding:2.2mm 2.7mm!important;font-size:8.6pt!important;line-height:1.4!important}
    .v49-h-title{font-size:14pt!important}.v49-h-note{font-size:8.2pt!important}
    .v49-h-logo{max-width:13mm!important;max-height:11mm!important}
    .v49-col{font-size:9.1pt!important;line-height:1.4!important}
    .v49-full{font-size:9.4pt!important;line-height:1.42!important}
    .v49-unit{margin-bottom:1mm!important}
  }

/* ===== css/31-ss-v49-themes-style.css ===== */
/* ===== ss-v49-themes-style ===== */

/* ── Theme picker row ── */
.v49-theme-row{
  display:flex;gap:8px;flex-wrap:wrap;align-items:center;
  padding:10px 12px;margin:8px 0 2px;
  background:var(--bg-panel,#1e293b);border-radius:14px;
  border:1px solid rgba(255,255,255,.07);
}
.v49-theme-label{
  font-size:11px;font-weight:800;opacity:.6;
  white-space:nowrap;letter-spacing:.5px;
  color:var(--text-main,#f1f5f9);flex-shrink:0;
}
.v49-theme-swatch{
  width:34px;height:34px;border-radius:50%;border:2.5px solid transparent;
  cursor:pointer;transition:transform .18s,border-color .18s,box-shadow .18s;
  flex-shrink:0;position:relative;overflow:hidden;
}
.v49-theme-swatch:hover{transform:scale(1.18);}
.v49-theme-swatch.active{border-color:#facc15;box-shadow:0 0 0 3px rgba(250,204,21,.35);}
.v49-theme-swatch::after{
  content:'✓';position:absolute;inset:0;display:flex;
  align-items:center;justify-content:center;
  font-size:13px;font-weight:900;color:#fff;
  text-shadow:0 1px 3px rgba(0,0,0,.6);
  opacity:0;transition:opacity .15s;
}
.v49-theme-swatch.active::after{opacity:1;}

/* ── THEME CSS injected into the print page (v49page) ── */

/* 1 ── کڵێشەی ساکارەی ئاسایی (هێڵی پچڕپچڕ) */
.v49-theme-dotted .v49-hdr{border:2px dashed #334155!important;}
.v49-theme-dotted .v49-hdr td{border-right:2px dashed #94a3b8!important;}
.v49-theme-dotted .v49-unit{
  border-bottom:1.5px dashed #94a3b8;
  padding-bottom:2mm;margin-bottom:2mm;
}
.v49-theme-dotted .v49-unit:last-child{border-bottom:none;}

/* 2 ── کڵێشەی هێڵی داشخراو (سێبەر) */
.v49-theme-shadow .v49-hdr{
  border:none!important;
  background:linear-gradient(135deg,#f8fafc 0%,#e2e8f0 100%)!important;
  box-shadow:0 4px 18px rgba(15,23,42,.18),0 1px 4px rgba(15,23,42,.10)!important;
  border-radius:10px!important;
}
.v49-theme-shadow .v49-hdr td{border-right:1px solid rgba(0,0,0,.08)!important;}
.v49-theme-shadow .v49-unit{
  background:#fff;
  box-shadow:0 2px 8px rgba(15,23,42,.09),0 1px 2px rgba(15,23,42,.06);
  border-radius:7px;padding:2.5mm 3.5mm;margin-bottom:2.5mm;
  border:1px solid rgba(0,0,0,.05);
}

/* 3 ── کڵێشەی شوشەیی (Glass) */
.v49-theme-glass .v49-hdr{
  background:rgba(255,255,255,.62)!important;
  backdrop-filter:blur(14px)!important;-webkit-backdrop-filter:blur(14px)!important;
  border:1px solid rgba(255,255,255,.55)!important;
  box-shadow:0 4px 20px rgba(15,23,42,.13),inset 0 1px 0 rgba(255,255,255,.7)!important;
  border-radius:12px!important;
}
.v49-theme-glass .v49-hdr td{border-right:1px solid rgba(255,255,255,.4)!important;}
.v49-theme-glass .v49page{
  background:linear-gradient(135deg,#e0f2fe 0%,#f0fdf4 50%,#fdf4ff 100%)!important;
}
.v49-theme-glass .v49-unit{
  background:rgba(255,255,255,.55);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.6);
  border-radius:8px;padding:2.5mm 3.5mm;margin-bottom:2mm;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 1px 4px rgba(15,23,42,.07);
}

/* 4 ── کڵێشەی مۆدێرن توندوتیژ (Bold Modern) */
.v49-theme-bold .v49-hdr{
  background:linear-gradient(135deg,#0f172a 0%,#1e3a5f 100%)!important;
  border:none!important;border-radius:10px!important;
  box-shadow:0 6px 24px rgba(15,23,42,.35)!important;
}
.v49-theme-bold .v49-hdr td{
  border-right:1px solid rgba(255,255,255,.12)!important;
  color:#f1f5f9!important;
}
.v49-theme-bold .v49-h-label{color:rgba(148,163,184,1)!important;}
.v49-theme-bold .v49-h-value{color:#fff!important;}
.v49-theme-bold .v49-h-title{color:#facc15!important;}
.v49-theme-bold .v49-h-note{color:#94d2bd!important;}
.v49-theme-bold .v49-unit{
  border-right:3px solid #3b82f6;
  padding-right:4mm;margin-bottom:3mm;
  background:linear-gradient(90deg,rgba(59,130,246,.04) 0%,transparent 100%);
}

/* 5 ── کڵێشەی کاغەز کەرتی (Warm Paper) */
.v49-theme-paper .v49page{
  background:#fdf6e3!important;
  background-image:
    repeating-linear-gradient(0deg,transparent,transparent 24px,rgba(180,150,100,.13) 25px)!important;
}
.v49-theme-paper .v49-hdr{
  background:#fff8e7!important;
  border:2px solid #c4a35a!important;
  border-radius:4px!important;
  box-shadow:2px 3px 0 #c4a35a!important;
}
.v49-theme-paper .v49-hdr td{border-right:1.5px solid #c4a35a!important;}
.v49-theme-paper .v49-h-title{color:#7c4a1e!important;}
.v49-theme-paper .v49-h-label{color:#9a6b3a!important;}
.v49-theme-paper .v49-unit{
  border-bottom:1px solid #c4a35a;
  padding-bottom:2mm;margin-bottom:2.5mm;
}

/* 6 ── کڵێشەی مینیمالیست (Minimalist) */
.v49-theme-minimal .v49-hdr{
  background:#fff!important;
  border:none!important;
  border-bottom:2.5px solid #0f172a!important;
  border-radius:0!important;
  padding-bottom:3mm!important;
  box-shadow:none!important;
}
.v49-theme-minimal .v49-hdr td{border-right:none!important;}
.v49-theme-minimal .v49-h-title{font-size:18pt!important;letter-spacing:-0.5px;}
.v49-theme-minimal .v49-unit{
  border-bottom:1px solid #e2e8f0;
  padding-bottom:2.5mm;margin-bottom:2.5mm;
}
.v49-theme-minimal .v49-unit:last-child{border-bottom:none;}

/* print: make glass & paper look clean */
@media print{
  .v49-theme-glass .v49page{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;}
  .v49-theme-paper .v49page{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;}
  .v49-theme-bold .v49-hdr{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;}
  .v49-theme-shadow .v49-unit{box-shadow:none!important;}
}

/* ===== css/32-ss-v491-fix-style.css ===== */
/* ===== ss-v491-fix-style ===== */


/* ── 1. SWATCH FIX: make each swatch actually show its color ── */
.v49-theme-swatch{
  display:inline-flex!important;
  width:36px!important;height:36px!important;
  border-radius:50%!important;
  border:2.5px solid rgba(255,255,255,.25)!important;
  cursor:pointer;flex-shrink:0;position:relative;overflow:hidden;
  transition:transform .18s,box-shadow .18s;
  box-shadow:0 2px 6px rgba(0,0,0,.35);
}
.v49-theme-swatch[data-theme="default"]{ background:#e2e8f0!important; }
.v49-theme-swatch[data-theme="dotted"] { background:repeating-linear-gradient(45deg,#475569 0 2px,#f1f5f9 0 7px)!important; }
.v49-theme-swatch[data-theme="shadow"] { background:linear-gradient(135deg,#e0e7ff,#cbd5e1)!important;box-shadow:0 4px 12px rgba(15,23,42,.45)!important; }
.v49-theme-swatch[data-theme="glass"]  { background:linear-gradient(135deg,#bae6fd 0%,#bbf7d0 50%,#e9d5ff 100%)!important;border-color:rgba(255,255,255,.7)!important; }
.v49-theme-swatch[data-theme="bold"]   { background:linear-gradient(135deg,#0f172a,#1e40af)!important; }
.v49-theme-swatch[data-theme="paper"]  { background:linear-gradient(135deg,#fdf6e3,#f4d58d)!important;border-color:#c4a35a!important; }
.v49-theme-swatch[data-theme="minimal"]{ background:linear-gradient(180deg,#fff 60%,#0f172a 60%)!important; }
.v49-theme-swatch:hover{ transform:scale(1.2)!important; }
.v49-theme-swatch.active{
  border-color:#facc15!important;
  box-shadow:0 0 0 3px rgba(250,204,21,.45),0 2px 8px rgba(0,0,0,.4)!important;
}
.v49-theme-swatch::after{
  content:'✓';position:absolute;inset:0;display:flex;
  align-items:center;justify-content:center;
  font-size:14px;font-weight:900;color:#fff;
  text-shadow:0 1px 4px rgba(0,0,0,.7);
  opacity:0;transition:opacity .15s;
}
.v49-theme-swatch.active::after{ opacity:1; }

/* ── 2. FORMAL-HEADER V49: modern 3-column for grades / plan ── */
.formal-header{
  display:grid!important;
  grid-template-columns:1fr auto 1fr!important;
  gap:6mm!important;
  align-items:center!important;
  padding:3mm 3mm 4mm!important;
  margin:0 0 5mm!important;
  border:none!important;
  border-bottom:2px solid #0f172a!important;
  background:#fff!important;
  color:#0f172a!important;
  direction:rtl!important;
  font-family:"Noto Sans Arabic","Segoe UI",Tahoma,Arial,sans-serif!important;
}
.formal-header .header-side{
  width:auto!important;text-align:right!important;
  font-size:9.5pt!important;line-height:1.5!important;
  font-weight:800!important;color:#0f172a!important;
}
.formal-header .header-left-side{ text-align:left!important; }
.formal-header .header-center{
  width:auto!important;text-align:center!important;
  display:flex!important;flex-direction:column!important;align-items:center!important;
}
.formal-header .header-logo-img{
  max-height:14mm!important;max-width:16mm!important;
  object-fit:contain!important;margin-bottom:1.5mm!important;
}
.formal-header .header-main-title{
  font-size:15pt!important;font-weight:950!important;
  text-decoration:none!important;letter-spacing:-.3px!important;
  margin:0!important;color:#0f172a!important;
}
.formal-header .header-line{ display:block;margin-bottom:.8mm; }
.formal-header .header-line:last-child{ margin-bottom:0; }
.formal-header .header-line span{ font-weight:400!important;color:#334155!important; }
.formal-header .school-name{ font-size:10.5pt!important;font-weight:900!important; }

/* ── 3. TABLE in export: cleaner modern style ── */
.export-content table{
  border:1.5px solid #334155!important;
  border-radius:8px;overflow:hidden;
}
.export-content th{
  background:linear-gradient(135deg,#1e293b,#334155)!important;
  color:#f1f5f9!important;font-weight:900!important;
  border:1px solid #475569!important;
  font-size:9pt!important;padding:2mm 1.5mm!important;
}
.export-content td{
  border:1px solid #cbd5e1!important;
  font-size:9pt!important;padding:1.8mm 1.5mm!important;
  background:#fff!important;color:#0f172a!important;
}
.export-content tr:nth-child(even) td{ background:#f8fafc!important; }

/* ── 4. Print: keep colors ── */
@media print{
  .formal-header{ -webkit-print-color-adjust:exact!important;print-color-adjust:exact!important; }
  .export-content th{ -webkit-print-color-adjust:exact!important;print-color-adjust:exact!important; }
  .export-content tr:nth-child(even) td{ -webkit-print-color-adjust:exact!important;print-color-adjust:exact!important; }
}

/* ===== css/33-ss-v492-compact-style.css ===== */
/* ===== ss-v492-compact-style ===== */

/* ── COMPACT class applied via JS when question count ≤ 25 ── */
@media print {
  .v49page.v49-compact {
    padding:5mm 7mm !important;
  }
  .v49page.v49-compact .v49-hdr {
    margin-bottom:2mm !important;
  }
  .v49page.v49-compact .v49-hdr td {
    padding:1.5mm 2.2mm !important;
    font-size:8pt !important;
    line-height:1.3 !important;
  }
  .v49page.v49-compact .v49-h-title {
    font-size:12.5pt !important;
  }
  .v49page.v49-compact .v49-h-note {
    font-size:7.8pt !important;
  }
  .v49page.v49-compact .v49-full {
    font-size:8.6pt !important;
    line-height:1.32 !important;
  }
  .v49page.v49-compact .v49-unit {
    margin-bottom:0.55mm !important;
    padding:0 !important;
  }
  .v49page.v49-compact .v49-qline {
    min-height:1.2em !important;
    white-space:pre-wrap !important;
  }
  .v49page.v49-compact .v49-gap {
    height:1mm !important;
  }
  /* force exactly 1 page */
  .v49page.v49-compact {
    min-height:0 !important;
    height:287mm !important;
    overflow:hidden !important;
    page-break-after:always !important;
    break-after:page !important;
  }
  .v49page.v49-compact:last-child {
    page-break-after:auto !important;
    break-after:auto !important;
  }
}

/* screen preview: compact badge hidden by request */
.v49-compact-badge {
  display:none !important;
}

/* ===== css/34-ss-v493-style.css ===== */
/* ===== ss-v493-style ===== */

/* ── live CSS vars on export-container applied to V49 elements ── */
#export-container .v49-full,
#export-container .v49-col {
  font-size:    var(--v49-q-fs,   9.5pt) !important;
  font-weight:  var(--v49-q-fw,   400)   !important;
  line-height:  var(--v49-q-lh,   1.44)  !important;
  direction:    var(--v49-q-dir,  rtl)   !important;
  text-align:   var(--v49-q-align,right) !important;
}
#export-container .v49-qline {
  font-size:    var(--v49-q-fs,   9.5pt) !important;
  font-weight:  var(--v49-q-fw,   400)   !important;
  line-height:  var(--v49-q-lh,   1.44)  !important;
  direction:    var(--v49-q-dir,  rtl)   !important;
  text-align:   var(--v49-q-align,right) !important;
  text-align-last: var(--v49-q-align-last, auto) !important;
}
#export-container .v49-unit {
  margin-bottom:  var(--v49-q-gap, 1.3mm) !important;
  padding:        var(--v49-box-pd, 0)     !important;
  background:     var(--v49-box-bg, transparent) !important;
  border:         var(--v49-box-bd, none)  !important;
  border-radius:  var(--v49-box-br, 0)    !important;
  box-shadow:     var(--v49-box-sh, none)  !important;
}
#export-container .v49-body {
  margin-top: var(--v49-hq-gap, 3mm) !important;
}
/* header glass */
#export-container .v49-hdr {
  background:    var(--v49-hdr-bg, #fff)   !important;
  border:        var(--v49-hdr-bd, 1.5px solid #334155) !important;
  border-radius: var(--v49-hdr-br, 0)     !important;
  box-shadow:    var(--v49-hdr-sh, none)   !important;
  padding:       var(--v49-hdr-pd, 0)     !important;
}
/* page border */
#export-container .v49page {
  box-shadow: inset 0 0 0 var(--v49-page-bw, 0px) var(--v49-page-bc, transparent) !important;
  padding-top:    var(--v49-pg-top,  8mm) !important;
  padding-bottom: var(--v49-pg-bot,  8mm) !important;
  padding-left:   var(--v49-pg-side, 9mm) !important;
  padding-right:  var(--v49-pg-side, 9mm) !important;
}
/* template font in header cells */
#export-container .v49-hdr td {
  font-size: var(--v49-t-fs, 9.2pt) !important;
  font-weight: var(--v49-t-fw, 800) !important;
}
#export-container .v49-h-title {
  font-size: calc(var(--v49-t-fs, 9.2pt) + 5pt) !important;
}

/* print: carry vars into @media print */
@media print {
  #export-container .v49-qline,
  #export-container .v49-full,
  #export-container .v49-col {
    font-size:   var(--v49-q-fs,   9.5pt) !important;
    font-weight: var(--v49-q-fw,   400)   !important;
    line-height: var(--v49-q-lh,   1.44)  !important;
    direction:   var(--v49-q-dir,  rtl)   !important;
    text-align:  var(--v49-q-align,right) !important;
  }
}

/* ===== css/35-ss-v501-qn-print-tools-fix.css ===== */
/* ===== ss-v501-qn-print-tools-fix ===== */

  /* Physical header order for questionnaire: LEFT=class/subject/date, CENTER=title, RIGHT=student/school. */
  #export-container .v49-hdr.v50-hdr,
  .ss-print-shell .v49-hdr.v50-hdr,
  .v49-hdr.v50-hdr{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)!important;
    gap:0!important;
    width:100%!important;
    table-layout:auto!important;
    border-collapse:separate!important;
    direction:ltr!important;
    border:var(--v49-hdr-bd,1.5px solid #334155)!important;
    border-radius:var(--v49-hdr-br,0)!important;
    background:var(--v49-hdr-bg,#fff)!important;
    box-shadow:var(--v49-hdr-sh,none)!important;
    margin:0 0 var(--v49-hq-gap,3mm)!important;
    overflow:hidden!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  #export-container .v50-hcell,
  .ss-print-shell .v50-hcell,
  .v50-hcell{
    min-width:0!important;
    padding:2.4mm 3mm!important;
    direction:rtl!important;
    font-size:var(--v49-t-fs,9.2pt)!important;
    font-weight:var(--v49-t-fw,800)!important;
    line-height:1.45!important;
    background:transparent!important;
    color:#0f172a!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
    align-self:stretch!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
  }
  #export-container .v50-h-class,
  .ss-print-shell .v50-h-class,
  .v50-h-class{grid-column:1!important;text-align:left!important;border-left:0!important;border-right:1px solid #cbd5e1!important;}
  #export-container .v50-h-title,
  .ss-print-shell .v50-h-title,
  .v50-h-title{grid-column:2!important;text-align:center!important;border-right:1px solid #cbd5e1!important;align-items:center!important;}
  #export-container .v50-h-student,
  .ss-print-shell .v50-h-student,
  .v50-h-student{grid-column:3!important;text-align:right!important;}

  #export-container .v49page.v50-qn-page,
  .ss-print-shell .v49page.v50-qn-page,
  .v49page.v50-qn-page{
    width:210mm!important;
    max-width:210mm!important;
    min-height:297mm!important;
    margin:0 auto!important;
    padding-top:var(--v49-pg-top,8mm)!important;
    padding-bottom:var(--v49-pg-bot,8mm)!important;
    padding-left:var(--v49-pg-side,9mm)!important;
    padding-right:var(--v49-pg-side,9mm)!important;
    background:#fff!important;
    color:#0f172a!important;
    box-sizing:border-box!important;
    direction:rtl!important;
    font-family:"Noto Sans Arabic","Segoe UI",Tahoma,Arial,sans-serif!important;
    display:flex!important;
    flex-direction:column!important;
    box-shadow:inset 0 0 0 var(--v49-page-bw,0px) var(--v49-page-bc,transparent)!important;
  }
  #export-container .v49-full,
  .ss-print-shell .v49-full,
  .v49page.v50-qn-page .v49-full{
    width:100%!important;
    direction:var(--v49-q-dir,rtl)!important;
    text-align:var(--v49-q-align,right)!important;
    font-size:var(--v49-q-fs,9.5pt)!important;
    font-weight:var(--v49-q-fw,400)!important;
    line-height:var(--v49-q-lh,1.44)!important;
  }
  #export-container .v49-qline,
  .ss-print-shell .v49-qline,
  .v49page.v50-qn-page .v49-qline{
    white-space:pre-wrap!important;
    margin:0!important;
    min-height:1.35em!important;
    direction:var(--v49-q-dir,rtl)!important;
    text-align:var(--v49-q-align,right)!important;
    text-align-last:var(--v49-q-align-last,auto)!important;
    font-size:var(--v49-q-fs,9.5pt)!important;
    font-weight:var(--v49-q-fw,400)!important;
    line-height:var(--v49-q-lh,1.44)!important;
  }
  #export-container .v49-unit,
  .ss-print-shell .v49-unit,
  .v49page.v50-qn-page .v49-unit{
    display:block!important;
    width:100%!important;
    margin:0 0 var(--v49-q-gap,1.3mm)!important;
    padding:var(--v49-box-pd,0)!important;
    background:var(--v49-box-bg,transparent)!important;
    border:var(--v49-box-bd,none)!important;
    border-radius:var(--v49-box-br,0)!important;
    box-shadow:var(--v49-box-sh,none)!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  #export-container .v49-h-label,
  .ss-print-shell .v49-h-label{font-weight:900!important;color:#475569!important;}
  #export-container .v49-h-value,
  .ss-print-shell .v49-h-value{font-weight:950!important;color:#0f172a!important;}
  #export-container .v49-h-line,
  .ss-print-shell .v49-h-line{display:block!important;margin:0 0 .8mm!important;}
  #export-container .v49-h-title,
  .ss-print-shell .v49-h-title{font-size:calc(var(--v49-t-fs,9.2pt) + 5pt)!important;font-weight:950!important;line-height:1.15!important;margin:0!important;color:#0f172a!important;}
  #export-container .v49-h-note,
  .ss-print-shell .v49-h-note{font-size:calc(var(--v49-t-fs,9.2pt) - .4pt)!important;font-weight:800!important;line-height:1.35!important;margin-top:1mm!important;color:#334155!important;}
  #export-container .v49-h-logo,
  .ss-print-shell .v49-h-logo{display:block!important;max-width:15mm!important;max-height:13mm!important;object-fit:contain!important;margin:0 auto 1mm!important;}

  @media(max-width:760px){
    #export-container .v49page.v50-qn-page{width:210mm!important;max-width:210mm!important;min-height:297mm!important;padding:8mm 9mm!important;}
  }
  @media print{
    @page{size:A4 portrait;margin:0!important;}
    html,body{background:#fff!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;}
    #export-container .v49page.v50-qn-page,
    .ss-print-shell .v49page.v50-qn-page{margin:0!important;page-break-after:always!important;break-after:page!important;}
    #export-container .v49page.v50-qn-page:last-child,
    .ss-print-shell .v49page.v50-qn-page:last-child{page-break-after:auto!important;break-after:auto!important;}
    #export-container .v50-hcell,
    .ss-print-shell .v50-hcell{padding:2mm 2.6mm!important;font-size:8.7pt!important;line-height:1.38!important;}
    #export-container .v49-h-title,
    .ss-print-shell .v49-h-title{font-size:14pt!important;}
    #export-container .v49-full,
    #export-container .v49-qline,
    .ss-print-shell .v49-full,
    .ss-print-shell .v49-qline{font-size:var(--v49-q-fs,9.4pt)!important;line-height:var(--v49-q-lh,1.42)!important;}
  }

/* ===== css/36-ss-v56-fair-integer-style.css ===== */
/* ===== ss-v56-fair-integer-style ===== */

  .ss-v54-policy-note{margin-top:8px;padding:8px 10px;border-radius:12px;background:rgba(59,130,246,.08);border:1px solid rgba(59,130,246,.18);font-size:12px;font-weight:800;color:var(--text-sec,#475569);line-height:1.7}
  .ss-v54-zero-real{background:rgba(239,68,68,.06)!important;border-color:rgba(239,68,68,.28)!important;color:#991b1b!important;font-weight:900!important}
  .ss-v56-absent-dash{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 10px;padding:13px 15px;border-radius:18px;border:1px solid rgba(148,163,184,.28);background:linear-gradient(135deg,rgba(248,250,252,.9),rgba(226,232,240,.72));box-shadow:0 10px 24px rgba(15,23,42,.06);font-weight:950;color:var(--text-main,#111827);direction:rtl}
  .ss-v56-absent-dash small{display:block;margin-top:4px;font-size:11px;font-weight:800;color:var(--text-sec,#64748b);line-height:1.45}
  .ss-v56-absent-dash input{width:24px;height:24px;accent-color:#22c55e;flex:0 0 auto}
  .ss-v56-absent-dash.is-on{background:linear-gradient(135deg,rgba(34,197,94,.13),rgba(16,185,129,.08));border-color:rgba(34,197,94,.34)}
  body.dark-mode .ss-v56-absent-dash{background:rgba(15,23,42,.72);border-color:rgba(148,163,184,.22)}

/* ===== css/37-ss-v59-safe-print-effort-style.css ===== */
/* ===== ss-v59-safe-print-effort-style ===== */

  .ss-effort-excused-viewonly{
    display:flex;align-items:center;justify-content:center;gap:8px;
    margin-top:12px;padding:12px 14px;border-radius:16px;
    border:1px solid rgba(148,163,184,.28);
    background:linear-gradient(135deg,rgba(248,250,252,.92),rgba(226,232,240,.72));
    color:var(--text-main,#111827);font-weight:950;line-height:1.7;text-align:center;
  }
  .ss-effort-excused-viewonly.is-excused{background:linear-gradient(135deg,rgba(34,197,94,.12),rgba(16,185,129,.08));border-color:rgba(34,197,94,.34);}
  .ss-effort-excused-viewonly.is-zero{background:linear-gradient(135deg,rgba(239,68,68,.08),rgba(251,146,60,.07));border-color:rgba(239,68,68,.22);}
  #export-container > div[style*="page-break-after"],
  #export-container > div[style*="break-after"],
  .ss-print-shell > div[style*="page-break-after"],
  .ss-print-shell > div[style*="break-after"]{display:none!important;height:0!important;min-height:0!important;margin:0!important;padding:0!important;overflow:hidden!important;}
  @media print{
    #export-container > div[style*="page-break-after"],
    #export-container > div[style*="break-after"],
    .ss-print-shell > div[style*="page-break-after"],
    .ss-print-shell > div[style*="break-after"]{display:none!important;height:0!important;min-height:0!important;margin:0!important;padding:0!important;overflow:hidden!important;}
    .ss-print-shell .v49page.v50-qn-page,
    #export-container .v49page.v50-qn-page{page-break-before:auto!important;break-before:auto!important;page-break-after:always!important;break-after:page!important;overflow:visible!important;}
    .ss-print-shell .v49page.v50-qn-page:last-of-type,
    #export-container .v49page.v50-qn-page:last-of-type{page-break-after:auto!important;break-after:auto!important;}
    .ss-print-shell .v49page.v50-qn-page.ss-v59-empty-page,
    #export-container .v49page.v50-qn-page.ss-v59-empty-page{display:none!important;}
  }

/* ===== css/38-ss-v60-questionnaire-flow-style.css ===== */
/* ===== ss-v60-questionnaire-flow-style ===== */

  /* V60: let questionnaire content flow naturally to page 2 when it is too long. */
  #export-container .v49page.v50-qn-page,
  .ss-print-shell .v49page.v50-qn-page,
  .v49page.v50-qn-page{
    height:auto!important;
    max-height:none!important;
    min-height:297mm!important;
    overflow:visible!important;
    display:block!important;
    break-inside:auto!important;
    page-break-inside:auto!important;
  }
  #export-container .v49page.v49-compact,
  .ss-print-shell .v49page.v49-compact,
  .v49page.v49-compact{
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    min-height:297mm!important;
  }
  #export-container .v49-body,
  .ss-print-shell .v49-body,
  .v49page.v50-qn-page .v49-body{
    display:block!important;
    min-height:0!important;
    overflow:visible!important;
  }
  #export-container .v49-unit,
  .ss-print-shell .v49-unit,
  .v49page.v50-qn-page .v49-unit{
    break-inside:auto!important;
    page-break-inside:auto!important;
  }
  #export-container .v60-manual-gap,
  .ss-print-shell .v60-manual-gap,
  .v60-manual-gap{
    display:block!important;
    height:1.45em!important;
    min-height:1.45em!important;
    line-height:1.45em!important;
  }
  #export-container .v49-qline,
  .ss-print-shell .v49-qline,
  .v49page.v50-qn-page .v49-qline{
    white-space:pre-wrap!important;
    overflow:visible!important;
  }
  .v49-compact-badge{display:none!important;}
  @media print{
    @page{size:A4 portrait;margin:0!important;}
    html,body{overflow:visible!important;background:#fff!important;}
    #export-container .v49page.v50-qn-page,
    .ss-print-shell .v49page.v50-qn-page,
    .v49page.v50-qn-page{
      height:auto!important;
      max-height:none!important;
      min-height:297mm!important;
      overflow:visible!important;
      display:block!important;
      page-break-after:always!important;
      break-after:page!important;
      page-break-before:auto!important;
      break-before:auto!important;
      page-break-inside:auto!important;
      break-inside:auto!important;
    }
    #export-container .v49page.v50-qn-page:last-of-type,
    .ss-print-shell .v49page.v50-qn-page:last-of-type,
    .v49page.v50-qn-page:last-of-type{
      page-break-after:auto!important;
      break-after:auto!important;
    }
    #export-container .v49page.v49-compact,
    .ss-print-shell .v49page.v49-compact,
    .v49page.v49-compact{
      height:auto!important;
      max-height:none!important;
      overflow:visible!important;
    }
  }

/* ===== css/39-ss-v63-question-shuffle-style.css ===== */
/* ===== ss-v63-question-shuffle-style ===== */

  #ssV62QnShuffleBox{
    display:flex;align-items:center;justify-content:space-between;gap:10px;
    margin:10px 0 12px;padding:10px 12px;border:1px solid rgba(99,102,241,.28);
    border-radius:14px;background:linear-gradient(135deg,rgba(99,102,241,.10),rgba(14,165,233,.08));
    color:var(--text-main,#111827);font-weight:900;direction:rtl;box-shadow:0 6px 16px rgba(15,23,42,.08);
  }
  #ssV62QnShuffleBox .ss-v62-qn-shuffle-title{display:block;font-size:13px;line-height:1.35;}
  #ssV62QnShuffleBox .ss-v62-qn-shuffle-note{display:block;font-size:10px;font-weight:700;opacity:.72;line-height:1.45;margin-top:3px;}
  #ssV62QnShuffleInput{width:22px;height:22px;accent-color:#4f46e5;flex:0 0 auto;}
  @media(max-width:760px){#ssV62QnShuffleBox{margin:8px 0;padding:9px 10px}.ss-v62-qn-shuffle-note{font-size:9px!important}}
  @media print{#ssV62QnShuffleBox{display:none!important}}

/* ===== css/40-ss-v64-report-print-style.css ===== */
/* ===== ss-v64-report-print-style ===== */

  /* Preview surface cleanup for non-questionnaire reports */
  #export-container[data-export-kind="grades"],
  #export-container.ss-v64-report-preview{
    background:#fff!important;
    color:#0f172a!important;
  }
  #export-container[data-export-kind="grades"] .formal-header,
  #export-container.ss-v64-report-preview .formal-header{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)!important;
    align-items:center!important;
    gap:6mm!important;
    width:100%!important;
    max-width:100%!important;
    margin:0 0 6mm!important;
    padding:0 0 4mm!important;
    border-bottom:2px solid #0f172a!important;
    direction:rtl!important;
    box-sizing:border-box!important;
  }
  #export-container[data-export-kind="grades"] .header-side,
  #export-container.ss-v64-report-preview .header-side,
  #export-container[data-export-kind="grades"] .header-center,
  #export-container.ss-v64-report-preview .header-center{
    min-width:0!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
  }
  #export-container[data-export-kind="grades"] .header-center,
  #export-container.ss-v64-report-preview .header-center{text-align:center!important;}
  #export-container[data-export-kind="grades"] .header-left-side,
  #export-container.ss-v64-report-preview .header-left-side{text-align:left!important;}
  #export-container[data-export-kind="grades"] .header-logo-img,
  #export-container.ss-v64-report-preview .header-logo-img{max-height:18mm!important;max-width:22mm!important;object-fit:contain!important;margin:0 auto 1.5mm!important;display:block!important;}
  #export-container[data-export-kind="grades"] table,
  #export-container.ss-v64-report-preview table{
    width:100%!important;
    max-width:100%!important;
    border-collapse:collapse!important;
    table-layout:fixed!important;
    direction:rtl!important;
    margin:0!important;
    border:1.2px solid #334155!important;
  }
  #export-container[data-export-kind="grades"] th,
  #export-container[data-export-kind="grades"] td,
  #export-container.ss-v64-report-preview th,
  #export-container.ss-v64-report-preview td{
    border:1px solid #94a3b8!important;
    background:#fff!important;
    color:#0f172a!important;
    text-align:center!important;
    vertical-align:middle!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
    line-height:1.25!important;
  }
  #export-container[data-export-kind="grades"] th,
  #export-container.ss-v64-report-preview th{background:#e8eef7!important;font-weight:950!important;}

/* ===== css/41-ss-v65-grade-print-excel-style.css ===== */
/* ===== ss-v65-grade-print-excel-style ===== */

  #export-container[data-export-kind="grades"],
  #export-container.ss-v65-grade-preview{
    background:#fff!important;
    color:#0f172a!important;
    padding:10px!important;
    direction:rtl!important;
  }
  #export-container.ss-v65-grade-preview .ss-v65-grade-header{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1.05fr) minmax(0,1fr)!important;
    gap:0!important;
    width:100%!important;
    border:1.6px solid #334155!important;
    border-radius:10px!important;
    overflow:hidden!important;
    margin:0 0 14px!important;
    background:#fff!important;
    box-shadow:0 4px 16px rgba(15,23,42,.08)!important;
  }
  #export-container.ss-v65-grade-preview .ss-v65-grade-cell{
    min-width:0!important;
    padding:10px 12px!important;
    border-left:1px solid #cbd5e1!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    gap:4px!important;
    font-size:13px!important;
    line-height:1.45!important;
    color:#0f172a!important;
    overflow-wrap:anywhere!important;
  }
  #export-container.ss-v65-grade-preview .ss-v65-grade-cell:last-child{border-left:0!important;}
  #export-container.ss-v65-grade-preview .ss-v65-grade-center{text-align:center!important;align-items:center!important;}
  #export-container.ss-v65-grade-preview .ss-v65-grade-left{text-align:left!important;align-items:flex-end!important;}
  #export-container.ss-v65-grade-preview .ss-v65-grade-title{font-size:22px!important;font-weight:950!important;line-height:1.15!important;margin:0!important;color:#0f172a!important;}
  #export-container.ss-v65-grade-preview .ss-v65-grade-logo{display:block!important;max-width:52px!important;max-height:48px!important;object-fit:contain!important;margin:0 auto 4px!important;}
  #export-container.ss-v65-grade-preview .ss-v65-grade-table{
    width:100%!important;
    max-width:100%!important;
    border-collapse:collapse!important;
    table-layout:fixed!important;
    direction:rtl!important;
    border:1.5px solid #334155!important;
    margin:0!important;
    background:#fff!important;
  }
  #export-container.ss-v65-grade-preview .ss-v65-grade-table th,
  #export-container.ss-v65-grade-preview .ss-v65-grade-table td{
    border:1px solid #64748b!important;
    padding:7px 6px!important;
    font-size:13px!important;
    line-height:1.25!important;
    text-align:center!important;
    vertical-align:middle!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
    color:#0f172a!important;
    background:#fff!important;
  }
  #export-container.ss-v65-grade-preview .ss-v65-grade-table th{
    background:linear-gradient(180deg,#25364a,#172235)!important;
    color:#fff!important;
    font-weight:950!important;
  }
  #export-container.ss-v65-grade-preview .ss-v65-grade-table tbody tr:nth-child(even) td{background:#f8fafc!important;}
  #export-container.ss-v65-grade-preview .ss-v65-name-cell{text-align:right!important;font-weight:900!important;}

/* ===== css/42-ss-v70-instant-selection-style.css ===== */
/* ===== ss-v70-instant-selection-style ===== */

  /* V70: immediate response for class/student selection and six-level dashboard. */
  #studentSelect,#classSelect,#currentStats,.big-buttons-grid,.eval-btn{will-change:auto;touch-action:manipulation}
  .big-buttons-grid,.eval-btn{backface-visibility:hidden;transform:translateZ(0)}
  #currentStats{min-height:28px;contain:layout paint}
  @media (hover:none),(pointer:coarse){
    .control-panel *{transition-duration:.08s!important;animation-duration:.08s!important}
  }

/* ===== css/43-ss-v80-auto-desktop-layout-style.css ===== */
/* ===== ss-v80-auto-desktop-layout-style ===== */

/* V81 — laptop/desktop uses one wide workspace, not a narrow mobile pane.
   Phones/tablets with touch stay mobile even when browser desktop mode changes viewport. */
body.ss-desktop-ui{
  padding:18px 22px 34px!important;
  padding-bottom:34px!important;
  overflow-x:hidden!important;
  background-attachment:fixed;
}
body.ss-desktop-ui .container{
  width:min(100%, 1560px)!important;
  max-width:min(1560px, calc(100vw - 44px))!important;
  margin:0 auto!important;
  display:block!important;
}
body.ss-desktop-ui .app-header{
  width:100%!important;
  margin:0 0 16px!important;
  min-height:98px;
  padding:18px 24px!important;
  display:grid!important;
  grid-template-columns:minmax(280px,1fr) auto auto!important;
  gap:16px!important;
  align-items:center!important;
  border-radius:26px!important;
  overflow:hidden!important;
}
body.ss-desktop-ui .header-left{min-width:0!important;}
body.ss-desktop-ui .title-row{justify-content:flex-start!important;gap:14px!important;}
body.ss-desktop-ui .app-logo{width:66px!important;height:66px!important;border-radius:18px!important;}
body.ss-desktop-ui .app-title{font-size:clamp(1.75rem,2.1vw,2.45rem)!important;line-height:1.05!important;}
body.ss-desktop-ui .app-subtitle{max-width:none!important;font-size:1rem!important;white-space:normal!important;}
body.ss-desktop-ui .digital-clock{min-width:210px!important;justify-self:center!important;}
body.ss-desktop-ui .clock-time{font-size:1.28rem!important;}
body.ss-desktop-ui .clock-date{font-size:.86rem!important;}

/* Main form: wide desktop panel instead of phone column. */
body.ss-desktop-ui .control-panel{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  position:relative!important;
  top:auto!important;
  max-height:none!important;
  overflow:visible!important;
  margin:0 0 16px!important;
  border-radius:28px!important;
  padding:22px!important;
  box-shadow:0 20px 70px rgba(15,23,42,.14)!important;
}
body.ss-desktop-ui .selectors{
  display:grid!important;
  grid-template-columns:minmax(320px,1.35fr) minmax(260px,1fr)!important;
  gap:14px!important;
  align-items:start!important;
  margin-bottom:16px!important;
}
body.ss-desktop-ui .class-row{
  display:grid!important;
  grid-template-columns:64px minmax(0,1fr)!important;
  gap:12px!important;
  width:100%!important;
  min-width:0!important;
}
body.ss-desktop-ui #classFilterToggle{height:56px!important;min-height:56px!important;border-radius:16px!important;}
body.ss-desktop-ui .class-filters{
  grid-column:1/-1!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(180px,1fr))!important;
  gap:12px!important;
  min-width:0!important;
}
body.ss-desktop-ui .selectors > select,
body.ss-desktop-ui .selectors .ss-select-wrap,
body.ss-desktop-ui .class-row .ss-select-wrap,
body.ss-desktop-ui .class-filters .ss-select-wrap{width:100%!important;min-width:0!important;}
body.ss-desktop-ui select,
body.ss-desktop-ui input,
body.ss-desktop-ui textarea,
body.ss-desktop-ui .ss-select-btn{
  min-width:0!important;
  max-width:100%!important;
  min-height:54px!important;
}
body.ss-desktop-ui .exam-panel{
  margin:14px 0!important;
  padding:18px 20px!important;
  border-radius:24px!important;
}
body.ss-desktop-ui .season-toggle{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:12px!important;
  max-width:720px!important;
  margin:14px auto!important;
}
body.ss-desktop-ui .input-group{
  max-width:720px!important;
  margin:14px auto!important;
}
body.ss-desktop-ui .big-buttons-grid{
  grid-template-columns:repeat(3,minmax(160px,1fr))!important;
  gap:12px!important;
}
body.ss-desktop-ui .eval-btn{min-height:86px!important;border-radius:20px!important;}
body.ss-desktop-ui #currentStats{margin-top:16px!important;}
body.ss-desktop-ui .board-docs-btn{min-height:58px!important;border-radius:18px!important;}

/* Section buttons: compact dashboard-style rows on laptop. */
body.ss-desktop-ui .container > .toggle-btn{
  display:inline-flex!important;
  width:calc(25% - 12px)!important;
  min-width:240px!important;
  min-height:58px!important;
  margin:8px 6px!important;
  vertical-align:top!important;
  border-radius:18px!important;
  justify-content:center!important;
  white-space:normal!important;
  line-height:1.45!important;
}
body.ss-desktop-ui .container > .collapsible-content{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  clear:both!important;
  margin:12px 0 18px!important;
  border-radius:26px!important;
  padding:20px!important;
  overflow:visible!important;
}

/* Desktop analytics: wide, stable charts. */
body.ss-desktop-ui .ss-an-shell{padding:2px 0 18px!important;max-width:none!important;}
/* ── SVG Bar Chart ── */
.ss-an-svgbar-wrap{padding:10px 4px 4px;overflow:visible}
.ss-an-svgbar-wrap svg{overflow:visible;font-family:inherit}
.ss-an-chart-card{overflow:visible!important}
.ss-an-legend-compact{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:5px;margin-top:10px}
.ss-an-legend-compact .ss-an-legend-item{padding:6px 8px;border-radius:10px}
.ss-an-legend-compact .ss-an-legend-name{font-size:.78rem}
.ss-an-legend-compact .ss-an-legend-count{font-size:.75rem}
/* ── KPI Cards enhanced ── */
.ss-an-kpi-value{letter-spacing:-0.02em}
.ss-an-kpi small{opacity:.85}
body.ss-desktop-ui .ss-an-hero{border-radius:30px!important;padding:24px!important;overflow:hidden!important;}
body.ss-desktop-ui .ss-an-filters{grid-template-columns:repeat(5,minmax(170px,1fr))!important;align-items:end!important;gap:12px!important;}
body.ss-desktop-ui .ss-an-kpis{grid-template-columns:repeat(4,minmax(210px,1fr))!important;gap:16px!important;}
body.ss-desktop-ui .ss-an-kpi{min-height:160px!important;padding:20px!important;border-radius:26px!important;}
body.ss-desktop-ui .ss-an-kpi-value{font-size:2.4rem!important;margin-top:14px!important;}
body.ss-desktop-ui .ss-an-kpi-label{font-size:.9rem!important;margin-top:10px!important;}
body.ss-desktop-ui .ss-an-kpi small{font-size:.78rem!important;margin-top:8px!important;}
body.ss-desktop-ui .ss-an-kpi-icon{width:46px!important;height:46px!important;font-size:1.35rem!important;border-radius:16px!important;}
body.ss-desktop-ui .ss-an-svgbar-wrap svg{max-height:260px!important}
body.ss-desktop-ui .ss-an-legend-compact{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))!important;}
body.ss-desktop-ui .ss-an-chart-card{min-height:360px!important;}
body.ss-desktop-ui .ss-an-kpi{min-height:142px!important;border-radius:24px!important;padding:18px!important;}
body.ss-desktop-ui .ss-an-grid{grid-template-columns:minmax(560px,1.15fr) minmax(380px,.85fr)!important;gap:16px!important;}
body.ss-desktop-ui .ss-an-card{border-radius:26px!important;padding:20px!important;overflow:hidden!important;min-width:0!important;}
body.ss-desktop-ui .ss-an-card-title{font-size:1.18rem!important;}
body.ss-desktop-ui .ss-an-bars{gap:12px!important;}
body.ss-desktop-ui .ss-an-bar-row{
  grid-template-columns:minmax(145px,190px) minmax(180px,1fr) minmax(96px,128px)!important;
  gap:13px!important;
  padding:11px 12px!important;
  min-width:0!important;
}
body.ss-desktop-ui .ss-an-track{height:18px!important;}
body.ss-desktop-ui .ss-an-donut-layout{grid-template-columns:minmax(230px,.78fr) minmax(250px,1fr)!important;gap:20px!important;align-items:center!important;}
body.ss-desktop-ui .ss-an-donut{width:min(260px,92%)!important;}
body.ss-desktop-ui .ss-an-legend{gap:8px!important;}
body.ss-desktop-ui .ss-an-legend-item{padding:9px 10px!important;}
body.ss-desktop-ui .ss-an-insights{grid-template-columns:repeat(3,minmax(210px,1fr))!important;gap:12px!important;}
body.ss-desktop-ui .ss-an-role-row{grid-template-columns:130px minmax(180px,1fr) 74px!important;}
body.ss-desktop-ui .ss-an-grade-row{grid-template-columns:minmax(220px,320px) minmax(260px,1fr) minmax(84px,120px)!important;}
body.ss-desktop-ui .ss-an-subject-grid{grid-template-columns:repeat(3,minmax(190px,1fr))!important;}
body.ss-desktop-ui .ss-an-teacher-row{grid-template-columns:minmax(190px,260px) minmax(260px,1fr) 70px!important;}
body.ss-desktop-ui .ss-teacher-aggregate,
body.ss-desktop-ui .ss-an-teacher-aggregate,
body.ss-desktop-ui [data-teacher-aggregate]{max-width:100%!important;min-width:0!important;}

body.ss-desktop-ui .table-responsive,
body.ss-desktop-ui #gradesContainer,
body.ss-desktop-ui #qnTemplatesContainer,
body.ss-desktop-ui #qnStudentsContainer,
body.ss-desktop-ui .grades-class-card,
body.ss-desktop-ui .class-container{max-width:100%!important;min-width:0!important;}
body.ss-desktop-ui .table-responsive{overflow:auto!important;}
body.ss-desktop-ui table{min-width:0;}
body.ss-desktop-ui .grades-class-card,
body.ss-desktop-ui .dashboard-card,
body.ss-desktop-ui .analytics-card,
body.ss-desktop-ui .chart-card,
body.ss-desktop-ui .stat-card,
body.ss-desktop-ui .pro-card{border-radius:24px!important;}

@media (min-width:1400px){
  body.ss-desktop-ui .container{max-width:min(1640px, calc(100vw - 48px))!important;}
  body.ss-desktop-ui .ss-an-grid{grid-template-columns:minmax(680px,1.2fr) minmax(430px,.8fr)!important;}
}
@media (min-width:1100px) and (max-width:1280px){
  body.ss-desktop-ui .container > .toggle-btn{width:calc(33.333% - 12px)!important;min-width:210px!important;}
  body.ss-desktop-ui .ss-an-kpis{grid-template-columns:repeat(2,minmax(220px,1fr))!important;}
  body.ss-desktop-ui .ss-an-grid{grid-template-columns:1fr!important;}
  body.ss-desktop-ui .ss-an-filters{grid-template-columns:repeat(3,minmax(160px,1fr))!important;}
}
@media (max-width:1099px){
  body.ss-mobile-ui .container{max-width:1000px;}
}

/* ===== css/44-ss-v98-final-silver-toggle-panels-last.css ===== */
/* ===== ss-v98-final-silver-toggle-panels-last ===== */

html body:not(.qn-exporting) button.toggle-btn,
html body:not(.qn-exporting) .toggle-btn,
html body:not(.qn-exporting) button[onclick^="toggleSection("],
html body:not(.qn-exporting) button[onclick*="toggleSection"]{
  background: linear-gradient(180deg, #f6f7f8 0%, #e4e7eb 48%, #cfd6de 100%) !important;
  background-image: linear-gradient(180deg, #f6f7f8 0%, #e4e7eb 48%, #cfd6de 100%) !important;
  color: #171717 !important;
  -webkit-text-fill-color: #171717 !important;
  border: 1px solid rgba(111,120,130,.34) !important;
  box-shadow: 0 10px 22px rgba(148,163,184,.24), inset 0 1px 0 rgba(255,255,255,.76) !important;
  text-shadow: none !important;
}
html body:not(.qn-exporting) button.toggle-btn *,
html body:not(.qn-exporting) .toggle-btn *,
html body:not(.qn-exporting) button[onclick^="toggleSection("] *,
html body:not(.qn-exporting) button[onclick*="toggleSection"] *{
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
  text-shadow: none !important;
}
html body.dark-mode:not(.qn-exporting) button.toggle-btn,
html body.dark-mode:not(.qn-exporting) .toggle-btn,
html body.dark-mode:not(.qn-exporting) button[onclick^="toggleSection("],
html body.dark-mode:not(.qn-exporting) button[onclick*="toggleSection"]{
  background: linear-gradient(180deg, #555a61 0%, #383d43 48%, #24282e 100%) !important;
  background-image: linear-gradient(180deg, #555a61 0%, #383d43 48%, #24282e 100%) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  border: 1px solid rgba(215,221,229,.24) !important;
  box-shadow: 0 12px 26px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.12) !important;
}
html body:not(.dark-mode):not(.qn-exporting) button.toggle-btn,
html body:not(.dark-mode):not(.qn-exporting) .toggle-btn,
html body:not(.dark-mode):not(.qn-exporting) button[onclick^="toggleSection("],
html body:not(.dark-mode):not(.qn-exporting) button[onclick*="toggleSection"]{
  color:#171717 !important;
  -webkit-text-fill-color:#171717 !important;
}
html body:not(.qn-exporting) button.toggle-btn:active,
html body:not(.qn-exporting) .toggle-btn:active{transform:translateY(1px) scale(.992) !important;}
html body:not(.dark-mode):not(.qn-exporting) .close-btn.close-btn,
html body:not(.dark-mode):not(.qn-exporting) .ss-br-tab.ss-br-tab:not(.active),
html body:not(.dark-mode):not(.qn-exporting) .ss-br-type.ss-br-type:not(.active){
  background: rgba(15,27,51,.06) !important;
  color: #0f1b33 !important;
  -webkit-text-fill-color: #0f1b33 !important;
  border-color: rgba(15,27,51,.16) !important;
}
html body.dark-mode:not(.qn-exporting) .close-btn.close-btn{
  background: rgba(255,255,255,.10) !important;
  color: #f8fbff !important;
  -webkit-text-fill-color: #f8fbff !important;
}
html body:not(.qn-exporting) .ss-effort-close.ss-effort-close{
  background: rgba(239,68,68,.14) !important;
  border-color: rgba(239,68,68,.45) !important;
  color: #ef4444 !important;
  -webkit-text-fill-color: #ef4444 !important;
}
html body:not(.dark-mode):not(.qn-exporting) .ss-effort-pill.ss-effort-pill:not([style*="color"]){
  background: rgba(15,27,51,.06) !important;
  color: #0f1b33 !important;
  -webkit-text-fill-color: #0f1b33 !important;
}
html body.dark-mode:not(.qn-exporting) .ss-effort-pill.ss-effort-pill:not([style*="color"]){
  background: rgba(255,255,255,.10) !important;
  color: #f8fbff !important;
  -webkit-text-fill-color: #f8fbff !important;
}
