@import url("amasomo-v82.css?v=82");
@import url("amasomo-v83.css?v=83");
@import url("amasomo-v84.css?v=84");
@import url("amasomo-v86.css?v=86");
@import url("amasomo-v87.css?v=87");
@import url("amasomo-v88.css?v=88");
@import url("amasomo-v89.css?v=89");
@import url("amasomo-v90.css?v=90");
@import url("amasomo-v91.css?v=91");
@import url("amasomo-v92.css?v=92");
@import url("amasomo-v93.css?v=93");
@import url("amasomo-v94.css?v=94");
@import url("amasomo-v95.css?v=95");
@import url("amasomo-v96.css?v=96");
@import url("amasomo-v97.css?v=97");
@import url("amasomo-v98.css?v=98");
@import url("amasomo-v99.css?v=99");
@import url("amasomo-v100.css?v=100");
/* AMASOMO 2026 — SINGLE APPLICATION STYLESHEET\n   Unified from the Booking Master visual system. */

/* ===== booking-uniform.css ===== */
/* AMASOMO UNIFORM DESIGN SYSTEM
   Visual source of truth: booking-master(9).css */
:root {
  --bg: #f4fbfa !important;
  --card: #fff !important;
  --text: #12312e !important;
  --ink: #12312e !important;
  --muted: #6b7f7b !important;
  --brand: #10a88a !important;
  --brand-dark: #08745f !important;
  --soft: #dff5f0 !important;
  --line: #dbe9e6 !important;
  --danger: #d94a4a !important;
  --success: #17633b !important;
  --booking-shadow: 0 8px 24px rgba(15, 23, 42, 0.05) !important;
  --bg-app-base: #f4fbfa !important;
  --panel-surface: #fff !important;
  --text-main: #12312e !important;
  --text-muted: #6b7f7b !important;
  --brand-prime: #10a88a !important;
  --brand-prime-hover: #08745f !important;
  --accent-success: #17633b !important;
  --accent-danger: #d94a4a !important;
  --border-light: #dbe9e6 !important;
  --radius-normal: 13px !important;
  --v16-ink: #12312e !important;
  --v16-muted: #6b7f7b !important;
  --v16-line: #dbe9e6 !important;
  --v16-soft: #dff5f0 !important;
  --v16-brand: #10a88a !important;
  --v16-brand-2: #08745f !important;
  --v16-good: #17633b !important;
  --v16-bad: #b42318 !important;
  --v16-radius: 18px !important;
  --v16-shadow: 0 8px 24px rgba(15, 23, 42, 0.05) !important;
}
body {
  background: var(--bg) !important;
  color: var(--text) !important;
  line-height: 1.5;
}
.main,
.studio-workspace {
  padding: 24px !important;
  max-width: 1280px !important;
  width: 100% !important;
  margin: 0 auto !important;
}
.side,
.sidebar-navigation {
  background: #0d3b34 !important;
  color: #fff !important;
  padding: 24px !important;
}
.nav a,
.nav button,
.nav-links a,
.logout-trigger {
  border-radius: 12px !important;
  color: #d8f6ef !important;
  font-weight: 800 !important;
}
.nav a.active,
.nav a:hover,
.nav button:hover,
.nav-links .nav-active,
.nav-links a:hover,
.logout-trigger:hover {
  background: rgba(255, 255, 255, 0.1) !important;
  color: #fff !important;
  box-shadow: none !important;
}
.header,
.studio-header,
.admin-header,
.booking-header,
.dashboard-welcome {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--line) !important;
  border-radius: 0 !important;
  padding: 0 0 1rem !important;
  margin: 0 0 1rem !important;
  box-shadow: none !important;
  gap: 1rem !important;
}
.card,
.panel,
.booking-panel,
.profile-view > .panel,
.interface-layout > .panel,
.student-panel,
.admin-stat,
.dashboard-stat,
.dashboard-item,
.dashboard-card {
  background: #fff !important;
  border: 1px solid var(--line) !important;
  border-radius: 18px !important;
  padding: 1.25rem !important;
  box-shadow: var(--booking-shadow) !important;
}
input,
select,
textarea,
.input-control {
  background: #fff !important;
  color: var(--text) !important;
  border: 1px solid var(--line) !important;
  border-radius: 13px !important;
  padding: 12px !important;
  font-size: 15px !important;
}
input:focus,
select:focus,
textarea:focus,
.input-control:focus {
  outline: none !important;
  border-color: var(--brand) !important;
  box-shadow: 0 0 0 3px var(--soft) !important;
}
.amasomo-password-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:.5rem!important;align-items:stretch!important}.amasomo-password-row input{min-width:0!important}.amasomo-password-row .password-toggle{min-width:5rem!important;padding:.65rem .9rem!important;border:1px solid var(--line)!important}
.workspace-material-library{margin-top:1rem!important;padding:0!important;overflow:hidden!important}.workspace-material-library>.booking-card-top{padding:1.25rem 1.25rem 0!important}.workspace-material-library iframe{display:block;width:100%;min-height:980px;border:0;background:var(--bg)}
.super-v41-shell{display:grid!important;grid-template-columns:250px minmax(0,1fr)!important;min-height:100vh!important}.super-v41-shell>.main{max-width:none!important;margin:0!important;padding:24px 28px 60px!important}.super-v41-sidebar{display:flex!important}.super-v41-sidebar .v40-logout{margin-top:auto!important}.super-v41-top-groups{display:none!important}@media(max-width:820px){.super-v41-shell{grid-template-columns:1fr!important}.super-v41-sidebar{position:relative!important;width:100%!important;height:auto!important}.super-v41-sidebar nav{grid-template-columns:1fr 1fr!important}}
.btn,
button.btn,
.primary-action,
.secondary-action {
  border: 0 !important;
  border-radius: 14px !important;
  padding: 13px 16px !important;
  background: var(--brand) !important;
  color: #fff !important;
  font-weight: 800 !important;
  cursor: pointer !important;
  text-align: center !important;
  box-shadow: none !important;
}
.btn:hover,
button.btn:hover,
.primary-action:hover {
  background: var(--brand-dark) !important;
}
.btn.secondary,
.secondary-action {
  background: var(--soft) !important;
  color: var(--brand-dark) !important;
  border: 0 !important;
}
.btn.danger {
  background: var(--danger) !important;
  color: #fff !important;
}
.booking-tabs,
.profile-tabs,
.student-tabs,
.admin-tabs,
.tab-navigation {
  display: flex !important;
  gap: 0.55rem !important;
  flex-wrap: wrap !important;
  margin: 1rem 0 1.25rem !important;
}
.booking-tabs button,
.profile-tabs .btn,
.student-tabs .btn,
.admin-tabs button,
.tab-navigation button {
  width: auto !important;
  border: 1px solid var(--line) !important;
  background: #fff !important;
  color: var(--brand-dark) !important;
  padding: 0.58rem 0.95rem !important;
  border-radius: 999px !important;
  font-weight: 800 !important;
}
.booking-tabs button.active,
.profile-tabs .btn.active,
.student-tabs .btn.active,
.admin-tabs button.active,
.tab-navigation button.active {
  background: var(--brand) !important;
  border-color: var(--brand) !important;
  color: #fff !important;
}
.dashboard-stats,
.admin-stats,
.booking-stats,
.v16-kpis {
  gap: 0.8rem !important;
  margin-bottom: 1rem !important;
}
.dashboard-stat,
.admin-stat,
.booking-stat,
.v16-kpi {
  background: #fff !important;
  border: 1px solid var(--line) !important;
  border-radius: 16px !important;
  padding: 1rem !important;
  box-shadow: var(--booking-shadow) !important;
}
.dashboard-stat strong,
.admin-stat strong,
.booking-stat strong,
.v16-kpi strong {
  color: var(--brand-dark) !important;
  font-size: 1.7rem !important;
}
.dashboard-stat span,
.booking-stat span,
.v16-kpi small {
  color: var(--muted) !important;
  font-size: 0.82rem !important;
  font-weight: 800 !important;
}
.admin-toolbar,
.booking-toolbar,
.horizontal-control-bar,
.filter-controls,
.adaptive-column {
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 14px !important;
  padding: 0.9rem !important;
  gap: 0.7rem !important;
}
table {
  width: 100% !important;
  border-collapse: collapse !important;
  background: #fff !important;
}
th,
td {
  padding: 11px 8px !important;
  border-bottom: 1px solid var(--line) !important;
  font-size: 14px !important;
  text-align: left !important;
  vertical-align: top !important;
}
th {
  color: var(--muted) !important;
  font-weight: 800 !important;
  background: #f8fafc !important;
}
.badge,
.pill,
.booking-pill,
.step-indicator,
.live-tag,
.v16-status {
  display: inline-block !important;
  padding: 5px 10px !important;
  border-radius: 999px !important;
  background: var(--soft) !important;
  color: var(--brand-dark) !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
}
.message.ok,
.booking-inline-message.ok {
  background: #e7f8ee !important;
  color: #17633b !important;
  border: 1px solid #b7ebca !important;
}
.message.err,
.booking-inline-message.error,
.dashboard-error {
  background: #fdeaea !important;
  color: #b42318 !important;
  border: 1px solid #f9cbd3 !important;
}
.admin-dialog,
.booking-modal-box {
  background: #fff !important;
  border: 0 !important;
  border-radius: 18px !important;
  padding: 1.3rem !important;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.25) !important;
}
.v16-next-action,
.adaptive-recommendation,
.dashboard-notice {
  background: var(--soft) !important;
  color: var(--brand-dark) !important;
  border-color: var(--brand) !important;
  border-radius: 12px !important;
}
.studio-block:hover {
  transform: none !important;
  box-shadow: var(--booking-shadow) !important;
}
@media (max-width: 860px) {
  .main,
  .studio-workspace {
    padding: 16px !important;
  }
  .side,
  .sidebar-navigation {
    padding: 14px !important;
  }
  .header,
  .studio-header,
  .admin-header,
  .booking-header,
  .dashboard-welcome {
    align-items: flex-start !important;
    flex-direction: column !important;
  }
  .studio-workspace {
    width: 100% !important;
  }
}
/* Explicit definitions for classes referenced by the V17 HTML. */
.login-logo {
  display: block;
  max-width: 190px;
  max-height: 54px;
  object-fit: contain;
}
.school-welcome-panel {
  background: linear-gradient(135deg, #e9fbf7, #c8f1e9);
}
.dashboard-priority-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 0.8rem;
  margin-bottom: 1rem;
}
.quick-actions-panel,
.adaptive-briefing-panel {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 1.25rem;
  box-shadow: var(--booking-shadow);
}
.teacher-calendar-preferences {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 0.75rem;
  margin: 1rem 0;
  padding: 1rem;
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 14px;
}
.weekday-checks {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.weekday-checks label {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.55rem 0.7rem;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  margin: 0;
}
.weekday-checks input {
  width: auto;
}
.view {
  min-width: 0;
}
.booking-list {
  display: grid;
  gap: 0.75rem;
}
.v16-workflow {
  display: grid;
  grid-template-columns: repeat(5, minmax(120px, 1fr));
  gap: 10px;
  margin: 16px 0;
}
.v16-step {
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}
.v16-step b {
  display: block;
  color: var(--brand);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.v16-step span {
  font-weight: 700;
}
@media (max-width: 680px) {
  .teacher-calendar-preferences {
    grid-template-columns: 1fr;
  }
  .quick-actions-panel,
  .adaptive-briefing-panel {
    padding: 1rem;
  }
}
@media (max-width: 900px) {
  .v16-workflow {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 560px) {
  .v16-workflow {
    grid-template-columns: 1fr;
  }
}

/* ===== amasomo-master.css ===== */
:root {
  --bg: #f4fbfa;
  --card: #fff;
  --text: #12312e;
  --muted: #6b7f7b;
  --brand: #10a88a;
  --brand-dark: #08745f;
  --soft: #dff5f0;
  --line: #dbe9e6;
  --danger: #d94a4a;
  --success: #17633b;
}
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}
body {
  background: var(--bg);
  color: var(--text);
  line-height: 1.5;
}
a {
  color: var(--brand);
  font-weight: 700;
  text-decoration: none;
}
.page {
  min-height: 100vh;
  display: flex;
}
.hero {
  flex: 1;
  background: linear-gradient(135deg, #e9fbf7, #c8f1e9);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px;
}
.hero-inner {
  max-width: 520px;
}
.hero h1 {
  font-size: 42px;
  line-height: 1.1;
  margin: 14px 0;
}
.hero p {
  color: var(--muted);
  font-size: 17px;
}
.auth {
  width: 480px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 28px;
}
.card,
.panel {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 24px;
  box-shadow: 0 12px 32px rgba(18, 49, 46, 0.04);
}
.card {
  width: 100%;
  max-width: 440px;
}
.logo {
  max-height: 54px;
  max-width: 190px;
  object-fit: contain;
  margin-bottom: 14px;
}
.badge {
  display: inline-block;
  background: var(--soft);
  color: var(--brand-dark);
  padding: 7px 14px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 800;
}
h1,
h2,
h3 {
  line-height: 1.2;
}
h2 {
  font-size: 27px;
  margin-bottom: 8px;
}
h3 {
  font-size: 18px;
  margin-bottom: 12px;
}
.small {
  font-size: 14px;
  color: var(--muted);
}
.field {
  margin: 14px 0;
}
label {
  display: block;
  font-size: 14px;
  font-weight: 800;
  margin-bottom: 6px;
}
input,
select,
textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 13px;
  padding: 12px;
  font-size: 15px;
  color: var(--text);
  background: #fff;
}
textarea {
  min-height: 96px;
}
input:focus,
select:focus,
textarea:focus {
  outline: none;
  border-color: var(--brand);
  box-shadow: 0 0 0 3px var(--soft);
}
.btn {
  border: 0;
  border-radius: 14px;
  padding: 13px 16px;
  background: var(--brand);
  color: white;
  font-weight: 800;
  cursor: pointer;
  display: inline-block;
  text-align: center;
  width: 100%;
  font-size: 15px;
}
.btn:hover {
  background: var(--brand-dark);
}
.btn.secondary {
  background: var(--soft);
  color: var(--brand-dark);
}
.btn.danger {
  background: var(--danger);
}
.btn.inline {
  width: auto;
}
.message {
  display: none;
  margin-top: 12px;
  padding: 12px;
  border-radius: 12px;
  font-weight: 700;
  font-size: 14px;
}
.message.ok {
  display: block;
  background: #e6f7ee;
  color: #17633b;
  border: 1px solid #b7ebca;
}
.message.err {
  display: block;
  background: #fdeaea;
  color: #d94a4a;
  border: 1px solid #f9cbd3;
}
.links {
  text-align: center;
  margin-top: 16px;
  font-size: 14px;
}
.app {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 260px 1fr;
}
.side {
  background: #0d3b34;
  color: white;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.side .logo {
  filter: none;
  width: 100%;
  height: 76px;
  max-height: 76px;
  padding: 8px;
  border-radius: 12px;
  background: #fff;
}
.side [data-school-page-identity] { color: #0d3b34 !important; background: #fff !important; }
.side [data-school-page-identity] b,
.side [data-school-page-identity] p { color: #0d3b34 !important; opacity: 1 !important; }
.nav {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.nav a,
.nav button {
  background: transparent;
  border: 0;
  color: #d8f6ef;
  padding: 12px;
  border-radius: 12px;
  text-align: left;
  font-size: 15px;
  font-weight: 800;
  cursor: pointer;
}
.nav a.active,
.nav a:hover,
.nav button:hover {
  background: rgba(255, 255, 255, 0.1);
  color: white;
}
.main {
  padding: 24px;
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
}
.header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 16px;
  margin-bottom: 22px;
}
.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 18px;
  margin-bottom: 18px;
}
.full {
  grid-column: 1/-1;
}
table {
  width: 100%;
  border-collapse: collapse;
}
th,
td {
  padding: 11px 8px;
  border-bottom: 1px solid var(--line);
  font-size: 14px;
  text-align: left;
  vertical-align: top;
}
th {
  color: var(--muted);
  font-weight: 800;
}
.table-wrap {
  overflow-x: auto;
}
.pill {
  display: inline-block;
  padding: 5px 10px;
  border-radius: 999px;
  background: var(--soft);
  color: var(--brand-dark);
  font-weight: 800;
  font-size: 12px;
}
.pill.danger {
  background: #fdeaea;
  color: #d94a4a;
}
.question-card {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 16px;
  margin: 12px 0;
  background: #fff;
}
.option {
  display: block;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  margin: 9px 0;
  cursor: pointer;
  background: #fff;
}
@media (max-width: 860px) {
  .page {
    display: block;
  }
  .hero {
    padding: 28px 18px;
  }
  .hero h1 {
    font-size: 32px;
  }
  .auth {
    width: 100%;
    padding: 18px;
  }
  .app {
    display: block;
  }
  .side {
    position: sticky;
    top: 0;
    z-index: 20;
    padding: 14px;
  }
  .side .logo {
    display: none;
  }
  .nav {
    flex-direction: row;
    overflow-x: auto;
    white-space: nowrap;
  }
  .nav a,
  .nav button {
    width: auto;
    padding: 9px 13px;
  }
  .main {
    padding: 16px;
  }
  .header {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* Mechanically migrated static inline declarations */
.u-static-001 {
  display: block;
}
.u-static-002 {
  padding: 2rem;
}
.u-static-003 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.25rem;
  border-bottom: 2px solid #eee;
  padding-bottom: 1rem;
  gap: 1rem;
  flex-wrap: wrap;
}
.u-static-004 {
  margin: 0;
}
.u-static-005 {
  color: gray;
  margin: 0;
}
.u-static-006 {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.u-static-007 {
  font-weight: bold;
  font-size: 0.85rem;
}
.u-static-008 {
  color: gray;
  text-align: center;
  padding: 2rem;
}
.u-static-009 {
  background: #edf2f7;
  font-weight: bold;
}
.u-static-010 {
  color: gray;
  padding: 2rem;
}
.u-static-011 {
  min-width: 0;
}
.u-static-012 {
  font-size: 0.76rem;
  color: #64748b;
}
.u-static-013 {
  color: gray;
  padding: 0.65rem;
}
.u-static-014 {
  background: #e0f2fe;
  font-weight: bold;
}
.u-static-015 {
  text-align: right;
  font-size: 0.8rem;
  color: #64748b;
  font-weight: bold;
}
.u-static-016 {
  margin-top: 12px;
}
.u-static-017 {
  margin-bottom: 18px;
}
.u-static-018 {
  margin-top: 12px;
  display: none;
}
.u-static-019 {
  grid-template-columns: 1fr;
}
.u-static-020 {
  font-size: 34px;
  font-weight: 900;
}
.u-static-021 {
  margin-bottom: 2rem;
  border-bottom: 1px solid #eee;
  padding-bottom: 1rem;
}
.u-static-022 {
  display: flex;
  gap: 0.75rem;
  margin-top: 1rem;
  flex-wrap: wrap;
}
.u-static-023 {
  padding: 0.5rem 1rem;
}
.u-static-024 {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 2rem;
  align-items: start;
}
.u-static-025 {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.u-static-026 {
  display: flex;
  gap: 1rem;
  border-bottom: 2px solid #e2e8f0;
  padding-bottom: 0.5rem;
}
.u-static-027 {
  padding: 0.5rem 1rem;
}
.u-static-028 {
  background: #fff;
  padding: 1.5rem;
  border-radius: 8px;
}
.u-static-029 {
  margin-bottom: 1rem;
}
.u-static-030 {
  width: 100%;
  padding: 0.5rem;
}
.u-static-031 {
  background: #f8fafc;
  padding: 1rem;
  border-radius: 6px;
  margin-bottom: 1.5rem;
  border: 1px solid #e2e8f0;
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 1rem;
}
.u-static-032 {
  margin-bottom: 1.5rem;
}
.u-static-033 {
  margin-bottom: 1rem;
}
.u-static-034 {
  margin-bottom: 1.5rem;
  width: 100%;
}
.u-static-035 {
  margin-bottom: 1.5rem;
  background: #f9f9f9;
  padding: 1rem;
  border-radius: 6px;
}
.u-static-036 {
  margin-top: 0.5rem;
  width: 100%;
}
.u-static-037 {
  margin-bottom: 1.5rem;
  background: #edf4f2;
  padding: 1rem;
  border-radius: 6px;
}
.u-static-038 {
  width: 100%;
  padding: 0.5rem;
  margin-bottom: 0.5rem;
}
.u-static-039 {
  width: 100%;
}
.u-static-040 {
  border-top: 1px solid #eee;
  padding-top: 1rem;
  margin-top: 1rem;
}
.u-static-041 {
  width: 100%;
  padding: 1rem;
  margin-top: 1.5rem;
  font-size: 1.1rem;
  cursor: pointer;
}
.u-static-042 {
  background: #fff;
  padding: 1.5rem;
  border-radius: 8px;
  display: none;
}
.u-static-043 {
  position: sticky;
  top: 10px;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.u-static-044 {
  margin: 0.5rem 0;
  display: flex;
  gap: 1rem;
}
.u-static-045 {
  font-size: 0.75rem;
  padding: 0.2rem 0.5rem;
  cursor: pointer;
}
.u-static-046 {
  margin: 0.5rem 0 1rem 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  max-height: 120px;
  overflow-y: auto;
  border: 1px solid #eee;
  padding: 0.5rem;
  background: #fafafa;
}
.u-static-047 {
  display: flex;
  gap: 0.5rem;
  background: #f1f5f9;
  padding: 0.5rem;
  border-radius: 6px;
  margin-bottom: 1rem;
}
.u-static-048 {
  flex: 1;
  padding: 0.25rem;
}
.u-static-049 {
  font-size: 0.8rem;
  padding: 0.25rem 0.5rem;
}
.u-static-050 {
  margin-top: 0;
}
.u-static-051 {
  border: 1px solid #ddd;
  padding: 1rem;
  background: #fff;
  border-radius: 6px;
}
.u-static-052 {
  color: var(--brand, #10a88a);
  margin-top: 0;
  font-size: 1.3rem;
}
.u-static-053 {
  font-size: 0.8rem;
  background: #eee;
  font-weight: bold;
}
.u-static-054 {
  font-size: 0.8rem;
  background: #e0f2fe;
  color: #0369a1;
  font-weight: bold;
  margin-left: 0.5rem;
}
.u-static-055 {
  margin-top: 1rem;
  color: #333;
  font-size: 0.95rem;
  line-height: 1.4;
  white-space: pre-wrap;
}
.u-static-056 {
  border: 0;
  border-top: 1px solid #eee;
  margin: 1rem 0;
}
.u-static-057 {
  margin: 0 0 0.5rem 0;
  font-size: 0.95rem;
}
.u-static-058 {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.u-static-059 {
  background: #fff;
  padding: 1.5rem;
  border-radius: 8px;
  margin-top: 2rem;
  display: block;
}
.u-static-060 {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  flex-wrap: wrap;
}
.u-static-061 {
  color: gray;
  margin: 0.25rem 0 0 0;
}
.u-static-062 {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 0.75rem;
  margin: 1rem 0;
  background: #f8fafc;
  padding: 1rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
}
.u-static-063 {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}
.u-static-064 {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.u-static-065 {
  color: gray;
}
.u-static-066 {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: normal;
  cursor: pointer;
  margin: 0;
}
.u-static-067 {
  color: gray;
  padding: 0.25rem;
}
.u-static-068 {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}
.u-static-069 {
  flex: 1;
  padding: 0.4rem;
}
.u-static-070 {
  flex: 2;
  padding: 0.4rem;
}
.u-static-071 {
  padding: 0.4rem 0.8rem;
  background: #dc2626;
  color: #fff;
  border: none;
  cursor: pointer;
  border-radius: 4px;
}
.u-static-072 {
  display: none;
  background: #fff;
  border: 1px solid #ddd;
  padding: 0.5rem;
  border-radius: 4px;
  font-size: 0.85rem;
  gap: 0.5rem;
  align-items: center;
  margin-top: 0.5rem;
}
.u-static-073 {
  font-size: 1.4rem;
}
.u-static-074 {
  font-weight: bold;
  color: #128c7e;
  font-size: 0.85rem;
}
.u-static-075 {
  color: gray;
  font-size: 0.75rem;
}
.u-static-076 {
  color: #2563eb;
  font-size: 0.7rem;
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
  max-width: 220px;
}
.u-static-077 {
  background: #f8fafc;
  padding: 0.5rem;
  font-size: 0.75rem;
  border: 1px solid #e2e8f0;
  margin-top: 0.25rem;
  border-radius: 4px;
  display: flex;
  gap: 0.5rem;
  align-items: center;
}
.u-static-078 {
  font-size: 1.1rem;
}
.u-static-079 {
  color: #128c7e;
}
.u-static-080 {
  border-bottom: 1px solid #f1f5f9;
  padding-bottom: 0.5rem;
}
.u-static-081 {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-weight: normal;
}
.u-static-082 {
  margin-top: 0.25rem;
}
.u-static-083 {
  font-weight: bold;
  color: var(--brand, #10a88a);
  font-size: 0.95rem;
}
.u-static-084 {
  background: #f8fafc;
  padding: 0.5rem;
  font-size: 0.75rem;
  border: 1px solid #e2e8f0;
  border-radius: 4px;
  display: flex;
  gap: 0.5rem;
  align-items: center;
}
.u-static-085 {
  color: gray;
  font-style: italic;
  margin-top: 0.5rem;
}
.u-static-086 {
  color: gray;
  font-style: italic;
}
.u-static-087 {
  color: #dc2626;
}
.u-static-088 {
  background: #edf2f7;
  font-weight: bold;
}
.u-static-089 {
  color: gray;
  padding: 1rem;
}
.u-static-090 {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
  margin-bottom: 0.35rem;
}
.u-static-091 {
  background: #ecfeff;
  font-weight: bold;
}
.u-static-092 {
  background: #e0f2fe;
  font-weight: bold;
}
.u-static-093 {
  margin: 0 0 0.35rem 0;
  color: var(--brand, #10a88a);
}
.u-static-094 {
  margin: 0 0 0.5rem 0;
  color: #4a5568;
}
.u-static-095 {
  margin: 0;
  font-size: 0.85rem;
  color: #555;
}
.u-static-096 {
  margin-top: 0.75rem;
}
.u-static-097 {
  cursor: pointer;
  font-weight: bold;
}
.u-static-098 {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  margin-top: 0.5rem;
}
.u-static-099 {
  color: var(--brand, #10a88a);
  font-weight: bold;
}
.u-static-100 {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  min-width: 130px;
}
.u-static-101 {
  padding: 2rem;
}
.u-static-102 {
  margin-bottom: 2rem;
  border-bottom: 1px solid #eee;
  padding-bottom: 1rem;
}
.u-static-103 {
  margin: 0;
}
.u-static-104 {
  color: gray;
  margin: 0.25rem 0 0;
}
.u-static-105 {
  margin-top: 1rem;
}
.u-static-106 {
  color: gray;
}
.u-static-107 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
}
.u-static-108 {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 0.5rem;
}
.u-static-109 {
  margin-top: 1.2rem;
}
.u-static-110 {
  display: none;
}
.u-static-111 {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.u-static-112 {
  color: gray;
  margin: 0.25rem 0;
}
.u-static-113 {
  margin-top: 0.8rem;
}
.u-static-114 {
  grid-template-columns: 2fr 1fr;
}
.u-static-115 {
  color: #b42318;
}
.u-static-116 {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
}
.u-static-117 {
  margin-top: 0.5rem;
  color: #64748b;
}
.u-static-118 {
  border: 0;
  border-top: 1px solid var(--line);
  margin: 24px 0;
}
.u-static-119 {
  width: 100%;
}
.u-static-120 {
  position: sticky;
  top: 15px;
}

/* V5 unified component geometry — Booking is the visual reference. */
:root {
  --ui-panel-radius: 18px;
  --ui-card-radius: 14px;
  --ui-control-radius: 13px;
  --ui-toolbar-radius: 14px;
  --ui-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
  --ui-card-shadow: 0 5px 16px rgba(15, 23, 42, 0.035);
  --ui-gap: 0.8rem;
}
.header,
.booking-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  border-bottom: 1px solid var(--line);
  padding-bottom: 1rem;
  margin-bottom: 1rem;
}
.card,
.panel,
.booking-panel,
.student-panel {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--ui-panel-radius);
  padding: 1.25rem;
  box-shadow: var(--ui-shadow);
}
.booking-card,
.student-card,
.dashboard-item,
.compact-item,
.item-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: var(--ui-card-radius);
  padding: 1rem;
  box-shadow: var(--ui-card-shadow);
}
.booking-toolbar,
.student-toolbar,
.dashboard-search {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: var(--ui-toolbar-radius);
  padding: 0.9rem;
  gap: 0.7rem;
  margin: 0.9rem 0;
}
.booking-tabs,
.quick-tabs,
.student-tabs,
.profile-tabs {
  display: flex;
  gap: 0.55rem;
  flex-wrap: wrap;
  margin: 1rem 0 1.25rem;
}
.booking-tabs button,
.quick-tabs button,
.student-tabs .btn,
.profile-tabs .btn {
  width: auto;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--brand-dark);
  padding: 0.58rem 0.95rem;
  border-radius: 999px;
  font-weight: 800;
  cursor: pointer;
}
.booking-tabs button.active,
.quick-tabs button.active,
.student-tabs .btn.active,
.profile-tabs .btn.active,
.student-tabs .btn:not(.secondary),
.profile-tabs .btn:not(.secondary) {
  background: var(--brand);
  border-color: var(--brand);
  color: #fff;
}
input,
select,
textarea {
  border-radius: var(--ui-control-radius);
  border-color: var(--line);
  padding: 12px;
}
.btn {
  border-radius: 14px;
  padding: 13px 16px;
}
.pill,
.booking-pill,
.student-status {
  border-radius: 999px;
}
.main {
  padding: 24px;
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
}
@media (max-width: 860px) {
  .header,
  .booking-header {
    align-items: flex-start;
    flex-direction: column;
  }
  .panel,
  .booking-panel,
  .student-panel {
    padding: 1rem;
  }
  .main {
    padding: 16px;
  }
}
.page-title-icon {
  display: inline-flex;
  width: 1em;
  height: 1em;
  align-items: center;
  justify-content: center;
  margin-right: 0.4em;
  vertical-align: -0.12em;
  color: var(--brand);
}
.page-title-icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* ===== auth-master.css ===== */
.page {
  min-height: 100vh;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(380px, 0.85fr);
}
.hero {
  background: linear-gradient(135deg, #e9fbf7, #c8f1e9);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(32px, 6vw, 80px);
}
.hero-inner {
  max-width: 520px;
}
.hero h1 {
  font-size: clamp(32px, 4vw, 48px);
  line-height: 1.08;
  margin: 14px 0;
}
.hero p {
  color: var(--muted);
  font-size: 17px;
}
.auth {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(20px, 4vw, 48px);
  background: #fff;
}
.auth .card {
  width: 100%;
  max-width: 440px;
}
.auth-links,
.school-actions {
  display: grid;
  gap: 0.75rem;
}
.school-actions .btn {
  width: 100%;
}
.school-page {
  min-height: 100vh;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(380px, 0.85fr);
  background: var(--school-bg, #f4f7f8);
  font-family: var(--school-font, Arial);
}
.school-welcome {
  padding: clamp(32px, 7vw, 100px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: var(--school-main, #172126);
}
.school-welcome img {
  max-width: 180px;
  max-height: 110px;
  object-fit: contain;
  margin-bottom: 35px;
}
.school-welcome p {
  margin: 7px 0;
  color: var(--school-secondary, #68747a);
}
.school-auth {
  background: #fff;
  padding: clamp(20px, 7vw, 100px);
  display: flex;
  align-items: center;
}
.school-auth .card {
  width: 100%;
  max-width: 440px;
  margin: auto;
}
.school-auth .btn {
  background: var(--school-button, #10a88a);
}
.school-auth .btn.secondary {
  background: var(--soft);
  color: var(--brand-dark);
}
.school-contact {
  margin-top: 24px;
  color: var(--school-secondary, #68747a);
}
@media (max-width: 800px) {
  .page,
  .school-page {
    grid-template-columns: 1fr;
  }
  .hero,
  .school-welcome {
    padding: 32px 22px;
  }
  .auth,
  .school-auth {
    padding: 24px 18px;
  }
  .hero h1 {
    font-size: 32px;
  }
}
.school-search-field {
  position: relative;
}
.school-suggestions {
  position: absolute;
  z-index: 30;
  left: 0;
  right: 0;
  top: 100%;
  max-height: 260px;
  overflow: auto;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 16px 35px rgba(15, 23, 42, 0.14);
  padding: 0.35rem;
}
.school-suggestion {
  display: block;
  width: 100%;
  padding: 0.75rem;
  border: 0;
  border-radius: 8px;
  background: #fff;
  text-align: left;
  color: var(--ink);
  cursor: pointer;
}
.school-suggestion:hover,
.school-suggestion:focus {
  background: var(--soft);
  outline: none;
}
.school-suggestion strong,
.school-suggestion span {
  display: block;
}
.school-suggestion span {
  font-size: 0.82rem;
  color: var(--muted);
  margin-top: 0.15rem;
}
.activation-help {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}
.activation-help p {
  margin: 0 0 0.65rem;
}
.activation-help .btn {
  width: 100%;
}
.portal-actions {
  display: grid;
  gap: 0.75rem;
  margin-top: 1rem;
}
.portal-actions .btn {
  width: 100%;
  text-align: center;
}

/* ===== booking-master.css ===== */
/* BOOKING COMPONENTS */
:root {
  --booking-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
}

.booking-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  border-bottom: 1px solid var(--line, #dbe9e6);
  padding-bottom: 1rem;
  margin-bottom: 1rem;
}

.booking-header p {
  color: var(--muted, #6b7f7b);
  margin-top: 0.3rem;
}
.booking-header .btn {
  width: auto;
}

.booking-tabs {
  display: flex;
  gap: 0.55rem;
  flex-wrap: wrap;
  margin: 1rem 0 1.25rem;
}

.booking-tabs button {
  border: 1px solid var(--line, #dbe9e6);
  background: #fff;
  color: var(--brand-dark, #08745f);
  padding: 0.58rem 0.95rem;
  border-radius: 999px;
  font-weight: 800;
  cursor: pointer;
}

.booking-tabs button.active {
  background: var(--brand, #10a88a);
  border-color: var(--brand, #10a88a);
  color: #fff;
}

.booking-view[hidden] {
  display: none !important;
}

.booking-panel {
  background: #fff;
  border: 1px solid var(--line, #dbe9e6);
  border-radius: 18px;
  padding: 1.25rem;
  box-shadow: var(--booking-shadow);
}

.booking-panel h2 {
  font-size: 1.35rem;
  margin-bottom: 0.35rem;
}
.booking-panel h3 {
  margin-top: 1rem;
}

.booking-grid-2 {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
  gap: 1.25rem;
  align-items: start;
}

.booking-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
}

.booking-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 0.8rem;
  margin-bottom: 1rem;
}

.booking-stat {
  background: #fff;
  border: 1px solid var(--line, #dbe9e6);
  border-radius: 16px;
  padding: 1rem;
  box-shadow: var(--booking-shadow);
}

.booking-stat span {
  display: block;
  color: var(--muted, #6b7f7b);
  font-size: 0.82rem;
  font-weight: 800;
}
.booking-stat strong {
  display: block;
  color: var(--brand-dark, #08745f);
  font-size: 1.7rem;
  margin-top: 0.15rem;
}

.booking-toolbar {
  display: grid;
  grid-template-columns: 2fr repeat(4, minmax(130px, 1fr));
  gap: 0.7rem;
  align-items: end;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  padding: 0.9rem;
  margin: 0.9rem 0;
}

.booking-toolbar.compact {
  grid-template-columns: 2fr repeat(3, minmax(135px, 1fr));
}
.booking-toolbar label {
  font-size: 0.78rem;
}

.booking-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.8rem;
}

.booking-field.full {
  grid-column: 1 / -1;
}
.booking-field small {
  display: block;
  color: var(--muted, #6b7f7b);
  margin-top: 0.3rem;
}

.booking-checks {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
  padding: 0.8rem;
  border: 1px solid var(--line, #dbe9e6);
  border-radius: 13px;
  background: #f8fafc;
}

.booking-checks label,
.booking-student-checks label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  font-weight: 700;
}

.booking-checks input,
.booking-student-checks input {
  width: auto;
}

.booking-student-checks {
  max-height: 190px;
  overflow: auto;
  display: grid;
  gap: 0.45rem;
  padding: 0.75rem;
  border: 1px solid var(--line, #dbe9e6);
  border-radius: 13px;
  background: #f8fafc;
}

.booking-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.booking-actions .btn,
.booking-card .btn,
.booking-panel > .btn {
  width: auto;
}

.booking-list {
  display: grid;
  gap: 0.75rem;
}

.booking-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  padding: 1rem;
  box-shadow: 0 5px 16px rgba(15, 23, 42, 0.035);
}

.booking-card-top {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
}

.booking-card h3 {
  color: var(--brand-dark, #08745f);
  margin: 0.2rem 0 0.4rem;
}
.booking-card p {
  margin: 0.28rem 0;
}
.booking-card.completed {
  background: #f0fdf4;
  border-top: 4px solid #16a34a;
}
.booking-card.cancelled {
  opacity: 0.78;
}

.booking-muted {
  color: var(--muted, #6b7f7b);
  font-size: 0.86rem;
}
.booking-empty {
  color: var(--muted, #6b7f7b);
  text-align: center;
  padding: 2rem 1rem;
}

.booking-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin: 0.35rem 0;
}
.booking-pill {
  display: inline-block;
  padding: 0.28rem 0.58rem;
  border-radius: 999px;
  background: var(--soft, #dff5f0);
  color: var(--brand-dark, #08745f);
  font-size: 0.76rem;
  font-weight: 800;
}
.booking-pill.warning {
  background: #fff7d6;
  color: #8a6500;
}
.booking-pill.danger {
  background: #fdeaea;
  color: #b42318;
}
.booking-pill.success {
  background: #e7f8ee;
  color: #17633b;
}

.booking-preview {
  position: sticky;
  top: 1rem;
  background: linear-gradient(145deg, #fff, var(--soft, #dff5f0));
}

.booking-day {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  padding: 0.9rem;
}

.booking-day h3 {
  margin: 0 0 0.7rem;
  color: var(--brand-dark, #08745f);
}
.booking-slots {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.booking-slot {
  border: 1px solid var(--brand, #10a88a);
  color: var(--brand-dark, #08745f);
  background: #fff;
  border-radius: 10px;
  padding: 0.55rem 0.7rem;
  font-weight: 800;
  cursor: pointer;
}

.booking-slot:hover {
  background: var(--soft, #dff5f0);
}
.booking-slot[disabled] {
  border-color: #cbd5e1;
  color: #94a3b8;
  background: #f8fafc;
  cursor: not-allowed;
}

/* Live month calendar and timeline selector */
.live-calendar-card {
  overflow: hidden;
}

.live-calendar-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  flex-wrap: wrap;
}

.calendar-open-filter {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  background: #f8fafc;
  border: 1px solid var(--line, #dbe9e6);
  padding: 0.62rem 0.8rem;
  border-radius: 12px;
  margin: 0;
}

.calendar-open-filter input {
  width: auto;
}

.calendar-preferences {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 0.75rem;
  margin: 1rem 0;
  padding: 1rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
}

.calendar-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.2rem;
  align-items: center;
  margin: 0.8rem 0;
  font-size: 0.82rem;
  font-weight: 800;
  color: #475569;
}

.calendar-legend span {
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
}
.calendar-dot {
  width: 0.72rem;
  height: 0.72rem;
  border-radius: 50%;
  display: inline-block;
}
.calendar-dot.available {
  background: #22a06b;
}
.calendar-dot.few {
  background: #e7b416;
}
.calendar-dot.full {
  background: #dc4c4c;
}
.calendar-dot.selected {
  background: #7950c8;
}

.calendar-rule-strip {
  background: var(--soft, #dff5f0);
  color: var(--brand-dark, #08745f);
  border-radius: 12px;
  padding: 0.75rem 0.9rem;
  margin: 0.8rem 0 1rem;
  font-size: 0.86rem;
  font-weight: 700;
}

.live-calendar-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  border: 1px solid var(--line, #dbe9e6);
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
}

.calendar-month-panel {
  padding: 1rem;
  min-width: 0;
}

.calendar-month-nav {
  display: grid;
  grid-template-columns: 42px 1fr 42px;
  gap: 0.6rem;
  align-items: center;
  margin-bottom: 0.85rem;
}

.calendar-month-nav h2 {
  text-align: center;
  margin: 0;
  text-transform: uppercase;
  font-size: 1.22rem;
  letter-spacing: 0.03em;
}

.calendar-nav-button {
  width: 42px;
  height: 42px;
  border: 1px solid var(--line, #dbe9e6);
  border-radius: 11px;
  background: #fff;
  color: var(--brand-dark, #08745f);
  font-size: 1.5rem;
  font-weight: 900;
  cursor: pointer;
}

.calendar-nav-button:hover:not(:disabled) {
  background: var(--soft, #dff5f0);
}
.calendar-nav-button:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.calendar-weekdays,
.calendar-days-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.42rem;
}

.calendar-weekdays {
  margin-bottom: 0.42rem;
}
.calendar-weekdays div {
  text-align: center;
  color: var(--muted, #6b7f7b);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
}

.calendar-day-cell {
  position: relative;
  grid-column: auto;
  min-height: 76px;
  border: 1px solid #e2e8f0;
  border-radius: 11px;
  padding: 0.55rem;
  background: #f8fafc;
  text-align: left;
  color: #64748b;
  cursor: default;
  overflow: hidden;
}

.calendar-day-cell.blank {
  visibility: hidden;
}
.calendar-day-cell .day-number {
  display: block;
  font-size: 0.94rem;
  font-weight: 900;
}
.calendar-day-cell .day-slots {
  display: block;
  margin-top: 0.38rem;
  font-size: 0.66rem;
  font-weight: 800;
  line-height: 1.2;
}
.calendar-day-cell.available,
.calendar-day-cell.few,
.calendar-day-cell.full {
  cursor: pointer;
}
.calendar-day-cell.available {
  background: #e9f8f1;
  border-color: #7ed6ad;
  color: #17633b;
}
.calendar-day-cell.few {
  background: #fff8dc;
  border-color: #eccf63;
  color: #7a5a00;
}
.calendar-day-cell.full {
  background: #fff0f0;
  border-color: #efaaaa;
  color: #a52a2a;
}
.calendar-day-cell.closed {
  background: #f1f5f9;
  color: #94a3b8;
}
.calendar-day-cell.past {
  opacity: 0.52;
}
.calendar-day-cell.selected {
  background: #7950c8;
  border-color: #6540b5;
  color: #fff;
  box-shadow: 0 0 0 3px rgba(121, 80, 200, 0.16);
}

.calendar-timeline-panel {
  background: #fbfbfe;
  border-left: 1px solid var(--line, #dbe9e6);
  padding: 1.15rem;
  display: flex;
  flex-direction: column;
  min-height: 470px;
}

.calendar-timeline-panel h3 {
  margin: 0 0 0.2rem;
  font-size: 1rem;
}
.calendar-timeline-slots {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
  margin: 0.9rem 0;
  flex: 1;
  align-content: start;
}

.calendar-timeline-slot {
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  padding: 0.65rem 0.45rem;
  background: #fff;
  color: #475569;
  font-weight: 900;
  cursor: pointer;
  text-align: center;
  font-size: 0.82rem;
}

.calendar-timeline-slot.open {
  border-color: #55bd8b;
  color: #17633b;
  background: #effbf5;
}
.calendar-timeline-slot.busy {
  border-color: #e5b1b1;
  color: #a52a2a;
  background: #fff2f2;
  cursor: not-allowed;
}
.calendar-timeline-slot.chosen {
  border-color: #6540b5;
  color: #fff;
  background: #7950c8;
  box-shadow: 0 0 0 3px rgba(121, 80, 200, 0.14);
}
.calendar-timeline-slot[hidden] {
  display: none;
}
.calendar-timeline-slot small {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.62rem;
  line-height: 1.2;
  font-weight: 800;
}
.calendar-timeline-empty {
  grid-column: 1 / -1;
  padding: 1.5rem 0.5rem;
  text-align: center;
  color: var(--muted, #6b7f7b);
}

@media (max-width: 1100px) {
  .calendar-preferences {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .live-calendar-layout {
    grid-template-columns: 1fr;
  }
  .calendar-timeline-panel {
    border-left: 0;
    border-top: 1px solid var(--line, #dbe9e6);
    min-height: auto;
  }
  .calendar-timeline-slots {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.booking-modal {
  position: fixed;
  inset: 0;
  display: none;
  align-items: flex-start;
  justify-content: center;
  overflow: auto;
  padding: 2rem;
  background: rgba(15, 23, 42, 0.58);
  z-index: 80;
}

.booking-modal.open {
  display: flex;
}
.booking-modal-box {
  width: min(760px, 100%);
  background: #fff;
  border-radius: 18px;
  padding: 1.3rem;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.25);
}

.booking-modal-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1rem;
}

.booking-modal-head .btn {
  width: auto;
}

.booking-inline-message {
  margin: 0.75rem 0;
}
.booking-inline-message:empty {
  display: none;
}

.booking-inline-message.ok,
.booking-inline-message.error {
  display: block;
  border-radius: 12px;
  padding: 0.75rem;
  font-weight: 700;
}

.booking-inline-message.ok {
  background: #e7f8ee;
  color: #17633b;
  border: 1px solid #b7ebca;
}
.booking-inline-message.error {
  background: #fdeaea;
  color: #b42318;
  border: 1px solid #f9cbd3;
}
.import-failures {
  margin: 1rem 0;
  padding: 1rem;
  border: 2px solid #b42318;
  border-radius: 14px;
  background: #fff4f2;
  color: #7a271a;
}
.import-failures h3,
.import-error-text {
  color: #b42318;
}
.import-failures th {
  color: #7a271a;
}
.table-sort-button {
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: 800;
  padding: 0;
  cursor: pointer;
  text-align: left;
  white-space: nowrap;
}
.table-sort-button:hover,
.table-sort-button:focus {
  color: var(--brand-dark);
  text-decoration: underline;
}
.credential-reveal-link {
  border: 0;
  background: transparent;
  color: var(--brand-dark);
  font-weight: 800;
  cursor: pointer;
  padding: 0;
  white-space: nowrap;
}
.credential-reveal-link:hover {
  text-decoration: underline;
}
.school-assignment-fieldset {
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 14px;
  margin: 14px 0;
}
.school-assignment-fieldset legend {
  font-weight: 800;
  padding: 0 6px;
}
.school-assignment-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 8px;
  margin-top: 10px;
  max-height: 260px;
  overflow: auto;
}
.school-assignment-grid label {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 10px;
}
.school-assignment-grid input {
  width: auto;
}
.super-availability-editor {
  min-width: min(780px, 90vw);
}
.super-availability-row {
  display: grid;
  grid-template-columns:
    minmax(150px, 1.4fr) minmax(120px, 1fr) auto minmax(120px, 1fr)
    auto;
  gap: 10px;
  align-items: center;
  margin: 10px 0;
}
.super-availability-row input,
.super-availability-row select {
  margin: 0;
}
.super-availability-exception {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 14px 0;
  padding: 12px;
  border: 1px solid #f9cbd3;
  border-radius: 12px;
  background: #fdeaea;
  color: #b42318;
}
.super-availability-exception input {
  width: auto;
}
@media (max-width: 700px) {
  .super-availability-row {
    grid-template-columns: 1fr 1fr;
  }
  .super-availability-row span {
    display: none;
  }
}

.booking-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 0.75rem;
}
.booking-quick-actions .btn {
  width: auto;
}

@media (max-width: 1050px) {
  .booking-grid-2,
  .booking-grid-3,
  .booking-toolbar,
  .booking-toolbar.compact {
    grid-template-columns: 1fr;
  }
  .booking-preview {
    position: static;
  }
}

@media (max-width: 680px) {
  .booking-form-grid,
  .booking-checks {
    grid-template-columns: 1fr;
  }
  .booking-field.full {
    grid-column: auto;
  }
  .booking-card-top {
    flex-direction: column;
  }
  .booking-modal {
    padding: 0.7rem;
  }
  .calendar-preferences {
    grid-template-columns: 1fr;
  }
  .calendar-month-panel {
    padding: 0.65rem;
  }
  .calendar-weekdays,
  .calendar-days-grid {
    gap: 0.22rem;
  }
  .calendar-day-cell {
    min-height: 58px;
    padding: 0.38rem;
    border-radius: 8px;
  }
  .calendar-day-cell .day-slots {
    font-size: 0.58rem;
  }
  .calendar-timeline-slots {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.booking-panel-spaced {
  margin-top: 1rem;
}
.booking-action-spaced {
  margin-top: 0.75rem;
}
.booking-label-spaced {
  margin-top: 0.7rem;
}
.booking-note-spaced {
  margin-top: 0.8rem;
}

/* ===== dashboard-master.css ===== */
.dashboard-head-actions,
.dashboard-actions,
.quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  align-items: center;
}
.dashboard-head-actions .btn,
.dashboard-actions .btn,
.quick-actions .btn {
  width: auto;
}
.dashboard-welcome {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.25rem;
  margin-bottom: 1rem;
}
.dashboard-clock,
.dashboard-level {
  text-align: right;
}
.dashboard-clock strong {
  display: block;
  font-size: 28px;
}
.dashboard-level strong {
  display: block;
  font-size: 26px;
}
.dashboard-search {
  margin-bottom: 1rem;
}
.dashboard-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 0.8rem;
  margin-bottom: 1rem;
}
.dashboard-stat {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 1rem;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
}
.dashboard-stat span {
  display: block;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 800;
  margin-bottom: 0.25rem;
}
.dashboard-stat strong {
  display: block;
  color: var(--brand-dark);
  font-size: 1.7rem;
}
.dashboard-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.7rem;
  margin-bottom: 0.75rem;
}
.dashboard-title h3 {
  margin: 0;
}
.dashboard-list {
  display: grid;
  gap: 0.75rem;
}
.dashboard-item {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.75rem;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 1rem;
  background: #fff;
}
.dashboard-item strong {
  display: block;
}
.dashboard-item .small {
  display: block;
}
.empty-state {
  padding: 1rem;
  border: 1px dashed var(--line);
  border-radius: 14px;
  color: var(--muted);
}
.dashboard-notice {
  padding: 12px;
  border-radius: 13px;
  background: var(--soft);
  color: var(--brand-dark);
  font-weight: 700;
}
.dashboard-error {
  padding: 12px;
  border-radius: 13px;
  background: #fdeaea;
  color: #b42318;
  border: 1px solid #f9cbd3;
}
.hidden {
  display: none !important;
}
@media (max-width: 860px) {
  .dashboard-welcome,
  .dashboard-item {
    flex-direction: column;
  }
  .dashboard-clock,
  .dashboard-level {
    text-align: left;
  }
  .dashboard-head-actions,
  .dashboard-actions,
  .quick-actions {
    width: 100%;
  }
  .dashboard-head-actions .btn,
  .dashboard-actions .btn,
  .quick-actions .btn {
    width: 100%;
  }
}

/* ===== profile-master.css ===== */
/* PROFILE COMPONENTS — matched to booking-master.css */

.profile-tabs {
  display: flex;
  gap: 0.55rem;
  flex-wrap: wrap;
  margin: 1rem 0 1.25rem;
}

.profile-tabs .btn {
  width: auto;
  border: 1px solid var(--line, #dbe9e6);
  background: #fff;
  color: var(--brand-dark, #08745f);
  padding: 0.58rem 0.95rem;
  border-radius: 999px;
  font-weight: 800;
  cursor: pointer;
}

.profile-tabs .btn:not(.secondary),
.profile-tabs .btn.active {
  background: var(--brand, #10a88a);
  border-color: var(--brand, #10a88a);
  color: #fff;
}

.profile-tabs .btn.secondary {
  background: #fff;
  border-color: var(--line, #dbe9e6);
  color: var(--brand-dark, #08745f);
}

.profile-view {
  display: none;
}
.profile-view.active {
  display: block;
}

/* Same card rendering as .booking-panel */
.profile-view > .panel,
.interface-layout > .panel {
  background: #fff;
  border: 1px solid var(--line, #dbe9e6);
  border-radius: 18px;
  padding: 1.25rem;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
}

.profile-view .panel h2 {
  font-size: 1.35rem;
  margin-bottom: 0.35rem;
}

.profile-view .panel h3 {
  margin-top: 1rem;
}

.profile-view .grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.8rem;
}

.profile-view .field.full {
  grid-column: 1 / -1;
}

.profile-view hr {
  border: 0;
  border-top: 1px solid var(--line, #dbe9e6);
  margin: 1rem 0;
}

.profile-view .panel > .btn {
  width: auto;
}

.interface-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
  gap: 1.25rem;
  align-items: start;
}

.interface-preview {
  border: 1px solid var(--line, #dbe9e6);
  border-radius: 14px;
  padding: 1rem;
  min-height: 470px;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: #fff;
}

.interface-preview img {
  max-width: 150px;
  max-height: 100px;
  margin: 0 auto 28px;
  object-fit: contain;
}

.interface-preview p {
  margin: 7px 0;
}

.interface-preview button {
  border: 0;
  color: #fff;
  padding: 12px 25px;
  border-radius: 11px;
  margin: 22px auto 0;
}

.control-row {
  display: grid;
  grid-template-columns: 2fr 110px 90px;
  gap: 10px;
}

.interface-line-controls {
  display: grid;
  gap: 0.75rem;
  margin-bottom: 1rem;
}
.interface-line {
  display: grid;
  gap: 0.7rem;
  padding: 0.8rem;
  border: 1px solid var(--line, #dbe9e6);
  border-radius: 14px;
  background: #f8fafc;
  min-width: 0;
  max-width: 100%;
}
.line-toggle {
  display: flex;
  gap: 0.45rem;
  align-items: center;
  font-weight: 800;
  margin: 0;
}
.line-toggle input {
  width: auto;
}
.interface-line-fields {
  display: grid;
  grid-template-columns:
    minmax(180px, 2fr) minmax(92px, 0.55fr) minmax(130px, 1fr)
    minmax(92px, 0.55fr);
  gap: 0.65rem;
  min-width: 0;
}
.interface-line-fields label {
  display: grid;
  gap: 0.35rem;
  min-width: 0;
  margin: 0;
  font-size: 0.78rem;
  color: var(--muted, #68747a);
  font-weight: 800;
}
.interface-line-fields input,
.interface-line-fields select {
  min-width: 0;
  max-width: 100%;
  width: 100%;
}
.interface-line-fields input[type="color"] {
  height: 46px;
  padding: 5px !important;
  cursor: pointer;
}
.teacher-management-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
}
.teacher-management-heading h2 {
  margin: 0;
}
.calendar-options {
  display: grid;
  gap: 0.65rem;
  margin: 1rem 0;
}
.calendar-options label {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0;
}
.calendar-options input[type="checkbox"] {
  width: 18px;
  height: 18px;
  min-width: 18px;
  margin: 0;
  accent-color: var(--brand, #10a88a);
}
.calendar-list-title {
  margin-top: 1.4rem;
}
.calendar-id-text {
  overflow-wrap: anywhere;
}
.row-actions {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.row-actions .btn {
  width: auto;
}

.url-row {
  display: flex;
  gap: 8px;
}
.url-row input {
  flex: 1;
}
.url-row .btn {
  width: auto;
}

.logo-preview {
  max-width: 130px;
  max-height: 80px;
  margin: 10px 0;
}

.detail {
  background: #f8fafc;
  border: 1px solid var(--line, #dbe9e6);
  border-radius: 14px;
  padding: 1rem;
}

.detail b {
  display: block;
  margin-top: 3px;
  color: var(--brand-dark, #08745f);
}

.managed-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.8rem;
}

@media (max-width: 1050px) {
  .interface-layout {
    grid-template-columns: 1fr;
  }
  .interface-line-fields {
    grid-template-columns:
      minmax(0, 2fr) minmax(92px, 0.65fr) minmax(130px, 1fr)
      minmax(92px, 0.65fr);
  }
}

@media (max-width: 680px) {
  .profile-view .grid,
  .control-row,
  .managed-grid {
    grid-template-columns: 1fr;
  }
  .interface-line-fields {
    grid-template-columns: 1fr 1fr;
  }
  .interface-line-fields .line-text-field {
    grid-column: 1/-1;
  }
  .teacher-management-heading {
    align-items: stretch;
    flex-direction: column;
  }
  .teacher-management-heading .btn {
    width: 100%;
  }

  .profile-view .field.full {
    grid-column: auto;
  }
  .url-row {
    flex-direction: column;
  }
  .url-row .btn {
    width: 100%;
  }
}

/* ===== students-master.css ===== */
/* STUDENT MANAGEMENT COMPONENTS — matched to booking-master.css */

.student-tabs {
  display: flex;
  gap: 0.55rem;
  flex-wrap: wrap;
  margin: 1rem 0 1.25rem;
}

.student-tabs .btn {
  width: auto;
  border: 1px solid var(--line, #dbe9e6);
  background: #fff;
  color: var(--brand-dark, #08745f);
  padding: 0.58rem 0.95rem;
  border-radius: 999px;
  font-weight: 800;
  cursor: pointer;
}

.student-tabs .btn:not(.secondary),
.student-tabs .btn.active {
  background: var(--brand, #10a88a);
  border-color: var(--brand, #10a88a);
  color: #fff;
}

.student-tabs .btn.secondary {
  background: #fff;
  border-color: var(--line, #dbe9e6);
  color: var(--brand-dark, #08745f);
}

.row-actions,
.check-actions {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  align-items: center;
}

.row-actions .btn,
.check-actions .btn,
.student-panel > .btn {
  width: auto;
}

.student-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.8rem;
}

.student-grid .full {
  grid-column: 1 / -1;
}

.student-panel {
  background: #fff;
  border: 1px solid var(--line, #dbe9e6);
  border-radius: 18px;
  padding: 1.25rem;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
}

.student-panel h2 {
  font-size: 1.35rem;
  margin-bottom: 0.35rem;
}

.student-panel h3 {
  margin-top: 1rem;
}
.student-panel small {
  color: var(--muted, #6b7f7b);
}

.notice {
  padding: 0.75rem;
  border-radius: 12px;
  margin: 0.75rem 0;
  display: none;
  font-weight: 700;
}

.notice.show {
  display: block;
}
.notice.ok {
  background: #e7f8ee;
  color: #17633b;
  border: 1px solid #b7ebca;
}
.notice.err {
  background: #fdeaea;
  color: #b42318;
  border: 1px solid #f9cbd3;
}

.toolbar {
  display: grid;
  grid-template-columns: 2fr repeat(3, minmax(130px, 1fr));
  gap: 0.7rem;
  align-items: end;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  padding: 0.9rem;
  margin: 0.9rem 0;
}

.toolbar label {
  font-size: 0.78rem;
}
.table-scroll {
  overflow: auto;
}

.data-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 1000px;
}

.data-table th,
.data-table td {
  padding: 0.7rem;
  border-bottom: 1px solid var(--line, #dbe9e6);
  text-align: left;
  vertical-align: middle;
}

.data-table th {
  font-size: 0.76rem;
  text-transform: uppercase;
  color: var(--muted, #6b7f7b);
}

.data-table input[type="checkbox"] {
  width: auto;
}

.status-pill {
  display: inline-block;
  padding: 0.28rem 0.58rem;
  border-radius: 999px;
  font-size: 0.76rem;
  font-weight: 800;
}

.status-active {
  color: #17633b;
  background: #e7f8ee;
}
.status-inactive {
  color: #b42318;
  background: #fdeaea;
}

.cohort-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  padding: 1rem;
  margin: 0.75rem 0;
  box-shadow: 0 5px 16px rgba(15, 23, 42, 0.035);
}

.member-list {
  max-height: 280px;
  overflow: auto;
  display: grid;
  gap: 0.45rem;
  padding: 0.75rem;
  border: 1px solid var(--line, #dbe9e6);
  border-radius: 13px;
  background: #f8fafc;
}

.member-list label {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  margin: 0;
  font-weight: 700;
}

.student-panel input[type="checkbox"],
.modal input[type="checkbox"] {
  width: 18px;
  height: 18px;
  min-width: 18px;
  margin: 0;
  align-self: center;
  accent-color: var(--brand, #10a88a);
}

.inline-create,
.password-row {
  display: flex;
  gap: 0.55rem;
  align-items: center;
}
.inline-create select,
.password-row input {
  flex: 1;
}
.inline-create .btn,
.password-row .btn {
  width: auto;
  white-space: nowrap;
}

.member-list input {
  width: auto;
}

.welcome-preview {
  white-space: pre-wrap;
  background: #f8fafc;
  border: 1px solid var(--line, #dbe9e6);
  padding: 1rem;
  border-radius: 13px;
  max-height: 450px;
  overflow: auto;
}

.bulk-format {
  background: var(--soft, #dff5f0);
  padding: 1rem;
  border-radius: 13px;
}

.modal {
  position: fixed;
  inset: 0;
  display: none;
  align-items: flex-start;
  justify-content: center;
  overflow: auto;
  padding: 2rem;
  background: rgba(15, 23, 42, 0.58);
  z-index: 80;
}

.modal.open {
  display: flex;
}

.modal-box {
  width: min(850px, 100%);
  max-height: 94vh;
  overflow: auto;
  background: #fff;
  border-radius: 18px;
  padding: 1.3rem;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.25);
}

.modal-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1rem;
}

.modal-head button {
  border: 0;
  background: none;
  font-size: 1.5rem;
  cursor: pointer;
}

.counter {
  display: inline-block;
  background: var(--soft, #dff5f0);
  color: var(--brand-dark, #08745f);
  padding: 0.28rem 0.58rem;
  border-radius: 999px;
  font-size: 0.76rem;
  font-weight: 800;
}

.inline-select {
  min-width: 150px;
}
.empty {
  color: var(--muted, #6b7f7b);
  padding: 2rem 1rem;
  text-align: center;
}
.btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

@media (max-width: 1050px) {
  .toolbar {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .student-grid {
    grid-template-columns: 1fr;
  }
  .student-grid .full {
    grid-column: auto;
  }
  .modal {
    padding: 0.7rem;
  }
}

/* ===== admin-master.css ===== */
.admin-shell {
  min-height: 100vh;
}
.admin-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  border-bottom: 1px solid var(--line);
  padding-bottom: 1rem;
  margin-bottom: 1.25rem;
}
.admin-header .btn {
  width: auto;
}
.admin-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.8rem;
  margin-bottom: 1rem;
}
.admin-stat {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 1rem;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
}
.admin-stat strong {
  display: block;
  color: var(--brand-dark);
  font-size: 1.8rem;
  margin-top: 0.25rem;
}
@media (max-width: 700px) {
  .admin-header {
    align-items: flex-start;
    flex-direction: column;
  }
  .admin-header .btn {
    width: 100%;
  }
}
.admin-tabs {
  display: flex;
  gap: 0.5rem;
  overflow: auto;
  margin: 1rem 0;
}
.admin-tabs button {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 10px;
  padding: 0.7rem 1rem;
  font-weight: 700;
  white-space: nowrap;
}
.admin-tabs button.active {
  background: var(--brand);
  border-color: var(--brand);
  color: #fff;
}
.admin-toolbar {
  display: flex;
  gap: 0.75rem;
  margin-bottom: 1rem;
}
.admin-toolbar input {
  flex: 1;
}
.admin-row-actions {
  display: flex;
  gap: 0.35rem;
  flex-wrap: wrap;
}
.admin-dialog {
  width: min(620px, calc(100% - 2rem));
  border: 0;
  border-radius: 18px;
  padding: 1.5rem;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.25);
}
.admin-dialog::backdrop {
  background: rgba(15, 23, 42, 0.55);
}
.admin-dialog-close {
  float: right;
  border: 0;
  background: var(--soft);
  border-radius: 50%;
  width: 36px;
  height: 36px;
  font-size: 1.4rem;
}
.admin-record-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.8rem;
}
.admin-record-form .btn {
  grid-column: 1/-1;
}
@media (max-width: 700px) {
  .admin-toolbar {
    flex-direction: column;
  }
  .admin-record-form {
    grid-template-columns: 1fr;
  }
}

.admin-inline-field {
  min-width: 135px;
  padding: 8px !important;
  border-radius: 8px !important;
  margin: 2px 0;
}
.sortable-admin-table td small {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  font-weight: 700;
}
.admin-toolbar #toggleInlineEditButton {
  white-space: nowrap;
}

/* ================================================================
   AMASOMO 2026 CANONICAL UI — FINAL OVERRIDE
   Six type sizes, three core colours, one spacing rhythm,
   one button language and one hierarchy across every page.
   ================================================================ */
:root {
  --ui-dark: #0d3b34;
  --ui-brand: #10a88a;
  --ui-white: #ffffff;
  --ui-font: "Segoe UI", Arial, sans-serif;
  --ui-12: 12px;
  --ui-14: 14px;
  --ui-16: 16px;
  --ui-18: 18px;
  --ui-24: 24px;
  --ui-32: 32px;
  --ui-space-1: 8px;
  --ui-space-2: 16px;
  --ui-space-3: 24px;
  --ui-space-4: 32px;
  --ui-control-radius: 12px;
  --ui-card-radius: 16px;
  --bg: rgba(16, 168, 138, 0.06) !important;
  --card: var(--ui-white) !important;
  --text: var(--ui-dark) !important;
  --ink: var(--ui-dark) !important;
  --muted: rgba(13, 59, 52, 0.68) !important;
  --brand: var(--ui-brand) !important;
  --brand-dark: var(--ui-dark) !important;
  --soft: rgba(16, 168, 138, 0.1) !important;
  --line: rgba(13, 59, 52, 0.14) !important;
  --danger: var(--ui-brand) !important;
  --success: var(--ui-brand) !important;
}
*,
*::before,
*::after {
  font-family: var(--ui-font) !important;
}
html {
  font-size: 16px;
}
body {
  background: var(--bg) !important;
  color: var(--ui-dark) !important;
  font-size: var(--ui-14) !important;
  line-height: 1.5 !important;
}
h1,
h2,
h3,
h4,
p,
.small,
label {
  font-family: var(--ui-font) !important;
  color: var(--ui-dark) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
h1 {
  font-size: var(--ui-32) !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
  margin: 0 !important;
}
h2 {
  font-size: var(--ui-24) !important;
  line-height: 1.25 !important;
  font-weight: 700 !important;
  margin: 0 0 var(--ui-space-1) !important;
}
h3 {
  font-size: var(--ui-18) !important;
  line-height: 1.35 !important;
  font-weight: 700 !important;
  margin: 0 0 var(--ui-space-1) !important;
}
h4 {
  font-size: var(--ui-16) !important;
  line-height: 1.4 !important;
  font-weight: 700 !important;
  margin: 0 0 var(--ui-space-1) !important;
}
p,
li,
td,
input,
select,
textarea {
  font-size: var(--ui-14) !important;
}
.small,
small,
label,
th,
.booking-muted,
.dashboard-stat span,
.booking-stat span,
.admin-stat span {
  font-size: var(--ui-12) !important;
  line-height: 1.5 !important;
  color: var(--muted) !important;
}
strong,
b {
  font-weight: 700 !important;
}
.page-title-icon {
  display: none !important;
}
.hero,
.school-welcome-panel,
.school-welcome {
  background: var(--soft) !important;
  color: var(--ui-dark) !important;
}

.main {
  padding: var(--ui-space-3) !important;
  max-width: 1280px !important;
}
.header,
.booking-header,
.admin-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: var(--ui-space-2) !important;
  padding: 0 0 var(--ui-space-2) !important;
  margin: 0 0 var(--ui-space-2) !important;
  border: 0 !important;
  border-bottom: 1px solid var(--line) !important;
  background: transparent !important;
  box-shadow: none !important;
}
.header > div:first-child,
.booking-header > div:first-child,
.admin-header > div:first-child {
  display: grid !important;
  gap: var(--ui-space-1) !important;
}
.header p,
.booking-header p,
.admin-header p {
  margin: 0 !important;
  color: var(--muted) !important;
  font-size: var(--ui-14) !important;
}

.panel,
.card,
.booking-panel,
.booking-card,
.dashboard-item,
.dashboard-stat,
.booking-stat,
.admin-stat,
.student-panel,
.profile-view > .panel,
.interface-layout > .panel,
.quick-actions-panel,
.question-card,
.booking-day {
  background: var(--ui-white) !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--ui-card-radius) !important;
  padding: var(--ui-space-2) !important;
  box-shadow: none !important;
  margin-bottom: var(--ui-space-2) !important;
}
.grid,
.dashboard-stats,
.booking-stats,
.booking-list,
.dashboard-list,
.admin-stats,
.booking-grid-2,
.booking-grid-3,
.booking-form-grid,
.interface-layout,
.managed-grid {
  gap: var(--ui-space-2) !important;
}
.dashboard-title,
.booking-card-top,
.booking-modal-head {
  gap: var(--ui-space-2) !important;
  margin-bottom: var(--ui-space-1) !important;
}

input:not([type="checkbox"]):not([type="radio"]),
select,
textarea {
  min-height: 44px !important;
  width: 100% !important;
  padding: 10px 12px !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--ui-control-radius) !important;
  background: var(--ui-white) !important;
  color: var(--ui-dark) !important;
  box-shadow: none !important;
}
input:focus,
select:focus,
textarea:focus {
  outline: 2px solid var(--ui-brand) !important;
  outline-offset: 1px !important;
  box-shadow: none !important;
}
.field,
.booking-field {
  margin: 0 0 var(--ui-space-2) !important;
}
label {
  display: block !important;
  font-weight: 700 !important;
  margin: 0 0 var(--ui-space-1) !important;
}

.btn,
button.btn,
.primary-action,
.secondary-action,
.booking-tabs button,
.quick-tabs button,
.admin-tabs button,
.student-tabs .btn,
.profile-tabs .btn,
.tab-navigation button,
.booking-slot,
.calendar-timeline-slot,
.calendar-nav-button,
.interface-preview button,
.modal-head button,
.admin-dialog-close {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  width: auto !important;
  padding: 0 var(--ui-space-2) !important;
  border: 1px solid var(--ui-brand) !important;
  border-radius: var(--ui-control-radius) !important;
  background: var(--ui-brand) !important;
  color: var(--ui-white) !important;
  font-family: var(--ui-font) !important;
  font-size: var(--ui-14) !important;
  line-height: 1 !important;
  font-weight: 700 !important;
  text-align: center !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  box-shadow: none !important;
  cursor: pointer !important;
}
.btn.secondary,
.btn.danger,
.secondary-action,
.booking-tabs button:not(.active),
.quick-tabs button:not(.active),
.admin-tabs button:not(.active),
.student-tabs .btn.secondary,
.profile-tabs .btn.secondary,
.tab-navigation button:not(.active) {
  background: var(--ui-brand) !important;
  color: var(--ui-white) !important;
  border-color: var(--ui-brand) !important;
  opacity: 1 !important;
}
.btn:hover,
button.btn:hover,
.primary-action:hover,
.secondary-action:hover,
.booking-tabs button:hover,
.quick-tabs button:hover,
.admin-tabs button:hover,
.student-tabs .btn:hover,
.profile-tabs .btn:hover,
.booking-slot:hover,
.calendar-timeline-slot:hover,
.calendar-nav-button:hover:not(:disabled),
.interface-preview button:hover,
.modal-head button:hover,
.admin-dialog-close:hover {
  background: var(--ui-dark) !important;
  border-color: var(--ui-dark) !important;
  color: var(--ui-white) !important;
  opacity: 1 !important;
}
.btn:focus-visible,
button:focus-visible,
a.btn:focus-visible {
  outline: 2px solid var(--ui-dark) !important;
  outline-offset: 2px !important;
}
.btn:disabled,
button:disabled,
.booking-slot[disabled],
.calendar-nav-button:disabled {
  background: var(--ui-brand) !important;
  color: var(--ui-white) !important;
  opacity: 0.38 !important;
  cursor: not-allowed !important;
}
.booking-actions,
.booking-quick-actions,
.dashboard-head-actions,
.dashboard-actions,
.quick-actions,
.row-actions,
.check-actions,
.admin-row-actions {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: var(--ui-space-1) !important;
}
.booking-tabs,
.quick-tabs,
.admin-tabs,
.student-tabs,
.profile-tabs,
.tab-navigation {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: var(--ui-space-1) !important;
  margin: 0 0 var(--ui-space-2) !important;
}

.nav {
  gap: var(--ui-space-1) !important;
}
.nav a,
.nav button {
  min-height: 44px !important;
  padding: 0 12px !important;
  border: 0 !important;
  border-radius: var(--ui-control-radius) !important;
  background: transparent !important;
  color: var(--ui-white) !important;
  font-size: var(--ui-14) !important;
  font-weight: 700 !important;
  opacity: 0.82 !important;
}
.nav a.active,
.nav a:hover,
.nav button:hover {
  background: rgba(255, 255, 255, 0.12) !important;
  color: var(--ui-white) !important;
  opacity: 1 !important;
}

.badge,
.pill,
.booking-pill,
.status-pill,
.student-status {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 24px !important;
  padding: 0 var(--ui-space-1) !important;
  border: 0 !important;
  border-radius: var(--ui-control-radius) !important;
  background: var(--soft) !important;
  color: var(--ui-dark) !important;
  font-size: var(--ui-12) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
}
.pill.danger,
.booking-pill.danger,
.booking-pill.warning,
.booking-pill.success,
.status-active,
.status-inactive {
  background: var(--soft) !important;
  color: var(--ui-dark) !important;
}
.calendar-day-cell,
.calendar-day-cell.available,
.calendar-day-cell.few,
.calendar-day-cell.full,
.calendar-day-cell.closed,
.calendar-day-cell.past {
  background: var(--ui-white) !important;
  border-color: var(--line) !important;
  color: var(--ui-dark) !important;
}
.calendar-day-cell.available {
  background: var(--soft) !important;
}
.calendar-day-cell.few {
  background: var(--soft) !important;
  opacity: 0.82 !important;
}
.calendar-day-cell.full,
.calendar-day-cell.closed,
.calendar-day-cell.past {
  background: var(--soft) !important;
  opacity: 0.48 !important;
}
.calendar-day-cell.selected {
  background: var(--ui-brand) !important;
  border-color: var(--ui-brand) !important;
  color: var(--ui-white) !important;
  box-shadow: none !important;
  opacity: 1 !important;
}
.calendar-dot.available,
.calendar-dot.few,
.calendar-dot.full,
.calendar-dot.selected {
  background: var(--ui-brand) !important;
}
.calendar-dot.few {
  opacity: 0.82 !important;
}
.calendar-dot.full {
  opacity: 0.48 !important;
}
.calendar-dot.selected {
  opacity: 1 !important;
}
.message,
.notice,
.booking-inline-message,
.dashboard-notice,
.dashboard-error,
.empty-state,
.booking-empty {
  padding: var(--ui-space-2) !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--ui-card-radius) !important;
  background: var(--soft) !important;
  color: var(--ui-dark) !important;
  font-size: var(--ui-14) !important;
}
.message.ok,
.message.err,
.notice.ok,
.notice.err,
.booking-inline-message.ok,
.booking-inline-message.error,
.dashboard-error {
  background: var(--soft) !important;
  color: var(--ui-dark) !important;
  border-color: var(--line) !important;
}
table {
  font-size: var(--ui-14) !important;
}
th,
td {
  padding: 12px var(--ui-space-1) !important;
  border-bottom: 1px solid var(--line) !important;
}
th {
  background: var(--soft) !important;
  font-weight: 700 !important;
}
.booking-toolbar,
.admin-toolbar,
.horizontal-control-bar,
.filter-controls,
.calendar-preferences,
.booking-checks,
.booking-student-checks,
.calendar-open-filter {
  padding: var(--ui-space-2) !important;
  gap: var(--ui-space-2) !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--ui-card-radius) !important;
  background: var(--soft) !important;
}

@media (max-width: 860px) {
  .main {
    padding: var(--ui-space-2) !important;
  }
  .header,
  .booking-header,
  .admin-header {
    align-items: flex-start !important;
    flex-direction: column !important;
  }
  .dashboard-head-actions,
  .dashboard-actions,
  .quick-actions,
  .booking-actions,
  .row-actions {
    width: 100% !important;
  }
  .dashboard-head-actions .btn,
  .dashboard-actions .btn,
  .quick-actions .btn,
  .booking-actions .btn,
  .row-actions .btn {
    width: 100% !important;
  }
  h1 {
    font-size: var(--ui-24) !important;
  }
}

/* ================================================================
   FUNCTIONAL COMPONENT GROUPS — TEACHER AND STUDENT SHARED
   Applied after the complete element/function/text audit.
   ================================================================ */

/* TEXT GROUP 1 — Page identity */
.header h1,
.booking-header h1,
.admin-header h1,
.hero h1 {
  font-size: var(--ui-32) !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
}
.header h1 + p,
.booking-header h1 + p,
.admin-header h1 + p,
.page-subtitle {
  font-size: var(--ui-14) !important;
  line-height: 1.5 !important;
  color: var(--muted) !important;
  margin: 0 !important;
}

/* TEXT GROUP 2 — Semantic heading hierarchy */
h1,
.ui-h1 {
  font-size: var(--ui-32) !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
}
h2,
.ui-h2 {
  font-size: var(--ui-24) !important;
  line-height: 1.25 !important;
  font-weight: 700 !important;
}
h3,
.ui-h3 {
  font-size: var(--ui-18) !important;
  line-height: 1.35 !important;
  font-weight: 700 !important;
}
h4,
.ui-h4 {
  font-size: var(--ui-16) !important;
  line-height: 1.4 !important;
  font-weight: 700 !important;
}
h5,
.ui-h5 {
  font-size: var(--ui-14) !important;
  line-height: 1.4 !important;
  font-weight: 700 !important;
}
h6,
.ui-h6 {
  font-size: var(--ui-12) !important;
  line-height: 1.5 !important;
  font-weight: 700 !important;
}

/* TEXT GROUP 3 — Supporting copy */
.section-subtitle,
.card-subtitle,
.booking-muted,
.small,
small {
  font-size: var(--ui-12) !important;
  line-height: 1.5 !important;
  color: var(--muted) !important;
}
label,
.field-label,
.table-label {
  font-size: var(--ui-12) !important;
  line-height: 1.5 !important;
  font-weight: 700 !important;
  color: var(--muted) !important;
}

/* BUTTON BASE — shared by Button 1, 2, 3 and 4 */
.btn,
.button-1,
.button-2,
.button-3,
.button-4,
.booking-tabs button,
.student-tabs button,
.profile-tabs button,
.admin-tabs button,
.tab-navigation button {
  min-height: 44px !important;
  padding: 0 16px !important;
  border-width: 1px !important;
  border-style: solid !important;
  border-radius: 12px !important;
  font-family: var(--ui-font) !important;
  font-size: var(--ui-14) !important;
  line-height: 1 !important;
  font-weight: 700 !important;
  box-shadow: none !important;
  text-decoration: none !important;
}

/* BUTTON 1 — Commit or principal page action: Create, Save, Confirm, Book */
.button-1,
.header .btn,
.booking-header .btn,
form button[type="submit"]:not(.secondary):not(.danger),
.btn:not(.secondary):not(.danger):not(.button-2):not(.button-3):not(.button-4) {
  background: var(--ui-brand) !important;
  border-color: var(--ui-brand) !important;
  color: var(--ui-white) !important;
  opacity: 1 !important;
}

/* BUTTON 2 — View navigation and toggles */
.button-2,
.booking-tabs button,
.booking-tabs button:not(.active),
.student-tabs button,
.student-tabs .btn.secondary,
.profile-tabs button,
.profile-tabs .btn.secondary,
.admin-tabs button,
.admin-tabs button:not(.active),
.tab-navigation button,
.tab-navigation button:not(.active) {
  background: var(--ui-white) !important;
  border-color: var(--ui-dark) !important;
  color: var(--ui-dark) !important;
  opacity: 1 !important;
}
.button-2.active,
.booking-tabs button.active,
.student-tabs .btn:not(.secondary),
.profile-tabs .btn:not(.secondary),
.admin-tabs button.active,
.tab-navigation button.active {
  background: var(--ui-brand) !important;
  border-color: var(--ui-brand) !important;
  color: var(--ui-white) !important;
}

/* BUTTON 3 — Utility or reversible action: Open, Copy, Clear, View, Generate */
.button-3,
.btn.secondary {
  background: var(--ui-white) !important;
  border-color: var(--ui-brand) !important;
  color: var(--ui-dark) !important;
  opacity: 1 !important;
}

/* BUTTON 4 — Destructive or closing action: Cancel, Delete, Deactivate, Close */
.button-4,
.btn.danger,
.btn.status-action,
.modal-head button,
.admin-dialog-close {
  background: var(--ui-dark) !important;
  border-color: var(--ui-dark) !important;
  color: var(--ui-white) !important;
  opacity: 1 !important;
}

/* Shared interaction states */
.btn:hover,
.button-1:hover,
.button-2:hover,
.button-3:hover,
.button-4:hover,
.booking-tabs button:hover,
.student-tabs button:hover,
.profile-tabs button:hover,
.admin-tabs button:hover {
  background: var(--ui-dark) !important;
  border-color: var(--ui-dark) !important;
  color: var(--ui-white) !important;
}
.btn:disabled,
.button-1:disabled,
.button-2:disabled,
.button-3:disabled,
.button-4:disabled {
  opacity: 0.38 !important;
}

/* CONTAINER GROUPS — identical across roles */
.header,
.booking-header,
.admin-header {
  min-height: 84px !important;
}
.booking-tabs,
.student-tabs,
.profile-tabs,
.admin-tabs {
  min-height: 44px !important;
}
.panel,
.booking-panel,
.student-panel {
  position: relative !important;
}
.panel > h2:first-child,
.booking-panel > h2:first-child,
.student-panel > h2:first-child {
  margin-bottom: 8px !important;
}
.panel > h3:first-child,
.booking-panel > h3:first-child,
.student-panel > h3:first-child {
  margin-bottom: 8px !important;
}

@media (max-width: 860px) {
  .header h1,
  .booking-header h1,
  .admin-header h1,
  .hero h1,
  h1,
  .ui-h1 {
    font-size: var(--ui-24) !important;
  }
}

/* Buttons always remain visibly separate from white page and card backgrounds. */
.btn.secondary,
.button-2,
.button-3,
.booking-tabs button:not(.active),
.student-tabs button:not(.active),
.profile-tabs button:not(.active),
.admin-tabs button:not(.active),
.tab-navigation button:not(.active) {
  background: var(--soft) !important;
  border-color: var(--ui-brand) !important;
  color: var(--ui-dark) !important;
}
.btn,
.booking-tabs button,
.nav a,
.nav button {
  transition:
    transform 0.18s ease,
    background-color 0.18s ease,
    border-color 0.18s ease,
    color 0.18s ease !important;
}
.btn:hover,
.booking-tabs button:hover {
  transform: translateY(-2px) !important;
}
.nav a:hover,
.nav button:hover,
.nav a.active {
  transform: translateX(4px) !important;
}
@media (prefers-reduced-motion: reduce) {
  .btn,
  .booking-tabs button,
  .nav a,
  .nav button {
    transition: none !important;
  }
  .btn:hover,
  .booking-tabs button:hover,
  .nav a:hover,
  .nav button:hover,
  .nav a.active {
    transform: none !important;
  }
}
.weekly-availability-grid {
  display: grid;
  gap: 0.65rem;
  margin: 1rem 0;
}
.weekly-day-row {
  display: grid;
  grid-template-columns: minmax(130px, 1fr) minmax(110px, 0.7fr) auto minmax(
      110px,
      0.7fr
    );
  align-items: center;
  gap: 0.65rem;
  padding: 0.75rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--soft);
}
.weekly-day-row label {
  font-weight: 700;
  display: flex;
  gap: 0.5rem;
  align-items: center;
}
.teacher-preference-note {
  margin: 0.5rem 0 1rem;
}
.waiver-box {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  padding: 1rem;
  margin: 1rem 0;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff7ed;
}
.availability-warning {
  color: #9a3412 !important;
  background: #fff7ed !important;
  border-color: #fdba74 !important;
  padding: 0.65rem 0.8rem !important;
  border-radius: 10px !important;
}
.teacher-select-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.5rem;
  align-items: end;
  min-width: 0;
}
.teacher-select-row select {
  min-width: 0;
  width: 100%;
}
.teacher-select-row .btn {
  white-space: nowrap;
}
.public-availability-page {
  background: var(--soft);
}
.public-availability-shell {
  width: min(920px, calc(100% - 2rem));
  margin: 2rem auto;
}
@media (max-width: 680px) {
  .weekly-day-row {
    grid-template-columns: 1fr 1fr;
  }
  .weekly-day-row span {
    display: none;
  }
}
@media (max-width: 680px) {
  .teacher-select-row {
    grid-template-columns: 1fr;
  }
  .teacher-select-row .btn {
    width: 100%;
  }
}

/* V23 profile controls: keep every editable line inside its card at all widths. */
.interface-line {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 12px !important;
  min-width: 0 !important;
  max-width: 100% !important;
  overflow: hidden !important;
}
.line-toggle {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin: 0 !important;
}
.line-toggle input {
  width: 18px !important;
  min-width: 18px !important;
  height: 18px !important;
}
.interface-line-fields {
  display: grid !important;
  grid-template-columns:
    minmax(180px, 2fr) minmax(92px, 0.55fr) minmax(130px, 1fr)
    minmax(92px, 0.55fr) !important;
  gap: 10px !important;
  min-width: 0 !important;
}
.interface-line-fields label {
  display: grid !important;
  gap: 5px !important;
  min-width: 0 !important;
  margin: 0 !important;
}
.interface-line-fields input,
.interface-line-fields select {
  min-width: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
}
.interface-line-fields input[type="color"] {
  height: 44px !important;
  padding: 5px !important;
}
.teacher-management-heading {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 16px !important;
  margin-bottom: 16px !important;
}
@media (max-width: 760px) {
  .interface-line-fields {
    grid-template-columns: 1fr 1fr !important;
  }
  .interface-line-fields .line-text-field {
    grid-column: 1/-1 !important;
  }
  .teacher-management-heading {
    align-items: stretch !important;
    flex-direction: column !important;
  }
}
#interfacePreview #preview_first {
  font-family: var(--preview-first-font, Arial) !important;
  font-size: var(--preview-first-size, 34px) !important;
  color: var(--preview-first-color, #172126) !important;
}
#interfacePreview #preview_second {
  font-family: var(--preview-second-font, Arial) !important;
  font-size: var(--preview-second-size, 25px) !important;
  color: var(--preview-second-color, #172126) !important;
}
#interfacePreview #preview_third {
  font-family: var(--preview-third-font, Arial) !important;
  font-size: var(--preview-third-size, 16px) !important;
  color: var(--preview-third-color, #68747a) !important;
}
#interfacePreview #preview_fourth {
  font-family: var(--preview-fourth-font, Arial) !important;
  font-size: var(--preview-fourth-size, 15px) !important;
  color: var(--preview-fourth-color, #68747a) !important;
}
.school-welcome #schoolFirst {
  font-family: var(--school-first-font, Arial) !important;
  font-size: var(--school-first-size, 34px) !important;
  color: var(--school-first-color, #172126) !important;
}
.school-welcome #schoolSecond {
  font-family: var(--school-second-font, Arial) !important;
  font-size: var(--school-second-size, 25px) !important;
  color: var(--school-second-color, #172126) !important;
}
.school-welcome #schoolThird {
  font-family: var(--school-third-font, Arial) !important;
  font-size: var(--school-third-size, 16px) !important;
  color: var(--school-third-color, #68747a) !important;
}
.school-welcome #schoolFourth {
  font-family: var(--school-fourth-font, Arial) !important;
  font-size: var(--school-fourth-size, 15px) !important;
  color: var(--school-fourth-color, #68747a) !important;
}
.tb-weekly-range {
  grid-template-columns:
    minmax(150px, 1fr) minmax(110px, 0.7fr) auto minmax(110px, 0.7fr)
    auto !important;
}
@media (max-width: 680px) {
  .tb-weekly-range {
    grid-template-columns: 1fr 1fr !important;
  }
  .tb-weekly-range .tb-week-remove {
    grid-column: 1/-1 !important;
    width: 100% !important;
  }
}

/* V26 booking reliability controls reuse the established panels, cards and buttons. */
.availability-status-panel {
  margin: 0 0 var(--ui-space-2) !important;
  padding: var(--ui-space-2) !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--ui-card-radius) !important;
  background: var(--soft) !important;
}
.teacher-control-card {
  border-left: 4px solid var(--ui-brand) !important;
}
.teacher-control-card .booking-card-top {
  align-items: flex-start !important;
}
.teacher-control-card .booking-actions {
  min-width: min(280px, 100%) !important;
}
.teacher-private-link {
  margin-top: 12px !important;
}
.teacher-private-link input {
  width: 100% !important;
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace !important;
  font-size: var(--ui-12) !important;
  background: var(--soft) !important;
}
.teacher-merge-controls {
  display: grid !important;
  grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) auto !important;
  align-items: end !important;
  gap: 10px !important;
  margin: 0 0 16px !important;
}
.notification-count {
  min-width: 24px !important;
  margin-left: 6px !important;
  background: #b42318 !important;
  border-color: #b42318 !important;
  color: #fff !important;
  text-align: center !important;
}
.notification-unread {
  border-left: 4px solid var(--ui-brand) !important;
  background: #f5f7ff !important;
}
.calendar-preferences.teacher-specific-selected {
  border-width: 2px !important;
  box-shadow: 0 0 0 3px rgba(55, 76, 199, 0.08) !important;
}
.calendar-preferences.teacher-specific-selected[data-teacher-tone="1"] {
  border-color: #374cc7 !important;
  background: #f5f7ff !important;
}
.calendar-preferences.teacher-specific-selected[data-teacher-tone="2"] {
  border-color: #147d64 !important;
  background: #f2fbf8 !important;
}
.calendar-preferences.teacher-specific-selected[data-teacher-tone="3"] {
  border-color: #a15c00 !important;
  background: #fff9ef !important;
}
.calendar-preferences.teacher-specific-selected[data-teacher-tone="4"] {
  border-color: #8b3db4 !important;
  background: #fbf5ff !important;
}
.admin-tabs {
  flex-wrap: wrap !important;
}
.admin-tabs button {
  flex: 0 1 auto !important;
}
.admin-bulk-toolbar {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  margin: 0 0 14px !important;
  padding: 12px !important;
  border: 1px solid var(--line) !important;
  border-radius: 12px !important;
  background: var(--soft) !important;
}
.admin-bulk-toolbar select {
  width: auto !important;
  min-width: 190px !important;
  margin: 0 !important;
}
.admin-bulk-toolbar .small {
  margin-left: auto !important;
}
.selection-column {
  width: 44px !important;
  text-align: center !important;
}
.selection-column input {
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
}
.table-sort-button {
  appearance: none !important;
  background: transparent !important;
  border: 0 !important;
  color: inherit !important;
  font: inherit !important;
  font-weight: 800 !important;
  padding: 0 !important;
  cursor: pointer !important;
  text-align: left !important;
}
.table-sort-button:hover,
.table-sort-button:focus {
  color: var(--ui-brand) !important;
  text-decoration: underline !important;
}
.super-teacher-availability {
  display: grid !important;
  gap: 8px !important;
  min-width: 320px !important;
}
.super-teacher-availability .booking-pills {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
}
.super-teacher-availability .admin-row-actions {
  min-width: 0 !important;
}
.teacher-private-link input {
  font-size: 12px !important;
}
@media (max-width: 860px) {
  .teacher-control-card .booking-card-top {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }
  .teacher-control-card .booking-actions {
    width: 100% !important;
  }
  .teacher-merge-controls {
    grid-template-columns: 1fr !important;
  }
  .admin-bulk-toolbar .small {
    width: 100% !important;
    margin-left: 0 !important;
  }
}
.connection-heading{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap}.connection-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;margin:1rem 0}.connection-stat{border:1px solid #c8dfdb;border-radius:14px;padding:1rem;background:#f5fbfa}.connection-stat strong{display:block;font-size:1.65rem;color:#073f37}.connection-stat span{font-size:.84rem}.connection-guide{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.75rem;margin:1rem 0}.connection-rule{border-left:4px solid #10a88a;background:#edf8f6;padding:.8rem 1rem;border-radius:8px}.connection-rule b{display:block;margin-bottom:.25rem}.connection-status{display:inline-block;padding:.2rem .55rem;border-radius:999px;font-weight:700;font-size:.78rem}.connection-status.ready{background:#d8f5e9;color:#075c43}.connection-status.warning{background:#fff1c7;color:#745400}.connection-status.blocked{background:#ffe0df;color:#8b1e19}.connection-card{border:1px solid #c8dfdb;border-radius:14px;padding:1rem;margin:.75rem 0}.connection-card h3{margin-top:0}.connection-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.5rem}.connection-item{background:#f7faf9;border-radius:9px;padding:.65rem}.connection-item small{display:block;color:#51706a}.connection-actions{margin-top:.8rem;display:flex;gap:.5rem;flex-wrap:wrap}
.platform-migration-notice{margin:1rem 0 1.25rem;padding:1.15rem;border:3px solid #e5a800;border-radius:15px;background:#fff7d7;color:#352b00;box-shadow:0 5px 16px rgba(92,70,0,.12)}.platform-migration-notice strong{display:block;font-size:1.35rem;line-height:1.2;margin-bottom:.55rem}.platform-migration-notice p{margin:.4rem 0;line-height:1.45;font-weight:600}.platform-migration-notice .migration-support{display:block;width:100%;margin-top:.85rem;text-align:center;box-sizing:border-box;background:#0b6f61;color:#fff}.platform-migration-notice .migration-support:hover{background:#074c43}
.lookup-search-panel{max-width:900px}.lookup-search-row{display:grid;grid-template-columns:1fr auto;gap:.7rem;margin-top:.45rem}.lookup-search-row input{font-size:1.1rem}.student-lookup-card{margin:1rem 0}.lookup-card-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.lookup-card-heading h2,.lookup-card-heading p{margin:.15rem 0}.lookup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.7rem;margin-top:1rem}.lookup-grid>div{display:flex;flex-direction:column;gap:.2rem;padding:.8rem;background:#f3f9f8;border-radius:10px}.lookup-grid small{color:#57726d}.lookup-grid span{font-size:.82rem;color:#57726d}.lookup-id{overflow-wrap:anywhere}@media(max-width:600px){.lookup-search-row{grid-template-columns:1fr}.lookup-search-row .btn{width:100%}}
.cancellation-modal-box{max-width:620px}.cancellation-modal-box textarea{width:100%;box-sizing:border-box}.cancellation-modal-box .danger{background:#9b2c2c;color:#fff}

/* AMASOMO V46 — School Admin sidebar is the exact shell for every role. */
.app>.side.v44-role-sidebar [data-school-page-identity]{display:flex!important;flex-direction:column!important;gap:4px!important;margin:0!important;padding:14px!important;border:1px solid rgba(255,255,255,.2)!important;border-radius:14px!important;background:rgba(255,255,255,.07)!important;box-shadow:none!important;color:#fff!important}
.app>.side.v44-role-sidebar [data-school-page-identity] b{font-size:15px!important;line-height:1.45!important;color:#fff!important}
.app>.side.v44-role-sidebar [data-school-page-identity] p{margin:0!important;font-size:12px!important;line-height:1.5!important;color:#bce8de!important;opacity:1!important}
.app>.side.v44-role-sidebar .nav{margin:0!important;padding:0!important;border:0!important}
.app>.side.v44-role-sidebar .v44-role-logout{width:100%!important;box-sizing:border-box!important;margin-top:auto!important;border:1px solid rgba(255,255,255,.3)!important;border-radius:10px!important;background:transparent!important;color:#fff!important;text-align:center!important;padding:11px 12px!important;font:inherit!important;font-size:14px!important;font-weight:700!important;cursor:pointer!important}
.app>.side.v44-role-sidebar .v44-role-logout:hover{background:#0d5a4d!important;color:#fff!important}
@media(max-width:820px){.app>.side.v44-role-sidebar .v44-role-logout{margin-top:0!important}.app>.side.v44-role-sidebar [data-school-page-identity]{position:static!important}}

/* AMASOMO V46 — Super Admin automation and calendar directory. */
.v46-automation-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 16px;padding:18px;border:1px solid #c6ddd8;border-radius:16px;background:#edf8f5}.v46-automation-head+ .v46-automation-head{margin-top:18px}.v46-automation-head h2,.v46-automation-head p{margin:0}.v46-automation-head p{margin-top:5px;color:#66817b}.v46-school-picker{margin:14px 0}.v46-all-school{display:flex;align-items:center;gap:9px;padding:12px;border-radius:11px;background:#edf8f5;font-weight:800}.v46-all-school input,.v46-shared-field>input[type=checkbox]{width:18px!important;height:18px!important;padding:0!important}.v46-defaults-form{display:grid;gap:10px}.v46-shared-field{display:grid;grid-template-columns:22px minmax(180px,.7fr) minmax(260px,1.3fr);align-items:center;gap:10px;padding:10px;border:1px solid #d4e5e1;border-radius:11px;background:#fff}.v46-shared-field span{font-weight:800}.v46-shared-field input:last-child{width:100%}.v46-school-picker .school-assignment-grid{margin-top:10px;max-height:260px;overflow:auto}@media(max-width:760px){.v46-automation-head{align-items:flex-start;flex-direction:column}.v46-shared-field{grid-template-columns:22px 1fr}.v46-shared-field input:last-child{grid-column:1/-1}}

/* AMASOMO V46 — consolidated single-operator school control centre */
.v40-body{margin:0;background:#f2f7f6;color:#16332e;font-family:Inter,Arial,sans-serif}.v40-shell{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}.v40-sidebar{position:sticky;top:0;height:100vh;box-sizing:border-box;padding:22px 16px;background:#073f37;color:#fff;display:flex;flex-direction:column;gap:18px;overflow:auto}.v40-sidebar .logo{display:block;width:104px;max-height:58px;object-fit:contain;background:#fff;border-radius:12px;padding:8px}.v40-school-identity{display:flex;flex-direction:column;gap:4px;padding:14px;border:1px solid rgba(255,255,255,.2);border-radius:14px;background:rgba(255,255,255,.07)}.v40-school-identity strong{font-size:15px}.v40-school-identity span{font-size:12px;color:#bce8de}.v40-sidebar nav{display:grid;gap:7px}.v40-sidebar nav button,.v40-advanced button,.v40-logout{width:100%;border:0;border-radius:10px;background:transparent;color:#dff7f1;text-align:left;padding:11px 12px;font:inherit;font-size:14px;font-weight:700;cursor:pointer}.v40-sidebar nav button{display:flex;align-items:center;justify-content:space-between}.v40-sidebar nav button:hover,.v40-sidebar nav button.active,.v40-advanced button:hover{background:#0d5a4d;color:#fff}.v40-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border-radius:999px;background:#d64841;color:#fff;font-size:12px}.v40-advanced{margin-top:auto;border-top:1px solid rgba(255,255,255,.2);padding-top:15px}.v40-advanced summary{cursor:pointer;font-size:13px;font-weight:800;padding:8px 10px}.v40-advanced button{font-size:12px;font-weight:600;padding:8px 10px}.v40-logout{margin-top:0;color:#fff;border:1px solid rgba(255,255,255,.3);text-align:center}.v40-main{min-width:0;padding:24px 28px 60px}.v40-topbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(300px,520px) auto;gap:20px;align-items:end;margin-bottom:20px}.v40-topbar h1{margin:3px 0 0;font-size:30px}.v40-kicker{margin:0;color:#0b826e;font-size:12px;font-weight:900;letter-spacing:.11em}.v40-global-search{position:relative}.v40-global-search label,.v40-filter-row label{display:grid;gap:6px;font-size:12px;font-weight:800;color:#466d65}.v40-global-search input,.v40-filter-row input,.v40-filter-row select{width:100%;height:44px;box-sizing:border-box;border:1px solid #b9d4ce;border-radius:11px;background:#fff;padding:0 13px;font:inherit;color:#16332e}.v40-search-results{position:absolute;z-index:20;top:70px;left:0;right:0;max-height:430px;overflow:auto;border:1px solid #a8ccc4;border-radius:14px;background:#fff;box-shadow:0 18px 45px rgba(7,63,55,.18);padding:7px}.v40-search-results button{width:100%;display:grid;grid-template-columns:82px 1fr;gap:2px 10px;text-align:left;border:0;background:#fff;border-radius:9px;padding:10px;cursor:pointer}.v40-search-results button:hover{background:#edf8f5}.v40-search-results span{grid-row:1/3;font-size:11px;color:#0b826e;font-weight:900;text-transform:uppercase}.v40-search-results small{color:#66817b}.v40-section{display:none}.v40-section.active{display:block}.v40-overview-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.7fr);gap:16px}.v40-action-centre,.v40-health-card,.v40-panel,.v40-teacher-card,.v40-plan-card{border:1px solid #c6ddd8;border-radius:18px;background:#fff;box-shadow:0 7px 22px rgba(8,69,58,.05)}.v40-action-centre,.v40-health-card,.v40-panel{padding:20px}.v40-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.v40-section-head h2,.v40-panel h3{margin:0}.v40-issue-total{display:grid;place-items:center;min-width:42px;height:42px;border-radius:12px;background:#fff0ef;color:#a52e28;font-size:22px;font-weight:900}.v40-list{display:grid;gap:9px;margin-top:15px}.v40-issue,.v40-glance{border:0;width:100%;display:flex;align-items:center;gap:11px;border-radius:12px;background:#f8fbfa;padding:11px;text-align:left;cursor:pointer}.v40-issue:hover,.v40-glance:hover{background:#edf7f4}.v40-issue small,.v40-glance small{display:block;margin-top:3px;color:#658079}.v40-issue i{margin-left:auto;color:#0b826e;font-style:normal;font-weight:800}.v40-warning{display:grid;place-items:center;flex:0 0 28px;height:28px;border-radius:50%;background:#fff0ef;color:#a52e28;font-weight:900}.v40-all-good{padding:18px;border-radius:12px;background:#e8f8f3;display:grid;gap:4px;color:#12644f}.v40-score{display:flex;align-items:end;gap:8px;margin:22px 0 12px}.v40-score strong{font-size:50px;line-height:1}.v40-score span{padding-bottom:6px;color:#66817b}.v40-progress{height:10px;border-radius:99px;background:#dbeae7;overflow:hidden}.v40-progress i{display:block;height:100%;width:0;background:#10a88a;border-radius:99px;transition:width .3s ease}.v40-stats{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:12px;margin:16px 0}.v40-stats button,.v40-stats>div{border:1px solid #c6ddd8;border-radius:14px;background:#fff;padding:15px;text-align:left;color:inherit}.v40-stats button{cursor:pointer}.v40-stats button:hover{border-color:#10a88a;transform:translateY(-1px)}.v40-stats strong{display:block;font-size:25px}.v40-stats span{font-size:12px;color:#66817b}.v40-two-column{display:grid;grid-template-columns:1fr 1fr;gap:16px}.v40-row{display:grid;grid-template-columns:58px 1fr auto;gap:12px;align-items:center;border:1px solid #d9e8e5;border-radius:12px;padding:10px}.v40-row h3,.v40-row p{margin:0 0 3px}.v40-row small{color:#66817b}.v40-date-block{display:grid;text-align:center;padding:7px;border-radius:9px;background:#edf8f5}.v40-date-block span{font-size:11px}.v40-text-button{border:0;background:transparent;color:#08745f;font:inherit;font-size:13px;font-weight:850;cursor:pointer;padding:5px}.v40-avatar{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:11px;background:#dff4ef;color:#07604f;font-weight:900}.v40-avatar.large{flex-basis:50px;height:50px;font-size:17px}.v40-glance i,.v40-status{margin-left:auto;border-radius:999px;padding:5px 9px;font-size:11px;font-style:normal;font-weight:900;background:#edf1f0;color:#5b6e6a;white-space:nowrap}.v40-glance i.ready,.v40-status.ready{background:#dff6ed;color:#087052}.v40-glance i.attention,.v40-status.attention{background:#fff0ef;color:#a52e28}.v40-page-head{align-items:center;margin:5px 0 18px}.v40-page-head p:not(.v40-kicker){margin:7px 0 0;color:#66817b}.v40-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.v40-filter-row{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:0 0 14px}.v40-filter-row label{min-width:180px;flex:1}.v40-entity-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:15px}.v40-teacher-card{padding:17px}.v40-teacher-head{display:flex;align-items:center;gap:11px}.v40-teacher-head h3,.v40-teacher-head p{margin:0 0 3px}.v40-teacher-head p{font-size:12px;color:#66817b}.v40-readiness-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:15px 0}.v40-readiness-grid div{padding:9px;border-radius:10px;background:#f3f8f7}.v40-readiness-grid span,.v40-readiness-grid b{display:block}.v40-readiness-grid span{font-size:10px;color:#66817b;text-transform:uppercase;font-weight:850}.v40-readiness-grid b{margin-top:4px;font-size:14px}.v40-card-issues,.v40-card-ready{display:flex;gap:6px;flex-wrap:wrap;border-radius:10px;padding:10px;font-size:12px}.v40-card-issues{background:#fff5f2;color:#94362f}.v40-card-issues span{padding-right:8px}.v40-card-ready{background:#e8f8f3;color:#12644f}.v40-card-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.v40-card-actions button{border:1px solid #b8d7d0;border-radius:9px;background:#fff;color:#075c4e;padding:8px 10px;font-weight:800;cursor:pointer}.v40-programmes{margin-top:16px}.v40-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:13px;margin-top:14px}.v40-plan-card{padding:16px}.v40-plan-card h3{margin:8px 0 13px}.v40-plan-card dl,.v40-details{display:grid;gap:8px}.v40-plan-card dl div,.v40-details div{display:flex;justify-content:space-between;gap:12px;padding-bottom:7px;border-bottom:1px solid #e1ece9}.v40-plan-card dt,.v40-details dt{color:#66817b}.v40-plan-card dd,.v40-details dd{margin:0;text-align:right;font-weight:750}.v40-student-layout{grid-template-columns:minmax(0,1.6fr) minmax(280px,.6fr)}.v40-table-wrap{overflow:auto;margin-top:12px}.v40-table-wrap table{width:100%;border-collapse:collapse}.v40-table-wrap th,.v40-table-wrap td{padding:11px 9px;border-bottom:1px solid #e1ece9;text-align:left;font-size:13px}.v40-table-wrap th{color:#66817b;font-size:11px;text-transform:uppercase}.v40-table-wrap td small{display:block;color:#66817b;margin-top:3px}.v40-cohort-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:11px;border:1px solid #d9e8e5;border-radius:11px}.v40-cohort-row div{display:grid;gap:3px}.v40-cohort-row span,.v40-cohort-row small{font-size:12px;color:#66817b}.v40-empty{padding:20px;border:1px dashed #b8d3cd;border-radius:12px;color:#66817b;text-align:center}.v40-tool-dialog{width:calc(100vw - 36px);height:calc(100vh - 36px);max-width:none;max-height:none;padding:0;border:0;border-radius:18px;overflow:hidden;background:#fff}.v40-tool-dialog::backdrop{background:rgba(4,30,26,.65)}.v40-dialog-head{height:72px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid #d9e8e5;background:#f4faf8}.v40-dialog-head h2{margin:2px 0 0}.v40-tool-dialog iframe{display:block;width:100%;height:calc(100% - 72px);border:0;background:#f2f7f6}.v40-embedded-tool>.app>.side,.v40-embedded-tool>.admin-shell>aside{display:none!important}.v40-embedded-tool>.app{grid-template-columns:1fr!important}.v40-embedded-tool .main{padding-top:18px!important}.v40-embedded-tool .mobile-menu-button{display:none!important}
@media(max-width:1050px){.v40-shell{grid-template-columns:210px minmax(0,1fr)}.v40-main{padding:20px}.v40-topbar{grid-template-columns:1fr auto}.v40-global-search{grid-column:1/-1;grid-row:2}.v40-overview-grid,.v40-two-column,.v40-student-layout{grid-template-columns:1fr}.v40-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.v40-shell{display:block}.v40-sidebar{position:relative;width:100%;height:auto;overflow:visible;padding:12px}.v40-sidebar .logo{width:76px}.v40-school-identity{position:absolute;left:108px;right:12px;top:12px}.v40-sidebar nav{display:flex;overflow:auto;padding-top:4px}.v40-sidebar nav button{flex:0 0 auto;width:auto}.v40-advanced,.v40-logout{display:none}.v40-main{padding:15px}.v40-topbar{display:flex;flex-wrap:wrap;align-items:end}.v40-topbar>div:first-child{flex:1}.v40-global-search{order:3;flex-basis:100%}.v40-stats{grid-template-columns:repeat(2,1fr)}.v40-entity-grid{grid-template-columns:1fr}.v40-readiness-grid{grid-template-columns:repeat(2,1fr)}.v40-page-head{align-items:flex-start;flex-direction:column}.v40-actions{justify-content:flex-start}.v40-tool-dialog{width:100vw;height:100vh;border-radius:0}.v40-row{grid-template-columns:52px 1fr}.v40-row>button{grid-column:2;justify-self:start}}

/* V41 native editors: normal operations no longer load legacy pages. */
.v40-sidebar .v40-logout{margin-top:auto}.v40-native-dialog{width:min(940px,calc(100vw - 30px));max-height:calc(100vh - 30px);box-sizing:border-box;padding:0;border:0;border-radius:18px;background:#f4faf8;overflow:hidden}.v40-native-dialog::backdrop{background:rgba(4,30,26,.65)}.v40-native-dialog .v40-dialog-head{position:sticky;top:0;z-index:3}.v40-editor-body{max-height:calc(100vh - 145px);overflow:auto;padding:20px}.v40-editor-form{display:grid;gap:16px}.v40-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.v40-form-grid .full{grid-column:1/-1}.v40-editor-form label{display:grid;gap:6px;font-size:13px;font-weight:800;color:#466d65}.v40-editor-form input,.v40-editor-form select,.v40-editor-form textarea{width:100%;box-sizing:border-box;border:1px solid #b9d4ce;border-radius:10px;background:#fff;padding:11px 12px;font:inherit;color:#16332e}.v40-editor-form input,.v40-editor-form select{min-height:44px}.v40-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.v40-check-grid label{display:flex;align-items:center;gap:8px;border:1px solid #d4e5e1;border-radius:10px;background:#fff;padding:10px}.v40-check-grid input{width:18px;min-height:18px}.v40-form-actions{display:flex;justify-content:flex-end;gap:9px;position:sticky;bottom:-20px;background:#f4faf8;padding:13px 0 20px}.v40-editor-note{padding:12px;border-radius:10px;background:#e8f8f3;color:#155f50}.v40-danger-zone{border-top:1px solid #e6cac8;padding-top:14px}.v40-editor-table{width:100%;border-collapse:collapse}.v40-editor-table th,.v40-editor-table td{padding:10px;border-bottom:1px solid #d9e8e5;text-align:left}.v40-dialog-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.v40-dialog-tabs button{border:1px solid #b9d4ce;border-radius:9px;background:#fff;padding:9px 12px;color:#075c4e;font-weight:800;cursor:pointer}.v40-dialog-tabs button.active{background:#075c4e;color:#fff}.v40-native-dialog>.message{margin:10px 20px 0}

/* V77 integrated learning materials */
.learning-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(135deg,#fff 35%,#dff5ef)}
.learning-hero h2{margin:4px 0 6px}.learning-progress-ring{width:104px;height:104px;border:10px solid #bde8de;border-top-color:#0baa8b;border-radius:50%;display:grid;place-content:center;text-align:center;flex:0 0 auto}.learning-progress-ring strong{font-size:24px}.learning-progress-ring span{font-size:11px;color:#66817b}
.learning-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) 210px 190px;gap:10px}.learning-toolbar input,.learning-toolbar select{height:44px;border:1px solid #b9d4ce;border-radius:11px;background:#fff;padding:0 12px;font:inherit;color:#16332e}
.learning-book-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0}.learning-book-card{border:1px solid #c6ddd8;border-radius:15px;background:#fff;padding:16px;cursor:pointer}.learning-book-card:hover{border-color:#10a88a;transform:translateY(-1px)}.learning-book-card span,.learning-book-card strong,.learning-book-card small{display:block}.learning-book-card strong{font-size:24px;margin:6px 0}.learning-book-card small{color:#66817b;margin-top:6px}
.learning-mini-progress{display:block;width:100%;height:7px;border:0;border-radius:99px;background:#dfebe8;overflow:hidden}.learning-mini-progress::-webkit-progress-bar{background:#dfebe8}.learning-mini-progress::-webkit-progress-value{background:#10a88a}.learning-mini-progress::-moz-progress-bar{background:#10a88a}
.learning-chapter-grid{display:grid;gap:10px}.learning-chapter-card{display:grid;grid-template-columns:68px minmax(0,1fr) auto;gap:14px;align-items:center;border:1px solid #d3e5e1;border-radius:14px;background:#fff;padding:14px;cursor:pointer}.learning-chapter-card:hover{border-color:#10a88a;background:#f8fcfb}.learning-chapter-card h3,.learning-chapter-card p{margin:5px 0}.learning-chapter-card p{color:#66817b;font-size:13px}.learning-chapter-order{display:grid;place-items:center;min-height:54px;border-radius:11px;background:#e2f5f0;color:#086451;font-weight:900}.learning-status{display:inline-block;border-radius:999px;padding:4px 8px;background:#edf1f0;color:#5b6e6a;font-size:10px;font-weight:900;text-transform:uppercase}.learning-status.completed{background:#dff6ed;color:#087052}.learning-status.in_progress{background:#fff4cf;color:#806000}.learning-status.awaiting_review{background:#ece7ff;color:#5c43a5}
.learning-reader-head{position:sticky;top:0;z-index:4;display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;border:1px solid #c6ddd8;border-radius:15px;background:#f3faf8;padding:12px 14px;margin-bottom:14px}.learning-reader-head h2,.learning-reader-head p{margin:2px 0}.learning-reader-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px;align-items:start}.learning-notes{position:sticky;top:92px}.learning-notes textarea,.learning-exercise textarea{width:100%;box-sizing:border-box;border:1px solid #b9d4ce;border-radius:10px;padding:11px;font:inherit;resize:vertical}.learning-notes .btn{width:100%;margin-top:12px}
.learning-document{line-height:1.7}.learning-markdown h1{font-size:30px}.learning-markdown h2{margin-top:28px}.learning-markdown blockquote{margin:15px 0;border-left:4px solid #10a88a;background:#edf8f5;padding:12px 16px}.learning-markdown code{background:#edf1f0;padding:2px 5px;border-radius:4px}.learning-exercises-head{border-top:2px solid #d9e8e5;margin-top:35px;padding-top:20px}.learning-exercise{display:grid;grid-template-columns:42px 1fr;gap:12px;border:1px solid #d5e5e1;border-radius:14px;padding:15px;margin-top:12px;background:#fbfdfc}.learning-exercise-number{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#0b826e;color:#fff;font-weight:900}.learning-exercise h3{margin:0}.learning-options{display:grid;gap:7px;margin:12px 0}.learning-options label{border:1px solid #d5e5e1;border-radius:9px;padding:9px;background:#fff}.learning-answer-result{margin-top:9px;border-radius:9px;padding:0}.learning-answer-result.correct,.learning-answer-result.saved{padding:9px;background:#dff6ed;color:#087052}.learning-answer-result.incorrect{padding:9px;background:#fff0ef;color:#a52e28}.learning-answer-result.needs_review{padding:9px;background:#ece7ff;color:#5c43a5}.learning-markdown-source{max-height:340px;overflow:auto;white-space:pre-wrap;border-radius:10px;background:#f4f8f7;padding:12px;font:13px/1.5 ui-monospace,Consolas,monospace}
.v77-admin-head,.v77-import-grid{display:grid;gap:12px}.v77-admin-head{grid-template-columns:1fr auto;align-items:center;margin-bottom:14px}.v77-import-grid{grid-template-columns:repeat(4,minmax(130px,1fr));margin:12px 0}.v77-import-grid input,.v77-import-grid select,.v77-import-grid textarea{width:100%;box-sizing:border-box;border:1px solid #b9d4ce;border-radius:9px;padding:10px;font:inherit}.v77-import-grid label{display:grid;gap:5px;font-size:12px;font-weight:800}.v77-import-grid .wide{grid-column:1/-1}.v77-material-table{width:100%;border-collapse:collapse}.v77-material-table th,.v77-material-table td{padding:10px;border-bottom:1px solid #d9e8e5;text-align:left;font-size:13px}.v77-material-table th{font-size:11px;text-transform:uppercase;color:#66817b}.v77-spaced-panel{margin-top:16px}.v77-publish-toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:14px 0;padding:11px;border:1px solid #bdd7d1;border-radius:11px;background:#edf8f5}.v77-publish-toolbar label{display:flex;align-items:center;gap:7px;font-weight:800}.v77-publish-toolbar strong{margin-right:auto}.v77-chapter-link{border:0;background:transparent;padding:0;color:#075c4e;text-align:left;font:inherit;cursor:pointer}.v77-chapter-link:hover{text-decoration:underline}.v77-row-actions{display:flex;gap:5px;flex-wrap:wrap;min-width:255px}.v77-material-row:hover{background:#f0faf7}
@media(max-width:900px){.learning-reader-layout{grid-template-columns:1fr}.learning-notes{position:static}.learning-toolbar,.v77-import-grid{grid-template-columns:1fr 1fr}.learning-reader-head{grid-template-columns:1fr}.learning-book-tabs{grid-template-columns:1fr}.learning-chapter-card{grid-template-columns:52px 1fr}.learning-chapter-card>.btn{grid-column:2;justify-self:start}}
@media(max-width:560px){.learning-toolbar,.v77-import-grid{grid-template-columns:1fr}.learning-hero{align-items:flex-start}.learning-progress-ring{width:78px;height:78px;border-width:7px}.v77-import-grid .wide{grid-column:auto}}
@media(max-width:760px){.v40-native-dialog{width:100vw;max-height:100vh;height:100vh;border-radius:0}.v40-form-grid{grid-template-columns:1fr}.v40-form-grid .full{grid-column:auto}.v40-check-grid{grid-template-columns:1fr}}

/* AMASOMO V79 — phone-first reader, dated rich notes and teacher directions */
.learning-reader{--notes-width:38%;height:calc(100vh - 48px);min-height:620px;overflow:hidden}.learning-reader-head{margin-bottom:8px}.learning-reader-layout{display:grid;grid-template-columns:minmax(0,1fr) 9px minmax(320px,var(--notes-width));gap:0;height:calc(100% - 92px);min-height:0;align-items:stretch}.learning-document{min-width:0;height:100%;box-sizing:border-box;overflow-y:auto;border-radius:15px 0 0 15px}.learning-reader-divider{position:relative;background:#d9e8e5;cursor:col-resize;touch-action:none}.learning-reader-divider:after{content:"";position:absolute;left:3px;top:45%;width:3px;height:44px;border-radius:9px;background:#0baa8b}.learning-notes{position:relative;top:auto;height:100%;box-sizing:border-box;overflow:auto;border-radius:0 15px 15px 0}.learning-notes-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.learning-notes-head h3{margin:3px 0 12px}.learning-close-notes{display:none;border:0;background:transparent;font-size:30px;color:#315f56}.learning-note-top{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.learning-note-top label{grid-column:1/-1;font-size:12px;font-weight:800}.learning-note-top select,.learning-note-title{width:100%;box-sizing:border-box;border:1px solid #b9d4ce;border-radius:9px;background:#fff;padding:10px;font:inherit}.learning-note-title{margin-top:9px}.learning-rich-toolbar{display:flex;gap:5px;overflow:auto;margin-top:9px;padding:6px;border:1px solid #c9ded9;border-bottom:0;border-radius:10px 10px 0 0;background:#edf8f5}.learning-rich-toolbar button,.learning-selection-tools button{border:1px solid #b7d5cf;border-radius:7px;background:#fff;color:#075c4e;padding:7px 9px;font:inherit;font-size:12px;font-weight:800;white-space:nowrap;cursor:pointer}.learning-note-editor{min-height:260px;padding:12px;border:1px solid #b9d4ce;border-radius:0 0 10px 10px;background:#fff;line-height:1.55;outline:none}.learning-note-editor:empty:before{content:attr(data-placeholder);color:#81938f}.learning-save-status{margin:8px 0;color:#087052;font-size:12px;font-weight:800}.learning-note-actions{display:flex;flex-wrap:wrap;gap:7px}.learning-note-actions .btn{width:auto;margin:0}.learning-selection-tools{position:sticky;top:79px;z-index:8;display:flex;align-items:center;gap:6px;overflow:auto;margin:0 0 8px;padding:8px;border-radius:11px;background:#073f37;color:#fff;box-shadow:0 6px 18px rgba(7,63,55,.2)}.learning-selection-tools[hidden]{display:none}.learning-selection-tools strong{white-space:nowrap;font-size:12px}.learning-notes-fab,.learning-notes-backdrop{display:none}.learning-notifications{display:grid;gap:8px;margin-bottom:14px}.learning-notifications h2{margin:0}.learning-notifications button{display:grid;gap:4px;width:100%;border:1px solid #8ccfc1;border-left:5px solid #0baa8b;border-radius:13px;background:#fff;padding:13px;text-align:left;color:#16332e;cursor:pointer}.learning-notifications button:hover{background:#effaf7}.learning-notifications span,.learning-notifications small{color:#55746e}.teacher-target{scroll-margin:160px;background:#ffe47a;padding:2px 3px;border-radius:4px;box-shadow:0 0 0 3px rgba(255,197,0,.22)}.teacher-direction-box{display:grid;gap:9px;margin-top:10px;padding:12px;border:1px solid #9bcfc4;border-radius:11px;background:#edf8f5}.teacher-direction-box select,.teacher-direction-box textarea{width:100%;box-sizing:border-box;border:1px solid #b9d4ce;border-radius:9px;background:#fff;padding:9px;font:inherit}.teacher-selectable-preview{max-height:330px;overflow:auto;white-space:pre-wrap;user-select:text;border:1px solid #c9ded9;border-radius:9px;background:#fff;padding:12px;font:14px/1.55 ui-monospace,Consolas,monospace}.teacher-direction-status{font-size:12px;font-weight:800;color:#087052}
@media(max-width:900px){.learning-reader{height:auto;min-height:0;overflow:visible;padding-bottom:75px}.learning-reader-layout{display:block;height:auto}.learning-document{height:auto;min-height:calc(100vh - 190px);overflow:visible;border-radius:15px;padding:17px}.learning-reader-divider{display:none}.learning-notes{position:fixed;z-index:1002;left:0;right:0;bottom:0;top:auto;height:min(78vh,720px);overflow:auto;border-radius:22px 22px 0 0;padding:18px;transform:translateY(105%);transition:transform .25s ease;box-shadow:0 -18px 45px rgba(4,30,26,.25)}.learning-notes.open{transform:translateY(0)}.learning-close-notes{display:block}.learning-notes-backdrop{position:fixed;z-index:1001;inset:0;background:rgba(4,30,26,.55)}.learning-notes-open .learning-notes-backdrop{display:block}.learning-notes-open{overflow:hidden}.learning-notes-fab{display:block;position:fixed;z-index:900;right:18px;bottom:18px;border:0;border-radius:999px;background:#0baa8b;color:#fff;padding:14px 20px;font:inherit;font-weight:900;box-shadow:0 7px 22px rgba(7,63,55,.28)}.learning-reader-head{position:static;grid-template-columns:1fr}.learning-reader-head .booking-actions{overflow:auto;flex-wrap:nowrap}.learning-reader-head .booking-actions .btn{white-space:nowrap}.learning-selection-tools{top:8px}.learning-note-editor{min-height:220px}.learning-note-actions{display:grid;grid-template-columns:1fr 1fr}.learning-note-actions .btn{width:100%}}
@media(max-width:520px){.learning-hero{display:grid;grid-template-columns:1fr auto}.learning-progress-ring{width:70px;height:70px}.learning-chapter-card{padding:11px}.learning-note-top{grid-template-columns:1fr}.learning-note-top label{grid-column:auto}.learning-note-actions{grid-template-columns:1fr 1fr}.learning-selection-tools{margin-left:-4px;margin-right:-4px}.learning-markdown h1{font-size:25px}.learning-markdown h2{font-size:21px}}

/* AMASOMO V80 — motivational learning path */
.learning-challenge{display:grid;grid-template-columns:minmax(0,1fr) minmax(310px,39%);gap:20px;align-items:stretch;margin-bottom:15px;padding:22px;border:1px solid #c6ddd8;border-radius:18px;background:#f1f4f3;color:#073f37;box-shadow:0 8px 24px rgba(7,63,55,.08)}.learning-challenge-copy{padding:7px}.learning-challenge h2{margin:4px 0 8px;font-size:25px;color:#073f37!important}.learning-challenge p{margin:0;color:#315f56!important}.learning-challenge .v40-kicker{color:#0b826e!important}.learning-streak{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}.learning-streak span{padding:7px 10px;border:1px solid #b8d7d0;border-radius:999px;background:#fff;color:#174c43;font-size:12px;font-weight:800}.learning-next-action{margin-top:15px}.learning-challenge-actions{display:grid;gap:8px}.learning-book-action{display:grid;gap:3px;width:100%;border:1px solid #b8d7d0;border-radius:12px;background:#fff;padding:12px;text-align:left;color:#073f37;cursor:pointer}.learning-book-action:hover{border-color:#0baa8b;transform:translateY(-1px)}.learning-book-action b{font-size:14px}.learning-book-action span{color:#58736e;font-size:12px}.learning-book-action.course{border-left:5px solid #3384c6}.learning-book-action.workbook{border-left:5px solid #e19b2d}.learning-book-action.communication{border-left:5px solid #a35dc1}.learning-celebration{position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;margin-bottom:15px;padding:19px;border:2px solid #eabf31;border-radius:18px;background:linear-gradient(120deg,#fff9d8,#e8fff7);overflow:hidden;animation:learningCelebrate .55s ease-out}.learning-celebration h2,.learning-celebration p{margin:3px 0}.learning-celebration-burst{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:#f5c943;color:#fff;font-size:34px;animation:learningStar 1.1s ease-in-out infinite alternate}.learning-chapter-card.locked{cursor:not-allowed;opacity:.68;background:#f1f5f4}.learning-chapter-card.locked:hover{border-color:#d3e5e1;transform:none}.learning-mark{display:inline-block;margin-top:7px;padding:4px 8px;border-radius:999px;background:#e4f5f0;color:#07614f;font-weight:900}.learning-audio{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:9px;padding:11px 15px;border:1px solid #a8d5cb;border-radius:13px;background:#edf8f5}.learning-audio div{display:grid;gap:3px}.learning-audio small{color:#57726d}.learning-audio audio{width:min(520px,60%)}@keyframes learningCelebrate{from{opacity:0;transform:translateY(-12px) scale(.98)}to{opacity:1;transform:none}}@keyframes learningStar{to{transform:rotate(12deg) scale(1.12)}}
@media(max-width:760px){.learning-challenge{grid-template-columns:1fr;padding:18px}.learning-challenge-actions{grid-template-columns:1fr 1fr;min-width:0}.learning-challenge-actions .btn:first-child{grid-column:1/-1}.learning-celebration{grid-template-columns:auto 1fr}.learning-celebration .btn{grid-column:1/-1;width:100%}.learning-audio{display:grid}.learning-audio audio{width:100%}}
.v80-path-form{margin-bottom:14px}.v80-mark-row{display:grid;grid-template-columns:minmax(110px,160px) minmax(110px,160px) auto auto;gap:9px;align-items:end}.v80-mark-row label{display:grid;gap:5px;font-size:12px;font-weight:800}.v80-mark-row input{width:100%;box-sizing:border-box;border:1px solid #b9d4ce;border-radius:9px;padding:9px;font:inherit}@media(max-width:720px){.v80-mark-row{grid-template-columns:1fr 1fr}.v80-mark-row .btn{width:100%}}

/* AMASOMO V81 — scalable materials folders and visible upload state */
.v81-upload-status{display:grid;gap:7px;margin:12px 0;padding:14px;border:1px solid #8bcabd;border-radius:12px;background:#edf8f5}.v81-upload-status progress{width:100%;height:14px;accent-color:#0baa8b}.v81-upload-status span{font-size:12px;color:#456d65;overflow-wrap:anywhere}.v81-material-folders{display:grid;gap:10px}.v81-folder{border:1px solid #c8ded9;border-radius:12px;background:#fff;overflow:hidden}.v81-folder>summary{display:flex;align-items:center;gap:8px;padding:13px 15px;cursor:pointer;font-weight:900;color:#073f37}.v81-folder>summary:hover{background:#edf8f5}.v81-folder>summary span{margin-left:auto;border-radius:999px;background:#e2f3ef;padding:4px 8px;color:#315f56;font-size:11px}.v81-folder.language,.v81-folder.level,.v81-folder.book{margin:0 12px 10px}.v81-folder.language{border-left:4px solid #0baa8b}.v81-folder.level{border-left:4px solid #3384c6}.v81-folder.book{border-left:4px solid #e19b2d}.v81-folder-contents{display:grid;gap:7px;padding:0 10px 10px}.v81-material-line{display:grid;grid-template-columns:25px minmax(230px,1fr) auto auto auto minmax(250px,auto);gap:9px;align-items:center;padding:9px;border:1px solid #d9e8e5;border-radius:10px;background:#fafdfc}.v81-material-line>span{font-size:12px;color:#58736e}.v81-material-line .v77-row-actions{min-width:0;justify-content:flex-end}@media(max-width:980px){.v81-material-line{grid-template-columns:25px 1fr auto}.v81-material-line .v77-row-actions{grid-column:2/-1;justify-content:flex-start}.v81-material-line>span{display:none}}@media(max-width:600px){.v81-folder.language,.v81-folder.level,.v81-folder.book{margin-left:6px;margin-right:6px}.v81-folder>summary{padding:11px 9px}.v81-material-line{grid-template-columns:22px 1fr}.v81-material-line .v77-row-actions{grid-column:1/-1}}

/* V41.2 navigation clarity */
[hidden]{display:none!important}.portal-nav-heading{display:block;margin:17px 10px 5px;color:rgba(255,255,255,.62);font-size:11px;font-weight:900;letter-spacing:.12em}.admin-primary-tabs{margin-bottom:8px}.admin-subgroup{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}.admin-subgroup button{border:1px solid #a8d9cd;border-radius:10px;background:#fff;padding:9px 14px;color:#075c4e;font-weight:800;cursor:pointer}.admin-subgroup button.active{background:#075c4e;color:#fff}

/* V42 — one exact workspace shell across every role */
.v43-bulk-students{display:grid;grid-template-columns:auto minmax(180px,1fr) minmax(180px,1fr) auto;gap:8px;align-items:center;margin:14px 0;padding:12px;border:1px solid #c6ddd8;border-radius:13px;background:#edf8f5}.v43-bulk-students strong{white-space:nowrap}.v43-student-check{width:18px!important;height:18px!important;padding:0!important}@media(max-width:900px){.v43-bulk-students{grid-template-columns:1fr 1fr}.v43-bulk-students strong{grid-column:1/-1}}
.app{display:grid!important;grid-template-columns:250px minmax(0,1fr)!important;min-height:100vh!important;background:#f2f7f6!important}.app>.side{position:sticky!important;top:0!important;width:auto!important;height:100vh!important;box-sizing:border-box!important;padding:22px 16px!important;background:#073f37!important;display:flex!important;flex-direction:column!important;gap:18px!important;overflow:auto!important}.app>.side .logo{display:block!important;width:104px!important;max-height:58px!important;object-fit:contain!important;background:#fff!important;border-radius:12px!important;padding:8px!important}.app>.side .nav{display:grid!important;gap:7px!important}.app>.side .nav a,.app>.side .nav button{display:block!important;width:100%!important;box-sizing:border-box!important;border:0!important;border-radius:10px!important;background:transparent!important;color:#dff7f1!important;text-align:left!important;padding:11px 12px!important;font-size:14px!important;font-weight:700!important;text-decoration:none!important}.app>.side .nav a:hover,.app>.side .nav a.active,.app>.side .nav button:hover{background:#0d5a4d!important;color:#fff!important}.app>.main{min-width:0!important;max-width:none!important;margin:0!important;padding:24px 28px 60px!important}.workspace-view:not([hidden])+.workspace-view:not([hidden]),.booking-view:not([hidden])+.booking-view:not([hidden]){margin-top:16px!important}.booking-view:not([hidden]){display:block!important}.page .auth .card{border:1px solid #c6ddd8!important;border-radius:18px!important;box-shadow:0 7px 22px rgba(8,69,58,.08)!important}.page .auth .btn{min-height:46px!important}.password-toggle{white-space:nowrap!important}@media(max-width:820px){.app{grid-template-columns:1fr!important}.app>.side{position:relative!important;height:auto!important}.app>.main{padding:18px 14px 40px!important}}
/* AMASOMO V50 — Google Calendar rename workflow */
.v50-rename-task{align-items:flex-start;flex-wrap:wrap}.v50-rename-task>span:nth-child(2){flex:1;min-width:220px}.v50-rename-task .v40-card-actions{justify-content:flex-end}.v50-rename-task .v40-card-actions label{display:flex;align-items:center;gap:.45rem;padding:.65rem .8rem;border:1px solid var(--line,#bfd8d3);border-radius:12px;background:#fff;font-weight:700}

/* AMASOMO V51 — searchable Google-Sheets-style connected directory */
.v51-directory-search{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:6px 14px;align-items:end;margin:0 0 12px;padding:14px;border:1px solid #bdd7d1;border-radius:13px;background:#edf8f5}.v51-directory-search label{grid-column:1/-1;font-size:13px;font-weight:800;color:#315f56}.v51-directory-search input{width:100%;height:44px;box-sizing:border-box;border:1px solid #a9cdc5;border-radius:10px;background:#fff;padding:0 13px;font:inherit}.v51-directory-search strong{padding:12px;white-space:nowrap}.v51-sheet-wrap{width:100%;max-height:68vh;overflow:auto;border:1px solid #bdd7d1;border-radius:13px;background:#fff}.v51-sheet{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:13px}.v51-sheet th{position:sticky;top:0;z-index:2;background:#dff2ee;color:#244f47;text-align:left}.v51-sheet th,.v51-sheet td{min-width:125px;max-width:190px;padding:9px;border-right:1px solid #d7e7e3;border-bottom:1px solid #d7e7e3;vertical-align:top;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v51-sheet th:first-child,.v51-sheet td:first-child{position:sticky;left:0;z-index:1;min-width:180px;max-width:220px;background:#fff}.v51-sheet th:first-child{z-index:3;background:#dff2ee}.v51-sheet th:last-child,.v51-sheet td:last-child{min-width:310px;max-width:360px}.v51-sheet tr:hover td,.v51-sheet tr:hover td:first-child{background:#f0faf7}.v51-clip{display:block;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#086d5c}.v51-meet-code{font-weight:850;letter-spacing:.02em;color:#086d5c}.v51-sheet-actions{margin:0;display:flex;flex-wrap:wrap;gap:4px}.v51-sheet-actions .btn{padding:6px 8px;font-size:12px}@media(max-width:760px){.v51-directory-search{grid-template-columns:1fr}.v51-directory-search strong{padding:0}}

/* AMASOMO V52 — compact inline-edit Calendar directory */
.v52-toolbar,.v52-bulk{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:0 0 10px;padding:11px 13px;border:1px solid #bdd7d1;border-radius:12px;background:#edf8f5}.v52-toolbar label{display:grid;gap:5px;min-width:280px;flex:1;font-size:13px;font-weight:800}.v52-toolbar input{height:42px;border:1px solid #a9cdc5;border-radius:9px;padding:0 12px;font:inherit}.v52-toolbar strong{padding:11px}.v52-bulk label{display:flex;align-items:center;gap:7px;font-weight:750}.v52-bulk input[type=checkbox],.v52-select input{width:18px;height:18px}.v52-bulk select{height:38px;border:1px solid #a9cdc5;border-radius:9px;background:#fff;padding:0 10px}.v52-compact th,.v52-compact td{padding:6px 7px;height:34px}.v52-compact th:first-child,.v52-compact td:first-child{min-width:34px;max-width:34px}.v52-compact th button{border:0;background:transparent;color:inherit;font:inherit;font-weight:850;padding:0;cursor:pointer}.v52-compact input:not([type=checkbox]),.v52-compact select{width:100%;height:32px;box-sizing:border-box;border:1px solid transparent;border-radius:6px;background:transparent;padding:0 6px;font:inherit;color:inherit}.v52-compact input:hover,.v52-compact input:focus,.v52-compact select:hover,.v52-compact select:focus{border-color:#82bdb1;background:#fff;outline:none}.v52-compact .v52-actions{min-width:285px;max-width:330px}.v52-compact [data-tip]{position:relative;cursor:help}.v52-compact [data-tip]:hover::after{content:attr(data-tip);position:fixed;z-index:1000;max-width:420px;margin:24px 0 0 -20px;padding:9px 11px;border-radius:9px;background:#073f37;color:#fff;white-space:normal;overflow-wrap:anywhere;box-shadow:0 8px 24px rgba(0,0,0,.24);font:13px/1.35 Inter,Arial,sans-serif;pointer-events:none}
