/* =====================================================================
   KDS Admin — Branded design system (Blade-in-place restyle) — COMPACT v3
   ---------------------------------------------------------------------
   SAFE / ADDITIVE: every rule is scoped under `.kds-theme`, set ONLY on
   pages using the new `layouts.admin` layout. Existing pages unaffected.

   Density: very tight scale + narrow sidebar (max content width) while
   keeping text readable (table/body ~12.5px, labels ~11.5px).

   Whole palette is driven by 3 HSL vars (--main-h/s/l); re-skin = edit them.
   ===================================================================== */

.kds-theme {
  /* ---- BRAND — Palette D · Orange + Steel Blue (change these 6 numbers to re-skin everything) ---- */
  --main-h: 26;             /* KDS primary orange  #EB873B */
  --main-s: 81%;
  --main-l: 58%;
  --main-two-h: 212;        /* steel-navy accent   #1B3A5C */
  --main-two-s: 55%;
  --main-two-l: 26%;

  /* ---- Surface / neutral tokens (Palette D) ---- */
  --kds-bg: #f4f6f9;
  --kds-surface: #ffffff;
  --kds-surface-2: #f7f9fc;
  --kds-border: #e2e7ee;
  --kds-border-strong: #d3dae5;
  --kds-ink: #15243a;
  --kds-ink-soft: #475569;
  --kds-muted: #8595a8;

  /* ---- Shape & depth ---- */
  --kds-radius-sm: 7px;
  --kds-radius: 9px;
  --kds-radius-lg: 13px;
  --kds-shadow-sm: 0 1px 2px rgba(20, 28, 52, .05), 0 1px 2px rgba(20, 28, 52, .04);
  --kds-shadow: 0 3px 12px rgba(23, 31, 56, .06);
  --kds-shadow-lg: 0 10px 26px rgba(23, 31, 56, .13);
  --kds-ring: 0 0 0 3px hsl(var(--main-h) var(--main-s) var(--main-l) / .14);

  --kds-sidebar-w: 198px;   /* narrow → max content width */

  background: var(--kds-bg);
  color: var(--kds-ink-soft);
  font-family: "Roboto", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 13px;
  -webkit-font-smoothing: antialiased;
}

.kds-theme .kds-text-brand { color: hsl(var(--main-h) var(--main-s) var(--main-l)); }
.kds-theme .kds-bg-brand   { background: hsl(var(--main-h) var(--main-s) var(--main-l)); }

/* =========================== SIDEBAR =========================== */
.kds-theme .sidebar {
  width: var(--kds-sidebar-w);
  background: var(--kds-surface);
  border-right: 1px solid var(--kds-border);
  box-shadow: none;
}
.kds-theme .sidebar__logo {
  border-bottom: 1px solid var(--kds-border);
  padding-block: 9px !important;
}
.kds-theme .sidebar__logo img { width: 72px !important; height: auto; }
.kds-theme .sidebar-menu-wrapper > .p-20 { padding: 10px !important; padding-top: 6px !important; }
.kds-theme .sidebar-menu__item-title {
  font-family: "Urbanist", sans-serif;
  font-size: 9px !important;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--kds-muted) !important;
  padding-inline: 9px;
}
.kds-theme .sidebar-menu__item-title.mt-10 { margin-top: 3px !important; margin-bottom: 3px !important; }
.kds-theme .sidebar-menu__item-title.mt-20 { margin-top: 9px !important; margin-bottom: 3px !important; }
.kds-theme .sidebar-menu__link {
  border-radius: var(--kds-radius-sm);
  padding: 5px 9px;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--kds-ink-soft);
  gap: 8px;
  transition: background .15s ease, color .15s ease;
}
.kds-theme .sidebar-menu__item { margin-bottom: 1px; }
.kds-theme .sidebar-menu__link .icon { font-size: 15px; line-height: 0; transition: color .15s ease; }
.kds-theme .sidebar-menu__link .text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kds-theme .sidebar-menu__link:hover {
  background: hsl(var(--main-h) var(--main-s) var(--main-l) / .08);
  color: hsl(var(--main-h) var(--main-s) var(--main-l));
}
/* Current page → solid ORANGE. NOTE: the base template (main.js) marks the active
   item with `.activePage`, not `.active`; we cover both so the brand color + glow apply. */
