:root {
  --school-primary: #0f766e;
  --school-secondary: #0d9488;
  --school-success: #2e7d32;
  --school-warning: #f9a825;
  --school-danger: #c62828;
  --school-info: #0891b2;
  --school-muted: #6c757d;
  --school-bg: #f4f6f9;
  --school-text: #263238;
}
body { color: var(--school-text); }
.layout-navbar-fixed .wrapper .main-header { border-bottom: 1px solid #e3e8ef; }
.main-sidebar.sidebar-dark-primary { background-color: #134e4a; }
.main-sidebar .brand-link { border-bottom: 1px solid rgba(255,255,255,.12); }
.brand-link .brand-image { max-height: 34px; width: 34px; object-fit: contain; background: transparent; }
.brand-text { font-weight: 600 !important; letter-spacing: .1px; }
.nav-sidebar .nav-item > .nav-link { border-radius: .35rem; margin: 0 .45rem .1rem; }
.nav-sidebar .nav-link.active { background-color: var(--school-primary) !important; color: #fff !important; }
.nav-sidebar .nav-header { color: #b5c6d8; font-size: .72rem; letter-spacing: .05rem; }
.content-header h1 { font-size: 1.35rem; font-weight: 600; }
.content-wrapper { background: var(--school-bg); }
.card { border: 0; border-radius: .55rem; box-shadow: 0 1px 6px rgba(15, 23, 42, .08); }
.card-header { border-bottom: 1px solid #e9ecef; background-color: #fff; }
.card-title { font-weight: 600; }
.table th { white-space: nowrap; background: #f8fafc; }
.table td { vertical-align: middle; }
.badge { font-size: .76rem; font-weight: 600; }
.form-section-title {
  font-weight: 600;
  color: var(--school-primary);
  border-left: 4px solid var(--school-primary);
  padding-left: 10px;
  margin: 5px 0 14px;
}
.form-section-subtitle { color: var(--school-muted); font-size: .85rem; margin-top: -8px; margin-bottom: 12px; }
.form-select { display: block; width: 100%; height: calc(2.25rem + 2px); padding: .375rem 1.75rem .375rem .75rem; font-size: 1rem; font-weight: 400; line-height: 1.5; color: #495057; background: #fff; border: 1px solid #ced4da; border-radius: .25rem; }
.form-select-sm { height: calc(1.8125rem + 2px); padding-top: .25rem; padding-bottom: .25rem; padding-left: .5rem; font-size: .875rem; }
.form-text { display: block; margin-top: .25rem; color: #6c757d; font-size: .875em; }
.g-1 > [class*="col-"] { padding: .25rem; } .g-2 > [class*="col-"] { padding: .5rem; } .g-3 > [class*="col-"] { padding: .75rem; }
.gap-1 > * { margin-right: .25rem; } .gap-2 > * { margin-right: .5rem; } .gap-3 > * { margin-right: 1rem; }
.btn { border-radius: .35rem; }
.btn-primary { background-color: var(--school-primary); border-color: var(--school-primary); }
.btn-primary:hover { background-color: #115e59; border-color: #115e59; }
.info-box { border-radius: .55rem; box-shadow: 0 1px 6px rgba(15, 23, 42, .08); }
.kaldik-mini-month, .mini-month-box { font-size: .72rem; }
.mini-month-box { border: 1px solid #e1e5ea; padding: 6px; border-radius: 8px; background: #fff; page-break-inside: avoid; }
.mini-month-title { text-align: center; font-weight: 700; margin-bottom: 4px; color: var(--school-primary); }
.mini-month-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.mini-month-table th { font-weight: 700; text-align: center; font-size: 10px; background: #f8f9fa; border: 1px solid #e5e7eb; padding: 2px; }
.mini-day-cell { height: 25px; border: 1px solid #e5e7eb; text-align: center; font-size: 10px; padding: 1px; }
.mini-day-number { display: block; line-height: 1; }
.mini-day-code { display: block; font-size: 8px; font-weight: 700; line-height: 1; }
.kaldik-day-holiday { background: #f8d7da; color: #842029; }
.kaldik-day-exam { background: #e2d9f3; color: #432874; }
.kaldik-day-effective { background: #d1e7dd; color: #0f5132; }
.kaldik-day-non-effective { background: #e9ecef; color: #495057; }
.status-dot { display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:5px; vertical-align:middle; }
.empty-state { padding: 1.5rem; text-align: center; color: #6c757d; }
.audit-json { max-height: 360px; overflow:auto; white-space: pre-wrap; font-size: .78rem; }
.login-page { background: linear-gradient(135deg, #ccfbf1, #f8fafc); }
.login-logo-img { max-height: 92px; max-width: 120px; object-fit: contain; }
.main-footer { font-size: .85rem; }
@media (max-width: 767.98px) {
  .content-header h1 { font-size: 1.15rem; }
  .table-responsive { border: 0; }
  .mini-day-cell { height: 28px; }
}


/* UI Fix2 */
.brand-link .brand-text { font-weight: 700 !important; }
.small-box { border-radius: .65rem; box-shadow: 0 2px 8px rgba(15, 23, 42, .10); }
.small-box .icon { top: 8px; }
.small-box-footer { border-radius: 0 0 .65rem .65rem; }

.kaldik-mini-month-grid { margin-left: -8px; margin-right: -8px; }
.kaldik-mini-month-grid > [class*="col-"] { padding-left: 8px; padding-right: 8px; }
.mini-month-box {
  border: 1px solid #cfd8e3;
  padding: 8px;
  border-radius: 10px;
  background: #fff;
  page-break-inside: avoid;
  min-height: 202px;
}
.mini-month-title {
  text-align: center;
  font-weight: 700;
  margin: -8px -8px 7px -8px;
  padding: 6px 4px;
  color: #fff;
  background: var(--school-primary);
  border-radius: 10px 10px 0 0;
  letter-spacing: .2px;
}
.mini-month-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 2px;
  table-layout: fixed;
}
.mini-month-table th {
  font-weight: 700;
  text-align: center;
  font-size: 10px;
  background: #eef2f7;
  border: 1px solid #d8e0ea;
  padding: 3px 1px;
  border-radius: 4px;
}
.mini-month-table th.is-sunday { color: #c62828; }
.mini-day-cell {
  height: 25px;
  min-width: 25px;
  border: 1px solid #dfe6ee;
  text-align: center;
  font-size: 10px;
  padding: 1px;
  border-radius: 4px;
  background: #fff;
}
.mini-day-cell.is-blank { background: #f8fafc !important; border-color: #edf2f7; }
.mini-day-cell.is-sunday:not(.is-blank) { color: #c62828; font-weight: 600; }
.mini-day-number { display: block; line-height: 1.05; }
.mini-day-code { display: inline-block; margin-top: 1px; padding: 0 2px; font-size: 7.5px; font-weight: 700; line-height: 1.15; border-radius: 2px; background: rgba(255,255,255,.58); }

.table-actions { white-space: nowrap; width: 140px; }
.table-number { width: 52px; text-align: center; }
.table.dataTable thead th { vertical-align: middle; }
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select { border: 1px solid #ced4da; border-radius: .25rem; padding: .25rem .5rem; }
.select2-container--bootstrap4 .select2-selection { border-color: #ced4da; min-height: calc(2.25rem + 2px); }
.select2-container--bootstrap4 .select2-selection--single .select2-selection__rendered { line-height: calc(2.25rem); }
.select2-container--bootstrap4 .select2-selection--single .select2-selection__arrow { height: calc(2.25rem); }

@media (max-width: 767.98px) {
  .mini-month-box { min-height: auto; }
  .mini-day-cell { height: 30px; }
}


/* Password Strength UX */
.password-strength-panel {
  border: 1px solid #e5eaf0;
  border-radius: .55rem;
  padding: .75rem;
  background: linear-gradient(180deg, #ffffff, #f8fafc);
}
.password-strength-progress { height: .55rem; border-radius: 999px; background: #edf2f7; }
.password-strength-progress .progress-bar { border-radius: 999px; transition: width .25s ease; }
.password-checklist { list-style: none; }
.password-checklist li { margin-bottom: .25rem; }
.password-checklist li.is-ok { color: #2e7d32; }
.password-checklist li.is-bad { color: #c62828; }

/* v1.9.10 Effective Audit DataTables */
.dataTables_wrapper.processing { opacity: .72; pointer-events: none; }
.dataTables_wrapper .dtrg-group td { border-top: 2px solid rgba(0,0,0,.15); }

/* v1.10.0 DataTables UX, sorting, and responsive tables */
.kaldik-datatable-container { position: relative; width: 100%; min-height: 120px; }
.kaldik-datatable-loading {
  position: absolute; inset: 0; z-index: 50; display: none;
  align-items: center; justify-content: center; flex-direction: column;
  background: rgba(255,255,255,.86); cursor: wait; text-align: center;
}
.kaldik-datatable-container.is-loading .kaldik-datatable-loading { display: flex; }
.kaldik-datatable-container.is-loading table { opacity: .46; }
.dataTables_wrapper, table.dataTable, .table-responsive { width: 100% !important; }
table.dataTable thead th.sorting,
table.dataTable thead th.sorting_asc,
table.dataTable thead th.sorting_desc { position: relative; padding-right: 1.65rem !important; cursor: pointer; }
table.dataTable thead th.sorting::after { content: "↕"; }
table.dataTable thead th.sorting_asc::after { content: "↑"; }
table.dataTable thead th.sorting_desc::after { content: "↓"; }
table.dataTable thead th.sorting::after,
table.dataTable thead th.sorting_asc::after,
table.dataTable thead th.sorting_desc::after { position: absolute; right: .55rem; top: 50%; transform: translateY(-50%); opacity: .65; font-size: .82rem; }
table.dataTable thead th.no-sort::after { content: none !important; }
.table-responsive { overflow-x: auto; -webkit-overflow-scrolling: touch; }
@media (max-width: 767.98px) {
  .dataTables_wrapper .dataTables_length,
  .dataTables_wrapper .dataTables_filter,
  .dataTables_wrapper .dataTables_info,
  .dataTables_wrapper .dataTables_paginate { float: none !important; text-align: left !important; width: 100%; margin-bottom: .5rem; }
}
/* Dashboard mini calendar v1.11.0: isolated from yearly PDF/Excel export. */
.dashboard-mini-month{position:relative;transition:box-shadow .2s ease,border-color .2s ease}.dashboard-mini-month.is-current-month{border:2px solid #0d9488;box-shadow:0 0 0 3px rgba(13,148,136,.12)}.dashboard-mini-month .mini-day-cell{position:relative}.dashboard-mini-day-content{display:block;min-height:36px;color:inherit;position:relative;padding:3px}.dashboard-mini-month .is-today{outline:2px solid #0f766e;outline-offset:-2px}.dashboard-mini-month .is-today .mini-day-number{font-weight:700}.dashboard-mini-month .mini-day-cell.has-agenda{cursor:pointer;transition:box-shadow .15s ease}.dashboard-mini-month .mini-day-cell.has-agenda:hover{box-shadow:inset 0 0 0 2px rgba(15,118,110,.35)}.dashboard-mini-month .mini-day-cell.has-agenda:focus{outline:2px solid #0f766e;outline-offset:-2px}.dashboard-agenda-count{position:absolute;right:2px;bottom:2px;top:auto;z-index:3;min-width:17px;height:17px;padding:0 4px;font-size:8px;line-height:17px;text-align:center;border-radius:9px;pointer-events:none}.dashboard-agenda-dots{position:absolute;left:3px;bottom:5px;display:flex;align-items:center;gap:2px;min-height:5px;pointer-events:none}.dashboard-agenda-dots i{display:block;width:5px;height:5px;border-radius:50%;border:1px solid rgba(0,0,0,.15)}@media(max-width:575.98px){.dashboard-mini-day-content{min-height:31px;padding:2px}.dashboard-agenda-count{right:1px;bottom:1px;min-width:15px;height:15px;padding:0 3px;font-size:7px;line-height:15px}.dashboard-agenda-dots{left:2px;bottom:4px}.dashboard-mini-month .mini-month-table{font-size:11px}}
.dashboard-mini-month .is-effective{background-color:#edf8ef!important}.dashboard-mini-month .is-non-effective{background-color:#fdeeee!important}.dashboard-mini-month .is-holiday{background-color:#f2f3f5!important}.dashboard-mini-day-content .mini-day-number{color:inherit;text-decoration:none}


/* Kaldik v1.11.2 - Dashboard Mini Calendar UI and legend */
.dashboard-mini-month .mini-day-cell{height:56px;padding:0;vertical-align:top}
.dashboard-mini-day-content{display:block;position:relative;width:100%;height:100%;min-height:56px;padding:4px;box-sizing:border-box;color:inherit}
.dashboard-mini-day-number{position:absolute;top:5px;left:50%;transform:translateX(-50%);display:block;font-size:20px;font-weight:700;line-height:1;text-align:center;white-space:nowrap}
.dashboard-agenda-dots{position:absolute;left:5px;bottom:5px;display:flex;align-items:center;gap:3px;min-height:6px;max-width:calc(100% - 24px);overflow:hidden;pointer-events:none}
.dashboard-agenda-dots i{display:block;width:6px;height:6px;flex:0 0 6px;border-radius:50%;border:1px solid rgba(0,0,0,.15)}
.dashboard-agenda-count{position:absolute;right:5px;bottom:5px;top:auto;z-index:2;min-width:0;height:auto;padding:0;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:#5f6670;font-size:7px;font-weight:700;line-height:1;white-space:nowrap;pointer-events:none}
.dashboard-legend-list{list-style:none;margin:0;padding:0}.dashboard-legend-list li{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px}.dashboard-legend-swatch,.dashboard-legend-outline{display:inline-block;flex:0 0 28px;width:28px;height:24px;border:1px solid #d7dce2;border-radius:4px}.dashboard-legend-swatch.is-effective{background:#edf8ef}.dashboard-legend-swatch.is-non-effective{background:#fdeeee}.dashboard-legend-swatch.is-holiday{background:#f2f3f5}.dashboard-legend-outline.today{outline:2px solid #0f766e;outline-offset:-2px;background:#fff}.dashboard-legend-outline.current-month{border:2px solid #0d9488;box-shadow:0 0 0 3px rgba(13,148,136,.12);background:#fff}.dashboard-legend-dot-demo{display:flex;align-items:center;gap:3px;flex:0 0 28px;height:24px}.dashboard-legend-dot-demo i{display:block;width:6px;height:6px;border-radius:50%;background:#3788d8}.dashboard-legend-dot-demo i:nth-child(2){background:#28a745}.dashboard-legend-dot-demo i:nth-child(3){background:#dc3545}.dashboard-legend-counter-demo{display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;height:24px;color:#5f6670;font-size:8px;font-weight:700}.dashboard-category-dot{display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:50%;border:1px solid rgba(0,0,0,.15)}
@media(max-width:991.98px){.dashboard-mini-month .mini-day-cell{height:49px}.dashboard-mini-day-content{height:49px;min-height:49px}.dashboard-mini-day-number{top:4px;font-size:17px}}
@media(max-width:575.98px){.dashboard-mini-month .mini-day-cell{height:41px}.dashboard-mini-day-content{height:41px;min-height:41px;padding:3px}.dashboard-mini-day-number{top:3px;font-size:15px}.dashboard-agenda-dots{left:3px;bottom:3px;gap:2px}.dashboard-agenda-dots i{width:5px;height:5px;flex-basis:5px}.dashboard-agenda-count{right:3px;bottom:3px;font-size:6px}}

/* v1.12.0: navbar agenda and full-width dashboard mini calendar */
.dashboard-mini-day-number{font-size:11px!important}
@media(max-width:991.98px){.dashboard-mini-day-number{font-size:10px!important}}
@media(max-width:575.98px){.dashboard-mini-day-number{font-size:9px!important}}
.navbar-upcoming-agenda-list{max-height:360px;overflow-y:auto;overflow-x:hidden}
.navbar-upcoming-agenda-item{white-space:normal;padding:.65rem 1rem}
.navbar-upcoming-agenda-item:hover{background-color:#f8f9fa}
.navbar-upcoming-agenda-dot{width:9px;height:9px;flex:0 0 9px;border-radius:50%;margin:.35rem .6rem 0 0;border:1px solid rgba(0,0,0,.12)}
.navbar-upcoming-agenda-title{font-weight:600;line-height:1.25;overflow-wrap:anywhere}
.min-width-0{min-width:0}
@media(max-width:575.98px){#navbarUpcomingAgenda .dropdown-menu{position:fixed;top:57px;left:8px;right:8px;width:auto;max-width:none}}


/* Kaldik v1.12.2 - compact horizontal dashboard mini-calendar cells */
.navbar-upcoming-agenda-list{max-height:420px;overflow-y:auto;overflow-x:hidden}
/* Default/XL: 4 month cards per row. */
.dashboard-mini-month .mini-day-cell{height:35px!important;min-height:35px!important;max-height:35px!important;padding:0!important;overflow:hidden;box-sizing:border-box;vertical-align:top}
.dashboard-mini-day-content{height:35px!important;min-height:35px!important;max-height:35px!important;padding:2px 3px!important;overflow:hidden;box-sizing:border-box}
.dashboard-mini-day-number{top:3px!important;font-size:10px!important;font-weight:700;line-height:1!important}
.dashboard-agenda-dots{left:3px!important;bottom:3px!important;gap:2px!important}
.dashboard-agenda-dots i{width:4px!important;height:4px!important;flex-basis:4px!important}
.dashboard-agenda-count{right:3px!important;bottom:3px!important;font-size:6px!important;line-height:1!important}
/* Large laptop: 3 month cards per row. */
@media(min-width:992px) and (max-width:1199.98px){
  .dashboard-mini-month .mini-day-cell,.dashboard-mini-day-content{height:37px!important;min-height:37px!important;max-height:37px!important}
}
@media(min-width:576px) and (max-width:991.98px){
  .dashboard-mini-month .mini-day-cell,.dashboard-mini-day-content{height:38px!important;min-height:38px!important;max-height:38px!important}
  .dashboard-mini-day-number{top:3px!important;font-size:10px!important}
}
@media(max-width:575.98px){
  .dashboard-mini-month .mini-day-cell,.dashboard-mini-day-content{height:36px!important;min-height:36px!important;max-height:36px!important}
  .dashboard-mini-day-content{padding:2px 3px!important}
  .dashboard-mini-day-number{top:3px!important;font-size:9px!important}
  .dashboard-agenda-dots{left:3px!important;bottom:3px!important}
  .dashboard-agenda-count{right:3px!important;bottom:3px!important;font-size:6px!important}
  .navbar-upcoming-agenda-list{max-height:calc(100vh - 190px)}
}


/* Kaldik v1.12.3 - v1.9.11-density dashboard mini calendar on full-width grid */
.dashboard-mini-month .mini-day-cell{
  min-width:25px!important;
  height:32px!important;
  min-height:32px!important;
  max-height:32px!important;
  padding:0!important;
  overflow:hidden;
  box-sizing:border-box;
  vertical-align:top;
}
.dashboard-mini-month .dashboard-mini-day-content{
  height:32px!important;
  min-height:32px!important;
  max-height:32px!important;
  padding:2px 3px!important;
  overflow:hidden;
  box-sizing:border-box;
}
.dashboard-mini-month .dashboard-mini-day-number{top:2px!important;font-size:9px!important;font-weight:700;line-height:1!important}
.dashboard-mini-month .dashboard-agenda-dots{left:3px!important;bottom:2px!important;gap:2px!important}
.dashboard-mini-month .dashboard-agenda-dots i{width:4px!important;height:4px!important;flex-basis:4px!important}
.dashboard-mini-month .dashboard-agenda-count{right:3px!important;bottom:2px!important;font-size:6px!important;line-height:1!important}
/* Large laptop: 3 month cards per row. */
@media(min-width:992px) and (max-width:1199.98px){
  .dashboard-mini-month .mini-day-cell,
  .dashboard-mini-month .dashboard-mini-day-content{height:34px!important;min-height:34px!important;max-height:34px!important}
}
/* Tablet: 2 month cards per row. */
@media(min-width:576px) and (max-width:991.98px){
  .dashboard-mini-month .mini-day-cell,
  .dashboard-mini-month .dashboard-mini-day-content{height:36px!important;min-height:36px!important;max-height:36px!important}
  .dashboard-mini-month .dashboard-mini-day-number{top:3px!important;font-size:10px!important}
}
/* Mobile: 1 month card per row. */
@media(max-width:575.98px){
  .dashboard-mini-month .mini-day-cell,
  .dashboard-mini-month .dashboard-mini-day-content{height:38px!important;min-height:38px!important;max-height:38px!important}
  .dashboard-mini-month .dashboard-mini-day-content{padding:2px 3px!important}
  .dashboard-mini-month .dashboard-mini-day-number{top:3px!important;font-size:9px!important}
}


/* Kaldik v1.12.4 - stable compact agenda indicators on dashboard mini calendar */
.dashboard-mini-month .dashboard-mini-indicators{
  position:absolute;
  left:4px;
  right:4px;
  bottom:2px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-width:0;
  height:6px;
  overflow:visible;
  pointer-events:none;
}
.dashboard-mini-month .dashboard-mini-indicators .dashboard-agenda-dots{
  position:static!important;
  display:flex;
  align-items:center;
  flex:1 1 auto;
  min-width:0;
  max-width:calc(100% - 14px);
  height:6px;
  gap:2px!important;
  overflow:visible;
}
.dashboard-mini-month .dashboard-mini-indicators .dashboard-agenda-dot{
  display:block;
  width:4px!important;
  height:4px!important;
  min-width:4px;
  flex:0 0 4px!important;
  margin:0!important;
  transform:none!important;
  border-radius:50%;
  border:1px solid rgba(0,0,0,.15);
}
.dashboard-mini-month .dashboard-mini-indicators .dashboard-agenda-count{
  position:static!important;
  flex:0 0 auto;
  min-width:0;
  margin-left:3px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  font-size:6px!important;
  line-height:1!important;
  white-space:nowrap;
}
@media(max-width:1199.98px){
  .dashboard-mini-month .dashboard-mini-indicators .dashboard-agenda-dot:nth-child(n+3){display:none}
}

/* v1.13.0 Agenda validation and DataTables hotfix */
.agenda-problem-card { cursor: pointer; }
.agenda-problem-card:focus { outline: 3px solid rgba(15,118,110,.35); outline-offset: 2px; }
.agenda-problem-list .list-group-item:last-child { border-bottom: 0; }
.kaldik-datatable-shell { position: relative; width: 100%; min-height: 120px; }
.kaldik-datatable-container[aria-busy="false"] .kaldik-datatable-loading { pointer-events: none; }

/* v1.13.1/v1.14.0 - equal-height Dashboard summary cards */
.dashboard-summary-cards > [class*="col-"] {
  display: flex;
}
.dashboard-summary-cards .small-box {
  display: flex;
  flex-direction: column;
  width: 100%;
}
.dashboard-summary-cards .small-box .inner {
  flex: 1 1 auto;
}
.dashboard-summary-cards .small-box-footer {
  margin-top: auto;
}
.agenda-problem-meta {
  display: block;
  margin: 0;
  font-size: .78rem;
  line-height: 1.15;
  white-space: nowrap;
}
@media (max-width: 359.98px) {
  .agenda-problem-meta {
    font-size: .72rem;
  }
}

/* Kaldik v1.14.1 - validation help, dashboard agenda detail, and teacher calendar form */
.validation-help-table th,
.validation-help-table td { vertical-align: top; }

.dashboard-agenda-modal-item {
  --agenda-category-color: #3788d8;
  position: relative;
  margin-bottom: .75rem;
  padding: .75rem .8rem .75rem 1rem;
  border: 1px solid #e5e7eb;
  border-left: 4px solid var(--agenda-category-color);
  border-radius: .35rem;
  background: #fff;
}
.dashboard-agenda-modal-item:last-child { margin-bottom: 0; }
.dashboard-agenda-modal-title { padding-right: .5rem; font-weight: 600; line-height: 1.3; }
.dashboard-agenda-modal-meta { display: flex; align-items: center; margin-top: .25rem; color: #6c757d; font-size: .82rem; }
.dashboard-agenda-modal-dot {
  display: inline-block;
  flex: 0 0 9px;
  width: 9px;
  height: 9px;
  margin-right: .4rem;
  border: 1px solid rgba(0,0,0,.15);
  border-radius: 50%;
  background: var(--agenda-category-color);
}
.dashboard-agenda-modal-date { margin-top: .2rem; color: #6c757d; font-size: .78rem; }

.agenda-related-list { padding-left: .25rem; }
.agenda-related-item {
  margin-bottom: .5rem;
  padding: .55rem .65rem;
  border: 1px solid #e4e7eb;
  border-radius: .35rem;
  background: #f8f9fa;
}
.agenda-related-item:last-child { margin-bottom: 0; }

.teacher-calendar-section .card-header,
.teacher-calendar-settings-card .card-header { background: rgba(0,0,0,.015); }
.teacher-calendar-period-box {
  height: 100%;
  padding: .75rem;
  border: 1px solid #dee2e6;
  border-radius: .35rem;
  background: #f8f9fa;
}
.teacher-calendar-color-control { display: flex; align-items: center; gap: .75rem; }
.teacher-calendar-color-control input[type="color"] { width: 64px; min-width: 64px; height: 42px; padding: .2rem; }
.teacher-calendar-color-control code { font-size: .9rem; }
.teacher-calendar-actions-card { position: sticky; bottom: 0; z-index: 20; box-shadow: 0 -3px 12px rgba(0,0,0,.08); }
.teacher-calendar-main-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.teacher-conflict-alert { border-left: 5px solid #bd2130; }
.teacher-conflict-list { max-height: 520px; overflow-y: auto; padding-right: .25rem; }
.teacher-conflict-item {
  margin-bottom: .75rem;
  padding: .75rem;
  border: 1px solid rgba(114,28,36,.22);
  border-radius: .35rem;
  background: #fff;
  color: #343a40;
}
.teacher-conflict-item:last-child { margin-bottom: 0; }
#teacherCalendarRangeFeedback { margin-top: -.5rem; margin-bottom: 1rem; }

@media (max-width: 767.98px) {
  .teacher-calendar-actions-card { position: static; }
  .teacher-calendar-actions-card .card-body,
  .teacher-calendar-main-actions { display: block !important; width: 100%; }
  .teacher-calendar-main-actions .btn,
  .teacher-calendar-actions-card button[form="deleteTeacherAgendaForm"] { width: 100%; margin-bottom: .5rem; }
  .teacher-calendar-period-box { margin-bottom: .5rem; }
}

/* Kaldik v1.15.0 - Teacher Dashboard visual consistency and DataTables single loader */
.kaldik-datatable-container .dataTables_processing { display: none !important; }
.teacher-dashboard-mini-month .is-teacher-effective { background-color: #edf8ef !important; }
.teacher-dashboard-mini-month .is-teacher-non-effective { background-color: #fdeeee !important; }
.teacher-dashboard-mini-month .is-additional-activity { background-color: #e8f4fb !important; }
.teacher-dashboard-mini-month .is-no-agenda { background-color: #f8f9fa !important; }
.teacher-dashboard-mini-month .is-non-operational { background-color: #f2f3f5 !important; color: #6c757d; }
.teacher-dashboard-mini-month .has-calculation-issue::after {
  content: "!";
  position: absolute;
  top: 1px;
  right: 2px;
  z-index: 4;
  color: #c82333;
  font-size: 7px;
  font-weight: 700;
  line-height: 1;
}
.dashboard-legend-swatch.is-teacher-effective { background: #edf8ef; }
.dashboard-legend-swatch.is-teacher-non-effective { background: #fdeeee; }
.dashboard-legend-swatch.is-additional-activity { background: #e8f4fb; }
.dashboard-legend-swatch.is-no-agenda { background: #f8f9fa; }
.dashboard-legend-swatch.is-non-operational { background: #f2f3f5; }
#teacherWeeklyAuditContainer[aria-busy="true"] { opacity: .78; }


/* CalEdu branding refresh v1.22.3 */
.caledu-brand-link {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 57px;
  padding: 7px 10px;
  overflow: hidden;
}
.caledu-brand-full {
  display: block;
  width: 100%;
  max-width: 205px;
  height: auto;
  max-height: 43px;
  padding: 0;
  object-fit: contain;
  border-radius: 0;
  background: transparent;
}
.caledu-brand-mark {
  display: none;
  width: 40px;
  height: 40px;
  object-fit: contain;
}
.sidebar-collapse .caledu-brand-full { display: none; }
.sidebar-collapse .caledu-brand-mark { display: block; }
.login-caledu-logo {
  display: block;
  width: min(100%, 220px);
  height: auto;
  max-height: 72px;
  margin: 0 auto .75rem;
  object-fit: contain;
  background: transparent;
}
.login-school-logo {
  display: block;
  max-width: 82px;
  max-height: 82px;
  margin-left: auto;
  margin-right: auto;
  object-fit: contain;
  background: transparent;
}
@media (max-width: 575.98px) {
  .login-caledu-logo { width: min(100%, 200px); max-height: 64px; }
}


/* CalEdu teal web theme v1.22.4 */
:root {
  --primary: #0f766e;
  --school-primary: #0f766e;
  --school-secondary: #0d9488;
  --school-primary-dark: #115e59;
  --school-primary-deep: #134e4a;
  --school-primary-soft: #ccfbf1;
}

a, .text-primary { color: var(--school-primary); }
a:hover { color: var(--school-primary-dark); }
.bg-primary,
.badge-primary,
.btn-primary,
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link,
.page-item.active .page-link,
.custom-control-input:checked ~ .custom-control-label::before {
  background-color: var(--school-primary) !important;
  border-color: var(--school-primary) !important;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:not(:disabled):not(.disabled):active {
  background-color: var(--school-primary-dark) !important;
  border-color: var(--school-primary-dark) !important;
}
.btn-outline-primary { color: var(--school-primary); border-color: var(--school-primary); }
.btn-outline-primary:hover,
.btn-outline-primary:focus {
  color: #fff;
  background-color: var(--school-primary);
  border-color: var(--school-primary);
}
.card-primary.card-outline,
.card-outline.card-primary { border-top-color: var(--school-primary); }
.page-link { color: var(--school-primary); }
.form-control:focus,
.form-select:focus,
.custom-select:focus,
.select2-container--bootstrap4.select2-container--focus .select2-selection {
  border-color: #5eead4;
  box-shadow: 0 0 0 .2rem rgba(15,118,110,.18);
}
.accent-primary .btn-link,
.accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn) {
  color: var(--school-primary);
}
.main-sidebar.sidebar-dark-primary { background-color: var(--school-primary-deep); }
.sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link.active,
.sidebar-light-primary .nav-sidebar > .nav-item > .nav-link.active {
  background-color: var(--school-primary) !important;
}
.login-page { background: linear-gradient(135deg, var(--school-primary-soft), #f8fafc); }
.login-card-body .input-group .input-group-text { color: var(--school-primary-deep); }
