/*
  BrainTech SMIS - Safe Gentle UI Foundation
  Presentation-only overrides. No routes, forms, database queries,
  permissions, English lessons, Transport logic, or saved records are changed.
*/

:root {
  --smis-gentle-ink: #24364a;
  --smis-gentle-muted: #6b7a8c;
  --smis-gentle-line: #dce5ec;
  --smis-gentle-blue: #477aa3;
  --smis-gentle-blue-dark: #315f80;
  --smis-gentle-green: #5d8876;
  --smis-gentle-cream: #fffaf1;
  --smis-gentle-surface: #ffffff;
  --smis-gentle-shadow: 0 10px 28px rgba(38, 60, 82, .08);
}

body {
  color: var(--smis-gentle-ink);
  background:
    radial-gradient(circle at 8% 3%, rgba(117, 162, 190, .11), transparent 27%),
    radial-gradient(circle at 96% 4%, rgba(222, 194, 137, .13), transparent 25%),
    linear-gradient(180deg, #f9fbfc 0%, #f3f7f8 100%) !important;
}

body::before,
body::after {
  opacity: .45;
}

/* A calmer school-style navigation area. */
.sidebar {
  background: linear-gradient(180deg, #345f78 0%, #315469 58%, #2b4658 100%) !important;
  box-shadow: 8px 0 24px rgba(38, 60, 82, .14) !important;
}

.sidebar-menu .nav-link {
  border-radius: 13px !important;
  margin-bottom: 5px !important;
  padding: 10px 12px !important;
  font-size: .92rem;
}

.sidebar-menu .nav-link:hover,
.sidebar-menu .nav-link.active {
  transform: none !important;
  background: rgba(255, 255, 255, .15) !important;
}

.sidebar-menu .nav-link:hover::before,
.sidebar-menu .nav-link.active::before {
  background: #f4d38b !important;
}

.sidebar-note,
.sidebar .rounded.bg-dark,
.sidebar .profile-box {
  background: rgba(255,255,255,.10) !important;
  box-shadow: none !important;
}

/* Keep all uploaded logos contained, including unusual very large files. */
.brand-logo-img {
  width: 42px !important;
  height: 42px !important;
  max-width: 42px !important;
  max-height: 42px !important;
  object-fit: contain !important;
}

.topbar-brand-logo {
  width: 34px !important;
  height: 34px !important;
  max-width: 34px !important;
  max-height: 34px !important;
  object-fit: contain !important;
}

.school-logo-preview {
  width: 72px !important;
  height: 72px !important;
  max-width: 72px !important;
  max-height: 72px !important;
  object-fit: contain !important;
}

.school-logo-preview-lg {
  width: 110px !important;
  height: 110px !important;
  max-width: 110px !important;
  max-height: 110px !important;
}

.institution-list-logo {
  width: 42px !important;
  height: 42px !important;
  max-width: 42px !important;
  max-height: 42px !important;
  object-fit: contain !important;
}

/* Compact shared header. */
.topbar {
  padding: 16px 19px !important;
  margin-bottom: 18px !important;
  border-radius: 20px !important;
  background: rgba(255,255,255,.94) !important;
  border: 1px solid var(--smis-gentle-line) !important;
  box-shadow: var(--smis-gentle-shadow) !important;
  backdrop-filter: none !important;
}

.topbar h2 {
  color: var(--smis-gentle-ink) !important;
  font-size: clamp(1.25rem, 1.8vw, 1.75rem) !important;
}

.topbar-badge {
  max-width: min(440px, 58vw);
  overflow: hidden;
  background: #f2f7fa !important;
  border-color: #dce8ee !important;
  color: #315f80 !important;
  padding: 8px 12px !important;
}

.topbar-badge span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Dashboard hero: light, mature and school-focused. */
.smis-dashboard-hero {
  position: relative;
  overflow: hidden;
  color: var(--smis-gentle-ink) !important;
  border-radius: 22px !important;
  padding: 24px !important;
  border: 1px solid #d8e6ec !important;
  box-shadow: var(--smis-gentle-shadow) !important;
}

.smis-central-hero {
  background:
    radial-gradient(circle at 91% 18%, rgba(120, 159, 185, .18), transparent 28%),
    linear-gradient(135deg, #f4f9fc 0%, #edf5f8 58%, #fff9ee 100%) !important;
}

.smis-school-hero {
  background:
    radial-gradient(circle at 91% 18%, rgba(113, 155, 135, .17), transparent 28%),
    linear-gradient(135deg, #f3faf8 0%, #eef7f7 56%, #fff9ee 100%) !important;
}

.smis-dashboard-hero h1,
.smis-dashboard-hero h2,
.smis-dashboard-hero h3,
.smis-dashboard-hero p,
.smis-dashboard-hero .fw-bold,
.smis-dashboard-hero strong {
  color: var(--smis-gentle-ink) !important;
}

.smis-dashboard-hero > div > div:first-child > p:first-child {
  color: var(--smis-gentle-blue-dark) !important;
  opacity: 1 !important;
}

.smis-dashboard-hero .btn-light {
  background: #ffffff !important;
  color: var(--smis-gentle-blue-dark) !important;
  border: 1px solid #cddfe8 !important;
}

.smis-dashboard-hero .btn-outline-light {
  background: rgba(255,255,255,.72) !important;
  color: var(--smis-gentle-blue-dark) !important;
  border-color: #bcd3df !important;
}

.smis-dashboard-hero .btn-warning {
  background: #f6dd9d !important;
  color: #604d1f !important;
}

/* Smaller, calmer dashboard summary cards. */
.smis-central-dashboard-page .card,
.smis-school-dashboard-page .card {
  border: 1px solid var(--smis-gentle-line) !important;
  border-radius: 19px !important;
  box-shadow: var(--smis-gentle-shadow) !important;
}

.smis-central-dashboard-page .card:hover,
.smis-school-dashboard-page .card:hover {
  transform: none !important;
  box-shadow: 0 13px 30px rgba(38, 60, 82, .10) !important;
}

.smis-central-dashboard-page .card-body.p-4,
.smis-school-dashboard-page .card-body.p-4 {
  padding: 1.15rem !important;
}

.smis-central-dashboard-page .card-body > .text-white.d-flex,
.smis-school-dashboard-page .card-body > .text-white.d-flex,
.smis-school-dashboard-page .card-body > .mb-3.d-flex.text-white,
.smis-school-dashboard-page .card-body > .mb-3.d-flex.align-items-center.justify-content-center.text-white {
  width: 46px !important;
  height: 46px !important;
  border-radius: 14px !important;
  font-size: 1.25rem !important;
  margin-bottom: .8rem !important;
  filter: saturate(.72);
}

.smis-central-dashboard-page h2.text-dark,
.smis-school-dashboard-page h2.text-dark {
  font-size: clamp(1.55rem, 2.5vw, 2rem) !important;
  margin-bottom: .75rem !important;
}

.smis-central-dashboard-page h3,
.smis-school-dashboard-page h3 {
  letter-spacing: -.025em;
}

.smis-central-dashboard-page > .p-4,
.smis-school-dashboard-page > .p-4 {
  border-radius: 21px !important;
  box-shadow: var(--smis-gentle-shadow) !important;
}

/* Gentle shared cards and tables without changing their data or controls. */
.card,
.glass-card,
.elevated-card,
.table-card {
  box-shadow: var(--smis-gentle-shadow) !important;
}

.table-responsive,
.beautiful-table-wrap,
.smis-table-responsive {
  border-color: var(--smis-gentle-line) !important;
  box-shadow: none !important;
}

.table thead th,
.beautiful-table thead th {
  background: #f3f7f9 !important;
  color: #334b5e !important;
  border-color: #dde6ec !important;
}

.table tbody tr:hover td,
.beautiful-table tbody tr:hover td {
  background: #f4f9fb !important;
}

.smis-table-toolbar {
  border-radius: 16px !important;
  background: #ffffff !important;
  border-color: var(--smis-gentle-line) !important;
  box-shadow: 0 7px 20px rgba(38, 60, 82, .06) !important;
}

.btn {
  border-radius: 12px !important;
}

.btn-primary {
  background: linear-gradient(135deg, var(--smis-gentle-blue), var(--smis-gentle-blue-dark)) !important;
}

.braintech-powered-footer {
  padding-top: 8px !important;
}

@media (max-width: 991.98px) {
  .topbar-badge {
    max-width: 100%;
  }

  .smis-dashboard-hero {
    padding: 20px !important;
  }
}

@media print {
  .smis-dashboard-hero {
    background: #ffffff !important;
    color: #000000 !important;
    border: 1px solid #d8d8d8 !important;
    box-shadow: none !important;
  }
}

/* =========================================================
   Stage 1B - Complete presentation enhancement
   This section deliberately changes appearance only.
   No route, form name, button action, database query or
   permission rule is changed.
   ========================================================= */

:root {
  --smis-page-max: 1680px;
  --smis-radius-xs: 10px;
  --smis-radius-sm: 14px;
  --smis-radius-md: 18px;
  --smis-radius-lg: 24px;
  --smis-soft-blue: #edf5fa;
  --smis-soft-green: #eef7f2;
  --smis-soft-gold: #fff8e8;
  --smis-soft-purple: #f4f1fa;
  --smis-soft-red: #fff2f1;
  --smis-danger: #b94a48;
  --smis-success: #39735f;
  --smis-warning: #8b6a23;
}

body {
  font-size: 15px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.container-fluid > .row {
  --bs-gutter-x: 0;
}

.dashboard-area {
  min-height: 100vh;
  padding: 20px 24px 34px !important;
}

.dashboard-area > * {
  max-width: var(--smis-page-max);
  margin-left: auto;
  margin-right: auto;
}

/* Shared headings and section rhythm. */
.dashboard-area h1,
.dashboard-area h2,
.dashboard-area h3,
.dashboard-area h4,
.dashboard-area h5,
.dashboard-area h6 {
  color: var(--smis-gentle-ink);
  letter-spacing: -.025em;
}

.section-title {
  display: flex;
  align-items: center;
  gap: .3rem;
  font-weight: 800 !important;
  margin-bottom: 1rem;
}

.section-title i {
  color: var(--smis-gentle-blue);
}

.eyebrow,
.profile-chip {
  letter-spacing: .075em !important;
  font-size: .73rem !important;
  font-weight: 800 !important;
  text-transform: uppercase;
}

/* =========================================================
   Heroes across Students, Staff, Fees, Exams, Reports,
   Library, Transport, Hostel, Payroll, Inventory, Teachers
   and Parents.
   ========================================================= */
.page-hero,
.profile-hero,
.mini-hero,
.module-hero {
  min-height: auto !important;
  padding: 23px 25px !important;
  border-radius: var(--smis-radius-lg) !important;
  border: 1px solid #d9e5eb !important;
  box-shadow: var(--smis-gentle-shadow) !important;
  color: var(--smis-gentle-ink) !important;
  isolation: isolate;
}

.page-hero,
.profile-hero,
.mini-hero {
  background:
    radial-gradient(circle at 92% 10%, rgba(111, 157, 183, .15), transparent 26%),
    linear-gradient(135deg, #f4f9fb 0%, #eef6f7 62%, #fff9ef 100%) !important;
}

.module-hero,
.module-hero.fees-hero,
.module-hero.exams-hero,
.module-hero.reports-hero,
.module-hero.teacher-hero,
.module-hero.parent-hero,
.module-hero.library-hero,
.module-hero.transport-hero,
.module-hero.hostel-hero,
.module-hero.payroll-hero,
.module-hero.inventory-hero,
.module-hero.ai-hero {
  background:
    radial-gradient(circle at 92% 10%, rgba(103, 151, 177, .16), transparent 27%),
    radial-gradient(circle at 8% 95%, rgba(224, 191, 126, .11), transparent 26%),
    linear-gradient(135deg, #f4f9fb 0%, #eef6f7 58%, #fffaf0 100%) !important;
}

.page-hero::before,
.page-hero::after,
.profile-hero::before,
.profile-hero::after,
.mini-hero::before,
.mini-hero::after,
.module-hero::before,
.module-hero::after {
  opacity: .35 !important;
}

.page-hero h1,
.page-hero h2,
.page-hero h3,
.profile-hero h1,
.profile-hero h2,
.profile-hero h3,
.mini-hero h1,
.mini-hero h2,
.mini-hero h3,
.module-hero h1,
.module-hero h2,
.module-hero h3,
.module-hero h4 {
  color: var(--smis-gentle-ink) !important;
  font-weight: 800 !important;
  letter-spacing: -.035em !important;
  margin-bottom: .35rem;
}

.page-hero h1,
.module-hero h1 {
  font-size: clamp(1.65rem, 2.5vw, 2.25rem) !important;
}

.page-hero p,
.profile-hero p,
.mini-hero p,
.module-hero p,
.module-hero .eyebrow,
.module-hero .text-primary {
  color: var(--smis-gentle-muted) !important;
  opacity: 1 !important;
}

.module-hero .hero-actions,
.page-hero .hero-actions {
  align-items: center;
}

.page-hero .btn-light,
.profile-hero .btn-light,
.mini-hero .btn-light,
.module-hero .btn-light {
  background: #fff !important;
  color: var(--smis-gentle-blue-dark) !important;
  border: 1px solid #cfdde5 !important;
}

.page-hero .btn-outline-light,
.profile-hero .btn-outline-light,
.mini-hero .btn-outline-light,
.module-hero .btn-outline-light {
  background: rgba(255,255,255,.76) !important;
  color: var(--smis-gentle-blue-dark) !important;
  border-color: #b9ced9 !important;
}

.page-hero .btn-warning,
.profile-hero .btn-warning,
.mini-hero .btn-warning,
.module-hero .btn-warning {
  background: #f4d992 !important;
  color: #604b1e !important;
  border: 1px solid #e7c66d !important;
}

/* =========================================================
   Cards, module tiles and dashboard statistics.
   ========================================================= */
.card,
.glass-card,
.elevated-card,
.table-card,
.form-card,
.filter-panel,
.module-tile,
.info-tile,
.contact-card,
.child-card,
.parent-child-card,
.parent-filter-card,
.parent-message-card,
.parent-stat-card,
.english-access-banner {
  border: 1px solid var(--smis-gentle-line) !important;
  border-radius: var(--smis-radius-md) !important;
  background: rgba(255,255,255,.96) !important;
  box-shadow: var(--smis-gentle-shadow) !important;
}

.card,
.glass-card,
.elevated-card,
.module-tile,
.info-tile,
.contact-card,
.english-access-banner {
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.card:hover,
.glass-card:hover,
.elevated-card:hover,
.module-tile:hover,
.info-tile:hover,
.contact-card:hover {
  transform: translateY(-1px) !important;
  border-color: #cbdde6 !important;
  box-shadow: 0 13px 30px rgba(38, 60, 82, .10) !important;
}

.card-header {
  padding: .95rem 1.15rem !important;
  background: #f6f9fa !important;
  border-bottom: 1px solid var(--smis-gentle-line) !important;
  color: var(--smis-gentle-ink) !important;
  font-weight: 800;
}

.card-body {
  padding: 1.15rem !important;
}

.stat-card,
.dashboard-card {
  min-height: 108px !important;
  padding: 17px 18px !important;
  border: 1px solid var(--smis-gentle-line) !important;
  border-radius: var(--smis-radius-md) !important;
  background: #ffffff !important;
  box-shadow: var(--smis-gentle-shadow) !important;
  color: var(--smis-gentle-ink) !important;
  gap: 14px !important;
}

.stat-card::after,
.dashboard-card::after {
  width: 82px !important;
  height: 82px !important;
  right: -30px !important;
  top: -30px !important;
  background: rgba(77, 126, 158, .07) !important;
}

.stat-card p,
.dashboard-card p,
.stat-card .card-label,
.dashboard-card .card-label,
.stat-card span,
.dashboard-card span {
  color: var(--smis-gentle-muted) !important;
  opacity: 1 !important;
  font-size: .84rem !important;
  font-weight: 700 !important;
}

.stat-card h3,
.dashboard-card h3,
.stat-card .stat-value,
.dashboard-card .stat-value {
  color: var(--smis-gentle-ink) !important;
  font-size: clamp(1.45rem, 2.2vw, 1.9rem) !important;
  font-weight: 800 !important;
}

.stat-card .stat-icon,
.dashboard-card .stat-icon {
  width: 48px !important;
  height: 48px !important;
  min-width: 48px;
  border-radius: 14px !important;
  color: #fff !important;
  font-size: 1.25rem !important;
  filter: saturate(.72);
}

.accent-blue .stat-icon { background: #557f9d !important; }
.accent-green .stat-icon { background: #5d8876 !important; }
.accent-purple .stat-icon { background: #756a96 !important; }
.accent-gold .stat-icon { background: #a98243 !important; }
.accent-red .stat-icon { background: #a95f5c !important; }

.kpi-card {
  min-height: 128px !important;
  padding: 18px !important;
  border: 1px solid var(--smis-gentle-line) !important;
  border-radius: var(--smis-radius-md) !important;
  background: #fff !important;
  box-shadow: var(--smis-gentle-shadow) !important;
  color: var(--smis-gentle-ink) !important;
}

.kpi-card::after {
  width: 76px !important;
  height: 76px !important;
  background: rgba(70, 120, 154, .06) !important;
}

.kpi-card .kpi-icon,
.module-tile .tile-icon {
  width: 46px !important;
  height: 46px !important;
  border-radius: 14px !important;
  background: var(--smis-soft-blue) !important;
  color: var(--smis-gentle-blue-dark) !important;
  box-shadow: none !important;
}

.kpi-green .kpi-icon { background: var(--smis-soft-green) !important; color: var(--smis-success) !important; }
.kpi-gold .kpi-icon { background: var(--smis-soft-gold) !important; color: var(--smis-warning) !important; }
.kpi-purple .kpi-icon { background: var(--smis-soft-purple) !important; color: #695c8a !important; }
.kpi-red .kpi-icon { background: var(--smis-soft-red) !important; color: var(--smis-danger) !important; }

.kpi-card .kpi-label,
.kpi-card .kpi-note {
  color: var(--smis-gentle-muted) !important;
  font-weight: 700 !important;
}

.kpi-card .kpi-value {
  color: var(--smis-gentle-ink) !important;
  font-size: clamp(1.4rem, 2.1vw, 1.85rem) !important;
  font-weight: 800 !important;
}

.module-tile {
  min-height: 168px;
  padding: 20px !important;
}

.module-tile h4 {
  font-size: 1.08rem !important;
  font-weight: 800 !important;
  margin-top: .9rem;
}

.module-tile p {
  color: var(--smis-gentle-muted) !important;
  font-size: .91rem;
}

/* =========================================================
   Forms and filters.
   ========================================================= */
.form-card,
.filter-panel {
  padding: 18px !important;
}

.form-label {
  color: #405569 !important;
  font-size: .78rem !important;
  font-weight: 800 !important;
  letter-spacing: .045em;
  text-transform: uppercase;
  margin-bottom: .42rem !important;
}

.form-control,
.form-select,
textarea.form-control {
  min-height: 45px !important;
  border: 1px solid #d5e0e6 !important;
  border-radius: var(--smis-radius-sm) !important;
  background-color: #fbfdfe !important;
  color: var(--smis-gentle-ink) !important;
  padding: .67rem .82rem !important;
  box-shadow: none !important;
}

.form-control-sm,
.form-select-sm {
  min-height: 36px !important;
  padding: .42rem .68rem !important;
  border-radius: 11px !important;
}

.form-control:focus,
.form-select:focus,
textarea.form-control:focus {
  background-color: #fff !important;
  border-color: #7ca6bf !important;
  box-shadow: 0 0 0 .22rem rgba(75, 125, 158, .12) !important;
}

.form-control::placeholder {
  color: #95a4b1;
}

.form-text,
.tiny-help {
  color: var(--smis-gentle-muted) !important;
  font-size: .82rem;
}

.input-group-text {
  border-color: #d5e0e6 !important;
  background: #f2f7f9 !important;
  color: #506779 !important;
}

/* =========================================================
   Buttons, pills, alerts and navigation controls.
   ========================================================= */
.btn {
  min-height: 40px;
  border-radius: 11px !important;
  padding: .55rem .88rem !important;
  font-weight: 700 !important;
  font-size: .9rem;
}

.btn-sm {
  min-height: 34px;
  padding: .38rem .66rem !important;
  font-size: .82rem;
}

.btn-lg {
  min-height: 48px;
  padding: .7rem 1.05rem !important;
}

.icon-btn,
.icon-btn-lg {
  display: inline-grid !important;
  place-items: center;
  padding: 0 !important;
}

.icon-btn { width: 38px !important; height: 38px !important; min-height: 38px !important; }
.icon-btn-lg { width: 44px !important; height: 44px !important; min-height: 44px !important; }

.btn-primary {
  background: linear-gradient(135deg, #4d7e9e, #315f80) !important;
  border-color: #315f80 !important;
}

.btn-success {
  background: linear-gradient(135deg, #638f7c, #46715f) !important;
  border-color: #46715f !important;
}

.btn-info {
  background: linear-gradient(135deg, #6698ad, #44798f) !important;
  border-color: #44798f !important;
  color: #fff !important;
}

.btn-danger {
  background: linear-gradient(135deg, #bd6561, #994643) !important;
  border-color: #994643 !important;
}

.btn-warning {
  background: #efd38c !important;
  border-color: #dcb85e !important;
  color: #5e4a1d !important;
}

.btn-outline-primary {
  color: var(--smis-gentle-blue-dark) !important;
  border-color: #8eb0c4 !important;
  background: #fff !important;
}

.btn-outline-secondary {
  color: #556878 !important;
  border-color: #c4d0d7 !important;
  background: #fff !important;
}

.btn-outline-danger {
  color: var(--smis-danger) !important;
  border-color: #d9aaa8 !important;
  background: #fff !important;
}

.btn-outline-success {
  color: var(--smis-success) !important;
  border-color: #a7c7b9 !important;
  background: #fff !important;
}

.btn:hover {
  transform: translateY(-1px);
}

.alert {
  border-radius: var(--smis-radius-sm) !important;
  border-width: 1px !important;
  box-shadow: 0 6px 18px rgba(38, 60, 82, .05);
  padding: .82rem 1rem !important;
}

.alert-success { background: #eef8f3 !important; color: #356d59 !important; border-color: #cce6d9 !important; }
.alert-danger { background: #fff2f1 !important; color: #934642 !important; border-color: #efd0ce !important; }
.alert-warning { background: #fff9e9 !important; color: #765b20 !important; border-color: #eedda9 !important; }
.alert-info { background: #eff7fb !important; color: #3c687e !important; border-color: #cee2ec !important; }

.badge,
.code-pill,
.status-badge,
.soft-pill,
.profile-chip {
  border-radius: 999px !important;
  font-weight: 700 !important;
}

.status-active { background: #e8f6ef !important; color: #34705a !important; border: 1px solid #c7e5d6 !important; }
.status-inactive { background: #fff0ef !important; color: #994c48 !important; border: 1px solid #eccbc9 !important; }

.nav-tabs {
  gap: 5px;
  border-bottom-color: var(--smis-gentle-line) !important;
}

.nav-tabs .nav-link {
  border-radius: 11px 11px 0 0 !important;
  color: #5b6d7b !important;
  font-weight: 700;
}

.nav-tabs .nav-link.active {
  color: var(--smis-gentle-blue-dark) !important;
  background: #fff !important;
  border-color: var(--smis-gentle-line) var(--smis-gentle-line) #fff !important;
}

.pagination .page-link {
  color: var(--smis-gentle-blue-dark);
  border-color: var(--smis-gentle-line);
}

.pagination .page-item.active .page-link {
  background: var(--smis-gentle-blue);
  border-color: var(--smis-gentle-blue);
}

/* =========================================================
   Tables and list pages.
   ========================================================= */
.table-card {
  overflow: hidden;
}

.table-card > .card-body,
.table-card.glass-card {
  padding: 18px !important;
}

.table-toolbar,
.smis-table-toolbar,
.dashboard-area .bg-light.border.rounded-4 {
  padding: 13px 14px !important;
  border: 1px solid var(--smis-gentle-line) !important;
  border-radius: var(--smis-radius-sm) !important;
  background: #f8fafb !important;
  box-shadow: none !important;
}

.table-toolbar h4 {
  font-size: 1.06rem !important;
  font-weight: 800 !important;
}

.table-responsive,
.beautiful-table-wrap,
.smis-table-responsive {
  border: 1px solid var(--smis-gentle-line) !important;
  border-radius: var(--smis-radius-sm) !important;
  background: #fff;
  overflow-x: auto;
}

.table {
  margin-bottom: 0 !important;
  color: var(--smis-gentle-ink) !important;
}

.table > :not(caption) > * > * {
  padding: .72rem .78rem !important;
  border-bottom-color: #e7edf1 !important;
  vertical-align: middle;
}

.table thead th,
.beautiful-table thead th {
  position: relative;
  background: #f2f6f8 !important;
  color: #405569 !important;
  font-size: .74rem !important;
  font-weight: 800 !important;
  letter-spacing: .045em;
  text-transform: uppercase;
  white-space: nowrap;
}

.table tbody td {
  font-size: .9rem;
}

.table tbody tr:nth-child(even) td {
  background-color: #fbfcfd;
}

.table tbody tr:hover td,
.beautiful-table tbody tr:hover td {
  background: #f1f7f9 !important;
}

.table .table-light td,
.table .table-light th {
  background: #eef4f7 !important;
}

.action-group {
  gap: 5px !important;
}

.smis-table-search input {
  min-width: min(310px, 72vw);
}

.smis-table-info,
.smis-page-label,
.smis-safe-table-badge {
  color: var(--smis-gentle-muted) !important;
  font-weight: 700;
  font-size: .82rem;
}

/* Empty states become calm and easy to read. */
.table td.text-center.py-5,
.table td.text-center.py-4,
.empty-state {
  color: #7b8b98 !important;
}

.table td.text-center.py-5 i,
.table td.text-center.py-4 i,
.empty-state i {
  color: #92acbb !important;
}

/* =========================================================
   Portal-specific presentation.
   ========================================================= */
.english-access-banner {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 17px 18px !important;
  background:
    radial-gradient(circle at 95% 10%, rgba(111, 151, 180, .13), transparent 26%),
    linear-gradient(135deg, #f4f9fb, #fffaf0) !important;
}

.english-access-icon {
  width: 50px !important;
  height: 50px !important;
  min-width: 50px;
  border-radius: 15px !important;
  display: grid;
  place-items: center;
  background: #e9f2f7 !important;
  color: var(--smis-gentle-blue-dark) !important;
  font-size: 1.35rem;
}

.parent-stat-card {
  min-height: 104px !important;
  padding: 17px 18px !important;
}

.parent-stat-card .stat-value {
  font-size: 1.8rem !important;
}

.parent-message-card,
.parent-child-card {
  box-shadow: none !important;
  background: #fbfdfe !important;
}

.contact-card i {
  background: var(--smis-soft-blue) !important;
  color: var(--smis-gentle-blue-dark) !important;
}

/* =========================================================
   Modal windows and dropdowns.
   ========================================================= */
.modal-content {
  border: 1px solid var(--smis-gentle-line) !important;
  border-radius: var(--smis-radius-lg) !important;
  box-shadow: 0 25px 70px rgba(31, 50, 68, .18) !important;
}

.modal-header,
.modal-footer {
  border-color: var(--smis-gentle-line) !important;
}

.modal-header {
  background: #f7fafb;
}

.dropdown-menu {
  border: 1px solid var(--smis-gentle-line) !important;
  border-radius: var(--smis-radius-sm) !important;
  box-shadow: 0 16px 36px rgba(38, 60, 82, .13) !important;
  padding: .45rem;
}

.dropdown-item {
  border-radius: 9px;
  padding: .55rem .7rem;
}

/* =========================================================
   Logo and profile image containment everywhere.
   ========================================================= */
img.brand-logo-img,
img.topbar-brand-logo,
img.school-logo-preview,
img.school-logo-preview-lg,
img.institution-list-logo,
img.braintech-footer-logo,
img.login-brand-logo {
  object-fit: contain !important;
}

.school-logo-preview-lg {
  object-fit: contain !important;
}

/* =========================================================
   Footer.
   ========================================================= */
.braintech-powered-footer {
  padding: 12px 20px 18px !important;
  color: #71808d !important;
  background: transparent !important;
}

.braintech-powered-inner {
  justify-content: center;
  gap: 8px !important;
  font-size: .82rem;
}

.braintech-footer-logo {
  width: 24px !important;
  height: 24px !important;
  max-width: 24px !important;
  max-height: 24px !important;
}

/* =========================================================
   Shared document / print branding.
   ========================================================= */
.smis-print-brand {
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 20px;
  padding: 16px 18px;
  border: 1px solid var(--smis-gentle-line);
  border-radius: var(--smis-radius-md);
  background: #fff;
}

.smis-print-brand-main {
  display: flex;
  align-items: center;
  gap: 13px;
  min-width: 0;
}

.smis-print-brand-logo {
  width: 58px;
  height: 58px;
  max-width: 58px;
  max-height: 58px;
  object-fit: contain;
  flex: 0 0 58px;
}

.smis-print-brand-fallback {
  width: 58px;
  height: 58px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  background: var(--smis-soft-blue);
  color: var(--smis-gentle-blue-dark);
  font-weight: 800;
  font-size: 1.15rem;
}

.smis-print-brand-name {
  margin: 0;
  color: var(--smis-gentle-ink);
  font-size: 1.18rem;
  font-weight: 800;
  line-height: 1.25;
}

.smis-print-brand-subtitle {
  margin: 3px 0 0;
  color: var(--smis-gentle-muted);
  font-size: .88rem;
}

.smis-print-brand-document {
  text-align: right;
  color: #405569;
  font-weight: 800;
}

.smis-print-brand-screen {
  display: flex !important;
}

/* =========================================================
   Login page enhancement. The authentication form and route
   remain untouched.
   ========================================================= */
.login-page {
  background:
    radial-gradient(circle at 12% 8%, rgba(103, 151, 177, .18), transparent 30%),
    radial-gradient(circle at 90% 90%, rgba(221, 189, 123, .16), transparent 30%),
    linear-gradient(135deg, #eef5f7, #f8faf9) !important;
}

.login-card {
  border: 1px solid #d8e4ea;
  border-radius: 28px !important;
  box-shadow: 0 24px 70px rgba(38, 60, 82, .16) !important;
}

.login-left {
  color: var(--smis-gentle-ink) !important;
  background:
    radial-gradient(circle at 84% 12%, rgba(106, 151, 177, .17), transparent 28%),
    linear-gradient(145deg, #edf6f8, #f7faf7 62%, #fff8e9) !important;
}

.login-left h1,
.login-left p,
.login-left small {
  color: var(--smis-gentle-ink) !important;
}

.login-left p,
.login-left small {
  opacity: .76;
}

.login-brand-logo {
  width: 112px !important;
  max-width: 112px !important;
  max-height: 112px !important;
  filter: drop-shadow(0 10px 22px rgba(38, 60, 82, .12)) !important;
}

.login-right {
  background: #fff;
}

.login-support-note {
  border-color: var(--smis-gentle-line) !important;
  background: #f7fafb !important;
}

/* =========================================================
   Responsive adjustments.
   ========================================================= */
@media (max-width: 1199.98px) {
  .dashboard-area {
    padding: 18px 18px 30px !important;
  }

  .page-hero,
  .profile-hero,
  .mini-hero,
  .module-hero {
    padding: 20px !important;
  }
}

@media (max-width: 991.98px) {
  .sidebar {
    min-height: auto !important;
  }

  .dashboard-area {
    padding: 16px !important;
  }

  .topbar {
    align-items: flex-start !important;
  }

  .topbar > div:last-child {
    width: 100%;
    justify-content: space-between;
  }

  .page-hero,
  .profile-hero,
  .mini-hero,
  .module-hero,
  .page-hero > .d-flex,
  .module-hero > .d-flex {
    align-items: flex-start !important;
  }

  .module-hero .hero-actions,
  .page-hero .hero-actions {
    justify-content: flex-start !important;
  }
}

@media (max-width: 767.98px) {
  .dashboard-area {
    padding: 12px !important;
  }

  .topbar {
    padding: 14px !important;
    border-radius: 16px !important;
  }

  .topbar h2 {
    font-size: 1.25rem !important;
  }

  .topbar-badge {
    max-width: calc(100vw - 120px) !important;
  }

  .page-hero,
  .profile-hero,
  .mini-hero,
  .module-hero {
    padding: 17px !important;
    border-radius: 18px !important;
  }

  .page-hero > div,
  .module-hero > div,
  .page-hero > .d-flex,
  .module-hero > .d-flex {
    width: 100%;
  }

  .page-hero .d-flex.gap-2,
  .module-hero .hero-actions {
    width: 100%;
  }

  .english-access-banner {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .english-access-banner .btn {
    width: 100%;
  }

  .smis-table-toolbar,
  .smis-table-toolbar-left,
  .smis-table-toolbar-right {
    align-items: stretch !important;
    width: 100%;
  }

  .smis-table-search,
  .smis-table-search input {
    width: 100%;
    min-width: 0 !important;
  }

  .table > :not(caption) > * > * {
    padding: .62rem .65rem !important;
  }

  .smis-print-brand {
    align-items: flex-start;
    flex-direction: column;
  }

  .smis-print-brand-document {
    text-align: left;
  }
}

/* =========================================================
   Print mode: professional school documents without sidebar,
   navigation, buttons, shadows or coloured backgrounds.
   ========================================================= */
@media print {
  @page {
    size: A4;
    margin: 12mm;
  }

  html,
  body {
    background: #fff !important;
    color: #111 !important;
    font-size: 11pt !important;
  }

  body::before,
  body::after,
  .sidebar,
  .topbar,
  .braintech-powered-footer,
  .d-print-none,
  button,
  .btn,
  .smis-table-toolbar,
  .table-toolbar form,
  .filter-panel {
    display: none !important;
  }

  .container-fluid,
  .container-fluid > .row,
  .dashboard-area {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .dashboard-area > * {
    max-width: none !important;
  }

  .smis-print-brand,
  .smis-print-brand.d-none {
    display: flex !important;
    border: 0 !important;
    border-bottom: 1.5px solid #333 !important;
    border-radius: 0 !important;
    padding: 0 0 10px !important;
    margin: 0 0 16px !important;
  }

  .smis-print-brand-logo,
  .smis-print-brand-fallback {
    width: 50px !important;
    height: 50px !important;
    max-width: 50px !important;
    max-height: 50px !important;
    flex-basis: 50px !important;
  }

  .page-hero,
  .profile-hero,
  .mini-hero,
  .module-hero,
  .smis-dashboard-hero,
  .card,
  .glass-card,
  .elevated-card,
  .table-card,
  .form-card,
  .module-tile,
  .kpi-card,
  .stat-card,
  .dashboard-card {
    color: #111 !important;
    background: #fff !important;
    border: 1px solid #d6d6d6 !important;
    box-shadow: none !important;
    break-inside: avoid;
  }

  .page-hero,
  .profile-hero,
  .mini-hero,
  .module-hero {
    padding: 12px 14px !important;
    margin-bottom: 12px !important;
  }

  .page-hero h1,
  .page-hero h2,
  .page-hero h3,
  .profile-hero h1,
  .profile-hero h2,
  .profile-hero h3,
  .mini-hero h1,
  .mini-hero h2,
  .mini-hero h3,
  .module-hero h1,
  .module-hero h2,
  .module-hero h3,
  .module-hero p,
  .page-hero p,
  .profile-hero p,
  .mini-hero p {
    color: #111 !important;
  }

  .table-responsive,
  .beautiful-table-wrap,
  .smis-table-responsive {
    overflow: visible !important;
    border: 0 !important;
  }

  .table {
    width: 100% !important;
    font-size: 9.5pt !important;
  }

  .table thead th {
    color: #111 !important;
    background: #ededed !important;
    border: 1px solid #bbb !important;
  }

  .table tbody td {
    color: #111 !important;
    background: #fff !important;
    border: 1px solid #ccc !important;
  }

  a[href]::after {
    content: none !important;
  }
}