.kds-theme .sidebar-menu__item.activePage > .sidebar-menu__link,
.kds-theme .sidebar-menu__item.active > .sidebar-menu__link,
.kds-theme .sidebar-menu__link.activePage,
.kds-theme .sidebar-menu__link.active {
  background: hsl(var(--main-h) var(--main-s) var(--main-l));
  color: #fff;
  box-shadow: 0 4px 10px hsl(var(--main-h) var(--main-s) var(--main-l) / .3);
}
.kds-theme .sidebar-menu__item.activePage > .sidebar-menu__link .icon,
.kds-theme .sidebar-menu__item.active > .sidebar-menu__link .icon { color: #fff; }

/* Parent SECTION that contains the current sub-page → solid STEEL-BLUE (--main-two).
   Overrides base main.css rule (`...:has(.sidebar-submenu__item.activePage)...{background:var(--main-600)}`)
   which was the stray template blue (#487FFF). This also gives the Palette-D accent a real,
   intentional role: "the section you're currently inside". */
.kds-theme .sidebar-menu__item:has(.sidebar-submenu__item.activePage) > .sidebar-menu__link {
  background: hsl(var(--main-two-h) var(--main-two-s) var(--main-two-l));
  color: #fff;
  box-shadow: 0 4px 10px hsl(var(--main-two-h) var(--main-two-s) var(--main-two-l) / .3);
}
.kds-theme .sidebar-menu__item:has(.sidebar-submenu__item.activePage) > .sidebar-menu__link .icon,
.kds-theme .sidebar-menu__item:has(.sidebar-submenu__item.activePage) > .sidebar-menu__link::before { color: #fff !important; }
.kds-theme .sidebar-submenu__link {
  border-radius: 6px;
  font-size: 12px;
  color: var(--kds-muted);
  padding: 4px 8px 4px 28px;
}
.kds-theme .sidebar-submenu__link:hover,
.kds-theme .sidebar-submenu__item.activePage > .sidebar-submenu__link,
.kds-theme .sidebar-submenu__link.activePage,
.kds-theme .sidebar-submenu__link.active {
  color: hsl(var(--main-h) var(--main-s) var(--main-l));
  background: hsl(var(--main-h) var(--main-s) var(--main-l) / .07);
}

/* =========================== TOP NAVBAR =========================== */
.kds-theme .dashboard-main-wrapper { margin-left: var(--kds-sidebar-w); }
@media (max-width: 1199px) { .kds-theme .dashboard-main-wrapper { margin-left: 0; } }
.kds-theme .top-navbar {
  position: sticky; top: 0; z-index: 5;
  background: rgba(255,255,255,.86);
  backdrop-filter: saturate(140%) blur(8px);
  border-bottom: 1px solid var(--kds-border);
  padding: 6px 14px;
  margin: 0;
}
.kds-theme .kds-topbar-chip {
  display: inline-flex; align-items: center; gap: 5px;
  background: var(--kds-surface-2);
  border: 1px solid var(--kds-border);
  border-radius: 999px;
  padding: 3px 9px;
  font-size: 11px; font-weight: 600; color: var(--kds-ink-soft);
}
.kds-theme .kds-icon-btn {
  width: 32px; height: 32px; border-radius: 9px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--kds-surface-2); border: 1px solid var(--kds-border);
  color: var(--kds-ink-soft); font-size: 15px; transition: .15s ease;
}
.kds-theme .kds-icon-btn:hover {
  background: hsl(var(--main-h) var(--main-s) var(--main-l));
  border-color: transparent; color: #fff;
}

/* Branch switcher (admin) */
.kds-theme .kds-branch {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--kds-surface-2); border: 1px solid var(--kds-border);
  border-radius: 999px; padding: 3px 9px; transition: border-color .15s ease, box-shadow .15s ease;
}
.kds-theme .kds-branch:focus-within { border-color: hsl(var(--main-h) var(--main-s) var(--main-l)); box-shadow: var(--kds-ring); }
.kds-theme .kds-branch i { font-size: 14px; color: hsl(var(--main-h) var(--main-s) var(--main-l)); }
.kds-theme .kds-branch select {
  border: 0; outline: 0; background: transparent; cursor: pointer;
  font-size: 11px; font-weight: 600; color: var(--kds-ink-soft);
  max-width: 150px; padding: 1px 2px;
}

