/* Product surfaces: welcome, daily review, and account management. */
.apple-login { width:100%; min-height:48px; margin:10px 0; padding:12px; border:1px solid #151515; border-radius:8px; background:#151515; color:white; font-weight:650; }
.profile-button { margin-top:8px; }
.app-sidebar .course-add-button { border-style:dashed; border-color:#71917c; color:#e6f0df; font-weight:650; }
.app-sidebar #manage-course { border-color:transparent; font-size:13px; color:#c3d8ca; }
.app-sidebar #manage-course:hover { border-color:#71917c; }
#course-dialog { max-width:860px; }
#course-dialog h2 { margin-bottom:8px; }
#course-dialog-intro { font-size:15px; margin:0 0 26px; }
.course-manager-layout { display:grid; grid-template-columns:210px minmax(0,1fr); gap:24px; align-items:start; }
.course-manager-mobile { display:none; }
.course-manager-list { display:grid; gap:7px; padding:8px; border:1px solid #dce6d6; border-radius:14px; background:#f0f4ec; }
.course-manager-item { display:flex; align-items:center; gap:10px; width:100%; min-width:0; min-height:58px; padding:8px; border:1px solid transparent; border-radius:9px; background:transparent; color:#32463b; text-align:left; cursor:pointer; }
.course-manager-item:hover { background:#e4ecde; }
.course-manager-item.selected { border-color:#9fba92; background:#fff; box-shadow:0 2px 10px #2743270b; }
.course-manager-item > span:last-child { min-width:0; }
.course-manager-item strong,.course-manager-item small { display:block; overflow-wrap:anywhere; }
.course-manager-item strong { font-size:14px; }
.course-manager-item small { color:#738174; font-size:12px; }
.course-manager-item-mark { display:grid; place-items:center; flex:none; width:34px; height:34px; border-radius:9px; background:#dce9d4; color:#2e624a; font:600 18px Georgia,serif; }
.course-manager-item.selected .course-manager-item-mark { background:#d0e4c5; }
.course-manager-detail { min-width:0; padding:25px; border:1px solid #dae3d5; border-radius:14px; background:#fff; }
.course-manager-heading { display:flex; align-items:start; gap:16px; padding-bottom:23px; border-bottom:1px solid #e5eae1; }
.course-manager-icon { display:grid; place-items:center; flex:none; width:52px; height:52px; border-radius:12px; background:#e1ecd6; color:#39604b; font-size:25px; }
.course-manager-heading > div { min-width:0; }
.course-manager-heading h3 { margin:7px 0 5px; font:500 26px/1.2 Georgia,serif; overflow-wrap:anywhere; }
.course-manager-heading p { margin:0; color:#6a796d; font-size:14px; line-height:1.5; }
#course-editor-form { padding-top:24px; }
#course-editor-form label,.course-delete-confirm label { display:block; margin:0 0 7px; font-size:13px; font-weight:700; color:#415a47; }
#course-editor-form input,.course-delete-confirm input { width:100%; min-width:0; min-height:48px; margin:0 0 18px; padding:11px 13px; border:1px solid #cbd8c9; border-radius:8px; background:#fff; font-size:16px; }
.course-field-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.course-field-row > div { min-width:0; }
.course-editor-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.course-editor-actions button { min-height:46px; }
#course-editor-status,#course-delete-status { min-height:1.5em; margin:12px 0 0; color:#41604c; font-size:14px; }
.course-danger-zone { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; padding-top:22px; margin-top:15px; border-top:1px solid #e5eae1; }
.course-danger-zone strong { font-size:14px; }
.course-danger-zone p { max-width:370px; margin:3px 0 0; font-size:13px; line-height:1.55; color:#69766b; }
.course-danger-trigger { flex:none; min-height:44px; border:0; background:transparent; color:#9a483d; font-weight:700; cursor:pointer; }
.course-danger-trigger:hover { text-decoration:underline; }
.course-delete-confirm { margin-top:18px; padding:20px; border:1px solid #debdb2; border-radius:11px; background:#fbf3ef; }
.course-delete-confirm h3 { margin:0 0 8px; font:500 23px Georgia,serif; color:#743d31; overflow-wrap:anywhere; }
.course-delete-confirm p { margin:0 0 18px; line-height:1.55; color:#71584e; }
.course-delete-final { min-height:46px; padding:10px 15px; border:1px solid #a84739; border-radius:8px; background:#a84739; color:#fff; font-weight:700; cursor:pointer; }
.course-delete-final:disabled { opacity:.48; cursor:not-allowed; }
#plan-context:empty { display:none; }
#plan-context,.course-notice { margin:20px 0; padding:16px; background:#f5e8cf; border:1px solid #ddc99e; border-radius:10px; font-size:15px; line-height:1.6; }
.course-notice .link { font-size:inherit; text-decoration:underline; }
.plan-faq { border-block:1px solid #d9dfd1; padding:12px 0; }
.plan-faq summary { font-size:15px; padding:12px 0; cursor:pointer; }
.plan-faq p { font-size:15px; line-height:1.65; }
.usage-meter { margin:16px 0; }
.usage-meter > div { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; }
.usage-meter progress { width:100%; height:10px; margin-top:10px; accent-color:#36765b; }
.allowance-inline { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:4px 16px; font-size:13px; color:#51634e; margin:12px 0; padding:10px 14px; background:#f0f3e9; border-radius:8px; line-height:1.6; }
.allowance-inline button { min-height:44px; font-size:13px; }
.allowance-inline.low-allowance { background:#f5e8cf; color:#684b22; }
#profile-dialog { max-width:800px; }
.profile-heading { display:flex; align-items:center; gap:20px; margin:8px 0 28px; }
.profile-avatar { display:grid; place-items:center; flex:none; width:64px; height:64px; border-radius:50%; background:#dce8c7; color:#264935; font:28px Georgia,serif; }
.profile-heading h2 { font-size:32px; }
.profile-heading p { margin-bottom:0; overflow-wrap:anywhere; }
.profile-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.profile-grid > div { min-width:0; }
.profile-wide { grid-column:1/-1; }
.profile-grid input,.profile-grid select { width:100%; min-height:48px; font-size:16px; }
.profile-grid label { font-size:14px; }
.profile-grid small { display:block; font-size:12px; line-height:1.6; color:#596a51; margin-top:8px; }
.profile-actions,.settings-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:24px; }
.settings-section { border-top:1px solid #d9dfd1; margin-top:24px; padding-top:10px; }
.settings-section h3 { font:24px Georgia,serif; }
.settings-actions .secondary { min-height:44px; }
#tour-dialog { max-width:600px; }
.tour-top { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.tour-top button { min-height:44px; }
#tour-art { display:grid; place-items:center; height:140px; margin:24px 0; border-radius:14px; background:radial-gradient(circle at 70% 40%,#dfedc9,#eaeede); color:#396249; font:72px Georgia,serif; }
#tour-copy { font-size:17px; line-height:1.7; }
#tour-detail { border-left:3px solid #85a875; padding:12px 18px; font-size:14px; line-height:1.6; background:#f0f3e9; }
.tour-actions { display:flex; justify-content:space-between; gap:14px; margin-top:28px; }
.tour-actions button { min-height:48px; }
.dialog-toolbar { display:flex; justify-content:flex-end; position:sticky; top:0; margin:-16px -8px 12px; background:#fafbf6; z-index:5; }
dialog .dialog-toolbar .dialog-close { position:static; float:none; margin:0; flex:none; background:#fafbf6; border-radius:50%; }
#plans-dialog .price-card p,#plans-dialog .price-card li { font-size:16px; }
html[data-reading-size=large] .chat-bubble,html[data-reading-size=large] .review-answer,html[data-reading-size=large] .quiz-card,html[data-reading-size=large] #question { font-size:20px; line-height:1.8; }
html[data-reading-size=large] main p,html[data-reading-size=large] main li,html[data-reading-size=large] main .subtitle,html[data-reading-size=large] main .material-name,html[data-reading-size=large] main .plan-session-body,html[data-reading-size=large] main .quiz-choice,html[data-reading-size=large] main .quiz-answer { font-size:18px; line-height:1.65; }
@media(max-width:600px) {
 .course-manager-layout { grid-template-columns:1fr; gap:16px; }
 .course-manager-list { display:none; }
 .course-manager-mobile { display:block; }
 .course-manager-mobile label { display:block; margin-bottom:7px; color:#526754; font-size:13px; font-weight:700; }
 .course-manager-mobile select { width:100%; min-height:48px; padding:10px 12px; border:1px solid #b9cbb5; border-radius:9px; background:#fff; color:#243e2c; font-size:16px; }
 .course-manager-item { min-height:54px; }
 .course-manager-detail { padding:18px; }
 .course-manager-heading { gap:11px; }
 .course-manager-icon { width:40px; height:40px; font-size:20px; }
 .course-manager-heading h3 { font-size:22px; }
 .course-field-row { grid-template-columns:1fr; gap:0; }
 .course-danger-zone { display:block; }
 .course-danger-trigger { margin-top:8px; }
 #plans-dialog .price-card.pro { order:-1; }
 .profile-grid { grid-template-columns:1fr; }
 .profile-heading { align-items:start; gap:12px; }
 .profile-heading h2 { font-size:27px; padding-right:12px; }
 .profile-avatar { width:44px; height:44px; font-size:21px; }
 #tour-art { height:100px; margin:20px 0; }
 .tour-actions { flex-wrap:wrap; }
 .tour-top .eyebrow { font-size:10px; }
 .profile-actions { align-items:start; }
}
:root { --accent:#d8ebbc; --warm:#f0deca; }
button:disabled { opacity:.55; cursor:not-allowed; }
a.primary,a.secondary { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; }
.app-sidebar { background:#193e34; color:#e6efe6; border-color:#193e34; }
.app-sidebar .brand,.app-sidebar .sign-out,.app-sidebar .sidebar-button { color:#e9f1e9; }
.app-sidebar .brand-mark { color:#183c31; background:#dcecba; }
.app-sidebar .view-link { color:#bcd0c2; }
.app-sidebar .view-link.active { background:#dcecba; color:#183c31; box-shadow:none; }
.app-sidebar .view-link { transition:none; }
.app-sidebar .view-link:hover { background:#2b5041; color:#edf4e8; }
.app-sidebar .view-link.active:hover { background:#dcecba; color:#183c31; }
.chat-bubble > p { margin:0 0 16px; }
.chat-bubble > p:last-child { margin-bottom:0; }
.app-sidebar .side-label,.app-sidebar .signed-in { color:#b0c8b9; }
.app-sidebar .course { color:#e3ece4; }
.app-sidebar .course small { color:#b0c8b9; }
.app-sidebar .course.active { background:#2b5041; }
.app-sidebar .side-footer { border-color:#476658; }
.app-sidebar .sidebar-button:hover { background:#2b5041; }
.account-button { display:flex; align-items:center; justify-content:space-between; gap:8px; border:1px solid #577463; border-radius:8px; margin-top:22px; padding:10px; }
.plan-pill { font-size:10px; background:#dcecba; color:#214b36; padding:2px 8px; border-radius:5px; }
.review-brief { grid-column:2; grid-row:2; background:#f0deca; border:1px solid #e4cdb3; padding:24px; border-radius:14px; }
.review-brief h2 { font:500 25px/1.2 Georgia,serif; letter-spacing:-.035em; margin:12px 0; }
.review-brief p { font-size:14px; line-height:1.6; color:#645642; margin:0 0 20px; }
.review-brief .primary { width:100%; background:#473d2c; }
.review-week { display:flex; flex-wrap:wrap; gap:10px 20px; border-top:1px solid #d8c2a6; padding-top:18px; margin-top:20px; font-size:12px; color:#625440; }
.review-week b { color:#433925; }
.overview-grid { row-gap:20px; }
.overview-stats { grid-row:1; }
.focus-panel { grid-row:1; background:linear-gradient(120deg,#e6ecdf,#eff2e9); }
.review-brief { grid-column:1/-1; grid-row:2; display:grid; grid-template-columns:1fr auto; gap:0 24px; align-items:center; }
.review-week { grid-column:1/-1; }
main:has(.overview-grid:not([hidden])) .exam-chip { display:none; }
.study-tools { grid-row:3; grid-column:1/-1; }
.updates-panel { grid-row:4; }
.onboarding { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:24px; background:#edf0df; }
.onboarding h2 { font:500 27px/1.3 Georgia,serif; margin:8px 0; }
.onboarding p { font-size:15px; margin:0; color:#52684e; }
.onboarding .primary { flex-shrink:0; }
.practice-tabs { display:flex; gap:8px; border-bottom:1px solid var(--line); margin:0 0 26px; padding-bottom:16px; }
.practice-tabs button { min-height:44px; padding:10px 16px; border:0; border-radius:8px; background:transparent; font-weight:650; color:#526858; }
.practice-tabs button[aria-selected=true] { color:#fff; background:#244e3b; }
.practice-tabs span { margin-left:6px; background:#dce8d3; color:#274d35; border-radius:4px; padding:2px 6px; font-size:11px; }
.review-library { margin-top:24px; border-top:1px solid var(--line); }
.review-card { background:#f1f4ea; border:1px solid #dbe2d1; border-radius:12px; padding:32px; }
.review-card h3 { font:500 26px/1.4 Georgia,serif; margin:18px 0 24px; }
.review-card .review-answer { white-space:pre-wrap; font-size:17px; line-height:1.7; border-top:1px solid #d4ddc9; padding:20px 0; overflow-wrap:anywhere; }
.review-ratings { display:flex; flex-wrap:wrap; gap:10px; }
.review-ratings button { display:flex; flex-direction:column; align-items:center; flex:1; min-width:90px; }
.review-ratings small { font-size:11px; font-weight:400; }
.review-source { font-size:12px; color:#4d6350; display:block; margin:12px 0; overflow-wrap:anywhere; }
.review-library-row { display:flex; gap:18px; justify-content:space-between; border-bottom:1px solid var(--line); padding:18px 0; }
.review-library-row > div { min-width:0; overflow-wrap:anywhere; }
.review-library-row small { display:block; color:var(--muted); }
.review-library-row button { align-self:start; min-height:44px; flex:none; }
.save-review { margin-top:14px; min-height:44px; }
#review-form { background:#f2f4ed; border-radius:12px; padding:20px; margin-bottom:24px; }
#review-form textarea { min-height:90px; }
.auth-screen { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr); gap:56px 80px; align-items:center; padding:32px max(32px,calc((100vw - 1200px)/2)); background:#f5f5ee; min-height:100dvh; }
.landing-nav { grid-column:1/-1; display:flex; justify-content:space-between; gap:24px; align-items:center; width:100%; }
.landing-story { width:100%; }
.landing-nav .brand { margin:0; color:#1d4435; text-decoration:none; font-size:24px; }
.landing-nav > div { display:flex; gap:28px; align-items:center; }
.landing-nav a,.landing-nav button { color:#2f5140; font-size:14px; text-decoration:none; min-height:44px; display:inline-flex; align-items:center; }
.landing-story h1 { font:500 clamp(42px,5.5vw,74px)/1.06 Georgia,serif; letter-spacing:-.055em; margin:20px 0 24px; }
.landing-story h1 em { color:#527654; font-weight:400; }
.landing-story > p { max-width:500px; font-size:18px; color:#60715f; line-height:1.7; }
.landing-actions { display:flex; flex-wrap:wrap; align-items:center; gap:14px 20px; margin:28px 0; }
.landing-actions a { gap:22px; padding:15px 22px; }
.landing-actions > span { font-size:12px; color:#60715f; }
.study-preview { position:relative; background:#e7eddc; border:1px solid #cfdbc1; border-radius:16px; padding:28px; margin-top:34px; max-width:550px; box-shadow:8px 10px 0 #e8ded0; }
.preview-top { display:flex; justify-content:space-between; gap:12px; align-items:center; }
.preview-badge { font-size:10px; color:#4e6342; }
.study-preview h2 { font:500 26px/1.25 Georgia,serif; margin:18px 0; }
.preview-step { display:flex; align-items:center; gap:16px; padding:14px 0; border-top:1px solid #cfdbc1; font-size:14px; color:#254a32; }
.preview-step b { font:400 20px Georgia,serif; color:#758867; }
.preview-step > span:nth-child(2) { flex:1; }
.preview-step small { display:block; font-size:11px; margin-top:3px; color:#5e7251; }
.auth-card { width:100%; max-width:440px; padding:36px; border-radius:16px; border:1px solid #dce1d6; box-shadow:0 18px 50px #253d2210; background:#fff; justify-self:end; }
.auth-card h2 { font:500 36px/1.1 Georgia,serif; letter-spacing:-.04em; margin:16px 0; }
.auth-card input { font-size:16px; min-height:48px; }
.auth-card #auth-submit { margin-top:24px; min-height:48px; }
.auth-fineprint { font-size:11px; line-height:1.6; color:#617460; margin:20px 0 0; }
.auth-fineprint button { font-size:11px; text-decoration:underline; }
.landing-bottom { grid-column:1/-1; display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:30px; padding:42px 0 26px; border-top:1px solid #d6decf; }
.landing-bottom h2 { font:500 26px/1.2 Georgia,serif; margin:12px 0; }
.landing-bottom article b { font-size:14px; color:#2f5338; }
.landing-bottom p { font-size:14px; color:#64755d; }
dialog { width:min(920px,calc(100% - 40px)); max-height:calc(100dvh - 40px); padding:40px; border:1px solid #d4ddcf; border-radius:20px; background:#fafbf6; color:#243b2d; overflow:auto; box-sizing:border-box; }
dialog::backdrop { background:#102c24aa; backdrop-filter:blur(4px); }
dialog h2 { font:500 38px/1.1 Georgia,serif; letter-spacing:-.04em; margin:12px 0; }
.dialog-close { position:absolute; right:16px; top:12px; width:44px; height:44px; font-size:28px; border:0; background:transparent; color:#49604b; }
.pricing-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:32px; }
.price-card { padding:26px; border:1px solid #d9e1d1; background:#fff; border-radius:14px; display:flex; flex-direction:column; }
.price-card.pro { background:#e7eedc; border-color:#91ac78; }
.price-card h3 { font-size:24px; margin:12px 0; }
.price { font:500 44px Georgia,serif; letter-spacing:-.04em; }
.price span { font:400 13px ui-sans-serif,sans-serif; letter-spacing:0; color:#637155; }
.price-card p,.price-card li { font-size:14px; }
.price-card ul { padding-left:20px; flex:1; margin:12px 0 24px; }
.price-card li { margin-bottom:10px; }
.price-card > small { font-size:11px; text-align:center; margin-top:10px; }
.pro-tag { color:#3c5a29; letter-spacing:.08em; font-size:9px; font-weight:750; }
.billing-note { font-size:12px; color:#63715b; margin:20px 0; }
#billing-status { font-size:14px; padding:8px 0; }
.account-tools { border-top:1px solid var(--line); padding-top:20px; }
#account-usage { font-size:14px; margin-bottom:14px; }
.account-tools .drawer-actions { display:flex; flex-wrap:wrap; gap:10px; }
#privacy-dialog { max-width:660px; }
#privacy-dialog p { font-size:16px; line-height:1.7; }
.account-security { margin-top:20px; border-top:1px solid var(--line); }
.account-security form { max-width:440px; }
.account-security h3 { font-size:20px; }
.account-security p { font-size:13px; line-height:1.6; }
.account-security form button { margin-top:18px; }
.delete-account { margin-top:20px; border-top:1px solid #e6d0c3; }
.delete-account > summary { color:#8a3c32; }
.tutor-pending { padding:14px; background:#eff3e8; border-radius:10px; color:#45603e; font-size:14px; }
@media(max-width:1150px) {
 .focus-panel { grid-row:1; }
 .review-brief { grid-row:2; grid-column:1; display:grid; grid-template-columns:1fr auto; gap:0 24px; align-items:center; }
 .review-brief p { margin-bottom:0; }
 .review-week { grid-column:1/-1; }
 .overview-stats { grid-row:4; }
 .updates-panel { grid-row:5; }
 .auth-screen { gap:40px; }
 .landing-bottom { grid-template-columns:repeat(3,1fr); }
 .landing-bottom > div { grid-column:1/-1; }
}
@media(max-width:800px) {
 .app-sidebar { background:#193e34; }
 .app-sidebar .primary-nav { background:#fafcf5; }
 .app-sidebar .view-link { color:#58705d; }
 .app-sidebar .view-link.active { background:#e0eccc; }
 .app-sidebar.mobile-menu-open .account-button { display:flex; width:100%; }
 .review-brief { display:block; padding:22px; }
 .review-brief p { margin-bottom:20px; }
 .onboarding { flex-direction:column; align-items:start; }
 .auth-screen { grid-template-columns:1fr; padding:20px; gap:30px; }
 .landing-nav { gap:12px; }
 .landing-nav .brand { font-size:19px; }
 .landing-nav > div { gap:14px; }
 .landing-nav a[href='#how-it-works'] { display:none; }
 .landing-nav > div a,.landing-nav > div button { font-size:12px; }
 .landing-story h1 { font-size:52px; }
 .landing-story > p { font-size:16px; }
 .auth-card { justify-self:center; max-width:100%; padding:28px; }
 .study-preview { margin-top:26px; padding:22px; }
 .preview-badge { display:none; }
 .landing-bottom { grid-template-columns:1fr; gap:18px; }
 .landing-bottom > div { grid-column:auto; }
 .landing-bottom p { margin:8px 0; }
 dialog { padding:28px 20px; width:calc(100% - 24px); }
 dialog h2 { font-size:32px; }
 .pricing-grid { grid-template-columns:1fr; }
 .price-card { padding:24px; }
 .review-card { padding:22px; }
 .review-card h3 { font-size:24px; }
 .practice-tabs button { padding:10px; font-size:13px; }
}
