/* --- Multi-School ERP Production Design System Tokens --- */
:root {
  --bg-app: #F3F4F6;
  --bg-surface: #FFFFFF;
  --bg-subtle: #F8FAFC;
  --text-main: #1F2937;
  --text-dark: #0F172A;
  --text-muted: #64748B;
  --border-color: #E2E8F0;
  
  --sidebar-bg: #1B1B1B;
  --sidebar-strip: #151515;
  --sidebar-active-gold-bg: #2A261D;
  --sidebar-text: #94A3B8;
  --sidebar-text-hover: #F8FAFC;
  
  --gold: #C5A059;
  --gold-light: #E8C57A;
  --gold-dark: #A88237;
  
  --blue: #1D4ED8;
  --blue-deep: #1E40AF;
  --blue-navy: #1E3A8A;
  
  --purple: #5B21B6;
  --purple-light: #7C3AED;
  
  --green: #2E7D32;
  --green-subtle: #ECFDF5;
  --red: #8B0000;
  --red-subtle: #FEF2F2;
  --teal: #0D9488;
  --amber: #D97706;
}

body.dark-theme {
  --bg-app: #0F172A;
  --bg-surface: #1E293B;
  --bg-subtle: #334155;
  --text-main: #E2E8F0;
  --text-dark: #F8FAFC;
  --text-muted: #94A3B8;
  --border-color: #334155;
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  background-color: var(--bg-app);
  color: var(--text-main);
  font-size: 13px;
  line-height: 1.4;
  -webkit-font-smoothing: antialiased;
}

/* Layout Shell */
.app-container {
  display: flex;
  min-height: 100vh;
}

/* Sidebar */
.sidebar {
  width: 256px;
  background-color: var(--sidebar-bg);
  color: var(--sidebar-text);
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  transition: width 0.2s ease;
  z-index: 50;
}

.sidebar.collapsed {
  width: 64px;
}

.sidebar-header {
  height: 64px;
  background-color: var(--sidebar-strip);
  display: flex;
  align-items: center;
  padding: 0 16px;
  border-bottom: 1px solid #262626;
}

.school-brand-box {
  display: flex;
  align-items: center;
  gap: 12px;
  overflow: hidden;
  text-decoration: none;
}

.school-logo-img {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1.5px solid var(--gold);
  object-fit: cover;
  background: #FFF;
  flex-shrink: 0;
}

.school-logo-placeholder {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1.5px solid var(--gold);
  background: #262626;
  color: var(--gold);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  font-size: 14px;
  flex-shrink: 0;
}

.school-info-text {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.school-name-text {
  color: #FFF;
  font-weight: 700;
  font-size: 11px;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: 0.5px;
}

.school-sub-text {
  color: var(--gold);
  font-size: 9.5px;
  text-transform: uppercase;
  font-weight: 600;
  letter-spacing: 0.5px;
}

.sidebar-nav {
  flex: 1;
  overflow-y: auto;
  padding: 12px 8px;
}

.nav-group-label {
  font-size: 9.5px;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  color: #64748B;
  font-weight: 700;
  padding: 12px 10px 4px 10px;
}

.nav-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 6px;
  color: var(--sidebar-text);
  text-decoration: none;
  font-size: 12px;
  font-weight: 500;
  margin-bottom: 2px;
  transition: all 0.15s ease;
  cursor: pointer;
}

.nav-item:hover {
  background-color: #262626;
  color: #FFF;
}

.nav-item.active {
  background-color: var(--gold);
  color: #0F172A;
  font-weight: 700;
}

.nav-item.parent-active {
  background-color: var(--sidebar-active-gold-bg);
  color: var(--gold);
  border: 1px solid rgba(197, 160, 89, 0.3);
}

.nav-icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.nav-item .chevron {
  margin-left: auto;
  font-size: 10px;
  transition: transform 0.2s;
}

.nav-item.expanded .chevron {
  transform: rotate(90deg);
}

.submenu {
  margin-left: 14px;
  padding-left: 10px;
  border-left: 1px solid #333;
  margin-top: 2px;
  margin-bottom: 6px;
  display: none;
}

.submenu.show {
  display: block;
}

.submenu-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  color: #94A3B8;
  text-decoration: none;
  font-size: 11px;
  border-radius: 4px;
  margin-bottom: 2px;
}

.submenu-item:hover {
  color: #FFF;
  background-color: #262626;
}

.submenu-item.active {
  color: var(--gold-light);
  background-color: rgba(197, 160, 89, 0.15);
  font-weight: 600;
}

/* Main Content Area */
.main-wrapper {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
}

/* Header */
.top-header {
  height: 64px;
  background-color: var(--bg-surface);
  border-bottom: 1px solid var(--border-color);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 24px;
  position: sticky;
  top: 0;
  z-index: 40;
}

.header-left {
  display: flex;
  align-items: center;
  gap: 16px;
}

.sidebar-toggle-btn {
  background: none;
  border: none;
  font-size: 18px;
  cursor: pointer;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  justify-content: center;
}

.school-capsule-pill {
  background-color: var(--blue);
  color: #FFF;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 20px;
  display: flex;
  align-items: center;
  gap: 6px;
  letter-spacing: 0.3px;
  box-shadow: 0 1px 2px rgba(29, 78, 216, 0.2);
}

.header-center {
  flex: 1;
  max-width: 480px;
  margin: 0 24px;
}

.search-box {
  position: relative;
  width: 100%;
}

.search-input {
  width: 100%;
  height: 34px;
  background-color: var(--bg-app);
  border: 1px solid var(--border-color);
  border-radius: 6px;
  padding: 0 36px 0 12px;
  font-size: 12px;
  color: var(--text-main);
  outline: none;
}

.search-input:focus {
  border-color: var(--blue);
  background-color: var(--bg-surface);
}

.header-right {
  display: flex;
  align-items: center;
  gap: 14px;
}

.header-icon-btn {
  background: none;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-muted);
  cursor: pointer;
}

.header-icon-btn:hover {
  background-color: var(--bg-subtle);
  color: var(--text-dark);
}

.user-profile-btn {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 6px;
  border: 1px solid transparent;
}

.user-profile-btn:hover {
  background-color: var(--bg-subtle);
  border-color: var(--border-color);
}

.user-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--blue);
  color: #FFF;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
}

.user-meta {
  display: flex;
  flex-direction: column;
}

.user-name {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-dark);
}

.user-role-badge {
  font-size: 10px;
  color: var(--text-muted);
  text-transform: capitalize;
}

/* Page Content */
.content-body {
  flex: 1;
  overflow-y: auto;
  padding: 24px 32px;
}

/* Page Header */
.page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
  flex-wrap: wrap;
  gap: 12px;
}

.page-title-group {
  display: flex;
  flex-direction: column;
}

.page-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--text-dark);
  display: flex;
  align-items: center;
  gap: 8px;
}

.page-subtitle {
  font-size: 11px;
  color: var(--text-muted);
  margin-top: 2px;
}

.action-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 32px;
  padding: 0 12px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  border: 1px solid transparent;
  transition: all 0.15s;
}

.btn-primary {
  background-color: var(--blue);
  color: #FFF;
}
.btn-primary:hover { background-color: var(--blue-deep); }

.btn-gold {
  background-color: var(--gold);
  color: #0F172A;
}
.btn-gold:hover { background-color: var(--gold-dark); color: #FFF; }

.btn-purple {
  background-color: var(--purple);
  color: #FFF;
}
.btn-purple:hover { background-color: var(--purple-light); }

.btn-success {
  background-color: var(--green);
  color: #FFF;
}
.btn-success:hover { opacity: 0.9; }

.btn-danger {
  background-color: var(--red);
  color: #FFF;
}
.btn-danger:hover { opacity: 0.9; }

.btn-teal {
  background-color: var(--teal);
  color: #FFF;
}
.btn-teal:hover { opacity: 0.9; }

.btn-secondary {
  background-color: var(--bg-surface);
  border-color: var(--border-color);
  color: var(--text-main);
}
.btn-secondary:hover { background-color: var(--bg-subtle); }

/* KPI / Stat Cards */
.kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}

.kpi-card {
  background-color: var(--bg-surface);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 16px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(0,0,0,0.03);
}

.kpi-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 4px;
}

.kpi-blue::before { background-color: var(--blue); }
.kpi-gold::before { background-color: var(--gold); }
.kpi-green::before { background-color: var(--green); }
.kpi-red::before { background-color: var(--red); }
.kpi-purple::before { background-color: var(--purple); }

.kpi-label {
  font-size: 10px;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--text-muted);
  letter-spacing: 0.5px;
}

.kpi-value {
  font-size: 24px;
  font-weight: 700;
  color: var(--text-dark);
  margin-top: 4px;
}

.kpi-sub {
  font-size: 10.5px;
  color: var(--text-muted);
  margin-top: 2px;
}

/* Cards & Panels */
.card {
  background-color: var(--bg-surface);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 20px;
  margin-bottom: 20px;
  box-shadow: 0 1px 2px rgba(0,0,0,0.02);
}

.card-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--text-dark);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border-bottom: 1px solid var(--border-color);
  padding-bottom: 8px;
  margin-bottom: 16px;
}

/* Dense Forms */
.form-grid-4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

.form-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.form-grid-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.form-group.col-span-2 { grid-column: span 2; }
.form-group.col-span-3 { grid-column: span 3; }
.form-group.col-span-4 { grid-column: span 4; }

.form-label {
  font-size: 11px;
  font-weight: 600;
  color: var(--text-dark);
}

.form-control {
  height: 34px;
  padding: 0 10px;
  border: 1px solid var(--border-color);
  border-radius: 5px;
  font-size: 12px;
  background-color: var(--bg-surface);
  color: var(--text-main);
  outline: none;
}

.form-control:focus {
  border-color: var(--blue);
  box-shadow: 0 0 0 2px rgba(29, 78, 216, 0.15);
}

/* Tables */
.table-container {
  background-color: var(--bg-surface);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  overflow-x: auto;
  margin-bottom: 20px;
}

.data-table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
  font-size: 12px;
}

.data-table th {
  background-color: var(--bg-subtle);
  color: var(--text-muted);
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  padding: 10px 14px;
  border-bottom: 1px solid var(--border-color);
  letter-spacing: 0.5px;
}

.data-table td {
  padding: 10px 14px;
  border-bottom: 1px solid var(--border-color);
  color: var(--text-main);
}

.data-table tr:hover {
  background-color: var(--bg-subtle);
}

/* Badges */
.badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}