/* =========================== PAGE BODY =========================== */
.kds-theme .dashboard-body { padding: 13px; }
@media (max-width: 575px) { .kds-theme .dashboard-body { padding: 11px; } }

/* Page header — COMPACT: breadcrumb left, CTA(s) right on the SAME row.
   Page title + description were removed from the component (the breadcrumb's
   .current already names the page), so this is a single-line bar. */
.kds-theme .kds-page-header {
  display: flex; flex-wrap: wrap; align-items: center;
  justify-content: space-between; gap: 6px 12px; margin-bottom: 10px;
}
.kds-theme .kds-page-header > .kds-toolbar { margin-left: auto; }  /* keep CTA right even if breadcrumb is absent */
.kds-theme .kds-breadcrumb { display: flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--kds-muted); }
.kds-theme .kds-breadcrumb a { color: var(--kds-muted); text-decoration: none; }
.kds-theme .kds-breadcrumb a:hover { color: hsl(var(--main-h) var(--main-s) var(--main-l)); }
.kds-theme .kds-breadcrumb .sep { font-size: 9px; opacity: .7; }
.kds-theme .kds-breadcrumb .current { color: hsl(var(--main-h) var(--main-s) var(--main-l)); font-weight: 600; }

/* =========================== CARDS =========================== */
.kds-theme .kds-card {
  background: var(--kds-surface);
  border: 1px solid var(--kds-border);
  border-radius: var(--kds-radius);
  box-shadow: var(--kds-shadow-sm);
}
.kds-theme .kds-card__head {
  display: flex; align-items: center; justify-content: space-between; gap: 9px;
  padding: 8px 12px; border-bottom: 1px solid var(--kds-border);
}
.kds-theme .kds-card__title { font-family: "Urbanist", sans-serif; font-weight: 700; font-size: 13px; color: var(--kds-ink); margin: 0; }
.kds-theme .kds-card__body { padding: 11px; }
.kds-theme .kds-card__body.is-flush { padding: 0; }

/* Stat tiles */
.kds-theme .kds-stat {
  display: flex; align-items: center; gap: 9px;
  background: var(--kds-surface); border: 1px solid var(--kds-border);
  border-radius: var(--kds-radius); padding: 9px 11px; box-shadow: var(--kds-shadow-sm);
}
.kds-theme .kds-stat__icon {
  width: 33px; height: 33px; border-radius: 9px; flex: none;
  display: inline-flex; align-items: center; justify-content: center; font-size: 16px;
  background: hsl(var(--main-h) var(--main-s) var(--main-l) / .12);
  color: hsl(var(--main-h) var(--main-s) var(--main-l));
}
.kds-theme .kds-stat__value { font-family: "Urbanist", sans-serif; font-size: 16.5px; font-weight: 800; color: var(--kds-ink); line-height: 1; }
.kds-theme .kds-stat__label { font-size: 10.5px; color: var(--kds-muted); margin-top: 2px; }

/* =========================== TABLE =========================== */
.kds-theme .kds-table-wrap { overflow-x: auto; }
.kds-theme table.kds-table { width: 100%; border-collapse: separate; border-spacing: 0; margin: 0; }
.kds-theme .kds-table thead th {
  background: var(--kds-surface-2);
  font-family: "Urbanist", sans-serif;
  font-size: 10px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase;
  color: var(--kds-muted); text-align: left; white-space: nowrap;
  padding: 6px 10px; border-bottom: 1px solid var(--kds-border);
}
.kds-theme .kds-table tbody td {
  padding: 5px 10px; font-size: 12.5px; color: var(--kds-ink-soft);
  border-bottom: 1px solid var(--kds-border); vertical-align: middle; white-space: nowrap;
}
.kds-theme .kds-table .kds-wrap { white-space: normal; max-width: 220px; }
.kds-theme .kds-table tbody tr:last-child td { border-bottom: 0; }
.kds-theme .kds-table tbody tr { transition: background .12s ease; }
.kds-theme .kds-table tbody tr:hover { background: hsl(var(--main-h) var(--main-s) var(--main-l) / .035); }
.kds-theme .kds-table .kds-name { font-weight: 600; color: var(--kds-ink); text-decoration: none; }
.kds-theme .kds-table .kds-name:hover { color: hsl(var(--main-h) var(--main-s) var(--main-l)); }
.kds-theme .kds-cell-sub { font-size: 10.5px; color: var(--kds-muted); }

