/* A shared, responsive visual layer; existing workflows keep their semantics. */
:root{--ink:#203044;--muted:#748195;--green:#2867cf;--line:#e5eaf2;--paper:#f5f7fb;--gold:#a86d12;--blue:#2867cf;--violet:#7961d6;--mint:#1b8d78}
body{background:radial-gradient(ellipse at 0 0,#eaf1ff 0,transparent 45%),radial-gradient(ellipse at 100% 32%,#f0edfc 0,transparent 38%),var(--paper);letter-spacing:-.2px;line-height:1.6;-webkit-font-smoothing:antialiased}
[hidden]{display:none!important}
header{background:rgba(255,255,255,.88);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid #e7ebf3}
.header-inner{max-width:1280px;display:grid;grid-template-columns:1fr auto;gap:16px;padding:20px 32px 12px}.brand{font-size:20px;gap:12px;justify-self:start}.brand-logo{height:52px;width:42px;object-fit:contain}.brand small{letter-spacing:2.4px;color:#8d98a8;font-size:9px;margin-top:2px}.account{grid-column:2;grid-row:1;color:#66748a}.account>span{font-weight:600}.account-links a,.account-links button{font-size:12px}
.header-inner>nav{grid-row:2;grid-column:1/-1;width:100%;gap:5px;display:flex;flex-wrap:nowrap;overflow-x:auto;padding:4px 0 6px;border:0;scrollbar-width:thin}.header-inner>nav a{padding:8px 13px;border-radius:11px;white-space:nowrap;font-size:14px;color:#60708a;transition:background .15s,color .15s}.header-inner>nav a:hover,.header-inner>nav a[aria-current=page]{color:#245fc1;background:#edf3ff;text-decoration:none}
main{max-width:1240px;padding:36px 32px 76px}h1{font-size:34px;font-weight:750;letter-spacing:-1.4px;color:#202f45}h2{font-size:20px;letter-spacing:-.6px}h3{font-weight:680}.eyebrow{color:#6f83a5;letter-spacing:1.8px;font-size:10px}.page-heading{margin-bottom:26px}.muted,.hint{color:var(--muted)}.back{display:inline-block;margin-bottom:22px;font-size:14px}
.card{border:1px solid #e5eaf2;border-radius:22px;background:rgba(255,255,255,.96);box-shadow:0 6px 24px #21385d05;padding:26px}.card.narrow{max-width:680px}.section-heading{gap:12px}.section-heading>a{font-size:13px;font-weight:600}.stats{gap:16px;margin-bottom:28px}.stats .card{position:relative;overflow:hidden;padding:22px 26px;border:0;min-height:122px;background:linear-gradient(125deg,#eaf2ff,#f4f8ff)}.stats .card:nth-child(2){background:linear-gradient(125deg,#f0edfc,#f8f5ff)}.stats .card:nth-child(3){background:linear-gradient(125deg,#e7f5f0,#f1faf5)}.stats .card:after{content:'';width:110px;height:110px;position:absolute;right:-26px;bottom:-40px;border:18px solid #fff7;border-radius:50%;pointer-events:none}.stats strong{color:#3464bc;font-size:34px}.stats .card:nth-child(2) strong{color:#7760b7}.stats .card:nth-child(3) strong{color:#27836c}.stats .card>span{color:#63748c;font-size:13px;font-weight:600}
button,.button{border-radius:12px;min-height:46px;padding:10px 18px;font-size:14px;font-weight:650;box-shadow:0 3px 10px #2c65bd10;transition:background .15s,box-shadow .15s}button:hover,.button:hover{background:#235bb8;box-shadow:0 4px 14px #2c65bd1c}.secondary{color:#3e648b;background:#fff;border:1px solid #dce4ef;box-shadow:none}.secondary:hover{background:#f0f5fd;color:#245bad}.text-button{background:none;box-shadow:none;min-height:30px;padding:0;color:var(--muted)}.text-button:hover{background:none;box-shadow:none;color:#284668}
input,select,textarea{border:1px solid #dce3ee;border-radius:12px;background:#fbfcfe;padding:11px 13px;color:#24364c;min-height:46px;font-size:15px;box-shadow:inset 0 1px 2px #21385d02}input::placeholder,textarea::placeholder{color:#9ba6b7}input:focus,select:focus,textarea:focus{border-color:#82a8e7;background:#fff;outline:3px solid #2874e817;outline-offset:1px}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #4283e6;outline-offset:3px}label{font-size:14px;color:#53657c;font-weight:650}input[type=checkbox],input[type=radio]{min-height:20px;width:20px}textarea{line-height:1.65}
.list-row{padding:19px 0;border-color:#edf0f5;gap:20px}.list-row strong{font-size:16px;color:#2e4057}.list-row small{font-size:12px;color:#8490a1;line-height:1.8}.list-row:hover{background:#f8faff;text-decoration:none}.list-row>span{min-width:0}.card.list{padding:8px 26px}.list-row:last-child{border-bottom:0}.list-row .badge{flex-shrink:0}.empty{font-size:14px;color:#8591a3;padding:24px}
.status-tabs{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 20px}.status-tab{display:flex;align-items:center;gap:9px;min-height:44px;padding:9px 16px;border:1px solid #e1e7f0;border-radius:13px;background:#fff;color:#77849a;font-size:14px}.status-tab strong{font-size:12px;border-radius:7px;background:#f0f3f8;padding:1px 7px;min-width:22px;text-align:center;color:#7a8ba2}.status-tab:hover{text-decoration:none;background:#eff5ff}.status-tab.selected{background:#eaf2ff;border-color:#bed2f4;color:#2867cf;font-weight:650}.status-tab.selected strong{background:#2867cf;color:white}.status-tab:nth-child(2).selected{background:#fff5e1;border-color:#eddbb4;color:#a7761e}.status-tab:nth-child(2).selected strong{background:#b18025}.archive-tab{margin-left:auto;color:#7763a7;background:#f5f1fc;border-color:#e8dff6}
.student-tabs{display:flex;gap:5px;overflow-x:auto;flex-wrap:nowrap;border-radius:15px;background:#e9edf4;padding:5px;margin:0 0 26px;width:fit-content;max-width:100%;scrollbar-width:thin}.student-tabs a{font-size:14px;font-weight:600;white-space:nowrap;min-height:43px;padding:10px 18px;border-radius:11px;color:#7d899b}.student-tabs a[aria-current=page]{background:white;color:#2e64b7;box-shadow:0 2px 7px #334d7710}.student-tabs a:hover{background:#f6f8fc;text-decoration:none}.student-tools{gap:10px;max-width:100%}.status-actions{gap:6px}.status-actions .button{min-width:62px}.detail-grid{gap:22px;align-items:start}.detail-grid .card{min-width:0}dl{column-gap:22px}dt{font-size:13px;color:#8a95a5}dd{font-size:15px;color:#364960}.assigned-class{border-color:#edf0f5}.class-change{gap:8px}.payment-history{padding:18px 0;border-color:#edf0f5}
.dashboard-search{display:flex;gap:10px;margin-bottom:20px;background:#fff;padding:7px;border:1px solid #e0e7f2;border-radius:17px;box-shadow:0 3px 16px #23436a04;max-width:620px}.dashboard-search input{border:0;background:transparent;box-shadow:none;font-size:15px}.dashboard-search button{flex-shrink:0}.preparation-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 20px;margin-bottom:24px;background:#edf2fd;border:1px solid #dce7fc;border-radius:16px;font-size:14px;color:#5b7396}.preparation-banner strong{color:#3d659e}.preparation-banner small{display:block;color:#8798b1;font-size:12px;margin-top:3px}.preparation-banner a{white-space:nowrap;font-weight:650;font-size:13px}.preparation-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}.preparation-grid label{line-height:1.6}.preparation-grid .errorlist{color:#c44252}
.dashboard-filters{background:#ffffffa8;padding:18px 22px;border-radius:17px;margin-bottom:18px}.dashboard-lesson{border:1px solid #e4eaf4;padding:22px;transition:transform .18s,box-shadow .18s}.dashboard-lesson:hover{transform:translateY(-2px);box-shadow:0 12px 28px #274d8110}.dashboard-lesson h3{font-size:21px;letter-spacing:-.7px;margin-bottom:8px}.dashboard-lesson .eyebrow{color:#8599b3;margin-bottom:8px}.lesson-schedule{font-size:13px;color:#7c8b9e}.lesson-status{border-radius:8px;padding:5px 9px;font-size:12px}.lesson-attendance{width:100%;border-radius:11px;background:#edf3ff;color:#3766ad;box-shadow:none}.lesson-attendance:hover{background:#dfebff;color:#275898}.attendance-warning{border-color:#efc2c8;background:linear-gradient(120deg,#fff8f8,#fff)}.lesson-counts{border-color:#edf0f5}.lesson-counts dt{font-size:11px}.lesson-counts dd{font-size:16px}.class-link{font-size:12px;color:#8ba0bd}.present-label{color:#25886f}.message{border-radius:14px;background:#eaf5ef;border:1px solid #d4e9dc}.message.error,.errorlist{color:#b84050}.badge{border-radius:11px}
.archive-badge{display:inline-block;padding:5px 10px;border-radius:8px;background:#f0edfa;color:#7e6aa7;font-size:12px;white-space:nowrap}.historical-profile{margin-bottom:18px}.historical-profile h3{font-size:16px}.archive-search{display:grid;grid-template-columns:1fr auto;gap:8px 18px;margin-bottom:22px}.archive-search label,.archive-search input{grid-column:1/-1}.archive-search select{min-width:0}.archive-search button{align-self:end}
footer{max-width:1176px;margin:auto;border-color:#e2e7f0;font-size:12px;color:#9aa5b4;padding:24px 0}summary{cursor:pointer}.calendar-panel{overflow:hidden}.calendar-record{box-shadow:none}.lesson-save-bar{border-radius:15px}.attendance-choice button{min-width:66px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media(max-width:760px){.header-inner{padding:15px 18px 9px;gap:12px;grid-template-columns:1fr auto}.brand{font-size:16px;gap:8px}.brand-logo{height:43px;width:31px}.brand small{font-size:8px}.account{max-width:148px;font-size:10px}.account-links{gap:8px}.account-links a,.account-links button{font-size:10px}.header-inner>nav{margin:0;padding:3px 0 5px;width:100%;gap:3px}.header-inner>nav a{font-size:12px;padding:7px 10px}main{padding:24px 18px 56px}h1{font-size:27px;letter-spacing:-1px}h2{font-size:18px}.page-heading{gap:14px;align-items:flex-start;flex-wrap:wrap;margin-bottom:22px}.page-heading>.button{min-height:42px}.page-heading .student-tools{width:100%;justify-content:flex-start;display:flex;flex-wrap:wrap}.card{padding:20px;border-radius:18px}.card.list{padding:4px 18px}.stats{gap:8px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:22px}.stats .card{padding:16px 12px;min-height:105px;border-radius:17px}.stats .card>span{font-size:10px}.stats strong{font-size:25px}.stats small{font-size:11px;margin-left:3px}.stats .card:after{width:80px;height:80px;right:-35px;bottom:-30px;border-width:14px}.status-tabs{gap:6px;flex-wrap:wrap}.status-tab{padding:7px 12px;font-size:12px;min-height:42px;gap:6px}.archive-tab{margin-left:0}.student-tabs{width:100%;margin-bottom:20px}.student-tabs a{font-size:12px;padding:9px 13px;min-height:42px}.detail-grid,.preparation-grid{grid-template-columns:1fr;gap:16px}.dashboard-search{padding:6px;gap:6px}.dashboard-search input{font-size:16px;min-width:0;padding-left:10px}.dashboard-search button{padding:9px 13px;font-size:12px}.preparation-banner{padding:13px 15px;gap:12px;font-size:12px;align-items:flex-start}.preparation-banner small{font-size:11px}.preparation-banner a{font-size:11px}.section-heading{flex-wrap:wrap}.section-heading h2{margin-bottom:8px}.list-row{padding:16px 0;gap:12px}.list-row strong{font-size:14px}.list-row small{font-size:11px}.student-filters{padding:18px}.dashboard-lesson h3{font-size:20px}.dashboard-filters{padding:16px}.archive-badge{font-size:10px;white-space:normal}.archive-search{padding:18px}dl{grid-template-columns:100px minmax(0,1fr);gap:12px}dt{font-size:12px}dd{font-size:14px;overflow-wrap:anywhere}.historical-profile .section-heading{align-items:start}.historical-profile h3{font-size:15px}input,select,textarea{font-size:16px}.calendar-nav{gap:6px}.calendar-nav .button{padding:7px 11px}footer{padding:22px 18px}}

.student-tools{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-end}.dashboard-communications{margin-bottom:24px}.dashboard-communications .list-row{padding:13px 0}.dashboard-communications .list-row strong{font-size:14px}.dashboard-communications .list-row small{font-size:11px}.communication-state-review{background:#eaf1ff;color:#3568af}.communication-state-important{background:#fff0dc;color:#a46613}.communication-state-working{background:#f0eafb;color:#8261ad}.communication-state-done{background:#e6f5ed;color:#287959}
@media(max-width:760px){.page-heading .student-tools{flex-direction:row;justify-content:flex-start;align-items:center}.student-tools .status-actions{flex-basis:100%}.dashboard-communications .list-row strong{font-size:13px}.dashboard-communications .list-row small{font-size:10px}}

/* Cashbook: readable on phones without a wide financial table. */
.cash-entry-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.cash-entry-heading{display:flex;justify-content:space-between;gap:12px;align-items:start}.cash-entry-heading h3{margin:8px 0}.cash-entry-heading>strong{white-space:nowrap;color:var(--primary,#2867d1)}.cash-entry .actions{margin-top:16px}.cash-entry p{overflow-wrap:anywhere}.cash-voided{opacity:.75}.cash-category-list{display:flex;gap:12px 32px;flex-wrap:wrap}.cash-category-list strong{margin-left:12px}
@media(max-width:760px){.cash-entry-list{grid-template-columns:1fr}.cash-entry-heading{flex-wrap:wrap}.cash-category-list{display:block}}
@media(max-width:760px){.stats.financial-stats{grid-template-columns:1fr}.stats.financial-stats .card{min-height:95px;padding:18px 20px}.stats.financial-stats .card>span{font-size:12px}.stats.financial-stats strong{font-size:30px;overflow-wrap:anywhere}}
.money-calculation{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:10px 0}.money-calculation>span{color:#2867cf;font-size:14px;font-weight:600;overflow-wrap:anywhere}.money-calculation .money-error{color:#b84050}
.tuition-actions{margin-top:16px;flex-wrap:wrap}.tuition-terms,.tuition-transactions{margin:16px 0;padding:16px;border:1px solid #e1e7f0;border-radius:14px}.split-receipt{margin:12px 0;padding:18px}.tuition-transactions small{display:block}.tuition-transactions a{font-size:13px}.tuition-actions .button{font-size:13px}

.pass-paid{background:#e8f6ee;color:#27836c}.pass-settled{background:#eef0f4;color:#64748b}.pass-held{background:#f0eafb;color:#795ab4}

.tuition-notice-row>div{min-width:0;overflow-wrap:anywhere}.tuition-notice-row>form{flex-shrink:0}.tuition-notice-row p{margin:8px 0}.tuition-notice-row small{display:block}
@media(max-width:600px){.tuition-notice-row{flex-direction:column;align-items:stretch}.tuition-notice-row>form button{width:100%}}

.notice-stage{display:inline-block;font-size:11px;font-weight:700;border-radius:8px;padding:4px 8px;margin:4px 0}.notice-stage-planned{background:#edf0ff;color:#5a58a8}.notice-stage-unpaid{background:#fff0e5;color:#a15a27}

/* Administrator overview: compact payment actions, separate from academy totals. */
.stats.payment-overview{gap:14px;margin-bottom:26px}
.stats.payment-overview .payment-overview-card{display:flex;flex-direction:column;gap:6px;min-height:0;padding:20px 24px;border-radius:18px;text-decoration:none;transition:box-shadow .15s,border-color .15s;border:1px solid transparent}
.stats.payment-overview .payment-overview-card:after{display:none}
.stats.payment-overview .payment-overview-card.planned{background:#f1edfc;color:#6550a4}
.stats.payment-overview .payment-overview-card.unpaid{background:#fff1e5;color:#a35d23}
.stats.payment-overview .payment-overview-card.pending{background:#eaf2ff;color:#3465ad}
.stats.payment-overview .payment-overview-card>span:first-child{font-size:14px;font-weight:700;color:inherit}
.stats.payment-overview .payment-overview-card strong{font-size:32px;line-height:1.25;color:inherit}
.stats.payment-overview .payment-overview-card strong small{display:inline;font-size:13px;font-weight:500;margin-left:6px}
.stats.payment-overview .payment-overview-card>small{font-size:12px;color:#6d7685}
.stats.payment-overview .payment-overview-card .overview-arrow{position:absolute;right:20px;top:20px;font-size:18px;color:inherit;opacity:.7}
.stats.payment-overview .payment-overview-card:hover{box-shadow:0 8px 22px #24365812;border-color:#cdd8e8}
.stats.payment-overview .payment-overview-card:focus-visible{outline:3px solid #426fcb;outline-offset:3px}
.operating-class-summary{color:#78879a;font-size:13px;font-weight:500}
@media(max-width:760px){.stats.payment-overview{grid-template-columns:1fr;gap:10px}.stats.payment-overview .payment-overview-card{padding:16px 20px;gap:3px}.stats.payment-overview .payment-overview-card strong{font-size:28px}}

.roster-filter{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:12px 0}.roster-filter label{display:flex;align-items:center;gap:8px;margin:0}.roster-filter input[type=checkbox]{width:20px;height:20px}.roster-filter small{color:#7c899a}

/* Payment reminders: distinguish classes not yet started from overdue tuition. */
.notice-stage-initial{background:#eaf2ff;color:#315eaa}
.notice-stage-unpaid{background:#ffe9eb;color:#a52e42}
.stats.payment-overview .payment-overview-card.unpaid{background:#fff0f1;color:#a52e42}
.dashboard-date{font-size:20px;font-weight:700;line-height:1.45;letter-spacing:.2px;color:#36567e;margin-bottom:10px}
@media(max-width:600px){.dashboard-date{font-size:18px}}

/* Compact lesson communication; processing and personal read receipts stay separate. */
.message-compact{padding:12px 0;margin:0;border-bottom:1px solid #e5eaf2}
.message-compact>summary{display:flex;align-items:center;flex-wrap:wrap;gap:8px;cursor:pointer;min-height:44px}
.message-compact>summary strong{flex:1;min-width:120px;font-size:15px;overflow-wrap:anywhere}
.message-category{font-size:12px;color:#62738c}.message-unread{font-size:12px;font-weight:700;color:#315fa9;background:#eaf2ff;border-radius:7px;padding:3px 7px;white-space:nowrap}
.message-expanded{padding:12px 0 4px}.message-expanded .message-status-form{margin:12px 0}
.message-history{margin-top:12px;color:#748197;font-size:12px}.message-history>summary{cursor:pointer;min-height:32px}
.message-group{margin-top:16px}.message-group>summary{cursor:pointer;font-weight:650;min-height:44px;padding:8px 0}
@media(max-width:600px){.message-compact>summary{gap:6px}.message-compact>summary strong{flex-basis:100%;order:2}.message-expanded .message-status-form{display:flex;flex-wrap:wrap}.message-expanded .message-status-form button{width:100%}}
.message-compact>summary::before{content:'›';font-size:22px;line-height:1;color:#647d9f;transition:transform .15s}
.message-compact[open]>summary::before{transform:rotate(90deg)}

.teacher-summary{display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px;margin-top:30px;padding:16px 20px;border:1px solid #e1e7f0;border-radius:14px;background:#ffffff80;font-size:14px;color:#64748b}
.teacher-summary>span{font-weight:650}.teacher-summary a{color:#536c8e}.teacher-summary strong{color:#344f74;margin-left:4px}
@media(max-width:600px){.teacher-summary{gap:8px 16px;padding:14px 16px}.teacher-summary>span{flex-basis:100%}}
.notification-group{padding:20px 0;border-bottom:1px solid #e5eaf2}.notification-group:last-child{border-bottom:0}.notification-group>summary{list-style:none;cursor:pointer;display:grid;gap:8px;min-height:48px}.notification-group>summary::-webkit-details-marker{display:none}
.notice-date{font-size:19px;font-weight:750;color:#36567e;letter-spacing:-.3px}.notice-date>span{font-size:12px;margin-left:8px}.notice-class{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;font-size:17px;color:#263b57}.notice-class>span{font-size:13px;color:#61738c}.notice-type{width:fit-content;padding:5px 10px;border-radius:9px;font-size:14px;font-weight:650}.notice-type-video{background:#eaf1ff;color:#315eab}.notice-type-absence{background:#fff0e6;color:#a45b27}
.notice-students{display:flex;flex-wrap:wrap;gap:5px 10px;font-size:17px;font-weight:700;color:#293d58;overflow-wrap:anywhere}.notice-students>span{padding:2px 0}.notice-group-state{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;font-size:12px;color:#6b7f98}.notice-expand{margin-left:auto;color:#3f68a0;font-weight:650}.notice-complete{color:#287b65;font-weight:700}.notice-group-content{padding-top:16px}.notice-student-item{padding:16px 0;border-top:1px solid #e5eaf2}.notice-student-item p{font-size:14px;margin:8px 0}.notice-student-item .section-heading{margin-bottom:6px}.notice-bulk-form{padding:16px 0}.communication-main{display:grid;gap:7px}.communication-row .notice-row-state{display:flex;gap:8px;flex-wrap:wrap;align-items:center;flex-shrink:0}.notice-request-title{font-size:14px;color:#61738c}.replacement-edit-link{font-size:12px}.attendance-action>small{display:block}
@media(max-width:600px){.notice-date{font-size:18px}.notice-class{font-size:16px}.notice-students{font-size:16px}.notice-expand{margin-left:0}.communication-row{align-items:flex-start;flex-direction:column;gap:10px}.notice-student-item button,.notice-bulk-form button{width:100%}.notification-group{padding:16px 0}}

/* Administrator-only SMS preparation, never a live sending control. */
.sms-mode{background:#eef3ff;border-color:#d6e2fa;color:#35577d}.sms-state{display:inline-block;background:#edf1f7;color:#536780;border-radius:8px;padding:5px 9px;font-size:13px;font-weight:650;white-space:nowrap}.sms-template-grid,.sms-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.sms-template{padding:18px;border:1px solid #e0e7f1;border-radius:16px;background:#f8faff}.sms-template p{font-size:14px;color:#60738b}.sms-compose fieldset{border:0;border-bottom:1px solid #e1e7f0;padding:16px 0;margin:0 0 18px}.sms-compose legend{font-weight:700}.sms-students>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 14px;max-height:340px;overflow:auto}.sms-compose input[type=checkbox],.sms-check input{width:20px;height:20px;flex-shrink:0}.sms-compose fieldset label,.sms-check{display:flex;gap:8px;align-items:center;min-height:44px}.sms-bubble{border-radius:18px;padding:20px;background:#edf4ff;color:#263f63;font-size:16px;line-height:1.7;overflow-wrap:anywhere;white-space:pre-wrap}.sms-preview h2{font-size:18px}.sms-notice-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.sms-back{margin-top:12px}
@media(max-width:700px){.sms-template-grid,.sms-preview-grid{grid-template-columns:1fr}.sms-students>div{grid-template-columns:1fr}.sms-compose button,.sms-notice-actions,.sms-notice-actions .button,.sms-notice-actions form,.sms-notice-actions button{width:100%}.sms-preview-grid .card{padding:20px}.sms-bubble{padding:16px}.sms-nav{flex-wrap:wrap}}
.sms-recipient-cards>div{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sms-recipient-cards label{border:2px solid #dce4f0;border-radius:16px;padding:16px;background:#f8faff;font-size:18px;font-weight:700;cursor:pointer}.sms-recipient-cards label:has(input:checked){border-color:#4678d4;background:#edf3ff;color:#2d5daf}.sms-recipient-cards input[type=radio]{width:22px;height:22px;flex-shrink:0}.sms-compose [data-secondary-recipient]{margin-top:16px}.sms-compose [hidden]{display:none!important}
@media(max-width:450px){.sms-recipient-cards>div{grid-template-columns:1fr}.sms-recipient-cards label{padding:16px}}
.sms-purpose-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:24px 0 12px}.sms-purpose{display:block;text-decoration:none;border:1px solid #dce5f4;background:#eef4ff}.sms-purpose strong{font-size:19px;color:#345b95}.sms-purpose strong b{display:block;font-size:30px;margin-top:8px}.sms-purpose p{font-size:14px;color:#65768c}.sms-purpose span{font-size:13px;font-weight:700}.sms-purpose.planned{background:#f2edff}.sms-purpose.planned strong{color:#7054a8}.sms-purpose.unpaid{background:#fff0f1}.sms-purpose.unpaid strong{color:#a44154}@media(max-width:700px){.sms-purpose-grid{grid-template-columns:1fr}.sms-purpose{padding:20px}.sms-purpose strong b{display:inline;margin-left:12px;font-size:24px}}
.sms-manual textarea{width:100%;min-height:110px}.sms-timing input[type=radio]{width:22px;height:22px}.sms-timing #id_timing{display:flex;gap:16px;flex-wrap:wrap}.sms-timing label{min-height:44px}.sms-timing [data-sms-schedule]{padding:12px 16px;border-radius:14px;background:#f2edff;margin-top:12px}
.guest-roster-heading{font-size:17px;color:#6750a0;margin:24px 0 8px}.attendance-row.replacement-guest-row{background:#f5f1ff;border-left:4px solid #9a81c5;padding:16px;border-radius:12px;margin:8px 0}.replacement-guest-row .student-name small{color:#6c568c}.replacement-edit-link{display:inline-block;min-height:32px;padding:5px 0}

.sms-image{display:block;width:100%;max-width:500px;height:auto;max-height:600px;object-fit:contain;border-radius:14px;margin:12px auto;background:#f3f5f9;border:1px solid #dce5f4}
.solapi-settings{max-width:860px}.solapi-field{margin-bottom:22px}.solapi-field input:not([type=checkbox]){width:100%}.solapi-settings input[type=checkbox]{width:20px;height:20px}.solapi-settings .sms-check{min-height:44px}@media(max-width:700px){.solapi-settings button{width:100%}}

.header-inner .brand{font-size:27px;letter-spacing:-.8px;line-height:1.25}.header-inner .brand>span{white-space:nowrap}@media(max-width:760px){.header-inner .brand{font-size:21px;gap:9px}}@media(max-width:370px){.header-inner .brand{font-size:19px;gap:6px}.header-inner .brand-logo{width:27px}}

.registration-summary{padding:20px;margin:20px 0;background:#eef4ff;border:1px solid #d5e2fb;border-radius:16px;overflow-wrap:anywhere}.registration-summary strong{font-size:20px;color:#254b83}.registration-summary p{margin:8px 0;font-size:16px}
