
/* google-sans-font.css */
@font-face{font-family:'Google Sans';src:url("https://mariiaswort.com/wp-content/plugins/student-portal/assets/fonts/google-sans/GoogleSans-Regular.ttf") format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Google Sans';src:url("https://mariiaswort.com/wp-content/plugins/student-portal/assets/fonts/google-sans/GoogleSans-Medium.ttf") format('truetype');font-style:normal;font-weight:500 700;font-display:swap}


/* styles.css */
.student-calendar {
    max-width: 1200px;
    margin: 40px auto;
    font-family: inherit;
}

.student-calendar-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}

.student-calendar-title {
    font-size: 32px;
    font-weight: 700;
}

.student-calendar-week {
    color: #6b7280;
    font-weight: 500;
}

.student-calendar-nav {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.student-calendar-nav a {
    display: inline-block;
    padding: 8px 14px;
    border-radius: 999px;
    background: #f3f4f6;
    color: #111827;
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
}

.student-calendar-nav a:hover {
    background: #e5e7eb;
}

.student-calendar-days {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 12px;
}

.student-calendar-day-card {
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    background: #fff;
    padding: 14px;
    min-height: 220px;
}

.student-calendar-day-title {
    font-weight: 700;
    margin-bottom: 12px;
    text-align: center;
}

.student-slot-free {
    background: #dcfce7;
    color: #166534;
    padding: 8px 10px;
    border-radius: 10px;
    margin-bottom: 8px;
    cursor: pointer;
    font-weight: 600;
}

.student-slot-lesson {
    background: #dbeafe;
    color: #1e40af;
    padding: 8px 10px;
    border-radius: 10px;
    margin-bottom: 8px;
    cursor: pointer;
    font-weight: 600;
}

.student-slot-later,
.student-slot-empty {
    background: #f3f4f6;
    color: #9ca3af;
    padding: 8px 10px;
    border-radius: 10px;
    margin-bottom: 8px;
    font-size: 12px;
    font-weight: 500;
}

.student-slot-time {
    font-size: 12px;
    opacity: 0.85;
    margin-top: 3px;
}

@media (max-width: 900px) {
    .student-calendar {
        overflow-x: auto;
    }

    .student-calendar-days {
        min-width: 1000px;
    }

    .student-calendar-title {
        font-size: 24px;
    }
}

.student-calendar-grid-view {
    display: grid;
    position: relative;
    grid-template-columns: 80px repeat(7, 1fr);
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
}

.student-calendar-corner,
.student-calendar-grid-day-header {
    background: #f3f4f6;
    border-right: 1px solid #e5e7eb;
    border-bottom: 1px solid #e5e7eb;
    padding: 10px 8px;
    font-weight: 700;
    text-align: center;
}

.student-calendar-time-column {
    background: #f9fafb;
    border-right: 1px solid #e5e7eb;
}

.student-calendar-time-row {
    border-bottom: 1px solid #e5e7eb;
    padding: 8px;
    color: #6b7280;
    font-size: 13px;
    font-weight: 500;
}

.student-calendar-grid-day {
    position: relative;
    border-right: 1px solid #e5e7eb;
    background: #fff;
}

.student-calendar-hour-line {
    position: absolute;
    left: 0;
    right: 0;
    border-top: 1px solid #e5e7eb;
    pointer-events: none;
}

.student-slot-positioned {
    position: absolute;
    left: 6px;
    right: 6px;
    z-index: 2;
    overflow: hidden;
}

.student-slot-positioned.student-slot-free,
.student-slot-positioned.student-slot-lesson,
.student-slot-positioned.student-slot-later,
.student-slot-positioned.student-slot-empty {
    margin-bottom: 0;
    box-sizing: border-box;
}

@media (max-width: 900px) {
    .student-calendar {
        overflow-x: auto;
    }

    .student-calendar-grid-view {
        min-width: 1000px;
    }
}
.sp-teacher-block-form {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: end;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    padding: 16px;
    border-radius: 14px;
    margin-bottom: 20px;
}

.sp-teacher-block-form label {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 13px;
    font-weight: 600;
}

.sp-teacher-block-form input {
    padding: 8px 10px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
}

.sp-teacher-block-form button {
    padding: 9px 14px;
    border: 0;
    border-radius: 999px;
    background: #111827;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
}

.sp-modal {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(17,24,39,.45);
    z-index: 999999;
    align-items: center;
    justify-content: center;
}

.sp-modal.open {
    display: flex;
}

.sp-modal-content {
    background: #fff;
    border-radius: 18px;
    padding: 24px;
    width: min(420px, 92vw);
    position: relative;
}

.sp-modal-content h3 {
    margin-top: 0;
    margin-bottom: 16px;
}

.sp-modal-content form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.sp-modal-content label {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 13px;
    font-weight: 600;
}

.sp-modal-content input {
    padding: 9px 10px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
}

.sp-modal-content button[type="submit"] {
    padding: 10px 14px;
    border: 0;
    border-radius: 999px;
    background: #111827;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
}

.sp-modal-close {
    position: absolute;
    top: 12px;
    right: 14px;
    border: 0;
    background: transparent;
    font-size: 26px;
    cursor: pointer;
}

/* Хорошо заметные крестики во всех окнах Student Portal. */
.sp-modal-close,
[id$="-modal"] > div > button[type="button"]:first-of-type,
button[type="button"][onclick*="CloseModal"],
button[type="button"][id$="-close"] {
    color: #111827 !important;
    opacity: 1 !important;
    font-weight: 800 !important;
    text-shadow: none !important;
}

.student-slot-google-event {
    background: #ede9fe;
    color: #5b21b6;
    padding: 8px 10px;
    border-radius: 10px;
    font-weight: 700;
    border: 1px solid #c4b5fd;
    box-sizing: border-box;
    overflow: hidden;
}

.student-slot-google-event {
    background: #fef3c7 !important;
    color: #92400e !important;
    border: 1px solid #fbbf24 !important;
}

.student-calendar .student-slot-google-event {
    background: #fef3c7 !important;
    color: #92400e !important;
    border: 1px solid #fbbf24 !important;
    padding: 8px 10px !important;
    border-radius: 10px !important;
    font-weight: 700 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    z-index: 6 !important;
}

.student-slot-open-exception {
    background: #f3f4f6;
    color: #374151;
    border: 1px dashed #9ca3af;
    padding: 8px 10px;
    border-radius: 10px;
    font-weight: 700;
    cursor: pointer;
    box-sizing: border-box;
    overflow: hidden;
}

.student-dashboard-lesson {
    display: block;
    padding: 14px 18px;
    margin-bottom: 12px;

    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 18px;

    text-decoration: none !important;
    color: inherit;

    box-shadow: 0 2px 8px rgba(0,0,0,.04);

    transition: all .2s ease;
}

.student-dashboard-lesson:hover {
    background: #f8fafc;
    border-color: #93c5fd;

    box-shadow: 0 6px 18px rgba(59,130,246,.15);
}

/* =========================
   Личный кабинет ученика
   ========================= */

.sp-student-dashboard {
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    color: #1e293b;
}

.sp-student-dashboard *,
.sp-student-dashboard *::before,
.sp-student-dashboard *::after {
    box-sizing: border-box;
}

.sp-student-dashboard .student-dashboard-card {
    margin: 0 0 18px !important;
    padding: 22px;
    border: 1px solid #e2e8f0;
    border-radius: 22px;
    background: #ffffff;
    box-shadow: 0 8px 28px rgba(15, 23, 42, 0.04);
}

.sp-student-dashboard h3 {
    margin: 0 0 16px;
    color: #172033;
    font-size: 25px;
    line-height: 1.25;
}

.sp-dashboard-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 0 0 24px;
}

.sp-dashboard-summary > div {
    min-width: 0;
    padding: 14px 16px !important;
    border-radius: 16px !important;
}

.sp-dashboard-summary strong {
    display: block;
    margin-bottom: 5px;
    font-size: 14px;
    color: #64748b;
}

.sp-dashboard-summary span,
.sp-dashboard-summary a {
    font-size: 16px;
    line-height: 1.4;
}

.sp-dashboard-lessons {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 12px;
}

.sp-dashboard-lesson {
    display: block;
    min-width: 0;
    padding: 16px;
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    background: #f8fafc;
    color: inherit;
    text-decoration: none !important;
    line-height: 1.5;
    transition:
        transform 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.sp-dashboard-lesson:hover {
    border-color: #93c5fd;
    box-shadow: 0 10px 24px rgba(37, 99, 235, 0.09);
}

.sp-dashboard-lesson > strong {
    display: block;
    margin-bottom: 6px;
    line-height: 1.35;
}

.sp-dashboard-subscription-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 16px;
}

.sp-dashboard-subscription-stats > div {
    padding: 13px 14px !important;
    border-radius: 15px !important;
}

.sp-dashboard-subscription-stats strong {
    font-size: 22px !important;
}

.sp-dashboard-freeze {
    margin: 0 0 18px;
}

.sp-dashboard-freeze .student-dashboard-card {
    margin: 0 !important;
}

.sp-dashboard-navigation-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.sp-dashboard-navigation-grid > a,
.sp-dashboard-navigation-grid > div {
    min-width: 0;
    padding: 16px !important;
    border: 1px solid #e2e8f0;
    border-radius: 17px !important;
    background: #f8fafc !important;
    line-height: 1.45;
}

.sp-dashboard-navigation-grid > a {
    text-decoration: none !important;
    transition:
        transform 0.2s ease,
        border-color 0.2s ease;
}

.sp-dashboard-navigation-grid > a:hover {
    border-color: #93c5fd;
}

.sp-dashboard-navigation-grid strong {
    display: block;
    margin-bottom: 5px;
}

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

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

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

@media (max-width: 600px) {
    .sp-student-dashboard .student-dashboard-card {
        padding: 16px;
        border-radius: 18px;
    }

    .sp-student-dashboard h3 {
        font-size: 21px;
    }

    .sp-dashboard-summary {
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }

    .sp-dashboard-summary > div {
        padding: 12px !important;
    }

    .sp-dashboard-summary strong {
        font-size: 12px;
    }

    .sp-dashboard-summary span,
    .sp-dashboard-summary a {
        font-size: 14px;
    }

    .sp-dashboard-lessons {
        grid-template-columns: 1fr;
    }

    .sp-dashboard-subscription-stats {
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }

    .sp-dashboard-navigation-grid {
        grid-template-columns: 1fr;
    }
}

/* Раскрывающиеся блоки кабинета */

.sp-dashboard-details,
.sp-freeze-request-details {
    width: 100%;
}

.sp-dashboard-details > summary,
.sp-freeze-request-details > summary {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.sp-dashboard-details > summary::-webkit-details-marker,
.sp-freeze-request-details > summary::-webkit-details-marker {
    display: none;
}

.sp-dashboard-details > summary::after,
.sp-freeze-request-details > summary::after {
    content: '⌄';
    flex: 0 0 auto;
    color: #64748b;
    font-size: 24px;
    line-height: 1;
    transition: transform 0.2s ease;
}

.sp-dashboard-details[open] > summary::after,
.sp-freeze-request-details[open] > summary::after {
    transform: rotate(180deg);
}

.sp-dashboard-details > summary > span {
    color: #172033;
    font-size: 24px;
    font-weight: 700;
}

.sp-dashboard-details > summary > small {
    margin-left: auto;
    color: #64748b;
    font-size: 14px;
    font-weight: 600;
}

.sp-dashboard-details[open] > summary {
    margin-bottom: 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid #e2e8f0;
}

.sp-freeze-request-details {
    margin-top: 16px;
    padding: 0;
    border: 1px solid #bfdbfe;
    border-radius: 16px;
    background: #f8fbff;
    overflow: hidden;
}

.sp-freeze-request-details > summary {
    padding: 13px 16px;
    color: #1d4ed8;
    font-weight: 700;
}

.sp-freeze-request-details[open] > summary {
    border-bottom: 1px solid #dbeafe;
    background: #eff6ff;
}

.sp-freeze-request-details > form,
.sp-freeze-request-details > p {
    margin-right: 16px;
    margin-left: 16px;
}

.sp-freeze-request-details > form {
    padding-top: 4px;
}

.sp-freeze-request-details input,
.sp-freeze-request-details select {
    width: 100%;
    min-height: 44px;
    padding: 8px 12px;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    background: #fff;
}

.sp-freeze-request-details button[type='submit'] {
    padding: 11px 18px;
    border: 0;
    border-radius: 999px;
    background: #2563eb;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
}

@media (max-width: 600px) {
    .sp-dashboard-details > summary {
        align-items: flex-start;
        flex-wrap: wrap;
        gap: 5px 10px;
    }

    .sp-dashboard-details > summary > span {
        font-size: 21px;
    }

    .sp-dashboard-details > summary > small {
        width: calc(100% - 34px);
        margin-left: 0;
    }
}

/* Страница правил уроков */

.sp-rules {
    width: 100%;
    max-width: 1040px;
    margin: 0 auto;
    color: #24324a;
}

.sp-rules *,
.sp-rules *::before,
.sp-rules *::after {
    box-sizing: border-box;
}

.sp-rules-hero {
    padding: 44px;
    border-radius: 30px;
    background: linear-gradient(135deg, #eef5ff 0%, #f7f2ff 100%);
    border: 1px solid #dbeafe;
}

.sp-rules-eyebrow,
.sp-rules-final > span {
    display: inline-block;
    margin-bottom: 10px;
    color: #2563eb;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.sp-rules-hero h2 {
    max-width: 760px;
    margin: 0 0 14px;
    color: #172033;
    font-size: clamp(30px, 5vw, 50px);
    line-height: 1.08;
}

.sp-rules-hero p {
    max-width: 760px;
    margin: 0;
    color: #52627a;
    font-size: 18px;
    line-height: 1.65;
}

.sp-rules-nav {
    position: sticky;
    top: 10px;
    z-index: 20;
    display: flex;
    gap: 8px;
    margin: 18px 0;
    padding: 10px;
    overflow-x: auto;
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 10px 30px rgba(15,23,42,.07);
    backdrop-filter: blur(12px);
}

.sp-rules-nav a {
    flex: 0 0 auto;
    padding: 9px 14px;
    border-radius: 999px;
    color: #334155;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none !important;
}

.sp-rules-nav a:hover {
    background: #eff6ff;
    color: #1d4ed8;
}

.sp-rules-section {
    scroll-margin-top: 90px;
    margin-top: 18px;
    padding: 30px;
    border: 1px solid #e2e8f0;
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(15,23,42,.035);
}

.sp-rules-section-heading {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 22px;
}

.sp-rules-number {
    display: grid;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 14px;
    background: #2563eb;
    color: #fff;
    font-weight: 800;
}

.sp-rules-section h3,
.sp-rules-final h3 {
    margin: 0 0 5px;
    color: #172033;
    font-size: 27px;
    line-height: 1.2;
}

.sp-rules-section-heading p,
.sp-rules-final p {
    margin: 0;
    color: #64748b;
    line-height: 1.6;
}

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

.sp-rules-card {
    padding: 20px;
    border-radius: 18px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}

.sp-rules-card h4 {
    margin: 0 0 10px;
    color: #1e293b;
    font-size: 18px;
}

.sp-rules ul {
    margin: 0;
    padding-left: 21px;
}

.sp-rules li {
    margin: 7px 0;
    line-height: 1.55;
}

.sp-rules-formats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: -4px 0 18px;
}

.sp-rules-formats span {
    padding: 7px 11px;
    border-radius: 999px;
    background: #eef2ff;
    color: #4338ca;
    font-size: 13px;
    font-weight: 700;
}

.sp-rules-note {
    margin: 18px 0;
    padding: 18px 20px;
    border-radius: 18px;
    border: 1px solid transparent;
}

.sp-rules-note strong {
    display: block;
    margin-bottom: 5px;
}

.sp-rules-note p {
    margin: 0;
    line-height: 1.55;
}

.sp-rules-note--blue {
    background: #eff6ff;
    border-color: #bfdbfe;
    color: #1e40af;
}

.sp-rules-note--warm {
    background: #fff7ed;
    border-color: #fed7aa;
    color: #9a3412;
}

.sp-rules-note--red {
    background: #fff1f2;
    border-color: #fecdd3;
    color: #9f1239;
}

.sp-rules-footnote,
.sp-rules-friendly {
    margin: 18px 0 0;
    padding: 14px 16px;
    border-radius: 15px;
    background: #f8fafc;
    color: #52627a;
    line-height: 1.55;
}

.sp-rules-details {
    margin-top: 14px;
    overflow: hidden;
    border: 1px solid #dbe3ef;
    border-radius: 17px;
    background: #fff;
}

.sp-rules-details summary {
    position: relative;
    padding: 15px 50px 15px 18px;
    cursor: pointer;
    list-style: none;
    color: #24324a;
    font-weight: 800;
}

.sp-rules-details summary::-webkit-details-marker {
    display: none;
}

.sp-rules-details summary::after {
    content: '+';
    position: absolute;
    top: 50%;
    right: 18px;
    transform: translateY(-50%);
    color: #2563eb;
    font-size: 24px;
}

.sp-rules-details[open] summary::after {
    content: '−';
}

.sp-rules-details-body {
    padding: 0 18px 18px;
    color: #52627a;
    line-height: 1.6;
}

.sp-rules-checklist {
    display: grid;
    gap: 10px;
    padding: 0 !important;
    list-style: none;
}

.sp-rules-checklist li {
    position: relative;
    margin: 0;
    padding: 13px 15px 13px 44px;
    border-radius: 15px;
    background: #f8fafc;
}

.sp-rules-checklist li::before {
    content: '✓';
    position: absolute;
    top: 12px;
    left: 15px;
    color: #16a34a;
    font-weight: 900;
}

.sp-rules-timeline {
    display: grid;
    gap: 10px;
}

.sp-rules-timeline > div {
    display: grid;
    grid-template-columns: 170px 1fr;
    gap: 16px;
    padding: 15px 17px;
    border-left: 4px solid #60a5fa;
    border-radius: 0 15px 15px 0;
    background: #f8fafc;
}

.sp-rules-final {
    margin-top: 18px;
    padding: 36px;
    border-radius: 26px;
    background: #172033;
    color: #fff;
}

.sp-rules-final h3 {
    color: #fff;
}

.sp-rules-final p {
    margin-top: 12px;
    color: #dbe7f7;
}

@media (max-width: 700px) {
    .sp-rules-hero {
        padding: 28px 22px;
        border-radius: 22px;
    }

    .sp-rules-hero p {
        font-size: 16px;
    }

    .sp-rules-nav {
        top: 6px;
        border-radius: 16px;
    }

    .sp-rules-section {
        padding: 21px 17px;
        border-radius: 20px;
    }

    .sp-rules-grid {
        grid-template-columns: 1fr;
    }

    .sp-rules-section h3,
    .sp-rules-final h3 {
        font-size: 23px;
    }

    .sp-rules-number {
        flex-basis: 36px;
        width: 36px;
        height: 36px;
        border-radius: 12px;
    }

    .sp-rules-timeline > div {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .sp-rules-final {
        padding: 26px 21px;
        border-radius: 20px;
    }
}

/* Страница «Уроки и цены» */

.sp-prices {
    width: 100%;
    max-width: 1120px;
    margin: 0 auto;
    color: #24324a;
}

.sp-prices *,
.sp-prices *::before,
.sp-prices *::after {
    box-sizing: border-box;
}

.sp-prices-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(280px, .75fr);
    gap: 18px;
}

.sp-prices-hero-copy,
.sp-prices-hero-card {
    border-radius: 30px;
}

.sp-prices-hero-copy {
    padding: 48px;
    background: linear-gradient(135deg, #eaf3ff 0%, #f4efff 100%);
    border: 1px solid #dbeafe;
}

.sp-prices-eyebrow,
.sp-prices-section-heading > span,
.sp-prices-trial > div:first-child > span {
    display: inline-block;
    margin-bottom: 9px;
    color: #2563eb;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.sp-prices-hero h2 {
    max-width: 720px;
    margin: 0 0 16px;
    color: #172033;
    font-size: clamp(34px, 5vw, 56px);
    line-height: 1.06;
}

.sp-prices-hero-copy > p {
    max-width: 700px;
    margin: 0;
    color: #52627a;
    font-size: 18px;
    line-height: 1.65;
}

.sp-prices-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 26px;
}

.sp-prices-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 12px 20px;
    border-radius: 999px;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    text-decoration: none !important;
    transition: transform .2s ease, box-shadow .2s ease;
}

.sp-prices-button:hover {
    box-shadow: 0 8px 20px rgba(40,100,232,.2);
}

.sp-prices-button--primary {
    background: #2563eb;
    color: #fff !important;
    box-shadow: 0 10px 24px rgba(37,99,235,.2);
}

.sp-prices-button--light {
    background: rgba(255,255,255,.8);
    border: 1px solid #dbe3ef;
    color: #24324a !important;
}

.sp-prices-button--violet {
    background: #7c3aed;
    color: #fff !important;
    box-shadow: 0 10px 24px rgba(124,58,237,.18);
}

.sp-prices-button--dark {
    background: #172033;
    color: #fff !important;
}

.sp-prices-hero-card {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 32px;
    background: #172033;
    color: #fff;
}

.sp-prices-hero-card > span {
    color: #93c5fd;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.sp-prices-hero-card > strong {
    margin: 8px 0;
    font-size: 29px;
}

.sp-prices-hero-card p {
    margin: 0 0 20px;
    color: #cbd5e1;
    line-height: 1.55;
}

.sp-prices-hero-card a {
    color: #fff;
    font-weight: 800;
}

.sp-prices-included,
.sp-prices-formats {
    margin-top: 20px;
    padding: 34px;
    border: 1px solid #e2e8f0;
    border-radius: 28px;
    background: #fff;
}

.sp-prices-section-heading {
    max-width: 720px;
    margin-bottom: 24px;
}

.sp-prices-section-heading h3,
.sp-prices-urgent h3,
.sp-prices-trial h3 {
    margin: 0 0 8px;
    color: #172033;
    font-size: 30px;
    line-height: 1.15;
}

.sp-prices-section-heading p,
.sp-prices-trial p {
    margin: 0;
    color: #64748b;
    line-height: 1.55;
}

.sp-prices-benefits {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.sp-prices-benefits article {
    padding: 18px;
    border-radius: 18px;
    background: #f8fafc;
}

.sp-prices-benefits article > span {
    color: #2563eb;
    font-size: 12px;
    font-weight: 900;
}

.sp-prices-benefits strong {
    display: block;
    margin: 9px 0 6px;
}

.sp-prices-benefits p {
    margin: 0;
    color: #64748b;
    font-size: 14px;
    line-height: 1.5;
}

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

.sp-prices-format-card {
    padding: 26px;
    overflow: hidden;
    border: 1px solid #dbe3ef;
    border-radius: 24px;
}

.sp-prices-format-card--blue {
    background: linear-gradient(180deg, #f1f7ff, #fff 48%);
}

.sp-prices-format-card--violet {
    background: linear-gradient(180deg, #f7f2ff, #fff 48%);
}

.sp-prices-format-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.sp-prices-format-header > div > span {
    color: #64748b;
    font-size: 13px;
    font-weight: 700;
}

.sp-prices-format-header h4 {
    margin: 3px 0 0;
    color: #172033;
    font-size: 28px;
}

.sp-prices-format-icon {
    display: grid;
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    place-items: center;
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(15,23,42,.08);
    font-weight: 900;
}

.sp-prices-format-description {
    min-height: 78px;
    margin: 18px 0;
    color: #52627a;
    line-height: 1.55;
}

.sp-prices-options {
    display: grid;
    gap: 8px;
    margin-bottom: 18px;
}

.sp-prices-options > div,
.sp-prices-urgent-prices > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 13px 15px;
    border-radius: 14px;
    background: #f8fafc;
}

.sp-prices-options > div.is-featured {
    background: #eaf2ff;
    outline: 1px solid #bfdbfe;
}

.sp-prices-options strong,
.sp-prices-urgent-prices strong {
    color: #172033;
    font-size: 23px;
}

.sp-prices-format-card > .sp-prices-button {
    width: 100%;
}

.sp-prices-caption {
    margin: 18px 0 0;
    color: #64748b;
    font-size: 14px;
    text-align: center;
}

.sp-prices-urgent {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(280px, .75fr);
    gap: 28px;
    margin-top: 20px;
    padding: 36px;
    border-radius: 28px;
    background: #fff7ed;
    border: 1px solid #fed7aa;
}

.sp-prices-urgent-copy > p {
    color: #7c4a2d;
    line-height: 1.6;
}

.sp-prices-urgent-copy ul {
    margin: 18px 0 0;
    padding-left: 21px;
}

.sp-prices-urgent-copy li {
    margin: 7px 0;
}

.sp-prices-urgent-prices {
    display: grid;
    gap: 8px;
    align-content: start;
}

.sp-prices-urgent-prices > div {
    background: rgba(255,255,255,.75);
}

.sp-prices-trial {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(250px, .8fr) auto;
    align-items: center;
    gap: 22px;
    margin-top: 20px;
    padding: 30px;
    border: 1px solid #dbeafe;
    border-radius: 26px;
    background: #eff6ff;
}

.sp-prices-trial-formats {
    display: grid;
    gap: 7px;
}

.sp-prices-trial-formats span {
    padding: 8px 11px;
    border-radius: 12px;
    background: rgba(255,255,255,.75);
    color: #334155;
    font-size: 13px;
    font-weight: 700;
}

.sp-prices-footer-note {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: 20px;
    padding: 24px 28px;
    border-radius: 22px;
    background: #172033;
    color: #fff;
}

.sp-prices-footer-note p {
    margin: 4px 0 0;
    color: #cbd5e1;
}

.sp-prices-footer-note a {
    flex: 0 0 auto;
    color: #fff;
    font-weight: 800;
}

@media (max-width: 900px) {
    .sp-prices-hero,
    .sp-prices-urgent {
        grid-template-columns: 1fr;
    }

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

    .sp-prices-trial {
        grid-template-columns: 1fr;
    }

    .sp-prices-trial > .sp-prices-button {
        justify-self: start;
    }
}

@media (max-width: 650px) {
    .sp-prices-hero-copy,
    .sp-prices-hero-card {
        padding: 27px 21px;
        border-radius: 22px;
    }

    .sp-prices-hero-copy > p {
        font-size: 16px;
    }

    .sp-prices-included,
    .sp-prices-formats,
    .sp-prices-urgent,
    .sp-prices-trial {
        padding: 22px 17px;
        border-radius: 21px;
    }

    .sp-prices-benefits,
    .sp-prices-format-grid {
        grid-template-columns: 1fr;
    }

    .sp-prices-format-description {
        min-height: 0;
    }

    .sp-prices-footer-note {
        align-items: flex-start;
        flex-direction: column;
        padding: 22px;
    }

    .sp-prices-button {
        width: 100%;
    }
}

/* Страница FAQ */

.sp-faq {
    width: 100%;
    max-width: 1040px;
    margin: 0 auto;
    color: #24324a;
}

.sp-faq *,
.sp-faq *::before,
.sp-faq *::after {
    box-sizing: border-box;
}

.sp-faq-hero {
    padding: 44px;
    border: 1px solid #dbeafe;
    border-radius: 30px;
    background: linear-gradient(135deg, #eef5ff 0%, #f7f2ff 100%);
}

.sp-faq-hero > span,
.sp-faq-contact > div > span {
    display: inline-block;
    margin-bottom: 9px;
    color: #2563eb;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.sp-faq-hero h2 {
    margin: 0 0 14px;
    color: #172033;
    font-size: clamp(34px, 5vw, 52px);
    line-height: 1.08;
}

.sp-faq-hero > p {
    max-width: 720px;
    margin: 0;
    color: #52627a;
    font-size: 18px;
    line-height: 1.6;
}

.sp-faq-hero-links {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 24px;
}

.sp-faq-hero-links a {
    padding: 10px 15px;
    border: 1px solid #dbe3ef;
    border-radius: 999px;
    background: rgba(255,255,255,.78);
    color: #334155;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none !important;
}

.sp-faq-nav {
    position: sticky;
    top: 10px;
    z-index: 20;
    display: flex;
    gap: 8px;
    margin: 18px 0;
    padding: 10px;
    overflow-x: auto;
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 10px 30px rgba(15,23,42,.07);
    backdrop-filter: blur(12px);
}

.sp-faq-nav a {
    flex: 0 0 auto;
    padding: 9px 14px;
    border-radius: 999px;
    color: #334155;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none !important;
}

.sp-faq-nav a:hover {
    background: #eff6ff;
    color: #1d4ed8;
}

.sp-faq-groups {
    display: grid;
    gap: 16px;
}

.sp-faq-group {
    scroll-margin-top: 90px;
    padding: 28px;
    border: 1px solid #e2e8f0;
    border-radius: 25px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(15,23,42,.035);
}

.sp-faq-group-heading {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-bottom: 18px;
}

.sp-faq-group-heading > span {
    display: grid;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 14px;
    background: #2563eb;
    color: #fff;
    font-size: 13px;
    font-weight: 900;
}

.sp-faq-group-heading h3,
.sp-faq-contact h3 {
    margin: 0 0 4px;
    color: #172033;
    font-size: 26px;
    line-height: 1.2;
}

.sp-faq-group-heading p,
.sp-faq-contact p {
    margin: 0;
    color: #64748b;
    line-height: 1.5;
}

.sp-faq-items {
    display: grid;
    gap: 9px;
}

.sp-faq-item {
    overflow: hidden;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    background: #f8fafc;
}

.sp-faq-item summary {
    position: relative;
    padding: 16px 52px 16px 18px;
    cursor: pointer;
    list-style: none;
    color: #24324a;
    font-weight: 800;
    line-height: 1.4;
}

.sp-faq-item summary::-webkit-details-marker {
    display: none;
}

.sp-faq-item summary::after {
    content: '+';
    position: absolute;
    top: 50%;
    right: 18px;
    transform: translateY(-50%);
    color: #2563eb;
    font-size: 24px;
    font-weight: 500;
}

.sp-faq-item[open] {
    background: #fff;
    border-color: #bfdbfe;
}

.sp-faq-item[open] summary {
    color: #1d4ed8;
}

.sp-faq-item[open] summary::after {
    content: '−';
}

.sp-faq-answer {
    padding: 0 18px 18px;
    color: #52627a;
    line-height: 1.65;
}

.sp-faq-answer p {
    margin: 0;
}

.sp-faq-answer a {
    display: inline-block;
    margin-top: 10px;
    color: #2563eb;
    font-weight: 800;
}

.sp-faq-contact {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-top: 18px;
    padding: 30px;
    border-radius: 25px;
    background: #172033;
    color: #fff;
}

.sp-faq-contact h3 {
    color: #fff;
}

.sp-faq-contact p {
    color: #cbd5e1;
}

.sp-faq-contact > a {
    flex: 0 0 auto;
    padding: 12px 19px;
    border-radius: 999px;
    background: #fff;
    color: #172033;
    font-weight: 800;
    text-decoration: none !important;
}

@media (max-width: 650px) {
    .sp-faq-hero {
        padding: 28px 21px;
        border-radius: 22px;
    }

    .sp-faq-hero > p {
        font-size: 16px;
    }

    .sp-faq-nav {
        top: 6px;
        border-radius: 16px;
    }

    .sp-faq-group {
        padding: 20px 16px;
        border-radius: 20px;
    }

    .sp-faq-group-heading h3,
    .sp-faq-contact h3 {
        font-size: 22px;
    }

    .sp-faq-group-heading > span {
        flex-basis: 36px;
        width: 36px;
        height: 36px;
        border-radius: 12px;
    }

    .sp-faq-contact {
        align-items: flex-start;
        flex-direction: column;
        padding: 24px 20px;
        border-radius: 20px;
    }

    .sp-faq-contact > a {
        width: 100%;
        text-align: center;
    }
}

/* Панель преподавателя */

.sp-teacher-tools {
    margin-bottom: 18px;
    overflow: hidden;
    border: 1px solid #dbe3ef;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 8px 26px rgba(15, 23, 42, 0.05);
}

.sp-teacher-tools > summary {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 52px 16px 18px;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.sp-teacher-tools > summary::-webkit-details-marker {
    display: none;
}

.sp-teacher-tools > summary::after {
    content: '⌄';
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translateY(-50%);
    color: #64748b;
    font-size: 25px;
    transition: transform 0.2s ease;
}

.sp-teacher-tools[open] > summary::after {
    transform:
        translateY(-50%)
        rotate(180deg);
}

.sp-teacher-tools > summary > span {
    color: #172033;
    font-size: 18px;
    font-weight: 800;
}

.sp-teacher-tools > summary > small {
    color: #64748b;
    font-size: 13px;
    font-weight: 600;
}

.sp-teacher-tools[open] > summary {
    border-bottom: 1px solid #e2e8f0;
    background: #f8fafc;
}

.sp-teacher-tools-content {
    display: grid;
    gap: 14px;
    padding: 16px;
}

.sp-teacher-tools-hint {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 15px;
    border: 1px solid #bbf7d0;
    border-radius: 15px;
    background: #f0fdf4;
    color: #166534;
}

.sp-teacher-tools-hint strong {
    flex: 0 0 auto;
}

.sp-teacher-tools-content > form {
    display: grid !important;
    grid-template-columns:
        repeat(4, minmax(130px, 1fr));
    gap: 10px 12px;
    margin: 0 !important;
    padding: 16px;
    border: 1px solid #e2e8f0;
    border-radius: 17px;
    background: #fff;
    color: #334155;
    font-weight: 400;
}

.sp-teacher-tools-content > form::before {
    grid-column: 1 / -1;
    color: #172033;
    font-size: 17px;
    font-weight: 800;
}

.sp-teacher-tools-content > form:nth-of-type(1)::before {
    content: 'Добавить постоянный слот';
}

.sp-teacher-tools-content > form:nth-of-type(2)::before {
    content: 'Рассчитать абонемент';
}

.sp-teacher-tools-content > form:nth-of-type(3)::before {
    content: 'Добавить слот только на месяц';
}

.sp-teacher-tools-content form label {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 5px;
    color: #475569;
    font-size: 13px;
    font-weight: 700;
}

.sp-teacher-tools-content form input,
.sp-teacher-tools-content form select {
    width: 100%;
    min-width: 0;
    min-height: 42px;
    padding: 8px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 11px;
    background: #fff;
    color: #334155;
    font-size: 14px;
}

.sp-teacher-tools-content form button {
    align-self: end;
    min-height: 42px;
    padding: 9px 15px;
    border: 0;
    border-radius: 999px;
    background: #2563eb;
    color: #fff;
    font-weight: 800;
    cursor: pointer;
}

.sp-teacher-tools-content > div:not(
    .sp-teacher-tools-hint
) {
    padding: 16px !important;
    border: 1px solid #e2e8f0;
    border-radius: 17px !important;
    background: #f8fafc !important;
}

@media (max-width: 900px) {
    .sp-teacher-tools-content > form {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .sp-teacher-tools > summary {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px;
    }

    .sp-teacher-tools-content > form {
        grid-template-columns: 1fr;
    }

    .sp-teacher-tools-hint {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* Подключение календаря ученика */

.sp-calendar-sync {
    margin: 0 0 18px;
    padding: 22px;
    border: 1px solid #c7dafe;
    border-radius: 22px;
    background: linear-gradient(135deg, #f4f8ff 0%, #f8f5ff 100%);
    color: #24324a;
}

.sp-calendar-sync *,
.sp-calendar-sync *::before,
.sp-calendar-sync *::after {
    box-sizing: border-box;
}

.sp-calendar-sync-heading {
    display: flex;
    align-items: flex-start;
    gap: 14px;
}

.sp-calendar-sync-icon {
    display: grid;
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    place-items: center;
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(37,99,235,.1);
    font-size: 22px;
}

.sp-calendar-sync h3 {
    margin: 0 0 4px;
    color: #172033;
    font-size: 23px;
}

.sp-calendar-sync-heading p {
    margin: 0;
    color: #64748b;
    line-height: 1.5;
}

.sp-calendar-sync-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 18px;
}

.sp-calendar-sync-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 43px;
    padding: 10px 15px;
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    font: inherit;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none !important;
}

.sp-calendar-sync-button--apple {
    background: #172033;
    color: #fff !important;
}

.sp-calendar-sync-button--copy {
    background: #2563eb;
    color: #fff;
}

.sp-calendar-sync-button--google {
    border: 1px solid #cbd5e1;
    background: #fff;
    color: #334155 !important;
}

.sp-calendar-sync-help {
    margin-top: 14px;
    overflow: hidden;
    border: 1px solid #dbe3ef;
    border-radius: 15px;
    background: rgba(255,255,255,.72);
}

.sp-calendar-sync-help summary {
    position: relative;
    padding: 13px 48px 13px 15px;
    cursor: pointer;
    list-style: none;
    font-weight: 800;
}

.sp-calendar-sync-help summary::-webkit-details-marker {
    display: none;
}

.sp-calendar-sync-help summary::after {
    content: '+';
    position: absolute;
    top: 50%;
    right: 17px;
    transform: translateY(-50%);
    color: #2563eb;
    font-size: 22px;
}

.sp-calendar-sync-help[open] summary::after {
    content: '−';
}

.sp-calendar-sync-help > div {
    padding: 0 16px 16px;
    color: #52627a;
    font-size: 14px;
    line-height: 1.55;
}

.sp-calendar-sync-help p {
    margin: 12px 0 5px;
}

.sp-calendar-sync-help ol {
    margin: 0;
    padding-left: 20px;
}

.sp-calendar-sync-warning {
    padding: 11px 13px;
    border-radius: 12px;
    background: #fff7ed;
    color: #9a3412;
}

.sp-calendar-sync-reset {
    margin: 12px 0 0;
}

.sp-calendar-sync-reset button {
    padding: 0;
    border: 0;
    background: transparent;
    color: #64748b;
    cursor: pointer;
    font-size: 12px;
    text-decoration: underline;
}

@media (max-width: 650px) {
    .sp-calendar-sync {
        padding: 17px;
        border-radius: 18px;
    }

    .sp-calendar-sync-actions {
        display: grid;
    }

    .sp-calendar-sync-button {
        width: 100%;
    }
}

    /* Праздничный режим расписания */

.sp-holiday-notice {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin: 0 0 18px;
    padding: 18px 20px;
    overflow: hidden;
    border: 1px solid #bae6d3;
    border-radius: 20px;
    background:
        radial-gradient(circle at 94% 10%, rgba(255,255,255,.85) 0 4px, transparent 5px),
        radial-gradient(circle at 88% 34%, rgba(255,255,255,.65) 0 3px, transparent 4px),
        linear-gradient(135deg, #ecfdf5 0%, #eff6ff 55%, #fff7ed 100%);
    color: #14532d;
}

.sp-holiday-notice::after {
    content: '✦  ❄  ✦';
    position: absolute;
    top: 12px;
    right: 18px;
    color: rgba(37,99,235,.24);
    font-size: 20px;
    letter-spacing: 8px;
}

.sp-holiday-notice-icon {
    display: grid;
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    place-items: center;
    border-radius: 15px;
    background: rgba(255,255,255,.82);
    box-shadow: 0 8px 20px rgba(15,118,110,.1);
    font-size: 23px;
}

.sp-holiday-notice strong {
    display: block;
    margin-bottom: 5px;
    padding-right: 100px;
    color: #14532d;
    font-size: 17px;
}

.sp-holiday-notice p {
    max-width: 820px;
    margin: 0;
    color: #3f6253;
    line-height: 1.55;
}

.student-calendar-grid-day.sp-holiday-day {
    background:
        radial-gradient(circle at 18px 22px, rgba(255,255,255,.9) 0 2px, transparent 3px),
        radial-gradient(circle at 70% 54px, rgba(255,255,255,.78) 0 2px, transparent 3px),
        linear-gradient(180deg, #f0fdf4 0%, #fff 52%, #eff6ff 100%);
}

.sp-holiday-day-label {
    position: absolute;
    top: 7px;
    right: 7px;
    left: 7px;
    z-index: 12;
    padding: 7px 8px;
    border: 1px solid #bbf7d0;
    border-radius: 11px;
    background: rgba(255,255,255,.9);
    color: #166534;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.25;
    text-align: center;
    pointer-events: none;
}

@media (max-width: 650px) {
    .sp-holiday-notice {
        padding: 16px;
        border-radius: 17px;
    }

    .sp-holiday-notice::after {
        display: none;
    }

    .sp-holiday-notice strong {
        padding-right: 0;
    }
}
.sp-dashboard-learning-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.sp-dashboard-learning-grid>div,.sp-dashboard-learning-grid>a{display:flex;min-height:125px;padding:17px;border-radius:17px;background:#f8fafc;color:inherit!important;text-decoration:none!important;flex-direction:column}.sp-dashboard-learning-grid span{font-size:23px;margin-bottom:14px}.sp-dashboard-learning-grid strong{line-height:1.3}.sp-dashboard-learning-grid small{margin-top:5px;color:#64748b}.sp-dashboard-learning-grid>a{background:#eff6ff;border:1px solid #bfdbfe}.sp-class-next-lesson{margin-top:16px;padding:15px;border-radius:15px;background:#eff6ff}.sp-class-next-lesson>span{display:block;color:#64748b;font-size:13px}.sp-class-next-lesson strong{display:block;margin-top:4px}.sp-class-next-lesson p{margin:3px 0 0;color:#475569}@media(max-width:850px){.sp-dashboard-learning-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.sp-dashboard-learning-grid{grid-template-columns:1fr}}
.sp-modern-footer-active .site-footer,.sp-modern-footer-active .elementor-location-footer,.sp-elementor-footer-active .site-footer,.sp-elementor-footer-active .elementor-location-footer{display:none!important}.sp-site-footer{margin-top:64px;padding:34px 24px;background:#17233a;color:#dbe7f7}.sp-site-footer-inner{display:grid;grid-template-columns:1fr auto;align-items:center;gap:24px;max-width:1180px;margin:0 auto}.sp-site-footer-brand{display:flex;flex-direction:column;gap:4px}.sp-site-footer-brand strong{color:#fff;font-size:19px}.sp-site-footer-brand span,.sp-site-footer small{color:#94a3b8}.sp-site-footer nav{display:flex;gap:20px;flex-wrap:wrap;justify-content:flex-end}.sp-site-footer a{color:#dbeafe!important;text-decoration:none!important;font-weight:700}.sp-site-footer a:hover{color:#fff!important;text-decoration:underline!important}.sp-site-footer small{grid-column:1/-1;padding-top:18px;border-top:1px solid rgba(255,255,255,.12)}@media(max-width:700px){.sp-site-footer-inner{grid-template-columns:1fr}.sp-site-footer nav{justify-content:flex-start}.sp-site-footer small{grid-column:auto}}
.student-calendar .student-slot-google-event{background:#f1f5f9!important;color:#475569!important;border-color:#cbd5e1!important}

/* Do not place the theme's floating arrow over the shared "Нужна помощь?" block. */
#ast-scroll-top,
.ast-scroll-top-icon {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
.sp-teacher-avatar-photo,.sp-class-avatar-image,img.sp-user-avatar,.sp-student-avatar-photo{display:block!important;aspect-ratio:1/1!important;border-radius:50%!important;object-fit:cover!important;object-position:center!important;overflow:hidden!important;padding:0!important}

/* 2.7.2: one consistent footer on every public page. */
.sp-elementor-site-footer{box-sizing:border-box;display:grid;gap:28px;width:100%;max-width:none;min-height:305px;margin:32px 0 0;padding:50px clamp(32px,6.1vw,70px) 44px;border-radius:0;background:#003c35;color:#fff}
.sp-elementor-site-footer-brand{display:grid;gap:10px}.sp-elementor-site-footer-brand strong{font-size:22px;font-weight:600;line-height:1.25}.sp-elementor-site-footer-brand span,.sp-elementor-site-footer small{color:#fff;font-size:20px;line-height:1.4}
.sp-elementor-site-footer nav{display:flex;align-items:baseline;gap:18px 24px;flex-wrap:wrap}.sp-elementor-site-footer a,.sp-elementor-site-footer button{padding:0;border:0;background:none;color:#fff;font:inherit;font-size:20px;font-weight:400;line-height:1.4;text-decoration:underline;cursor:pointer}.sp-elementor-site-footer small{margin:0}

/* Hover may change colour or shadow, but interactive elements must stay in place. */
.sp-elementor-site-footer a:hover,.sp-elementor-site-footer a:focus-visible,.sp-elementor-site-footer button:hover,.sp-elementor-site-footer button:focus-visible,.sp-site-footer a:hover,.sp-site-footer a:focus-visible,.sp-home-button--primary:hover,.sp-dashboard-lesson:hover,.sp-dashboard-navigation-grid a:hover,.sp-dashboard-learning-grid a:hover,.sp-teacher-sections a:hover,.sp-teacher-student-list>a:hover,.sp-teacher-books-grid article:hover,.sp-teacher-books-grid>a:hover,.sp-exercise-template-grid>:where(button,a):hover,:where(.sp-teacher-primary,.sp-auth-submit,.sp-register-submit,.sp-prices-button--primary):hover{transform:none!important;translate:none!important}
@media(max-width:650px){.sp-elementor-site-footer{min-height:0;gap:22px;width:100%;margin:22px 0 0;padding:34px 22px 30px}.sp-elementor-site-footer-brand strong{font-size:20px}.sp-elementor-site-footer-brand span,.sp-elementor-site-footer small,.sp-elementor-site-footer nav a,.sp-elementor-site-footer nav .sp-footer-cookie-label{font-size:16px}.sp-elementor-site-footer nav{display:grid;justify-items:start;gap:12px}}
.sp-teacher-freeze-week-notice{box-sizing:border-box;display:flex;align-items:flex-start;gap:14px;width:100%;margin:0 0 20px;padding:17px 20px;border:0;border-radius:20px;background:#dceeed;color:#002f2b;box-shadow:none}.sp-teacher-freeze-week-icon{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;border-radius:14px;background:#fff6e7;font-size:20px}.sp-teacher-freeze-week-content{min-width:0;flex:1}.sp-teacher-freeze-week-content>strong{display:block;margin:1px 0 10px;font-size:17px}.sp-teacher-freeze-week-list{display:flex;flex-wrap:wrap;gap:8px}.sp-teacher-freeze-week-list>span{display:inline-flex;align-items:center;gap:7px;max-width:100%;min-height:34px;padding:6px 11px;border-radius:12px;background:#fff;color:#002f2b;line-height:1.2}.sp-teacher-freeze-week-list b{min-width:0;overflow-wrap:anywhere}.sp-teacher-freeze-week-list small{flex:0 0 auto;color:#496763;font-weight:700;white-space:nowrap}@media(max-width:560px){.sp-teacher-freeze-week-notice{padding:15px;gap:11px}.sp-teacher-freeze-week-list{display:grid}.sp-teacher-freeze-week-list>span{justify-content:space-between}.sp-teacher-freeze-week-list small{white-space:normal}}
.sp-student-freeze-week-label{grid-column:2/span 7;display:flex;align-items:center;justify-content:center;gap:7px;box-sizing:border-box;width:100%;min-width:0;margin:4px 0;padding:7px 12px;border:1px solid #c9e3e1!important;border-radius:11px!important;background:rgba(255,255,255,.92)!important;color:#315b57!important;box-shadow:none!important;font:inherit;line-height:1.25;text-align:center;cursor:pointer;transform:none!important;transition:none!important;animation:none!important}.sp-student-freeze-week-label:hover,.sp-student-freeze-week-label:focus,.sp-student-freeze-week-label:active{border-color:#aad4d0!important;background:#f5fbfa!important;color:#315b57!important;box-shadow:none!important;transform:none!important;transition:none!important;animation:none!important}.sp-student-freeze-week-label strong{font-size:12px}.sp-student-freeze-week-label small{font-size:11px;color:#5f7c79}.sp-freeze-day-label{position:absolute;top:7px;right:7px;left:7px;z-index:12;padding:7px 8px;border:1px solid #c9e3e1;border-radius:11px;background:rgba(255,255,255,.9);color:#315b57;font-size:11px;font-weight:800;line-height:1.25;text-align:center;pointer-events:none}@media(max-width:620px){.sp-student-freeze-week-label{flex-wrap:wrap}.sp-student-freeze-week-label small{width:100%}}


/* responsive-2577.css */
/* Cross-browser and responsive safety layer — 2.5.7.7 */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}*,*:before,*:after{box-sizing:border-box}img,video,canvas,svg{max-width:100%}button,input,select,textarea{max-width:100%;font:inherit}input,textarea,select{-webkit-appearance:none;appearance:none}input[type=checkbox],input[type=radio]{-webkit-appearance:auto;appearance:auto}select{background-image:linear-gradient(45deg,transparent 50%,#64748b 50%),linear-gradient(135deg,#64748b 50%,transparent 50%);background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:32px!important}button,a{-webkit-tap-highlight-color:transparent}.sp-teacher-dashboard,.student-dashboard,.sp-schedule-wrapper,.sp-profile-wrapper,.sp-faq,.sp-lesson-prices,.sp-lesson-rules{width:min(100%,1180px);margin-left:auto;margin-right:auto}.sp-class-overlay-dialog{max-height:min(88vh,760px);overflow:auto;overscroll-behavior:contain}.sp-class-topbar nav{min-width:0}.sp-class-panels,.sp-current-lesson,.sp-class-materials{min-width:0}.sp-dashboard-lessons>*{min-width:0}
@supports not (gap:1rem){.sp-class-top-actions>*+*{margin-left:10px}.sp-chat-compose>*+*{margin-left:8px}}
@media(max-width:1024px){.sp-teacher-dashboard,.student-dashboard,.sp-schedule-wrapper,.sp-profile-wrapper,.sp-faq,.sp-lesson-prices,.sp-lesson-rules{padding-left:18px;padding-right:18px}.sp-class-content-grid{grid-template-columns:minmax(0,1fr)!important}.sp-class-call-card{position:static!important}.sp-teacher-profile-grid{grid-template-columns:1fr 1fr}.sp-material-book-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){body{overflow-x:hidden}.sp-teacher-dashboard,.student-dashboard,.sp-schedule-wrapper,.sp-profile-wrapper,.sp-faq,.sp-lesson-prices,.sp-lesson-rules{padding-left:12px;padding-right:12px}.sp-teacher-profile-grid,.sp-material-book-grid{grid-template-columns:1fr}.sp-class-topbar{flex-wrap:wrap}.sp-class-topbar nav{order:2;width:100%;overflow-x:auto;scrollbar-width:none}.sp-class-topbar nav::-webkit-scrollbar{display:none}.sp-class-top-actions{margin-left:auto}.sp-class-presence-stack{padding-left:7px}.sp-presence-avatar{width:36px;height:36px;margin-left:-7px}.sp-class-panels{padding:10px!important}.sp-current-lesson,.sp-class-materials,.sp-class-placeholder{padding:18px!important}.sp-chat-compose{grid-template-columns:36px 36px minmax(0,1fr) 42px!important;padding:9px!important;gap:6px!important}.sp-chat-compose>[data-chat-emoji-toggle],.sp-chat-compose>[data-chat-image-toggle]{width:36px!important;height:36px!important}.sp-chat-compose .sp-chat-send{width:42px!important}.sp-chat-toast{left:12px;right:12px;bottom:12px;max-width:none}.sp-timer-tool [data-timer-mini]{left:48px}.sp-book-section summary{grid-template-columns:30px minmax(0,1fr) auto;padding:14px}.sp-book-section summary small{display:none}.sp-book-lesson{grid-template-columns:30px minmax(0,1fr)}.sp-book-lesson small{grid-column:2}.sp-student-info-card dl>div{align-items:flex-start;flex-direction:column;gap:3px}.sp-student-info-card dd{text-align:left}.sp-site-footer-inner{display:block}.sp-site-footer nav{margin:18px 0}.sp-site-footer small{display:block}}
@media(max-width:480px){.sp-class-workspace{grid-template-columns:52px minmax(0,1fr)!important}.sp-class-sidebar{padding:8px 4px!important}.sp-class-sidebar a,.sp-class-sidebar button{width:38px!important;height:38px!important;font-size:17px!important}.sp-class-topbar nav button{padding:8px!important;font-size:11px!important}.sp-class-student-cabinet{width:34px;height:34px}.sp-class-exit{width:36px!important;height:36px!important}.sp-current-lesson h1,.sp-class-materials h1{font-size:25px!important}.sp-materials-heading{gap:12px}.sp-return-current{font-size:12px}.sp-material-tabs{overflow-x:auto}.sp-material-tabs button{white-space:nowrap}.sp-chat-compose textarea{font-size:16px}.sp-teacher-student-profile>header{padding:16px}.sp-teacher-profile-grid>section{padding:16px}.sp-teacher-student-list>a{padding:11px}.sp-teacher-avatar{width:40px;height:40px;flex-basis:40px}.sp-board-presence{right:118px}.sp-board-back{min-width:98px;right:10px}}
@media(hover:none){button,a{min-height:40px}.sp-chat-compose button{min-height:36px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}


/* iteration-2578.css */
/* Student Portal 2.5.7.8 */
.sp-teacher-dashboard,
.sp-student-dashboard,
.sp-teacher-library{
  width:min(1180px,calc(100% - 32px))!important;
  max-width:1180px!important;
  margin-inline:auto!important;
}
.sp-class-student-cabinet{
  display:grid!important;place-items:center!important;
  padding:0!important;color:#1d4ed8!important;
  font-size:20px!important;line-height:1!important;
  opacity:1!important;visibility:visible!important;
}
.sp-class-student-cabinet:hover,.sp-class-student-cabinet:focus{color:#1d4ed8!important}
.sp-chat-compose .sp-chat-send{
  display:grid!important;place-items:center!important;padding:0!important;line-height:0!important;
}
.sp-chat-compose .sp-chat-send svg{display:block!important;width:23px!important;height:23px!important;margin:0!important;fill:currentColor!important;stroke:none!important}
.sp-class-groups{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.sp-class-groups>section{min-width:0;padding:18px;border:1px solid #e2e8f0;border-radius:18px;background:#f8fafc}
.sp-class-groups h3{margin:0 0 14px}
.sp-class-groups .sp-teacher-student-list{grid-template-columns:1fr}
.sp-book-card-wrap>form{top:12px!important;right:12px!important;bottom:auto!important;z-index:3}
.sp-book-card-cover{display:block;width:100%!important;height:150px!important;object-fit:cover;border-radius:14px}
.sp-book-screen-cover{width:110px!important;height:145px!important;object-fit:cover;border-radius:14px;box-shadow:0 6px 18px rgba(15,23,42,.12)}
.sp-book-card-description{position:relative;z-index:2;margin-top:8px;color:#64748b}
.sp-book-card-description summary,.sp-book-description summary{cursor:pointer;color:#475569;font-weight:700}
.sp-book-card-description p,.sp-book-description p{margin:8px 0 0!important}
.sp-book-screen-header{align-items:flex-start}
@media(max-width:760px){
  .sp-teacher-dashboard,.sp-student-dashboard,.sp-teacher-library{width:calc(100% - 24px)!important}
  .sp-class-groups{grid-template-columns:1fr}
  .sp-book-screen-cover{width:82px!important;height:108px!important}
}


/* iteration-2579.css */
/* Student Portal 2.5.7.9 */
body .sp-teacher-dashboard,body .sp-student-dashboard,body .sp-teacher-library{
  width:min(1320px,calc(100vw - 48px))!important;max-width:1320px!important;
  margin-left:auto!important;margin-right:auto!important;
}
.sp-teacher-profile-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:8px}
.sp-teacher-profile-actions .sp-teacher-profile-class-link{margin-top:0}
.sp-student-info-dialog{position:fixed!important;top:96px!important;right:24px!important;left:auto!important;transform:none!important;max-width:520px!important;height:auto!important;max-height:calc(100vh - 120px)!important}
.sp-student-info-card{padding-bottom:24px!important}
.sp-teacher-book-state{display:none!important}
.sp-book-card-description{margin:10px 21px 18px;padding:10px 0;border-top:1px solid #e2e8f0}
.sp-book-card-description p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.sp-book-cover-editor{margin-top:10px;padding:14px;border:1px solid #dbe4f0;border-radius:16px;background:#f8fafc}
.sp-book-cover-editor>div{width:min(100%,560px);height:330px;margin:0 auto 12px;overflow:hidden;border-radius:14px;background:#e2e8f0}
.sp-book-cover-editor img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.sp-book-cover-editor label{font-size:13px!important}.sp-book-cover-editor input[type=range]{width:100%}
@media(max-width:760px){body .sp-teacher-dashboard,body .sp-student-dashboard,body .sp-teacher-library{width:calc(100vw - 24px)!important}.sp-student-info-dialog{top:72px!important;right:12px!important;left:12px!important;max-width:none!important}.sp-book-cover-editor>div{height:240px}}


/* iteration-2580.css */
/* Student Portal 2.5.8.0 */
body .sp-teacher-dashboard,
body .sp-student-dashboard,
body .sp-teacher-library{
  position:relative!important;
  left:50%!important;
  transform:translateX(-50%)!important;
  width:min(1280px,calc(100vw - 64px))!important;
  max-width:1280px!important;
  margin-inline:0!important;
}

.sp-class-next-lesson{
  justify-items:center!important;
  justify-content:center!important;
  grid-template-columns:auto auto!important;
  text-align:center!important;
}
.sp-class-next-lesson>p{width:100%;text-align:center!important}

.sp-book-cover-editor>div{
  position:relative;
  cursor:grab;
  touch-action:none;
  user-select:none;
}
.sp-book-cover-editor>div.is-dragging{cursor:grabbing}
.sp-book-cover-editor>div::after{
  content:'Перетащите изображение рукой';
  position:absolute;left:50%;bottom:13px;transform:translateX(-50%);
  padding:7px 11px;border-radius:999px;background:rgba(15,23,42,.72);
  color:#fff;font-size:12px;font-weight:700;pointer-events:none;white-space:nowrap;
}
.sp-book-cover-editor>label{display:none!important}

.sp-teacher-books-grid{align-items:stretch!important}
.sp-book-card-wrap,.sp-book-card-wrap>a{height:100%!important}
.sp-book-card-wrap>a{display:flex!important;min-height:310px!important;flex-direction:column!important}
.sp-book-card-wrap h2{min-height:2.6em}
.sp-book-card-wrap>a>strong{margin-top:auto!important}

.sp-book-lesson-row{display:flex!important;align-items:center!important;gap:8px}
.sp-book-lesson-row>a{flex:1!important;min-width:0}
.sp-list-delete-lesson{margin:0!important}
.sp-list-delete-lesson button{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid #fecaca;border-radius:9px;background:#fff;color:#b91c1c;font-size:20px}

body.sp-library-lesson-mode .site-header,
body.sp-library-lesson-mode .elementor-location-header,
body.sp-library-lesson-mode .elementor-widget-theme-post-title,
body.sp-library-lesson-mode .entry-header,
body.sp-library-lesson-mode .sp-site-footer,
body.sp-library-lesson-mode footer{display:none!important}
body.sp-library-lesson-mode{padding-top:0!important;background:#f8fafc!important}
body.sp-library-lesson-mode .sp-teacher-library{width:100vw!important;max-width:none!important}
body.sp-library-lesson-mode .sp-library-lesson-studio{min-height:100vh!important;border-radius:0!important;border-top:0!important}

@media(max-width:760px){
  body .sp-teacher-dashboard,body .sp-student-dashboard,body .sp-teacher-library{width:calc(100vw - 24px)!important}
  .sp-book-cover-editor>div::after{font-size:11px}
}


/* iteration-2581.css */
/* Student Portal 2.5.8.1 */
.sp-active-section-title input[name="title"]{color:#17233a!important;-webkit-text-fill-color:#17233a!important;font-weight:800!important;opacity:1!important}
.sp-active-section-title textarea[name="description"]{display:none!important}

.sp-exercise-modal-close,.sp-class-picker-close,.sp-universal-crop-close{
  display:grid!important;place-items:center!important;padding:0!important;
  line-height:1!important;text-align:center!important;text-indent:0!important;
  align-items:center!important;justify-content:center!important;
}
.sp-exercise-modal-close{font-family:Arial,sans-serif!important}

.sp-universal-cropper[hidden],.sp-class-picker[hidden]{display:none!important}
.sp-universal-cropper,.sp-class-picker{
  position:fixed;z-index:1000002;inset:0;display:flex;align-items:center;justify-content:center;
  padding:24px;background:rgba(15,23,42,.62);overflow:auto;
}
.sp-universal-cropper>div{
  position:relative;width:min(920px,96vw);padding:24px;border-radius:22px;background:#fff;
  box-shadow:0 30px 80px rgba(15,23,42,.32)
}
.sp-universal-cropper h2{margin:0 50px 18px 0;color:#17233a}
.sp-universal-crop-close,.sp-class-picker-close{
  position:absolute;right:15px;top:14px;width:40px;height:40px;border:0;border-radius:50%;
  background:#e2e8f0;color:#17233a;font-size:27px;cursor:pointer
}
.sp-universal-crop-stage{height:min(65vh,620px);overflow:hidden;border-radius:16px;background:#e5e7eb}
.sp-universal-crop-stage img{display:block;max-width:100%}
.sp-universal-crop-actions{display:flex;justify-content:center;gap:10px;margin-top:18px;flex-wrap:wrap}
.sp-universal-crop-actions button{min-width:48px;padding:10px 15px;border:1px solid #dbe3ed;border-radius:11px;background:#fff;color:#334155;font-weight:800;cursor:pointer}
.sp-universal-crop-actions [data-crop-apply]{border-color:#2563eb;background:#2563eb;color:#fff}

.sp-book-cover-editor>div::after{content:'Область обложки выбрана'!important}
.sp-add-carousel-image{width:max-content!important;margin-top:8px!important;padding:10px 14px!important;border:1px dashed #60a5fa!important;border-radius:11px!important;background:#eff6ff!important;color:#1d4ed8!important}
[data-image-crop-previews]{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin-top:14px}
[data-image-crop-previews].is-open{position:static!important;padding:0!important;background:transparent!important;overflow:visible!important}
[data-image-crop-previews] .sp-crop-overlay-head{display:none!important}
[data-image-crop-previews] figure{position:relative;margin:0}
[data-image-crop-previews] figure img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:12px}
[data-image-crop-previews] figure button{position:absolute;right:7px;top:7px;display:grid;place-items:center;width:30px;height:30px;padding:0;border:0;border-radius:50%;background:rgba(15,23,42,.78);color:#fff;font-size:20px}

.sp-start-lesson-button{padding:11px 17px!important;border:0!important;border-radius:12px!important;background:#2563eb!important;color:#fff!important;font-weight:800!important}
.sp-class-picker{align-items:flex-start;justify-content:flex-end;padding:72px 28px 28px}
.sp-class-picker>div{position:relative;width:min(410px,calc(100vw - 32px));max-height:calc(100vh - 100px);padding:24px;overflow:auto;border-radius:20px;background:#fff;box-shadow:0 24px 70px rgba(15,23,42,.28)}
.sp-class-picker h2{margin:0 45px 22px 0}.sp-class-picker h3{margin:18px 0 9px;font-size:15px;color:#64748b}
.sp-class-picker-list{display:grid;gap:8px}.sp-class-picker-list form{margin:0!important}
.sp-class-picker-list button{display:grid!important;grid-template-columns:40px 1fr auto;align-items:center;gap:11px;width:100%;padding:10px!important;border:1px solid #e2e8f0!important;border-radius:13px!important;background:#fff!important;color:#17233a!important;text-align:left!important}
.sp-class-picker-list img{width:38px!important;height:38px!important;border-radius:50%!important;object-fit:cover!important}.sp-class-picker-list b{color:#2563eb}
.sp-class-picker-list p{margin:0;color:#94a3b8}

@media(max-width:650px){.sp-universal-cropper{padding:8px}.sp-universal-cropper>div{padding:18px}.sp-universal-crop-stage{height:55vh}.sp-class-picker{padding:62px 12px 12px}}


/* iteration-2582.css */
/* Student Portal 2.5.8.2 */
.sp-pretty-file-input{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;opacity:0!important}
.sp-pretty-upload,.sp-add-carousel-image{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;width:max-content!important;min-height:46px!important;padding:11px 18px!important;border:1px solid #bfdbfe!important;border-radius:13px!important;background:#eff6ff!important;color:#1d4ed8!important;font-weight:800!important;cursor:pointer!important}
.sp-add-carousel-image{border-style:solid!important;margin:9px 0!important}.sp-exercise-editor-form label[data-carousel-upload]{position:relative;padding:18px;border:1px solid #dbeafe;border-radius:16px;background:#f8fbff}
.sp-exercise-editor-form label[data-carousel-upload]::before{display:none!important}
.sp-book-cover-crop{width:min(1080px,96vw)!important}.sp-book-cover-crop .sp-universal-crop-stage{height:min(76vh,760px)!important}
.sp-book-cover-crop .cropper-crop-box{min-height:62%!important}
.sp-carousel-crop{width:min(1180px,97vw)!important}.sp-carousel-crop .sp-universal-crop-stage{height:min(76vh,760px)!important}
.sp-universal-cropper p{margin:-10px 45px 16px 0;color:#64748b}
[data-image-crop-previews]{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))!important}
[data-image-crop-previews] figure{cursor:grab}[data-image-crop-previews] figure.is-dragging{opacity:.42;cursor:grabbing}
.sp-drag-handle{position:absolute;z-index:2;left:8px;top:8px;display:grid;place-items:center;width:34px;height:30px;border-radius:9px;background:rgba(255,255,255,.9);color:#334155;font-weight:900;letter-spacing:-2px;box-shadow:0 2px 9px rgba(15,23,42,.18)}
.sp-numbered-exercise{padding-top:58px!important}.sp-edit-exercise{position:absolute!important;z-index:3;right:16px;top:14px;display:grid!important;place-items:center!important;width:38px!important;height:38px!important;padding:0!important;border:1px solid #dbeafe!important;border-radius:11px!important;background:#eff6ff!important;color:#1d4ed8!important;font-size:20px!important;cursor:pointer}
.sp-open-annotated-image{display:block!important;width:100%!important;padding:0!important;border:0!important;background:transparent!important;cursor:zoom-in!important}
.sp-class-assigned-exercises .sp-image-carousel figure{display:none;margin:0}.sp-class-assigned-exercises .sp-image-carousel figure.is-active{display:block}.sp-class-assigned-exercises .sp-image-carousel img{display:block;width:100%;max-height:620px;object-fit:contain;border-radius:15px;background:#f1f5f9}.sp-class-assigned-exercises .sp-image-carousel figcaption{padding:12px;text-align:center;color:#64748b}.sp-class-assigned-exercises .sp-image-carousel>div{display:flex;align-items:center;justify-content:center;gap:17px}.sp-class-assigned-exercises .sp-image-carousel>div button{border:0;background:transparent;color:#2563eb;font-size:28px}
.sp-image-viewer[hidden]{display:none!important}.sp-image-viewer{position:fixed;z-index:1000004;inset:0;display:flex;align-items:center;justify-content:center;padding:5vh 5vw;background:rgba(15,23,42,.62);backdrop-filter:blur(3px)}
.sp-image-viewer-stage{position:relative;display:flex;align-items:center;justify-content:center;width:min(1400px,90vw);height:min(88vh,900px);overflow:hidden;border-radius:20px;background:rgba(255,255,255,.92);box-shadow:0 30px 90px rgba(15,23,42,.38)}
.sp-image-viewer-stage>img{display:block;max-width:92%;max-height:90%;object-fit:contain;transform-origin:center}.sp-image-viewer-stage>canvas{position:absolute;touch-action:none;transform-origin:center;cursor:crosshair}
.sp-image-tools{position:absolute;z-index:3;left:16px;bottom:16px;display:flex;gap:8px;padding:7px;border:1px solid #dbe3ed;border-radius:13px;background:rgba(255,255,255,.94);box-shadow:0 5px 20px rgba(15,23,42,.15)}
.sp-image-tools button,.sp-image-zoom button{display:grid;place-items:center;width:38px;height:38px;padding:0;border:0;border-radius:9px;background:#f1f5f9;color:#334155}.sp-image-tools input[type=color]{width:38px;height:38px;padding:3px;border:0}.sp-image-tools input[type=range]{width:100px}
.sp-image-zoom{position:absolute;z-index:3;right:16px;bottom:16px;display:flex;align-items:center;gap:8px;padding:7px;border:1px solid #dbe3ed;border-radius:13px;background:rgba(255,255,255,.94);box-shadow:0 5px 20px rgba(15,23,42,.15)}
@media(max-width:650px){.sp-book-cover-crop .sp-universal-crop-stage,.sp-carousel-crop .sp-universal-crop-stage{height:62vh!important}.sp-image-viewer{padding:10px}.sp-image-viewer-stage{width:100%;height:92vh}.sp-image-tools input[type=range]{width:70px}}


/* iteration-2583.css */
/* Student Portal 2.5.7.4 */
.sp-book-cover-crop .sp-universal-crop-stage{height:min(80vh,820px)!important;background:#e5e7eb!important}.sp-book-cover-crop .cropper-crop-box{min-width:34%!important;min-height:72%!important}.sp-book-cover-crop .cropper-view-box,.sp-book-cover-crop .cropper-face{border-radius:4px}.sp-book-cover-crop .cropper-modal{opacity:.42!important}
.sp-image-caption-input{display:block;width:100%!important;margin-top:8px!important;padding:10px 12px!important;border:1px solid #dbe3ed!important;border-radius:10px!important;background:#fff!important;color:#334155!important;font-weight:500!important}
[data-image-crop-previews] .sp-remove-carousel-image{z-index:10!important;display:grid!important;place-items:center!important;cursor:pointer!important}.sp-exercise-editor-form [data-carousel-upload]{display:block}.sp-exercise-editor-form [data-carousel-upload][hidden]{display:none!important}
.sp-image-viewer-v3{padding:3vh 4vw!important}.sp-image-viewer-shell{display:grid;grid-template-rows:minmax(0,1fr) auto;width:min(1480px,94vw);height:min(94vh,960px);overflow:hidden;border-radius:22px;background:#fff;box-shadow:0 30px 90px rgba(15,23,42,.4)}
.sp-image-viewer-v3 .sp-image-viewer-stage{width:100%!important;height:100%!important;border-radius:0!important;background:#fff!important;box-shadow:none!important}.sp-image-viewer-v3 .sp-image-viewer-stage>img{opacity:1!important;filter:none!important;max-width:94%!important;max-height:94%!important}
.sp-image-controlbar{position:relative;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:76px;padding:12px 18px;border-top:1px solid #e2e8f0;background:#fff}.sp-image-viewer-v3 .sp-image-tools,.sp-image-viewer-v3 .sp-image-zoom{position:static!important;box-shadow:none!important;margin:0!important}.sp-image-tools button.is-active{background:#dbeafe!important;color:#1d4ed8!important;box-shadow:inset 0 0 0 2px #60a5fa}.sp-image-tools label{display:flex;align-items:center}
.sp-viewer-arrow{position:absolute;z-index:5;top:50%;display:grid;place-items:center;width:52px;height:64px;padding:0;border:1px solid #dbe3ed;border-radius:15px;background:rgba(255,255,255,.94);color:#2563eb;font-size:42px;line-height:1;transform:translateY(-50%);box-shadow:0 5px 20px rgba(15,23,42,.14)}.sp-viewer-arrow.is-prev{left:16px}.sp-viewer-arrow.is-next{right:16px}
@media(max-width:720px){.sp-image-viewer-v3{padding:7px!important}.sp-image-viewer-shell{width:100%;height:97vh}.sp-image-controlbar{align-items:stretch;flex-direction:column}.sp-image-viewer-v3 .sp-image-tools{overflow-x:auto}.sp-viewer-arrow{width:42px;height:54px}.sp-image-tools input[type=range]{width:80px}}


/* iteration-1-1.css */
/* Student Portal 1.1 — class chat */
.sp-chat-photo{display:block!important;width:100%!important;max-width:300px!important;margin:6px 0 0!important;padding:0!important;overflow:hidden;border:0!important;border-radius:10px!important;background:transparent!important;cursor:zoom-in!important}
.sp-chat-photo img,.sp-chat-bubble img{display:block!important;width:auto!important;max-width:100%!important;height:auto!important;max-height:240px!important;margin:0 auto!important;border-radius:10px!important;object-fit:contain!important}
.sp-class-overlay-close{display:grid!important;place-items:center!important;width:32px!important;height:32px!important;padding:0!important;font-family:Arial,sans-serif!important;font-size:22px!important;line-height:1!important;text-align:center!important;text-indent:0!important}
.sp-chat-photo-viewer[hidden]{display:none!important}.sp-chat-photo-viewer{position:fixed;z-index:1000010;inset:0;display:grid;place-items:center;padding:28px;background:rgba(15,23,42,.7);backdrop-filter:blur(3px)}.sp-chat-photo-viewer>div{position:relative;display:grid;place-items:center;width:min(1100px,94vw);height:min(880px,90vh)}.sp-chat-photo-viewer img{display:block;max-width:100%;max-height:100%;border-radius:16px;background:#fff;object-fit:contain;box-shadow:0 24px 80px rgba(15,23,42,.4)}.sp-chat-photo-viewer button{position:absolute;z-index:2;top:10px;right:10px;display:grid!important;place-items:center!important;width:42px;height:42px;padding:0!important;border:0;border-radius:50%;background:#fff;color:#1e293b;font-family:Arial,sans-serif;font-size:28px;line-height:1;box-shadow:0 5px 20px rgba(15,23,42,.25);cursor:pointer}
.sp-open-student-profile{display:flex;align-items:center;justify-content:center;width:100%;margin-top:20px;padding:13px 18px;border-radius:13px;background:#eff6ff;color:#2563eb;font-weight:800;text-decoration:none}
@media(max-width:520px){.sp-chat-photo{max-width:220px!important}.sp-chat-photo-viewer{padding:10px}.sp-chat-photo-viewer button{top:6px;right:6px}}


/* iteration-1-2.css */
/* Student Portal 1.2 — chat corrections */
.sp-class-overlay-close{position:absolute!important;display:block!important;padding:0!important;font-size:0!important;line-height:0!important;text-indent:-9999px!important;overflow:hidden!important}
.sp-class-overlay-close::before{content:'×';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:0 0 2px;font-family:Arial,sans-serif;font-size:23px;font-weight:400;line-height:1;text-indent:0}
.sp-chat-photo-viewer{display:block!important;overflow:auto!important;padding:24px!important;text-align:center!important;-webkit-overflow-scrolling:touch}
.sp-chat-photo-viewer[hidden]{display:none!important}
.sp-chat-photo-viewer>div{position:relative!important;display:inline-block!important;width:auto!important;min-width:min(420px,calc(100vw - 48px));height:auto!important;min-height:calc(100vh - 48px)!important;margin:0 auto!important}
.sp-chat-photo-viewer img{display:block!important;width:auto!important;height:auto!important;max-width:calc(100vw - 48px)!important;max-height:none!important;margin:0 auto!important;object-fit:contain!important}
.sp-chat-photo-viewer button{position:fixed!important;top:14px!important;right:14px!important}
@media(max-width:520px){.sp-chat-photo-viewer{padding:10px!important}.sp-chat-photo-viewer>div{min-width:calc(100vw - 20px);min-height:calc(100vh - 20px)!important}.sp-chat-photo-viewer img{max-width:calc(100vw - 20px)!important}.sp-chat-photo-viewer button{top:8px!important;right:8px!important}}


/* iteration-1-3.css */
/* Student Portal 1.3 — chat and first class dictionary */
.sp-class-overlay-close{font-size:0!important;line-height:0!important;text-indent:0!important}
.sp-class-overlay-close::before,.sp-class-overlay-close::after{content:''!important;position:absolute!important;left:50%!important;top:50%!important;width:15px!important;height:2px!important;padding:0!important;border-radius:2px!important;background:#334155!important;transform-origin:center!important}
.sp-class-overlay-close::before{transform:translate(-50%,-50%) rotate(45deg)!important}.sp-class-overlay-close::after{transform:translate(-50%,-50%) rotate(-45deg)!important}
.sp-chat-emoji{position:relative!important;z-index:20!important;pointer-events:auto!important}.sp-chat-emoji button{position:relative!important;z-index:21!important;pointer-events:auto!important;touch-action:manipulation!important}
.sp-dictionary-dialog{width:min(430px,calc(100vw - 28px))!important;height:auto!important;max-height:min(620px,calc(100vh - 40px))!important}.sp-class-dictionary{display:flex;flex-direction:column;min-height:310px;padding:22px}.sp-class-dictionary>header{display:flex;align-items:center;gap:10px;padding-right:36px}.sp-class-dictionary>header>span{font-size:28px}.sp-class-dictionary h2,.sp-class-dictionary p{margin:0}.sp-class-dictionary p{margin-top:2px;color:#64748b;font-size:13px}.sp-class-dictionary form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin:20px 0 12px}.sp-class-dictionary input{min-width:0;padding:12px 14px;border:1px solid #cbd5e1;border-radius:12px;font:inherit}.sp-class-dictionary form button{padding:11px 15px;border:0;border-radius:12px;background:#2563eb;color:#fff;font-weight:750}.sp-dictionary-words{display:flex;flex-direction:column;gap:7px;max-height:330px;overflow:auto}.sp-dictionary-words>div{padding:10px 12px;border:1px solid #e2e8f0;border-radius:11px;background:#f8fafc;color:#1e293b}.sp-class-dictionary>small{min-height:18px;margin-top:8px;color:#64748b}


/* iteration-1-4.css */
/* Student Portal 1.4 — instant emoji messages and translated dictionary */
.sp-chat-bubble.is-emoji-only p {
    margin: 3px 0 1px;
    font-size: 34px;
    line-height: 1.15;
}

.sp-class-dictionary form {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
}

.sp-dictionary-words > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.sp-dictionary-words > div > span {
    display: flex;
    min-width: 0;
    flex: 1;
    flex-direction: column;
    gap: 2px;
}

.sp-dictionary-words strong,
.sp-dictionary-words small {
    overflow-wrap: anywhere;
}

.sp-dictionary-words small {
    color: #64748b;
    font-size: 13px;
}

.sp-dictionary-words [data-delete-word] {
    display: grid;
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    padding: 0;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: #eef2f7;
    color: #475569;
    font: 600 21px/1 Arial, sans-serif;
    cursor: pointer;
}

.sp-dictionary-words [data-delete-word]:hover {
    background: #fee2e2;
    color: #b91c1c;
}

@media (max-width: 560px) {
    .sp-class-dictionary form {
        grid-template-columns: 1fr;
    }

    .sp-class-dictionary form button {
        width: 100%;
    }
}


/* iteration-1-5.css */
/* Student Portal 1.5 — bounded carousel, image editor and scrollable exercise catalog */
.sp-exercise-modal {
    align-items: flex-start !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    padding: max(18px, 4vh) 16px !important;
}

.sp-exercise-modal-dialog {
    width: min(1120px, calc(100vw - 32px)) !important;
    max-height: calc(100dvh - 36px) !important;
    margin: 0 auto !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
}

.sp-exercise-modal-close,
.sp-image-viewer-close,
.sp-image-tools button,
.sp-image-zoom button,
.sp-viewer-arrow,
.sp-image-carousel [data-prev],
.sp-image-carousel [data-next] {
    display: grid !important;
    place-items: center !important;
    padding: 0 !important;
    text-align: center !important;
    line-height: 1 !important;
}

.sp-image-carousel figure img {
    width: 100% !important;
    height: auto !important;
    max-height: 680px !important;
    object-fit: contain !important;
    background: #f8fafc !important;
}

.sp-image-carousel > div {
    min-height: 44px;
}

.sp-image-carousel > div button[hidden] {
    display: none !important;
}

.sp-image-carousel > div button {
    width: 38px;
    height: 38px;
    border-radius: 50% !important;
    background: #eff6ff !important;
    color: #1d4ed8 !important;
}

.sp-image-viewer-v4 {
    overflow: auto;
    padding: 26px !important;
}

.sp-image-viewer-v4 .sp-image-viewer-shell {
    position: relative;
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr) 52px;
    align-items: center;
    width: min(1500px, 96vw);
    min-height: min(92vh, 980px);
    padding: 24px 24px 18px;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 30px 90px rgba(15, 23, 42, .38);
}

.sp-image-viewer-v4 .sp-image-viewer-stage {
    grid-column: 2;
    width: 100%;
    height: min(72vh, 780px);
    overflow: auto;
    border-radius: 16px;
    background: #f1f5f9;
}

.sp-image-scroll {
    position: relative;
    display: grid;
    min-width: 100%;
    min-height: 100%;
    place-items: center;
}

.sp-image-scroll > img {
    display: block;
    width: auto;
    height: auto;
    max-width: calc(100% * var(--sp-image-scale, 1));
    max-height: none;
    transform: scale(var(--sp-image-scale, 1));
    transform-origin: center;
}

.sp-image-scroll > canvas {
    position: absolute;
    touch-action: none;
    cursor: crosshair;
    transform: scale(var(--sp-image-scale, 1));
    transform-origin: center;
}

.sp-image-viewer-close {
    position: absolute;
    z-index: 5;
    top: 14px;
    right: 14px;
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 50%;
    background: #eef2f7;
    color: #334155;
    font: 500 28px/1 Arial, sans-serif;
    cursor: pointer;
}

.sp-image-viewer-v4 .sp-viewer-arrow {
    position: static !important;
    width: 44px;
    height: 44px;
    margin: auto;
    border: 0;
    border-radius: 50%;
    background: #eff6ff;
    color: #1d4ed8;
    font: 600 32px/1 Arial, sans-serif;
}

.sp-image-viewer-v4 .sp-viewer-arrow[hidden] {
    display: none !important;
}

.sp-image-viewer-v4 .is-prev { grid-column: 1; grid-row: 1; }
.sp-image-viewer-v4 .is-next { grid-column: 3; grid-row: 1; }
.sp-viewer-caption,
.sp-viewer-count { grid-column: 2; text-align: center; }
.sp-viewer-caption { margin-top: 12px; color: #475569; font-size: 15px; }
.sp-viewer-count { margin-top: 7px; color: #1e293b; font-weight: 750; }

.sp-image-viewer-v4 .sp-image-controlbar {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid #e2e8f0;
}

.sp-image-tools,
.sp-image-zoom,
.sp-tool-settings {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.sp-image-tools button,
.sp-image-zoom button {
    width: 40px;
    height: 40px;
    border: 1px solid #dbe3ed;
    border-radius: 11px;
    background: #fff;
    color: #334155;
}

.sp-image-tools button.is-active {
    border-color: #60a5fa;
    background: #eff6ff;
    color: #1d4ed8;
}

.sp-tool-settings {
    padding: 5px 9px;
    border-radius: 12px;
    background: #f8fafc;
}

.sp-tool-settings label { display: flex; align-items: center; }
.sp-tool-settings input[type="color"] { width: 34px; height: 34px; padding: 2px; }
.sp-tool-settings input[type="range"] { width: 110px; }

@media (max-width: 700px) {
    .sp-image-viewer-v4 { padding: 7px !important; }
    .sp-image-viewer-v4 .sp-image-viewer-shell { grid-template-columns: 42px minmax(0,1fr) 42px; width: 100%; padding: 56px 6px 12px; }
    .sp-image-viewer-v4 .sp-image-viewer-stage { height: 66vh; }
    .sp-image-viewer-v4 .sp-image-controlbar { align-items: stretch; flex-direction: column; }
    .sp-image-tools { justify-content: center; }
    .sp-image-zoom { justify-content: center; }
}


/* iteration-1-6.css */
/* Student Portal 1.6 */
.sp-delete-exercise{position:absolute;z-index:4;top:14px;right:62px;display:grid!important;width:38px;height:38px;padding:0!important;place-items:center;border:1px solid #fecaca!important;border-radius:11px!important;background:#fff!important;color:#b91c1c!important;font:500 25px/1 Arial,sans-serif!important;cursor:pointer}
.sp-open-annotated-image{position:relative;display:block;width:100%;overflow:hidden}.sp-image-thumb-canvas{position:absolute;z-index:2;inset:0;width:100%;height:100%;pointer-events:none}
.sp-image-inline-text{position:fixed;z-index:1000015;min-width:80px;min-height:38px;padding:2px 5px;overflow:hidden;border:1px solid #60a5fa;border-radius:5px;outline:0;background:rgba(255,255,255,.92);line-height:1.2;resize:none;transform:translate(-2px,-50%)}
.sp-exercise-modal.is-open{display:block!important;height:100dvh!important;max-height:100dvh!important;padding:18px 16px 60px!important;overflow-y:scroll!important;align-items:start!important}.sp-exercise-modal.is-open .sp-exercise-modal-dialog{max-height:none!important;margin:0 auto 60px!important;overflow:visible!important}.sp-exercise-modal [data-template-catalog]{scroll-margin-top:20px}.sp-carousel-crop .sp-universal-crop-stage{height:min(74vh,760px)!important}
.sp-image-carousel figure img{object-fit:contain!important}


/* iteration-1-7.css */
/* Student Portal 1.7 — compact and expanded image editors */
.sp-universal-cropper {
    align-items: flex-start !important;
    padding: 18px !important;
    overflow-y: auto !important;
}

.sp-universal-cropper > div,
.sp-universal-cropper .sp-carousel-crop {
    width: min(1180px, calc(100vw - 36px)) !important;
    max-height: none !important;
    margin: 0 auto 40px !important;
}

.sp-universal-cropper h2 {
    position: relative;
    margin-top: 0 !important;
}

.sp-universal-crop-close {
    position: sticky !important;
    z-index: 20 !important;
    top: 0 !important;
    float: right;
}

.sp-inline-image-tools {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 7px;
    margin: 9px 0 4px;
    padding: 8px;
    overflow-x: auto;
    border: 1px solid #e2e8f0;
    border-radius: 13px;
    background: #fff;
}

.sp-inline-image-tools > button {
    display: grid !important;
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    padding: 0 !important;
    place-items: center;
    border: 1px solid #dbe3ed !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: #334155 !important;
    line-height: 1 !important;
}

.sp-inline-image-tools > button.is-active {
    border-color: #60a5fa !important;
    background: #eff6ff !important;
    color: #1d4ed8 !important;
}

.sp-inline-image-tools > span {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 3px 7px;
    border-radius: 10px;
    background: #f8fafc;
}

.sp-inline-image-tools input[type="color"] { width: 30px; height: 30px; padding: 1px; }
.sp-inline-image-tools input[type="range"] { width: 96px; }
.sp-image-thumb-canvas.is-editing { pointer-events: auto; cursor: crosshair; }

.sp-image-viewer-v4 {
    display: grid !important;
    place-items: center;
    overflow: auto !important;
}

.sp-image-viewer-v4[hidden] { display: none !important; }

.sp-image-viewer-v4 .sp-image-viewer-shell {
    grid-template-columns: 54px minmax(0, 1fr) 54px !important;
    width: min(1280px, calc(100vw - 42px)) !important;
    min-height: 0 !important;
    max-height: calc(100vh - 36px);
    overflow-y: auto;
}

.sp-image-viewer-v4 .sp-image-viewer-stage {
    height: min(66vh, 680px) !important;
    overflow: auto !important;
}

.sp-image-viewer-v4 .sp-image-scroll > img {
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain;
}

.sp-image-viewer-v4 .sp-viewer-arrow {
    align-self: center;
    margin: 0 auto !important;
}

.sp-image-viewer-v4 .sp-viewer-caption,
.sp-image-viewer-v4 .sp-viewer-count {
    position: static !important;
    width: auto !important;
}

@media (max-width: 700px) {
    .sp-universal-cropper { padding: 7px !important; }
    .sp-universal-cropper > div,.sp-universal-cropper .sp-carousel-crop { width: 100% !important; }
    .sp-inline-image-tools input[type="range"] { width: 72px; }
    .sp-image-viewer-v4 .sp-image-viewer-shell { width: 100% !important; max-height: 97vh; }
}


/* iteration-2-2-8.css */
/* Student Portal 2.2.8 — shared visual language and final compatibility layer. */
:root {
    --sp-ink: #17233a;
    --sp-muted: #66758f;
    --sp-blue: #2864e8;
    --sp-blue-dark: #1d4ed8;
    --sp-blue-soft: #eef5ff;
    --sp-line: #dbe4f0;
    --sp-surface: #ffffff;
    --sp-surface-soft: #f7f9fc;
    --sp-danger: #dc3f4f;
    --sp-radius-sm: 12px;
    --sp-radius-md: 16px;
    --sp-radius-lg: 22px;
    --sp-shadow: 0 12px 32px rgba(29, 54, 94, .09);
    --sp-focus: 0 0 0 4px rgba(40, 100, 232, .14);
}

/* Keep plugin pages centred without changing Elementor's site-wide layout. */
.sp-student-dashboard,
.sp-teacher-dashboard,
.sp-profile-page,
.sp-rules-page,
.sp-prices-page,
.sp-faq-page,
.sp-auth-shell,
.sp-register-shell {
    box-sizing: border-box;
    width: min(1240px, calc(100% - 32px));
    max-width: 1240px;
    margin-inline: auto !important;
    color: var(--sp-ink);
}

.sp-student-dashboard *,
.sp-teacher-dashboard *,
.sp-profile-page *,
.sp-rules-page *,
.sp-prices-page *,
.sp-faq-page *,
.sp-auth-shell *,
.sp-register-shell *,
.sp-classroom * { box-sizing: border-box; }

/* Consistent controls. Schedule blocks keep their own compact calendar styling. */
:where(.sp-student-dashboard,.sp-teacher-dashboard,.sp-profile-page,.sp-rules-page,.sp-prices-page,.sp-faq-page,.sp-auth-shell,.sp-register-shell,.sp-classroom,.sp-book-modal,.sp-exercise-modal)
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),select,textarea) {
    width: 100%;
    min-height: 46px;
    margin: 0;
    padding: 11px 14px;
    border: 1px solid #cbd7e6;
    border-radius: var(--sp-radius-sm);
    outline: 0;
    background: #fff;
    color: var(--sp-ink);
    box-shadow: 0 1px 2px rgba(15, 23, 42, .03);
    font: inherit;
    line-height: 1.4;
    transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

:where(.sp-student-dashboard,.sp-teacher-dashboard,.sp-profile-page,.sp-auth-shell,.sp-register-shell,.sp-classroom,.sp-book-modal,.sp-exercise-modal)
:where(input,select,textarea):focus-visible {
    border-color: var(--sp-blue);
    box-shadow: var(--sp-focus);
}

:where(.sp-student-dashboard,.sp-teacher-dashboard,.sp-profile-page,.sp-auth-shell,.sp-register-shell,.sp-classroom,.sp-book-modal,.sp-exercise-modal) textarea {
    min-height: 104px;
    resize: vertical;
}

:where(.sp-student-dashboard,.sp-teacher-dashboard,.sp-profile-page,.sp-auth-shell,.sp-register-shell,.sp-classroom,.sp-book-modal,.sp-exercise-modal) label {
    color: #34435a;
    font-weight: 700;
}

/* Buttons and links which act as buttons. */
:where(.sp-teacher-primary,.sp-teacher-secondary,.sp-neutral-action,.sp-auth-submit,.sp-register-submit,.sp-prices-button,.sp-calendar-sync-button,.sp-classroom-room-button) {
    min-height: 44px;
    border-radius: var(--sp-radius-sm) !important;
    font-weight: 750;
    line-height: 1.2;
    transition: transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease;
}

:where(.sp-teacher-primary,.sp-auth-submit,.sp-register-submit,.sp-prices-button--primary):hover {
    box-shadow: 0 8px 20px rgba(40,100,232,.2);
}

:where(button,a,[role="button"]):focus-visible {
    outline: 3px solid rgba(40,100,232,.3) !important;
    outline-offset: 2px;
}

button:disabled,
[aria-disabled="true"] { cursor: not-allowed !important; opacity: .55; }

/* One circular icon-button model. */
:where(.sp-modal-close,.sp-class-overlay-close,.sp-exercise-modal-close,.sp-delete-cross,.sp-icon-edit,[data-close-modal],[data-close-editor],[data-close-exercise-modal]) {
    display: inline-grid !important;
    place-items: center !important;
    flex: 0 0 auto;
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    min-height: 40px !important;
    padding: 0 !important;
    border: 1px solid var(--sp-line) !important;
    border-radius: 50% !important;
    background: #f3f6fa !important;
    color: #26364d !important;
    font-size: 23px !important;
    font-weight: 600;
    line-height: 1 !important;
    text-align: center !important;
    cursor: pointer;
}

:where(.sp-modal-close,.sp-class-overlay-close,.sp-exercise-modal-close,[data-close-modal],[data-close-editor],[data-close-exercise-modal]):hover {
    border-color: #b8c7dc !important;
    background: #e8eef6 !important;
    color: #111827 !important;
}

.sp-delete-cross:hover {
    border-color: #fecdd3 !important;
    background: #fff1f2 !important;
    color: var(--sp-danger) !important;
}

/* Cards use the same radius, border and restrained shadow. */
:where(.student-dashboard-card,.sp-dashboard-summary,.sp-dashboard-lesson,.sp-teacher-next,.sp-teacher-students,.sp-teacher-books,.sp-teacher-book-form,.sp-teacher-book-open,.sp-teacher-student-profile,.sp-rules-card,.sp-prices-format-card,.sp-auth-card,.sp-register-card) {
    border-color: var(--sp-line) !important;
    border-radius: var(--sp-radius-lg) !important;
    background: var(--sp-surface);
}

.sp-teacher-sections a,
.sp-dashboard-navigation-grid a,
.sp-dashboard-learning-grid a,
.sp-teacher-student-list > a,
.sp-teacher-books-grid article,
.sp-teacher-books-grid > a {
    border-color: var(--sp-line) !important;
    border-radius: var(--sp-radius-md) !important;
    background: var(--sp-surface-soft) !important;
}

.sp-teacher-sections a:hover,
.sp-dashboard-navigation-grid a:hover,
.sp-dashboard-learning-grid a:hover,
.sp-teacher-student-list > a:hover,
.sp-teacher-books-grid article:hover,
.sp-teacher-books-grid > a:hover {
    border-color: #a9c7fb !important;
    background: #fff !important;
    box-shadow: var(--sp-shadow) !important;
}

/* Modals: complete viewport overlay, reliable scrolling and readable contrast. */
:where(.sp-modal,.sp-book-modal,.sp-exercise-modal,.sp-class-overlay)[aria-hidden="false"],
:where(.sp-modal,.sp-book-modal,.sp-exercise-modal,.sp-class-overlay):not([hidden]).open,
:where(.sp-book-modal,.sp-exercise-modal,.sp-class-overlay):not([hidden]) {
    overscroll-behavior: contain;
}

.sp-book-modal,
.sp-exercise-modal {
    position: fixed !important;
    inset: 0 !important;
    z-index: 99990 !important;
    width: 100vw !important;
    height: 100dvh !important;
    padding: clamp(12px, 3vw, 32px) !important;
    overflow: auto !important;
    background: rgba(15, 23, 42, .68) !important;
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
}

.sp-book-modal > div,
.sp-exercise-modal-dialog {
    width: min(980px, 100%) !important;
    max-height: none !important;
    margin: auto !important;
    padding: clamp(22px, 4vw, 38px) !important;
    overflow: visible !important;
    border: 1px solid rgba(255,255,255,.72) !important;
    border-radius: 24px !important;
    background: #fff !important;
    box-shadow: 0 30px 90px rgba(15,23,42,.32) !important;
}

.sp-exercise-modal-dialog { min-height: min(620px, calc(100dvh - 48px)); }
.sp-exercise-modal-close,
.sp-book-modal [data-close-modal] { position: sticky !important; z-index: 8; top: 0 !important; float: right; }

/* Exercise catalogue and editor. */
.sp-exercise-template-grid {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
    gap: 14px !important;
}

.sp-exercise-template-grid > :where(button,a) {
    min-height: 142px !important;
    padding: 18px !important;
    border: 1px solid var(--sp-line) !important;
    border-radius: var(--sp-radius-md) !important;
    background: #fff !important;
    box-shadow: 0 3px 12px rgba(15,23,42,.04);
    transition: border-color .16s ease, transform .16s ease, box-shadow .16s ease;
}

.sp-exercise-template-grid > :where(button,a):hover {
    border-color: #8cb5f8 !important;
    box-shadow: var(--sp-shadow);
}

.sp-exercise-editor-form { gap: 18px !important; }
.sp-exercise-editor-form > button[type="submit"] {
    min-height: 46px;
    padding: 11px 20px;
    border: 0;
    border-radius: var(--sp-radius-sm);
    background: var(--sp-blue);
    color: #fff;
    font-weight: 800;
}

/* Lesson cards and toolbars. */
.sp-class-assigned-exercises > article,
.sp-lesson-exercise-card,
.sp-article-exercise,
.sp-essay-exercise,
.sp-note-exercise,
.sp-vocabulary-exercise,
.sp-true-false-exercise,
.sp-test-exercise,
.sp-gaps-exercise {
    border-color: var(--sp-line) !important;
    border-radius: 20px !important;
    box-shadow: 0 4px 16px rgba(15,23,42,.045);
}

:where(.sp-exercise-actions,.sp-article-toolbar,.sp-essay-toolbar,.sp-image-tools,.sp-annotation-toolbar) button {
    display: inline-grid;
    place-items: center;
    min-width: 40px;
    min-height: 40px;
    padding: 7px;
    border-radius: 11px;
}

/* Classroom consistency. */
.sp-class-workspace { color: var(--sp-ink); background: #f5f8fc; }
.sp-class-sidebar { border-right-color: var(--sp-line); background: #f8fafc; }
.sp-class-sidebar :where(a,button) {
    display: grid !important;
    place-items: center !important;
    padding: 0 !important;
    line-height: 1 !important;
}
.sp-class-topbar { border-bottom-color: var(--sp-line); background: rgba(255,255,255,.96); }
.sp-current-lesson,
.sp-class-call-card,
.sp-class-lesson-sections { border-color: var(--sp-line) !important; box-shadow: none; }
.sp-class-overlay { background: rgba(15,23,42,.6) !important; backdrop-filter: blur(2px); }
.sp-class-overlay-dialog { box-shadow: 0 28px 80px rgba(15,23,42,.3) !important; }
.sp-chat-compose { align-items: center !important; }
.sp-chat-compose button { display: grid !important; place-items: center !important; padding: 0 !important; }
.sp-chat-compose textarea { min-height: 44px !important; border-radius: 14px !important; }

/* Feedback and validation states. */
.sp-teacher-notice,
.sp-auth-notice,
.sp-register-notice {
    border: 1px solid currentColor;
    border-radius: 14px !important;
    line-height: 1.5;
}

form.is-sp-submitting { opacity: .78; pointer-events: none; }
form.is-sp-submitting button[type="submit"] { cursor: wait !important; }

/* Responsive polish. */
@media (max-width: 900px) {
    .sp-student-dashboard,
    .sp-teacher-dashboard,
    .sp-profile-page,
    .sp-rules-page,
    .sp-prices-page,
    .sp-faq-page { width: min(100% - 24px, 1240px); }

    .sp-teacher-hero { align-items: flex-start; }
    .sp-teacher-profile-grid { grid-template-columns: 1fr !important; }
}

@media (max-width: 640px) {
    .sp-student-dashboard,
    .sp-teacher-dashboard,
    .sp-profile-page,
    .sp-rules-page,
    .sp-prices-page,
    .sp-faq-page { width: min(100% - 16px, 1240px); }

    .sp-teacher-hero,
    .sp-teacher-next,
    .sp-teacher-students,
    .sp-teacher-books,
    .sp-teacher-book-open { padding: 18px !important; }

    .sp-teacher-next-row,
    .sp-teacher-section-title { align-items: stretch !important; flex-direction: column; }
    .sp-teacher-next-row .sp-teacher-secondary { margin-left: 0 !important; }
    .sp-exercise-template-grid { grid-template-columns: 1fr !important; }
    .sp-book-modal,
    .sp-exercise-modal { padding: 8px !important; }
    .sp-book-modal > div,
    .sp-exercise-modal-dialog { padding: 20px 16px !important; border-radius: 18px !important; }
}

@media (prefers-reduced-motion: reduce) {
    .sp-student-dashboard *,
    .sp-teacher-dashboard *,
    .sp-classroom * { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}


/* iteration-2-2-9.css */
/* Student Portal 2.2.9 — direct drag and drop for word-gap exercises. */
.sp-gap-bank [data-gap-token],
.sp-gap-slot [data-gap-placed] {
    touch-action: none;
    -webkit-user-drag: element;
}

.sp-gap-dragging,
.sp-gap-dragging * {
    cursor: grabbing !important;
    user-select: none !important;
}

.sp-gap-drag-ghost {
    position: fixed;
    z-index: 2147483647;
    top: 0;
    left: 0;
    width: max-content;
    max-width: min(280px, calc(100vw - 24px));
    padding: 7px 11px;
    border: 1px solid #78a7f5;
    border-radius: 10px;
    background: #fff;
    color: #17233a;
    box-shadow: 0 12px 30px rgba(23, 35, 58, .22);
    font: inherit;
    line-height: 1.2;
    white-space: nowrap;
    pointer-events: none;
    will-change: transform;
}

.sp-gap-bank [data-gap-token].is-dragging,
.sp-gap-slot [data-gap-placed].is-dragging {
    opacity: .28 !important;
}

.sp-gap-bank.is-drag-over,
.sp-gap-slot [data-gap-drop].is-drag-over {
    border-color: #2864e8 !important;
    background: #eef5ff !important;
    box-shadow: 0 0 0 3px rgba(40, 100, 232, .14) !important;
}



/* iteration-2-3-0.css */
/* Student Portal 2.3.0 — choices below gaps and unified image/word exercise. */
.sp-gap-slot{position:relative;overflow:visible}
.sp-gap-choice-menu{position:absolute;z-index:80;top:calc(100% + 8px);left:50%;transform:translateX(-50%);display:flex;gap:7px;max-width:min(440px,82vw);padding:8px;background:#fff;border:1px solid #cbd8ec;border-radius:14px;box-shadow:0 14px 36px rgba(24,43,76,.18);overflow-x:auto;white-space:nowrap}
.sp-gap-choice-menu[hidden]{display:none!important}
.sp-gap-choice-menu button{flex:0 0 auto;min-height:36px;padding:7px 13px;border:1px solid #d8e2f1;border-radius:10px;background:#f7faff;color:#17243a;font:inherit;cursor:pointer}
.sp-gap-choice-menu button:hover,.sp-gap-choice-menu button:focus-visible{border-color:#2b67e8;background:#edf4ff;outline:0}
.sp-gap-slot [data-gap-choice]{min-width:76px;display:inline-flex;align-items:center;justify-content:center;gap:7px}

.sp-image-words-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:18px 0}
.sp-image-word-item{display:flex;flex-direction:column;align-items:center;gap:10px;margin:0;padding:14px;border:1px solid #dce5f2;border-radius:18px;background:#fff;min-width:0}
.sp-image-word-item>img{display:block;width:100%;aspect-ratio:3/4;object-fit:contain;border-radius:12px;background:#f4f7fb}
.sp-image-word-item figcaption{min-height:1.35em;text-align:center;color:#66758d;font-size:14px}
.sp-image-word-item .sp-gap-slot{display:inline-flex;justify-content:center;max-width:100%}

.sp-image-words-editor{margin:20px 0;padding:18px;border:1px solid #dce5f2;border-radius:18px;background:#f8fbff}
.sp-image-words-editor fieldset{display:flex;flex-wrap:wrap;gap:10px 18px;margin:0 0 18px;padding:0;border:0}
.sp-image-words-editor legend{display:block;width:100%;margin-bottom:8px;font-weight:700}
.sp-image-words-editor-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.sp-image-word-editor-item{position:relative;display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid #d4dfef;border-radius:16px;background:#fff;cursor:grab}
.sp-image-word-editor-item.is-dragging{opacity:.45}
.sp-image-word-editor-item>img{width:100%;aspect-ratio:3/4;object-fit:contain;border-radius:11px;background:#f2f5f9}
.sp-image-word-editor-item label{display:block;margin-top:8px;font-weight:600;font-size:13px}
.sp-image-word-editor-item input[type=text]{width:100%;margin-top:5px}
.sp-image-word-drag{position:absolute;top:18px;left:18px;z-index:2;padding:4px 7px;border-radius:8px;background:rgba(255,255,255,.9);font-weight:800}
.sp-image-word-remove{position:absolute;top:18px;right:18px;width:34px;height:34px;padding:0!important;border-radius:50%!important;background:#fff!important;color:#b42318!important}
.sp-image-words-add{margin-top:14px}
.sp-image-words-hint{margin:9px 0 0;color:#697890;font-size:13px}

.sp-image-words-cropper{position:fixed;z-index:100000;inset:0;display:flex;align-items:flex-start;justify-content:center;padding:4vh 18px;background:rgba(15,25,43,.72);overflow:auto}
.sp-image-words-cropper[hidden]{display:none!important}
.sp-image-words-cropper>div{position:relative;width:min(760px,100%);padding:25px;border-radius:22px;background:#fff;box-shadow:0 24px 80px rgba(0,0,0,.28)}
.sp-image-words-cropper h2{margin:0 48px 4px 0}
.sp-image-words-cropper p{color:#697890}
.sp-image-words-crop-close{position:absolute;top:16px;right:16px;display:grid;place-items:center;width:40px;height:40px;padding:0!important;border-radius:50%!important}
.sp-image-words-crop-stage{height:min(68vh,650px);overflow:hidden;background:#eef2f7;border-radius:15px}
.sp-image-words-crop-stage img{display:block;max-width:100%}
.sp-image-words-crop-actions{display:flex;justify-content:center;gap:10px;margin-top:15px}

@media(max-width:820px){.sp-image-words-grid,.sp-image-words-editor-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.sp-image-words-grid,.sp-image-words-editor-list{grid-template-columns:1fr}.sp-image-words-cropper{padding:10px}.sp-image-words-cropper>div{padding:18px}.sp-image-words-crop-stage{height:62vh}}


/* iteration-2-3-1.css */
.sp-image-words-cropper{position:fixed!important;inset:0!important;z-index:2147483647!important;background:rgba(15,23,42,.72)!important;display:grid!important;place-items:center!important;padding:24px!important}.sp-image-words-cropper[hidden]{display:none!important}.sp-image-words-cropper>div{position:relative;z-index:2;width:min(920px,96vw);max-height:94vh;overflow:auto;background:#fff;border-radius:24px;padding:28px;box-shadow:0 24px 80px #0006}.sp-image-words-crop-stage{height:min(68vh,680px)!important;min-height:420px;background:#eef2f7;overflow:hidden}.sp-image-words-crop-close{position:absolute;right:18px;top:18px;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-size:28px}.sp-builder-editor{display:grid;gap:16px}.sp-builder-edit-row{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid #dbe4f0;border-radius:16px;background:#f8fafc}.sp-builder-edit-row label{flex:1}.sp-builder-edit-row input,.sp-builder-edit-row textarea{width:100%}.sp-builder-grip{cursor:grab;padding:10px;color:#64748b}.sp-builder-edit-row [data-cells]{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;flex:1}.sp-builder-exercise{position:relative;display:grid;gap:18px}.sp-builder-row{display:grid;gap:10px}.sp-builder-bank,.sp-builder-target,.sp-column-drop,.sp-order-list{display:flex;flex-wrap:wrap;align-items:center;gap:9px;min-height:58px;padding:10px;border:1px dashed #b7c6dc;border-radius:14px;background:#f8fafc}.sp-builder-target,.sp-column-drop{background:#fff}.sp-builder-brick{min-height:38px;padding:7px 13px;border:1px solid #cad7e8;border-radius:10px;background:#fff;color:#1e293b;box-shadow:0 2px 6px #0f172a12;cursor:grab}.sp-builder-brick.is-dragging{opacity:.45}.sp-builder-brick.is-selected{outline:3px solid #60a5fa}.sp-builder-brick.is-matched{background:#eff6ff}.sp-builder-brick.is-correct{border-color:#22c55e!important;background:#dcfce7!important}.sp-builder-brick.is-wrong{border-color:#ef4444!important;background:#fee2e2!important}.sp-sort-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.sp-sort-columns section{padding:14px;border:1px solid #dbe4f0;border-radius:16px}.sp-sort-columns h4{text-align:center;margin:0 0 10px}.sp-match-board{display:grid;grid-template-columns:repeat(var(--match-columns,2),minmax(0,1fr));gap:16px}.sp-match-board>[data-match-column]{display:grid;gap:10px;align-content:start}.sp-builder-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.sp-builder-actions>[data-builder-check]{background:#2563eb;color:#fff}.sp-builder-actions>[data-builder-reset]{width:42px}.sp-builder-key{padding:12px;border-radius:12px;background:#f1f5f9}.sp-gap-choice-menu{z-index:50!important}.sp-gap-choice-menu button{white-space:nowrap}.sp-gaps-text{overflow:visible!important}@media(max-width:700px){.sp-sort-columns{grid-template-columns:1fr}.sp-image-words-cropper{padding:8px!important}.sp-image-words-cropper>div{padding:20px 14px}.sp-image-words-crop-stage{min-height:300px!important;height:58vh!important}}

.sp-pair-layer-switcher{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 22px;border-bottom:1px solid #e2e8f0;background:#f8fafc}.sp-pair-layer-switcher>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sp-pair-layer-switcher>div>span{margin-right:4px;color:#64748b;font-size:13px;font-weight:800}.sp-pair-layer-switcher a,.sp-pair-layer-switcher>button{padding:8px 13px;border:1px solid #dbe3ed;border-radius:999px;background:#fff;color:#334155!important;text-decoration:none!important;font-weight:800;cursor:pointer}.sp-pair-layer-switcher a.is-active{border-color:#2563eb;background:#2563eb;color:#fff!important}.sp-pair-layer-switcher a small{margin-left:4px;opacity:.75}.sp-pair-progress{margin:18px 0;padding:15px;border:1px solid #dbeafe;border-radius:16px;background:#f8fbff}.sp-pair-progress>strong{display:block;margin-bottom:10px}.sp-pair-progress>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.sp-pair-progress a{display:grid;gap:3px;padding:11px;border:1px solid #dbe3ed;border-radius:12px;background:#fff;color:#334155!important;text-decoration:none!important}.sp-pair-progress a.is-active{border-color:#60a5fa;box-shadow:0 0 0 2px #dbeafe}.sp-pair-progress a span{color:#2563eb;font-size:13px;font-weight:800}.sp-pair-progress a small{overflow:hidden;color:#64748b;text-overflow:ellipsis;white-space:nowrap}.sp-chat-audience{display:flex;gap:7px;padding:10px 14px;overflow:auto;border-bottom:1px solid #e2e8f0;align-items:center}.sp-chat-audience>span{flex:0 0 auto;color:#64748b;font-size:12px;font-weight:800}.sp-chat-audience button{flex:0 0 auto;padding:7px 11px;border:1px solid #dbe3ed;border-radius:999px;background:#fff;color:#334155;cursor:pointer}.sp-chat-audience button.is-active{border-color:#2563eb;background:#dbeafe;color:#1d4ed8}.sp-chat-audience-badge{display:inline-block;margin-left:7px;padding:2px 7px;border-radius:999px;background:#e2e8f0;color:#475569;font-size:10px;font-style:normal;font-weight:800}.sp-chat-audience-badge.is-private{background:#fef3c7;color:#92400e}@media(max-width:700px){.sp-pair-layer-switcher{align-items:stretch;flex-direction:column}.sp-pair-layer-switcher>button{width:100%}.sp-pair-progress>div{grid-template-columns:1fr}}
.sp-essay-editor{white-space:pre-wrap!important;tab-size:2!important;line-height:1.65!important;text-align:left!important}
.sp-essay-editor>p,.sp-essay-editor>div{margin:0 0 .65em!important;padding:0!important;text-indent:0!important;line-height:inherit!important;text-align:left!important}
.sp-essay-editor>p:empty,.sp-essay-editor>div:empty{min-height:1.65em!important}
.sp-essay-editor :is(span,font,b,strong,i,em,u){line-height:inherit!important}
.sp-essay-editor table,.sp-essay-editor td,.sp-essay-editor th{white-space:pre-wrap}
.sp-builder-brick{touch-action:none;-webkit-user-select:none;user-select:none}
.sp-builder-drag-ghost{position:fixed;z-index:2147483646;left:0;top:0;max-width:min(360px,80vw);padding:9px 14px;border:1px solid #b7a4d1;border-radius:11px;background:#fff;color:#1e293b;box-shadow:0 14px 38px #1e293b38;pointer-events:none;white-space:normal}
.sp-builder-dragging{cursor:grabbing}.is-builder-drag-over{border-color:#9b7bc1!important;background:#f2eafa!important;box-shadow:inset 0 0 0 2px #cbb7df}


/* builder-exercises-2-3-1.css */
.sp-builder-editor-help{padding:13px 15px;border-radius:13px;background:#eff6ff;color:#334155;line-height:1.5}.sp-builder-column-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.sp-builder-column-actions[hidden],[data-builder-limit][hidden]{display:none}.sp-builder-column-actions button:disabled,[data-builder-add]:disabled{opacity:.45;cursor:not-allowed}.sp-builder-edit-row label small{display:block;margin:4px 0;color:#64748b}.sp-builder-exercise .sp-builder-bank:before{content:'Карточки';width:100%;color:#64748b;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.sp-builder-target:empty:before,.sp-column-drop:empty:before{content:'Перетащите сюда';color:#94a3b8;font-size:13px}.sp-sort-columns{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))!important}.sp-match-board>[data-match-column]{position:relative;display:grid;align-content:start;gap:10px;min-width:0;padding:12px;border:1px solid #dbe4f0;border-radius:16px;background:#f8fafc}.sp-match-board h4{margin:0 0 4px;text-align:center}.sp-match-board .sp-builder-brick{width:100%;white-space:normal}.sp-builder-actions [data-builder-result]{min-width:220px;margin:0;font-weight:800}.sp-builder-brick.is-correct{color:#166534}.sp-builder-brick.is-wrong{color:#991b1b}.sp-gap-choice-menu{z-index:2147483646!important}@media(max-width:700px){.sp-match-board{gap:7px}.sp-match-board>[data-match-column]{padding:7px}.sp-match-board .sp-builder-brick{padding:7px 5px;font-size:13px}}


/* portal-theme-2-3-5.css */
:root{--sp-ink:#172033;--sp-muted:#5b6578;--sp-blue:#2d5bff;--sp-paper:#f7f4ef;--sp-lilac:#dcd8ff;--sp-lime:#dff3b4;--sp-line:#dde1e8}
.sp-student-dashboard,.sp-profile-page,.student-calendar{color:var(--sp-ink);font-family:inherit}
.sp-student-dashboard,.sp-profile-page{width:min(1180px,calc(100vw - 32px));margin:34px auto 80px!important}
.sp-student-dashboard .student-dashboard-card,.sp-profile-page>.student-dashboard-card{padding:30px!important;border:1px solid var(--sp-line)!important;border-radius:28px!important;background:#fff!important;box-shadow:none!important;margin-bottom:18px!important}
.sp-student-dashboard .sp-dashboard-overview{padding:38px!important;background:linear-gradient(145deg,#f7f4ef 0%,#fff 66%)!important}
.sp-student-dashboard h2,.sp-student-dashboard h3,.sp-profile-page h3{color:var(--sp-ink)!important;letter-spacing:-.025em}.sp-student-dashboard h3,.sp-profile-page>div>h3{font-size:clamp(25px,3vw,36px)!important}
.sp-dashboard-summary{gap:14px!important}.sp-dashboard-summary>div{padding:20px!important;border:0!important;border-radius:20px!important}.sp-dashboard-summary>div:nth-child(1){background:var(--sp-lilac)!important}.sp-dashboard-summary>div:nth-child(2){background:var(--sp-lime)!important}.sp-dashboard-summary>div:nth-child(3){background:#e8edf8!important}.sp-dashboard-summary strong{font-size:15px!important}.sp-dashboard-summary span{display:inline-block;margin-top:8px;color:var(--sp-ink)!important;font-size:18px!important}
.sp-dashboard-lesson{border:1px solid var(--sp-line)!important;border-radius:20px!important;background:#fff!important;box-shadow:none!important}.sp-dashboard-lesson:hover{border-color:var(--sp-blue)!important;transform:translateY(-2px)}
.sp-dashboard-navigation-grid>a,.sp-dashboard-navigation-grid>div,.sp-dashboard-learning-grid>a,.sp-dashboard-learning-grid>div{border:1px solid var(--sp-line)!important;border-radius:20px!important;background:#f7f8fb!important}.sp-dashboard-navigation-grid>a:hover,.sp-dashboard-learning-grid>a:hover{border-color:var(--sp-blue)!important;background:#fff!important}
.sp-dashboard-details{border:0!important}.sp-dashboard-details>summary{border-radius:18px!important;background:var(--sp-paper)!important}
.sp-profile-page>.student-dashboard-card{padding:clamp(24px,4vw,48px)!important;background:linear-gradient(145deg,#fff 0%,#f7f4ef 100%)!important}.sp-profile-page form:first-of-type{max-width:none!important}.sp-profile-page input,.sp-profile-page select,.sp-profile-page textarea{min-height:48px!important;border:1px solid #cbd2dd!important;border-radius:14px!important;background:#fff!important;padding:11px 14px!important}.sp-profile-page textarea{min-height:120px!important}.sp-profile-page button[type=submit],.sp-profile-page #sp-add-language,.sp-profile-page #sp-avatar-crop-apply{min-height:48px!important;padding:12px 22px!important;border:0!important;border-radius:999px!important;background:var(--sp-ink)!important;color:#fff!important;font-weight:800!important}.sp-profile-page button:hover{background:var(--sp-blue)!important}.sp-profile-page #sp-avatar-initials,.sp-profile-page #sp-avatar-preview{box-shadow:0 0 0 10px var(--sp-lilac)!important}
.student-calendar{width:min(1440px,calc(100vw - 30px));margin:30px auto 80px!important;padding:26px!important;border:1px solid var(--sp-line);border-radius:32px;background:#f7f8fb;box-shadow:none!important}.student-calendar-header{padding:8px 6px 24px!important;border-bottom:0!important}.student-calendar-title{color:var(--sp-ink)!important;font-size:clamp(28px,4vw,44px)!important;letter-spacing:-.04em!important}.student-calendar-week{color:var(--sp-muted)!important}.student-calendar-nav{gap:8px!important}.student-calendar-nav a{padding:10px 15px!important;border:1px solid #ccd2dc!important;border-radius:999px!important;background:#fff!important;color:var(--sp-ink)!important;text-decoration:none!important;font-weight:750!important}.student-calendar-nav a:hover{border-color:var(--sp-blue)!important;color:var(--sp-blue)!important}.student-calendar-grid-view{overflow:hidden;border:1px solid var(--sp-line)!important;border-radius:24px!important;background:#fff!important}.student-calendar-grid-day-header{background:var(--sp-paper)!important;color:var(--sp-ink)!important}.student-slot-free{border-color:#b9d982!important;background:var(--sp-lime)!important;color:#26351c!important}.student-slot-lesson{border-color:#b7b0f1!important;background:var(--sp-lilac)!important;color:#292742!important}.student-slot-google-event,.student-slot-manual-block{border-color:#cfd5df!important;background:#edf0f5!important;color:#3d4759!important}.sp-teacher-tools{margin-bottom:22px!important;border:1px solid var(--sp-line)!important;border-radius:22px!important;background:#fff!important}.sp-teacher-tools>summary{padding:18px 20px!important}.sp-book-modal>div,#sp-student-reschedule-modal>div,#sp-pending-reschedule-modal>div{border-radius:26px!important;box-shadow:0 24px 70px rgba(23,32,51,.2)!important}
@media(max-width:760px){.sp-student-dashboard,.sp-profile-page{width:calc(100vw - 20px)!important;margin-top:18px!important}.sp-student-dashboard .student-dashboard-card,.sp-profile-page>.student-dashboard-card{padding:20px!important;border-radius:22px!important}.student-calendar{width:calc(100vw - 12px)!important;padding:10px!important;border-radius:22px!important}.student-calendar-header{align-items:flex-start!important;gap:14px!important}.student-calendar-nav{width:100%;overflow-x:auto;padding-bottom:4px}.student-calendar-nav a{white-space:nowrap}.student-calendar-grid-view{border-radius:17px!important}}

.sp-pair-centre{background:linear-gradient(145deg,#fff 0%,#f5f3ff 100%)!important}.sp-pair-centre h3{margin-top:0}.sp-pair-auto-form{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border-radius:18px;background:#fff;border:1px solid #ddd6fe}.sp-pair-auto-form label{display:flex;gap:10px;align-items:flex-start}.sp-pair-centre button{border:0;border-radius:999px;padding:10px 18px;background:#312e81;color:#fff;font-weight:750;cursor:pointer}.sp-pair-list{display:grid;gap:12px;margin-top:18px}.sp-pair-item{display:grid;gap:5px;padding:18px;border:1px solid #e2e8f0;border-radius:18px;background:#fff}.sp-pair-item em{color:#6d28d9;font-style:normal;font-weight:700}.sp-pair-item form{display:flex;gap:8px;margin-top:8px}.sp-pair-item .is-secondary{background:#e2e8f0;color:#334155}.sp-pair-success{padding:12px 15px;border-radius:14px;background:#dcfce7;color:#166534}.sp-pair-freeze{margin-top:16px;padding:14px 16px;border-radius:18px;background:#fff;border:1px solid #ddd6fe}.sp-pair-freeze summary{font-weight:800;cursor:pointer}.sp-pair-freeze form{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:10px;align-items:end;margin-top:14px}.sp-pair-freeze label{display:grid;gap:5px}.sp-pair-freeze input,.sp-pair-freeze select{min-height:44px;border:1px solid #cbd5e1;border-radius:12px;padding:8px 10px}@media(max-width:700px){.sp-pair-auto-form{align-items:stretch;flex-direction:column}.sp-pair-freeze form{grid-template-columns:1fr}}

.sp-month-payment{background:linear-gradient(145deg,#fff 0%,#eef2ff 100%)!important}.sp-card-kicker{color:#6d5fc7;font-size:12px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.sp-month-payment h3,.sp-waitlist h3,.sp-notifications h3{margin:6px 0 12px}.sp-month-total{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:20px;border-radius:20px;background:#fff;border:1px solid #ddd6fe;margin:14px 0}.sp-month-total strong{font-size:34px}.sp-month-total span{color:#64748b}.sp-month-payment button,.sp-waitlist button{border:0;border-radius:999px;background:#312e81;color:#fff;padding:11px 18px;font-weight:800}.sp-month-payment .is-paid{padding:15px;border-radius:15px;background:#dcfce7;color:#166534;font-weight:750}.sp-waitlist>form{display:grid;grid-template-columns:1.2fr .8fr .8fr 1.2fr 1fr auto;gap:10px;align-items:end}.sp-waitlist label{display:grid;gap:5px;font-size:13px;font-weight:700}.sp-waitlist input,.sp-waitlist select{min-height:44px;border:1px solid #cbd5e1;border-radius:12px;padding:8px 10px;background:#fff}.sp-waitlist-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 15px;margin-top:10px;border-radius:15px;background:#f8fafc}.sp-waitlist-item button{background:#e2e8f0;color:#334155;padding:7px 13px}.sp-notifications article{padding:15px 0;border-top:1px solid #e2e8f0}.sp-notifications article:first-of-type{border-top:0}.sp-notifications article p{margin:5px 0}.sp-notifications article a{color:#5b4bb7;font-weight:800}@media(max-width:850px){.sp-waitlist>form{grid-template-columns:1fr 1fr}.sp-month-total{align-items:flex-start;flex-direction:column}}@media(max-width:520px){.sp-waitlist>form{grid-template-columns:1fr}}
.sp-waitlist-saved{margin-top:24px;padding-top:20px;border-top:1px solid #e2e8f0}.sp-waitlist-saved h4{margin:0 0 10px;font-size:17px}.sp-waitlist-empty{margin:0;color:#64748b}.sp-waitlist-item>span{display:grid;gap:3px}.sp-waitlist-item small{color:#64748b}.sp-waitlist-item form{margin:0}
#sp-dashboard-learning,#sp-dashboard-lessons,#sp-dashboard-hours,#sp-dashboard-payment,#sp-dashboard-freezes,#sp-dashboard-calendar,#sp-waitlist,#sp-dashboard-useful{scroll-margin-top:110px}
.sp-invoice-list{display:grid;gap:10px;margin:16px 0}.sp-invoice-list article{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:12px;padding:16px;border-radius:18px;background:#fff;border:1px solid #ddd6fe}.sp-invoice-list article>div{display:grid;gap:3px}.sp-invoice-list span,.sp-invoice-list small{color:#64748b}.sp-invoice-list b{font-size:22px}.sp-invoice-list em{color:#166534;font-style:normal;font-weight:800}@media(max-width:650px){.sp-invoice-list article{grid-template-columns:1fr auto}.sp-invoice-list article form,.sp-invoice-list article small,.sp-invoice-list article em{grid-column:1/-1}}
.sp-faq-contact{display:grid!important;grid-template-columns:minmax(220px,.7fr) minmax(320px,1.3fr)!important;align-items:start!important;padding:clamp(24px,4vw,44px)!important;border-radius:30px!important}.sp-faq-question-form{display:grid;gap:14px;padding:22px;border-radius:22px;background:#fff;color:var(--sp-ink)}.sp-faq-question-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sp-faq-question-form label{display:grid;gap:7px;font-weight:750}.sp-faq-question-form input,.sp-faq-question-form textarea{width:100%;border:1px solid #cbd2dd;border-radius:14px;background:#f8f9fb;padding:12px 14px;color:var(--sp-ink)}.sp-faq-question-form textarea{resize:vertical}.sp-faq-question-form button{justify-self:start;min-height:48px;padding:12px 21px;border:0;border-radius:999px;background:var(--sp-blue);color:#fff;font-weight:850;cursor:pointer}.sp-faq-form-message{margin:0!important;padding:11px 13px;border-radius:12px;font-weight:750}.sp-faq-form-message.is-success{background:#dcfce7;color:#166534}.sp-faq-form-message.is-error{background:#fee2e2;color:#991b1b}@media(max-width:760px){.sp-faq-contact{grid-template-columns:1fr!important}.sp-faq-question-row{grid-template-columns:1fr}.sp-faq-question-form{padding:17px}}
.sp-trial-checkout{width:min(720px,calc(100vw - 30px));margin:54px auto 90px;padding:clamp(28px,6vw,58px);border-radius:34px;background:var(--sp-paper);color:var(--sp-ink)}.sp-trial-checkout>span{color:#3150ca;font-size:13px;font-weight:850;letter-spacing:.13em;text-transform:uppercase}.sp-trial-checkout h2{margin:12px 0 28px;font-size:clamp(34px,6vw,58px);line-height:1;letter-spacing:-.045em}.sp-trial-checkout-summary{padding:22px;border-radius:20px;background:var(--sp-lilac)}.sp-trial-checkout-summary strong{font-size:20px}.sp-trial-checkout-summary p{margin:8px 0 0}.sp-trial-checkout-notice{margin-top:18px;padding:20px;border:1px solid #cbd2dd;border-radius:18px;background:#fff}.sp-trial-checkout-notice p{margin:7px 0 0;color:var(--sp-muted)}.sp-trial-checkout-button,.sp-trial-checkout-back{display:inline-flex;margin-top:20px;text-decoration:none!important;font-weight:850}.sp-trial-checkout-button{padding:13px 21px;border-radius:999px;background:var(--sp-blue);color:#fff!important}.sp-trial-checkout-back{color:var(--sp-ink)!important}
.sp-trial-checkout-summary b{display:block;margin-top:12px;font-size:25px}.sp-trial-checkout-button{border:0;cursor:pointer}.sp-trial-checkout-notice.is-error{border-color:#fecaca;background:#fff1f2;color:#991b1b}.sp-trial-checkout-notice a{display:inline-block;margin-top:10px;color:inherit;font-weight:850}
.sp-privacy-policy{width:min(960px,calc(100vw - 32px));margin:20px auto 90px;padding:clamp(26px,5vw,54px);border-radius:34px;background:var(--sp-paper);color:var(--sp-ink)}.sp-privacy-lead{max-width:760px;margin:0 0 34px;color:var(--sp-muted);font-size:20px;line-height:1.65}.sp-privacy-policy section{padding:24px 0;border-top:1px solid #d8d2c8}.sp-privacy-policy section h2{margin:0 0 10px;color:var(--sp-ink);font-size:22px;letter-spacing:-.02em}.sp-privacy-policy section p{margin:0;color:var(--sp-muted);line-height:1.7}.sp-privacy-policy a{color:var(--sp-blue);font-weight:750}.sp-privacy-updated{margin:28px 0 0;color:#757d8b;font-size:14px}@media(max-width:600px){.sp-privacy-policy{width:calc(100vw - 20px);padding:24px 19px;border-radius:24px}.sp-privacy-lead{font-size:17px}.sp-privacy-policy section h2{font-size:19px}}
.sp-calendar-jump{position:relative;display:inline-grid!important;place-items:center;width:48px;height:48px;border:2px solid #c7d7ef;border-radius:50%;background:#fff;cursor:pointer;box-shadow:0 6px 16px rgba(35,52,82,.08)}.sp-calendar-jump:hover{border-color:#745fd0;background:#f7f4ff}.sp-calendar-jump>span{pointer-events:none;font-size:24px;line-height:1}
.sp-dashboard-jump{position:sticky;z-index:20;top:12px;display:flex;gap:9px;margin:0 0 20px;padding:10px;overflow-x:auto;border:1px solid #dfe7f2;border-radius:18px;background:rgba(255,255,255,.94);box-shadow:0 10px 30px rgba(34,48,75,.08);backdrop-filter:blur(10px)}.sp-dashboard-jump a{display:inline-flex;min-width:max-content;padding:10px 15px;border-radius:12px;background:#f0f5ff;color:#31415d!important;font-weight:750;text-decoration:none!important}.sp-dashboard-jump a:hover{background:#745fd0;color:#fff!important}.sp-student-dashboard [id^="sp-dashboard-"]{scroll-margin-top:100px}
@media(max-width:680px){.sp-auth-intro h1{white-space:normal}.sp-calendar-jump{width:44px;height:44px}.sp-dashboard-jump{top:6px}}


/* iteration-2-5-7.css */
/* Student Portal 2.5.7 — pair invitations, payments and confirmation dialog. */
.sp-pair-sent-modal{position:fixed;z-index:1000100;inset:0;display:grid;place-items:center;padding:20px;background:rgba(23,32,51,.58)}
.sp-pair-sent-modal>div{width:min(470px,100%);padding:34px;border-radius:26px;background:#fff;text-align:center;box-shadow:0 30px 90px rgba(23,32,51,.28)}
.sp-pair-sent-modal>div>span{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 16px;border-radius:50%;background:#dcfce7;color:#15803d;font-size:28px;font-weight:900}
.sp-pair-sent-modal h3{margin:0 0 10px}.sp-pair-sent-modal p{color:#64748b;line-height:1.55}.sp-pair-sent-modal button{margin-top:8px;padding:12px 20px;border:0;border-radius:999px;background:#5b4bb7;color:#fff;font-weight:800;cursor:pointer}
.sp-pair-email-check{display:grid;gap:8px;margin-top:9px}.sp-pair-email-check button{justify-self:start;padding:9px 14px;border:1px solid #cdd8ea;border-radius:11px;background:#fff;color:#334155;font-weight:750;cursor:pointer}.sp-pair-email-result{margin:0;color:#64748b}.sp-pair-email-result.is-ready{color:#166534}
.sp-pair-payments{display:grid;gap:13px;margin-top:16px}.sp-pair-payments>p{margin:0;color:#64748b}.sp-pair-payments article{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 18px;border:1px solid #e5def7;border-radius:17px;background:#fbfaff}.sp-pair-payments article>div{display:grid;gap:4px}.sp-pair-payments article span{color:#64748b}.sp-pair-payments form{margin:0}.sp-pair-payments button{padding:11px 17px;border:0;border-radius:999px;background:#5b4bb7;color:#fff;font-weight:800;cursor:pointer}
@media(max-width:650px){.sp-pair-payments article{align-items:stretch;flex-direction:column}.sp-pair-payments button{width:100%}}


/* legal-analytics-2-5-2.css */
.sp-cookie-consent{position:fixed;z-index:999999;left:18px;right:18px;bottom:18px}.sp-cookie-consent>div{max-width:780px;margin:auto;padding:24px;border:0;border-radius:24px;background:#fff;box-shadow:0 18px 60px rgba(18,59,55,.2);color:#111}.sp-cookie-consent strong{font-size:20px}.sp-cookie-consent p{line-height:1.55;color:#111}.sp-cookie-consent div div{display:flex;gap:10px;flex-wrap:wrap}.sp-cookie-consent button,.sp-site-footer button[data-sp-cookie-settings]{border:0;border-radius:999px;padding:11px 18px;cursor:pointer;font-weight:700;box-shadow:none;transform:none;animation:none}.sp-cookie-consent button[data-consent=analytics],.sp-cookie-consent button[data-consent=analytics]:hover,.sp-cookie-consent button[data-consent=analytics]:focus{background:#123b37!important;color:#fff!important;-webkit-text-fill-color:#fff!important}.sp-cookie-consent button[data-consent=necessary],.sp-cookie-consent button[data-consent=necessary]:hover,.sp-cookie-consent button[data-consent=necessary]:focus{background:#f0df77!important;color:#111!important;-webkit-text-fill-color:#111!important}.sp-site-footer button[data-sp-cookie-settings]{padding:0;background:none;color:inherit;text-decoration:underline;font:inherit}@media(max-width:600px){.sp-cookie-consent{left:10px;right:10px;bottom:10px}.sp-cookie-consent>div{padding:18px;border-radius:18px}}


/* design-system-3-0-0.css */
/* Student Portal 3.0 — restrained visual system for public and cabinet screens. */
@font-face{font-family:"Google Sans";src:url("https://mariiaswort.com/wp-content/plugins/student-portal/assets/fonts/google-sans/GoogleSans-Regular.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Google Sans";src:url("https://mariiaswort.com/wp-content/plugins/student-portal/assets/fonts/google-sans/GoogleSans-Medium.ttf") format("truetype");font-style:normal;font-weight:500 700;font-display:swap}

:root{
  --sp30-ink:#202638;
  --sp30-text:#41495a;
  --sp30-muted:#737b89;
  --sp30-line:#dfe3e9;
  --sp30-paper:#fff;
  --sp30-cream:#fff6e7;
  --sp30-aqua:#b9dddd;
  --sp30-aqua-soft:#eaf6f5;
  --sp30-lilac:#c7b5d8;
  --sp30-lilac-soft:#f4eff8;
  --sp30-blush:#f2d9d4;
  --sp30-green:#39785d;
  --sp30-red:#ae4b52;
  --sp30-radius:22px;
  --sp30-shadow:0 16px 42px rgba(32,38,56,.09);
}

:is(.sp-editable-portal-page,.sp-design-system-page,.sp-board-only-page,.sp-class-only-page,.sp-about-page-300,.sp-useful-page-300),
:is(.sp-editable-portal-page,.sp-design-system-page,.sp-board-only-page,.sp-class-only-page,.sp-about-page-300,.sp-useful-page-300) button,
:is(.sp-editable-portal-page,.sp-design-system-page,.sp-board-only-page,.sp-class-only-page,.sp-about-page-300,.sp-useful-page-300) input,
:is(.sp-editable-portal-page,.sp-design-system-page,.sp-board-only-page,.sp-class-only-page,.sp-about-page-300,.sp-useful-page-300) select,
:is(.sp-editable-portal-page,.sp-design-system-page,.sp-board-only-page,.sp-class-only-page,.sp-about-page-300,.sp-useful-page-300) textarea{
  font-family:"Google Sans",Arial,sans-serif;
}

/* Editable Elementor shells. */
.sp-editable-page-shell,.sp-editorial-page{max-width:1180px;margin:0 auto;padding:54px 28px 84px;color:var(--sp30-text);gap:28px}
.sp-application-page-shell{width:100%;max-width:none;margin:0;padding:0;color:var(--sp30-text)}
.sp-application-page-shell>.elementor-element,.sp-application-page-shell .sp-elementor-portal-widget{width:100%;max-width:none}
.sp-ep-hero,.sp-useful-hero{padding:54px clamp(26px,5vw,66px);border-radius:30px;background:linear-gradient(135deg,var(--sp30-aqua-soft),#fff 62%);border:1px solid rgba(185,221,221,.75);gap:8px;overflow:hidden;position:relative}
.sp-ep-hero:after,.sp-useful-hero:after{content:"";position:absolute;width:210px;height:210px;border-radius:50%;right:-75px;top:-95px;background:var(--sp30-lilac);opacity:.34;pointer-events:none}
.sp-ep-kicker .elementor-heading-title,.sp-ep-kicker{color:#52616e!important;font-size:13px!important;line-height:1.3!important;letter-spacing:.12em!important;text-transform:uppercase;font-weight:500!important}
.sp-ep-title .elementor-heading-title,.sp-ep-title{font-size:clamp(38px,6vw,68px)!important;line-height:1.02!important;letter-spacing:-.035em!important;color:var(--sp30-ink)!important;max-width:820px}
.sp-ep-lead,.sp-ep-lead p{font-size:18px;line-height:1.55;color:var(--sp30-text);max-width:710px;margin:0}
.sp-ep-function-card{padding:clamp(20px,4vw,42px);border-radius:28px;background:var(--sp30-paper);border:1px solid var(--sp30-line);box-shadow:var(--sp30-shadow)}
.sp-elementor-portal-widget{--spw-background:transparent;--spw-text:var(--sp30-text);--spw-heading:var(--sp30-ink);--spw-accent:var(--sp30-aqua);--spw-border:var(--sp30-line);--spw-field-bg:#fff;--spw-field-text:var(--sp30-ink);--spw-field-border:#cfd5dd;--spw-field-radius:12px;--spw-button-bg:var(--sp30-ink);--spw-button-text:#fff;--spw-button-border:var(--sp30-ink);--spw-button-hover-bg:#fff;--spw-button-hover-text:var(--sp30-ink);--spw-button-radius:999px;--spw-card-bg:#fff;--spw-card-border:var(--sp30-line);--spw-card-radius:22px;color:var(--spw-text);background:var(--spw-background);border:1px solid transparent}
.sp-elementor-portal-widget :is(h1,h2,h3,h4,h5,h6){color:var(--spw-heading)}
.sp-elementor-portal-widget a{color:var(--spw-heading)}
.sp-elementor-portal-widget :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]),select,textarea){background:var(--spw-field-bg)!important;color:var(--spw-field-text)!important;border-color:var(--spw-field-border)!important;border-radius:var(--spw-field-radius)!important}
.sp-elementor-portal-widget :is(button,.button,input[type=submit],a.sp-button,.sp-btn,.sp-neutral-action,.sp-auth-submit,.sp-registration-submit){background:var(--spw-button-bg)!important;color:var(--spw-button-text)!important;border-color:var(--spw-button-border)!important;border-radius:var(--spw-button-radius)!important;transform:none!important}
.sp-elementor-portal-widget :is(button,.button,input[type=submit],a.sp-button,.sp-btn,.sp-neutral-action,.sp-auth-submit,.sp-registration-submit):hover{background:var(--spw-button-hover-bg)!important;color:var(--spw-button-hover-text)!important;transform:none!important}
.sp-elementor-portal-widget :is(.sp-auth-card,.sp-registration-card,.sp-dashboard-overview,.sp-dashboard-details,.sp-dashboard-lesson,.sp-dashboard-subscription,.sp-dashboard-freeze,.sp-profile-card,.sp-trial-checkout,.sp-panel,.sp-card){background:var(--spw-card-bg)!important;border-color:var(--spw-card-border)!important;border-radius:var(--spw-card-radius)!important}
.sp-ep-help{padding:22px 26px;border-radius:22px;background:var(--sp30-cream);gap:20px;flex-wrap:wrap}
.sp-ep-help h3,.sp-ep-help p{margin:0}
.sp-ep-button .elementor-button,.sp-editable-page-shell .elementor-button{border:1px solid var(--sp30-ink)!important;border-radius:999px!important;background:var(--sp30-ink)!important;color:#fff!important;padding:13px 22px!important;box-shadow:none!important;transform:none!important;transition:background-color .18s ease,color .18s ease,border-color .18s ease!important}
.sp-ep-button .elementor-button:hover,.sp-editable-page-shell .elementor-button:hover{background:#fff!important;color:var(--sp30-ink)!important;transform:none!important}

/* Forms and application controls. Layout and JS-controlled visibility remain untouched. */
:is(.sp-editable-portal-page,.sp-design-system-page,.sp-board-only-page,.sp-class-only-page) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]),select,textarea){border:1px solid #cfd5dd!important;border-radius:12px!important;background:#fff!important;color:var(--sp30-ink)!important;min-height:44px;padding:10px 13px!important;box-shadow:none!important;outline:none}
:is(.sp-editable-portal-page,.sp-design-system-page,.sp-board-only-page,.sp-class-only-page) :is(input,select,textarea):focus{border-color:#7baaaa!important;box-shadow:0 0 0 3px rgba(185,221,221,.42)!important}
:is(.sp-editable-portal-page,.sp-design-system-page,.sp-board-only-page,.sp-class-only-page) label{color:var(--sp30-text);font-weight:500}
:is(.sp-editable-portal-page,.sp-design-system-page,.sp-board-only-page,.sp-class-only-page) :is(button,.button,input[type=submit],a.sp-button,.sp-btn,.sp-neutral-action){font-family:"Google Sans",Arial,sans-serif;border-radius:999px;border-width:1px;box-shadow:none;transform:none;transition:background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease}
:is(.sp-editable-portal-page,.sp-design-system-page,.sp-board-only-page,.sp-class-only-page) :is(button,.button,input[type=submit],a.sp-button,.sp-btn,.sp-neutral-action):hover{transform:none!important}

/* Harmonise existing cards without changing their dimensions or behaviour. */
:is(.sp-dashboard-card,.sp-profile-card,.sp-schedule-card,.sp-class-card,.sp-material-card,.sp-library-card,.sp-book-card,.sp-panel,.sp-card){border-color:var(--sp30-line)!important;border-radius:var(--sp30-radius)!important;box-shadow:0 10px 30px rgba(32,38,56,.07)!important}
:is(.sp-editable-portal-page,.sp-design-system-page,.sp-board-only-page,.sp-class-only-page) table{border-collapse:separate;border-spacing:0;color:var(--sp30-text)}
:is(.sp-editable-portal-page,.sp-design-system-page,.sp-board-only-page,.sp-class-only-page) th{font-weight:500;color:var(--sp30-ink);background:#f7f8fa}
:is(.sp-editable-portal-page,.sp-design-system-page,.sp-board-only-page,.sp-class-only-page) :is(th,td){border-color:var(--sp30-line)}
:is(.sp-editable-portal-page,.sp-design-system-page,.sp-board-only-page,.sp-class-only-page) :is(.notice,.sp-notice,.sp-alert,.sp-message){border-radius:14px;font-family:"Google Sans",Arial,sans-serif}

/* Every portal overlay/modal: visual treatment only, never display/position rules. */
:is(.sp-class-overlay-dialog,.sp-exercise-modal-dialog,.sp-pair-sent-modal>div,.sp-book-modal>div,#sp-avatar-crop-modal>div,#sp-block-modal>div,#sp-open-slot-modal>div,#sp-delete-modal>div,#sp-delete-open-slot-modal>div,#sp-lesson-actions-modal>div,#sp-student-lesson-modal>div,#sp-student-reschedule-modal>div,#sp-pending-reschedule-modal>div,#sp-freeze-workoff-modal>div,#sp-lesson-modal>div,#sp-subscription-conflicts-modal>div,#sp-trial-booking-notice-modal>div){font-family:"Google Sans",Arial,sans-serif!important;background:#fff!important;color:var(--sp30-text)!important;border:1px solid var(--sp30-line)!important;border-radius:24px!important;box-shadow:0 24px 70px rgba(20,27,43,.2)!important}
:is(.sp-class-overlay-dialog,.sp-exercise-modal-dialog,.sp-pair-sent-modal>div,.sp-book-modal>div,#sp-avatar-crop-modal>div,[id^=sp-][id$=-modal]>div) :is(h1,h2,h3,h4){color:var(--sp30-ink);font-family:"Google Sans",Arial,sans-serif;letter-spacing:-.02em}
.sp-class-overlay,.sp-exercise-modal,.sp-book-modal,.sp-pair-sent-modal,[id^=sp-][id$=-modal]{backdrop-filter:blur(5px)}
:is(.sp-class-overlay-close,.sp-exercise-modal-close,[data-close-modal]){border-radius:50%!important;transform:none!important}

/* About, Useful and the reusable article template. */
.sp-editorial-page{gap:72px}
.sp-about-hero,.sp-featured-article,.sp-about-personal{display:flex;gap:clamp(28px,5vw,70px);padding:clamp(28px,5vw,62px);border-radius:30px;background:var(--sp30-cream)}
.sp-about-copy,.sp-about-personal>div,.sp-featured-article>div{flex:1;gap:12px}
.sp-about-hero .sp-photo-placeholder,.sp-featured-article .sp-photo-placeholder,.sp-about-personal .sp-photo-placeholder{flex:0 1 420px}
.sp-photo-placeholder{min-height:330px;padding:28px;justify-content:flex-end;border:1px dashed #8c95a3;border-radius:26px;background:linear-gradient(145deg,var(--sp30-lilac-soft),#fff);color:var(--sp30-muted)}
.sp-photo-placeholder h4{color:var(--sp30-ink)}
.sp-about-section,.sp-articles-section{gap:18px}
.sp-editorial-grid{display:flex;gap:20px;flex-wrap:wrap}
.sp-editorial-card,.sp-article-card{flex:1 1 260px;padding:26px;border:1px solid var(--sp30-line);border-radius:22px;background:#fff;gap:10px}
.sp-editorial-card:nth-child(2){background:var(--sp30-aqua-soft)}
.sp-editorial-card:nth-child(3){background:var(--sp30-lilac-soft)}
.sp-about-soft,.sp-editorial-note,.sp-article-callout{padding:clamp(24px,4vw,44px);border-radius:24px;background:var(--sp30-aqua-soft)}
.sp-about-soft ul,.sp-article-body ol{padding-left:1.25em;line-height:1.75}
.sp-article-categories{display:flex;gap:10px;flex-wrap:wrap}
.sp-chip{width:auto!important}
.sp-chip .elementor-button{border:1px solid var(--sp30-line)!important;background:#fff!important;color:var(--sp30-ink)!important;border-radius:999px!important;padding:10px 16px!important;transform:none!important}
.sp-chip .elementor-button:hover{background:var(--sp30-aqua-soft)!important;border-color:#9ecbca!important;transform:none!important}
.sp-article-cover{min-height:170px;justify-content:center;align-items:center;border-radius:16px;background:linear-gradient(135deg,var(--sp30-blush),var(--sp30-cream));color:var(--sp30-muted)}
.sp-text-button .elementor-button{padding:0!important;border:0!important;background:transparent!important;color:var(--sp30-ink)!important;box-shadow:none!important;transform:none!important;text-decoration:underline;text-underline-offset:4px}
.sp-article-template{max-width:900px}
.sp-article-header{text-align:center;align-items:center;gap:12px;padding:48px 20px}
.sp-article-header h1{max-width:800px;font-size:clamp(38px,6vw,64px);line-height:1.08}
.sp-article-meta{color:var(--sp30-muted);font-size:14px}
.sp-article-body{max-width:720px;width:100%;margin:0 auto;gap:16px;font-size:18px;line-height:1.7}
.sp-article-body h2{margin-top:26px;color:var(--sp30-ink)}
.sp-article-cta{padding:clamp(28px,5vw,48px);border-radius:26px;background:var(--sp30-cream);align-items:flex-start;gap:10px}

@media(max-width:767px){
  .sp-editable-page-shell,.sp-editorial-page{padding:28px 16px 58px;gap:22px}
  .sp-ep-hero,.sp-useful-hero{padding:34px 22px;border-radius:23px}
  .sp-ep-title .elementor-heading-title,.sp-ep-title{font-size:38px!important}
  .sp-ep-help,.sp-about-hero,.sp-featured-article,.sp-about-personal{flex-direction:column!important;align-items:stretch!important}
  .sp-about-hero,.sp-featured-article,.sp-about-personal{padding:24px;border-radius:23px}
  .sp-about-hero .sp-photo-placeholder,.sp-featured-article .sp-photo-placeholder,.sp-about-personal .sp-photo-placeholder{flex-basis:auto}
  .sp-photo-placeholder{min-height:250px}
  .sp-editorial-page{gap:48px}
}


/* elementor-authority-3-1-1.css */
/*
 * Elementor authority layer.
 * It contains no independent brand palette and does not rebuild page layout.
 * Values come from Elementor global settings or the SP functional widget.
 */

.elementor-widget-sp_portal_block .sp-elementor-portal-widget{
  --spw-text:var(--e-global-color-text,inherit);
  --spw-heading:var(--e-global-color-primary,inherit);
  --spw-accent:var(--e-global-color-accent,currentColor);
  color:var(--spw-text);
  font-family:var(--e-global-typography-text-font-family,inherit);
}

.elementor-widget-sp_portal_block .sp-elementor-portal-widget :is(p,label,li,td,th,small,span){color:var(--spw-text)}
.elementor-widget-sp_portal_block .sp-elementor-portal-widget :is(h1,h2,h3,h4,h5,h6,strong){color:var(--spw-heading)!important}
.elementor-widget-sp_portal_block .sp-elementor-portal-widget a:not(.button):not(.sp-btn):not(.sp-button){color:var(--spw-accent)}

.elementor-widget-sp_portal_block .sp-elementor-portal-widget :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]),select,textarea){
  background:var(--spw-field-bg)!important;
  color:var(--spw-field-text)!important;
  border-color:var(--spw-field-border)!important;
  border-radius:var(--spw-field-radius)!important;
}

.elementor-widget-sp_portal_block .sp-elementor-portal-widget :is(button,.button,input[type=submit],a.sp-button,.sp-btn,.sp-neutral-action,.sp-auth-submit,.sp-registration-submit){
  background:var(--spw-button-bg)!important;
  color:var(--spw-button-text)!important;
  border-color:var(--spw-button-border)!important;
  border-radius:var(--spw-button-radius)!important;
}

.elementor-widget-sp_portal_block .sp-elementor-portal-widget :is(button,.button,input[type=submit],a.sp-button,.sp-btn,.sp-neutral-action,.sp-auth-submit,.sp-registration-submit):hover{
  background:var(--spw-button-hover-bg)!important;
  color:var(--spw-button-hover-text)!important;
}

.elementor-widget-sp_portal_block .sp-elementor-portal-widget :is(.sp-auth-card,.sp-registration-card,.student-dashboard-card,.sp-dashboard-overview,.sp-dashboard-details,.sp-dashboard-lesson,.sp-dashboard-subscription,.sp-dashboard-freeze,.sp-profile-card,.sp-trial-checkout,.sp-teacher-tools,.sp-panel,.sp-card){
  background:var(--spw-card-bg)!important;
  border-color:var(--spw-card-border)!important;
  border-radius:var(--spw-card-radius)!important;
}

.elementor-widget-sp_portal_block .sp-elementor-portal-widget :is(.student-calendar,.student-calendar-grid-view,.student-calendar-grid-day-header,.sp-teacher-dashboard>section,.sp-teacher-dashboard>article,.sp-book-card-wrap,.sp-material-book-grid>*,.sp-class-panel,.sp-class-call-card,.sp-class-placeholder,.sp-class-overlay-dialog,.sp-exercise-modal-dialog,.sp-book-modal>div,[id^=sp-][id$=-modal]>div){
  border-color:var(--spw-card-border)!important;
  border-radius:var(--spw-card-radius)!important;
}

.elementor-widget-sp_portal_block .sp-elementor-portal-widget :is(.sp-class-overlay-dialog,.sp-exercise-modal-dialog,.sp-book-modal>div,[id^=sp-][id$=-modal]>div){
  background:var(--spw-dialog-bg)!important;
  color:var(--spw-dialog-text)!important;
  border-color:var(--spw-dialog-border)!important;
  border-radius:var(--spw-dialog-radius)!important;
}

.elementor-widget-sp_portal_block .sp-elementor-portal-widget :is(.student-calendar-nav a,.sp-material-tabs button,.sp-class-top-actions button,.sp-class-layer-switcher a,.sp-pair-layer-switcher a).is-active,
.elementor-widget-sp_portal_block .sp-elementor-portal-widget :is(.student-calendar-nav a,.sp-material-tabs button,.sp-class-top-actions button,.sp-class-layer-switcher a,.sp-pair-layer-switcher a):hover{
  border-color:var(--spw-accent)!important;
  color:var(--spw-accent)!important;
}

/* The footer widget controls win over old plugin defaults. */
body .elementor-widget-sp_site_footer .sp-elementor-site-footer,
body .sp-global-elementor-footer .sp-elementor-site-footer{
  font-family:var(--e-global-typography-text-font-family,inherit);
}

body .elementor-widget-sp_site_footer .sp-elementor-site-footer :is(a,button,strong,span,small){
  font-family:inherit;
}


/* targeted-ui-3-1-2.css */
/* 3.1.2 — only the requested auth, footer and profile corrections. */

/* The left panel remains fully controlled by the Elementor portal widget. */
.elementor-widget-sp_portal_block .sp-elementor-portal-widget :is(.sp-auth-intro,.sp-registration-intro){
  background:var(--spw-intro-bg,var(--e-global-color-secondary,#eee7fa))!important;
  color:var(--spw-intro-text,var(--spw-text,inherit));
}
.elementor-widget-sp_portal_block .sp-elementor-portal-widget :is(.sp-auth-intro,.sp-registration-intro) :is(h1,p,li){
  color:var(--spw-intro-text,var(--spw-text,inherit))!important;
}

/* The password eye is a control inside a field, never a primary action button. */
.elementor-widget-sp_portal_block .sp-elementor-portal-widget button:is(.sp-auth-password-toggle,.sp-password-toggle),
button:is(.sp-auth-password-toggle,.sp-password-toggle){
  position:absolute!important;
  top:50%!important;
  right:8px!important;
  display:flex!important;
  width:38px!important;
  min-width:38px!important;
  height:38px!important;
  min-height:38px!important;
  margin:0!important;
  padding:8px!important;
  align-items:center!important;
  justify-content:center!important;
  transform:translateY(-50%)!important;
  border:1px solid #9ca3af!important;
  border-radius:50%!important;
  background:#fff!important;
  color:#6b7280!important;
  box-shadow:none!important;
  opacity:1!important;
  visibility:visible!important;
  z-index:2;
}
.elementor-widget-sp_portal_block .sp-elementor-portal-widget button:is(.sp-auth-password-toggle,.sp-password-toggle):hover,
button:is(.sp-auth-password-toggle,.sp-password-toggle):hover{
  border-color:#6b7280!important;
  background:#fff!important;
  color:#4b5563!important;
  transform:translateY(-50%)!important;
}
.sp-auth-password-toggle svg,.sp-password-toggle svg{width:20px!important;height:20px!important;flex:none}

/* Forms keep clear breathing room between fields and actions. */
.sp-auth-form,.sp-registration-form{row-gap:18px!important}
.sp-auth-form :is(.sp-auth-submit,button[type=submit]),
.sp-registration-form :is(.sp-registration-submit,button[type=submit]){margin-top:6px!important}
.sp-auth-reset-card{text-align:center}
.sp-auth-reset-card .sp-auth-form{text-align:left}
.sp-auth-logout-page .sp-auth-logout{
  max-width:none;
  margin:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

/* Footer cookie text has exactly the same static link appearance and no action. */
.sp-elementor-site-footer .sp-footer-cookie-label{
  display:inline;
  animation:none!important;
  transition:none!important;
  transform:none!important;
  opacity:1!important;
}

/* Profile: retain Elementor colours while fixing layout and alignment. */
.sp-editable-page-shell:has(.sp-elementor-portal-profile){
  max-width:1380px!important;
}
.sp-profile-page{
  width:min(1320px,calc(100vw - 32px))!important;
}
.elementor-widget-sp_portal_block .sp-elementor-portal-widget .sp-profile-page>.student-dashboard-card,
.sp-profile-page>.student-dashboard-card{
  border:0!important;
  box-shadow:none!important;
}
.sp-profile-save-notice{
  margin:0 0 22px!important;
  padding:12px 16px!important;
  border:0!important;
  border-radius:14px!important;
  background:#e8f5cf!important;
  color:#123b37!important;
  font-weight:800!important;
}
.sp-profile-save-notice.is-error{
  background:#ffe5e2!important;
  color:#7b2824!important;
}
.sp-profile-page :is(input:not([type=checkbox]):not([type=radio]),select,textarea){
  line-height:1.35!important;
}
.sp-profile-page :is(input:not([type=checkbox]):not([type=radio]),select){
  min-height:48px!important;
  height:auto!important;
  padding-top:11px!important;
  padding-bottom:11px!important;
}
.sp-profile-contact-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:14px;
}
.sp-profile-contact-grid p{min-width:0;margin-top:0}
.sp-profile-contact-grid input{width:100%}
.sp-profile-main-fields{max-width:780px!important}
.sp-profile-details{width:100%;max-width:none!important}
.sp-profile-goals{margin-top:12px}
.sp-profile-goal-options{
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  max-width:100%;
  padding:4px 0;
  overflow:visible;
}
.sp-profile-goal{
  display:inline-flex!important;
  flex:0 0 auto;
  align-items:center!important;
  gap:8px;
  margin:8px 16px 8px 0!important;
  white-space:nowrap;
  line-height:1.3;
}
.sp-profile-goal input[type=checkbox]{flex:0 0 auto;margin:0!important;vertical-align:middle}
.sp-profile-avatar-actions{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:16px;
}
.sp-profile-photo-select{
  display:inline-flex!important;
  min-height:48px;
  padding:12px 22px!important;
  align-items:center;
  justify-content:center;
  border:0!important;
  border-radius:var(--spw-button-radius,999px)!important;
  background:var(--spw-button-bg,#1e2b43)!important;
  color:var(--spw-button-text,#fff)!important;
  cursor:pointer;
  font-weight:700;
  line-height:1.2;
}
.elementor-widget-sp_portal_block .sp-elementor-portal-widget button.sp-profile-icon-remove,
.sp-profile-page button.sp-profile-icon-remove{
  display:inline-flex!important;
  width:32px!important;
  min-width:32px!important;
  height:32px!important;
  min-height:32px!important;
  margin:0!important;
  padding:0!important;
  align-items:center!important;
  justify-content:center!important;
  border:1px solid #111!important;
  border-radius:50%!important;
  background:transparent!important;
  color:#111!important;
  box-shadow:none!important;
  font-size:22px!important;
  font-weight:400!important;
  line-height:1!important;
  transform:none!important;
}
.sp-profile-page .sp-language-row .sp-profile-icon-remove{justify-self:center}
.sp-profile-logout-form{
  display:flex;
  max-width:860px;
  justify-content:center;
  margin-top:14px;
  padding-top:22px;
  border-top:1px solid var(--spw-card-border,#e5e7eb);
}
.sp-profile-logout-form button[type=submit]{margin-inline:auto!important}

@media(max-width:680px){
  .sp-profile-page{width:calc(100vw - 20px)!important}
  .sp-profile-contact-grid{grid-template-columns:1fr}
  .sp-profile-goal-options{
    display:grid;
    grid-template-columns:1fr;
  }
}


/* release-3-1-8.css */
/* 3.1.8 — brand layer matched to the live homepage. */
:root{--sp-brand-ink:#123b37;--sp-brand-text:#151515;--sp-brand-cream:#fff6e7;--sp-brand-lilac:#e8e0f2;--sp-brand-yellow:#f1da89;--sp-brand-mint:#b8dcd8;--sp-brand-paper:#fff;--sp-brand-line:#d8d5cc;--sp-brand-radius:25px}
.sp-design-system-page,.sp-class-only-page,.sp-board-only-page{color:var(--sp-brand-text);font-family:"Google Sans",Arial,sans-serif}
.sp-elementor-portal-widget{--spw-heading:var(--sp-brand-text);--spw-text:var(--sp-brand-text);--spw-accent:var(--sp-brand-ink);--spw-button-bg:var(--sp-brand-ink);--spw-button-text:#fff;--spw-button-border:var(--sp-brand-ink);--spw-button-hover-bg:#fff;--spw-button-hover-text:var(--sp-brand-ink);--spw-button-radius:999px;--spw-card-radius:25px;--spw-card-border:var(--sp-brand-line);--spw-field-radius:14px}
.sp-ep-hero{border:0!important;border-radius:25px!important;background:var(--sp-brand-lilac)!important}.sp-ep-hero:after{background:var(--sp-brand-yellow)!important}.sp-ep-title .elementor-heading-title,.sp-ep-title{color:var(--sp-brand-text)!important;font-weight:500!important}.sp-ep-kicker,.sp-ep-kicker .elementor-heading-title{color:var(--sp-brand-ink)!important}.sp-ep-function-card{border:0!important;border-radius:25px!important;box-shadow:none!important}.sp-ep-help{border-radius:25px!important;background:var(--sp-brand-yellow)!important}
.sp-student-dashboard,.sp-teacher-dashboard,.sp-teacher-library{color:var(--sp-brand-text)!important}.sp-teacher-hero,.sp-dashboard-overview{border:0!important;border-radius:25px!important;background:var(--sp-brand-lilac)!important;box-shadow:none!important}.sp-teacher-hero h1,.sp-student-dashboard h1,.sp-teacher-library h1{color:var(--sp-brand-text)!important;font-weight:500!important;letter-spacing:-.035em}.sp-teacher-eyebrow{color:var(--sp-brand-ink)!important}.sp-teacher-primary,.sp-teacher-picker button,.sp-student-dashboard button[type=submit],.sp-teacher-library button[type=submit]{border:1px solid var(--sp-brand-ink)!important;border-radius:999px!important;background:var(--sp-brand-ink)!important;color:#fff!important}.sp-teacher-secondary,.sp-teacher-back{border:1px solid var(--sp-brand-ink)!important;border-radius:999px!important;background:#fff!important;color:var(--sp-brand-ink)!important}.sp-teacher-next,.sp-teacher-students,.sp-teacher-library-homework,.sp-teacher-library-grid section{border:0!important;border-radius:25px!important;background:var(--sp-brand-cream)!important;box-shadow:none!important}.sp-teacher-sections a:nth-child(4n+1){background:var(--sp-brand-lilac)!important}.sp-teacher-sections a:nth-child(4n+2){background:var(--sp-brand-yellow)!important}.sp-teacher-sections a:nth-child(4n+3){background:var(--sp-brand-mint)!important}.sp-teacher-sections a:nth-child(4n+4){background:var(--sp-brand-cream)!important}.sp-teacher-sections a{border:0!important;border-radius:25px!important;color:var(--sp-brand-text)!important;box-shadow:none!important}.sp-teacher-date,.sp-teacher-avatar{background:var(--sp-brand-mint)!important;color:var(--sp-brand-ink)!important}
.student-calendar{border:0!important;border-radius:25px!important;background:#f8f8f4!important;box-shadow:none!important}.student-calendar-title{color:var(--sp-brand-text)!important;font-size:clamp(34px,4vw,54px)!important;font-weight:500!important;letter-spacing:-.04em!important}.student-calendar-week{color:#575757!important}.student-calendar-nav{align-items:center!important}.student-calendar-nav>a,.sp-calendar-date-form>button{min-height:46px!important;border:1px solid var(--sp-brand-ink)!important;border-radius:999px!important;background:#fff!important;color:var(--sp-brand-ink)!important;font-weight:700!important}.student-calendar-nav>a[href*="week=0"],.sp-calendar-date-form>button{background:var(--sp-brand-ink)!important;color:#fff!important}.sp-calendar-date-form{display:inline-flex;align-items:center;gap:8px}.sp-calendar-jump{display:flex!important;width:auto!important;height:46px!important;padding:0 12px!important;border:1px solid #cfc8dd!important;border-radius:16px!important;background:var(--sp-brand-lilac)!important;box-shadow:none!important}.sp-calendar-jump input{width:140px;border:0!important;background:transparent!important;color:var(--sp-brand-text)!important;font:inherit;font-size:13px;cursor:text}.student-calendar-grid-view{border:1px solid var(--sp-brand-text)!important;border-radius:25px!important;background:#fff!important}.student-calendar-grid-day-header{background:var(--sp-brand-cream)!important;color:var(--sp-brand-text)!important}.student-slot-lesson{border-color:#a99ac5!important;border-radius:12px!important;background:var(--sp-brand-lilac)!important;color:var(--sp-brand-text)!important;font-size:11px!important;line-height:1.2!important;font-weight:650!important;overflow:hidden}.student-slot-free{border-color:#8bbab5!important;border-radius:12px!important;background:var(--sp-brand-mint)!important;color:var(--sp-brand-ink)!important}.student-slot-google-event,.student-slot-manual-block{border-radius:12px!important;background:var(--sp-brand-cream)!important}
.sp-class-workspace{background:#f8f7f2!important}.sp-class-sidebar,.sp-class-topbar{border-color:#dedbd1!important;background:var(--sp-brand-cream)!important}.sp-class-sidebar a,.sp-class-sidebar button{border:0!important;border-radius:15px!important;background:#fff!important;color:var(--sp-brand-ink)!important}.sp-class-sidebar a:nth-child(4n+1),.sp-class-sidebar button:nth-child(4n+1){background:var(--sp-brand-lilac)!important}.sp-class-sidebar a:nth-child(4n+2),.sp-class-sidebar button:nth-child(4n+2){background:var(--sp-brand-yellow)!important}.sp-class-sidebar a:nth-child(4n+3),.sp-class-sidebar button:nth-child(4n+3){background:var(--sp-brand-mint)!important}.sp-class-topbar nav button{border-radius:999px!important;color:var(--sp-brand-text)!important}.sp-class-topbar nav button.is-active{background:var(--sp-brand-ink)!important;color:#fff!important}.sp-current-lesson,.sp-class-materials,.sp-class-placeholder,.sp-class-call-card{border:0!important;border-radius:25px!important;box-shadow:none!important}.sp-current-lesson{background:#fff!important}.sp-current-lesson h1,.sp-class-materials h1{color:var(--sp-brand-text)!important;font-weight:500!important;letter-spacing:-.03em}.sp-class-overlay-dialog{border:0!important;border-radius:25px!important}.sp-class-chat>header{background:var(--sp-brand-lilac)!important}.sp-chat-send{background:var(--sp-brand-ink)!important;color:#fff!important}.sp-chat-compose>button:not(.sp-chat-send){background:var(--sp-brand-cream)!important;color:var(--sp-brand-ink)!important}.sp-class-dictionary>header{background:var(--sp-brand-yellow)!important}.sp-class-dictionary form button{background:var(--sp-brand-ink)!important;color:#fff!important}.sp-dictionary-words>div{border-color:#dedbd1!important}.sp-selection-to-dictionary{position:fixed;z-index:10020;padding:8px 13px;border:0;border-radius:999px;background:var(--sp-brand-ink);color:#fff;font:inherit;font-size:12px;font-weight:750;box-shadow:0 8px 22px rgba(18,59,55,.22);cursor:pointer}.sp-add-dictionary-word{display:inline-grid;place-items:center;width:24px;height:24px;margin-left:7px;padding:0;border:1px solid var(--sp-brand-mint);border-radius:50%;background:#edf7f5;color:var(--sp-brand-ink);font-weight:800;cursor:pointer}
@media(max-width:760px){.student-calendar{border-radius:25px!important}.student-calendar-nav{flex-wrap:wrap}.sp-calendar-date-form{order:4;width:100%}.sp-calendar-jump{flex:1!important}.sp-calendar-jump input{width:100%}.student-slot-lesson{font-size:10px!important}}
.sp-chat-title-icon,.sp-chat-compose button{display:grid;place-items:center}.sp-chat-title-icon svg,.sp-chat-compose button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.sp-chat-title-icon{width:44px;height:44px;border-radius:15px;background:var(--sp-brand-mint);color:var(--sp-brand-ink)}
.sp-class-sidebar a,.sp-class-sidebar button{display:grid!important;place-items:center!important}.sp-class-sidebar svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.sp-class-sidebar .sp-timer-tool{position:relative}.sp-class-sidebar .sp-timer-tool [data-timer-mini]{position:absolute;right:-4px;bottom:-5px;min-width:38px;padding:2px 5px;border-radius:999px;background:var(--sp-brand-ink);color:#fff;font-size:9px;line-height:1.2}.sp-vocabulary-exercise [data-add-word]{display:grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid var(--sp-brand-ink);border-radius:50%;background:#fff;color:var(--sp-brand-ink);font-size:19px;font-weight:700;line-height:1}.sp-vocabulary-exercise [data-add-word]:not(:disabled):hover{background:var(--sp-brand-ink);color:#fff}.sp-vocabulary-exercise [data-add-all-words]{border:1px solid var(--sp-brand-ink);border-radius:999px;background:#fff;color:var(--sp-brand-ink);font-weight:700}

/* 3.2.2 schedule essentials are duplicated here deliberately: this long-lived asset is always loaded. */
.student-calendar-nav>a,.sp-calendar-date-form>button,.student-calendar-nav>a[href*="week=0"]{min-height:46px!important;padding:0 17px!important;border:1.5px solid #191918!important;border-radius:999px!important;background:#fff!important;color:#191918!important;box-shadow:none!important;font-size:13px!important;font-weight:700!important;text-decoration:none!important}.sp-calendar-date-form{display:inline-flex!important;align-items:center!important;gap:8px!important;padding:5px!important;border:1.5px solid #191918!important;border-radius:18px!important;background:#fff!important}.sp-calendar-jump{display:flex!important;align-items:center!important;gap:9px!important;height:44px!important;padding:0 10px!important;border:0!important;border-radius:13px!important;background:#fff6e7!important;box-shadow:none!important}.sp-calendar-date-icon{display:grid;place-items:center;width:27px;height:27px;border-radius:9px;background:#f1da89;color:#191918}.sp-calendar-date-icon svg,.sp-calendar-timezone-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.sp-calendar-jump input{width:132px!important;border:0!important;background:transparent!important;color:#191918!important;font-size:13px!important;font-weight:650!important}.student-slot-lesson,.student-slot-lesson *{color:#111!important}.student-slot-lesson{font-size:12px!important;line-height:1.16!important;font-weight:700!important;overflow-wrap:anywhere!important}.sp-calendar-timezone{display:inline-flex!important;align-items:center!important;gap:8px!important;margin:0 0 18px!important;padding:8px 12px 8px 8px!important;border:1px solid #191918!important;border-radius:999px!important;background:#fff!important;color:#111!important;font-size:13px!important}.sp-calendar-timezone-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#b8dcd8;color:#123b37}.sp-calendar-timezone a{padding:8px 11px!important;border-radius:999px!important;background:#123b37!important;color:#fff!important;font-weight:700!important;text-decoration:none!important}#sp-lesson-rules-consent,#sp-lesson-rules-consent a{color:#282826!important}#sp-lesson-rules-consent a{font-weight:800!important}.sp-design-system-page [id$="modal"] button[onclick^="spClose"]{display:grid!important;place-items:center!important;width:38px!important;height:38px!important;padding:0 0 3px!important;border:1.5px solid #191918!important;border-radius:50%!important;background:#fff!important;color:#191918!important;font-size:25px!important;line-height:1!important;animation:none!important;transition:none!important}.sp-design-system-page [id$="modal"] h3{color:#111!important}


/* release-3-2-0.css */
/* 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}}


/* release-3-2-1.css */
/* Schedule refinement 3.2.1 */
.student-calendar-nav{display:flex!important;align-items:center!important;gap:10px!important;flex-wrap:wrap!important}.student-calendar-nav>a,.sp-calendar-date-form>button{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:46px!important;padding:0 17px!important;border:1.5px solid #191918!important;border-radius:999px!important;background:#fff!important;color:#191918!important;box-shadow:none!important;font-size:13px!important;font-weight:700!important;line-height:1!important;text-decoration:none!important}.student-calendar-nav>a[href*="week=0"],.student-calendar-nav>a:hover,.sp-calendar-date-form>button:hover{border-color:#191918!important;background:#fff!important;color:#191918!important;box-shadow:0 6px 16px rgba(18,59,55,.1)!important}.sp-calendar-date-form{display:inline-flex!important;align-items:center!important;gap:8px!important;padding:5px!important;border:1.5px solid #191918!important;border-radius:18px!important;background:#fff!important}.sp-calendar-jump{display:flex!important;align-items:center!important;gap:9px!important;width:auto!important;height:44px!important;padding:0 10px!important;border:0!important;border-radius:13px!important;background:var(--sp32-cream)!important;box-shadow:none!important;cursor:text!important}.sp-calendar-date-icon{display:grid;place-items:center;width:27px;height:27px;flex:0 0 27px;border-radius:9px;background:var(--sp32-yellow);color:#191918}.sp-calendar-date-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.sp-calendar-jump input{width:132px!important;min-height:36px!important;padding:0!important;border:0!important;outline:0!important;background:transparent!important;color:#191918!important;font:inherit!important;font-size:13px!important;font-weight:650!important}.sp-calendar-date-form>button{min-height:44px!important;padding-inline:18px!important}
.student-slot-lesson{color:#111!important;font-size:12px!important;line-height:1.16!important;font-weight:700!important;overflow:hidden!important;overflow-wrap:anywhere!important}.student-slot-lesson *{color:#111!important}.student-slot-lesson .student-slot-time{font-size:10px!important;line-height:1.1!important;font-weight:600!important}.student-calendar-title,.student-calendar h1,.student-calendar h2,.student-calendar h3{color:#111!important}
.sp-calendar-timezone{display:inline-flex!important;align-items:center!important;gap:8px!important;margin:0 0 18px!important;padding:8px 12px 8px 8px!important;border:1px solid #191918!important;border-radius:999px!important;background:#fff!important;color:#111!important;font-size:13px!important;line-height:1!important}.sp-calendar-timezone-icon{display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;border-radius:50%;background:var(--sp32-mint);color:#123b37}.sp-calendar-timezone-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.sp-calendar-timezone strong{color:#111!important}.sp-calendar-timezone a{display:inline-flex!important;align-items:center!important;min-height:30px!important;padding:0 10px!important;border-radius:999px!important;background:var(--sp32-ink)!important;color:#fff!important;font-weight:700!important;text-decoration:none!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[onclick^="spClose"]{position:absolute!important;z-index:8!important;top:14px!important;right:14px!important;display:grid!important;place-items:center!important;width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;padding:0 0 3px!important;border:1.5px solid #191918!important;border-radius:50%!important;background:#fff!important;color:#191918!important;box-shadow:none!important;font-family:Arial,sans-serif!important;font-size:25px!important;font-weight:400!important;line-height:1!important;animation:none!important;transition:none!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[onclick^="spClose"]:hover,.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[onclick^="spClose"]:focus{background:#fff!important;color:#111!important;transform:none!important;filter:none!important;animation:none!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) h3{padding-right:52px!important;color:#111!important;font-weight:600!important}#sp-lesson-modal h3{color:#111!important}#sp-lesson-rules-consent{border-color:#c8c3b6!important;background:var(--sp32-cream)!important;color:#282826!important}#sp-lesson-rules-consent span,#sp-lesson-rules-consent a{color:#282826!important}#sp-lesson-rules-consent a{font-weight:800!important;text-decoration:underline!important;text-decoration-thickness:1.5px!important;text-underline-offset:2px!important}
@media(max-width:760px){.student-calendar-nav>a{flex:1 1 calc(50% - 5px)!important}.sp-calendar-date-form{order:4;width:100%!important}.sp-calendar-jump{flex:1!important}.sp-calendar-jump input{width:100%!important}.sp-calendar-date-form>button{flex:0 0 auto!important}.student-slot-lesson{font-size:11px!important}.sp-calendar-timezone{width:100%!important;flex-wrap:wrap!important;border-radius:18px!important}}


/* schedule-3-2-5.css */
/* Student Portal 3.2.5 — definitive schedule UI. */
:root {
    --sp325-black: #191918;
    --sp325-green: #123b37;
    --sp325-cream: #fff6e7;
    --sp325-yellow: #f1da89;
    --sp325-mint: #b8dcd8;
}

.student-calendar .student-calendar-nav {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
}

.student-calendar .student-calendar-nav > a,
.student-calendar .sp-calendar-date-form > button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 46px !important;
    padding: 0 18px !important;
    border: 1.5px solid var(--sp325-black) !important;
    border-radius: 999px !important;
    background: #fff !important;
    color: var(--sp325-black) !important;
    box-shadow: none !important;
    font: inherit !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    cursor: pointer !important;
}

.student-calendar .student-calendar-nav > a:hover,
.student-calendar .student-calendar-nav > a:focus-visible,
.student-calendar .sp-calendar-date-form > button:hover,
.student-calendar .sp-calendar-date-form > button:focus-visible {
    border-color: var(--sp325-black) !important;
    background: #fff !important;
    color: var(--sp325-black) !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 7px 18px rgba(18, 59, 55, .12) !important;
}

.student-calendar .sp-calendar-date-form {
    display: grid !important;
    grid-template-columns: minmax(190px, 1fr) !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 5px !important;
    border: 1.5px solid var(--sp325-black) !important;
    border-radius: 18px !important;
    background: #fff !important;
    box-shadow: 0 7px 20px rgba(18, 59, 55, .07) !important;
}

/* The date is submitted with Enter; no redundant visible action button. */
.student-calendar .sp-calendar-date-form > .sp-calendar-enter-submit {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: -1px !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
}

.student-calendar .sp-calendar-jump {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 44px !important;
    padding: 0 12px !important;
    border: 0 !important;
    border-radius: 13px !important;
    background: var(--sp325-cream) !important;
    box-shadow: none !important;
}

.student-calendar .sp-calendar-date-icon {
    display: grid !important;
    place-items: center !important;
    width: 29px !important;
    height: 29px !important;
    flex: 0 0 29px !important;
    border-radius: 9px !important;
    background: var(--sp325-yellow) !important;
    color: var(--sp325-black) !important;
}

.student-calendar .sp-calendar-date-icon svg,
.student-calendar .sp-calendar-timezone-icon svg {
    width: 17px !important;
    height: 17px !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 1.8 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
}

.student-calendar .sp-calendar-jump input[type="date"] {
    width: 100% !important;
    min-width: 138px !important;
    min-height: 38px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    outline: 0 !important;
    background: transparent !important;
    color: var(--sp325-black) !important;
    font: inherit !important;
    font-size: 14px !important;
    font-weight: 650 !important;
    cursor: pointer !important;
}

.student-calendar .student-slot-lesson,
.student-calendar .student-slot-lesson *,
.student-calendar [class*="student-slot-"][class*="lesson"],
.student-calendar [class*="student-slot-"][class*="lesson"] * {
    color: #000 !important;
    -webkit-text-fill-color: #000 !important;
}

.student-calendar .student-slot-lesson {
    font-size: 13px !important;
    line-height: 1.13 !important;
    font-weight: 700 !important;
    overflow: hidden !important;
    overflow-wrap: anywhere !important;
}

.student-calendar .student-slot-lesson .student-slot-time {
    font-size: 10.5px !important;
    line-height: 1.1 !important;
}

.student-calendar .sp-freeze-day {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    padding: 14px 8px !important;
    border: 1px solid #86b9c9 !important;
    border-radius: 14px !important;
    background: rgba(222, 244, 247, .88) !important;
    color: #123b37 !important;
    writing-mode: vertical-rl !important;
    text-orientation: mixed !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    letter-spacing: .04em !important;
    z-index: 55 !important;
}

.student-calendar .sp-freeze-day-label{writing-mode:horizontal-tb!important;text-orientation:mixed!important}

.student-calendar .sp-calendar-timezone {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 0 0 20px !important;
    padding: 7px 8px !important;
    border: 1.5px solid var(--sp325-black) !important;
    border-radius: 999px !important;
    background: #fff !important;
    color: var(--sp325-black) !important;
    font-size: 14px !important;
}

.student-calendar .sp-calendar-timezone > span,
.student-calendar .sp-calendar-timezone > strong {
    color: var(--sp325-black) !important;
}

.student-calendar .sp-calendar-timezone-icon {
    display: grid !important;
    place-items: center !important;
    width: 32px !important;
    height: 32px !important;
    flex: 0 0 32px !important;
    border-radius: 50% !important;
    background: var(--sp325-mint) !important;
    color: var(--sp325-green) !important;
}

.student-calendar .sp-calendar-timezone > a {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 34px !important;
    padding: 0 13px !important;
    border: 1px solid var(--sp325-black) !important;
    border-radius: 999px !important;
    background: #fff !important;
    color: var(--sp325-black) !important;
    font-weight: 700 !important;
    text-decoration: none !important;
}

: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[onclick^="spClose"],
: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 > button[style*="position:absolute"] {
    position: absolute !important;
    z-index: 20 !important;
    top: 14px !important;
    right: 14px !important;
    display: grid !important;
    place-items: center !important;
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    min-height: 40px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1.5px solid var(--sp325-black) !important;
    border-radius: 50% !important;
    background: #fff !important;
    color: transparent !important;
    box-shadow: none !important;
    font-family: Arial, sans-serif !important;
    font-size: 25px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    text-align: center !important;
    animation: none !important;
    transition: none !important;
}

: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[onclick^="spClose"]::before,
: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 > button[style*="position:absolute"]::before {
    content: "×" !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    color: var(--sp325-black) !important;
    font-family: Arial, sans-serif !important;
    font-size: 25px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    transform: translate(-50%, -52%) !important;
}

: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[onclick^="spClose"]:is(:hover,:focus,:active) {
    border-color: var(--sp325-black) !important;
    background: #fff !important;
    color: transparent !important;
    transform: none !important;
    filter: none !important;
    animation: none !important;
}

/* All copy inside schedule dialogs stays black, regardless of theme/Elementor rules. */
: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,
: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) :is(h1,h2,h3,h4,h5,p,label,span,strong,small,li,a) {
    color: #000 !important;
    -webkit-text-fill-color: #000 !important;
}

/* Branded dialog actions; the white outlined treatment is reserved for ×. */
: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([onclick^="spClose"]):not([style*="position:absolute"]),
: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) a[id] {
    border: 1.5px solid var(--sp325-green) !important;
    border-radius: 999px !important;
    background: var(--sp325-green) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    box-shadow: none !important;
    font-weight: 700 !important;
}

/* Related student actions sit together on one line. */
#sp-student-lesson-content {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    align-items: stretch !important;
}

#sp-student-lesson-content > * {
    grid-column: 1 / -1;
}

#sp-student-lesson-content > #sp-student-reschedule-btn {
    grid-column: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 46px !important;
    margin: 0 !important;
}

#sp-student-lesson-content > #sp-student-reschedule-btn + form {
    grid-column: 2 !important;
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
}

#sp-student-lesson-content > #sp-student-reschedule-btn + form > button {
    width: 100% !important;
    min-height: 46px !important;
}

#sp-lesson-actions-modal form:has(input[name="status"][value="cancelled"]) button {
    border-color: var(--sp325-green) !important;
    background: var(--sp325-green) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}

#sp-trial-booking-notice-modal > div > div:has(> button + button) > button:last-child,
#sp-subscription-conflicts-modal > div > div:has(> button + button) > button:last-child {
    border-color: var(--sp325-black) !important;
    background: #fff !important;
    color: var(--sp325-black) !important;
    -webkit-text-fill-color: var(--sp325-black) !important;
}

#sp-trial-booking-notice-modal > div > div:has(> button + button),
#sp-subscription-conflicts-modal > div > div:has(> button + button) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: stretch !important;
}

#sp-lesson-modal h3,
#sp-lesson-modal label,
#sp-lesson-modal form,
#sp-lesson-modal form * {
    color: var(--sp325-black) !important;
}

#sp-lesson-modal h3 {
    padding-right: 54px !important;
    font-size: 25px !important;
    font-weight: 650 !important;
}

#sp-lesson-rules-consent {
    border-color: #b9b39f !important;
    background: var(--sp325-cream) !important;
    color: #242421 !important;
}

#sp-lesson-rules-consent span,
#sp-lesson-rules-consent a {
    color: #242421 !important;
}

#sp-lesson-rules-consent a {
    font-weight: 800 !important;
    text-decoration: underline !important;
    text-decoration-thickness: 1.5px !important;
    text-underline-offset: 2px !important;
}

@media (max-width: 760px) {
    .student-calendar .student-calendar-nav > a {
        flex: 1 1 calc(50% - 5px) !important;
    }

    .student-calendar .sp-calendar-date-form {
        order: 4 !important;
        width: 100% !important;
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .student-calendar .sp-calendar-jump input[type="date"] {
        min-width: 0 !important;
    }

    .student-calendar .sp-calendar-timezone {
        width: 100% !important;
        flex-wrap: wrap !important;
        border-radius: 18px !important;
    }

    .student-calendar .student-slot-lesson {
        font-size: 11.5px !important;
    }

    #sp-student-lesson-content {
        gap: 8px !important;
    }

    #sp-student-lesson-content > #sp-student-reschedule-btn,
    #sp-student-lesson-content > #sp-student-reschedule-btn + form > button {
        min-height: 44px !important;
        padding-inline: 10px !important;
        font-size: 12px !important;
    }
}


/* dashboard-3-2-9.css */
/* Student Portal 3.2.9 — student dashboard matched to the FAQ visual language. */
.sp-student-dashboard {
    --sp329-black: #151515;
    --sp329-emerald: #123b37;
    --sp329-mint: #b8dcd8;
    --sp329-beige: #fff6e7;
    --sp329-line: #d8d5cc;
    color: var(--sp329-black) !important;
}

/* 3.3.5 final non-overridable dashboard colour contract. */
body .sp-student-dashboard #sp-dashboard-lessons {
    background: #e8e0f2 !important;
}
body .sp-student-dashboard #sp-dashboard-lessons .sp-dashboard-lesson {
    background: #fff !important;
}
body .sp-student-dashboard #sp-dashboard-hours {
    background: #b8dcd8 !important;
}
body .sp-student-dashboard #sp-dashboard-hours :is(.sp-dashboard-details,.sp-dashboard-details>summary,.sp-dashboard-details[open]>summary,.sp-dashboard-details-state) {
    background: #fff !important;
}
body .sp-student-dashboard #sp-waitlist {
    background: #fff6e7 !important;
}
body .sp-student-dashboard #sp-dashboard-payment > .sp-month-payment > form > button {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: max-content !important;
    margin: 22px auto 0 !important;
}
body .sp-student-dashboard :is(button,[type="submit"],.sp-calendar-sync-button--copy),
body .sp-student-dashboard :is(button,[type="submit"],.sp-calendar-sync-button--copy) * {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}

/* No purple copy: regular copy is black; emerald actions carry white copy. */
.sp-student-dashboard :is(h1,h2,h3,h4,h5,h6,p,span,strong,small,label,summary,a,li,dt,dd,em,b) {
    color: var(--sp329-black) !important;
    -webkit-text-fill-color: var(--sp329-black) !important;
}

.sp-student-dashboard :is(button,[type="submit"],.sp-dashboard-class-cta,.sp-calendar-sync-button--copy) {
    border-color: var(--sp329-emerald) !important;
    background: var(--sp329-emerald) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}

.sp-student-dashboard :is(button,[type="submit"],.sp-dashboard-class-cta,.sp-calendar-sync-button--copy) * {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}

/* FAQ-style centred section navigation. */
.sp-student-dashboard .sp-dashboard-jump {
    position: relative !important;
    top: auto !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    margin: 0 auto 26px !important;
    padding: 10px !important;
    border: 0 !important;
    border-radius: 25px !important;
    background: var(--sp329-beige) !important;
    box-shadow: 0 10px 30px rgba(18,59,55,.06) !important;
    overflow: visible !important;
}

.sp-student-dashboard .sp-dashboard-jump > a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 42px !important;
    min-width: 0 !important;
    padding: 9px 16px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: #f1da89 !important;
    color: var(--sp329-black) !important;
    -webkit-text-fill-color: var(--sp329-black) !important;
    text-align: center !important;
    text-decoration: none !important;
}

.sp-student-dashboard .sp-dashboard-jump > a:is(:hover,:focus-visible) {
    border-color: transparent !important;
    background: #f1da89 !important;
    color: var(--sp329-black) !important;
    transform: none !important;
    box-shadow: none !important;
}

/* Nearest lessons: mint section, white lesson cards. */
.sp-student-dashboard .sp-dashboard-overview {
    background: #e8e0f2 !important;
}

.sp-student-dashboard .sp-dashboard-overview .sp-dashboard-lesson {
    border-color: rgba(18,59,55,.15) !important;
    background: #fff !important;
    color: var(--sp329-black) !important;
}

/* Subscription: beige shell and visibly different open/closed states. */
.sp-student-dashboard .sp-dashboard-subscription {
    background: var(--sp329-mint) !important;
}

.sp-student-dashboard .sp-dashboard-details {
    border: 1px solid rgba(18,59,55,.13) !important;
    border-radius: 19px !important;
    background: rgba(255,255,255,.62) !important;
    overflow: hidden !important;
}

.sp-student-dashboard .sp-dashboard-details > summary {
    position: relative !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) auto 38px !important;
    align-items: center !important;
    gap: 12px !important;
    min-height: 64px !important;
    margin: 0 !important;
    padding: 13px 15px 13px 18px !important;
    border: 0 !important;
    border-radius: 19px !important;
    background: #fff !important;
    list-style: none !important;
}

.sp-student-dashboard .sp-dashboard-details[open] > summary {
    margin: 0 0 18px !important;
    border-bottom: 1px solid rgba(18,59,55,.13) !important;
    border-radius: 19px 19px 0 0 !important;
    background: #fff !important;
}

.sp-student-dashboard .sp-dashboard-details > summary::-webkit-details-marker,
.sp-student-dashboard .sp-freeze-request-details > summary::-webkit-details-marker {
    display: none !important;
}

.sp-student-dashboard .sp-dashboard-details-state {
    padding: 6px 10px !important;
    border-radius: 999px !important;
    background: #fff !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
}

/* Useful links: exact brand sequence, with black primary and secondary copy. */
.sp-student-dashboard .sp-dashboard-navigation-grid > a,
.sp-student-dashboard .sp-dashboard-navigation-grid > a.sp-dashboard-class-cta {
    border: 0 !important;
    background: #e8e0f2 !important;
    color: var(--sp329-black) !important;
    -webkit-text-fill-color: var(--sp329-black) !important;
    box-shadow: none !important;
}

.sp-student-dashboard .sp-dashboard-navigation-grid > a *,
.sp-student-dashboard .sp-dashboard-navigation-grid > a.sp-dashboard-class-cta * {
    color: var(--sp329-black) !important;
    -webkit-text-fill-color: var(--sp329-black) !important;
}

.sp-student-dashboard .sp-dashboard-navigation-grid > a:is(:hover,:focus-visible) {
    border: 0 !important;
    background: #e8e0f2 !important;
    color: var(--sp329-black) !important;
    transform: none !important;
    box-shadow: none !important;
    filter: none !important;
}

.sp-student-dashboard .sp-dashboard-navigation-grid > a:nth-child(1),
.sp-student-dashboard .sp-dashboard-navigation-grid > a:nth-child(1):is(:hover,:focus-visible) { background:#e8e0f2 !important; }
.sp-student-dashboard .sp-dashboard-navigation-grid > a:nth-child(2),
.sp-student-dashboard .sp-dashboard-navigation-grid > a:nth-child(2):is(:hover,:focus-visible) { background:#f1da89 !important; }
.sp-student-dashboard .sp-dashboard-navigation-grid > a:nth-child(3),
.sp-student-dashboard .sp-dashboard-navigation-grid > a:nth-child(3):is(:hover,:focus-visible) { background:#fff6e7 !important; }
.sp-student-dashboard .sp-dashboard-navigation-grid > a:nth-child(4),
.sp-student-dashboard .sp-dashboard-navigation-grid > a:nth-child(4):is(:hover,:focus-visible) { background:#b8dcd8 !important; }

.sp-student-dashboard .sp-dashboard-details,
.sp-student-dashboard .sp-dashboard-details > summary,
.sp-student-dashboard .sp-dashboard-details[open] > summary {
    background: #fff !important;
}

.sp-student-dashboard .sp-dashboard-details-state--open {
    display: none !important;
}

.sp-student-dashboard .sp-dashboard-details[open] .sp-dashboard-details-state--closed {
    display: none !important;
}

.sp-student-dashboard .sp-dashboard-details[open] .sp-dashboard-details-state--open {
    display: inline-flex !important;
}

/* Draw a clean centred chevron: no glyph dot and no font-metric drift. */
.sp-student-dashboard .sp-dashboard-details > summary::after,
.sp-student-dashboard .sp-freeze-request-details > summary::after {
    content: "" !important;
    position: static !important;
    display: block !important;
    place-self: center !important;
    width: 10px !important;
    height: 10px !important;
    margin: 0 !important;
    border: 0 !important;
    border-right: 2px solid var(--sp329-black) !important;
    border-bottom: 2px solid var(--sp329-black) !important;
    border-radius: 0 !important;
    background: transparent !important;
    transform: translateY(-2px) rotate(45deg) !important;
    transform-origin: center !important;
}

.sp-student-dashboard .sp-dashboard-details[open] > summary::after,
.sp-student-dashboard .sp-freeze-request-details[open] > summary::after {
    transform: translateY(2px) rotate(225deg) !important;
}

.sp-student-dashboard .sp-freeze-request-details > summary {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) 38px !important;
    align-items: center !important;
    min-height: 58px !important;
    padding: 12px 12px 12px 17px !important;
    color: var(--sp329-black) !important;
}

.sp-student-dashboard .sp-dashboard-freeze,
.sp-student-dashboard .sp-dashboard-freeze > .student-dashboard-card {
    background: var(--sp329-mint) !important;
}

.sp-student-dashboard .sp-calendar-sync-reset {
    display: flex !important;
    justify-content: center !important;
    margin: 18px auto 0 !important;
}

.sp-student-dashboard .sp-calendar-sync-reset > button {
    margin: 0 auto !important;
}

.sp-student-dashboard .sp-waitlist {
    background: var(--sp329-beige) !important;
}

/* Keep the white disclosure content visibly separate from the important notice. */
.sp-student-dashboard #sp-dashboard-hours .sp-dashboard-payment-notice {
    display: block !important;
    clear: both !important;
    margin-top: 32px !important;
}

/* Dark buttons always use white labels; no flashing or hover movement. */
.sp-student-dashboard :is(button,[type="submit"],.sp-calendar-sync-button--copy),
.sp-student-dashboard :is(button,[type="submit"],.sp-calendar-sync-button--copy) * {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    animation: none !important;
    transition: none !important;
}

.sp-student-dashboard :is(button,[type="submit"],.sp-calendar-sync-button--copy):is(:hover,:focus,:active) {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    transform: none !important;
    filter: none !important;
    animation: none !important;
}

/* Final colour lock: every genuinely dark dashboard action uses pure white type. */
body .sp-student-dashboard :is(button,[type="submit"],.sp-calendar-sync-button--copy,.sp-pair-class-link),
body .sp-student-dashboard :is(button,[type="submit"],.sp-calendar-sync-button--copy,.sp-pair-class-link) :is(span,strong,small,b,em),
body .sp-student-dashboard [style*="background:#123b37"],
body .sp-student-dashboard [style*="background:#123b37"] *,
body .sp-student-dashboard [style*="background: #123b37"],
body .sp-student-dashboard [style*="background: #123b37"] * {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}

.sp-student-dashboard :is(.sp-calendar-sync-button--apple,.sp-calendar-sync-button--google) {
    color: var(--sp329-black) !important;
    -webkit-text-fill-color: var(--sp329-black) !important;
}

.sp-student-dashboard #sp-dashboard-payment .sp-pair-payments > h3,
.sp-student-dashboard #sp-dashboard-payment .sp-pair-payments form > button {
    display: none !important;
}

.sp-student-dashboard .sp-pair-payment-choices {
    display: grid !important;
    gap: 12px !important;
    margin-top: 22px !important;
    padding-top: 20px !important;
    border-top: 1px solid rgba(18,59,55,.16) !important;
}

.sp-student-dashboard .sp-pair-payment-choices article {
    display: grid !important;
    grid-template-columns: minmax(150px,.7fr) minmax(220px,1fr) auto auto !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 15px !important;
    border-radius: 18px !important;
    background: rgba(255,255,255,.78) !important;
}

.sp-student-dashboard .sp-pair-payment-choices article > div {
    display: grid !important;
    gap: 4px !important;
}

/* Nothing sticks to a neighbouring control or card. */
.sp-student-dashboard :is(form,details,section,article) > button,
.sp-student-dashboard form > :is(button,[type="submit"]),
.sp-student-dashboard .sp-calendar-sync-actions,
.sp-student-dashboard .sp-pair-choice,
.sp-student-dashboard .sp-subscription-pair-tools {
    margin-top: 12px !important;
}

.sp-student-dashboard :is(.sp-calendar-sync-actions,.sp-dashboard-navigation-grid,.sp-dashboard-lessons,.sp-dashboard-subscription-stats) {
    gap: 12px !important;
}

.sp-student-dashboard :is(button,[type="submit"],a.sp-calendar-sync-button) {
    min-height: 44px !important;
    padding-inline: 16px !important;
}

@media (max-width: 700px) {
    .sp-student-dashboard .sp-dashboard-jump {
        justify-content: stretch !important;
    }

    .sp-student-dashboard .sp-dashboard-jump > a {
        flex: 1 1 calc(50% - 5px) !important;
    }

    .sp-student-dashboard .sp-dashboard-details > summary {
        grid-template-columns: minmax(0,1fr) 34px !important;
    }

    .sp-student-dashboard .sp-dashboard-details-state {
        grid-column: 1 !important;
        width: max-content !important;
    }

    .sp-student-dashboard .sp-dashboard-details > summary::after {
        grid-column: 2 !important;
        grid-row: 1 / span 2 !important;
    }

    .sp-student-dashboard .sp-pair-payment-choices article {
        grid-template-columns: 1fr auto !important;
    }

    .sp-student-dashboard .sp-pair-payment-choices article > label,
    .sp-student-dashboard .sp-pair-payment-choices article > div {
        grid-column: 1 / -1 !important;
    }
}


/* dashboard-final-3-3-12.css */
/* Student Portal 3.3.12 — hard locked cabinet targets. */
.sp-student-dashboard {
    --sp-brand-cream: #fff6e7 !important;
    --sp32-cream: #fff6e7 !important;
    --sp329-beige: #fff6e7 !important;
}

/* Every surface intended as beige uses the exact beige of the upper navigation plate. */
body .sp-student-dashboard .sp-dashboard-jump,
body .sp-student-dashboard #sp-waitlist,
body .sp-student-dashboard .sp-waitlist,
body .sp-student-dashboard .sp-pair-choice,
body .sp-student-dashboard .sp-dashboard-navigation-grid > a:nth-child(3) {
    background-color: #fff6e7 !important;
}

/* A real spacer node guarantees a visible mint gap before the important notice. */
body .sp-student-dashboard #sp-dashboard-hours .sp-dashboard-payment-notice-gap {
    display: block !important;
    width: 100% !important;
    height: 32px !important;
    min-height: 32px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

body .sp-student-dashboard #sp-dashboard-hours .sp-dashboard-payment-notice {
    margin: 0 !important;
}

/* Statistic cards need real breathing room; this overrides the legacy 13×14 px rule. */
body .sp-student-dashboard #sp-dashboard-hours .sp-dashboard-subscription-stats > div {
    box-sizing: border-box !important;
    min-height: 104px !important;
    padding: 22px 24px !important;
}

/* Buttons remain visually identical on hover, keyboard focus and press. */
body .sp-student-dashboard :is(button,[type="submit"]),
body .sp-student-dashboard :is(button,[type="submit"]):is(:hover,:focus,:focus-visible,:active) {
    border-color: #123b37 !important;
    background: #123b37 !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    transform: none !important;
    filter: none !important;
    opacity: 1 !important;
    animation: none !important;
    transition: none !important;
}

body .sp-student-dashboard :is(button,[type="submit"]) *,
body .sp-student-dashboard :is(button,[type="submit"]):is(:hover,:focus,:focus-visible,:active) * {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}

/* Emerald controls and every nested label are always pure white. */
body .sp-student-dashboard :is(button,[type="submit"],.sp-calendar-sync-button--copy,.sp-pair-class-link),
body .sp-student-dashboard :is(button,[type="submit"],.sp-calendar-sync-button--copy,.sp-pair-class-link) :is(span,strong,small,b,em,i),
body .sp-student-dashboard :is(button,[type="submit"],.sp-calendar-sync-button--copy,.sp-pair-class-link):is(:hover,:focus,:focus-visible,:active),
body .sp-student-dashboard :is(button,[type="submit"],.sp-calendar-sync-button--copy,.sp-pair-class-link):is(:hover,:focus,:focus-visible,:active) * {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

body .sp-student-dashboard .sp-dashboard-jump > a,
body .sp-student-dashboard .sp-dashboard-jump > a:is(:hover,:focus,:focus-visible,:active) {
    border-color: transparent !important;
    background: #f1da89 !important;
    color: #151515 !important;
    -webkit-text-fill-color: #151515 !important;
    transform: none !important;
    filter: none !important;
    opacity: 1 !important;
    box-shadow: none !important;
    transition: none !important;
}

body .sp-student-dashboard .sp-dashboard-navigation-grid > a,
body .sp-student-dashboard .sp-dashboard-navigation-grid > a:is(:hover,:focus,:focus-visible,:active) {
    color: #151515 !important;
    -webkit-text-fill-color: #151515 !important;
    transform: none !important;
    filter: none !important;
    opacity: 1 !important;
    box-shadow: none !important;
    transition: none !important;
}

body .sp-student-dashboard .sp-dashboard-navigation-grid > a:nth-child(1),
body .sp-student-dashboard .sp-dashboard-navigation-grid > a:nth-child(1):is(:hover,:focus,:focus-visible,:active) { background:#e8e0f2 !important; }
body .sp-student-dashboard .sp-dashboard-navigation-grid > a:nth-child(2),
body .sp-student-dashboard .sp-dashboard-navigation-grid > a:nth-child(2):is(:hover,:focus,:focus-visible,:active) { background:#f1da89 !important; }
body .sp-student-dashboard .sp-dashboard-navigation-grid > a:nth-child(3),
body .sp-student-dashboard .sp-dashboard-navigation-grid > a:nth-child(3):is(:hover,:focus,:focus-visible,:active) { background:#fff6e7 !important; }
body .sp-student-dashboard .sp-dashboard-navigation-grid > a:nth-child(4),
body .sp-student-dashboard .sp-dashboard-navigation-grid > a:nth-child(4):is(:hover,:focus,:focus-visible,:active) { background:#b8dcd8 !important; }

body .sp-student-dashboard :is(.sp-calendar-sync-button--apple,.sp-calendar-sync-button--google),
body .sp-student-dashboard :is(.sp-calendar-sync-button--apple,.sp-calendar-sync-button--google):is(:hover,:focus,:focus-visible,:active) {
    border-color: #123b37 !important;
    background: #fff !important;
    color: #151515 !important;
    -webkit-text-fill-color: #151515 !important;
    transform: none !important;
    filter: none !important;
    opacity: 1 !important;
    box-shadow: none !important;
    transition: none !important;
}

body .sp-student-dashboard :is(.sp-calendar-sync-button--copy,.sp-pair-class-link),
body .sp-student-dashboard :is(.sp-calendar-sync-button--copy,.sp-pair-class-link):is(:hover,:focus,:focus-visible,:active),
body .sp-student-dashboard :is(.sp-calendar-sync-button--copy,.sp-pair-class-link) * {
    background-color: #123b37 !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    transform: none !important;
    filter: none !important;
    opacity: 1 !important;
    transition: none !important;
}

/* Exact requested cream surfaces. */
body .sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid > a:nth-child(3),
body .sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid > a:nth-child(3):is(:hover,:focus,:focus-visible,:active),
body .sp-student-dashboard section#sp-waitlist,
body .sp-student-dashboard section#sp-waitlist:is(:hover,:focus,:focus-visible,:active) {
    background: #fff6e7 !important;
    background-color: #fff6e7 !important;
}

/* Exact requested emerald actions: identical normal, hover, focus and pressed states. */
body .sp-student-dashboard #sp-dashboard-payment > .sp-month-payment > form > button,
body .sp-student-dashboard #sp-dashboard-payment > .sp-month-payment > form > button:is(:hover,:focus,:focus-visible,:active),
body .sp-student-dashboard .sp-calendar-sync-button--copy,
body .sp-student-dashboard .sp-calendar-sync-button--copy:is(:hover,:focus,:focus-visible,:active),
body .sp-student-dashboard .sp-calendar-sync-reset > button,
body .sp-student-dashboard .sp-calendar-sync-reset > button:is(:hover,:focus,:focus-visible,:active),
body .sp-student-dashboard section#sp-waitlist > form > button,
body .sp-student-dashboard section#sp-waitlist > form > button:is(:hover,:focus,:focus-visible,:active) {
    border-color: #123b37 !important;
    background: #123b37 !important;
    background-color: #123b37 !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    transform: none !important;
    filter: none !important;
    opacity: 1 !important;
    box-shadow: none !important;
    animation: none !important;
    transition: none !important;
}

body .sp-student-dashboard #sp-dashboard-payment > .sp-month-payment > form > button *,
body .sp-student-dashboard .sp-calendar-sync-button--copy *,
body .sp-student-dashboard .sp-calendar-sync-reset > button *,
body .sp-student-dashboard section#sp-waitlist > form > button * {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* Make pure white labels visually solid after font antialiasing. */
body .sp-student-dashboard #sp-dashboard-payment > .sp-month-payment > form > button,
body .sp-student-dashboard .sp-calendar-sync-button--copy,
body .sp-student-dashboard .sp-calendar-sync-reset > button,
body .sp-student-dashboard section#sp-waitlist > form > button {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    -webkit-text-stroke: .01px #ffffff !important;
    font-weight: 800 !important;
    text-shadow: 0 0 0 #ffffff !important;
}

/* Absolute colour lock using both HEX and RGB values. */
body .sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid > a:nth-child(3),
body .sp-student-dashboard section#sp-waitlist {
    background: rgb(255, 246, 231) !important;
    background-color: rgb(255, 246, 231) !important;
}

body .sp-student-dashboard #sp-dashboard-payment > .sp-month-payment > form > button,
body .sp-student-dashboard .sp-calendar-sync-button--copy,
body .sp-student-dashboard .sp-calendar-sync-reset > button,
body .sp-student-dashboard section#sp-waitlist > form > button {
    color: rgb(255, 255, 255) !important;
    -webkit-text-fill-color: rgb(255, 255, 255) !important;
    font-weight: 800 !important;
}

/* Remove every visual hover/tap layer inside the cabinet without touching actions. */
body .sp-student-dashboard :is(button,a,[role="button"]),
body .sp-student-dashboard :is(button,a,[role="button"]):is(:hover,:focus,:focus-visible,:active) {
    animation: none !important;
    transition: none !important;
    transform: none !important;
    filter: none !important;
    opacity: 1 !important;
    background-image: none !important;
    -webkit-tap-highlight-color: transparent !important;
}

body .sp-student-dashboard :is(button,a,[role="button"])::before,
body .sp-student-dashboard :is(button,a,[role="button"])::after,
body .sp-student-dashboard :is(button,a,[role="button"]):is(:hover,:focus,:focus-visible,:active)::before,
body .sp-student-dashboard :is(button,a,[role="button"]):is(:hover,:focus,:focus-visible,:active)::after {
    animation: none !important;
    transition: none !important;
    filter: none !important;
    opacity: 0 !important;
    box-shadow: none !important;
    background-image: none !important;
}
/* A private weekly time offered by the teacher. */
.sp-recurring-offers{border:1px solid #d8cbe4!important;background:#fbf8fd!important}.sp-recurring-offers .sp-card-kicker{color:#8064a2!important}.sp-recurring-offer-row{display:grid;grid-template-columns:minmax(190px,.8fr) 1.3fr;gap:18px;align-items:center;margin-top:17px;padding:16px;border-radius:18px;background:#fff}.sp-recurring-offer-row>div{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;align-items:baseline}.sp-recurring-offer-row strong{color:#123b37;font-size:17px}.sp-recurring-offer-row span{color:#8064a2;font-size:19px;font-weight:800}.sp-recurring-offer-row small{grid-column:1/-1;color:#6a7775}.sp-recurring-offer-row form{display:grid;gap:9px;margin:0}.sp-offer-consent{display:flex!important;gap:8px;align-items:flex-start;color:#52605e;font-size:12px}.sp-offer-consent input{width:16px!important;height:16px!important;min-height:0!important;margin-top:1px}.sp-recurring-offer-row button{min-height:44px!important;border-color:#8064a2!important;background:#8064a2!important;color:#fff!important;-webkit-text-fill-color:#fff!important}@media(max-width:680px){.sp-recurring-offer-row{grid-template-columns:1fr}.sp-recurring-offer-row button{width:100%!important}}
/* 3.14.64 — student cabinet: useful links belong to the hero; compact utility pair below. */
body .sp-student-dashboard>.sp-dashboard-navigation{margin:-18px 0 14px!important;padding:18px 20px!important;border:0!important;border-radius:0 0 25px 25px!important;background:#e8e0f2!important;box-shadow:none!important}
body .sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid{grid-template-columns:repeat(auto-fit,minmax(175px,1fr))!important;gap:9px!important}
body .sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid>a{min-height:78px!important;padding:13px 15px!important;border:0!important;border-radius:16px!important;background:#fff!important}
body .sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid>a:nth-child(2n){background:#fff6e7!important}
body .sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid>a:nth-child(3n){background:#b8dcd8!important}
body .sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid>a>b{width:30px!important;height:30px!important;margin:0 0 2px!important;border-radius:9px!important;background:#e8e0f2!important}
body .sp-student-dashboard>.sp-dashboard-jump{margin:0 0 16px!important;padding:4px 0 6px!important;background:transparent!important}
body .sp-student-dashboard>.sp-dashboard-jump>a{border:0!important;background:#f1da89!important}
body .sp-student-dashboard>#sp-dashboard-calendar{display:inline-block!important;width:calc(50% - 7px)!important;margin:0 10px 20px 0!important;vertical-align:top!important}
body .sp-student-dashboard>section#sp-waitlist{display:inline-block!important;width:calc(50% - 7px)!important;margin:0 0 20px!important;padding:20px!important;vertical-align:top!important;border:0!important;border-radius:22px!important;background:#e8f2f7!important}
body .sp-student-dashboard #sp-dashboard-calendar .sp-calendar-sync{min-height:100%!important;margin:0!important;padding:20px!important;border:0!important;border-radius:22px!important;background:#fff6e7!important}
body .sp-student-dashboard .sp-calendar-sync-heading{align-items:flex-start!important;gap:11px!important}.sp-student-dashboard .sp-calendar-sync-heading h3,.sp-student-dashboard section#sp-waitlist h3{margin-bottom:5px!important;font-size:20px!important}.sp-student-dashboard .sp-calendar-sync-heading p,.sp-student-dashboard section#sp-waitlist>p{margin:0 0 14px!important;font-size:12px!important;line-height:1.45!important}
body .sp-student-dashboard .sp-calendar-sync-actions{grid-template-columns:1fr!important;gap:7px!important}.sp-student-dashboard .sp-calendar-sync-button{min-height:40px!important;padding:8px 12px!important;font-size:12px!important}
body .sp-student-dashboard section#sp-waitlist>form{grid-template-columns:1fr 1fr!important;gap:8px!important}.sp-student-dashboard section#sp-waitlist>form>label{font-size:11px!important}.sp-student-dashboard section#sp-waitlist>form>button{grid-column:1/-1!important;min-height:40px!important;padding:8px 12px!important}
@media(max-width:780px){body .sp-student-dashboard>#sp-dashboard-calendar,body .sp-student-dashboard>section#sp-waitlist{display:block!important;width:100%!important;margin:0 0 16px!important}}@media(max-width:520px){body .sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid,body .sp-student-dashboard section#sp-waitlist>form{grid-template-columns:1fr!important}.sp-student-dashboard section#sp-waitlist>form>button{grid-column:auto!important}}
/* 3.14.65 — restore colourful student surfaces and keep both utilities in one row. */
body .sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid>a:nth-child(1){background:#e8e0f2!important}
body .sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid>a:nth-child(2){background:#f1da89!important}
body .sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid>a:nth-child(3){background:#b8dcd8!important}
body .sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid>a:nth-child(4){background:#e8f2f7!important}
body .sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid>a:nth-child(n+5){background:#fff6e7!important}
body .sp-student-dashboard>.sp-dashboard-utilities{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:14px!important;align-items:stretch!important;margin:0 0 20px!important}
body .sp-student-dashboard>.sp-dashboard-utilities>#sp-dashboard-calendar,body .sp-student-dashboard>.sp-dashboard-utilities>section#sp-waitlist{display:block!important;width:auto!important;min-width:0!important;margin:0!important}
body .sp-student-dashboard>.sp-dashboard-utilities>#sp-dashboard-calendar>.sp-calendar-sync{height:100%!important;margin:0!important;padding:20px!important;border:0!important;border-radius:22px!important;background:#e8e0f2!important}
body .sp-student-dashboard>.sp-dashboard-utilities>section#sp-waitlist{padding:20px!important;border:0!important;border-radius:22px!important;background:#e8f2f7!important}
body .sp-student-dashboard>.sp-dashboard-utilities .sp-calendar-sync-button--copy{background:#8064a2!important;background-color:#8064a2!important}
body .sp-student-dashboard>.sp-dashboard-utilities .sp-calendar-sync-reset>button{border-color:#d5b94f!important;background:#f1da89!important;background-color:#f1da89!important;color:#3c351c!important;-webkit-text-fill-color:#3c351c!important}
body .sp-student-dashboard>.sp-dashboard-utilities>section#sp-waitlist>form>button{border-color:#9fcac5!important;background:#b8dcd8!important;background-color:#b8dcd8!important;color:#263b39!important;-webkit-text-fill-color:#263b39!important}
@media(max-width:780px){body .sp-student-dashboard>.sp-dashboard-utilities{grid-template-columns:1fr!important}}
/* 3.14.68 — deep-purple useful-links plate and quiet beige jump buttons. */
body .sp-student-dashboard>.sp-dashboard-navigation{background:#8064a2!important;background-color:#8064a2!important}
body .sp-student-dashboard>.sp-dashboard-jump>a,
body .sp-student-dashboard>.sp-dashboard-jump>a:is(:hover,:focus,:focus-visible,:active){border:0!important;background:#fff6e7!important;background-color:#fff6e7!important;color:#3f3150!important;-webkit-text-fill-color:#3f3150!important;box-shadow:none!important}
/* 3.14.69 — coloured cards/buttons restored; colour belongs to the plates underneath. */
body .sp-student-dashboard>.sp-dashboard-jump{margin:0 0 16px!important;padding:14px!important;border-radius:24px!important;background:#fff6e7!important;background-color:#fff6e7!important;box-shadow:none!important}
body .sp-student-dashboard>.sp-dashboard-jump>a,
body .sp-student-dashboard>.sp-dashboard-jump>a:is(:hover,:focus,:focus-visible,:active){border:0!important;background:#f1da89!important;background-color:#f1da89!important;color:#151515!important;-webkit-text-fill-color:#151515!important}

/* 3.14.70 — one notification-bell design on every portal page. */
body .sp-notification-bell,
body .sp-notification-bell:is(:hover,:focus,:focus-visible,:active){border:0!important;background:#002f2b!important;background-color:#002f2b!important;color:#fff!important;-webkit-text-fill-color:#fff!important;box-shadow:none!important}

/* 3.14.71 — restore the four colourful cards on a Lilac plate and align their contents. */
body .sp-student-dashboard>.sp-dashboard-navigation{
    margin:-18px 0 14px!important;
    padding:18px 20px!important;
    border:0!important;
    border-radius:0 0 25px 25px!important;
    background:#c4b2d7!important;
    background-color:#c4b2d7!important;
    box-shadow:none!important;
}
body .sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:12px!important;
    align-items:stretch!important;
}
body .sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid>a{
    display:grid!important;
    grid-template-columns:46px minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    column-gap:15px!important;
    row-gap:7px!important;
    align-content:center!important;
    align-items:center!important;
    min-height:126px!important;
    padding:20px!important;
    border:0!important;
    border-radius:20px!important;
    text-align:left!important;
}
body .sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid>a>b{
    grid-column:1!important;
    grid-row:1/3!important;
    display:grid!important;
    place-items:center!important;
    align-self:center!important;
    width:46px!important;
    height:46px!important;
    min-width:46px!important;
    min-height:46px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:13px!important;
    background:#fff!important;
    color:#151515!important;
    font-family:Arial,sans-serif!important;
    font-size:24px!important;
    font-weight:500!important;
    line-height:1!important;
    text-align:center!important;
}
body .sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid>a>b svg{display:block!important;width:26px!important;height:26px!important;margin:0!important}
body .sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid>a>strong{
    grid-column:2!important;
    grid-row:1!important;
    align-self:end!important;
    margin:0!important;
    color:#151515!important;
    font-size:18px!important;
    font-weight:800!important;
    line-height:1.22!important;
}
body .sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid>a>span{
    grid-column:2!important;
    grid-row:2!important;
    align-self:start!important;
    margin:0!important;
    color:#5f5a55!important;
    font-size:14px!important;
    font-weight:600!important;
    line-height:1.35!important;
}
@media(max-width:1000px){body .sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:560px){body .sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid{grid-template-columns:1fr!important}body .sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid>a{min-height:104px!important;padding:16px!important}}

/* 3.14.72 — Rules card uses the requested Turquoise. */
body .sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid>a:nth-child(4),
body .sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid>a:nth-child(4):is(:hover,:focus,:focus-visible,:active){background:#add9d6!important;background-color:#add9d6!important}


/* help-button-3-3-18.css */
/* Button-only layer. It deliberately contains no rules for the help plate containers. */
body a.elementor-button[href$="/faq/"],
body a.elementor-button[href*="/faq/?"],
body a.elementor-button[href*="/faq/#"] {
    border: 0 !important;
    border-radius: 999px !important;
    padding: 13px 22px !important;
    background: #123b37 !important;
    box-shadow: none !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    text-shadow: none !important;
    -webkit-text-stroke: 0 transparent !important;
    font-family: "Google Sans", sans-serif !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    line-height: 15px !important;
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    animation: none !important;
    transition: background-color .18s ease !important;
}

body a.elementor-button[href$="/faq/"]:hover,
body a.elementor-button[href$="/faq/"]:focus,
body a.elementor-button[href$="/faq/"]:active,
body a.elementor-button[href*="/faq/?"]:hover,
body a.elementor-button[href*="/faq/?"]:focus,
body a.elementor-button[href*="/faq/?"]:active,
body a.elementor-button[href*="/faq/#"]:hover,
body a.elementor-button[href*="/faq/#"]:focus,
body a.elementor-button[href*="/faq/#"]:active {
    border: 0 !important;
    background: #f1da89 !important;
    box-shadow: none !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    text-shadow: none !important;
    -webkit-text-stroke: 0 transparent !important;
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
}

body a.elementor-button[href*="/faq/"] *,
body a.elementor-button[href*="/faq/"]:hover *,
body a.elementor-button[href*="/faq/"]:focus *,
body a.elementor-button[href*="/faq/"]:active * {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    text-shadow: none !important;
    -webkit-text-stroke: 0 transparent !important;
}

/* My Cabinet: copy the FAQ button exactly, but keep every interaction static. */
body .sp-student-dashboard #sp-dashboard-payment button[type="submit"],
body .sp-student-dashboard #sp-dashboard-freezes button[type="submit"],
body .sp-student-dashboard .sp-calendar-sync-button--copy,
body .sp-student-dashboard .sp-calendar-sync-reset button,
body .sp-student-dashboard #sp-waitlist button,
body .sp-student-dashboard [style*="background:#123b37"] {
    border: 0 !important;
    border-radius: 999px !important;
    padding: 13px 22px !important;
    background: #123b37 !important;
    background-color: #123b37 !important;
    background-image: none !important;
    box-shadow: none !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-family: "Google Sans", sans-serif !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    line-height: 15px !important;
    text-decoration: none !important;
    text-shadow: none !important;
    -webkit-text-stroke: 0 transparent !important;
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    translate: none !important;
    animation: none !important;
    transition: none !important;
}

body .sp-student-dashboard #sp-dashboard-payment button[type="submit"]:hover,
body .sp-student-dashboard #sp-dashboard-payment button[type="submit"]:focus,
body .sp-student-dashboard #sp-dashboard-payment button[type="submit"]:active,
body .sp-student-dashboard #sp-dashboard-freezes button[type="submit"]:hover,
body .sp-student-dashboard #sp-dashboard-freezes button[type="submit"]:focus,
body .sp-student-dashboard #sp-dashboard-freezes button[type="submit"]:active,
body .sp-student-dashboard .sp-calendar-sync-button--copy:hover,
body .sp-student-dashboard .sp-calendar-sync-button--copy:focus,
body .sp-student-dashboard .sp-calendar-sync-button--copy:active,
body .sp-student-dashboard .sp-calendar-sync-reset button:hover,
body .sp-student-dashboard .sp-calendar-sync-reset button:focus,
body .sp-student-dashboard .sp-calendar-sync-reset button:active,
body .sp-student-dashboard #sp-waitlist button:hover,
body .sp-student-dashboard #sp-waitlist button:focus,
body .sp-student-dashboard #sp-waitlist button:active,
body .sp-student-dashboard [style*="background:#123b37"]:hover,
body .sp-student-dashboard [style*="background:#123b37"]:focus,
body .sp-student-dashboard [style*="background:#123b37"]:active {
    border: 0 !important;
    background: #123b37 !important;
    background-color: #123b37 !important;
    background-image: none !important;
    box-shadow: none !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    translate: none !important;
}

body .sp-student-dashboard #sp-dashboard-payment button[type="submit"] *,
body .sp-student-dashboard #sp-dashboard-freezes button[type="submit"] *,
body .sp-student-dashboard .sp-calendar-sync-button--copy *,
body .sp-student-dashboard .sp-calendar-sync-reset button *,
body .sp-student-dashboard #sp-waitlist button *,
body .sp-student-dashboard [style*="background:#123b37"] * {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    text-shadow: none !important;
    -webkit-text-stroke: 0 transparent !important;
    opacity: 1 !important;
}


/* teacher-materials-final-3-3-22.css */
/* Final teacher-materials design. Images are deliberately not styled here. */
body.sp-design-system-page .sp-teacher-library {
    --sp-tm-black: #151515;
    --sp-tm-white: #ffffff;
    --sp-tm-emerald: #123b37;
    --sp-tm-cream: #fff6e7;
    --sp-tm-mint: #b8dcd8;
    --sp-tm-lilac: #e8e0f2;
    --sp-tm-yellow: #f1da89;
    --sp-tm-line: rgba(21, 21, 21, .18);
    width: min(1220px, calc(100vw - 32px)) !important;
    margin: 0 auto !important;
    padding: clamp(18px, 3vw, 42px) !important;
    color: var(--sp-tm-black) !important;
    font-family: "Google Sans", sans-serif !important;
}

body.sp-design-system-page .sp-teacher-library :where(h1, h2, h3, h4, h5, h6, p, span, small, strong, b, em, label, legend, summary, li, dt, dd, a) {
    color: var(--sp-tm-black) !important;
    -webkit-text-fill-color: var(--sp-tm-black) !important;
}

body.sp-design-system-page .sp-teacher-library :where(h1, h2, h3, h4) {
    font-weight: 600 !important;
    letter-spacing: -.025em !important;
}

body.sp-design-system-page .sp-teacher-library .sp-teacher-hero {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 24px !important;
    margin: 0 0 24px !important;
    padding: clamp(24px, 4vw, 42px) !important;
    border: 0 !important;
    border-radius: 25px !important;
    background: var(--sp-tm-lilac) !important;
    box-shadow: none !important;
}

body.sp-design-system-page .sp-teacher-library .sp-teacher-hero h1 {
    margin: 7px 0 8px !important;
    font-size: clamp(34px, 5vw, 56px) !important;
    line-height: 1.02 !important;
}

body.sp-design-system-page .sp-teacher-library .sp-teacher-hero p { margin: 0 !important; font-size: 17px !important; }

body.sp-design-system-page .sp-teacher-library .sp-teacher-eyebrow {
    display: inline-flex !important;
    padding: 7px 12px !important;
    border-radius: 999px !important;
    background: var(--sp-tm-yellow) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
}

body.sp-design-system-page .sp-teacher-library :where(.sp-teacher-books, .sp-teacher-book-form, .sp-teacher-book-open, .sp-book-screen-v2) {
    padding: clamp(22px, 3vw, 34px) !important;
    border: 0 !important;
    border-radius: 25px !important;
    background: var(--sp-tm-cream) !important;
    box-shadow: none !important;
}

body.sp-design-system-page .sp-teacher-library .sp-teacher-section-title {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 18px !important;
    margin-bottom: 22px !important;
}

body.sp-design-system-page .sp-teacher-library .sp-teacher-section-title > :where(span, div > span) {
    font-size: clamp(23px, 2.6vw, 32px) !important;
    font-weight: 600 !important;
}

body.sp-design-system-page .sp-teacher-library :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]), textarea, select) {
    min-height: 48px !important;
    padding: 12px 15px !important;
    border: 1px solid var(--sp-tm-line) !important;
    border-radius: 14px !important;
    outline: 0 !important;
    background: var(--sp-tm-white) !important;
    box-shadow: none !important;
    color: var(--sp-tm-black) !important;
    -webkit-text-fill-color: var(--sp-tm-black) !important;
}

body.sp-design-system-page .sp-teacher-library textarea { min-height: 120px !important; resize: vertical !important; }
body.sp-design-system-page .sp-teacher-library :where(input, textarea, select):focus { border-color: var(--sp-tm-emerald) !important; box-shadow: 0 0 0 3px rgba(18, 59, 55, .1) !important; }

body.sp-design-system-page .sp-teacher-library :where(.sp-teacher-books-grid, .sp-material-book-grid) {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 18px !important;
}

body.sp-design-system-page .sp-teacher-library :where(.sp-book-card-wrap, .sp-teacher-books-grid > a, .sp-teacher-library-grid > section) {
    border: 0 !important;
    border-radius: 25px !important;
    box-shadow: none !important;
    transform: none !important;
    transition: none !important;
}

body.sp-design-system-page .sp-teacher-library :where(.sp-book-card-wrap, .sp-teacher-books-grid > a, .sp-teacher-library-grid > section):nth-child(4n+1) { background: var(--sp-tm-mint) !important; }
body.sp-design-system-page .sp-teacher-library :where(.sp-book-card-wrap, .sp-teacher-books-grid > a, .sp-teacher-library-grid > section):nth-child(4n+2) { background: var(--sp-tm-yellow) !important; }
body.sp-design-system-page .sp-teacher-library :where(.sp-book-card-wrap, .sp-teacher-books-grid > a, .sp-teacher-library-grid > section):nth-child(4n+3) { background: var(--sp-tm-lilac) !important; }
body.sp-design-system-page .sp-teacher-library :where(.sp-book-card-wrap, .sp-teacher-books-grid > a, .sp-teacher-library-grid > section):nth-child(4n+4) { background: var(--sp-tm-white) !important; }

body.sp-design-system-page .sp-teacher-library :where(.sp-book-pocket, .sp-book-section, .sp-lesson-exercise-card, .sp-section-lessons > a, .sp-book-lesson-row) {
    border: 1px solid var(--sp-tm-line) !important;
    border-radius: 18px !important;
    background: var(--sp-tm-white) !important;
    box-shadow: none !important;
}

body.sp-design-system-page .sp-teacher-library .sp-book-pocket { margin-bottom: 12px !important; overflow: hidden !important; }
body.sp-design-system-page .sp-teacher-library .sp-book-pocket > summary { padding: 18px 20px !important; background: var(--sp-tm-mint) !important; }
body.sp-design-system-page .sp-teacher-library .sp-pocket-content { padding: 18px !important; background: var(--sp-tm-white) !important; }

/* Every regular action button is permanently white. */
body.sp-design-system-page .sp-teacher-library :where(
    button:not(.sp-open-annotated-image):not([data-article-color]),
    .sp-teacher-primary, .sp-neutral-action, .sp-add-pocket-button,
    .sp-add-carousel-image, .sp-pretty-upload, .sp-start-lesson-button
) {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 44px !important;
    padding: 11px 18px !important;
    border: 1.5px solid var(--sp-tm-black) !important;
    border-radius: 999px !important;
    background: var(--sp-tm-white) !important;
    background-color: var(--sp-tm-white) !important;
    background-image: none !important;
    box-shadow: none !important;
    color: var(--sp-tm-black) !important;
    -webkit-text-fill-color: var(--sp-tm-black) !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    translate: none !important;
    animation: none !important;
    transition: none !important;
}

body.sp-design-system-page .sp-teacher-library :where(
    button:not(.sp-open-annotated-image):not([data-article-color]),
    .sp-teacher-primary, .sp-neutral-action, .sp-add-pocket-button,
    .sp-add-carousel-image, .sp-pretty-upload, .sp-start-lesson-button
):where(:hover, :focus, :active),
body.sp-design-system-page .sp-teacher-library :where(
    button:not(.sp-open-annotated-image):not([data-article-color]),
    .sp-teacher-primary, .sp-neutral-action, .sp-add-pocket-button,
    .sp-add-carousel-image, .sp-pretty-upload, .sp-start-lesson-button
):where(.is-active, .active, [aria-expanded="true"], [aria-pressed="true"]) {
    border-color: var(--sp-tm-black) !important;
    background: var(--sp-tm-white) !important;
    background-color: var(--sp-tm-white) !important;
    background-image: none !important;
    box-shadow: none !important;
    color: var(--sp-tm-black) !important;
    -webkit-text-fill-color: var(--sp-tm-black) !important;
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    translate: none !important;
}

body.sp-design-system-page .sp-teacher-library :where(
    button:not(.sp-open-annotated-image):not([data-article-color]),
    .sp-teacher-primary, .sp-neutral-action, .sp-add-pocket-button,
    .sp-add-carousel-image, .sp-pretty-upload, .sp-start-lesson-button
) * {
    color: var(--sp-tm-black) !important;
    -webkit-text-fill-color: var(--sp-tm-black) !important;
}

/* Every icon-only control: white circle, black outline, black icon. */
body.sp-design-system-page .sp-teacher-library :where(
    .sp-icon-edit, .sp-delete-cross, .sp-exercise-modal-close, .sp-class-picker-close,
    .sp-modal-close, .sp-image-viewer-close, .sp-image-words-crop-close,
    .sp-universal-crop-close, .sp-remove-carousel-image, .sp-image-word-remove,
    .sp-article-note-button, .sp-transcript-eye, .sp-note-corner-actions button,
    .sp-image-tools button, .sp-image-zoom button, .sp-inline-image-tools > button,
    .sp-audio-settings > button, .sp-audio-volume > button,
    .sp-custom-audio > button:not([data-audio-play]), .sp-viewer-arrow,
    button[aria-label*="Изменить"], button[aria-label*="Удалить"],
    button[aria-label*="Закрыть"], [data-close-modal], [data-close-editor],
    [data-close-exercise-modal]
) {
    display: inline-grid !important;
    place-items: center !important;
    width: 40px !important;
    min-width: 40px !important;
    height: 40px !important;
    min-height: 40px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1.5px solid var(--sp-tm-black) !important;
    border-radius: 50% !important;
    outline: 0 !important;
    background: var(--sp-tm-white) !important;
    background-color: var(--sp-tm-white) !important;
    background-image: none !important;
    box-shadow: none !important;
    color: var(--sp-tm-black) !important;
    -webkit-text-fill-color: var(--sp-tm-black) !important;
    font-family: Arial, sans-serif !important;
    font-size: 21px !important;
    font-weight: 500 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    translate: none !important;
    animation: none !important;
    transition: none !important;
}

body.sp-design-system-page .sp-teacher-library :where(
    .sp-icon-edit, .sp-delete-cross, .sp-exercise-modal-close, .sp-class-picker-close,
    .sp-modal-close, .sp-image-viewer-close, .sp-image-words-crop-close,
    .sp-universal-crop-close, .sp-remove-carousel-image, .sp-image-word-remove,
    .sp-article-note-button, .sp-transcript-eye, .sp-note-corner-actions button,
    .sp-image-tools button, .sp-image-zoom button, .sp-inline-image-tools > button,
    .sp-audio-settings > button, .sp-audio-volume > button,
    .sp-custom-audio > button:not([data-audio-play]), .sp-viewer-arrow,
    button[aria-label*="Изменить"], button[aria-label*="Удалить"],
    button[aria-label*="Закрыть"], [data-close-modal], [data-close-editor],
    [data-close-exercise-modal]
):where(:hover, :focus, :active) {
    border-color: var(--sp-tm-black) !important;
    background: var(--sp-tm-white) !important;
    background-color: var(--sp-tm-white) !important;
    background-image: none !important;
    box-shadow: none !important;
    color: var(--sp-tm-black) !important;
    -webkit-text-fill-color: var(--sp-tm-black) !important;
    filter: none !important;
    transform: none !important;
}

/* Open/selected icon controls stay white too. */
body.sp-design-system-page .sp-teacher-library :where(
    .sp-icon-edit, .sp-delete-cross, .sp-exercise-modal-close, .sp-class-picker-close,
    .sp-modal-close, .sp-image-viewer-close, .sp-image-words-crop-close,
    .sp-universal-crop-close, .sp-remove-carousel-image, .sp-image-word-remove,
    .sp-article-note-button, .sp-transcript-eye, .sp-note-corner-actions button,
    .sp-image-tools button, .sp-image-zoom button, .sp-inline-image-tools > button,
    .sp-audio-settings > button, .sp-audio-volume > button,
    .sp-custom-audio > button:not([data-audio-play]), .sp-viewer-arrow,
    button[aria-label*="Изменить"], button[aria-label*="Удалить"],
    button[aria-label*="Закрыть"], [data-close-modal], [data-close-editor],
    [data-close-exercise-modal]
):where(.is-active, .active, [aria-expanded="true"], [aria-pressed="true"], [data-state="open"]) {
    border-color: var(--sp-tm-black) !important;
    background: var(--sp-tm-white) !important;
    background-color: var(--sp-tm-white) !important;
    background-image: none !important;
    box-shadow: none !important;
    color: var(--sp-tm-black) !important;
    -webkit-text-fill-color: var(--sp-tm-black) !important;
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
}

body.sp-design-system-page .sp-teacher-library :where(.sp-book-modal > div, .sp-exercise-modal-dialog, .sp-class-picker) {
    border: 0 !important;
    border-radius: 25px !important;
    background: var(--sp-tm-cream) !important;
    box-shadow: 0 22px 60px rgba(18, 59, 55, .18) !important;
}

/* Covers breathe inside cards instead of touching their edges. */
body.sp-design-system-page .sp-teacher-library .sp-book-card-cover {
    width: calc(100% - 32px) !important;
    max-width: calc(100% - 32px) !important;
    margin: 16px 16px 0 !important;
    border-radius: 14px !important;
}

body.sp-design-system-page .sp-teacher-library .sp-book-screen-cover {
    margin: 4px 2px 4px 4px !important;
    border-radius: 14px !important;
}

/* Image editors and image exercises keep their original rectangular presentation. */
body.sp-design-system-page .sp-teacher-library .sp-open-annotated-image {
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
}

body.sp-design-system-page .sp-teacher-library .sp-open-annotated-image {
    display: block !important;
    width: 100% !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

body.sp-design-system-page .sp-teacher-library .sp-article-image-editor {
    border-radius: 14px !important;
    background: var(--sp-tm-white) !important;
}

/* Exercise symbols follow the whiteboard's centered monochrome icon language. */
body.sp-design-system-page .sp-teacher-library :where(.sp-exercise-template-grid > button > span, .sp-exercise-editor-heading > span, .sp-exercise-placeholder > span) {
    display: grid !important;
    place-items: center !important;
    width: 46px !important;
    min-width: 46px !important;
    height: 46px !important;
    min-height: 46px !important;
    padding: 0 !important;
    border: 1.5px solid var(--sp-tm-black) !important;
    border-radius: 50% !important;
    background: var(--sp-tm-white) !important;
    color: var(--sp-tm-black) !important;
    -webkit-text-fill-color: var(--sp-tm-black) !important;
    font-family: "Google Sans", Arial, sans-serif !important;
    font-size: 20px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
}

body.sp-design-system-page .sp-teacher-library .sp-exercise-template-grid > button {
    display: grid !important;
    grid-template-columns: 46px minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    align-items: center !important;
    justify-items: start !important;
    gap: 4px 13px !important;
    min-height: 96px !important;
    text-align: left !important;
}

body.sp-design-system-page .sp-teacher-library .sp-exercise-template-grid > button > span { grid-row: 1 / 3 !important; }
body.sp-design-system-page .sp-teacher-library .sp-exercise-template-grid > button > strong { align-self: end !important; }
body.sp-design-system-page .sp-teacher-library .sp-exercise-template-grid > button > small { align-self: start !important; }

/* The bottom add-exercise plus is centered in a branded circle. */
body.sp-design-system-page .sp-teacher-library .sp-lesson-add-tile > span {
    display: grid !important;
    place-items: center !important;
    width: 52px !important;
    min-width: 52px !important;
    height: 52px !important;
    min-height: 52px !important;
    margin: 0 auto 10px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: var(--sp-tm-mint) !important;
    color: var(--sp-tm-black) !important;
    -webkit-text-fill-color: var(--sp-tm-black) !important;
    font-family: Arial, sans-serif !important;
    font-size: 32px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    text-align: center !important;
}

body.sp-design-system-page .sp-teacher-library .sp-lesson-add-tile {
    display: grid !important;
    place-items: center !important;
    align-content: center !important;
    border: 1.5px solid var(--sp-tm-black) !important;
    background: var(--sp-tm-white) !important;
    text-align: center !important;
}

/* Live collaboration remains active, but never prints status copy over exercises. */
body.sp-design-system-page .sp-teacher-library .sp-exercise-live-status { display: none !important; }

@media (max-width: 900px) {
    body.sp-design-system-page .sp-teacher-library :where(.sp-teacher-books-grid, .sp-material-book-grid) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

@media (max-width: 650px) {
    body.sp-design-system-page .sp-teacher-library { width: calc(100vw - 20px) !important; padding: 14px !important; }
    body.sp-design-system-page .sp-teacher-library :where(.sp-teacher-hero, .sp-teacher-section-title) { align-items: stretch !important; flex-direction: column !important; }
    body.sp-design-system-page .sp-teacher-library :where(.sp-teacher-books-grid, .sp-material-book-grid) { grid-template-columns: minmax(0, 1fr) !important; }
}

/* 3.3.25 — authoritative teacher-materials controls.
   This intentionally does not depend on a page body class: Elementor and cached
   WordPress templates do not always expose the same body classes. */
body .sp-teacher-library button:not(.sp-open-annotated-image):not([data-article-color]):not([data-essay-color]):not([data-essay-highlight]),
body .sp-teacher-library input[type="button"],
body .sp-teacher-library input[type="submit"],
body .sp-teacher-library .sp-button,
body .sp-teacher-library .sp-btn,
body .sp-teacher-library .sp-teacher-primary,
body .sp-teacher-library .sp-teacher-secondary,
body .sp-teacher-library .sp-neutral-action {
    background: #fff !important;
    background-color: #fff !important;
    background-image: none !important;
    border-color: #151515 !important;
    box-shadow: none !important;
    color: #151515 !important;
    -webkit-text-fill-color: #151515 !important;
    filter: none !important;
    opacity: 1 !important;
    outline-color: #151515 !important;
    text-shadow: none !important;
    transform: none !important;
    translate: none !important;
    animation: none !important;
    transition: none !important;
}

body .sp-teacher-library button:not(.sp-open-annotated-image):not([data-article-color]):not([data-essay-color]):not([data-essay-highlight]):hover,
body .sp-teacher-library button:not(.sp-open-annotated-image):not([data-article-color]):not([data-essay-color]):not([data-essay-highlight]):focus,
body .sp-teacher-library button:not(.sp-open-annotated-image):not([data-article-color]):not([data-essay-color]):not([data-essay-highlight]):active,
body .sp-teacher-library input[type="button"]:hover,
body .sp-teacher-library input[type="submit"]:hover,
body .sp-teacher-library .sp-button:hover,
body .sp-teacher-library .sp-btn:hover,
body .sp-teacher-library .sp-teacher-primary:hover,
body .sp-teacher-library .sp-teacher-secondary:hover,
body .sp-teacher-library .sp-neutral-action:hover {
    background: #fff !important;
    background-color: #fff !important;
    background-image: none !important;
    border-color: #151515 !important;
    box-shadow: none !important;
    color: #151515 !important;
    -webkit-text-fill-color: #151515 !important;
    filter: none !important;
    opacity: 1 !important;
    text-shadow: none !important;
    transform: none !important;
    translate: none !important;
}

body .sp-teacher-library button:not(.sp-open-annotated-image):not([data-article-color]):not([data-essay-color]):not([data-essay-highlight]) *,
body .sp-teacher-library .sp-button *,
body .sp-teacher-library .sp-btn * {
    color: #151515 !important;
    -webkit-text-fill-color: #151515 !important;
}

/* Colour pickers keep their colour because colour is their function. */
body .sp-teacher-library :is([data-article-color], [data-essay-color], [data-essay-highlight]) {
    box-shadow: none !important;
    transform: none !important;
    translate: none !important;
    animation: none !important;
    transition: none !important;
}

/* Covers have an explicit inset on every card, independent of legacy rules. */
body .sp-teacher-library .sp-book-card-wrap > a {
    padding: 16px !important;
}
body .sp-teacher-library .sp-book-card-wrap .sp-book-card-cover {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 150px !important;
    margin: 0 0 18px !important;
    border-radius: 14px !important;
    object-fit: cover !important;
}

/* Exercise catalogue uses the same clean, centred line-symbol language as the board. */
body .sp-teacher-library .sp-exercise-template-grid > button > span,
body .sp-teacher-library .sp-exercise-editor-heading > span,
body .sp-teacher-library .sp-exercise-placeholder > span {
    display: grid !important;
    place-items: center !important;
    width: 46px !important;
    min-width: 46px !important;
    height: 46px !important;
    min-height: 46px !important;
    padding: 0 !important;
    border: 1.5px solid #151515 !important;
    border-radius: 16px !important;
    background: #fff !important;
    color: #151515 !important;
    -webkit-text-fill-color: #151515 !important;
    font-family: Arial, sans-serif !important;
    font-size: 20px !important;
    font-weight: 500 !important;
    line-height: 1 !important;
}

/* Image itself remains an image, not a round button. */
body .sp-teacher-library button.sp-open-annotated-image,
body .sp-teacher-library button.sp-open-annotated-image:hover,
body .sp-teacher-library button.sp-open-annotated-image:focus,
body .sp-teacher-library button.sp-open-annotated-image:active {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 14px !important;
    background: transparent !important;
    box-shadow: none !important;
    filter: none !important;
    transform: none !important;
    translate: none !important;
}
body .sp-teacher-library .sp-open-annotated-image > img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    border-radius: 14px !important;
}

/* No technical synchronization copy is shown around image workspaces. */
body .sp-teacher-library .sp-exercise-live-status,
body .sp-teacher-library .sp-image-live-status,
body .sp-teacher-library .sp-image-sync-status,
body .sp-teacher-library [data-image-sync-status] {
    display: none !important;
}

/* Bottom add tile: a mathematically centred plus in a brand mint circle. */
body .sp-teacher-library button.sp-lesson-add-tile > span {
    display: grid !important;
    place-items: center !important;
    width: 54px !important;
    min-width: 54px !important;
    height: 54px !important;
    min-height: 54px !important;
    margin: 0 auto 10px !important;
    padding: 0 0 3px !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: #b8dcd8 !important;
    color: #151515 !important;
    -webkit-text-fill-color: #151515 !important;
    font-family: Arial, sans-serif !important;
    font-size: 34px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    text-align: center !important;
}

/* 3.3.26 — restore readable tool sizes in the material/class workspaces. */
body .sp-class-sidebar > a,
body .sp-class-sidebar > button,
body .sp-template-tools > a,
body .sp-template-tools > button {
    display: grid !important;
    place-items: center !important;
    width: 48px !important;
    min-width: 48px !important;
    max-width: 48px !important;
    height: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    padding: 0 !important;
    border-radius: 15px !important;
    font-size: 23px !important;
    line-height: 1 !important;
    overflow: visible !important;
}
body .sp-class-sidebar > :is(a, button) > svg,
body .sp-template-tools > :is(a, button) > svg {
    display: block !important;
    width: 25px !important;
    min-width: 25px !important;
    height: 25px !important;
    min-height: 25px !important;
    margin: 0 !important;
    padding: 0 !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 1.8 !important;
}
body .sp-class-sidebar .sp-timer-tool [data-timer-mini] {
    width: auto !important;
    min-width: 50px !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 4px 7px !important;
    font-size: 10px !important;
    line-height: 1.15 !important;
}

/* Carousel navigation: true circles, centred arrow glyphs and centred group. */
body .sp-teacher-library .sp-image-carousel > div:last-child {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    width: max-content !important;
    max-width: calc(100% - 24px) !important;
    margin-right: auto !important;
    margin-left: auto !important;
}
body .sp-teacher-library .sp-image-carousel > div:last-child > button[data-prev],
body .sp-teacher-library .sp-image-carousel > div:last-child > button[data-next] {
    position: static !important;
    display: grid !important;
    place-items: center !important;
    flex: 0 0 40px !important;
    box-sizing: border-box !important;
    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;
    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;
    aspect-ratio: 1 / 1 !important;
    margin: 0 !important;
    padding: 0 0 3px !important;
    border: 1.5px solid #151515 !important;
    border-radius: 50% !important;
    background: #fff !important;
    color: #151515 !important;
    -webkit-text-fill-color: #151515 !important;
    font: 500 28px/1 Arial, sans-serif !important;
    text-align: center !important;
}
body .sp-teacher-library .sp-image-carousel > div:last-child > button[data-prev]:hover,
body .sp-teacher-library .sp-image-carousel > div:last-child > button[data-next]:hover,
body .sp-teacher-library .sp-image-carousel > div:last-child > button[data-prev]:focus,
body .sp-teacher-library .sp-image-carousel > div:last-child > button[data-next]:focus,
body .sp-teacher-library .sp-image-carousel > div:last-child > button[data-prev]:active,
body .sp-teacher-library .sp-image-carousel > div:last-child > button[data-next]:active {
    width: 40px !important;
    height: 40px !important;
    padding: 0 0 3px !important;
    border-radius: 50% !important;
    background: #fff !important;
    color: #151515 !important;
    transform: none !important;
}

@media (max-width: 480px) {
    body .sp-class-sidebar > a,
    body .sp-class-sidebar > button,
    body .sp-template-tools > a,
    body .sp-template-tools > button {
        width: 44px !important;
        min-width: 44px !important;
        max-width: 44px !important;
        height: 44px !important;
        min-height: 44px !important;
        max-height: 44px !important;
    }
}

/* 3.3.27 — lesson editor is a stable, centred application screen.
   The document itself never drifts or scrolls; only useful content areas scroll. */
html:has(body.sp-library-lesson-mode),
body.sp-library-lesson-mode {
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    overflow: hidden !important;
    overscroll-behavior: none !important;
}
body.sp-library-lesson-mode .sp-teacher-library {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 1480px !important;
    height: 100dvh !important;
    min-height: 0 !important;
    margin: 0 auto !important;
    padding: 0 !important;
    overflow: hidden !important;
}
body.sp-library-lesson-mode .sp-library-lesson-studio {
    position: relative !important;
    inset: auto !important;
    left: auto !important;
    display: flex !important;
    flex-direction: column !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 1480px !important;
    height: 100dvh !important;
    min-height: 0 !important;
    margin: 0 auto !important;
    overflow: hidden !important;
    border-radius: 0 !important;
    transform: none !important;
    translate: none !important;
}
body.sp-library-lesson-mode .sp-library-lesson-studio > header {
    position: relative !important;
    z-index: 5 !important;
    flex: 0 0 auto !important;
    width: 100% !important;
    box-sizing: border-box !important;
}
body.sp-library-lesson-mode .sp-library-lesson-studio > .sp-lesson-workspace {
    flex: 1 1 auto !important;
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
}
body.sp-library-lesson-mode .sp-template-classroom > main {
    min-width: 0 !important;
    min-height: 0 !important;
    height: 100% !important;
    padding-right: 8px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    scrollbar-gutter: stable !important;
}
body.sp-library-lesson-mode .sp-template-classroom > .sp-template-tools {
    align-self: start !important;
    max-height: 100% !important;
}
body.sp-library-lesson-mode .sp-template-classroom > .sp-template-right-column {
    min-width: 0 !important;
    min-height: 0 !important;
    max-height: 100% !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
}
body.sp-library-lesson-mode .sp-lesson-canvas {
    width: 100% !important;
    max-width: 950px !important;
    margin-right: auto !important;
    margin-left: auto !important;
}

@media (max-width: 850px) {
    body.sp-library-lesson-mode .sp-library-lesson-studio > .sp-lesson-workspace {
        overflow-y: auto !important;
        overscroll-behavior: contain !important;
    }
    body.sp-library-lesson-mode .sp-template-classroom > main,
    body.sp-library-lesson-mode .sp-template-classroom > .sp-template-right-column {
        height: auto !important;
        max-height: none !important;
        overflow: visible !important;
    }
}

/* 3.3.28 — enlarge the glyphs themselves, not only their button boxes. */
body .sp-class-workspace {
    grid-template-columns: 72px minmax(0, 1fr) !important;
}
body .sp-class-sidebar {
    padding-right: 9px !important;
    padding-left: 9px !important;
}
body .sp-class-sidebar > a,
body .sp-class-sidebar > button {
    width: 54px !important;
    min-width: 54px !important;
    max-width: 54px !important;
    height: 54px !important;
    min-height: 54px !important;
    max-height: 54px !important;
    font-size: 31px !important;
}
body .sp-class-sidebar > :is(a, button) > svg {
    width: 32px !important;
    min-width: 32px !important;
    max-width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    max-height: 32px !important;
    stroke-width: 1.75 !important;
}
body .sp-template-classroom {
    grid-template-columns: 64px minmax(0, 1fr) 280px !important;
}
body .sp-template-tools > a,
body .sp-template-tools > button {
    width: 52px !important;
    min-width: 52px !important;
    max-width: 52px !important;
    height: 52px !important;
    min-height: 52px !important;
    max-height: 52px !important;
    font-size: 30px !important;
    line-height: 1 !important;
}
body .sp-template-tools > :is(a, button) > svg {
    width: 31px !important;
    min-width: 31px !important;
    max-width: 31px !important;
    height: 31px !important;
    min-height: 31px !important;
    max-height: 31px !important;
}

@media (max-width: 850px) {
    body .sp-template-classroom {
        grid-template-columns: 60px minmax(0, 1fr) !important;
    }
}

@media (max-width: 480px) {
    body .sp-class-workspace {
        grid-template-columns: 62px minmax(0, 1fr) !important;
    }
    body .sp-class-sidebar > a,
    body .sp-class-sidebar > button {
        width: 48px !important;
        min-width: 48px !important;
        max-width: 48px !important;
        height: 48px !important;
        min-height: 48px !important;
        max-height: 48px !important;
    }
    body .sp-class-sidebar > :is(a, button) > svg {
        width: 29px !important;
        min-width: 29px !important;
        height: 29px !important;
        min-height: 29px !important;
    }
}


/* teacher-cabinet-3-3-29.css */
/* Student Portal 3.3.29 — teacher cabinet. */
body .sp-teacher-dashboard:not(.sp-teacher-library) {
    --spt-black: #151515;
    --spt-emerald: #123b37;
    --spt-mint: #b8dcd8;
    --spt-cream: #fff6e7;
    --spt-lilac: #e8e0f2;
    --spt-yellow: #f1da89;
    --spt-white: #fff;
    --spt-line: rgba(21,21,21,.16);
    position: static !important;
    left: auto !important;
    box-sizing: border-box !important;
    width: min(1220px, calc(100vw - 32px)) !important;
    max-width: 1220px !important;
    margin: 0 auto !important;
    padding: clamp(18px,3vw,36px) 0 48px !important;
    color: var(--spt-black) !important;
    transform: none !important;
    font-family: "Google Sans", Arial, sans-serif !important;
    display: flex !important;
    flex-direction: column !important;
}
body .sp-teacher-dashboard:not(.sp-teacher-library) > .sp-teacher-cabinet-hero { order: 1 !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) > .sp-teacher-sections { order: 2 !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) > .sp-teacher-notice { order: 3 !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) > .sp-teacher-next { order: 4 !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) > #sp-teacher-students { order: 5 !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) > #sp-teacher-classes { order: 6 !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) > .sp-teacher-attention { order: 7 !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) > .sp-marketing-summary { order: 8 !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) > #sp-booking-limits { order: 9 !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) > #sp-activity-log { order: 10 !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) > #sp-legal-analytics { order: 11 !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) *,
body .sp-teacher-dashboard:not(.sp-teacher-library) *::before,
body .sp-teacher-dashboard:not(.sp-teacher-library) *::after { box-sizing: border-box !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) :is(h1,h2,h3,h4,p,span,strong,small,label,legend,summary,li,dt,dd,a,b,em) {
    color: var(--spt-black) !important;
    -webkit-text-fill-color: var(--spt-black) !important;
}
body .sp-teacher-dashboard:not(.sp-teacher-library) :is(h1,h2,h3,h4) {
    font-weight: 600 !important;
    letter-spacing: -.025em !important;
}

.sp-teacher-cabinet-hero {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 28px !important;
    margin: 0 0 20px !important;
    padding: clamp(28px,4vw,48px) !important;
    border: 0 !important;
    border-radius: 25px !important;
    background: var(--spt-cream) !important;
    box-shadow: none !important;
}
.sp-teacher-cabinet-hero h1 {
    margin: 8px 0 10px !important;
    font-size: clamp(38px,5vw,60px) !important;
    line-height: 1 !important;
}
.sp-teacher-cabinet-hero p { max-width: 620px !important; margin: 0 !important; font-size: 17px !important; line-height: 1.5 !important; }
.sp-teacher-cabinet-hero .sp-teacher-eyebrow {
    display: inline-flex !important;
    padding: 7px 12px !important;
    border-radius: 999px !important;
    background: var(--spt-yellow) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
}
.sp-teacher-cabinet-actions { display: flex !important; align-items: center !important; gap: 10px !important; flex-wrap: wrap !important; }
.sp-teacher-cabinet-actions a,
.sp-teacher-cabinet-actions .sp-teacher-logout-form button,
.sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-primary,
.sp-teacher-dashboard:not(.sp-teacher-library) .sp-custom-price-form button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 46px !important;
    padding: 11px 18px !important;
    border: 1.5px solid var(--spt-emerald) !important;
    border-radius: 999px !important;
    background: var(--spt-white) !important;
    color: var(--spt-black) !important;
    -webkit-text-fill-color: var(--spt-black) !important;
    box-shadow: none !important;
    text-decoration: none !important;
    font-weight: 700 !important;
    transform: none !important;
    transition: none !important;
}
.sp-teacher-cabinet-actions .sp-teacher-logout-form{margin:0!important}
.sp-teacher-cabinet-actions .sp-teacher-logout-form button{cursor:pointer!important}
.sp-teacher-cabinet-actions .sp-teacher-cabinet-primary,
.sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-primary,
.sp-teacher-dashboard:not(.sp-teacher-library) .sp-custom-price-form button {
    background: var(--spt-emerald) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}
.sp-teacher-cabinet-actions a:hover,
.sp-teacher-cabinet-actions a:focus,
.sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-primary:hover,
.sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-primary:focus,
.sp-teacher-dashboard:not(.sp-teacher-library) .sp-custom-price-form button:hover,
.sp-teacher-dashboard:not(.sp-teacher-library) .sp-custom-price-form button:focus {
    filter: none !important;
    box-shadow: none !important;
    transform: none !important;
}
.sp-teacher-cabinet-actions .sp-teacher-cabinet-primary:hover,
.sp-teacher-cabinet-actions .sp-teacher-cabinet-primary:focus,
.sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-primary:hover,
.sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-primary:focus,
.sp-teacher-dashboard:not(.sp-teacher-library) .sp-custom-price-form button:hover,
.sp-teacher-dashboard:not(.sp-teacher-library) .sp-custom-price-form button:focus {
    background: var(--spt-emerald) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}

body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections {
    display: grid !important;
    grid-template-columns: repeat(5,minmax(0,1fr)) !important;
    gap: 12px !important;
    margin: 0 0 22px !important;
}
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections > a {
    display: grid !important;
    grid-template-rows: 50px auto auto !important;
    align-content: start !important;
    min-height: 170px !important;
    padding: 20px !important;
    border: 0 !important;
    border-radius: 25px !important;
    background: var(--spt-lilac) !important;
    box-shadow: none !important;
    text-decoration: none !important;
    transform: none !important;
    transition: none !important;
}
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections > a:nth-child(2) { background: var(--spt-yellow) !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections > a:nth-child(3) { background: var(--spt-mint) !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections > a:nth-child(4) { background: var(--spt-cream) !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections > a:nth-child(4) {
    justify-items: center !important;
    align-content: center !important;
    text-align: center !important;
}
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections > a:nth-child(4) > span {
    margin-inline: auto !important;
}
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections > a:nth-child(5) { background: var(--spt-lilac) !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections > a:hover,
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections > a:focus { box-shadow: none !important; filter: none !important; transform: none !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections > a > span {
    display: grid !important;
    place-items: center !important;
    width: 46px !important;
    height: 46px !important;
    margin: 0 0 14px !important;
    border: 1.5px solid var(--spt-black) !important;
    border-radius: 15px !important;
    background: #fff !important;
    font: 500 23px/1 Arial,sans-serif !important;
}
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections strong { font-size: 18px !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections small { margin-top: 5px !important; font-size: 13px !important; line-height: 1.4 !important; }

body .sp-teacher-dashboard:not(.sp-teacher-library) :is(.sp-teacher-next,.sp-teacher-students,.sp-teacher-limits,.sp-activity-log) {
    margin: 0 0 22px !important;
    padding: clamp(22px,3vw,32px) !important;
    border: 0 !important;
    border-radius: 25px !important;
    box-shadow: none !important;
}
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-next { background: var(--spt-lilac) !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) #sp-teacher-students { background: var(--spt-cream) !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) #sp-teacher-classes { background: var(--spt-mint) !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-attention { background: var(--spt-yellow) !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-marketing-summary { background: var(--spt-lilac) !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) #sp-booking-limits,
body .sp-teacher-dashboard:not(.sp-teacher-library) #sp-legal-analytics { background: var(--spt-cream) !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-section-title { margin-bottom: 20px !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-section-title > span,
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-section-title > div > span { font-size: clamp(24px,2.6vw,32px) !important; font-weight: 600 !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-section-title p { margin-top: 5px !important; font-size: 15px !important; }

body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-next-row,
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-weekday-limits > :is(div,label),
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-class-groups > section,
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-student-list > a,
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-pair-list > article {
    border: 1px solid var(--spt-line) !important;
    border-radius: 18px !important;
    background: #fff !important;
    box-shadow: none !important;
}
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-next-row { padding: 16px !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-date { flex: 0 0 68px !important; background: var(--spt-mint) !important; color: var(--spt-black) !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-secondary,
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-back,
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-profile-class-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 42px !important;
    padding: 9px 15px !important;
    border: 1.5px solid var(--spt-black) !important;
    border-radius: 999px !important;
    background: #fff !important;
    color: var(--spt-black) !important;
    -webkit-text-fill-color: var(--spt-black) !important;
    text-decoration: none !important;
    box-shadow: none !important;
}

body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-weekday-limits { gap: 12px !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-weekday-limits > :is(div,label) { min-height: 96px !important; padding: 16px !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-weekday-limits > div strong { display: block !important; margin-bottom: 5px !important; font-size: 25px !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) :is(input,select,textarea) {
    min-height: 46px !important;
    padding: 10px 13px !important;
    border: 1px solid var(--spt-line) !important;
    border-radius: 13px !important;
    background: #fff !important;
    color: var(--spt-black) !important;
    box-shadow: none !important;
}
body .sp-teacher-dashboard:not(.sp-teacher-library) :is(input,select,textarea):focus { border-color: var(--spt-emerald) !important; outline: 3px solid rgba(18,59,55,.1) !important; }

body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-class-groups { gap: 16px !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-class-groups > section { padding: 18px !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-student-list > a { min-height: 72px !important; padding: 13px !important; transform: none !important; transition: none !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-student-list > a:hover { border-color: var(--spt-line) !important; background: #fff !important; transform: none !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-avatar { background: var(--spt-lilac) !important; color: var(--spt-black) !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-student-profile { border: 0 !important; border-radius: 20px !important; background: #fff !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-student-profile > header { background: var(--spt-lilac) !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-profile-grid { gap: 12px !important; padding: 12px !important; background: #fff !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-profile-grid > section { border: 1px solid var(--spt-line) !important; border-radius: 16px !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-custom-price-form { margin: 12px !important; border: 1px solid var(--spt-line) !important; border-radius: 17px !important; background: var(--spt-cream) !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-pair-list details { border-color: var(--spt-line) !important; }
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-notice { border: 1px solid var(--spt-line) !important; background: #fff !important; color: var(--spt-black) !important; }

@media (max-width: 1050px) {
    body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections { grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
}
@media (max-width: 760px) {
    body .sp-teacher-dashboard:not(.sp-teacher-library) { width: min(100% - 20px,1220px) !important; padding-top: 10px !important; }
    .sp-teacher-cabinet-hero { align-items: stretch !important; flex-direction: column !important; padding: 26px 22px !important; }
    .sp-teacher-cabinet-actions { align-items: stretch !important; flex-direction: column !important; }
    .sp-teacher-cabinet-actions a,.sp-teacher-cabinet-actions .sp-teacher-logout-form,.sp-teacher-cabinet-actions .sp-teacher-logout-form button { width: 100% !important; }
    body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
    body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-next-row { align-items: stretch !important; flex-direction: column !important; }
    body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-next-row .sp-teacher-secondary { margin-left: 0 !important; }
}
@media (max-width: 480px) {
    body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections { grid-template-columns: 1fr !important; }
    body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections > a { min-height: 140px !important; }
}

/* 3.3.30 — absolute cabinet text-colour contract: never purple. */
body .sp-teacher-dashboard:not(.sp-teacher-library),
body .sp-teacher-dashboard:not(.sp-teacher-library) *,
body .sp-teacher-dashboard:not(.sp-teacher-library) *::before,
body .sp-teacher-dashboard:not(.sp-teacher-library) *::after,
body .sp-teacher-dashboard:not(.sp-teacher-library) :is(a,a:visited,a:hover,a:focus,a:active,button,input,select,textarea,option) {
    color: #151515 !important;
    -webkit-text-fill-color: #151515 !important;
    text-decoration-color: #151515 !important;
}
body .sp-teacher-dashboard:not(.sp-teacher-library) :is(input,textarea)::placeholder {
    color: #151515 !important;
    -webkit-text-fill-color: #151515 !important;
    opacity: .62 !important;
}

/* The only light copy is on the deliberately dark emerald actions. */
body .sp-teacher-dashboard:not(.sp-teacher-library) :is(
    .sp-teacher-cabinet-primary,
    .sp-teacher-primary,
    .sp-custom-price-form button
),
body .sp-teacher-dashboard:not(.sp-teacher-library) :is(
    .sp-teacher-cabinet-primary,
    .sp-teacher-primary,
    .sp-custom-price-form button
) *,
body .sp-teacher-dashboard:not(.sp-teacher-library) :is(
    .sp-teacher-cabinet-primary,
    .sp-teacher-primary,
    .sp-custom-price-form button
):is(:hover,:focus,:focus-visible,:active),
body .sp-teacher-dashboard:not(.sp-teacher-library) :is(
    .sp-teacher-cabinet-primary,
    .sp-teacher-primary,
    .sp-custom-price-form button
):is(:hover,:focus,:focus-visible,:active) * {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    text-decoration-color: #fff !important;
}

/* 3.14.8 — single, stable alignment contract for the teacher cabinet.
   Older releases alternated between auto margins and left:50% translation,
   which moved the whole cabinet off-centre after Elementor recalculated width. */
body .sp-elementor-portal-widget.sp-elementor-portal-dashboard {
    width: 100% !important;
    max-width: none !important;
    margin-inline: auto !important;
    padding-inline: clamp(12px, 3.125vw, 40px) !important;
    box-sizing: border-box !important;
}
body .sp-elementor-portal-widget.sp-elementor-portal-dashboard > .sp-teacher-dashboard:not(.sp-teacher-library),
body .sp-teacher-dashboard:not(.sp-teacher-library) {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    translate: none !important;
    width: min(100%, 1220px) !important;
    max-width: 1220px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
}

/* Primary actions that belong to a full card are centred in that card. */
body .sp-teacher-dashboard:not(.sp-teacher-library) #sp-booking-limits > form > .sp-teacher-primary,
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-freeze-form > .sp-freeze-approve,
body .sp-teacher-dashboard:not(.sp-teacher-library) #sp-legal-analytics > form > .sp-teacher-primary {
    grid-column: 1 / -1 !important;
    justify-self: center !important;
    align-self: center !important;
    width: max-content !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Forms may be switched between grid and block layouts by older releases.
   A full-width action row keeps the button centred in either layout. */
body .sp-teacher-dashboard:not(.sp-teacher-library) #sp-booking-limits > form,
body .sp-teacher-dashboard:not(.sp-teacher-library) #sp-legal-analytics > form {
    text-align: center !important;
}
body .sp-teacher-dashboard:not(.sp-teacher-library) #sp-booking-limits > form > :not(.sp-teacher-primary),
body .sp-teacher-dashboard:not(.sp-teacher-library) #sp-legal-analytics > form > :not(.sp-teacher-primary) {
    text-align: left !important;
}

@media (max-width: 760px) {
    body .sp-elementor-portal-widget.sp-elementor-portal-dashboard {
        padding-inline: 10px !important;
    }
    body .sp-elementor-portal-widget.sp-elementor-portal-dashboard > .sp-teacher-dashboard:not(.sp-teacher-library),
    body .sp-teacher-dashboard:not(.sp-teacher-library) {
        width: 100% !important;
        max-width: 100% !important;
    }
    body .sp-teacher-dashboard:not(.sp-teacher-library) #sp-booking-limits > form > .sp-teacher-primary,
    body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-freeze-form > .sp-freeze-approve,
    body .sp-teacher-dashboard:not(.sp-teacher-library) #sp-legal-analytics > form > .sp-teacher-primary {
        width: min(100%, 360px) !important;
    }
}
/* 3.14.54 — six cabinet destinations stay in one balanced row on desktop. */
@media(min-width:1051px){body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections{grid-template-columns:repeat(6,minmax(0,1fr))!important}body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections>a{min-height:172px!important;padding:16px!important}body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections strong{font-size:16px!important}body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections small{font-size:11px!important}}
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections>a:nth-child(1){background:var(--spt-lilac)!important}body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections>a:nth-child(2){background:var(--spt-yellow)!important}body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections>a:nth-child(3){background:var(--spt-mint)!important}body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections>a:nth-child(4){background:var(--spt-cream)!important}body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections>a:nth-child(5){background:#e8f2f7!important}body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections>a:nth-child(6){background:#f4e8eb!important}
/* 3.14.57 — compact lesson overview first, then cabinet sections in navigation order. */
body .sp-teacher-dashboard:not(.sp-teacher-library)>.sp-teacher-cabinet-hero{order:1!important}
body .sp-teacher-dashboard:not(.sp-teacher-library)>.sp-teacher-overview-grid{order:2!important}
body .sp-teacher-dashboard:not(.sp-teacher-library)>.sp-teacher-sections{order:3!important}
body .sp-teacher-dashboard:not(.sp-teacher-library)>#sp-teacher-students{order:4!important}
body .sp-teacher-dashboard:not(.sp-teacher-library)>#sp-teacher-classes{order:5!important}
body .sp-teacher-dashboard:not(.sp-teacher-library)>#sp-freeze-requests{order:6!important}
body .sp-teacher-dashboard:not(.sp-teacher-library)>#sp-activity-log{order:7!important}
body .sp-teacher-dashboard:not(.sp-teacher-library)>#sp-legal-analytics{order:8!important}
body .sp-teacher-dashboard:not(.sp-teacher-library)>.sp-teacher-attention{order:9!important}
body .sp-teacher-dashboard:not(.sp-teacher-library)>.sp-marketing-summary{order:10!important}
.sp-teacher-overview-grid{display:grid!important;grid-template-columns:minmax(0,.9fr) minmax(0,1.35fr)!important;gap:14px!important;margin:0 0 20px!important}
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-overview-grid>.sp-teacher-next,
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-overview-grid>.sp-zoom-library{min-width:0!important;margin:0!important;padding:18px!important;border-radius:20px!important}
.sp-teacher-overview-grid .sp-teacher-section-title{margin-bottom:10px!important}.sp-teacher-overview-grid .sp-teacher-section-title>span{font-size:17px!important}
.sp-teacher-overview-grid .sp-teacher-next-row{gap:12px!important;padding:11px!important}.sp-teacher-overview-grid .sp-teacher-date{width:54px!important;height:54px!important;flex-basis:54px!important}.sp-teacher-overview-grid .sp-teacher-date strong{font-size:16px!important}
.sp-teacher-overview-grid .sp-teacher-secondary{padding:8px 12px!important;font-size:11px!important;white-space:nowrap!important}
.sp-teacher-overview-grid .sp-zoom-library header{gap:10px!important}.sp-teacher-overview-grid .sp-zoom-library header>span{width:38px!important;height:38px!important;border-radius:12px!important}.sp-teacher-overview-grid .sp-zoom-library h3{font-size:17px!important}.sp-teacher-overview-grid .sp-zoom-library header p{font-size:11px!important}.sp-teacher-overview-grid .sp-zoom-library-all{min-height:34px!important;padding:6px 10px!important;font-size:10px!important}
.sp-teacher-overview-grid .sp-zoom-library>div{gap:6px!important;margin:12px 0!important;max-height:190px!important;overflow:auto!important}.sp-teacher-overview-grid .sp-zoom-library article{grid-template-columns:92px minmax(90px,1fr) auto!important;gap:8px!important;padding:9px 10px!important}.sp-teacher-overview-grid .sp-zoom-library article>span{display:none!important}.sp-teacher-overview-grid .sp-zoom-library article :is(time,strong){font-size:11px!important}.sp-teacher-overview-grid .sp-zoom-library article nav a{padding:6px 9px!important;font-size:10px!important}.sp-teacher-overview-grid .sp-zoom-library>small{display:none!important}
@media(max-width:850px){.sp-teacher-overview-grid{grid-template-columns:1fr!important}.sp-teacher-overview-grid .sp-zoom-library article{grid-template-columns:90px minmax(0,1fr) auto!important}}
@media(max-width:560px){.sp-teacher-overview-grid .sp-zoom-library article{grid-template-columns:1fr!important}.sp-teacher-overview-grid .sp-teacher-next-row{align-items:stretch!important;flex-direction:column!important}.sp-teacher-overview-grid .sp-teacher-secondary{margin-left:0!important}}
/* 3.14.58 — balanced brand-colour cabinet and modal site settings. */
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-overview-grid>.sp-teacher-next{background:#e8e0f2!important}
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-overview-grid>.sp-zoom-library{background:#e8f2f7!important}
.sp-teacher-overview-grid .sp-teacher-next .sp-teacher-section-title>span{font-size:clamp(22px,2vw,28px)!important;line-height:1.1!important}
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-overview-grid .sp-teacher-next-row{display:grid!important;grid-template-columns:54px minmax(0,1fr) auto!important;align-items:center!important;min-height:86px!important;padding:12px!important;overflow:visible!important}
.sp-teacher-overview-grid .sp-teacher-next-row>div:nth-child(2){min-width:0!important}.sp-teacher-overview-grid .sp-teacher-next-row>div:nth-child(2)>strong{display:block!important;font-size:15px!important;line-height:1.2!important;overflow-wrap:anywhere!important}.sp-teacher-overview-grid .sp-teacher-next-row p{margin-top:4px!important;font-size:11px!important;line-height:1.35!important}
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-overview-grid .sp-teacher-secondary{min-height:36px!important;border:1px solid #d6b952!important;background:#f1da89!important;color:#332d17!important;-webkit-text-fill-color:#332d17!important}
.sp-teacher-overview-grid .sp-zoom-library-all{border-color:#d9cde5!important;background:#fff6e7!important;color:#4f3b61!important;-webkit-text-fill-color:#4f3b61!important}
.sp-teacher-overview-grid .sp-zoom-library article nav{align-items:center!important}.sp-teacher-overview-grid .sp-zoom-library article nav a{border-color:#a9ceca!important;background:#b8dcd8!important;color:#123b37!important;-webkit-text-fill-color:#123b37!important;white-space:nowrap!important}.sp-teacher-overview-grid .sp-zoom-library article nav em{display:inline-flex!important;align-items:center!important;padding:4px 7px!important;border-radius:999px!important;background:#f3eef7!important;color:#8064a2!important;font-size:9px!important;line-height:1!important;white-space:nowrap!important}
body .sp-teacher-dashboard:not(.sp-teacher-library) #sp-teacher-students{background:#e8e0f2!important}body .sp-teacher-dashboard:not(.sp-teacher-library) #sp-teacher-classes{background:#f1da89!important}body .sp-teacher-dashboard:not(.sp-teacher-library) #sp-freeze-requests{background:#b8dcd8!important}body .sp-teacher-dashboard:not(.sp-teacher-library) #sp-activity-log{background:#e8f2f7!important}body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-attention{background:#fff6e7!important}body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-marketing-summary{background:#f4e8eb!important}
body .sp-teacher-dashboard:not(.sp-teacher-library) :is(.sp-teacher-student-list>a,.sp-teacher-pair-list article a,.sp-class-groups a){transition:border-color .18s ease,background .18s ease!important}body .sp-teacher-dashboard:not(.sp-teacher-library) :is(.sp-teacher-student-list>a,.sp-teacher-pair-list article a,.sp-class-groups a):hover{border-color:#8064a2!important;background:#fbf8fd!important}
.sp-teacher-cabinet-primary{border-color:#9cc9c4!important;background:#b8dcd8!important;color:#123b37!important;-webkit-text-fill-color:#123b37!important}.sp-teacher-primary{border-color:#8064a2!important;background:#8064a2!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
body.sp-settings-open{overflow:hidden!important}.sp-settings-overlay[hidden]{display:none!important}.sp-settings-overlay{position:fixed!important;z-index:2147483000!important;inset:0!important;display:grid!important;place-items:center!important;padding:20px!important;background:rgba(18,59,55,.28)!important;backdrop-filter:blur(7px)!important}
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-settings-overlay>#sp-legal-analytics{position:relative!important;width:min(900px,calc(100vw - 32px))!important;max-height:min(88vh,780px)!important;margin:0!important;padding:26px!important;overflow:auto!important;border:1px solid #d9cde5!important;border-radius:26px!important;background:#f7f1fa!important;box-shadow:0 28px 80px rgba(18,59,55,.22)!important}
.sp-settings-close{position:absolute!important;top:16px!important;right:16px!important;z-index:2!important;display:grid!important;place-items:center!important;width:38px!important;height:38px!important;padding:0!important;border:1px solid #d9cde5!important;border-radius:50%!important;background:#fff!important;color:#123b37!important;font-size:24px!important;line-height:1!important;cursor:pointer!important}
.sp-settings-overlay .sp-teacher-section-title{padding-right:50px!important}.sp-settings-overlay .sp-teacher-weekday-limits{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}.sp-settings-overlay .sp-teacher-weekday-limits>label{min-height:0!important;padding:11px!important;background:#fff!important}.sp-settings-overlay .sp-teacher-weekday-limits label>span{font-size:11px!important;font-weight:750!important}.sp-settings-overlay :is(input,select,textarea){min-height:40px!important}.sp-settings-actions{display:flex!important;justify-content:flex-end!important;gap:10px!important;margin-top:18px!important}.sp-settings-actions>button{width:auto!important;min-height:40px!important;padding:8px 15px!important;border:1px solid #d9cde5!important;border-radius:999px!important;background:#fff!important;color:#123b37!important}.sp-settings-actions>.sp-teacher-primary{background:#8064a2!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
@media(max-width:700px){body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-overview-grid .sp-teacher-next-row{grid-template-columns:48px minmax(0,1fr)!important}.sp-teacher-overview-grid .sp-teacher-next-row .sp-teacher-secondary{grid-column:1/-1!important;width:100%!important}.sp-settings-overlay{padding:7px!important}.sp-settings-overlay .sp-teacher-weekday-limits{grid-template-columns:1fr!important}.sp-settings-actions{flex-direction:column-reverse!important}.sp-settings-actions>button{width:100%!important}}
/* 3.14.59 — no green close controls; centred soft-colour settings actions. */
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-sections>a:nth-child(6){background:#e8e0f2!important}
.sp-settings-overlay .sp-teacher-section-title{padding-right:0!important}.sp-settings-actions{justify-content:center!important}.sp-settings-actions>button{min-width:170px!important;text-align:center!important}.sp-settings-actions>[data-sp-settings-close]{border-color:#ded2e8!important;background:#fff6e7!important;color:#4f3b61!important;-webkit-text-fill-color:#4f3b61!important}.sp-settings-actions>.sp-teacher-primary{border-color:#c9b6da!important;background:#e8e0f2!important;color:#3f3150!important;-webkit-text-fill-color:#3f3150!important}
body.sp-design-system-page :is(#sp-block-modal,#sp-open-slot-modal,#sp-manual-free-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[onclick^="spClose"],body.sp-design-system-page .sp-modal-close{border:1px solid #d8cbe3!important;background:#f3edf7!important;color:#51386a!important;-webkit-text-fill-color:#51386a!important}
@media(max-width:700px){.sp-settings-actions{align-items:center!important}.sp-settings-actions>button{width:min(100%,320px)!important}}
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-settings-overlay #sp-legal-analytics .sp-settings-actions>button[data-sp-settings-close]{border:1px solid #dfd1b7!important;background:#fff6e7!important;color:#4f3b61!important;-webkit-text-fill-color:#4f3b61!important}
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-settings-overlay #sp-legal-analytics .sp-settings-actions>.sp-teacher-primary{border:1px solid #c9b6da!important;background:#e8e0f2!important;color:#3f3150!important;-webkit-text-fill-color:#3f3150!important}
/* 3.14.61 — cabinet actions use only the established soft brand palette. */
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-marketing-summary{background:#fff6e7!important}
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-freeze-approve,
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-freezes .sp-freeze-actions .sp-freeze-approve{border:1px solid #9fcac5!important;background:#b8dcd8!important;background-color:#b8dcd8!important;color:#263b39!important;-webkit-text-fill-color:#263b39!important;box-shadow:none!important}
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-freeze-reject,
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-freezes .sp-freeze-actions .sp-freeze-reject{border:1px solid #d7c8e3!important;background:#e8e0f2!important;background-color:#e8e0f2!important;color:#4f3b61!important;-webkit-text-fill-color:#4f3b61!important;box-shadow:none!important}
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-freeze-workoff-form button{border:1px solid #c7dce7!important;background:#e8f2f7!important;background-color:#e8f2f7!important;color:#294957!important;-webkit-text-fill-color:#294957!important;box-shadow:none!important}
body .sp-teacher-dashboard:not(.sp-teacher-library) :is(.sp-teacher-primary,.sp-teacher-cabinet-primary){border-color:#c9b6da!important;background:#e8e0f2!important;background-color:#e8e0f2!important;color:#3f3150!important;-webkit-text-fill-color:#3f3150!important;box-shadow:none!important}
body .sp-teacher-dashboard:not(.sp-teacher-library) :is(.sp-teacher-primary,.sp-teacher-cabinet-primary):is(:hover,:focus,:active){border-color:#d5b94f!important;background:#f1da89!important;background-color:#f1da89!important;color:#3c351c!important;-webkit-text-fill-color:#3c351c!important}
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-slot-offer-form button{border:1px solid #d5b94f!important;background:#f1da89!important;color:#3c351c!important;-webkit-text-fill-color:#3c351c!important}
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-slot-offer-list button{background:transparent!important;color:#5e4775!important;-webkit-text-fill-color:#5e4775!important}
/* 3.14.64 — compact teacher insights and restored green schedule action. */
body .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-cabinet-actions>.sp-teacher-cabinet-primary{border:0!important;background:#123b37!important;background-color:#123b37!important;color:#fff!important;-webkit-text-fill-color:#fff!important;box-shadow:none!important}
body .sp-teacher-dashboard:not(.sp-teacher-library)>.sp-teacher-insights-grid{order:8!important;display:grid!important;grid-template-columns:1.15fr .85fr!important;gap:14px!important;margin:0 0 20px!important}
body .sp-teacher-dashboard:not(.sp-teacher-library)>.sp-teacher-insights-grid>section{min-width:0!important;margin:0!important;padding:18px!important;border:0!important;border-radius:21px!important;box-shadow:none!important}
body .sp-teacher-dashboard:not(.sp-teacher-library)>.sp-teacher-insights-grid>.sp-teacher-attention{background:#fff6e7!important}
body .sp-teacher-dashboard:not(.sp-teacher-library)>.sp-teacher-insights-grid>.sp-marketing-summary{background:#e8e0f2!important}
.sp-teacher-insights-grid .sp-teacher-section-title{margin-bottom:11px!important}.sp-teacher-insights-grid .sp-teacher-section-title>div>span{font-size:19px!important}.sp-teacher-insights-grid .sp-teacher-section-title p{margin-top:3px!important;font-size:11px!important}.sp-teacher-insights-grid .sp-teacher-weekday-limits{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}.sp-teacher-insights-grid .sp-teacher-weekday-limits>div{min-height:62px!important;padding:10px!important;border:0!important;border-radius:13px!important;background:rgba(255,255,255,.72)!important}.sp-teacher-insights-grid .sp-teacher-weekday-limits strong{font-size:16px!important}.sp-teacher-insights-grid .sp-teacher-weekday-limits span{font-size:10px!important;line-height:1.25!important}
body .sp-teacher-dashboard:not(.sp-teacher-library)>#sp-activity-log{background:#b8dcd8!important}
@media(max-width:820px){body .sp-teacher-dashboard:not(.sp-teacher-library)>.sp-teacher-insights-grid{grid-template-columns:1fr!important}}


/* content-images-3-3-40.css */
/* Content imagery keeps its natural rectangular form. Avatars are excluded. */
body :where(
    .sp-image-carousel figure img,
    .sp-image-viewer-stage img,
    .sp-image-scroll > img,
    .sp-article-image img,
    .sp-article-image-editor img,
    .sp-image-word-item > img,
    .sp-image-word-editor-item > img,
    .sp-book-cover-editor img,
    .sp-book-screen-cover,
    .sp-teacher-book-cover,
    .sp-chat-photo img,
    .sp-chat-bubble img,
    .sp-chat-photo-viewer img,
    .sp-essay-image img,
    [data-image-crop-previews] figure img,
    .sp-crop-preview img
) {
    border-radius: 0 !important;
    clip-path: none !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
}

body :where(
    .sp-book-cover-editor > div,
    .sp-image-words-crop-stage,
    .sp-crop-preview
) {
    border-radius: 0 !important;
}


/* interaction-lock-3-3-57.css */
/* Static informational elements: these are labels, not interactive buttons. */
body.sp-native-home-page .elementor .sp-el-home .sp-el-chips span,
body.sp-native-home-page .elementor .sp-el-home .sp-el-chips span:hover,
body.sp-native-home-page .elementor .sp-el-home .sp-el-chips span:focus,
.sp-home .sp-home-proof span,
.sp-home .sp-home-proof span:hover,
.sp-home .sp-home-proof span:focus {
    background: #b8dcd8 !important;
    color: #111 !important;
    -webkit-text-fill-color: #111 !important;
    border-color: transparent !important;
    box-shadow: none !important;
    filter: none !important;
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
    cursor: default !important;
}

/* The cookie-settings control remains a text link when hovered or focused. */
.sp-elementor-site-footer button[data-sp-cookie-settings],
.sp-elementor-site-footer button[data-sp-cookie-settings]:hover,
.sp-elementor-site-footer button[data-sp-cookie-settings]:focus,
.sp-site-footer button[data-sp-cookie-settings],
.sp-site-footer button[data-sp-cookie-settings]:hover,
.sp-site-footer button[data-sp-cookie-settings]:focus {
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: inherit !important;
    -webkit-text-fill-color: currentColor !important;
    box-shadow: none !important;
    filter: none !important;
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
    text-decoration: underline !important;
    font: inherit !important;
}


/* schedule-modal-3-3-58.css */
body.sp-schedule-modal-open {
    overflow: hidden !important;
    height: 100% !important;
    overscroll-behavior: none !important;
}

html:has(body.sp-schedule-modal-open) {
    overflow: hidden !important;
    height: 100% !important;
}

#sp-lesson-actions-modal {
    padding: 16px !important;
    overflow: hidden !important;
    overscroll-behavior: contain !important;
    box-sizing: border-box !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
) {
    padding: 12px !important;
    overflow: hidden !important;
    overscroll-behavior: contain !important;
    box-sizing: border-box !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 {
    max-height: calc(100vh - 24px) !important;
    max-height: calc(100dvh - 24px) !important;
    overflow-x: hidden !important;
    overflow-y: scroll !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    touch-action: pan-y !important;
    scrollbar-gutter: stable !important;
    box-sizing: border-box !important;
}

#sp-student-lesson-modal > div,
#sp-student-reschedule-modal > div {
    width: min(760px, calc(100vw - 24px)) !important;
}

#sp-pending-reschedule-modal > div,
#sp-freeze-workoff-modal > div,
#sp-lesson-modal > div {
    width: min(820px, calc(100vw - 24px)) !important;
}

#sp-lesson-actions-modal > div {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 12px !important;
    width: min(960px, calc(100vw - 32px)) !important;
    height: auto !important;
    max-height: calc(100vh - 24px) !important;
    max-height: calc(100dvh - 24px) !important;
    padding: 26px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    scrollbar-gutter: stable !important;
    box-sizing: border-box !important;
}

#sp-lesson-actions-modal > div > h3,
#sp-lesson-actions-modal > div > #sp-actions-open-class,
#sp-lesson-actions-modal > div > hr,
#sp-lesson-actions-modal > div > h4,
#sp-lesson-actions-modal > div > form:last-of-type {
    grid-column: 1 / -1 !important;
}

#sp-lesson-actions-modal > div > h3,
#sp-lesson-actions-modal > div > h4,
#sp-lesson-actions-modal > div > hr,
#sp-lesson-actions-modal > div > form {
    margin: 0 !important;
}

#sp-lesson-actions-modal > div > form:not(:last-of-type) > button,
#sp-lesson-actions-modal > div > #sp-actions-open-class {
    width: 100% !important;
    min-height: 44px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

#sp-lesson-actions-modal > div > form:last-of-type {
    display: grid !important;
    grid-template-columns: minmax(180px, 1.35fr) minmax(120px, .8fr) minmax(120px, .8fr) minmax(170px, 1fr) !important;
    gap: 12px !important;
    align-items: end !important;
}

#sp-lesson-actions-modal > div > form:last-of-type label {
    display: grid !important;
    gap: 6px !important;
    margin: 0 !important;
}

#sp-lesson-actions-modal > div > form:last-of-type input,
#sp-lesson-actions-modal > div > form:last-of-type button {
    width: 100% !important;
    min-height: 44px !important;
    box-sizing: border-box !important;
}

@media (max-width: 760px) {
    #sp-lesson-actions-modal {
        padding: 10px !important;
        align-items: flex-start !important;
    }

    #sp-lesson-actions-modal > div {
        grid-template-columns: 1fr !important;
        width: calc(100vw - 20px) !important;
        max-height: calc(100dvh - 20px) !important;
        padding: 22px 18px !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
    ) {
        padding: 6px !important;
        align-items: flex-start !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: calc(100vw - 12px) !important;
        max-height: calc(100vh - 12px) !important;
        max-height: calc(100dvh - 12px) !important;
    }

    #sp-lesson-actions-modal > div > *,
    #sp-lesson-actions-modal > div > form:last-of-type {
        grid-column: 1 !important;
    }

    #sp-lesson-actions-modal > div > form:last-of-type {
        grid-template-columns: 1fr !important;
    }
}


/* brand-3-4-0.css */
: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-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}}


/* finish-3-4-1.css */
/* Student cabinet: a quiet lilac heading; navigation stays in the useful links. */
.sp-student-hero{display:block!important;margin:0 0 24px!important;padding:25px 28px!important;border:0!important;border-radius:26px!important;background:#e8e0f2!important;color:#002f2b!important;box-shadow:none!important}
.sp-student-hero p,.sp-student-hero h1{margin:0!important;color:#002f2b!important}.sp-student-hero p{font-size:14px!important;font-weight:800!important}.sp-student-hero h1{margin-top:4px!important;font-size:clamp(27px,4vw,42px)!important}.sp-student-hero>span,.sp-student-hero>nav{display:none!important}
.sp-dashboard-navigation-grid>a{display:grid!important;grid-template-columns:48px minmax(0,1fr)!important;grid-template-rows:auto auto!important;column-gap:14px!important;align-items:center!important}
.sp-dashboard-navigation-grid>a>b{grid-row:1/3;display:grid!important;place-items:center!important;width:46px!important;height:46px!important;border-radius:15px!important;background:#002f2b!important;color:#fff!important;font-size:23px!important}
.sp-dashboard-navigation-grid>a>strong,.sp-dashboard-navigation-grid>a>span{grid-column:2!important}

/* Teacher lesson template mirrors the actual classroom workspace. */
body.sp-library-lesson-mode .sp-library-lesson-studio{background:#fff6e7!important}
body.sp-library-lesson-mode .sp-library-lesson-studio>header{border:0!important;background:#fff6e7!important}
body.sp-library-lesson-mode .sp-template-classroom{gap:14px!important;padding:14px!important;background:#fff6e7!important}
body.sp-library-lesson-mode .sp-template-classroom>main{padding:22px!important;border:0!important;border-radius:25px!important;background:#fff!important;box-shadow:none!important}
body.sp-library-lesson-mode .sp-template-tools{padding:9px!important;border:0!important;border-radius:22px!important;background:#fff6e7!important}
body.sp-library-lesson-mode .sp-template-tools>:is(a,button):nth-child(3n+1){background:#c4b2d7!important}body.sp-library-lesson-mode .sp-template-tools>:is(a,button):nth-child(3n+2){background:#f4d67f!important}body.sp-library-lesson-mode .sp-template-tools>:is(a,button):nth-child(3n+3){background:#add9d6!important}
body.sp-library-lesson-mode .sp-template-right-column>*{border:0!important;border-radius:25px!important;background:#fff!important;box-shadow:none!important}

/* Exercise images and every surrounding viewport are genuinely rectangular. */
body :where(.sp-lesson-exercise-card img,.sp-image-carousel,.sp-image-carousel figure,.sp-image-carousel figure>button,.sp-open-annotated-image,.sp-image-viewer-stage,.sp-image-scroll,.sp-article-image,.sp-essay-image,.sp-image-word-item,.sp-image-word-item>button){border-radius:0!important;clip-path:none!important;-webkit-mask-image:none!important;mask-image:none!important}
body :where(.sp-lesson-exercise-card img,.sp-image-carousel img,.sp-image-viewer-stage img,.sp-image-scroll>img,.sp-article-image img,.sp-essay-image img,.sp-image-word-item>img){border-radius:0!important}

/* Timer is one continuous cream card without a white lower strip. */
.sp-timer-dialog,.sp-timer-dialog>.sp-class-timer{background:#fff6e7!important}.sp-timer-dialog{height:auto!important;min-height:0!important;padding:0!important;overflow:hidden!important}.sp-timer-dialog>.sp-class-overlay-close{z-index:3;top:14px!important;right:14px!important;background:#fff!important}.sp-class-timer{width:100%!important;box-sizing:border-box!important;padding:34px 28px 30px!important;border-radius:24px!important}.sp-class-timer button{background:#add9d6!important;border-color:#add9d6!important;color:#002f2b!important}.sp-class-timer .sp-timer-controls button:first-child{background:#002f2b!important;border-color:#002f2b!important;color:#fff!important}

/* Dictionary and chat use clean white surfaces. */
.sp-dictionary-dialog,.sp-class-dictionary,.sp-class-dictionary>header,.sp-dictionary-words>div{background:#fff!important}.sp-class-dictionary>header{padding:0 38px 0 0!important}.sp-dictionary-words>div{border-color:#add9d6!important}.sp-class-chat,.sp-class-chat>header,.sp-chat-compose{background:#fff!important}.sp-class-chat>header{border-bottom-color:#add9d6!important}

/* Larger, lighter and stable embedded Zoom controls. */
.sp-class-call-card:has(.sp-zoom-call){padding:0!important;overflow:hidden!important;background:#fff6e7!important}.sp-zoom-call{min-width:0!important;overflow:hidden!important;border-radius:24px!important;background:#fff6e7!important}.sp-zoom-placeholder{min-height:250px!important;padding:28px!important;justify-content:center!important}.sp-zoom-placeholder>span{font-size:46px!important}.sp-zoom-placeholder h2{color:#002f2b!important;font-size:24px!important}.sp-zoom-brand-button{width:auto!important;min-width:220px!important;min-height:58px!important;padding:15px 25px!important;font-size:17px!important}.sp-zoom-root{width:100%!important;min-height:650px!important;overflow:hidden!important;border-radius:24px!important;background:#fff6e7!important;color:#002f2b!important}

/* Cookie settings are literally the same flex item and typography as links. */
.sp-elementor-site-footer nav>button.sp-footer-cookie-label,.sp-site-footer nav>button[data-sp-cookie-settings]{display:inline-flex!important;align-items:baseline!important;width:auto!important;min-width:0!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;color:inherit!important;font-family:inherit!important;font-size:inherit!important;font-style:inherit!important;font-weight:inherit!important;line-height:inherit!important;letter-spacing:inherit!important;text-decoration:underline!important;vertical-align:baseline!important;appearance:none!important;-webkit-appearance:none!important}

/* Searchable private Zoom library. */
.sp-zoom-library>header{justify-content:flex-start}.sp-zoom-library-all{margin-left:auto!important}.sp-zoom-library-filter{display:grid;grid-template-columns:190px minmax(220px,1fr) auto auto;gap:12px;align-items:end;margin:20px 0}.sp-zoom-library-filter label{display:grid;gap:5px;font-weight:800}.sp-zoom-library-filter input{height:44px;padding:9px 12px;border:1px solid rgba(0,47,43,.25);border-radius:12px;background:#fff;font:inherit}.sp-zoom-library-filter button,.sp-zoom-library-filter>a,.sp-zoom-library-all{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 14px;border:0;border-radius:999px;background:#002f2b;color:#fff!important;text-decoration:none!important;font-weight:800}.sp-zoom-library article nav{display:flex;gap:6px;justify-content:flex-end}.sp-zoom-library article nav em{padding:8px 0;color:rgba(0,47,43,.65);font-style:normal}

@media(max-width:760px){.sp-dashboard-navigation-grid>a{grid-template-columns:44px minmax(0,1fr)!important}.sp-zoom-root{min-height:540px!important}.sp-zoom-library-filter{grid-template-columns:1fr}.sp-zoom-library>header{align-items:flex-start;flex-wrap:wrap}.sp-zoom-library-all{margin-left:0!important}}


/* finish-3-4-2.css */
/* Student dashboard: icon tiles carry the same colour as their destination card. */
.sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid>a>b{border:0!important;color:#002f2b!important;box-shadow:none!important}
.sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid>a:nth-child(1)>b,.sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid>a:nth-child(2)>b,.sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid>a:nth-child(3)>b,.sp-student-dashboard #sp-dashboard-useful .sp-dashboard-navigation-grid>a:nth-child(4)>b{background:#fff!important}

/* Lesson template: exact real-class tool glyphs, order, sizing and palette. */
body.sp-library-lesson-mode .sp-template-tools{gap:10px!important;padding:15px 9px!important;border-radius:0!important;background:#fff6e7!important}
body.sp-library-lesson-mode .sp-template-tools>button{opacity:1!important;filter:none!important;border:0!important;border-radius:15px!important;color:#002f2b!important}
body.sp-library-lesson-mode .sp-template-tools>button:nth-child(1){background:#c4b2d7!important}
body.sp-library-lesson-mode .sp-template-tools>button:nth-child(2){background:#f4d67f!important}
body.sp-library-lesson-mode .sp-template-tools>button:nth-child(3){background:#add9d6!important}
body.sp-library-lesson-mode .sp-template-tools>button:nth-child(4){background:#fff!important}
body.sp-library-lesson-mode .sp-template-tools>button>svg{display:block!important;width:31px!important;height:31px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.75!important;stroke-linecap:round!important;stroke-linejoin:round!important}

/* Footer cookie control: same box metrics and baseline as every neighbour link. */
.sp-elementor-site-footer nav{align-items:baseline!important}
.sp-elementor-site-footer nav>a,.sp-elementor-site-footer nav>button.sp-footer-cookie-label{display:inline!important;box-sizing:content-box!important;width:auto!important;min-width:0!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:none!important;color:inherit!important;font:inherit!important;font-size:inherit!important;font-weight:inherit!important;line-height:inherit!important;letter-spacing:inherit!important;text-decoration:underline!important;vertical-align:baseline!important;transform:none!important}

/* Stable branded frame around the embedded Zoom client. */
.sp-class-call-card:has(.sp-zoom-call){align-self:start!important;min-width:0!important;max-width:100%!important;overflow:hidden!important;border-radius:24px!important}
.sp-zoom-call{position:relative!important;width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important;transform:none!important;translate:none!important;transition:none!important;animation:none!important;overflow:hidden!important;border:0!important;border-radius:24px!important;background:#fff6e7!important;box-shadow:none!important}
.sp-zoom-frame-bar{position:relative;z-index:5;display:flex!important;align-items:center;justify-content:space-between;gap:12px;min-height:58px;padding:8px 12px 8px 18px;background:#c4b2d7!important;color:#002f2b!important}
.sp-zoom-frame-bar strong{font-size:16px}
.sp-zoom-hint{max-width:330px!important;margin:2px auto 0!important;color:#002f2b!important;font-size:13px!important;line-height:1.45!important}
.sp-zoom-placeholder{min-height:210px!important}.sp-zoom-root{position:relative!important;inset:auto!important;isolation:isolate!important;width:100%!important;max-width:100%!important;height:650px!important;min-height:0!important;margin:0!important;transform:none!important;translate:none!important;overflow:hidden!important;overscroll-behavior:contain!important;background:#fff6e7!important}
.sp-zoom-call[data-zoom-size="compact"] .sp-zoom-root{height:430px!important}.sp-zoom-call[data-zoom-size="normal"] .sp-zoom-root{height:650px!important}.sp-zoom-call[data-zoom-size="large"] .sp-zoom-root{height:min(780px,calc(100vh - 150px))!important;min-height:620px!important}
.sp-zoom-call.is-joined .sp-zoom-frame-bar{display:flex!important}.sp-zoom-root>div{width:100%!important;height:100%!important;max-width:100%!important}
.sp-video-preview .sp-video-tile.is-local video,.sp-video-preview video[data-video-self]{transform:none!important;scale:1 1!important}

/* During a call only actual lesson parts collapse into a tool below the timer. */
.sp-lesson-sections-tool{display:none!important;position:relative!important;height:52px!important;padding:8px!important;border:0!important;border-radius:16px!important;background:#f4d67f!important;color:#002f2b!important}.sp-lesson-sections-tool svg{width:27px!important;height:27px!important}.sp-class-workspace.is-call-active .sp-lesson-sections-tool{display:flex!important}.sp-class-workspace.is-call-active .sp-class-lesson-sections{display:none!important}
.sp-lesson-sections-overlay{align-items:center!important;justify-content:center!important;padding:24px!important;background:rgba(0,47,43,.28)!important;backdrop-filter:blur(7px)}.sp-lesson-sections-dialog{width:min(470px,calc(100vw - 40px))!important;height:auto!important;max-height:calc(100vh - 48px)!important;padding:26px!important;border:0!important;border-radius:28px!important;background:#fff6e7!important;box-shadow:0 28px 80px rgba(0,47,43,.24)!important}.sp-lesson-sections-dialog>header{display:flex;align-items:center;gap:13px;padding-right:38px}.sp-lesson-sections-dialog>header>span{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:#c4b2d7;color:#002f2b;font-size:22px}.sp-lesson-sections-dialog header small{display:block;max-width:300px;overflow:hidden;color:#54706d;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.sp-lesson-sections-dialog h2{margin:2px 0 0;color:#002f2b;font-size:24px}.sp-lesson-sections-dialog nav{display:grid;gap:10px;margin-top:22px}.sp-lesson-sections-dialog nav button{display:grid!important;grid-template-columns:44px minmax(0,1fr)!important;gap:12px!important;align-items:center!important;min-height:64px!important;padding:10px 14px!important;border:2px solid transparent!important;border-radius:18px!important;background:#e8e0f2!important;color:#002f2b!important;text-align:left!important;cursor:pointer!important}.sp-lesson-sections-dialog nav button:nth-child(3n+2){background:#f4d67f!important}.sp-lesson-sections-dialog nav button:nth-child(3n){background:#add9d6!important}.sp-lesson-sections-dialog nav button.is-active{border-color:#002f2b!important;box-shadow:0 8px 22px rgba(0,47,43,.12)!important}.sp-lesson-sections-dialog nav button>span{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:rgba(255,255,255,.72);font-size:16px;font-weight:900}.sp-lesson-sections-dialog nav strong{font-size:16px}
@media(min-width:1025px){.sp-class-content-grid:has(.sp-zoom-call[data-zoom-size="compact"]){grid-template-columns:minmax(0,1fr) 320px!important}.sp-class-content-grid:has(.sp-zoom-call[data-zoom-size="normal"]){grid-template-columns:minmax(0,1fr) 420px!important}.sp-class-content-grid:has(.sp-zoom-call[data-zoom-size="large"]){grid-template-columns:minmax(0,1fr) 560px!important}}
@media(min-width:1025px){.sp-class-content-grid:has(.sp-zoom-call){grid-template-columns:minmax(0,1fr) minmax(480px,540px)!important}.sp-zoom-root{height:600px!important;min-height:600px!important}}

/* Online presence appears temporarily above the call instead of behind it. */
.sp-class-topbar{z-index:10020!important;overflow:visible!important}.sp-class-top-actions,.sp-class-presence-stack,.sp-presence-avatar{z-index:10021!important;overflow:visible!important}.sp-presence-popover{z-index:10030!important}

/* Zoom library is lower and uses soft brand actions instead of emerald pills. */
.sp-teacher-dashboard:not(.sp-teacher-library)>.sp-teacher-next{order:4!important}
.sp-teacher-dashboard:not(.sp-teacher-library)>.sp-zoom-library{order:5!important}
.sp-teacher-dashboard:not(.sp-teacher-library)>#sp-teacher-students{order:6!important}
.sp-teacher-dashboard:not(.sp-teacher-library)>#sp-teacher-classes{order:7!important}
.sp-teacher-dashboard:not(.sp-teacher-library)>.sp-teacher-attention{order:8!important}
.sp-teacher-dashboard:not(.sp-teacher-library)>.sp-marketing-summary{order:9!important}
.sp-teacher-dashboard:not(.sp-teacher-library)>#sp-booking-limits{order:10!important}
.sp-teacher-dashboard:not(.sp-teacher-library)>#sp-activity-log{order:11!important}
.sp-teacher-dashboard:not(.sp-teacher-library)>#sp-legal-analytics{order:12!important}
.sp-teacher-dashboard .sp-zoom-library{margin-top:22px!important;margin-bottom:28px!important;background:#e8e0f2!important}.sp-zoom-library header>span{background:#add9d6!important;color:#002f2b!important}.sp-zoom-library :is(.sp-zoom-library-all,.sp-zoom-library-filter button,.sp-zoom-library-filter>a,.sp-zoom-library article nav a){border:1px solid rgba(0,47,43,.18)!important;background:#fff6e7!important;color:#002f2b!important;-webkit-text-fill-color:#002f2b!important;box-shadow:none!important}.sp-zoom-library .sp-zoom-library-filter button{background:#add9d6!important}

@media(max-width:760px){.sp-zoom-call[data-zoom-size="large"] .sp-zoom-root{height:min(720px,calc(100vh - 120px))!important;min-height:520px!important}.sp-zoom-root,.sp-zoom-call[data-zoom-size="normal"] .sp-zoom-root{height:560px!important}.sp-zoom-frame-bar{padding-left:13px}.sp-zoom-frame-bar strong{font-size:14px}}

/* Keep the lesson-section strip in normal flow immediately below Zoom. */
.sp-class-right-column[data-zoom-slot]{display:flex!important;flex-direction:column!important;align-items:stretch!important;min-width:0!important;max-width:100%!important;overflow:visible!important}.sp-class-right-column[data-zoom-slot]>.sp-class-call-card{order:1!important;flex:0 0 auto!important;width:100%!important;max-width:100%!important}.sp-class-right-column[data-zoom-slot]>.sp-class-lesson-sections{position:relative!important;z-index:2!important;order:2!important;flex:0 0 auto!important;width:100%!important;box-sizing:border-box!important;margin:12px 0 0!important;border-radius:18px!important;background:#e8e0f2!important;color:#002f2b!important}
@media(min-width:1240px){.sp-class-content-grid:has(.sp-zoom-call){grid-template-columns:minmax(0,1fr) minmax(680px,720px)!important;max-width:1440px!important}.sp-zoom-root{height:600px!important;min-height:600px!important}}
@media(min-width:761px) and (max-width:1239px){.sp-class-content-grid:has(.sp-zoom-call){grid-template-columns:1fr!important;max-width:980px!important}.sp-class-right-column[data-zoom-slot]{width:100%!important}}


/* zoom-clean-3-7-7.css */
/* One launch button; after joining, the Zoom SDK itself is the only floating surface. */
body:has(.sp-classroom) .sp-class-content-grid{grid-template-columns:minmax(0,1fr) 220px!important;gap:14px!important;align-items:start!important}
body:has(.sp-classroom) .sp-class-right-column[data-zoom-slot]{display:flex!important;flex-direction:column!important;min-width:0!important;overflow:visible!important}
.sp-class-zoom-button{position:sticky;top:72px;width:100%;z-index:10}
.sp-zoom-launch{width:100%}
.sp-zoom-launch [data-zoom-join]{display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;min-width:0!important;min-height:48px!important;margin:0!important;padding:11px 15px!important;border:1px solid rgba(0,47,43,.16)!important;border-radius:16px!important;background:#c4b2d7!important;color:#002f2b!important;-webkit-text-fill-color:#002f2b!important;font-weight:800!important;box-shadow:0 8px 20px rgba(0,47,43,.1)!important}
.sp-zoom-launch [data-zoom-status]{display:block;margin-top:7px;font-size:13px;line-height:1.35;color:#002f2b}
.sp-zoom-launch.is-joined{display:none!important}
.sp-zoom-window{position:fixed!important;z-index:99990!important;inset:6px 14px auto auto!important;width:min(420px,calc(100vw - 28px))!important;height:min(400px,calc(100dvh - 12px))!important;min-width:0!important;min-height:0!important;max-width:calc(100vw - 28px)!important;max-height:calc(100dvh - 12px)!important;margin:0!important;padding:0!important;overflow:visible!important;resize:none!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;transform:none!important;translate:none!important;pointer-events:auto!important;touch-action:none!important;cursor:grab!important}
.sp-zoom-window.is-dragging{cursor:grabbing!important}.sp-zoom-window>div{box-sizing:border-box!important;width:100%!important;height:100%!important;min-height:0!important;max-height:100%!important;overflow:visible!important}
.sp-zoom-window.is-sharing{top:2px!important;width:min(var(--sp-zoom-share-width,520px),calc(100vw - 4px))!important;height:min(var(--sp-zoom-share-height,400px),calc(100dvh - 4px))!important;max-height:calc(100dvh - 4px)!important;overflow:auto!important;overscroll-behavior:contain!important;scrollbar-width:thin!important}
.sp-zoom-window.is-sharing>div{height:100%!important;min-height:0!important;max-height:100%!important;overflow:auto!important}
body>[class*="zm-"],body>[id*="zm-"],body>[class*="zoom" i]:not(.sp-zoom-window){z-index:100000!important}
body:has(.sp-classroom) .sp-class-lesson-sections{display:none!important}
@media(max-width:880px){body:has(.sp-classroom) .sp-class-content-grid{grid-template-columns:1fr!important}.sp-class-zoom-button{position:relative;top:auto;max-width:220px;margin:0 0 12px auto}}
@media(max-width:600px){.sp-zoom-window{inset:6px 6px auto auto!important;width:calc(100vw - 12px)!important;height:min(400px,calc(100dvh - 12px))!important;max-width:none!important}}


/* schedule-controls-3-8-5.css */
/* Student schedule controls: timezone and week navigation share one row. */
.student-calendar .sp-student-calendar-controls {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 18px !important;
    width: 100% !important;
    margin: 0 0 20px !important;
}

.student-calendar .sp-student-calendar-controls .sp-calendar-timezone {
    flex: 0 0 auto !important;
    margin: 0 !important;
}

.student-calendar .sp-student-calendar-controls .student-calendar-nav {
    flex: 1 1 auto !important;
    justify-content: flex-end !important;
    min-width: 0 !important;
}

@media (max-width: 1180px) {
    .student-calendar .sp-student-calendar-controls {
        align-items: flex-start !important;
        flex-wrap: wrap !important;
    }

    .student-calendar .sp-student-calendar-controls .student-calendar-nav {
        flex-basis: 100% !important;
        justify-content: flex-start !important;
    }
}

@media (max-width: 760px) {
    .student-calendar .sp-student-calendar-controls {
        gap: 12px !important;
    }

    .student-calendar .sp-student-calendar-controls .sp-calendar-timezone {
        width: 100% !important;
    }
}


/* release-3-8-6.css */
/* Final 3.8.6 corrections: clean auth, classroom hierarchy and teacher follow controls. */
.sp-auth,.sp-auth-card,.sp-registration,.sp-registration-card,.sp-auth-logout,.sp-auth-logout-page .sp-auth-card{
  border:0!important;
  box-shadow:none!important;
}
.sp-auth,.sp-registration{background:transparent!important;overflow:visible!important}
.sp-current-lesson{align-items:stretch!important;justify-content:flex-start!important;text-align:left!important;padding-top:24px!important}
.sp-current-lesson>.sp-current-lesson-icon{display:none!important}
.sp-current-lesson>h1{margin:0 0 18px!important;font-size:clamp(25px,3vw,36px)!important;line-height:1.12!important;text-align:left!important}
.sp-class-assigned-exercises article{position:relative;padding:22px!important}
.sp-class-assigned-exercises article>strong{display:block;padding-right:62px;font-size:clamp(20px,2.2vw,27px)!important;line-height:1.2!important;color:#002f2b!important}
.sp-exercise-follow-menu{position:absolute;z-index:5;top:14px;right:14px}
.sp-exercise-follow-menu>button{display:grid!important;place-items:center!important;width:42px!important;height:38px!important;padding:0!important;border:1px solid #c4b2d7!important;border-radius:12px!important;background:#fff!important;color:#002f2b!important;font-weight:900!important;letter-spacing:2px!important}
.sp-exercise-follow-menu>div{position:absolute;top:44px;right:0;width:190px;padding:7px;border-radius:14px;background:#fff;box-shadow:0 14px 38px rgba(0,47,43,.18)}
.sp-exercise-follow-menu>div[hidden]{display:none!important}
.sp-exercise-follow-menu>div button{width:100%;padding:11px 13px;border:0;border-radius:10px;background:#fff6e7;color:#002f2b;font-weight:800;text-align:left}
.sp-class-follow-button,.sp-class-return-student{position:fixed!important;z-index:2147482500!important;right:24px!important;bottom:22px!important;min-height:48px!important;padding:0 20px!important;border:0!important;border-radius:999px!important;background:#123b37!important;color:#fff!important;font-weight:850!important;box-shadow:0 12px 32px rgba(0,47,43,.25)!important}
.sp-class-return-student{right:142px!important;background:#b42318!important}
.sp-class-return-student[hidden]{display:none!important}
.sp-class-panel[data-class-panel="board"]{height:calc(100vh - 92px);overflow:hidden}
.sp-class-panel[data-class-panel="board"] .sp-whiteboard{height:100%!important;min-height:0!important}
.sp-class-assigned-exercises article.is-teacher-focus{animation:spTeacherFocus .85s ease-in-out 6;border-color:#d92d20!important;box-shadow:0 0 0 4px rgba(217,45,32,.2)!important}
@keyframes spTeacherFocus{0%,100%{background:#fff}50%{background:#ffe4e1}}
@media(max-width:760px){.sp-class-follow-button,.sp-class-return-student{right:12px!important;bottom:12px!important}.sp-class-return-student{bottom:68px!important}.sp-current-lesson{padding-top:16px!important}.sp-class-assigned-exercises article>strong{font-size:20px!important}}


/* release-3-8-7.css */
/* 3.8.7: an obvious board exit and one contextual teacher follow control. */
.sp-class-follow-button{
  left:50%!important;
  right:auto!important;
  bottom:22px!important;
  transform:translateX(-50%)!important;
}
.sp-class-follow-button[hidden]{display:none!important}
.sp-class-follow-button:disabled{opacity:.65!important;cursor:wait!important}
.sp-class-panel[data-class-panel="board"]{position:relative}
.sp-board-return-to-lesson{
  position:absolute!important;
  z-index:80!important;
  top:14px!important;
  left:84px!important;
  display:grid!important;
  place-items:center!important;
  width:44px!important;
  height:44px!important;
  padding:0!important;
  border:1px solid rgba(0,47,43,.16)!important;
  border-radius:999px!important;
  background:#fff6e7!important;
  color:#002f2b!important;
  box-shadow:0 8px 22px rgba(0,47,43,.16)!important;
  font-size:26px!important;
  font-weight:900!important;
  line-height:1!important;
  cursor:pointer!important;
}
.sp-class-panel[data-class-panel="board"] .sp-board-heading{left:108px!important}
@media(max-width:760px){
  .sp-class-follow-button{left:50%!important;right:auto!important;bottom:12px!important}
  .sp-board-return-to-lesson{top:10px!important;left:76px!important;width:40px!important;height:40px!important}
  .sp-class-panel[data-class-panel="board"] .sp-board-heading{left:98px!important}
}


/* release-3-8-8.css */
/* 3.8.8: fixed classroom tools, centred next lesson and right-side board exit. */
.sp-board-return-to-lesson{
  right:18px!important;
  left:auto!important;
}
.sp-class-panel[data-class-panel="board"] .sp-board-heading{
  left:22px!important;
}
.sp-current-lesson .sp-class-next-lesson{
  display:flex!important;
  width:min(440px,100%)!important;
  margin:28px auto 0!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:3px!important;
  text-align:center!important;
}
.sp-current-lesson .sp-class-next-lesson>span,
.sp-current-lesson .sp-class-next-lesson>strong,
.sp-current-lesson .sp-class-next-lesson>p{
  width:100%!important;
  margin-right:0!important;
  margin-left:0!important;
  text-align:center!important;
}
.sp-class-sidebar{
  position:sticky!important;
  z-index:200!important;
  top:0!important;
  align-self:start!important;
  width:72px!important;
  height:100vh!important;
  height:100dvh!important;
  max-height:100dvh!important;
  overflow:visible!important;
  flex-wrap:nowrap!important;
}
.sp-class-sidebar>a,
.sp-class-sidebar>button{
  flex:0 0 auto!important;
}
@media(max-width:480px){
  .sp-board-return-to-lesson{right:10px!important;left:auto!important}
  .sp-class-sidebar{width:62px!important}
}


/* release-3-8-9.css */
/* 3.8.9: keep the board exit available above the live call. */
.sp-board-return-to-lesson{
  position:fixed!important;
  top:86px!important;
  right:18px!important;
  left:auto!important;
  z-index:100001!important;
  pointer-events:auto!important;
}
@media(max-width:480px){
  .sp-board-return-to-lesson{right:10px!important;left:auto!important}
}


/* release-3-9-0.css */
/* 3.9.0: immediate exercise focus, call-safe student card and responsive guardrails. */
.sp-class-overlay[data-class-overlay="student-info"]{
  z-index:100010!important;
  pointer-events:auto!important;
}
.sp-class-overlay[data-class-overlay="student-info"] .sp-student-info-dialog{
  z-index:100011!important;
  pointer-events:auto!important;
}
.sp-class-assigned-exercises article.is-teacher-focus{
  scroll-margin-block:20vh!important;
  animation:spTeacherFocus .85s ease-in-out 6!important;
}
body :where(.student-dashboard,.sp-teacher-dashboard,.sp-schedule-wrapper,.sp-profile-wrapper,.sp-faq,.sp-lesson-prices,.sp-lesson-rules,.sp-teacher-library){
  max-width:100%!important;
}
body :where(.student-dashboard,.sp-teacher-dashboard,.sp-schedule-wrapper,.sp-profile-wrapper,.sp-teacher-library) :where(img,video,canvas,iframe){
  max-width:100%!important;
}
@media(max-width:760px){
  body .elementor-location-header>.elementor-element-5bbf68cc{
    width:100%!important;
    min-height:72px!important;
    height:72px!important;
    padding:0!important;
    border-radius:0 0 20px 20px!important;
  }
  body .elementor-location-header .elementor-element-665f5bb0{
    display:grid!important;
    grid-template-columns:1fr auto!important;
    align-items:center!important;
    width:calc(100% - 24px)!important;
    max-width:none!important;
    min-height:72px!important;
    height:72px!important;
    margin:0 12px!important;
    padding:10px 8px!important;
  }
  body .elementor-location-header :is(.elementor-element-2733039,.elementor-element-ce10b68){display:none!important}
  body .elementor-location-header .elementor-element-6d88dbb7{grid-column:1!important;margin:0!important}
  body .elementor-location-header .elementor-element-57e385a9{grid-column:2!important;margin:0!important}
  body .elementor-location-header .elementor-menu-toggle{margin:0!important}
  body .student-calendar{
    width:100%!important;
    max-width:100%!important;
    margin:24px 0 60px!important;
    overflow-x:auto!important;
  }
  .sp-class-overlay[data-class-overlay="student-info"]{
    padding:66px 10px 10px!important;
  }
  .sp-class-overlay[data-class-overlay="student-info"] .sp-student-info-dialog{
    top:0!important;
    right:auto!important;
    left:auto!important;
    width:min(100%,520px)!important;
    max-width:100%!important;
    max-height:calc(100dvh - 76px)!important;
    margin:0 auto!important;
  }
  body :where(.student-dashboard,.sp-teacher-dashboard,.sp-schedule-wrapper,.sp-profile-wrapper,.sp-faq,.sp-lesson-prices,.sp-lesson-rules,.sp-teacher-library){
    width:calc(100vw - 24px)!important;
    margin-right:auto!important;
    margin-left:auto!important;
  }
  body :where(.sp-dashboard-actions,.sp-schedule-controls,.sp-profile-actions,.sp-materials-heading,.sp-teacher-profile-actions){
    flex-wrap:wrap!important;
  }
  body :where(.sp-dashboard-actions,.sp-profile-actions,.sp-teacher-profile-actions)>:where(a,button){
    max-width:100%!important;
    white-space:normal!important;
  }
}
@media(max-width:480px){
  .sp-student-info-card{padding:22px 18px!important}
  .sp-student-info-card dl>div{gap:4px!important}
}


/* release-3-9-3.css */
/* Final profile button override: loaded after every portal theme layer. */
html body .sp-profile-page .student-dashboard-card .sp-profile-form #sp-add-language{
  appearance:none!important;
  min-height:44px!important;
  padding:11px 18px!important;
  border:0!important;
  outline:0!important;
  border-radius:999px!important;
  background:#123b37!important;
  background-color:#123b37!important;
  color:#fff!important;
  box-shadow:none!important;
  font:inherit!important;
  font-weight:800!important;
  cursor:pointer!important;
}
html body .sp-profile-page .student-dashboard-card .sp-profile-form #sp-add-language:hover,
html body .sp-profile-page .student-dashboard-card .sp-profile-form #sp-add-language:focus-visible{
  border:0!important;
  background:#123b37!important;
  background-color:#123b37!important;
  color:#fff!important;
  box-shadow:none!important;
}
html body .sp-profile-page .student-dashboard-card .sp-profile-form #sp-add-language:active{
  border:0!important;
  background:#f1da89!important;
  background-color:#f1da89!important;
  color:#fff!important;
  box-shadow:none!important;
}


/* release-3-10-3.css */
/* 3.10.3: call-safe classroom tools and a stable teacher follow control. */
body:has(.sp-classroom) .sp-class-overlay.is-open{
  z-index:100020!important;
  pointer-events:auto!important;
}
body:has(.sp-classroom) .sp-class-overlay.is-open .sp-class-overlay-dialog{
  position:relative!important;
  z-index:100021!important;
  pointer-events:auto!important;
}
body:has(.sp-classroom) .sp-class-overlay[data-class-overlay="chat"] .sp-class-chat,
body:has(.sp-classroom) .sp-class-overlay[data-class-overlay="chat"] .sp-chat-compose,
body:has(.sp-classroom) .sp-class-overlay[data-class-overlay="chat"] textarea,
body:has(.sp-classroom) .sp-class-overlay[data-class-overlay="chat"] button{
  pointer-events:auto!important;
}
.sp-class-follow-button{
  width:132px!important;
  min-width:132px!important;
  max-width:132px!important;
  transform:translate3d(-50%,0,0)!important;
  white-space:nowrap!important;
  will-change:auto!important;
}
.sp-class-follow-button.is-sending{opacity:.82!important;cursor:wait!important}
.sp-class-materials.is-loading{opacity:.6;pointer-events:none}
.sp-class-materials [data-class-action-status]{display:block;margin:10px 0;color:#002f2b;font-weight:750}


/* release-3-10-4.css */
/* 3.10.4: fixed board exit and compact viewport-safe classroom chat. */
.sp-class-panel[data-class-panel="board"]{position:relative!important}
.sp-class-panel[data-class-panel="board"] .sp-board-return-to-lesson{
  position:absolute!important;
  z-index:100030!important;
  top:14px!important;
  right:14px!important;
  left:auto!important;
  transform:none!important;
}
.sp-class-panel[data-class-panel="board"] .sp-board-heading{left:22px!important}
.sp-class-overlay[data-class-overlay="chat"]{
  align-items:center!important;
  justify-content:center!important;
  padding:12px!important;
}
.sp-class-overlay[data-class-overlay="chat"] .sp-class-overlay-dialog{
  width:min(440px,calc(100vw - 24px))!important;
  height:min(640px,calc(100dvh - 24px))!important;
  max-width:calc(100vw - 24px)!important;
  max-height:calc(100dvh - 24px)!important;
  margin:auto!important;
}
.sp-class-overlay[data-class-overlay="chat"] .sp-class-chat{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  grid-template-rows:auto minmax(0,1fr) auto auto!important;
}
.sp-class-overlay[data-class-overlay="chat"] .sp-chat-messages{min-height:0!important}
@media(max-height:700px){
  .sp-class-overlay[data-class-overlay="chat"] .sp-class-overlay-dialog{height:calc(100dvh - 16px)!important;max-height:calc(100dvh - 16px)!important}
  .sp-class-overlay[data-class-overlay="chat"]{padding:8px!important}
  .sp-class-overlay[data-class-overlay="chat"] .sp-class-chat>header{padding:9px 48px 9px 12px!important}
  .sp-class-overlay[data-class-overlay="chat"] .sp-class-chat>header p{display:none!important}
  .sp-class-overlay[data-class-overlay="chat"] .sp-chat-messages{padding:10px!important}
  .sp-class-overlay[data-class-overlay="chat"] .sp-chat-compose{padding:8px!important;gap:6px!important}
}
@media(max-width:520px){
  .sp-class-overlay[data-class-overlay="chat"] .sp-class-overlay-dialog{width:calc(100vw - 12px)!important;max-width:calc(100vw - 12px)!important;height:calc(100dvh - 12px)!important;max-height:calc(100dvh - 12px)!important;border-radius:16px!important}
  .sp-class-overlay[data-class-overlay="chat"]{padding:6px!important}
}
@media(max-width:760px){
  .sp-class-panel[data-class-panel="board"] .sp-board-return-to-lesson{top:10px!important;right:10px!important;left:auto!important}
  .sp-class-panel[data-class-panel="board"] .sp-board-heading{left:12px!important}
}


/* release-3-10-5.css */
/* 3.10.5: persistent lesson sections, accurate board colour control and reliable chat surfaces. */
.sp-lesson-sections-tool{display:none!important}
.sp-class-content-grid>.sp-class-right-column[data-zoom-slot]{
  position:sticky!important;
  top:12px!important;
  align-self:start!important;
  display:flex!important;
  flex-direction:column!important;
  gap:12px!important;
}
body:has(.sp-classroom) .sp-class-workspace.is-call-active .sp-class-right-column[data-zoom-slot]>.sp-class-lesson-sections,
body:has(.sp-classroom) .sp-class-right-column[data-zoom-slot]>.sp-class-lesson-sections{
  display:flex!important;
  position:relative!important;
  order:2!important;
  width:100%!important;
  margin:0!important;
}
.sp-chat-compose>[data-chat-emoji-toggle],
.sp-chat-compose>[data-chat-image-toggle]{
  background:#fff!important;
  border-color:#add9d6!important;
}
.sp-chat-compose>[data-chat-emoji-toggle]:hover,
.sp-chat-compose>[data-chat-image-toggle]:hover{background:#f7fbfa!important}
.sp-chat-send:disabled{opacity:.62!important;cursor:wait!important}
@media(max-width:760px){
  .sp-class-content-grid>.sp-class-right-column[data-zoom-slot]{position:relative!important;top:auto!important}
}


/* release-3-10-7.css */
/* 3.10.7: the call launcher stays in normal flow above lesson sections. */
body:has(.sp-classroom) .sp-class-right-column[data-zoom-slot]>.sp-class-zoom-button{
  position:relative!important;
  z-index:3!important;
  top:auto!important;
  order:1!important;
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  flex:0 0 auto!important;
}
body:has(.sp-classroom) .sp-class-right-column[data-zoom-slot]>.sp-class-zoom-button+.sp-class-lesson-sections{
  order:2!important;
  margin-top:0!important;
  clear:both!important;
}
body:has(.sp-classroom) .sp-class-zoom-button .sp-zoom-launch,
body:has(.sp-classroom) .sp-class-zoom-button .sp-zoom-brand-button{
  position:relative!important;
  z-index:1!important;
  max-width:100%!important;
}


/* release-3-10-8.css */
/* 3.10.8: rebuilt durable classroom chat. */
body:has(.sp-classroom) .sp-class-chat .sp-chat-compose>button[data-chat-emoji-toggle],
body:has(.sp-classroom) .sp-class-chat .sp-chat-compose>button[data-chat-image-toggle]{
  background:#fff!important;
  background-color:#fff!important;
  background-image:none!important;
  border:1px solid #add9d6!important;
  color:#002f2b!important;
  box-shadow:none!important;
}
body:has(.sp-classroom) .sp-class-chat .sp-chat-compose>button[data-chat-emoji-toggle]:hover,
body:has(.sp-classroom) .sp-class-chat .sp-chat-compose>button[data-chat-image-toggle]:hover{background:#fff!important;filter:brightness(.98)}
.sp-class-chat [data-chat-status][data-state="error"]{color:#b42318!important;font-weight:750}
.sp-class-chat [data-chat-status][data-state="sending"]{color:#765f15!important}
.sp-class-chat [data-chat-status][data-state="online"]{color:#23736b!important}
.sp-chat-photo{display:block!important;max-width:min(300px,100%)!important;padding:0!important;border:0!important;border-radius:14px!important;overflow:hidden!important;background:#fff!important}
.sp-chat-photo img{display:block!important;width:100%!important;height:auto!important;max-height:320px!important;object-fit:cover!important}
.sp-chat-compose textarea{resize:none!important;overflow-y:auto!important}


/* release-3-10-9.css */
/* 3.10.9: stable follow control, clean board mode and corrected class surfaces. */
body:has(.sp-classroom) .sp-class-follow-button{
  position:fixed!important;
  z-index:2147482500!important;
  left:50%!important;
  right:auto!important;
  bottom:22px!important;
  width:132px!important;
  min-width:132px!important;
  max-width:132px!important;
  margin:0!important;
  transform:translate3d(-50%,0,0)!important;
  transition:opacity .15s ease!important;
  animation:none!important;
}
body:has(.sp-classroom) .sp-class-follow-button[hidden]{display:none!important}
body:has(.sp-classroom) .sp-class-sidebar .sp-timer-tool{background:#fff!important;background-color:#fff!important;background-image:none!important}
body:has(.sp-classroom) .sp-timer-dialog,
body:has(.sp-classroom) .sp-timer-dialog>.sp-class-timer{background:#fff!important;background-color:#fff!important}
body:has(.sp-classroom) .sp-class-overlay[data-class-overlay="chat"] .sp-class-chat>header{padding-right:96px!important}
body:has(.sp-classroom) .sp-class-overlay[data-class-overlay="chat"] .sp-class-chat>header>[data-chat-status],
body:has(.sp-classroom) .sp-class-overlay[data-class-overlay="chat"] [data-chat-status]{position:relative!important;z-index:1!important;flex:0 0 auto!important;max-width:130px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
body:has(.sp-classroom) .sp-class-overlay[data-class-overlay="chat"] .sp-class-overlay-close{z-index:20!important;top:10px!important;right:12px!important}
body:has(.sp-classroom) .sp-classroom[data-active-section="board"] .sp-class-topbar,
body:has(.sp-classroom) .sp-classroom[data-active-section="board"] .sp-pair-layer-switcher{display:none!important}
body:has(.sp-classroom) .sp-classroom[data-active-section="board"] .sp-class-panels{height:100vh!important;height:100dvh!important;padding:0!important;overflow:hidden!important}
body:has(.sp-classroom) .sp-classroom[data-active-section="board"] .sp-class-panel[data-class-panel="board"]{height:100vh!important;height:100dvh!important;min-height:0!important;border-radius:0!important}
body:has(.sp-classroom) .sp-classroom[data-active-section="board"] .sp-class-panel[data-class-panel="board"] .sp-whiteboard{height:100%!important;border-radius:0!important}
body:has(.sp-classroom) .sp-class-panel[data-class-panel="board"] .sp-board-return-to-lesson{background:#fff!important;background-color:#fff!important;background-image:none!important}
@media(max-width:760px){body:has(.sp-classroom) .sp-class-follow-button{bottom:12px!important}}


/* release-3-11-0.css */
/* 3.11.0: fast chat, attachment preview and dependable photo viewer. */
.sp-class-chat .sp-chat-attachment-preview[hidden]{display:none!important}
.sp-class-chat .sp-chat-attachment-preview{display:grid;grid-template-columns:64px minmax(0,1fr) 36px;align-items:center;gap:12px;margin:0 14px 10px;padding:10px;border:1px solid rgba(15,23,42,.1);border-radius:16px;background:#fff;box-shadow:0 5px 18px rgba(15,23,42,.06)}
.sp-class-chat .sp-chat-attachment-preview img{display:block;width:64px;height:64px;border-radius:12px;object-fit:cover;background:#f3f4f6}
.sp-class-chat .sp-chat-attachment-preview span{display:grid;min-width:0;gap:3px;color:#111827}
.sp-class-chat .sp-chat-attachment-preview strong{font-size:14px;line-height:1.25}
.sp-class-chat .sp-chat-attachment-preview small{overflow:hidden;color:#64748b;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.sp-class-chat .sp-chat-attachment-preview button{display:grid!important;place-items:center!important;width:34px!important;height:34px!important;padding:0!important;border:0!important;border-radius:50%!important;background:#f1f5f9!important;color:#111827!important;font:400 24px/1 Arial,sans-serif!important;cursor:pointer}
.sp-class-chat .sp-chat-photo{display:block!important;overflow:hidden!important;width:min(260px,62vw)!important;max-width:100%!important;margin:7px 0 3px!important;padding:0!important;border:0!important;border-radius:14px!important;background:#fff!important;cursor:zoom-in!important}
.sp-class-chat .sp-chat-photo img{display:block!important;width:100%!important;height:auto!important;max-height:240px!important;object-fit:cover!important}
.sp-chat-photo-viewer[hidden]{display:none!important}
.sp-chat-photo-viewer{position:fixed!important;z-index:2147483600!important;inset:0!important;display:grid!important;place-items:center!important;overflow:auto!important;padding:24px!important;background:rgba(9,12,18,.86)!important;backdrop-filter:blur(5px)!important}
.sp-chat-photo-viewer>div{position:relative!important;display:grid!important;place-items:center!important;width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;margin:0!important}
.sp-chat-photo-viewer img{display:block!important;width:auto!important;height:auto!important;max-width:calc(100vw - 48px)!important;max-height:calc(100vh - 48px)!important;margin:auto!important;border-radius:16px!important;object-fit:contain!important;box-shadow:0 24px 80px rgba(0,0,0,.45)!important}
.sp-chat-photo-viewer button{position:fixed!important;z-index:2!important;top:16px!important;right:16px!important;display:grid!important;place-items:center!important;width:44px!important;height:44px!important;padding:0!important;border:0!important;border-radius:50%!important;background:#fff!important;color:#111827!important;font:400 30px/1 Arial,sans-serif!important;box-shadow:0 8px 25px rgba(0,0,0,.3)!important;cursor:pointer!important}
@media(max-width:520px){.sp-class-chat .sp-chat-attachment-preview{grid-template-columns:54px minmax(0,1fr) 34px;margin-inline:8px}.sp-class-chat .sp-chat-attachment-preview img{width:54px;height:54px}.sp-chat-photo-viewer{padding:10px!important}.sp-chat-photo-viewer img{max-width:calc(100vw - 20px)!important;max-height:calc(100vh - 20px)!important}.sp-chat-photo-viewer button{top:8px!important;right:8px!important}}


/* release-3-11-1.css */
/* 3.11.1: immediate class communication and refined exercise spacing. */
.sp-class-assigned-exercises>article>strong{display:block!important;margin:0 0 20px!important}
.sp-class-assigned-exercises>article.has-no-exercise-title{padding-top:22px!important}
.sp-class-assigned-exercises>article.has-no-exercise-title>:first-child:not(.sp-exercise-follow-menu){margin-top:0!important}
.sp-class-assigned-exercises>article.has-no-exercise-title>.sp-audio-exercise,
.sp-class-assigned-exercises>article.has-no-exercise-title>.sp-audio-recorder{margin-top:0!important}
.sp-class-assigned-exercises>article.has-exercise-title>.sp-audio-exercise,
.sp-class-assigned-exercises>article.has-exercise-title>.sp-audio-recorder{margin-top:18px!important}

.sp-audio-exercise{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:start!important;column-gap:12px!important;row-gap:10px!important}
.sp-audio-exercise>.sp-custom-audio,
.sp-audio-exercise>.sp-media-empty{grid-column:1/-1!important;grid-row:1!important;margin:0!important}
.sp-audio-exercise>.sp-audio-transcript{grid-column:1!important;grid-row:2!important;align-self:start!important;margin:0!important;padding-top:14px!important}
.sp-audio-exercise>.sp-audio-toolbar{grid-column:2!important;grid-row:2!important;align-self:start!important;justify-content:flex-end!important;margin:0!important;padding:0!important}
.sp-audio-exercise>.sp-audio-transcript[hidden]{display:none!important}
.sp-audio-recorder audio{margin-top:18px!important}
.sp-audio-recorder .sp-recorder-actions{justify-content:center!important;gap:12px!important;margin:18px 0 0!important}
.sp-audio-recorder .sp-recorder-actions+ [data-record-status],
.sp-audio-recorder>[data-record-status]{margin-top:14px!important}

.sp-builder-actions,.sp-gap-actions,.sp-test-actions{display:flex!important;align-items:center!important;justify-content:center!important;gap:12px!important;flex-wrap:wrap!important}
.sp-builder-actions>[data-builder-result],.sp-gap-actions>[data-gap-result]{flex-basis:100%!important;text-align:center!important}
:where(.sp-builder-actions>[data-builder-check],.sp-gap-actions>[data-check-gaps],.sp-test-actions>[data-check-test],.sp-check-true-false){min-width:132px!important;padding:11px 20px!important;border:0!important;border-radius:999px!important;background:#002f2b!important;color:#fff!important;font-weight:800!important;text-align:center!important;box-shadow:none!important;cursor:pointer!important;transition:background-color .16s ease!important}
:where(.sp-builder-actions>[data-builder-check],.sp-gap-actions>[data-check-gaps],.sp-test-actions>[data-check-test],.sp-check-true-false):hover{background:#f1c84b!important;color:#fff!important}

.sp-current-lesson .sp-class-next-lesson{margin-top:18px!important;margin-bottom:0!important}
.sp-current-lesson:has(>.sp-class-next-lesson){min-height:0!important;padding-bottom:22px!important}

@media(max-width:680px){.sp-audio-exercise{grid-template-columns:minmax(0,1fr) auto!important;column-gap:8px!important}.sp-audio-exercise>.sp-audio-transcript{padding:10px!important}.sp-audio-exercise>.sp-audio-toolbar{gap:6px!important}.sp-recorder-actions{align-items:stretch!important;flex-direction:column!important}.sp-recorder-actions button{width:100%!important}}


/* release-3-11-2.css */
/* 3.11.2: aligned audio actions, branded test controls and complete lesson footer. */
.sp-class-assigned-exercises>article.has-no-exercise-title:has(>.sp-audio-exercise){display:grid!important;grid-template-columns:minmax(0,1fr) 48px!important;align-items:start!important;column-gap:14px!important}
.sp-class-assigned-exercises>article.has-no-exercise-title:has(>.sp-audio-exercise)>.sp-audio-exercise{grid-column:1!important;grid-row:1!important;min-width:0!important;margin:0!important}
.sp-class-assigned-exercises>article.has-no-exercise-title:has(>.sp-audio-exercise)>.sp-exercise-follow-menu{position:relative!important;grid-column:2!important;grid-row:1!important;top:auto!important;right:auto!important;justify-self:end!important;margin:0!important}
.sp-class-assigned-exercises>article.has-no-exercise-title:has(>.sp-audio-exercise)>.sp-exercise-follow-menu>div{top:44px!important;right:0!important}

.sp-test-gate [data-start-test]{min-width:142px!important;padding:12px 21px!important;border:0!important;border-radius:999px!important;background:#002f2b!important;color:#fff!important;font-weight:800!important;box-shadow:none!important;cursor:pointer!important;transition:background-color .16s ease!important}
.sp-test-gate [data-start-test]:hover{background:#f1c84b!important;color:#fff!important}
.sp-exercise-follow-menu>div :where([data-builder-reset],[data-reset-test],[data-reset-true-false]){width:100%!important;padding:11px 13px!important;border:0!important;border-radius:10px!important;background:#fff6e7!important;color:#002f2b!important;font-weight:800!important;text-align:left!important}

.sp-current-lesson{overflow:visible!important}
.sp-current-lesson:has(>.sp-class-next-lesson){min-height:auto!important;padding-bottom:34px!important}
.sp-current-lesson .sp-class-next-lesson{box-sizing:border-box!important;margin:18px auto 0!important;padding:15px 16px 18px!important;overflow:visible!important;line-height:1.35!important}
.sp-current-lesson .sp-class-next-lesson>p{display:block!important;min-height:1.35em!important;margin:4px 0 0!important;padding-bottom:1px!important;line-height:1.35!important}

@media(max-width:680px){.sp-class-assigned-exercises>article.has-no-exercise-title:has(>.sp-audio-exercise){grid-template-columns:minmax(0,1fr) 42px!important;column-gap:8px!important}.sp-current-lesson:has(>.sp-class-next-lesson){padding-bottom:26px!important}}


/* release-3-11-3.css */
/* 3.11.3: a dedicated action gutter for every exercise and safe class scrolling. */
.sp-class-assigned-exercises>article{position:relative!important;display:block!important;box-sizing:border-box!important;padding-right:92px!important;overflow:visible!important}
.sp-class-assigned-exercises>article>.sp-exercise-follow-menu,
.sp-class-assigned-exercises>article.has-no-exercise-title:has(>.sp-audio-exercise)>.sp-exercise-follow-menu{position:absolute!important;z-index:30!important;top:22px!important;right:22px!important;display:block!important;margin:0!important}
.sp-class-assigned-exercises>article>.sp-exercise-follow-menu>div{z-index:40!important}
.sp-class-assigned-exercises>article>:not(.sp-exercise-follow-menu){box-sizing:border-box!important;max-width:100%!important}
.sp-class-assigned-exercises>article.has-no-exercise-title:has(>.sp-audio-exercise)>.sp-audio-exercise{display:grid!important;width:100%!important;min-width:0!important;margin:0!important}
.sp-class-assigned-exercises .sp-audio-exercise,
.sp-class-assigned-exercises .sp-custom-audio,
.sp-class-assigned-exercises .sp-audio-track{min-width:0!important;max-width:100%!important}
.sp-class-assigned-exercises .sp-custom-audio{grid-template-columns:34px 48px 34px minmax(80px,1fr) 40px 40px!important;width:100%!important}
.sp-exercise-follow-menu>div :where([data-builder-reset],[data-reset-test],[data-reset-true-false],[data-reset-gaps]){width:100%!important;padding:11px 13px!important;border:0!important;border-radius:10px!important;background:#fff6e7!important;color:#002f2b!important;font-weight:800!important;text-align:left!important}

.sp-class-panels{box-sizing:border-box!important;padding-bottom:96px!important;scroll-padding-bottom:96px!important}
.sp-class-content-grid{box-sizing:border-box!important;padding-bottom:24px!important}
.sp-current-lesson:has(>.sp-class-next-lesson){min-height:auto!important;padding-bottom:42px!important;overflow:visible!important}
.sp-current-lesson .sp-class-next-lesson{flex:0 0 auto!important;width:min(440px,calc(100% - 8px))!important;margin:18px auto 0!important;padding:15px 16px 20px!important;overflow:visible!important}
.sp-current-lesson .sp-class-next-lesson>p{display:block!important;min-height:auto!important;margin:5px 0 0!important;padding:0 0 3px!important;overflow:visible!important;line-height:1.45!important}

@media(max-width:760px){.sp-class-assigned-exercises>article{padding-right:66px!important}.sp-class-assigned-exercises>article>.sp-exercise-follow-menu,.sp-class-assigned-exercises>article.has-no-exercise-title:has(>.sp-audio-exercise)>.sp-exercise-follow-menu{top:16px!important;right:14px!important}.sp-class-assigned-exercises .sp-custom-audio{grid-template-columns:30px 42px 30px minmax(62px,1fr) 36px!important}.sp-custom-audio>.sp-audio-settings{grid-column:1/-1!important;justify-self:end!important}.sp-class-panels{padding-bottom:76px!important}}


/* release-3-11-8.css */
/* Stable, calm teacher follow control. */
body:has(.sp-classroom) .sp-class-follow-button{
  position:fixed!important;
  z-index:2147482500!important;
  left:calc(50vw - 66px)!important;
  right:auto!important;
  bottom:22px!important;
  width:132px!important;
  min-width:132px!important;
  max-width:132px!important;
  height:48px!important;
  min-height:48px!important;
  margin:0!important;
  transform:none!important;
  translate:none!important;
  animation:none!important;
  transition:none!important;
  opacity:.72!important;
  will-change:auto!important;
  contain:layout paint!important;
}
body:has(.sp-classroom) .sp-class-follow-button:hover,
body:has(.sp-classroom) .sp-class-follow-button:focus,
body:has(.sp-classroom) .sp-class-follow-button:active,
body:has(.sp-classroom) .sp-class-follow-button.is-sending{
  transform:none!important;
  translate:none!important;
  animation:none!important;
  transition:none!important;
  opacity:.72!important;
}
body:has(.sp-classroom) .sp-class-follow-button[hidden]{display:none!important}
@media(max-width:760px){body:has(.sp-classroom) .sp-class-follow-button{left:calc(50vw - 66px)!important;bottom:12px!important}}


/* release-3-11-9.css */
/* Restore the lesson surface completely after leaving the board. */
body:has(.sp-classroom) .sp-classroom:not([data-active-section="board"]) .sp-class-panels{height:calc(100vh - 70px)!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:auto!important;touch-action:auto!important}
body:has(.sp-classroom) .sp-class-panel:not(.is-active){pointer-events:none!important;visibility:hidden!important}
body:has(.sp-classroom) .sp-class-panel.is-active{pointer-events:auto!important;visibility:visible!important}
.sp-board-stage canvas{cursor:default!important}
.sp-board-stage canvas[data-tool="pan"]{cursor:grab!important}
.sp-board-stage canvas[data-tool="pen"],.sp-board-stage canvas[data-tool="highlight"],.sp-board-stage canvas[data-tool="line"],.sp-board-stage canvas[data-tool="arrow"]{cursor:crosshair!important}
.sp-board-stage canvas[data-tool="text"]{cursor:text!important}


/* release-3-11-11.css */
/* 3.11.11 — Zoom waiting state, stable exercise menus and smooth classroom scrolling. */
body:has(.sp-classroom) .sp-zoom-launch.is-joined.is-waiting{display:block!important}
body:has(.sp-classroom) .sp-zoom-launch.is-waiting [data-zoom-join]{display:none!important}
body:has(.sp-classroom) .sp-zoom-launch.is-waiting [data-zoom-status]{display:flex!important;align-items:center;justify-content:center;min-height:44px;margin:0!important;padding:9px 14px;border-radius:16px;background:rgba(0,119,96,.12);color:#003f36!important;font-weight:750;text-align:center}
body:has(.sp-classroom) .sp-class-assigned-exercises>article,
body:has(.sp-classroom) [data-class-exercise-id]{overflow:visible!important}
body:has(.sp-classroom) [data-exercise-menu],
body:has(.sp-classroom) .sp-exercise-follow-menu{pointer-events:auto!important;touch-action:manipulation}


/* release-3-11-12.css */
/* 3.11.12 — checked exercises stay locked until an explicit reset. */
.sp-classroom [data-checked="1"] :where([data-answer],[data-gap-choice],[data-gap-token],[data-gap-placed],.sp-builder-brick),
.sp-classroom :where([data-check-true-false],[data-check-gaps],[data-builder-check],[data-check-test]):disabled{cursor:not-allowed!important}
.sp-classroom :where([data-check-true-false],[data-check-gaps],[data-builder-check],[data-check-test]):disabled{opacity:.62!important;transform:none!important}


/* release-3-11-13.css */
/* 3.11.13 — responsive classroom input, smooth cursors and dependable controls. */
body:has(.sp-classroom) .sp-classroom:not([data-active-section="board"]) .sp-class-panels{
  scroll-behavior:auto!important;
  overscroll-behavior-y:contain!important;
  touch-action:pan-y pinch-zoom!important;
  -webkit-overflow-scrolling:touch!important;
  scrollbar-gutter:stable!important;
  will-change:scroll-position;
}
body:has(.sp-classroom) .sp-class-assigned-exercises{contain:layout style!important}
body:has(.sp-classroom) .sp-class-assigned-exercises>article>.sp-exercise-follow-menu{z-index:120!important;pointer-events:auto!important}
body:has(.sp-classroom) .sp-exercise-follow-menu>button{position:relative!important;z-index:2!important;pointer-events:auto!important}
body:has(.sp-classroom) .sp-exercise-follow-menu>div{z-index:121!important;pointer-events:auto!important}
.sp-gap-drag-ghost{transform-origin:center center!important;pointer-events:none!important}
.sp-true-false-options button.is-selected{border-color:#007760!important;background:#d8f1eb!important;color:#003f36!important;box-shadow:0 0 0 2px rgba(0,119,96,.16)!important}
.sp-board-toolbar [data-action="toggle-cursors"].is-muted{opacity:.48!important;background:#eef1f4!important}


/* release-3-11-15.css */
/* 3.11.15 — classroom input, scrolling and whiteboard cursor reliability. */
.sp-board-student .sp-board-toolbar>[data-action="toggle-cursors"]{
  display:grid!important;
}
.sp-exercise-follow-menu,
.sp-exercise-follow-menu>button,
.sp-exercise-follow-menu>div,
.sp-exercise-follow-menu>div>button{
  pointer-events:auto!important;
}
.sp-exercise-follow-menu{z-index:80!important}
.sp-class-assigned-exercises>article>.sp-exercise-follow-menu{position:absolute!important;z-index:2147480000!important;top:14px!important;right:14px!important;isolation:isolate!important;transform:translateZ(0)!important}
.sp-class-assigned-exercises>article>.sp-exercise-follow-menu>[data-exercise-menu]{position:relative!important;z-index:2147480001!important;display:grid!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important;touch-action:manipulation!important}
.sp-class-assigned-exercises>article>.sp-exercise-follow-menu>div{position:absolute!important;z-index:2147480002!important;top:46px!important;right:0!important;width:220px!important;max-width:calc(100vw - 28px)!important;display:grid!important;gap:6px!important;padding:8px!important;border:0!important;border-radius:14px!important;background:#fff!important;box-shadow:0 16px 44px rgba(0,47,43,.26)!important;pointer-events:auto!important}
.sp-class-assigned-exercises>article>.sp-exercise-follow-menu>div[hidden]{display:none!important}
.sp-class-assigned-exercises>article>.sp-exercise-follow-menu>div>button{width:100%!important;min-height:44px!important;padding:10px 13px!important;border:0!important;border-radius:10px!important;background:#fff6e7!important;color:#002f2b!important;font-weight:800!important;text-align:left!important;pointer-events:auto!important}
.sp-class-assigned-exercises>article>.sp-exercise-follow-menu>div>button:hover,.sp-class-assigned-exercises>article>.sp-exercise-follow-menu>div>button:focus-visible{background:#f6d76b!important;outline:none!important}
.sp-exercise-follow-popover{
  box-sizing:border-box!important;
  display:grid!important;
  gap:5px!important;
  padding:7px!important;
  border:0!important;
  border-radius:14px!important;
  background:#fff!important;
  box-shadow:0 16px 44px rgba(0,47,43,.24)!important;
  pointer-events:auto!important;
  white-space:normal!important;
}
.sp-exercise-follow-popover[hidden]{display:none!important}
.sp-exercise-follow-popover>button{
  width:100%!important;
  min-height:42px!important;
  padding:10px 13px!important;
  border:0!important;
  border-radius:10px!important;
  background:#fff6e7!important;
  color:#002f2b!important;
  font-weight:800!important;
  text-align:left!important;
  pointer-events:auto!important;
}
.sp-exercise-action-popover{box-sizing:border-box!important;display:grid!important;gap:6px!important;padding:8px!important;border:0!important;border-radius:14px!important;background:#fff!important;box-shadow:0 16px 44px rgba(0,47,43,.26)!important;pointer-events:auto!important}
.sp-exercise-action-popover>button{width:100%!important;min-height:44px!important;padding:10px 13px!important;border:0!important;border-radius:10px!important;background:#fff6e7!important;color:#002f2b!important;font-weight:800!important;text-align:left!important}
.sp-exercise-action-popover>button:hover,.sp-exercise-action-popover>button:focus-visible{background:#f6d76b!important;outline:none!important}
.sp-class-panel[data-class-panel="lesson"],
.sp-current-lesson,
.sp-class-assigned-exercises{
  touch-action:pan-y!important;
  overscroll-behavior-y:auto!important;
}
.sp-class-panel[data-class-panel="lesson"]{
  overflow-y:visible!important;
}
body:has(.sp-classroom) .sp-classroom:not([data-active-section="board"]) .sp-class-panels{
  scroll-behavior:auto!important;
  overscroll-behavior-y:auto!important;
  touch-action:pan-y!important;
  scrollbar-gutter:auto!important;
  will-change:auto!important;
}
body:has(.sp-classroom) .sp-class-assigned-exercises{contain:none!important}
.sp-zoom-window video,
.sp-zoom-window canvas{
  transform-origin:center center!important;
  transform:none!important;
}
.sp-zoom-window{pointer-events:auto!important;touch-action:none!important;cursor:grab!important}
.sp-zoom-window *{pointer-events:none!important}
.sp-zoom-window :is(button,a,input,select,textarea,[role="button"],[role="menuitem"],[role="slider"],[contenteditable="true"]),
.sp-zoom-window .sp-zoom-direct-grip{pointer-events:auto!important}
/* Zoom SDK creates transparent full-page portal layers. They must not block the
   classroom below; only real controls inside those portals receive input. */
body:has(.sp-classroom)>[class*="zm-"],
body:has(.sp-classroom)>[id*="zm-"],
body:has(.sp-classroom)>[class*="zoom" i]:not(.sp-zoom-window){pointer-events:none!important}
body:has(.sp-classroom)>[class*="zm-"] :is(button,a,input,select,textarea,[role="button"],[role="menuitem"],[role="slider"],[contenteditable="true"]),
body:has(.sp-classroom)>[id*="zm-"] :is(button,a,input,select,textarea,[role="button"],[role="menuitem"],[role="slider"],[contenteditable="true"]),
body:has(.sp-classroom)>[class*="zoom" i]:not(.sp-zoom-window) :is(button,a,input,select,textarea,[role="button"],[role="menuitem"],[role="slider"],[contenteditable="true"]){pointer-events:auto!important}
body:has(.sp-classroom:not([data-active-section="board"])) .sp-class-topbar{position:relative!important;z-index:90000!important;display:flex!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important}
body:has(.sp-classroom[data-active-section="board"]) .sp-class-topbar{display:none!important}
body:has(.sp-class-panel[data-class-panel="board"].is-active) .sp-class-topbar{display:none!important}
body:has(.sp-classroom:not([data-active-section="board"])) .sp-class-topbar .sp-class-exit{display:inline-flex!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important}
.sp-zoom-window .sp-zoom-local-tile video,
.sp-zoom-window .sp-zoom-local-tile canvas{
  transform:none!important;
}
.sp-delete-exercise svg,[data-article-note-delete] svg,[data-essay-comment-delete] svg{width:20px!important;height:20px!important;display:block!important}
.sp-image-inline-text-actions{position:fixed!important;z-index:2147483647!important;display:grid!important;gap:5px!important}
.sp-image-inline-text-actions button{display:grid!important;place-items:center!important;width:40px!important;height:40px!important;padding:0!important;border:0!important;border-radius:50%!important;box-shadow:0 5px 15px rgba(0,47,43,.2)!important}
.sp-image-inline-text-actions svg{width:19px!important;height:19px!important;display:block!important}
.sp-image-inline-text-actions .is-accept{background:#006b5f!important;color:#fff!important;font:800 22px/1 Arial,sans-serif!important}
.sp-image-inline-text-actions .is-cancel{background:#fff!important;color:#b42318!important}
.sp-zoom-waiting-cover{
  position:absolute!important;
  z-index:2147483600!important;
  inset:0!important;
  display:grid!important;
  place-content:center!important;
  gap:8px!important;
  padding:24px!important;
  background:#202020!important;
  color:#fff!important;
  text-align:center!important;
  pointer-events:none!important;
}
.sp-zoom-waiting-cover span{color:#add9d6!important;font-size:13px!important;font-weight:800!important}
.sp-zoom-waiting-cover strong{font-size:clamp(18px,3vw,27px)!important;font-weight:700!important}
.sp-active-section-title form{display:flex!important;align-items:center!important;gap:10px!important;width:100%!important}
.sp-active-section-title form input[name="title"]{flex:1!important;min-width:0!important}
.sp-active-section-title form button,.sp-replace-carousel-image{min-height:38px!important;padding:8px 13px!important;border:0!important;border-radius:11px!important;background:#006b5f!important;color:#fff!important;font-weight:800!important;cursor:pointer!important}
.sp-replace-carousel-image{position:absolute!important;left:10px!important;bottom:10px!important;z-index:3!important}
[data-image-crop-previews] figure{position:relative!important}
.sp-library-lesson-studio .sp-template-classroom{grid-template-columns:58px minmax(0,1fr) minmax(230px,280px)!important;align-items:start!important}
.sp-library-lesson-studio .sp-template-right-column{display:grid!important;grid-column:3!important;grid-row:1!important;align-content:start!important;align-self:start!important;gap:12px!important;min-width:0!important;position:relative!important;top:auto!important;visibility:visible!important;opacity:1!important}
.sp-library-lesson-studio .sp-lesson-sections-panel{display:block!important;width:100%!important;max-height:none!important;overflow:visible!important;visibility:visible!important;opacity:1!important}
.sp-library-lesson-studio .sp-lesson-sections-panel .sp-section-row{display:flex!important;width:100%!important}
body:has(.sp-classroom) .sp-class-right-column[data-zoom-slot]>.sp-class-lesson-sections{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;width:100%!important;max-height:none!important;overflow:visible!important}
body:has(.sp-classroom) .sp-class-lesson-sections>span{display:block!important;width:100%!important;box-sizing:border-box!important}
.sp-image-carousel:not(:has(figure:nth-of-type(2)))>div{display:none!important}
@media(max-width:850px){.sp-library-lesson-studio .sp-template-classroom{grid-template-columns:52px minmax(0,1fr)!important}.sp-library-lesson-studio .sp-template-right-column{grid-column:2!important;grid-row:auto!important;position:relative!important;top:auto!important}.sp-library-lesson-studio .sp-lesson-sections-panel{max-height:none!important}}


/* release-3-11-16.css */
/* Teacher lesson editor: one page scroll, with call and sections in a plain right column. */
body.sp-library-lesson-mode .sp-library-lesson-studio,
body.sp-library-lesson-mode .sp-library-lesson-studio > .sp-lesson-workspace {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
}
body.sp-library-lesson-mode .sp-library-lesson-studio .sp-template-classroom > main {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    overscroll-behavior: auto !important;
    scrollbar-gutter: auto !important;
}
body.sp-library-lesson-mode .sp-library-lesson-studio .sp-template-right-column {
    display: flex !important;
    grid-column: 3 !important;
    grid-row: 1 !important;
    flex-direction: column !important;
    align-self: start !important;
    gap: 12px !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    position: static !important;
}
body.sp-library-lesson-mode .sp-library-lesson-studio .sp-template-right-column > .sp-template-call {
    order: 1 !important;
    width: 100% !important;
    margin: 0 !important;
}
body.sp-library-lesson-mode .sp-library-lesson-studio .sp-template-right-column > .sp-lesson-sections-panel {
    order: 2 !important;
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    overflow: visible !important;
}
body.sp-library-lesson-mode .sp-library-lesson-studio .sp-lesson-sections-panel .sp-section-row {
    display: flex !important;
    width: 100% !important;
}
@media (max-width: 850px) {
    body.sp-library-lesson-mode .sp-library-lesson-studio .sp-template-right-column {
        grid-column: 2 !important;
        grid-row: auto !important;
    }
}


/* release-3-11-53.css */
/* Student Portal 3.11.53 — click/tap word placement. */
.sp-gap-bank [data-gap-token].is-selected-token,
[data-gap-placed].is-selected-token {
    outline: 3px solid #6d5bd0 !important;
    outline-offset: 2px;
    background: #eeeafe !important;
    box-shadow: 0 0 0 5px rgba(109, 91, 208, .14) !important;
}


/* release-3-11-54.css */
/* Student Portal 3.11.54 — sentence-building exercise wording. */
.sp-builder-exercise .sp-builder-bank::before {
    content: none !important;
    display: none !important;
}


/* release-3-11-74.css */
/* Edvibe-like exercise rhythm while keeping the Mariiaswort visual language. */
.sp-gaps-exercise,
.sp-builder-exercise {
  max-width: 100%;
}

.sp-gaps-text {
  color: #243047;
  font-size: 17px;
  line-height: 2.65 !important;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.sp-gaps-text br {
  display: block;
  content: "";
  margin-bottom: .55rem !important;
}

.sp-gap-slot {
  display: inline-flex !important;
  width: auto !important;
  max-width: 100%;
  break-inside: avoid;
  white-space: nowrap;
}

.sp-gap-slot input,
.sp-gap-slot [data-gap-choice],
.sp-gap-slot [data-gap-drop] {
  width: 128px !important;
  max-width: min(128px, 70vw);
  border-color: #c9b8df !important;
  background: #faf7ff !important;
}

.sp-gap-slot [data-gap-drop].has-word,
.sp-gap-slot [data-gap-choice]:not(:empty) {
  width: auto !important;
  min-width: 88px;
}

.sp-gap-bank {
  border-color: #dfd2ef !important;
  background: #f3edfb !important;
}

.sp-gap-bank button,
.sp-builder-brick {
  border-color: #c9b8df !important;
  background: #fff !important;
  color: #352548 !important;
}

.sp-builder-row {
  grid-template-columns: 34px minmax(0,1fr);
  align-items: start;
  gap: 8px 12px;
  padding: 14px;
  border: 1px solid #e2d8ef;
  border-radius: 16px;
  background: #fbf9fe;
}

.sp-builder-row > b {
  grid-row: 1 / span 2;
  padding-top: 9px;
  color: #77549f;
}

.sp-builder-row .sp-builder-bank,
.sp-builder-row .sp-builder-target {
  grid-column: 2;
  min-width: 0;
  border-color: #cdbde1;
}

.sp-builder-row .sp-builder-bank {
  background: #f2ebfa;
}

.sp-builder-row .sp-builder-target {
  background: #fff;
}

.sp-builder-actions > [data-builder-check],
.sp-gap-actions > [data-check-gaps] {
  background: #77549f !important;
  color: #fff !important;
}

.sp-exercise-reference-images,
.sp-essay-reference-images {
  display: grid;
  gap: 14px;
  margin: 0 0 18px;
}

.sp-exercise-reference-images .sp-article-image,
.sp-essay-reference-images .sp-article-image {
  margin: 0;
  overflow: hidden;
  border: 1px solid #e2d8ef;
  border-radius: 16px;
  background: #f8f4fc;
}

.sp-exercise-reference-images img,
.sp-essay-reference-images img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

@media (max-width: 700px) {
  .sp-gaps-text { font-size: 16px; line-height: 2.5 !important; }
  .sp-builder-row { grid-template-columns: 26px minmax(0,1fr); padding: 10px; }
  .sp-builder-brick { white-space: normal; text-align: left; }
}


/* release-3-11-77.css */
:root{--sp-purple:#7f68a7;--sp-purple-dark:#604986;--sp-purple-soft:#eee7f7;--sp-purple-pale:#f8f5fc;--sp-ink:#18352f}
.sp-gap-info{right:-7px!important;top:-7px!important;width:12px!important;height:12px!important;min-width:12px!important;padding:0!important;border:0!important;border-radius:50%!important;background:#aeb2bb!important;box-shadow:0 0 0 3px #fff!important;font-size:0!important}
.sp-gap-info>span{display:block;width:100%;height:100%;border-radius:inherit;background:inherit}
.sp-gap-info:hover,.sp-gap-info:focus-visible{background:#7f68a7!important;outline:2px solid #d9cdeb!important;outline-offset:2px}
.sp-homework-edvibe-sidebar a{position:relative;border:1px solid #ded6e9!important;background:#fff!important}
.sp-homework-edvibe-sidebar a>span{width:12px!important;height:12px!important;min-width:12px!important;border:0!important;border-radius:50%!important;background:#b8b1c2!important}
.sp-homework-edvibe-sidebar a.is-submitted{border-color:#ead36e!important;background:#fffbea!important}.sp-homework-edvibe-sidebar a.is-submitted>span{background:#e6c73f!important}
.sp-homework-edvibe-sidebar a.is-reviewed{border-color:#8bc9a4!important;background:#edf9f1!important}.sp-homework-edvibe-sidebar a.is-reviewed>span{background:#4dad73!important}
.sp-homework-edvibe-sidebar a.is-returned{border-color:#e7ad70!important;background:#fff3e7!important}.sp-homework-edvibe-sidebar a.is-returned>span{background:#df8735!important}
.sp-homework-edvibe-sidebar a.is-active{box-shadow:0 0 0 3px rgba(127,104,167,.18)!important}
.sp-chat-toast{left:82px!important;bottom:28px!important;display:grid!important;grid-template-columns:46px minmax(0,1fr) 20px!important;align-items:center!important;gap:12px!important;width:min(390px,calc(100vw - 110px))!important;max-width:none!important;padding:14px!important;border:1px solid #d9cdeb!important;border-radius:19px!important;background:linear-gradient(145deg,#fff,#f7f2fc)!important;box-shadow:0 18px 55px rgba(69,43,96,.24)!important;color:var(--sp-ink)!important}
.sp-chat-toast>i{display:grid;width:46px;height:46px;place-items:center;border-radius:15px;background:linear-gradient(145deg,#927bb7,#6f5795);color:#fff;font-style:normal;font-weight:850;font-size:19px}.sp-chat-toast>span{display:grid;gap:1px;min-width:0}.sp-chat-toast small{color:#8a759f;font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.sp-chat-toast b{overflow:hidden;color:#2c2340;white-space:nowrap;text-overflow:ellipsis}.sp-chat-toast em{overflow:hidden;color:#6f6879;font-style:normal;white-space:nowrap;text-overflow:ellipsis}.sp-chat-toast>strong{color:#7f68a7;font-size:26px}
.sp-library-lesson-studio,.sp-teacher-book-open,.sp-teacher-materials,.sp-classroom{--sp-blue:#7f68a7;--sp-primary:#7f68a7;--sp-accent:#7f68a7;color:var(--sp-ink)}
.sp-library-lesson-studio,.sp-teacher-book-open{border-radius:24px!important;background:var(--sp-purple-pale)!important;box-shadow:0 18px 55px rgba(67,45,91,.1)!important}.sp-library-lesson-studio button,.sp-teacher-book-open button{accent-color:var(--sp-purple)}
.sp-studio-exercise-menu{position:absolute;z-index:90;top:14px;right:14px}.sp-studio-exercise-menu>button{display:grid!important;width:42px!important;height:38px!important;min-width:42px!important;padding:0!important;place-items:center!important;border:1px solid #cbbddc!important;border-radius:12px!important;background:#fff!important;color:var(--sp-ink)!important;font-weight:900!important;letter-spacing:2px!important}.sp-studio-exercise-menu>div{position:absolute;z-index:91;top:44px;right:0;display:grid;width:240px;gap:5px;padding:8px;border-radius:15px;background:#fff;box-shadow:0 16px 44px rgba(57,38,77,.24)}.sp-studio-exercise-menu>div[hidden]{display:none!important}.sp-studio-exercise-menu>div button{width:100%!important;min-height:41px!important;padding:9px 12px!important;border:0!important;border-radius:10px!important;background:var(--sp-purple-pale)!important;color:var(--sp-ink)!important;font-weight:750!important;text-align:left!important}.sp-studio-exercise-menu>div button:hover{background:var(--sp-purple-soft)!important}.sp-studio-exercise-menu>div [data-action="delete"]{color:#9c3440!important}
.sp-lesson-exercise-card>.sp-edit-exercise,.sp-lesson-exercise-card>.sp-delete-exercise{visibility:hidden!important;pointer-events:none!important}.sp-lesson-exercise-card>.sp-move-exercise{right:62px!important}
@media(max-width:760px){.sp-chat-toast{left:12px!important;right:12px!important;bottom:12px!important;width:auto!important}.sp-studio-exercise-menu{right:10px;top:10px}}
[data-sp-classroom][data-is-teacher="0"] :is([data-builder-reset],[data-reset-test],[data-reset-true-false],[data-reset-gaps],[data-menu-reset-exercise]){display:none!important;visibility:hidden!important;pointer-events:none!important}


/* release-3-11-79.css */
/* 3.11.79 — reliable classroom controls and teacher-managed access. */
:root{--sp-brand-purple:#8765ad;--sp-brand-purple-dark:#68428f;--sp-brand-purple-soft:#efe8f7}

/* Correct-answer hint: a true circle, anchored at the right edge. */
.sp-gap-slot .sp-gap-info,.sp-gap-info{
  box-sizing:border-box!important;display:block!important;flex:0 0 10px!important;
  width:10px!important;min-width:10px!important;max-width:10px!important;
  height:10px!important;min-height:10px!important;max-height:10px!important;
  padding:0!important;margin:0!important;border:0!important;border-radius:50%!important;
  aspect-ratio:1/1!important;line-height:0!important;font-size:0!important;
  right:-5px!important;left:auto!important;top:50%!important;transform:translateY(-50%)!important;
  background:#aeb2bb!important;box-shadow:0 0 0 2px #fff!important;overflow:hidden!important
}
.sp-gap-info>span{display:none!important}

/* Teacher annotations and comment markers use the site palette. */
.sp-article-content mark.has-thread,.sp-transcript-content mark.has-thread,.sp-essay-comment{
  text-decoration-color:var(--sp-brand-purple)!important;border-color:var(--sp-brand-purple)!important
}
.sp-article-content mark.has-thread:after,.sp-transcript-content mark.has-thread:after,.sp-essay-comment:after{
  background:var(--sp-brand-purple)!important;color:#fff!important
}

/* Materials preview reads like one continuous lesson instead of a tile grid. */
[data-class-panel="materials"] .sp-homework-checklist-items,
[data-class-panel="materials"] .sp-material-preview-exercises{
  display:flex!important;flex-direction:column!important;gap:0!important;width:100%!important;
  padding:0!important;border:1px solid #e4deeb!important;border-radius:20px!important;
  overflow:hidden!important;background:#fff!important
}
[data-class-panel="materials"] .sp-full-exercise-choice,
[data-class-panel="materials"] .sp-material-preview-exercises>section{
  display:block!important;width:100%!important;margin:0!important;padding:24px!important;
  border:0!important;border-bottom:1px solid #eee8f3!important;border-radius:0!important;
  background:#fff!important;box-shadow:none!important
}
[data-class-panel="materials"] .sp-full-exercise-choice:last-child,
[data-class-panel="materials"] .sp-material-preview-exercises>section:last-child{border-bottom:0!important}
[data-class-panel="materials"] .sp-homework-exercise{margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
[data-class-panel="materials"] .sp-exercise-choice-control input{accent-color:var(--sp-brand-purple)!important}

/* Teacher cabinet: clear lifecycle groups and manual platform access. */
.sp-teacher-student-group{margin:18px 0 25px;padding:17px;border:1px solid #e8e0ef;border-radius:19px;background:#fbf9fd}
.sp-teacher-student-group>h3{display:flex;align-items:center;gap:9px;margin:0 0 13px;color:#32263e}
.sp-teacher-student-group>h3 span{display:grid;place-items:center;min-width:25px;height:25px;padding:0 7px;border-radius:99px;background:#e5d8f1;color:#68428f;font-size:12px}
.sp-teacher-student-group.is-active{border-color:#cdb6e2;background:#f6f0fb}
.sp-teacher-access-form{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:20px;padding:20px;border:1px solid #d8c7e7;border-radius:17px;background:#f7f1fb}
.sp-teacher-access-form h3,.sp-teacher-access-form p{margin:0}.sp-teacher-access-form p{margin-top:5px;color:#675c70}
.sp-teacher-access-form .sp-teacher-primary{border:0;cursor:pointer;white-space:nowrap;background:var(--sp-brand-purple)!important}
.sp-teacher-cabinet-primary,.sp-teacher-primary{background:var(--sp-brand-purple)!important}.sp-teacher-secondary{color:var(--sp-brand-purple-dark)!important;border-color:#d6c3e6!important}
@media(max-width:700px){.sp-teacher-access-form{align-items:stretch;flex-direction:column}.sp-teacher-access-form .sp-teacher-primary{width:100%}[data-class-panel="materials"] .sp-full-exercise-choice,[data-class-panel="materials"] .sp-material-preview-exercises>section{padding:18px 14px!important}}


/* release-3-11-80.css */
/* 3.11.80: live classroom continuity, clear Zoom controls and teacher overview. */
.sp-teacher-student-group>h3 span{
  display:inline-grid!important;place-items:center!important;width:28px!important;min-width:28px!important;height:28px!important;padding:0!important;line-height:1!important;text-align:center!important;
}
body:has(.sp-classroom[data-sp-classroom]) .sp-classroom[data-sp-classroom] .sp-class-topbar{
  position:relative!important;top:auto!important;left:auto!important;right:auto!important;width:auto!important;z-index:2147482000!important;display:flex!important;visibility:visible!important;opacity:1!important;transform:none!important;pointer-events:auto!important;flex:none!important;
}
body:has(.sp-classroom[data-sp-classroom] .sp-class-panel[data-class-panel="board"].is-active) .sp-classroom[data-sp-classroom] .sp-class-topbar{
  display:none!important;
}
body.admin-bar:has(.sp-classroom[data-sp-classroom]) .sp-classroom[data-sp-classroom] .sp-class-topbar{top:auto!important}
body:has([data-sp-classroom]) .sp-class-main{padding-top:0!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important}
body:has([data-sp-classroom]) .sp-class-panels{height:auto!important;min-height:0!important;flex:1 1 auto!important}
.sp-zoom-window{z-index:2147483000!important}
body:has([data-sp-classroom])>[class*="zm-"],body:has([data-sp-classroom])>[id*="zm-"],body:has([data-sp-classroom])>[class*="zoom" i]:not(.sp-zoom-window){z-index:2147483001!important}
.sp-zoom-window>.sp-zoom-move-handle{pointer-events:auto!important}
/* Camera and screen-share media always keep their real orientation. */
.sp-zoom-window video,.sp-zoom-window canvas{transform:none!important;scale:1 1!important}
.sp-zoom-window :is([class*="share" i],[class*="screen" i]) video,
.sp-zoom-window :is([class*="share" i],[class*="screen" i]) canvas,
body:has([data-sp-classroom])>[class*="zm-"] :is([class*="share" i],[class*="screen" i]) video,
body:has([data-sp-classroom])>[class*="zm-"] :is([class*="share" i],[class*="screen" i]) canvas{transform:none!important;scale:1 1!important}
.sp-zoom-window :is([class*="footer" i],[class*="toolbar" i],[class*="notification" i],[class*="toast" i],[class*="dark" i]),
.sp-zoom-window :is([class*="footer" i],[class*="toolbar" i],[class*="notification" i],[class*="toast" i],[class*="dark" i]) *{color:#fff!important}
[data-sp-classroom][data-active-section="homework"] .sp-class-lesson-sections{display:none!important}
.sp-homework-exercise-menu{position:relative;margin-left:auto}
.sp-homework-exercise-menu>[data-homework-menu]{display:grid!important;place-items:center!important;width:36px!important;height:36px!important;padding:0!important;border:0!important;border-radius:50%!important;background:#eee7f6!important;color:#4f326d!important;font-weight:800!important;letter-spacing:1px!important;cursor:pointer!important}
.sp-homework-exercise-menu>div{position:absolute;z-index:120;top:40px;right:0;min-width:190px;padding:7px;border:1px solid #e1d5ec;border-radius:14px;background:#fff;box-shadow:0 12px 32px rgba(43,27,60,.18)}
.sp-homework-exercise-menu>div[hidden]{display:none!important}
.sp-homework-exercise-menu>div button{width:100%;padding:10px 12px;border:0;border-radius:10px;background:#f7f2fb;color:#3e2854;text-align:left;font:inherit;font-weight:700;cursor:pointer}
.sp-homework-exercise.is-teacher-focus,.sp-class-assigned-exercises>article.is-teacher-focus{position:relative!important;z-index:2!important;outline:4px solid #d9364f!important;outline-offset:5px!important;animation:spExerciseFocusPulse .72s ease-in-out 7!important}
@keyframes spExerciseFocusPulse{0%,100%{outline-color:#d9364f;box-shadow:0 0 0 0 rgba(217,54,79,.5)}50%{outline-color:#ff173d;box-shadow:0 0 0 10px rgba(217,54,79,0)}}
@media(prefers-reduced-motion:reduce){.sp-homework-exercise.is-teacher-focus,.sp-class-assigned-exercises>article.is-teacher-focus{animation:none!important}}
@media(max-width:782px){body.admin-bar:has(.sp-classroom[data-sp-classroom]) .sp-classroom[data-sp-classroom] .sp-class-topbar{top:auto!important}}
.sp-zoom-window video,.sp-zoom-window canvas,.sp-zoom-window .sp-zoom-camera-media{transform:none!important;-webkit-transform:none!important;scale:1 1!important}
.sp-zoom-window .sp-zoom-local-tile .sp-zoom-camera-media{transform:scaleX(-1)!important;-webkit-transform:scaleX(-1)!important}
.sp-zoom-window .sp-zoom-share-media{scale:1 1!important}
.sp-zoom-essential-controls{position:absolute!important;z-index:2147483647!important;left:50%!important;bottom:8px!important;display:none!important;align-items:center!important;gap:8px!important;padding:7px 9px!important;border-radius:16px!important;background:rgba(24,20,29,.92)!important;box-shadow:0 8px 24px rgba(0,0,0,.32)!important;transform:translateX(-50%)!important;pointer-events:auto!important}
.sp-zoom-window.is-sharing>.sp-zoom-essential-controls{display:flex!important}
.sp-zoom-essential-controls button{display:grid!important;place-items:center!important;width:38px!important;height:38px!important;min-width:38px!important;margin:0!important;padding:0!important;border:0!important;border-radius:50%!important;background:#fff!important;color:#17131c!important;-webkit-text-fill-color:#17131c!important;font-size:17px!important;line-height:1!important;box-shadow:none!important;cursor:pointer!important}
.sp-zoom-essential-controls button.is-off,.sp-zoom-essential-controls [data-sp-zoom-leave]{background:#a84d56!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
.sp-zoom-window.is-sharing{top:2px!important;max-height:calc(100dvh - 4px)!important}


/* release-3-11-81.css */
/* 3.11.81: direct Zoom dragging, consistent homework/material/audio states. */
.sp-zoom-window>.sp-zoom-move-handle{display:none!important}
.sp-zoom-window{pointer-events:auto!important;cursor:grab!important;touch-action:none!important}
.sp-zoom-window.is-sp-moving{cursor:grabbing!important;user-select:none!important}
.sp-zoom-window :is(button,a,input,select,textarea,[role="button"],[role="menuitem"],[contenteditable="true"]){cursor:pointer!important}
.sp-zoom-window :is(.footer-button__button-label,.participants-item__display-name,.chat-message__text-box,.meeting-info-container__title,[class*="dark" i] [class*="label" i],[class*="dark" i] [class*="text" i],[class*="footer" i] [class*="label" i],[class*="toolbar" i] [class*="label" i]),
body:has([data-sp-classroom])>[class*="zm-"] :is(.footer-button__button-label,.participants-item__display-name,.chat-message__text-box,[class*="dark" i] [class*="label" i],[class*="dark" i] [class*="text" i],[class*="footer" i] [class*="label" i],[class*="toolbar" i] [class*="label" i]){color:#fff!important;-webkit-text-fill-color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.55)!important}
.sp-homework-edvibe-sidebar{padding:14px!important;border-radius:18px!important;background:#e8e0f2!important}
.sp-homework-edvibe-sidebar h2{margin:4px 6px 12px!important;color:#362549!important;font-size:18px!important}
.sp-homework-edvibe-sidebar>div{gap:8px!important}
.sp-homework-edvibe-sidebar a{grid-template-columns:16px minmax(0,1fr)!important;gap:10px!important;padding:14px 12px!important;border:2px solid transparent!important;border-radius:15px!important;background:#fff!important;color:#5e6980!important}
.sp-homework-edvibe-sidebar a.is-active{border-color:#9d79bd!important;background:#f7f3fb!important;box-shadow:none!important;color:#543570!important}
.sp-homework-edvibe-sidebar a>span{width:11px!important;height:11px!important;min-width:11px!important;border-radius:50%!important}
.sp-homework-edvibe-sidebar a strong{font-size:15px!important;white-space:normal!important}
.sp-current-pinned,.sp-material-pinned{display:inline-flex;align-items:center;gap:6px;width:max-content;margin:0 0 14px;padding:7px 11px;border-radius:999px;background:#eee5f6;color:#5c3b77;font-size:13px;font-weight:800}
.sp-material-lesson-preview.is-pinned{border-color:#b99dcc!important;box-shadow:0 0 0 3px rgba(157,121,189,.14)!important}
.sp-lesson-visibility,.sp-book-visibility{display:inline-grid!important;place-items:center!important;width:30px!important;height:30px!important;min-width:30px!important;padding:0!important;border-radius:50%!important;background:#eee5f6!important;color:#704d8d!important;font-size:19px!important;line-height:1!important}
.sp-lesson-visibility.is-visible,.sp-book-lesson .sp-book-visibility[aria-label="Материал открыт ученику"]{background:#ded0ec!important;color:#50316b!important}
.sp-live-form-status{display:block;margin:10px 0 0;color:#64467d;font-weight:750}.sp-live-form-status.is-error{color:#a33b32}
.sp-unified-audio{width:min(100%,840px);margin:14px auto;padding:16px;box-sizing:border-box;border:1px solid #ded1e9;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(57,37,75,.08)}
.sp-custom-audio,.sp-unified-audio{grid-template-columns:42px 52px 42px minmax(130px,1fr) 42px!important}
.sp-custom-audio>[data-audio-play],.sp-unified-audio>[data-play]{background:#8064a2!important;color:#fff!important;border:0!important}
.sp-custom-audio>button,.sp-unified-audio>button,.sp-unified-audio .sp-audio-volume>button{border-color:#ded1e9!important;background:#f6f1fa!important;color:#50316b!important}
.sp-unified-audio>[data-play]{width:52px!important;height:52px!important}
@media(max-width:680px){.sp-custom-audio,.sp-unified-audio{grid-template-columns:38px 48px 38px minmax(80px,1fr) 38px!important;padding:11px!important}}

/* 3.12.11: one visual hierarchy for lesson and homework. */
.sp-current-lesson>h1,.sp-homework-edvibe-main>header h1{margin:0!important;color:#362549!important;font-size:clamp(25px,3vw,36px)!important;font-weight:800!important;line-height:1.12!important;letter-spacing:-.025em!important}
.sp-class-assigned-exercises>article>strong,.sp-homework-real-list>.sp-homework-exercise>header>b{display:block!important;margin:0 0 12px!important;color:#4f3568!important;font-size:clamp(20px,2.2vw,27px)!important;font-weight:800!important;line-height:1.2!important;letter-spacing:-.015em!important}


/* release-3-11-82.css */
/* 3.11.82: manual no-payment lessons in teacher cabinet, student cabinet and schedule. */
.sp-manual-free-lesson{display:grid;gap:15px;margin:20px;padding:22px;border:1px solid #d9c8e8;border-radius:20px;background:linear-gradient(135deg,#f6f0fa,#fff6e7)}
.sp-manual-free-heading{display:flex;align-items:center;gap:13px}.sp-manual-free-heading>span{display:grid;place-items:center;width:45px;height:45px;flex:0 0 45px;border-radius:15px;background:#8064a2;color:#fff;font-size:22px}.sp-manual-free-heading h3,.sp-manual-free-heading p{margin:0}.sp-manual-free-heading p{margin-top:3px;color:#5f6d72}
.sp-manual-free-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.sp-manual-free-lesson label{display:grid;gap:7px;color:#362549;font-weight:750}.sp-manual-free-lesson :is(input,select,textarea){width:100%;min-width:0;border:1px solid #d9c8e8!important;border-radius:13px!important;background:#fff!important;color:#172b28!important;box-shadow:none!important}.sp-manual-free-lesson button{width:max-content;border:0;background:#8064a2!important}
.sp-manual-free-label,.sp-calendar-manual-free{display:inline-flex;width:max-content;margin:6px 0 3px;padding:4px 8px;border-radius:999px;background:#e8e0f2;color:#543570;font-size:12px;font-weight:850}.sp-manual-free-note{display:block;margin-top:5px;color:#4f5d62;line-height:1.35}.sp-calendar-manual-note{max-width:100%;margin-top:3px;color:#543570;font-size:11px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.student-slot-lesson:has(.sp-calendar-manual-free){background:#f3edf8!important;border-color:#8b6bb1!important;border-left-color:#8b6bb1!important}.sp-dashboard-lesson:has(.sp-manual-free-label){border-color:#c9b1dc!important;background:linear-gradient(135deg,#fff,#f6f0fa)!important}
@media(max-width:680px){.sp-manual-free-grid{grid-template-columns:1fr}.sp-manual-free-lesson{margin:14px;padding:17px}.sp-manual-free-lesson button{width:100%}}
.sp-manual-free-open{width:100%!important;margin:8px 0 4px!important;padding:13px 17px!important;border:0!important;border-radius:13px!important;background:#8064a2!important;color:#fff!important;font-weight:850!important}.sp-slot-action-separator{margin:12px 0!important;color:#746683!important;font-size:12px!important;text-align:center!important}.sp-manual-free-slot-dialog{position:relative;width:min(560px,calc(100vw - 28px));max-height:calc(100dvh - 28px);padding:24px;overflow:auto;border:1px solid #d9c8e8;border-radius:24px;background:#fff;box-shadow:0 24px 70px rgba(20,27,43,.2)}.sp-manual-free-slot-dialog>.sp-modal-close{position:absolute;z-index:2;top:13px;right:13px;display:grid;width:38px;height:38px;padding:0;place-items:center;border:0;border-radius:50%;background:#f1e8f7;color:#50316b;font-size:25px}.sp-manual-free-slot-dialog .sp-manual-free-lesson{margin:18px 0 0;padding:0;border:0;background:transparent}.sp-manual-free-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;border-radius:13px;background:#f4eef8;color:#4f3568}.sp-manual-free-actions{display:flex;justify-content:flex-end;gap:10px}.sp-manual-free-actions button:first-child{background:#eee5f5!important;color:#50316b!important}.sp-manual-free-actions button:last-child{background:#8064a2!important;color:#fff!important}@media(max-width:600px){.sp-manual-free-slot-dialog{padding:20px 15px}.sp-manual-free-actions{display:grid;grid-template-columns:1fr 1fr}.sp-manual-free-actions button{width:100%!important}}

/* 3.12.19: compact, calm manual-lesson dialog that remains usable on phones/tablets. */
#sp-manual-free-slot-modal{padding:14px!important;box-sizing:border-box;backdrop-filter:blur(7px);background:rgba(27,20,35,.46)!important}
.sp-manual-free-slot-dialog{width:min(520px,100%)!important;max-height:calc(100dvh - 28px)!important;padding:26px!important;overflow:auto!important;border:1px solid #dfd1eb!important;border-radius:26px!important;background:linear-gradient(180deg,#fff 0,#fdfaff 100%)!important;box-shadow:0 26px 80px rgba(42,25,57,.28)!important}
.sp-manual-free-slot-dialog>.sp-modal-close{top:16px!important;right:16px!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;border:1px solid #dfd1eb!important;border-radius:50%!important;background:#f6f0fa!important;color:#51386a!important;line-height:1!important}
.sp-manual-free-slot-dialog .sp-manual-free-heading{padding-right:40px!important;align-items:flex-start!important}.sp-manual-free-slot-dialog .sp-manual-free-heading>span{width:42px!important;height:42px!important;flex-basis:42px!important;border-radius:14px!important}.sp-manual-free-slot-dialog .sp-manual-free-heading h3{font-size:22px!important;line-height:1.15!important;color:#213c37!important}.sp-manual-free-slot-dialog .sp-manual-free-heading p{max-width:390px!important;margin-top:7px!important;font-size:14px!important;line-height:1.42!important;color:#6d6474!important}
.sp-manual-free-slot-dialog .sp-manual-free-lesson{gap:13px!important;margin-top:20px!important}.sp-manual-free-slot-dialog .sp-manual-free-lesson label{gap:6px!important;font-size:13px!important;color:#4d3c59!important}.sp-manual-free-slot-dialog .sp-manual-free-lesson :is(select,textarea){min-height:46px!important;padding:11px 13px!important;border:1px solid #d9cce4!important;border-radius:14px!important;background:#fff!important;color:#233d38!important;font-size:15px!important;line-height:1.3!important}.sp-manual-free-slot-dialog .sp-manual-free-lesson textarea{min-height:68px!important;resize:vertical!important}.sp-manual-free-summary{padding:12px 14px!important;border:1px solid #eadff2!important;border-radius:14px!important;background:#f5eff9!important;color:#563a70!important}.sp-manual-free-summary strong{font-size:14px!important;text-transform:none!important}.sp-manual-free-summary span{font-weight:850!important}
.sp-manual-free-actions{display:grid!important;grid-template-columns:1fr 1.35fr!important;gap:10px!important;margin-top:3px!important}.sp-manual-free-actions button{display:flex!important;width:100%!important;min-width:0!important;min-height:48px!important;margin:0!important;padding:11px 14px!important;align-items:center!important;justify-content:center!important;border:0!important;border-radius:15px!important;font-size:14px!important;font-weight:850!important;line-height:1.2!important;white-space:normal!important}.sp-manual-free-actions button:first-child{background:#efe7f5!important;color:#543b69!important}.sp-manual-free-actions button:last-child{background:#8064a2!important;color:#fff!important}

/* The shared Elementor header outside the classroom must remain one compact row.
   Elementor containers default to flex-wrap:wrap on narrow screens, which used to
   push the user controls below the menu and make the header twice as tall. */
@media(max-width:900px){
  body .elementor-location-header>.elementor-element-fe11d85{
    display:flex!important;
    width:100%!important;
    min-height:68px!important;
    height:68px!important;
    padding:0!important;
    align-items:center!important;
    flex-wrap:nowrap!important;
    overflow:visible!important;
  }
  body .elementor-location-header .elementor-element-d70f6ef{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    width:min(100%,1180px)!important;
    min-width:0!important;
    min-height:68px!important;
    height:68px!important;
    margin:0 auto!important;
    padding:7px 14px!important;
    align-items:center!important;
    gap:10px!important;
    flex-wrap:nowrap!important;
  }
  body .elementor-location-header .elementor-element-19dd91e{
    grid-column:1!important;
    grid-row:1!important;
    display:flex!important;
    width:auto!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    align-items:flex-start!important;
  }
  body .elementor-location-header .elementor-element-19dd91e .elementor-menu-toggle{
    width:44px!important;
    min-width:44px!important;
    height:44px!important;
    min-height:44px!important;
    margin:0!important;
    padding:0!important;
    align-items:center!important;
    justify-content:center!important;
  }
  body .elementor-location-header .elementor-element-75bdcc3{
    grid-column:2!important;
    grid-row:1!important;
    width:auto!important;
    min-width:0!important;
    height:44px!important;
    margin:0!important;
    align-self:center!important;
  }
  body .elementor-location-header .sp-user-menu-wrap{height:44px!important;gap:7px!important;flex-wrap:nowrap!important}
  body .elementor-location-header .sp-notification-centre,
  body .elementor-location-header .sp-user-menu,
  body .elementor-location-header .sp-notification-bell,
  body .elementor-location-header .sp-user-trigger,
  body .elementor-location-header .sp-user-avatar{
    width:44px!important;
    min-width:44px!important;
    max-width:44px!important;
    height:44px!important;
    min-height:44px!important;
    max-height:44px!important;
    flex:0 0 44px!important;
  }
  body .elementor-location-header .sp-user-initials{
    width:40px!important;
    min-width:40px!important;
    max-width:40px!important;
    height:40px!important;
    min-height:40px!important;
    max-height:40px!important;
    flex-basis:40px!important;
    font-size:15px!important;
  }
  body .elementor-location-header .sp-notification-bell svg{width:23px!important;height:23px!important;min-width:23px!important;min-height:23px!important}
  body .elementor-location-header .sp-notification-panel{top:50px!important;right:0!important;max-width:calc(100vw - 20px)!important}
}
@media(max-width:420px){
  body .elementor-location-header .elementor-element-d70f6ef{padding-right:10px!important;padding-left:10px!important;gap:6px!important}
}
@media(max-width:600px){.sp-manual-free-slot-dialog{padding:20px 16px!important;border-radius:21px!important}.sp-manual-free-slot-dialog .sp-manual-free-heading h3{font-size:19px!important}.sp-manual-free-slot-dialog .sp-manual-free-heading p{font-size:13px!important}.sp-manual-free-actions{grid-template-columns:1fr!important}.sp-manual-free-actions button{min-height:45px!important}}

/* The theme styles first/last buttons as round icon controls. Keep form actions isolated. */
#sp-manual-free-slot-modal .sp-manual-free-slot-dialog .sp-manual-free-actions>.sp-manual-free-cancel,#sp-manual-free-slot-modal .sp-manual-free-slot-dialog .sp-manual-free-actions>.sp-manual-free-submit{position:static!important;display:flex!important;width:100%!important;height:auto!important;min-width:0!important;max-width:none!important;min-height:46px!important;margin:0!important;padding:11px 14px!important;align-items:center!important;justify-content:center!important;border:0!important;border-radius:14px!important;transform:none!important;appearance:none!important;box-shadow:none!important;overflow:visible!important;text-indent:0!important;font-size:14px!important;line-height:1.2!important;white-space:normal!important}
#sp-manual-free-slot-modal .sp-manual-free-slot-dialog .sp-manual-free-actions>.sp-manual-free-cancel{background:#efe7f5!important;color:#543b69!important}#sp-manual-free-slot-modal .sp-manual-free-slot-dialog .sp-manual-free-actions>.sp-manual-free-submit{background:#8064a2!important;color:#fff!important}
#sp-manual-free-slot-modal .sp-manual-free-actions>button::before,#sp-manual-free-slot-modal .sp-manual-free-actions>button::after{content:none!important;display:none!important}
@media(max-height:760px){.sp-manual-free-slot-dialog{padding-top:20px!important;padding-bottom:18px!important}.sp-manual-free-slot-dialog .sp-manual-free-heading p{display:none!important}.sp-manual-free-slot-dialog .sp-manual-free-lesson{gap:9px!important;margin-top:14px!important}.sp-manual-free-slot-dialog .sp-manual-free-lesson textarea{min-height:55px!important}.sp-manual-free-actions>button{min-height:43px!important}}

/* 3.12.21: final authority for the schedule dialog inside Elementor. */
body #sp-manual-free-slot-modal>#sp-manual-free-slot-modal-impossible,body #sp-manual-free-slot-modal>.sp-manual-free-slot-dialog{box-sizing:border-box!important;width:min(520px,100%)!important;height:auto!important;min-height:0!important;max-height:calc(100dvh - 28px)!important;padding:24px!important;overflow:auto!important;border:1px solid #dfd1eb!important;border-radius:26px!important;background:#fff!important;background-color:#fff!important;color:#213c37!important;opacity:1!important;box-shadow:0 26px 80px rgba(42,25,57,.28)!important}
body:has(.sp-classroom[data-sp-classroom]) .sp-classroom[data-sp-classroom] .sp-class-topbar{box-sizing:border-box!important;display:flex!important;min-width:0!important;min-height:64px!important;height:64px!important;padding:8px 12px!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;flex-wrap:nowrap!important;overflow:visible!important}
body:has(.sp-classroom[data-sp-classroom]) .sp-class-topbar>nav{display:flex!important;min-width:0!important;flex:1 1 auto!important;justify-content:center!important;gap:5px!important;overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:none!important}body:has(.sp-classroom[data-sp-classroom]) .sp-class-topbar>nav::-webkit-scrollbar{display:none!important}
body:has(.sp-classroom[data-sp-classroom]) .sp-class-topbar>nav{order:1!important}
body:has(.sp-classroom[data-sp-classroom]) .sp-class-topbar>nav>button{min-height:40px!important;padding:8px 12px!important;flex:0 0 auto!important;white-space:nowrap!important;font-size:13px!important;line-height:1.15!important}
body:has(.sp-classroom[data-sp-classroom]) .sp-class-topbar>.sp-class-top-actions{position:static!important;inset:auto!important;display:flex!important;min-width:max-content!important;margin:0!important;align-items:center!important;gap:6px!important;flex:0 0 auto!important}
body:has(.sp-classroom[data-sp-classroom]) .sp-class-topbar>.sp-class-top-actions{order:2!important}
@media(max-width:760px){body:has(.sp-classroom[data-sp-classroom]) .sp-classroom[data-sp-classroom] .sp-class-topbar{padding:7px 8px!important}body:has(.sp-classroom[data-sp-classroom]) .sp-class-topbar>nav{justify-content:flex-start!important}body:has(.sp-classroom[data-sp-classroom]) .sp-class-topbar>nav>button{min-height:38px!important;padding:7px 9px!important;font-size:12px!important}body:has(.sp-classroom[data-sp-classroom]) .sp-class-top-actions :is(.sp-class-student-cabinet,.sp-class-exit){width:36px!important;min-width:36px!important;height:36px!important;min-height:36px!important;padding:0!important}.sp-class-presence-stack{padding-left:3px!important}}


/* footer-final-3-14-12.css */
/* Canonical Mariias Wort footer. No replicas, overlays or page-specific variants. */
body .sp-global-elementor-footer,
body .sp-global-elementor-footer > .elementor,
body .sp-global-elementor-footer .elementor-element,
body .sp-global-elementor-footer .elementor-widget-container {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

body .sp-global-elementor-footer {
    clear: both !important;
    display: block !important;
    position: relative !important;
    z-index: 1 !important;
    overflow: visible !important;
    background: #002f2b !important;
}

body .sp-global-elementor-footer .sp-elementor-footer-section {
    padding: 0 !important;
    background: #002f2b !important;
}

body .sp-global-elementor-footer .sp-elementor-site-footer {
    display: grid !important;
    box-sizing: border-box !important;
    gap: 28px !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 305px !important;
    margin: 0 !important;
    padding: 50px clamp(32px, 6.1vw, 70px) 44px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #002f2b !important;
    color: #fff !important;
    font-family: inherit !important;
    text-align: left !important;
    box-shadow: none !important;
}

body .sp-global-elementor-footer .sp-elementor-site-footer-brand {
    display: grid !important;
    gap: 10px !important;
}

body .sp-global-elementor-footer .sp-elementor-site-footer-brand strong {
    color: #fff !important;
    font-size: 22px !important;
    font-weight: 600 !important;
    line-height: 1.25 !important;
}

body .sp-global-elementor-footer .sp-elementor-site-footer-brand span,
body .sp-global-elementor-footer .sp-elementor-site-footer small {
    color: #fff !important;
    font-size: 20px !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
}

body .sp-global-elementor-footer .sp-elementor-site-footer nav {
    display: flex !important;
    align-items: baseline !important;
    flex-wrap: wrap !important;
    gap: 18px 24px !important;
}

body .sp-global-elementor-footer .sp-elementor-site-footer nav a {
    display: inline !important;
    box-sizing: content-box !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: none !important;
    color: #fff !important;
    font: inherit !important;
    font-size: 20px !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
    text-decoration: underline !important;
    box-shadow: none !important;
    transform: none !important;
}

body .sp-global-elementor-footer .sp-footer-cookie-label {
    display: none !important;
}

body.page-moj-klass .sp-global-elementor-footer,
body.page-klass .sp-global-elementor-footer,
body.page-interaktivnaya-doska .sp-global-elementor-footer,
body.sp-library-lesson-mode .sp-global-elementor-footer,
body:has(.sp-classroom) .sp-global-elementor-footer,
body:has(.sp-whiteboard) .sp-global-elementor-footer {
    display: none !important;
}

@media (max-width: 650px) {
    body .sp-global-elementor-footer .sp-elementor-site-footer {
        gap: 18px !important;
        min-height: 0 !important;
        margin-top: 0 !important;
        padding: 30px 20px 28px !important;
    }

    body .sp-global-elementor-footer .sp-elementor-site-footer-brand {
        gap: 7px !important;
    }

    body .sp-global-elementor-footer .sp-elementor-site-footer-brand strong {
        font-size: 18px !important;
    }

    body .sp-global-elementor-footer .sp-elementor-site-footer-brand span,
    body .sp-global-elementor-footer .sp-elementor-site-footer small,
    body .sp-global-elementor-footer .sp-elementor-site-footer nav a {
        font-size: 14px !important;
        line-height: 1.35 !important;
    }

    body .sp-global-elementor-footer .sp-elementor-site-footer nav {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, max-content)) !important;
        justify-content: start !important;
        align-items: start !important;
        gap: 10px 18px !important;
    }
}

@media (max-width: 390px) {
    body .sp-global-elementor-footer .sp-elementor-site-footer nav {
        grid-template-columns: 1fr 1fr !important;
    }
}


/* compact-schedule-admin-3-14-30.css */
/* Compact teacher-only controls for the schedule and per-student access. */
.sp-teacher-tools {
    margin: 0 0 14px !important;
    border: 1px solid #cfdedb !important;
    border-radius: 17px !important;
    background: #fff !important;
    box-shadow: none !important;
}

.sp-teacher-tools > summary {
    min-height: 50px !important;
    padding: 11px 48px 11px 16px !important;
}

.sp-teacher-tools > summary > span {
    color: #002f2b !important;
    font-size: 16px !important;
    font-weight: 750 !important;
}

.sp-teacher-tools > summary > small {
    color: #5b716e !important;
    font-size: 12px !important;
}

.sp-teacher-tools[open] > summary {
    border-bottom-color: #cfdedb !important;
    background: #f7fbfa !important;
}

.sp-teacher-tools-content {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 9px !important;
    padding: 10px !important;
}

.sp-teacher-tools-content > .sp-obsolete-subscription-calculator,
.sp-teacher-tools-content > .sp-obsolete-student-activation,
.sp-teacher-tools-content > .sp-teacher-tool-action,
.sp-teacher-tools-content > .sp-teacher-month-slot-list {
    display: none !important;
}

.sp-teacher-tool-action,
.sp-teacher-slot-list {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #d8e4e2;
    border-radius: 14px;
    background: #fff6e7;
}

.sp-teacher-slot-list { background: #e8e0f2; }

.sp-teacher-tool-action > summary,
.sp-teacher-slot-list > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 45px;
    padding: 10px 13px;
    color: #002f2b;
    font-size: 14px;
    font-weight: 750;
    cursor: pointer;
    list-style: none;
}

.sp-teacher-tool-action > summary::-webkit-details-marker,
.sp-teacher-slot-list > summary::-webkit-details-marker { display: none; }

.sp-teacher-tool-action > summary::after { content: '+'; font-size: 20px; font-weight: 400; }
.sp-teacher-tool-action[open] > summary::after { content: '−'; }

.sp-teacher-slot-list > summary small {
    display: grid;
    place-items: center;
    min-width: 27px;
    height: 27px;
    padding: 0 7px;
    border-radius: 999px;
    background: #fff;
    color: #002f2b;
    font-size: 12px;
}

.sp-teacher-tool-action > form {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
    margin: 0 !important;
    padding: 0 12px 12px;
}

.sp-teacher-tool-action > form label {
    display: grid;
    gap: 4px;
    color: #496763;
    font-size: 12px;
    font-weight: 700;
}

.sp-teacher-tool-action > form button {
    align-self: end;
    min-height: 42px;
    padding: 9px 14px;
    border: 0;
    border-radius: 999px;
    background: #002f2b;
    color: #fff;
    font-weight: 750;
}

.sp-teacher-slot-list > div {
    padding: 0 10px 10px;
    color: #193f3b;
    font-size: 13px;
    line-height: 1.55;
}

.sp-teacher-slot-rows {
    display: grid;
    gap: 6px;
}

.sp-teacher-slot-row {
    display: grid;
    grid-template-columns: 48px 100px minmax(135px, 170px) minmax(140px, 1fr) auto;
    align-items: center;
    gap: 9px;
    min-width: 0;
    padding: 8px 9px;
    border-radius: 12px;
    background: #fff6e7;
    color: #151515;
}

.sp-teacher-slot-row:nth-child(even) { background: #fff; }
.sp-teacher-slot-row > * { min-width: 0; }
.sp-teacher-slot-row strong {
    overflow-wrap: anywhere;
    color: #123b37 !important;
    -webkit-text-fill-color: #123b37 !important;
    font-size: 13px;
}
.sp-teacher-slot-row time {
    padding: 5px 8px;
    border-radius: 9px;
    background: #b8dcd8;
    color: #123b37;
    font-weight: 800;
    text-align: center;
    white-space: nowrap;
}

.sp-teacher-slot-day {
    display: grid;
    place-items: center;
    width: 38px;
    height: 30px;
    border-radius: 10px;
    background: #f1da89;
    color: #123b37;
    font-weight: 850;
}

.sp-teacher-slot-type {
    padding: 5px 8px;
    border-radius: 9px;
    background: #e8e0f2;
    color: #151515;
    font-weight: 750;
    text-align: center;
}

.sp-teacher-slot-row form { margin: 0 !important; }
.sp-teacher-slot-row button {
    min-height: 32px !important;
    padding: 5px 10px !important;
    border: 1px solid #123b37 !important;
    border-radius: 999px !important;
    background: #dceeed !important;
    color: #123b37 !important;
    font-size: 11px !important;
    font-weight: 750 !important;
    white-space: nowrap;
}

.sp-teacher-freeze-week-notice {
    display: block !important;
    margin: 0 0 12px !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 1px solid #c9e1de !important;
    border-radius: 17px !important;
    background: #dceeed !important;
}

.sp-teacher-freeze-week-notice > summary {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 50px;
    padding: 8px 14px;
    cursor: pointer;
    list-style: none;
}

.sp-teacher-freeze-week-notice > summary::-webkit-details-marker { display: none; }
.sp-teacher-freeze-week-notice > summary strong { flex: 1; font-size: 15px; }
.sp-teacher-freeze-week-notice > summary small {
    display: grid;
    place-items: center;
    min-width: 27px;
    height: 27px;
    padding: 0 7px;
    border-radius: 999px;
    background: #fff;
    color: #002f2b;
    font-weight: 800;
}

.sp-teacher-freeze-week-notice .sp-teacher-freeze-week-icon {
    width: 34px;
    height: 34px;
    flex-basis: 34px;
    border-radius: 11px;
    font-size: 16px;
}

.sp-teacher-freeze-week-content { padding: 0 14px 12px; }

.sp-teacher-calendar-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    width: 100%;
}

.sp-teacher-calendar-toolbar > .student-calendar-nav {
    flex: 0 0 auto;
}

.sp-teacher-calendar-toolbar .sp-teacher-freeze-week-notice.is-toolbar {
    display: flex !important;
    align-items: center !important;
    flex: 1 1 auto;
    width: auto !important;
    min-width: 0;
    max-width: 720px;
    min-height: 58px;
    margin: 0 !important;
    padding: 7px 9px !important;
    border-radius: 18px !important;
}

.sp-teacher-calendar-toolbar .sp-teacher-freeze-week-notice.is-toolbar > summary {
    flex: 0 0 auto;
    min-height: 42px;
    padding: 4px 7px;
}

.sp-teacher-calendar-toolbar .sp-teacher-freeze-week-notice.is-toolbar > summary strong {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.sp-teacher-calendar-toolbar .sp-teacher-freeze-week-notice.is-toolbar .sp-teacher-freeze-week-content {
    flex: 1 1 auto;
    min-width: 0;
    padding: 0;
}

.sp-teacher-calendar-toolbar .sp-teacher-freeze-week-notice.is-toolbar .sp-teacher-freeze-week-list {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.sp-teacher-calendar-toolbar .sp-teacher-freeze-week-notice.is-toolbar .sp-teacher-freeze-week-list > span {
    min-height: 28px;
    padding: 4px 8px;
    border-radius: 10px;
    font-size: 11px;
}

.sp-teacher-calendar-toolbar .sp-teacher-freeze-week-notice.is-toolbar .sp-teacher-freeze-week-list small {
    font-size: 10px;
}

.sp-teacher-subscription-access {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin: 12px;
    padding: 17px;
    border: 1px solid #c9e1de;
    border-radius: 17px;
    background: #dceeed;
}

.sp-teacher-subscription-access h3 { margin: 0 0 4px; }
.sp-teacher-subscription-access p { margin: 0; color: #496763; }
.sp-teacher-subscription-access form { flex: 0 0 auto; margin: 0; }
.sp-teacher-access-status {
    flex: 0 0 auto;
    padding: 8px 12px;
    border-radius: 999px;
    background: #002f2b;
    color: #fff;
    font-size: 13px;
    font-weight: 750;
}

@media (max-width: 760px) {
    .sp-teacher-tools-content { grid-template-columns: 1fr !important; }
    .sp-teacher-tool-action > form { grid-template-columns: 1fr 1fr; }
    .sp-teacher-subscription-access { align-items: stretch; flex-direction: column; }
    .sp-teacher-subscription-access form,
    .sp-teacher-subscription-access button { width: 100%; }
    .sp-teacher-access-status { align-self: flex-start; }
    .sp-teacher-slot-row {
        grid-template-columns: 42px 92px minmax(0, 1fr) auto;
    }
    .sp-teacher-slot-row strong { grid-column: 2 / 4; }
    .sp-teacher-slot-row form { grid-column: 4; grid-row: 1 / 3; }
}

@media (max-width: 1180px) {
    .sp-teacher-calendar-toolbar {
        align-items: stretch;
        flex-direction: column;
    }
    .sp-teacher-calendar-toolbar .sp-teacher-freeze-week-notice.is-toolbar {
        width: 100% !important;
        max-width: none;
    }
}

/* 3.14.41 — one continuous weekday bar and compact white dialogs. */
.student-calendar .student-calendar-corner,
.student-calendar .student-calendar-grid-day-header,
.student-calendar .student-calendar-grid-day-header:nth-child(3n),
.student-calendar .student-calendar-grid-day-header:nth-child(3n + 1) {
    border-radius: 0 !important;
    background: #e9e0f2 !important;
    box-shadow: none !important;
}

body.sp-design-system-page :is(
    #sp-block-modal,
    #sp-open-slot-modal,
    #sp-manual-free-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
) {
    background: rgba(18, 59, 55, .2) !important;
    backdrop-filter: blur(6px) !important;
    -webkit-backdrop-filter: blur(6px) !important;
}

body.sp-design-system-page :is(
    #sp-block-modal,
    #sp-open-slot-modal,
    #sp-manual-free-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 {
    width: min(620px, calc(100vw - 28px)) !important;
    padding: 20px !important;
    border: 1px solid #d9dfdd !important;
    border-radius: 20px !important;
    background: #fff !important;
    background-image: none !important;
    box-shadow: 0 22px 65px rgba(18, 59, 55, .2) !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div {
    width: min(760px, calc(100vw - 28px)) !important;
    gap: 9px !important;
    padding: 20px !important;
}

body.sp-design-system-page :is(
    #sp-block-modal,
    #sp-open-slot-modal,
    #sp-manual-free-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
) :is(h2, h3, h4) {
    margin-top: 0 !important;
    margin-bottom: 12px !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > h3 {
    margin-bottom: 4px !important;
    font-size: 23px !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > h4 {
    margin: 4px 0 0 !important;
    font-size: 18px !important;
}

body.sp-design-system-page :is(
    #sp-block-modal,
    #sp-open-slot-modal,
    #sp-manual-free-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
) :is(input:not([type="hidden"]), select, textarea) {
    min-height: 40px !important;
    padding: 8px 11px !important;
    border-radius: 10px !important;
    box-shadow: none !important;
}

body.sp-design-system-page :is(
    #sp-block-modal,
    #sp-open-slot-modal,
    #sp-manual-free-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([onclick^="spClose"]):not([style*="position:absolute"]),
body.sp-design-system-page :is(
    #sp-block-modal,
    #sp-open-slot-modal,
    #sp-manual-free-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
) a[id] {
    min-height: 39px !important;
    padding: 8px 14px !important;
    box-shadow: none !important;
}

body.sp-design-system-page :is(
    #sp-block-modal,
    #sp-open-slot-modal,
    #sp-manual-free-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[onclick^="spClose"] {
    top: 11px !important;
    right: 11px !important;
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    min-height: 34px !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(4) {
    grid-template-columns: minmax(165px, 1.2fr) minmax(100px, .7fr) minmax(100px, .7fr) minmax(150px, .9fr) !important;
    gap: 9px !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(5) > button {
    width: min(210px, 100%) !important;
}

@media (max-width: 760px) {
    body.sp-design-system-page :is(
        #sp-block-modal,
        #sp-open-slot-modal,
        #sp-manual-free-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 {
        width: calc(100vw - 12px) !important;
        padding: 17px 15px !important;
        border-radius: 17px !important;
    }

    body.sp-design-system-page #sp-lesson-actions-modal > div {
        gap: 7px !important;
    }

    body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(4) {
        grid-template-columns: 1fr !important;
    }
}

/* High-specificity finish: legacy design-system rules must not flatten dialogs. */
body.sp-design-system-page :is(
    #sp-block-modal,
    #sp-open-slot-modal,
    #sp-manual-free-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: 1px solid #d8cce4 !important;
    background:
        radial-gradient(circle at 100% 0, rgba(233, 224, 242, .8), transparent 31%),
        #fffaf1 !important;
    box-shadow: 0 30px 90px rgba(18, 59, 55, .24) !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(1) > button {
    border-color: #8fbfba !important;
    background: #dceeed !important;
    color: #123b37 !important;
    -webkit-text-fill-color: #123b37 !important;
    box-shadow: none !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(2) > button,
body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(5) > button,
body.sp-design-system-page #sp-delete-modal button[type="submit"],
body.sp-design-system-page #sp-delete-open-slot-modal button[type="submit"] {
    border-color: #d7a7a0 !important;
    background: #f7e4e0 !important;
    color: #743b34 !important;
    -webkit-text-fill-color: #743b34 !important;
    box-shadow: none !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(3) > button {
    border-color: #c5b4d6 !important;
    background: #e9e0f2 !important;
    color: #123b37 !important;
    -webkit-text-fill-color: #123b37 !important;
    box-shadow: none !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(4) > button,
body.sp-design-system-page #sp-manual-free-slot-modal button[type="button"] {
    border-color: #bfaed0 !important;
    background: #fff !important;
    color: #123b37 !important;
    -webkit-text-fill-color: #123b37 !important;
    box-shadow: none !important;
}

body.sp-design-system-page :is(
    #sp-block-modal,
    #sp-open-slot-modal,
    #sp-manual-free-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[onclick^="spClose"] {
    border-color: #c9b8d8 !important;
    background: #f1eaf6 !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div {
    width: min(840px, calc(100vw - 32px)) !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(4) {
    grid-column: 1 / -1 !important;
    display: grid !important;
    grid-template-columns: minmax(180px, 1.25fr) minmax(110px, .75fr) minmax(110px, .75fr) minmax(170px, 1fr) !important;
    gap: 12px !important;
    align-items: end !important;
    width: 100% !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(4) label {
    display: grid !important;
    gap: 6px !important;
    margin: 0 !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(4) :is(input, button) {
    width: 100% !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(5) {
    grid-column: 1 / -1 !important;
    display: flex !important;
    justify-content: flex-end !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(5) > button {
    width: min(240px, 100%) !important;
}

@media (max-width: 760px) {
    body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(4) {
        grid-template-columns: 1fr !important;
    }

    body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(5) > button {
        width: 100% !important;
    }
}

@media (max-width: 520px) {
    .sp-teacher-tools > summary { align-items: flex-start !important; }
    .sp-teacher-tool-action > form { grid-template-columns: 1fr; }
    .sp-teacher-freeze-week-list { display: grid; }
    .sp-teacher-slot-row {
        grid-template-columns: 38px minmax(0, 1fr);
        gap: 7px;
    }
    .sp-teacher-slot-row time,
    .sp-teacher-slot-type { text-align: left; }
    .sp-teacher-slot-row strong { grid-column: 2; }
    .sp-teacher-slot-row form { grid-column: 1 / -1; grid-row: auto; }
    .sp-teacher-slot-row button { width: 100%; }
}

/* 3.14.36 — softer blue freezes and a polished weekly calendar. */
.sp-teacher-freeze-week-notice,
.sp-teacher-calendar-toolbar .sp-teacher-freeze-week-notice.is-toolbar {
    border-color: #bfd8ea !important;
    background: linear-gradient(135deg, #edf7fd 0%, #e1f0fa 100%) !important;
    box-shadow: 0 10px 26px rgba(61, 116, 151, .09) !important;
}

.sp-teacher-freeze-week-notice .sp-teacher-freeze-week-icon {
    display: grid;
    place-items: center;
    background: #cfe5f4 !important;
    color: #24546f !important;
}

.sp-teacher-calendar-toolbar .sp-teacher-freeze-week-notice.is-toolbar .sp-teacher-freeze-week-list > span {
    border: 1px solid rgba(83, 137, 171, .16);
    background: rgba(255, 255, 255, .82) !important;
    color: #173f57 !important;
    box-shadow: 0 3px 9px rgba(61, 116, 151, .06);
}

.student-calendar {
    background:
        radial-gradient(circle at 96% 4%, rgba(207, 229, 244, .38), transparent 22%),
        linear-gradient(145deg, #fff 0%, #fffaf1 100%) !important;
    box-shadow: 0 22px 60px rgba(18, 59, 55, .08) !important;
}

.student-calendar-header {
    margin-bottom: 26px !important;
}

.student-calendar-week {
    border: 1px solid rgba(241, 218, 137, .34);
    box-shadow: 0 5px 14px rgba(18, 59, 55, .04);
}

.student-calendar-nav > a,
.sp-calendar-date-form {
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease !important;
}

.student-calendar-nav > a:hover,
.student-calendar-nav > a:focus-visible,
.sp-calendar-date-form:focus-within {
    transform: translateY(-2px);
    border-color: #7faeaa !important;
    box-shadow: 0 9px 20px rgba(18, 59, 55, .1) !important;
}

.student-calendar-nav > a[href*="week=0"] {
    border-color: #9ac8c4 !important;
    background: #dceeed !important;
    color: #123b37 !important;
}

.student-calendar-grid-view {
    border-color: #c8d8d5 !important;
    background: #fffdfa !important;
    box-shadow: 0 16px 38px rgba(18, 59, 55, .08) !important;
}

.student-calendar-corner,
.student-calendar-grid-day-header {
    border-color: #d9e3e1 !important;
}

.student-calendar-grid-day-header {
    padding: 15px 8px !important;
    background: #fff6e7 !important;
    color: #123b37 !important;
    font-weight: 800 !important;
    letter-spacing: -.01em;
}

.student-calendar-grid-day-header:nth-child(3n) { background: #edf7fd !important; }
.student-calendar-grid-day-header:nth-child(3n + 1) { background: #f3eef8 !important; }

.student-calendar-time-column {
    border-color: #d9e3e1 !important;
    background: #f7fbfa !important;
}

.student-calendar-time-row {
    border-color: #e4ebe9 !important;
    color: #55706d !important;
    font-weight: 700 !important;
}

.student-calendar-grid-day {
    border-color: #e1e8e6 !important;
    background: rgba(255, 255, 255, .76) !important;
}

.student-calendar-grid-day:nth-of-type(even) {
    background: rgba(252, 249, 244, .72) !important;
}

.student-calendar-hour-line { border-color: #e8eeec !important; }

.student-slot-positioned {
    left: 7px !important;
    right: 7px !important;
    border-width: 1px 1px 1px 3px !important;
    border-radius: 13px !important;
    box-shadow: 0 5px 13px rgba(18, 59, 55, .08) !important;
    transition: transform .15s ease, box-shadow .15s ease !important;
}

.student-slot-positioned:hover {
    z-index: 4;
    transform: translateY(-1px);
    box-shadow: 0 9px 20px rgba(18, 59, 55, .13) !important;
}

.student-calendar .student-slot-lesson {
    border-color: #aa98c7 !important;
    background: linear-gradient(145deg, #eee7f5, #e4d9ef) !important;
}

.student-calendar .student-slot-free {
    border-color: #77aaa5 !important;
    background: linear-gradient(145deg, #dff1ef, #cce7e4) !important;
}

.student-calendar .student-slot-google-event,
.student-calendar .student-slot-manual-block {
    border-color: #d1b75b !important;
    background: linear-gradient(145deg, #fff9eb, #f7e9bb) !important;
    color: #4a4020 !important;
}

.student-slot-positioned .student-slot-time {
    margin-top: 5px !important;
    font-weight: 750 !important;
}

@media (max-width: 760px) {
    .student-calendar { box-shadow: 0 14px 34px rgba(18, 59, 55, .07) !important; }
    .student-calendar-header { margin-bottom: 20px !important; }
    .student-calendar-grid-day-header { padding: 12px 7px !important; }
    .student-slot-positioned { left: 5px !important; right: 5px !important; }
}

/* 3.14.38 — calm lilac weekday bar and unified schedule dialogs. */
.student-calendar .student-calendar-grid-day-header,
.student-calendar .student-calendar-grid-day-header:nth-child(3n),
.student-calendar .student-calendar-grid-day-header:nth-child(3n + 1) {
    border-color: #d4c7e2 !important;
    background: #e9e0f2 !important;
    color: #123b37 !important;
}

.student-calendar .student-calendar-corner {
    border-color: #d4c7e2 !important;
    background: #e9e0f2 !important;
}

:is(
    #sp-block-modal,
    #sp-open-slot-modal,
    #sp-manual-free-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
) {
    background: rgba(18, 59, 55, .27) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
}

:is(
    #sp-block-modal,
    #sp-open-slot-modal,
    #sp-manual-free-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: 1px solid #d8cce4 !important;
    border-radius: 26px !important;
    background:
        radial-gradient(circle at 100% 0, rgba(233, 224, 242, .78), transparent 30%),
        #fffaf1 !important;
    box-shadow: 0 30px 90px rgba(18, 59, 55, .24) !important;
}

:is(
    #sp-block-modal,
    #sp-open-slot-modal,
    #sp-manual-free-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
) :is(h2, h3, h4) {
    color: #123b37 !important;
    -webkit-text-fill-color: #123b37 !important;
    letter-spacing: -.02em !important;
}

:is(
    #sp-block-modal,
    #sp-open-slot-modal,
    #sp-manual-free-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
) :is(input:not([type="hidden"]), select, textarea) {
    min-height: 46px !important;
    padding: 10px 13px !important;
    border: 1.5px solid #cfc1dc !important;
    border-radius: 13px !important;
    outline: 0 !important;
    background: rgba(255, 255, 255, .9) !important;
    color: #123b37 !important;
    box-shadow: 0 4px 12px rgba(18, 59, 55, .04) !important;
}

:is(
    #sp-block-modal,
    #sp-open-slot-modal,
    #sp-manual-free-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
) :is(input:not([type="hidden"]), select, textarea):focus {
    border-color: #8d71a9 !important;
    box-shadow: 0 0 0 4px rgba(196, 178, 215, .25) !important;
}

:is(
    #sp-block-modal,
    #sp-open-slot-modal,
    #sp-manual-free-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([onclick^="spClose"]):not([style*="position:absolute"]),
:is(
    #sp-block-modal,
    #sp-open-slot-modal,
    #sp-manual-free-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
) a[id] {
    min-height: 44px !important;
    padding: 10px 17px !important;
    border: 1px solid #123b37 !important;
    border-radius: 999px !important;
    background: #123b37 !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    box-shadow: 0 7px 16px rgba(18, 59, 55, .14) !important;
    font-weight: 750 !important;
    transition: transform .15s ease, box-shadow .15s ease !important;
}

:is(
    #sp-block-modal,
    #sp-open-slot-modal,
    #sp-manual-free-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([onclick^="spClose"]):not([style*="position:absolute"]):hover,
:is(
    #sp-block-modal,
    #sp-open-slot-modal,
    #sp-manual-free-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
) a[id]:hover {
    transform: translateY(-1px) !important;
    box-shadow: 0 10px 22px rgba(18, 59, 55, .19) !important;
}

:is(
    #sp-block-modal,
    #sp-open-slot-modal,
    #sp-manual-free-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[onclick^="spClose"],
:is(
    #sp-block-modal,
    #sp-open-slot-modal,
    #sp-manual-free-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 > button[style*="position:absolute"] {
    border-color: #c9b8d8 !important;
    background: #f1eaf6 !important;
    color: transparent !important;
}

#sp-lesson-actions-modal > div > form:nth-of-type(1) > button {
    border-color: #8fbfba !important;
    background: #dceeed !important;
    color: #123b37 !important;
    -webkit-text-fill-color: #123b37 !important;
}

#sp-lesson-actions-modal > div > form:nth-of-type(2) > button,
#sp-lesson-actions-modal > div > form:nth-of-type(5) > button,
#sp-delete-modal button[type="submit"],
#sp-delete-open-slot-modal button[type="submit"] {
    border-color: #d7a7a0 !important;
    background: #f7e4e0 !important;
    color: #743b34 !important;
    -webkit-text-fill-color: #743b34 !important;
    box-shadow: none !important;
}

#sp-lesson-actions-modal > div > form:nth-of-type(3) > button {
    border-color: #c5b4d6 !important;
    background: #e9e0f2 !important;
    color: #123b37 !important;
    -webkit-text-fill-color: #123b37 !important;
}

#sp-lesson-actions-modal > div > form:nth-of-type(4) > button,
#sp-manual-free-slot-modal button[type="button"] {
    border-color: #bfaed0 !important;
    background: #fff !important;
    color: #123b37 !important;
    -webkit-text-fill-color: #123b37 !important;
    box-shadow: none !important;
}

#sp-lesson-actions-modal hr {
    border: 0 !important;
    border-top: 1px solid #d9cde4 !important;
}

@media (max-width: 760px) {
    :is(
        #sp-block-modal,
        #sp-open-slot-modal,
        #sp-manual-free-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-radius: 21px !important;
    }
}

/* 3.14.42 final overrides — intentionally last in the stylesheet. */
body.sp-design-system-page .student-calendar :is(.student-calendar-corner,.student-calendar-grid-day-header),
body.sp-design-system-page .student-calendar .student-calendar-grid-day-header:nth-child(3n),
body.sp-design-system-page .student-calendar .student-calendar-grid-day-header:nth-child(3n + 1) {
    border-radius: 0 !important;
    background: #e9e0f2 !important;
    box-shadow: none !important;
}

body.sp-design-system-page :is(
    #sp-block-modal,#sp-open-slot-modal,#sp-manual-free-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 {
    width: min(620px, calc(100vw - 28px)) !important;
    padding: 20px !important;
    border: 1px solid #d9dfdd !important;
    border-radius: 20px !important;
    background: #fff !important;
    background-image: none !important;
    box-shadow: 0 22px 65px rgba(18,59,55,.2) !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div {
    width: min(760px, calc(100vw - 28px)) !important;
    gap: 9px !important;
    padding: 20px !important;
}

body.sp-design-system-page :is(
    #sp-block-modal,#sp-open-slot-modal,#sp-manual-free-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
) :is(input:not([type="hidden"]),select,textarea) {
    min-height: 40px !important;
    padding: 8px 11px !important;
    border-radius: 10px !important;
    box-shadow: none !important;
}

body.sp-design-system-page :is(
    #sp-block-modal,#sp-open-slot-modal,#sp-manual-free-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([onclick^="spClose"]):not([style*="position:absolute"]),
body.sp-design-system-page :is(
    #sp-block-modal,#sp-open-slot-modal,#sp-manual-free-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
) a[id] {
    min-height: 39px !important;
    padding: 8px 14px !important;
    box-shadow: none !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(4) {
    grid-template-columns: minmax(155px,1.2fr) minmax(92px,.7fr) minmax(92px,.7fr) minmax(142px,.9fr) !important;
    gap: 9px !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(5) > button {
    width: min(200px,100%) !important;
}

@media (max-width:760px) {
    body.sp-design-system-page :is(
        #sp-block-modal,#sp-open-slot-modal,#sp-manual-free-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 {
        width: calc(100vw - 12px) !important;
        padding: 17px 15px !important;
        border-radius: 17px !important;
    }
    body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(4) {
        grid-template-columns: 1fr !important;
    }
}

/* 3.14.45 — keep status actions compact while giving the reschedule form full width. */
body.sp-design-system-page #sp-lesson-actions-modal > div {
    grid-template-columns: repeat(3, 155px) minmax(0, 1fr) !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(1) { grid-column: 1 !important; }
body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(2) { grid-column: 2 !important; }
body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(3) { grid-column: 3 !important; }

body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(4) {
    grid-column: 1 / -1 !important;
    grid-template-columns: minmax(180px,1.2fr) minmax(105px,.7fr) minmax(105px,.7fr) 160px !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(4) > button {
    min-width: 160px !important;
    white-space: nowrap !important;
}

@media (max-width:760px) {
    body.sp-design-system-page #sp-lesson-actions-modal > div {
        grid-template-columns: 1fr 1fr !important;
    }
    body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(1),
    body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(2),
    body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(3),
    body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(4) {
        grid-column: auto !important;
    }
    body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(3),
    body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(4) {
        grid-column: 1 / -1 !important;
    }
    body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(4) {
        grid-template-columns: 1fr !important;
    }
}

/* 3.14.44 — white calendar columns and dialog layout based on the manual-lesson reference. */
body.sp-design-system-page .student-calendar .student-calendar-grid-day,
body.sp-design-system-page .student-calendar .student-calendar-grid-day:nth-of-type(even),
body.sp-design-system-page .student-calendar .student-calendar-grid-day:nth-of-type(odd) {
    background: #fff !important;
}

body.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 {
    width: min(560px, calc(100vw - 28px)) !important;
    padding: 24px !important;
    border-color: #dfd1eb !important;
    border-radius: 24px !important;
}

body.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
) :is(h2,h3):first-of-type {
    display: flex !important;
    align-items: center !important;
    min-height: 44px !important;
    margin: 0 50px 20px 0 !important;
    color: #123b37 !important;
    font-size: clamp(21px, 3vw, 27px) !important;
    font-weight: 650 !important;
    line-height: 1.18 !important;
}

body.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
) :is(h2,h3):first-of-type::before {
    content: "✦";
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    margin-right: 12px;
    border-radius: 14px;
    background: #8064a2;
    color: #fff;
    -webkit-text-fill-color: #fff;
    font-size: 19px;
}

body.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
) :is(form,#sp-student-lesson-content) {
    gap: 14px !important;
}

body.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
) label {
    gap: 6px !important;
    color: #123b37 !important;
    font-weight: 750 !important;
}

body.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
) :is(input:not([type="hidden"]),select,textarea) {
    border-color: #d9cce4 !important;
    background: #fff !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div {
    grid-template-columns: repeat(3, minmax(120px, 170px)) !important;
    justify-content: start !important;
    width: min(720px, calc(100vw - 28px)) !important;
    gap: 11px !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > #sp-actions-open-class {
    grid-column: 1 / -1 !important;
    justify-self: start !important;
    width: auto !important;
    min-width: 170px !important;
    margin: 0 0 4px !important;
    padding-inline: 22px !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > form:not(:nth-of-type(4)):not(:nth-of-type(5)) {
    width: auto !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > form:not(:nth-of-type(4)):not(:nth-of-type(5)) > button {
    width: 100% !important;
    min-width: 0 !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > hr {
    margin: 5px 0 2px !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > h4 {
    margin: 0 !important;
    font-size: 18px !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(4) {
    grid-template-columns: minmax(165px,1.15fr) minmax(95px,.65fr) minmax(95px,.65fr) auto !important;
    gap: 10px !important;
    padding: 14px !important;
    border: 1px solid #eadff2 !important;
    border-radius: 16px !important;
    background: #faf7fc !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(4) > button {
    width: auto !important;
    min-width: 145px !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(5) {
    margin-top: 1px !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(5) > button {
    width: auto !important;
    min-width: 150px !important;
}

body.sp-design-system-page :is(#sp-block-modal,#sp-open-slot-modal) .sp-modal-content form > button[type="submit"],
body.sp-design-system-page :is(#sp-delete-modal,#sp-delete-open-slot-modal) form > button[type="submit"] {
    align-self: end !important;
    width: auto !important;
    min-width: 150px !important;
    margin-top: 2px !important;
}

body.sp-design-system-page #sp-block-modal .sp-manual-free-open {
    width: auto !important;
    min-width: 190px !important;
    margin: 5px 0 0 !important;
    padding: 10px 17px !important;
    background: #8064a2 !important;
}

@media (max-width:760px) {
    body.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 {
        padding: 19px 16px !important;
        border-radius: 20px !important;
    }
    body.sp-design-system-page #sp-lesson-actions-modal > div {
        grid-template-columns: 1fr 1fr !important;
    }
    body.sp-design-system-page #sp-lesson-actions-modal > div > h3,
    body.sp-design-system-page #sp-lesson-actions-modal > div > #sp-actions-open-class,
    body.sp-design-system-page #sp-lesson-actions-modal > div > hr,
    body.sp-design-system-page #sp-lesson-actions-modal > div > h4,
    body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(4),
    body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(5) {
        grid-column: 1 / -1 !important;
    }
    body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(4) {
        grid-template-columns: 1fr !important;
    }
    body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(4) > button,
    body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(5) > button,
    body.sp-design-system-page #sp-block-modal .sp-manual-free-open {
        width: 100% !important;
    }
}

/* 3.14.46 final alignment — the reschedule card uses the available dialog width. */
body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(4) {
    width: min(620px, 100%) !important;
    grid-template-columns: minmax(180px,1.2fr) minmax(105px,.7fr) minmax(105px,.7fr) 160px !important;
}

body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(4) > button {
    min-width: 160px !important;
    white-space: nowrap !important;
}

@media (max-width:760px) {
    body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(4) {
        width: 100% !important;
        grid-template-columns: 1fr !important;
    }
}

/* 3.14.47 — no partial card behind the reschedule controls. */
body.sp-design-system-page #sp-lesson-actions-modal > div > form:nth-of-type(4) {
    padding: 5px 0 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
}

/* 3.14.48 — semantic, designer-led lesson dialog. */
body.sp-design-system-page #sp-lesson-actions-modal > div {
    display: block !important;
    width: min(680px, calc(100vw - 28px)) !important;
    padding: 26px !important;
}

body.sp-design-system-page #sp-lesson-actions-modal .sp-lesson-actions-head {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;
    padding-right: 44px !important;
}

body.sp-design-system-page #sp-lesson-actions-modal .sp-lesson-actions-head h3 {
    display: flex !important;
    align-items: center !important;
    min-height: 44px !important;
    margin: 0 !important;
    color: #123b37 !important;
    font-size: 25px !important;
    font-weight: 650 !important;
}

body.sp-design-system-page #sp-lesson-actions-modal .sp-lesson-actions-head h3::before {
    content: "✦" !important;
    display: grid !important;
    place-items: center !important;
    width: 44px !important;
    height: 44px !important;
    flex: 0 0 44px !important;
    margin-right: 12px !important;
    border-radius: 14px !important;
    background: #8064a2 !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    font-size: 19px !important;
}

body.sp-design-system-page #sp-lesson-actions-modal #sp-actions-open-class {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 40px !important;
    margin: 0 !important;
    padding: 9px 15px !important;
    border-color: #8064a2 !important;
    background: #8064a2 !important;
    white-space: nowrap !important;
}

body.sp-design-system-page #sp-lesson-actions-modal :is(.sp-lesson-status-section,.sp-lesson-reschedule-section) {
    margin-top: 18px !important;
    padding-top: 18px !important;
    border-top: 1px solid #e6e9e8 !important;
}

body.sp-design-system-page #sp-lesson-actions-modal :is(.sp-lesson-status-section,.sp-lesson-reschedule-section) h4 {
    margin: 0 0 4px !important;
    color: #123b37 !important;
    font-size: 16px !important;
    font-weight: 800 !important;
}

body.sp-design-system-page #sp-lesson-actions-modal .sp-lesson-reschedule-section > p {
    margin: 0 0 13px !important;
    color: #6a7775 !important;
    font-size: 13px !important;
}

body.sp-design-system-page #sp-lesson-actions-modal .sp-lesson-status-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 9px !important;
    margin-top: 11px !important;
}

body.sp-design-system-page #sp-lesson-actions-modal .sp-lesson-status-actions form {
    margin: 0 !important;
}

body.sp-design-system-page #sp-lesson-actions-modal .sp-lesson-status-actions button {
    width: auto !important;
    min-width: 130px !important;
    min-height: 40px !important;
    padding: 8px 16px !important;
}

body.sp-design-system-page #sp-lesson-actions-modal .sp-lesson-status-actions form:nth-child(1) button {
    border-color: #a9ceca !important;
    background: #e6f3f1 !important;
    color: #123b37 !important;
    -webkit-text-fill-color: #123b37 !important;
}

body.sp-design-system-page #sp-lesson-actions-modal .sp-lesson-status-actions form:nth-child(2) button {
    border-color: #dfc6c1 !important;
    background: #f8ece9 !important;
    color: #70443e !important;
    -webkit-text-fill-color: #70443e !important;
}

body.sp-design-system-page #sp-lesson-actions-modal .sp-lesson-status-actions form:nth-child(3) button {
    border-color: #d3c5df !important;
    background: #f0eaf5 !important;
    color: #4f3b61 !important;
    -webkit-text-fill-color: #4f3b61 !important;
}

body.sp-design-system-page #sp-lesson-actions-modal .sp-lesson-reschedule-section form {
    display: grid !important;
    grid-template-columns: minmax(180px,1.25fr) minmax(100px,.7fr) minmax(100px,.7fr) auto !important;
    gap: 10px !important;
    align-items: end !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

body.sp-design-system-page #sp-lesson-actions-modal .sp-lesson-reschedule-section form label {
    display: grid !important;
    gap: 6px !important;
    margin: 0 !important;
    font-size: 12px !important;
}

body.sp-design-system-page #sp-lesson-actions-modal .sp-lesson-reschedule-section form button {
    width: auto !important;
    min-width: 150px !important;
    min-height: 40px !important;
    border-color: #123b37 !important;
    background: #123b37 !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    white-space: nowrap !important;
}

body.sp-design-system-page #sp-lesson-actions-modal .sp-lesson-danger-zone {
    display: flex !important;
    justify-content: flex-end !important;
    margin-top: 16px !important;
}

body.sp-design-system-page #sp-lesson-actions-modal .sp-lesson-danger-zone form {
    margin: 0 !important;
}

body.sp-design-system-page #sp-lesson-actions-modal .sp-lesson-danger-zone button {
    width: auto !important;
    min-width: 0 !important;
    min-height: 36px !important;
    padding: 7px 12px !important;
    border-color: transparent !important;
    background: transparent !important;
    color: #9a5f58 !important;
    -webkit-text-fill-color: #9a5f58 !important;
    font-size: 12px !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
}

@media (max-width:760px) {
    body.sp-design-system-page #sp-lesson-actions-modal > div {
        padding: 20px 16px !important;
    }
    body.sp-design-system-page #sp-lesson-actions-modal .sp-lesson-actions-head {
        align-items: flex-start !important;
        flex-direction: column !important;
        padding-right: 42px !important;
    }
    body.sp-design-system-page #sp-lesson-actions-modal #sp-actions-open-class {
        width: 100% !important;
    }
    body.sp-design-system-page #sp-lesson-actions-modal .sp-lesson-status-actions {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
    }
    body.sp-design-system-page #sp-lesson-actions-modal .sp-lesson-status-actions form:nth-child(3) {
        grid-column: 1 / -1 !important;
    }
    body.sp-design-system-page #sp-lesson-actions-modal .sp-lesson-status-actions button {
        width: 100% !important;
        min-width: 0 !important;
    }
    body.sp-design-system-page #sp-lesson-actions-modal .sp-lesson-reschedule-section form {
        grid-template-columns: 1fr 1fr !important;
    }
    body.sp-design-system-page #sp-lesson-actions-modal .sp-lesson-reschedule-section form label:first-of-type,
    body.sp-design-system-page #sp-lesson-actions-modal .sp-lesson-reschedule-section form button {
        grid-column: 1 / -1 !important;
    }
    body.sp-design-system-page #sp-lesson-actions-modal .sp-lesson-reschedule-section form button {
        width: 100% !important;
    }
}
/* 3.14.50 — private recurring availability shown only to its student. */
body.sp-design-system-page .sp-personal-slot-offer{border:1.5px solid #8064a2!important;border-left:5px solid #8064a2!important;background:#f1eaf7!important;color:#123b37!important;box-shadow:0 8px 20px rgba(128,100,162,.13)!important;cursor:pointer}.sp-personal-slot-offer strong{display:block;font-size:12px;font-weight:850}.sp-personal-slot-offer .student-slot-time{color:#5e4775!important;font-weight:800!important}
/* 3.14.51 — compact fixed and dynamic availability controls. */
body.sp-design-system-page .sp-rest-rule-card{position:relative;margin:0;padding:18px;border:1px solid #d9cde5;border-radius:20px;background:#fbf8fd}.sp-rest-rule-card>div{display:flex;align-items:flex-start;gap:11px}.sp-rest-rule-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:12px;background:#8064a2;color:#fff;font-size:19px}.sp-rest-rule-card h3{margin:0 0 3px!important;color:#123b37!important;font-size:17px!important}.sp-rest-rule-card p{margin:0!important;color:#687673!important;font-size:12px!important}.sp-rest-rule-card>form{display:grid!important;grid-template-columns:1.2fr 1fr 1fr auto!important;gap:9px!important;align-items:end!important;margin-top:14px!important}.sp-rest-rule-card form label{display:grid!important;gap:5px!important;margin:0!important}.sp-rest-rule-card form label>span{font-size:11px!important;font-weight:800!important;color:#123b37!important}.sp-rest-rule-card .sp-rest-rule-switch{display:flex!important;align-items:center!important;gap:8px!important;min-height:42px!important}.sp-rest-rule-switch input{width:18px!important;height:18px!important;min-height:0!important}.sp-rest-rule-card :is(select,button){min-height:42px!important}.sp-rest-rule-card button{width:auto!important;min-width:145px!important;padding:8px 14px!important;background:#123b37!important;color:#fff!important;-webkit-text-fill-color:#fff!important}.sp-rest-rule-card>details{margin-top:12px;padding-top:12px;border-top:1px solid #e4dce9}.sp-rest-rule-card>details summary{cursor:pointer;color:#5e4775;font-size:12px;font-weight:800}.sp-rest-rule-card>details p{padding-top:8px!important}.sp-rest-rule-saved{position:absolute;top:18px;right:18px;padding:4px 8px;border-radius:999px;background:#e6f3f1;color:#123b37;font-size:10px;font-weight:800}@media(max-width:820px){.sp-rest-rule-card>form{grid-template-columns:1fr 1fr!important}.sp-rest-rule-card .sp-rest-rule-switch,.sp-rest-rule-card button{grid-column:1/-1!important}.sp-rest-rule-card button{width:100%!important}}@media(max-width:520px){.sp-rest-rule-card>form{grid-template-columns:1fr!important}.sp-rest-rule-card>form>*{grid-column:1!important}}
/* 3.14.53 — one calm modal system and readable blue blocked-time cards. */
body.sp-design-system-page .student-calendar .student-slot-manual-block{border:1px solid #b8d6e8!important;border-left:5px solid #78afd0!important;background:#eaf5fb!important;background-image:none!important;color:#244d63!important;padding:7px 8px!important;box-shadow:0 5px 14px rgba(67,126,158,.11)!important;overflow:hidden!important}.student-slot-manual-block>strong{display:block!important;margin:0!important;color:#244d63!important;font-size:11px!important;font-weight:850!important;line-height:1.15!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.student-slot-manual-block .sp-block-reason{display:flex!important;align-items:baseline!important;gap:5px!important;margin-top:3px!important;min-width:0!important;line-height:1.12!important}.student-slot-manual-block .sp-block-reason span{flex:0 0 auto!important;color:#59859c!important;font-size:8px!important;font-weight:850!important;text-transform:uppercase!important;letter-spacing:.04em!important}.student-slot-manual-block .sp-block-reason b{min-width:0!important;color:#244d63!important;font-size:10px!important;font-weight:750!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.student-slot-manual-block .student-slot-time{margin-top:3px!important;color:#356b86!important;font-size:10px!important;line-height:1.1!important}.student-slot-manual-block>small{display:none!important}

body.sp-design-system-page :is(#sp-block-modal,#sp-open-slot-modal,#sp-manual-free-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{width:min(620px,calc(100vw - 28px))!important;max-height:min(86vh,760px)!important;overflow-y:auto!important;padding:24px!important;border:1px solid #dfe4e2!important;border-radius:24px!important;background:#fff!important;background-color:#fff!important;background-image:none!important;box-shadow:0 28px 80px rgba(18,59,55,.20)!important}
body.sp-design-system-page :is(#sp-block-modal,#sp-open-slot-modal,#sp-delete-modal,#sp-delete-open-slot-modal,#sp-student-lesson-modal,#sp-student-reschedule-modal,#sp-pending-reschedule-modal,#sp-freeze-workoff-modal,#sp-lesson-modal)>div>h3{display:flex!important;align-items:center!important;min-height:42px!important;margin:0 46px 18px 0!important;color:#123b37!important;font-size:23px!important;font-weight:700!important;line-height:1.15!important}body.sp-design-system-page :is(#sp-block-modal,#sp-open-slot-modal,#sp-delete-modal,#sp-delete-open-slot-modal,#sp-student-lesson-modal,#sp-student-reschedule-modal,#sp-pending-reschedule-modal,#sp-freeze-workoff-modal,#sp-lesson-modal)>div>h3:before{content:"✦"!important;display:grid!important;place-items:center!important;width:42px!important;height:42px!important;flex:0 0 42px!important;margin-right:12px!important;border-radius:13px!important;background:#8064a2!important;color:#fff!important;-webkit-text-fill-color:#fff!important;font-size:16px!important}
body.sp-design-system-page :is(#sp-block-modal,#sp-open-slot-modal,#sp-delete-modal,#sp-delete-open-slot-modal,#sp-student-lesson-modal,#sp-student-reschedule-modal,#sp-pending-reschedule-modal,#sp-freeze-workoff-modal,#sp-lesson-modal) form{gap:12px!important;margin:0!important}body.sp-design-system-page :is(#sp-block-modal,#sp-open-slot-modal,#sp-delete-modal,#sp-delete-open-slot-modal,#sp-student-lesson-modal,#sp-student-reschedule-modal,#sp-pending-reschedule-modal,#sp-freeze-workoff-modal,#sp-lesson-modal) form label{gap:6px!important;margin:0!important;color:#123b37!important;font-size:12px!important;font-weight:800!important}body.sp-design-system-page :is(#sp-block-modal,#sp-open-slot-modal,#sp-delete-modal,#sp-delete-open-slot-modal,#sp-student-lesson-modal,#sp-student-reschedule-modal,#sp-pending-reschedule-modal,#sp-freeze-workoff-modal,#sp-lesson-modal) form label small{display:block!important;color:#75817f!important;font-size:10px!important;font-weight:500!important;line-height:1.35!important}body.sp-design-system-page :is(#sp-block-modal,#sp-open-slot-modal,#sp-delete-modal,#sp-delete-open-slot-modal,#sp-student-lesson-modal,#sp-student-reschedule-modal,#sp-pending-reschedule-modal,#sp-freeze-workoff-modal,#sp-lesson-modal) :is(input:not([type=hidden]),select,textarea){min-height:44px!important;border:1px solid #d1c6dd!important;border-radius:12px!important;background:#fff!important;color:#123b37!important}body.sp-design-system-page :is(#sp-block-modal,#sp-open-slot-modal,#sp-delete-modal,#sp-delete-open-slot-modal,#sp-student-lesson-modal,#sp-student-reschedule-modal,#sp-pending-reschedule-modal,#sp-freeze-workoff-modal,#sp-lesson-modal) button:not([onclick^=spClose]):not([style*="position:absolute"]){width:auto!important;min-width:0!important;min-height:42px!important;padding:9px 16px!important;border-radius:999px!important;background:#123b37!important;color:#fff!important;-webkit-text-fill-color:#fff!important;font-weight:800!important}
body.sp-design-system-page #sp-block-modal>div{width:min(650px,calc(100vw - 28px))!important}body.sp-design-system-page #sp-block-modal .sp-manual-free-open{margin:0 0 6px!important;border-color:#8064a2!important;background:#8064a2!important}body.sp-design-system-page #sp-block-modal .sp-slot-action-separator{margin:7px 0 13px!important;color:#7b8583!important;font-size:11px!important;text-align:left!important}body.sp-design-system-page #sp-block-modal form{display:grid!important;grid-template-columns:1fr 1fr!important}body.sp-design-system-page #sp-block-modal form>label:nth-of-type(1),body.sp-design-system-page #sp-block-modal form>label:nth-of-type(6){grid-column:1/-1!important}body.sp-design-system-page #sp-block-modal form>button{grid-column:1/-1!important;justify-self:end!important}
body.sp-design-system-page #sp-open-slot-modal form{display:grid!important;grid-template-columns:1fr 1fr!important}body.sp-design-system-page #sp-open-slot-modal form>label:nth-of-type(1),body.sp-design-system-page #sp-open-slot-modal form>label:nth-of-type(4){grid-column:1/-1!important}body.sp-design-system-page #sp-open-slot-modal form>button{grid-column:1/-1!important;justify-self:end!important}
body.sp-design-system-page :is(#sp-delete-modal,#sp-delete-open-slot-modal)>div{width:min(480px,calc(100vw - 28px))!important}body.sp-design-system-page :is(#sp-delete-modal,#sp-delete-open-slot-modal) form>button{background:#9a5f58!important}body.sp-design-system-page #sp-delete-block-scope{gap:8px!important;margin:12px 0!important;padding:12px!important;border-radius:14px!important;background:#f8f5fa!important}body.sp-design-system-page #sp-delete-block-scope label{display:flex!important;align-items:center!important;gap:8px!important}
body.sp-design-system-page #sp-lesson-modal>div{width:min(590px,calc(100vw - 28px))!important}body.sp-design-system-page #sp-lesson-modal form>button{justify-self:end!important;background:#8064a2!important}body.sp-design-system-page #sp-student-lesson-modal form,body.sp-design-system-page #sp-student-reschedule-modal form{display:grid!important;gap:10px!important}
@media(max-width:680px){body.sp-design-system-page :is(#sp-block-modal,#sp-open-slot-modal,#sp-manual-free-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{width:calc(100vw - 12px)!important;padding:18px 15px!important;border-radius:20px!important}body.sp-design-system-page :is(#sp-block-modal,#sp-open-slot-modal) form{grid-template-columns:1fr!important}body.sp-design-system-page :is(#sp-block-modal,#sp-open-slot-modal) form>*{grid-column:1!important}body.sp-design-system-page :is(#sp-block-modal,#sp-open-slot-modal) form>button{width:100%!important;justify-self:stretch!important}}
/* 3.14.54 — booking limits live with the schedule; blocked-time reason is visible in its dialog. */
.sp-booking-limit-card{position:relative;margin-top:10px;padding:0 15px;border:1px solid #dfe4e2;border-radius:16px;background:#fff}.sp-booking-limit-card>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;cursor:pointer;color:#123b37}.sp-booking-limit-card>summary span{font-size:13px;font-weight:850}.sp-booking-limit-card>summary small{color:#77827f;font-size:11px}.sp-booking-limit-card>form{display:grid;grid-template-columns:minmax(0,1fr) 100px auto;gap:12px;align-items:end;padding:2px 0 15px}.sp-booking-limit-days{display:grid;grid-template-columns:repeat(7,minmax(48px,1fr));gap:6px}.sp-booking-limit-card label{display:grid;gap:4px}.sp-booking-limit-card label span{color:#123b37;font-size:10px;font-weight:850;text-align:center}.sp-booking-limit-card input{width:100%;min-height:38px;padding:6px 8px;border:1px solid #d5ccdf;border-radius:10px;background:#fff;text-align:center}.sp-booking-limit-card button{min-height:40px;padding:8px 14px;border:0;border-radius:999px;background:#123b37;color:#fff;font-weight:800}.sp-booking-limit-card form>small{grid-column:1/-1;color:#75817f;font-size:10px}.sp-booking-limit-saved{position:absolute;right:14px;top:50px;margin:0;padding:4px 8px;border-radius:999px;background:#e6f3f1;color:#123b37;font-size:10px;font-weight:800}.sp-delete-block-reason{display:grid;gap:4px;margin:0 0 14px;padding:12px 14px;border-radius:14px;background:#eaf5fb;color:#244d63}.sp-delete-block-reason[hidden]{display:none!important}.sp-delete-block-reason span{font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.06em;color:#59859c}.sp-delete-block-reason strong{font-size:14px}.sp-delete-block-reason+#sp-delete-block-scope{margin-top:0!important}@media(max-width:760px){.sp-booking-limit-card>form{grid-template-columns:1fr}.sp-booking-limit-days{grid-template-columns:repeat(4,minmax(48px,1fr))}.sp-booking-limit-week{max-width:110px}.sp-booking-limit-card button{width:100%}}
/* 3.14.61 — schedule buttons stay within the lilac, yellow, mint, cream and blue palette. */
body.sp-design-system-page :is(.sp-rest-rule-card,.sp-booking-limit-card) button{border:1px solid #c9b6da!important;background:#e8e0f2!important;background-color:#e8e0f2!important;color:#3f3150!important;-webkit-text-fill-color:#3f3150!important;box-shadow:none!important}
body.sp-design-system-page :is(#sp-block-modal,#sp-open-slot-modal,#sp-manual-free-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([onclick^="spClose"]):not([style*="position:absolute"]){border:1px solid #c9b6da!important;background:#e8e0f2!important;background-color:#e8e0f2!important;color:#3f3150!important;-webkit-text-fill-color:#3f3150!important;box-shadow:none!important}
body.sp-design-system-page #sp-block-modal .sp-manual-free-open,
body.sp-design-system-page #sp-lesson-modal form>button{border-color:#d5b94f!important;background:#f1da89!important;background-color:#f1da89!important;color:#3c351c!important;-webkit-text-fill-color:#3c351c!important}
body.sp-design-system-page :is(#sp-delete-modal,#sp-delete-open-slot-modal) form>button{border-color:#dfd1b7!important;background:#fff6e7!important;background-color:#fff6e7!important;color:#594a34!important;-webkit-text-fill-color:#594a34!important}
body.sp-design-system-page #sp-freeze-workoff-modal form>button{border-color:#9fcac5!important;background:#b8dcd8!important;background-color:#b8dcd8!important;color:#263b39!important;-webkit-text-fill-color:#263b39!important}


/* live-class-3-11-61.css */
/* Live class UX: teacher-only reset controls, draggable Zoom and top creation actions. */
[data-sp-classroom][data-is-teacher="0"] :is([data-builder-reset],[data-reset-test],[data-reset-true-false],[data-menu-reset-exercise]){display:none!important}
.sp-zoom-window>.sp-zoom-move-handle{position:absolute!important;z-index:2147483000!important;top:5px!important;left:50%!important;display:flex!important;align-items:center!important;justify-content:center!important;width:132px!important;height:25px!important;margin:0!important;padding:0 10px!important;transform:translateX(-50%)!important;border:1px solid rgba(255,255,255,.34)!important;border-radius:999px!important;background:rgba(18,59,55,.86)!important;color:#fff!important;font:700 12px/1 sans-serif!important;cursor:grab!important;touch-action:none!important;box-shadow:0 3px 12px rgba(0,0,0,.24)!important}
.sp-zoom-window.is-sp-moving>.sp-zoom-move-handle{cursor:grabbing!important}
.sp-live-form-status{display:block;margin:8px 0;color:#123b37;font-weight:800}
.sp-live-form-status.is-error{color:#b4232e}
.sp-lesson-canvas>.sp-lesson-add-tile:first-child{margin:0 0 18px!important}
.sp-lesson-sections-panel>.sp-add-lesson-section{margin:0 0 14px!important}
.sp-picker-save-top{position:sticky!important;top:42px!important;z-index:20!important;width:100%!important;margin:12px 0 18px!important;box-shadow:0 8px 22px rgba(21,34,28,.14)!important}
.sp-class-lesson-sections>[data-lesson-section-id]{cursor:pointer!important}.sp-class-assigned-exercises>[hidden]{display:none!important}
.sp-homework-edvibe-layout{display:grid;grid-template-columns:minmax(0,1fr)280px;gap:18px;align-items:start}.sp-homework-edvibe-main{display:grid;gap:18px;min-width:0;padding:26px;border-radius:24px;background:#fff}.sp-homework-edvibe-main>header{padding-bottom:18px;border-bottom:1px solid #edf0f2}.sp-homework-edvibe-main>header h1{margin:0;color:#27303b;font-size:30px}.sp-homework-state{display:flex;align-items:center;gap:12px;padding:15px 18px;border-radius:12px;background:#e9faff;color:#46a9c8}.sp-homework-state.is-submitted{background:#fff7da;color:#917123}.sp-homework-state.is-reviewed{background:#eaf9ef;color:#258447}.sp-homework-state.is-returned{background:#fff0e5;color:#b25c22}.sp-homework-state>span{font-size:21px}.sp-homework-real-list{display:grid;gap:18px}.sp-homework-real-list>.sp-homework-exercise{padding:20px;border:1px solid #edf0f2;border-radius:16px;background:#fff;box-shadow:0 6px 18px rgba(45,55,65,.05)}.sp-homework-edvibe-actions{display:flex;gap:12px;align-items:center;padding-top:6px}.sp-homework-edvibe-actions button,.sp-homework-edvibe-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 17px;border:0;border-radius:12px;background:#fff;color:#526274;font-weight:800;text-decoration:none;box-shadow:0 5px 18px rgba(52,64,75,.09)}.sp-homework-edvibe-actions button{background:#6bc8e8;color:#fff}.sp-homework-picker-drawer{display:grid;gap:15px;padding:18px;border:1px solid #dfe8ef;border-radius:18px;background:#f8fbfd}.sp-homework-picker-drawer[hidden]{display:none!important}.sp-homework-picker-drawer>header{display:flex;align-items:center;justify-content:space-between}.sp-homework-picker-drawer>header h2{margin:0}.sp-homework-picker-drawer>header button{width:36px;height:36px;padding:0;border:0;border-radius:50%;background:#fff;color:#526274;font-size:24px}.sp-homework-finish{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,420px);gap:18px;align-items:end;padding-top:20px;border-top:1px solid #edf0f2}.sp-homework-finish p{margin:0;color:#667382}.sp-homework-finish form{display:grid;grid-template-columns:1fr auto auto;gap:8px}.sp-homework-finish textarea{grid-column:1/-1;width:100%;box-sizing:border-box}.sp-homework-edvibe-sidebar{position:sticky;top:76px;padding:20px 14px;border-radius:22px;background:#fff}.sp-homework-edvibe-sidebar h2{margin:0 8px 14px}.sp-homework-edvibe-sidebar>div{display:grid;max-height:62vh;overflow:auto}.sp-homework-edvibe-sidebar article{display:grid;grid-template-columns:38px minmax(0,1fr);gap:8px;align-items:center;padding:12px 8px;border-left:3px solid transparent;border-bottom:1px solid #edf0f2}.sp-homework-edvibe-sidebar article.is-active{border-left-color:#62c6e8;background:#f4fcff}.sp-homework-edvibe-sidebar article>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#eef6f6;color:#56a9a4}.sp-homework-edvibe-sidebar article div{display:grid;gap:2px}.sp-homework-edvibe-sidebar article small{color:#94a0ad}.sp-homework-edvibe-sidebar article strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-homework-edvibe-sidebar article em{grid-column:2;color:#8ca1a7;font-size:12px;font-style:normal}.sp-homework-submit{display:grid;gap:10px;padding-top:18px}.sp-homework-submit textarea{width:100%;box-sizing:border-box}.sp-homework-submit button{justify-self:start}@media(max-width:900px){.sp-homework-edvibe-layout{grid-template-columns:1fr}.sp-homework-edvibe-sidebar{position:static;order:-1}.sp-homework-edvibe-sidebar>div{display:flex;overflow-x:auto}.sp-homework-edvibe-sidebar article{min-width:230px}.sp-homework-finish{grid-template-columns:1fr}}
.sp-homework-edvibe-sidebar a{display:grid;grid-template-columns:38px minmax(0,1fr);gap:8px;align-items:center;padding:12px 8px;border-left:3px solid transparent;border-bottom:1px solid #edf0f2;color:inherit;text-decoration:none}.sp-homework-edvibe-sidebar a.is-active{border-left-color:#62c6e8;background:#f4fcff}.sp-homework-edvibe-sidebar a>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#eef6f6;color:#56a9a4}.sp-homework-edvibe-sidebar a div{display:grid;gap:2px}.sp-homework-edvibe-sidebar a small{color:#94a0ad}.sp-homework-edvibe-sidebar a strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-homework-edvibe-sidebar a em{grid-column:2;color:#8ca1a7;font-size:12px;font-style:normal}.sp-homework-edvibe-sidebar a.is-submitted>span{background:#fff4c7;color:#9a7212}.sp-homework-edvibe-sidebar a.is-reviewed>span{background:#dcf6e4;color:#258447}.sp-homework-edvibe-sidebar a.is-returned>span{background:#ffeadc;color:#b25c22}.sp-homework-private-section{margin-top:12px;border-top:2px solid #f0e8f7!important}.sp-homework-private-section>a{display:flex!important;align-items:center;gap:7px;color:#65508f!important}.sp-homework-private-section>a small{margin-left:auto;padding:3px 6px;border-radius:7px;background:#f1e8ff;color:#6d5bd0;font-size:10px}.sp-homework-private-section>a.is-active{border-left-color:#6d5bd0!important;background:#f8f4ff!important}.sp-class-lesson-sections>.sp-class-private-homework{display:grid!important;grid-template-columns:28px minmax(0,1fr) auto!important;align-items:center!important;gap:8px!important;margin-top:10px!important;padding:14px 16px!important;border:2px solid #d5c3e7!important;border-radius:16px!important;background:#f3eafb!important;color:#432f5d!important;text-align:left!important;cursor:pointer!important}.sp-class-private-homework span{font-size:18px}.sp-class-private-homework b{font-weight:850}.sp-class-private-homework small{padding:3px 6px;border-radius:7px;background:#fff;color:#755b91;font-size:10px}
.sp-class-lesson-sections>.sp-class-private-homework{grid-template-columns:28px minmax(0,1fr)!important}
.sp-homework-edvibe-actions,.sp-return-current{display:none!important}
.sp-homework-picker-drawer{border-color:#d8c9e7!important;background:#f8f4fb!important}
.sp-homework-picker-drawer>header{padding-bottom:4px}.sp-homework-picker-drawer>header button{display:none!important}
.sp-homework-state{background:#eee5f5!important;color:#65508f!important}
.sp-homework-state.is-submitted{background:#fff4c7!important;color:#8b6819!important}
.sp-homework-state.is-reviewed{background:#e6f4e8!important;color:#287a49!important}
.sp-homework-state.is-returned{background:#f6e3d8!important;color:#a65429!important}
.sp-homework-edvibe-sidebar a.is-active,.sp-homework-edvibe-sidebar article.is-active{border-left-color:#8064a2!important;background:#f4eef8!important}
.sp-homework-edvibe-sidebar a>span,.sp-homework-edvibe-sidebar article>span{background:#eadff2!important;color:#65508f!important}
.sp-homework-checklist>button[type="submit"]{justify-self:start!important;margin-top:2px!important;padding:13px 20px!important;border:0!important;border-radius:12px!important;background:#65508f!important;color:#fff!important;font-weight:800!important;cursor:pointer!important}
.sp-class-topbar nav button.is-active{background:#eee5f5!important;color:#5f477f!important}
.sp-class-workspace:not(.is-homework-source-mode) [data-class-panel="homework"] .sp-homework-picker-drawer{display:none!important}
.sp-class-workspace.is-homework-source-mode .sp-homework-edvibe-layout{grid-template-columns:minmax(0,1fr)!important}
.sp-class-workspace.is-homework-source-mode .sp-homework-edvibe-main>header,.sp-class-workspace.is-homework-source-mode .sp-homework-state,.sp-class-workspace.is-homework-source-mode .sp-homework-real-list,.sp-class-workspace.is-homework-source-mode .sp-homework-finish,.sp-class-workspace.is-homework-source-mode .sp-homework-edvibe-sidebar{display:none!important}
.sp-class-workspace.is-homework-source-mode .sp-homework-picker-drawer{display:grid!important}
.sp-class-private-homework.is-active{border-color:#8064a2!important;background:#e7d9f1!important;color:#3f2b59!important;box-shadow:0 0 0 3px rgba(101,80,143,.12)!important}
.sp-homework-source-empty{padding:28px;border:1px solid #d8c9e7;border-radius:18px;background:#f8f4fb;color:#65508f}.sp-homework-source-empty h2{margin:0 0 7px}.sp-homework-source-empty p{margin:0;color:#746683}
@media(max-width:600px){.sp-zoom-window>.sp-zoom-move-handle{top:3px!important;width:116px!important}}
.sp-class-assigned-exercises>article>strong,.sp-homework-real-list>.sp-homework-exercise>header>b{display:block!important;margin:0 0 12px!important;padding-right:62px!important;color:#4f3568!important;font-size:clamp(20px,2.2vw,27px)!important;font-weight:800!important;line-height:1.2!important;letter-spacing:-.015em!important}
@media(max-width:600px){.sp-class-assigned-exercises>article>strong,.sp-homework-real-list>.sp-homework-exercise>header>b{font-size:20px!important}}
/* 3.14.62 — final palette authority for schedule and teacher-cabinet actions. */
body.sp-design-system-page :is(.sp-rest-rule-card,.sp-booking-limit-card,.sp-teacher-slot-row) button,
body.sp-design-system-page .sp-calendar-enter-submit{border-color:#c9b6da!important;background:#e8e0f2!important;background-color:#e8e0f2!important;color:#3f3150!important;-webkit-text-fill-color:#3f3150!important;box-shadow:none!important}
body.sp-design-system-page .sp-notification-bell{border:0!important;background:#002f2b!important;background-color:#002f2b!important;color:#fff!important;-webkit-text-fill-color:#fff!important;box-shadow:none!important}
body .sp-teacher-dashboard:not(.sp-teacher-library) :is(.sp-teacher-primary,.sp-teacher-cabinet-primary){border-color:#c9b6da!important;background:#e8e0f2!important;background-color:#e8e0f2!important;color:#3f3150!important;-webkit-text-fill-color:#3f3150!important;box-shadow:none!important}
body.sp-design-system-page:not(#sp-palette-authority):not(#sp-old-green) .sp-elementor-portal-schedule .student-calendar :is(.sp-rest-rule-card,#sp-booking-limits,.sp-teacher-slot-row) button,
body.sp-design-system-page:not(#sp-palette-authority):not(#sp-old-green) .sp-elementor-portal-schedule .student-calendar .sp-calendar-enter-submit{border-color:#c9b6da!important;background:#e8e0f2!important;background-color:#e8e0f2!important;color:#3f3150!important;-webkit-text-fill-color:#3f3150!important;box-shadow:none!important}
body:not(#sp-palette-authority):not(#sp-old-green) .sp-teacher-dashboard:not(.sp-teacher-library) .sp-teacher-cabinet-actions>.sp-teacher-cabinet-primary{border:0!important;background:#123b37!important;background-color:#123b37!important;color:#fff!important;-webkit-text-fill-color:#fff!important;box-shadow:none!important}


/* class-chat-drawer-3-15-8.css */
/* 3.15.8: non-blocking, stable classroom chat drawer. */
body:has(.sp-classroom) .sp-class-overlay[data-class-overlay="chat"]{
  position:fixed!important;
  z-index:9990!important;
  top:64px!important;
  right:auto!important;
  bottom:12px!important;
  left:76px!important;
  display:none!important;
  width:min(430px,calc(100vw - 92px))!important;
  height:auto!important;
  padding:0!important;
  align-items:stretch!important;
  justify-content:stretch!important;
  background:transparent!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  pointer-events:none!important;
}
body:has(.sp-classroom) .sp-class-overlay[data-class-overlay="chat"].is-open{display:flex!important}
body.admin-bar:has(.sp-classroom) .sp-class-overlay[data-class-overlay="chat"],
body:has(#wpadminbar):has(.sp-classroom) .sp-class-overlay[data-class-overlay="chat"]{top:96px!important}
body:has(.sp-classroom) .sp-class-overlay[data-class-overlay="chat"] .sp-class-overlay-dialog{
  position:relative!important;
  width:100%!important;
  max-width:none!important;
  height:100%!important;
  max-height:none!important;
  margin:0!important;
  overflow:hidden!important;
  padding-bottom:70px!important;
  box-sizing:border-box!important;
  border:1px solid rgba(0,47,43,.12)!important;
  border-radius:24px!important;
  background:#fff!important;
  box-shadow:0 18px 52px rgba(0,47,43,.18)!important;
  pointer-events:auto!important;
}
body:has(.sp-classroom) .sp-class-overlay[data-class-overlay="chat"] .sp-class-chat{
  display:grid!important;
  grid-template-rows:auto auto minmax(0,1fr) auto auto!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  overflow:hidden!important;
}
body:has(.sp-classroom) .sp-class-overlay[data-class-overlay="chat"] .sp-chat-messages{
  min-height:0!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  scrollbar-gutter:stable!important;
  overflow-anchor:none!important;
  padding-bottom:84px!important;
}
body:has(.sp-classroom) .sp-class-overlay[data-class-overlay="chat"] .sp-chat-compose{
  position:absolute!important;
  z-index:30!important;
  right:0!important;
  bottom:0!important;
  left:0!important;
  box-sizing:border-box!important;
  flex:0 0 auto!important;
  background:#fff!important;
}
@media(max-width:720px){
  body:has(.sp-classroom) .sp-class-overlay[data-class-overlay="chat"]{
    top:64px!important;
    right:auto!important;
    bottom:6px!important;
    left:64px!important;
    width:calc(100vw - 70px)!important;
  }
  body.admin-bar:has(.sp-classroom) .sp-class-overlay[data-class-overlay="chat"],
  body:has(#wpadminbar):has(.sp-classroom) .sp-class-overlay[data-class-overlay="chat"]{top:110px!important}
}

