:root {
  --ink: #1f2933;
  --muted: #667085;
  --line: #d8dee6;
  --soft: #f4f7fb;
  --brand: #2457c5;
  --brand-2: #13a38b;
  --danger: #c73748;
}

body {
  background: var(--soft);
  color: var(--ink);
  font-size: 15px;
}

.header-user {
  align-items: center;
  border-right: 1px solid #e2e7ed;
  display: flex;
  gap: 10px;
  margin-right: 10px;
  padding-right: 10px;
}

.header-user-name { color: #344054; font-size: 13px; font-weight: 700; max-width: 170px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.notification-button { align-items: center; background: #f5f7fa; border: 1px solid #dce2e9; border-radius: 50%; color: #344054; display: flex; height: 36px; justify-content: center; padding: 0; position: relative; width: 36px; }
.notification-button:hover, .notification-button.has-notifications { background: #edf3ff; border-color: #b9cbed; color: var(--brand); }
.notification-count { align-items: center; background: var(--danger); border: 2px solid #fff; border-radius: 999px; color: #fff; display: flex; font-size: 9px; font-weight: 800; height: 18px; justify-content: center; min-width: 18px; padding: 0 3px; position: absolute; right: -6px; top: -6px; }
.notification-menu { border: 1px solid #d7dee7; border-radius: 8px; box-shadow: 0 20px 50px rgba(31, 41, 51, .16); max-height: min(520px, 75vh); overflow: auto; padding: 0; width: min(390px, calc(100vw - 24px)); }
.notification-menu-head { align-items: center; background: #fff; border-bottom: 1px solid #e8ecf1; display: flex; justify-content: space-between; padding: 14px 16px; position: sticky; top: 0; z-index: 2; }
.notification-menu-head button { background: none; border: 0; color: var(--brand); font-size: 12px; padding: 3px; }
.notification-item { border-bottom: 1px solid #edf0f3; color: var(--ink); display: flex; flex-direction: column; gap: 3px; padding: 13px 16px; text-decoration: none; }
.notification-item:hover { background: #f7f9fc; color: var(--ink); }
.notification-item.is-unread { background: #f0f5ff; border-left: 3px solid var(--brand); padding-left: 13px; }
.notification-item strong { font-size: 13px; }
.notification-item span { color: #465467; font-size: 13px; }
.notification-item small { color: var(--muted); font-size: 11px; }
.notification-empty { color: var(--muted); padding: 28px 16px; text-align: center; }

.page-shell {
  max-width: 1440px;
  margin: 0 auto;
}

.auth-page {
  min-height: 100vh;
  display: grid;
  place-items: center;
  background:
    linear-gradient(120deg, rgba(36, 87, 197, .88), rgba(19, 163, 139, .72)),
    url("https://images.unsplash.com/photo-1557804506-669a67965ba0?auto=format&fit=crop&w=1800&q=80") center/cover;
}

.auth-card {
  width: min(100%, 430px);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 28px;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .16);
}

.metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.metric,
.panel,
.data-card,
.room-session {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.metric {
  padding: 18px;
}

.metric .value {
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 750;
}

.panel {
  padding: 18px;
}

.sales-form {
  background: transparent;
}

.sales-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 16px;
}

.sales-section {
  background: #fff;
  border: 1px solid #cfd8e3;
  border-radius: 8px;
  padding: 18px;
  box-shadow: 0 16px 44px rgba(31, 41, 51, .06);
}

.payment-section {
  grid-column: 1 / -1;
}

.section-eyebrow {
  color: var(--brand);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .04em;
  margin-bottom: 10px;
  text-transform: uppercase;
}

.selection-summary {
  align-items: center;
  background: #f7fbff;
  border: 1px solid #e4e9f0;
  border-radius: 8px;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  padding: 10px 12px;
}

.selection-summary span {
  color: var(--muted);
  font-size: 13px;
}

.lookup-results {
  display: grid;
  gap: 8px;
  margin-top: 10px;
  max-height: 280px;
  overflow: auto;
}

.lookup-item {
  background: #fff;
  border: 1px solid #d9e2ec;
  border-radius: 8px;
  color: var(--ink);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 11px 12px;
  text-align: left;
  width: 100%;
}

.lookup-item:hover,
.lookup-item:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(36, 87, 197, .12);
  outline: 0;
}

.lookup-item span,
.lookup-empty,
.selected-card span {
  color: var(--muted);
  font-size: 13px;
}

.lookup-empty {
  background: #f8fafc;
  border: 1px dashed #cfd8e3;
  border-radius: 8px;
  padding: 12px;
}

.selected-card {
  background: #eef7f4;
  border: 1px solid #b9ded5;
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 12px;
}

.muted-card {
  background: #f8fafc;
  border-color: #d9e2ec;
  color: var(--muted);
}

.table-wrap {
  overflow-x: auto;
}

.table {
  min-width: 760px;
}

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

.form-grid-wide {
  grid-column: 1 / -1;
}

.client-search-panel {
  align-items: center;
  background: #fff;
  border: 1px solid #cfd8e3;
  border-left: 4px solid var(--brand);
  border-radius: 8px;
  box-shadow: 0 14px 38px rgba(31, 41, 51, .06);
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(220px, .7fr) minmax(360px, 1.3fr);
  padding: 22px;
}

.client-search-panel h2 {
  font-size: 22px;
  margin: 0 0 4px;
}

.client-search-panel p {
  color: var(--muted);
  margin: 0;
}

.client-search-form {
  display: flex;
  gap: 8px;
}

.client-metrics {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.client-metric {
  background: #fff;
  border: 1px solid var(--line);
  border-top: 3px solid #596579;
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  min-height: 132px;
  padding: 18px;
}

.client-metric.accent-green { border-top-color: #13856f; }
.client-metric.accent-amber { border-top-color: #c58518; }
.client-metric.accent-blue { border-top-color: var(--brand); }
.client-metric span { color: var(--muted); font-size: 13px; font-weight: 700; }
.client-metric strong { font-size: 30px; line-height: 1.15; margin: 8px 0; }
.client-metric small { color: var(--muted); margin-top: auto; }

.panel-heading {
  align-items: center;
  border-bottom: 1px solid #e7ebf0;
  display: flex;
  justify-content: space-between;
  margin: -2px 0 4px;
  padding: 0 0 14px;
}

.responsive-client-list { display: grid; }

.client-list-row {
  align-items: center;
  border-bottom: 1px solid #edf0f3;
  color: var(--ink);
  display: grid;
  gap: 14px;
  grid-template-columns: 42px minmax(180px, 1.4fr) minmax(140px, .8fr) auto 18px;
  padding: 13px 4px;
  text-decoration: none;
}

.client-list-row:last-child { border-bottom: 0; }
.client-list-row:hover { background: #f7f9fc; color: var(--ink); }
.client-avatar {
  align-items: center;
  background: #e9effc;
  border-radius: 50%;
  color: var(--brand);
  display: flex;
  font-size: 16px;
  font-weight: 800;
  height: 38px;
  justify-content: center;
  width: 38px;
}
.client-list-name, .client-list-contact { display: flex; flex-direction: column; min-width: 0; }
.client-list-name strong, .client-list-contact strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.client-list-name span, .client-list-contact span { color: var(--muted); font-size: 12px; }
.row-arrow { color: #8792a2; font-size: 25px; }
.status-pill { border-radius: 999px; display: inline-block; font-size: 12px; font-weight: 700; padding: 6px 9px; white-space: nowrap; }
.status-pill.is-success { background: #e6f5f0; color: #0d6c59; }
.status-pill.is-pending { background: #fff3d9; color: #8b5b0a; }

.phone-row {
  border-bottom: 1px solid #edf0f3;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  padding: 12px 0;
}
.phone-row:last-child { border-bottom: 0; }
.phone-actions { display: flex; gap: 6px; }
.timeline-row { border-bottom: 1px solid #edf0f3; padding: 11px 0; }
.timeline-row:last-child { border-bottom: 0; }

.empty-state {
  align-items: center;
  color: var(--muted);
  display: flex;
  flex-direction: column;
  padding: 40px 18px;
  text-align: center;
}
.empty-state strong { color: var(--ink); margin-bottom: 4px; }
.empty-state.compact { align-items: flex-start; background: #f8fafc; border: 1px dashed #cbd5e1; border-radius: 8px; padding: 18px; text-align: left; }

.profile-editor { margin: 0 auto; max-width: 980px; }
.profile-editor-head { align-items: center; border-bottom: 1px solid #e7ebf0; display: flex; justify-content: space-between; padding-bottom: 16px; }
.profile-editor-head div { display: flex; flex-direction: column; }
.profile-editor-head span { color: var(--muted); font-size: 12px; }
.profile-editor-head strong { font-size: 20px; }
.form-detail-row { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; display: grid; gap: 12px; grid-template-columns: minmax(220px, .55fr) minmax(280px, 1.45fr); margin: 14px 0; padding: 14px; }
.choice-control { display: flex; gap: 18px; }
.choice-control label { align-items: center; cursor: pointer; display: inline-flex; gap: 6px; }
.conditional-detail { display: none; }
.conditional-detail.is-visible { display: block; }
.book-selector { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; display: grid; gap: 8px; padding: 16px; }
.book-option { align-items: center; background: #fff; border: 1px solid #e2e8f0; border-radius: 6px; cursor: pointer; display: flex; gap: 9px; padding: 11px 12px; }
.book-option:has(input:checked) { background: #eef7f4; border-color: #9fcfc3; }
.users-layout { align-items: start; display: grid; gap: 16px; grid-template-columns: minmax(280px, 360px) minmax(0, 1fr); }
.user-list { display: grid; }
.user-row { align-items: center; border-bottom: 1px solid #edf0f3; display: grid; gap: 12px; grid-template-columns: 42px minmax(170px, 1fr) minmax(170px, .8fr) minmax(230px, 1fr); padding: 14px 2px; }
.user-row:last-child { border-bottom: 0; }
.user-identity { display: flex; flex-direction: column; min-width: 0; }
.user-identity span { color: var(--muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-actions { align-items: center; display: flex; gap: 8px; justify-content: flex-end; }
.password-reset-form { display: flex; gap: 6px; }
.password-reset-form .form-control { max-width: 125px; }

.public-form-body { background: #eef2f6; }
.public-form-shell { margin: 0 auto; max-width: 920px; padding: 34px 18px 70px; }
.public-form-header { padding: 12px 4px 24px; }
.public-form-brand { color: var(--brand); font-size: 14px; font-weight: 800; margin-bottom: 18px; text-transform: uppercase; }
.public-form-header h1 { font-size: 32px; margin-bottom: 8px; }
.public-form-header p { color: var(--muted); margin: 0; }
.public-form-card { background: #fff; border: 1px solid #d7dee7; border-radius: 8px; box-shadow: 0 22px 55px rgba(31, 41, 51, .08); padding: 28px; }
.public-form-card h2 { border-top: 1px solid #e7ebf0; font-size: 18px; margin: 28px 0 16px; padding-top: 24px; }
.form-intro { align-items: center; background: #eef4ff; border: 1px solid #d7e3fa; border-radius: 8px; display: flex; justify-content: space-between; padding: 14px 16px; }
.form-intro span { color: var(--muted); font-size: 13px; }
.form-intro strong { font-size: 17px; }
.consent-box { background: #f4f8f7; border: 1px solid #cde2dc; border-radius: 8px; margin: 24px 0 16px; padding: 16px; }
.success-mark { align-items: center; background: #dff3ed; border-radius: 50%; color: #08705a; display: flex; font-size: 30px; height: 64px; justify-content: center; margin: 0 auto 18px; width: 64px; }

.appointment-form {
  border-color: #cfd8e3;
  box-shadow: 0 16px 42px rgba(31, 41, 51, .07);
}

.appointment-builder { display: grid; gap: 16px; }
.appointment-builder-grid { align-items: start; display: grid; gap: 16px; grid-template-columns: minmax(0, 1.65fr) minmax(300px, .75fr); }
.appointment-main { display: grid; gap: 16px; }
.appointment-sidebar { position: sticky; top: 86px; }
.appointment-section { background: #fff; border: 1px solid #cfd8e3; border-radius: 8px; box-shadow: 0 14px 38px rgba(31, 41, 51, .055); padding: 20px; }
.appointment-section-head { border-bottom: 1px solid #e8ecf1; margin-bottom: 18px; padding-bottom: 14px; }
.appointment-section-head > div { align-items: flex-start; display: flex; gap: 11px; }
.appointment-section-head h2 { font-size: 18px; margin: 0 0 3px; }
.appointment-section-head p { color: var(--muted); font-size: 13px; margin: 0; }
.section-step { align-items: center; background: var(--brand); border-radius: 50%; color: #fff; display: flex; flex: 0 0 auto; font-size: 12px; font-weight: 800; height: 27px; justify-content: center; width: 27px; }
.client-lookup-wrap { position: relative; }
.client-lookup-wrap > i { color: #7a8798; left: 15px; position: absolute; top: 50%; transform: translateY(-50%); z-index: 1; }
.client-lookup-wrap .form-control { padding-left: 42px; }
.appointment-client-results { max-height: 320px; }
.appointment-lookup-item { padding: 13px 14px; }
.selected-client-card { align-items: center; background: #edf7f4; border: 1px solid #b8ddd3; border-radius: 8px; display: flex; justify-content: space-between; margin-top: 12px; padding: 14px; }
.selected-client-card > div { display: flex; flex-direction: column; min-width: 0; }
.selected-client-card span, .selected-client-card small { color: var(--muted); font-size: 12px; }
.selected-client-card strong { font-size: 17px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.payment-box { border-top: 3px solid var(--brand); }
.money-input { position: relative; }
.money-input .form-control { padding-right: 44px; }
.money-input > span { color: var(--muted); font-size: 12px; font-weight: 700; position: absolute; right: 13px; top: 50%; transform: translateY(-50%); }
.debt-summary { align-items: center; background: #f2f5f9; border: 1px solid #dce3eb; border-radius: 8px; display: flex; justify-content: space-between; padding: 14px; }
.debt-summary span { color: var(--muted); font-size: 13px; }
.debt-summary strong { color: var(--danger); font-size: 19px; }
.debt-summary strong span { color: inherit; font-size: inherit; }

.accounting-metrics { display: grid; gap: 14px; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.accounting-metric { align-items: center; background: #fff; border: 1px solid #dce2e9; border-radius: 8px; display: flex; gap: 14px; min-height: 116px; padding: 18px; }
.accounting-metric-icon { align-items: center; background: #edf3ff; border-radius: 8px; color: #2457c5; display: flex; flex: 0 0 auto; font-size: 20px; height: 44px; justify-content: center; width: 44px; }
.accounting-metric > div { display: flex; flex-direction: column; min-width: 0; }
.accounting-metric span:not(.accounting-metric-icon) { color: #667085; font-size: 12px; font-weight: 700; }
.accounting-metric strong { color: #1d2939; font-size: 22px; line-height: 1.25; margin: 3px 0; overflow-wrap: anywhere; }
.accounting-metric small { color: #98a2b3; font-size: 11px; }
.accounting-metric.is-month .accounting-metric-icon { background: #e8f7f2; color: #087965; }
.accounting-metric.is-pending .accounting-metric-icon { background: #fff3dc; color: #a15c00; }
.accounting-metric.is-record .accounting-metric-icon { background: #f1edff; color: #6941c6; }

.accounting-panel { overflow: hidden; padding: 0; }
.accounting-panel-head { align-items: center; border-bottom: 1px solid #e7ebf0; display: flex; justify-content: space-between; padding: 22px 24px 18px; }
.accounting-kicker { color: #2457c5; display: block; font-size: 11px; font-weight: 800; margin-bottom: 5px; }
.accounting-panel-head h2 { font-size: 21px; font-weight: 800; margin: 0 0 4px; }
.accounting-panel-head p { color: #667085; font-size: 13px; margin: 0; }
.accounting-readonly { align-items: center; background: #f2f4f7; border-radius: 6px; color: #475467; display: inline-flex; font-size: 12px; font-weight: 700; gap: 6px; padding: 8px 10px; }
.accounting-filters { background: #fafbfc; border-bottom: 1px solid #e7ebf0; display: grid; gap: 12px; padding: 16px 24px; }
.accounting-filter-group { align-items: center; display: grid; gap: 12px; grid-template-columns: 110px minmax(0, 1fr); }
.accounting-filter-group > span { color: #475467; font-size: 12px; font-weight: 800; }
.accounting-filter-scroll { display: flex; flex-wrap: wrap; gap: 7px; }
.accounting-filter { background: #fff; border: 1px solid #d7dee7; border-radius: 6px; color: #475467; font-size: 12px; font-weight: 700; padding: 7px 10px; text-decoration: none; white-space: nowrap; }
.accounting-filter:hover { border-color: #94a3b8; color: #1d2939; }
.accounting-filter.is-active { background: #2457c5; border-color: #2457c5; color: #fff; }
.accounting-table-wrap { margin: 0; overflow-x: auto; }
.accounting-table { font-size: 13px; margin: 0; min-width: 1120px; }
.accounting-table thead th { background: #f8fafc; border-bottom: 1px solid #dfe5ec; color: #667085; font-size: 11px; font-weight: 800; padding: 11px 12px; text-transform: uppercase; white-space: nowrap; }
.accounting-table tbody td { border-color: #edf0f3; padding: 13px 12px; vertical-align: middle; }
.accounting-table tbody tr:hover { background: #fafcff; }
.accounting-type { align-items: center; background: #eaf1ff; border-radius: 5px; color: #2457c5; display: inline-flex; font-size: 11px; font-weight: 800; gap: 5px; padding: 5px 7px; text-transform: uppercase; white-space: nowrap; }
.accounting-type.is-sale { background: #e7f7f2; color: #087965; }
.accounting-client { color: #1d2939; display: block; font-weight: 800; max-width: 220px; text-decoration: none; }
.accounting-client:hover { color: #2457c5; }
.accounting-service { color: #667085; display: block; font-size: 11px; margin-top: 3px; max-width: 240px; }
.accounting-paid { color: #087965; display: block; font-weight: 800; }
.accounting-debt { color: #b42318; display: block; font-size: 11px; font-weight: 700; margin-top: 2px; }
.accounting-receipt { align-items: center; color: #2457c5; display: inline-flex; font-size: 12px; font-weight: 700; gap: 4px; text-decoration: none; }
.accounting-date { display: block; font-size: 12px; font-weight: 700; white-space: nowrap; }
.accounting-date small { color: #98a2b3; display: block; font-size: 11px; margin-top: 2px; }
.accounting-actions { align-items: center; display: flex; flex-wrap: nowrap; gap: 5px; }
.accounting-actions form { margin: 0; }
.accounting-actions .btn { align-items: center; display: inline-flex; gap: 4px; justify-content: center; min-height: 32px; }
.accounting-empty { align-items: center; color: #667085; display: flex; flex-direction: column; padding: 70px 20px; text-align: center; }
.accounting-empty i { color: #98a2b3; font-size: 32px; margin-bottom: 9px; }
.accounting-empty strong { color: #344054; font-size: 16px; }
.accounting-empty span { font-size: 13px; margin-top: 3px; }
.accounting-mobile-list { display: none; }

.session-number-form { align-items: center; display: flex; gap: 5px; min-width: 92px; }
.session-number-form .form-control { font-weight: 800; text-align: center; width: 58px; }
.session-number-form .btn { align-items: center; display: inline-flex; height: 31px; justify-content: center; padding: 4px 8px; }
.session-note-links { display: flex; flex-wrap: wrap; gap: 5px; min-width: 110px; }
.session-note-links .btn { align-items: center; display: inline-flex; gap: 4px; white-space: nowrap; }

@media (max-width: 1100px) {
  .accounting-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
  .accounting-metrics { gap: 9px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .accounting-metric { align-items: flex-start; gap: 9px; min-height: 110px; padding: 12px; }
  .accounting-metric-icon { font-size: 17px; height: 34px; width: 34px; }
  .accounting-metric strong { font-size: 16px; }
  .accounting-metric small { display: none; }
  .accounting-panel-head { align-items: flex-start; gap: 12px; padding: 18px 16px; }
  .accounting-panel-head h2 { font-size: 18px; }
  .accounting-panel-head p { max-width: 240px; }
  .accounting-readonly { font-size: 0; padding: 8px; }
  .accounting-readonly i { font-size: 15px; }
  .accounting-filters { padding: 14px 0; }
  .accounting-filter-group { display: block; }
  .accounting-filter-group > span { display: block; margin: 0 16px 7px; }
  .accounting-filter-scroll { flex-wrap: nowrap; overflow-x: auto; padding: 0 16px 5px; scrollbar-width: thin; }
  .accounting-filter-scroll::after { content: ''; flex: 0 0 2px; }
  .accounting-table-wrap { display: none; }
  .accounting-mobile-list { background: #f5f7fa; display: grid; gap: 10px; padding: 12px; }
  .accounting-mobile-card { background: #fff; border: 1px solid #dce2e9; border-radius: 8px; padding: 14px; }
  .accounting-mobile-head { align-items: center; display: flex; justify-content: space-between; margin-bottom: 12px; }
  .accounting-mobile-card .accounting-client { font-size: 16px; max-width: none; }
  .accounting-mobile-card .accounting-service { font-size: 12px; max-width: none; }
  .accounting-mobile-money { background: #f8fafc; border: 1px solid #e8ecf1; border-radius: 6px; display: grid; gap: 7px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 13px 0; padding: 10px; }
  .accounting-mobile-money div { min-width: 0; }
  .accounting-mobile-money span { color: #667085; display: block; font-size: 10px; margin-bottom: 3px; }
  .accounting-mobile-money strong { display: block; font-size: 12px; overflow-wrap: anywhere; }
  .accounting-mobile-meta { color: #667085; display: flex; flex-wrap: wrap; font-size: 11px; gap: 8px 15px; margin-bottom: 13px; }
  .accounting-mobile-meta span { align-items: center; display: inline-flex; gap: 5px; }
  .accounting-mobile-actions { display: grid; gap: 7px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .accounting-mobile-actions form { margin: 0; }
  .accounting-mobile-actions .btn { align-items: center; display: flex; font-size: 12px; gap: 5px; justify-content: center; min-height: 39px; width: 100%; }
}
.appointment-submit-bar { align-items: center; background: #fff; border: 1px solid #cfd8e3; border-radius: 8px; bottom: 12px; box-shadow: 0 16px 40px rgba(31, 41, 51, .12); display: flex; justify-content: space-between; padding: 15px 18px; position: sticky; z-index: 20; }
.appointment-submit-bar > div { display: flex; flex-direction: column; }
.appointment-submit-bar span { color: var(--muted); font-size: 12px; }

.client-summary {
  background: linear-gradient(135deg, #ffffff, #f7fbff);
  border: 1px solid #cfd8e3;
  border-radius: 8px;
  padding: 16px;
}

.summary-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 12px;
  margin-bottom: 12px;
  border-bottom: 1px solid #e4e9f0;
}

.summary-kicker {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

.summary-title {
  font-size: 20px;
  font-weight: 800;
}

.summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.summary-grid div {
  background: #fff;
  border: 1px solid #e4e9f0;
  border-radius: 8px;
  padding: 10px;
}

.summary-grid span {
  color: var(--muted);
  display: block;
  font-size: 12px;
  margin-bottom: 4px;
}

.summary-grid strong {
  font-size: 14px;
}

.room-body {
  background: #eef6f3;
}

.room-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}

.room-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
  gap: 14px;
}

.room-section-title { align-items: center; display: flex; grid-column: 1 / -1; justify-content: space-between; margin-top: 4px; padding: 4px 2px; }
.room-section-title div { min-width: 0; }
.room-section-title span { color: #2457c5; display: block; font-size: 10px; font-weight: 800; margin-bottom: 2px; }
.room-section-title h2 { color: #1d2939; font-size: 18px; font-weight: 800; margin: 0; }
.room-section-title > strong { align-items: center; background: #eaf1ff; border-radius: 999px; color: #2457c5; display: flex; font-size: 12px; height: 30px; justify-content: center; min-width: 30px; padding: 0 8px; }
.room-section-title.is-completed { border-top: 1px solid #dce2e9; margin-top: 12px; padding-top: 20px; }
.room-section-title.is-completed span { color: #667085; }
.room-section-title.is-completed > strong { background: #eceff2; color: #475467; }
.completed-session-card { align-self: start; background: #fff; border: 1px solid #d8dee6; border-radius: 8px; grid-column: 1 / -1; overflow: hidden; }
.completed-session-card > summary { align-items: center; cursor: pointer; display: grid; gap: 12px; grid-template-columns: minmax(0, 1fr) auto auto; list-style: none; min-height: 70px; padding: 14px 16px; }
.completed-session-card > summary::-webkit-details-marker { display: none; }
.completed-session-card > summary:hover { background: #f8fafc; }
.completed-session-card > summary > div { display: flex; flex-direction: column; min-width: 0; }
.completed-session-card > summary > div strong { color: #1d2939; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.completed-session-card > summary > div span { color: #667085; font-size: 12px; margin-top: 3px; }
.completed-summary-status { align-items: center; color: #475467; display: inline-flex; font-size: 12px; font-weight: 800; gap: 5px; white-space: nowrap; }
.completed-summary-status i { color: #6c757d; }
.completed-summary-chevron { color: #667085; transition: transform .2s ease; }
.completed-session-card[open] .completed-summary-chevron { transform: rotate(180deg); }
.completed-session-card[open] > summary { border-bottom: 1px solid #e6eaf0; }
.completed-session-card .room-session { border: 0; border-radius: 0; box-shadow: none; min-height: 0; }

.room-session {
  padding: 18px;
  min-height: 270px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.room-session .time {
  font-size: 28px;
  font-weight: 800;
  color: var(--brand);
}

.room-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: auto;
}

.room-actions .btn-wide {
  grid-column: 1 / -1;
}

.room-period-controls { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; }
.room-session-date { color: #667085; font-size: 12px; font-weight: 700; }
.room-session-number { background: #eef3ff; border: 1px solid #cedcff; border-radius: 6px; color: #2457c5; font-size: 12px; font-weight: 800; padding: 6px 9px; width: fit-content; }
.room-note-upload { background: #f7f9fc; border: 1px solid #dce3eb; border-radius: 7px; padding: 13px; }
.room-note-upload strong { color: #344054; display: block; margin-bottom: 10px; }
.room-note-upload .form-label { color: #475467; font-size: 12px; font-weight: 700; margin-bottom: 5px; }
.session-file-status { color: #667085; font-size: 11px; margin-top: 5px; overflow-wrap: anywhere; }
.session-file-status.is-selected { color: #087965; font-weight: 800; }
.session-photo-field + .session-photo-field { border-top: 1px solid #e1e6ed; margin-top: 12px; padding-top: 7px; }
.session-photo-choices { display: grid; gap: 7px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.session-photo-choices .btn { align-items: center; display: flex; font-size: 12px; gap: 6px; justify-content: center; margin: 0; min-height: 40px; }
.session-photo-choices input[type="file"] { height: 1px; opacity: 0; overflow: hidden; position: absolute; width: 1px; }
.internal-session-notes { border-left: 4px solid #6941c6; }
.internal-note-item { border-top: 1px solid #e8ecf1; padding: 14px 0; }
.internal-note-item:first-of-type { border-top: 0; padding-top: 0; }
.internal-note-meta { align-items: center; display: flex; flex-wrap: wrap; gap: 6px 12px; }
.internal-note-meta strong { color: #6941c6; }
.internal-note-meta span { color: #667085; font-size: 12px; }
.internal-note-text { color: #344054; margin-top: 8px; white-space: normal; }
.internal-note-created { color: #98a2b3; font-size: 11px; margin-top: 7px; }
.internal-affirmation { background: #f7f5ff; border: 1px solid #e3ddff; border-radius: 6px; color: #344054; margin-top: 10px; padding: 10px 12px; }
.internal-affirmation > span { color: #6941c6; display: block; font-size: 11px; font-weight: 800; margin-bottom: 4px; text-transform: uppercase; }
.internal-affirmation > div { font-size: 13px; line-height: 1.55; }
.session-time-summary { background: #f7f9fc; border: 1px solid #e1e6ed; border-radius: 7px; display: grid; gap: 1px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 16px; overflow: hidden; }
.session-time-summary > div { background: #fff; padding: 12px; }
.session-time-summary span { color: #667085; display: block; font-size: 11px; margin-bottom: 4px; }
.session-time-summary strong { color: #1d2939; display: block; font-size: 13px; overflow-wrap: anywhere; }
.appointment-history-row { display: grid; gap: 10px; grid-template-columns: 12px minmax(0, 1fr); padding: 0 0 18px; position: relative; }
.appointment-history-row:not(:last-child)::before { background: #dce3eb; content: ''; height: 100%; left: 5px; position: absolute; top: 10px; width: 2px; }
.appointment-history-marker { background: #2457c5; border: 3px solid #dce8ff; border-radius: 50%; height: 12px; margin-top: 4px; position: relative; width: 12px; z-index: 1; }
.appointment-history-meta { color: #667085; font-size: 11px; margin-bottom: 2px; }
.appointment-history-row strong { color: #344054; font-size: 13px; }
.appointment-history-row p { color: #475467; font-size: 13px; margin: 4px 0 0; }

@media (max-width: 600px) {
  .session-time-summary { grid-template-columns: 1fr; }
}

.program-workspace{display:grid;gap:16px;grid-template-columns:minmax(280px,.72fr) minmax(0,1.8fr)}
.program-sidebar{align-self:start;max-height:calc(100vh - 130px);overflow:hidden;padding:0;position:sticky;top:90px}
.program-sidebar-head,.program-section-head{align-items:center;border-bottom:1px solid #e6eaf0;display:flex;justify-content:space-between;padding:16px}
.program-sidebar-head span,.program-section-head span,.program-hero>div>span{color:#2457c5;font-size:10px;font-weight:800}
.program-sidebar-head strong,.program-section-head>strong{background:#edf3ff;border-radius:999px;color:#2457c5;font-size:11px;padding:6px 9px}
.program-list{max-height:calc(100vh - 200px);overflow:auto}
.program-list-item{align-items:center;border-bottom:1px solid #edf0f3;color:inherit;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto;padding:13px 15px;text-decoration:none}
.program-list-item:hover{background:#f8faff}.program-list-item.is-active{background:#eef4ff;border-left:4px solid #2457c5;padding-left:11px}
.program-list-item>div{display:flex;flex-direction:column;min-width:0}.program-list-item>div:last-child{align-items:flex-end}
.program-list-item strong{font-size:12px;overflow:hidden;text-overflow:ellipsis}.program-list-item span{color:#667085;font-size:10px;margin-top:3px}
.program-main{display:flex;flex-direction:column;gap:14px;min-width:0}.program-hero{align-items:center;background:#fff;border:1px solid #d8dee6;border-radius:8px;display:flex;justify-content:space-between;padding:20px}
.program-hero h2{font-size:22px;font-weight:800;margin:4px 0}.program-hero p{color:#667085;font-size:12px;margin:0}
.program-metrics{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.program-metrics>div{background:#fff;border:1px solid #d8dee6;border-radius:8px;display:flex;flex-direction:column;padding:14px}
.program-metrics span{color:#667085;font-size:11px}.program-metrics strong{font-size:19px;margin-top:3px;overflow-wrap:anywhere}.program-metrics small{color:#98a2b3;font-size:10px}
.program-filters{align-items:end;display:grid;gap:10px;grid-template-columns:1fr 1fr 1fr auto auto}.program-filters label{color:#667085;display:block;font-size:11px;font-weight:700;margin-bottom:5px}
.program-participants{overflow:hidden;padding:0}.program-section-head h2{font-size:17px;margin:3px 0 0}.program-desktop-table{margin:0}.program-desktop-table table{font-size:12px;margin:0;min-width:1050px}.program-desktop-table th{background:#f8fafc;color:#667085;font-size:10px;text-transform:uppercase}.program-desktop-table td small{color:#98a2b3;display:block;font-size:10px}.program-mobile-list{display:none}
@media(max-width:1000px){.program-workspace{grid-template-columns:1fr}.program-sidebar{max-height:none;position:static}.program-list{display:flex;max-height:none;overflow-x:auto}.program-list-item{flex:0 0 260px}.program-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.program-hero{align-items:flex-start;flex-direction:column;gap:12px}.program-hero .btn{width:100%}.program-filters{grid-template-columns:1fr 1fr}.program-filters>div:first-of-type{grid-column:1/-1}.program-filters .btn{width:100%}.program-desktop-table{display:none}.program-mobile-list{background:#f5f7fa;display:grid;gap:9px;padding:10px}.program-mobile-list article{background:#fff;border:1px solid #dce2e9;border-radius:7px;padding:12px}.program-mobile-list article>div:first-child{align-items:center;display:flex;justify-content:space-between}.program-mobile-list article>a,.program-mobile-list article div>a{color:#1d2939;font-weight:800;text-decoration:none}.program-mobile-list article>span,.program-mobile-list article>small{color:#667085;display:block;font-size:11px;margin-top:5px}.program-money{background:#f8fafc;display:grid;gap:6px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:10px;padding:8px}.program-money span{color:#667085;font-size:9px}.program-money strong{display:block;font-size:11px;margin-top:2px;overflow-wrap:anywhere}}

.smart-schedule-panel { background: #f7f9fc; border: 1px solid #ced8e6; border-radius: 8px; padding: 16px; }
.smart-schedule-head { align-items: flex-start; display: flex; justify-content: space-between; }
.smart-schedule-head strong { color: #1d2939; display: block; font-size: 15px; }
.smart-schedule-head span { color: #667085; display: block; font-size: 12px; margin-top: 2px; }
.smart-schedule-head button { background: none; border: 0; color: #667085; padding: 4px; }
.smart-schedule-controls { align-items: end; display: grid; gap: 10px; grid-template-columns: 1fr 1fr auto; margin-top: 14px; }
.smart-slot-results { display: grid; gap: 7px; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 12px; }
.smart-slot { align-items: center; background: #fff; border: 1px solid #cfd8e5; border-radius: 6px; color: #344054; display: flex; font-size: 12px; font-weight: 700; gap: 6px; justify-content: center; min-height: 42px; padding: 7px; }
.smart-slot:hover,.smart-slot.is-selected { background: #2457c5; border-color: #2457c5; color: #fff; }
.session-ops-summary { display: grid; gap: 12px; grid-template-columns: repeat(5,minmax(0,1fr)); margin-bottom: 16px; }
.session-ops-summary > div { background: #fff; border: 1px solid #d8dee6; border-radius: 8px; display: flex; flex-direction: column; padding: 15px; }
.session-ops-summary span { color: #667085; font-size: 11px; font-weight: 700; }
.session-ops-summary strong { color: #1d2939; font-size: 23px; margin: 3px 0; }
.session-ops-summary small { color: #98a2b3; font-size: 11px; }
.session-ops-grid { display: grid; gap: 16px; grid-template-columns: minmax(280px,.75fr) minmax(0,1.8fr); }
.session-ops-head { align-items: center; display: flex; justify-content: space-between; margin-bottom: 14px; }
.session-ops-head span { color: #2457c5; font-size: 10px; font-weight: 800; }
.session-ops-head h2 { font-size: 18px; margin: 2px 0 0; }
.session-ops-head > i { color: #13a38b; font-size: 22px; }
.session-live-feed a { border-top: 1px solid #edf0f3; color: inherit; display: grid; gap: 10px; grid-template-columns: 55px minmax(0,1fr); padding: 11px 0; text-decoration: none; }
.session-live-feed time { color: #2457c5; font-size: 12px; font-weight: 800; }
.session-live-feed a div { display: flex; flex-direction: column; min-width: 0; }
.session-live-feed a strong { font-size: 12px; }
.session-live-feed a span { color: #667085; font-size: 11px; overflow-wrap: anywhere; }
.session-log-filters { align-items: center; display: flex; flex-wrap: wrap; gap: 6px; margin: -2px 0 12px; }
.session-log-filters > a { border: 1px solid #d6dde7; border-radius: 6px; color: #475467; display: block; font-size: 11px; font-weight: 700; padding: 8px 10px; text-decoration: none; }
.session-log-filters > a.is-active { background: #2457c5; border-color: #2457c5; color: #fff; }
.session-log-filters form { display: flex; flex: 1; gap: 6px; min-width: 210px; }
.session-log-filters .form-control { font-size: 12px; min-width: 130px; }
.session-log-filters .btn { align-items: center; display: inline-flex; gap: 5px; white-space: nowrap; }
.session-log-empty { min-height: 150px; }
.session-filter-scroll { display: flex; gap: 6px; margin-bottom: 12px; overflow-x: auto; padding-bottom: 4px; }
.session-filter-scroll a { border: 1px solid #d6dde7; border-radius: 6px; color: #475467; font-size: 11px; font-weight: 700; padding: 7px 9px; text-decoration: none; white-space: nowrap; }
.session-filter-scroll a.is-active { background: #2457c5; border-color: #2457c5; color: #fff; }
.session-record.is-sale{border-left:3px solid #7c3aed}.session-record-type{background:#f1eafe;border-radius:4px;color:#6d28d9;display:inline-flex;font-size:9px;font-weight:800;gap:3px;margin-left:7px;padding:3px 5px;vertical-align:middle}.session-record-main>strong{align-items:center;display:flex;flex-wrap:wrap}
.session-record { align-items: center; border-top: 1px solid #edf0f3; color: inherit; display: grid; gap: 12px; grid-template-columns: 55px minmax(0,1fr) auto auto; padding: 12px 4px; text-decoration: none; }
.session-record.is-late { background: #fff5f5; border-left: 3px solid #dc3545; padding-left: 9px; }
.session-record-time,.session-record-main,.session-record-finance { display: flex; flex-direction: column; }
.session-record-time span,.session-record-main span,.session-record-finance small { color: #667085; font-size: 11px; }
.session-record-main strong { color: #1d2939; font-size: 13px; }
.session-record-finance { align-items: flex-end; gap: 3px; }

@media (max-width: 900px) {
  .session-ops-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .session-ops-grid { grid-template-columns: 1fr; }
  .smart-slot-results { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 600px) {
  .smart-schedule-controls { grid-template-columns: 1fr; }
  .smart-schedule-controls .btn { width: 100%; }
  .session-record { grid-template-columns: 48px minmax(0,1fr) auto; }
  .session-record-finance { align-items: flex-start; grid-column: 2; }
  .session-record > i { grid-column: 3; grid-row: 1; }
}
.room-empty-state { align-items: center; color: #667085; display: flex; flex-direction: column; gap: 6px; grid-column: 1 / -1; padding: 42px 20px; text-align: center; }
.room-empty-state i { color: #98a2b3; font-size: 30px; }
.room-empty-state strong { color: #344054; font-size: 17px; }
.room-empty-state span { font-size: 13px; max-width: 680px; }
.room-overdue-alert { align-items: center; background: #fff1f2; border: 1px solid #f4b8bf; border-left: 5px solid #dc3545; border-radius: 7px; color: #6f1d27; display: flex; gap: 12px; margin: 16px 0; padding: 13px 15px; }
.room-overdue-alert > i { color: #dc3545; font-size: 22px; }
.room-overdue-alert div { display: flex; flex-direction: column; }
.room-overdue-alert strong { font-size: 14px; }
.room-overdue-alert span { font-size: 12px; }
.room-session.is-overdue { border-color: #e7a4ad; box-shadow: inset 4px 0 0 #dc3545; }
.room-session.is-overdue .time { color: #b42318; }

.calendar-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  font-size: 13px;
  color: #475467;
}

.calendar-legend span {
  align-items: center;
  display: inline-flex;
  font-weight: 600;
}

.legend-dot {
  width: 11px;
  height: 11px;
  border-radius: 999px;
  display: inline-block;
  margin-right: 6px;
}

.calendar-panel {
  overflow: hidden;
  padding: 20px;
}

.calendar-mobile-note,
.calendar-mobile-views { display: none; }

#calendar {
  --fc-border-color: #dfe4eb;
  --fc-button-bg-color: #fff;
  --fc-button-border-color: #cfd7e2;
  --fc-button-hover-bg-color: #eef3fb;
  --fc-button-hover-border-color: #aebbd0;
  --fc-button-active-bg-color: #2457c5;
  --fc-button-active-border-color: #2457c5;
  --fc-page-bg-color: #fff;
  --fc-neutral-bg-color: #f7f9fc;
  --fc-today-bg-color: #fff8db;
}

#calendar .fc-toolbar { gap: 12px; margin-bottom: 18px; }
#calendar .fc-toolbar-title { color: #1d2939; font-size: 21px; font-weight: 800; text-transform: capitalize; }
#calendar .fc-button { border-radius: 6px; box-shadow: none; color: #344054; font-size: 13px; font-weight: 700; padding: 7px 11px; }
#calendar .fc-button-primary:not(:disabled).fc-button-active { color: #fff; }
#calendar .fc-col-header-cell { background: #f7f9fc; }
#calendar .fc-col-header-cell-cushion { color: #344054; font-size: 13px; font-weight: 800; padding: 10px 5px; text-decoration: none; text-transform: capitalize; }
#calendar .fc-timegrid-slot-label-cushion { color: #667085; font-size: 12px; font-weight: 600; }
#calendar .fc-timegrid-slot { height: 3.2em; }
#calendar .fc-daygrid-day-number { color: #344054; font-weight: 700; padding: 7px; text-decoration: none; }
#calendar .fc-day-today .fc-col-header-cell-cushion,
#calendar .fc-day-today .fc-daygrid-day-number { color: #9a6700; }
#calendar .fc-event { border-radius: 5px; box-shadow: 0 2px 5px rgba(16, 24, 40, .14); cursor: pointer; margin: 1px 2px; overflow: hidden; }
#calendar .fc-timegrid-event { min-height: 48px; }
#calendar .fc-event-main { padding: 4px 5px; }

.crm-calendar-event { display: flex; flex-direction: column; gap: 1px; line-height: 1.2; min-width: 0; }
.crm-event-time { font-size: 11px; font-weight: 700; opacity: .9; }
.crm-event-client { display: block; font-size: 12px; font-weight: 800; overflow: hidden; text-overflow: ellipsis; white-space: normal; }
.crm-event-details { display: block; font-size: 10px; opacity: .9; overflow: hidden; text-overflow: ellipsis; white-space: normal; }

#calendar .fc-list { border: 0; }
#calendar .fc-list-day-cushion { background: #eef3f8; padding: 10px 12px; }
#calendar .fc-list-day-text,
#calendar .fc-list-day-side-text { color: #344054; font-weight: 800; text-decoration: none; text-transform: capitalize; }
#calendar .fc-list-event:hover td { background: #f8faff; }
#calendar .fc-list-event-time { color: #344054; font-weight: 800; padding: 14px 8px 14px 12px; }
#calendar .fc-list-event-title { padding: 10px 12px 10px 6px; }
#calendar .fc-list-event .crm-event-time { display: none; }
#calendar .fc-list-event .crm-event-client { color: #1d2939; font-size: 14px; }
#calendar .fc-list-event .crm-event-details { color: #667085; font-size: 12px; margin-top: 3px; }

@media (max-width: 767px) {
  .calendar-panel { padding: 12px; }
  .calendar-legend { border-bottom: 1px solid #e8ecf1; gap: 7px 12px; margin-bottom: 12px !important; padding-bottom: 12px; }
  .calendar-legend span { font-size: 11px; }
  .calendar-mobile-views { background: #eef2f6; border: 1px solid #dce3eb; border-radius: 7px; display: grid; gap: 3px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 9px; padding: 3px; }
  .calendar-mobile-views button { align-items: center; background: transparent; border: 0; border-radius: 5px; color: #475467; display: flex; font-size: 12px; font-weight: 800; gap: 5px; justify-content: center; min-height: 40px; padding: 7px 5px; }
  .calendar-mobile-views button.is-active { background: #2457c5; box-shadow: 0 2px 5px rgba(36, 87, 197, .22); color: #fff; }
  .calendar-mobile-note { align-items: center; color: #667085; display: flex; font-size: 12px; gap: 6px; margin-bottom: 12px; }
  #calendar .fc-toolbar { align-items: stretch; display: grid; grid-template-columns: auto 1fr auto; margin-bottom: 14px; }
  #calendar .fc-toolbar-chunk { align-items: center; display: flex; justify-content: center; }
  #calendar .fc-toolbar-title { font-size: 16px; text-align: center; }
  #calendar .fc-button { min-height: 38px; padding: 7px 9px; }
  #calendar .fc-list-day-cushion { padding: 9px 8px; }
  #calendar .fc-list-event-time { font-size: 12px; white-space: nowrap; width: 62px; }
  #calendar .fc-list-event-graphic { padding: 14px 4px; }
  #calendar .fc-list-event-title { padding-right: 5px; }
  #calendar .fc-dayGridMonth-view .fc-col-header-cell-cushion { font-size: 10px; padding: 7px 2px; }
  #calendar .fc-dayGridMonth-view .fc-daygrid-day-number { font-size: 11px; padding: 4px; }
  #calendar .fc-dayGridMonth-view .fc-daygrid-event { margin: 1px; }
  #calendar .fc-dayGridMonth-view .fc-event-main { padding: 2px; }
  #calendar .fc-dayGridMonth-view .crm-event-time { font-size: 9px; }
  #calendar .fc-dayGridMonth-view .crm-event-client { font-size: 9px; line-height: 1.1; }
  #calendar .fc-dayGridMonth-view .crm-event-details { display: none; }
  #calendar .fc-list-event td { transition: background-color .15s ease; }
  #calendar .fc-list-event.appointment-pending td { background: #fff1f2; color: #491217; }
  #calendar .fc-list-event.appointment-approved td { background: #eef5ff; color: #17365f; }
  #calendar .fc-list-event.appointment-started td { background: #edf8f2; color: #123f2e; }
  #calendar .fc-list-event.appointment-completed td { background: #f1f3f5; color: #343a40; }
  #calendar .fc-list-event.appointment-cancelled td { background: #25282d; border-color: #3b3f46; color: #fff; }
  #calendar .fc-list-event.appointment-pending td:first-child { border-left: 4px solid #dc3545; }
  #calendar .fc-list-event.appointment-approved td:first-child { border-left: 4px solid #0d6efd; }
  #calendar .fc-list-event.appointment-started td:first-child { border-left: 4px solid #198754; }
  #calendar .fc-list-event.appointment-completed td:first-child { border-left: 4px solid #6c757d; }
  #calendar .fc-list-event.appointment-cancelled td:first-child { border-left: 4px solid #000; }
  #calendar .fc-list-event.appointment-pending:hover td { background: #ffe7e9; }
  #calendar .fc-list-event.appointment-approved:hover td { background: #e1edff; }
  #calendar .fc-list-event.appointment-started:hover td { background: #dff2e8; }
  #calendar .fc-list-event.appointment-completed:hover td { background: #e7eaed; }
  #calendar .fc-list-event.appointment-cancelled:hover td { background: #17191c; }
  #calendar .fc-list-event.appointment-cancelled .fc-list-event-time,
  #calendar .fc-list-event.appointment-cancelled .crm-event-client,
  #calendar .fc-list-event.appointment-cancelled .crm-event-details { color: #fff; }
  #calendar .fc-list-event.appointment-cancelled .crm-event-details { opacity: .78; }
}

@media (max-width: 900px) {
  .metric-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .form-grid {
    grid-template-columns: 1fr;
  }

  .sales-layout {
    grid-template-columns: 1fr;
  }

  .summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .client-search-panel { grid-template-columns: 1fr; }
  .client-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .header-user { border-right: 0; margin: 8px 0 12px; padding-right: 0; }
  .appointment-builder-grid { grid-template-columns: 1fr; }
  .appointment-sidebar { position: static; }
  .users-layout { grid-template-columns: 1fr; }
  .user-row { grid-template-columns: 38px minmax(0, 1fr); }
  .user-row > div:nth-child(3), .user-actions { grid-column: 2; }
  .user-actions { align-items: stretch; flex-direction: column; }
  .password-reset-form .form-control { max-width: none; }
  .appointment-section { padding: 16px; }
  .selected-client-card { align-items: flex-start; flex-direction: column; gap: 10px; }
  .selected-client-card .btn { width: 100%; }
  .appointment-submit-bar { align-items: stretch; bottom: 8px; flex-direction: column; gap: 12px; }
  .appointment-submit-bar .btn { width: 100%; }
}

@media (max-width: 560px) {
  main.container-fluid {
    padding-left: 12px;
    padding-right: 12px;
  }

  .metric-grid {
    grid-template-columns: 1fr;
  }

  .auth-card {
    border-radius: 0;
    min-height: 100vh;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  .room-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .room-period-controls { align-items: stretch; flex-direction: column; width: 100%; }
  .room-period-controls .btn-group { display: flex; width: 100%; }
  .room-period-controls .btn { flex: 1; min-height: 42px; }

  .room-actions {
    grid-template-columns: 1fr;
  }

  .room-actions .btn-wide {
    grid-column: auto;
  }

  .room-section-title h2 { font-size: 16px; }
  .completed-session-card > summary { gap: 8px; grid-template-columns: minmax(0, 1fr) auto; padding: 12px; }
  .completed-summary-chevron { grid-column: 2; grid-row: 1; }
  .completed-summary-status { grid-column: 1 / -1; }

  .summary-grid {
    grid-template-columns: 1fr;
  }

  .client-search-panel { padding: 18px; }
  .client-search-form { flex-wrap: wrap; }
  .client-search-form .form-control { flex-basis: 100%; }
  .client-search-form .btn { flex: 1; }
  .client-metrics { grid-template-columns: 1fr 1fr; gap: 10px; }
  .client-metric { min-height: 116px; padding: 14px; }
  .client-metric strong { font-size: 25px; }
  .client-list-row { align-items: start; grid-template-columns: 38px minmax(0, 1fr) 14px; padding: 14px 0; }
  .client-list-contact { grid-column: 2; }
  .client-list-row > div:nth-child(4) { grid-column: 2; }
  .row-arrow { grid-column: 3; grid-row: 1 / span 3; }
  .phone-row { align-items: flex-start; flex-direction: column; }
  .phone-actions { width: 100%; }
  .phone-actions .btn { flex: 1; }
  .form-detail-row { grid-template-columns: 1fr; }
  .public-form-shell { padding: 18px 10px 44px; }
  .public-form-header h1 { font-size: 26px; }
  .public-form-card { padding: 18px 14px; }
  .form-intro { align-items: flex-start; flex-direction: column; gap: 3px; }
}
.program-past{border-top:1px solid #dbe3ec;margin-top:12px;padding-top:10px}.program-past summary{align-items:center;color:#52606d;cursor:pointer;display:flex;font-size:.78rem;font-weight:800;justify-content:space-between;padding:10px 8px;text-transform:uppercase}.program-past summary span{background:#e9eef4;border-radius:999px;color:#334155;padding:2px 8px}.program-past .program-list{margin-top:6px}.program-past .program-list-item{opacity:.82}.program-list-empty{color:#718096;font-size:.88rem;padding:18px 8px;text-align:center}
.accounting-paytr{align-items:center;color:#7c3aed;display:flex;font-size:11px;font-weight:800;gap:5px;margin-top:3px;text-decoration:none}.accounting-paytr:hover{color:#5b21b6;text-decoration:underline}
.session-number-help{align-items:flex-start;background:#eef6ff;border:1px solid #cfe3fb;border-radius:6px;color:#315477;display:flex;font-size:12px;gap:8px;margin:10px 0 12px;padding:10px 12px}.session-number-help i{color:#1769c2;font-size:15px;margin-top:1px}.session-number-form{align-items:center;display:flex;gap:4px;min-width:92px}.session-number-form .form-control{max-width:58px}
.refund-form{margin:0 auto;max-width:900px}.refund-source{border-bottom:1px solid #e4e9ef;display:flex;flex-direction:column;margin-bottom:18px;padding-bottom:16px}.refund-source>span{color:#2457c5;font-size:10px;font-weight:800}.refund-source>strong{font-size:20px;margin-top:3px}.refund-source>small{color:#667085}.refund-availability{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:18px}.refund-availability>div{background:#f8fafc;border:1px solid #dfe6ee;border-radius:6px;display:flex;flex-direction:column;padding:12px}.refund-availability span{color:#667085;font-size:11px}.refund-availability strong{font-size:18px}.accounting-mobile-refund{align-items:center;background:#fff1f2;border:1px solid #fecdd3;border-radius:6px;color:#be123c;display:flex;justify-content:space-between;margin-top:10px;padding:8px 10px}.accounting-refunds td small{color:#667085;display:block;font-size:10px}@media(max-width:600px){.refund-availability{grid-template-columns:1fr}}
.accounting-metric.is-refund .accounting-metric-icon{background:#fff1f2;color:#be123c}.accounting-date-filter form{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.accounting-date-filter .form-control{max-width:180px}.accounting-range-summary{background:#f8fafc;border-bottom:1px solid #e7ebf0;display:grid;gap:1px;grid-template-columns:repeat(4,minmax(0,1fr))}.accounting-range-summary>div{background:#fff;display:flex;flex-direction:column;padding:14px 18px}.accounting-range-summary span{color:#667085;font-size:10px;font-weight:700;text-transform:uppercase}.accounting-range-summary strong{font-size:17px;margin-top:2px}@media(max-width:900px){.accounting-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.accounting-range-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.accounting-date-filter form{padding:0 16px}.accounting-date-filter .form-control{flex:1;max-width:none;min-width:125px}.accounting-range-summary>div{padding:11px 12px}.accounting-range-summary strong{font-size:14px}}
.package-choice{margin-top:18px;padding:16px;border:1px solid #d9e2ef;background:#f8fbff;border-radius:8px}.package-schedule{padding:16px;border:1px solid #cfe0f4;background:#f8fbff;border-radius:8px}.package-schedule-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.package-schedule-head span{display:block;color:#667085;font-size:.86rem}.package-schedule-rows{display:grid;gap:10px}.package-schedule-row{display:grid;grid-template-columns:minmax(90px,.7fr) minmax(150px,1fr) minmax(150px,1fr) minmax(120px,.8fr);gap:12px;align-items:end;padding:12px;background:#fff;border:1px solid #dce4ee;border-radius:7px}.package-schedule-row>strong{align-self:center;color:#17365d}.package-schedule-row label{font-size:.82rem;color:#475467}.package-schedule-row input,.package-schedule-row select{margin-top:5px}.package-row-actions{display:flex;gap:7px;grid-column:2/-1;flex-wrap:wrap}.package-suggestions{display:flex;gap:7px;grid-column:2/-1;flex-wrap:wrap}.package-suggestions .smart-slot{min-height:40px}.package-schedule>.client-summary{margin-top:14px}
.package-smart-actions{display:flex;gap:8px;align-items:center}.package-smart-actions .form-select{min-width:165px}
.client-package-alert{background:#f4f8ff;border:1px solid #bfd3f2;border-radius:8px;padding:16px}.client-package-alert-head{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:12px}.client-package-alert-head>div{align-items:center;display:flex;gap:10px}.client-package-alert-head i{background:#dceafe;border-radius:6px;color:#175cd3;display:grid;font-size:18px;height:38px;place-items:center;width:38px}.client-package-alert-head span{display:flex;flex-direction:column}.client-package-alert-head small{color:#667085}.client-package-alert-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.client-package-alert article{background:#fff;border:1px solid #d8e3f2;border-radius:7px;padding:14px}.client-package-alert article>div{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.client-package-alert article>div span{font-weight:700}.client-package-alert article>div strong{color:#175cd3;white-space:nowrap}.client-package-alert dl{display:grid;gap:1px;grid-template-columns:repeat(4,minmax(0,1fr));margin:12px 0 0}.client-package-alert dl div{background:#f8fafc;padding:8px}.client-package-alert dt{color:#667085;font-size:10px}.client-package-alert dd{font-size:17px;font-weight:700;margin:0}@media(max-width:767px){.client-package-alert-head{align-items:stretch;flex-direction:column}.client-package-alert-head .btn{width:100%}.client-package-alert-grid{grid-template-columns:1fr}.client-package-alert dl{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){.package-schedule-head{align-items:stretch;flex-direction:column}.package-smart-actions{align-items:stretch;flex-direction:column}.package-schedule-row{grid-template-columns:1fr 1fr}.package-schedule-row>strong,.package-row-actions,.package-suggestions{grid-column:1/-1}.package-schedule-head .btn{width:100%}.package-row-actions .btn{flex:1}.package-suggestions .smart-slot{width:100%}}
.mixed-payment-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:14px;padding:12px;border:1px solid #d9e2ef;border-radius:7px;background:#f8fafc}.mixed-payment-fields label{font-size:.78rem}@media(max-width:767px){.mixed-payment-fields{grid-template-columns:1fr}}
.merge-master-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.merge-master-grid label{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center;padding:16px;border:1px solid #d9e2ef;border-radius:8px;cursor:pointer}.merge-master-grid label span{grid-column:2;color:#667085;font-size:.85rem}.merge-submit{position:sticky;bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;background:#fff;border:1px solid #d9e2ef;border-radius:8px;box-shadow:0 10px 30px rgba(15,23,42,.12)}.merge-submit span{display:block;color:#667085;font-size:.86rem}@media(max-width:767px){.merge-master-grid{grid-template-columns:1fr}.merge-submit{align-items:stretch;flex-direction:column}.merge-submit .btn{width:100%}}
.automation-health{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px}.automation-health>div{display:flex;align-items:center;gap:12px}.automation-health p{margin:2px 0 0}.automation-pulse{width:12px;height:12px;border-radius:50%;background:currentColor;box-shadow:0 0 0 5px rgba(255,255,255,.45)}.automation-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.automation-metric{padding:18px;background:#fff;border:1px solid #d9e2ef;border-radius:8px}.automation-metric>span,.automation-metric>small{display:block;color:#667085}.automation-metric>strong{display:block;margin:6px 0;font-size:1.8rem;color:#17365d}.automation-metric.is-danger{border-color:#f1aeb5;background:#fff8f8}.automation-metric.is-danger>strong{color:#b42318}.automation-side{height:100%}.automation-schedule-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #edf0f4}.automation-schedule-row i{display:grid;place-items:center;width:38px;height:38px;border-radius:7px;background:#eef5ff;color:#175cd3;font-size:1.1rem}.automation-schedule-row span{display:block;color:#667085;font-size:.85rem}@media(max-width:991px){.automation-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:575px){.automation-health{align-items:flex-start;flex-direction:column}.automation-metrics{grid-template-columns:1fr 1fr}.automation-metric{padding:14px}.automation-metric>strong{font-size:1.45rem}}
.whatsapp-health{align-items:center;display:flex;gap:14px}.whatsapp-health-icon{align-items:center;background:#e9fbf2;border-radius:8px;color:#087f5b;display:flex;font-size:24px;height:48px;justify-content:center;width:48px}.whatsapp-health.is-offline .whatsapp-health-icon{background:#fff1f2;color:#b42318}.whatsapp-message-preview{color:#667085;display:block;font-size:11px;max-width:480px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whatsapp-error{color:#b42318;display:block;font-size:11px;max-width:360px}.whatsapp-filters{align-items:end;display:flex;flex-wrap:wrap;gap:10px}.whatsapp-filters>div{min-width:160px}@media(max-width:600px){.whatsapp-filters>div,.whatsapp-filters .btn{flex:1}.whatsapp-message-preview{max-width:240px}.whatsapp-log-table thead{display:none}.whatsapp-log-table,.whatsapp-log-table tbody,.whatsapp-log-table tr,.whatsapp-log-table td{display:block}.whatsapp-log-table tr{border-bottom:1px solid #dde4ec;padding:12px 0}.whatsapp-log-table td{border:0;padding:3px 8px}.whatsapp-log-table td:last-child{padding-top:8px}}
.finance-filter{display:flex;align-items:end;gap:10px;margin-bottom:14px}.finance-filter>div{min-width:180px}.finance-filter label{display:block;margin-bottom:5px;font-size:.8rem;color:#667085}.finance-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.finance-kpis>div,.finance-type{padding:18px;background:#fff;border:1px solid #d9e2ef;border-radius:8px}.finance-kpis span,.finance-kpis small,.finance-type span,.finance-type small{display:block;color:#667085}.finance-kpis strong,.finance-type strong{display:block;margin:6px 0;color:#17365d;font-size:1.65rem}.finance-kpis .is-refund strong{color:#b42318}.finance-kpis .is-net{border-color:#a9dfc5;background:#f3fcf7}.finance-kpis .is-net strong{color:#067647}.finance-type-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:12px}.finance-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.finance-panel-head h2{margin:2px 0 0;font-size:1.1rem}.finance-panel-head>span{color:#667085;font-size:.85rem}.finance-bars{display:grid;gap:16px}.finance-bar-row{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(120px,1fr) auto;align-items:center;gap:12px}.finance-bar-row>div:first-child span{display:block;color:#667085;font-size:.78rem}.finance-bar-track{height:8px;overflow:hidden;background:#edf2f7;border-radius:5px}.finance-bar-track i{display:block;height:100%;background:#2878d0;border-radius:5px}.finance-bar-row>strong{min-width:110px;text-align:right}.finance-methods{display:grid;gap:2px}.finance-methods>div{display:grid;grid-template-columns:1fr auto auto;gap:12px;padding:14px 0;border-bottom:1px solid #edf0f4}.finance-methods small{min-width:52px;text-align:right;color:#667085}@media(max-width:991px){.finance-kpis,.finance-type-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-filter{align-items:stretch;flex-wrap:wrap}.finance-filter>div{flex:1;min-width:150px}}@media(max-width:575px){.finance-kpis,.finance-type-grid{grid-template-columns:1fr 1fr}.finance-kpis>div,.finance-type{padding:14px}.finance-kpis strong,.finance-type strong{font-size:1.2rem}.finance-filter .btn{flex:1}.finance-bar-row{grid-template-columns:1fr auto}.finance-bar-track{grid-column:1/-1;grid-row:2}.finance-bar-row>strong{grid-column:2;grid-row:1;min-width:0}}
.interview-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px}.interview-metrics article{background:#fff;border:1px solid #d9e2ef;border-radius:8px;padding:15px}.interview-metrics span{color:#667085;display:block;font-size:11px}.interview-metrics strong{color:#17365d;display:block;font-size:22px;margin-top:5px}.interview-metrics .is-money{background:#f3faf7;border-color:#b7dfca}.interview-metrics .is-money strong{color:#087443}.interview-filter{align-items:center;display:flex;gap:8px;margin-bottom:14px;padding:12px}.interview-filter .form-control{max-width:165px}.interview-layout{display:grid;gap:14px;grid-template-columns:minmax(300px,390px) minmax(0,1fr)}.interview-create{align-self:start;position:sticky;top:84px}.interview-create h2{font-size:20px;margin:4px 0 18px}.interview-list{display:grid;gap:12px}.interview-card{padding:18px}.interview-card-head{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.interview-card-head h3{font-size:18px;margin:8px 0 2px}.interview-card-head small{color:#667085}.interview-contact{display:flex;gap:8px;margin:15px 0}.interview-note{background:#f8fafc;border:1px solid #e2e8f0;border-radius:7px;padding:12px}.interview-note p{margin:5px 0 0}.commission-chip{align-items:center;background:#eef9f3;border:1px solid #b7dfca;border-radius:7px;color:#087443;display:flex;font-weight:700;gap:8px;margin-top:12px;padding:10px 12px}@media(max-width:1100px){.interview-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.interview-layout{grid-template-columns:1fr}.interview-create{position:static}}@media(max-width:600px){.interview-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.interview-filter{align-items:stretch;flex-wrap:wrap}.interview-filter .btn-group{display:flex;width:100%}.interview-filter .btn{flex:1}.interview-filter .form-control{flex:1;max-width:none;min-width:125px}.interview-contact{flex-direction:column}.interview-contact .btn{width:100%}}
.interview-admin-actions{align-items:center;border-top:1px solid #e5eaf0;display:flex;gap:8px;justify-content:flex-end;margin-top:14px;padding-top:12px}.interview-admin-actions form{margin:0}.interview-admin-edit{margin:0 auto;max-width:780px}@media(max-width:600px){.interview-admin-actions{align-items:stretch;flex-direction:column}.interview-admin-actions .btn{width:100%}}
.teacher-performance{margin-bottom:16px}.teacher-performance-grid{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.teacher-performance-grid a{background:#fff;border:1px solid #d9e2ef;border-radius:8px;color:#172033;padding:15px;text-decoration:none}.teacher-performance-grid a:hover{border-color:#8fb4ea;box-shadow:0 6px 18px rgba(25,55,95,.08)}.teacher-performance-grid a>strong{display:block;margin-bottom:9px}.teacher-performance-grid a>div{display:flex;flex-wrap:wrap;gap:5px}.teacher-performance-grid a span{background:#f1f5f9;border-radius:5px;color:#52606d;font-size:11px;padding:4px 6px}.teacher-performance-grid a small{color:#087443;display:block;font-weight:800;margin-top:10px}.interview-section-head{align-items:end;display:flex;gap:12px;justify-content:space-between;margin-bottom:10px}.interview-section-head h2{font-size:17px;margin:0}.interview-section-head p{color:#667085;font-size:12px;margin:3px 0 0}.interview-section-head>span{background:#e9eef5;border-radius:999px;font-size:12px;font-weight:800;padding:4px 9px}.grouped-interviews{gap:20px}.interview-group{border-top:3px solid #d5dce5;padding-top:13px}.interview-group.is-pending{border-color:#f0ad24}.interview-group.is-completed{border-color:#299866}.interview-group.is-not_completed{border-color:#7b8491}.interview-card-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}.interview-empty{background:#f8fafc;border:1px dashed #cad4df;border-radius:8px;color:#667085;padding:24px;text-align:center}.interview-dates{display:grid;gap:7px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:13px}.interview-dates>div{background:#f8fafc;border:1px solid #e5eaf0;border-radius:6px;padding:9px 10px}.interview-dates span{color:#667085;display:block;font-size:10px}.interview-dates strong{display:block;font-size:12px;margin-top:2px}.commission-state{align-items:center;border:1px solid;border-radius:7px;display:flex;gap:9px;margin-top:10px;padding:10px 11px}.commission-state i{font-size:18px}.commission-state strong,.commission-state span{display:block}.commission-state strong{font-size:12px}.commission-state span{font-size:10px;margin-top:1px}.commission-state.is-warning{background:#fff8e8;border-color:#f1ce7a;color:#805b09}.commission-state.is-success{background:#edf9f2;border-color:#a8d8bd;color:#087443}.commission-state.is-primary{background:#eef5ff;border-color:#b7cdf1;color:#1755a0}.commission-state.is-info{background:#eff8ff;border-color:#b7d9f2;color:#175f8f}.commission-state.is-secondary{background:#f4f5f7;border-color:#d5d9df;color:#525866}@media(max-width:800px){.teacher-performance-grid{grid-template-columns:1fr}.interview-card-grid{grid-template-columns:1fr}}@media(max-width:480px){.interview-dates{grid-template-columns:1fr}.interview-card{padding:14px}.interview-card-head{align-items:flex-start;flex-direction:column}.interview-card-head>.badge{align-self:flex-start}}

/* Role-aware dashboard */
.dashboard-welcome{align-items:center;background:#fff;border:1px solid var(--line);border-left:5px solid var(--brand);border-radius:8px;display:flex;gap:24px;justify-content:space-between;margin-bottom:14px;padding:22px 24px}.dashboard-kicker{color:var(--brand);font-size:11px;font-weight:800;text-transform:uppercase}.dashboard-welcome h1{font-size:25px;margin:4px 0}.dashboard-welcome p{color:var(--muted);margin:0}.dashboard-date{align-items:center;background:#f5f8fc;border:1px solid #dce4ee;border-radius:7px;display:flex;gap:11px;min-width:150px;padding:11px 13px}.dashboard-date>i{color:var(--brand);font-size:22px}.dashboard-date span,.dashboard-date strong{display:block}.dashboard-date span{color:var(--muted);font-size:10px;text-transform:uppercase}.dashboard-date strong{font-size:14px}.dashboard-metrics{display:grid;gap:12px;grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:14px}.dashboard-metric{align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;display:flex;gap:12px;min-height:92px;padding:15px}.dashboard-metric>i{align-items:center;background:#edf3ff;border-radius:7px;color:#2457c5;display:flex;font-size:20px;height:42px;justify-content:center;min-width:42px;width:42px}.dashboard-metric span{color:var(--muted);display:block;font-size:11px}.dashboard-metric strong{color:#172b4d;display:block;font-size:21px;margin-top:3px;overflow-wrap:anywhere}.dashboard-metric.is-success>i{background:#eaf8f1;color:#087443}.dashboard-metric.is-warning>i{background:#fff6df;color:#9a6700}.dashboard-metric.is-danger>i{background:#fff0f1;color:#b42318}.dashboard-metric.is-secondary>i{background:#eef0f3;color:#52606d}.dashboard-layout{display:grid;gap:14px;grid-template-columns:minmax(0,1.65fr) minmax(290px,.75fr)}.dashboard-agenda,.dashboard-shortcuts{padding:0;overflow:hidden}.dashboard-section-head{align-items:center;border-bottom:1px solid #e6eaf0;display:flex;gap:12px;justify-content:space-between;padding:17px 18px}.dashboard-section-head .section-eyebrow{font-size:10px;margin:0}.dashboard-section-head h2{font-size:16px;margin:3px 0 0}.dashboard-agenda-list{display:grid}.dashboard-agenda-row{align-items:center;border-bottom:1px solid #edf0f4;color:var(--ink);display:grid;gap:13px;grid-template-columns:58px minmax(0,1fr) auto 14px;padding:13px 18px;text-decoration:none}.dashboard-agenda-row:last-child{border-bottom:0}.dashboard-agenda-row:hover{background:#f8faff;color:var(--ink)}.dashboard-agenda-row time{color:#17365d;font-size:15px;font-weight:800}.dashboard-agenda-row strong,.dashboard-agenda-row span{display:block}.dashboard-agenda-row strong{font-size:14px}.dashboard-agenda-row span{color:var(--muted);font-size:11px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-agenda-row em{background:#eef3fb;border-radius:5px;color:#36547a;font-size:10px;font-style:normal;font-weight:800;padding:5px 7px;white-space:nowrap}.dashboard-agenda-row em.is-danger{background:#fff0f1;color:#b42318}.dashboard-agenda-row em.is-complete{background:#eef0f3;color:#52606d}.dashboard-agenda-row em.is-active{background:#eaf8f1;color:#087443}.dashboard-agenda-row>i{color:#98a2b3}.dashboard-shortcut-list{display:grid;padding:5px 16px 13px}.dashboard-shortcut-list>a{align-items:center;border-bottom:1px solid #edf0f4;color:var(--ink);display:grid;gap:11px;grid-template-columns:38px minmax(0,1fr) 15px;padding:13px 2px;text-decoration:none}.dashboard-shortcut-list>a:last-child{border-bottom:0}.dashboard-shortcut-list>a>i:first-child{align-items:center;background:#eef4ff;border-radius:7px;color:var(--brand);display:flex;font-size:17px;height:38px;justify-content:center}.dashboard-shortcut-list strong,.dashboard-shortcut-list span{display:block}.dashboard-shortcut-list strong{font-size:13px}.dashboard-shortcut-list span{color:var(--muted);font-size:10px;margin-top:2px}.dashboard-shortcut-list>a>i:last-child{color:#98a2b3}.dashboard-empty{align-items:center;color:var(--muted);display:flex;flex-direction:column;padding:42px 18px;text-align:center}.dashboard-empty i{color:#299866;font-size:27px}.dashboard-empty strong{color:#344054;margin-top:7px}.dashboard-empty span{font-size:12px;margin-top:2px}
@media(max-width:1200px){.dashboard-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:850px){.dashboard-layout{grid-template-columns:1fr}.dashboard-shortcuts{order:-1}.dashboard-shortcut-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.dashboard-shortcut-list>a:nth-last-child(2):nth-child(odd){border-bottom:0}}
@media(max-width:600px){.dashboard-welcome{align-items:flex-start;padding:17px 16px}.dashboard-welcome h1{font-size:21px}.dashboard-welcome p{font-size:12px}.dashboard-date{display:none}.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dashboard-metric{align-items:flex-start;flex-direction:column;gap:8px;min-height:126px;padding:13px}.dashboard-metric>i{height:34px;min-width:34px;width:34px}.dashboard-metric strong{font-size:18px}.dashboard-shortcut-list{grid-template-columns:1fr}.dashboard-shortcut-list>a:nth-last-child(2):nth-child(odd){border-bottom:1px solid #edf0f4}.dashboard-agenda-row{gap:9px;grid-template-columns:45px minmax(0,1fr) 13px;padding:13px 12px}.dashboard-agenda-row em{grid-column:2;justify-self:start}.dashboard-agenda-row>i{grid-column:3;grid-row:1 / span 2}.dashboard-section-head{align-items:flex-start;padding:15px 13px}.dashboard-section-head .btn{white-space:nowrap}}
/* Discount approval workflow */
.discount-widget{margin-top:18px;padding:16px;border:1px solid #b9c9df;border-left:4px solid #246bce;border-radius:8px;background:#f8fbff}.discount-widget-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.discount-widget-head div span,.discount-widget-head div strong{display:block}.discount-widget-head div span{font-size:.7rem;font-weight:800;color:#175cd3}.discount-widget-head div strong{font-size:1rem;color:#13294b}.discount-widget-head i{font-size:1.35rem;color:#175cd3}.discount-widget-fields{display:grid;grid-template-columns:160px 130px minmax(180px,1fr) auto;gap:8px}.discount-widget-status{margin-top:10px;padding:9px 11px;border-radius:6px;background:#eef2f6;color:#475467;font-size:.82rem}.discount-widget-status.is-pending{background:#fff7db;color:#854d0e}.discount-widget-status.is-approved{background:#e9f8ef;color:#067647}.discount-widget-status.is-rejected{background:#fff0f0;color:#b42318}.discount-public-page{min-height:100vh;display:grid;place-items:center;padding:22px;background:#eef3f9}.discount-approval-card{width:min(680px,100%);padding:28px;background:#fff;border:1px solid #d7e0ec;border-radius:8px;box-shadow:0 18px 50px rgba(22,40,70,.12)}.discount-approval-card h1{margin:5px 0 22px;color:#13294b}.discount-approval-card dl{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#e5eaf0;border:1px solid #e5eaf0}.discount-approval-card dl div{padding:12px;background:#fff}.discount-approval-card dt{font-size:.74rem;color:#667085}.discount-approval-card dd{margin:4px 0 0;font-weight:700}.discount-reason{margin:16px 0;padding:14px;background:#f8fafc;border-left:3px solid #175cd3}.discount-reason p{margin:5px 0 0}.discount-decision-actions{display:flex;gap:10px}.discount-final{padding:16px;border-radius:6px;background:#eef2f6;font-weight:800}.discount-final.is-approved,.discount-final.is-used{background:#e9f8ef;color:#067647}.discount-final.is-rejected,.discount-final.is-cancelled{background:#fff0f0;color:#b42318}@media(max-width:767px){.discount-widget-fields{grid-template-columns:1fr 1fr}.discount-widget-fields [data-discount-reason],.discount-widget-fields button{grid-column:1/-1}.discount-approval-card{padding:20px}.discount-approval-card dl{grid-template-columns:1fr}.discount-decision-actions{flex-direction:column}.finance-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Compact discount form for narrow appointment sidebars */
.discount-widget{min-width:0;max-width:100%;overflow:hidden}.discount-widget-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.discount-widget-fields>*{min-width:0;width:100%}.discount-widget-fields [data-discount-reason],.discount-widget-fields [data-discount-request]{grid-column:1/-1}.discount-widget-preview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:12px;border:1px solid #dce4ee;border-radius:6px;overflow:hidden;background:#dce4ee}.discount-widget-preview span{display:block;min-width:0;padding:9px 7px;background:#fff;color:#667085;font-size:.68rem}.discount-widget-preview strong{display:block;margin-top:3px;color:#17365d;font-size:.82rem;overflow-wrap:anywhere}.discount-widget-preview span:last-child strong{color:#067647}@media(max-width:420px){.discount-widget{padding:13px}.discount-widget-fields{grid-template-columns:1fr}.discount-widget-fields [data-discount-reason],.discount-widget-fields [data-discount-request]{grid-column:auto}.discount-widget-preview{grid-template-columns:1fr}.discount-widget-preview span{display:flex;align-items:center;justify-content:space-between;gap:8px}.discount-widget-preview strong{margin:0;text-align:right}}
/* Certificates module */
.certificate-public-body{min-height:100vh;background:#eef3f7;color:#172b4d}.certificate-public-shell{width:min(980px,calc(100% - 28px));margin:34px auto 70px}.certificate-hero{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:34px 38px;background:#183153;color:#fff;border-bottom:5px solid #16a085}.certificate-hero span{font-size:.72rem;font-weight:800;color:#9fe5d5}.certificate-hero h1{margin:5px 0 8px;font-size:2.1rem}.certificate-hero p{margin:0;color:#dce7f2}.certificate-hero>i{font-size:4rem;color:#ffd166}.certificate-form{background:#fff;border:1px solid #d9e2ec;border-top:0;padding:34px 38px}.certificate-form-section{padding:0 0 30px}.certificate-section-title{display:flex;align-items:flex-start;gap:13px;margin-bottom:22px}.certificate-section-title>span{display:grid;place-items:center;width:36px;height:36px;border-radius:6px;background:#e8f6f2;color:#08735d;font-weight:900}.certificate-section-title h2{margin:0;font-size:1.25rem}.certificate-section-title p{margin:4px 0 0;color:#667085;font-size:.86rem}.certificate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.certificate-grid .wide{grid-column:1/-1}.certificate-print-preview{padding:15px;border:1px solid #b7dccc;background:#f3fbf8}.certificate-print-preview>span{display:block;margin-bottom:7px;color:#08735d;font-size:.68rem;font-weight:900}.certificate-print-preview .form-control{font-weight:800;letter-spacing:0;font-size:1.05rem;background:#fff}.certificate-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important}.cardcert-intro{display:grid;grid-template-columns:240px minmax(0,1fr);gap:26px;margin:5px -38px 28px;padding:28px 38px;background:#f6f1e8;border-block:1px solid #e4d7c1}.cardcert-image{align-self:start;overflow:hidden;border-radius:7px;border:1px solid #d1c3ae;background:#fff}.cardcert-image img{display:block;width:100%;height:auto}.cardcert-intro>div>span{font-size:.68rem;font-weight:900;color:#a14f21}.cardcert-intro h2{margin:4px 0 7px}.cardcert-intro p{color:#5d5147}.cardcert-actions{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.cardcert-intro details{padding-top:12px;border-top:1px solid #d9cbb8}.cardcert-intro summary{cursor:pointer;font-weight:700}.cardcert-intro details p{margin:12px 0}.certificate-cardcert-check{margin-bottom:28px;padding:18px;border:1px solid #b8cce4;background:#f4f8fc}.certificate-cardcert-check label,.certificate-consent label{display:flex;align-items:flex-start;gap:11px}.certificate-cardcert-check strong,.certificate-cardcert-check small{display:block}.certificate-cardcert-check small{margin-top:3px;color:#667085}.cardcert-pay-link{display:flex;flex-direction:column;justify-content:end;gap:6px}.cardcert-pay-link span{font-size:.82rem;color:#667085}.cardcert-bank{display:grid;gap:4px;padding:16px;background:#f3f8fd;border-left:4px solid #2878d0}.cardcert-bank code{display:block;margin:5px 0;color:#17365d;font-size:1rem;font-weight:800}.certificate-photo-upload{display:flex;align-items:flex-start;gap:14px}.certificate-photo-upload img{width:92px;height:112px;object-fit:cover;border:1px solid #d0d5dd}.certificate-consent{margin:2px 0 18px;padding:16px;background:#f8fafc;border:1px solid #e1e7ee}.certificate-submit{min-height:54px}.certificate-success{padding:70px 30px;text-align:center;background:#fff;border:1px solid #c8ded5}.certificate-success i{font-size:4rem;color:#079455}.certificate-success h2{margin:15px 0 7px}.certificate-success p{max-width:560px;margin:auto;color:#667085}.certificate-admin-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}.certificate-admin-metrics>div{position:relative;min-height:112px;padding:16px;background:#fff;border:1px solid #d9e2ec;border-radius:7px}.certificate-admin-metrics span,.certificate-admin-metrics strong{display:block}.certificate-admin-metrics span{color:#667085;font-size:.76rem}.certificate-admin-metrics strong{margin-top:9px;color:#17365d;font-size:1.65rem}.certificate-admin-metrics i{position:absolute;right:15px;bottom:13px;color:#8aa4c0;font-size:1.3rem}.certificate-admin-filter{display:flex;align-items:end;gap:9px;margin-bottom:14px}.certificate-admin-filter>div{min-width:160px}.certificate-admin-filter .certificate-filter-search{flex:1}.certificate-admin-filter label{display:block;margin-bottom:5px;color:#667085;font-size:.76rem}.certificate-admin-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(350px,.8fr);gap:14px;align-items:start}.certificate-list-panel{padding:0;overflow:hidden}.certificate-list-head{display:flex;align-items:center;justify-content:space-between;padding:17px 18px;border-bottom:1px solid #e5eaf0}.certificate-list-head h2{margin:2px 0 0;font-size:1.05rem}.certificate-list-head code{color:#175cd3}.certificate-admin-list{display:grid}.certificate-admin-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto 16px;align-items:center;gap:12px;padding:14px 17px;color:#172b4d;text-decoration:none;border-bottom:1px solid #edf0f4;transition:.15s}.certificate-admin-row:hover,.certificate-admin-row.is-active{background:#f3f8fd}.certificate-person-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:6px;background:#e8f0f8;color:#175cd3;font-weight:900}.certificate-admin-row>div:nth-child(2) strong,.certificate-admin-row>div:nth-child(2) span,.certificate-admin-row>div:nth-child(2) small{display:block}.certificate-admin-row>div:nth-child(2) span{margin:2px 0;color:#344054;font-size:.82rem}.certificate-admin-row>div:nth-child(2) small{color:#667085}.certificate-row-meta{text-align:right}.certificate-row-meta span,.certificate-row-meta em{display:block}.certificate-row-meta em{margin-top:5px;color:#667085;font-size:.7rem;font-style:normal}.certificate-row-meta em.has-cardcert{color:#a14f21;font-weight:800}.certificate-status{font-size:.7rem;font-weight:800}.certificate-status.status-new{color:#b54708}.certificate-status.status-processing{color:#175cd3}.certificate-status.status-printed,.certificate-status.status-delivered{color:#067647}.certificate-status.status-rejected{color:#b42318}.certificate-detail{position:sticky;top:86px}.certificate-detail-head{display:flex;justify-content:space-between;gap:14px;padding-bottom:16px;border-bottom:1px solid #e5eaf0}.certificate-detail-head span{font-size:.68rem;font-weight:900;color:#175cd3}.certificate-detail-head h2{margin:3px 0;font-size:1.25rem}.certificate-detail-head p{margin:0;color:#667085}.certificate-detail-head img{width:76px;height:92px;object-fit:cover;border:1px solid #d0d5dd}.certificate-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:17px 0;background:#e5eaf0;border:1px solid #e5eaf0}.certificate-detail-grid>div{min-width:0;padding:11px;background:#fff}.certificate-detail-grid .wide{grid-column:1/-1}.certificate-detail-grid dt{font-size:.68rem;color:#667085}.certificate-detail-grid dd{margin:4px 0 0;overflow-wrap:anywhere;font-weight:650}.certificate-detail-placeholder,.certificate-empty{display:grid;place-items:center;gap:6px;min-height:280px;text-align:center;color:#667085}.certificate-detail-placeholder i,.certificate-empty i{font-size:2rem;color:#8aa4c0}.certificate-empty{min-height:220px}.certificate-update-form{padding-top:2px}@media(max-width:1100px){.certificate-admin-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.certificate-admin-layout{grid-template-columns:1fr}.certificate-detail{position:static}.certificate-admin-filter{flex-wrap:wrap}.certificate-admin-filter .certificate-filter-search{flex-basis:100%}}@media(max-width:700px){.certificate-public-shell{width:100%;margin:0}.certificate-hero{padding:25px 19px}.certificate-hero h1{font-size:1.65rem}.certificate-hero>i{font-size:2.6rem}.certificate-form{padding:25px 17px}.certificate-grid{grid-template-columns:1fr}.certificate-grid .wide{grid-column:auto}.cardcert-intro{grid-template-columns:1fr;margin:5px -17px 25px;padding:24px 17px}.cardcert-image{max-width:300px}.certificate-admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.certificate-admin-filter{display:grid;grid-template-columns:1fr 1fr}.certificate-admin-filter>*{min-width:0!important}.certificate-admin-filter .certificate-filter-search{grid-column:1/-1}.certificate-admin-row{grid-template-columns:38px minmax(0,1fr) 14px;padding:13px 11px}.certificate-row-meta{grid-column:2;text-align:left}.certificate-admin-row>i{grid-column:3;grid-row:1/3}.certificate-detail-grid{grid-template-columns:1fr}.certificate-detail-grid .wide{grid-column:auto}.certificate-photo-upload{display:block}.certificate-photo-upload img{margin-top:10px}}
/* Optional electronic card step */
.certificate-cardcert-check{position:relative;padding-top:30px}.certificate-optional-label{position:absolute;top:8px;right:12px;padding:3px 7px;border-radius:4px;background:#fff0d5;color:#9a4b08;font-size:.62rem;font-weight:900}.certificate-section-title h2 small{color:#b54708;font-size:.72rem;font-weight:800}
