/* Papilia curriculum-stage learning interfaces — approved artwork only */
.legacy-student-path { display: none !important; }
.student-curriculum-map {
    --papilia-purple: #7133b9;
    --papilia-deep: #352043;
    position: relative;
    width: min(1120px, 100%);
    min-height: 760px;
    margin: 34px auto 0;
    overflow: hidden;
    border-radius: 32px;
    isolation: isolate;
}

.student-skill-check-shelf{position:relative;z-index:3;margin:20px auto;padding:18px;width:min(900px,calc(100% - 32px));border-radius:18px;background:rgba(255,255,255,.94);box-shadow:0 12px 34px rgba(45,25,70,.12)}
.student-skill-check-shelf>div:first-child small{text-transform:uppercase;letter-spacing:.12em;color:#7440ad}.student-skill-check-shelf h4{font-size:25px}.student-skill-check-group{margin-top:12px}.student-skill-check-group h5{font-size:11px;letter-spacing:.12em}.student-skill-check-group article{display:flex;justify-content:space-between;gap:15px;padding:12px;margin-top:6px;border-radius:11px;background:#f7f3fb}.student-skill-check-group.required article{border-left:4px solid #a84f68}.student-skill-check-group article span,.student-skill-check-group article small{display:block;color:#75697c;font-size:12px;margin-top:3px}
.placement-benchmark-pending{min-height:620px;display:grid;place-items:center;background:linear-gradient(145deg,#f8f1ff,#eee1fb)}.placement-benchmark-card{width:min(520px,calc(100% - 32px));padding:44px;text-align:center;border-radius:28px;background:#fff;box-shadow:0 20px 55px rgba(75,40,105,.15)}.placement-benchmark-card small{color:#6d35ad;text-transform:uppercase;letter-spacing:.13em}.placement-benchmark-card h4{font-family:Georgia,serif;font-size:48px;margin:10px 0}.placement-benchmark-card p{color:#756a7c;line-height:1.6}
.stage-transition-experience{min-height:620px;display:grid;place-items:center;background:linear-gradient(145deg,#27113d,#6c3ba6);color:white}.stage-transition-experience section{text-align:center;padding:40px}.stage-transition-experience small{text-transform:uppercase;letter-spacing:.15em;color:#dfc8ff}.stage-transition-experience h4{font-family:Georgia,serif;font-size:42px;margin:12px 0}.stage-transition-experience p{color:#eee4fa}
.student-curriculum-map button { font: inherit; }
.student-curriculum-map button:focus-visible { outline: 4px solid #f1c84e; outline-offset: 4px; }
.curriculum-map-background { position: absolute; z-index: -3; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.curriculum-stage-header { position: relative; z-index: 2; padding: 38px 40px 8px; text-align: center; }
.curriculum-stage-header small { color: #7540a9; font-weight: 900; letter-spacing: 1.5px; text-transform: uppercase; }
.curriculum-stage-header h4 { margin: 8px 0 5px; color: #2c1d36; font: 700 clamp(27px,4vw,42px) Georgia,serif; }
.curriculum-stage-header p { color: #73677b; }
.curriculum-stage-content { position: relative; z-index: 1; padding: 30px clamp(20px,5vw,64px) 80px; }
.curriculum-node { position: relative; border: 0; background: transparent; cursor: pointer; transition: transform .16s ease,filter .2s ease,opacity .2s ease; }
.curriculum-node:hover { transform: translateY(-4px); }
.curriculum-node:active,.curriculum-node.pressed { transform: translateY(3px) scale(.97); }
.curriculum-node.is-locked { filter: grayscale(1); opacity: .43; }
.curriculum-node.is-completed { filter: none; opacity: 1; }
/* Completed artwork is supplied in images/interface. Never imitate it with CSS gold treatments. */
.children-island-button.is-completed,
.children-mastery-button.is-completed,
.children-arch-button.is-completed,
.standard-lesson-button.is-completed,
.standard-mastery-button.is-completed { background: transparent; box-shadow: none; }
.curriculum-connector { pointer-events: none; }
.curriculum-badge { display:inline-flex; align-items:center; gap:5px; border-radius:999px; padding:5px 9px; background:rgba(255,255,255,.86); color:#5c5065; font-size:11px; font-weight:800; box-shadow:0 3px 10px rgba(42,20,60,.08); }
.curriculum-badge[data-tier="bronze"] { color:#9a501d; }
.curriculum-badge[data-tier="silver"] { color:#626a76; }
.curriculum-badge[data-tier="gold"] { color:#9c6b00; }
.revisit-indicator { display:inline-block; margin-top:7px; border-radius:999px; background:#fff0b5; color:#77520c; padding:5px 9px; font-size:10px; font-weight:900; text-transform:uppercase; }

/* Children: scenery-driven milestone map */
.student-curriculum-map.stage-children { min-height: 1000px; background:#f5effd; }
.stage-children .curriculum-map-background { object-position: center top; }
.children-section { display:grid; gap:8px; }
.children-entry-arch,.children-next-arch { position:relative; display:grid; grid-template-columns:minmax(180px,300px) minmax(180px,1fr); align-items:center; width:min(720px,100%); margin:0 auto 34px; }
.children-entry-arch { grid-template-columns:minmax(180px,260px) 1fr; }
.children-arch-button { width:min(290px,100%); aspect-ratio:1199/1312; padding:0; }
.children-arch-button img { width:100%; height:100%; object-fit:contain; }
.children-arch-copy { padding:18px; }
.children-arch-copy small { color:#7a3bb2; font-weight:900; letter-spacing:1.3px; text-transform:uppercase; }
.children-arch-copy strong { display:block; margin-top:8px; color:#34203f; font:700 clamp(24px,3vw,36px) Georgia,serif; }
.children-arch-copy span { display:block; margin-top:8px; color:#716378; line-height:1.45; }
.children-lesson-unit { position:relative; display:grid; grid-template-columns:minmax(330px,1.08fr) minmax(300px,.92fr); align-items:center; min-height:460px; margin:6px auto; }
.children-lesson-unit.turn-right { grid-template-columns:minmax(300px,.92fr) minmax(330px,1.08fr); }
.children-lesson-unit.turn-right .children-island-wrap { grid-column:2; }
.children-lesson-unit.turn-right .children-activity-branch { grid-column:1; grid-row:1; }
.children-island-wrap { position:relative; width:min(520px,100%); margin:auto; }
.children-island-button { width:100%; aspect-ratio:3/2; padding:0; }
.children-island-button img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }
.children-island-title { position:absolute; z-index:2; top:18%; left:29%; width:42%; display:grid; place-content:center; min-height:30%; color:#352317; text-align:center; pointer-events:none; }
.children-island-title small { font-size:clamp(10px,1.2vw,14px); font-weight:900; letter-spacing:1px; text-transform:uppercase; }
.children-island-title strong { margin-top:5px; font:700 clamp(18px,2.35vw,30px) Georgia,serif; line-height:1.05; }
.children-activity-branch { position:relative; min-height:350px; display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:120px; place-items:center; align-content:center; }
.children-activity-path { position:absolute; z-index:-1; inset:5% 0; width:100%; height:90%; object-fit:contain; pointer-events:none; }
.children-activity-node { width:104px; height:104px; padding:0; }
.children-activity-node img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }
.children-activity-icon { position:relative; z-index:2; color:#fff; font:900 26px Arial,sans-serif; text-shadow:0 2px 3px rgba(56,20,91,.45); }
.children-activity-item:nth-of-type(2n) { transform:translateY(30px); }
.children-activity-item:nth-of-type(3n) { transform:translateY(-25px); }
.children-path-piece { width:min(270px,45vw); height:150px; margin:-24px auto -15px; object-fit:cover; object-position:center; opacity:.98; transform:rotate(3deg); pointer-events:none; }
.children-path-piece.reverse { transform:scaleX(-1) rotate(3deg); }
.children-mastery { position:relative; display:grid; justify-items:center; gap:9px; margin:0 auto 20px; text-align:center; }
.children-mastery-button { width:min(340px,75vw); aspect-ratio:3/2; padding:0; }
.children-mastery-button img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }
.children-mastery-status { max-width:370px; border-radius:16px; background:rgba(255,255,255,.78); padding:11px 16px; color:#66576e; font-weight:700; }

/* Standard: information-rich benchmark map */
.student-curriculum-map.stage-standard { min-height:1120px; background:#f3eef9; color:#2f2437; }
.stage-standard .curriculum-map-background { object-position:center bottom; }
.stage-standard .curriculum-stage-header { color:#fff; text-shadow:0 2px 8px rgba(0,0,0,.5); }
.stage-standard .curriculum-stage-header small,.stage-standard .curriculum-stage-header h4,.stage-standard .curriculum-stage-header p { color:#fff; }
.standard-previous { position:absolute; z-index:5; top:28px; left:28px; border:1px solid rgba(255,255,255,.5); border-radius:12px; background:rgba(31,22,38,.66); color:#fff; padding:11px 15px; font-weight:800; cursor:pointer; }
.standard-section { min-height:930px; padding-bottom:280px; }
.standard-path-list { display:grid; gap:40px; max-width:900px; margin:auto; }
.standard-lesson-unit { position:relative; display:grid; grid-template-columns:260px minmax(280px,1fr); align-items:center; gap:28px; min-height:260px; }
.standard-lesson-unit.turn-right { grid-template-columns:minmax(280px,1fr) 260px; }
.standard-lesson-unit.turn-right .standard-lesson-main { grid-column:2; }
.standard-lesson-unit.turn-right .standard-activity-list { grid-column:1; grid-row:1; }
.standard-lesson-main { position:relative; display:grid; grid-template-columns:145px 1fr; align-items:center; gap:10px; }
.standard-lesson-button,.standard-activity-button,.standard-mastery-button { padding:0; aspect-ratio:1; }
.standard-lesson-button { width:145px; }
.standard-lesson-button img,.standard-activity-button img,.standard-mastery-button img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }
.standard-node-icon { position:relative; z-index:2; color:#fff; font:900 25px Arial,sans-serif; text-shadow:0 2px 4px rgba(50,18,77,.45); }
.standard-lesson-copy small { color:#cbb8dc; font-weight:900; letter-spacing:1.2px; text-transform:uppercase; }
.standard-lesson-copy strong { display:block; margin-top:7px; color:#fff; font:700 24px Georgia,serif; line-height:1.15; }
.standard-lesson-copy span { display:block; margin-top:8px; color:#d9cee1; font-size:12px; line-height:1.45; }
.standard-activity-list { position:relative; display:grid; gap:12px; padding:12px 0 12px 38px; }
.standard-activity-list::before { content:""; position:absolute; left:13px; top:12px; bottom:12px; width:4px; background:repeating-linear-gradient(to bottom,#a978d0 0 8px,transparent 8px 16px); border-radius:4px; }
.standard-activity-item { position:relative; display:grid; grid-template-columns:76px 1fr; align-items:center; gap:12px; }
.standard-activity-item::before { content:""; position:absolute; left:-25px; width:30px; border-top:4px dotted #a978d0; }
.standard-activity-button { width:76px; }
.standard-activity-copy strong { display:block; color:#fff; font-size:14px; }
.standard-activity-copy p { margin:4px 0 6px; color:#d8cee0; font-size:11px; line-height:1.35; }
.standard-main-connector { width:8px; height:52px; margin:-20px auto -20px; background:repeating-linear-gradient(to bottom,#a978d0 0 8px,transparent 8px 17px); border-radius:5px; }
.standard-mastery { display:grid; grid-template-columns:160px minmax(260px,430px); align-items:center; justify-content:center; gap:22px; margin:35px auto; }
.standard-mastery-button { width:160px; }
.standard-mastery-copy { color:#fff; }
.standard-mastery-copy strong { display:block; font:700 25px Georgia,serif; }
.standard-mastery-copy p { margin:7px 0 10px; color:#d8cee0; line-height:1.45; }
.standard-arch-zone { position:absolute; z-index:3; left:50%; bottom:10px; width:330px; height:330px; transform:translateX(-50%); display:grid; place-content:end center; padding-bottom:20px; text-align:center; border:0; background:transparent; color:#2b1c36; cursor:pointer; }
.standard-arch-zone small { font-weight:900; letter-spacing:1.2px; text-transform:uppercase; }
.standard-arch-zone strong { display:block; margin-top:6px; font:700 27px Georgia,serif; }
.standard-arch-zone span { display:block; margin-top:7px; max-width:300px; font-size:12px; }
.standard-arch-zone.passing { animation:pass-through-arch .85s ease-in forwards; }
@keyframes pass-through-arch { to { transform:translateX(-50%) scale(1.6); opacity:0; } }

/* Locked explanation */
.learning-lock-dialog { width:min(470px,calc(100% - 30px)); }
.learning-lock-card { position:relative; padding:34px; text-align:center; }
.learning-lock-card .dialog-close { position:absolute; top:18px; right:20px; }
.learning-lock-symbol { display:grid; place-items:center; width:58px; height:58px; margin:0 auto 16px; border-radius:50%; background:#eee2f8; color:#6c2eaa; font-size:27px; }
.learning-lock-card h3 { margin:7px 0 10px; color:#302039; font:400 28px Georgia,serif; }
.learning-lock-card > p:not(.page-eyebrow) { color:#74697b; line-height:1.55; }
.learning-lock-card .primary-button { margin-top:22px; min-width:120px; }

@media (max-width: 850px) {
    .student-curriculum-map { border-radius:22px; }
    .curriculum-stage-header { padding:30px 20px 5px; }
    .curriculum-stage-content { padding:20px 18px 60px; }
    .children-lesson-unit,.children-lesson-unit.turn-right { grid-template-columns:1fr; min-height:720px; }
    .children-lesson-unit.turn-right .children-island-wrap,.children-lesson-unit.turn-right .children-activity-branch { grid-column:1; }
    .children-lesson-unit.turn-right .children-activity-branch { grid-row:2; }
    .children-activity-branch { min-height:300px; }
    .children-entry-arch,.children-next-arch { grid-template-columns:1fr; justify-items:center; text-align:center; }
    .standard-lesson-unit,.standard-lesson-unit.turn-right { grid-template-columns:1fr; gap:15px; }
    .standard-lesson-unit.turn-right .standard-lesson-main,.standard-lesson-unit.turn-right .standard-activity-list { grid-column:1; }
    .standard-lesson-unit.turn-right .standard-activity-list { grid-row:2; }
    .standard-lesson-main { grid-template-columns:120px 1fr; }
    .standard-lesson-button { width:120px; }
}
@media (max-width: 560px) {
    .student-curriculum-map { width:calc(100% + 24px); margin-left:-12px; border-radius:0; }
    .children-island-wrap { width:360px; max-width:100%; }
    .children-lesson-unit,.children-lesson-unit.turn-right { min-height:630px; }
    .children-activity-node { width:84px; height:84px; }
    .children-activity-branch { grid-auto-rows:100px; }
    .standard-lesson-main { grid-template-columns:95px 1fr; }
    .standard-lesson-button { width:95px; }
    .standard-activity-item { grid-template-columns:65px 1fr; }
    .standard-activity-button { width:65px; }
    .standard-mastery { grid-template-columns:105px 1fr; gap:12px; }
    .standard-mastery-button { width:105px; }
}
.student-skill-check-group article{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 15px}.student-skill-check-group article>small{grid-column:1}.student-skill-check-group article>button{grid-column:2;grid-row:1/span 2;white-space:nowrap}
/* Unified fixed Student shell */
.student-app:not([hidden]){display:block!important;height:100vh;overflow:hidden}.student-sidebar{position:fixed!important;inset:0 auto 0 0;width:245px;height:100vh;overflow:hidden!important;display:flex;flex-direction:column}.student-navigation{overflow:hidden}.student-account-button{margin-top:auto}.student-workspace{margin-left:245px;height:100vh;overflow-y:auto}.student-topbar{position:sticky!important;top:0;z-index:80;background:rgba(250,248,254,.96);backdrop-filter:blur(12px)}
.language-coin-asset{width:58px;height:58px;object-fit:contain}.language-identifier-asset{width:34px;height:24px;object-fit:contain;flex:0 0 auto}.student-program-picker{position:relative}.language-choice-panel{position:absolute;right:0;top:calc(100% + 10px);z-index:120;display:flex;gap:10px;padding:12px;border:1px solid #ded5e9;border-radius:18px;background:#fff;box-shadow:0 14px 35px rgba(48,27,76,.2)}.language-choice-panel button{display:grid;gap:4px;justify-items:center;border:0;background:transparent;cursor:pointer}.language-choice-panel img{width:58px;height:58px}
.todo-summary-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:22px 0}.todo-summary-tiles button{display:grid;gap:8px;padding:22px;border:1px solid #e3dbea;border-radius:18px;background:#fff;text-align:left;cursor:pointer}.todo-summary-tiles strong{font:700 34px Georgia,serif;color:#6c2fc1}.todo-summary-tiles span{font-weight:700}.todo-summary-tiles small{color:#6c2fc1}.assignment-item>.language-identifier-asset{margin-right:12px}.overdue-assignment{color:#b22c3c!important}
.club-integration-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.club-integration-grid article{min-height:180px;padding:28px;border:1px solid #e2daea;border-radius:22px;background:linear-gradient(145deg,#fff,#f4effb)}
.student-nav-button.student-feature-locked{position:relative;opacity:.7}.student-nav-button.student-feature-locked::after{content:"\1F512";margin-left:auto;font-size:13px;filter:grayscale(1);opacity:.8}.student-nav-button.student-feature-locked:hover{opacity:.85}.student-coming-soon-dialog{width:min(390px,calc(100% - 32px));padding:0;border:0;border-radius:24px;background:#fff;box-shadow:0 24px 70px rgba(43,24,62,.28)}.student-coming-soon-dialog::backdrop{background:rgba(31,20,42,.48);backdrop-filter:blur(3px)}.student-coming-soon-dialog section{display:grid;justify-items:center;padding:34px;text-align:center}.student-coming-soon-lock{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:#eee5f7;font-size:25px}.student-coming-soon-dialog h3{margin:15px 0 8px;color:#302039;font:400 30px Georgia,serif}.student-coming-soon-dialog p{margin:0;color:#74697b;line-height:1.5}.student-coming-soon-dialog button{min-width:110px;margin-top:22px}
.communications-screen .communication-box{margin:22px 0;padding:22px;border:1px solid #e1d9e8;border-radius:20px;background:#fff}.communication-heading{display:flex;align-items:center;justify-content:space-between}.communication-heading button{width:42px;height:42px;border:0;border-radius:50%;background:#6d31be;color:#fff;font-size:26px}.communication-scroll{height:290px;overflow-y:auto;margin-top:14px;padding-right:8px}.communication-item{display:grid;gap:8px;margin-bottom:10px;padding:16px;border-radius:14px}.communication-item.unread{background:#e2e2e7}.communication-item.read{background:#f3f2f5;color:#665f6e}.communication-item time{font-size:12px}.communication-item>button{justify-self:center;padding:8px 24px;border:0;border-radius:18px;background:#6d31be;color:#fff}
.student-account-page dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:22px}.student-account-page dl>div{padding:15px;border-radius:14px;background:#f8f6fb}.student-account-page dt{font-size:12px;text-transform:uppercase;color:#7c7185}.student-account-page dd{margin:5px 0 0;font-weight:700}.streak-calendar-grid .calendar-day{display:grid;justify-items:center}.streak-calendar-grid .language-identifier-asset{width:22px;height:15px}.streak-language-count{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#6c2fc1;color:#fff;font-size:11px;font-style:normal}
@media(max-width:900px){.todo-summary-tiles,.club-integration-grid{grid-template-columns:1fr}.student-account-page dl{grid-template-columns:1fr}}
