:root {
  --rose: #b86d79;
  --rose-deep: #984f5d;
  --rose-soft: #f7e9ec;
  --ink: #201a1c;
  --muted: #756a6d;
  --line: #eadde0;
  --canvas: #f8f5f5;
  --white: #fff;
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body { margin: 0; background: var(--canvas); color: var(--ink); font-family: Arial, Helvetica, sans-serif; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: wait; opacity: .58; }
a { color: inherit; text-decoration: none; }

.eyebrow { margin: 0 0 5px; color: var(--rose-deep); font-size: 11px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 286px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; padding: 22px 18px; border-right: 1px solid var(--line); background: var(--white); box-shadow: 10px 0 32px rgba(59,33,39,.035); }
.brand-panel { display: grid; gap: 10px; padding: 0 4px 22px; border-bottom: 1px solid var(--line); }
.brand-logo { width: 174px; height: 78px; display: block; object-fit: contain; }
.brand-panel h1 { margin: 0; font-size: 16px; line-height: 1.25; }
.month-header-actions { display:grid; justify-items:end; gap:10px; min-width:0; }
.month-option-menu { padding-top:9px; border-top:1px solid var(--line); }
.month-option-menu > span { color:#8a7d80; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.general-logo-editor { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.general-logo-editor img { width:190px; height:92px; object-fit:contain; padding:8px; border:1px solid var(--line); border-radius:14px; background:#fff; }
.course-handbook-panel { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:14px; padding-top:14px; border-top:1px solid rgba(70,50,55,.12); }
.course-handbook-panel > div { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.course-handbook-panel > div:first-child { display:grid; gap:3px; }
.course-handbook-panel small { color:#7f7376; overflow-wrap:anywhere; }
.document-grid { display:grid; gap:14px; }
.document-card { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:16px; align-items:center; padding:20px; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:0 12px 32px rgba(55,35,40,.05); }
.document-icon { width:48px; height:48px; display:grid; place-items:center; border-radius:14px; background:var(--rose-soft); color:var(--rose-deep); font-size:22px; }
.document-card h3,.document-card p { margin:3px 0; }
.document-card small { color:#8b7f82; }
.document-actions { display:flex; flex-wrap:wrap; gap:8px; }
.mobile-menu-button { display: none; }
.sidebar-body { min-height: 0; flex: 1; display: flex; flex-direction: column; }
.sidebar-nav { padding: 20px 0 14px; }
.nav-item, .module-item { width: 100%; display: flex; align-items: center; gap: 11px; border: 0; border-radius: 12px; background: transparent; color: var(--muted); text-align: left; font-weight: 700; }
.nav-item { padding: 12px 14px; }
.nav-item.active, .module-item.active { background: var(--rose-soft); color: var(--rose-deep); }
.nav-icon { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 8px; background: var(--white); }
.modules-heading { display: flex; align-items: center; justify-content: space-between; margin: 4px 6px 10px; color: #95888c; font-size: 11px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.icon-button { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 9px; background: var(--white); color: var(--rose-deep); font-size: 20px; line-height: 1; }
.module-list { min-height: 0; display: grid; align-content: start; gap: 6px; margin-bottom: 14px; overflow-y: auto; }
.module-item { padding: 11px 12px; border: 1px solid transparent; color: #5f5558; font-size: 13px; }
.module-item:hover { background: #fcf7f8; }
.module-item.active { border-color: #ecd6db; }
.module-dot { width: 8px; height: 8px; flex: 0 0 auto; border-radius: 50%; background: #d9b7be; }
.module-item.active .module-dot { background: var(--rose); box-shadow: 0 0 0 4px rgba(184,109,121,.13); }
.module-item-copy { min-width: 0; display: grid; gap: 2px; }
.module-item-copy strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.module-item-copy small { color: #998d90; font-size: 9px; font-weight: 700; }
.sidebar-loading { padding: 18px 8px; color: #998d90; font-size: 12px; }
.empty-modules { margin: 5px 0 14px; padding: 26px 16px; border: 1px dashed #ddc8cd; border-radius: 14px; background: #fdfafb; text-align: center; }
.empty-plus { width: 34px; height: 34px; display: grid; place-items: center; margin: 0 auto 10px; border-radius: 50%; background: var(--rose-soft); color: var(--rose-deep); font-size: 22px; }
.empty-modules p { margin: 0 0 5px; font-size: 13px; font-weight: 800; }
.empty-modules span { color: #998d90; font-size: 11px; line-height: 1.5; }
.add-module-button { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 14px; border: 0; border-radius: 12px; background: var(--rose); color: var(--white); font-size: 13px; font-weight: 800; box-shadow: 0 8px 22px rgba(184,109,121,.24); }
.add-module-button span { font-size: 19px; line-height: 0; }
.logout-button { margin-top: auto; padding: 10px 12px; border: 1px solid var(--line); border-radius: 11px; background: var(--white); color: #76696c; font-size: 12px; font-weight: 800; text-align: center; }
.sidebar-note { margin: 10px 0 0; color: #a19497; font-size: 10px; text-align: center; }

.workspace { min-width: 0; padding: 34px 42px 54px; }
.topbar { max-width: 1500px; min-height: 65px; display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 0 auto 28px; }
.topbar h2 { margin: 0; font-size: clamp(28px,3vw,38px); letter-spacing: -.035em; overflow-wrap: anywhere; }
.header-actions, .section-actions, .modal-actions { display: flex; align-items: center; gap: 9px; }
.primary-button, .secondary-button, .danger-button, .confirm-delete-button { min-height: 39px; padding: 9px 14px; border-radius: 10px; font-size: 12px; font-weight: 800; }
.primary-button { border: 1px solid var(--rose); background: var(--rose); color: var(--white); box-shadow: 0 7px 18px rgba(184,109,121,.19); }
.primary-button span { margin-right: 4px; font-size: 18px; line-height: 0; }
.secondary-button { border: 1px solid var(--line); background: var(--white); color: #685b5e; }
.danger-button { border: 1px solid #f0d7dc; background: #fff7f8; color: #a14354; }
.confirm-delete-button { border: 1px solid #aa3c50; background: #aa3c50; color: var(--white); }
.settings-icon-button { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 12px; background: var(--white); color: #6d6063; font-size: 21px; line-height: 1; box-shadow: 0 7px 18px rgba(55,35,40,.045); }
.settings-icon-button:hover, .settings-icon-button.active { border-color: #d7aab3; background: var(--rose-soft); color: var(--rose-deep); }
.top-menu-button { min-height: 42px; display: inline-flex; align-items: center; gap: 7px; padding: 9px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--white); color: #685b5e; font-size: 12px; font-weight: 800; box-shadow: 0 7px 18px rgba(55,35,40,.045); }
.top-menu-button span { color: var(--rose-deep); font-size: 16px; }
.top-menu-button:hover, .top-menu-button.active { border-color: #d7aab3; background: var(--rose-soft); color: var(--rose-deep); }
.mail-menu-button { position:relative; }
.mail-unread-badge { min-width:19px; height:19px; display:inline-grid; place-items:center; margin-left:1px; padding:0 5px; border-radius:999px; background:#b52f49; color:#fff; font-size:9px; font-weight:900; line-height:1; }
.mail-unread-badge[hidden] { display:none; }
.checkbox-line { display:flex !important; align-items:center; gap:9px; }
.checkbox-line input { width:18px !important; min-height:18px !important; flex:0 0 auto; }
.checkbox-line span { color:#665a5d; font-size:11px; font-weight:700; }

.loading-card, .error-card, .content-empty { min-height: 420px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 40px; border: 1px solid var(--line); border-radius: 20px; background: var(--white); color: var(--muted); text-align: center; }
.error-card { color: #a14354; }
.content-empty h3 { margin: 2px 0 9px; color: var(--ink); font-size: 28px; }
.content-empty > p:not(.eyebrow) { max-width: 460px; margin: 0 0 23px; line-height: 1.6; }
.placeholder-mark { width: 72px; height: 72px; display: grid; place-items: center; margin-bottom: 18px; border-radius: 22px; background: var(--rose); color: var(--white); font-size: 34px; }
.placeholder-mark.small { width: 54px; height: 54px; border-radius: 17px; font-size: 28px; }

.dashboard-view, .records-view { max-width: 1500px; margin: 0 auto; }
.dashboard-heading-card { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 18px; padding: 22px 24px; border: 1px solid var(--line); border-radius: 18px; background: linear-gradient(135deg,#fff 0%,#fff8f9 100%); box-shadow: 0 12px 34px rgba(55,35,40,.04); }
.dashboard-heading-card h3, .dashboard-panel-heading h3 { margin: 0; letter-spacing: -.025em; }
.dashboard-heading-card h3 { font-size: 24px; }
.dashboard-heading-card > div > p:last-child { margin: 6px 0 0; color: var(--muted); font-size: 13px; }
.month-filter { min-width: 290px; }
.month-filter label { display: block; margin: 0 0 6px; color: #75686c; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.month-filter > div { display: flex; gap: 8px; }
.month-filter input, .month-filter button { min-height: 42px; border: 1px solid var(--line); border-radius: 10px; background: var(--white); color: var(--ink); }
.month-filter input { min-width: 160px; padding: 8px 11px; outline: none; }
.month-filter button { padding: 8px 11px; color: var(--rose-deep); font-size: 11px; font-weight: 800; }
.dashboard-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-bottom: 18px; }
.dashboard-stats article { min-width: 0; padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: var(--white); box-shadow: 0 10px 28px rgba(55,35,40,.035); }
.dashboard-stats span, .dashboard-stats small { display: block; }
.dashboard-stats span { color: var(--rose-deep); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.dashboard-stats strong { display: block; margin: 8px 0 7px; font-size: clamp(22px,2.2vw,30px); letter-spacing: -.035em; overflow-wrap: anywhere; }
.dashboard-stats small { color: var(--muted); font-size: 11px; }
.dashboard-payment-breakdown { display: grid; gap: 5px; margin-top: 13px; padding-top: 11px; border-top: 1px solid #f0e5e7; }
.dashboard-payment-breakdown span { display: flex; align-items: center; justify-content: space-between; gap: 9px; color: #6d6164; font-size: 9px; font-weight: 800; letter-spacing: 0; text-transform: none; }
.dashboard-payment-breakdown b { color: #8a7d80; font-size: 8px; letter-spacing: .06em; text-transform: uppercase; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(300px,.8fr); gap: 18px; align-items: start; }
.dashboard-panel { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: var(--white); box-shadow: 0 12px 34px rgba(55,35,40,.04); }
.dashboard-panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 19px 20px; border-bottom: 1px solid var(--line); }
.dashboard-panel-heading h3 { font-size: 18px; }
.dashboard-panel-heading > span { padding: 6px 9px; border-radius: 999px; background: var(--rose-soft); color: var(--rose-deep); font-size: 10px; font-weight: 800; }
.dashboard-table-scroll { width: 100%; overflow-x: auto; }
.dashboard-table { width: 100%; min-width: 620px; border-collapse: collapse; }
.dashboard-table th, .dashboard-table td { padding: 13px 14px; border-bottom: 1px solid #f0e6e8; text-align: right; font-size: 11px; }
.dashboard-table th { background: #fcf9fa; color: #817478; font-size: 9px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.dashboard-table th:first-child, .dashboard-table td:first-child { text-align: left; }
.dashboard-table td:first-child { color: #51474a; font-weight: 800; }
.dashboard-table tbody tr:last-child td { border-bottom: 0; }
.recent-record-list { display: grid; }
.recent-record-list article { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 18px; border-bottom: 1px solid #f0e6e8; }
.recent-record-list article:last-child { border-bottom: 0; }
.recent-record-name, .recent-record-amount { min-width: 0; display: grid; gap: 4px; }
.recent-record-name strong, .recent-record-name span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.recent-record-name strong, .recent-record-amount strong { font-size: 12px; }
.recent-record-name span, .recent-record-amount span { color: var(--muted); font-size: 10px; }
.recent-record-amount { flex: 0 0 auto; text-align: right; }
.recent-record-amount strong { color: var(--rose-deep); }
.dashboard-empty { min-height: 150px; display: grid; place-items: center; padding: 30px; color: var(--muted); font-size: 12px; text-align: center; }

.courses-view { max-width: 1500px; margin: 0 auto; }
.courses-intro { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 18px; padding: 22px 24px; border: 1px solid var(--line); border-radius: 18px; background: linear-gradient(135deg,#fff 0%,#fff8f9 100%); box-shadow: 0 12px 34px rgba(55,35,40,.04); }
.courses-intro h3 { margin: 0; font-size: 24px; letter-spacing: -.025em; }
.courses-intro p:last-child { max-width: 720px; margin: 7px 0 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.courses-intro .primary-button { flex: 0 0 auto; }
.course-catalog-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,390px),1fr)); gap:16px; align-items:start; }
.course-catalog-card { --catalog-colour:#f7e9ec; min-width:0; width:100%; overflow:hidden; display:grid; grid-template-columns:10px minmax(0,1fr); align-content:start; border:1px solid var(--line); border-radius:20px; background:var(--white); box-shadow:0 14px 38px rgba(55,35,40,.07); container-type:inline-size; }
.course-colour-preview { grid-row: 1/3; background: var(--catalog-colour); border-right: 1px solid rgba(80,60,65,.08); }
.course-catalog-copy { min-width: 0; padding: 19px 19px 14px; }
.course-catalog-copy h3 { margin: 0 0 13px; font-size: 19px; letter-spacing: -.02em; overflow-wrap: anywhere; }
.course-catalog-copy strong { display: block; color: var(--rose-deep); font-size: 23px; letter-spacing: -.03em; }
.course-catalog-copy small { display: block; margin-top: 3px; color: var(--muted); font-size: 9px; font-weight: 700; text-transform: uppercase; }
.course-catalog-actions { display: flex; gap: 8px; padding: 0 19px 17px; }
.course-catalog-actions button { flex: 1; }
.courses-empty { min-height: 360px; }

.students-view { max-width: 1500px; margin: 0 auto; }
.student-search { width: min(340px,100%); flex: 0 0 auto; display: grid; gap: 6px; color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.student-search input { width: 100%; min-height: 43px; padding: 10px 13px; border: 1px solid #dfcfd2; border-radius: 11px; background: #fff; outline: none; }
.student-search input:focus { border-color: var(--rose); box-shadow: 0 0 0 3px rgba(184,109,121,.12); }
.student-directory-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.student-profile-card { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: var(--white); box-shadow: 0 10px 28px rgba(55,35,40,.04); }
.student-profile-heading { display: grid; grid-template-columns: 48px minmax(0,1fr) auto; gap: 12px; align-items: center; padding: 19px 20px 14px; }
.student-avatar { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 14px; background: var(--rose-soft); color: var(--rose-deep); font-size: 19px; font-weight: 900; }
.student-profile-heading h3 { margin: 0 0 4px; font-size: 19px; overflow-wrap: anywhere; }
.student-profile-heading > div:nth-child(2) > span { color: var(--muted); font-size: 10px; overflow-wrap: anywhere; }
.student-profile-heading > b { align-self: start; padding: 6px 9px; border-radius: 999px; background: #f3eff0; color: #6c5f62; font-size: 9px; white-space: nowrap; }
.student-profile-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 0 20px 16px; }
.student-profile-actions button { min-height: 38px; }
.student-history { border-top: 1px solid var(--line); }
.student-history summary { display: flex; align-items: center; justify-content: space-between; padding: 13px 20px; background: #fcf9fa; color: #5f5356; cursor: pointer; font-size: 11px; font-weight: 800; list-style: none; }
.student-history summary::-webkit-details-marker { display: none; }
.student-history summary span { min-width: 23px; padding: 4px 7px; border-radius: 999px; background: #f0e4e7; color: var(--rose-deep); font-size: 9px; text-align: center; }
.student-course-item { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; padding: 14px 20px; border-top: 1px solid #f1e8ea; }
.student-course-item:first-child { border-top: 0; }
.student-course-item > div:first-child { min-width: 0; display: grid; gap: 3px; }
.student-course-item strong { font-size: 12px; overflow-wrap: anywhere; }
.student-course-item span, .student-course-item small { color: var(--muted); font-size: 9px; }
.student-course-money { display: grid; gap: 4px; text-align: right; }
.student-course-money span { white-space: nowrap; }
.student-course-money b { color: #51474a; }
.student-course-item > p { grid-column: 1/-1; margin: 0; padding: 9px 10px; border-radius: 8px; background: #fcf8f9; color: #6e6265; font-size: 10px; white-space: pre-wrap; }
.student-payment-summary { grid-column: 1/-1; display: flex; flex-wrap: wrap; gap: 6px; }
.student-payment-summary span { padding: 5px 8px; border: 1px solid #eadde0; border-radius: 999px; background: #fffafb; color: #75686b; font-size: 8px; }
.student-payment-summary b { color: var(--rose-deep); }
.student-communication-item { display: grid; grid-template-columns: 88px minmax(0,1fr); gap: 11px; padding: 13px 20px; border-top: 1px solid #f1e8ea; }
.communication-channel { align-self: start; padding: 6px 8px; border-radius: 8px; font-size: 9px; font-weight: 800; text-align: center; }
.communication-channel.email { background: #faf7fd; color: #70528c; }
.communication-channel.whatsapp { background: #f1faf4; color: #267c48; }
.student-communication-item > div { min-width: 0; display: grid; gap: 4px; }
.student-communication-item strong { font-size: 10px; }
.student-communication-item small { color: var(--muted); font-size: 8px; }
.student-communication-item b { font-size: 9px; overflow-wrap: anywhere; }
.student-communication-item p { max-height: 95px; overflow: auto; margin: 2px 0 0; color: #6e6265; font-size: 9px; line-height: 1.5; white-space: pre-wrap; }
.student-no-communication { margin: 0; padding: 18px 20px; color: var(--muted); font-size: 10px; text-align: center; }

.trainers-view { max-width: 1500px; margin: 0 auto; }
.trainer-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.trainer-card { min-width: 0; padding: 21px; border: 1px solid var(--line); border-radius: 18px; background: var(--white); box-shadow: 0 10px 28px rgba(55,35,40,.04); }
.trainer-card-heading, .trainer-card-heading > div:last-child, .trainer-files-heading, .trainer-file-item, .trainer-file-item > div:last-child { display: flex; align-items: center; gap: 8px; }
.trainer-card-heading, .trainer-files-heading, .trainer-file-item { justify-content: space-between; }
.trainer-card-heading { align-items: flex-start; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.trainer-card-heading h3 { margin: 0 0 5px; font-size: 21px; overflow-wrap: anywhere; }
.trainer-card-heading small { color: var(--muted); font-size: 10px; }
.trainer-contact-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin: 16px 0; }
.trainer-contact-grid span { min-width: 0; display: grid; gap: 4px; }
.trainer-contact-grid .wide { grid-column: 1/-1; }
.trainer-contact-grid small { color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.trainer-contact-grid strong { font-size: 11px; overflow-wrap: anywhere; }
.trainer-notes { margin: 0 0 16px; padding: 12px; border-radius: 10px; background: #fcf8f9; color: #6e6265; font-size: 11px; line-height: 1.55; white-space: pre-wrap; }
.trainer-files { overflow: hidden; border: 1px solid var(--line); border-radius: 13px; }
.trainer-files-heading { padding: 12px; background: #fcf9fa; }
.trainer-files-heading > div:first-child, .trainer-file-item > div:first-child { min-width: 0; display: grid; gap: 3px; }
.trainer-files-heading strong { font-size: 11px; }
.trainer-files-heading small, .trainer-file-item small, .trainer-no-files { color: var(--muted); font-size: 9px; }
.trainer-file-item { padding: 10px 12px; border-top: 1px solid var(--line); }
.trainer-file-item strong { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.trainer-file-item .secondary-button, .trainer-file-item .danger-button { min-height: 31px; padding: 6px 9px; font-size: 9px; text-decoration: none; }
.trainer-no-files { margin: 0; padding: 16px 12px; border-top: 1px solid var(--line); text-align: center; }

.trainer-search-row { display:flex; align-items:end; justify-content:space-between; gap:16px; margin-bottom:16px; padding:16px 18px; border:1px solid var(--line); border-radius:15px; background:#fff; }
.trainer-search-row label { min-width:min(560px,100%); display:grid; gap:6px; }
.trainer-search-row label span { color:#85787b; font-size:10px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.trainer-search-row input { width:100%; min-height:42px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:#fff; outline:none; }
.trainer-search-row input:focus { border-color:#d49ca6; box-shadow:0 0 0 3px rgba(184,109,121,.11); }
.trainer-search-row > span { color:#8e8184; font-size:11px; font-weight:800; white-space:nowrap; }
.trainer-document-summary { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:16px; padding:12px 13px; border:1px solid var(--line); border-radius:13px; background:#fcf9fa; }
.trainer-document-summary > div { min-width:0; display:grid; gap:4px; }
.trainer-document-summary small { color:var(--muted); font-size:9px; font-weight:800; text-transform:uppercase; }
.trainer-document-summary strong { font-size:12px; }
.trainer-document-summary .secondary-button { flex:0 0 auto; }
.trainer-search-empty { margin-top:16px; }
.trainer-documents-modal { width:min(780px,100%); }
.trainer-documents-modal-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:6px; padding:14px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.trainer-documents-modal-head > div { min-width:0; display:grid; gap:4px; }
.trainer-documents-modal-head strong { font-size:13px; }
.trainer-documents-modal-head small { color:var(--muted); font-size:10px; }
.trainer-files-modal-list { margin-top:14px; max-height:52vh; overflow:auto; }
.trainer-files-modal-list .trainer-file-item:first-child { border-top:0; }

.settings-view { max-width: 1500px; margin: 0 auto; }
.settings-intro { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 18px; padding: 22px 24px; border: 1px solid var(--line); border-radius: 18px; background: linear-gradient(135deg,#fff 0%,#fff8f9 100%); box-shadow: 0 12px 34px rgba(55,35,40,.04); }
.settings-intro h3 { margin: 0; font-size: 24px; letter-spacing: -.025em; }
.settings-intro p:last-child { margin: 7px 0 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.settings-intro > span { flex: 0 0 auto; padding: 7px 10px; border-radius: 999px; background: var(--rose-soft); color: var(--rose-deep); font-size: 10px; font-weight: 800; }
.settings-layout { display: grid; grid-template-columns: minmax(230px,270px) minmax(0,1fr); gap: 18px; align-items: start; }
.settings-tabs { display: grid; gap: 9px; padding: 10px; border: 1px solid var(--line); border-radius: 17px; background: var(--white); box-shadow: 0 12px 34px rgba(55,35,40,.04); }
.settings-tab { width: 100%; display: flex; align-items: center; gap: 11px; padding: 13px; border: 1px solid transparent; border-radius: 12px; background: transparent; color: #655a5d; text-align: left; }
.settings-tab:hover { background: #fcf8f9; }
.settings-tab.active { border-color: #e5cdd2; background: var(--rose-soft); color: var(--rose-deep); }
.settings-tab > span:last-child { min-width: 0; display: grid; gap: 3px; }
.settings-tab strong { font-size: 12px; }
.settings-tab small { color: #93878a; font-size: 9px; font-weight: 700; }
.settings-tab-icon { width: 36px; height: 36px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 10px; background: #f6eaed; color: var(--rose-deep); font-size: 17px; font-weight: 800; }
.settings-tab-icon.whatsapp { background: #e9f7ee; color: #26864d; }
.settings-panel { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: var(--white); box-shadow: 0 12px 34px rgba(55,35,40,.04); }
.template-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; padding: 22px 26px; }
.template-columns > section { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; }
.template-column-heading { display: flex; align-items: center; gap: 10px; padding: 13px; background: #fcf9fa; }
.template-column-heading h4, .template-column-heading p { margin: 0; }
.template-column-heading h4 { font-size: 12px; }
.template-column-heading p { margin-top: 2px; color: var(--muted); font-size: 9px; }
.saved-template-card { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 14px; border-top: 1px solid var(--line); }
.saved-template-card > div:first-child { min-width: 0; display: grid; gap: 6px; }
.saved-template-card > div:last-child { flex: 0 0 auto; display: flex; gap: 6px; }
.saved-template-card h4 { margin: 0; font-size: 12px; }
.saved-template-card strong { font-size: 9px; overflow-wrap: anywhere; }
.saved-template-card p { max-height: 85px; overflow: auto; margin: 0; color: var(--muted); font-size: 9px; line-height: 1.5; white-space: pre-wrap; }
.saved-template-card button { min-height: 32px; padding: 6px 9px; font-size: 9px; }
.template-empty { padding: 24px 14px; border-top: 1px solid var(--line); color: var(--muted); font-size: 10px; text-align: center; }
.template-settings-help { margin: 0; padding: 0 26px 24px; color: var(--muted); font-size: 10px; }
.student-composer-modal, .template-editor-modal { position: relative; width: min(620px,100%); max-height: calc(100vh - 36px); overflow: auto; }
.student-payment-modal { width: min(680px,100%); }
.student-entry-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 14px; }
.student-entry-grid .span-two { grid-column: 1/-1; }
.payment-balance-preview { align-self: end; min-height: 46px; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 15px; padding: 10px 13px; border: 1px solid #e7dadd; border-radius: 10px; background: #fcf8f9; }
.payment-balance-preview span { color: #7d7073; font-size: 10px; font-weight: 800; }
.payment-balance-preview strong { color: var(--rose-deep); font-size: 16px; }
.payment-current-summary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-bottom: 4px; }
.payment-current-summary > div { padding: 13px; border: 1px solid var(--line); border-radius: 12px; background: #fcf9fa; }
.payment-current-summary span, .payment-current-summary strong { display: block; }
.payment-current-summary span { color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.payment-current-summary strong { margin-top: 5px; font-size: 20px; }
.payment-complete-note { margin: 16px 0 0; padding: 13px; border: 1px solid #cbe5d3; border-radius: 11px; background: #f3faf5; color: #287b48; font-size: 11px; font-weight: 800; text-align: center; }
.payment-history-section { margin-top: 20px; overflow: hidden; border: 1px solid var(--line); border-radius: 13px; }
.payment-history-section > div:first-child { padding: 13px 15px; background: #fcf9fa; }
.payment-history-section h4 { margin: 2px 0 0; font-size: 13px; }
.payment-history-list { display: grid; }
.payment-history-list article { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 15px; border-top: 1px solid var(--line); }
.payment-history-list article > div { min-width: 0; display: grid; gap: 4px; }
.payment-history-list article > div:last-child { justify-items: end; }
.payment-history-list strong, .payment-history-list b { font-size: 11px; }
.payment-history-list span { color: var(--muted); font-size: 9px; overflow-wrap: anywhere; }
.payment-method-badge { padding: 4px 7px; border-radius: 999px; background: #f2edef; color: #685c5f !important; font-size: 8px !important; font-weight: 800; }
.payment-method-badge.cash { background: #eaf6ee; color: #2f7d49 !important; }
.payment-method-badge.link { background: #f3edfa; color: #70528c !important; }
.payment-method-badge.bank_transfer { background: #eef3fb; color: #3f6492 !important; }
.payment-history-empty { padding: 18px 15px; border-top: 1px solid var(--line); color: var(--muted); font-size: 10px; text-align: center; }
.settings-form { min-width: 0; }
.settings-form-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px 26px; border-bottom: 1px solid var(--line); }
.settings-form-heading h3 { margin: 0; font-size: 23px; letter-spacing: -.025em; }
.settings-form-heading p:last-child { margin: 7px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.settings-toggle { flex: 0 0 auto; display: flex; align-items: center; gap: 9px; cursor: pointer; }
.settings-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.settings-toggle span { position: relative; width: 43px; height: 24px; border-radius: 999px; background: #d9cfd1; transition: background .18s ease; }
.settings-toggle span::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: var(--white); box-shadow: 0 2px 7px rgba(39,23,28,.2); transition: transform .18s ease; }
.settings-toggle input:checked + span { background: var(--rose); }
.settings-toggle input:checked + span::after { transform: translateX(19px); }
.settings-toggle strong { color: #6f6265; font-size: 11px; white-space: nowrap; }
.settings-form-section { padding: 23px 26px; border-bottom: 1px solid #f0e6e8; }
.settings-section-heading { margin-bottom: 17px; }
.settings-heading-with-toggle { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.settings-heading-with-toggle > div { min-width: 0; }
.settings-toggle.compact { flex: 0 0 auto; }
.settings-section-heading h4 { margin: 0; font-size: 15px; }
.settings-section-heading p { margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.settings-field-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; }
.settings-field-grid.single-column { grid-template-columns: 1fr; }
.settings-field-grid.smtp-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.settings-field-grid .span-two { grid-column: span 2; }
.settings-field-grid label { min-width: 0; display: grid; gap: 7px; color: #6f6265; font-size: 11px; font-weight: 800; }
.settings-field-grid label > span small { color: #a09295; font-size: 9px; font-weight: 700; }
.settings-field-grid input, .settings-field-grid select, .settings-field-grid textarea { width: 100%; min-width: 0; padding: 11px 12px; border: 1px solid #dfcfd2; border-radius: 10px; background: var(--white); color: var(--ink); outline: none; }
.settings-field-grid input, .settings-field-grid select { min-height: 44px; }
.settings-field-grid textarea { min-height: 180px; resize: vertical; line-height: 1.6; }
.settings-field-grid input:focus, .settings-field-grid select:focus, .settings-field-grid textarea:focus { border-color: var(--rose); box-shadow: 0 0 0 3px rgba(184,109,121,.12); }
.email-signature-logo-preview { display: flex; align-items: center; gap: 16px; padding: 15px; border: 1px solid #eadadd; border-radius: 14px; background: #fffafb; }
.email-signature-logo-preview img { width: auto; height: auto; max-width: 180px; max-height: 72px; object-fit: contain; border-radius: 8px; background: #fff; }
.email-signature-logo-preview > div { display: grid; gap: 5px; min-width: 0; }
.email-signature-logo-preview strong { color: var(--ink); }
.email-signature-logo-preview p { margin: 0; color: #7d6e71; font-size: 11px; line-height: 1.5; }
.email-signature-logo-preview button { justify-self: start; padding: 0; border: 0; background: transparent; color: var(--rose-dark); font: inherit; font-weight: 800; text-decoration: underline; cursor: pointer; }
.configured-badge, .recommended-badge { display: inline-block; padding: 4px 7px; border-radius: 999px; background: #eaf6ee; color: #2f7d49 !important; font-size: 8px !important; font-weight: 800 !important; text-transform: uppercase; }
.settings-security-note { margin: 11px 0 0; color: #7d7275; font-size: 10px; line-height: 1.5; }
.template-help { margin: 12px 0 0; color: var(--muted); font-size: 10px; line-height: 1.8; }
.template-help code { display: inline-block; margin: 2px 2px 2px 0; padding: 3px 6px; border-radius: 6px; background: #f4edef; color: var(--rose-deep); font-family: Consolas, monospace; font-size: 9px; }
.whatsapp-method-card { display: flex; align-items: center; gap: 13px; margin: 22px 26px 0; padding: 16px; border: 1px solid #cfe8d8; border-radius: 13px; background: #f4fbf6; }
.whatsapp-method-card > div { min-width: 0; flex: 1; }
.whatsapp-method-card strong { font-size: 12px; }
.whatsapp-method-card p { margin: 4px 0 0; color: #5f7265; font-size: 10px; line-height: 1.5; }
.country-code-input { position: relative; }
.country-code-input b { position: absolute; top: 13px; left: 12px; z-index: 1; color: #8a7e81; font-size: 13px; }
.country-code-input input { padding-left: 25px; }
.settings-save-bar { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 26px; background: #fcf9fa; }
.settings-save-bar span { color: var(--muted); font-size: 10px; line-height: 1.5; }
.settings-save-bar .primary-button { flex: 0 0 auto; }

.module-summary { display: flex; align-items: stretch; gap: 12px; margin-bottom: 22px; }
.module-summary > div { min-width: 126px; display: grid; padding: 14px 17px; border: 1px solid var(--line); border-radius: 14px; background: var(--white); }
.module-summary strong { font-size: 24px; line-height: 1; }
.module-summary span { margin-top: 6px; color: var(--muted); font-size: 11px; font-weight: 700; }
.module-summary .primary-button { margin-left: auto; align-self: center; }
.section-stack { display: grid; gap: 22px; }
.section-insert-button { justify-self: center; min-height: 36px; padding: 8px 14px; border: 1px dashed #d2a5ae; border-radius: 999px; background: #fffafb; color: var(--rose-deep); font-size: 11px; font-weight: 800; }
.section-insert-button span { margin-right: 4px; font-size: 17px; }
.record-section { --course-card-colour:#f7e9ec; --course-card-text:#201a1c; min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: var(--course-card-colour); color:var(--course-card-text); box-shadow: 0 12px 34px rgba(55,35,40,.045); }
.section-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 22px; border-bottom: 1px solid rgba(80,60,65,.1); background: var(--course-card-colour); color: var(--course-card-text); }
.section-header h3 { margin: 0; font-size: 21px; letter-spacing: -.02em; overflow-wrap: anywhere; }
.section-header .eyebrow { color: inherit; opacity: .72; }
.course-card-heading { min-width: 0; }
.course-card-heading > span { display: block; margin-top: 6px; color: #6f6265; font-size: 12px; font-weight: 800; }
.section-move-controls { display: flex; gap: 5px; margin-right: 3px; }
.section-move-controls button { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 9px; background: #fcf9fa; color: var(--rose-deep); font-size: 17px; font-weight: 800; }
.section-move-controls button:disabled { cursor: not-allowed; opacity: .35; }
.table-scroll { width: 100%; overflow-x: hidden; }
.records-table { width: 100%; min-width: 0; table-layout: fixed; border-collapse: collapse; }
.records-table th:nth-child(1) { width: 12%; }
.records-table th:nth-child(2) { width: 17%; }
.records-table th:nth-child(3), .records-table th:nth-child(4), .records-table th:nth-child(5) { width: 10%; }
.records-table th:nth-child(6) { width: 20%; }
.records-table th:nth-child(7) { width: 21%; }
.records-table th, .records-table td { padding: 11px 10px; border-bottom: 1px solid #f0e6e8; text-align: left; vertical-align: middle; }
.records-table th { background: color-mix(in srgb,var(--course-card-colour) 72%,white); color: color-mix(in srgb,var(--course-card-text) 78%,#817478); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.records-table th:first-child, .records-table td:first-child { padding-left: 20px; }
.records-table th:last-child, .records-table td:last-child { padding-right: 18px; }
.records-table input, .records-table textarea { width: 100%; min-width: 0; min-height: 38px; padding: 8px 9px; border: 1px solid transparent; border-radius: 8px; background: transparent; color: var(--ink); font-size: 12px; outline: none; }
.records-table input:hover, .records-table textarea:hover { border-color: #eee0e3; background: #fdfafa; }
.records-table input:focus, .records-table textarea:focus { border-color: #d49ca6; background: var(--white); box-shadow: 0 0 0 3px rgba(184,109,121,.11); }
.records-table textarea { resize: vertical; }
.student-name-wrap { position: relative; min-width: 0; }
.student-name-wrap .name-input { padding-right: 40px; color:var(--ink); font-weight:800; }
.contact-details-button { position: absolute; top: 4px; right: 4px; width: 30px; height: 30px; display: grid; place-items: center; border: 1px dashed #d7c2c7; border-radius: 8px; background: #fff; color: #8e7c80; font-size: 14px; line-height: 1; }
.contact-details-button:hover { border-style: solid; border-color: #c58b96; color: var(--rose-deep); }
.contact-details-button.has-contact { border-style: solid; border-color: #d9aeb7; background: var(--rose-soft); color: var(--rose-deep); }
.money-input { min-width: 0; display: flex; align-items: center; border-radius: 8px; }
.money-input span { margin-right: -5px; color: #92868a; font-size: 12px; }
.money-input input { min-width: 0; padding-left: 9px; }
.readonly-money { min-height: 38px; display: flex; align-items: center; padding: 8px 9px; border: 1px solid #eee5e7; border-radius: 8px; background: #fcfafa; color: #51474a; font-size: 12px; font-weight: 800; }
.readonly-money.paid { border-color: #cbe5d3; background: #f3faf5; color: #287b48; }
.row-delete { width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid #efdde1; border-radius: 8px; background: #fff9fa; color: #a14354; font-size: 20px; line-height: 1; }
.row-message-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 5px; }
.row-email-button, .row-whatsapp-button, .row-payment-button { min-height: 32px; display: inline-flex; align-items: center; justify-content: center; gap: 4px; padding: 6px 8px; border-radius: 8px; font-size: 9px; font-weight: 800; white-space: nowrap; }
.row-payment-button { border: 1px solid #e6d8a8; background: #fffbed; color: #876817; }
.row-email-button { border: 1px solid #d9c7e8; background: #faf7fd; color: #70528c; }
.row-whatsapp-button { border: 1px solid #bfe1ca; background: #f1faf4; color: #267c48; }
.empty-table { height: 90px; color: #9a8e91; font-size: 12px; text-align: center !important; }
.records-table tfoot td { border-bottom: 0; background: color-mix(in srgb,var(--course-card-colour) 76%,white); color:var(--course-card-text); font-size: 12px; font-weight: 800; }
.add-row-button { display: flex; align-items: center; justify-content: center; gap: 6px; margin: 14px 20px 18px; padding: 9px 13px; border: 1px dashed color-mix(in srgb,var(--course-card-text) 28%,transparent); border-radius: 10px; background: color-mix(in srgb,var(--course-card-colour) 72%,white); color:var(--course-card-text); font-size: 12px; font-weight: 800; }
.add-row-button span { font-size: 18px; line-height: 0; }

.modal-backdrop { position:fixed; inset:0; z-index:50; display:flex; align-items:flex-start; justify-content:center; overflow-y:auto; padding:clamp(10px,3vh,28px) 16px; background:rgba(36,23,27,.44); backdrop-filter:blur(4px); }
.modal-card { --modal-padding:30px; position:relative; flex:0 0 auto; width:min(430px,100%); max-height:calc(100vh - 24px); max-height:calc(100dvh - 24px); overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; padding:var(--modal-padding); border:1px solid #ecdde0; border-radius:20px; background:var(--white); box-shadow:0 28px 70px rgba(39,23,28,.2); scrollbar-gutter:stable; -webkit-overflow-scrolling:touch; }
.modal-icon { width: 46px; height: 46px; display: grid; place-items: center; margin-bottom: 17px; border-radius: 14px; background: var(--rose-soft); color: var(--rose-deep); font-size: 26px; }
.modal-icon.danger { background: #fbe9ed; color: #aa3c50; font-weight: 800; }
.modal-icon.contact { font-size: 19px; font-weight: 800; }
.modal-card h3 { margin: 0 0 20px; font-size: 26px; letter-spacing: -.03em; }
.modal-card label { display: block; margin-bottom: 7px; color: #6f6265; font-size: 11px; font-weight: 800; }
.modal-card > input, .modal-field input, .modal-field select, .modal-field textarea { width: 100%; min-height: 46px; padding: 11px 13px; border: 1px solid #dfcfd2; border-radius: 10px; background: var(--white); color: var(--ink); outline: none; }
.modal-field textarea { resize: vertical; font: inherit; }
.modal-card > input:focus, .modal-field input:focus, .modal-field select:focus, .modal-field textarea:focus { border-color: var(--rose); box-shadow: 0 0 0 3px rgba(184,109,121,.12); }
.trainer-modal { position: relative; width: min(680px,100%); max-height: calc(100vh - 36px); overflow: auto; }
.modal-close { position: absolute; top: 15px; right: 17px; border: 0; background: transparent; color: #85777a; font-size: 25px; }
.trainer-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 13px; }
.trainer-form-grid .span-two { grid-column: 1/-1; }
.modal-field { margin-top: 15px; }
.modal-copy + .modal-field { margin-top: 16px; }
.modal-help { margin: 10px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.modal-copy { margin: -8px 0 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.modal-copy + label { margin-top: 16px; }
.course-modal-card { width: min(540px,100%); }
.modal-price-input { position: relative; }
.modal-price-input > span { position: absolute; top: 14px; left: 14px; z-index: 1; color: #8a7e81; font-weight: 800; }
.modal-price-input input { padding-left: 31px; }
.colour-picker { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.colour-choice { width: 36px; height: 36px; display: grid; place-items: center; padding: 3px; border: 1px solid #ddd0d3; border-radius: 10px; background: #fff; }
.colour-choice > span { width: 100%; height: 100%; display: block; border-radius: 7px; border: 1px solid rgba(70,50,55,.07); }
.colour-choice.selected { border-color: var(--rose-deep); box-shadow: 0 0 0 3px rgba(184,109,121,.13); }
.custom-colour-choice { min-height: 36px; display: inline-flex !important; align-items: center; gap: 7px; margin: 0 !important; padding: 4px 8px; border: 1px solid #ddd0d3; border-radius: 10px; background: #fff; cursor: pointer; }
.custom-colour-choice span { font-size: 9px; }
.custom-colour-choice input { width: 24px !important; min-height: 24px !important; height: 24px; padding: 0 !important; border: 0 !important; border-radius: 6px !important; }
.course-modal-preview { display: grid; gap: 4px; margin-top: 18px; padding: 14px 15px; border: 1px solid rgba(80,60,65,.1); border-radius: 12px; }
.course-modal-preview strong { font-size: 13px; overflow-wrap: anywhere; }
.course-modal-preview span { color: #6f6265; font-size: 11px; font-weight: 700; }
.course-date-list { display: grid; gap: 8px; }
.course-date-row { display: grid; grid-template-columns: minmax(0,1fr) 38px; gap: 7px; }
.course-date-row button { border: 1px solid #efdde1; border-radius: 9px; background: #fff9fa; color: #a14354; font-size: 19px; }
.course-date-row button:disabled { cursor: not-allowed; opacity: .35; }
.add-course-date-button { width: 100%; min-height: 38px; margin-top: 8px; border: 1px dashed #d5a9b1; border-radius: 9px; background: #fffafb; color: var(--rose-deep); font-size: 10px; font-weight: 800; }
.course-date-conflict { display: grid; gap: 3px; margin-top: 10px; padding: 11px 12px; border: 1px solid #d99aa4; border-radius: 10px; background: #fff3f5; color: #7b2937; font-size: 11px; line-height: 1.45; }
.course-date-conflict[hidden] { display: none; }
.course-date-conflict strong { font-size: 12px; }
.course-date-conflict span { overflow-wrap: anywhere; }
.course-modal-card button[type="submit"]:disabled { opacity: .5; cursor: not-allowed; }
.communication-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin-top: 18px; }
.communication-actions button { min-height: 42px; padding: 9px 11px; border-radius: 10px; font-size: 10px; font-weight: 800; }
.email-action-button { border: 1px solid #d9c7e8; background: #faf7fd; color: #70528c; }
.whatsapp-action-button { border: 1px solid #bfe1ca; background: #f1faf4; color: #267c48; }
.communication-disabled-note { margin: 16px 0 0; padding: 10px 12px; border: 1px dashed #ddc8cd; border-radius: 9px; background: #fdfafb; color: var(--muted); font-size: 10px; line-height: 1.5; }
.modal-actions { position:static; justify-content:flex-end; margin:22px 0 0; padding:14px 0 0; border-top:1px solid #eee1e4; background:#fff; box-shadow:none; }
.toast { position: fixed; right: 24px; bottom: 24px; z-index: 60; max-width: min(390px,calc(100vw - 32px)); padding: 13px 17px; border: 1px solid #ddc0c6; border-radius: 12px; background: #3a2a2e; color: var(--white); font-size: 12px; font-weight: 700; box-shadow: 0 14px 36px rgba(35,21,25,.2); }

.login-body { background: linear-gradient(135deg,#faf7f7,#f4e9eb); }
.login-page { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
.login-card { width: min(440px,100%); padding: 34px; border: 1px solid var(--line); border-radius: 24px; background: var(--white); box-shadow: 0 28px 75px rgba(66,38,45,.13); }
.login-card > img { width: 210px; height: 105px; display: block; margin: 0 auto 22px; object-fit: contain; }
.login-card h1 { margin: 0; font-size: 32px; letter-spacing: -.035em; }
.login-copy { margin: 10px 0 24px; color: var(--muted); font-size: 14px; line-height: 1.6; }
.login-form { display: grid; gap: 9px; }
.login-form label { color: #6f6265; font-size: 11px; font-weight: 800; }
.login-form input { width: 100%; min-height: 46px; padding: 11px 13px; border: 1px solid #dfcfd2; border-radius: 10px; outline: none; }
.login-form input:focus { border-color: var(--rose); box-shadow: 0 0 0 3px rgba(184,109,121,.12); }
.login-form button, .setup-link { min-height: 46px; display: grid; place-items: center; margin-top: 8px; padding: 11px 14px; border: 0; border-radius: 11px; background: var(--rose); color: var(--white); font-weight: 800; }
.login-error, .setup-success { margin: 6px 0; padding: 10px 12px; border-radius: 9px; font-size: 12px; }
.login-error { background: #fff0f2; color: #a14354; }
.setup-success { background: #eef8f1; color: #357448; }
.login-footer { margin: 22px 0 0; color: #9e9295; font-size: 10px; text-align: center; }
.setup-card strong { color: var(--ink); }
.migration-list { display: grid; gap: 6px; margin: 12px 0 16px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: #fcf9fa; color: var(--muted); font-size: 11px; }

@media (max-width: 1100px) {
  .student-directory-grid { grid-template-columns: 1fr; }
  .trainer-grid { grid-template-columns: 1fr; }
  .workspace { padding-inline: 22px; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .settings-layout { grid-template-columns: 1fr; }
  .settings-tabs { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 820px) {
  .template-columns { grid-template-columns: 1fr; }
  .app-shell { grid-template-columns: 1fr; }
  .sidebar { position: relative; height: auto; padding: 15px; border-right: 0; border-bottom: 1px solid var(--line); }
  .brand-panel { grid-template-columns: 110px 1fr auto; align-items: center; padding-bottom: 14px; }
  .brand-logo { width: 110px; height: 56px; }
  .mobile-menu-button { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 10px; background: var(--white); color: var(--rose-deep); font-size: 20px; }
  .sidebar-body { display: none; }
  .sidebar.open .sidebar-body { display: flex; max-height: 70vh; padding-top: 4px; }
  .workspace { padding: 24px 16px 34px; }
  .topbar { align-items: flex-start; }
  .header-actions { flex-wrap: wrap; justify-content: flex-end; }
  .dashboard-heading-card { align-items: flex-start; flex-direction: column; }
  .courses-intro { align-items: flex-start; }
  .month-filter { width: 100%; min-width: 0; }
  .month-filter input { flex: 1; min-width: 0; }
  .dashboard-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .settings-form-heading { align-items: flex-start; }
  .settings-field-grid.smtp-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .module-summary { flex-wrap: wrap; }
  .module-summary > div { flex: 1; }
  .module-summary .primary-button { width: 100%; margin-left: 0; }
  .section-header { align-items: flex-start; flex-direction: column; gap: 14px; padding: 18px; }
  .section-actions { width: 100%; flex-wrap: wrap; }
  .section-actions .secondary-button, .section-actions .danger-button { flex: 1 1 110px; }
  .table-scroll { padding: 14px; overflow: visible; }
  .records-table { display: block; border-collapse: separate; }
  .records-table thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
  .records-table tbody, .records-table tfoot { display: block; }
  .records-table tbody { display: grid; gap: 12px; }
  .records-table .record-data-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; padding: 15px; border: 1px solid var(--line); border-radius: 14px; background: var(--white); box-shadow: 0 7px 18px rgba(55,35,40,.04); }
  .records-table .record-data-row td { min-width: 0; display: block; padding: 0; border: 0; }
  .records-table .record-data-row td::before, .records-table tfoot td[data-label]::before { content: attr(data-label); display: block; margin: 0 0 5px 2px; color: #817478; font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
  .records-table input, .records-table textarea { border-color: #eee0e3; background: #fdfafa; }
  .money-input { position: relative; }
  .money-input span { position: absolute; left: 10px; z-index: 1; margin: 0; }
  .money-input input { padding-left: 24px; }
  .row-actions-cell { grid-column: 1/-1; align-self: end; }
  .row-message-actions { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)) 42px; }
  .row-email-button, .row-whatsapp-button, .row-payment-button, .row-delete { width: 100%; height: 38px; }
  .records-table .empty-record-row { grid-template-columns: 1fr; padding: 0; border: 0; background: transparent; box-shadow: none; }
  .records-table .empty-record-row::after { content: "No students yet. Use the plus button below."; min-height: 90px; display: grid; place-items: center; padding: 24px 16px; border: 1px dashed var(--line); border-radius: 14px; color: #9a8e91; font-size: 12px; text-align: center; }
  .empty-table { display: none !important; }
  .records-table tfoot { margin-top: 14px; }
  .records-table tfoot tr { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; overflow: hidden; border: 1px solid #ead7dc; border-radius: 13px; background: #ead7dc; }
  .records-table tfoot td { min-width: 0; display: block; padding: 12px 10px; border: 0; text-align: center; }
  .records-table tfoot .total-heading { grid-column: 1/-1; padding: 11px 12px; text-align: left; }
  .records-table tfoot .total-spacer { display: none; }
  .add-row-button { width: calc(100% - 28px); min-height: 44px; margin: 0 14px 16px; }
}

@media (max-width: 520px) {
  .template-columns { padding-inline: 14px; }
  .saved-template-card { flex-direction: column; }
  .student-profile-heading { grid-template-columns: 42px minmax(0,1fr); padding-inline: 14px; }
  .student-profile-heading > b { grid-column: 2; justify-self: start; }
  .student-profile-actions { padding-inline: 14px; }
  .student-course-item { grid-template-columns: 1fr; padding-inline: 14px; }
  .student-course-money { grid-template-columns: repeat(3,1fr); text-align: left; }
  .student-communication-item { grid-template-columns: 1fr; padding-inline: 14px; }
  .trainer-form-grid, .trainer-contact-grid { grid-template-columns: 1fr; }
  .student-entry-grid { grid-template-columns: 1fr; }
  .student-entry-grid .span-two { grid-column: auto; }
  .trainer-form-grid .span-two, .trainer-contact-grid .wide { grid-column: auto; }
  .trainer-card-heading, .trainer-files-heading, .trainer-file-item { align-items: stretch; flex-direction: column; }
  .trainer-search-row, .trainer-document-summary, .trainer-documents-modal-head { align-items:stretch; flex-direction:column; }
  .trainer-search-row label { min-width:0; }
  .trainer-search-row > span { white-space:normal; }
  .trainer-document-summary .secondary-button, .trainer-documents-modal-head .primary-button { width:100%; }
  .brand-panel { grid-template-columns: 86px 1fr auto; }
  .brand-logo { width: 86px; height: 52px; }
  .brand-panel h1 { font-size: 14px; }
  .topbar { flex-direction: column; }
  .header-actions { width: 100%; justify-content: flex-start; }
  .workspace { padding: 19px 10px 28px; }
  .dashboard-heading-card { padding: 18px; }
  .month-filter > div { align-items: stretch; flex-direction: column; }
  .dashboard-stats { grid-template-columns: 1fr; }
  .courses-intro { flex-direction: column; padding: 18px; }
  .courses-intro .primary-button { width: 100%; }
  .course-catalog-grid { grid-template-columns: 1fr; }
  .settings-intro, .settings-form-heading, .settings-save-bar { align-items: flex-start; flex-direction: column; }
  .settings-tabs, .settings-field-grid, .settings-field-grid.smtp-grid { grid-template-columns: 1fr; }
  .settings-field-grid .span-two { grid-column: auto; }
  .email-signature-logo-preview { align-items: flex-start; flex-direction: column; }
  .settings-form-heading, .settings-form-section, .settings-save-bar { padding-inline: 18px; }
  .settings-save-bar .primary-button { width: 100%; }
  .whatsapp-method-card { align-items: flex-start; flex-wrap: wrap; margin-inline: 18px; }
  .recommended-badge { margin-left: 49px; }
  .dashboard-stats article { padding: 16px; }
  .dashboard-table { min-width: 560px; }
  .section-stack { gap: 16px; }
  .record-section { border-radius: 14px; }
  .section-header { padding: 16px 14px; }
  .section-actions { display: grid; grid-template-columns: auto 1fr 1fr; }
  .section-actions .secondary-button, .section-actions .danger-button { width: 100%; padding-inline: 9px; }
  .table-scroll { padding: 10px; }
  .records-table .record-data-row { grid-template-columns: 1fr; padding: 13px; }
  .row-message-actions { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .row-delete { grid-column: 2; }
  .records-table tfoot tr { grid-template-columns: 1fr; }
  .records-table tfoot .total-heading { grid-column: auto; }
  .records-table tfoot td, .records-table tfoot .total-heading { text-align: left; }
  .add-row-button { width: calc(100% - 20px); margin: 0 10px 12px; }
  .section-insert-button { width: min(100%,220px); }
  .modal-card { --modal-padding:24px; }
  .modal-card, .login-card { padding: 24px; }
  .communication-actions { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .month-header-actions { width:100%; justify-items:stretch; }
  .main-module-menu,.month-option-menu { justify-content:flex-start; }
  .document-card { grid-template-columns:auto minmax(0,1fr); }
  .document-actions { grid-column:1/-1; }
}

@media (max-width: 560px) {
  .course-handbook-panel { align-items:flex-start; flex-direction:column; }
  .document-card { grid-template-columns:1fr; }
  .document-icon { display:none; }
}

.course-handbook-panel{margin:4px 18px 0;padding:16px 0 12px}.course-handbook-panel>div:first-child{display:flex;align-items:center;gap:10px}.course-document-icon{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border-radius:10px;background:var(--catalog-colour);color:#6d4b53}.course-upload-button{white-space:nowrap}.course-document-list,.document-choice-list{grid-column:1/-1;display:grid;gap:8px;width:auto;margin:0 18px 18px}.course-document-item,.document-choice{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:#fff}.document-number{width:26px;height:26px;display:grid;place-items:center;flex:0 0 auto;border-radius:8px;background:#f7edef;color:var(--rose-deep);font-size:10px;font-weight:900}.document-file-copy,.document-choice>span{display:grid;gap:2px;min-width:0;flex:1}.document-file-copy strong{overflow-wrap:anywhere;font-size:11px}.course-document-item small,.document-choice small{color:var(--muted)}.document-file-actions{display:flex;flex-direction:row;gap:6px}.course-document-empty{grid-column:1/-1;margin:0 18px 18px;padding:12px;border:1px dashed #ddc8cd;border-radius:12px;background:#fffafb;color:var(--muted);font-size:10px;line-height:1.5}.document-choice{justify-content:flex-start;cursor:pointer}.document-choice input{width:18px;height:18px;flex:0 0 auto}.select-all-choice{margin:14px 0 8px;background:var(--surface-soft)}

@media(max-width:560px){.course-document-item{align-items:flex-start;flex-wrap:wrap}.document-file-actions{width:100%;padding-left:36px}.document-file-actions a,.document-file-actions button{flex:1}.course-handbook-panel{margin-inline:14px}.course-document-list,.course-document-empty{margin-inline:14px}.modal-actions{display:grid;grid-template-columns:1fr 1fr}.modal-actions button{width:100%}}

.communication-type-list{display:grid;gap:10px;margin-top:20px}.communication-type-card{width:100%;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff;text-align:left}.communication-type-card:hover:not(:disabled){border-color:#d5a9b1;background:#fffafb;transform:translateY(-1px)}.communication-type-card:disabled{cursor:not-allowed;opacity:.52;background:#f6f3f4}.communication-type-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:var(--rose-soft);color:var(--rose-deep);font-size:18px;font-weight:900}.communication-type-card>span:nth-child(2){display:grid;gap:4px}.communication-type-card strong{font-size:13px}.communication-type-card small{color:var(--muted);font-size:10px;line-height:1.45}.communication-type-card>b{color:var(--rose-deep);font-size:24px}.communication-choice-modal{width:min(500px,100%)}

@container(max-width:440px){.course-handbook-panel{align-items:stretch;flex-direction:column}.course-handbook-panel>div:last-child,.course-upload-button{width:100%}.course-document-item{align-items:flex-start;flex-wrap:wrap}.document-file-actions{width:100%;padding-left:36px}.document-file-actions a,.document-file-actions button{flex:1}.course-catalog-copy{padding-inline:15px}.course-catalog-actions{padding-inline:15px}.course-handbook-panel,.course-document-list,.course-document-empty{margin-inline:15px}}

@media(max-width:700px){.courses-intro{align-items:stretch;flex-direction:column}.courses-intro .primary-button{width:100%}.course-catalog-grid{grid-template-columns:minmax(0,1fr)}}

/* Laptop navigation: keep the module menu centred and allow clean wrapping. */
@media (min-width:821px) and (max-width:1450px) {
  .topbar { width:100%; display:grid; grid-template-columns:minmax(0,1fr); align-items:start; justify-items:center; }
  .topbar > div:first-child { min-width:0; justify-self:start; text-align:left; }
  .topbar > .header-actions,.topbar > .month-header-actions { width:100%; min-width:0; }
  .topbar > .header-actions,.main-module-menu,.month-option-menu { justify-content:center; flex-wrap:wrap; }
  .month-header-actions { justify-items:stretch; }
}

/* Unified left navigation */
.sidebar-body { min-height:0; flex:1; display:flex; flex-direction:column; overflow:hidden; }
.sidebar-nav { min-height:0; display:grid; align-content:start; gap:16px; padding:16px 2px 10px; overflow-y:auto; overflow-x:hidden; }
.sidebar-group { display:grid; gap:5px; }
.sidebar-group-label { margin:0 8px 3px; color:#9a8d90; font-size:10px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.sidebar-months-group { padding:11px 8px 12px; border:1px solid #f0e5e7; border-radius:15px; background:#fdfafa; }
.sidebar-months-group .modules-heading { margin:0 2px 8px; }
.sidebar-months-group .module-list { margin:0 0 7px; overflow:visible; }
.nav-item { position:relative; min-height:42px; padding:10px 11px; border:1px solid transparent; }
.nav-item:hover { border-color:#f0e1e4; background:#fcf8f9; color:#65575a; }
.nav-item.active { border-color:#ecd6db; box-shadow:inset 3px 0 0 var(--rose); }
.nav-icon { flex:0 0 28px; width:28px; height:28px; border:1px solid #f0e4e6; color:var(--rose-deep); font-size:15px; font-weight:900; }
.nav-item.active .nav-icon { border-color:#e2bdc4; background:#fff; }
.sidebar-mail-badge { margin-left:auto; }
.sidebar-view-all { width:100%; min-height:35px; display:flex; align-items:center; gap:8px; padding:7px 10px; border:0; border-radius:9px; background:transparent; color:#75686b; font-size:11px; font-weight:800; text-align:left; }
.sidebar-view-all span { color:var(--rose-deep); }
.sidebar-view-all:hover,.sidebar-view-all.active { background:#f7e9ec; color:var(--rose-deep); }
.sidebar-months-group .add-module-button { min-height:37px; padding:8px 10px; font-size:11px; box-shadow:none; }
.sidebar-footer { margin-top:auto; padding:8px 2px 0; border-top:1px solid var(--line); }
.sidebar-footer .logout-button { display:block; margin-top:0; }

/* All Months directory */
.months-directory { max-width:1500px; margin:0 auto; display:grid; gap:18px; }
.months-directory-intro { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:24px; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:0 12px 32px rgba(55,35,40,.05); }
.months-directory-intro h3 { margin:3px 0 7px; font-size:22px; }
.months-directory-intro p:not(.eyebrow) { max-width:760px; margin:0; color:var(--muted); font-size:12px; line-height:1.6; }
.months-search-row { display:flex; align-items:end; justify-content:space-between; gap:16px; padding:16px 18px; border:1px solid var(--line); border-radius:15px; background:#fff; }
.months-search-row label { min-width:min(520px,100%); display:grid; gap:6px; }
.months-search-row label span { color:#85787b; font-size:10px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.months-search-row input { width:100%; min-height:42px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; outline:none; }
.months-search-row input:focus { border-color:#d49ca6; box-shadow:0 0 0 3px rgba(184,109,121,.11); }
.months-search-row > span { color:#8e8184; font-size:11px; font-weight:800; }
.months-year-list { display:grid; gap:20px; }
.months-year-group { display:grid; gap:10px; }
.months-year-heading { display:flex; align-items:center; justify-content:space-between; padding:0 4px; }
.months-year-heading h3 { margin:0; font-size:18px; }
.months-year-heading span { color:#938689; font-size:10px; font-weight:800; }
.months-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.month-directory-card { min-width:0; display:grid; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; gap:12px; padding:15px; border:1px solid var(--line); border-radius:14px; background:#fff; color:var(--ink); text-align:left; box-shadow:0 8px 24px rgba(55,35,40,.035); }
.month-directory-card:hover { border-color:#d8aeb6; background:#fffafb; transform:translateY(-1px); }
.month-directory-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:12px; background:var(--rose-soft); color:var(--rose-deep); font-size:17px; }
.month-directory-card > span:nth-child(2) { min-width:0; display:grid; gap:3px; }
.month-directory-card strong { overflow:hidden; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }
.month-directory-card small { color:#928589; font-size:10px; }
.month-directory-card b { color:var(--rose-deep); font-size:10px; white-space:nowrap; }

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

@media (max-width:820px) {
  .sidebar.open .sidebar-body { max-height:calc(100vh - 96px); padding-top:4px; overflow:hidden; }
  .sidebar-nav { max-height:calc(100vh - 185px); padding-top:12px; }
  .sidebar-footer { flex:0 0 auto; }
  .months-directory-intro { align-items:flex-start; flex-direction:column; }
  .months-search-row { align-items:stretch; flex-direction:column; }
  .months-search-row label { min-width:0; }
}

@media (max-width:560px) {
  .months-card-grid { grid-template-columns:1fr; }
  .month-directory-card { grid-template-columns:38px minmax(0,1fr) auto; padding:13px; }
  .month-directory-icon { width:38px; height:38px; }
  .months-directory-intro { padding:18px; }
}

@media (max-width:820px) {
  .sidebar-body { display:none; }
  .sidebar.open .sidebar-body { display:flex; }
}

/* Leads crm + meta lead ads */
.sidebar-count-badge{margin-left:auto;min-width:22px;height:22px;padding:0 6px;display:inline-grid;place-items:center;border-radius:999px;background:var(--rose-deep);color:#fff;font-size:9px;font-weight:900}
.leads-view{max-width:1600px;margin:0 auto;display:grid;gap:18px}.lead-stats-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.lead-stats-grid article{min-width:0;padding:16px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(55,35,40,.035)}.lead-stats-grid span{display:block;color:#7d7073;font-size:10px;font-weight:800}.lead-stats-grid strong{display:block;margin:5px 0 3px;font-size:26px;line-height:1;color:var(--ink)}.lead-stats-grid small{color:#9b8e91;font-size:9px}.leads-toolbar-card,.lead-table-card{border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:0 10px 30px rgba(55,35,40,.04)}.leads-toolbar-card{padding:14px}.lead-filter-form{display:grid;grid-template-columns:minmax(280px,2fr) minmax(160px,1fr) minmax(150px,1fr) auto auto;gap:10px;align-items:end}.lead-filter-form label{display:grid;gap:5px}.lead-filter-form label>span{color:#887b7e;font-size:9px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.lead-filter-form input,.lead-filter-form select{min-height:40px;width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#fff;outline:none}.lead-filter-form input:focus,.lead-filter-form select:focus{border-color:#d49ca6;box-shadow:0 0 0 3px rgba(184,109,121,.1)}.lead-table-card{overflow:hidden}.lead-table-card .dashboard-panel-heading{padding:16px 18px;border-bottom:1px solid var(--line)}.lead-table-scroll{width:100%;overflow:auto}.lead-table{width:100%;min-width:1120px;border-collapse:collapse}.lead-table th{padding:10px 12px;background:#fcf9fa;color:#8a7d80;font-size:9px;font-weight:900;letter-spacing:.06em;text-align:left;text-transform:uppercase;white-space:nowrap}.lead-table td{padding:12px;border-top:1px solid #f1e8ea;vertical-align:top;font-size:10px;color:#51484a}.lead-table tbody tr:hover{background:#fffafb}.lead-contact-cell{display:grid;gap:2px;min-width:190px}.lead-contact-cell strong{font-size:12px;color:var(--ink)}.lead-contact-cell span{color:#74686b;overflow-wrap:anywhere}.lead-table-sub{display:block;max-width:220px;margin-top:4px;color:#94878a;font-size:9px;line-height:1.35}.repeat-lead{display:inline-flex;width:max-content;margin-top:4px;padding:3px 6px;border-radius:999px;background:#fff4dc;color:#8b6623;font-size:8px;font-weight:800}.lead-source-badge,.lead-status-badge,.lead-enrolled-chip{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:5px 8px;border-radius:999px;background:#f2eff0;color:#655b5e;font-size:8px;font-weight:900;letter-spacing:.03em;white-space:nowrap}.lead-source-badge.meta{background:#edf3ff;color:#315f9d}.lead-status-badge.status-new{background:#fff0f3;color:#9b3f53}.lead-status-badge.status-contacted{background:#eef4ff;color:#356297}.lead-status-badge.status-interested{background:#eef8f0;color:#37724a}.lead-status-badge.status-follow_up,.lead-status-badge.status-future_lead{background:#fff6dd;color:#89651c}.lead-status-badge.status-awaiting_deposit{background:#fff0d7;color:#8d5d11}.lead-status-badge.status-deposit_paid{background:#e8f7ef;color:#26714a}.lead-status-badge.status-enrolled,.lead-enrolled-chip{background:#e8f7ed;color:#276b43}.lead-status-badge.status-no_answer,.lead-status-badge.status-not_interested,.lead-status-badge.status-wrong_number,.lead-status-badge.status-lost{background:#f2f0f0;color:#776c6e}.lead-followup-due{color:#a24b5a}.lead-row-actions{display:flex;align-items:center;gap:6px;white-space:nowrap}.primary-button.compact,.secondary-button.compact{min-height:30px;padding:6px 9px;font-size:9px}.lead-pagination{display:flex;align-items:center;justify-content:center;gap:14px;padding:14px;border-top:1px solid var(--line)}.lead-pagination span{font-size:10px;font-weight:800;color:#7c7073}
.lead-editor-modal{width:min(760px,100%)}.lead-editor-grid,.lead-convert-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.lead-editor-grid .span-two,.lead-convert-grid .span-two{grid-column:1/-1}.lead-editor-grid .checkbox-line{align-self:center}.lead-detail-modal{width:min(980px,100%);max-height:min(90vh,900px);overflow:auto}.lead-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.lead-detail-header h3{margin:2px 0 5px;font-size:24px}.lead-detail-contact{display:flex;flex-wrap:wrap;gap:10px}.lead-detail-contact a{color:var(--rose-deep);font-size:11px;font-weight:800;text-decoration:none}.lead-detail-actions{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0}.lead-detail-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.lead-detail-summary>div{padding:12px;border:1px solid var(--line);border-radius:12px;background:#fcf9fa}.lead-detail-summary span{display:block;color:#918487;font-size:8px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.lead-detail-summary strong{display:block;margin-top:4px;font-size:10px;overflow-wrap:anywhere}.lead-detail-section{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.lead-section-heading{margin-bottom:10px}.lead-section-heading h4{margin:2px 0;font-size:14px}.lead-notes-text{margin:0;padding:12px;border-radius:12px;background:#fcf9fa;color:#5c5254;font-size:10px;line-height:1.6;white-space:pre-wrap}.lead-attribution-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.lead-attribution-grid>div{padding:10px;border:1px solid #f0e6e8;border-radius:10px;background:#fff}.lead-attribution-grid span{display:block;color:#9a8c90;font-size:8px;font-weight:900;text-transform:uppercase}.lead-attribution-grid strong{display:block;margin-top:3px;font-size:9px;overflow-wrap:anywhere}.lead-no-attribution{color:var(--muted);font-size:10px}.lead-activity-list{display:grid;gap:0}.lead-activity-list article{position:relative;display:grid;grid-template-columns:16px minmax(0,1fr);gap:9px;padding:0 0 14px}.lead-activity-list article:not(:last-child):before{content:"";position:absolute;left:6px;top:14px;bottom:0;width:1px;background:#eadde0}.lead-activity-dot{width:13px;height:13px;margin-top:2px;border-radius:999px;border:3px solid #f4dce1;background:var(--rose-deep);z-index:1}.lead-activity-list strong{font-size:10px}.lead-activity-list p{margin:4px 0;color:#665b5e;font-size:9px;line-height:1.5;white-space:pre-wrap}.lead-activity-list small{color:#9a8d90;font-size:8px}.lead-activity-empty{padding:12px;border:1px dashed #dfd1d4;border-radius:10px;color:#93878a;font-size:10px}.repeat-enquiries>div:last-child{display:grid;gap:6px}.repeat-enquiries button{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;text-align:left}.repeat-enquiries button:hover{background:#fffafb}.repeat-enquiries button strong{font-size:9px}.repeat-enquiries button span{color:#918588;font-size:8px}.lead-convert-modal{width:min(760px,100%)}
.meta-settings-wrap{display:grid;gap:18px}.meta-webhook-section{display:grid;gap:11px}.meta-copy-field{display:grid;gap:5px}.meta-copy-field>span{color:#817477;font-size:9px;font-weight:900;text-transform:uppercase}.meta-copy-field>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.meta-copy-field input{width:100%;min-height:40px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#f9f7f8;color:#655b5e;font-size:10px}.meta-setup-note{display:grid;gap:4px;padding:12px;border:1px solid #e5d6d9;border-radius:12px;background:#fffafb}.meta-setup-note strong{font-size:10px}.meta-setup-note span{color:#776b6e;font-size:9px;line-height:1.5}.meta-settings-actions>div,.meta-form-buttons{display:flex;flex-wrap:wrap;gap:7px}.meta-form-placeholder{padding:18px;border:1px dashed #ddced1;border-radius:13px;background:#fcfafb;text-align:center}.meta-form-placeholder strong{font-size:11px}.meta-form-placeholder p{margin:5px 0 0;color:var(--muted);font-size:9px}.meta-form-mapping-list{display:grid;gap:8px}.meta-form-mapping-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(260px,1.4fr) auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}.meta-form-mapping-row>div{display:grid;gap:3px}.meta-form-mapping-row>div strong{font-size:10px}.meta-form-mapping-row>div span{color:#95888b;font-size:8px}.meta-form-mapping-row label{display:grid;gap:4px}.meta-form-mapping-row label>span{color:#877a7d;font-size:8px;font-weight:800}.meta-form-mapping-row select{min-height:36px;padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:9px}.checkbox-line.compact{display:flex;grid-template-columns:none;align-items:center;white-space:nowrap}.checkbox-line.compact input{width:16px;height:16px}.checkbox-line.compact span{font-size:8px}.meta-forms-settings{padding:20px}
@media(max-width:1300px){.lead-stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.lead-filter-form{grid-template-columns:minmax(240px,2fr) minmax(150px,1fr) minmax(140px,1fr);}.lead-filter-form>button{width:100%}.meta-form-mapping-row{grid-template-columns:1fr 1.2fr}.meta-form-mapping-row .checkbox-line{grid-column:1/-1}}
@media(max-width:900px){.lead-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lead-filter-form{grid-template-columns:1fr 1fr}.lead-filter-form label:first-child{grid-column:1/-1}.lead-detail-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.lead-attribution-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.meta-form-mapping-row{grid-template-columns:1fr}.meta-form-mapping-row .checkbox-line{grid-column:auto}}
@media(max-width:560px){.lead-stats-grid{grid-template-columns:1fr 1fr}.lead-stats-grid strong{font-size:22px}.lead-filter-form,.lead-editor-grid,.lead-convert-grid{grid-template-columns:1fr}.lead-filter-form label:first-child,.lead-editor-grid .span-two,.lead-convert-grid .span-two{grid-column:auto}.lead-detail-header{flex-direction:column}.lead-detail-summary,.lead-attribution-grid{grid-template-columns:1fr}.lead-detail-actions>*{flex:1}.meta-copy-field>div{grid-template-columns:1fr}.meta-settings-actions{align-items:stretch;flex-direction:column}.meta-settings-actions>div>*{flex:1}.meta-form-buttons{width:100%}.meta-form-buttons>*{flex:1}}

/* Leads inbox workflow */
.inbox-stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.inbox-toolbar-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:end}.lead-inbox-tabs{display:flex;gap:5px;align-items:center;padding:3px;border:1px solid var(--line);border-radius:11px;background:#fcf9fa}.lead-inbox-tabs button{min-height:36px;padding:7px 12px;border:0;border-radius:8px;background:transparent;color:#776b6e;font:inherit;font-size:10px;font-weight:850;cursor:pointer}.lead-inbox-tabs button:hover{background:#fff}.lead-inbox-tabs button.active{background:#fff;color:var(--rose-deep);box-shadow:0 2px 10px rgba(70,45,51,.08)}.lead-inbox-tabs button span{display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;margin-left:4px;padding:0 5px;border-radius:999px;background:#f4e2e6;font-size:8px}.inbox-filter-form{grid-template-columns:minmax(280px,1.7fr) minmax(160px,.8fr) auto auto}.inbox-lead-table{min-width:1220px}.inbox-lead-table th:first-child,.inbox-lead-table td:first-child{width:34px;padding-left:14px;padding-right:4px}.inbox-lead-table th:nth-child(2){min-width:220px}.inbox-lead-table th:nth-child(3){min-width:220px}.inbox-lead-table th:nth-child(4){min-width:230px}.inbox-lead-table th:nth-child(5){min-width:230px}.inbox-lead-table th:nth-child(6){min-width:130px}.inbox-lead-table th:nth-child(7){min-width:140px}.inbox-lead-table tr.lead-is-unread td{background:#fff9fa}.inbox-lead-table tr.lead-is-unread .lead-name-button{font-weight:950}.inbox-lead-table tr.lead-is-read{opacity:.9}.lead-read-cell{vertical-align:middle!important}.lead-read-toggle{display:grid;place-items:center;width:26px;height:26px;padding:0;border:0;background:transparent;cursor:pointer}.lead-read-toggle span{display:block;width:10px;height:10px;border-radius:999px;border:2px solid #c6b9bc;background:#fff}.lead-read-toggle.unread span{border-color:var(--rose-deep);background:var(--rose-deep);box-shadow:0 0 0 4px rgba(181,92,110,.1)}.lead-name-button{display:block;padding:0;border:0;background:transparent;color:var(--ink);font:inherit;font-size:12px;font-weight:800;text-align:left;cursor:pointer}.lead-name-button:hover{color:var(--rose-deep);text-decoration:underline}.lead-source-context{display:grid;gap:4px;max-width:250px}.lead-source-context strong{font-size:10px;color:#4d4446;line-height:1.35}.lead-source-context span:not(.lead-source-badge){color:#918589;font-size:8px;line-height:1.35}.lead-note-cell{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:start;max-width:300px}.lead-note-button{min-height:28px;padding:5px 8px;border:1px solid #e2d5d8;border-radius:8px;background:#fff;color:var(--rose-deep);font-size:8px;font-weight:900;cursor:pointer;white-space:nowrap}.lead-note-button:hover{background:#fff7f8}.lead-note-cell>span{display:-webkit-box;overflow:hidden;color:#665b5e;font-size:9px;line-height:1.4;-webkit-line-clamp:2;-webkit-box-orient:vertical}.lead-note-cell>span.empty{color:#a4999c;font-style:italic}.lead-contact-actions{display:flex;flex-wrap:wrap;gap:5px}.lead-contact-actions .compact{min-height:28px;padding:5px 8px}.lead-received-date{display:block;color:#716568;font-size:9px;line-height:1.4}.place-course-button{white-space:nowrap}.lead-read-state{display:inline-flex;padding:5px 8px;border-radius:999px;background:#f2eff0;color:#6f6467;font-size:8px;font-weight:900}.lead-read-state.read{background:#eef5ff;color:#416788}.lead-convert-grid #lead-convert-email{width:100%}
@media(max-width:1200px){.inbox-toolbar-card{grid-template-columns:1fr}.lead-inbox-tabs{width:max-content}.inbox-filter-form{grid-template-columns:minmax(220px,1.6fr) minmax(150px,.8fr) auto auto}}
@media(max-width:760px){.inbox-stats-grid{grid-template-columns:1fr 1fr}.inbox-filter-form{grid-template-columns:1fr 1fr}.inbox-filter-form label:first-child{grid-column:1/-1}.lead-inbox-tabs{width:100%;overflow:auto}.lead-inbox-tabs button{flex:1}.lead-note-cell{grid-template-columns:1fr}.lead-contact-actions{min-width:210px}}

/* Advanced ui polish + darker younique palette */
:root{
  --rose:#a65566;
  --rose-deep:#803a4a;
  --rose-soft:#f1dfe4;
  --ink:#21191c;
  --muted:#685d60;
  --line:#dfcfd3;
  --canvas:#f3edef;
  --white:#fff;
  --panel-shadow:0 14px 38px rgba(59,32,39,.075);
}
body{background:linear-gradient(180deg,#f6f1f2 0%,var(--canvas) 100%);}
.sidebar{background:linear-gradient(180deg,#fff 0%,#fbf5f7 100%);border-right-color:#d9c6cb;box-shadow:12px 0 34px rgba(70,38,47,.055)}
.brand-panel{border-bottom-color:#ddcbd0}.brand-panel h1{color:#2b2023;font-weight:850}
.nav-item,.module-item{transition:background .16s ease,color .16s ease,transform .16s ease,border-color .16s ease}
.nav-item:hover,.module-item:hover{background:#f7ecef;color:var(--rose-deep);transform:translateX(2px)}
.nav-item.active,.module-item.active{position:relative;background:linear-gradient(90deg,#edd5dc 0%,#f6e9ec 100%);color:#743443;box-shadow:inset 0 0 0 1px #e2c2ca}
.nav-item.active:before,.module-item.active:before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:0 4px 4px 0;background:var(--rose-deep)}
.nav-icon{box-shadow:0 2px 8px rgba(66,39,46,.06)}
.workspace{padding-top:22px}
.topbar{position:sticky;top:0;z-index:35;min-height:72px;margin-bottom:22px;padding:12px 14px;border:1px solid rgba(220,202,207,.82);border-radius:18px;background:rgba(250,246,247,.90);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 10px 30px rgba(66,38,45,.055)}
.topbar h2{color:#261d20;font-size:clamp(27px,2.6vw,36px)}
.primary-button,.secondary-button,.danger-button,.confirm-delete-button{border-radius:11px;transition:transform .14s ease,box-shadow .14s ease,background .14s ease,border-color .14s ease}
.primary-button{border-color:var(--rose-deep);background:linear-gradient(180deg,#ad5b6c 0%,#914656 100%);box-shadow:0 8px 20px rgba(128,58,74,.20)}
.primary-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 11px 24px rgba(128,58,74,.25)}
.secondary-button{border-color:#d9c7cc;background:#fff;color:#574a4e;box-shadow:0 2px 8px rgba(55,35,40,.035)}
.secondary-button:hover:not(:disabled){border-color:#cdaeb6;background:#fff9fa;color:var(--rose-deep);transform:translateY(-1px)}
input,select,textarea{accent-color:var(--rose-deep)}
input:focus,select:focus,textarea:focus{border-color:#b86c7b!important;box-shadow:0 0 0 3px rgba(166,85,102,.12)!important;outline:none}
.dashboard-panel,.lead-table-card,.leads-toolbar-card,.settings-form,.student-profile-card,.trainer-card,.course-catalog-card,.document-card{border-color:#ddcdd1!important;box-shadow:var(--panel-shadow)!important}
.dashboard-panel-heading{background:linear-gradient(180deg,#fff 0%,#fdf9fa 100%)}
.content-empty,.dashboard-empty{color:#74676a}
.sidebar-count-badge{background:var(--rose-deep)!important;box-shadow:0 4px 12px rgba(128,58,74,.22)}

/* Leads inbox refinements */
.mark-all-read-button{border-color:#cdaeb6;color:var(--rose-deep);font-weight:900}.mark-all-read-button:disabled{opacity:.46;cursor:default;transform:none!important}
.leads-inbox-view{max-width:1580px;margin:0 auto}.inbox-stats-grid{gap:13px}.inbox-stats-grid article{position:relative;overflow:hidden;border-color:#dbc8cd;background:linear-gradient(145deg,#fff 0%,#fbf5f7 100%);box-shadow:0 10px 26px rgba(64,37,44,.055)}
.inbox-stats-grid article:after{content:"";position:absolute;right:-18px;top:-18px;width:72px;height:72px;border-radius:999px;background:rgba(166,85,102,.07)}
.inbox-stats-grid strong{color:#713441}.inbox-toolbar-card{padding:14px 16px;border-radius:16px;background:#fff}.lead-inbox-tabs{border-color:#d8c5ca;background:#f4eaed;padding:4px}.lead-inbox-tabs button{font-size:10px}.lead-inbox-tabs button.active{color:#743443;box-shadow:0 3px 10px rgba(67,39,46,.09)}
.inbox-table-card{overflow:hidden;border-radius:17px;background:#fff}.lead-table-scroll{max-height:calc(100vh - 320px);overflow:auto}.inbox-lead-table{min-width:1120px}.inbox-lead-table thead th{position:sticky;top:0;z-index:8;background:#eee1e5;color:#5d4e52;border-bottom:1px solid #d6c1c7;box-shadow:0 2px 0 rgba(80,49,57,.03);font-size:8px;letter-spacing:.09em}.inbox-lead-table tbody tr{transition:background .14s ease,box-shadow .14s ease}.inbox-lead-table tbody tr:hover td{background:#fff6f8!important}.inbox-lead-table tr.lead-is-unread td{background:#fffafb}.inbox-lead-table tr.lead-is-unread td:first-child{box-shadow:inset 3px 0 0 var(--rose-deep)}.inbox-lead-table tr.lead-is-read{opacity:1}.inbox-lead-table tr.lead-is-read td{background:#fff}.lead-read-toggle{border-radius:8px}.lead-read-toggle:hover{background:#f4e7ea}.lead-read-toggle.unread span{border-color:#803a4a;background:#803a4a;box-shadow:0 0 0 4px rgba(128,58,74,.10)}
.lead-name-button{font-size:11px}.lead-contact-cell>span{color:#706367!important}.lead-source-badge.meta{background:#eaf0ff!important;color:#355a8c!important;border:1px solid #dbe6fb}.lead-source-context strong{font-size:9px}.lead-note-button{border-color:#d9c5ca;background:#fff9fa;color:#803a4a}.lead-note-cell>span{font-size:8.5px}.lead-contact-actions{flex-wrap:nowrap}.lead-contact-actions .compact{min-height:30px;padding:5px 9px;border-radius:9px;white-space:nowrap}.place-course-button{min-width:112px}.lead-enrolled-chip{border:1px solid #cfe0d5;background:#edf7f0!important;color:#356b49!important}.lead-received-date{font-size:8.5px}.lead-pagination{background:#fdf9fa;border-top:1px solid #eadde0}

/* Cleaner scrollbars */
.sidebar-body,.module-list,.lead-table-scroll,.mail-message-list,.mail-reading-pane{scrollbar-width:thin;scrollbar-color:#c8aeb5 transparent}.sidebar-body::-webkit-scrollbar,.module-list::-webkit-scrollbar,.lead-table-scroll::-webkit-scrollbar{width:8px;height:8px}.sidebar-body::-webkit-scrollbar-thumb,.module-list::-webkit-scrollbar-thumb,.lead-table-scroll::-webkit-scrollbar-thumb{background:#c8aeb5;border-radius:999px;border:2px solid transparent;background-clip:padding-box}

@media(max-width:1100px){.topbar{border-radius:14px}.workspace{padding-left:24px;padding-right:24px}.inbox-lead-table{min-width:1050px}}
@media(max-width:760px){.workspace{padding:16px 14px 38px}.topbar{top:8px;padding:10px 11px}.topbar .header-actions{gap:6px}.mark-all-read-button{order:3;width:100%}.lead-table-scroll{max-height:none}.inbox-stats-grid{gap:9px}}

/* Whatsapp business api */
.whatsapp-api-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.whatsapp-api-actions .primary-button,.whatsapp-api-actions .secondary-button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.whatsapp-cloud-section code,.meta-webhook-section code{padding:2px 5px;border-radius:5px;background:#f1e8ea;color:#7c3d4b}.settings-form-section .meta-copy-field{margin-top:10px}

/* Meta diagnostics */
.meta-diagnostics-card{margin:0 18px 18px;padding:15px;border:1px solid rgba(111,44,67,.18);border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(45,22,31,.05)}
.meta-diagnostics-card.muted{background:#faf7f8}
.meta-diagnostics-card>p{margin:6px 0 0;color:#6f6267}
.meta-diagnostics-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}.meta-diagnostics-head small{display:block;margin-top:3px;color:#75666c;font-weight:500}
.meta-diagnostic-row{display:grid;grid-template-columns:minmax(135px,.55fr) minmax(0,1.45fr);gap:12px;padding:9px 0;border-top:1px solid #eee5e8;align-items:start}
.meta-diagnostic-row strong{font-size:.88rem}.meta-diagnostic-row span{font-size:.86rem;line-height:1.45;overflow-wrap:anywhere}
.meta-diagnostic-row.ok span{color:#25633d}.meta-diagnostic-row.bad span{color:#9a2f47}
@media(max-width:760px){.meta-diagnostic-row{grid-template-columns:1fr;gap:3px}.meta-diagnostics-card{margin:0 12px 14px}}

/* Privacy policy, re-enrol/reschedule and compact action icons */
.icon-action-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.icon-action-button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;min-width:34px;padding:0;border:1px solid #ded4d7;border-radius:9px;background:#fff;color:#584d50;font:inherit;font-size:14px;font-weight:900;line-height:1;cursor:pointer;box-shadow:0 1px 2px rgba(52,35,40,.03);transition:transform .12s ease,box-shadow .12s ease,background .12s ease}
.icon-action-button:hover{transform:translateY(-1px);box-shadow:0 5px 14px rgba(60,38,45,.09)}
.icon-action-button.call{border-color:#cedbe8;background:#f4f8fc;color:#426482}
.icon-action-button.email{border-color:#d9c7e8;background:#faf7fd;color:#70528c}
.icon-action-button.whatsapp{border-color:#bfe1ca;background:#f1faf4;color:#267c48}
.icon-action-button.payment{border-color:#e6d8a8;background:#fffbed;color:#876817}
.icon-action-button.reenrol{border-color:#cbd8ef;background:#f4f7fd;color:#48699d}
.icon-action-button.reschedule{border-color:#e8cfd5;background:#fff7f8;color:#914e5e}
.icon-action-button.delete{border-color:#ebcaca;background:#fff5f5;color:#a33f3f}
.row-message-actions.icon-action-group{display:flex;justify-content:flex-end;gap:5px;flex-wrap:nowrap}
.row-message-actions .icon-action-button{width:31px;height:31px;min-width:31px;border-radius:8px;font-size:12px}
.row-enrolment-badge{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;border-radius:999px;font-size:10px;font-weight:950;flex:0 0 auto}
.row-enrolment-badge.rescheduled{background:#fff0f3;color:#934759;border:1px solid #edcdd5}.row-enrolment-badge.reenrolled{background:#eef4ff;color:#4b6f9e;border:1px solid #cfdbef}
.lead-contact-actions.icon-action-group{min-width:0;flex-wrap:nowrap}.lead-contact-actions .icon-action-button{width:31px;height:31px;min-width:31px;font-size:12px}
.lead-not-placed{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:#f4f0f1;color:#887b7f;font-size:8px;font-weight:850;white-space:nowrap}
.lead-detail-actions .icon-action-group{display:inline-flex}.lead-detail-actions .icon-action-button{width:36px;height:36px}
.student-profile-actions.icon-action-group{display:flex;grid-template-columns:none;gap:7px;padding:0 20px 16px}.student-profile-actions.icon-action-group .icon-action-button{min-height:36px;width:38px;height:38px}
.student-course-primary{grid-column:1/-1;display:flex!important;align-items:flex-start;justify-content:space-between;gap:12px}.student-course-primary>div:first-child{display:grid;gap:3px;min-width:0}.student-course-actions{flex-wrap:nowrap}.student-course-actions .icon-action-button{width:29px;height:29px;min-width:29px;font-size:11px}
.student-course-money{align-self:start}.student-course-money .student-credit{color:#7b5a16;background:#fff8df;border-radius:6px;padding:3px 5px}
.enrolment-event-list{grid-column:1/-1;display:grid!important;gap:7px!important;margin-top:2px}.enrolment-event{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;padding:9px 10px;border-radius:9px;background:#fbf8f9;border:1px solid #eee3e6}.enrolment-event>div{display:grid;gap:2px}.enrolment-event strong{font-size:9px}.enrolment-event p{margin:3px 0 0;color:#74686b;font-size:9px;white-space:pre-wrap}.enrolment-event-badge{display:inline-flex!important;align-items:center;height:21px;padding:0 7px;border-radius:999px;font-size:7px!important;font-weight:950;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.enrolment-event-badge.rescheduled{background:#fff0f3;color:#934759}.enrolment-event-badge.reenrolled{background:#eef4ff;color:#4b6f9e}
.student-move-modal{width:min(720px,calc(100vw - 24px))}.move-current-plan{display:grid;gap:3px;margin:14px 0;padding:13px 14px;border:1px solid #eadde0;border-radius:11px;background:#fcf9fa}.move-current-plan span{color:#8b7f82;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.move-current-plan strong{font-size:12px}.move-current-plan small{color:#76696d;font-size:9px}.move-price-card{display:flex!important;flex-direction:column;justify-content:center;padding:11px 12px;border:1px solid #eadde0;border-radius:10px;background:#fcf9fa}.move-price-card strong{font-size:17px;color:#713c49}
.reschedule-price-preview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px}.reschedule-price-preview>div{display:grid;gap:4px;padding:11px;border:1px solid #eadde0;border-radius:10px;background:#fcf9fa}.reschedule-price-preview span{font-size:8px;color:#817477;font-weight:850;text-transform:uppercase}.reschedule-price-preview strong{font-size:13px}
.privacy-editor-toolbar{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 8px;padding:7px;border:1px solid #e4d9dc;border-radius:10px;background:#fbf8f9}.privacy-editor-toolbar button{min-width:34px;height:31px;padding:0 8px;border:1px solid #ddd1d4;border-radius:7px;background:#fff;color:#594d50;font:inherit;font-size:10px;font-weight:850;cursor:pointer}.privacy-editor-toolbar button:hover{background:#fff5f7;border-color:#d7bfc5}.privacy-policy-editor{min-height:520px;max-height:720px;overflow:auto;padding:22px;border:1px solid #d9ced1;border-radius:12px;background:#fff;color:#30282a;font-size:12px;line-height:1.65;outline:none}.privacy-policy-editor:focus{border-color:#b76b7e;box-shadow:0 0 0 3px rgba(181,92,110,.1)}.privacy-policy-editor h2{margin:24px 0 8px;color:#874355;font-size:18px}.privacy-policy-editor h3{margin:20px 0 7px;font-size:15px}.privacy-policy-editor p{margin:0 0 10px}.privacy-policy-editor ul,.privacy-policy-editor ol{padding-left:22px}.privacy-policy-editor blockquote{margin:12px 0;padding:10px 12px;border-left:3px solid #a95469;background:#fff7f9}
@media(max-width:900px){.row-message-actions.icon-action-group{flex-wrap:wrap;justify-content:flex-start}.reschedule-price-preview{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.student-profile-actions.icon-action-group{padding-inline:14px}.student-course-primary{flex-direction:column}.reschedule-price-preview{grid-template-columns:1fr}.privacy-policy-editor{min-height:420px;padding:15px}.row-message-actions.icon-action-group{display:flex;grid-template-columns:none}.row-message-actions .icon-action-button{width:36px;height:36px;min-width:36px}.lead-contact-actions.icon-action-group{min-width:150px}}

/* Manual card colour + independent calendar course identity strips */
.month-view-switch{display:flex;align-items:center;align-self:center;gap:4px;padding:4px;border:1px solid var(--line);border-radius:12px;background:#f8f4f5}
.month-view-switch button{min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:7px 11px;border:0;border-radius:9px;background:transparent;color:#75686b;font:inherit;font-size:10px;font-weight:900;cursor:pointer;white-space:nowrap}
.month-view-switch button:hover{background:#fff;color:var(--rose-deep)}
.month-view-switch button.active{background:#fff;color:var(--rose-deep);box-shadow:0 3px 12px rgba(65,38,45,.09)}
.month-calendar-panel{overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--panel-shadow)}
.month-calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:19px 21px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fff 0%,#fcf9fa 100%)}
.month-calendar-heading h3{margin:3px 0 0;font-size:20px}
.month-calendar-heading>span{padding:7px 10px;border-radius:999px;background:var(--rose-soft);color:var(--rose-deep);font-size:9px;font-weight:900;white-space:nowrap}
.month-calendar-scroll{overflow-x:auto}
.month-calendar{min-width:840px;display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));background:var(--line);gap:1px}
.month-calendar-weekday{padding:10px 9px;background:#f8f3f4;color:#7c6e72;font-size:9px;font-weight:950;letter-spacing:.05em;text-align:center;text-transform:uppercase}
.month-calendar-day{min-height:135px;padding:9px;background:#fff}
.month-calendar-day.is-empty{background:#faf7f8}
.month-calendar-day.has-courses{background:#fffdfd}
.month-calendar-day.is-today{box-shadow:inset 0 0 0 2px var(--rose)}
.calendar-day-number{min-height:25px;display:flex;align-items:center;justify-content:space-between;gap:7px;margin-bottom:7px}
.calendar-day-number>span{width:27px;height:27px;display:grid;place-items:center;border-radius:9px;color:#51474a;font-size:11px;font-weight:950}
.month-calendar-day.is-today .calendar-day-number>span{background:var(--rose-deep);color:#fff}
.calendar-day-number>b{color:#97898d;font-size:7px;font-weight:900;white-space:nowrap}
.calendar-day-events{display:grid;gap:6px}
.calendar-course-event{position:relative;width:100%;min-width:0;overflow:hidden;display:grid;gap:4px;padding:15px 10px 10px;border:1px solid color-mix(in srgb,var(--calendar-card-text,#201a1c) 18%,transparent);border-radius:10px;background:var(--calendar-card-colour,#f7e9ec);color:var(--calendar-card-text,#201a1c);font:inherit;text-align:left;cursor:pointer;box-shadow:0 3px 9px rgba(54,35,40,.08);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.calendar-course-event::before{content:"";position:absolute;left:0;right:0;top:0;height:7px;background:var(--calendar-strip-colour,#b86d79)}
.calendar-course-event:hover{transform:translateY(-1px);box-shadow:0 6px 14px rgba(54,35,40,.13)}
.calendar-course-event.is-multi-date{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--calendar-strip-colour,#b86d79) 18%,transparent),0 3px 9px rgba(54,35,40,.08)}
.calendar-course-event.is-multi-date:hover{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--calendar-strip-colour,#b86d79) 24%,transparent),0 6px 14px rgba(54,35,40,.13)}
.calendar-course-event strong{overflow:hidden;font-size:10px;font-weight:950;line-height:1.3;text-overflow:ellipsis;white-space:nowrap;color:var(--calendar-card-text,#201a1c)}
.calendar-course-event span{font-size:8px;font-weight:850;opacity:1}
.calendar-student-count{display:flex;align-items:baseline;gap:4px;opacity:1!important}
.calendar-student-count b{font-size:19px;font-weight:950;line-height:1;color:var(--calendar-card-text,#201a1c)}
.calendar-student-count em{font-size:8px;font-style:normal;font-weight:900;line-height:1;color:var(--calendar-card-text,#201a1c);opacity:.72;text-transform:uppercase;letter-spacing:.02em}
.calendar-help,.calendar-empty-note{margin:0;padding:12px 20px;border-top:1px solid var(--line);background:#fcfafb;color:var(--muted);font-size:9px;line-height:1.5}
.calendar-empty-note strong{color:var(--rose-deep)}
.record-section.calendar-target-flash{animation:calendarTargetFlash 1.8s ease}
@keyframes calendarTargetFlash{0%,100%{box-shadow:var(--panel-shadow)}20%{box-shadow:0 0 0 4px rgba(166,85,102,.22),0 14px 38px rgba(59,32,39,.10)}}
@media(max-width:820px){
  .module-summary .month-view-switch{order:3;width:100%}
  .module-summary .month-view-switch button{flex:1}
  .month-calendar-heading{align-items:flex-start;flex-direction:column}
}


/* Lead history sync + advanced lead filters */
.inbox-toolbar-card{align-items:start}.advanced-lead-filters{grid-template-columns:minmax(260px,1.7fr) repeat(3,minmax(145px,.8fr));gap:9px}.advanced-lead-filters .lead-filter-search{grid-column:span 2}.advanced-lead-filters>button{align-self:end}.advanced-lead-filters input[type="date"]{min-width:135px}
@media(max-width:1400px){.advanced-lead-filters{grid-template-columns:repeat(3,minmax(150px,1fr))}.advanced-lead-filters .lead-filter-search{grid-column:span 2}}
@media(max-width:900px){.advanced-lead-filters{grid-template-columns:1fr 1fr}.advanced-lead-filters .lead-filter-search{grid-column:1/-1}}
@media(max-width:560px){.advanced-lead-filters{grid-template-columns:1fr}.advanced-lead-filters .lead-filter-search{grid-column:auto}}

/* Models booking + online forms */
.icon-action-button.form{background:#eef7f1;color:#2e7250;border-color:#cfe7d8}.icon-action-button.edit{background:#f4eef9;color:#694483;border-color:#dfd0ea}.small-button{padding:7px 10px;font-size:12px}.notice-card{padding:12px 14px;border-radius:12px;background:#fff7e8;border:1px solid #ead5ad;color:#6d5430;font-size:13px;margin:12px 0}.form-auto-note{padding:13px 15px;border-radius:13px;background:#eef8f2;border:1px solid #d2e9da;color:#376348;font-size:13px;line-height:1.55;margin-top:14px}
.models-view{display:grid;gap:18px}.model-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.model-stats-grid article{background:#fff;border:1px solid var(--line,#eadde1);border-radius:18px;padding:18px;box-shadow:0 8px 24px rgba(57,33,41,.05)}.model-stats-grid span{display:block;color:#7c6870;font-size:12px;font-weight:700}.model-stats-grid strong{display:block;font-size:27px;margin-top:6px;color:#2b2225}.model-filter-form{grid-template-columns:minmax(240px,2fr) repeat(4,minmax(130px,1fr)) auto auto}.model-table-card{background:#fff;border:1px solid var(--line,#eadde1);border-radius:20px;overflow:hidden}.model-table-card .dashboard-panel-heading{padding:18px 20px;border-bottom:1px solid var(--line,#eadde1)}.models-table td strong,.models-table td small{display:block}.models-table td small{margin-top:4px;color:#7c6970;font-size:12px}.model-name-link{border:0;background:transparent;text-align:left;padding:0;cursor:pointer;color:inherit}.model-name-link:hover strong{text-decoration:underline}.model-booking-status{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;background:#f1ecee;color:#665157}.model-booking-status.completed{background:#e8f6ed;color:#2a6b43}.model-booking-status.confirmed{background:#eaf1ff;color:#315e9a}.model-booking-status.cancelled,.model-booking-status.no_show{background:#fff0f1;color:#9a3340}.form-status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;background:#f5eeee;color:#715a62}.form-status-badge.completed{background:#e8f6ed;color:#276a42}.form-status-badge.opened{background:#fff4d9;color:#815f20}.form-status-badge.pending{background:#eaf1ff;color:#365f94}.form-status-badge.missing{background:#f2f2f2;color:#777}.model-profile-contact{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 20px}.model-profile-contact span{padding:7px 10px;background:#f8f3f5;border-radius:999px;font-size:12px}.model-history-section{border-top:1px solid #eadde1;padding-top:18px}.model-history-list{display:grid;gap:10px}.model-history-list article{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px;border:1px solid #eadde1;border-radius:14px}.model-history-list article>div:first-child strong,.model-history-list article>div:first-child span,.model-history-list article>div:first-child small{display:block}.model-history-list article>div:first-child span{margin-top:3px;color:#68565d;font-size:13px}.model-history-list article>div:first-child small{margin-top:4px;color:#8a777e}.model-history-list article>div:last-child{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.model-profile-modal{max-width:880px}.model-booking-modal{max-width:820px}
.forms-settings-view{display:grid;gap:18px}.forms-template-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-template-editor{background:#fff;border:1px solid #eadde1;border-radius:18px;overflow:hidden}.form-template-editor .settings-field-grid{padding:0 20px 20px}.form-template-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:20px;border-bottom:1px solid #eadde1;background:#fcf9fa}.form-template-heading h4{margin:3px 0 0;font-size:18px}.settings-toggle.compact{margin:0}.form-records-table td small{display:block;color:#826f76;margin-top:3px}.form-record-modal{max-width:820px}.form-record-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}.form-record-summary>div{padding:12px;border:1px solid #eadde1;border-radius:13px;background:#fcfafb}.form-record-summary span{display:block;font-size:11px;color:#846e76}.form-record-summary strong{display:block;margin-top:4px;font-size:13px}.form-record-answers{margin-top:18px}.form-record-answers h4,.form-record-signature h4{margin:0 0 10px}.form-answer-row{display:grid;grid-template-columns:minmax(150px,.8fr) 1.5fr;gap:14px;padding:9px 0;border-bottom:1px solid #f0e7ea}.form-answer-row span{font-size:12px;color:#816f75}.form-answer-row strong{font-size:13px;white-space:pre-wrap}.form-record-signature{margin-top:20px;padding-top:16px;border-top:1px solid #eadde1}.form-record-signature img{display:block;max-width:100%;max-height:220px;border:1px solid #ddd;border-radius:12px;background:white}.form-link-modal{max-width:700px}.forms-settings-view .content-empty.compact{padding:24px}.form-template-editor .settings-save-bar{margin:0;border-top:1px solid #eadde1}

@media(max-width:1050px){.model-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.model-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}.forms-template-grid{grid-template-columns:1fr}.form-record-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.model-stats-grid{grid-template-columns:1fr 1fr}.model-filter-form{grid-template-columns:1fr}.model-history-list article{flex-direction:column}.model-history-list article>div:last-child{justify-content:flex-start}.form-record-summary{grid-template-columns:1fr}.form-answer-row{grid-template-columns:1fr;gap:3px}.forms-template-grid{display:block}.form-template-editor+ .form-template-editor{margin-top:14px}}

/* Forms builder / records */
.forms-subtabs{display:flex;flex-wrap:wrap;gap:8px;padding:8px;border:1px solid #eadde1;border-radius:14px;background:#fff}.forms-subtabs button{border:0;background:transparent;color:#6f5f64;padding:10px 15px;border-radius:10px;font-weight:800;cursor:pointer}.forms-subtabs button.active{background:#f6e8ed;color:#8c3551}.form-builder-section{display:grid;gap:16px}.form-builder-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.form-builder-select{display:grid;gap:6px;max-width:520px}.form-builder-select>span{font-size:11px;font-weight:800;color:#75666b}.form-builder-select select{min-height:42px;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff}.form-field-list{display:grid;gap:9px}.form-field-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 14px;border:1px solid #eadde1;border-radius:14px;background:#fff}.form-field-card.inactive{opacity:.62;background:#faf8f8}.form-field-order{display:grid;gap:4px}.form-field-order button{width:30px;height:28px;border:1px solid #e4d5d9;background:#fff;border-radius:8px;cursor:pointer}.form-field-order button:disabled{opacity:.3;cursor:not-allowed}.form-field-copy{min-width:0}.form-field-copy>div{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.form-field-copy strong{font-size:13px}.form-field-copy small{display:block;margin-top:3px;color:#8b7a7f;font-size:10px}.form-field-copy p{margin:5px 0 0;color:#75666b;font-size:10px}.form-field-actions{display:flex;gap:7px;align-items:center}.form-field-checks{display:flex;flex-wrap:wrap;gap:15px}.form-field-modal{max-width:720px}.form-assignment-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-assignment-card{background:#fff;border:1px solid #eadde1;border-radius:18px;overflow:hidden}.form-assignment-card .settings-field-grid{padding:18px 20px}.form-assignment-card .template-help{padding:0 20px}.form-assignment-card .settings-save-bar{margin:0;border-top:1px solid #eadde1}.form-record-deliveries{margin-top:20px;padding-top:16px;border-top:1px solid #eadde1}.form-record-deliveries h4{margin:0 0 10px}.form-records-view{display:grid;gap:18px}.form-record-filter{grid-template-columns:minmax(200px,1.5fr) repeat(5,minmax(120px,.8fr)) auto auto}.form-records-main-table td small{display:block;margin-top:3px;color:#87767b}.form-send-modal{max-width:700px}.form-send-modal textarea[readonly],.form-send-modal input[readonly]{background:#faf8f8;color:#55494d}.form-record-stats article strong{font-size:28px}
@media(max-width:1180px){.form-assignment-grid{grid-template-columns:1fr}.form-record-filter{grid-template-columns:repeat(2,minmax(0,1fr))}.form-record-filter .lead-filter-search{grid-column:1/-1}}
@media(max-width:680px){.forms-subtabs{display:grid;grid-template-columns:1fr 1fr}.form-field-card{grid-template-columns:auto minmax(0,1fr)}.form-field-actions{grid-column:1/-1;justify-content:flex-end}.form-builder-heading{align-items:flex-start;flex-direction:column}.form-record-filter{grid-template-columns:1fr}.form-record-filter .lead-filter-search{grid-column:auto}.form-field-checks{display:grid;gap:8px}}
.icon-action-button.pdf{width:auto;min-width:38px;padding:0 7px;text-decoration:none;border-color:#d8d8d8;background:#f7f7f7;color:#4b4b4b;font-size:10px;letter-spacing:.02em}


/* Payments & reports */
.payments-view,.reports-view{display:grid;gap:18px}.finance-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.finance-stats-grid>article{display:grid;gap:5px;padding:18px;border:1px solid #eadde1;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(53,31,39,.045)}.finance-stats-grid>article>span,.finance-method-grid span{color:#847378;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.055em}.finance-stats-grid>article>strong{font-size:24px;color:#5d3440}.finance-stats-grid>article>small{color:#887a7e;font-size:9px}.finance-method-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.finance-method-grid>article{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border:1px solid #eadde1;border-radius:12px;background:#fcfafb}.finance-method-grid strong{font-size:14px}.payment-filter-form{grid-template-columns:minmax(220px,1.5fr) repeat(6,minmax(115px,.8fr)) auto auto}.finance-table-card{min-width:0}.finance-table td small{display:block;margin-top:3px;color:#8a7a7f;font-size:9px}.finance-money-cell{white-space:nowrap}.finance-muted{color:#a19397}.finance-type-badge{display:inline-flex;padding:5px 8px;border-radius:999px;background:#f4f0f2;color:#6e6064;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.finance-type-badge.deposit{background:#fff7db;color:#80651b}.finance-type-badge.payment{background:#edf6ff;color:#3b6488}.finance-type-badge.opening_balance{background:#f2edf9;color:#684f82}.report-title-card{padding:18px 20px;border:1px solid #eadde1;border-radius:16px;background:linear-gradient(135deg,#fff,#fbf5f7)}.report-title-card h3{margin:3px 0 5px;font-size:20px}.report-title-card p:last-child{margin:0;color:#77686c;font-size:10px}.report-filter-form{grid-template-columns:repeat(4,minmax(150px,1fr)) auto auto}.report-two-column{display:grid;grid-template-columns:1fr 1fr;gap:16px}.report-breakdown-card{padding:0}.report-metric-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:16px}.report-metric-list>div{display:grid;gap:4px;padding:12px;border:1px solid #eee3e6;border-radius:11px;background:#fcfafb}.report-metric-list span{font-size:9px;color:#817277;font-weight:850;text-transform:uppercase}.report-metric-list strong{font-size:16px}.report-summary-grid>article:nth-child(4) strong{color:#95475a}
@media(max-width:1250px){.payment-filter-form{grid-template-columns:repeat(3,minmax(0,1fr))}.payment-filter-form .lead-filter-search{grid-column:1/-1}.finance-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.finance-method-grid,.report-two-column{grid-template-columns:1fr 1fr}.report-filter-form{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.finance-stats-grid,.finance-method-grid,.report-two-column,.report-filter-form,.payment-filter-form{grid-template-columns:1fr}.payment-filter-form .lead-filter-search{grid-column:auto}.report-metric-list{grid-template-columns:1fr}}
@media print{body{background:#fff}.sidebar,.topbar,.toast,#modal-root,.no-print,.header-actions,.finance-table .no-print{display:none!important}.app-shell{display:block}.workspace{display:block}.workspace #content{padding:0!important}.reports-view{gap:10px}.reports-view .dashboard-panel,.reports-view .model-table-card,.reports-view .report-title-card,.reports-view .finance-stats-grid>article{box-shadow:none;break-inside:avoid}.reports-view .table-scroll{overflow:visible}.reports-view table{font-size:9px}.reports-view .small-button{display:none!important}}

/* Confirmation variable parity */
/* Payment pagination */
.pagination-bar{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:14px 18px;border-top:1px solid #eee4e7;background:#fff}.pagination-bar span{font-size:12px;font-weight:700;color:#76646a}.pagination-bar button:disabled{opacity:.45;cursor:not-allowed}@media(max-width:650px){.pagination-bar{justify-content:center;flex-wrap:wrap}}

/* Template picker visibility and scrolling */
.template-library-select{
  width:100%!important;
  min-height:190px!important;
  max-height:250px;
  overflow-y:auto!important;
  padding:6px!important;
  border:1px solid #dfcfd2!important;
  border-radius:10px!important;
  background:#fff!important;
  color:var(--ink)!important;
  scrollbar-gutter:stable;
  overscroll-behavior:contain;
}
.template-library-select.compact{min-height:132px!important;max-height:190px}
.template-library-select option{padding:7px 9px;border-radius:6px;white-space:normal}
.template-library-select option:checked{background:#f4e4e9;color:#7e3047}
.template-library-select option:disabled{color:#a18f95;background:#faf7f8}
.template-library-select optgroup{padding:4px 0;color:#6f5961;font-weight:900}
.template-picker-help{display:block;margin-top:7px;color:#827177;font-size:10px;line-height:1.45}
.student-composer-modal{scrollbar-gutter:stable;overscroll-behavior:contain}
@media(max-width:640px){.template-library-select{min-height:165px!important;max-height:210px}.template-library-select.compact{min-height:120px!important;max-height:165px}}

/* v2.0.15 — wide, sectioned Form Record viewer */
.form-record-backdrop{padding:clamp(18px,3vh,34px) clamp(14px,3vw,36px)}
.form-record-modal{--modal-padding:0;width:min(1180px,100%);max-width:1180px;max-height:none;overflow:visible;padding:0;border-radius:24px;background:#fff;scrollbar-gutter:auto}
.form-record-close{top:18px;right:20px;z-index:3;width:38px;height:38px;display:grid;place-items:center;border:1px solid #eadde1;border-radius:50%;background:#fff;box-shadow:0 6px 18px rgba(49,31,36,.08);cursor:pointer}
.form-record-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:30px 72px 24px 30px;border-bottom:1px solid #eee2e5;background:linear-gradient(180deg,#fff,#fdfafb);border-radius:24px 24px 0 0}
.form-record-header h3{margin:3px 0 8px;font-size:30px;line-height:1.15}
.form-record-header-status{padding-top:5px;white-space:nowrap}
.form-record-person{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;margin:0;color:#3f3337;font-size:14px;font-weight:800}
.form-record-person span{color:#837277;font-size:12px;font-weight:600}
.form-record-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:14px 30px;border-bottom:1px solid #eee2e5;background:#fff}
.form-record-toolbar .secondary-button{min-height:38px}
.form-record-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 30px}
.form-record-summary>div{min-width:0;padding:14px 15px;border:1px solid #eadde1;border-radius:14px;background:#fcfafb}
.form-record-summary span{display:block;margin-bottom:5px;color:#846e76;font-size:11px;font-weight:700}
.form-record-summary strong{display:block;margin-top:0;color:#30272a;font-size:13px;line-height:1.35;overflow-wrap:anywhere}
.form-record-notice{margin:0 30px 20px}
.form-record-body{display:grid;gap:18px;padding:24px 30px 30px;background:#fbf8f9;border-top:1px solid #f4ecee}
.form-record-sections{display:grid;gap:18px}
.form-record-section{margin:0;padding:0;border:1px solid #e9dde0;border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 4px 14px rgba(54,34,40,.025)}
.form-record-section-heading{display:flex;align-items:baseline;gap:12px;padding:15px 18px;border-bottom:1px solid #eee4e6;background:#fdfafb}
.form-record-section-heading span{flex:0 0 auto;color:#985268;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.form-record-section-heading h4{margin:0;color:#2d2528;font-size:16px;line-height:1.3}
.form-answer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
.form-answer-item{min-width:0;padding:14px 18px;border-bottom:1px solid #f0e8ea}
.form-answer-item:nth-last-child(-n+2){border-bottom-color:transparent}
.form-answer-item.full-width{grid-column:1/-1}
.form-answer-item span{display:block;margin-bottom:5px;color:#817177;font-size:11px;line-height:1.35}
.form-answer-item strong{display:block;color:#30282b;font-size:13px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}
.form-record-signature{padding:0}
.form-record-signature-frame{padding:18px;background:#fff}
.form-record-signature img{display:block;width:auto;max-width:100%;max-height:220px;margin:0;border:1px solid #e2dadd;border-radius:12px;background:#fff;object-fit:contain}
.form-record-deliveries{margin:0;padding:0;border-top:1px solid #e9dde0}
.form-record-deliveries .table-scroll{margin:0;border:0;border-radius:0;box-shadow:none}
.form-record-deliveries .records-table{margin:0}
.form-record-empty{margin:0;padding:20px;color:#88777d;font-size:12px}
.form-record-footer{justify-content:flex-end;margin:0;padding:0 30px 30px;border-top:0;background:#fbf8f9}
.form-record-footer .primary-button{min-width:140px}

@media(max-width:900px){
  .form-record-header{padding:26px 64px 20px 24px}
  .form-record-toolbar{padding:12px 24px}
  .form-record-summary{grid-template-columns:repeat(2,minmax(0,1fr));margin:18px 24px}
  .form-record-notice{margin-inline:24px}
  .form-record-body{padding:20px 24px 24px}
  .form-record-footer{padding:0 24px 24px}
}
@media(max-width:680px){
  .form-record-backdrop{padding:0;background:#fff}
  .form-record-modal{width:100%;max-width:none;min-height:100vh;min-height:100dvh;border:0;border-radius:0;box-shadow:none}
  .form-record-header{padding:22px 58px 18px 18px;border-radius:0}
  .form-record-header h3{font-size:24px}
  .form-record-header-status{display:none}
  .form-record-person{display:grid;gap:3px}
  .form-record-close{top:12px;right:12px}
  .form-record-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:12px 18px}
  .form-record-toolbar .secondary-button{width:100%;min-width:0;text-align:center}
  .form-record-summary{grid-template-columns:1fr 1fr;gap:8px;margin:14px 18px}
  .form-record-summary>div{padding:11px 12px}
  .form-record-notice{margin:0 18px 14px}
  .form-record-body{gap:14px;padding:16px 14px 20px}
  .form-record-sections{gap:14px}
  .form-record-section{border-radius:14px}
  .form-record-section-heading{display:block;padding:13px 14px}
  .form-record-section-heading span{display:block;margin-bottom:4px}
  .form-record-section-heading h4{font-size:15px}
  .form-answer-grid{grid-template-columns:1fr}
  .form-answer-item,.form-answer-item.full-width{grid-column:auto;padding:12px 14px;border-bottom:1px solid #f0e8ea}
  .form-answer-item:last-child{border-bottom:0}
  .form-record-signature-frame{padding:14px}
  .form-record-footer{display:block;padding:0 14px 20px}
  .form-record-footer .primary-button{width:100%}
}
@media(max-width:430px){
  .form-record-toolbar{grid-template-columns:1fr}
  .form-record-summary{grid-template-columns:1fr}
}
@media(max-width:680px){
  .form-answer-item:nth-last-child(-n+2){border-bottom-color:#f0e8ea}
  .form-answer-item:last-child{border-bottom-color:transparent}
}

/* v2.0.15 Expenses */
.field-help{display:block;margin-top:5px;color:#8a767a;font-size:10px;line-height:1.35}
.expense-category-badge{display:inline-flex;align-items:center;min-height:27px;padding:5px 9px;border-radius:999px;background:#f7eef1;border:1px solid #ead9de;color:#814355;font-size:10px;font-weight:800;white-space:nowrap}
.expense-modal{width:min(760px,calc(100vw - 32px))}
.expense-filter-form{grid-template-columns:minmax(220px,1.6fr) repeat(4,minmax(135px,1fr)) auto auto}
.expense-method-grid .payment-method-badge.card,.payment-method-badge.card{background:#eef2fb;color:#3c568d}
.expense-method-grid .payment-method-badge.direct_debit,.payment-method-badge.direct_debit{background:#eef7f4;color:#2f6c5c}
.expense-method-grid .payment-method-badge.other,.payment-method-badge.other{background:#f2f2f2;color:#5f5f5f}
.table-action-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.secondary-button.danger{border-color:#efd7dc;color:#a24355;background:#fff9fa}
.secondary-button.danger:hover{background:#fff0f3}
@media(max-width:1100px){.expense-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}.expense-filter-form .lead-filter-search{grid-column:1/-1}}
@media(max-width:700px){.expense-filter-form{grid-template-columns:1fr}.expense-filter-form .lead-filter-search{grid-column:auto}.expense-modal{width:calc(100vw - 18px)}}

/* v2.0.15 — editable Expense categories */
.inline-link-button {
  border: 0;
  background: transparent;
  color: var(--brand, #8d4052);
  padding: 0;
  margin-left: 6px;
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.expense-category-modal { max-width: 760px; width: min(92vw, 760px); }
.expense-category-add-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: end;
  margin: 18px 0;
}
.expense-category-list {
  display: grid;
  gap: 10px;
  max-height: min(55vh, 520px);
  overflow-y: auto;
  padding-right: 4px;
}
.expense-category-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--border, #eadfe2);
  border-radius: 14px;
  padding: 12px;
  background: #fff;
}
.expense-category-main { display: grid; gap: 5px; }
.expense-category-name-input {
  width: 100%;
  min-width: 0;
  border: 1px solid var(--border, #d8cfd1);
  border-radius: 10px;
  padding: 10px 11px;
  font: inherit;
  font-weight: 650;
}
.expense-category-main small { color: var(--muted, #786d70); }
@media (max-width: 640px) {
  .expense-category-add-form,
  .expense-category-row { grid-template-columns: 1fr; }
  .expense-category-row .table-action-row { justify-content: flex-start; }
}

/* v2.0.15 – explicit finance marker for enrolments moved to a new course/date. */
.rescheduled-payment-badge{display:inline-flex;align-items:center;width:max-content;margin-top:5px;padding:3px 7px;border-radius:999px;background:#f6eef0;color:#8a4d59;font-size:11px;font-weight:800;letter-spacing:.02em}