.badge-success { background-color: #DEF7EC; color: #03543F; }
.badge-danger { background-color: #FDE8E8; color: #9B1C1C; }
.badge-warning { background-color: #FEF08A; color: #854D0E; }
.badge-info { background-color: #E1EFFE; color: #1E429F; }

/* Filter Toolbar */
.filter-toolbar {
  background-color: var(--bg-surface);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 12px 16px;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

/* Modal Dialog */
.modal-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(15, 23, 42, 0.75);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  padding: 16px;
}

.modal-card {
  background-color: var(--bg-surface);
  border-radius: 10px;
  width: 100%;
  max-width: 650px;
  border: 1px solid var(--border-color);
  box-shadow: 0 20px 25px -5px rgba(0,0,0,0.3);
  overflow: hidden;
}

.modal-header {
  padding: 14px 20px;
  background-color: var(--bg-subtle);
  border-bottom: 1px solid var(--border-color);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.modal-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--text-dark);
}

.modal-body {
  padding: 20px;
  max-height: 75vh;
  overflow-y: auto;
}

.modal-footer {
  padding: 12px 20px;
  background-color: var(--bg-subtle);
  border-top: 1px solid var(--border-color);
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

/* Toast Messages */
.toast-container {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 2000;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.toast {
  background: #0F172A;
  color: #FFF;
  padding: 10px 16px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 500;
  box-shadow: 0 4px 6px -1px rgba(0,0,0,0.2);
}

/* Print CSS */
@media print {
  body {
    background: #FFF !important;
    color: #000 !important;
  }
  .sidebar, .top-header, .filter-toolbar, .action-bar, .modal-backdrop, .toast-container {
    display: none !important;
  }
  .main-wrapper, .content-body {
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
  }
  .card, .table-container {
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
  }
}

@media (max-width: 768px) {
  .sidebar {
    position: fixed;
    height: 100vh;
    left: -256px;
  }
  .sidebar.mobile-open {
    left: 0;
  }
  .form-grid-4, .form-grid-3, .form-grid-2 {
    grid-template-columns: 1fr;
  }
  .content-body {
    padding: 16px;
  }
  .top-header {
    padding: 0 16px;
  }
}


/* --- Taleem-inspired navigation shell, preserving this ERP's current design language --- */
.sidebar-search-wrap { padding: 6px 10px 8px; }
.sidebar-search {
  width: 100%; height: 32px; border-radius: 6px; border: 1px solid #333;
  background: #222; color: #f8fafc; padding: 0 10px; font-size: 11px; outline: none;
}
.sidebar-search::placeholder { color: #64748b; }
.sidebar-search:focus { border-color: var(--gold); }

.module-grid {
  display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px;
  max-width: 920px; margin: 4px auto 0;
}
.module-card {
  min-height: 132px; padding: 18px; border-radius: 10px; text-decoration: none;
  background: var(--bg-surface); border: 1px solid var(--border-color);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; gap: 8px; box-shadow: 0 4px 14px rgba(15,23,42,.04);
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.module-card:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(15,23,42,.08); border-color: rgba(197,160,89,.6); }
.module-icon {
  width: 46px; height: 46px; display:flex; align-items:center; justify-content:center;
  border-radius: 12px; font-size: 23px; background: #F3F4FF;
}
.module-name { color: var(--text-dark); font-weight: 750; font-size: 13px; }
.module-count, .module-description { color: var(--text-muted); font-size: 10.5px; }
.module-screen-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.module-screen-card { min-height: 142px; }
.module-heading-icon { margin-right: 4px; }
.module-tone-0 .module-icon { background:#FFF0F2; }
.module-tone-1 .module-icon { background:#EAF6FF; }
.module-tone-2 .module-icon { background:#FFF0FB; }
.module-tone-3 .module-icon { background:#F0EEFF; }
.module-tone-4 .module-icon { background:#FFF1E9; }
.module-tone-5 .module-icon { background:#EEF0FF; }
.module-tone-6 .module-icon { background:#E9FFF7; }
.module-tone-7 .module-icon { background:#FFF8E7; }

.dashboard-datebar {
  display:grid; grid-template-columns: auto minmax(180px,1fr) auto; align-items:end; gap:10px;
  max-width: 760px; margin: 0 auto 16px; background: var(--bg-surface);
  border:1px solid var(--border-color); border-radius:10px; padding:12px;
}
.dashboard-datebar label { font-size:11px; font-weight:700; color:var(--text-muted); align-self:center; }
.taleem-dashboard-cards {
  display:flex; flex-direction:column; gap:14px; max-width:760px; margin:0 auto;
}
.taleem-stat-card {
  background:var(--bg-surface); border:1px solid var(--border-color); border-radius:10px;
  padding:18px 20px; box-shadow:0 2px 10px rgba(15,23,42,.035);
}
.taleem-card-title { display:flex; gap:7px; align-items:center; justify-content:center; color:var(--text-main); font-size:13px; }
.taleem-card-value { text-align:center; font-size:24px; font-weight:800; color:var(--text-dark); margin:4px 0 10px; }
.taleem-progress { height:3px; background:var(--border-color); border-radius:999px; overflow:hidden; margin:0 0 12px; }
.taleem-progress span { height:100%; display:block; background:var(--purple-light); }
.taleem-progress.tone-blue span { background:#38BDF8; }
.taleem-progress.tone-amber span { background:#F59E0B; }
.taleem-progress.tone-teal span { background:#14B8A6; }
.taleem-progress.tone-red span { background:#F43F5E; }
.taleem-card-split { display:grid; grid-template-columns:1fr 1fr; gap:12px; color:var(--text-muted); font-size:11px; text-align:center; }
.taleem-card-split span { display:flex; flex-direction:column; gap:4px; }
.taleem-card-split strong { color:var(--text-dark); font-size:13px; }
.taleem-card-split.single { grid-template-columns:1fr; }
.taleem-card-caption { text-align:center; color:var(--text-muted); font-size:10.5px; margin-top:4px; }
.taleem-card-caption a:not(.btn) { color:var(--blue); text-decoration:none; }
.compact-card { padding:16px 20px; }
.compact-card .taleem-card-value { margin-bottom:2px; }
.accent-amber { color:var(--amber); }
.accent-red { color:var(--red); }

/* Registration / fee table usability */
.registration-form-card { max-width: 980px; margin-left:auto; margin-right:auto; }
.registration-photo-box { display:flex; gap:14px; align-items:center; padding:12px; border:1px dashed var(--border-color); border-radius:8px; background:var(--bg-subtle); }
.registration-photo-preview { width:86px; height:86px; border-radius:10px; object-fit:cover; border:1px solid var(--border-color); background:#fff; }
.fee-summary-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:16px; }
.fee-summary-box { background:var(--bg-surface); border:1px solid var(--border-color); border-radius:9px; padding:12px; }
.fee-summary-box span { display:block; color:var(--text-muted); font-size:10px; text-transform:uppercase; font-weight:700; }
.fee-summary-box strong { display:block; margin-top:4px; color:var(--text-dark); font-size:16px; }
.status-filter-tabs { display:flex; gap:7px; flex-wrap:wrap; }
.status-filter-tabs a { text-decoration:none; }
.table-nowrap td, .table-nowrap th { white-space:nowrap; }

.sidebar-mobile-backdrop { display:none; }

@media (max-width: 980px) {
  .module-grid, .module-screen-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .fee-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .header-center { display:none; }
}

@media (max-width: 768px) {
  body.sidebar-open { overflow:hidden; }
  .sidebar-mobile-backdrop {
    position:fixed; inset:0; background:rgba(15,23,42,.52); z-index:45;
  }
  body.sidebar-open .sidebar-mobile-backdrop { display:block; }
  .sidebar { z-index:60; transition:left .2s ease; box-shadow:18px 0 40px rgba(0,0,0,.18); }
  .module-grid, .module-screen-grid { grid-template-columns:1fr 1fr; gap:10px; }
  .module-card { min-height:118px; padding:12px; }
  .module-screen-card { min-height:124px; }
  .dashboard-datebar { grid-template-columns:1fr; align-items:stretch; }
  .dashboard-datebar label { align-self:auto; }
  .taleem-stat-card { padding:15px; }
  .taleem-card-value { font-size:21px; }
  .fee-summary-grid { grid-template-columns:1fr 1fr; }
  .registration-photo-box { align-items:flex-start; }
  .school-capsule-pill { max-width:190px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
  .header-right .user-meta { display:none; }
  .header-right { gap:7px; }
  .top-header { height:58px; }
}

@media (max-width: 480px) {
  .module-grid, .module-screen-grid { grid-template-columns:1fr; }
  .fee-summary-grid { grid-template-columns:1fr; }
  .taleem-card-split { grid-template-columns:1fr 1fr; }
  .registration-photo-box { flex-direction:column; }
  .content-body { padding:12px; }
  .school-capsule-pill { max-width:135px; font-size:9px; padding:4px 8px; }
  .header-icon-btn { width:28px; height:28px; }
  .user-profile-btn { display:none; }
}

@media print {
  .dashboard-datebar, .page-header .action-bar { display:none !important; }
  .taleem-dashboard-cards { max-width:none; }
  .taleem-stat-card { break-inside:avoid; }
}


/* --- Connected Fee module --- */
.fee-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.fee-radio-row{display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.fee-radio-row label,.fee-defaulter-modes label{display:flex;align-items:center;gap:7px;color:var(--text-main);font-size:12px}
.fee-defaulter-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 22px}
.fee-print-sheet{max-width:1100px;margin:0 auto;background:#fff}
.fee-paper-a5{max-width:760px}
.fee-paper-thermal{max-width:360px;font-size:10px}
.fee-paper-thermal .data-table th,.fee-paper-thermal .data-table td{padding:5px;font-size:9px}
@media(max-width:980px){.fee-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){
  .fee-form-grid{grid-template-columns:1fr}
  .fee-defaulter-modes{grid-template-columns:1fr}
  .fee-radio-row{gap:12px;align-items:flex-start;flex-direction:column}
}
@media print{
  .no-print,.sidebar,.top-header,.page-header,.action-bar,.filter-toolbar{display:none!important}
  .fee-print-sheet{max-width:none!important;border:none!important;box-shadow:none!important}
}


/* --- Client portals: spacious, responsive teacher/student/parent UX --- */
.client-portal-body {
  background:
    radial-gradient(circle at top right, rgba(29,78,216,.07), transparent 32rem),
    var(--bg-app);
}
.client-portal-body .content-body { padding: 30px 34px 42px; }
.client-portal-body .sidebar-nav { padding: 16px 10px; }
.client-portal-body .nav-group-label { padding: 16px 12px 7px; }
.client-portal-body .nav-item {
  min-height: 44px;
  padding: 10px 12px;
  border-radius: 9px;
  font-size: 13px;
  margin-bottom: 5px;
}
.client-portal-body .nav-icon { width: 20px; height: 20px; display:flex; align-items:center; justify-content:center; }
.client-portal-body .top-header { min-height: 64px; }

.role-portal-page {
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
  font-size: 14px;
}
.portal-hero {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  min-height:138px;
  padding:26px 30px;
  margin-bottom:22px;
  border:1px solid var(--border-color);
  border-radius:18px;
  background:
    linear-gradient(135deg, rgba(29,78,216,.09), rgba(197,160,89,.08)),
    var(--bg-surface);
  box-shadow:0 10px 30px rgba(15,23,42,.055);
  overflow:hidden;
}
.portal-eyebrow {
  margin-bottom:7px;
  color:var(--blue);
  font-size:11px;
  font-weight:800;
  letter-spacing:1.1px;
  text-transform:uppercase;
}
.portal-hero h1 {
  margin:0;
  color:var(--text-dark);
  font-size:28px;
  line-height:1.15;
  letter-spacing:-.4px;
}
.portal-hero p {
  max-width:680px;
  margin:9px 0 0;
  color:var(--text-muted);
  font-size:13px;
  line-height:1.6;
}
.portal-hero-mark {
  width:72px;
  height:72px;
  flex:0 0 72px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:22px;
  background:var(--bg-surface);
  border:1px solid rgba(29,78,216,.15);
  box-shadow:0 10px 30px rgba(29,78,216,.10);
  color:var(--blue);
  font-size:25px;
  font-weight:850;
}

.role-portal-page .portal-card,
.role-portal-page.card {
  border-radius:16px;
  padding:24px;
  margin-bottom:22px;
  box-shadow:0 8px 24px rgba(15,23,42,.045);
}
.portal-card-heading {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding-bottom:16px;
  margin-bottom:18px;
  border-bottom:1px solid var(--border-color);
}
.portal-card-heading h2 {
  margin:3px 0 0;
  color:var(--text-dark);
  font-size:17px;
  line-height:1.3;
}
.portal-card-kicker {
  display:block;
  color:var(--text-muted);
  font-size:10px;
  font-weight:800;
  letter-spacing:.8px;
  text-transform:uppercase;
}
.portal-date-chip,
.portal-count-chip {
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:5px 10px;
  border:1px solid var(--border-color);
  border-radius:999px;
  background:var(--bg-subtle);
  color:var(--text-muted);
  font-size:11px;
  font-weight:750;
  white-space:nowrap;
}

.portal-filter-card {
  padding:20px 22px;
  margin-bottom:20px;
  background:var(--bg-surface);
  border:1px solid var(--border-color);
  border-radius:15px;
  box-shadow:0 6px 20px rgba(15,23,42,.035);
}
.portal-inline-filter {
  display:flex;
  align-items:flex-end;
  gap:12px;
}
.portal-inline-filter .form-group { width:min(100%, 360px); }
.role-portal-page .form-label {
  margin-bottom:3px;
  color:var(--text-dark);
  font-size:12px;
  font-weight:700;
}
.role-portal-page .form-control {
  width:100%;
  min-height:44px;
  height:44px;
  padding:0 13px;
  border-radius:9px;
  font-size:13px;
}
.role-portal-page select.form-control { padding-right:32px; }
.role-portal-page textarea.form-control,
.role-portal-page .portal-textarea {
  height:auto;
  min-height:150px;
  padding:13px 14px;
  line-height:1.55;
  resize:vertical;
}
.role-portal-page .btn {
  min-height:44px;
  height:auto;
  justify-content:center;
  padding:9px 17px;
  border-radius:9px;
  font-size:13px;
}
.portal-primary-action { min-width:150px; }
.portal-filter-note {
  margin-top:11px;
  color:var(--text-muted);
  font-size:12px;
  line-height:1.5;
}
.portal-field-help {
  display:block;
  margin-top:3px;
  color:var(--text-muted);
  font-size:11px;
  line-height:1.45;
}

.portal-kpi-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-bottom:20px;
}
.portal-kpi-grid-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.portal-kpi {
  position:relative;
  min-height:94px;
  padding:18px 20px 18px 24px;
  overflow:hidden;
  border:1px solid var(--border-color);
  border-radius:14px;
  background:var(--bg-surface);
  box-shadow:0 5px 18px rgba(15,23,42,.035);
}
.portal-kpi::before {
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:var(--blue);
}
.portal-kpi-success::before { background:var(--green); }
.portal-kpi-danger::before { background:var(--red); }
.portal-kpi-warning::before { background:var(--amber); }
.portal-kpi span {
  display:block;
  color:var(--text-muted);
  font-size:10px;
  font-weight:800;
  letter-spacing:.7px;
  text-transform:uppercase;
}
.portal-kpi strong {
  display:block;
  margin-top:7px;
  color:var(--text-dark);
  font-size:27px;
  line-height:1;
}
.portal-kpi .portal-money { font-size:20px; line-height:1.2; }

.portal-table-wrap {
  margin:0;
  border-radius:12px;
}
.portal-table { font-size:13px; }
.portal-table th {
  padding:12px 14px;
  font-size:10px;
}
.portal-table td {
  padding:14px;
  vertical-align:middle;
}
.portal-table-action { min-height:36px !important; padding:7px 11px !important; font-size:11px !important; }
.portal-empty-row td {
  padding:24px !important;
  color:var(--text-muted);
  text-align:center;
}

.portal-message-shell { overflow:hidden; }
.portal-message-list {
  display:flex;
  flex-direction:column;
  gap:14px;
}
.portal-message-card {
  padding:20px;
  border:1px solid var(--border-color);
  border-radius:14px;
  background:var(--bg-subtle);
}
.portal-message-top {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}
.portal-message-top h3 {
  margin:7px 0 0;
  color:var(--text-dark);
  font-size:16px;
  line-height:1.35;
}
.portal-message-top time {
  flex:0 0 auto;
  color:var(--text-muted);
  font-size:11px;
  white-space:nowrap;
}
.portal-subject-pill {
  display:inline-flex;
  align-items:center;
  min-height:25px;
  padding:4px 9px;
  border-radius:999px;
  background:rgba(29,78,216,.10);
  color:var(--blue);
  font-size:10px;
  font-weight:800;
  letter-spacing:.25px;
}
.portal-message-sender {
  display:flex;
  align-items:center;
  gap:10px;
  margin:17px 0 14px;
  padding:11px 12px;
  border:1px solid var(--border-color);
  border-radius:11px;
  background:var(--bg-surface);
}
.portal-sender-avatar {
  width:38px;
  height:38px;
  flex:0 0 38px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:var(--blue);
  color:#fff;
  font-size:14px;
  font-weight:800;
}
.portal-message-sender div { display:grid; grid-template-columns:auto 1fr; column-gap:6px; align-items:baseline; }
.portal-message-sender span { color:var(--text-muted); font-size:10px; text-transform:uppercase; font-weight:750; }
.portal-message-sender strong { color:var(--text-dark); font-size:13px; }
.portal-message-sender small { grid-column:1 / -1; margin-top:2px; color:var(--text-muted); font-size:10.5px; }
.portal-message-body {
  color:var(--text-main);
  font-size:13px;
  line-height:1.7;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}

.portal-empty-state {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:170px;
  padding:28px 18px;
  color:var(--text-muted);
  text-align:center;
}
.portal-empty-state > span { font-size:28px; opacity:.75; }
.portal-empty-state strong { margin-top:8px; color:var(--text-dark); font-size:14px; }
.portal-empty-state p { max-width:430px; margin:5px 0 0; font-size:12px; line-height:1.5; }
.portal-empty-card {
  min-height:220px;
  border:1px solid var(--border-color);
  border-radius:16px;
  background:var(--bg-surface);
}

.portal-success-banner,
.portal-history-banner {
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:14px 16px;
  margin-bottom:18px;
  border:1px solid #A7F3D0;
  border-radius:12px;
  background:#ECFDF5;
  color:#065F46;
}
.portal-success-banner > span,
.portal-history-banner > span {
  width:28px;
  height:28px;
  flex:0 0 28px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:rgba(6,95,70,.09);
  font-weight:900;
}
.portal-success-banner strong,
.portal-history-banner strong { display:block; font-size:13px; }
.portal-success-banner p,
.portal-history-banner p { margin:3px 0 0; font-size:11.5px; line-height:1.45; }
.portal-history-banner {
  border-color:#BFDBFE;
  background:#EFF6FF;
  color:#1E40AF;
}
.portal-history-current {
  border-color:#A7F3D0;
  background:#ECFDF5;
  color:#065F46;
}

.portal-form-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.portal-compose-form { display:flex; flex-direction:column; gap:17px; }
.portal-actions {
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.portal-compose-form .portal-actions { justify-content:flex-end; padding-top:2px; }

.portal-register-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:13px;
  padding:14px 16px;
  border:1px solid var(--border-color);
  border-radius:12px;
  background:var(--bg-surface);
}
.portal-register-toolbar > div:first-child { display:flex; flex-direction:column; gap:2px; }
.portal-register-toolbar strong { color:var(--text-dark); font-size:13px; }
.portal-register-toolbar span { color:var(--text-muted); font-size:11px; }
.portal-saved-tag,
.portal-unmarked-tag {
  display:inline-flex;
  margin-left:8px;
  padding:2px 7px;
  border-radius:999px;
  background:#DEF7EC;
  color:#03543F;
  font-size:9px;
  font-weight:800;
  vertical-align:middle;
}
.portal-unmarked-tag { background:#F1F5F9; color:#64748B; }
.portal-mobile-save { display:none; margin-top:12px; }

@media (max-width: 900px) {
  .client-portal-body .content-body { padding:22px; }
  .portal-hero { min-height:126px; padding:23px 24px; }
  .portal-hero h1 { font-size:24px; }
  .portal-form-grid { grid-template-columns:1fr 1fr; }
  .portal-register-toolbar { align-items:flex-start; flex-direction:column; }
}

@media (max-width: 700px) {
  .client-portal-body .content-body { padding:14px 12px 30px; }
  .client-portal-body .top-header {
    height:58px;
    min-height:58px;
    padding:0 10px;
  }
  .client-portal-body .header-left { gap:8px; min-width:0; }
  .client-portal-body .sidebar-toggle-btn { width:34px; height:34px; flex:0 0 34px; }
  .client-portal-body .school-capsule-pill {
    max-width:145px;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .client-portal-body .header-right { gap:5px; }
  .client-portal-body .header-right .user-profile-btn { display:none; }
  .client-portal-body .header-icon-btn { width:31px; height:31px; }
  .client-portal-body .header-right .btn { min-width:auto; padding:0 8px; }

  .portal-hero {
    min-height:112px;
    padding:20px;
    margin-bottom:16px;
    border-radius:15px;
  }
  .portal-hero h1 { font-size:22px; }
  .portal-hero p { margin-top:7px; font-size:12px; }
  .portal-hero-mark {
    width:52px;
    height:52px;
    flex-basis:52px;
    border-radius:16px;
    font-size:19px;
  }

  .role-portal-page .portal-card,
  .role-portal-page.card { padding:17px; border-radius:14px; margin-bottom:16px; }
  .portal-filter-card { padding:16px; border-radius:13px; margin-bottom:16px; }
  .portal-inline-filter { align-items:stretch; flex-direction:column; }
  .portal-inline-filter .form-group { width:100%; }
  .portal-inline-filter .btn { width:100%; }
  .role-portal-page .form-control { min-height:46px; height:46px; font-size:14px; }
  .role-portal-page textarea.form-control,
  .role-portal-page .portal-textarea { min-height:145px; height:auto; }
  .role-portal-page .btn { min-height:46px; font-size:13px; }

  .portal-kpi-grid { gap:8px; }
  .portal-kpi { min-height:82px; padding:14px 12px 14px 16px; border-radius:12px; }
  .portal-kpi strong { font-size:23px; }
  .portal-kpi .portal-money { font-size:15px; }
  .portal-kpi span { font-size:9px; }

  .portal-card-heading { gap:9px; padding-bottom:13px; margin-bottom:14px; }
  .portal-card-heading h2 { font-size:15px; }
  .portal-date-chip,.portal-count-chip { font-size:10px; }

  .portal-table-wrap { border:0; background:transparent; overflow:visible; }
  .portal-table,
  .portal-table tbody { display:block; width:100%; }
  .portal-table thead { display:none; }
  .portal-table tr {
    display:block;
    margin-bottom:11px;
    padding:6px 13px;
    border:1px solid var(--border-color);
    border-radius:12px;
    background:var(--bg-surface);
  }
  .portal-table td {
    display:grid;
    grid-template-columns:minmax(90px, 36%) minmax(0,1fr);
    align-items:center;
    gap:12px;
    width:100%;
    min-height:43px;
    padding:9px 0;
    border-bottom:1px solid var(--border-color);
    text-align:right;
    overflow-wrap:anywhere;
  }
  .portal-table td:last-child { border-bottom:0; }
  .portal-table td::before {
    content:attr(data-label);
    color:var(--text-muted);
    font-size:9.5px;
    font-weight:800;
    letter-spacing:.35px;
    text-align:left;
    text-transform:uppercase;
  }
  .portal-table .portal-empty-row { padding:0; }
  .portal-table .portal-empty-row td {
    display:block;
    padding:22px 10px !important;
    border:0;
    text-align:center;
  }
  .portal-table .portal-empty-row td::before { display:none; }
  .portal-table-action { width:100%; }
  .teacher-attendance-table td .form-control { text-align:left; }
  .teacher-attendance-table td[data-label="Student"] { display:block; text-align:left; padding:12px 0; }
  .teacher-attendance-table td[data-label="Student"]::before { display:block; margin-bottom:5px; }

  .portal-message-card { padding:16px; border-radius:12px; }
  .portal-message-top { flex-direction:column; gap:7px; }
  .portal-message-top time { white-space:normal; }
  .portal-message-sender { margin:13px 0 12px; }
  .portal-message-body { font-size:13px; line-height:1.65; }

  .portal-form-grid { grid-template-columns:1fr; gap:15px; }
  .portal-compose-form .portal-actions { justify-content:stretch; }
  .portal-compose-form .portal-actions .btn { width:100%; }
  .portal-actions-compact { width:100%; display:grid; grid-template-columns:1fr 1fr; }
  .portal-actions-compact .portal-primary-action { grid-column:1 / -1; width:100%; }
  .portal-register-toolbar { padding:13px; }
  .portal-mobile-save { display:block; }
  .portal-mobile-save .btn { width:100%; }
}

@media (max-width: 430px) {
  .portal-hero { gap:12px; padding:17px; }
  .portal-hero-mark { width:46px; height:46px; flex-basis:46px; }
  .portal-hero h1 { font-size:20px; }
  .portal-kpi { padding-left:13px; padding-right:8px; }
  .portal-kpi strong { font-size:20px; }
  .portal-kpi .portal-money { font-size:13px; }
  .portal-card-heading { align-items:flex-start; flex-direction:column; }
  .portal-message-sender div { grid-template-columns:1fr; }
  .portal-message-sender div span { margin-bottom:1px; }
  .portal-actions-compact { grid-template-columns:1fr; }
  .portal-actions-compact .portal-primary-action { grid-column:auto; }
}


/* === Ship-ready ERP workspace polish ======================================= */
.erp-workspace-body {
  background:
    radial-gradient(circle at 100% 0, rgba(37,99,235,.055), transparent 34rem),
    var(--bg-app);
}
.erp-workspace-body .content-body {
  width:100%;
  max-width:1480px;
  margin:0 auto;
  padding:26px 30px 44px;
}
.erp-workspace-body .page-header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:20px;
}
.erp-workspace-body .page-title {
  margin:0;
  font-size:25px;
  line-height:1.18;
  letter-spacing:-.35px;
}
.erp-workspace-body .page-subtitle {
  display:block;
  margin-top:5px;
  color:var(--text-muted);
  font-size:12px;
  line-height:1.5;
}
.erp-workspace-body .card,
.erp-workspace-body .filter-toolbar {
  border:1px solid var(--border-color);
  border-radius:15px;
  box-shadow:0 7px 24px rgba(15,23,42,.04);
}
.erp-workspace-body .card {
  padding:21px;
  margin-bottom:18px;
}
.erp-workspace-body .card-title {
  margin-bottom:15px;
  color:var(--text-dark);
  font-size:15px;
  font-weight:800;
  letter-spacing:-.1px;
}
.erp-card-hint {
  margin:-8px 0 17px;
  color:var(--text-muted);
  font-size:12px;
  line-height:1.55;
}

.erp-workspace-body .form-group,
.erp-workspace-body .form-grid-2 > div,
.erp-workspace-body .form-grid-3 > div,
.erp-workspace-body .form-grid-4 > div {
  min-width:0;
}
.erp-workspace-body .form-label {
  display:block;
  margin:0 0 6px;
  color:var(--text-dark);
  font-size:11.5px;
  font-weight:750;
  line-height:1.35;
}
.erp-workspace-body .form-control,
.erp-workspace-body input[type="text"],
.erp-workspace-body input[type="search"],
.erp-workspace-body input[type="email"],
.erp-workspace-body input[type="number"],
.erp-workspace-body input[type="date"],
.erp-workspace-body input[type="time"],
.erp-workspace-body select,
.erp-workspace-body textarea {
  max-width:100%;
}
.erp-workspace-body .form-control {
  min-height:43px;
  height:auto;
  padding:9px 12px;
  border:1px solid var(--border-color);
  border-radius:10px;
  background:var(--bg-surface);
  color:var(--text-main);
  font-size:13px;
  line-height:1.35;
  transition:border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.erp-workspace-body textarea.form-control { min-height:104px; resize:vertical; }
.erp-workspace-body .form-control:focus {
  outline:none;
  border-color:rgba(37,99,235,.65);
  box-shadow:0 0 0 3px rgba(37,99,235,.11);
}
.erp-workspace-body .form-control[readonly],
.erp-workspace-body .form-control:disabled {
  background:var(--bg-subtle);
  color:var(--text-muted);
}
.erp-workspace-body small {
  color:var(--text-muted);
  line-height:1.45;
}

.erp-workspace-body .btn {
  min-height:40px;
  height:auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  max-width:100%;
  padding:8px 14px;
  border-radius:9px;
  font-size:12px;
  font-weight:750;
  line-height:1.25;
  white-space:normal;
  text-align:center;
  vertical-align:middle;
  transition:transform .12s ease, box-shadow .15s ease, opacity .15s ease;
}
.erp-workspace-body .btn:hover:not(:disabled) {
  transform:translateY(-1px);
  box-shadow:0 5px 13px rgba(15,23,42,.10);
}
.erp-workspace-body .btn:disabled { cursor:not-allowed; opacity:.58; }
.erp-workspace-body .btn-sm { min-height:34px; padding:6px 10px; font-size:11px; }
.erp-workspace-body .action-bar,
.erp-form-actions {
  display:flex;
  align-items:center;
  gap:9px;
  flex-wrap:wrap;
}
.erp-form-actions { margin-top:17px; }

.erp-workspace-body .filter-toolbar {
  padding:16px 18px;
  margin-bottom:18px;
  background:var(--bg-surface);
}
.erp-workspace-body .filter-toolbar form {
  gap:10px 12px !important;
}
.erp-workspace-body .dashboard-datebar {
  padding:15px 17px;
  border:1px solid var(--border-color);
  border-radius:13px;
  background:var(--bg-surface);
  box-shadow:0 5px 18px rgba(15,23,42,.035);
}
.erp-workspace-body .table-responsive,
.erp-workspace-body .table-container {
  position:relative;
  border:1px solid var(--border-color);
  border-radius:12px;
  background:var(--bg-surface);
}
.erp-workspace-body .data-table {
  width:100%;
  font-size:12px;
}
.erp-workspace-body .data-table th {
  padding:11px 12px;
  background:var(--bg-subtle);
  color:var(--text-muted);
  font-size:10px;
  font-weight:800;
  letter-spacing:.35px;
  text-transform:uppercase;
  white-space:nowrap;
}
.erp-workspace-body .data-table td {
  padding:12px;
  vertical-align:middle;
  line-height:1.45;
}
.erp-workspace-body .data-table tbody tr:hover:not(.erp-empty-row) {
  background:rgba(37,99,235,.025);
}
.erp-table-tools {
  display:flex;
  justify-content:flex-end;
  gap:9px;
  margin-bottom:12px;
}
.erp-table-tools .form-control { width:min(100%,340px); }

.submenu-item {
  position:relative;
  border-radius:7px;
  transition:background .14s ease,color .14s ease,padding .14s ease;
}
.submenu-item.active {
  padding-left:24px;
  background:rgba(37,99,235,.11);
  color:var(--blue);
  font-weight:800;
}
.submenu-item.active::before {
  content:"";
  position:absolute;
  left:9px;
  top:50%;
  width:6px;
  height:6px;
  border-radius:50%;
  background:currentColor;
  transform:translateY(-50%);
}
.nav-item.parent-active {
  background:rgba(37,99,235,.075);
  color:var(--blue);
}

/* Never tease Accountant with administrator-only actions that the server rejects. */
body[data-user-role="accountant"] a[href^="/fee/reverse"],
body[data-user-role="accountant"] form[action^="/fee/reverse"],
body[data-user-role="accountant"] a[href^="/users/"],
body[data-user-role="accountant"] .accountant-hidden {
  display:none !important;
}

/* Loading / skeleton feedback */
.erp-global-progress {
  position:fixed;
  z-index:99999;
  inset:0 0 auto 0;
  height:3px;
  pointer-events:none;
  opacity:0;
  overflow:hidden;
  transition:opacity .15s ease;
}
.erp-global-progress.show { opacity:1; }
.erp-global-progress span {
  display:block;
  width:35%;
  height:100%;
  background:var(--blue);
  transform:translateX(-110%);
  animation:erpProgress 1s ease-in-out infinite;
}
@keyframes erpProgress {
  0% { transform:translateX(-110%); }
  65% { transform:translateX(210%); }
  100% { transform:translateX(320%); }
}
.erp-btn-spinner {
  width:14px;
  height:14px;
  flex:0 0 14px;
  display:inline-block;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  animation:erpSpin .65s linear infinite;
}
@keyframes erpSpin { to { transform:rotate(360deg); } }
.btn.is-loading { cursor:progress; }
.table-responsive.is-loading,
.table-container.is-loading,
.transport-table-wrap.is-loading { min-height:110px; overflow:hidden; }
.table-responsive.is-loading::after,
.table-container.is-loading::after,
.transport-table-wrap.is-loading::after {
  content:"Loading fresh data…";
  position:absolute;
  inset:0;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:linear-gradient(90deg,rgba(248,250,252,.88),rgba(255,255,255,.96),rgba(248,250,252,.88));
  color:var(--text-muted);
  font-size:12px;
  font-weight:750;
  backdrop-filter:blur(1px);
}

.erp-empty-row td { padding:0 !important; }
.erp-empty-state {
  min-height:130px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  padding:24px 16px;
  color:var(--text-muted);
  text-align:center;
}
.erp-empty-state > span {
  width:38px;
  height:38px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  background:var(--bg-subtle);
  font-size:20px;
}
.erp-empty-state strong { color:var(--text-dark); font-size:13px; }
.erp-empty-state small { max-width:420px; font-size:11px; }
.erp-live-search { padding-right:34px !important; }

/* Taleem-inspired modern User Setting / rights matrix */
.user-setting-shell { overflow:hidden; padding:0 !important; }
.user-setting-tabs {
  display:flex;
  gap:4px;
  padding:14px 16px 0;
  border-bottom:1px solid var(--border-color);
  overflow:auto;
  scrollbar-width:thin;
}
.user-setting-tab {
  min-height:48px;
  display:inline-flex;
  align-items:center;
  padding:0 16px;
  border-bottom:3px solid transparent;
  color:var(--text-muted);
  font-size:12px;
  font-weight:750;
  text-decoration:none;
  white-space:nowrap;
}
.user-setting-tab:hover { color:var(--blue); background:var(--bg-subtle); }
.user-setting-tab.active { color:var(--blue); border-bottom-color:var(--blue); }
.user-setting-panel { padding:20px; }
.user-setting-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:15px;
}
.user-setting-toolbar .form-control { width:min(100%,340px); }
.user-setting-actions { display:flex; gap:7px; flex-wrap:wrap; }
.user-edit-panel {
  margin-bottom:18px;
  padding:18px;
  border:1px solid rgba(37,99,235,.18);
  border-radius:13px;
  background:linear-gradient(135deg,rgba(37,99,235,.045),transparent 58%),var(--bg-surface);
}
.user-edit-heading {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:16px;
}
.user-edit-heading h2 { margin:0; font-size:17px; }
.user-edit-heading p { margin:4px 0 0; color:var(--text-muted); font-size:11px; }
.rights-filter-grid {
  display:grid;
  grid-template-columns:minmax(180px,240px) minmax(220px,1fr);
  gap:12px;
  align-items:end;
  margin:15px 0;
}
.permission-matrix-wrap {
  max-height:600px;
  overflow:auto;
  border:1px solid var(--border-color);
  border-radius:12px;
}
.permission-matrix { min-width:980px; }
.permission-matrix th { position:sticky; top:0; z-index:2; }
.permission-matrix td:not(:nth-child(-n+2)),
.permission-matrix th:not(:nth-child(-n+2)) { text-align:center; }
.permission-matrix td:nth-child(1) { min-width:145px; }
.permission-matrix td:nth-child(2) { min-width:250px; }
.permission-key {
  display:block;
  margin-top:2px;
  color:var(--text-muted);
  font-size:9px;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
}
.permission-na { color:#cbd5e1; }
.permission-check,
.permission-row-toggle {
  width:17px;
  height:17px;
  accent-color:var(--blue);
}
.fixed-rights-note {
  margin:12px 0;
  padding:11px 13px;
  border:1px solid var(--border-color);
  border-radius:10px;
  background:var(--bg-subtle);
  color:var(--text-muted);
  font-size:11px;
}

/* Dashboard and module tiles scale cleanly instead of squeezing on phones. */
.erp-workspace-body .taleem-dashboard-cards {
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.erp-workspace-body .taleem-stat-card {
  min-width:0;
  border-radius:14px;
  overflow:hidden;
}
.erp-workspace-body .module-grid,
.erp-workspace-body .module-screen-grid {
  gap:13px;
}
.erp-workspace-body .module-card,
.erp-workspace-body .module-screen-card {
  border-radius:13px;
  overflow:hidden;
}

/* Fee reversal may also be rendered as action text inside a generic button/link. */
body[data-user-role="accountant"] [data-admin-only="fee-reversal"] { display:none !important; }

@media (max-width:1100px) {
  .erp-workspace-body .content-body { padding:22px; }
  .erp-workspace-body .taleem-dashboard-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .form-grid-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .user-setting-panel { padding:17px; }
}

@media (max-width:768px) {
  .erp-workspace-body .content-body { padding:14px 12px 30px; }
  .erp-workspace-body .page-header {
    align-items:stretch;
    flex-direction:column;
    margin-bottom:14px;
  }
  .erp-workspace-body .page-title { font-size:21px; }
  .erp-workspace-body .page-header .action-bar { width:100%; }
  .erp-workspace-body .page-header .action-bar .btn { flex:1 1 140px; }
  .erp-workspace-body .card { padding:15px; border-radius:13px; margin-bottom:14px; }
  .erp-workspace-body .filter-toolbar { padding:13px; border-radius:12px; }
  .erp-workspace-body .filter-toolbar form,
  .erp-workspace-body .dashboard-datebar {
    display:grid !important;
    grid-template-columns:1fr !important;
    align-items:stretch !important;
  }
  .erp-workspace-body .filter-toolbar .form-control,
  .erp-workspace-body .filter-toolbar .btn,
  .erp-workspace-body .dashboard-datebar .form-control,
  .erp-workspace-body .dashboard-datebar .btn {
    width:100% !important;
    max-width:none !important;
  }
  .erp-workspace-body .form-grid-2,
  .erp-workspace-body .form-grid-3,
  .erp-workspace-body .form-grid-4,
  .fee-form-grid {
    grid-template-columns:1fr !important;
    gap:13px !important;
  }
  .erp-workspace-body .action-bar,
  .erp-form-actions {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
  }
  .erp-workspace-body .action-bar .btn,
  .erp-form-actions .btn { width:100%; min-width:0; }
  .erp-workspace-body .taleem-dashboard-cards { grid-template-columns:1fr; gap:10px; }
  .erp-workspace-body .taleem-card-split { grid-template-columns:1fr 1fr; gap:7px; }
  .erp-workspace-body .module-grid,
  .erp-workspace-body .module-screen-grid { grid-template-columns:1fr 1fr; gap:10px; }

  .user-setting-tabs { padding:10px 10px 0; }
  .user-setting-tab { min-height:44px; padding:0 12px; }
  .user-setting-panel { padding:13px; }
  .user-setting-toolbar { align-items:stretch; flex-direction:column; }
  .user-setting-toolbar .form-control { width:100%; }
  .rights-filter-grid { grid-template-columns:1fr; }
  .user-edit-heading { flex-direction:column; }

  table.erp-responsive-table,
  table.erp-responsive-table tbody { display:block; width:100%; }
  table.erp-responsive-table thead { display:none; }
  table.erp-responsive-table tr {
    display:block;
    margin:0 0 10px;
    padding:5px 12px;
    border:1px solid var(--border-color);
    border-radius:11px;
    background:var(--bg-surface);
  }
  table.erp-responsive-table td {
    display:grid;
    grid-template-columns:minmax(100px,38%) minmax(0,1fr);
    gap:10px;
    align-items:center;
    min-height:41px;
    width:100%;
    padding:8px 0 !important;
    border-bottom:1px solid var(--border-color);
    text-align:right;
    overflow-wrap:anywhere;
  }
  table.erp-responsive-table td:last-child { border-bottom:0; }
  table.erp-responsive-table td::before {
    content:attr(data-label);
    color:var(--text-muted);
    font-size:9.5px;
    font-weight:800;
    letter-spacing:.3px;
    text-align:left;
    text-transform:uppercase;
  }
  table.erp-responsive-table .erp-empty-row { padding:0; }
  table.erp-responsive-table .erp-empty-row td { display:block; text-align:center; border:0; }
  table.erp-responsive-table .erp-empty-row td::before { display:none; }
}

@media (max-width:480px) {
  .erp-workspace-body .content-body { padding-left:9px; padding-right:9px; }
  .erp-workspace-body .module-grid,
  .erp-workspace-body .module-screen-grid { grid-template-columns:1fr; }
  .erp-workspace-body .action-bar,
  .erp-form-actions { grid-template-columns:1fr; }
  .erp-workspace-body .taleem-card-split { grid-template-columns:1fr; }
  .erp-workspace-body .btn { min-height:43px; }
  .erp-workspace-body .form-control { min-height:45px; font-size:14px; }
}


/* Modernize legacy Transport / Examination / Accounts visual systems without
   changing their domain workflows. */
.erp-workspace-body .transport-page,
.erp-workspace-body .exam-page,
.erp-workspace-body .accounts-shell { max-width:100%; }
.erp-workspace-body .transport-card,
.erp-workspace-body .exam-card,
.erp-workspace-body .accounts-card {
  border-radius:15px !important;
  border-color:var(--border-color) !important;
  box-shadow:0 7px 24px rgba(15,23,42,.04) !important;
}
.erp-workspace-body .transport-title,
.erp-workspace-body .exam-title { font-size:24px !important; letter-spacing:-.3px; }
.erp-workspace-body .transport-input,
.erp-workspace-body .transport-select,
.erp-workspace-body .exam-input,
.erp-workspace-body .exam-select,
.erp-workspace-body .accounts-field input,
.erp-workspace-body .accounts-field select,
.erp-workspace-body .accounts-field textarea {
  min-height:43px !important;
  height:auto !important;
  padding:9px 12px !important;
  border-radius:10px !important;
  border:1px solid var(--border-color) !important;
  background:var(--bg-surface) !important;
  color:var(--text-main) !important;
  font-size:13px !important;
}
.erp-workspace-body .transport-input:focus,
.erp-workspace-body .transport-select:focus,
.erp-workspace-body .exam-input:focus,
.erp-workspace-body .exam-select:focus {
  outline:none;
  border-color:rgba(37,99,235,.65) !important;
  box-shadow:0 0 0 3px rgba(37,99,235,.11);
}
.erp-workspace-body .transport-btn,
.erp-workspace-body .exam-btn {
  min-height:40px !important;
  height:auto !important;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:8px 14px !important;
  border-radius:9px !important;
  font-size:12px !important;
  font-weight:750 !important;
  line-height:1.25;
  white-space:normal !important;
  text-align:center;
}
.erp-workspace-body .transport-toolbar,
.erp-workspace-body .exam-toolbar,
.erp-workspace-body .accounts-toolbar {
  gap:10px 12px !important;
}
.erp-workspace-body .transport-table-wrap,
.erp-workspace-body .exam-table-wrap,
.erp-workspace-body .accounts-table-wrap {
  position:relative;
  border-radius:12px !important;
  border-color:var(--border-color) !important;
  background:var(--bg-surface);
}
.erp-workspace-body .transport-table th,
.erp-workspace-body .exam-table th,
.erp-workspace-body .accounts-table th {
  padding:11px 12px !important;
  background:var(--bg-subtle) !important;
  color:var(--text-muted) !important;
  font-size:10px !important;
  font-weight:800 !important;
  letter-spacing:.35px;
  text-transform:uppercase;
}
.erp-workspace-body .transport-table td,
.erp-workspace-body .exam-table td,
.erp-workspace-body .accounts-table td {
  padding:12px !important;
  color:var(--text-main);
  line-height:1.45;
}
.erp-workspace-body .transport-modal,
.erp-workspace-body .exam-modal,
.erp-workspace-body .accounts-dialog {
  border-radius:15px !important;
  max-height:min(88vh,760px);
  overflow:auto;
}
@media(max-width:768px){
  .erp-workspace-body .transport-toolbar,
  .erp-workspace-body .exam-toolbar,
  .erp-workspace-body .accounts-toolbar {
    align-items:stretch !important;
    flex-direction:column;
  }
  .erp-workspace-body .transport-actions,
  .erp-workspace-body .exam-actions,
  .erp-workspace-body .accounts-report-actions {
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
  }
  .erp-workspace-body .transport-actions > *,
  .erp-workspace-body .exam-actions > *,
  .erp-workspace-body .accounts-report-actions > * { width:100%; }
  .erp-workspace-body .transport-toolbar > input,
  .erp-workspace-body .transport-toolbar > select,
  .erp-workspace-body .exam-toolbar > .exam-field,
  .erp-workspace-body .accounts-toolbar > .form-control {
    width:100% !important;
    min-width:0 !important;
  }
  .erp-workspace-body .transport-modal-body,
  .erp-workspace-body .exam-modal-body,
  .erp-workspace-body .accounts-dialog-body { padding:14px !important; }
}
@media(max-width:430px){
  .erp-workspace-body .transport-actions,
  .erp-workspace-body .exam-actions,
  .erp-workspace-body .accounts-report-actions { grid-template-columns:1fr; }
}


/* === Super Admin: Provision New School ==================================== */
.provision-school-page {
  width:100%;
  max-width:1080px;
  margin:0 auto;
}
.provision-school-hero {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  margin-bottom:18px;
  padding:4px 2px 0;
}
.provision-school-hero-copy {
  min-width:0;
  max-width:760px;
}
.provision-school-eyebrow {
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:4px 9px;
  margin-bottom:8px;
  border-radius:999px;
  background:rgba(37,99,235,.08);
  color:var(--blue);
  font-size:10px;
  font-weight:800;
  letter-spacing:.65px;
  text-transform:uppercase;
}
.provision-school-hero h1 {
  margin:0;
  color:var(--text-dark);
  font-size:clamp(24px,3vw,34px);
  line-height:1.12;
  letter-spacing:-.7px;
  overflow-wrap:anywhere;
}
.provision-school-hero p {
  max-width:720px;
  margin:9px 0 0;
  color:var(--text-muted);
  font-size:13px;
  line-height:1.65;
}
.provision-back-btn {
  flex:0 0 auto;
  margin-top:4px;
}

.provision-notice {
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  gap:12px;
  align-items:flex-start;
  margin-bottom:14px;
  padding:14px 16px;
  border:1px solid;
  border-radius:13px;
  box-shadow:0 5px 16px rgba(15,23,42,.025);
}
.provision-notice-icon {
  width:38px;
  height:38px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:11px;
  font-size:16px;
  font-weight:900;
}
.provision-notice strong {
  display:block;
  color:inherit;
  font-size:12.5px;
  line-height:1.4;
}
.provision-notice p {
  margin:4px 0 0;
  color:inherit;
  opacity:.88;
  font-size:11.5px;
  line-height:1.55;
  overflow-wrap:anywhere;
}
.provision-notice-content .btn {
  margin-top:10px;
}
.provision-notice-success {
  border-color:#a7f3d0;
  background:#ecfdf5;
  color:#065f46;
}
.provision-notice-success .provision-notice-icon {
  background:#d1fae5;
}
.provision-notice-warning {
  border-color:#fed7aa;
  background:#fff7ed;
  color:#9a3412;
}
.provision-notice-warning .provision-notice-icon {
  background:#ffedd5;
}
.provision-notice-error {
  border-color:#fecaca;
  background:#fef2f2;
  color:#991b1b;
}
.provision-notice-error .provision-notice-icon {
  background:#fee2e2;
}

.provision-school-card {
  overflow:hidden;
  border:1px solid var(--border-color);
  border-radius:16px;
  background:var(--bg-surface);
  box-shadow:0 12px 34px rgba(15,23,42,.055);
}
.provision-section {
  padding:24px 26px;
}
.provision-section + .provision-section {
  border-top:1px solid var(--border-color);
}
.provision-section-heading {
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin-bottom:20px;
}
.provision-step {
  width:34px;
  height:34px;
  flex:0 0 34px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  background:var(--blue);
  color:#fff;
  font-size:12px;
  font-weight:800;
  box-shadow:0 5px 13px rgba(37,99,235,.18);
}
.provision-section-heading > div {
  min-width:0;
}
.provision-section-heading h2 {
  margin:0;
  color:var(--text-dark);
  font-size:16px;
  line-height:1.3;
  letter-spacing:-.15px;
}
.provision-section-heading p {
  margin:4px 0 0;
  color:var(--text-muted);
  font-size:11.5px;
  line-height:1.55;
}
.provision-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px 20px;
}
.provision-grid .form-group {
  min-width:0;
  gap:6px;
}
.provision-full-row {
  grid-column:1 / -1;
}
.provision-school-card .form-label {
  margin:0;
  color:var(--text-dark);
  font-size:11.5px;
  font-weight:750;
  line-height:1.4;
}
.provision-school-card .required-mark {
  color:var(--red);
}
.provision-school-card .form-control {
  width:100%;
  min-width:0;
  min-height:46px;
  height:auto;
  padding:10px 12px;
  border-radius:10px;
  font-size:13px;
  line-height:1.35;
}
.provision-school-card .form-control::placeholder {
  color:#94a3b8;
}
.provision-code-input {
  text-transform:uppercase;
  letter-spacing:.45px;
  font-weight:700;
}
.provision-field-help {
  display:block;
  margin:0;
  color:var(--text-muted);
  font-size:10.5px;
  line-height:1.5;
}
.provision-admin-grid {
  max-width:760px;
}

.provision-summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:17px 26px;
  border-top:1px solid var(--border-color);
  border-bottom:1px solid var(--border-color);
  background:linear-gradient(135deg,rgba(37,99,235,.035),rgba(15,118,110,.02));
}
.provision-summary-copy {
  min-width:0;
}
.provision-summary-copy strong {
  display:block;
  color:var(--text-dark);
  font-size:12px;
}
.provision-summary-copy p {
  margin:4px 0 0;
  color:var(--text-muted);
  font-size:10.8px;
  line-height:1.5;
}
.provision-summary-tags {
  display:flex;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
  max-width:420px;
}
.provision-summary-tags span {
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:4px 9px;
  border:1px solid var(--border-color);
  border-radius:999px;
  background:var(--bg-surface);
  color:var(--text-main);
  font-size:9.5px;
  font-weight:700;
  white-space:nowrap;
}
.provision-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  padding:18px 26px 22px;
}
.provision-actions .btn {
  min-height:44px;
  padding:9px 16px;
}
.provision-submit {
  min-width:230px;
  font-weight:800 !important;
}

@media (max-width: 760px) {
  .provision-school-page {
    max-width:none;
  }
  .provision-school-hero {
    flex-direction:column;
    gap:14px;
    margin-bottom:14px;
  }
  .provision-school-hero p {
    font-size:12px;
    line-height:1.55;
  }
  .provision-back-btn {
    width:100%;
    margin:0;
  }
  .provision-notice {
    grid-template-columns:32px minmax(0,1fr);
    gap:10px;
    padding:12px;
    border-radius:11px;
  }
  .provision-notice-icon {
    width:32px;
    height:32px;
    border-radius:9px;
    font-size:14px;
  }
  .provision-notice-content .btn {
    width:100%;
  }
  .provision-school-card {
    border-radius:13px;
  }
  .provision-section {
    padding:18px 15px;
  }
  .provision-section-heading {
    gap:10px;
    margin-bottom:17px;
  }
  .provision-step {
    width:31px;
    height:31px;
    flex-basis:31px;
    border-radius:9px;
  }
  .provision-section-heading h2 {
    font-size:15px;
    line-height:1.28;
  }
  .provision-section-heading p {
    font-size:10.8px;
  }
  .provision-grid {
    grid-template-columns:1fr;
    gap:14px;
  }
  .provision-full-row {
    grid-column:auto;
  }
  .provision-school-card .form-control {
    min-height:47px;
    font-size:14px;
  }
  .provision-summary {
    align-items:flex-start;
    flex-direction:column;
    gap:12px;
    padding:15px;
  }
  .provision-summary-tags {
    justify-content:flex-start;
    max-width:none;
  }
  .provision-actions {
    display:grid;
    grid-template-columns:1fr;
    gap:9px;
    padding:15px;
  }
  .provision-actions .btn {
    width:100%;
    min-width:0;
    min-height:47px;
  }
  .provision-submit {
    order:-1;
  }
}

@media (max-width: 390px) {
  .provision-school-hero h1 {
    font-size:23px;
  }
  .provision-school-eyebrow {
    font-size:9px;
  }
  .provision-section {
    padding:16px 12px;
  }
  .provision-summary,
  .provision-actions {
    padding-left:12px;
    padding-right:12px;
  }
  .provision-summary-tags span {
    white-space:normal;
  }
}


/* === Global ERP UX refinement — final override layer ====================== */
/* This block intentionally comes last. It normalizes legacy screens that use
   different template generations without altering their business workflows. */
:root{
  --erp-radius-sm:9px;
  --erp-radius:13px;
  --erp-radius-lg:17px;
  --erp-control-h:44px;
  --erp-shadow:0 8px 26px rgba(15,23,42,.055);
  --erp-shadow-hover:0 12px 30px rgba(15,23,42,.085);
}
body{
  font-size:14px;
  line-height:1.5;
  letter-spacing:-.01px;
}
.erp-workspace-body .content-body{
  max-width:1540px;
  padding:30px 34px 54px;
}
.erp-workspace-body .page-header{
  margin-bottom:22px;
  gap:20px;
}
.erp-workspace-body .page-title{
  font-size:26px;
  font-weight:800;
  line-height:1.18;
}
.erp-workspace-body .page-subtitle{
  margin-top:6px;
  font-size:12.5px;
  line-height:1.55;
}
.erp-workspace-body .card,
.erp-workspace-body .filter-toolbar,
.erp-workspace-body .table-container,
.erp-workspace-body .table-responsive{
  border-color:#DCE3EC;
}
.erp-workspace-body .card{
  padding:24px;
  margin-bottom:22px;
  border-radius:var(--erp-radius-lg);
  box-shadow:var(--erp-shadow);
}
.erp-workspace-body .card-title{
  padding-bottom:11px;
  margin-bottom:19px;
  font-size:15.5px;
  line-height:1.35;
  text-transform:none;
  letter-spacing:-.08px;
}
.erp-workspace-body .form-grid-2,
.erp-workspace-body .form-grid-3,
.erp-workspace-body .form-grid-4,
.erp-workspace-body .fee-form-grid{
  gap:19px 20px;
}
.erp-workspace-body .form-group{
  gap:6px;
}
.erp-workspace-body .form-label,
.erp-workspace-body label.form-label,
.erp-workspace-body .accounts-field label,
.erp-workspace-body .transport-field label,
.erp-workspace-body .exam-field label{
  margin-bottom:1px;
  font-size:12.5px !important;
  font-weight:700 !important;
  line-height:1.4;
  color:var(--text-dark);
}
.erp-workspace-body .form-control,
.erp-workspace-body .transport-input,
.erp-workspace-body .transport-select,
.erp-workspace-body .exam-input,
.erp-workspace-body .exam-select,
.erp-workspace-body .accounts-field input,
.erp-workspace-body .accounts-field select,
.erp-workspace-body .accounts-field textarea{
  min-height:var(--erp-control-h) !important;
  padding:10px 13px !important;
  border-radius:var(--erp-radius-sm) !important;
  font-size:13.5px !important;
  line-height:1.35 !important;
}
.erp-workspace-body select.form-control,
.erp-workspace-body select.transport-select,
.erp-workspace-body select.exam-select{
  padding-right:34px !important;
}
.erp-workspace-body textarea.form-control,
.erp-workspace-body .accounts-field textarea{
  min-height:112px !important;
}
.erp-workspace-body small,
.erp-workspace-body .field-help,
.erp-workspace-body .form-help,
.erp-workspace-body .text-muted{
  font-size:11.5px;
  line-height:1.5;
}
.erp-workspace-body .btn,
.erp-workspace-body .transport-btn,
.erp-workspace-body .exam-btn{
  min-height:42px !important;
  height:auto !important;
  max-width:100%;
  padding:9px 15px !important;
  border-radius:10px !important;
  font-size:12.5px !important;
  font-weight:750 !important;
  line-height:1.2;
  white-space:nowrap !important;
  overflow:hidden;
  text-overflow:ellipsis;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.erp-workspace-body .btn:hover:not(:disabled),
.erp-workspace-body .transport-btn:hover:not(:disabled),
.erp-workspace-body .exam-btn:hover:not(:disabled){
  transform:translateY(-1px);
  box-shadow:var(--erp-shadow-hover);
}
.erp-workspace-body .btn-sm{
  min-height:36px !important;
  padding:7px 11px !important;
  font-size:11.5px !important;
}
.erp-workspace-body .action-bar,
.erp-workspace-body .erp-form-actions,
.erp-workspace-body .transport-actions,
.erp-workspace-body .exam-actions,
.erp-workspace-body .accounts-report-actions,
.erp-workspace-body .kuickpay-actions{
  gap:10px !important;
  row-gap:10px !important;
  flex-wrap:wrap !important;
}
.erp-workspace-body .action-bar > *,
.erp-workspace-body .erp-form-actions > *,
.erp-workspace-body .transport-actions > *,
.erp-workspace-body .exam-actions > *,
.erp-workspace-body .accounts-report-actions > *,
.erp-workspace-body .kuickpay-actions > *{
  margin:0 !important;
}
.erp-workspace-body td .btn,
.erp-workspace-body td .transport-btn,
.erp-workspace-body td .exam-btn{
  margin:3px 5px 3px 0 !important;
  vertical-align:middle;
}
.erp-workspace-body td form{
  display:inline-flex;
  align-items:center;
  gap:6px;
  max-width:100%;
  margin:2px 4px 2px 0;
}
.erp-workspace-body .filter-toolbar{
  padding:18px 20px;
  margin-bottom:20px;
  gap:14px;
  border-radius:var(--erp-radius);
}
.erp-workspace-body .filter-toolbar form{
  display:flex;
  align-items:end;
  gap:12px 14px !important;
  flex-wrap:wrap;
}
.erp-workspace-body .table-container,
.erp-workspace-body .table-responsive,
.erp-workspace-body .transport-table-wrap,
.erp-workspace-body .exam-table-wrap,
.erp-workspace-body .accounts-table-wrap{
  border-radius:var(--erp-radius);
  box-shadow:0 2px 10px rgba(15,23,42,.025);
}
.erp-workspace-body .data-table,
.erp-workspace-body .transport-table,
.erp-workspace-body .exam-table,
.erp-workspace-body .accounts-table{
  font-size:13px !important;
}
.erp-workspace-body .data-table th,
.erp-workspace-body .transport-table th,
.erp-workspace-body .exam-table th,
.erp-workspace-body .accounts-table th{
  padding:12px 13px !important;
  font-size:10.5px !important;
  line-height:1.35;
}
.erp-workspace-body .data-table td,
.erp-workspace-body .transport-table td,
.erp-workspace-body .exam-table td,
.erp-workspace-body .accounts-table td{
  padding:13px !important;
  line-height:1.48;
}
.erp-workspace-body .badge{
  min-height:25px;
  padding:4px 9px;
  font-size:10px;
  line-height:1;
}
.erp-workspace-body dialog,
.erp-workspace-body .modal-card,
.erp-workspace-body .transport-modal,
.erp-workspace-body .exam-modal,
.erp-workspace-body .accounts-dialog{
  border-radius:var(--erp-radius-lg) !important;
  box-shadow:0 24px 70px rgba(15,23,42,.20) !important;
}
.erp-workspace-body .module-card,
.erp-workspace-body .module-screen-card,
.erp-workspace-body .kpi-card,
.erp-workspace-body .taleem-stat-card{
  border-radius:15px;
}
.erp-workspace-body .module-icon{
  width:48px;
  height:48px;
  border-radius:13px;
}
.erp-workspace-body .module-name{
  font-size:13.5px;
  line-height:1.35;
}
.erp-workspace-body .module-description,
.erp-workspace-body .module-count{
  font-size:11px;
  line-height:1.45;
}

/* Stable SVG icon system: avoids platform-dependent emoji/line rendering. */
.erp-icon{
  width:18px;
  height:18px;
  display:inline-flex;
  flex:0 0 18px;
  align-items:center;
  justify-content:center;
  color:currentColor;
}
.erp-icon svg{
  width:100%;
  height:100%;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.nav-icon.erp-icon{
  width:19px;
  height:19px;
  flex-basis:19px;
}
.module-icon .erp-icon{
  width:24px;
  height:24px;
}
.btn .erp-icon{
  width:16px;
  height:16px;
  flex-basis:16px;
}
.header-icon-btn .erp-icon,
.sidebar-toggle-btn .erp-icon{
  width:18px;
  height:18px;
}

/* Sidebar: clearer hierarchy and touch targets. */
.sidebar{width:268px}
.sidebar.collapsed{width:68px}
.sidebar-nav{padding:14px 10px}
.nav-group-label{
  padding:14px 11px 6px;
  font-size:9.5px;
  letter-spacing:.9px;
}
.nav-item{
  min-height:42px;
  gap:11px;
  padding:9px 11px;
  margin-bottom:3px;
  border-radius:9px;
  font-size:12.5px;
}
.submenu{
  margin-left:18px;
  padding-left:11px;
  margin-top:4px;
  margin-bottom:8px;
}
.submenu-item{
  min-height:36px;
  padding:8px 10px;
  margin-bottom:2px;
  font-size:11.5px;
  line-height:1.35;
}
.sidebar-search{
  height:38px;
  border-radius:9px;
  padding:0 12px;
  font-size:12px;
}
.top-header{
  min-height:68px;
  height:68px;
  padding:0 26px;
}
.sidebar-toggle-btn,
.header-icon-btn{
  width:36px;
  height:36px;
  border-radius:9px;
}
.school-capsule-pill{
  min-height:34px;
  padding:6px 13px;
  font-size:11.5px;
}
.search-input{
  height:38px;
  border-radius:9px;
  font-size:12.5px;
}

/* Long legacy titles and actions must never collide. */
.erp-workspace-body h1,
.erp-workspace-body h2,
.erp-workspace-body h3,
.erp-workspace-body .card-title,
.erp-workspace-body .page-title,
.erp-workspace-body label{
  overflow-wrap:anywhere;
}
.erp-workspace-body [style*="display:flex"],
.erp-workspace-body [style*="display: flex"]{
  max-width:100%;
}
.erp-workspace-body .page-header .action-bar{
  justify-content:flex-end;
}
.erp-workspace-body .page-title-group{
  min-width:0;
  flex:1 1 360px;
}
.erp-workspace-body .page-header .action-bar{
  flex:0 1 auto;
}

/* Native checkboxes/radios were visually too tiny on many screens. */
.erp-workspace-body input[type="checkbox"],
.erp-workspace-body input[type="radio"]{
  width:17px;
  height:17px;
  accent-color:var(--blue);
  vertical-align:middle;
}

/* Compact widths adapt instead of causing button/input overlap. */
@media(max-width:1200px){
  .erp-workspace-body .content-body{padding:26px 24px 46px}
  .erp-workspace-body .form-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .top-header{padding:0 14px}
  .header-center{margin:0 12px}
  .erp-workspace-body .page-header .action-bar{
    width:100%;
    justify-content:flex-start;
  }
}
@media(max-width:768px){
  .sidebar{width:274px;left:-274px}
  .erp-workspace-body .content-body{padding:16px 12px 34px}
  .erp-workspace-body .page-title{font-size:22px}
  .erp-workspace-body .card{padding:17px;margin-bottom:16px}
  .erp-workspace-body .form-grid-2,
  .erp-workspace-body .form-grid-3,
  .erp-workspace-body .form-grid-4,
  .erp-workspace-body .fee-form-grid{grid-template-columns:1fr !important;gap:15px !important}
  .erp-workspace-body .btn,
  .erp-workspace-body .transport-btn,
  .erp-workspace-body .exam-btn{
    min-height:45px !important;
    width:100%;
    white-space:normal !important;
    text-overflow:clip;
  }
  .erp-workspace-body td .btn,
  .erp-workspace-body td .transport-btn,
  .erp-workspace-body td .exam-btn{
    width:auto;
    min-width:100px;
  }
  .erp-workspace-body .action-bar,
  .erp-workspace-body .erp-form-actions,
  .erp-workspace-body .transport-actions,
  .erp-workspace-body .exam-actions,
  .erp-workspace-body .accounts-report-actions,
  .erp-workspace-body .kuickpay-actions{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
  }
  .erp-workspace-body .filter-toolbar form{display:grid !important;grid-template-columns:1fr !important}
  .erp-workspace-body .filter-toolbar form > *{width:100% !important;max-width:none !important}
  .school-capsule-pill{max-width:180px;overflow:hidden}
  .school-capsule-pill span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
@media(max-width:460px){
  .erp-workspace-body .action-bar,
  .erp-workspace-body .erp-form-actions,
  .erp-workspace-body .transport-actions,
  .erp-workspace-body .exam-actions,
  .erp-workspace-body .accounts-report-actions,
  .erp-workspace-body .kuickpay-actions{grid-template-columns:1fr}
  .header-center{display:none}
  .school-capsule-pill{max-width:145px}
  .erp-workspace-body td .btn,
  .erp-workspace-body td .transport-btn,
  .erp-workspace-body td .exam-btn{width:100%;margin:4px 0 !important}
}


/* === Premium workspace visual correction ==================================
   Final high-specificity layer: removes the accidental blue sidebar state,
   gives controls breathing room, and makes the admin ERP feel intentional. */
.erp-workspace-body{
  --workspace-accent:#b8954f;
  --workspace-accent-deep:#927234;
  --workspace-ink:#1d2028;
  --workspace-soft:#f6f7f9;
  --workspace-border:#e2e5ea;
}
.erp-workspace-body{
  background:#f4f5f7;
}
.erp-workspace-body .sidebar{
  background:#181a1f;
  border-right:1px solid rgba(255,255,255,.045);
  box-shadow:10px 0 30px rgba(15,18,24,.06);
}
.erp-workspace-body .sidebar-header{
  background:#15171b;
  border-bottom:1px solid rgba(255,255,255,.055);
}
.erp-workspace-body .sidebar-nav{
  padding:14px 10px 24px;
}
.erp-workspace-body .nav-group-label{
  color:#666d78;
  padding:16px 11px 6px;
  font-size:9px;
  letter-spacing:1.05px;
}
.erp-workspace-body .nav-item{
  min-height:42px;
  padding:9px 11px;
  margin-bottom:3px;
  border:1px solid transparent;
  border-radius:9px;
  color:#9da4b0;
  font-size:12.25px;
  font-weight:580;
  transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease;
}
.erp-workspace-body .nav-item:hover{
  background:#23262c;
  color:#f7f7f8;
  border-color:#2d3037;
  transform:translateX(1px);
}
.erp-workspace-body .nav-item.active{
  background:linear-gradient(135deg,#d1b16e,#b8954f)!important;
  color:#1c1c1c!important;
  border-color:#d8bd84!important;
  box-shadow:0 6px 16px rgba(184,149,79,.17);
  font-weight:800;
}
.erp-workspace-body .nav-item.parent-active{
  background:#26231c!important;
  color:#e7c77f!important;
  border-color:rgba(203,170,101,.24)!important;
  box-shadow:inset 3px 0 0 #b8954f;
  font-weight:750;
}
.erp-workspace-body .submenu{
  margin-left:18px;
  padding:5px 0 5px 11px;
  border-left:1px solid #30333a;
}
.erp-workspace-body .submenu-item{
  min-height:35px;
  padding:8px 10px!important;
  margin-bottom:2px;
  border-radius:8px!important;
  color:#858d9a;
  font-size:11.25px;
  line-height:1.35;
  font-weight:520;
  transition:background .14s ease,color .14s ease,padding .14s ease;
}
.erp-workspace-body .submenu-item:hover{
  color:#f2f3f5;
  background:#23262c;
}
.erp-workspace-body .submenu-item.active{
  padding-left:12px!important;
  background:#2b271f!important;
  color:#e6c67e!important;
  box-shadow:inset 3px 0 0 #b8954f;
  font-weight:750;
}
.erp-workspace-body .submenu-item.active::before{
  display:none!important;
}
.erp-workspace-body .sidebar-search{
  height:40px;
  border:1px solid #30333a;
  border-radius:9px;
  background:#202329;
  color:#e6e7e9;
  padding:0 12px;
}
.erp-workspace-body .sidebar-search::placeholder{color:#707782}
.erp-workspace-body .sidebar-search:focus{
  border-color:#665a40;
  box-shadow:0 0 0 3px rgba(184,149,79,.10);
  outline:none;
}
.erp-workspace-body .school-logo-img,
.erp-workspace-body .school-logo-placeholder{
  border-color:#b8954f;
}
.erp-workspace-body .school-sub-text{color:#d4b774}

.erp-workspace-body .top-header{
  background:rgba(255,255,255,.96);
  border-bottom:1px solid #e5e7eb;
  box-shadow:0 3px 18px rgba(15,23,42,.035);
  backdrop-filter:blur(12px);
}
.erp-workspace-body .school-capsule-pill{
  background:#f7f2e7!important;
  color:#735b2e!important;
  border:1px solid #e5d8bb;
  box-shadow:none!important;
  font-weight:750;
}
.erp-workspace-body .header-icon-btn,
.erp-workspace-body .sidebar-toggle-btn{
  color:#5f6672;
}
.erp-workspace-body .header-icon-btn:hover,
.erp-workspace-body .sidebar-toggle-btn:hover{
  background:#f4f5f7;
  color:#20232a;
}
.erp-workspace-body .search-input{
  background:#f7f8fa;
  border-color:#e2e5ea;
}
.erp-workspace-body .search-input:focus{
  border-color:#b89b61!important;
  box-shadow:0 0 0 3px rgba(184,149,79,.10);
  background:#fff;
}

.erp-workspace-body .content-body{
  background:#f4f5f7;
}
.erp-workspace-body .card,
.erp-workspace-body .filter-toolbar{
  border-color:var(--workspace-border);
  box-shadow:0 7px 24px rgba(18,24,40,.045);
}
.erp-workspace-body .card{
  border-radius:15px;
}
.erp-workspace-body .card-title{
  color:#252832;
}
.erp-workspace-body .form-control,
.erp-workspace-body .transport-input,
.erp-workspace-body .transport-select,
.erp-workspace-body .exam-input,
.erp-workspace-body .exam-select,
.erp-workspace-body .accounts-field input,
.erp-workspace-body .accounts-field select,
.erp-workspace-body .accounts-field textarea{
  border-color:#dfe3e8!important;
  background:#fff;
  box-shadow:0 1px 2px rgba(16,24,40,.025);
}
.erp-workspace-body .form-control:focus,
.erp-workspace-body .transport-input:focus,
.erp-workspace-body .transport-select:focus,
.erp-workspace-body .exam-input:focus,
.erp-workspace-body .exam-select:focus,
.erp-workspace-body .accounts-field input:focus,
.erp-workspace-body .accounts-field select:focus,
.erp-workspace-body .accounts-field textarea:focus{
  border-color:#b89b61!important;
  box-shadow:0 0 0 3px rgba(184,149,79,.11)!important;
  outline:none;
}
.erp-workspace-body .btn{
  border-radius:10px!important;
  letter-spacing:0;
  box-shadow:0 1px 2px rgba(16,24,40,.045);
}
.erp-workspace-body .btn-primary{
  background:#2b2e36!important;
  border-color:#2b2e36!important;
  color:#fff!important;
}
.erp-workspace-body .btn-primary:hover{
  background:#17191f!important;
  border-color:#17191f!important;
}
.erp-workspace-body .btn-secondary{
  background:#fff!important;
  border-color:#dfe3e8!important;
  color:#30343d!important;
}
.erp-workspace-body .btn-secondary:hover{
  background:#f6f7f9!important;
  border-color:#cfd4dc!important;
}
.erp-workspace-body .btn-purple{
  background:#6f6250!important;
  border-color:#6f6250!important;
  color:#fff!important;
}
.erp-workspace-body .btn-purple:hover{background:#5c5143!important}
.erp-workspace-body .btn-success{
  background:#2f7b5b!important;
  border-color:#2f7b5b!important;
}
.erp-workspace-body .btn-danger{
  background:#b94050!important;
  border-color:#b94050!important;
}
.erp-workspace-body .data-table th,
.erp-workspace-body .transport-table th,
.erp-workspace-body .exam-table th,
.erp-workspace-body .accounts-table th{
  background:#f5f6f8!important;
  color:#4a505b!important;
  border-bottom-color:#dde1e7!important;
}
.erp-workspace-body .data-table tbody tr:hover:not(.erp-empty-row),
.erp-workspace-body .transport-table tbody tr:hover,
.erp-workspace-body .exam-table tbody tr:hover,
.erp-workspace-body .accounts-table tbody tr:hover{
  background:#faf8f3!important;
}
.erp-workspace-body .erp-global-progress span{
  background:linear-gradient(90deg,#947234,#d0ad67)!important;
}

@media(max-width:768px){
  .erp-workspace-body .sidebar{width:278px;left:-278px}
  .erp-workspace-body .sidebar.open{left:0}
}

.erp-workspace-body .nav-item .nav-icon.erp-icon{
  width:28px!important;
  height:28px!important;
  flex:0 0 28px!important;
  padding:5px;
  border-radius:8px;
  background:rgba(255,255,255,.045);
  color:#9da4b0;
}
.erp-workspace-body .nav-item:hover .nav-icon.erp-icon{
  background:rgba(255,255,255,.075);
  color:#fff;
}
.erp-workspace-body .nav-item.parent-active .nav-icon.erp-icon{
  background:rgba(184,149,79,.12);
  color:#e6c67e;
}
.erp-workspace-body .nav-item.active .nav-icon.erp-icon{
  background:rgba(24,26,31,.13);
  color:#1d2028;
}
.erp-workspace-body .nav-item .nav-icon.erp-icon svg{stroke-width:2.05}
.erp-workspace-body .header-school-mark{
  width:20px;
  height:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#80662f;
}
.erp-workspace-body .header-school-mark svg{
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}


/* === Unified submodule design system — based on the polished Fee Deposit ===
   Applies only to admin/accounting workspace screens. Business logic, route
   structure and field ordering stay untouched; this is a consistent visual skin. */
.erp-workspace-body{
  --module-gold:#b8954f;
  --module-gold-deep:#927234;
  --module-gold-soft:#f7f1e5;
  --module-charcoal:#252832;
  --module-charcoal-deep:#15171c;
  --module-border:#e3e6eb;
  --module-muted:#6e7683;
  --module-surface:#ffffff;
  --module-soft:#f7f8fa;
  --module-radius:15px;
  --module-control-radius:10px;
}

/* Page rhythm */
.erp-workspace-body .content-body{
  padding:30px 34px 54px;
}
.erp-workspace-body .page-header{
  margin-bottom:20px;
  gap:18px;
}
.erp-workspace-body .page-title{
  font-size:27px!important;
  line-height:1.16;
  font-weight:820!important;
  letter-spacing:-.42px;
  color:#1d2027;
}
.erp-workspace-body .page-subtitle{
  margin-top:6px;
  font-size:12px!important;
  line-height:1.5;
  color:#8a919d!important;
}
.erp-workspace-body .page-title-group{
  gap:0;
}

/* Generic module cards now use the same structure as Fee Deposit. */
.erp-workspace-body .card:not(.kpi-card):not(.module-card):not(.module-screen-card):not(.taleem-stat-card):not(.portal-card),
.erp-workspace-body .filter-toolbar{
  position:relative;
  background:var(--module-surface)!important;
  border:1px solid var(--module-border)!important;
  border-radius:var(--module-radius)!important;
  box-shadow:0 10px 30px rgba(18,24,40,.05)!important;
}
.erp-workspace-body .card:not(.kpi-card):not(.module-card):not(.module-screen-card):not(.taleem-stat-card):not(.portal-card){
  padding:26px 28px!important;
  margin-bottom:22px!important;
}
.erp-workspace-body .card:not(.kpi-card):not(.module-card):not(.module-screen-card):not(.taleem-stat-card):not(.portal-card)::before{
  content:"";
  position:absolute;
  left:0;
  top:22px;
  bottom:22px;
  width:3px;
  border-radius:0 3px 3px 0;
  background:linear-gradient(180deg,var(--module-gold),#dfc486);
}
.erp-workspace-body .filter-toolbar{
  padding:18px 20px!important;
  margin-bottom:20px!important;
}

/* Section headings get the same visual cue as the Fee Deposit kicker. */
.erp-workspace-body .card-title{
  display:flex!important;
  align-items:center;
  gap:10px;
  min-height:30px;
  padding:0 0 15px!important;
  margin:0 0 19px!important;
  border-bottom:1px solid #edf0f3!important;
  color:#252832!important;
  font-size:15px!important;
  line-height:1.35;
  font-weight:800!important;
  text-transform:none!important;
  letter-spacing:-.08px!important;
}
.erp-workspace-body .card-title .erp-card-title-icon{
  width:28px;
  height:28px;
  flex:0 0 28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  background:var(--module-gold-soft);
  color:var(--module-gold-deep);
}
.erp-workspace-body .card-title .erp-card-title-icon svg{
  width:15px;
  height:15px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.erp-workspace-body .erp-card-hint,
.erp-workspace-body .form-help,
.erp-workspace-body .field-help{
  color:#7b8390!important;
  font-size:11.5px!important;
  line-height:1.55!important;
}

/* Forms: calmer labels, taller controls, more air. */
.erp-workspace-body .form-group{
  gap:7px!important;
  min-width:0;
}
.erp-workspace-body .form-label,
.erp-workspace-body label.form-label,
.erp-workspace-body .accounts-field label,
.erp-workspace-body .transport-field label,
.erp-workspace-body .exam-field label{
  margin:0 0 1px!important;
  color:#4b535f!important;
  font-size:12px!important;
  line-height:1.4;
  font-weight:750!important;
  letter-spacing:.005em;
}
.erp-workspace-body .form-grid-2,
.erp-workspace-body .form-grid-3,
.erp-workspace-body .form-grid-4,
.erp-workspace-body .fee-form-grid,
.erp-workspace-body .transport-form-grid,
.erp-workspace-body .exam-form-grid,
.erp-workspace-body .accounts-form-grid{
  gap:18px 20px!important;
}
.erp-workspace-body .form-control,
.erp-workspace-body .transport-input,
.erp-workspace-body .transport-select,
.erp-workspace-body .exam-input,
.erp-workspace-body .exam-select,
.erp-workspace-body .accounts-field input,
.erp-workspace-body .accounts-field select,
.erp-workspace-body .accounts-field textarea{
  min-height:44px!important;
  height:44px;
  padding:10px 13px!important;
  border:1px solid var(--module-border)!important;
  border-radius:var(--module-control-radius)!important;
  background:#fff!important;
  color:#262a32!important;
  font-size:13.25px!important;
  line-height:1.35!important;
  box-shadow:0 1px 2px rgba(16,24,40,.025)!important;
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
.erp-workspace-body textarea.form-control,
.erp-workspace-body .accounts-field textarea{
  min-height:112px!important;
  height:auto!important;
}
.erp-workspace-body .form-control[readonly],
.erp-workspace-body .form-control:disabled,
.erp-workspace-body input[readonly],
.erp-workspace-body select:disabled{
  background:var(--module-soft)!important;
  color:#687180!important;
  opacity:1;
}
.erp-workspace-body .form-control:focus,
.erp-workspace-body .transport-input:focus,
.erp-workspace-body .transport-select:focus,
.erp-workspace-body .exam-input:focus,
.erp-workspace-body .exam-select:focus,
.erp-workspace-body .accounts-field input:focus,
.erp-workspace-body .accounts-field select:focus,
.erp-workspace-body .accounts-field textarea:focus{
  border-color:#b7a16e!important;
  background:#fff!important;
  box-shadow:0 0 0 3px rgba(184,149,79,.12)!important;
  outline:none!important;
}
.erp-workspace-body input[type="file"].form-control{
  padding:8px 10px!important;
}
.erp-workspace-body input[type="checkbox"],
.erp-workspace-body input[type="radio"]{
  accent-color:#9a7a3d;
}

/* Inline + / search / lookup buttons become one integrated field. */
.erp-workspace-body .erp-input-action-group{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:stretch!important;
  gap:0!important;
  width:100%;
  min-width:0;
  overflow:hidden;
  border:1px solid #d7dbe1;
  border-radius:11px;
  background:#fff;
  box-shadow:0 2px 7px rgba(16,24,40,.04);
  transition:border-color .15s ease,box-shadow .15s ease;
}
.erp-workspace-body .erp-input-action-group:focus-within{
  border-color:#b08d48;
  box-shadow:0 0 0 3px rgba(184,149,79,.12);
}
.erp-workspace-body .erp-input-action-group > .form-control,
.erp-workspace-body .erp-input-action-group > input,
.erp-workspace-body .erp-input-action-group > select{
  min-width:0;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:#fff!important;
}
.erp-workspace-body .erp-input-action-group > .btn{
  min-width:44px!important;
  width:auto!important;
  min-height:44px!important;
  height:44px!important;
  margin:0!important;
  padding:0 13px!important;
  border:0!important;
  border-left:1px solid #e2e5e9!important;
  border-radius:0!important;
  background:#252832!important;
  color:#fff!important;
  box-shadow:none!important;
}
.erp-workspace-body .erp-input-action-group > .btn:hover{
  background:#15171c!important;
  transform:none!important;
}
.erp-workspace-body .erp-input-action-group > .btn .erp-icon{
  width:16px;
  height:16px;
}

/* Button hierarchy mirrors Fee Deposit. */
.erp-workspace-body .btn,
.erp-workspace-body .transport-btn,
.erp-workspace-body .exam-btn{
  min-height:42px!important;
  height:auto!important;
  padding:9px 15px!important;
  gap:7px!important;
  border-radius:10px!important;
  font-size:12px!important;
  line-height:1.2;
  font-weight:760!important;
  white-space:nowrap;
  box-shadow:0 1px 2px rgba(16,24,40,.04)!important;
  transition:transform .14s ease,box-shadow .14s ease,background .14s ease,border-color .14s ease!important;
}
.erp-workspace-body .btn:hover:not(:disabled),
.erp-workspace-body .transport-btn:hover:not(:disabled),
.erp-workspace-body .exam-btn:hover:not(:disabled){
  transform:translateY(-1px);
  box-shadow:0 7px 16px rgba(18,24,40,.07)!important;
}
.erp-workspace-body .btn-primary{
  background:#292c34!important;
  border-color:#292c34!important;
  color:#fff!important;
}
.erp-workspace-body .btn-primary:hover{background:#15171c!important;border-color:#15171c!important}
.erp-workspace-body .btn-secondary{
  background:#fff!important;
  color:#3d434d!important;
  border-color:#dfe3e8!important;
}
.erp-workspace-body .btn-secondary:hover{background:#f6f7f9!important;border-color:#cfd4dc!important}
.erp-workspace-body .btn-success{
  background:#2d7b59!important;
  border-color:#2d7b59!important;
  color:#fff!important;
}
.erp-workspace-body .btn-success:hover{background:#246749!important}
.erp-workspace-body .btn-purple{
  background:#f5f0e5!important;
  color:#71592d!important;
  border-color:#e3d5b6!important;
}
.erp-workspace-body .btn-purple:hover{background:#eee5d2!important;border-color:#d7c49c!important}
.erp-workspace-body .btn-gold{
  background:#b8954f!important;
  color:#1f2023!important;
  border-color:#b8954f!important;
}
.erp-workspace-body .btn-danger{
  background:#b94050!important;
  color:#fff!important;
  border-color:#b94050!important;
}
.erp-workspace-body button[type="reset"].btn-danger,
.erp-workspace-body input[type="reset"].btn-danger{
  background:#fff!important;
  color:#a33544!important;
  border-color:#e8c7cc!important;
}
.erp-workspace-body button[type="reset"].btn-danger:hover,
.erp-workspace-body input[type="reset"].btn-danger:hover{
  background:#fff2f4!important;
  border-color:#ddb1b8!important;
}

/* Action rows no longer crush together. */
.erp-workspace-body .action-bar,
.erp-workspace-body .erp-form-actions,
.erp-workspace-body .transport-actions,
.erp-workspace-body .exam-actions,
.erp-workspace-body .accounts-report-actions,
.erp-workspace-body .bank-provider-actions,
.erp-workspace-body .kuickpay-actions{
  display:flex;
  align-items:center;
  gap:10px!important;
  row-gap:10px!important;
  flex-wrap:wrap!important;
}
.erp-workspace-body form > .action-bar,
.erp-workspace-body form > .erp-form-actions{
  margin-top:22px!important;
  padding-top:19px;
  border-top:1px solid #edf0f3;
}

/* Tables: neutral, spacious and readable. */
.erp-workspace-body .table-container,
.erp-workspace-body .table-responsive,
.erp-workspace-body .transport-table-wrap,
.erp-workspace-body .exam-table-wrap,
.erp-workspace-body .accounts-table-wrap{
  overflow:auto;
  border:1px solid var(--module-border)!important;
  border-radius:12px!important;
  background:#fff;
  box-shadow:0 2px 10px rgba(16,24,40,.025);
}
.erp-workspace-body .data-table,
.erp-workspace-body .transport-table,
.erp-workspace-body .exam-table,
.erp-workspace-body .accounts-table{
  width:100%;
  font-size:12.75px!important;
}
.erp-workspace-body .data-table th,
.erp-workspace-body .transport-table th,
.erp-workspace-body .exam-table th,
.erp-workspace-body .accounts-table th{
  padding:12px 13px!important;
  background:#f5f6f8!important;
  color:#525965!important;
  font-size:10.5px!important;
  line-height:1.35;
  font-weight:800!important;
  text-transform:uppercase;
  letter-spacing:.045em;
  border-bottom:1px solid #dde1e7!important;
}
.erp-workspace-body .data-table td,
.erp-workspace-body .transport-table td,
.erp-workspace-body .exam-table td,
.erp-workspace-body .accounts-table td{
  padding:13px!important;
  line-height:1.48;
  vertical-align:middle;
  border-bottom-color:#eef0f3!important;
}
.erp-workspace-body .data-table tbody tr:hover:not(.erp-empty-row),
.erp-workspace-body .transport-table tbody tr:hover,
.erp-workspace-body .exam-table tbody tr:hover,
.erp-workspace-body .accounts-table tbody tr:hover{
  background:#faf8f3!important;
}
.erp-workspace-body td .btn{
  margin:3px 5px 3px 0!important;
}

/* Tabs and filter chips share the quiet gold/charcoal hierarchy. */
.erp-workspace-body .status-filter-tabs,
.erp-workspace-body .user-setting-tabs{
  display:flex;
  gap:8px!important;
  flex-wrap:wrap;
  padding:5px;
  border:1px solid var(--module-border);
  border-radius:12px;
  background:#f7f8fa;
}
.erp-workspace-body .status-filter-tabs a,
.erp-workspace-body .user-setting-tab{
  min-height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:7px 12px!important;
  border:1px solid transparent!important;
  border-radius:8px!important;
  background:transparent!important;
  color:#69717e!important;
  font-size:11.5px;
  font-weight:700;
  text-decoration:none;
}
.erp-workspace-body .status-filter-tabs a.active,
.erp-workspace-body .user-setting-tab.active{
  background:#fff!important;
  color:#6f572b!important;
  border-color:#e3d6ba!important;
  box-shadow:0 2px 8px rgba(18,24,40,.05);
}

/* Dialogs feel like the same product, not browser defaults. */
.erp-workspace-body dialog{
  border:1px solid var(--module-border)!important;
  border-radius:16px!important;
  padding:24px!important;
  background:#fff;
  color:#252832;
  box-shadow:0 28px 80px rgba(18,24,40,.22)!important;
}
.erp-workspace-body dialog::backdrop{
  background:rgba(15,18,24,.45);
  backdrop-filter:blur(2px);
}

/* Alerts are quieter and more premium. */
.erp-workspace-body .alert{
  border-radius:11px!important;
  padding:12px 14px!important;
  border-width:1px!important;
  box-shadow:none!important;
}

/* Legacy Taleem-specific admission/registration shells inherit the new card feel. */
.erp-workspace-body .reg-card,
.erp-workspace-body .smart-taleem .card{
  border-radius:15px!important;
  border-color:var(--module-border)!important;
  box-shadow:0 10px 30px rgba(18,24,40,.05)!important;
}
.erp-workspace-body .reg-photo-preview,
.erp-workspace-body .smart-photo-preview,
.erp-workspace-body .registration-photo-box{
  border-radius:12px!important;
  border-color:#e0e3e8!important;
  background:#f7f8fa!important;
}
.erp-workspace-body .reg-custom,
.erp-workspace-body .smart-lower{
  border-top-color:#edf0f3!important;
  margin-top:24px!important;
  padding-top:22px!important;
}
.erp-workspace-body .reg-custom-title,
.erp-workspace-body .smart-lower-title{
  color:#2b2e36;
  font-size:14px;
  font-weight:800;
}

/* KPI cards keep their semantic numbers but lose loud blue framing. */
.erp-workspace-body .kpi-card{
  border:1px solid var(--module-border)!important;
  border-radius:14px!important;
  background:#fff!important;
  box-shadow:0 7px 22px rgba(18,24,40,.04)!important;
}
.erp-workspace-body .kpi-card::before{
  background:linear-gradient(180deg,#d8c28e,#b8954f)!important;
}

/* Responsive rules: keep air without wasting mobile width. */
@media(max-width:900px){
  .erp-workspace-body .content-body{padding:24px 20px 44px}
  .erp-workspace-body .card:not(.kpi-card):not(.module-card):not(.module-screen-card):not(.taleem-stat-card):not(.portal-card){padding:22px!important}
}
@media(max-width:700px){
  .erp-workspace-body .content-body{padding:15px 12px 32px}
  .erp-workspace-body .page-title{font-size:23px!important}
  .erp-workspace-body .card:not(.kpi-card):not(.module-card):not(.module-screen-card):not(.taleem-stat-card):not(.portal-card){padding:18px!important;border-radius:13px!important}
  .erp-workspace-body .card:not(.kpi-card):not(.module-card):not(.module-screen-card):not(.taleem-stat-card):not(.portal-card)::before{top:18px;bottom:18px}
  .erp-workspace-body .form-grid-2,
  .erp-workspace-body .form-grid-3,
  .erp-workspace-body .form-grid-4,
  .erp-workspace-body .fee-form-grid,
  .erp-workspace-body .transport-form-grid,
  .erp-workspace-body .exam-form-grid,
  .erp-workspace-body .accounts-form-grid{
    grid-template-columns:1fr!important;
    gap:15px!important;
  }
  .erp-workspace-body .action-bar,
  .erp-workspace-body .erp-form-actions,
  .erp-workspace-body .transport-actions,
  .erp-workspace-body .exam-actions,
  .erp-workspace-body .accounts-report-actions,
  .erp-workspace-body .bank-provider-actions,
  .erp-workspace-body .kuickpay-actions{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
  }
  .erp-workspace-body .action-bar > *,
  .erp-workspace-body .erp-form-actions > *,
  .erp-workspace-body .transport-actions > *,
  .erp-workspace-body .exam-actions > *,
  .erp-workspace-body .accounts-report-actions > *,
  .erp-workspace-body .bank-provider-actions > *,
  .erp-workspace-body .kuickpay-actions > *{
    width:100%!important;
    max-width:none!important;
  }
}
@media(max-width:460px){
  .erp-workspace-body .action-bar,
  .erp-workspace-body .erp-form-actions,
  .erp-workspace-body .transport-actions,
  .erp-workspace-body .exam-actions,
  .erp-workspace-body .accounts-report-actions,
  .erp-workspace-body .bank-provider-actions,
  .erp-workspace-body .kuickpay-actions{grid-template-columns:1fr}
}


/* Native module containers that predate the shared .card class. */
.erp-workspace-body .accounts-card,
.erp-workspace-body .exam-card,
.erp-workspace-body .transport-card,
.erp-workspace-body .user-edit-panel,
.erp-workspace-body .user-setting-panel,
.erp-workspace-body .provision-school-card{
  position:relative;
  background:#fff!important;
  border:1px solid var(--module-border)!important;
  border-radius:var(--module-radius)!important;
  box-shadow:0 10px 30px rgba(18,24,40,.05)!important;
  padding:26px 28px!important;
  margin-bottom:22px!important;
}
.erp-workspace-body .accounts-card::before,
.erp-workspace-body .exam-card::before,
.erp-workspace-body .transport-card::before,
.erp-workspace-body .user-edit-panel::before,
.erp-workspace-body .user-setting-panel::before,
.erp-workspace-body .provision-school-card::before{
  content:"";
  position:absolute;
  left:0;
  top:22px;
  bottom:22px;
  width:3px;
  border-radius:0 3px 3px 0;
  background:linear-gradient(180deg,var(--module-gold),#dfc486);
}
.erp-workspace-body .accounts-shell,
.erp-workspace-body .user-setting-shell{
  max-width:1380px;
  margin-left:auto;
  margin-right:auto;
}
.erp-workspace-body .fee-summary-box{
  border:1px solid var(--module-border)!important;
  border-radius:12px!important;
  background:#fff!important;
  box-shadow:0 4px 16px rgba(18,24,40,.035)!important;
  padding:14px!important;
}
.erp-workspace-body .fee-summary-box span{
  color:#7b8390!important;
  font-size:10px!important;
  letter-spacing:.045em;
}
.erp-workspace-body .fee-summary-box strong{
  color:#252832!important;
  font-size:17px!important;
}
.erp-workspace-body .user-edit-panel h2,
.erp-workspace-body .user-setting-panel h2,
.erp-workspace-body .transport-card h2,
.erp-workspace-body .exam-card h2,
.erp-workspace-body .accounts-card h2{
  color:#252832;
  letter-spacing:-.2px;
}
@media(max-width:700px){
  .erp-workspace-body .accounts-card,
  .erp-workspace-body .exam-card,
  .erp-workspace-body .transport-card,
  .erp-workspace-body .user-edit-panel,
  .erp-workspace-body .user-setting-panel,
  .erp-workspace-body .provision-school-card{
    padding:18px!important;
    border-radius:13px!important;
  }
}


/* === Mobile + dialog resilience audit =======================================
   Final safety layer after the unified visual rollout. It deliberately wins
   over older breakpoint rules so drawers, dialogs and narrow layouts behave
   consistently across every ERP module. */
html{
  max-width:100%;
  overflow-x:hidden;
}
body{
  max-width:100%;
  overflow-x:hidden;
}
.app-container{
  width:100%;
  max-width:100%;
  min-width:0;
}
.main-wrapper{
  min-width:0!important;
  max-width:100%;
  flex:1 1 0;
}
.content-body{
  min-width:0!important;
  max-width:100%;
}
.content-body > *{
  min-width:0;
  max-width:100%;
}
img,svg,video,canvas{
  max-width:100%;
}
.erp-workspace-body .table-container,
.erp-workspace-body .table-responsive,
.erp-workspace-body .transport-table-wrap,
.erp-workspace-body .exam-table-wrap,
.erp-workspace-body .accounts-table-wrap,
.client-portal-body .portal-table-wrap{
  width:100%;
  max-width:100%;
  overflow-x:auto!important;
  -webkit-overflow-scrolling:touch;
}

/* Native dialogs: always viewport-centered, never top-left. */
dialog[open]{
  position:fixed!important;
  inset:0!important;
  margin:auto!important;
  width:auto;
  max-width:min(760px,calc(100vw - 32px))!important;
  max-height:calc(100dvh - 32px)!important;
  overflow:auto!important;
  overscroll-behavior:contain;
}
dialog[open] > *{
  max-width:100%!important;
  min-width:0!important;
}
dialog[open] form,
dialog[open] .form-grid-2,
dialog[open] .form-grid-3,
dialog[open] .form-grid-4{
  max-width:100%!important;
  min-width:0!important;
}
dialog::backdrop{
  background:rgba(15,18,24,.46)!important;
  backdrop-filter:blur(2px);
}
.modal-backdrop{
  align-items:center!important;
  justify-content:center!important;
  padding:16px!important;
  overflow:auto;
}
.modal-card{
  width:min(680px,100%)!important;
  max-width:100%!important;
  max-height:calc(100dvh - 32px)!important;
  margin:auto!important;
  overflow:auto!important;
}

/* Add buttons should be visible and feel attached to the field. */
.erp-workspace-body .erp-input-action-group > .btn[aria-label="Add item"],
.erp-workspace-body .erp-input-action-group > .btn[title="Add item"]{
  min-width:44px!important;
  width:44px!important;
  padding:0!important;
  background:#f7f1e5!important;
  color:#7b5e25!important;
  border-left:1px solid #dfd1b2!important;
}
.erp-workspace-body .erp-input-action-group > .btn[aria-label="Add item"]:hover,
.erp-workspace-body .erp-input-action-group > .btn[title="Add item"]:hover{
  background:#eee3cc!important;
  color:#5f471b!important;
}
.erp-workspace-body .erp-input-action-group > .btn[aria-label="Add item"] .erp-icon,
.erp-workspace-body .erp-input-action-group > .btn[title="Add item"] .erp-icon{
  width:18px!important;
  height:18px!important;
  color:currentColor!important;
}
.erp-workspace-body .form-group > [style*="display:flex"],
.erp-workspace-body .form-group > [style*="display: flex"]{
  min-width:0;
}
.erp-workspace-body .form-group > [style*="display:flex"] > .form-control,
.erp-workspace-body .form-group > [style*="display: flex"] > .form-control{
  min-width:0;
  flex:1 1 auto;
}

/* Dashboard: true responsive grid. Previous rules changed columns without
   switching the original flex container to grid, so the breakpoint was inert. */
.erp-workspace-body .dashboard-datebar{
  width:100%;
  max-width:1100px;
  margin:0 auto 18px;
  border-radius:14px;
  padding:16px 18px;
  border:1px solid var(--module-border,#e3e6eb);
  box-shadow:0 7px 24px rgba(18,24,40,.04);
  background:#fff;
}
.erp-workspace-body .taleem-dashboard-cards{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  width:100%;
  max-width:1100px;
  margin:0 auto;
  gap:14px!important;
}
.erp-workspace-body .taleem-stat-card{
  width:100%;
  max-width:100%;
  min-width:0!important;
  padding:19px 20px!important;
  border:1px solid var(--module-border,#e3e6eb)!important;
  border-radius:15px!important;
  background:#fff!important;
  box-shadow:0 8px 24px rgba(18,24,40,.045)!important;
}
.erp-workspace-body .taleem-card-title{
  justify-content:flex-start;
  gap:10px;
  min-width:0;
  color:#2a2d35;
  font-size:13px;
  font-weight:800;
}
.erp-workspace-body .dashboard-stat-icon{
  width:30px;
  height:30px;
  flex:0 0 30px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:9px;
  background:#f7f1e5;
  color:#80642e;
}
.erp-workspace-body .dashboard-stat-icon svg{
  width:16px;
  height:16px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.erp-workspace-body .taleem-card-value{
  text-align:left;
  font-size:25px;
  margin:10px 0 12px;
  overflow-wrap:anywhere;
}
.erp-workspace-body .taleem-card-split{
  text-align:left;
}
.erp-workspace-body .taleem-card-caption{
  text-align:left;
}
.erp-workspace-body .taleem-progress{
  height:4px;
}

/* Prevent rigid inline layouts from escaping the viewport. */
.erp-workspace-body .page-header,
.erp-workspace-body .filter-toolbar,
.erp-workspace-body .action-bar,
.erp-workspace-body .erp-form-actions,
.erp-workspace-body .user-setting-toolbar,
.erp-workspace-body .transport-toolbar,
.erp-workspace-body .exam-toolbar,
.erp-workspace-body .accounts-toolbar{
  max-width:100%;
  min-width:0;
}
.erp-workspace-body .page-title-group,
.erp-workspace-body .header-left,
.erp-workspace-body .header-right{
  min-width:0;
}
.erp-workspace-body .card,
.erp-workspace-body .accounts-card,
.erp-workspace-body .exam-card,
.erp-workspace-body .transport-card,
.erp-workspace-body .user-edit-panel,
.erp-workspace-body .user-setting-panel,
.erp-workspace-body .provision-school-card{
  max-width:100%;
  min-width:0;
}
.erp-workspace-body table{
  max-width:100%;
}
.erp-workspace-body pre,
.erp-workspace-body code{
  max-width:100%;
  overflow-wrap:anywhere;
}

/* The mobile drawer uses .mobile-open in JavaScript. A later desktop skin had
   accidentally overridden it with .sidebar { left:-278px }, leaving only the
   dim backdrop visible. */
@media(max-width:768px){
  .erp-workspace-body .app-container,
  .client-portal-body .app-container{
    display:block;
    min-height:100dvh;
  }
  .erp-workspace-body .main-wrapper,
  .client-portal-body .main-wrapper{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }

  .erp-workspace-body .sidebar,
  .client-portal-body .sidebar{
    position:fixed!important;
    top:0!important;
    bottom:0!important;
    left:0!important;
    width:min(86vw,296px)!important;
    height:100dvh!important;
    max-height:100dvh!important;
    transform:translate3d(-105%,0,0)!important;
    transition:transform .22s ease!important;
    z-index:10020!important;
    overflow:hidden;
    box-shadow:18px 0 42px rgba(0,0,0,.28)!important;
  }
  .erp-workspace-body .sidebar.mobile-open,
  .client-portal-body .sidebar.mobile-open{
    transform:translate3d(0,0,0)!important;
  }
  .erp-workspace-body .sidebar-nav,
  .client-portal-body .sidebar-nav{
    overflow-y:auto!important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    padding-bottom:32px!important;
  }
  .sidebar-mobile-backdrop{
    display:block!important;
    position:fixed!important;
    inset:0!important;
    z-index:10010!important;
    background:rgba(12,15,20,.50)!important;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .2s ease,visibility .2s ease;
  }
  body.sidebar-open .sidebar-mobile-backdrop{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }

  .erp-workspace-body .top-header,
  .client-portal-body .top-header{
    width:100%;
    max-width:100%;
    min-width:0;
    height:60px!important;
    min-height:60px!important;
    padding:0 10px!important;
    gap:8px;
  }
  .erp-workspace-body .header-left,
  .client-portal-body .header-left{
    flex:1 1 auto;
    min-width:0;
    gap:8px!important;
  }
  .erp-workspace-body .sidebar-toggle-btn,
  .client-portal-body .sidebar-toggle-btn{
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
    width:38px!important;
    height:38px!important;
    flex:0 0 38px;
    border:1px solid #e2e5ea;
    background:#fff;
    color:#343943;
  }
  .erp-workspace-body .school-capsule-pill,
  .client-portal-body .school-capsule-pill{
    min-width:0!important;
    max-width:min(44vw,170px)!important;
    height:34px;
    overflow:hidden!important;
    white-space:nowrap!important;
    text-overflow:ellipsis!important;
    padding:5px 9px!important;
  }
  .erp-workspace-body .school-capsule-pill span:last-child,
  .client-portal-body .school-capsule-pill span:last-child{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .erp-workspace-body .header-center,
  .client-portal-body .header-center{
    display:none!important;
  }
  .erp-workspace-body .header-right,
  .client-portal-body .header-right{
    flex:0 0 auto;
    gap:5px!important;
  }
  .erp-workspace-body .header-right .user-profile-btn,
  .client-portal-body .header-right .user-profile-btn{
    display:none!important;
  }
  .erp-workspace-body .header-icon-btn,
  .client-portal-body .header-icon-btn{
    width:34px!important;
    height:34px!important;
    flex:0 0 34px;
  }
  .erp-workspace-body .header-right > .btn,
  .client-portal-body .header-right > .btn{
    min-width:0!important;
    width:auto!important;
    height:34px!important;
    min-height:34px!important;
    padding:0 9px!important;
  }
  .super-school-switcher-wrap{
    display:none!important;
  }

  .erp-workspace-body .content-body,
  .client-portal-body .content-body{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow-x:hidden!important;
    padding:14px 12px 30px!important;
  }
  .erp-workspace-body .page-header{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:12px!important;
  }
  .erp-workspace-body .page-title-group{
    width:100%;
    flex:1 1 auto!important;
  }
  .erp-workspace-body .page-title{
    font-size:22px!important;
    overflow-wrap:anywhere;
  }
  .erp-workspace-body .page-subtitle{
    overflow-wrap:anywhere;
  }
  .erp-workspace-body .page-header .action-bar,
  .erp-workspace-body form > .action-bar,
  .erp-workspace-body .erp-form-actions,
  .erp-workspace-body .transport-actions,
  .erp-workspace-body .exam-actions,
  .erp-workspace-body .accounts-report-actions,
  .erp-workspace-body .bank-provider-actions,
  .erp-workspace-body .kuickpay-actions{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    width:100%!important;
    gap:8px!important;
  }
  .erp-workspace-body .page-header .action-bar > *,
  .erp-workspace-body form > .action-bar > *,
  .erp-workspace-body .erp-form-actions > *,
  .erp-workspace-body .transport-actions > *,
  .erp-workspace-body .exam-actions > *,
  .erp-workspace-body .accounts-report-actions > *,
  .erp-workspace-body .bank-provider-actions > *,
  .erp-workspace-body .kuickpay-actions > *{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
  }

  .erp-workspace-body .dashboard-datebar{
    display:grid!important;
    grid-template-columns:1fr!important;
    width:100%;
    max-width:100%;
    gap:10px!important;
    padding:15px!important;
  }
  .erp-workspace-body .dashboard-datebar > *{
    width:100%!important;
    max-width:none!important;
  }
  .erp-workspace-body .taleem-dashboard-cards{
    display:grid!important;
    grid-template-columns:1fr!important;
    width:100%!important;
    max-width:100%!important;
    gap:10px!important;
  }
  .erp-workspace-body .taleem-stat-card{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    padding:16px!important;
  }
  .erp-workspace-body .taleem-card-value{
    font-size:22px!important;
  }
  .erp-workspace-body .taleem-card-split{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }

  .erp-workspace-body .module-grid,
  .erp-workspace-body .module-screen-grid{
    width:100%!important;
    max-width:100%!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
  }
  .erp-workspace-body .module-card,
  .erp-workspace-body .module-screen-card{
    min-width:0!important;
    width:100%!important;
    padding:14px!important;
  }

  dialog[open]{
    width:calc(100vw - 20px)!important;
    max-width:calc(100vw - 20px)!important;
    max-height:calc(100dvh - 20px)!important;
    padding:18px!important;
  }
  dialog[open] .action-bar,
  dialog[open] .erp-form-actions{
    grid-template-columns:1fr!important;
  }
  .modal-backdrop{
    padding:10px!important;
  }
  .modal-card{
    width:100%!important;
    max-height:calc(100dvh - 20px)!important;
  }
}

@media(max-width:520px){
  .erp-workspace-body .page-header .action-bar,
  .erp-workspace-body form > .action-bar,
  .erp-workspace-body .erp-form-actions,
  .erp-workspace-body .transport-actions,
  .erp-workspace-body .exam-actions,
  .erp-workspace-body .accounts-report-actions,
  .erp-workspace-body .bank-provider-actions,
  .erp-workspace-body .kuickpay-actions{
    grid-template-columns:1fr!important;
  }
  .erp-workspace-body .module-grid,
  .erp-workspace-body .module-screen-grid{
    grid-template-columns:1fr!important;
  }
  .erp-workspace-body .taleem-card-split{
    grid-template-columns:1fr!important;
  }
  .erp-workspace-body .school-capsule-pill,
  .client-portal-body .school-capsule-pill{
    max-width:130px!important;
  }
  .erp-workspace-body .header-icon-btn:nth-of-type(2),
  .client-portal-body .header-icon-btn:nth-of-type(2){
    display:none!important;
  }
}

/* Keep narrow tables usable even when a template has too many columns for the
   card-table transformer. */
@media(max-width:768px){
  .erp-workspace-body table:not(.erp-responsive-table){
    width:max-content;
    min-width:100%;
  }
  .erp-workspace-body table:not(.erp-responsive-table) th,
  .erp-workspace-body table:not(.erp-responsive-table) td{
    white-space:nowrap;
  }
}


/* === Detailed admission + global add-button polish ==========================
   Bare lookup "+" controls stay visible on dark/charcoal themes and the
   seven-tab detailed admission workflow remains usable on narrow screens. */
.erp-workspace-body .erp-add-button,
.erp-workspace-body .erp-input-action-group > .erp-add-button,
.erp-workspace-body button[aria-label^="Add "].erp-add-button,
.erp-workspace-body button[title^="Add "].erp-add-button{
  width:44px!important;
  min-width:44px!important;
  max-width:44px!important;
  height:44px!important;
  min-height:44px!important;
  padding:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 44px!important;
  background:#fff!important;
  color:#2d3139!important;
  border:1px solid #d9dde3!important;
  border-left:1px solid #d9dde3!important;
  border-radius:10px!important;
  box-shadow:0 1px 3px rgba(16,24,40,.06)!important;
}
.erp-workspace-body .erp-input-action-group > .erp-add-button{
  border-top-left-radius:0!important;
  border-bottom-left-radius:0!important;
  border-top-right-radius:10px!important;
  border-bottom-right-radius:10px!important;
}
.erp-workspace-body .erp-add-button:hover,
.erp-workspace-body .erp-input-action-group > .erp-add-button:hover{
  background:#faf7f0!important;
  color:#7a5c25!important;
  border-color:#cfbf9d!important;
  transform:none!important;
  box-shadow:none!important;
}
.erp-workspace-body .erp-add-button .erp-icon{
  width:18px!important;
  height:18px!important;
  flex:0 0 18px!important;
  color:currentColor!important;
}

/* Detailed admission desktop shell */
.erp-workspace-body .detailed-admission-header{
  max-width:1180px;
  margin-left:auto;
  margin-right:auto;
}
.erp-workspace-body .detailed-admission-card{
  width:100%;
  max-width:1180px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  overflow:hidden;
}
.erp-workspace-body .detailed-admission-card #detailedAdmissionForm,
.erp-workspace-body .detailed-admission-card .admissionTab{
  width:100%;
  max-width:100%;
  min-width:0;
}
.erp-workspace-body .detailed-admission-tabs{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
  width:100%;
  max-width:100%;
  padding:0 0 12px;
  margin:0 0 20px;
  border-bottom:1px solid #e6e9ee;
}
.erp-workspace-body .detailed-admission-tabs .admissionTabBtn{
  width:auto!important;
  min-width:0!important;
  flex:0 0 auto;
  min-height:38px!important;
  padding:8px 12px!important;
}
.erp-workspace-body .detailed-admission-tabs .admissionTabBtn.btn-purple{
  background:#f5efe2!important;
  color:#70572b!important;
  border-color:#dfcfad!important;
  box-shadow:0 2px 7px rgba(18,24,40,.04)!important;
}
.erp-workspace-body .detailed-admission-card .lookup-control{
  width:100%;
  max-width:100%;
  min-width:0;
}
.erp-workspace-body .detailed-admission-card .lookup-control .form-control{
  min-width:0!important;
  width:100%!important;
}
.erp-workspace-body .detailed-admission-card .col-span-2{
  grid-column:span 2;
}
.erp-workspace-body .detailed-admission-card .col-span-3{
  grid-column:span 3;
}
.erp-workspace-body .detailed-admission-card .table-container{
  max-width:100%;
}
.erp-workspace-body .detailed-admission-card img{
  max-width:100%;
}
.lookup-dialog-body{
  width:min(480px,calc(100vw - 72px));
  max-width:100%;
  min-width:0!important;
}
.lookup-dialog-body h3{
  margin:0 0 16px;
  color:#252832;
  font-size:18px;
  line-height:1.3;
}
.lookup-dialog-body > .form-label:not(:first-child){
  display:block;
  margin-top:12px!important;
}

@media(max-width:900px){
  .erp-workspace-body .detailed-admission-card{
    padding:20px!important;
  }
  .erp-workspace-body .detailed-admission-card .form-grid-3,
  .erp-workspace-body .detailed-admission-card .form-grid-4{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .erp-workspace-body .detailed-admission-card .col-span-3{
    grid-column:1/-1;
  }
}

@media(max-width:700px){
  .erp-workspace-body .detailed-admission-header{
    width:100%;
  }
  .erp-workspace-body .detailed-admission-header-actions{
    grid-template-columns:1fr!important;
  }
  .erp-workspace-body .detailed-admission-card{
    width:100%!important;
    max-width:100%!important;
    padding:15px!important;
    margin:0!important;
    border-radius:13px!important;
    overflow:hidden!important;
  }
  .erp-workspace-body .detailed-admission-tabs{
    flex-wrap:nowrap!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
    gap:6px!important;
    padding:2px 1px 11px!important;
    margin-bottom:17px!important;
  }
  .erp-workspace-body .detailed-admission-tabs .admissionTabBtn{
    width:auto!important;
    min-width:max-content!important;
    max-width:none!important;
    min-height:40px!important;
    padding:8px 11px!important;
    white-space:nowrap!important;
  }
  .erp-workspace-body .detailed-admission-card .form-grid-2,
  .erp-workspace-body .detailed-admission-card .form-grid-3,
  .erp-workspace-body .detailed-admission-card .form-grid-4{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:14px!important;
    width:100%!important;
  }
  .erp-workspace-body .detailed-admission-card .col-span-2,
  .erp-workspace-body .detailed-admission-card .col-span-3{
    grid-column:1!important;
  }
  .erp-workspace-body .detailed-admission-card .form-group{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  .erp-workspace-body .detailed-admission-card .form-control{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  .erp-workspace-body .detailed-admission-card textarea.form-control{
    min-height:105px!important;
  }
  .erp-workspace-body .detailed-admission-card .lookup-control,
  .erp-workspace-body .detailed-admission-card .erp-input-action-group{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 44px!important;
    width:100%!important;
    max-width:100%!important;
  }
  .erp-workspace-body .detailed-admission-card .lookup-control > .form-control,
  .erp-workspace-body .detailed-admission-card .erp-input-action-group > .form-control{
    width:100%!important;
    min-width:0!important;
  }
  .erp-workspace-body .detailed-admission-card .action-bar{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:8px!important;
    width:100%!important;
    margin-top:16px!important;
  }
  .erp-workspace-body .detailed-admission-card .action-bar > *{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin:0!important;
  }
  .erp-workspace-body .detailed-admission-card label:not(.form-label){
    display:flex;
    align-items:center;
    gap:8px;
    min-height:36px;
    line-height:1.35;
  }
  .erp-workspace-body .detailed-admission-card .card-title{
    margin-top:18px!important;
  }
  .erp-workspace-body .detailed-admission-card .table-container{
    width:100%!important;
    max-width:100%!important;
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch;
  }
  .lookup-dialog-body{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
}

@media(max-width:420px){
  .erp-workspace-body .detailed-admission-card{
    padding:13px!important;
  }
  .erp-workspace-body .detailed-admission-tabs .admissionTabBtn{
    font-size:11px!important;
  }
  .erp-workspace-body .detailed-admission-card .card-title{
    font-size:14px!important;
  }
}

.erp-workspace-body .btn-disabled{
  opacity:.52!important;
  cursor:not-allowed!important;
  pointer-events:none!important;
  box-shadow:none!important;
}


/* === Shipping performance containment =====================================
   Long ERP pages can contain dozens of cards/tables below the viewport. Chrome can
   skip their layout/paint work until the operator scrolls to them without changing
   DOM, forms, accessibility or server behavior. */
@supports (content-visibility:auto) {
  .erp-workspace-body .card,
  .erp-workspace-body .module-screen-card,
  .erp-workspace-body .module-card,
  .erp-workspace-body .filter-toolbar {
    content-visibility:auto;
    contain-intrinsic-size:auto 220px;
  }
  .erp-workspace-body .table-responsive,
  .erp-workspace-body .table-container {
    content-visibility:auto;
    contain-intrinsic-size:auto 360px;
  }
}
