/*
 * SchoolOS Premium Light Theme v1.8.0
 * Frontend-only override layer. Keeps the proven app.css and backend markup intact.
 * Designed for Bootstrap 5.3 + Bootstrap Icons + vanilla JS.
 */
:root{
  --primary:var(--school-primary,#4F46E5);
  --primary-rgb:79,70,229;
  --primary-light:#EEF2FF;
  --blue:#3B82F6;
  --blue-light:#EFF6FF;
  --sky:#0EA5E9;
  --sky-light:#F0F9FF;
  --cyan:#06B6D4;
  --cyan-light:#ECFEFF;
  --green:#10B981;
  --green-light:#ECFDF5;
  --orange:#F59E0B;
  --orange-light:#FFFBEB;
  --red:#EF4444;
  --red-light:#FEF2F2;
  --pink:#EC4899;
  --pink-light:#FDF2F8;
  --purple:#8B5CF6;
  --purple-light:#F5F3FF;
  --background:#F6F8FC;
  --surface:#FFFFFF;
  --surface-muted:#F8FAFC;
  --text-primary:#1E293B;
  --text-secondary:#64748B;
  --text-soft:#94A3B8;
  --border:#E2E8F0;
  --border-strong:#CBD5E1;
  --radius-sm:8px;
  --radius-md:12px;
  --radius-lg:16px;
  --shadow-sm:0 1px 3px rgba(15,23,42,.06);
  --shadow-card:0 5px 18px rgba(15,23,42,.055);
  --shadow-pop:0 16px 38px rgba(15,23,42,.12);
  --sidebar-width:252px;
  --sidebar-collapsed:76px;
  --topbar-height:64px;
}

/* Base / typography */
html{background:var(--background)}
body.schoolos-ui{
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--text-primary);
  background:var(--background);
  font-size:.925rem;
  line-height:1.45;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.schoolos-ui::before{
  content:"";
  position:fixed;
  inset:0 0 auto 0;
  height:260px;
  background:linear-gradient(180deg,rgba(79,70,229,.035),transparent);
  pointer-events:none;
  z-index:-1;
}
a{text-underline-offset:2px}
.text-secondary{color:var(--text-secondary)!important}
.text-muted{color:var(--text-secondary)!important}
.small,small{line-height:1.45}
hr{border-color:var(--border);opacity:1}

/* Application shell */
.app-sidebar{
  width:var(--sidebar-width);
  background:#fff;
  border-right:1px solid var(--border);
  box-shadow:2px 0 12px rgba(15,23,42,.025);
  scrollbar-color:#CBD5E1 transparent;
  scrollbar-width:thin;
}
.app-sidebar::-webkit-scrollbar{width:5px}
.app-sidebar::-webkit-scrollbar-thumb{background:#CBD5E1;border-radius:999px}
.app-brand{
  height:auto;
  min-height:var(--topbar-height);
  padding:10px 14px!important;
  border-bottom:1px solid var(--border)!important;
  background:rgba(255,255,255,.98);
  backdrop-filter:none;
}
.app-brand .brand-logo{
  width:40px;
  height:40px;
  border:1px solid #DDE4EE;
  border-radius:12px;
  background:linear-gradient(145deg,#fff,var(--primary-light));
  box-shadow:var(--shadow-sm);
}
.app-brand .brand-logo img{width:30px;height:30px}
.app-brand-product{
  color:var(--text-primary);
  font-size:.9rem;
  font-weight:800;
  letter-spacing:-.015em;
  line-height:1.15;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.app-brand-school{
  display:block;
  color:var(--text-secondary);
  font-size:.68rem;
  font-weight:600;
  line-height:1.25;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  margin-top:3px;
}
.app-brand-role{
  display:inline-flex;
  margin-top:4px;
  padding:2px 6px;
  border-radius:999px;
  background:#F1F5F9;
  color:#64748B;
  font-size:.59rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.045em;
}
.app-sidebar nav{padding:10px 9px 28px}
.app-sidebar .nav-section{
  padding:18px 9px 6px;
  color:#94A3B8;
  font-size:.61rem;
  letter-spacing:.095em;
  font-weight:800;
}
.app-sidebar .nav-link{
  min-height:40px;
  margin:2px 0;
  padding:.58rem .68rem;
  gap:10px;
  border-radius:10px;
  color:#475569;
  font-size:.84rem;
  font-weight:600;
  box-shadow:none!important;
  border:1px solid transparent;
  transition:background-color .15s ease,color .15s ease,border-color .15s ease;
}
.app-sidebar .nav-link i{
  width:20px;
  height:20px;
  display:grid;
  place-items:center;
  font-size:.98rem;
  color:#64748B;
  margin:0!important;
}
.app-sidebar .nav-link:hover{
  background:#F8FAFC;
  color:#334155;
  border-color:#EDF2F7;
}
.app-sidebar .nav-link:hover i{color:var(--primary)}
.app-sidebar .nav-link.active{
  background:var(--primary-light);
  color:var(--primary);
  border-color:#E0E7FF;
  box-shadow:none!important;
}
.app-sidebar .nav-link.active::before{
  content:"";
  width:3px;
  height:20px;
  border-radius:99px;
  background:var(--primary);
  margin-left:-7px;
  margin-right:4px;
  flex:0 0 auto;
}
.app-sidebar .nav-link.active i{color:var(--primary)}
.app-main{margin-left:var(--sidebar-width)}
.topbar{
  min-height:var(--topbar-height);
  height:var(--topbar-height);
  padding:0 20px!important;
  background:rgba(255,255,255,.96);
  border-bottom:1px solid var(--border);
  backdrop-filter:blur(8px);
  box-shadow:0 1px 2px rgba(15,23,42,.02);
}
.content-wrap{padding:20px 22px 28px;max-width:1920px}
.sidebar-backdrop{background:rgba(15,23,42,.38);backdrop-filter:blur(1px)}

/* Top navigation */
.topbar .btn-icon{
  width:38px;
  height:38px;
  border-radius:10px;
  border:1px solid var(--border);
  background:#fff;
  color:#475569;
  box-shadow:none;
}
.topbar .btn-icon:hover{background:var(--primary-light);color:var(--primary);border-color:#C7D2FE}
.topbar-context{min-width:0;max-width:260px}
.topbar-page-title{display:block;font-size:.82rem;font-weight:750;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar-page-kicker{display:block;color:#94A3B8;font-size:.62rem;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.navbar-search{max-width:420px}
.navbar-search .form-control{
  min-height:38px;
  border-radius:10px;
  border-color:var(--border);
  background:#F8FAFC;
  font-size:.82rem;
  box-shadow:none;
}
.navbar-search .form-control:focus{background:#fff;border-color:#C7D2FE;box-shadow:0 0 0 3px rgba(79,70,229,.08)}
.session-chip{
  min-height:34px;
  padding:.32rem .62rem;
  border:1px solid var(--border);
  background:#F8FAFC;
  color:#475569;
  font-size:.7rem;
}
.profile-button{border-radius:10px!important;padding:.22rem .42rem!important;box-shadow:none!important}
.profile-avatar{width:32px;height:32px;border-radius:9px;background:var(--primary-light);color:var(--primary)}
.profile-name .small{font-size:.74rem}

/* Page header */
.page-head{
  margin-bottom:16px!important;
  padding:0 1px 14px;
  border-bottom:1px solid rgba(226,232,240,.9);
}
.page-title{
  font-size:1.48rem!important;
  font-weight:790!important;
  letter-spacing:-.028em;
  line-height:1.2;
  color:#172033!important;
}
.page-description{margin:.25rem 0 0;color:var(--text-secondary);font-size:.8rem}
.breadcrumb{font-size:.7rem!important}
.breadcrumb a{color:#64748B}
.breadcrumb-item.active{color:#94A3B8}
.page-head .btn{white-space:nowrap}

/* Cards and reusable content surfaces */
.card{
  border:1px solid var(--border)!important;
  border-radius:var(--radius-md)!important;
  background:#fff;
  box-shadow:var(--shadow-sm)!important;
  overflow:visible;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.card:hover{box-shadow:var(--shadow-card)!important}
.card-header{
  padding:.86rem 1rem;
  background:#fff;
  border-bottom:1px solid var(--border);
  border-radius:var(--radius-md) var(--radius-md) 0 0!important;
}
.card-body{padding:1rem}
.card-footer{background:#fff;border-top:1px solid var(--border);padding:.78rem 1rem}
.card-title,.card-body>.h5,.card-body>h2.h5,.card-body>h3.h5{color:#273449;font-weight:760;letter-spacing:-.012em}
.section-heading{margin-bottom:12px}
.section-heading h2{font-size:.98rem;font-weight:780;color:#263247}
.section-heading p{font-size:.73rem;color:var(--text-secondary);margin-top:2px}

/* KPI / dashboard cards */
.stat-grid{gap:11px}
.stat-card{
  min-height:116px;
  border-radius:13px!important;
  border:1px solid rgba(var(--card-accent),.16)!important;
  background:#fff!important;
  box-shadow:var(--shadow-sm)!important;
  backdrop-filter:none!important;
  transform:none!important;
}
.stat-card::before{height:3px;background:rgba(var(--card-accent),.9)}
.stat-card::after{display:none!important}
.stat-card:hover{border-color:rgba(var(--card-accent),.34)!important;box-shadow:0 7px 20px rgba(var(--card-accent),.09)!important}
.stat-card-main{padding:13px 14px;gap:11px}
.stat-card-icon{width:38px;height:38px;border-radius:10px;font-size:1rem;box-shadow:none!important}
.stat-card-label{font-size:.7rem;font-weight:700;color:#64748B}
.stat-card-value{font-size:1.24rem;font-weight:800;letter-spacing:-.025em;margin-top:3px}
.stat-card-meta{font-size:.65rem;margin-top:3px}
.stat-card-footer{padding:7px 14px;background:#FBFCFE!important;border-top:1px solid #F1F5F9;font-size:.68rem}
.tone-primary{background:var(--primary-light)!important;color:var(--primary)!important}
.tone-secondary{background:#F0FDFA!important;color:#0F766E!important}
.tone-success{background:var(--green-light)!important;color:#059669!important}
.tone-warning{background:var(--orange-light)!important;color:#B45309!important}
.tone-danger{background:var(--red-light)!important;color:#DC2626!important}
.tone-slate{background:#F1F5F9!important;color:#475569!important}
.quick-actions-grid{gap:9px}
.quick-action-card{
  min-height:68px;
  padding:10px 11px;
  border-radius:11px;
  border:1px solid var(--border)!important;
  background:#fff!important;
  box-shadow:none!important;
  transform:none!important;
}
.quick-action-card:hover{border-color:rgba(var(--card-accent),.28)!important;background:rgba(var(--card-accent),.035)!important;box-shadow:var(--shadow-sm)!important}
.quick-action-icon{width:36px;height:36px;border-radius:10px;font-size:.92rem}
.quick-action-copy strong{font-size:.79rem;font-weight:740}
.quick-action-copy small{font-size:.64rem;margin-top:2px}
.quick-action-arrow{font-size:.7rem}
.chart-wrap{min-height:290px;max-height:330px}

/* Forms */
.form-label{font-size:.78rem;font-weight:700;color:#334155;margin-bottom:.34rem}
.form-control,.form-select,.input-group-text{
  min-height:42px;
  border-radius:9px;
  border-color:#D7E0EA;
  background-color:#fff;
  font-size:.86rem;
  color:#1E293B;
}
.form-control::placeholder{color:#A1ADBD}
.form-control:hover,.form-select:hover{border-color:#C5D0DE}
.form-control:focus,.form-select:focus{
  border-color:#A5B4FC;
  box-shadow:0 0 0 3px rgba(79,70,229,.09);
}
.form-control[type=file]{padding:.48rem .65rem}
.form-control[type=file]::file-selector-button{border:0;border-right:1px solid var(--border);background:#F8FAFC;color:#475569;margin:-.48rem .65rem -.48rem -.65rem;padding:.55rem .72rem;font-weight:650}
.form-check-input:checked{background-color:var(--primary);border-color:var(--primary)}
textarea.form-control{min-height:88px}
fieldset,.form-section{border-radius:12px}
.invalid-feedback{font-size:.72rem}
.form-text{font-size:.7rem}

/* Buttons */
.btn{
  min-height:38px;
  border-radius:9px;
  font-size:.82rem;
  font-weight:700;
  box-shadow:none!important;
  transition:background-color .14s ease,border-color .14s ease,color .14s ease,transform .14s ease;
}
.btn:hover:not(:disabled){transform:translateY(-1px)}
.btn-sm{min-height:31px;padding:.3rem .58rem;font-size:.72rem;border-radius:8px}
.btn-lg{min-height:46px;border-radius:11px}
.btn-primary{--bs-btn-bg:var(--primary);--bs-btn-border-color:var(--primary);--bs-btn-hover-bg:#4338CA;--bs-btn-hover-border-color:#4338CA;--bs-btn-active-bg:#3730A3;--bs-btn-active-border-color:#3730A3}
.btn-outline-primary{--bs-btn-color:var(--primary);--bs-btn-border-color:#C7D2FE;--bs-btn-hover-bg:var(--primary-light);--bs-btn-hover-border-color:#A5B4FC;--bs-btn-hover-color:#4338CA}
.btn-outline-secondary{--bs-btn-color:#475569;--bs-btn-border-color:#CBD5E1;--bs-btn-hover-bg:#F8FAFC;--bs-btn-hover-border-color:#94A3B8;--bs-btn-hover-color:#334155}
.btn-outline-success{--bs-btn-color:#059669;--bs-btn-border-color:#A7F3D0;--bs-btn-hover-bg:#ECFDF5;--bs-btn-hover-border-color:#6EE7B7;--bs-btn-hover-color:#047857}
.btn-outline-danger{--bs-btn-color:#DC2626;--bs-btn-border-color:#FECACA;--bs-btn-hover-bg:#FEF2F2;--bs-btn-hover-border-color:#FCA5A5;--bs-btn-hover-color:#B91C1C}
.btn-icon{display:inline-grid;place-items:center}
.btn-group>.btn{transform:none!important}

/* Tables and pagination */
.table-responsive{
  border:1px solid var(--border)!important;
  border-radius:11px!important;
  background:#fff;
  box-shadow:none!important;
  scrollbar-color:#CBD5E1 transparent;
}
.table-responsive::-webkit-scrollbar{height:7px}
.table-responsive::-webkit-scrollbar-thumb{background:#CBD5E1;border-radius:999px}
.table{margin-bottom:0;font-size:.82rem;color:#334155}
.table>:not(caption)>*>*{padding:.67rem .72rem;border-bottom-color:#EEF2F7}
.table thead th{
  padding-top:.62rem;
  padding-bottom:.62rem;
  background:#F8FAFC!important;
  color:#64748B;
  font-size:.655rem;
  font-weight:800;
  letter-spacing:.045em;
  text-transform:uppercase;
  border-bottom:1px solid var(--border)!important;
}
.table tbody tr{transition:background-color .12s ease}
.table tbody tr:hover{background:#FAFBFF}
.table tbody tr:last-child td{border-bottom:0}
.table td strong{color:#263247}
.table a{text-decoration:none;font-weight:650}
.table-tools{gap:8px!important;margin-bottom:10px!important}
.table-live-search .form-control{background:#fff!important;border-color:#D7E0EA;min-height:34px!important}
.table-pager{padding-top:10px;margin-top:0!important;border-top:0!important}
.pagination{--bs-pagination-border-color:#D7E0EA;--bs-pagination-color:#475569;--bs-pagination-hover-bg:#F8FAFC;--bs-pagination-active-bg:var(--primary);--bs-pagination-active-border-color:var(--primary);gap:3px}
.page-link{border-radius:7px!important;font-size:.75rem}

/* Badges / statuses */
.badge{
  border-radius:999px;
  padding:.38em .62em;
  font-size:.66rem;
  font-weight:750;
  letter-spacing:.01em;
}
.text-bg-success{background-color:#D1FAE5!important;color:#047857!important}
.text-bg-danger{background-color:#FEE2E2!important;color:#B91C1C!important}
.text-bg-warning{background-color:#FEF3C7!important;color:#92400E!important}
.text-bg-info{background-color:#E0F2FE!important;color:#0369A1!important}
.text-bg-primary{background-color:#E0E7FF!important;color:#4338CA!important}
.text-bg-secondary{background-color:#E2E8F0!important;color:#475569!important}
.text-bg-light{background:#F1F5F9!important;color:#475569!important}

/* Tabs / nav pills */
.nav-tabs{border-bottom:1px solid var(--border);gap:3px}
.nav-tabs .nav-link{border:0;border-bottom:2px solid transparent;border-radius:8px 8px 0 0;color:#64748B;font-weight:650;font-size:.8rem;padding:.62rem .78rem}
.nav-tabs .nav-link:hover{background:#F8FAFC;color:#334155}
.nav-tabs .nav-link.active{color:var(--primary);background:var(--primary-light);border-bottom-color:var(--primary)}
.nav-pills .nav-link{border-radius:9px;color:#64748B;font-size:.8rem;font-weight:650}
.nav-pills .nav-link.active{background:var(--primary);color:#fff}

/* Dropdowns, modals, alerts, toasts */
.dropdown-menu{border:1px solid var(--border);border-radius:11px;box-shadow:var(--shadow-pop);padding:.4rem;min-width:190px}
.dropdown-item{border-radius:7px;padding:.5rem .62rem;font-size:.8rem;color:#475569}
.dropdown-item:hover,.dropdown-item:focus{background:var(--primary-light);color:var(--primary)}
.modal-content{border:1px solid var(--border);border-radius:15px;box-shadow:0 26px 70px rgba(15,23,42,.18);overflow:hidden}
.modal-header,.modal-footer{border-color:var(--border);padding:.85rem 1rem;background:#fff}
.modal-body{padding:1rem}
.modal-title{font-size:1rem;font-weight:780;color:#263247}
.alert{border-radius:10px;padding:.72rem .86rem;font-size:.8rem;border-width:1px;box-shadow:none}
.alert-success{background:#ECFDF5;border-color:#A7F3D0;color:#065F46}
.alert-danger{background:#FEF2F2;border-color:#FECACA;color:#991B1B}
.alert-warning{background:#FFFBEB;border-color:#FDE68A;color:#92400E}
.alert-info{background:#EFF6FF;border-color:#BFDBFE;color:#1E40AF}
.toast{border-radius:11px!important;box-shadow:var(--shadow-pop)!important}

/* Lists / empty states */
.list-group-item{border-color:#EEF2F7;padding:.72rem 0}
.list-group-item-action:hover{background:#FAFBFF}
.empty-state{padding:28px 14px!important;min-height:140px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.empty-state-icon{width:44px;height:44px;border-radius:12px;background:#F1F5F9;color:#94A3B8;font-size:1.1rem;margin-bottom:10px}
.empty-state h3{font-size:.92rem;font-weight:760;color:#334155}
.empty-state p{font-size:.75rem;max-width:460px}

/* Finance / report surfaces */
.report-print-shell{border-radius:12px!important;border:1px solid var(--border)!important;box-shadow:var(--shadow-sm)!important;padding:20px!important}
.report-summary-card{border-radius:11px!important;box-shadow:none!important;background:#fff!important;border-color:var(--border)!important;padding:11px 13px!important}
.report-summary-card span{font-size:.66rem!important}
.report-summary-card strong{font-size:1.05rem!important}

/* Timetable / attendance dense interfaces */
.table.attendance-table td,.table.attendance-table th{padding:.5rem .55rem}
.table input.form-control,.table select.form-select{min-height:34px;font-size:.78rem}
.table .btn{white-space:nowrap}

/* AI dock harmonized with the shell */
.ai-dock-launch{width:54px;height:54px;border-radius:16px;background:var(--primary)!important;box-shadow:0 12px 30px rgba(79,70,229,.28)!important}
.ai-dock-panel{border-radius:16px!important;border-color:var(--border)!important;box-shadow:0 24px 64px rgba(15,23,42,.2)!important}
.ai-dock-head{background:#fff!important;padding:12px 14px!important}
.ai-dock-head .icon{background:var(--primary)!important;border-radius:10px!important}
.ai-dock-messages{background:#F8FAFC!important}
.ai-dock-bubble{border-radius:12px!important;box-shadow:none!important}
.ai-dock-message.user .ai-dock-bubble{background:var(--primary)!important}
.ai-dock-suggest button{border-radius:999px!important;background:#fff!important}

/* Global operation progress: quiet and lightweight */
.app-progress{height:2px!important}
.app-progress-track{height:2px!important}
.app-progress-label{font-size:9px!important;box-shadow:none!important;background:#334155!important}

/* Footer */
.app-footer{padding:12px 22px;border-top:1px solid var(--border);background:#fff;color:#94A3B8;font-size:.68rem}

/* Login */
body.schoolos-login{
  min-height:100vh;
  background:#F6F8FC;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  color:var(--text-primary);
}
body.schoolos-login::before{
  content:"";
  position:fixed;
  width:420px;
  height:420px;
  border-radius:50%;
  background:rgba(79,70,229,.06);
  top:-220px;
  right:-150px;
  pointer-events:none;
}
.login-shell{width:min(920px,100%)}
.login-card-modern{border:1px solid var(--border);border-radius:18px;background:#fff;box-shadow:0 18px 50px rgba(15,23,42,.09);overflow:hidden}
.login-brand-panel{height:100%;min-height:520px;padding:42px;background:#F8FAFC;border-right:1px solid var(--border);display:flex;flex-direction:column;justify-content:space-between}
.login-brand-mark{width:58px;height:58px;border-radius:16px;display:grid;place-items:center;background:var(--primary-light);color:var(--primary);font-size:1.45rem;border:1px solid #E0E7FF}
.login-school-logo{width:78px;height:78px;border-radius:16px;object-fit:contain;background:#fff;border:1px solid var(--border);padding:8px}
.login-product{font-size:1.6rem;font-weight:820;letter-spacing:-.035em;color:#172033;margin-top:18px}
.login-tagline{color:#64748B;font-size:.86rem;max-width:320px;margin-top:7px}
.login-school-name{font-size:.78rem;font-weight:700;color:#475569;margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}
.login-feature-list{display:grid;gap:9px;margin-top:28px}
.login-feature{display:flex;align-items:center;gap:9px;color:#64748B;font-size:.75rem}
.login-feature i{width:28px;height:28px;border-radius:8px;background:#fff;border:1px solid var(--border);display:grid;place-items:center;color:var(--primary)}
.login-form-panel{padding:44px 48px;display:flex;flex-direction:column;justify-content:center;min-height:520px}
.login-form-title{font-size:1.45rem;font-weight:800;letter-spacing:-.025em;color:#172033}
.login-form-subtitle{font-size:.8rem;color:#64748B;margin-bottom:24px}
.login-footer-note{font-size:.66rem;color:#94A3B8;text-align:center;margin-top:22px}

/* Accessibility */
:focus-visible{outline:3px solid rgba(79,70,229,.2)!important;outline-offset:2px}
.skip-link{border:1px solid var(--border);font-weight:700;font-size:.78rem}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}

/* Responsive layout */
@media(min-width:1600px){
  .stat-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
  .quick-actions-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
}
@media(min-width:1200px) and (max-width:1599.98px){
  .stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .quick-actions-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media(max-width:1199.98px){
  .topbar-context{max-width:180px}
  .stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .quick-actions-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:991.98px){
  .app-sidebar{width:min(88vw,290px);box-shadow:18px 0 42px rgba(15,23,42,.14)}
  .content-wrap{padding:17px}
  .topbar{padding:0 14px!important}
  .topbar-context{max-width:220px}
  .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .quick-actions-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .login-brand-panel{min-height:auto;border-right:0;border-bottom:1px solid var(--border);padding:28px}
  .login-form-panel{min-height:auto;padding:32px}
}
@media(max-width:767.98px){
  .content-wrap{padding:14px}
  .page-head{padding-bottom:12px;margin-bottom:14px!important}
  .page-title{font-size:1.28rem!important}
  .topbar-context{display:flex!important;flex-direction:column;max-width:160px}
  .navbar-search{display:none!important}
  .quick-actions-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .card-body{padding:.9rem}
  .table>:not(caption)>*>*{padding:.6rem .62rem}
  .chart-wrap{min-height:235px}
  .modal-dialog{margin:.6rem}
  .modal-content{border-radius:13px}
}
@media(max-width:575.98px){
  body.schoolos-ui{font-size:.89rem}
  .topbar{height:58px;min-height:58px;gap:6px!important}
  .app-brand{min-height:58px}
  .content-wrap{padding:12px}
  .page-head{gap:8px!important}
  .page-head>div:first-child{min-width:0;flex:1}
  .page-head .btn{min-height:34px;padding:.3rem .55rem;font-size:.72rem}
  .breadcrumb{display:none}
  .stat-grid{grid-template-columns:1fr 1fr;gap:8px}
  .stat-card{min-height:108px}
  .stat-card-main{padding:11px;gap:8px}
  .stat-card-icon{width:34px;height:34px}
  .stat-card-value{font-size:1.04rem}
  .stat-card-footer{padding:6px 11px}
  .quick-action-card{min-height:62px;padding:8px}
  .quick-action-icon{width:33px;height:33px}
  .quick-action-copy small{display:none}
  .section-heading{align-items:flex-start}
  .section-heading h2{font-size:.92rem}
  .table{font-size:.78rem}
  .table-responsive{border-radius:9px!important}
  .app-footer{padding:10px 12px;text-align:center;justify-content:center!important}
  .login-form-panel{padding:26px 20px}
  .login-product{font-size:1.35rem}
  body.schoolos-login{padding:12px}
}
@media(max-width:359.98px){
  .stat-grid,.quick-actions-grid{grid-template-columns:1fr}
  .topbar-page-kicker{display:none}
  .topbar-context{max-width:125px}
}

/* Collapsed desktop sidebar */
@media(min-width:992px){
  body.sidebar-collapsed .app-sidebar{width:var(--sidebar-collapsed)}
  body.sidebar-collapsed .app-main{margin-left:var(--sidebar-collapsed)}
  body.sidebar-collapsed .app-brand{padding:10px!important;justify-content:center!important}
  body.sidebar-collapsed .app-brand-copy{display:none!important}
  body.sidebar-collapsed .app-sidebar .nav-link{justify-content:center;padding:.55rem .4rem;font-size:0}
  body.sidebar-collapsed .app-sidebar .nav-link i{font-size:1rem}
  body.sidebar-collapsed .app-sidebar .nav-link.active::before{display:none}
}

/* Keep premium print/PDF behavior isolated from screen theme. */
@media print{
  body.schoolos-ui::before{display:none!important}
  .app-sidebar,.topbar,.sidebar-backdrop,.app-footer{display:none!important}
  .card{box-shadow:none!important}
  .btn{transform:none!important}
}

/* v1.8.1-dev responsive hardening: loaded after app.css, so keep these final overrides here. */
@media(max-width:991.98px){
  .app-main,body.sidebar-collapsed .app-main{margin-left:0!important;left:0!important;width:100%!important;max-width:100%!important;min-width:0!important;transform:none!important}
  .topbar,.content-wrap,.app-footer{width:100%!important;max-width:100%!important;min-width:0!important}
}
@media(max-width:479.98px){.stat-grid{grid-template-columns:1fr!important}}
@media(max-width:420px){.quick-actions-grid{grid-template-columns:1fr!important}}

/* v1.8.2-dev responsive + interaction hardening */
body.sidebar-open{overflow:hidden}
.content-wrap,.card,.card-body,.row>*{min-width:0}
.page-actions{max-width:100%}
.table-responsive{max-width:100%;-webkit-overflow-scrolling:touch}
.table-tools,.table-pager{max-width:100%}
.table-live-search{min-width:min(260px,100%)}
.dropdown-menu form .dropdown-item{width:100%;text-align:left;background:transparent;border:0}

@media(max-width:575.98px){
  .page-actions{width:100%}
  .page-actions>.btn,.page-actions>form{max-width:100%}
  .table-tools{align-items:stretch!important}
  .table-tools>div:first-child{width:100%}
  .table-live-search{width:100%;min-width:0}
  .table-tools>.btn-group{width:100%;margin-left:0!important}
  .table-tools>.btn-group>.btn{flex:1 1 0}
  .table-pager{align-items:center!important}
  .table-pager>small{width:100%}
  .table-pager>div{width:100%;justify-content:space-between}
  .card-header,.card-body{min-width:0}
}
