/* ---------- PAPILIA BASE ---------- */

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family: Arial, sans-serif;
    background: #f8f7fc;
    color: #242033;
}

.admin-layout {
    display: flex;
    min-height: 100vh;
}


/* ---------- SIDEBAR ---------- */

.sidebar {
    width: 275px;
    height: 100vh;
    position: sticky;
    top: 0;
    overflow-y: auto;
    flex-shrink: 0;
    background: linear-gradient(
        180deg,
        #10081f 0%,
        #1b0b34 55%,
        #260d48 100%
    );
    color: white;
    padding: 30px 20px;

    display: flex;
    flex-direction: column;
}


/* ---------- PAPILIA BRAND ---------- */

.brand {
    text-align: center;
    margin-bottom: 40px;
}

.brand img {
    width: 130px;
    height: 130px;
    object-fit: contain;
    margin-bottom: 10px;
}

.brand h1 {
    font-family: Georgia, serif;
    font-size: 30px;
    font-weight: 400;
    letter-spacing: 8px;
}

.brand p {
    margin-top: 8px;
    color: #c18cff;
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
}


/* ---------- ADMIN NAVIGATION ---------- */

.admin-nav {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.nav-button {
    width: 100%;
    border: none;
    background: transparent;
    color: #e9e2f2;

    padding: 15px 18px;
    border-radius: 10px;

    text-align: left;
    font-size: 15px;
    cursor: pointer;
}

.nav-button:hover {
    background: rgba(151, 71, 255, 0.15);
}

.nav-button.active {
    background: linear-gradient(
        90deg,
        rgba(125, 45, 210, 0.55),
        rgba(92, 31, 160, 0.35)
    );

    color: white;
}


/* ---------- MY LEARNING SPACE ---------- */

.learning-space {
    margin-top: auto;
    padding-top: 25px;
    padding-bottom: 2px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    position: sticky;
    bottom: 0;
    background: #260d48;
}

.learning-button {
    width: 100%;

    background: linear-gradient(
        135deg,
        #55208c,
        #34105f
    );

    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;

    color: white;
    padding: 15px 18px;

    text-align: left;
    font-size: 15px;
    cursor: pointer;
}

.learning-button span {
    display: block;
    margin-top: 5px;

    color: #cbb3e8;
    font-size: 12px;
}


/* ---------- MAIN WORKSPACE ---------- */

.workspace {
    flex: 1;
    min-width: 0;
    padding: 35px 45px;
}


/* ---------- TOP BAR ---------- */

.topbar {
    display: flex;
    justify-content: space-between;
    align-items: center;

    margin-bottom: 45px;
}

/* Lesson Uploader */
.curriculum-uploader-shell aside .curriculum-module-option + .curriculum-module-option{margin-top:8px}.lesson-review-workflow{min-width:0}.lesson-page-nav{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin:0 0 12px}.lesson-page-nav button{border:1px solid #d9cee7;border-radius:10px;background:#fff;padding:7px 14px;color:#5f2aad;font-weight:800}.lesson-doc-page{max-height:68vh;overflow-y:auto}.lesson-doc-page h2{font-family:Georgia,serif;font-weight:400;margin:24px 0 8px}.lesson-doc-page pre{white-space:pre-wrap;min-height:78px;padding:12px;border:1px solid #e3dbea;border-radius:10px;font:inherit}.lesson-workflow-steps{display:flex;gap:6px;overflow-x:auto;margin:12px 0;padding-bottom:5px}.lesson-workflow-steps span{white-space:nowrap;border-radius:999px;background:#eee9f4;color:#70677a;padding:7px 11px;text-transform:capitalize;font-size:12px;font-weight:700}.lesson-workflow-steps span.active{background:#6732b7;color:#fff}.lesson-validation{display:flex;align-items:center;justify-content:space-between;gap:10px;border-left:5px solid;padding:10px 12px;border-radius:10px;background:#fff}.lesson-validation>button:first-child{display:grid;text-align:left;border:0;background:transparent;flex:1}.lesson-validation.red{border-color:#b33143;background:#fff3f4}.lesson-validation.yellow{border-color:#d79a21;background:#fff9e8}.lesson-validation.green,.lesson-validation.resolved{border-color:#579267;background:#edf8f0}.lesson-component-card,.remediation-question-card,.lesson-sandbox-card{border:1px solid #e2d9eb;border-radius:14px;padding:16px;margin:10px 0;background:#fff}.correct-answer{color:#268043;font-weight:800}.lesson-sandbox-banner{background:#fff4cf;color:#674e00;border-radius:12px;padding:12px;font-weight:800}.lesson-preview-stage{background:#f6f0fc;border:1px solid #ded0ed;border-radius:18px;padding:20px}.preview-controls{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}.lesson-diagnostic{display:block;width:100%;padding:13px;margin:7px 0;border:0;border-left:6px solid;text-align:left;border-radius:10px;font-weight:700}.lesson-diagnostic.green{border-color:#579267;background:#edf8f0}.lesson-diagnostic.yellow{border-color:#d79a21;background:#fff9e8}.lesson-diagnostic.red{border-color:#b33143;background:#fff3f4}
.admin-layout{height:100vh;overflow:hidden}.admin-layout>.sidebar{position:fixed;inset:0 auto 0 0;height:100vh;overflow:hidden}.admin-layout>.workspace{margin-left:275px;height:100vh;overflow-y:auto}.admin-layout .topbar{position:sticky;top:0;z-index:90;background:rgba(248,247,252,.96);backdrop-filter:blur(12px)}

body.auth-pending .admin-layout,
body.auth-signed-out .admin-layout,
body.auth-student .admin-layout { visibility: hidden; }
.admin-login { position: fixed; z-index: 5000; inset: 0; display: grid; place-items: center; padding: 24px; background: linear-gradient(145deg, #f8f5fc, #eee7f7); }
body.auth-signed-in .admin-login,
body.auth-student .admin-login { display: none; }
.admin-login-card { width: min(100%, 480px); border: 1px solid #e3daeb; border-radius: 24px; background: #fff; box-shadow: 0 22px 65px rgba(51, 22, 75, 0.14); padding: 36px; }
.admin-login-card > img { display: block; width: 92px; height: 92px; object-fit: contain; margin: 0 auto 18px; }
.admin-login-card h1 { margin: 5px 0 9px; color: #2b1f35; font-family: Georgia, serif; font-size: 34px; font-weight: 400; }
.admin-login-card > p:not(.page-eyebrow) { color: #766c7d; line-height: 1.55; }
.admin-login-card form { display: grid; gap: 16px; margin-top: 25px; }
.admin-login-card #admin-login-form { display: none; }
.login-role-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; margin: 22px 0 0; border-radius: 12px; background: #f1ebf7; padding: 5px; }
.login-role-tabs button { border: 0; border-radius: 9px; background: transparent; color: #6f6378; padding: 11px; font-weight: 700; cursor: pointer; }
.login-role-tabs button.active { background: #fff; color: #6429ad; box-shadow: 0 3px 10px rgba(55, 25, 78, 0.1); }
#student-login-message { min-height: 20px; color: #9a3049; font-size: 13px; }
.admin-login-card label { display: grid; gap: 7px; color: #3c3045; font-weight: 700; }
.admin-login-card input { width: 100%; }
#admin-login-message { min-height: 20px; color: #9a3049; font-size: 13px; }

.topbar-actions { display: flex; align-items: center; gap: 12px; }
.program-switcher { display: flex; align-items: center; gap: 9px; border: 1px solid #e5e1eb; border-radius: 14px; background: white; padding: 10px 13px; }
.program-switcher > span { color: #887e8e; font-size: 11px; font-weight: 700; letter-spacing: 0.8px; text-transform: uppercase; }
.program-switcher select { border: 0; background: transparent; color: #4c3d56; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; outline: none; }
.program-context { display: inline-block; vertical-align: middle; margin-left: 8px; border-radius: 999px; background: #eee4f7; color: var(--theme-primary); padding: 5px 9px; font-family: Arial, sans-serif; font-size: 10px; font-weight: 700; letter-spacing: 0.3px; }

.topbar h2 {
    font-family: Georgia, serif;
    font-size: 30px;
    font-weight: 400;
    margin-bottom: 8px;
}

.topbar > div:first-child p {
    color: #777184;
}


/* ---------- ADMIN PROFILE ---------- */

.admin-profile {
    display: flex;
    align-items: center;
    gap: 12px;

    background: white;
    border: 1px solid #e5e1eb;
    border-radius: 14px;

    padding: 10px 18px;
    text-align: left;
    cursor: pointer;
}

:root {
    --theme-primary: #6e2ab5;
    --theme-primary-dark: #541c8d;
    --theme-sidebar-top: #10081f;
    --theme-sidebar-bottom: #260d48;
    --theme-page-background: #f8f7fc;
}

.admin-menu { position: relative; }

.menu-chevron {
    margin-left: 8px;
    color: #786d80;
    font-size: 12px;
    transition: transform 0.2s ease;
}

.admin-profile[aria-expanded="true"] .menu-chevron { transform: rotate(180deg); }

.admin-dropdown {
    position: absolute;
    z-index: 20;
    top: calc(100% + 9px);
    right: 0;
    width: 210px;
    overflow: hidden;
    border: 1px solid #e1d9e7;
    border-radius: 12px;
    background: white;
    padding: 7px;
    box-shadow: 0 14px 34px rgba(34, 15, 49, 0.16);
}

.admin-dropdown button {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 10px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #44364e;
    padding: 11px 12px;
    text-align: left;
    font-size: 14px;
    cursor: pointer;
}

.admin-dropdown button:hover { background: #f5effa; color: #602198; }

.profile-circle {
    width: 42px;
    height: 42px;
    border-radius: 50%;

    display: flex;
    justify-content: center;
    align-items: center;

    background: linear-gradient(
        135deg,
        #7d36c8,
        #4c128d
    );

    color: white;
    font-family: Georgia, serif;
    font-size: 18px;
}

.admin-profile strong,
.admin-profile span {
    display: block;
}

.admin-profile span {
    color: #898391;
    font-size: 12px;
    margin-top: 3px;
}


/* ---------- DASHBOARD WORKSPACE ---------- */

.dashboard-content {
    background: white;
    border: 1px solid #ebe7ef;
    border-radius: 16px;

    padding: 30px;
    min-height: 300px;
}

.dashboard-content h3 {
    color: #6e2ab5;
    font-size: 22px;
    margin-bottom: 10px;
}

.dashboard-content p {
    color: #777184;
}



/* ---------- DASHBOARD HEADING ---------- */

.dashboard-content {
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 0;
    min-height: auto;
}

.dashboard-heading {
    margin-bottom: 25px;
}

.dashboard-heading h3 {
    color: #2c2038;
    font-family: Georgia, serif;
    font-size: 26px;
    font-weight: 400;
    margin-bottom: 7px;
}

.dashboard-heading p {
    color: #777184;
    font-size: 15px;
}


/* ---------- DASHBOARD CARD GRID ---------- */

.dashboard-cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 22px;
}


/* ---------- INDIVIDUAL CARDS ---------- */

.dashboard-card {
    background: white;
    border: 1px solid #e7e1ed;
    border-radius: 18px;

    min-height: 210px;
    padding: 26px;

    display: flex;
    flex-direction: column;

    box-shadow: 0 4px 18px rgba(45, 18, 75, 0.04);

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease,
        border-color 0.2s ease;
}

.dashboard-card:hover {
    transform: translateY(-3px);
    border-color: #d6c0eb;
    box-shadow: 0 8px 24px rgba(45, 18, 75, 0.09);
}


/* ---------- CARD TITLES ---------- */

.card-label {
    color: #6e2ab5;

    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.5px;

    text-transform: uppercase;

    margin-bottom: 25px;
}


/* ---------- LARGE NUMBERS ---------- */

.card-number {
    color: #2b2132;

    font-family: Georgia, serif;
    font-size: 42px;

    line-height: 1;
}

.card-description {
    color: #777184;
    font-size: 14px;

    margin-top: 7px;
}


/* ---------- CONTENT COUNTS ---------- */

.content-counts {
    display: flex;
    gap: 45px;
}

.content-counts div {
    display: flex;
    flex-direction: column;
}

.content-counts strong {
    color: #2b2132;

    font-family: Georgia, serif;
    font-size: 36px;

    line-height: 1;
}

.content-counts span {
    color: #777184;
    font-size: 13px;

    margin-top: 7px;
}


/* ---------- RESULTS PLACEHOLDER ---------- */

.results-placeholder {
    color: #777184;

    font-family: Georgia, serif;
    font-size: 23px;
}


/* ---------- CARD LINKS ---------- */

.card-link {
    margin-top: auto;

    align-self: flex-start;

    border: none;
    background: transparent;

    color: #6e2ab5;

    padding: 0;

    font-size: 14px;
    font-weight: 600;

    cursor: pointer;
}

.card-link:hover {
    color: #431173;
}

/* ---------- RECENT STUDENT ACTIVITY ---------- */

.activity-monitor {
    margin-top: 55px;
    margin-bottom: 55px;
}

.section-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 20px;
    margin-bottom: 20px;
}

.section-heading h3 {
    font-family: Georgia, serif;
    font-size: 26px;
    font-weight: 400;
    color: #2c2038;
    margin-bottom: 7px;
}

.section-heading p {
    color: #777184;
    font-size: 15px;
}


/* ---------- VIEW ALL LINK ---------- */

.section-link {
    border: none;
    background: transparent;
    color: #6e2ab5;

    font-size: 14px;
    font-weight: 600;

    cursor: pointer;
    padding: 5px;
}

.section-link:hover {
    color: #431173;
}


/* ---------- ACTIVITY PANEL ---------- */

.activity-panel {
    background: white;
    border: 1px solid #e7e1ed;
    border-radius: 18px;

    overflow: hidden;

    box-shadow: 0 4px 18px rgba(45, 18, 75, 0.04);
}


/* ---------- TABLE HEADINGS ---------- */

.activity-table-header {
    display: grid;

    grid-template-columns:
        1.2fr
        1.6fr
        1.2fr
        1fr
        0.8fr;

    gap: 20px;

    padding: 17px 25px;

    background: #faf8fc;
    border-bottom: 1px solid #eee9f2;
}

.activity-table-header span {
    color: #756d7d;

    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1px;

    text-transform: uppercase;
}


/* ---------- EMPTY ACTIVITY STATE ---------- */

.activity-empty {
    min-height: 230px;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    text-align: center;

    padding: 35px;
}

.empty-icon {
    width: 48px;
    height: 48px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: #f3ecfa;
    color: #6e2ab5;

    font-size: 24px;

    margin-bottom: 15px;
}

.activity-empty h4 {
    color: #33293b;

    font-family: Georgia, serif;
    font-size: 20px;
    font-weight: 400;

    margin-bottom: 7px;
}

.activity-empty p {
    color: #89818f;
    font-size: 14px;
}

/* ---------- SCOREBOARD ---------- */

.scoreboard { margin-bottom: 55px; }

.scoreboard-filter {
    appearance: none;
    min-width: 145px;
    border: 1px solid #d9cfe2;
    border-radius: 10px;
    background: white;
    color: #4d3c5a;
    padding: 10px 36px 10px 14px;
    font: inherit;
    font-size: 14px;
    cursor: pointer;
    background-image: linear-gradient(45deg, transparent 50%, #6e2ab5 50%), linear-gradient(135deg, #6e2ab5 50%, transparent 50%);
    background-position: calc(100% - 17px) 50%, calc(100% - 12px) 50%;
    background-size: 5px 5px, 5px 5px;
    background-repeat: no-repeat;
}

.scoreboard-filter:hover,
.scoreboard-filter:focus { border-color: #a87bce; outline: none; }

.scoreboard-panel {
    overflow: hidden;
    background: white;
    border: 1px solid #e7e1ed;
    border-radius: 18px;
    box-shadow: 0 4px 18px rgba(45, 18, 75, 0.04);
}

.scoreboard-table-header {
    display: grid;
    grid-template-columns: 1.3fr 1.3fr 1fr 0.9fr 0.9fr;
    gap: 20px;
    padding: 17px 25px;
    background: #faf8fc;
    border-bottom: 1px solid #eee9f2;
}

.scoreboard-table-header span {
    color: #756d7d;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.scoreboard-empty {
    min-height: 230px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 35px;
    text-align: center;
}

.scoreboard-empty h4 {
    margin-bottom: 7px;
    color: #33293b;
    font-family: Georgia, serif;
    font-size: 20px;
    font-weight: 400;
}

.scoreboard-empty p { color: #89818f; font-size: 14px; }

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ---------- STUDENT PROFILES ---------- */

[hidden] { display: none !important; }

.student-page-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 24px;
    margin-bottom: 25px;
}

.page-eyebrow {
    margin-bottom: 8px;
    color: #6e2ab5;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
}

.student-page-heading h3,
.dialog-heading h3 {
    color: #2c2038;
    font-family: Georgia, serif;
    font-size: 28px;
    font-weight: 400;
}

.student-page-heading > div > p:last-child {
    margin-top: 7px;
    color: #777184;
    font-size: 15px;
}

.student-heading-actions { display: flex; gap: 10px; }

.primary-button,
.secondary-button {
    border-radius: 10px;
    padding: 11px 17px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

.primary-button {
    border: 1px solid #6726a9;
    background: #6e2ab5;
    color: white;
}

.primary-button:hover { background: #541c8d; }

.secondary-button {
    border: 1px solid #d9cfe2;
    background: white;
    color: #594a64;
}

.student-panel {
    overflow: hidden;
    border: 1px solid #e7e1ed;
    border-radius: 18px;
    background: white;
    box-shadow: 0 4px 18px rgba(45, 18, 75, 0.04);
}

.student-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    padding: 18px 22px;
    border-bottom: 1px solid #eee9f2;
    background: #faf8fc;
}

.student-search { flex: 1; max-width: 390px; }

.student-search input,
.form-grid input,
.form-grid select {
    width: 100%;
    border: 1px solid #dcd4e3;
    border-radius: 10px;
    background: white;
    color: #33293b;
    padding: 11px 13px;
    font: inherit;
}

.student-search input:focus,
.form-grid input:focus,
.form-grid select:focus {
    border-color: #9d67c8;
    outline: 3px solid #f1e7f8;
}

.admin-badge {
    border-radius: 999px;
    background: #efe4f8;
    color: #64219e;
    padding: 7px 11px;
    font-size: 12px;
    font-weight: 700;
}

.students-empty {
    min-height: 310px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 35px;
    text-align: center;
}

.students-empty h4 {
    margin-bottom: 7px;
    color: #33293b;
    font-family: Georgia, serif;
    font-size: 21px;
    font-weight: 400;
}

.students-empty p { color: #89818f; font-size: 14px; }

.student-list { display: grid; }

.student-attention-panel { margin: 20px 0; padding: 20px; border: 1px solid #eadde8; border-left: 5px solid #a84f68; border-radius: 18px; background: #fffafb; box-shadow: 0 8px 24px rgba(62,34,71,.06); }
.student-attention-list { max-height: 220px; overflow-y: auto; display: grid; gap: 8px; padding-right: 5px; }
.student-attention-entry { width: 100%; display: grid; grid-template-columns: minmax(140px,.6fr) auto 1fr; gap: 16px; align-items: center; text-align: left; padding: 13px 15px; border: 1px solid #eadde8; border-radius: 12px; background: white; color: #30213a; cursor: pointer; }
.student-attention-entry small { color: #75697b; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.placement-summary-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 14px; }
.placement-summary-grid article { padding: 14px; border-radius: 13px; background: #f8f5fb; border: 1px solid #e8e0ee; }
.placement-summary-grid span,.placement-summary-grid strong { display:block; }.placement-summary-grid span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#817588;margin-bottom:6px}.placement-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.intervention-history { display:grid;gap:8px;margin-top:12px }.intervention-history article{padding:12px 14px;border-left:3px solid #8a58bd;background:#faf8fc;border-radius:8px}.intervention-history article span{display:block;color:#84788a;font-size:12px;margin-top:3px}.intervention-history article p{margin-top:6px;color:#62566a}
.skill-check-picker { margin: 14px 0; padding: 14px; border-radius: 14px; background:#f8f5fb; }.skill-check-picker>input,.skill-check-picker>select{width:100%;margin-bottom:9px}.skill-check-catalog-item{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:11px;border-top:1px solid #e2d8e8}.skill-check-catalog-item small{display:block;color:#817588;margin-top:3px}.skill-check-catalog-item>div:last-child{display:flex;gap:6px}.skill-check-catalog-item button{padding:8px 10px;font-size:12px}
.skill-check-group{margin-top:13px}.skill-check-group h5{font-size:12px;letter-spacing:.12em;color:#6b35a8}.skill-check-group>article{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;margin-top:6px;border-radius:11px;background:#faf8fc}.skill-check-group>article small{display:block;color:#817588;margin-top:3px}.skill-check-group.required>article{border-left:4px solid #a84f68}
@media(max-width:700px){.student-attention-entry{grid-template-columns:1fr}.placement-summary-grid{grid-template-columns:1fr}.skill-check-catalog-item{grid-template-columns:1fr}.skill-check-catalog-item>div:last-child{flex-wrap:wrap}}

.student-row {
    display: grid;
    grid-template-columns: auto 1.3fr 0.8fr 0.9fr auto auto;
    align-items: center;
    gap: 18px;
    padding: 18px 22px;
    border-bottom: 1px solid #eee9f2;
}

.student-row.inactive { background: #faf9fb; opacity: 0.72; }
.student-status.inactive { background: #ece8ef; color: #716878; }
.student-actions { display: flex; gap: 7px; }
.student-action-button { border: 1px solid #ded6e4; border-radius: 8px; background: white; color: #62566a; padding: 7px 9px; font-size: 11px; cursor: pointer; }
.student-action-button:hover { border-color: #a77acb; color: var(--theme-primary); }
.student-action-button.delete:hover { border-color: #c96078; color: #a52d47; background: #fff8f9; }

.student-row:last-child { border-bottom: 0; }
.student-row { cursor: pointer; }
.student-row:hover { background: #fcfafd; }
.student-row:focus-visible { outline: 3px solid #e7d7f4; outline-offset: -3px; }

.student-avatar {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #efe4f8;
    color: #63239a;
    font-family: Georgia, serif;
    font-size: 17px;
}

.student-name strong,
.student-name span { display: block; }
.student-name span,
.student-detail { margin-top: 4px; color: #817789; font-size: 12px; }

.student-dialog {
    width: min(590px, calc(100% - 32px));
    border: 0;
    border-radius: 18px;
    padding: 0;
    box-shadow: 0 24px 70px rgba(25, 8, 43, 0.25);
}

dialog.student-dialog {
    position: fixed;
    inset: 0;
    margin: auto;
}

.student-dialog::backdrop { background: rgba(24, 12, 35, 0.55); }
.student-dialog form { padding: 27px; }
#student-dialog { width: min(900px, calc(100% - 32px)); max-height: calc(100vh - 44px); }

.dialog-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 24px;
}

.dialog-close {
    border: 0;
    background: transparent;
    color: #766c7d;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
}

.form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}

.form-grid label { color: #4b3f53; font-size: 13px; font-weight: 600; }
.form-grid input,
.form-grid select { margin-top: 7px; font-weight: 400; }
.form-grid label small { display: block; margin-top: 5px; color: #8a8190; font-size: 11px; font-weight: 400; line-height: 1.4; }
.student-password-field { grid-column: 1 / -1; }
.form-error { min-height: 17px; margin-top: 15px; color: #a52d47; font-size: 12px; }
.form-note { margin-top: 18px; color: #817789; font-size: 12px; }

.group-dialog { width: min(720px, calc(100% - 32px)); }
.group-explanation-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 20px; }
.group-explanation-grid article { border: 1px solid #e7e1ed; border-radius: 12px; background: #faf8fc; padding: 15px; }
.group-explanation-grid strong { display: block; margin-bottom: 5px; color: #4a3c52; font-size: 14px; }
.group-explanation-grid p { color: #817789; font-size: 12px; line-height: 1.45; }
.group-create-fields { margin-bottom: 4px; }
.group-lists { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 24px; padding-top: 20px; border-top: 1px solid #eee9f2; }
.group-lists h4 { margin-bottom: 10px; color: #3e3246; font-family: Georgia, serif; font-size: 17px; font-weight: 400; }
.group-list { display: grid; gap: 8px; }
.group-list-item,
.group-list-empty { border: 1px solid #e9e3ed; border-radius: 9px; padding: 10px 12px; color: #5b4e63; font-size: 12px; }
.group-list-item { display: block; }
.group-list-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.group-list-identity { display: grid; gap: 3px; }
.group-list-identity small { color: #8c8292; }
.group-list-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.group-list-actions button { padding: 5px 7px; border: 1px solid #ddd2e5; border-radius: 7px; background: white; color: #5d426e; font-size: 10px; cursor: pointer; }
.group-list-actions .delete-group { border-color: #eccaca; color: #a64141; }
.group-member-panel { margin-top: 10px; padding-top: 10px; display: grid; gap: 7px; border-top: 1px solid #eee8f1; color: #746a7b; }
.group-member-panel label { display: flex; align-items: center; gap: 8px; padding: 6px; border-radius: 7px; cursor: pointer; }
.group-member-panel label:hover { background: #f5f0f8; }
.group-member-panel input { accent-color: var(--theme-primary); }
.group-list-empty { color: #928797; text-align: center; }

.delete-student-dialog { width: min(500px, calc(100% - 32px)); }
.delete-dialog-content { padding: 30px; text-align: center; }
.delete-dialog-content h3 { color: #33293b; font-family: Georgia, serif; font-size: 25px; font-weight: 400; }
.delete-dialog-content > p:not(.page-eyebrow) { margin-top: 9px; color: #776d7e; font-size: 13px; line-height: 1.5; }
.delete-warning-icon { width: 48px; height: 48px; display: grid; place-items: center; margin: 0 auto 15px; border-radius: 50%; background: #fae7eb; color: #ac3852; font-size: 22px; font-weight: 700; }
.delete-impact { margin-top: 20px; border-radius: 11px; background: #fff7f8; padding: 15px 18px; color: #6c5960; text-align: left; font-size: 12px; }
.delete-impact ul { margin: 8px 0 0 18px; line-height: 1.7; }
.danger-button { border: 1px solid #a93751; border-radius: 10px; background: #ad3b55; color: white; padding: 11px 17px; font-size: 14px; font-weight: 700; cursor: pointer; }
.danger-button:hover { background: #8d2940; }

.student-detail-dialog { width: min(830px, calc(100% - 32px)); max-height: calc(100vh - 34px); }
.student-detail-modal { padding: 28px; }
.detail-legal-name { margin-top: 5px; color: #7e7484; font-size: 13px; }
.student-profile-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 11px; }
.student-profile-grid article { position: relative; min-height: 92px; border: 1px solid #e9e3ed; border-radius: 12px; background: #faf8fc; padding: 14px; }
.student-profile-grid article > span,
.student-profile-grid article > strong { display: block; }
.student-profile-grid article > span { margin-bottom: 8px; color: #83788a; font-size: 10px; font-weight: 700; letter-spacing: 0.8px; text-transform: uppercase; }
.student-profile-grid article > strong { color: #3d3145; font-size: 14px; }
.text-button { margin-top: 8px; border: 0; background: transparent; color: var(--theme-primary); padding: 0; font-size: 11px; font-weight: 700; cursor: pointer; }
.credential-reset { margin-top: 14px; border: 1px solid #dbcbe7; border-radius: 12px; background: #fbf8fd; padding: 16px; }
.credential-reset label { color: #4b3f53; font-size: 12px; font-weight: 700; }
.credential-reset input { width: 100%; margin-top: 7px; border: 1px solid #dcd4e3; border-radius: 9px; padding: 10px 11px; font: inherit; }
.credential-reset label small { display: block; margin-top: 5px; color: #85798c; font-size: 11px; font-weight: 400; }
.credential-reset-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 13px; }
.student-record-sections { display: grid; gap: 12px; margin-top: 18px; }
.student-record-sections > section { border: 1px solid #e9e3ed; border-radius: 12px; padding: 16px; }
.student-record-sections > section > p { margin-top: 9px; color: #8a8090; font-size: 12px; }
.record-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.record-heading h4 { color: #3b3042; font-family: Georgia, serif; font-size: 17px; font-weight: 400; }
.record-heading span { border-radius: 999px; background: #f0e8f6; color: #6b2aa4; padding: 5px 8px; font-size: 10px; font-weight: 700; }
.student-metrics-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 12px; }
.student-metrics-grid div { border-radius: 9px; background: #faf8fc; padding: 12px; text-align: center; }
.student-metrics-grid strong,
.student-metrics-grid span { display: block; }
.student-metrics-grid strong { color: #3c3044; font-family: Georgia, serif; font-size: 22px; }
.student-metrics-grid span { margin-top: 4px; color: #827788; font-size: 10px; }

.dialog-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 24px;
}

/* ---------- PACKAGE UPLOAD ---------- */

.package-dialog { width: min(1100px, calc(100% - 32px)); max-height: calc(100vh - 40px); }
.package-dialog form { padding: 30px; }
.updates-page.package-dialog {
    width: 100%;
    max-height: none;
    border: 1px solid #e7e1ed;
    border-radius: 18px;
    background: white;
    box-shadow: 0 4px 18px rgba(45, 18, 75, 0.04);
}

.package-intro {
    margin-top: -10px;
    margin-bottom: 20px;
    color: #777184;
    font-size: 14px;
}

.update-summary {
    display: grid;
    grid-template-columns: 0.9fr 1.45fr 1fr;
    gap: 14px;
    margin-bottom: 18px;
}

.update-card,
.update-step {
    border: 1px solid #e7e1ed;
    border-radius: 14px;
    background: white;
    padding: 18px;
}

.update-card { display: flex; gap: 13px; }
.update-card strong { display: block; margin-bottom: 8px; color: #42364a; font-size: 14px; }
.update-card p,
.update-card li { color: #756d7d; font-size: 12px; line-height: 1.55; }
.update-card ul { list-style: none; }
.update-card li::before { content: "✓"; margin-right: 8px; color: #4d9162; font-weight: 700; }
.version-card b { display: block; margin-bottom: 7px; color: #6e2ab5; font-family: Georgia, serif; font-size: 24px; }
.protected-card { background: #fbfdfb; }
.information-card { background: #fffdf3; }

.summary-icon {
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    background: #eee5f7;
    color: #6e2ab5;
    font-weight: 700;
}

.summary-icon.success { background: #e2f1e5; color: #418153; }
.summary-icon.warning { background: #f5edbd; color: #8b741b; }

.step-heading { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 15px; }
.step-heading > span {
    width: 26px;
    height: 26px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #6e2ab5;
    color: white;
    font-size: 13px;
    font-weight: 700;
}
.step-heading h4 { margin-bottom: 3px; color: #403447; font-size: 15px; }
.step-heading p { color: #817789; font-size: 12px; }

.package-dropzone {
    min-height: 145px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 2px dashed #d7c4e8;
    border-radius: 14px;
    background: #fbf8fd;
    color: #493b52;
    padding: 25px;
    text-align: center;
    cursor: pointer;
}

.package-dropzone:hover { border-color: #9b62c8; background: #f7f0fb; }
.package-dropzone input { position: absolute; opacity: 0; pointer-events: none; }
.package-dropzone > span:not(.upload-icon) { color: #817789; font-size: 13px; }

.selected-package { margin-top: 12px; color: #817789; font-size: 12px; }
.selected-package strong { margin-right: 7px; color: #493e51; }

.update-final-grid { display: grid; grid-template-columns: 1.35fr 1fr; gap: 14px; margin-top: 14px; }
.confirmation-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.confirmation-fields label { color: #4b3f53; font-size: 12px; font-weight: 600; }
.confirmation-fields input {
    width: 100%;
    margin-top: 7px;
    border: 1px solid #dcd4e3;
    border-radius: 9px;
    padding: 10px 11px;
    font: inherit;
    font-size: 13px;
}
.confirmation-fields input:focus { border-color: #9d67c8; outline: 3px solid #f1e7f8; }

.install-step { display: flex; flex-direction: column; }
.install-update-button {
    width: 100%;
    border: 0;
    border-radius: 9px;
    background: #6e2ab5;
    color: white;
    padding: 12px 16px;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}
.install-update-button:disabled { background: #d8cedf; color: #8c8194; cursor: not-allowed; }
.install-step small { margin-top: 9px; color: #817789; font-size: 11px; }

.upload-icon {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #eadcf5;
    color: #6624a1;
    font-size: 22px;
}

.package-status { min-height: 18px; margin-top: 14px; border-radius: 10px; padding: 11px 13px; color: #6e2ab5; background: #f4eef9; font-size: 13px; }
.package-status.error { color: #a52d47; }

/* ---------- CONTENT LIBRARY ---------- */

.content-library-panel { overflow: hidden; border: 1px solid #e7e1ed; border-radius: 18px; background: white; box-shadow: 0 4px 18px rgba(45, 18, 75, 0.04); }
.content-pathway { display: flex; align-items: center; justify-content: center; gap: 13px; border-bottom: 1px solid #eee9f2; background: #f5effa; color: #6d5c78; padding: 12px 18px; font-size: 12px; font-weight: 700; }
.content-pathway b { color: var(--theme-primary); }
.content-tabs { display: flex; gap: 8px; border-bottom: 1px solid #eee9f2; background: #faf8fc; padding: 12px 18px 0; }
.content-tab { border: 0; border-bottom: 3px solid transparent; background: transparent; color: #776c7e; padding: 12px 16px 14px; font-size: 14px; font-weight: 700; cursor: pointer; }
.content-tab span { margin-left: 6px; border-radius: 999px; background: #ece6f1; padding: 3px 7px; font-size: 11px; }
.content-tab.active { border-bottom-color: var(--theme-primary); color: var(--theme-primary); }
.content-tab-panel { padding: 24px; }
.curriculum-library-section{margin:0 0 24px;padding:20px;border:1px solid #e3dbe8;border-radius:16px;background:#fbf9fc}.curriculum-library-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:12px}.curriculum-library-heading h4{margin:0 0 4px;font:600 22px Georgia,serif}.curriculum-library-heading p{margin:0;color:#766b7c}.curriculum-library-heading>span{min-width:32px;padding:6px 10px;border-radius:999px;background:#eee5f6;color:#6325a3;text-align:center;font-weight:800}.curriculum-library-row{margin:8px 0;border:1px solid #e0d7e6;border-radius:13px;background:#fff;overflow:hidden}.curriculum-library-row summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 17px;cursor:pointer;list-style:none}.curriculum-library-row summary::-webkit-details-marker{display:none}.curriculum-library-row summary span:first-child{display:grid;gap:3px}.curriculum-library-row summary small{color:#796e80}.curriculum-row-state,.curriculum-ready,.curriculum-not-ready{padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800}.curriculum-row-state{background:#eee6f5;color:#6829a6}.curriculum-ready{background:#e9f6eb;color:#397043}.curriculum-not-ready{background:#fff1e5;color:#99511d}.curriculum-row-detail{padding:0 17px 17px;border-top:1px solid #eee8f1}.curriculum-row-detail dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.curriculum-row-detail dl div{padding:10px;border-radius:9px;background:#f8f5fa}.curriculum-row-detail dt{font-size:10px;font-weight:800;text-transform:uppercase;color:#817487}.curriculum-row-detail dd{margin:4px 0 0}.curriculum-row-actions{display:flex;flex-wrap:wrap;gap:8px}.curriculum-readiness-reasons{margin:8px 0;color:#8c3c48}.curriculum-empty-row,.curriculum-loading{padding:14px;color:#7a6f80}.danger{color:#a32f45!important}.curriculum-uploader-dialog{position:fixed!important;inset:0!important;margin:auto!important}
@media(max-width:800px){.curriculum-row-detail dl{grid-template-columns:1fr 1fr}.curriculum-library-row summary{align-items:flex-start;flex-direction:column}}
.activity-removal-panel{margin-top:24px;padding:20px;border:1px solid #e2d9e7;border-radius:16px;background:#fff}.cleanup-record-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 14px;border-top:1px solid #eee8f1}.cleanup-record-row span{display:grid;gap:3px}.cleanup-record-row small{color:#7d7183}.cleanup-inline-action{display:block;width:100%;margin:-3px 0 9px;padding:7px 12px;text-align:right}
.legacy-lesson-cleanup{margin-top:18px;padding-top:16px;border-top:1px solid #ddd3e3}.legacy-lesson-cleanup>h4{margin:0 0 4px}.legacy-lesson-cleanup>p{margin:0 0 10px;color:#786c7e}
.uploader-cleanup-list{margin-top:18px;padding:16px;border:1px solid #e2d9e7;border-radius:14px;background:#faf8fc}.uploader-cleanup-list>h4{margin:0 0 4px}.uploader-cleanup-list>p{margin:0 0 10px;color:#786c7e}.uploader-cleanup-list .cleanup-record-row{background:#fff}
.content-panel-heading { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding-bottom: 20px; border-bottom: 1px solid #f0ebf3; }
.content-panel-heading h4 { margin-bottom: 5px; color: #34293c; font-family: Georgia, serif; font-size: 21px; font-weight: 400; }
.content-panel-heading p,
.content-empty p { color: #817789; font-size: 13px; }
.content-empty { min-height: 300px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 35px; text-align: center; }
.content-empty h4 { margin-bottom: 7px; color: #33293b; font-family: Georgia, serif; font-size: 21px; font-weight: 400; }
.lesson-grid { padding: 22px 0 4px; }
.lesson-card { display: grid; grid-template-columns: 210px 1fr; overflow: hidden; border: 1px solid #e4dbe9; border-radius: 15px; background: white; }
.lesson-card-art { min-height: 210px; display: flex; align-items: center; justify-content: center; gap: 7px; background: linear-gradient(145deg, #42166c, #7b31b8); color: white; }
.lesson-card-art span { display: grid; place-items: center; width: 47px; height: 60px; border-radius: 10px; background: rgba(255,255,255,0.14); font-family: Georgia, serif; font-size: 31px; }
.lesson-card-body { display: flex; flex-direction: column; align-items: flex-start; padding: 24px; }
.lesson-card-meta { display: flex; gap: 7px; }
.lesson-card-meta span { border-radius: 999px; background: #f0e8f6; color: #6b2aa4; padding: 5px 8px; font-size: 10px; font-weight: 700; }
.lesson-card-body h4 { margin-top: 15px; color: #34283c; font-family: Georgia, serif; font-size: 24px; font-weight: 400; }
.lesson-card-body p { max-width: 560px; margin-top: 8px; color: #796f80; font-size: 13px; line-height: 1.55; }
.curriculum-breadcrumb { color: #6e2ab5 !important; font-size: 11px !important; font-weight: 700; }
.content-heading-actions{display:flex;gap:10px}.curriculum-uploader-dialog{width:min(1500px,calc(100% - 24px));height:min(940px,calc(100vh - 24px));padding:0;border:0;border-radius:24px;background:#f4f0f7;box-shadow:0 28px 90px rgba(34,20,47,.35)}.curriculum-uploader-dialog::backdrop{background:rgba(27,17,38,.62);backdrop-filter:blur(4px)}.curriculum-uploader-shell{display:grid;grid-template-columns:260px minmax(0,1fr);grid-template-rows:auto 1fr;height:100%}.curriculum-uploader-shell>header{grid-column:1/-1;display:flex;justify-content:space-between;gap:24px;padding:22px 28px;border-bottom:1px solid #dfd7e5;background:#fff}.curriculum-uploader-shell>header h2{margin:4px 0;font:400 34px Georgia,serif}.curriculum-uploader-shell>aside{padding:22px;border-right:1px solid #ddd4e3;background:#faf8fc;overflow:auto}.curriculum-uploader-shell>aside h3{margin:28px 0 10px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#7a6d81}.curriculum-module-option{width:100%;padding:14px;border:1px solid #d9cde5;border-radius:13px;background:#fff;color:#522083;font-weight:800;text-align:left}.curriculum-module-option.active{border-color:#7133b9;background:#efe4fa}.curriculum-uploader-shell>main{padding:24px;overflow:auto}.curriculum-upload-card{padding:22px;border:1px solid #ded6e4;border-radius:18px;background:#fff}.curriculum-upload-card>p{color:#766b7d}.curriculum-upload-card>button{margin-top:14px}.curriculum-draft-button{display:grid;width:100%;gap:4px;margin-bottom:8px;padding:12px;border:1px solid #e1d8e7;border-radius:12px;background:#fff;text-align:left}.curriculum-draft-button small{color:#7b6d83}.curriculum-review-document{margin-top:22px}.curriculum-document-toolbar{position:sticky;top:-24px;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border:1px solid #dcd2e3;border-radius:15px;background:rgba(255,255,255,.96);box-shadow:0 8px 25px rgba(50,30,65,.1)}.curriculum-document-toolbar>div{display:flex;gap:9px;align-items:center}.curriculum-document-toolbar span{padding:6px 10px;border-radius:999px;background:#eee4f7;color:#6527a2;font-size:11px;font-weight:900;text-transform:uppercase}.curriculum-paper{width:min(900px,100%);margin:24px auto;padding:70px 76px;background:#fff;box-shadow:0 8px 35px rgba(50,34,60,.13);color:#2c2231}.curriculum-document-kicker{text-align:center;color:#6f31b5;font-weight:900;letter-spacing:.15em;text-transform:uppercase}.curriculum-paper>h1{margin:10px 0 32px;text-align:center;font:700 42px Georgia,serif}.curriculum-identity-grid,.curriculum-metadata-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:24px 0}.curriculum-paper label{font-size:12px;font-weight:800;color:#675a6d}.curriculum-paper input,.curriculum-paper select{width:100%;margin-top:6px;padding:10px;border:1px solid #d9d0df;border-radius:8px;background:#fff}.curriculum-doc-section{padding:20px 0;border-top:1px solid #e7e0ea}.curriculum-doc-section h2{margin:0 0 12px;font:700 25px Georgia,serif}.curriculum-doc-section [contenteditable],.curriculum-doc-section pre{min-height:58px;padding:12px;border:1px dashed transparent;border-radius:8px;white-space:pre-wrap;font:inherit;line-height:1.6}.curriculum-doc-section [contenteditable]:hover,.curriculum-doc-section [contenteditable]:focus{border-color:#cbb6de;background:#fbf8fd;outline:0}.admin-development{margin-inline:-22px;padding-inline:22px;background:#faf6fe}.admin-development h2::after{content:"Admin development";margin-left:10px;padding:4px 7px;border-radius:9px;background:#eadbf7;color:#692da4;font:700 9px Arial}.curriculum-issue-summary{display:grid;gap:8px;margin:22px 0}.curriculum-issue{display:grid;grid-template-columns:1fr auto;gap:10px;padding:13px;border-left:4px solid #c64b62;border-radius:8px;background:#fff1f3}.curriculum-issue.suggested_value{border-color:#c88f28;background:#fff8e8}.curriculum-issue.resolved{border-color:#63966b;background:#edf8ef}.curriculum-issue small{display:block;color:#74687b}.curriculum-issue-actions{display:flex;gap:6px}.curriculum-issue-actions button{padding:7px 10px}.expected-component{display:flex;justify-content:space-between;gap:15px;margin:7px 0;padding:11px;border-radius:9px;background:#f6f2f8}.expected-component span{text-transform:capitalize;color:#776a7e}.curriculum-release-warning{padding:14px;border-radius:10px;background:#fff4d8;color:#765008}@media(max-width:800px){.curriculum-uploader-shell{grid-template-columns:1fr}.curriculum-uploader-shell>aside{display:none}.curriculum-paper{padding:36px 24px}.curriculum-identity-grid,.curriculum-metadata-grid{grid-template-columns:1fr}.curriculum-document-toolbar{align-items:flex-start;flex-direction:column}}
.lesson-rules { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; width: 100%; margin-top: 15px; }
.lesson-rules div { border-radius: 9px; background: #faf8fc; padding: 9px; }
.lesson-rules dt { color: #897d90; font-size: 9px; font-weight: 700; letter-spacing: 0.6px; text-transform: uppercase; }
.lesson-rules dd { margin-top: 4px; color: #493c51; font-size: 11px; font-weight: 700; }
.lesson-card-actions { display: flex; gap: 9px; margin-top: 17px; }

.abc-lesson-dialog { width: min(850px, calc(100% - 32px)); max-height: calc(100vh - 34px); }
.abc-lesson-preview { padding: 28px; }
.lesson-objectives { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 18px; }
.lesson-objectives strong { margin-right: 5px; color: #4a3c52; font-size: 12px; }
.lesson-objectives span { border-radius: 999px; background: #f0e8f6; color: #6c2ca3; padding: 6px 9px; font-size: 10px; font-weight: 700; }
.flashcard-lesson { max-width: 640px; margin: 0 auto; }
.lesson-heading-actions { display: flex; align-items: center; gap: 10px; }
.alphabet-sheet-button { white-space: nowrap; }
.alphabet-sheet { padding: 18px 0 8px; }
.alphabet-sheet-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.alphabet-sheet-heading h4 { margin: 2px 0 0; font: 400 28px Georgia,serif; color: #2d173a; }
.alphabet-sheet-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 12px; }
.alphabet-sheet-card { min-height: 128px; display: grid; grid-template-rows: auto 1fr auto; place-items: center; padding: 10px 8px; border: 1px solid #ded3e6; border-radius: 16px; background: #fff; box-shadow: 0 4px 12px rgba(54,25,74,.06); }
.alphabet-sheet-card strong { color: #5f258f; font: 700 23px Georgia,serif; }
.alphabet-sheet-card .alphabet-sheet-visual { width: 54px; height: 54px; display: grid; place-items: center; font-size: 38px; }
.alphabet-sheet-card img { max-width: 54px; max-height: 54px; object-fit: contain; }
.alphabet-sheet-card small { color: #74697c; font-size: 11px; text-align: center; }
.alphabet-sheet-card small u { color: var(--theme-primary); text-decoration-thickness: 2px; text-underline-offset: 3px; }
@media (max-width: 700px) {
    .alphabet-sheet-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .lesson-heading-actions { align-self: flex-start; }
}
.flashcard-toolbar { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; margin-bottom: 14px; }
.flashcard-toolbar > div { text-align: center; }
.flashcard-toolbar strong,
.flashcard-toolbar span { display: block; }
.flashcard-toolbar strong { color: #44364c; font-size: 13px; }
.flashcard-toolbar span { margin-top: 4px; color: #85798c; font-size: 11px; }
.alphabet-flashcard { width: 100%; height: 390px; border: 0; background: transparent; padding: 0; perspective: 1200px; cursor: pointer; }
.alphabet-flashcard-inner { position: relative; width: 100%; height: 100%; display: block; transition: transform 0.6s ease; transform-style: preserve-3d; }
.alphabet-flashcard.flipped .alphabet-flashcard-inner { transform: rotateY(180deg); }
.flashcard-face { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; border: 2px solid #d9c6e8; border-radius: 22px; backface-visibility: hidden; box-shadow: 0 12px 30px rgba(44, 20, 62, 0.1); }
.flashcard-front { background: linear-gradient(145deg, #fbf8fd, #f1e5f9); color: #562184; }
.flashcard-front strong { font-family: Georgia, serif; font-size: 145px; line-height: 0.85; }
.flashcard-front small { margin-top: 15px; color: #8e5caf; font-family: Georgia, serif; font-size: 88px; line-height: 0.8; }
.flashcard-face em { margin-top: 24px; color: #8a7e90; font-size: 11px; font-style: normal; }
.flashcard-back { transform: rotateY(180deg); background: white; color: #3f3347; }
.flashcard-visual { width: 280px; height: 210px; display: grid; place-items: center; }
.flashcard-visual img { max-width: 100%; max-height: 100%; object-fit: contain; }
.flashcard-visual > span { font-size: 110px; }
.flashcard-back > strong { font-family: Georgia, serif; font-size: 36px; font-weight: 400; }
.flashcard-back > strong u { color: var(--theme-primary); text-decoration-thickness: 4px; text-underline-offset: 6px; }
.flashcard-back > small { margin-top: 9px; color: #776b7e; font-size: 12px; }
.lesson-preview-note { margin-top: 18px; border-radius: 10px; background: #fff9e8; color: #746230; padding: 12px 14px; font-size: 12px; }

/* ---------- SETTINGS ---------- */

.settings-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(270px, 0.7fr); gap: 22px; }
.settings-page .settings-layout { grid-template-columns: minmax(0, 900px); }
.settings-page .database-settings { margin-top: 0; padding-top: 0; border-top: 0; }
.settings-panel,
.theme-preview { border: 1px solid #e7e1ed; border-radius: 18px; background: white; box-shadow: 0 4px 18px rgba(45, 18, 75, 0.04); }
.settings-panel { padding: 25px; }
.settings-section-heading { margin-bottom: 20px; }
.settings-section-heading h4,
.theme-presets h4 { margin-bottom: 6px; color: #3a2f42; font-family: Georgia, serif; font-size: 19px; font-weight: 400; }
.settings-section-heading p { color: #817789; font-size: 13px; }
.color-settings-grid { display: grid; gap: 12px; }
.color-setting { display: flex; justify-content: space-between; align-items: center; gap: 18px; border: 1px solid #eee9f2; border-radius: 12px; padding: 14px 16px; }
.color-setting strong,
.color-setting small { display: block; }
.color-setting strong { color: #44374d; font-size: 14px; }
.color-setting small { margin-top: 4px; color: #8a8190; font-size: 12px; }
.color-control { display: flex; align-items: center; gap: 10px; }
.color-control input { width: 46px; height: 38px; border: 1px solid #dcd4e3; border-radius: 8px; padding: 3px; background: white; cursor: pointer; }
.color-control output { width: 72px; color: #6f6675; font-family: Consolas, monospace; font-size: 12px; }
.theme-presets { margin-top: 25px; padding-top: 22px; border-top: 1px solid #eee9f2; }
.preset-buttons { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-top: 13px; }
.theme-preset { display: flex; align-items: center; gap: 9px; border: 1px solid #e3dce8; border-radius: 10px; background: white; color: #4a3d52; padding: 11px 12px; font-size: 13px; cursor: pointer; }
.theme-preset:hover { border-color: var(--theme-primary); background: #faf7fc; }
.preset-swatch { width: 22px; height: 22px; border-radius: 50%; }
.papilia-swatch { background: #6e2ab5; }
.ocean-swatch { background: #2475a8; }
.forest-swatch { background: #347554; }
.berry-swatch { background: #a33e68; }
.settings-actions { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 24px; }
.settings-saved { color: #777184; font-size: 12px; }
.database-settings { margin-top: 28px; padding-top: 25px; border-top: 1px solid #eee9f2; }
.database-state { display: flex; align-items: center; gap: 9px; margin-bottom: 18px; border-radius: 10px; background: #f5f1f8; color: #6f6476; padding: 11px 13px; font-size: 13px; }
.database-state.connected { background: #eaf6ed; color: #39734a; }
.database-state.error { background: #faecef; color: #9a3049; }
.database-state-dot { width: 9px; height: 9px; border-radius: 50%; background: #9d8fa7; }
.database-state.connected .database-state-dot { background: #4e9b65; }
.database-state.error .database-state-dot { background: #bd4761; }
.database-form .full-field { grid-column: 1 / -1; }
.database-admin-fields { margin-top: 22px; border-radius: 13px; background: #faf8fc; padding: 18px; }
.database-admin-fields > h4 { color: #403447; font-family: Georgia, serif; font-size: 18px; font-weight: 400; }
.database-admin-fields > p { margin: 5px 0 16px; color: #817789; font-size: 12px; }
.database-actions { display: flex; align-items: center; gap: 14px; margin-top: 18px; }
#database-message { color: #756d7d; font-size: 12px; }
#database-message.error { color: #a52d47; }
.database-help { margin-top: 12px; color: #817789; font-size: 12px; line-height: 1.5; }
.database-upgrade { margin: 18px 0 4px; padding: 20px; border: 1px solid #e6deec; border-radius: 14px; background: #fbf9fd; }
.database-upgrade > p { margin: 6px 0 16px; color: #756b7d; }
.database-upgrade label { display: grid; gap: 7px; max-width: 520px; color: #382b43; font-weight: 700; }
.database-backup { margin-top: 28px; border-top: 1px solid #eee9f2; padding-top: 25px; }
.database-restore { margin-top: 28px; border-top: 1px solid #eee9f2; padding-top: 25px; }
.assignment-builder { margin-bottom: 22px; }
.assignment-list, .student-assignment-list { display: grid; gap: 12px; }
.assignment-item { display: flex; justify-content: space-between; align-items: center; gap: 18px; border: 1px solid #e5deeb; border-radius: 15px; background: #fff; padding: 18px 20px; }
.assignment-item strong, .assignment-item span { display: block; }
.assignment-item span { margin-top: 5px; color: #796f81; font-size: 13px; }
.assignment-item button { border: 1px solid #e1d7e8; border-radius: 9px; background: #fff; color: #91334c; padding: 9px 12px; cursor: pointer; }
.assignment-item .assignment-start { border-color: #6b30b5; background: #6b30b5; color: #fff; }
.assignment-status { font-weight: 700; color: #6b30b5 !important; }
.assignment-history { margin-top: 30px; }
.assignment-history > h4 { margin-bottom: 12px; color: #51445b; font-family: Georgia, serif; font-size: 22px; }
.student-account-button { width: calc(100% - 28px); margin: auto 14px 8px; border: 1px solid rgba(255,255,255,.24); border-radius: 11px; background: rgba(255,255,255,.08); color: #fff; padding: 11px; font-weight: 700; cursor: pointer; }
#student-account-dialog { width: min(720px, calc(100% - 32px)); }
.student-credential-form { width: auto; }
.student-credential-form .credential-grid label:last-child { grid-column: 1 / -1; }
.student-credential-form .dialog-actions { margin-top: 24px; }

/* Full-page learning and record experiences */
body.auth-student #abc-lesson-dialog[open],
body.auth-student #alphabet-practice-dialog[open],
.student-detail-dialog[open] { inset: 0; width: 100vw; max-width: none; height: 100vh; max-height: none; margin: 0; border: 0; border-radius: 0; padding: 0; }
body.auth-student #abc-lesson-dialog .abc-lesson-preview,
body.auth-student #alphabet-practice-dialog .alphabet-practice-preview,
.student-detail-dialog .student-detail-modal { width: 100%; min-height: 100%; max-height: none; border-radius: 0; }
dialog[open] { scrollbar-width: none; }
dialog[open]::-webkit-scrollbar, dialog[open] *::-webkit-scrollbar { width: 0; height: 0; }
.profile-assignment-list { display: grid; gap: 9px; margin-top: 12px; }
.profile-assignment-list article { display: flex; justify-content: space-between; gap: 12px; border-radius: 10px; background: #faf8fc; padding: 12px 14px; }
.profile-assignment-list article strong, .profile-assignment-list article small { display: block; }
.profile-assignment-list article small { margin-top: 4px; }
.record-heading-actions { display: flex; align-items: center; gap: 10px; }
.record-heading-actions .secondary-button { padding: 7px 12px; }
.profile-work-picker { margin-top: 12px; padding: 14px; border: 1px solid #e4dbea; border-radius: 12px; background: #fcfaff; }
.profile-work-picker > p { margin: 0 0 10px; color: #706679; }
#detail-work-options { display: grid; gap: 7px; }
.profile-work-option { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 9px 11px; border-radius: 9px; background: #fff; }
.profile-work-option strong, .profile-work-option small { display: block; }
.profile-work-option small { margin-top: 2px; color: #7a7082; }
.profile-work-option button { width: 34px; height: 34px; border: 1px solid #6b30b5; border-radius: 9px; background: #6b30b5; color: #fff; font-size: 20px; cursor: pointer; }
.profile-work-option button.remove { border-color: #a33c55; background: #fff; color: #a33c55; }
.profile-work-option button:disabled { border-color: #d9d3dd; background: #eeeaf1; color: #8c8491; cursor: default; }
.profile-assignment-list article span { color: #706679; font-size: 12px; font-weight: 700; }
.detail-heading-actions { display: flex; align-items: center; gap: 10px; }
.profile-edit-form { margin: 18px 0; border: 1px solid #e7dfee; border-radius: 14px; background: #faf8fc; padding: 18px; }
.theme-preview { overflow: hidden; align-self: start; }
.theme-preview > .page-eyebrow { padding: 18px 18px 10px; }
.preview-sidebar { display: grid; gap: 9px; background: linear-gradient(180deg, var(--theme-sidebar-top), var(--theme-sidebar-bottom)); color: white; padding: 24px 18px; }
.preview-sidebar > strong { margin-bottom: 10px; font-family: Georgia, serif; letter-spacing: 4px; }
.preview-nav { border-radius: 7px; padding: 9px 10px; color: #eee8f3; font-size: 12px; }
.preview-nav.active { background: color-mix(in srgb, var(--theme-primary) 55%, transparent); }
.preview-workspace { background: var(--theme-page-background); padding: 18px; }
.preview-card { display: flex; min-height: 155px; flex-direction: column; border: 1px solid #e7e1ed; border-radius: 12px; background: white; padding: 17px; }
.preview-card small { color: var(--theme-primary); font-weight: 700; }
.preview-card > strong { margin-top: 18px; font-family: Georgia, serif; font-size: 30px; }
.preview-card button { margin-top: auto; align-self: flex-start; border: 0; background: transparent; color: var(--theme-primary); padding: 0; font-weight: 700; }

/* Theme color application */
body { background: var(--theme-page-background); }
.sidebar { background: linear-gradient(180deg, var(--theme-sidebar-top) 0%, color-mix(in srgb, var(--theme-sidebar-top) 45%, var(--theme-sidebar-bottom)) 55%, var(--theme-sidebar-bottom) 100%); }
.learning-space { background: var(--theme-sidebar-bottom); }
.card-label,
.card-link,
.section-link,
.page-eyebrow,
.version-card b { color: var(--theme-primary); }
.primary-button,
.install-update-button { border-color: var(--theme-primary); background: var(--theme-primary); }
.primary-button:hover { background: var(--theme-primary-dark); }
.profile-circle { background: linear-gradient(135deg, var(--theme-primary), var(--theme-primary-dark)); }
.nav-button.active { background: color-mix(in srgb, var(--theme-primary) 55%, transparent); }
.empty-icon,
.student-avatar,
.upload-icon { color: var(--theme-primary); background: color-mix(in srgb, var(--theme-primary) 14%, white); }

/* ---------- RESPONSIVE LAYOUT ---------- */

@media (max-width: 900px) {
    .sidebar { width: 225px; }
    .workspace { padding: 30px 25px; }
    .dashboard-cards { grid-template-columns: 1fr; }
    .update-summary { grid-template-columns: 1fr; }
    .update-final-grid { grid-template-columns: 1fr; }
    .settings-layout { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
    .admin-layout { display: block; }
    .sidebar {
        width: 100%;
        height: auto;
        min-height: auto;
        position: static;
        overflow: visible;
    }
    .brand img { width: 90px; height: 90px; }
    .learning-space {
        margin-top: 25px;
        position: static;
        background: transparent;
    }
    .topbar,
    .section-heading,
    .student-page-heading { align-items: flex-start; flex-direction: column; }
    .topbar-actions { width: 100%; align-items: stretch; flex-direction: column; }
    .program-switcher { justify-content: space-between; }
    .activity-panel,
    .scoreboard-panel { overflow-x: auto; }
    .activity-table-header,
    .scoreboard-table-header { min-width: 650px; }
    .student-toolbar { align-items: stretch; flex-direction: column; }
    .student-search { max-width: none; }
    .student-row { grid-template-columns: auto 1fr; }
    .student-detail { grid-column: 2; }
    .student-actions { grid-column: 2; }
    .form-grid { grid-template-columns: 1fr; }
    .student-heading-actions { width: 100%; flex-direction: column; }
    .group-explanation-grid,
    .group-lists { grid-template-columns: 1fr; }
    .student-profile-grid { grid-template-columns: 1fr 1fr; }
    .student-metrics-grid { grid-template-columns: 1fr; }
    .confirmation-fields { grid-template-columns: 1fr; }
    .package-dialog form { padding: 20px; }
    .preset-buttons { grid-template-columns: 1fr; }
    .color-setting,
    .settings-actions { align-items: flex-start; flex-direction: column; }
    .database-form .full-field { grid-column: auto; }
    .database-actions { align-items: stretch; flex-direction: column; }
    .content-pathway { align-items: flex-start; flex-direction: column; }
    .content-pathway b { display: none; }
    .lesson-card { grid-template-columns: 1fr; }
    .lesson-card-art { min-height: 150px; }
    .lesson-rules { grid-template-columns: 1fr; }
    .lesson-card-actions { align-items: stretch; flex-direction: column; }
    .flashcard-toolbar { grid-template-columns: 1fr 1fr; }
    .flashcard-toolbar > div { grid-column: 1 / -1; grid-row: 1; }
    .alphabet-flashcard { height: 360px; }
    .flashcard-front strong { font-size: 115px; }
    .flashcard-front small { font-size: 72px; }
}

/* ---------- STUDENT LEARNING SPACE ---------- */

.student-app {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: grid;
    grid-template-columns: 245px 1fr;
    overflow: auto;
    background: #f7f3fb;
    color: #30243b;
}

.student-sidebar {
    min-height: 100vh;
    padding: 28px 20px;
    display: flex;
    flex-direction: column;
    background: linear-gradient(180deg, #25103f, #471a72);
    color: white;
}

.student-brand {
    display: grid;
    justify-items: center;
    margin-bottom: 38px;
    text-align: center;
}

.student-brand img { width: 90px; height: 90px; object-fit: contain; }
.student-brand strong { font: 400 22px Georgia, serif; letter-spacing: 5px; }
.student-brand span { margin-top: 7px; color: #d8bdf2; font-size: 11px; letter-spacing: 1px; text-transform: uppercase; }
.student-navigation { display: grid; gap: 10px; }

.student-nav-button {
    width: 100%;
    padding: 14px 15px;
    display: flex;
    align-items: center;
    gap: 11px;
    border: 0;
    border-radius: 13px;
    background: transparent;
    color: #eee5f6;
    text-align: left;
    font-size: 15px;
    cursor: pointer;
}

.student-nav-button:hover,
.student-nav-button.active { background: rgba(255,255,255,.14); color: white; }
.student-nav-button > span { width: 23px; text-align: center; }
.student-nav-button b { margin-left: auto; padding: 3px 7px; border-radius: 999px; background: #f0c85a; color: #452660; font-size: 11px; }
.student-exit-button { width: 68px; height: 62px; padding: 7px; display: grid; place-items: center; align-content: center; gap: 1px; flex: 0 0 auto; border: 1px solid #dfd1e7; border-radius: 17px; background: white; color: #653097; box-shadow: 0 5px 14px rgba(55,25,78,.09); cursor: pointer; }
.student-exit-button:hover { border-color: #b993d4; background: #f8f0fd; transform: translateY(-1px); }
.student-exit-button span { font-size: 24px; line-height: 1; }
.student-exit-button small { font-size: 9px; font-weight: 800; letter-spacing: .3px; text-transform: uppercase; }
.student-workspace { min-width: 0; padding: 30px clamp(25px, 6vw, 80px) 60px; }
.student-topbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.student-topbar-actions { display: flex; align-items: center; gap: 12px; }
.student-program-picker { padding: 9px 12px; display: grid; gap: 4px; border: 1px solid #e5dbe9; border-radius: 13px; background: white; color: #897d90; font-size: 10px; font-weight: 700; text-transform: uppercase; }
.student-program-picker select { border: 0; background: transparent; color: #4c335d; font: 700 13px Arial, sans-serif; outline: none; }
.student-program-picker.kids-language-picker {
    width:62px;
    height:62px;
    padding:0;
    place-items:center;
    border-radius:17px;
}
.student-program-picker.kids-language-picker > span { display:none; }
.student-program-picker.kids-language-picker select {
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip-path:inset(50%);
}
.student-program-picker.kids-language-picker button { width:100%; height:100%; display:grid; place-items:center; border:0; border-radius:17px; background:transparent; padding:8px; cursor:default; }
.student-program-picker.kids-language-picker button img { width:100%; height:100%; display:block; object-fit:contain; }
.student-program-picker.kids-language-picker.multiple-languages button { cursor:pointer; }
.student-program-picker.kids-language-picker.multiple-languages { box-shadow:0 5px 14px rgba(55,25,78,.09); }
.student-topbar p { color: #85778e; }
.student-topbar h2 { margin-top: 3px; font: 400 31px Georgia, serif; color: #2e1e39; }

.student-streak {
    padding: 10px 15px;
    display: grid;
    grid-template-columns: auto auto;
    column-gap: 7px;
    align-items: center;
    border: 1px solid #eadff1;
    border-radius: 15px;
    background: white;
}

.student-streak > span { grid-row: 1 / 3; font-size: 26px; }
.student-streak strong { font-size: 18px; }
.student-streak small { color: #8a7d91; }
.student-screen { max-width: 920px; margin: 52px auto 0; }
.student-screen-heading { text-align: center; }
.student-screen-heading p { color: #7a35b9; font-size: 12px; font-weight: 800; letter-spacing: 1.5px; text-transform: uppercase; }
.student-screen-heading h3 { margin: 8px 0; font: 400 38px Georgia, serif; color: #2d2037; }
.student-screen-heading span { color: #817689; }
.lessons-screen .student-screen-heading > p { display:none; }

.lesson-path {
    position: relative;
    width: min(620px, 100%);
    margin: 50px auto;
    padding: 25px 0 65px;
}

.path-curve {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
}

.path-curve path {
    fill: none;
    stroke: #ded1e9;
    stroke-width: 9;
    stroke-linecap: round;
    stroke-dasharray: 15 10;
}

.path-stop {
    position: relative;
    min-height: 210px;
    display: grid;
    grid-template-columns: 1fr 128px 1fr;
    align-items: center;
}

.path-stop:nth-of-type(odd) .path-lesson-label { grid-column: 3; text-align: left; }
.path-stop:nth-of-type(even) .path-lesson-label { grid-column: 1; grid-row: 1; text-align: right; }
.path-stop.current .path-lesson-label { grid-column: 1; grid-row: 1; text-align: right; }
.path-stop.current { min-height: 285px; }
.lesson-path-node { grid-column: 2; width: 112px; height: 112px; margin: auto; border: 9px solid #e8d8f4; border-radius: 50%; background: linear-gradient(145deg,#8f47cd,#6421a0); color: white; box-shadow: 0 9px 0 #4f187f,0 14px 25px rgba(70,26,108,.2); cursor: pointer; }
.lesson-path-node span { font: 700 35px Georgia, serif; }
.lesson-island-content { display: none; }
.student-app.younger-pathway .lesson-island-node:not(.waiting) { position: relative; width: 164px; height: 116px; overflow: visible; border: 0; border-radius: 50%; background: radial-gradient(ellipse at 50% 37%,#79c954 0 43%,#55a83d 44% 61%,#8d673d 62% 74%,#67472e 75% 100%); box-shadow: 0 9px 0 #503823,0 15px 24px rgba(56,72,34,.24); transform: rotate(-2deg); }
.student-app.younger-pathway .lesson-island-node:not(.waiting) .standard-node-label { display: none; }
.student-app.younger-pathway .lesson-island-node:not(.waiting) .lesson-island-content { position: absolute; inset: 0; display: block; font: inherit; }
.student-app.younger-pathway .lesson-island-node:not(.waiting) .island-sign { position: absolute; z-index: 2; left: 25px; top: 12px; width: 114px; min-height: 66px; display: grid; place-content: center; padding: 7px 8px; border: 4px solid #684326; border-radius: 9px; background: linear-gradient(145deg,#f2c77e,#c98740); color: #422818; box-shadow: inset 0 0 0 2px rgba(255,241,194,.5),0 4px 5px rgba(65,39,20,.22); transform: rotate(1deg); }
.student-app.younger-pathway .lesson-island-node:not(.waiting) .island-sign::before,.student-app.younger-pathway .lesson-island-node:not(.waiting) .island-sign::after { content:""; position:absolute; bottom:-28px; width:7px; height:28px; background:#684326; }
.student-app.younger-pathway .lesson-island-node:not(.waiting) .island-sign::before { left:20px; }
.student-app.younger-pathway .lesson-island-node:not(.waiting) .island-sign::after { right:20px; }
.student-app.younger-pathway .lesson-island-node:not(.waiting) .island-sign small { display:block; font:800 9px Arial,sans-serif; letter-spacing:.8px; text-transform:uppercase; }
.student-app.younger-pathway .lesson-island-node:not(.waiting) .island-sign strong { display:block; margin-top:3px; font:700 13px Georgia,serif; line-height:1.08; }
.student-app.younger-pathway .island-flower { position:absolute; z-index:3; font:700 17px Arial,sans-serif; color:#fff3a6; text-shadow:0 1px #7a6a24; }
.student-app.younger-pathway .flower-a { left:10px; top:48px; color:#f8b7d2; }
.student-app.younger-pathway .flower-b { right:8px; top:54px; color:#fff29c; }
.student-app.younger-pathway .flower-c { left:74px; bottom:1px; color:#d7b5f4; }
.student-app.younger-pathway .path-stop.current .path-lesson-label { visibility: hidden; }
.student-app.younger-pathway .path-stop.current { min-height: 390px; }
.student-app.younger-pathway .lesson-island-node:not(.waiting) { width: 280px; height: 190px; background: transparent; box-shadow: none; transform: none; }
.student-app.younger-pathway .lesson-island-art { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; pointer-events: none; }
.student-app.younger-pathway .lesson-island-node:not(.waiting) .island-sign { left: 66px; top: 21px; width: 148px; min-height: 76px; padding: 7px 10px; border: 0; background: transparent; box-shadow: none; transform: none; }
.student-app.younger-pathway .lesson-island-node:not(.waiting) .island-sign::before,.student-app.younger-pathway .lesson-island-node:not(.waiting) .island-sign::after { display: none; }
.student-app.younger-pathway .lesson-island-node:not(.waiting) .island-sign small { font-size: 10px; }
.student-app.younger-pathway .lesson-island-node:not(.waiting) .island-sign strong { margin-top: 5px; font-size: 17px; }
.student-app.younger-pathway .path-activity-cluster { top: 72px; left: calc(50% + 78px); }
.lesson-review-lock { display: none; }
.path-activity-cluster.lesson-activities-locked .lesson-review-lock { position: absolute; z-index: 8; top: 70px; left: 0; width: 230px; display: block; margin: 0; padding: 8px 10px; border-radius: 12px; background: rgba(255,255,255,.94); color: #6d5e76; font-size: 11px; font-weight: 700; text-align: center; box-shadow: 0 5px 16px rgba(55,26,74,.12); }
.path-activity-cluster.lesson-activities-locked .path-activity-wrap { opacity: .3; filter: grayscale(.65); pointer-events: none; }
.path-activity-node:disabled { cursor: not-allowed; filter: grayscale(.6); opacity: .55; }
.milestone-gateway { position: relative; z-index: 3; width: 250px; min-height: 245px; display: grid; justify-items: center; align-content: start; margin: 18px auto 35px; text-align: center; }
.milestone-gateway img { width: 185px; height: 185px; object-fit: contain; transition: filter .3s,opacity .3s; }
.milestone-gateway > div { display: grid; gap: 4px; margin-top: -7px; }
.milestone-gateway small { color: #7e39ba; font-size: 10px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; }
.milestone-gateway strong { font: 700 18px Georgia,serif; color: #33213d; }
.milestone-gateway span { color: #817488; font-size: 11px; }
.milestone-gateway.locked img { filter: grayscale(1); opacity: .48; }
.milestone-gateway.open img { filter: none; opacity: 1; }
.student-app.younger-pathway .path-stop.awaiting { display: none; }
.student-app.younger-pathway .path-activity-cluster { top: 74px; left: calc(50% + 98px); width: 255px; height: 245px; }
.student-app.younger-pathway .path-activity-wrap:nth-of-type(1) { top: -30px; left: 8px; }
.student-app.younger-pathway .path-activity-wrap:nth-of-type(2) { top: 30px; left: 112px; }
.student-app.younger-pathway .path-activity-wrap:nth-of-type(3) { top: 145px; left: 12px; }
.student-app.younger-pathway .path-activity-wrap:nth-of-type(4) { top: 137px; left: 132px; }
.milestone-gateway img,.milestone-gateway > div { position:relative; z-index:1; }
.student-app.younger-pathway .lesson-path { width:min(760px,100%); }
.student-app.younger-pathway .path-curve { display:none; }
.student-app.younger-pathway .lesson-path::before { content:""; position:absolute; z-index:0; left:calc(50% - 5px); top:165px; bottom:20px; width:10px; border-radius:8px; background:repeating-linear-gradient(to bottom,#ded1e9 0 16px,transparent 16px 28px); }
.student-app.younger-pathway .path-stop,.student-app.younger-pathway .mastery-checkpoint,.student-app.younger-pathway .milestone-gateway { z-index:1; }
.student-app.younger-pathway .path-stop.current { grid-template-columns:1fr 280px 1fr; min-height:410px; }
.student-app.younger-pathway .path-activity-cluster { top:68px; left:calc(50% + 155px); width:245px; height:275px; }
.student-app.younger-pathway .path-activity-wrap:nth-of-type(1) { top:-18px; left:4px; }
.student-app.younger-pathway .path-activity-wrap:nth-of-type(2) { top:50px; left:116px; }
.student-app.younger-pathway .path-activity-wrap:nth-of-type(3) { top:182px; left:4px; }
.student-app.younger-pathway .path-activity-wrap:nth-of-type(4) { top:164px; left:126px; }
.student-app.younger-pathway .mastery-checkpoint { min-height:150px; }
.student-app.younger-pathway .milestone-gateway { margin-top:8px; }
@media (max-width:760px) {
    .student-app.younger-pathway .path-stop.current { grid-template-columns:1fr; min-height:650px; }
    .student-app.younger-pathway .lesson-island-node:not(.waiting) { grid-column:1; }
    .student-app.younger-pathway .path-activity-cluster { position:relative; top:auto; left:auto; grid-column:1; width:320px; height:270px; margin:20px auto 0; }
    .student-app.younger-pathway .lesson-path::before { left:calc(50% - 5px); }
}
.younger-map-routes { display:none; }
.student-app.younger-pathway .lesson-path { width:min(760px,100%); height:1120px; margin:28px auto 10px; padding:0; border-radius:36px; background:radial-gradient(circle at 35% 12%,rgba(255,255,255,.92),transparent 31%),linear-gradient(180deg,#fbf6ff,#f5edfd); overflow:hidden; }
.student-app.younger-pathway .lesson-path::before { display:none; }
.student-app.younger-pathway .younger-map-routes { position:absolute; inset:0; z-index:0; display:block; width:100%; height:100%; }
.student-app.younger-pathway .garden-path-edge { fill:none; stroke:#91bd63; stroke-width:58; stroke-linecap:round; }
.student-app.younger-pathway .garden-path-fill { fill:none; stroke:#f2d693; stroke-width:43; stroke-linecap:round; }
.student-app.younger-pathway .activity-route { fill:none; stroke:#c6a5eb; stroke-width:7; stroke-linecap:round; stroke-dasharray:13 13; }
.student-app.younger-pathway #activity-arrow path { fill:#b98be5; }
.student-app.younger-pathway .path-stop.current { position:absolute; z-index:2; inset:0 auto auto 0; display:block; width:100%; height:510px; min-height:0; }
.student-app.younger-pathway .lesson-island-node:not(.waiting) { position:absolute; left:55px; top:34px; width:350px; height:234px; margin:0; }
.student-app.younger-pathway .lesson-island-node:not(.waiting) .island-sign { left:83px; top:26px; width:184px; min-height:96px; }
.student-app.younger-pathway .lesson-island-node:not(.waiting) .island-sign small { font-size:12px; }
.student-app.younger-pathway .lesson-island-node:not(.waiting) .island-sign strong { font-size:22px; }
.student-app.younger-pathway .path-activity-cluster { position:absolute; inset:0; width:100%; height:500px; margin:0; }
.student-app.younger-pathway .path-activity-wrap:nth-of-type(1) { top:28px; left:456px; }
.student-app.younger-pathway .path-activity-wrap:nth-of-type(2) { top:155px; left:598px; }
.student-app.younger-pathway .path-activity-wrap:nth-of-type(3) { top:378px; left:448px; }
.student-app.younger-pathway .path-activity-wrap:nth-of-type(4) { top:342px; left:612px; }
.student-app.younger-pathway .path-activity-node { width:82px; height:82px; border-width:8px; }
.student-app.younger-pathway .path-activity-wrap small { font-size:13px; }
.student-app.younger-pathway .mastery-checkpoint { position:absolute; z-index:3; top:545px; left:0; width:100%; min-height:145px; }
.student-app.younger-pathway .mastery-checkpoint .path-activity-node { width:82px; height:82px; border-width:8px; }
.student-app.younger-pathway .mastery-checkpoint .path-activity-wrap > small { padding:5px 13px; border-radius:10px; background:#fff8ea; color:#49354f; font-size:12px; box-shadow:0 4px 10px rgba(77,46,92,.1); }
.student-app.younger-pathway .mastery-checkpoint p { margin-top:10px; padding:8px 15px; border:2px solid #d9bdf0; border-radius:18px; background:#f7ecff; color:#6c4590; font-size:12px; }
.student-app.younger-pathway .milestone-gateway { position:absolute; z-index:3; top:760px; left:255px; width:250px; min-height:315px; margin:0; }
.student-app.younger-pathway .milestone-gateway img { width:225px; height:225px; }
.student-app.younger-pathway .milestone-gateway > div { margin-top:-10px; padding:5px 12px 12px; border-radius:16px; background:rgba(250,245,255,.9); }
@media (max-width:760px) {
    .student-app.younger-pathway .lesson-path { width:760px; max-width:none; transform-origin:top left; }
}
.exact-milestone-map { display:none; }
.student-app.younger-pathway .lesson-path { width:760px; height:1025px; max-width:100%; margin:28px auto 10px; background:none; border-radius:0; overflow:visible; }
.student-app.younger-pathway .exact-milestone-map { position:absolute; inset:0; z-index:0; display:block; width:100%; height:100%; object-fit:contain; }
.student-app.younger-pathway .younger-map-routes,.student-app.younger-pathway .path-curve { display:none; }
.student-app.younger-pathway .path-stop.current { position:absolute; inset:0; width:100%; height:100%; }
.student-app.younger-pathway .lesson-island-node:not(.waiting) { position:absolute; left:11%; top:8%; width:47%; height:29%; opacity:0; }
.student-app.younger-pathway .lesson-island-node:not(.waiting) .lesson-island-content,.student-app.younger-pathway .lesson-island-node:not(.waiting) .standard-node-label { display:none; }
.student-app.younger-pathway .path-activity-cluster { position:absolute; inset:0; width:100%; height:100%; }
.student-app.younger-pathway .path-activity-wrap { width:13%; height:11%; }
.student-app.younger-pathway .path-activity-wrap:nth-of-type(1) { top:4%; left:60%; }
.student-app.younger-pathway .path-activity-wrap:nth-of-type(2) { top:14%; left:79%; }
.student-app.younger-pathway .path-activity-wrap:nth-of-type(3) { top:34%; left:55%; }
.student-app.younger-pathway .path-activity-wrap:nth-of-type(4) { top:29%; left:80%; }
.student-app.younger-pathway .path-activity-node { width:100%; height:100%; border:0; background:transparent; box-shadow:none; opacity:0; }
.student-app.younger-pathway .path-activity-node:disabled { opacity:1; border:5px solid rgba(223,217,231,.82); background:rgba(218,213,224,.66); box-shadow:0 6px 0 rgba(171,164,179,.72); backdrop-filter:grayscale(1); }
.student-app.younger-pathway .path-activity-wrap > small { visibility:hidden; }
.student-app.younger-pathway .path-badge-arc { margin-top:-8px; }
.student-app.younger-pathway .mastery-checkpoint { position:absolute; top:45%; left:28%; width:20%; min-height:14%; }
.student-app.younger-pathway .mastery-checkpoint .path-activity-node { width:96px; height:96px; border:0; background:transparent; box-shadow:none; opacity:0; }
.student-app.younger-pathway .mastery-checkpoint .path-activity-node:disabled { opacity:1; border:6px solid rgba(226,219,232,.78); background:rgba(211,205,218,.58); backdrop-filter:grayscale(1); }
.student-app.younger-pathway .mastery-checkpoint .path-activity-wrap > small,.student-app.younger-pathway .mastery-checkpoint p { display:none; }
.student-app.younger-pathway .milestone-gateway { position:absolute; top:66%; left:15%; width:52%; height:28%; min-height:0; margin:0; }
.student-app.younger-pathway .milestone-gateway img,.student-app.younger-pathway .milestone-gateway > div { display:none; }
@media (max-width:760px) {
    .student-app.younger-pathway .lesson-path { width:100%; height:auto; aspect-ratio:760/1025; }
}

/* Integrated Milestone 1 map: artwork is scenery; these remain live Papilia controls. */
.student-app.younger-pathway .lesson-island-node:not(.waiting) {
    left: 17%;
    top: 8.5%;
    width: 33%;
    height: 15%;
    border: 0;
    border-radius: 18px;
    background: transparent;
    box-shadow: none;
    opacity: 1;
}
.student-app.younger-pathway .lesson-island-node:not(.waiting) .standard-node-label,
.student-app.younger-pathway .lesson-island-node:not(.waiting) .lesson-island-art { display:none; }
.student-app.younger-pathway .lesson-island-node:not(.waiting) .lesson-island-content { display:block; }
.student-app.younger-pathway .lesson-island-node:not(.waiting) .island-sign {
    position:absolute;
    inset:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    width:auto;
    min-height:0;
    padding:8px 14px;
    color:#342010;
    text-align:center;
}
.student-app.younger-pathway .lesson-island-node:not(.waiting) .island-sign small {
    color:#342010;
    font-size:15px;
    font-weight:900;
    letter-spacing:1px;
}
.student-app.younger-pathway .lesson-island-node:not(.waiting) .island-sign strong {
    max-width:220px;
    color:#342010;
    font:700 29px/1.02 Georgia,serif;
}
.student-app.younger-pathway .lesson-island-node:not(.waiting):hover .island-sign,
.student-app.younger-pathway .lesson-island-node:not(.waiting):focus-visible .island-sign {
    transform:translateY(-2px);
    filter:drop-shadow(0 3px 2px rgba(75,43,15,.18));
}
.student-app.younger-pathway .path-lesson-label { display:none; }
.student-app.younger-pathway .path-activity-wrap { width:104px; height:124px; }
.student-app.younger-pathway .path-activity-wrap:nth-of-type(1) { top:6%; left:58%; }
.student-app.younger-pathway .path-activity-wrap:nth-of-type(2) { top:16%; left:77%; }
.student-app.younger-pathway .path-activity-wrap:nth-of-type(3) { top:34%; left:54%; }
.student-app.younger-pathway .path-activity-wrap:nth-of-type(4) { top:31%; left:78%; }
.student-app.younger-pathway .path-activity-node,
.student-app.younger-pathway .mastery-checkpoint .path-activity-node {
    width:92px;
    height:92px;
    border:8px solid #eee4fb;
    background:linear-gradient(145deg,#9855d7,#6523a6);
    box-shadow:0 9px 0 #4c1881,0 14px 24px rgba(79,31,124,.22);
    color:#fff;
    opacity:1;
}
.student-app.younger-pathway .path-activity-node:hover:not(:disabled),
.student-app.younger-pathway .path-activity-node:focus-visible:not(:disabled) { transform:translateY(-4px); }
.student-app.younger-pathway .path-activity-node:disabled,
.student-app.younger-pathway .mastery-checkpoint .path-activity-node:disabled {
    border-color:#e2dfe5;
    background:#ccc7d0;
    box-shadow:0 7px 0 #a9a3ad;
    color:#f5f3f6;
    opacity:.82;
    filter:grayscale(1);
}
.student-app.younger-pathway .path-activity-wrap > small {
    visibility:visible;
    display:block;
    margin-top:10px;
    color:#34224d;
    font-size:14px;
    font-weight:800;
    text-align:center;
}
.student-app.younger-pathway .path-badge-arc { position:absolute; top:80px; left:50%; margin:0; transform:translateX(-50%); }
.student-app.younger-pathway .mastery-checkpoint {
    top:47%;
    left:24%;
    width:180px;
    min-height:160px;
}
.student-app.younger-pathway .mastery-checkpoint .path-activity-node { border-color:#f4d86a; }
.student-app.younger-pathway .mastery-checkpoint .path-activity-wrap > small {
    display:block;
    margin-top:10px;
    padding:5px 12px;
    border-radius:6px;
    background:#fff7df;
    color:#3e255c;
    box-shadow:0 3px 9px rgba(71,39,88,.12);
}
.student-app.younger-pathway .mastery-checkpoint p {
    display:block;
    margin:8px auto 0;
    padding:6px 10px;
    border:2px solid #d7b8f1;
    border-radius:16px;
    background:#f7ecff;
    color:#714398;
    font-size:11px;
}
.student-app.younger-pathway .milestone-gateway {
    top:78%;
    left:15%;
    width:42%;
    height:20%;
    display:flex;
    align-items:flex-end;
    justify-content:center;
    pointer-events:none;
}
.student-app.younger-pathway .milestone-gateway img { display:none; }
.student-app.younger-pathway .milestone-gateway > div {
    display:grid;
    gap:3px;
    width:100%;
    margin:0 0 -5px;
    padding:8px 12px;
    border-radius:15px;
    background:rgba(250,246,255,.9);
    box-shadow:0 5px 18px rgba(72,39,102,.1);
}
.student-app.younger-pathway .milestone-gateway small { font-size:11px; }
.student-app.younger-pathway .milestone-gateway strong { font-size:20px; }
.student-app.younger-pathway .milestone-gateway span { font-size:11px; }
.student-app.younger-pathway .path-stop.awaiting { display:none; }

/* The whole illustrated island opens the lesson, while the sign stays dynamic. */
.student-app.younger-pathway .lesson-island-node:not(.waiting) {
    left:8%;
    top:7%;
    width:49%;
    height:28%;
    border-radius:46% 46% 42% 42%;
}
.student-app.younger-pathway .lesson-island-node:not(.waiting) .island-sign {
    inset:5% auto auto 18%;
    width:67%;
    height:49%;
    padding:8px 14px;
}
.student-app.younger-pathway .lesson-island-node:not(.waiting):hover,
.student-app.younger-pathway .lesson-island-node:not(.waiting):focus-visible {
    filter:drop-shadow(0 9px 12px rgba(103,55,139,.2));
}

/* A live decorative route connects the activity controls without covering the art. */
.student-app.younger-pathway .younger-map-routes {
    position:absolute;
    inset:0;
    z-index:1;
    display:block;
    width:100%;
    height:100%;
    overflow:visible;
    pointer-events:none;
}
.student-app.younger-pathway .younger-map-routes .activity-route {
    fill:none;
    stroke:#bd91e9;
    stroke-width:6;
    stroke-linecap:round;
    stroke-dasharray:9 12;
    filter:drop-shadow(0 2px 2px rgba(116,67,158,.12));
}
.student-app.younger-pathway .younger-map-routes #activity-arrow path { fill:#b47fdf; }

/* Extend the magical pathway atmosphere across the full student workspace. */
.student-app.younger-pathway .student-workspace {
    background:
        radial-gradient(circle at 48% 10%, rgba(255,255,255,.9), transparent 34%),
        radial-gradient(circle at 88% 42%, rgba(231,210,255,.5), transparent 30%),
        linear-gradient(180deg, #faf5ff 0%, #f2e8ff 55%, #f7f0ff 100%);
}

/* Feather the landscape into the full-screen background instead of showing a frame. */
.student-app.younger-pathway .exact-milestone-map {
    -webkit-mask-image: radial-gradient(ellipse 74% 78% at 50% 50%, #000 68%, rgba(0,0,0,.92) 78%, rgba(0,0,0,.45) 91%, transparent 100%);
    mask-image: radial-gradient(ellipse 74% 78% at 50% 50%, #000 68%, rgba(0,0,0,.92) 78%, rgba(0,0,0,.45) 91%, transparent 100%);
}
.lesson-path-node.waiting { display: grid; place-items: center; border-color: #e7e0eb; background: #c9becf; box-shadow: 0 8px 0 #aaa0b0; color: #746b7c; cursor: default; }
.path-lesson-label { padding: 17px; }
.path-lesson-label small { color: #853bc3; font-weight: 800; text-transform: uppercase; }
.path-lesson-label strong { display: block; margin: 7px 0; font: 400 22px Georgia, serif; }
.path-lesson-label span { color: #8b8092; font-size: 13px; }

.path-activity-cluster {
    position: absolute;
    z-index: 2;
    top: 56px;
    left: calc(50% + 40px);
    width: 275px;
    height: 205px;
}

.path-activity-wrap {
    position: relative;
    display: grid;
    justify-items: center;
    gap: 6px;
}

.path-activity-wrap:nth-of-type(1) { position: absolute; top: -25px; left: 25px; }
.path-activity-wrap:nth-of-type(2) { position: absolute; top: 35px; left: 105px; }
.path-activity-wrap:nth-of-type(3) { position: absolute; top: 105px; left: 35px; }
.path-activity-wrap:nth-of-type(4) { position: absolute; top: 125px; left: 135px; }
.path-activity-node.mastery-node { border-color: #f5df91; background: linear-gradient(145deg,#9d58d4,#63239c); }

.mastery-checkpoint {
    position: relative;
    z-index: 3;
    min-height: 132px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 8px;
}
.mastery-checkpoint .path-activity-wrap { position: relative; }
.mastery-checkpoint .path-activity-node { width: 58px; height: 58px; }
.mastery-checkpoint .path-activity-wrap > small { font-size: 11px; }
.mastery-checkpoint p { margin: 5px 0 0; color: #8b8092; font-size: 11px; font-weight: 700; }
.mastery-checkpoint.cleared p { color: #4f8759; }
.mastery-checkpoint.cleared .mastery-node { border-color: #b9dfb8; box-shadow: 0 6px 0 #477a50,0 9px 16px rgba(48,100,58,.18); }

.path-activity-node {
    width: 64px;
    height: 64px;
    border: 6px solid #eadff2;
    border-radius: 50%;
    background: linear-gradient(145deg,#b876e5,#7e35b8);
    color: white;
    box-shadow: 0 6px 0 #642590,0 9px 16px rgba(70,26,108,.16);
    cursor: pointer;
}

.path-activity-node span { font-size: 23px; font-weight: 800; }
.sound-letter-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(58px,1fr)); gap: 10px; max-width: 650px; margin: 24px auto; }
.sound-letter-grid button { min-height: 58px; border: 2px solid #ded1e8; border-radius: 14px; background: #fff; color: #351a47; font: 700 22px Georgia,serif; cursor: pointer; }
.sound-letter-grid button:hover:not(:disabled),.sound-letter-grid button:focus-visible { border-color: #7b32b8; background: #f5ecfb; }
.sound-letter-grid button.correct { border-color: #5d9866; background: #e6f4e8; }
.sound-letter-grid button.incorrect { border-color: #bd5364; background: #f9e8eb; }
.path-activity-wrap small { color: #74687d; font-size: 10px; font-weight: 700; }
.path-badge-arc {
    position: relative;
    width: 66px;
    height: 28px;
    margin-top: -2px;
}

.path-earned-badge {
    position: absolute;
    z-index: 3;
    width: 23px;
    height: 23px;
    display: grid;
    place-items: center;
    border: 2px solid white;
    border-radius: 50%;
    box-shadow: 0 4px 8px rgba(40,20,50,.25);
    font-size: 11px;
}

.path-earned-badge:nth-child(1) { left: 0; top: -5px; transform: rotate(-12deg); }
.path-earned-badge:nth-child(2) { left: 22px; top: 2px; }
.path-earned-badge:nth-child(3) { left: 44px; top: -5px; transform: rotate(12deg); }

.path-earned-badge.bronze { background: #c9824e; color: white; }
.path-earned-badge.silver { background: #aeb5bd; color: white; }
.path-earned-badge.gold { background: #e2b72d; color: #fffdf0; }

.student-empty-card {
    margin: 38px auto;
    padding: 55px 30px;
    border: 1px solid #e7ddec;
    border-radius: 22px;
    background: white;
    text-align: center;
}

.student-empty-card > span { font-size: 44px; color: #8c47c7; }
.student-empty-card h4 { margin: 15px 0 7px; font: 400 25px Georgia, serif; }
.student-empty-card p { color: #887d8e; }
.lesson-override-controls { margin-top: 16px; display: flex; align-items: end; gap: 12px; }
.lesson-override-controls label { flex: 1; display: grid; gap: 7px; color: #756a7d; font-size: 12px; font-weight: 700; }
.lesson-override-controls select { min-height: 44px; padding: 9px 12px; border: 1px solid #ddd2e4; border-radius: 11px; background: white; color: #35263f; }
.trophy-case {
    margin-top: 34px;
    padding: 28px;
    border: 12px solid #57301d;
    border-radius: 24px;
    background: linear-gradient(90deg,rgba(255,255,255,.04),transparent 25%,rgba(0,0,0,.08)), #7a482a;
    box-shadow: inset 0 0 0 3px #a26a3f, inset 0 0 35px rgba(30,12,4,.45), 0 15px 30px rgba(57,30,18,.2);
}
.lesson-award-plaque {
    padding: 24px 28px 28px;
    border: 3px solid #c99a59;
    border-radius: 16px;
    background: linear-gradient(145deg,#754225,#4b2818);
    box-shadow: inset 0 0 0 2px rgba(255,222,164,.14), 0 8px 16px rgba(28,12,5,.3);
    color: #fff8e9;
}
.plaque-title { text-align: center; }
.plaque-title small { color: #e6c898; font-size: 11px; font-weight: 800; letter-spacing: 2px; text-transform: uppercase; }
.plaque-title h4 { margin: 5px 0 22px; color: white; font: 400 27px Georgia,serif; }
.lesson-medal-row { display: grid; grid-template-columns: repeat(var(--activity-count,4),1fr); gap: clamp(10px,2vw,20px); }
.medal-slot { display: grid; justify-items: center; text-align: center; }
.medal-recess { width: 104px; height: 104px; display: grid; place-items: center; filter: drop-shadow(0 5px 5px rgba(24,9,3,.45)); }
.lesson-medal { width: 98px; height: 98px; display: grid; place-items: center; opacity: .42; filter: grayscale(1) brightness(.72); transform: scale(.92); transition: transform .25s ease,filter .25s ease,opacity .25s ease; }
.lesson-medal img { width: 100%; height: 100%; object-fit: contain; display: block; }
.butterfly-slot .medal-recess { width: 120px; }
.butterfly-medal { width: 116px; }
.medal-slot.earned .lesson-medal { opacity: 1; transform: scale(1); filter: drop-shadow(0 5px 4px rgba(18,7,2,.55)); }
.medal-slot strong { margin-top: 10px; color: #fff7e8; font-size: 15px; }
.medal-slot small { margin-top: 3px; color: #cfb28c; font-size: 11px; }

@media (max-width: 760px) {
    .trophy-case { padding: 15px; border-width: 8px; }
    .lesson-award-plaque { padding: 20px 12px; }
    .lesson-medal-row { gap: 8px; }
    .medal-recess { width: 68px; height: 68px; }
    .lesson-medal { width: 64px; height: 64px; }
    .butterfly-slot .medal-recess { width: 78px; }
    .butterfly-medal { width: 74px; }
    .student-app { grid-template-columns: 1fr; }
    .student-sidebar { min-height: auto; padding: 15px; }
    .student-brand { display: none; }
    .student-navigation { grid-template-columns: repeat(4,1fr); }
    .student-nav-button { justify-content: center; padding: 11px 6px; font-size: 11px; }
    .student-nav-button > span { display: none; }
    .student-exit-button { width: 62px; height: 58px; }
    .student-workspace { padding: 22px 18px 45px; }
    .student-topbar { align-items: flex-start; flex-direction: column; }
    .student-topbar-actions { width: 100%; justify-content: space-between; }
    .path-stop { grid-template-columns: 1fr 105px 1fr; }
    .lesson-path-node { width: 92px; height: 92px; }
    .path-lesson-label { padding: 8px; }
    .path-lesson-label strong { font-size: 17px; }
    .path-stop.current { min-height: 300px; grid-template-columns: 1fr 105px 1fr; }
    .path-stop.current .path-lesson-label { grid-column: 1 / -1; grid-row: 2; text-align: center; }
    .path-activity-cluster { position: relative; top: auto; left: auto; grid-column: 1 / -1; grid-row: 3; width: 300px; height: 190px; margin: 15px auto 0; }
    .path-activity-wrap:nth-child(1) { top: 0; left: 0; }
    .path-activity-wrap:nth-child(2) { top: 35px; left: 105px; }
    .path-activity-wrap:nth-child(3) { top: 0; left: 210px; }
    .path-activity-wrap:nth-child(4) { top: 95px; left: 110px; }
    .badge-wall { grid-template-columns: 1fr; }
}

.hard-coded-label {
    align-self: center;
    padding: 8px 13px;
    border-radius: 999px;
    background: #f1e9fa;
    color: #6426a6;
    font-size: 13px;
    font-weight: 700;
}

.remediation-view .flashcard-visual {
    display: none;
}

.remediation-view .flashcard-back {
    justify-content: center;
    gap: 24px;
}

.letter-audio-editor {
    max-width: 760px;
    margin: 24px auto 0;
    padding: 22px;
    border: 1px solid #ded4e9;
    border-radius: 18px;
    background: #faf8fc;
}

.audio-editor-heading,
.audio-recorder-actions,
.audio-save-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.audio-editor-heading p,
.audio-editor-message {
    margin: 5px 0 0;
    color: #756d7d;
}

.audio-recorder-actions {
    justify-content: flex-start;
    margin: 20px 0;
}

.audio-file-field,
.audio-save-row label {
    display: grid;
    gap: 8px;
    color: #3c3047;
    font-weight: 700;
}

.audio-file-field input,
.audio-save-row input {
    padding: 11px 13px;
    border: 1px solid #d9cde4;
    border-radius: 11px;
    background: white;
}

#recording-preview {
    width: 100%;
    margin-top: 16px;
}

.audio-save-row {
    align-items: end;
    margin-top: 18px;
}

.audio-save-row label {
    flex: 1;
}

.audio-editor-message {
    min-height: 21px;
    color: #6426a6;
}

.alphabet-activity {
    max-width: 640px;
    margin: 0 auto;
    padding: 24px;
    border: 1px solid #e2d9eb;
    border-radius: 20px;
    background: #fcfbfd;
    text-align: center;
}

.activity-round-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    text-align: left;
}

.activity-round-heading h4 {
    margin: 3px 0 0;
    font-family: Georgia, serif;
    font-size: 25px;
    font-weight: 400;
    color: #2c2038;
}

.activity-instruction,
.activity-feedback {
    color: #746b7d;
}

.activity-prompt {
    min-height: 190px;
    margin: 18px 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.activity-prompt img {
    width: min(280px, 78%);
    max-height: 210px;
    object-fit: contain;
}

.activity-prompt span {
    font-size: 112px;
}

.replay-sound-button {
    margin-bottom: 18px;
}

.letter-choice-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.letter-choice {
    min-height: 78px;
    border: 2px solid #d9cce7;
    border-radius: 16px;
    background: white;
    color: #392646;
    font: 700 28px Georgia, serif;
    cursor: pointer;
}

.letter-choice:hover:not(:disabled) {
    border-color: #7130b7;
    background: #f7f0fd;
}

.letter-choice.correct {
    border-color: #4f985f;
    background: #e9f5ec;
    color: #276a36;
}

.letter-choice.incorrect {
    border-color: #bf6a6a;
    background: #fff0f0;
    color: #963d3d;
}

.activity-feedback {
    min-height: 24px;
    margin: 16px 0 0;
    font-weight: 700;
}

.activity-complete {
    padding: 35px 15px 10px;
}

.activity-complete strong {
    font: 400 32px Georgia, serif;
    color: #55208e;
}

.practice-stepper {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin-bottom: 24px;
}

.practice-stepper span {
    padding: 10px;
    border-radius: 10px;
    background: #eee9f2;
    color: #756d7d;
    font-size: 13px;
    font-weight: 700;
}

.practice-stepper span.active {
    background: #6e2ab5;
    color: white;
}

.activities-admin-panel,
.activities-page > .content-empty {
    margin-top: 26px;
}

.activity-set-card {
    overflow: hidden;
    border: 1px solid #e2d9eb;
    border-radius: 20px;
    background: white;
    box-shadow: 0 5px 20px rgba(45, 18, 75, 0.05);
}

.activity-set-heading {
    padding: 26px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
}

.activity-set-heading h4 {
    margin: 11px 0 7px;
    font: 400 29px Georgia, serif;
    color: #2c2038;
}

.activity-set-heading p,
.activity-component-grid p,
.activity-set-footer p {
    color: #746b7d;
}

.activity-component-grid {
    padding: 0 26px 26px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.activity-component-grid article {
    padding: 18px;
    border: 1px solid #e6ddea;
    border-radius: 15px;
    background: #faf8fc;
}

.activity-component-grid span,
.activity-set-footer > span {
    display: block;
    margin-bottom: 7px;
    color: #7130b7;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.8px;
    text-transform: uppercase;
}

.activity-component-grid strong {
    color: #392646;
}

.activity-component-grid p {
    margin: 8px 0 0;
    font-size: 14px;
    line-height: 1.5;
}

.activity-component-grid .practice-preview-button {
    width: 100%;
    margin-top: 16px;
}

.badge-scale {
    margin-top: 14px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.badge-scale b {
    padding: 5px 8px;
    border: 1px solid;
    border-radius: 999px;
    font-size: 10px;
}

.badge-scale .bronze,
.earned-badge.bronze { border-color: #b67648; background: #f5e0d0; color: #85461f; }
.badge-scale .silver,
.earned-badge.silver { border-color: #9ba1aa; background: #eceff2; color: #565d66; }
.badge-scale .gold,
.earned-badge.gold { border-color: #d7a91d; background: #fff2bd; color: #856300; }

.earned-badge {
    width: fit-content;
    margin: 18px auto 10px;
    padding: 10px 18px;
    border: 2px solid;
    border-radius: 999px;
    font-size: 18px;
    font-weight: 800;
}

.earned-badge.no-badge { border-color: #cfc7d5; background: #f3f0f5; color: #746b7d; }

.mastery-admin-card {
    margin: 0 26px 26px;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    border: 1px solid #d9cce7;
    border-radius: 16px;
    background: #f8f3fc;
}

.mastery-admin-card span {
    display: block;
    margin-bottom: 7px;
    color: #7130b7;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.8px;
    text-transform: uppercase;
}

.mastery-admin-card p { margin: 6px 0 0; color: #746b7d; font-size: 14px; }
.mastery-preview-actions { display: flex; gap: 10px; flex-shrink: 0; }

.mastery-preview {
    text-align: center;
}

.mastery-prompt {
    min-height: 210px;
    margin: 18px 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.mastery-prompt img { width: 230px; max-height: 210px; object-fit: contain; }
.mastery-prompt span { font-size: 120px; }

.mastery-speaker {
    width: 145px;
    height: 145px;
    margin: 24px auto;
    border: 2px solid #d9cce7;
    border-radius: 50%;
    background: #f3eafa;
    font-size: 62px;
    cursor: pointer;
}

#next-mastery-sample { margin-top: 10px; }

.activity-set-footer {
    padding: 20px 26px;
    border-top: 1px solid #e6ddea;
    background: #f5effa;
}

.activity-set-footer p { margin: 5px 0 0; }
.alphabet-practice-dialog { width: min(920px, calc(100% - 32px)); max-height: calc(100vh - 34px); margin: auto; }
.alphabet-practice-preview { min-height: 640px; padding: 32px; display: flex; flex-direction: column; justify-content: center; }
.alphabet-practice-preview > .dialog-heading { width: 100%; max-width: 760px; margin: 0 auto 22px; }
.alphabet-practice-preview #alphabet-practice-host { width: 100%; }
.alphabet-practice-preview .alphabet-activity { width: 100%; max-width: 760px; margin-inline: auto; }

.streak-panel {
    margin: 18px 0;
    padding: 14px;
    border-radius: 14px;
    background: #f5f1f8;
}

.streak-panel > span {
    display: block;
    margin-bottom: 9px;
    color: #5f5169;
    font-size: 13px;
    font-weight: 700;
}

.streak-dots {
    display: flex;
    justify-content: center;
    gap: 9px;
}

.streak-dots span {
    width: 17px;
    height: 17px;
    border: 2px solid #cfc4d8;
    border-radius: 50%;
    background: white;
}

.streak-dots span.correct { border-color: #4f985f; background: #5eaa6c; }
.streak-dots span.incorrect { border-color: #b54848; background: #d85f5f; }

.matching-target {
    min-height: 150px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #392646;
    font: 700 92px Georgia, serif;
}

.matching-target img,
.matching-option img {
    width: 145px;
    max-height: 140px;
    object-fit: contain;
}

.matching-target span { font-size: 105px; }
.matching-options { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }

.matching-option {
    min-height: 100px;
    border: 2px solid #d9cce7;
    border-radius: 16px;
    background: white;
    color: #392646;
    font: 700 30px Georgia, serif;
    cursor: pointer;
}

.matching-option span { font-size: 54px; }
.matching-option img { width: 90px; max-height: 90px; }
.matching-option.correct { border-color: #4f985f; background: #e9f5ec; }
.matching-option.incorrect { border-color: #bf6a6a; background: #fff0f0; }

.memory-board {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-top: 20px;
}

.memory-card {
    position: relative;
    min-height: 96px;
    border: 2px solid #d9cce7;
    border-radius: 12px;
    background: #6e2ab5;
    color: transparent;
    cursor: pointer;
}

.memory-card::before { content: "?"; color: white; font: 700 26px Georgia, serif; }
.memory-card-face { display: none; color: #392646; font: 700 19px Georgia, serif; }
.memory-card-face > span { font-size: 35px; }
.memory-card-face img { width: 55px; max-height: 55px; object-fit: contain; }
.memory-card.revealed,
.memory-card.matched { background: white; color: #392646; }
.memory-card.revealed::before,
.memory-card.matched::before { display: none; }
.memory-card.revealed .memory-card-face,
.memory-card.matched .memory-card-face { display: inline-flex; align-items: center; justify-content: center; }
.memory-card.matched { border-color: #4f985f; background: #e9f5ec; }

.sorting-picture-pool {
    min-height: 125px;
    margin: 18px 0;
    padding: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    border: 2px dashed #d9cce7;
    border-radius: 16px;
}

.sorting-picture {
    min-width: 92px;
    min-height: 82px;
    border: 2px solid #d9cce7;
    border-radius: 14px;
    background: white;
    cursor: grab;
}

.sorting-picture span { font-size: 50px; }
.sorting-picture img { width: 75px; max-height: 70px; object-fit: contain; }
.sorting-picture.selected { border-color: #6e2ab5; box-shadow: 0 0 0 3px #e8d9f6; }
.sorting-categories { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }

.sorting-category {
    min-height: 125px;
    padding: 12px;
    display: grid;
    place-items: center;
    gap: 8px;
    border: 2px solid #d9cce7;
    border-radius: 16px;
    background: #faf8fc;
    color: #392646;
}

.sorting-category strong { font: 700 28px Georgia, serif; }
.sorting-category span { color: #817788; font-size: 12px; }
.sorting-category span > span { font-size: 45px; }
.sorting-category span img { width: 65px; max-height: 60px; object-fit: contain; }
.sorting-category.correct { border-color: #4f985f; background: #e9f5ec; }
.sorting-category.incorrect { border-color: #bf6a6a; background: #fff0f0; }

@media (max-width: 680px) {
    .audio-editor-heading,
    .audio-save-row {
        align-items: stretch;
        flex-direction: column;
    }
    .activity-round-heading { align-items: flex-start; flex-direction: column; }
    .letter-choice-grid { grid-template-columns: repeat(2, 1fr); }
    .matching-options { grid-template-columns: repeat(2, 1fr); }
    .memory-board { grid-template-columns: repeat(4, 1fr); }
    .sorting-categories { grid-template-columns: repeat(2, 1fr); }
    .practice-stepper { grid-template-columns: 1fr; }
    .activity-set-heading { align-items: stretch; flex-direction: column; }
    .activity-component-grid { grid-template-columns: 1fr; }
    .mastery-admin-card,
    .mastery-preview-actions { align-items: stretch; flex-direction: column; }
}
.remembered-identities{display:flex;flex-wrap:wrap;gap:6px;margin-top:-7px}.remembered-identity{display:flex;align-items:center;gap:7px;border:1px solid #ded3e8;border-radius:999px;background:#f8f4fb;color:#5d496a;padding:5px 9px;font-size:12px;cursor:pointer}.remembered-identity b{font-size:16px;line-height:1;color:#946cae}.account-settings-section{padding:26px 0;border-bottom:1px solid #ebe3f0}.account-settings-section:first-child{padding-top:0}.student-account-information,.student-account-credentials{padding:22px 0}.student-account-information{border-bottom:1px solid #e8dfed}.student-account-information h4,.student-account-credentials h4{margin-bottom:14px;font-family:Georgia,serif;font-size:25px}.student-account-information dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.student-account-information dl div{padding:12px;border-radius:12px;background:#f8f5fa}.student-account-information dt{color:#7b6d83;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.student-account-information dd{margin:5px 0 0;color:#2f2137;font-weight:700}.student-streak{border:1px solid #e4dbe9;cursor:pointer}.streak-calendar-dialog{width:min(620px,calc(100% - 28px))}.streak-calendar-card{padding:28px}.streak-calendar-navigation{display:flex;justify-content:space-between;margin:8px 0}.streak-calendar-navigation button{border:1px solid #ddd1e6;border-radius:10px;background:#fff;padding:8px 16px;cursor:pointer}.streak-calendar-weekdays,.streak-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.streak-calendar-weekdays span{text-align:center;color:#7a6c82;font-size:11px;font-weight:800;text-transform:uppercase}.calendar-day,.calendar-blank{aspect-ratio:1;display:grid;place-items:center;border-radius:50%}.calendar-day{color:#43344c;background:#f6f2f8}.calendar-day.completed{background:linear-gradient(145deg,#f3c64d,#e88938);color:#3e2512;font-weight:900;box-shadow:0 5px 12px rgba(192,115,30,.24)}.calendar-day.today{outline:2px solid #7435b5;outline-offset:2px}.calendar-day.future{opacity:.3}.calendar-blank{background:transparent}@media(max-width:620px){.student-account-information dl{grid-template-columns:1fr}.student-skill-check-group article{grid-template-columns:1fr}.student-skill-check-group article>button{grid-column:1;grid-row:auto}}
.remembered-identity{gap:0;padding:0;cursor:default}.remembered-identity button{border:0;background:transparent;color:#5d496a;padding:5px 8px;font-size:12px;cursor:pointer}.remembered-identity button:last-child{color:#946cae;font-size:16px;line-height:1}
/* ---------- RESULTS + ARCADE SEPARATION ---------- */
.results-filter-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;background:#fff;border:1px solid #e6deed;border-radius:20px;padding:22px;margin-bottom:20px}.results-filter-panel label{display:flex;flex-direction:column;gap:7px;font-weight:700;color:#34243f}.results-filter-panel select,.results-filter-panel input{min-height:44px;border:1px solid #dcd1e7;border-radius:11px;padding:0 12px;background:#fff}.results-summary{padding:15px 18px;background:#f1e9fa;border-radius:13px;color:#6026a6;font-weight:700;margin-bottom:20px}.results-record-panel,.arcade-leaderboard{background:#fff;border:1px solid #e6deed;border-radius:20px;padding:22px;margin:18px 0}.academic-result-list{display:grid;gap:10px}.academic-result-row{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(260px,2fr) minmax(160px,.7fr);align-items:center;gap:18px;background:#faf8fc;border-radius:13px;padding:14px 16px}.academic-result-row>button{border:0;background:transparent;text-align:left;color:#6529ae;font-weight:800;cursor:pointer}.academic-result-row div{display:flex;flex-direction:column;gap:4px}.academic-result-row span,.academic-result-row small{color:#766d7e}.academic-result-row>div:last-child{text-align:right}.academic-result-row.diagnostic{grid-template-columns:1fr auto}.analytics-empty{padding:30px;text-align:center;color:#817789}.recent-activity-rows{display:grid}.recent-activity-row{display:grid;grid-template-columns:1.2fr 1.6fr 1.2fr 1fr .8fr;gap:20px;padding:16px 25px;border:0;border-bottom:1px solid #eee9f2;background:#fff;text-align:left;cursor:pointer}.recent-activity-row:hover{background:#faf8fc}.arcade-game-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px;margin:20px 0}.arcade-game-grid.compact{padding:20px}.arcade-game-card{min-height:170px;border:1px solid #e2d6ec;border-radius:22px;background:linear-gradient(145deg,#fff,#f3eafd);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#3a2048;cursor:pointer;box-shadow:0 10px 28px rgba(80,34,119,.08)}.arcade-game-card:hover{transform:translateY(-2px);border-color:#8750c6}.arcade-game-card>span{font-size:42px}.arcade-game-card strong{font-size:18px}.arcade-game-card small{color:#766d7e}.arcade-scope-controls{display:flex;gap:10px}.arcade-scope-controls select{min-height:42px;border:1px solid #dcd1e7;border-radius:10px;padding:0 12px}.arcade-ranking-list{display:grid;gap:8px}.arcade-ranking-row{display:grid;grid-template-columns:65px 1fr auto;align-items:center;background:#faf8fc;border-radius:12px;padding:14px 18px}.arcade-ranking-row.current-student{outline:3px solid #7a3dc0;background:#f4eafd}.content-counts{grid-template-columns:repeat(2,minmax(0,1fr))}
.arcade-ranking-row.rank-1{background:linear-gradient(90deg,#fff2b8,#fffaf0);border:2px solid #d9a91b}.arcade-ranking-row.rank-1>b{color:#9a6a00}.arcade-ranking-row.rank-2{background:linear-gradient(90deg,#e8edf3,#fafcff);border:2px solid #aab4c0}.arcade-ranking-row.rank-2>b{color:#687484}.arcade-ranking-row.rank-3{background:linear-gradient(90deg,#f2d0b2,#fff8f0);border:2px solid #b8753d}.arcade-ranking-row.rank-3>b{color:#8b4c20}.arcade-ranking-row.personal-ranking{margin-top:18px;border:2px dashed #7540ad;position:relative}.arcade-ranking-row.personal-ranking:before{content:"Your rank";position:absolute;top:-11px;left:18px;background:#fff;padding:0 8px;color:#6b31a8;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
@media(max-width:760px){.academic-result-row{grid-template-columns:1fr}.academic-result-row>div:last-child{text-align:left}.recent-activity-row{grid-template-columns:1fr}.activity-table-header{display:none}}
/* Staff and school administration */
.staff-management-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:24px 0}
.compact-panel{display:grid;gap:16px;align-content:start}
.compact-panel label,.educator-context-bar label{display:grid;gap:8px;font-weight:700;color:#30243a}
.compact-panel input,.compact-panel select,.educator-context-bar select{width:100%;padding:13px 15px;border:1px solid #ded7e7;border-radius:12px;background:#fff;font:inherit}
.compact-panel fieldset{display:flex;gap:24px;border:1px solid #e4ddec;border-radius:12px;padding:14px}.compact-panel fieldset label{display:flex;align-items:center;gap:8px}.compact-panel fieldset input{width:auto}
.setup-link-output{padding:13px;border-radius:12px;background:#f2ebfb;overflow-wrap:anywhere}.setup-link-output a{color:#6c2fc1;font-weight:700}
.educator-directory{display:grid;gap:10px}.educator-directory-row,.educator-list-row{display:flex;justify-content:space-between;gap:20px;padding:16px;border:1px solid #e7e0ec;border-radius:14px;background:#faf8fc}.educator-directory-row>div{display:grid;gap:4px}.educator-directory-row span,.educator-list-row span{color:#756b7e}
.educator-context-bar{display:flex;align-items:end;gap:18px;padding:18px;margin:22px 0;border:1px solid #e4ddec;border-radius:16px;background:#fff}.educator-context-bar label{min-width:220px}
.educator-stats{margin:0 0 24px}.educator-list-row{margin-bottom:10px}
@media(max-width:850px){.staff-management-grid{grid-template-columns:1fr}.educator-context-bar{align-items:stretch;flex-direction:column}.educator-context-bar label{min-width:0}}
.curriculum-detail-metadata {
    margin-top: 24px;
    padding: 16px 18px;
    border: 1px solid #e5ddec;
    border-radius: 14px;
    background: #faf8fc;
}

.curriculum-detail-metadata > summary {
    color: #5d2aa5;
    font-weight: 700;
    cursor: pointer;
}

/* Mastery Uploader */
.mastery-review-workflow{min-width:0}.mastery-section-nav{display:flex;gap:7px;overflow-x:auto;margin:16px 0;padding-bottom:5px}.mastery-section-nav button{white-space:nowrap;padding:9px 13px;border:1px solid #d9cee7;border-radius:999px;background:#fff;color:#5f2aad;font-weight:800}.mastery-section-nav button.active{background:#6732b7;color:#fff}.mastery-panel{padding:22px;border:1px solid #e1d8e7;border-radius:18px;background:#fff}.mastery-panel>h2{margin-top:0;font:400 28px Georgia,serif}.mastery-terminology{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.mastery-terminology abbr{padding:7px 10px;border-radius:999px;background:#eee5f7;color:#5f2aad;font-weight:800;text-decoration:none;cursor:help}.mastery-skill-row{display:grid;grid-template-columns:minmax(180px,1fr) 190px minmax(180px,1fr) auto;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid #eee8f1}.mastery-skill-row div{display:grid}.mastery-skill-row small{color:#756b7c}.mastery-skill-row select,.mastery-skill-row input{width:100%;padding:10px;border:1px solid #d9cee2;border-radius:9px}.mastery-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}.mastery-question-card,.mastery-check-card,.mastery-preview-question{margin:12px 0;padding:16px;border:1px solid #dfd6e5;border-left:6px solid #6f35b5;border-radius:13px;background:#fff}.mastery-question-card.fix_required{border-left-color:#b33143}.mastery-question-card.review_needed{border-left-color:#d79a21}.mastery-question-card.approved,.mastery-question-card.clear{border-left-color:#579267}.mastery-question-card header{display:flex;justify-content:space-between;gap:12px}.mastery-question-card details{margin:12px 0;padding:10px;border-radius:9px;background:#f8f5fa}.mastery-question-card pre,.mastery-preview-question pre{white-space:pre-wrap}.mastery-clear{padding:12px;border-radius:10px;background:#edf8f0;color:#32633e}.mastery-diagnostic{display:block;width:100%;margin:8px 0;padding:13px;border:0;border-left:6px solid;text-align:left;border-radius:10px;font-weight:800}.mastery-diagnostic.clear{border-color:#579267;background:#edf8f0}.mastery-diagnostic.review_needed{border-color:#d79a21;background:#fff9e8}.mastery-diagnostic.fix_required{border-color:#b33143;background:#fff3f4}.mastery-preview-question ul{display:grid;gap:8px;padding:0;list-style:none}.mastery-preview-question li{padding:10px;border:1px solid #ddd3e5;border-radius:9px}.mastery-panel label{display:grid;gap:6px;max-width:300px;font-weight:800}.mastery-panel input{padding:10px;border:1px solid #d9cee2;border-radius:9px}@media(max-width:900px){.mastery-skill-row{grid-template-columns:1fr}.mastery-summary{align-items:flex-start;flex-direction:column}}
.mastery-preview-options{display:grid;gap:8px;margin:14px 0}.mastery-preview-options label{display:grid!important;grid-template-columns:auto 1fr;align-items:center;max-width:none!important;padding:10px;border:1px solid #ddd3e5;border-radius:9px;cursor:pointer}

/* Vocabulary Registry reconciliation */
.vocabulary-reconciliation-intro{margin:22px 0;padding:18px 20px;border:1px solid #ded5e8;border-radius:16px;background:#faf8fc;color:#655b6d}.vocabulary-reconciliation-intro strong{display:block;color:#34293c;margin-bottom:6px}.vocabulary-history-section{margin-top:24px}.vocabulary-history-row{width:100%;display:grid;grid-template-columns:minmax(260px,1.5fr) 1fr 1fr;align-items:center;gap:18px;padding:16px 18px;border:0;border-bottom:1px solid #eee8f2;background:#fff;text-align:left;color:#514657;cursor:pointer}.vocabulary-history-row:hover{background:#faf8fc}.vocabulary-history-row span{display:grid;gap:3px}.vocabulary-history-row small{color:#85788d}.vocabulary-error{color:#a53546;padding:18px}.vocabulary-reconciliation-dialog{width:min(1240px,calc(100vw - 32px));max-width:none;height:min(900px,calc(100vh - 32px));padding:0;border:0;border-radius:24px}.vocabulary-reconciliation-dialog::backdrop{background:rgba(28,17,39,.68)}.vocabulary-reconciliation-shell{height:100%;overflow:auto;background:#f8f6fb}.vocabulary-reconciliation-shell>header{position:sticky;top:0;z-index:4;display:flex;justify-content:space-between;gap:24px;padding:24px 30px;background:#fff;border-bottom:1px solid #e8e1ed}.vocabulary-reconciliation-shell h2{font:400 32px Georgia,serif;color:#281d31}.vocabulary-upload-card,#vocabulary-reconciliation-review{margin:26px;padding:26px;border:1px solid #e1d9e8;border-radius:20px;background:#fff}.vocabulary-upload-card .form-grid{margin-bottom:16px}.vocabulary-summary-header{display:flex;justify-content:space-between;align-items:center;gap:22px;margin-bottom:20px}.vocabulary-summary-header h3{font:400 29px Georgia,serif;color:#2e2237}.vocabulary-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.vocabulary-summary-card{display:grid;gap:6px;min-height:94px;padding:16px;border:1px solid #e3dce9;border-radius:15px;background:#faf9fc}.vocabulary-summary-card strong{font:600 25px Georgia,serif;color:#382a42}.vocabulary-summary-card span{font-size:13px;color:#74687b}.vocabulary-summary-card.clear{background:#edf7ef;border-color:#cfe5d3}.vocabulary-summary-card.review{background:#fff8df;border-color:#eadb9f}.vocabulary-summary-card.fix{background:#faebee;border-color:#e7bfc6}.vocabulary-absence-note{margin:18px 0;padding:13px 16px;border-radius:12px;background:#f0ebf6;color:#66586f}.vocabulary-review-tabs{display:flex;gap:8px;margin:18px 0;border-bottom:1px solid #e7dfeb}.vocabulary-review-tabs button{padding:12px 15px;border:0;border-bottom:3px solid transparent;background:transparent;color:#75677d;font-weight:700;cursor:pointer}.vocabulary-review-tabs button.active{color:var(--theme-primary);border-bottom-color:var(--theme-primary)}#vocabulary-reconciliation-items{display:grid;gap:14px}.vocabulary-reconciliation-item{padding:18px;border:1px solid #e0d8e6;border-left:5px solid #79a77e;border-radius:15px;background:#fff}.vocabulary-reconciliation-item.review_needed{border-left-color:#d0a72f}.vocabulary-reconciliation-item.fix_required{border-left-color:#b84959}.vocabulary-reconciliation-item header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.vocabulary-reconciliation-item header div{display:grid;gap:4px}.vocabulary-reconciliation-item header strong{font-size:20px;color:#2d2136}.vocabulary-reconciliation-item header small,.vocabulary-reconciliation-item header span{color:#776a80;font-size:12px}.vocabulary-item-meaning{margin:12px 0 5px;font-size:16px;color:#403448}.vocabulary-item-explanation{color:#74677c}.vocabulary-reconciliation-item details{margin-top:12px}.vocabulary-reconciliation-item details summary{cursor:pointer;color:var(--theme-primary);font-weight:700}.vocabulary-reconciliation-item dl{display:grid;grid-template-columns:180px 1fr;gap:7px 14px;margin-top:12px;padding:14px;background:#faf8fc;border-radius:12px}.vocabulary-reconciliation-item dt{font-weight:700;color:#55485d}.vocabulary-reconciliation-item dd{margin:0;color:#74677c}.vocabulary-item-actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-top:15px}.vocabulary-item-actions>strong{color:#a53546}.vocabulary-clear-message{padding:24px;text-align:center;color:#75687d}@media(max-width:850px){.vocabulary-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vocabulary-history-row{grid-template-columns:1fr}.vocabulary-reconciliation-item dl{grid-template-columns:1fr}.vocabulary-summary-header{align-items:flex-start;flex-direction:column}}@media(max-width:520px){.vocabulary-summary-grid{grid-template-columns:1fr}.vocabulary-upload-card,#vocabulary-reconciliation-review{margin:14px;padding:17px}}

/* Canonical Story Registry and one-at-a-time reconciliation */
.story-registry-principles{margin:20px 0;padding:18px 20px;border:1px solid #ded5e8;border-radius:16px;background:#faf8fc;color:#685b70}.story-registry-principles strong{display:block;color:#35283e;margin-bottom:5px}.story-registry-row,.story-history-row{width:100%;display:grid;grid-template-columns:minmax(280px,1.6fr) 1fr .8fr;gap:18px;align-items:center;padding:17px 18px;border:0;border-bottom:1px solid #ece5f0;background:#fff;color:#54485c;text-align:left;cursor:pointer}.story-registry-row:hover,.story-history-row:hover{background:#faf8fc}.story-registry-row span,.story-history-row span{display:grid;gap:4px}.story-registry-row small,.story-history-row small,.story-muted{color:#84768c}.story-history-section{margin-top:28px}.story-error,.story-blocking-message{padding:16px;border-radius:13px;background:#f9eaed;color:#a33647}.story-reconciliation-dialog{width:min(1280px,calc(100vw - 30px));max-width:none;height:min(940px,calc(100vh - 30px));padding:0;border:0;border-radius:24px}.story-reconciliation-dialog::backdrop,.story-preview-dialog::backdrop{background:rgba(28,17,39,.68)}.story-reconciliation-shell{height:100%;overflow:auto;background:#f8f6fb}.story-reconciliation-shell>header{position:sticky;top:0;z-index:6;display:flex;justify-content:space-between;gap:24px;padding:23px 30px;background:#fff;border-bottom:1px solid #e6dfeb}.story-reconciliation-shell h2{font:400 32px Georgia,serif;color:#291e32}.story-workflow-card{margin:25px;padding:26px;border:1px solid #e0d8e7;border-radius:20px;background:#fff}.story-workflow-card fieldset{display:flex;flex-wrap:wrap;gap:24px;margin:0 0 20px;padding:17px 20px;border:1px solid #dfd6e5;border-radius:14px}.story-workflow-card legend{padding:0 8px;font-weight:800;color:#583373}.story-workflow-card fieldset label{display:flex;flex-direction:row;align-items:center;gap:8px}.story-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px}.story-source-card{margin:24px 0;padding:20px;border-radius:16px;background:#f8f5fb;border:1px solid #e2d9ea}.story-source-text{display:grid;gap:7px;margin-top:20px;font-weight:700}.story-source-text textarea{width:100%;padding:15px;border:1px solid #d8cfe0;border-radius:14px;resize:vertical;font:16px/1.6 Georgia,serif}.story-workflow-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:20px}.story-source-result{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:12px;padding:15px;border-radius:13px;background:#fff;border:1px solid #ded5e6}.story-source-result div{display:grid;gap:4px}.story-source-result div:last-child{display:flex;align-items:center;gap:9px}.story-source-selected{margin-top:12px;color:#48774f}.story-outcome{padding:18px;border-radius:16px;background:#edf7ef}.story-outcome.publication_hold{background:#fff7dd}.story-outcome.action_required,.story-outcome.failed{background:#f9eaed}.story-reconciliation-stages{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:18px 0}.story-reconciliation-stages article{display:grid;gap:6px;padding:14px;border:1px solid #e1dae7;border-radius:13px;background:#faf9fc}.story-reconciliation-stages small{color:#83768b}.story-match-comparison{margin:20px 0}.story-match-comparison>div,.story-revision-comparison>div{display:grid;grid-template-columns:1fr 1fr;gap:14px}.story-match-comparison article,.story-revision-comparison article{padding:18px;border:1px solid #dfd7e5;border-radius:14px;background:#faf9fc}.story-match-comparison article{display:grid;gap:8px}.story-revision-comparison{margin-top:22px}.story-diff-legend{display:flex;gap:20px;margin:8px 0;color:#73677a}.story-diff-legend span:first-child,.story-removed{color:#b52f43}.story-diff-legend span:last-child,.story-added{color:#218044}.story-diff-text{height:330px;overflow:auto;margin-top:12px;padding:15px;background:#fff;border:1px solid #e6dfe9;border-radius:11px;white-space:pre-wrap;font:16px/1.65 Georgia,serif}.story-preview-dialog{width:min(900px,calc(100vw - 32px));max-width:none;padding:0;border:0;border-radius:22px}.story-preview-dialog>article{max-height:calc(100vh - 50px);overflow:auto;padding:28px;background:#fff}.story-preview-dialog header,#story-record-detail>header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.story-preview-text{margin-top:24px;font:18px/1.8 Georgia,serif;color:#33283a}.story-preview-text p{margin-bottom:1.1em}.story-version-record{margin-top:22px;padding:20px;border:1px solid #ddd4e4;border-radius:15px}.story-content-record{margin-top:14px;padding:17px;background:#faf8fc;border-radius:13px}.story-content-record dl,#story-completion-report dl{display:grid;grid-template-columns:150px 1fr;gap:8px 14px;margin-top:14px}.story-content-record dd,#story-completion-report dd{margin:0}.story-media-list{display:grid;gap:5px;margin-top:13px;padding-top:12px;border-top:1px solid #e4dce8}@media(max-width:850px){.story-form-grid,.story-match-comparison>div,.story-revision-comparison>div{grid-template-columns:1fr}.story-reconciliation-stages{grid-template-columns:repeat(2,minmax(0,1fr))}.story-registry-row,.story-history-row{grid-template-columns:1fr}.story-source-result{align-items:flex-start;flex-direction:column}}@media(max-width:520px){.story-workflow-card{margin:13px;padding:17px}.story-reconciliation-stages{grid-template-columns:1fr}.story-content-record dl{grid-template-columns:1fr}}
.lesson-additional-content-stage{padding:24px}.lesson-additional-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:22px}.lesson-additional-heading h2{margin:4px 0 6px}.lesson-additional-summary{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:12px;margin:18px 0 26px}.lesson-additional-summary article{display:flex;flex-direction:column;gap:4px;padding:16px;border:1px solid #e5ddee;border-radius:14px;background:#faf8fc}.lesson-additional-summary strong{font-size:1.45rem;color:#6330b4}.lesson-additional-summary span{font-size:.78rem;color:#756d7d;text-transform:uppercase;letter-spacing:.05em}.lesson-additional-content-stage>section{margin-top:24px}.lesson-additional-item{padding:18px;margin:12px 0;border:1px solid #ddd4e8;border-left:5px solid #6c32bd;border-radius:14px;background:#fff}.lesson-additional-item.review_required,.lesson-additional-item.reconciliation_failed{border-left-color:#ad3346}.lesson-additional-item.publication_hold{border-left-color:#c18b1f;background:#fffdf4}.lesson-additional-item.optional_omitted{border-left-color:#7f7887;background:#f7f5f8}.lesson-additional-item-heading{display:flex;justify-content:space-between;gap:16px}.lesson-additional-item h4{margin:6px 0 2px;font-size:1.1rem}.lesson-additional-item p{margin:5px 0;color:#6f6878}.lesson-content-status{display:inline-block;padding:4px 9px;border-radius:999px;background:#eee6f8;color:#5d279e;font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.lesson-content-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px}.lesson-additional-item code{display:inline-block;margin-top:8px;padding:5px 8px;border-radius:6px;background:#f3eff7}@media(max-width:900px){.lesson-additional-heading{display:block}.lesson-additional-heading button{margin-top:14px}.lesson-additional-summary{grid-template-columns:repeat(2,minmax(120px,1fr))}}
.curriculum-draft-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:stretch;margin-bottom:8px}.curriculum-draft-row .curriculum-draft-button{min-width:0;margin-bottom:0}.curriculum-draft-delete{padding:7px 9px;border:1px solid #d7a5ad;border-radius:10px;background:#fff7f8;color:#9d3245;font-size:10px;font-weight:800;line-height:1.15;cursor:pointer}.curriculum-draft-delete:hover,.curriculum-draft-delete:focus-visible{border-color:#ad4053;background:#fcebef;outline:2px solid #edc8cf;outline-offset:1px}
/* Uploader lifecycle and section-attached diagnostics */
.lesson-workflow-steps,
.mastery-section-nav {
    position: sticky;
    top: 0;
    z-index: 5;
    background: #f8f5fc;
    padding-block: 10px;
}

.lesson-issue-compact {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin: 12px 0 20px;
    padding: 14px 16px;
    border: 1px solid #ded6e8;
    border-radius: 14px;
    background: #faf8fc;
}

.lesson-issue-compact strong,
.lesson-issue-compact small {
    display: block;
}

.lesson-issue-compact.needs-review {
    border-color: #e5c5ca;
    background: #fff8f8;
}

.lesson-issue-compact button,
.lesson-inline-issue button {
    border: 1px solid #6b31ba;
    border-radius: 999px;
    background: #fff;
    color: #562594;
    padding: 8px 13px;
    font-weight: 700;
    cursor: pointer;
}

.lesson-inline-issues {
    display: grid;
    gap: 8px;
    margin: 8px 0 18px;
}

.lesson-inline-issue {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 11px 13px;
    border-left: 4px solid #ca9a39;
    border-radius: 10px;
    background: #fffaf0;
}

.lesson-inline-issue.red {
    border-left-color: #b74455;
    background: #fff5f6;
}

.lesson-inline-issue strong,
.lesson-inline-issue small {
    display: block;
}

@media (max-width: 720px) {
    .lesson-issue-compact,
    .lesson-inline-issue {
        align-items: flex-start;
        flex-direction: column;
    }
}
.lesson-structured-preview .lesson-activity-review-field{display:grid;grid-template-columns:minmax(130px,180px) 1fr;gap:18px;padding:12px 0;border-bottom:1px solid #e7e1ed}.lesson-activity-review-field p{margin:0 0 6px}.lesson-matching-sandbox{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:20px;margin:18px 0;background:#faf8fc;border:1px solid #e7e1ed;border-radius:16px}.lesson-matching-sandbox>div{display:grid;gap:10px}.lesson-matching-sandbox button{padding:12px;border:1px solid #cdbbe1;border-radius:12px;background:#fff;color:#2c2038;font-weight:700}.lesson-matching-sandbox button.selected{background:#eadcff;border-color:#7133bd}.lesson-review-workflow .danger-button{margin-left:8px}
.lesson-inheritance-note{grid-column:1/-1;display:flex;flex-direction:column;gap:3px;margin:0;padding:10px 14px;border-radius:12px;background:#eef7ef;color:#365f3c}.lesson-inheritance-note strong{font-size:13px}.lesson-inheritance-note span{font-size:13px}
