:root{
  --sp-lilac:#c4b2d7;
  --sp-light-lilac:#e8e0f2;
  --sp-yellow:#f4d67f;
  --sp-turquoise:#add9d6;
  --sp-cream:#fff6e7;
  --sp-moss:#002f2b;
}

/* Exact shared palette. */
body :is(.sp-student-dashboard,.sp-teacher-dashboard,.sp-classroom,.sp-content-library,.student-calendar){
  --sp-brand-dark:#002f2b!important;
  --sp-brand-green:#002f2b!important;
  --sp-brand-cream:#fff6e7!important;
  --sp-brand-mint:#add9d6!important;
  --sp-brand-yellow:#f4d67f!important;
  --sp-brand-lilac:#c4b2d7!important;
}
body.sp-native-home-page :is(.sp-el-chips span,.sp-home-proof span){background:#add9d6!important;color:#002f2b!important;border-color:transparent!important}
.sp-rules-note--warm,.sp-dashboard-payment-notice{background:#fff6e7!important;border-color:#f4d67f!important}.sp-rules-note--blue{background:#c4b2d7!important;border-color:transparent!important}
.sp-student-dashboard #sp-dashboard-hours{background:#add9d6!important}
.sp-student-dashboard #sp-waitlist,
.sp-student-dashboard .sp-dashboard-navigation-grid>a:nth-child(3){background:#fff6e7!important}
.sp-student-dashboard :is(button,[type=submit],.sp-dashboard-class-cta),
.sp-teacher-dashboard :is(.sp-teacher-primary,.sp-teacher-cabinet-primary){background:#002f2b!important;border-color:#002f2b!important;color:#fff!important}
.sp-student-dashboard :is(button,[type=submit]):hover,
.sp-teacher-dashboard :is(.sp-teacher-primary,.sp-teacher-cabinet-primary):hover{background:#f4d67f!important;color:#002f2b!important}

/* Student header mirrors the clear icon structure of the teacher cabinet. */
.sp-student-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 24px;padding:28px 30px;border-radius:28px;background:#002f2b;color:#fff;box-shadow:0 18px 45px rgba(0,47,43,.14)}
.sp-student-hero p,.sp-student-hero h1{margin:0;color:#fff!important}.sp-student-hero h1{font-size:clamp(25px,4vw,42px)}
.sp-student-hero>div>span{display:grid;place-items:center;width:40px;height:40px;margin-bottom:10px;border-radius:14px;background:#f4d67f;color:#002f2b;font-size:22px}
.sp-student-hero nav{display:flex;gap:10px;flex-wrap:wrap}.sp-student-hero nav a{display:grid;grid-template-columns:32px auto;align-items:center;gap:8px;min-height:52px;padding:8px 16px;border-radius:17px;background:#add9d6;color:#002f2b!important;text-decoration:none!important;font-weight:800}
.sp-student-hero nav b{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#fff6e7}

/* Notifications stay deliberately lighter than the main lilac. */
.sp-notifications{background:#e8e0f2!important;border-color:transparent!important}.sp-notifications article{padding:16px 0;border-bottom:1px solid rgba(0,47,43,.16)}.sp-notifications article:last-child{border:0}.sp-notifications a{color:#002f2b!important;font-weight:800}

/* Schedule dialog: viewport owns the overlay, only the card scrolls. */
body.sp-schedule-modal-open{position:fixed!important;right:0!important;left:0!important;width:100%!important;overflow:hidden!important}
:is(#sp-lesson-actions-modal,#sp-student-lesson-modal,#sp-student-reschedule-modal,#sp-pending-reschedule-modal,#sp-freeze-workoff-modal,#sp-lesson-modal){position:fixed!important;inset:0!important;z-index:2147483000!important;align-items:center;justify-content:center;overflow:hidden!important;overscroll-behavior:none!important}
:is(#sp-lesson-actions-modal,#sp-student-lesson-modal,#sp-student-reschedule-modal,#sp-pending-reschedule-modal,#sp-freeze-workoff-modal,#sp-lesson-modal)[hidden]{display:none!important}
:is(#sp-lesson-actions-modal,#sp-student-lesson-modal,#sp-student-reschedule-modal,#sp-pending-reschedule-modal,#sp-freeze-workoff-modal,#sp-lesson-modal)>div{width:min(1040px,calc(100vw - 28px))!important;max-height:min(760px,calc(100dvh - 28px))!important;overflow-y:auto!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important}
#sp-lesson-actions-modal>div{grid-template-columns:repeat(3,minmax(0,1fr))!important}

/* Materials preview uses the same visual language as the live class. */
.sp-material-lesson-preview{max-width:none!important;padding:clamp(22px,4vw,44px)!important;border:0!important;border-radius:28px!important;background:#fff6e7!important;box-shadow:0 18px 46px rgba(0,47,43,.1)!important}
.sp-material-preview-exercises{grid-template-columns:repeat(2,minmax(0,1fr))}.sp-material-preview-exercises section{border:0!important;background:#fff!important;box-shadow:0 8px 24px rgba(0,47,43,.08)}

/* Classroom tools and embedded Zoom surface. */
.sp-class-workspace,.sp-class-overlay-dialog{color:#002f2b}.sp-class-call-card{border-radius:24px!important;background:#fff6e7!important}
.sp-zoom-root{min-height:620px!important;border-radius:22px!important;overflow:hidden!important;background:#fff6e7!important}.sp-zoom-root :is(button,[role=button]){min-width:44px!important;min-height:44px!important;font-size:14px!important}
.sp-zoom-placeholder .sp-zoom-brand-button{background:#002f2b!important;border-color:#002f2b!important}.sp-zoom-placeholder .sp-zoom-brand-button:hover{background:#f4d67f!important;color:#002f2b!important}
.sp-class-timer{border-radius:24px;background:#fff6e7}.sp-class-timer button{border-color:#add9d6!important;background:#add9d6!important;color:#002f2b!important}.sp-timer-controls button:first-child{background:#002f2b!important;color:#fff!important}
.sp-class-dictionary{background:#fff!important;color:#002f2b!important}.sp-class-dictionary header{background:#c4b2d7!important}.sp-class-dictionary form button,.sp-chat-compose .sp-chat-send{background:#002f2b!important;border-color:#002f2b!important;color:#fff!important}.sp-dictionary-words>div{background:#fff6e7!important;border-color:transparent!important}
.sp-class-chat{border-color:#add9d6!important}.sp-class-chat>header{background:#c4b2d7!important;color:#002f2b!important}

/* Activity journal and private Zoom library. */
.sp-activity-list{display:grid;gap:10px}.sp-activity-list article{display:grid!important;grid-template-columns:44px 1fr auto!important;align-items:center;gap:14px;padding:15px 17px;border:0!important;border-radius:17px;background:#fff6e7!important}.sp-activity-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:#add9d6;color:#002f2b;font-weight:900}.sp-activity-list article>div{display:grid;gap:2px}.sp-activity-list time{color:#002f2b!important;white-space:nowrap}
.sp-zoom-library{margin:24px 0;padding:25px;border-radius:24px;background:#c4b2d7;color:#002f2b}.sp-zoom-library header{display:flex;gap:14px;align-items:center}.sp-zoom-library header>span{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#002f2b;color:#fff}.sp-zoom-library h3,.sp-zoom-library p{margin:0}.sp-zoom-library>div{display:grid;gap:8px;margin:18px 0}.sp-zoom-library article{display:grid;grid-template-columns:150px 1fr 1fr auto;gap:12px;align-items:center;padding:13px 15px;border-radius:15px;background:#fff}.sp-zoom-library a{padding:8px 12px;border-radius:999px;background:#002f2b;color:#fff!important;text-decoration:none!important;font-weight:800}

.sp-access-gate{max-width:760px;margin:40px auto;padding:42px;border-radius:30px;background:#fff6e7;color:#002f2b;text-align:center}.sp-access-gate>span{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 14px;border-radius:18px;background:#c4b2d7;font-size:28px}.sp-access-gate a{display:inline-flex;margin-top:12px;padding:13px 20px;border-radius:999px;background:#002f2b;color:#fff!important;text-decoration:none!important;font-weight:800}

/* Footer cookie control is typographically identical to neighbouring links. */
.sp-elementor-site-footer button[data-sp-cookie-settings],.sp-site-footer button[data-sp-cookie-settings]{display:inline!important;margin:0!important;padding:0!important;font:inherit!important;font-size:inherit!important;line-height:inherit!important;vertical-align:baseline!important;text-decoration:none!important}

@media(max-width:780px){.sp-student-hero{align-items:flex-start;flex-direction:column}.sp-material-preview-exercises{grid-template-columns:1fr}.sp-zoom-library article{grid-template-columns:1fr}.sp-activity-list article{grid-template-columns:42px 1fr!important}.sp-activity-list time{grid-column:2}.sp-zoom-root{min-height:520px!important}#sp-lesson-actions-modal>div{grid-template-columns:1fr!important}}
