:root{
  --sa-bg:#f4f6fb;
  --sa-card:#ffffff;
  --sa-soft:#f0f4f8;
  --sa-text:#0f172a;
  --sa-muted:#64748b;
  --sa-primary:#2563eb;
  --sa-primary-light:#3b82f6;
  --sa-primary-dark:#1d4ed8;
  --sa-accent:#0ea5e9;
  --sa-danger:#dc2626;
  --sa-success:#16a34a;
  --sa-warning:#f59e0b;
  --sa-border:#e2e8f0;
  --sa-sidebar-bg:#0f172a;
  --sa-sidebar-text:#94a3b8;
  --sa-sidebar-hover:#ffffff;
  --sa-sidebar-active:rgba(37,99,235,.20);
  --sa-shadow:0 10px 30px rgba(2,6,23,.08);
  --sa-shadow-lg:0 18px 40px rgba(2,6,23,.12);
  --sa-radius:16px;
}

*{box-sizing:border-box}
html,body{
  margin:0;padding:0;
  background:var(--sa-bg);
  color:var(--sa-text);
  font-family:system-ui,-apple-system,Segoe UI,Roboto,"Noto Kufi Arabic","Tahoma",sans-serif;
  direction:rtl;
  overflow-x:hidden;
}
body.sidebar-open-mobile{overflow:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
button,input,select,textarea{font:inherit}
h1,h2,h3,h4{margin:0 0 12px;line-height:1.4}

/* ─── Layout ─── */
.sa-layout{
  display:grid;
  grid-template-columns:270px minmax(0,1fr);
  min-height:100dvh;
  transition:grid-template-columns .25s ease;
}
.sa-layout.sidebar-collapsed{grid-template-columns:0 minmax(0,1fr)}
.sa-layout.sidebar-collapsed .sa-sidebar{
  transform:translateX(100%);
  opacity:0;
  pointer-events:none;
}
.sa-main-shell{min-width:0}
.sa-main{min-width:0}
.sa-container{max-width:1400px;margin:0 auto;padding:24px}

/* ─── Sidebar ─── */
.sa-sidebar{
  background:var(--sa-sidebar-bg);
  color:var(--sa-sidebar-text);
  padding:20px 14px;
  position:sticky;
  top:0;
  height:100dvh;
  overflow:auto;
  transition:transform .25s ease,opacity .25s ease;
  z-index:30;
  display:flex;
  flex-direction:column;
}
.sa-sidebar-brand{
  display:flex;
  align-items:center;
  gap:12px;
  padding:8px 10px 20px;
  border-bottom:1px solid rgba(255,255,255,.08);
  margin-bottom:16px;
}
.sa-sidebar-brand .sa-brand-icon{
  width:44px;height:44px;
  border-radius:14px;
  background:linear-gradient(135deg,var(--sa-primary),var(--sa-accent));
  display:grid;place-items:center;
  color:#fff;font-size:18px;font-weight:900;
  flex-shrink:0;
}
.sa-sidebar-brand span{font-weight:800;color:#fff;font-size:1.05rem;line-height:1.3}
.sa-menu{display:flex;flex-direction:column;gap:4px;flex:1}
.sa-menu a{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  border-radius:12px;
  color:var(--sa-sidebar-text);
  font-weight:600;
  transition:all .2s ease;
}
.sa-menu a i{min-width:20px;text-align:center;font-size:1rem;opacity:.75}
.sa-menu a:hover,.sa-menu a.active{
  background:var(--sa-sidebar-active);
  color:var(--sa-sidebar-hover);
}
.sa-menu a:hover i,.sa-menu a.active i{opacity:1;color:var(--sa-sidebar-hover)}
.sa-sidebar-footer{
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,.08);
  margin-top:auto;
  font-size:.85rem;
  color:rgba(148,163,184,.5);
  text-align:center;
}

.sa-sidebar-backdrop{
  position:fixed;inset:0;
  background:rgba(15,23,42,.5);
  opacity:0;pointer-events:none;
  transition:opacity .2s ease;
  z-index:25;
}
body.sidebar-open-mobile .sa-sidebar-backdrop{
  opacity:1;pointer-events:auto;
}

/* ─── Header ─── */
.sa-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 24px;
  border-bottom:1px solid var(--sa-border);
  position:sticky;top:0;
  background:rgba(255,255,255,.95);
  backdrop-filter:blur(12px);
  z-index:20;
  min-height:72px;
}
.sa-header-brand,.sa-header-actions{display:flex;align-items:center;gap:10px;min-width:0}
.sa-header-brand strong{font-size:1.15rem}
.sa-header-brand i{color:var(--sa-primary);font-size:1.1rem}

