/* Student Portal 3.2.0 — unified Mariia Deutsch interface */
:root{--sp32-ink:#123b37;--sp32-text:#191918;--sp32-cream:#fff6e7;--sp32-lilac:#e8e0f2;--sp32-yellow:#f1da89;--sp32-mint:#b8dcd8;--sp32-paper:#fff;--sp32-line:#ddd9ce;--sp32-shadow:0 18px 45px rgba(18,59,55,.09);--sp32-radius:25px}

/* Shared online presence: avatar plus a clear, elegant popover. */
.sp-presence-avatar{overflow:visible!important;isolation:isolate}.sp-presence-avatar>img,.sp-presence-avatar>b{width:100%;height:100%;border-radius:50%;object-fit:cover}.sp-presence-avatar>b{display:grid;place-items:center}.sp-presence-popover{position:absolute;z-index:40;top:calc(100% + 9px);right:0;display:grid;min-width:max-content;padding:9px 12px;border-radius:13px;background:var(--sp32-ink);color:#fff;box-shadow:0 10px 28px rgba(18,59,55,.22);opacity:0;visibility:hidden;transform:translateY(-4px);transition:.16s ease;pointer-events:none;text-align:left}.sp-presence-popover:before{content:"";position:absolute;right:15px;top:-5px;width:10px;height:10px;background:var(--sp32-ink);transform:rotate(45deg)}.sp-presence-popover strong{font-size:12px;line-height:1.2}.sp-presence-popover small{margin-top:2px;color:#d7ece9;font-size:10px}.sp-presence-avatar:hover .sp-presence-popover,.sp-presence-avatar:focus-within .sp-presence-popover,.sp-presence-avatar.is-joining .sp-presence-popover{opacity:1;visibility:visible;transform:none}.sp-presence-avatar.is-joining .sp-presence-popover{animation:sp-presence-label 3.2s both}@keyframes sp-presence-label{0%,80%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}

/* Whiteboard alignment and icon-only connection state. */
.sp-board-toolbar>button{display:grid!important;place-items:center!important;padding:0!important;line-height:1!important}.sp-board-toolbar>button svg{display:block!important;margin:auto!important;transform-origin:center}.sp-board-toolbar>button[data-tool="pan"] svg{width:21px!important;height:21px!important;transform:translate(-.5px,.5px)}.sp-board-toolbar>button[data-action="toggle-cursors"] svg{width:21px!important;height:21px!important;transform:translate(-1px,-1px)}.sp-board-status{position:relative;display:grid!important;place-items:center;width:32px;height:32px;margin:4px auto 0!important;border-radius:50%;font-size:0!important;background:#fff;color:var(--sp32-ink);box-shadow:0 2px 10px rgba(18,59,55,.12)}.sp-board-status:before{content:"";display:block;width:11px;height:11px;border:2px solid currentColor;border-radius:50%;box-sizing:border-box}.sp-board-status[data-state="online"]{background:var(--sp32-mint);color:var(--sp32-ink)}.sp-board-status[data-state="online"]:before{width:12px;height:7px;border:0;border-left:2px solid currentColor;border-bottom:2px solid currentColor;border-radius:0;transform:translateY(-1px) rotate(-45deg)}.sp-board-status[data-state="connecting"]:before{border-color:currentColor transparent currentColor currentColor;animation:sp32-spin .8s linear infinite}.sp-board-status[data-state="error"]{background:#f4d8d3;color:#8a302d}.sp-board-status[data-state="error"]:before{content:"!";display:grid;place-items:center;border:0;font-size:14px;font-weight:900}.sp-board-status[data-state="info"]{background:var(--sp32-lilac)}@keyframes sp32-spin{to{transform:rotate(360deg)}}

/* Schedule: generous editorial layout and matching dialogs. */
.sp-design-system-page .student-calendar{padding:clamp(18px,3vw,34px)!important;border:1px solid var(--sp32-line)!important;border-radius:var(--sp32-radius)!important;background:linear-gradient(145deg,#fff 0%,#fcfaf2 100%)!important;box-shadow:var(--sp32-shadow)!important}.student-calendar-header{margin-bottom:22px!important}.student-calendar-title{max-width:780px!important;color:var(--sp32-text)!important}.student-calendar-week{display:inline-flex!important;padding:7px 12px!important;border-radius:999px!important;background:var(--sp32-cream)!important;color:var(--sp32-ink)!important}.student-calendar-grid-view{overflow:hidden!important;border-color:var(--sp32-line)!important;box-shadow:0 12px 32px rgba(18,59,55,.06)!important}.student-calendar-grid-day-header{padding:14px 7px!important;background:var(--sp32-cream)!important}.student-slot-lesson{box-shadow:inset 0 0 0 1px rgba(18,59,55,.04)!important}.student-calendar-nav>a,.sp-calendar-date-form>button{transition:.16s ease!important}.student-calendar-nav>a:hover,.sp-calendar-date-form>button:hover{transform:translateY(-1px)!important;box-shadow:0 8px 18px rgba(18,59,55,.12)!important}.sp-design-system-page :is(#sp-block-modal,#sp-open-slot-modal,#sp-delete-modal,#sp-delete-open-slot-modal,#sp-lesson-actions-modal,#sp-student-lesson-modal,#sp-student-reschedule-modal,#sp-pending-reschedule-modal,#sp-freeze-workoff-modal,#sp-lesson-modal,#sp-subscription-conflicts-modal,#sp-trial-booking-notice-modal)>div{border:0!important;border-radius:var(--sp32-radius)!important;background:#fff!important;box-shadow:0 24px 70px rgba(18,59,55,.2)!important}.sp-design-system-page :is(#sp-block-modal,#sp-open-slot-modal,#sp-delete-modal,#sp-delete-open-slot-modal,#sp-lesson-actions-modal,#sp-student-lesson-modal,#sp-student-reschedule-modal,#sp-pending-reschedule-modal,#sp-freeze-workoff-modal,#sp-lesson-modal,#sp-subscription-conflicts-modal,#sp-trial-booking-notice-modal) button:not([style*="transparent"]){border-radius:999px!important;background:var(--sp32-ink)!important;color:#fff!important}

/* Teacher materials: same visual rhythm as the public pages. */
.sp-teacher-library{max-width:1220px!important;margin:0 auto!important;padding:clamp(18px,3vw,42px)!important}.sp-teacher-library>header,.sp-book-screen-header,.sp-teacher-book-open{border:0!important;border-radius:var(--sp32-radius)!important;background:var(--sp32-lilac)!important;box-shadow:none!important}.sp-teacher-library h1,.sp-teacher-library h2,.sp-teacher-library h3{color:var(--sp32-text)!important;font-weight:500!important;letter-spacing:-.025em!important}.sp-teacher-library-grid{gap:18px!important}.sp-teacher-library-grid>*,.sp-teacher-book-card,.sp-book-section,.sp-lesson-exercise-card{border-color:var(--sp32-line)!important;border-radius:var(--sp32-radius)!important;box-shadow:none!important}.sp-teacher-library-grid>*:nth-child(4n+1),.sp-teacher-book-card:nth-child(4n+1){background:var(--sp32-cream)!important}.sp-teacher-library-grid>*:nth-child(4n+2),.sp-teacher-book-card:nth-child(4n+2){background:var(--sp32-mint)!important}.sp-teacher-library-grid>*:nth-child(4n+3),.sp-teacher-book-card:nth-child(4n+3){background:var(--sp32-lilac)!important}.sp-teacher-library button,.sp-teacher-library .sp-teacher-primary{border-radius:999px!important}.sp-book-modal>div,.sp-exercise-modal-dialog{border:0!important;border-radius:var(--sp32-radius)!important;box-shadow:0 24px 70px rgba(18,59,55,.2)!important}

/* Student cabinet: useful links first, no visual split between pair/individual payments. */
.sp-student-dashboard{max-width:1160px!important;margin:0 auto!important;padding:clamp(16px,3vw,38px)!important}.sp-student-dashboard>.student-dashboard-card,.sp-student-dashboard>#sp-dashboard-payment,.sp-student-dashboard>.sp-dashboard-freeze,.sp-student-dashboard>#sp-dashboard-calendar,.sp-student-dashboard>.sp-waitlist{margin-bottom:20px!important}.sp-student-dashboard h3{margin:0 0 16px!important;color:var(--sp32-text)!important;font-size:clamp(22px,2.2vw,30px)!important;font-weight:500!important;letter-spacing:-.025em!important}.sp-dashboard-jump{display:flex!important;gap:8px!important;overflow:auto!important;padding:5px 0 14px!important;scrollbar-width:none}.sp-dashboard-jump a{flex:0 0 auto;padding:9px 14px!important;border:1px solid var(--sp32-line)!important;border-radius:999px!important;background:#fff!important;color:var(--sp32-ink)!important;text-decoration:none!important}.sp-dashboard-navigation{background:var(--sp32-lilac)!important}.sp-dashboard-navigation-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important}.sp-dashboard-navigation-grid>a{display:grid!important;gap:4px!important;min-height:105px;padding:18px!important;border:0!important;border-radius:20px!important;background:#fff!important;color:var(--sp32-text)!important;text-decoration:none!important}.sp-dashboard-navigation-grid>a:nth-child(2){background:var(--sp32-yellow)!important}.sp-dashboard-navigation-grid>a:nth-child(3){background:var(--sp32-mint)!important}.sp-dashboard-navigation-grid>a:nth-child(4){background:var(--sp32-cream)!important}.sp-dashboard-navigation-grid .sp-dashboard-class-cta{background:var(--sp32-ink)!important;color:#fff!important}.sp-dashboard-navigation-grid a span{font-size:13px;opacity:.72}.sp-dashboard-overview,.sp-dashboard-subscription,#sp-dashboard-payment,.sp-dashboard-freeze,.sp-calendar-sync,.sp-waitlist{padding:clamp(20px,3vw,30px)!important;border:0!important;border-radius:var(--sp32-radius)!important;box-shadow:none!important}.sp-dashboard-overview{background:var(--sp32-cream)!important}.sp-dashboard-subscription{background:var(--sp32-mint)!important}.sp-dashboard-details>summary{display:flex!important;align-items:center!important;justify-content:space-between!important;min-height:54px;padding:13px 52px 13px 17px!important;border:0!important;border-radius:17px!important;background:rgba(255,255,255,.72)!important;overflow:visible!important;white-space:normal!important}.sp-dashboard-details>summary:after,.sp-freeze-request-details>summary:after{top:50%!important;right:18px!important;transform:translateY(-50%)!important}.sp-dashboard-details[open]>summary:after,.sp-freeze-request-details[open]>summary:after{top:50%!important;right:18px!important;transform:translateY(-50%) rotate(180deg)!important}.sp-dashboard-details>summary small{display:block!important;min-width:0!important;white-space:normal!important;overflow-wrap:anywhere!important;line-height:1.45!important}.sp-dashboard-subscription-stats{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))!important}.sp-dashboard-subscription-stats>div{min-width:0!important;overflow-wrap:anywhere!important}.sp-subscription-pair-tools{margin-top:20px;padding:18px;border-radius:19px;background:rgba(255,255,255,.72)}.sp-subscription-pair-tools h4{margin:0 0 12px;font-size:18px}.sp-pair-choice{margin-top:12px!important;border:0!important;border-radius:20px!important;background:var(--sp32-cream)!important}#sp-dashboard-payment{background:var(--sp32-lilac)!important}#sp-dashboard-payment>.sp-month-payment,#sp-dashboard-payment>.sp-pair-payments{margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}#sp-dashboard-payment>.sp-pair-payments{margin-top:20px!important;padding-top:20px!important;border-top:1px solid rgba(18,59,55,.16)!important}#sp-dashboard-payment>.sp-pair-payments h3{font-size:18px!important}.sp-payment-summary{margin:-6px 0 18px!important;color:var(--sp32-ink)!important;font-size:17px!important;font-weight:700!important}.sp-invoice-list article,.sp-pair-payments article{border-color:rgba(18,59,55,.14)!important;border-radius:18px!important;background:rgba(255,255,255,.78)!important}.sp-dashboard-freeze{background:var(--sp32-cream)!important}.sp-freeze-request-details>summary{position:relative!important;min-height:52px!important;padding:14px 52px 14px 17px!important;border-radius:17px!important;background:#fff!important}.sp-freeze-request-details select{width:100%!important;max-width:100%!important;min-height:48px!important;padding:10px 42px 10px 13px!important;white-space:normal!important}.sp-calendar-sync{background:var(--sp32-yellow)!important;color:var(--sp32-text)!important}.sp-calendar-sync-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important}.sp-calendar-sync-button{width:100%!important;min-height:50px!important;border:1px solid var(--sp32-ink)!important;border-radius:999px!important;background:#fff!important;color:var(--sp32-ink)!important}.sp-calendar-sync-button--copy{background:var(--sp32-ink)!important;color:#fff!important}.sp-waitlist{background:var(--sp32-cream)!important}.sp-waitlist form{align-items:end!important}.sp-waitlist-saved:has(.sp-waitlist-empty){display:none!important}

@media(max-width:780px){.sp-dashboard-navigation-grid{grid-template-columns:1fr 1fr!important}.sp-calendar-sync-actions{grid-template-columns:1fr!important}.sp-design-system-page .student-calendar{padding:14px!important}.sp-presence-popover{right:-12px}.sp-student-dashboard{padding:12px!important}}@media(max-width:480px){.sp-dashboard-navigation-grid{grid-template-columns:1fr!important}}
