.course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.course{background:#fffdf9;border:1px solid #e8e0d2;border-radius:20px;padding:24px;text-align:left;color:#24332e}.course h3{font-family:serif;font-size:24px}.course p{color:#77837d;line-height:1.7}.course:hover{border-color:#466d5c}.filters,.course-actions{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.week-grid,.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin:18px 0}.week-grid>div,.calendar>div{background:#f4ecdc;padding:12px 6px;text-align:center;border-radius:10px;font-size:12px;line-height:1.8}.calendar .studied{background:#dcebdc;color:#315446}.success-note{padding:20px;background:#e8f0e6;border-radius:16px}fieldset{border:1px solid #e8e0d2;border-radius:12px;margin:14px 0}a{color:#466d5c}#planForm input[type=number]{width:85px}#planMessage{margin-left:12px}.family-panel h2{font-family:serif}.family-panel>p{line-height:1.8;color:#65736a}@media(max-width:600px){.week-grid{grid-template-columns:repeat(2,1fr)}.calendar{grid-template-columns:repeat(5,1fr)}.course-grid{grid-template-columns:1fr}}
.family-view .family-bar{background:transparent;border-bottom:1px solid #e8e0d2;border-radius:0;padding:8px 0 20px;margin-bottom:30px}.family-view .family-bar>span{display:none}.family-view .family-bar label{margin:0;font-size:13px;color:#77837d}.family-view .family-bar select{background:#fffdf9;border-color:#e8e0d2}.profile-heading{display:flex;justify-content:space-between;align-items:center;margin:0 0 28px}.profile-heading h1{font-family:serif;font-size:34px;letter-spacing:2px;margin:10px 0}.profile-heading p:not(.eyebrow){font-size:14px;color:#77837d;line-height:1.8;margin:0}.family-count{border:1px solid #e2dfd3;border-radius:30px;padding:8px 14px;color:#77837d;font-size:12px;white-space:nowrap}.growth-card{background:linear-gradient(120deg,#2d5144,#527665);color:#f6f5eb;border-radius:24px;padding:30px 34px;box-shadow:0 12px 32px #244a3a12}.growth-intro{display:flex;gap:17px;align-items:center}.profile-avatar{display:grid;place-items:center;width:64px;height:64px;border-radius:20px;background:#ffffff18;border:1px solid #ffffff30;font:30px serif;color:#ede5bd}.growth-kicker{font-size:11px;color:#c2d4c8;letter-spacing:2px}.growth-intro h2{font-size:25px!important;margin:6px 0}.growth-intro p{font-size:12px;color:#ccd9ce;margin:0}.growth-intro p span{margin:0 8px}.growth-link{color:#e9e8d8;text-decoration:none;font-size:12px;margin-left:auto;align-self:flex-start;padding:8px 0}.growth-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:30px 0 24px}.growth-stats>div{padding-left:24px;border-left:1px solid #ffffff22}.growth-stats>div:first-child{padding:0;border:0}.growth-stats strong{display:block;font-size:38px;font-weight:500;line-height:1.2;font-variant-numeric:tabular-nums}.growth-stats small{font-size:12px;font-weight:400;margin-left:7px;color:#bdcfc1}.growth-stats span{display:block;font-size:12px;color:#c2d4c8;margin-top:10px}.growth-bottom{border-top:1px solid #ffffff22;padding-top:18px;display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#d2ddcf}.growth-bottom a{color:#f0e7bc;text-decoration:none;white-space:nowrap}.family-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:35px 0 18px}.family-section-title h2{font-size:21px;margin:0}.family-section-title p{color:#8a938b;font-size:12px;margin:8px 0 0}.add-student-button{color:#466d5c;background:#e8eee4;border:1px solid #dce5d9;padding:10px 14px;border-radius:10px;white-space:nowrap;font-size:13px}.student-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.student-tile{border:1px solid #e8e0d2;border-radius:18px;padding:20px;background:#fffdf9}.student-tile.selected{border-color:#769783;box-shadow:0 0 0 1px #76978315}.student-tile-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.student-avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;font:22px serif;background:#e6ede2;color:#52735b}.tone-1{background:#f4e7d3;color:#a58345}.tone-2{background:#e5eaf1;color:#687d93}.student-badge{font-size:10px;color:#77927e}.student-tile h3{font:21px serif;margin:16px 0 6px;overflow-wrap:anywhere}.student-tile p{font-size:12px;color:#899187;margin:0}.student-tile-actions{border-top:1px solid #eee9de;margin-top:18px;padding-top:13px;display:flex;justify-content:space-between}.student-tile-actions button{background:none;color:#466d5c;padding:4px 0;font-size:12px}.student-tile-actions button:disabled{color:#92a294;cursor:default}.profile-editor{margin-top:20px;background:#fffdf9;border:1px solid #e0e6d9;border-radius:18px;padding:22px}.editor-header{display:flex;justify-content:space-between;align-items:center}.editor-header h2{font-size:20px;margin:0}.editor-header button{background:none;color:#899187;font-size:25px}.family-panel .profile-editor form{border:0;padding:0;margin:16px 0 0;display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.profile-editor label{display:flex;flex-direction:column;align-items:flex-start;font-size:12px;color:#77837d;margin:0;gap:8px}.profile-editor input{width:230px}.profile-editor .primary-btn{font-size:13px;box-shadow:none}.family-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:28px 0 20px}.family-shortcuts :is(a:not([data-download]), .daily-settings-row){display:flex;align-items:center;gap:13px;padding:20px;color:var(--green);background:#f2efe6;border-radius:16px;text-decoration:none}.shortcut-icon{font-size:23px;color:#7b8f76}.family-shortcuts strong{font-size:14px;font-weight:500;display:block}.family-shortcuts small{display:block;font-size:11px;color:#8c9389;margin-top:6px}.family-shortcuts :is(a, .daily-settings-row)>span:last-child{margin-left:auto;color:#8c9389;font-size:22px}.backup-panel{border:1px solid #e8e0d2;border-radius:16px;padding:18px 22px}.backup-panel summary{display:flex;justify-content:space-between;align-items:center;list-style:none;cursor:pointer;font-size:13px;color:#65736a}.backup-panel summary::-webkit-details-marker{display:none}.backup-panel small{display:block;color:#969b91;font-size:11px;margin-top:6px}.backup-panel[open] .expand-indicator{transform:rotate(45deg)}.backup-controls{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:20px}.backup-controls button{font-size:12px}.backup-controls label{font-size:12px;color:#65736a;margin:0}.backup-controls input{font-size:12px;max-width:280px}.backup-panel>p{font-size:11px;color:#969b91;line-height:1.8}.family-footnote{text-align:center;font-size:11px!important;color:#969b91!important;margin:24px 0}.family-view .account-bar{font-size:12px;color:#899187}.family-view .account-bar button{font-size:11px;background:transparent;color:#899187}.family-view .save-status{font-size:11px}.family-panel button:focus-visible,.family-panel a:focus-visible,.backup-panel summary:focus-visible{outline:2px solid #466d5c;outline-offset:4px}@media(max-width:720px){.student-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.growth-card{padding:24px}.family-shortcuts{grid-template-columns:1fr}.profile-heading h1{font-size:29px}.growth-stats strong{font-size:32px}.profile-heading{align-items:flex-start}.family-count{font-size:10px;padding:7px 9px}.family-view .family-bar{margin-bottom:24px}.family-section-title h2{font-size:19px}}@media(max-width:400px){.student-cards{grid-template-columns:1fr}.growth-card{padding:22px 18px}.growth-stats>div{padding-left:12px}.growth-link{font-size:10px}.profile-avatar{width:48px;height:48px;border-radius:15px}.growth-intro h2{font-size:21px!important}.growth-stats span{font-size:10px}.profile-editor input{width:100%}.profile-editor label{width:100%}}
.student-create-dialog{box-sizing:border-box;width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;border:1px solid #e8e0d2;border-radius:24px;padding:30px;background:#fffdf9;color:#24332e;box-shadow:0 24px 80px #23332e30}.student-create-dialog::backdrop{background:#20372d70;backdrop-filter:blur(4px)}.student-create-dialog .editor-header{align-items:flex-start}.student-create-dialog .editor-header h2{font:26px serif;margin:10px 0 0}.student-create-dialog .editor-header button{padding:0 4px;line-height:1}.dialog-description{font-size:13px;color:#849084;line-height:1.8;margin:16px 0 24px}.family-panel .student-create-dialog form{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:18px}.student-create-dialog form label{display:flex;flex-direction:column;align-items:stretch;gap:8px;margin:0;color:#65736a;font-size:13px}.student-create-dialog input,.student-create-dialog select{width:100%;padding:12px;background:#fbf9f4;border-color:#e1e4d9}.student-dialog-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid #eee9de;margin-top:8px;padding-top:20px}.student-dialog-actions button{font-size:14px;box-shadow:none;min-width:96px}@media(max-width:480px){.student-create-dialog{padding:24px}.student-dialog-actions button{flex:1}}
.family-bar,.family-view .family-bar{position:relative;z-index:6;display:flex;justify-content:space-between;align-items:center;background:transparent;border:0;border-radius:0;padding:0;margin:8px 0 24px;gap:20px}.student-switcher{position:relative;max-width:100%}.student-switcher summary{display:flex;align-items:center;gap:12px;padding:10px 14px 10px 10px;border:1px solid #e3e5da;border-radius:16px;background:#fffdf9;cursor:pointer;list-style:none;box-shadow:0 3px 12px #35554105;transition:border-color .15s}.student-switcher summary::-webkit-details-marker{display:none}.student-switcher summary:hover{border-color:#9aaf9b}.switcher-avatar{display:grid;place-items:center;width:42px;height:42px;flex-shrink:0;background:#e8eee1;color:#466d5c;border-radius:13px;font:23px serif}.switcher-copy{display:flex;flex-direction:column;gap:5px;min-width:0}.switcher-copy>small{font-size:10px;color:#8a9789;letter-spacing:1px}.switcher-copy>strong{display:flex;align-items:center;gap:12px;font-size:14px;color:#304b3d;font-weight:600;overflow-wrap:anywhere}.switcher-copy>strong>span{font-size:10px;font-weight:400;color:#899384;white-space:nowrap}.switcher-chevron{color:#80927e;margin-left:14px;flex-shrink:0;transition:transform .15s}.student-switcher[open] .switcher-chevron{transform:rotate(180deg)}.family-bar .switcher-caption{color:#9aa292;font-size:11px;letter-spacing:1px}.switcher-menu{position:absolute;top:calc(100% + 9px);left:0;width:320px;max-width:calc(100vw - 32px);max-height:60vh;overflow:auto;box-sizing:border-box;padding:10px;background:#fffdf9;border:1px solid #e1e5d9;border-radius:18px;box-shadow:0 16px 40px #2c48351f}.switcher-menu>p{font-size:10px;letter-spacing:1px;color:#8b9786;margin:8px 10px 12px}.switcher-option{display:flex;align-items:center;gap:12px;text-align:left;width:100%;background:transparent;border-radius:11px;padding:11px;color:#344f3d}.switcher-option:hover,.switcher-option.selected{background:#edf2e8}.option-avatar{display:grid;place-items:center;flex-shrink:0;width:34px;height:34px;border-radius:10px;background:#f1ebdc;color:#927f56;font:18px serif}.option-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.option-copy strong{font-size:13px;font-weight:500;overflow-wrap:anywhere}.option-copy small{font-size:10px;color:#929b8e}.option-check{margin-left:auto;color:#56785b;font-size:16px}.switcher-manage{display:flex;justify-content:space-between;padding:14px 10px 5px;margin-top:8px;border-top:1px solid #ececdf;font-size:12px;text-decoration:none;color:#69805f}.student-switcher summary:focus-visible,.switcher-option:focus-visible,.switcher-manage:focus-visible{outline:2px solid #668466;outline-offset:3px}@media(max-width:600px){.family-bar .switcher-caption{display:none}.switcher-copy>strong{gap:8px}.switcher-chevron{margin-left:8px}.student-switcher summary{padding-right:12px}.family-bar,.family-view .family-bar{margin-bottom:20px}}
.corpus-section{margin-top:36px;padding-top:24px;border-top:1px solid #e8e0d2}.corpus-section>p{color:#77837d;font-size:13px;line-height:1.8}.corpus-reader{width:min(720px,calc(100vw - 32px))}.corpus-lines{font-family:serif;font-size:21px;line-height:2;text-align:center;overflow-wrap:anywhere}.corpus-reader h2{overflow-wrap:anywhere}.corpus-section .course h3{overflow-wrap:anywhere}.corpus-section button:disabled{opacity:.45;cursor:default}
.daily-section{margin:28px 0 10px}.daily-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.daily-heading .eyebrow{font-size:11px;color:#97a08f;letter-spacing:1px}.daily-heading h2{font:26px serif;letter-spacing:1px;margin:8px 0 0}.daily-heading>a{font-size:12px;text-decoration:none;color:#7d8d76;border:1px solid #e1e5d8;padding:9px 13px;border-radius:20px;white-space:nowrap}.daily-heading>a:hover{background:#edf2e7}.daily-heading>a span{margin-left:8px}.daily-empty{background:linear-gradient(150deg,#fffef9,#f5f3e9);border:1px solid #e7e5d8;border-radius:24px;text-align:center;padding:32px 24px 28px;box-shadow:0 8px 30px #465c3b04}.daily-art{width:138px;margin:0 auto 10px}.daily-art svg{display:block;width:100%}.daily-overline{font-size:10px;letter-spacing:3px;color:#94a087;margin:4px 0 12px}.daily-empty h3{font:26px serif;color:#344d3c;margin:0 0 14px;letter-spacing:1px}.daily-description{max-width:400px;margin:0 auto;color:#88917f;font-size:13px;line-height:1.9}.daily-path{display:flex;justify-content:center;gap:15px;margin:24px auto;font-size:11px;color:#8e9b83;flex-wrap:wrap}.daily-path i{font-style:normal;color:#bdc5b3}.daily-empty-actions{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:25px}.daily-empty-actions a{text-decoration:none;font-size:13px}.daily-empty-actions .primary-btn{padding:13px 22px;border-radius:12px;background:#466d5c;color:#fff;box-shadow:0 4px 12px #466d5c14}.daily-empty-actions .primary-btn span{margin-left:14px}.daily-secondary{color:#7b8c71}.daily-note{font-size:10px;color:#a0a693;margin:20px 0 0;line-height:1.8}.daily-progress{padding:19px 22px;background:#eaf0e4;border-radius:16px;margin-bottom:26px}.daily-progress>div{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.daily-progress strong{font-size:13px;font-weight:500;color:#466347}.daily-progress span{font-size:11px;color:#85987a}.daily-progress progress{display:block;width:100%;height:5px;border:0;border-radius:4px;overflow:hidden;appearance:none;background:#dbe4d3}.daily-progress progress::-webkit-progress-bar{background:#dbe4d3}.daily-progress progress::-webkit-progress-value{background:#6c8b60;border-radius:4px}.daily-progress progress::-moz-progress-bar{background:#6c8b60}.daily-group{margin:22px 0}.daily-group>h3{font-size:15px;font-weight:500;color:#4e6548;margin:0 0 14px}.daily-group>h3>span{font-size:11px;color:#93a087;font-weight:400;margin-left:12px}.daily-section a:focus-visible{outline:2px solid #466d5c;outline-offset:4px}@media(max-width:600px){.daily-empty{padding:26px 18px}.daily-empty h3{font-size:23px}.daily-art{width:115px}.daily-path{gap:8px;font-size:10px}.daily-heading h2{font-size:23px}.daily-progress>div{align-items:flex-start;flex-direction:column}.daily-empty-actions{gap:16px}.daily-description{font-size:12px}}
.plan-page-heading{margin:22px 0}.plan-page-heading h2{font:28px serif;margin:10px 0}.plan-page-heading>p:not(.eyebrow){color:#889580;font-size:13px;line-height:1.8}.saved-plan-card{padding:28px 30px;border:1px solid #dfe6d7;background:linear-gradient(130deg,#fffef9,#f1f5eb);border-radius:22px;margin:24px 0 32px}.saved-plan-top{display:flex;justify-content:space-between;align-items:center;gap:16px}.saved-plan-top small{font-size:11px;letter-spacing:2px;color:#94a087}.saved-plan-top h3{font:25px serif;color:#38563e;margin:10px 0}.plan-state{font-size:11px;background:#e3eddb;color:#617d50;padding:7px 12px;border-radius:20px;white-space:nowrap}.saved-plan-metrics{display:flex;gap:65px;margin:25px 0}.saved-plan-metrics strong{display:block;font-size:34px;font-weight:500;color:#486d50}.saved-plan-metrics strong small{font-size:11px;font-weight:400;color:#98a08e;margin-left:8px}.saved-plan-metrics span{font-size:12px;color:#8b9780;display:block;margin-top:8px}.saved-plan-details{border-top:1px solid #e1e7d9;padding-top:18px;display:grid;gap:12px;margin:0 0 24px;font-size:12px}.saved-plan-details>div{display:flex;gap:20px;line-height:1.7}.saved-plan-details dt{color:#96a08d;white-space:nowrap}.saved-plan-details dd{margin:0;color:#607557}.saved-plan-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.saved-plan-actions a{text-decoration:none;color:white;font-size:13px;box-shadow:none}.saved-plan-actions button{font-size:13px}.delete-plan{margin-left:auto;background:none;color:#a7806d;padding:12px}.saved-plan-empty{padding:44px 24px;background:#fffdf8;border:1px solid #e8e5d8;border-radius:22px;text-align:center}.plan-empty-mark{display:inline-grid;place-items:center;background:#edf2e5;color:#7e976c;width:56px;height:56px;border-radius:18px;font-size:28px}.saved-plan-empty h3{font:24px serif;color:#44613e}.saved-plan-empty p{font-size:13px;color:#94a087;line-height:1.8}.saved-plan-empty a{display:inline-block;color:white;text-decoration:none;font-size:13px;margin-top:15px}.plan-back,.plan-cancel{font-size:13px;text-decoration:none;color:#809273}.plan-cancel{display:inline-block;margin-left:20px}.plan-edit-note{font-size:12px;line-height:1.8;color:#8d9984}.plan-back{display:inline-block;margin-top:14px}@media(max-width:600px){.saved-plan-card{padding:24px 20px}.saved-plan-metrics{gap:40px}.saved-plan-top h3{font-size:22px}.plan-page-heading h2{font-size:25px}}
.curated-collections{margin:0 0 34px;padding-bottom:28px;border-bottom:1px solid #e8e0d2}.curated-collections>p{font-size:12px;color:#899580;line-height:1.8}.curated-collections .course h3{font-size:22px}.curated-collections details{font-size:12px;color:#7c8c70;margin:16px 0;line-height:1.8}.curated-collections summary{cursor:pointer}.curated-collections button{font-size:12px}
.theme-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0}.theme-tabs button{background:#fffdf9;color:#84917b;border:1px solid #e3e5d7;border-radius:22px;padding:9px 18px;font-size:13px}.theme-tabs button.selected{background:#466d5c;border-color:#466d5c;color:#fff}.theme-card-top{display:flex;justify-content:space-between;align-items:center}.theme-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:#eaf0e3;color:#69805c;font:24px serif}.theme-course{display:flex;flex-direction:column}.theme-poems{display:flex;flex-direction:column;margin:10px 0 20px;gap:4px;flex:1}.theme-poems button{display:flex;justify-content:space-between;gap:12px;text-align:left;background:transparent;color:#697d60;padding:9px 0;border-bottom:1px solid #eeeee2;font-size:12px}.theme-poems button:hover{color:#345137}.theme-poems span{color:#a3af97}.theme-tabs button:focus-visible,.theme-poems button:focus-visible{outline:2px solid #466d5c;outline-offset:3px}
.book-group{text-align:left;cursor:pointer}.selection-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#eaf0e4;padding:16px;border-radius:15px;margin:20px 0}.selection-bar>span{margin-right:auto;font-size:13px;color:#607755}.selection-bar button{font-size:12px}.selection-bar button:disabled{opacity:.5;cursor:default}.corpus-reader ol{font-size:14px;color:#66795e;line-height:2.2}.corpus-section .course-actions{align-items:center}
.hero-card>div:first-child{flex:1;min-width:0;position:relative;z-index:1}.hero-card #heroTitle{max-width:none;font-size:clamp(23px,3.2vw,36px);line-height:1.45}.hero-name{overflow-wrap:anywhere}.hero-phrase{display:inline-block;white-space:nowrap}.hero-illustration{flex:0 1 150px;min-width:0}@media(max-width:900px){.hero-card{position:relative}.hero-illustration{position:absolute;right:0;bottom:0;opacity:.25;pointer-events:none}.hero-card #heroTitle{font-size:clamp(22px,4vw,30px)}}
.today-view .hero-card{min-height:0;padding:28px 32px;border-radius:22px}.today-view .hero-illustration{display:none}.today-view .hero-card #heroTitle{font:32px/1.35 serif;margin:14px 0 8px;overflow-wrap:anywhere}.today-view #heroSubtitle{font-size:13px;margin:0;color:#778575}.today-view #heroPoemPreview{font:18px/1.9 serif;color:#53694c;margin:16px 0 20px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.today-view #startToday{box-shadow:none;font-size:14px;min-height:44px}.today-view #heroTaskProgress{margin-top:22px;border-top:1px solid #dbe3d0;padding-top:15px}.today-view #heroTaskProgress>div{display:flex;justify-content:space-between;gap:12px;font-size:11px;color:#7d8f72;margin-bottom:10px}.today-view progress{display:block;width:100%;height:4px;appearance:none;border:0;border-radius:4px;overflow:hidden;background:#dbe4d3}.today-view progress::-webkit-progress-bar{background:#dbe4d3}.today-view progress::-webkit-progress-value{background:#6c8b60}.today-view progress::-moz-progress-bar{background:#6c8b60}.today-view .stats-row{margin:22px 0 12px;border:1px solid #e8e5d9;border-radius:16px;background:#fffdf9;gap:0;padding:14px 0}.today-view .stat-card{border:0;border-right:1px solid #eceade;border-radius:0;padding:0 10px;background:transparent;justify-content:center;gap:8px}.today-view .stat-card:last-child{border-right:0}.today-view .stat-card strong{font-size:21px}.today-view .stat-card small{font-size:11px;white-space:nowrap}.today-view .stat-icon{width:26px;height:26px;font-size:14px}.today-view .daily-section{margin:22px 0 8px}.today-view .daily-heading{margin-bottom:14px}.today-view .daily-heading h2{font-size:21px;margin-top:6px}.today-view .daily-group{margin:14px 0}.today-view .daily-group .course{padding:18px 20px;border-radius:16px}.today-view .daily-group .course h3{font-size:23px;margin:12px 0 6px}.today-view .daily-group .course p{font-size:13px;line-height:1.6;margin:8px 0}.today-view .daily-group .course>span:last-child{display:block;margin-top:12px;font-size:13px;color:#466d5c}@media(max-width:600px){.app-shell{padding-top:14px}.topbar{margin-bottom:14px;gap:10px}.brand{gap:9px}.brand-mark{width:34px;height:34px;font-size:21px;border-radius:11px}.brand strong{font-size:18px}.brand small{display:none}.streak{gap:4px}.streak strong{font-size:17px}.streak small{font-size:10px}.family-bar{margin:4px 0 16px}.student-switcher summary{padding:7px 11px 7px 7px;gap:9px;border-radius:13px}.switcher-avatar{width:32px;height:32px;border-radius:10px;font-size:18px}.switcher-copy>small{display:none}.switcher-copy>strong{font-size:13px}.switcher-copy>strong>span{font-size:10px}.today-view .hero-card{padding:22px;border-radius:20px}.today-view .hero-card #heroTitle{font-size:28px}.today-view #heroPoemPreview{font-size:17px;margin:12px 0 16px}.today-view #heroTaskProgress{margin-top:18px;padding-top:13px}.today-view .stat-icon{display:none}.today-view .stat-card{text-align:center;padding:0 5px}.today-view .stat-card small{font-size:10px}.today-view .stats-row{padding:12px 0}.bottom-nav{padding:6px 0 calc(5px + env(safe-area-inset-bottom,0px))}.bottom-nav a{min-height:48px;gap:4px;font-size:11px;padding:4px 6px}.bottom-nav a svg{width:23px;height:23px}.today-view .daily-heading .eyebrow{font-size:10px}.today-view .daily-heading>a{font-size:11px;padding:8px 11px}.app-shell{padding-bottom:calc(90px + env(safe-area-inset-bottom,0px))}.today-view .daily-empty{padding:22px 18px}}
.modal-backdrop#modalBackdrop{z-index:100;padding:24px;background:#23332e80}
#modalBackdrop.hidden{display:none}
#modalBackdrop .learning-modal{display:flex;flex-direction:column;max-width:680px;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);padding:0;overflow:hidden;box-shadow:0 24px 80px #172a3530}
#modalBackdrop .learning-header{position:relative;flex-shrink:0;display:flex;align-items:center;min-height:64px;padding:14px 72px 14px 24px;border-bottom:1px solid var(--line)}
#modalBackdrop .close-btn{top:10px;right:14px;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#efeee6;font-size:27px;line-height:1}
#modalBackdrop .learning-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:8px 28px 24px;overflow-wrap:anywhere}
#modalBackdrop h2{font-size:30px;line-height:1.35;margin:14px 0 8px}
#modalBackdrop .author{margin:0 0 18px}
#modalBackdrop .reading-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
#modalBackdrop .course-actions{display:contents}
#modalBackdrop .reading-tools button{font-size:13px;min-height:44px;padding:10px 12px;border-radius:12px;font-weight:500}
#modalBackdrop #speakBtn{background:#e8f0e6}
#modalBackdrop .memory-banner{display:block;margin:18px 0 12px;padding:14px 16px;font-size:13px}
#modalBackdrop .memory-banner strong{display:block;margin-bottom:6px;font-size:12px}
#modalBackdrop .poem-lines{font-size:22px;line-height:2;padding:12px 0 22px}
#modalBackdrop .quiz-options{display:grid;grid-template-columns:1fr;gap:8px}
#modalBackdrop .quiz-option{min-height:44px;text-align:left;font-size:14px}
#modalBackdrop .modal-actions{flex-shrink:0;display:grid;grid-template-columns:1fr 1.5fr;gap:8px;margin:0;padding:14px 24px;border-top:1px solid var(--line);background:var(--white)}
#modalBackdrop .modal-actions button{min-width:0;min-height:46px;padding:11px 8px;font-size:14px;border-radius:12px;box-shadow:none;white-space:nowrap}
#modalBackdrop :focus-visible{outline:2px solid var(--green);outline-offset:2px}
@media(max-width:600px){
 .modal-backdrop#modalBackdrop{padding:0;align-items:end}
 #modalBackdrop .learning-modal{width:100%;max-width:none;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;border-radius:0}
 #modalBackdrop .learning-header{min-height:60px;padding:12px 68px 12px 20px;padding-top:max(12px,env(safe-area-inset-top,0px))}
 #modalBackdrop .learning-scroll{padding:4px 20px 20px}
 #modalBackdrop h2{font-size:26px}
 #modalBackdrop .poem-lines{font-size:21px;line-height:1.95;padding:10px 0 22px}
 #modalBackdrop .explanation,#modalBackdrop .quiz-box{font-size:14px;padding:14px}
 #modalBackdrop .modal-actions{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));gap:6px}
 #modalBackdrop .modal-actions button{font-size:13px}
}
/* The reader uses document scrolling and browser history, rather than an overlay. */
body.learning-view .app-shell{display:none!important}
#modalBackdrop.learning-page{position:static;display:block;inset:auto;padding:0;background:var(--paper);min-height:100vh;min-height:100dvh}
#modalBackdrop.learning-page.hidden{display:none}
#modalBackdrop.learning-page .learning-modal{display:block;width:100%;height:auto;max-height:none;max-width:720px;margin:auto;overflow:visible;border-radius:0;box-shadow:none;padding-bottom:100px}
#modalBackdrop.learning-page .learning-header{position:sticky;top:0;z-index:2;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;min-height:64px;padding:10px 20px;background:var(--paper)}
#modalBackdrop.learning-page .close-btn{position:static;width:auto;height:44px;padding:0 12px;font-size:14px;border-radius:10px;flex-shrink:0}
#modalBackdrop.learning-page #learningStep{font-size:12px;color:var(--green);margin-right:auto}
#modalBackdrop.learning-page .modal-top{gap:4px}
#modalBackdrop.learning-page .learning-scroll{overflow:visible;padding:10px 24px 24px}
#modalBackdrop.learning-page h2{margin-top:20px}
#modalBackdrop.learning-page .poem-lines{padding:24px 0 30px}
#modalBackdrop.learning-page .learning-next{display:block;width:100%;margin-top:26px;min-height:48px}
#modalBackdrop.learning-page .modal-actions{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:720px;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));z-index:2}
#modalBackdrop.learning-page .recall-intro,#modalBackdrop.learning-page #rawRecallNote{font-size:14px;line-height:1.8;color:var(--muted)}
#modalBackdrop.learning-page #backToReading{margin-top:22px;min-height:44px;font-size:14px}
#modalBackdrop.learning-page #recallStatus{color:var(--green);font-size:14px;line-height:1.7}
@media(max-width:400px){#modalBackdrop.learning-page .learning-header{padding:8px 16px;gap:6px}#modalBackdrop.learning-page .modal-top{width:100%;padding-bottom:4px}#modalBackdrop.learning-page .learning-scroll{padding:8px 20px 24px}}
#modalBackdrop.learning-page button:disabled{cursor:default;opacity:.5;box-shadow:none}
.voice-settings{margin:12px 0;color:var(--green);font-size:13px}.voice-settings summary{cursor:pointer;padding:8px 0}.voice-options{display:flex;flex-wrap:wrap;gap:12px;padding-top:12px}.voice-options label{display:flex;flex-direction:column;gap:8px;min-width:0;flex:1 1 150px}.voice-options select{font:inherit;font-size:16px;max-width:100%;width:100%;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--white);color:var(--ink)}.voice-settings p,.speech-status{font-size:12px;line-height:1.6;color:var(--muted)}.speech-status:empty{display:none}
.cloud-reading{background:#e8f0e6;border-radius:16px;padding:16px;margin:18px 0}.cloud-reading-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.cloud-reading-heading strong{font-size:14px;color:var(--green)}.cloud-reading-heading button{font-size:13px;padding:10px 14px;min-height:44px}.cloud-reading p{font-size:12px;line-height:1.7;color:var(--muted);margin:10px 0 0}.cloud-reading audio{width:100%;margin-top:12px}
#modalBackdrop.learning-page .poem-reading{text-align:center;padding:20px 0 8px}
#modalBackdrop.learning-page .poem-reading h2{font-family:serif;font-size:28px;line-height:1.5;margin:0 0 10px;white-space:normal;overflow-wrap:anywhere}
#modalBackdrop.learning-page .poem-reading .author{font-size:14px;margin:0 0 12px;line-height:1.7}
#modalBackdrop.learning-page .poem-reading .poem-lines{padding-top:12px}
#modalBackdrop.learning-page .cloud-reading{display:flex;align-items:center;flex-wrap:wrap;gap:0 10px;padding:6px 12px;margin:12px 0;border-radius:12px;background:#edf2e9}
#modalBackdrop.learning-page .cloud-reading-heading{display:contents}
#modalBackdrop.learning-page .cloud-reading-heading strong{font-size:12px;font-weight:500;white-space:nowrap}
#modalBackdrop.learning-page .cloud-reading-heading button{margin-left:auto;min-height:40px;padding:8px 14px;border-radius:10px;box-shadow:none}
#modalBackdrop.learning-page .cloud-reading audio{flex:1;width:0;min-width:0;height:44px;margin:0}
#modalBackdrop.learning-page .cloud-reading p{flex-basis:100%;margin:4px 0;font-size:12px}
#modalBackdrop.learning-page .cloud-reading p:empty{display:none}
@media(max-width:360px){#modalBackdrop.learning-page .cloud-reading{gap:0 4px;padding:6px 8px}#modalBackdrop.learning-page .cloud-reading-heading strong{font-size:11px}}
#modalBackdrop.learning-page .lesson-complete{text-align:center;padding:36px 12px}
.lesson-complete-mark{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:#e2efdf;color:var(--green);font-size:32px;margin:0 auto 20px}
.lesson-complete p{font-size:15px;line-height:1.8;color:var(--muted)}
.lesson-complete #lessonProgress{color:var(--green);font-weight:600}
.lesson-complete #lessonSaveStatus{font-size:12px}
.lesson-complete button{display:block;max-width:100%;margin:24px auto 18px;min-height:48px;white-space:normal;overflow-wrap:anywhere}
.lesson-complete a{font-size:13px}
.today-summary{padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--white);margin:20px 0 28px}.today-summary-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:15px}.today-summary-heading a{font-size:12px;text-decoration:none}.today-summary-numbers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:20px 0}.today-summary-numbers strong{display:block;font-size:26px;color:var(--green);font-weight:600}.today-summary-numbers span{display:block;font-size:12px;color:var(--muted);margin-top:6px}.today-summary progress{display:block;width:100%;height:6px;accent-color:var(--green)}.today-summary p{font-size:13px;line-height:1.8;margin:12px 0 0;color:var(--green)}.today-summary .summary-note{font-size:12px;color:var(--muted)}@media(max-width:480px){.today-summary{padding:16px}.today-summary-numbers{gap:6px}.today-summary-numbers span{font-size:11px}.today-summary-numbers strong{font-size:23px}}
.today-view .hero-card.tasks-complete #startToday{display:inline-flex;align-items:center;justify-content:center;margin-top:20px;min-height:44px;padding:10px 17px;border:1px solid #a5b7a080;border-radius:12px;background:#fffdf970;color:var(--green);font-size:13px;font-weight:500;box-shadow:none;transition:background .15s,border-color .15s}
.today-view .hero-card.tasks-complete #startToday:hover{background:#fffdf9;border-color:#7e9b83}
.today-view .hero-card.tasks-complete #startToday:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.today-view .hero-card.tasks-complete #heroTaskProgress{margin-top:24px}
.summary-compact .summary-total{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0}.summary-total>div{display:flex;align-items:baseline;gap:9px}.summary-total strong{font-size:36px;line-height:1.2;color:var(--green);font-weight:600;font-variant-numeric:tabular-nums}.summary-total span{font-size:12px;color:var(--muted)}.summary-total .summary-state{font-size:11px;background:#edf3e8;color:var(--green);padding:7px 10px;border-radius:20px}.summary-breakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0}.summary-breakdown>div{min-width:0;background:#f6f7f0;border-radius:12px;padding:14px 16px}.summary-breakdown>div>span{display:block;font-size:12px;color:var(--muted)}.summary-breakdown strong{display:block;color:var(--green);font-size:24px;margin-top:8px;font-variant-numeric:tabular-nums}.summary-breakdown small{font-size:13px;font-weight:400;color:var(--muted)}.today-summary .summary-breakdown p{font-size:11px;color:var(--muted);margin-top:5px}.summary-rules{margin-top:14px;font-size:11px;color:var(--muted)}.summary-rules summary{cursor:pointer;padding:5px 0}.today-summary .summary-extra{font-size:12px}.today-summary .summary-shortage{font-size:12px;color:#926c3c}@media(max-width:480px){.summary-compact .summary-total{align-items:flex-start;flex-wrap:wrap}.summary-breakdown{gap:10px}.summary-breakdown>div{padding:12px}.summary-total strong{font-size:30px}}
.collection-link{display:block;text-decoration:none}.collection-link:focus-visible{outline:2px solid var(--green);outline-offset:4px}
.books-load-more{display:flex;flex-direction:column;align-items:center;gap:12px;margin:28px 0 20px}.books-load-more>span{font-size:12px;color:var(--muted)}.books-load-more #booksMore{min-height:46px;min-width:180px;font-size:14px}.books-load-more #booksMore:disabled{opacity:.6;cursor:wait}.books-top{position:fixed;right:max(16px,calc((100vw - 1080px)/2));bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:6;min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:24px;background:var(--white);color:var(--green);box-shadow:0 4px 14px #24332e12;font-size:12px}

/* Star control stays available while the poem is hidden for recitation. */
.poem-reading-wrap{position:relative;padding-top:44px}
#modalBackdrop .poem-favorite{position:absolute;right:0;top:0;width:44px;height:44px;padding:0;display:grid;place-items:center;border:1px solid #e7dfcf;border-radius:50%;background:transparent;color:#8c8f7e;font-size:28px;line-height:1;cursor:pointer;box-shadow:none}
#modalBackdrop .poem-favorite[aria-pressed="true"]{color:#bb852a;background:#fff3d9;border-color:#edd6a8}
#modalBackdrop .poem-favorite:focus-visible{outline:2px solid #456e5c;outline-offset:3px}

.corpus-poem-card{cursor:pointer}
.corpus-poem-card:focus-visible{outline:2px solid #456e5c;outline-offset:3px}
.corpus-poem-card .course-actions label{cursor:pointer}

#modalBackdrop.learning-page .cloud-reading-heading button{margin-left:0;background:transparent;color:var(--green);padding:8px 4px;font-weight:600}

#booksSearch.library-search{display:flex;align-items:center;gap:10px;padding:8px;background:var(--white);border:1px solid var(--line);border-radius:16px;margin:8px 0 28px}
#booksSearch.library-search input{flex:1;min-width:0;width:auto;border:0;background:transparent;padding:10px 12px;font-size:16px;margin:0}
#booksSearch.library-search button{flex-shrink:0;min-height:44px;padding:10px 20px;border-radius:11px;box-shadow:none}
.library-collections-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
.library-collections-heading>div>p:last-child{margin-bottom:0}
.library-collections-heading>a{flex-shrink:0;font-size:14px;text-decoration:none}
@media(max-width:540px){.library-collections-heading{align-items:flex-start;flex-direction:column;gap:12px}#booksSearch.library-search{gap:4px}#booksSearch.library-search input{padding:10px 6px}#booksSearch.library-search button{padding:10px 14px}}

#modalBackdrop .poem-favorite{width:auto;min-height:44px;height:auto;padding:8px 12px;border-radius:12px;font-size:13px;color:var(--green);background:var(--cream)}
#modalBackdrop .poem-favorite[aria-pressed="true"]{background:#e8f1e6;border-color:#cadbcb;color:var(--green)}

/* Shared compact spacing for phone screens. Keep touch controls at least 44px. */
@media (max-width:600px){
 .app-shell{padding:12px 14px calc(82px + env(safe-area-inset-bottom,0px))}
 .topbar{margin-bottom:12px}
 .family-bar,.family-view .family-bar{margin:4px 0 12px;gap:10px}
 .family-panel{margin:12px 0}
 .primary-btn,.secondary-btn{min-height:44px;padding:10px 14px;border-radius:12px;font-size:14px}
 .plan-page-heading,.profile-heading{margin:12px 0 16px}
 .plan-page-heading h2,.profile-heading h1{font-size:25px;line-height:1.4;margin:6px 0}
 .plan-page-heading p,.profile-heading p{margin:6px 0;line-height:1.6}
 .plan-back{margin-top:0;min-height:44px;display:inline-flex;align-items:center}
 .course-grid{gap:12px}
 .course,.today-view .daily-group .course{padding:16px;border-radius:16px;min-width:0}
 .course h3,.today-view .daily-group .course h3{font-size:22px;line-height:1.4;margin:12px 0 6px}
 .course p,.today-view .daily-group .course p{font-size:14px;line-height:1.65;margin:6px 0}
 .course-actions{gap:8px;margin:12px 0 0}
 .course-actions label{margin:0;min-height:44px;font-size:14px;gap:8px}
 .course-actions input[type=checkbox]{width:18px;height:18px;margin:0}
 .collection-link>span:last-child{display:block;font-size:14px;margin-top:10px}
 #booksSearch.library-search{padding:5px 8px;margin:0 0 18px;border-radius:14px}
 .library-collections-heading{gap:6px;margin:0 0 14px}
 .library-collections-heading>a{display:inline-flex;align-items:center;min-height:44px}
 .corpus-section{margin-top:16px;padding-top:12px}
 .selection-bar{padding:12px;margin:0 0 12px;gap:8px;border-radius:12px}
 .selection-bar>span{flex-basis:100%}
 .corpus-section>p{margin:10px 0}
 .books-load-more{margin:18px 0 12px;gap:8px}
 .today-view .hero-card{padding:18px;border-radius:18px}
 .today-view .hero-card #heroTitle{font-size:25px;line-height:1.4;margin:8px 0}
 .today-view #heroPoemPreview{margin:10px 0 12px}
 .today-view #heroTaskProgress,.today-view .hero-card.tasks-complete #heroTaskProgress{margin-top:14px;padding-top:12px}
 .today-view .hero-card.tasks-complete #startToday{margin-top:12px}
 .today-view .daily-section{margin:18px 0 8px}
 .today-view .daily-heading{gap:8px;margin-bottom:12px}
 .today-view .daily-group{margin:12px 0}
 .today-view .stats-row{margin:16px 0 10px;padding:10px 0}
 .today-summary{padding:14px;margin:14px 0 18px;border-radius:16px}
 .summary-compact .summary-total{margin:12px 0}
 .summary-breakdown{margin:12px 0;gap:8px}
 .summary-breakdown>div{padding:10px 12px}
 .summary-breakdown strong{margin-top:4px;font-size:22px}
 .summary-rules{margin-top:8px}
 .summary-rules summary{min-height:44px;display:flex;align-items:center}
 .daily-empty,.saved-plan-empty{padding:20px 16px;border-radius:16px}
 .daily-empty-actions{margin-top:16px;gap:12px;flex-wrap:wrap}
 .saved-plan-card{padding:16px;margin:14px 0 18px;border-radius:16px}
 .saved-plan-top{gap:10px}.saved-plan-top h3{font-size:22px;margin:6px 0}
 .saved-plan-metrics{gap:28px;margin:16px 0}
 .saved-plan-metrics strong{font-size:30px}.saved-plan-metrics span{margin-top:4px}
 .saved-plan-details{padding-top:12px;gap:8px;margin-bottom:14px}
 .saved-plan-actions{gap:8px}.saved-plan-actions button{min-height:44px}
 .week-grid,.calendar{gap:8px;margin:12px 0 18px}
 .week-grid>div,.calendar>div{padding:10px 4px}
 .family-panel form{padding:14px;margin:12px 0}
 #planForm>label{display:flex;align-items:center;gap:8px;margin:10px 0}
 #planForm input,#planForm select,.profile-editor input,.profile-editor select,.student-create-dialog input,.student-create-dialog select,.auth-card input{font-size:16px;min-height:44px;min-width:0}
 #planForm fieldset{margin:12px 0;padding:8px;border-radius:12px}
 #planForm fieldset label{display:inline-flex;min-height:44px;margin:0 6px;gap:6px}
 #planForm input[type=checkbox]{min-height:0;width:18px;height:18px}
 .record-row{padding:12px;margin:8px 0;gap:8px}
 .record-row button{min-height:44px;padding:8px 12px;border-radius:10px;color:var(--green)}
 .growth-card{padding:18px;border-radius:18px}.growth-intro{gap:12px}
 .profile-avatar{width:48px;height:48px;border-radius:14px;font-size:25px}
 .growth-stats{margin:18px 0 16px}.growth-stats>div{padding-left:12px}
 .growth-stats strong{font-size:30px}.growth-stats span{margin-top:6px;line-height:1.5}
 .growth-bottom{padding-top:12px;gap:8px;flex-wrap:wrap;align-items:center}
 .growth-bottom a,.growth-link{min-height:44px;display:inline-flex;align-items:center}
 .family-section-title{margin:20px 0 12px}.add-student-button{min-height:44px}
 .student-cards{gap:12px}.student-tile{padding:14px;border-radius:14px}
 .student-tile h3{margin:10px 0 6px}.student-tile-actions{margin-top:12px;padding-top:6px}
 .student-tile-actions button{min-height:44px;padding:8px 4px}
 .profile-editor{padding:14px;margin-top:14px}.editor-header button{min-width:44px;min-height:44px}
 .family-shortcuts{gap:10px;margin:16px 0}.family-shortcuts :is(a:not([data-download]), .daily-settings-row){padding:14px}
 .signed-in.family-view .app-shell>.account-bar{margin-top:16px;padding:14px}
 .student-create-dialog{padding:18px;border-radius:18px}.dialog-description{margin:12px 0 16px}
 .student-dialog-actions{padding-top:12px;gap:8px}
 .auth-card{margin:24px 14px;padding:20px;border-radius:18px}
 .bottom-nav{padding:5px 0 calc(5px + env(safe-area-inset-bottom,0px))}
 .bottom-nav a{min-height:48px;gap:3px}
 #modalBackdrop.learning-page .learning-header{padding:6px 14px;min-height:56px;gap:6px}
 #modalBackdrop.learning-page .modal-top{width:auto;padding:0}
 #modalBackdrop.learning-page .learning-scroll{padding:8px 16px 18px}
 #modalBackdrop.learning-page .learning-modal{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
 #modalBackdrop.learning-page .cloud-reading{margin:6px 0 10px;padding:4px 10px}
 #modalBackdrop.learning-page .cloud-reading-heading button{min-height:44px}
 #modalBackdrop .memory-banner{margin:12px 0;padding:12px;border-radius:12px}
 #modalBackdrop .memory-banner span{font-size:14px;line-height:1.65}
 #modalBackdrop.learning-page .poem-reading{padding:12px 0 6px}
 #modalBackdrop.learning-page .poem-reading h2{font-size:25px;margin:0 0 6px}
 #modalBackdrop.learning-page .poem-reading .author{margin-bottom:8px}
 #modalBackdrop.learning-page .poem-reading .poem-lines{font-size:21px;line-height:1.9;padding:10px 0 18px}
 #modalBackdrop .explanation,#modalBackdrop .quiz-box{padding:12px;border-radius:12px}
 #modalBackdrop.learning-page .recall-intro{margin:12px 0;line-height:1.65}
 #modalBackdrop.learning-page .modal-actions{padding:8px 14px calc(8px + env(safe-area-inset-bottom,0px));gap:8px}
 #modalBackdrop.learning-page .lesson-complete{padding:24px 0}
 .lesson-complete-mark{margin-bottom:14px}.lesson-complete button{margin:16px auto}
}

/* Independent search fields; combine filled fields with AND. */
#booksSearch.library-search{align-items:flex-end;gap:12px;padding:14px}
#booksSearch.library-search label{display:flex;flex:1;min-width:0;flex-direction:column;align-items:stretch;gap:6px;margin:0;font-size:13px;color:var(--green)}
#booksSearch.library-search input{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--paper);min-height:44px}
@media(max-width:600px){#booksSearch.library-search{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px}#booksSearch.library-search label:last-of-type{grid-column:1 / -1}#booksSearch.library-search button{grid-column:1 / -1}#booksSearch.library-search input{padding:10px;font-size:16px}}

.school-lists{margin:20px 0 28px}.school-lists h2{font:25px serif;margin:0 0 8px}
.school-entry-list{display:grid;gap:10px}.school-entry{display:flex;align-items:center;gap:12px;border:1px solid var(--line);background:var(--white);padding:14px;border-radius:14px}
.school-entry>div{flex:1;min-width:0}.school-entry strong{font-size:16px;overflow-wrap:anywhere}.school-entry p{font-size:12px;color:var(--muted);margin:5px 0}.school-entry small{font-size:11px;color:var(--muted)}
.school-number{font-size:13px;color:var(--muted);min-width:22px}.school-entry label{min-height:44px;font-size:13px;margin:0;white-space:nowrap}.school-entry input{width:18px;height:18px}.school-unavailable{font-size:12px;color:var(--muted);white-space:nowrap}
@media(max-width:600px){.school-lists{margin:18px 0 22px}.school-entry{gap:8px;padding:12px;flex-wrap:wrap}.school-entry>div{flex-basis:calc(100% - 34px)}.school-entry>button{margin-left:30px}.school-entry>label{margin-left:auto}.school-entry .school-unavailable{margin-left:30px}}

/* Plan scope and schedule fields share a predictable responsive grid. */
#planForm{padding:20px;background:var(--white)}
#planForm .plan-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
#planForm .plan-field-grid>label{display:flex;flex-direction:column;align-items:stretch;gap:8px;margin:0;font-size:13px;color:var(--muted)}
#planForm .plan-field-wide{grid-column:1 / -1}
#planForm .plan-field-grid input,#planForm .plan-field-grid select{width:100%;min-width:0;min-height:44px;font-size:16px;padding:10px 12px}
#planForm .plan-scope-note{font-size:13px;line-height:1.7;padding:12px;margin:16px 0;background:#edf2e9;border-radius:12px;color:var(--green)}
#planForm .plan-scope-note button{display:block;margin-top:8px}
#planForm .plan-scope-preview{margin:12px 0;font-size:13px;color:var(--green)}
#planForm .plan-scope-preview summary{padding:12px 0;cursor:pointer;min-height:44px}
#planForm .plan-scope-preview ol{max-height:240px;overflow:auto;line-height:1.8;padding-left:26px}
#planForm fieldset{margin:16px 0;padding:12px}
#planForm fieldset label{min-height:44px;margin:0 8px 0 0}
#planForm .plan-form-actions{display:flex;align-items:center;gap:12px;margin-top:16px}
#planForm .plan-cancel{margin:0;min-height:44px;display:inline-flex;align-items:center;padding:8px 12px}
#planForm #planMessage{display:block;margin:8px 0;font-size:13px;color:var(--green)}
@media(max-width:600px){#planForm{padding:14px}#planForm .plan-field-grid{gap:12px}#planForm .plan-field-grid>label{gap:6px}#planForm .plan-field-grid>label:has(input[type=date]){grid-column:1 / -1}#planForm fieldset{padding:8px}#planForm .plan-form-actions{margin-top:12px}#planForm .plan-form-actions button{flex:1}}

.plan-stage-picker{margin:0 0 20px}.plan-stage-picker h3{font-size:20px;margin:0 0 6px}.plan-stage-picker>p{font-size:13px;color:var(--muted);margin:0 0 12px}
.plan-stage-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.plan-stage-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-align:left;padding:16px 12px;border:1px solid var(--line);border-radius:14px;background:var(--paper);color:var(--ink)}
.plan-stage-card strong{font-size:17px}.plan-stage-card small,.plan-stage-card span{font-size:12px;color:var(--muted)}
.plan-stage-card.selected{border-color:var(--green);background:#e8f1e6;box-shadow:inset 0 0 0 1px var(--green)}
@media(max-width:600px){.plan-stage-options{grid-template-columns:1fr;gap:8px}.plan-stage-card{display:grid;grid-template-columns:1fr auto;gap:5px 12px;padding:12px}.plan-stage-card small{grid-column:2;grid-row:1}.plan-stage-card strong{grid-column:1;grid-row:1}.plan-stage-card span{grid-column:1 / -1}.plan-stage-picker{margin-bottom:16px}}

#planForm .plan-alternatives{margin:0 0 16px;color:var(--green);font-size:13px}
#planForm .plan-alternatives summary,#planForm .plan-name-editor summary{cursor:pointer;min-height:44px;padding:12px 0}
.plan-alternative-options{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 12px}
.plan-alternative-options button[aria-pressed="true"]{background:var(--green);color:white}
#planForm .plan-alternatives>label,#planForm .plan-name-editor>label{display:flex;flex-direction:column;align-items:stretch;gap:6px;margin:8px 0;font-size:13px}
#planForm .plan-name-editor{margin:10px 0;font-size:13px;color:var(--muted)}
#planForm .plan-name-editor input{width:100%;min-height:44px;font-size:16px}

#planForm .plan-missing-preview{color:#8a693b;background:#f7f0e4;border-radius:12px;padding:0 12px}
#planForm .plan-missing-preview p{font-size:12px;line-height:1.7;margin:0 0 10px}
#planForm .plan-missing-preview li{padding:3px 0}
#planForm .plan-missing-preview strong{font-weight:500}

.plan-custom-card{width:100%;margin-top:10px}.plan-custom-panel{padding:14px;background:#f5f5ee;border-radius:14px;margin-bottom:16px}.plan-custom-panel h3{font-size:17px;margin:0 0 8px}.plan-custom-panel p{font-size:13px;color:var(--muted);line-height:1.7}
.custom-pick-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.custom-pick-actions a{font-size:13px;padding:12px 0}
.custom-poem-options{max-height:280px;overflow:auto;margin-top:12px}.custom-poem-options label{display:flex;flex-wrap:nowrap;align-items:center;gap:10px;padding:8px 0;margin:0;min-height:44px;font-size:14px}.custom-poem-options input{width:18px;height:18px;flex-shrink:0}.custom-poem-options small{display:block;color:var(--muted);font-size:12px;margin-top:4px}

#planForm .plan-checklist{max-height:420px;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:0 12px}
#planForm .plan-checklist-row{display:flex;flex-wrap:nowrap;align-items:center;gap:10px;margin:0;padding:10px 0;min-height:48px;border-bottom:1px solid var(--line);font-size:14px}
#planForm .plan-checklist-row:last-child{border-bottom:0}
.plan-checklist-row input{width:18px;height:18px;flex-shrink:0}.checklist-number{color:var(--muted);min-width:24px}.checklist-title{flex:1;min-width:0;overflow-wrap:anywhere}.checklist-title small{display:block;font-size:12px;color:var(--muted);margin-top:3px}.plan-checklist-row.unavailable{color:#8b928c}.checklist-status{font-size:11px;white-space:nowrap;color:#8b928c}
@media(max-width:600px){#planForm .plan-checklist{max-height:360px;padding:0 10px}#planForm .plan-checklist-row{gap:8px}}

.saved-plan-library{margin:24px 0}.saved-plan-library-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.saved-plan-library-heading h3{font-size:20px;margin:0 0 6px}.saved-plan-library-heading p{font-size:13px;color:var(--muted);margin:0}.saved-plan-library-heading a{text-decoration:none;white-space:nowrap;font-size:13px}
.named-plan{padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--white);margin:12px 0}.named-plan h3{font-size:20px;margin:0 0 8px;overflow-wrap:anywhere}.named-plan p,.named-plan small{font-size:13px;color:var(--muted)}.named-plan-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
#planForm .plan-execution-choice{display:flex;align-items:center;flex-direction:row;gap:8px;min-height:44px;font-size:14px;margin:12px 0}
#planForm .plan-execution-choice input{width:18px;height:18px;min-height:0}
@media(max-width:600px){.saved-plan-library{margin:18px 0}.saved-plan-library-heading{align-items:flex-start;flex-wrap:wrap}.named-plan{padding:14px}}

.plan-custom-create{margin-top:12px}.plan-stage-options+.plan-stage-options{margin-top:12px}.plan-stage-card[aria-pressed="true"]{border-color:var(--green);background:#e8f0e5}.plan-destination-list{display:grid;gap:10px;margin:16px 0;max-height:50vh;overflow:auto}.plan-destination-list button{display:flex;justify-content:space-between;gap:12px;padding:16px;text-align:left;border:1px solid #dedfd4;border-radius:14px;background:#fffdf8}.student-create-dialog form>label{display:grid;gap:8px}.student-create-dialog form>label input{width:100%;min-height:44px}

#planForm .plan-schedule-settings{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
#planForm .plan-schedule-settings>h3{margin:0 0 14px;font-size:18px}
#planForm .plan-schedule-settings fieldset{margin-bottom:0}
#planForm .plan-stage-picker+.plan-scope-preview{margin-top:16px}
@media(max-width:600px){#planForm .plan-schedule-settings{margin-top:16px;padding-top:12px}}

#planForm .plan-picker-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
#planForm .plan-picker-heading h3{margin:0;white-space:nowrap}
#planForm .plan-picker-heading .plan-custom-create{margin:0;padding:8px 12px;min-height:44px;font-size:14px;white-space:nowrap;border-radius:12px;box-shadow:none}
@media(max-width:600px){#planForm .plan-picker-heading h3{font-size:18px}#planForm .plan-picker-heading .plan-custom-create{font-size:12px;padding:8px}}
/* Private learning groups */
.groups-forms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.group-panel{display:block;border:1px solid var(--line);border-radius:18px;padding:20px;margin-bottom:16px;background:#fffdf8}.group-panel h3{margin:0 0 12px}.group-panel label{display:grid;gap:8px;margin:10px 0}.group-panel input{width:100%;min-width:0;min-height:44px}.group-card{text-decoration:none;color:inherit}.group-help{font-size:13px;color:var(--muted);line-height:1.7}.group-invite,.group-board-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.group-invite strong{display:block;font-size:23px;letter-spacing:2px;user-select:all}.group-board-heading label{font-size:13px}.group-ranking{padding:0;list-style:none}.group-ranking li{display:flex;align-items:center;gap:12px;padding:14px 8px;border-bottom:1px solid var(--line)}.group-ranking .is-me{background:#e9f1e6;border-radius:12px}.rank-number{min-width:25px;font-weight:700;color:var(--green)}.rank-name{flex:1;overflow-wrap:anywhere}.rank-name>small{display:block;color:var(--muted);font-size:12px}.group-ranking strong small{font-weight:400;font-size:12px}.group-actions{display:flex;gap:16px}#groupMessage{color:var(--green);margin:10px 0}@media(max-width:600px){.groups-forms{grid-template-columns:1fr;gap:0}.group-panel{padding:14px}.group-invite{flex-wrap:wrap}.group-invite strong{font-size:20px}}

/* Consistent spacing and controls throughout group pages. */
.groups-page{max-width:920px;margin:16px auto 0;width:100%}
.groups-page .group-back{display:inline-flex;align-items:center;min-height:44px;font-size:13px;text-decoration:none;color:var(--green)}
.groups-page .plan-page-heading{margin:6px 0 22px}
.groups-page .plan-page-heading h2{margin:0 0 8px;font-size:28px;line-height:1.35;overflow-wrap:anywhere}
.groups-page .plan-page-heading p{margin:0;font-size:14px;line-height:1.65}
.groups-page #groupMessage:empty{display:none}
.groups-page #groupMessage:not(:empty){padding:10px 12px;border-radius:10px;background:#eaf1e7;font-size:13px;margin:0 0 14px;overflow-wrap:anywhere}
.groups-page .groups-forms{gap:16px;align-items:stretch}
.groups-page .group-panel{margin:0 0 16px;padding:20px;border-radius:16px;min-width:0}
.groups-page .groups-forms form{display:flex;flex-direction:column;gap:16px;margin:0;padding:20px;border:1px solid var(--line)}
.group-form-heading{display:flex;align-items:center;gap:12px}
.group-form-icon{display:grid;place-items:center;flex:0 0 40px;height:40px;border-radius:12px;background:#e8f0e5;color:var(--green);font-size:22px}
.groups-page .group-form-heading h3{margin:0 0 4px;font-size:17px;line-height:1.4}
.group-form-heading p{margin:0;font-size:12px;color:var(--muted);line-height:1.5}
.groups-page .group-panel label{display:grid;gap:7px;margin:0;font-size:13px;color:#617168}
.groups-page input,.groups-page select{font-size:16px;min-height:44px;padding:10px 12px;border-radius:10px;background:var(--white);line-height:1.4}
.groups-page button{min-height:44px;padding:10px 16px;border-radius:11px;font-size:14px;line-height:1.4;box-shadow:none}
.groups-page .groups-forms button{align-self:stretch;margin:0}
.groups-page .group-help{margin:10px 0 0;line-height:1.65;font-size:12px}
.groups-page>.group-help{margin:10px 2px 24px}
.my-groups>h3{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:18px}
.my-groups>h3 small{font-size:12px;font-weight:400;color:var(--muted);padding:3px 8px;border-radius:20px;background:#eaf0e6}
.groups-page .course-grid{gap:12px;margin:0}
.groups-page .group-card{margin:0;transition:border-color .15s,background .15s}
.groups-page .group-card:hover{border-color:var(--green);background:#f5f8f0}
.groups-page .group-card h3{font-size:18px;line-height:1.45;margin:0 0 6px;overflow-wrap:anywhere}
.groups-page .group-card p{font-size:13px;color:var(--muted);margin:0 0 16px}
.groups-page .group-card>span{font-size:13px;color:var(--green)}
.group-empty{grid-column:1 / -1;text-align:center;border:1px dashed #d8dfd1;border-radius:14px;padding:28px 16px;background:#f5f6ee}
.group-empty strong{font-size:15px;font-weight:500}.group-empty p{margin:8px 0 0;font-size:13px;color:var(--muted);line-height:1.6}
.groups-page .group-invite small{font-size:12px;color:var(--muted)}
.groups-page .group-invite strong{margin-top:7px;font-size:22px;line-height:1.4;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.groups-page .group-board-heading h3{font-size:18px;margin:0}.groups-page .group-board-heading label{display:flex;align-items:center;gap:8px}
.groups-page .group-board-heading select{font-size:14px;padding:8px}
.group-rules{margin:12px 0 0;color:var(--muted);font-size:12px}.group-rules summary{cursor:pointer;min-height:36px;padding:8px 0;line-height:1.6}
.groups-page #groupRanking>p{font-size:12px;color:var(--muted);margin:8px 0}
.groups-page .group-ranking{margin:0}.groups-page .group-ranking li{padding:12px 10px;gap:12px;min-height:64px}
.groups-page .rank-number{width:28px;min-width:28px;text-align:center;font-size:16px}.groups-page .rank-name{font-size:15px;line-height:1.5}.groups-page .group-ranking strong{font-size:20px;font-variant-numeric:tabular-nums}
.groups-page .group-actions{justify-content:flex-end;gap:10px;margin-top:4px;padding-top:4px;flex-wrap:wrap}
@media(max-width:600px){
 .groups-page{margin-top:8px}.groups-page .plan-page-heading{margin:4px 0 16px}.groups-page .plan-page-heading h2{font-size:24px}.groups-page .plan-page-heading p{font-size:13px}
 .groups-page .groups-forms{gap:12px}.groups-page .groups-forms form{padding:16px;gap:12px}.groups-page .group-panel{padding:16px;margin-bottom:12px}
 .groups-page .groups-forms form{margin:0}.groups-page>.group-help{margin:10px 2px 20px}.groups-page .group-invite{gap:10px}.groups-page .group-invite strong{font-size:19px;letter-spacing:1px}
 .groups-page .group-board-heading{gap:8px}.groups-page .group-board-heading h3{font-size:17px}.groups-page .group-board-heading label{font-size:12px;gap:5px}
 .group-empty{padding:24px 14px}.groups-page .group-actions button{font-size:13px}
}

.groups-page .group-list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.groups-page .group-list-heading h3{margin:0;font-size:18px;display:flex;gap:8px;align-items:center}
.groups-page .group-list-heading h3 small{font-size:12px;font-weight:400;color:var(--muted)}
.group-list-controls{display:flex;gap:8px}.groups-page .group-list-controls button{padding:8px 12px;font-size:13px}
.groups-page .my-groups .groups-forms{grid-template-columns:1fr;gap:0;margin-bottom:16px}
.groups-page .my-groups .groups-forms>.group-help{margin:8px 2px 0}
.groups-page .groups-forms .group-form-cancel{align-self:flex-end;background:transparent;color:var(--muted);padding:8px 12px}
.groups-page .group-list-controls button[aria-expanded="true"]{background:#e4edde;color:var(--green-dark)}
@media(max-width:420px){.groups-page .group-list-heading{gap:8px}.groups-page .group-list-heading h3{font-size:16px}.groups-page .group-list-controls button{padding:8px;font-size:12px}}

/* Keep invitations secondary to the ranking. */
.groups-page .group-invitation{margin:4px 0 12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:0 4px}
.groups-page .group-invitation>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:10px 0;cursor:pointer;color:var(--green);font-size:13px;list-style:none}
.groups-page .group-invitation>summary::-webkit-details-marker{display:none}
.groups-page .group-invitation[open]>summary>span{transform:rotate(45deg)}
.groups-page .group-invitation .group-invite{padding:8px 0 0}
.groups-page .group-invitation .group-invite strong{font-size:16px;letter-spacing:1px;margin-top:4px;font-weight:500}
.groups-page .group-invitation .group-help{margin:8px 0 14px}
.groups-page .group-invitation button{font-size:12px;padding:8px 12px}

/* Group selector and ranking share one screen. */
.groups-page .my-groups{margin-bottom:16px}
.groups-page .group-list-heading .group-switch-label{display:grid;gap:6px;flex:1;min-width:160px;margin:0;font-size:12px;color:var(--muted);max-width:420px}
.groups-page .group-switch-label select{width:100%;color:var(--ink);font-size:15px;min-height:44px;text-overflow:ellipsis}
.groups-page .group-list-heading:has(.group-switch-label){align-items:flex-end}
@media(max-width:600px){.groups-page .group-list-heading .group-switch-label{flex-basis:100%;max-width:none}.groups-page .group-list-heading .group-list-controls{margin-left:auto}.groups-page .my-groups{margin-bottom:12px}}
.group-points-rules{padding:4px 0 10px;font-size:13px;line-height:1.7;color:var(--muted)}.group-points-rules p{margin:8px 0 12px}.group-points-rules strong{color:var(--ink);font-weight:600}.group-points-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;margin:8px 0 14px;border-radius:12px;background:#edf3e8}.group-points-summary>div>small{display:block;font-size:12px;color:var(--muted)}.group-points-summary strong{display:block;font-size:28px;color:var(--green);margin-top:3px;font-variant-numeric:tabular-nums}.group-points-summary strong small{font-size:12px;font-weight:400}.group-points-summary p{font-size:13px;margin:0;line-height:1.7;color:var(--green)}.group-points-summary p span{display:block;font-size:12px;color:var(--muted)}@media(max-width:420px){.group-points-summary{padding:12px;flex-wrap:wrap}.group-points-summary p{font-size:12px}}
#modalBackdrop .poem-reading-wrap{padding-top:0}
.reading-status-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:10px 0 4px}.reading-status-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.learning-status-badge{font-size:12px;padding:5px 9px;border-radius:20px;background:#edece4;color:var(--muted)}.learning-status-badge.is-known{background:#e4eedf;color:var(--green)}#modalBackdrop .learning-status-action{min-height:44px;font-size:12px;color:var(--green);background:transparent;padding:8px}.reading-status-note{font-size:12px;color:var(--muted);margin:0 0 8px;line-height:1.6}.reading-status-note:empty{display:none}#modalBackdrop .reading-status-bar .poem-favorite{position:static;flex-shrink:0;font-size:12px}

/* Completed tasks: title and badge share a compact first row. */
.today-view .daily-group .course.course-completed{display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:start;align-items:center;gap:6px 12px;padding:16px}
.today-view .daily-group .course.course-completed>.grade-pill{grid-column:2;grid-row:1;justify-self:end;align-self:start;white-space:nowrap;font-size:11px;padding:4px 8px}
.today-view .daily-group .course.course-completed>h3{grid-column:1;grid-row:1;margin:0;font-size:22px;line-height:1.4;overflow-wrap:anywhere}
.today-view .daily-group .course.course-completed>p{grid-column:1 / -1;margin:0;font-size:13px;line-height:1.6}
.today-view .daily-group .course.course-completed>span:last-child{grid-column:1 / -1;margin:2px 0 0;font-size:13px;line-height:1.6}
@media(max-width:600px){.today-view .daily-group .course.course-completed{padding:14px;gap:5px 10px}.today-view .daily-group .course.course-completed>h3{font-size:20px}}
.reading-script-toggle{display:inline-flex;gap:2px;margin-left:auto;padding:3px;border:1px solid var(--line);border-radius:10px}#modalBackdrop .reading-script-toggle button{min-width:36px;min-height:38px;padding:6px;font-size:13px;border-radius:7px;color:var(--muted);background:transparent}#modalBackdrop .reading-script-toggle button[aria-pressed="true"]{background:#e4eedf;color:var(--green);font-weight:600}
.audio-library-page{max-width:920px;margin:16px auto}.audio-library-page .plan-page-heading{margin:6px 0 18px}.audio-library-page .plan-page-heading h2{font-size:26px;margin:0 0 8px}.audio-library-page .plan-page-heading p{font-size:13px;margin:0;color:var(--muted)}.audio-library-search{display:grid;gap:6px;margin:0 0 14px;font-size:13px}.audio-library-search input{width:100%;min-height:44px;font-size:16px}.audio-library-player{padding:16px;border-radius:16px;background:#eaf1e6;margin-bottom:16px}.audio-library-player>strong{font-size:18px}.audio-library-player>p{font-size:13px;color:var(--muted);margin:5px 0 12px}.audio-library-player audio{display:block;width:100%;height:44px}.audio-library-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}.audio-library-controls button{padding:8px 12px;border-radius:10px;min-height:44px;background:var(--white);color:var(--green);font-size:13px}.audio-library-controls label{margin:0 0 0 auto;gap:6px;font-size:12px;min-height:44px}.audio-library-controls input{width:16px;height:16px}#audioResultCount{font-size:12px;color:var(--muted)}.saved-audio-row{display:flex;align-items:center;gap:12px;width:100%;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--white);color:var(--green);text-align:left;margin:8px 0}.saved-audio-row>span:nth-child(2){flex:1;min-width:0}.saved-audio-row strong{display:block;font-size:15px;overflow-wrap:anywhere}.saved-audio-row small{display:block;font-size:12px;color:var(--muted);margin-top:5px}.saved-audio-row>span:last-child{font-size:12px}.saved-audio-row.selected{background:#edf3e8;border-color:#a9bd9d}#audioLibraryMessage{font-size:13px;line-height:1.7}#audioLibraryMessage:empty{display:none}

.personal-points{border-top:1px solid #ffffff30;padding:16px 0;margin-top:8px}.personal-points-main{display:flex;justify-content:space-between;align-items:center;gap:12px}.personal-points-main>div>span{font-size:12px;color:#d5e3d9}.personal-points-main strong{display:block;font-size:30px;line-height:1.3;margin-top:4px;color:#fff7df;font-variant-numeric:tabular-nums}.personal-points-main strong small{font-size:12px;font-weight:400}.personal-points-today{padding:6px 10px;border-radius:20px;background:#ffffff15;color:#f3e4ae;font-size:12px;white-space:nowrap}.personal-points details{margin-top:8px;font-size:12px;color:#d5e3d9;line-height:1.7}.personal-points summary{cursor:pointer;min-height:36px;padding:6px 0}.personal-points details p{margin:6px 0;font-size:12px;color:#d5e3d9}.personal-points>p{font-size:13px}.personal-points>button{min-height:44px;padding:8px 12px;border-radius:10px;color:var(--green)}@media(max-width:600px){.personal-points{padding:12px 0}.personal-points-main strong{font-size:26px}}

.daily-shortcut { align-self: start; min-width: 0; }
.family-shortcuts .shortcut-icon { flex: 0 0 22px; text-align: center; }
.daily-settings-row { list-style: none; }
.daily-settings-row::-webkit-details-marker { display: none; }
.daily-shortcut[open] > summary > span:last-child { transform: rotate(90deg); }
.daily-settings-body { padding: 12px 14px; }
.daily-shortcut summary { cursor: pointer; }
.daily-shortcut ol, .daily-shortcut p { font-size: 14px; line-height: 1.65; }
.daily-shortcut input:not([hidden]) { display: block; width: 100%; margin-top: 8px; font-size: 16px; }

.family-view .student-tile-top { justify-content: flex-start; }
.family-view .student-tile h3 { margin: 0; min-width: 0; }
.family-view .student-tile p { margin-top: 6px; }
.family-view .student-tile-actions { align-items: center; margin-top: 8px; padding-top: 0; }
@media (max-width: 600px) {
  .family-view .student-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .family-view .student-tile { padding: 10px 10px 2px; }
  .family-view .student-avatar { width: 28px; height: 28px; flex: none; border-radius: 9px; font-size: 16px; }
  .family-view .student-tile h3 { font-size: 17px; }
  .family-view .student-tile-actions button { min-width: 44px; min-height: 44px; padding: 2px; }
}

#wordNotes { margin: 10px 0; color: var(--green); }
#wordNotes summary { cursor: pointer; padding: 10px 0; font-size: 1rem; font-weight: 600; }
#wordNotesBody { font-size: 1rem; line-height: 1.65; overflow-wrap: anywhere; }
#wordNotesBody > div { margin: 5px 0 12px; }
#wordNotesBody blockquote { margin: 0 0 4px; padding-left: 8px; border-left: 2px solid #aec2ae; color: #58685e; font-size: .875rem; }
#wordNotesBody p { margin: 3px 0; font-size: 1rem; color: var(--ink); }
#wordNotesBody small, #wordNotesBody button { font-size: .8125rem; }
#wordNotesBody button { margin-left: 6px; min-height: 44px; min-width: 44px; padding: 4px; background: transparent; color: var(--green); }

.wish-add { margin: 16px 0; }
.wish-create-link { color: var(--green); cursor: pointer; padding: 8px 0; }
.wish-add form { display: grid; gap: 8px; margin-top: 8px; }
.wish-add label { display: grid; gap: 5px; margin: 0; font-size: .8125rem; line-height: 1.5; font-weight: 400; color: #53685c; }
.wish-add input { width: 100%; min-width: 0; min-height: 44px; margin: 0; padding: 8px 12px; font-family: inherit; font-weight: 400; font-size: 1rem; color: var(--ink); }
.wish-add input::placeholder { font-size: .875rem; color: #738076; }
.wish-add .primary-btn { justify-self: end; min-height: 44px; width: auto; padding: 8px 18px; font-family: inherit; font-size: .875rem; font-weight: 500; line-height: 1.4; box-shadow: none; }
.wish-grid:not([hidden]) {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(10.5rem, calc((100% - 12px) / 2)), 1fr));
  gap: 12px;
  margin-top: 14px;
}
.wish-grid .wish-row {
  --paper-top: #edf4e8;
  --ribbon: #80a58c;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 10px;
  min-width: 0;
  min-height: clamp(195px, 28vw, 232px);
  box-sizing: border-box;
  margin: 0;
  padding: 23px 14px 14px;
  border-radius: 8px 8px 16px 8px;
  background: radial-gradient(circle at 18px 20px, #fbfaf3 3px, #c6ceba 3.5px, transparent 5px),
              linear-gradient(160deg, var(--paper-top), #fffdf7 72%);
  box-shadow: 0 3px 8px #344a3210;
}
.wish-grid .wish-row:nth-child(even) { --paper-top: #f8efde; --ribbon: #caa16c; }
.wish-grid[data-history] .wish-row {
  --paper-top: #ffdf93;
  --ribbon: #bf6513;
  border-color: #e7b962;
}
[data-history] .wish-emblem svg path:first-child { fill: var(--ribbon); fill-opacity: 1; }
[data-history] .wish-emblem svg path:nth-child(2) { stroke: #fffdf7; stroke-width: 2.8; }
.wish-filters button[data-filter="history"][aria-pressed="true"] { background: #ffe6a9; color: #71430d; }
.wish-grid .wish-row::before {
  content: '';
  position: absolute;
  top: 0;
  right: 14px;
  width: 13px;
  height: 31px;
  background: var(--ribbon);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 80%, 0 100%);
  pointer-events: none;
}
.wish-emblem {
  position: relative;
  align-self: center;
  display: grid;
  place-items: center;
  flex: none;
  width: clamp(58px, 18vw, 72px);
  aspect-ratio: 1;
  margin: 0 auto 2px;
  border-radius: 50%;
  background: radial-gradient(circle at 36% 28%, #fffcf3, var(--paper-top) 76%);
  color: var(--ribbon);
  box-shadow: inset 0 0 0 1px #ffffffc9, 0 2px 8px #56644212;
}
.wish-emblem svg { width: 78%; height: 78%; filter: drop-shadow(0 2px 1px #56644218); }
.wish-emblem svg path:first-child { fill: var(--ribbon); fill-opacity: .26; }
.wish-emblem::before, .wish-emblem::after {
  content: '';
  position: absolute;
  width: 10px;
  height: 13px;
  right: -3px;
  top: 2px;
  background: currentColor;
  clip-path: polygon(50% 0,62% 37%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 37%);
}
.wish-emblem::after { width: 6px; height: 8px; left: -5px; top: 70%; opacity: .7; }
.wish-grid .wish-row > div { width: 100%; }
.wish-grid .wish-row strong { font: 600 1.06rem/1.5 serif; }
.wish-grid .wish-gap { width: 100%; border-top: 1px dashed #c9d2bf; padding-top: 8px; }
/* The outline is compact; the full button remains a 44px touch target. */
.wish-grid .wish-row > button.secondary-btn {
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 44px;
  margin: 0;
  padding: 0 13px;
  border: 0;
  border-radius: 14px;
  background: transparent;
  box-shadow: none;
  color: #35594a;
  font-family: inherit;
  font-size: .8125rem;
  font-weight: 500;
  line-height: 1.4;
}
.wish-grid .wish-row > button.secondary-btn::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 6px 0;
  border: 1px solid var(--ribbon);
  border-radius: 12px;
  background: var(--paper-top);
}
.wish-grid .wish-row > button.secondary-btn::after {
  content: '';
  width: 5px;
  height: 5px;
  border: solid currentColor;
  border-width: 1px 1px 0 0;
  transform: rotate(45deg);
}
.wish-grid .wish-row > button.secondary-btn:active::before { filter: brightness(.95); }
.wish-grid:has(> .wish-empty) { grid-template-columns: 1fr; }
.wish-grid .wish-empty { grid-column: 1 / -1; margin: 0; }
.wish-gap { font-size: .8125rem; color: #63745f; }
.wish-row strong { overflow-wrap: anywhere; }
.wish-row small { display: block; margin-top: 4px; color: var(--muted); }
.wish-row button { margin-top: auto; min-height: 44px; }

.wish-book { max-width: 700px; margin: 0 auto; color: #304b41; }
.wish-cover { position: relative; isolation: isolate; overflow: hidden; margin: 8px 0 16px; padding: 18px 22px; border: 1px solid #dce6d7; border-radius: 18px; background: linear-gradient(110deg,#edf4e8,#f7f8ef); }
.wish-book .wish-cover h2 { margin: 0 58px 6px 0; font: 600 clamp(20px,4vw,26px)/1.35 serif; overflow-wrap: anywhere; }
.wish-credit { display: flex; align-items: baseline; gap: 5px; color: #526d5e; font-size: 13px; }
.wish-credit strong { font-size: 25px; font-variant-numeric: tabular-nums; }
.wish-sprig { position: absolute; right: 26px; bottom: -14px; height: 104px; width: 2px; background: #acbfa7; transform: rotate(28deg); z-index: -1; }
.wish-sprig::before,.wish-sprig::after { content: ''; position: absolute; width: 19px; height: 29px; background: #c9d9be; border-radius: 0 90% 0 90%; left: -18px; top: 19px; }
.wish-sprig::after { left: 1px; top: 43px; transform: scaleX(-1); background: #baccaf; }
.wish-controls { display: flow-root; }
.wish-filters:not([hidden]) { float: left; display: flex; padding: 3px; border-radius: 18px; background: #eeeee4; }
.wish-filters button,.wish-create-link { min-height: 38px; padding: 6px 10px; font-size: 14px; border-radius: 16px; }
.wish-filters button { color: #607164; background: transparent; }
.wish-filters button[aria-pressed=true] { color: #36594a; background: #fffdf7; box-shadow: 0 1px 4px #374d3619; }
.wish-filters span { font-size: 12px; }
.wish-add { margin: 0; }
.wish-create-link { text-decoration: none; font-family: inherit; font-weight: 400; display: table; margin-left: auto; list-style: none; line-height: 26px; color: white; background: #476d59; }
.wish-create-link::-webkit-details-marker { display: none; }
.wish-add form,.wish-empty,.wish-row { background: #fffdf8; border: 1px solid #e1e6d9; border-radius: 15px; padding: 14px; margin-top: 10px; }
.wish-add form { clear: both; }
.wish-book [role=status] { font-size: 13px; color: #526d5e; }
.wish-book [role=status]:empty { display: none; }
.wish-empty { text-align: center; padding: 20px 12px; }
.wish-empty span { color: #a37d42; font-size: 24px; }
.wish-empty p { font-size: 14px; color: #636e60; margin: 4px 0; }
.wish-row small { color: #647563; }
@media (max-width: 360px) {
 .wish-filters button,.wish-create-link { font-size: 13px; padding-inline: 7px; }
}

dialog.wish-confirm { width: min(330px, calc(100% - 32px)); max-height: 85dvh; margin: auto; padding: 20px; border: 1px solid #dce5d7; border-radius: 20px; background: #fffdf8; color: #304b41; box-shadow: 0 12px 48px #273a2b26; }
.wish-confirm::backdrop { background: #24382e55; }
.wish-confirm form { display: block; margin: 0; padding: 0; }
.wish-confirm h2 { font: 600 20px/1.4 serif; margin: 0; }
.wish-confirm-name { margin: 6px 0 14px; font-size: 15px; overflow-wrap: anywhere; }
.wish-confirm dl { margin: 0; padding: 12px; background: #edf3e9; border-radius: 12px; }
.wish-confirm dl div,.wish-confirm footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.wish-confirm dl div + div { margin-top: 6px; }
.wish-confirm dt,.wish-confirm dd { font-size: 14px; margin: 0; }
.wish-confirm dd { font-weight: 600; }
.wish-confirm footer { margin-top: 16px; }
.wish-confirm footer button { flex: 1; min-height: 44px; border-radius: 12px; background: #f0efe6; color: #42614f; font-size: 14px; }
.wish-confirm button[value="redeem"] { background: #476d59; color: white; }

dialog.wish-add-dialog {
  width: min(350px, calc(100% - 32px));
  padding: 20px;
  background: linear-gradient(155deg, #edf4e9, #fffdf8 38%);
  border-color: #d4e0d1;
}
.wish-add-dialog::backdrop { background: #263c3245; }
.family-panel .wish-add-dialog form {
  display: grid; gap: 14px; padding: 0; margin: 0;
  border: 0; box-shadow: none; background: transparent;
}
.wish-add-dialog #wishAddTitle {
  display: flex; align-items: center; gap: 10px; margin: 0 0 2px;
  font: 600 21px/1.4 serif; color: #355548;
}
.wish-add-dialog #wishAddTitle::before {
  content: ""; width: 12px; height: 22px; background: #82a78d;
  clip-path: polygon(0 0,100% 0,100% 100%,50% 76%,0 100%);
}
.wish-add-dialog label { display: grid; gap: 6px; margin: 0; font-size: 13px; color: #506659; }
.wish-add-dialog input {
  width: 100%; min-width: 0; min-height: 44px; box-sizing: border-box;
  margin: 0; padding: 9px 12px; border: 1px solid #cbd8ca; border-radius: 11px;
  background: #fffefa; color: #304b41; font: inherit; font-size: 16px;
}
.wish-add-dialog input::placeholder { color: #778579; font-size: 14px; }
.wish-add-dialog input:focus { border-color: #52795e; outline: 2px solid #accab1; outline-offset: 1px; }
.wish-add-dialog footer { margin-top: 2px; gap: 10px; }
.wish-add-dialog footer button:first-child { flex: 1; color: #526957; background: #eff2eb; }
.wish-add-dialog footer button[type=submit] { flex: 1.5; background: #436b53; color: white; }
.wish-add-dialog [role=status]:empty { display: none; }

.wish-grid .wish-card-hit {
  position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%;
  margin: 0; padding: 0; border: 0; border-radius: inherit; background: transparent;
  cursor: pointer;
}
.wish-grid .wish-card-hit:focus-visible { outline: 2px solid #476d59; outline-offset: 2px; }
.wish-grid .wish-row > .secondary-btn { z-index: 2; }
.wish-add-dialog label[hidden], .wish-remove[hidden] { display: none; }
.wish-editor-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.wish-remove:not([hidden]) {
  display: grid; place-items: center; width: 44px; height: 44px; flex: none;
  border: 0; border-radius: 50%; padding: 0; color: #8b594e;
  background: radial-gradient(circle, #f5eae3 0 15px, transparent 16px);
}
.wish-remove:hover, .wish-remove:focus-visible { color: #773e32; }

dialog.wish-redeem-dialog { width: min(350px, calc(100% - 32px)); background: linear-gradient(150deg, #fcf1d8, #fffdf8 42%); }
.wish-redeem-dialog::backdrop { background: #263c3245; }
.family-panel .wish-redeem-dialog form { border: 0; box-shadow: none; background: transparent; padding: 0; margin: 0; }
.wish-redeem-heading { display: flex; align-items: center; gap: 9px; }
.wish-redeem-heading span { color: #a26716; font-size: 21px; }
.wish-redeem-dialog .wish-confirm-name { margin: 8px 0 14px; line-height: 1.5; }
.wish-redeem-dialog dl { display: grid; grid-template-columns: 1fr 1fr; background: #f2f4e9; }
.wish-redeem-dialog dl div { display: grid; gap: 3px; justify-content: start; }
.wish-redeem-dialog dl div + div { margin: 0; padding-left: 14px; border-left: 1px solid #d5dfcf; }
.wish-redeem-dialog dt { font-size: 13px; color: #546954; }
.wish-redeem-dialog dd { font-size: 18px; font-variant-numeric: tabular-nums; }
.wish-redeem-dialog footer button[value="redeem"] { flex: 1.5; }

.listen-settings { max-width: 640px; margin: 0 auto; }
.listen-install-card,.listen-guide { border: 1px solid #dce4d6; border-radius: 17px; }
.listen-install-card { margin: 8px 0 12px; padding: clamp(15px,3vw,24px); background: linear-gradient(125deg,#e8f0e4,#f9f6e9); }
.listen-cover-heading { display: flex; align-items: center; gap: 10px; }
.listen-cover-heading span { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 12px; background: #d6e5d3; color: #476b53; font-size: 22px; }
.listen-settings .listen-cover-heading h2 { font: 600 clamp(20px,4vw,25px)/1.4 serif; color: #314f40; margin: 0; }
.listen-install-card p,.listen-guide p,.listen-guide ol { font-size: 14px; line-height: 1.65; color: #506258; }
.listen-install-card p { margin: 10px 0 14px; overflow-wrap: anywhere; }
.listen-install-card .primary-btn { min-height: 44px; font-size: 14px; font-weight: 500; box-shadow: none; }
.listen-install-card small { display: block; margin-top: 9px; font-size: 12px; line-height: 1.6; color: #5f7064; }
.listen-guide { margin: 8px 0; padding: 0 16px; background: #fffdf8; }
.listen-guide summary { padding: 12px 0; cursor: pointer; color: #375747; font-size: 15px; }
.listen-guide ol { padding-left: 1.5em; margin: 0; }
.listen-guide li { margin: 5px 0; padding-left: 3px; }
.listen-guide li::marker { color: #527559; font-weight: 600; }
.listen-guide p { margin: 8px 0 12px; }
.listen-manage button { min-height: 44px; margin-bottom: 10px; border-radius: 12px; padding: 6px 13px; color: #874f40; background: #f6ede6; }
.listen-settings [role=status]:empty { display: none; }
.listen-settings [role=status] { margin: 8px 0; color: #405f4b; font-size: 14px; }