.sa-sidebar-toggle{
  width:42px;height:42px;
  border-radius:12px;
  border:1px solid var(--sa-border);
  background:var(--sa-card);
  color:var(--sa-text);
  cursor:pointer;
  flex:0 0 auto;
  display:grid;place-items:center;
  font-size:1rem;
}
.sa-sidebar-toggle:hover{background:var(--sa-soft)}

/* ─── User Chip & Dropdown ─── */
.sa-user-chip{position:relative}
.sa-user-chip button{
  background:var(--sa-soft);
  border:1px solid var(--sa-border);
  color:var(--sa-text);
  padding:8px 14px;
  border-radius:999px;
  cursor:pointer;
  display:flex;align-items:center;gap:8px;
  font-weight:600;
}
.sa-user-chip button i.fa-chevron-down{font-size:.7rem;transition:transform .2s}
.sa-user-chip.open button i.fa-chevron-down{transform:rotate(180deg)}
.sa-dropdown{
  position:absolute;
  inset-inline-end:0;top:110%;
  background:var(--sa-card);
  border:1px solid var(--sa-border);
  border-radius:14px;
  display:none;
  min-width:200px;
  box-shadow:var(--sa-shadow-lg);
  overflow:hidden;
  z-index:50;
}
.sa-dropdown a{
  display:flex;align-items:center;gap:10px;
  padding:12px 16px;font-weight:600;
}
.sa-dropdown a:hover{background:var(--sa-soft)}
.sa-dropdown a.danger-link{color:var(--sa-danger)}
.sa-user-chip.open .sa-dropdown{display:block}

/* ─── Page Header ─── */
.sa-page-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:12px;
  margin-bottom:20px;
}
.sa-page-header h1{font-size:1.5rem;margin:0}
.sa-page-header h1 i{color:var(--sa-primary)}

/* ─── Cards ─── */
.sa-card{
  background:var(--sa-card);
  border:1px solid var(--sa-border);
  border-radius:var(--sa-radius);
  padding:20px;
  box-shadow:var(--sa-shadow);
  margin-bottom:20px;
}
.sa-card:last-child{margin-bottom:0}
.sa-card-title{font-size:1.1rem;font-weight:700;margin-bottom:16px;display:flex;align-items:center;gap:8px}
.sa-card-title i{color:var(--sa-primary)}