/* Avatar */
.kds-theme .kds-avatar {
  width: 25px; height: 25px; border-radius: 7px; flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  font-family: "Urbanist", sans-serif; font-weight: 700; font-size: 11px;
  background: hsl(var(--main-h) var(--main-s) var(--main-l) / .14);
  color: hsl(var(--main-h) var(--main-s) var(--main-l));
}

/* =========================== BADGES =========================== */
.kds-theme .kds-badge {
  display: inline-flex; align-items: center; gap: 4px; white-space: nowrap;
  font-size: 10.5px; font-weight: 600; line-height: 1;
  padding: 3px 8px; border-radius: 999px; text-transform: capitalize;
}
.kds-theme .kds-badge::before { content: ""; width: 4px; height: 4px; border-radius: 50%; background: currentColor; }
.kds-theme .kds-badge--success { color: #15803d; background: #dcfce7; }
.kds-theme .kds-badge--warning { color: #b45309; background: #fef3c7; }
.kds-theme .kds-badge--danger  { color: #b91c1c; background: #fee2e2; }
.kds-theme .kds-badge--muted   { color: #64748b; background: #eef1f6; }
.kds-theme .kds-badge--info    { color: #1d4ed8; background: #dbeafe; }

/* =========================== BUTTONS =========================== */
.kds-theme .kds-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 5px;
  font-family: "Urbanist", sans-serif; font-weight: 700; font-size: 12.5px;
  border: 1px solid transparent; border-radius: var(--kds-radius-sm);
  padding: 6px 11px; cursor: pointer; text-decoration: none; line-height: 1.1; white-space: nowrap;
  transition: transform .04s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
}
.kds-theme .kds-btn:active { transform: translateY(1px); }
.kds-theme .kds-btn i { font-size: 14px; }
.kds-theme .kds-btn--primary { background: hsl(var(--main-h) var(--main-s) var(--main-l)); color: #fff; box-shadow: 0 5px 11px hsl(var(--main-h) var(--main-s) var(--main-l) / .24); }
.kds-theme .kds-btn--primary:hover { background: hsl(var(--main-h) var(--main-s) calc(var(--main-l) - 6%)); color: #fff; }
.kds-theme .kds-btn--ghost { background: var(--kds-surface); border-color: var(--kds-border-strong); color: var(--kds-ink-soft); }
.kds-theme .kds-btn--ghost:hover { border-color: hsl(var(--main-h) var(--main-s) var(--main-l)); color: hsl(var(--main-h) var(--main-s) var(--main-l)); }
.kds-theme .kds-btn--success { background: #16a34a; color: #fff; box-shadow: 0 5px 11px rgba(22,163,74,.24); }
.kds-theme .kds-btn--success:hover { background: #15803d; color: #fff; }
.kds-theme .kds-btn--sm { padding: 4px 9px; font-size: 11.5px; gap: 5px; }
.kds-theme .kds-btn--sm i { font-size: 13px; }
.kds-theme .kds-btn--block { width: 100%; }

/* Icon-only row actions (compact, single line) */
.kds-theme .kds-act {
  width: 25px; height: 25px; border-radius: 7px; flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 14px; border: 1px solid transparent; cursor: pointer; text-decoration: none; transition: .15s ease;
}
.kds-theme .kds-act--danger  { color: #dc2626; background: #fee2e2; }
.kds-theme .kds-act--danger:hover  { background: #dc2626; color: #fff; }
.kds-theme .kds-act--success { color: #16a34a; background: #dcfce7; }
.kds-theme .kds-act--success:hover { background: #16a34a; color: #fff; }
.kds-theme .kds-act--warning { color: #d97706; background: #fef3c7; }
.kds-theme .kds-act--warning:hover { background: #d97706; color: #fff; }
.kds-theme .kds-act--neutral { color: var(--kds-ink-soft); background: var(--kds-surface-2); border-color: var(--kds-border); }
.kds-theme .kds-act--neutral:hover { background: hsl(var(--main-h) var(--main-s) var(--main-l)); color: #fff; border-color: transparent; }
.kds-theme .kds-act.is-disabled { opacity: .4; pointer-events: none; cursor: not-allowed; }

/* Legacy labelled chips (kept for other pages) */
.kds-theme .kds-action {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 11px; font-weight: 600; border-radius: 999px; white-space: nowrap;
  padding: 3px 9px; border: 1px solid transparent; cursor: pointer; text-decoration: none; transition: .15s ease;
}
.kds-theme .kds-action i { font-size: 13px; }
.kds-theme .kds-action--neutral { color: var(--kds-ink-soft); background: var(--kds-surface-2); border-color: var(--kds-border); }
.kds-theme .kds-action--neutral:hover { color: hsl(var(--main-h) var(--main-s) var(--main-l)); border-color: hsl(var(--main-h) var(--main-s) var(--main-l)); }
.kds-theme .kds-action--success { color: #15803d; background: #dcfce7; }
.kds-theme .kds-action--success:hover { background: #16a34a; color: #fff; }
.kds-theme .kds-action--warning { color: #b45309; background: #fef3c7; }
.kds-theme .kds-action--warning:hover { background: #d97706; color: #fff; }
.kds-theme .kds-action--danger { color: #b91c1c; background: #fee2e2; }
.kds-theme .kds-action--danger:hover { background: #dc2626; color: #fff; }
.kds-theme .kds-action.is-disabled { opacity: .45; pointer-events: none; cursor: not-allowed; }

/* =========================== TOOLBAR / SEARCH =========================== */
.kds-theme .kds-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.kds-theme .kds-field {
  position: relative; display: inline-flex; align-items: center;
  background: var(--kds-surface); border: 1px solid var(--kds-border-strong);
  border-radius: var(--kds-radius-sm); padding: 0 8px; min-width: 150px;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.kds-theme .kds-field:focus-within { border-color: hsl(var(--main-h) var(--main-s) var(--main-l)); box-shadow: var(--kds-ring); }
.kds-theme .kds-field i { font-size: 14px; color: var(--kds-muted); }
.kds-theme .kds-field input, .kds-theme .kds-field select {
  border: 0; outline: 0; background: transparent; padding: 6px 6px; width: 100%; font-size: 12.5px; color: var(--kds-ink);
}
.kds-theme .kds-input {
  width: 100%; background: var(--kds-surface); border: 1px solid var(--kds-border-strong);
  border-radius: var(--kds-radius-sm); padding: 7px 10px; font-size: 12.5px; color: var(--kds-ink);
}
.kds-theme .kds-input:focus { outline: 0; border-color: hsl(var(--main-h) var(--main-s) var(--main-l)); box-shadow: var(--kds-ring); }
.kds-theme .kds-label { display: block; font-size: 11.5px; font-weight: 600; color: var(--kds-ink); margin-bottom: 4px; }

/* =========================== EMPTY STATE =========================== */
.kds-theme .kds-empty { text-align: center; padding: 26px 16px; }
.kds-theme .kds-empty__icon {
  width: 46px; height: 46px; border-radius: 13px; margin: 0 auto 9px;
  display: inline-flex; align-items: center; justify-content: center; font-size: 22px;
  background: hsl(var(--main-h) var(--main-s) var(--main-l) / .1);
  color: hsl(var(--main-h) var(--main-s) var(--main-l));
}
.kds-theme .kds-empty__title { font-family: "Urbanist", sans-serif; font-weight: 700; font-size: 14px; color: var(--kds-ink); margin: 0 0 2px; }
.kds-theme .kds-empty__text { font-size: 12px; color: var(--kds-muted); margin: 0 auto; max-width: 320px; }

/* =========================== ALERTS / DIVIDER =========================== */
.kds-theme .kds-alert {
  display: flex; align-items: center; gap: 9px;
  padding: 10px 14px; border-radius: 10px; font-size: 12.8px; font-weight: 500;
  border: 1px solid transparent;
}
.kds-theme .kds-alert i { font-size: 17px; flex: none; }
.kds-theme .kds-alert--success { background: #ecfdf3; border-color: #c7ebd5; color: #136c3a; }
.kds-theme .kds-alert--danger  { background: #fef2f2; border-color: #f4cdcd; color: #9b2722; }
.kds-theme .kds-alert--warning { background: #fffaeb; border-color: #f3e2b8; color: #8a5d12; }
.kds-theme .kds-alert--info    { background: #eef2ff; border-color: #d3dbf7; color: #314499; }
.kds-theme .kds-divider { border: 0; border-top: 1px solid var(--kds-border); margin: 4px 0; opacity: 1; }
.kds-theme .mb-16 { margin-bottom: 16px; }

/* =========================== MODALS =========================== */
.kds-theme .modal-content { border: 0; border-radius: var(--kds-radius-lg); overflow: hidden; box-shadow: var(--kds-shadow-lg); }
/* Our form modals wrap .modal-body + .modal-footer in a <form>, which breaks
   Bootstrap's .modal-dialog-scrollable flex chain (the form, not the body, is
   the flex child of .modal-content, so tall content is clipped instead of
   scrolling). Make the form a shrinkable flex column so the body scrolls and
   the footer stays pinned. */
.kds-theme .modal-dialog-scrollable .modal-content > form {
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}
.kds-theme .modal-header { border-bottom: 1px solid var(--kds-border); padding: 10px 14px; }
.kds-theme .modal-title { font-family: "Urbanist", sans-serif; font-weight: 800; font-size: 15px; color: var(--kds-ink); }
.kds-theme .modal-body { padding: 12px 14px; color: var(--kds-ink-soft); font-size: 12.5px; }
.kds-theme .modal-footer { border-top: 1px solid var(--kds-border); padding: 10px 14px; gap: 7px; }
.kds-theme .kds-modal-icon {
  width: 36px; height: 36px; border-radius: 11px; flex: none;
  display: inline-flex; align-items: center; justify-content: center; font-size: 19px;
}
.kds-theme .kds-modal-icon--danger  { background: #fee2e2; color: #dc2626; }
.kds-theme .kds-modal-icon--warning { background: #fef3c7; color: #d97706; }
.kds-theme .kds-modal-icon--success { background: #dcfce7; color: #16a34a; }

/* Small uppercase section divider used inside multi-section modal forms */
.kds-theme .kds-section-label {
  font-family: "Urbanist", sans-serif; font-weight: 800; font-size: 11.5px;
  text-transform: uppercase; letter-spacing: .045em; color: var(--kds-muted);
  padding-bottom: 6px; border-bottom: 1px solid var(--kds-border);
}

/* ---- "My Schedule" list (dashboard calendar replacement) ---- */
.kds-theme .kds-schedule-meta { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 16px 12px; }
.kds-theme .kds-schedule-scroll { max-height: 420px; overflow-y: auto; }
.kds-theme .kds-schedule-table thead th {
  position: sticky; top: 0; z-index: 1;
  background: var(--kds-surface-2);
}
.kds-theme tr.kds-schedule-today td { background: hsl(var(--main-h) var(--main-s) var(--main-l) / .07); }

/* Upcoming / All toggle tabs */
.kds-theme .kds-schedule-tab {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 6px 12px; border-radius: 999px;
  border: 1px solid var(--kds-border);
  background: var(--kds-surface);
  color: var(--kds-ink-soft);
  font-size: 12px; font-weight: 600; line-height: 1; cursor: pointer;
  transition: background .15s, border-color .15s, color .15s;
}
.kds-theme .kds-schedule-tab i { font-size: 14px; }
.kds-theme .kds-schedule-tab:hover { border-color: var(--kds-border-strong); }
.kds-theme .kds-schedule-tab .count {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 20px; height: 18px; padding: 0 6px; border-radius: 999px;
  background: var(--kds-surface-2); color: var(--kds-ink-soft);
  font-size: 11px; font-weight: 700;
}
.kds-theme .kds-schedule-tab.is-active {
  background: hsl(var(--main-h) var(--main-s) var(--main-l) / .12);
  border-color: hsl(var(--main-h) var(--main-s) var(--main-l) / .38);
  color: hsl(var(--main-h) var(--main-s) 38%);
}
.kds-theme .kds-schedule-tab.is-active .count {
  background: hsl(var(--main-h) var(--main-s) var(--main-l));
  color: #fff;
}
/* Tab-driven row visibility */
.kds-theme .kds-schedule[data-view="upcoming"] tr[data-when="past"] { display: none; }
.kds-theme .kds-schedule[data-view="all"] tr[data-when="empty-upcoming"] { display: none; }

/* Inline checkbox row used in expense modals (recurring toggle, etc.) */
.kds-check { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--kds-ink-soft, #51607a); cursor: pointer; }
.kds-check input { width: 16px; height: 16px; accent-color: hsl(var(--main-h, 26) var(--main-s, 81%) var(--main-l, 58%)); }

/* =========================== TOASTS =========================== */
/* z-index must sit ABOVE the Add Student slide-in overlay (1090) and its
   backdrop (1089) — otherwise error toasts render behind the overlay and the
   user has to close it to read the message. */
.kds-toast-stack { position: fixed; top: 14px; right: 14px; z-index: 1100; display: flex; flex-direction: column; gap: 8px; }
.kds-toast {
  display: flex; align-items: center; gap: 8px; min-width: 240px; max-width: 340px;
  background: #fff; border: 1px solid var(--kds-border, #e7eaf3); border-left-width: 4px;
  border-radius: 9px; padding: 9px 12px; box-shadow: 0 10px 26px rgba(23,31,56,.13);
  font-size: 12.5px; color: #1b2233; animation: kds-toast-in .25s ease;
}
.kds-toast i { font-size: 17px; }
.kds-toast--success { border-left-color: #16a34a; } .kds-toast--success i { color: #16a34a; }
.kds-toast--danger  { border-left-color: #dc2626; } .kds-toast--danger i  { color: #dc2626; }
.kds-toast--info    { border-left-color: hsl(212 60% 38%); } .kds-toast--info i { color: hsl(212 60% 38%); }
@keyframes kds-toast-in { from { opacity: 0; transform: translateX(16px); } to { opacity: 1; transform: none; } }

/* =========================== MISC =========================== */
.kds-theme .preloader { display: none; }
.kds-theme .dashboard-footer { padding: 9px 14px; border-top: 1px solid var(--kds-border); color: var(--kds-muted); font-size: 11.5px; }
.kds-theme .dashboard-footer a { color: hsl(var(--main-h) var(--main-s) var(--main-l)); }
.kds-theme ::-webkit-scrollbar { width: 7px; height: 7px; }
.kds-theme ::-webkit-scrollbar-thumb { background: #cdd4e4; border-radius: 999px; }
.kds-theme ::-webkit-scrollbar-thumb:hover { background: #b6bed4; }

/* =========================== PAGINATION =========================== */
/* Controls-only, right-aligned. Pair with a footer that shows "Showing X of Y". */
.kds-theme .kds-pager {
  display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 4px;
  list-style: none; margin: 0; padding: 0;
}
.kds-theme .kds-pager li { display: inline-flex; }
.kds-theme .kds-pager__btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 28px; height: 28px; padding: 0 7px; border-radius: 7px;
  font-size: 12.5px; font-weight: 600; line-height: 1; text-decoration: none;
  color: var(--kds-ink-soft); background: var(--kds-surface); border: 1px solid var(--kds-border);
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.kds-theme .kds-pager__btn:hover { border-color: hsl(var(--main-h) var(--main-s) var(--main-l)); color: hsl(var(--main-h) var(--main-s) var(--main-l)); }
.kds-theme .kds-pager__btn.is-active { background: hsl(var(--main-h) var(--main-s) var(--main-l)); border-color: transparent; color: #fff; }
.kds-theme .kds-pager__btn.is-disabled { opacity: .4; pointer-events: none; }
.kds-theme .kds-pager__btn.is-dots { border-color: transparent; background: transparent; pointer-events: none; min-width: 16px; padding: 0 2px; }
.kds-theme .kds-pager__btn i { font-size: 14px; }
/* Shared footer wrapper for the "Showing X of Y" line + pager */
.kds-theme .kds-table-foot {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px;
  padding: 9px 14px; border-top: 1px solid var(--kds-border);
}
.kds-theme .kds-table-foot .kds-cell-sub { margin: 0; }