/* ─── Stat Cards ─── */
.sa-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-bottom:24px}
.sa-stat{
  background:var(--sa-card);
  border:1px solid var(--sa-border);
  border-radius:var(--sa-radius);
  padding:20px;
  display:flex;
  align-items:center;
  gap:16px;
  box-shadow:var(--sa-shadow);
}
.sa-stat-icon{
  width:52px;height:52px;
  border-radius:14px;
  display:grid;place-items:center;
  font-size:1.2rem;
  flex-shrink:0;
}
.sa-stat-icon.blue{background:rgba(37,99,235,.12);color:var(--sa-primary)}
.sa-stat-icon.green{background:rgba(22,163,74,.12);color:var(--sa-success)}
.sa-stat-icon.red{background:rgba(220,38,38,.12);color:var(--sa-danger)}
.sa-stat-icon.amber{background:rgba(245,158,11,.12);color:var(--sa-warning)}
.sa-stat-icon.cyan{background:rgba(14,165,233,.12);color:var(--sa-accent)}
.sa-stat-icon.purple{background:rgba(139,92,246,.12);color:#7c3aed}
.sa-stat-info{min-width:0}
.sa-stat-info .sa-stat-value{font-size:1.6rem;font-weight:800;line-height:1.2}
.sa-stat-info .sa-stat-label{font-size:.85rem;color:var(--sa-muted);margin-top:2px}

/* ─── Tables ─── */
.sa-table-wrap{
  border:1px solid var(--sa-border);
  border-radius:var(--sa-radius);
  background:#fff;
  overflow-x:auto;
  box-shadow:var(--sa-shadow);
}
.sa-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  min-width:600px;
  background:#fff;
}
.sa-table th,.sa-table td{
  padding:13px 14px;
  border-bottom:1px solid var(--sa-border);
  text-align:right;
  vertical-align:middle;
}
.sa-table thead th{
  background:#f8fafc;
  font-size:.9rem;
  font-weight:700;
  color:var(--sa-muted);
  position:sticky;top:0;z-index:1;
  white-space:nowrap;
}
.sa-table tbody tr:hover td{background:#f8fbff}
.sa-table tbody tr:last-child td{border-bottom:0}

/* ─── Badges ─── */
.sa-badge{
  display:inline-flex;align-items:center;justify-content:center;
  padding:.25rem .7rem;
  border-radius:999px;
  font-weight:700;
  font-size:.82rem;
  white-space:nowrap;
}
.sa-badge.active,.sa-badge.success{background:rgba(22,163,74,.1);color:#166534;border:1px solid rgba(22,163,74,.2)}
.sa-badge.suspended,.sa-badge.warning{background:rgba(245,158,11,.1);color:#92400e;border:1px solid rgba(245,158,11,.2)}
.sa-badge.deleted,.sa-badge.danger{background:rgba(220,38,38,.1);color:#b91c1c;border:1px solid rgba(220,38,38,.2)}
.sa-badge.info{background:rgba(37,99,235,.1);color:#1e40af;border:1px solid rgba(37,99,235,.2)}
.sa-badge.disabled{background:var(--sa-soft);color:var(--sa-muted);border:1px solid var(--sa-border)}
.sa-badge.free{background:rgba(100,116,139,.08);color:#475569;border:1px solid rgba(100,116,139,.15)}
.sa-badge.pro{background:rgba(37,99,235,.1);color:#1d4ed8;border:1px solid rgba(37,99,235,.2)}
.sa-badge.premium{background:rgba(234,179,8,.12);color:#a16207;border:1px solid rgba(234,179,8,.3)}

/* ─── Buttons ─── */
.sa-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:40px;
  padding:8px 18px;
  border-radius:12px;
  border:1px solid transparent;
  font-weight:700;
  font-size:.9rem;
  cursor:pointer;
  transition:all .15s ease;
  white-space:nowrap;
}
.sa-btn:hover{transform:translateY(-1px)}
.sa-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}

.sa-btn-primary{
  background:linear-gradient(135deg,var(--sa-primary),var(--sa-primary-light));
  color:#fff;
  box-shadow:0 6px 16px rgba(37,99,235,.2);
}
.sa-btn-primary:hover{box-shadow:0 8px 20px rgba(37,99,235,.3)}

.sa-btn-accent{
  background:linear-gradient(135deg,var(--sa-accent),#38bdf8);
  color:#fff;
  box-shadow:0 6px 16px rgba(14,165,233,.2);
}

.sa-btn-danger{
  background:linear-gradient(135deg,#dc2626,#ef4444);
  color:#fff;
  box-shadow:0 6px 16px rgba(220,38,38,.15);
}

.sa-btn-success{
  background:linear-gradient(135deg,#16a34a,#22c55e);
  color:#fff;
  box-shadow:0 6px 16px rgba(22,163,74,.15);
}

.sa-btn-warning{
  background:linear-gradient(135deg,#f59e0b,#fbbf24);
  color:#78350f;
  box-shadow:0 6px 16px rgba(245,158,11,.15);
}

.sa-btn-outline{
  background:transparent;
  border:1px solid var(--sa-border);
  color:var(--sa-text);
}
.sa-btn-outline:hover{background:var(--sa-soft)}

.sa-btn-sm{
  min-height:34px;
  padding:6px 12px;
  font-size:.82rem;
  border-radius:10px;
}

.sa-btn-block{width:100%}

.sa-btn-group{
  display:inline-flex;
  gap:6px;
  align-items:center;
  flex-wrap:wrap;
}

/* ─── Forms ─── */
label,.sa-label{display:block;font-size:.85rem;color:var(--sa-muted);margin-bottom:6px;font-weight:600}
.sa-form-group{margin-bottom:16px}
.sa-input,.input{
  width:100%;
  min-height:44px;
  padding:10px 14px;
  border-radius:12px;
  border:1px solid var(--sa-border);
  background:var(--sa-soft);
  color:var(--sa-text);
  outline:none;
  transition:border-color .15s,box-shadow .15s;
}
.sa-input:focus,.input:focus{
  border-color:rgba(37,99,235,.5);
  box-shadow:0 0 0 3px rgba(37,99,235,.1);
  background:#fff;
}
select.sa-input,select.input{cursor:pointer}
textarea.sa-input,textarea.input{resize:vertical;min-height:80px}

.sa-form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
.sa-form-row.three-col{grid-template-columns:1fr 1fr 1fr}

.sa-form-inline{
  display:flex;
  gap:10px;
  align-items:flex-end;
  flex-wrap:wrap;
}
.sa-form-inline .sa-form-group{margin-bottom:0;flex:1;min-width:140px}

.sa-checkbox-label,.chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  cursor:pointer;
  font-weight:600;
  padding:6px 10px;
  border-radius:999px;
  background:var(--sa-soft);
  border:1px solid var(--sa-border);
}
.sa-checkbox-label input[type="checkbox"],
.chip input[type="checkbox"]{
  width:18px;height:18px;
  accent-color:var(--sa-primary);
  cursor:pointer;
}

/* ─── Alerts ─── */
.sa-alert,.alert{
  padding:14px 18px;
  border-radius:12px;
  border:1px solid var(--sa-border);
  margin-bottom:16px;
  font-weight:600;
}
.sa-alert.success,.alert.success{background:rgba(22,163,74,.08);border-color:rgba(22,163,74,.25);color:#166534}
.sa-alert.danger,.alert.danger{background:rgba(220,38,38,.08);border-color:rgba(220,38,38,.25);color:#b91c1c}
.sa-alert.warning,.alert.warning{background:rgba(245,158,11,.08);border-color:rgba(245,158,11,.25);color:#92400e}
.sa-alert.info,.alert.info{background:rgba(37,99,235,.08);border-color:rgba(37,99,235,.25);color:#1e40af}

/* ─── Pagination ─── */
.sa-pagination{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  margin-top:20px;
  flex-wrap:wrap;
}
.sa-pagination a,.sa-pagination span{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:38px;height:38px;
  padding:0 10px;
  border-radius:10px;
  font-weight:700;
  font-size:.88rem;
  border:1px solid var(--sa-border);
  background:var(--sa-card);
  color:var(--sa-text);
}
.sa-pagination a:hover{background:var(--sa-soft)}
.sa-pagination .current{
  background:var(--sa-primary);
  color:#fff;
  border-color:var(--sa-primary);
}
.sa-pagination .disabled{opacity:.4;pointer-events:none}

/* ─── Filters ─── */
.sa-filters{
  display:flex;
  gap:10px;
  align-items:flex-end;
  flex-wrap:wrap;
  margin-bottom:20px;
  padding:16px;
  background:var(--sa-card);
  border:1px solid var(--sa-border);
  border-radius:var(--sa-radius);
}
.sa-filters .sa-form-group{margin-bottom:0;min-width:140px}
.sa-filters .sa-input,.sa-filters .input{min-height:40px;font-size:.88rem}

/* ─── Tabs ─── */
.sa-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}
.sa-tab{
  padding:8px 16px;
  border-radius:999px;
  border:1px solid var(--sa-border);
  background:var(--sa-soft);
  font-weight:600;font-size:.88rem;
  cursor:pointer;transition:all .15s;
}
.sa-tab:hover{background:var(--sa-card);border-color:var(--sa-primary)}
.sa-tab.active{
  background:linear-gradient(135deg,var(--sa-primary),var(--sa-primary-light));
  color:#fff;border-color:transparent;
}

/* ─── Modal ─── */
.sa-modal-backdrop{
  position:fixed;inset:0;
  background:rgba(15,23,42,.5);
  z-index:100;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.sa-modal-backdrop.active{display:flex}
.sa-modal{
  background:var(--sa-card);
  border-radius:var(--sa-radius);
  width:100%;
  max-width:560px;
  max-height:90vh;
  overflow-y:auto;
  box-shadow:var(--sa-shadow-lg);
  padding:24px;
}
.sa-modal-header{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:20px;
}
.sa-modal-header h3{margin:0}
.sa-modal-close{
  width:36px;height:36px;
  border-radius:10px;border:1px solid var(--sa-border);
  background:var(--sa-soft);cursor:pointer;
  display:grid;place-items:center;
  font-size:.9rem;color:var(--sa-muted);
}

/* ─── Plan Info ─── */
.sa-plan-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(160px,1fr));
  gap:12px;
}
.sa-plan-item{
  background:var(--sa-soft);
  border:1px solid var(--sa-border);
  border-radius:12px;
  padding:14px;
  text-align:center;
}
.sa-plan-item .sa-plan-label{
  display:block;
  font-size:.8rem;
  color:var(--sa-muted);
  margin-bottom:6px;
}
.sa-plan-item .sa-plan-value{font-size:1rem;font-weight:800}

/* ─── Quick Actions ─── */
.sa-quick-actions{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:12px;
}
.sa-quick-action{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px;
  background:var(--sa-card);
  border:1px solid var(--sa-border);
  border-radius:var(--sa-radius);
  box-shadow:var(--sa-shadow);
  transition:all .15s ease;
  font-weight:700;
}
.sa-quick-action:hover{
  transform:translateY(-2px);
  box-shadow:var(--sa-shadow-lg);
  border-color:var(--sa-primary);
}
.sa-quick-action i{
  width:42px;height:42px;
  border-radius:12px;
  display:grid;place-items:center;
  font-size:1rem;
  flex-shrink:0;
  background:rgba(37,99,235,.1);
  color:var(--sa-primary);
}

/* ─── Misc ─── */
.sa-muted{color:var(--sa-muted)}
.sa-text-danger{color:var(--sa-danger)}
.sa-text-success{color:var(--sa-success)}
.sa-divider{border:0;border-top:1px solid var(--sa-border);margin:20px 0}
.sa-empty{text-align:center;padding:40px 20px;color:var(--sa-muted)}
.sa-empty i{font-size:2.5rem;margin-bottom:12px;display:block;opacity:.4}
hr{border:0;border-top:1px solid var(--sa-border)}

/* ─── Footer ─── */
.sa-footer{
  padding:16px 24px;
  text-align:center;
  color:var(--sa-muted);
  font-size:.82rem;
  border-top:1px solid var(--sa-border);
  margin-top:auto;
}

/* ─── Auth (Login) ─── */
.sa-auth-wrap{
  min-height:100dvh;
  display:grid;place-items:center;
  padding:20px;
  background:linear-gradient(135deg,#0f172a 0%,#1e3a5f 50%,#2563eb 100%);
}
.sa-auth-card{
  width:100%;max-width:420px;
  background:#fff;
  border-radius:20px;
  padding:32px 28px;
  box-shadow:0 20px 60px rgba(0,0,0,.2);
}
.sa-auth-brand{
  display:flex;flex-direction:column;align-items:center;gap:10px;
  margin-bottom:24px;
}
.sa-auth-brand .sa-auth-icon{
  width:72px;height:72px;
  border-radius:18px;
  background:linear-gradient(135deg,var(--sa-primary),var(--sa-accent));
  display:grid;place-items:center;
  color:#fff;font-size:28px;
}
.sa-auth-brand h2{margin:0;font-size:1.3rem}
.sa-auth-brand p{margin:0;color:var(--sa-muted);font-size:.9rem}

/* ─── Backward compat aliases for old class names ─── */
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:stretch}
.row > *{flex:1 1 280px;min-width:0}
.card{
  background:var(--sa-card);border:1px solid var(--sa-border);
  border-radius:var(--sa-radius);padding:20px;box-shadow:var(--sa-shadow);margin-bottom:16px;
}
.card:last-child{margin-bottom:0}
.table-wrap{border:1px solid var(--sa-border);border-radius:var(--sa-radius);background:#fff;overflow-x:auto;box-shadow:var(--sa-shadow)}
table.table{width:100%;border-collapse:separate;border-spacing:0;min-width:600px;background:#fff}
table.table th,table.table td{padding:13px 14px;border-bottom:1px solid var(--sa-border);text-align:right;vertical-align:middle}
table.table thead th{background:#f8fafc;font-size:.9rem;font-weight:700;color:var(--sa-muted);position:sticky;top:0;z-index:1;white-space:nowrap}
table.table tbody tr:hover td{background:#f8fbff}
table.table tbody tr:last-child td{border-bottom:0}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:40px;padding:8px 18px;border-radius:12px;border:1px solid transparent;
  font-weight:700;font-size:.9rem;cursor:pointer;transition:all .15s ease;white-space:nowrap;
  background:linear-gradient(135deg,var(--sa-primary),var(--sa-primary-light));color:#fff;
  box-shadow:0 6px 16px rgba(37,99,235,.2);
}
.btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(37,99,235,.3)}
.btn.primary{background:linear-gradient(135deg,var(--sa-primary),var(--sa-primary-light));color:#fff}
.btn.danger{background:linear-gradient(135deg,#dc2626,#ef4444);color:#fff;box-shadow:0 6px 16px rgba(220,38,38,.15)}
.badge{
  display:inline-flex;align-items:center;justify-content:center;padding:.25rem .7rem;
  border-radius:999px;font-weight:700;font-size:.82rem;white-space:nowrap;
  background:rgba(37,99,235,.1);color:#1d4ed8;border:1px solid rgba(37,99,235,.2);
}
.badge.plan-free{background:rgba(100,116,139,.08);color:#475569;border:1px solid rgba(100,116,139,.15)}
.badge.plan-pro{background:rgba(37,99,235,.1);color:#1d4ed8;border:1px solid rgba(37,99,235,.2)}
.badge.plan-premium{background:rgba(234,179,8,.12);color:#a16207;border:1px solid rgba(234,179,8,.3)}
.muted{color:var(--sa-muted)}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}
.tab{
  padding:8px 16px;border-radius:999px;border:1px solid var(--sa-border);
  background:var(--sa-soft);font-weight:600;font-size:.88rem;cursor:pointer;transition:all .15s;
}
.tab:hover{background:var(--sa-card);border-color:var(--sa-primary)}
.tab.active{background:linear-gradient(135deg,var(--sa-primary),var(--sa-primary-light));color:#fff;border-color:transparent}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ltr{direction:ltr;display:inline-block}
.side-actions{display:grid;gap:8px;align-content:center}

/* ════════════════════ Desktop ════════════════════ */
@media(min-width:901px){
  .sa-sidebar-backdrop{display:none}
  .sa-header{min-height:72px;padding:14px 28px}
  .sa-container{padding:28px}
}

/* ════════════════════ Mobile / Tablet ════════════════════ */
@media(max-width:900px){
  .sa-layout,
  .sa-layout.sidebar-collapsed{
    grid-template-columns:1fr !important;
  }
  .sa-sidebar{
    position:fixed;
    right:0;top:0;
    width:min(82vw,300px);
    height:100dvh;
    transform:translateX(100%);
    opacity:0;
    pointer-events:none;
    box-shadow:-12px 0 30px rgba(2,6,23,.22);
  }
  body.sidebar-open-mobile .sa-sidebar{
    transform:translateX(0);
    opacity:1;
    pointer-events:auto;
  }
  .sa-layout.sidebar-collapsed .sa-sidebar{
    transform:translateX(100%);
    opacity:0;
    pointer-events:none;
  }

  .sa-header{padding:12px 14px;min-height:62px}
  .sa-header-brand strong{font-size:1rem}
  .sa-container{padding:14px}

  .sa-stats{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
  .sa-stat{padding:14px;gap:12px}
  .sa-stat-icon{width:42px;height:42px;font-size:1rem}
  .sa-stat-info .sa-stat-value{font-size:1.3rem}

  .sa-card{padding:16px;border-radius:14px}

  .sa-form-row{grid-template-columns:1fr}
  .sa-form-row.three-col{grid-template-columns:1fr}

  .sa-page-header{flex-direction:column;align-items:stretch}
  .sa-page-header h1{font-size:1.2rem}

  .sa-btn-block-mobile{width:100%}

  .sa-filters{flex-direction:column;gap:10px}
  .sa-filters .sa-form-group{width:100%}

  .sa-user-chip button{
    max-width:140px;overflow:hidden;
    white-space:nowrap;text-overflow:ellipsis;
    padding:8px 12px;
  }

  /* Compact the "back to main website" button to an icon on mobile so it
     doesn't crowd / overlap the plan badge in the header. */
  .sa-site-link{padding:0;width:42px;height:42px;justify-content:center;gap:0}
  .sa-site-link-text{display:none}

  /* The plan/subscription badge is shown prominently on the dashboard, so on
     narrow headers we hide it to prevent it colliding with the header actions. */
  .sa-header-brand .sa-badge{display:none}

  /* Tighten header spacing and let the school name truncate instead of
     shoving the action icons off the row. */
  .sa-header{gap:8px}
  .sa-header-actions{gap:6px}
  .sa-header-brand{min-width:0;flex:1 1 auto}
  .sa-header-brand strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  .sa-header-actions{flex:0 0 auto}

  /* Keep the profile dropdown and the notification panel inside the screen.
     Both are popovers anchored to a trigger near the screen edge, which on a
     phone pushed them past the viewport. Pin them just under the sticky header
     and cap their width to the viewport. */
  .sa-dropdown{
    position:fixed;
    top:68px;
    inset-inline-end:10px;inset-inline-start:auto;
    min-width:0;width:min(260px,calc(100vw - 20px));
    max-height:calc(100dvh - 84px);overflow-y:auto;
  }
  #sch-notif-panel,#teacher-notif-panel,#student-notif-panel{
    position:fixed !important;
    top:68px !important;
    left:10px !important;right:10px !important;
    width:auto !important;max-width:none !important;
  }

  .sa-modal{max-width:100%;padding:20px}
  .sa-auth-card{padding:24px 20px}

  .sa-plan-grid{grid-template-columns:repeat(2,1fr)}
  .sa-quick-actions{grid-template-columns:1fr}

  .row > *{flex:1 1 100%}
}

@media(max-width:400px){
  .sa-stats{grid-template-columns:1fr}
  .sa-plan-grid{grid-template-columns:1fr}
}

@media print{
  .sa-sidebar,.sa-header,.sa-sidebar-backdrop,.sa-footer,.no-print{display:none!important}
  .sa-layout{grid-template-columns:1fr!important}
  .sa-container{padding:0}
  .sa-card{box-shadow:none;border:1px solid #ddd}
}
