:root{--paper: #F6F8F4;--surface: #FFFFFF;--surface-2: #EEF3EC;--wash: #E3EBE1;--rule: #D9E2DA;--rule-strong: #BCCBBE;--ink: #16211C;--ink-2: #46564F;--ink-3: #6E7F77;--ink-4: #9BAAA2;--caret: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%236E7F77' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");--accent: #1D6B52;--accent-bg: #E4EFE8;--amber: #8A5A12;--amber-bg: #F5EDDD;--amber-rule: #E7D8BC;--stop: #B24630;--stop-bg: #F7E7E2;--stop-rule: #E8CFC7;--right: #2F8F5B;--right-bg: #DFF0E5;--series-1: #1D6B52;--series-2: #B07A1E;--series-3: #B24630;--series-4: #3C6091;--series-5: #2E8B87;--series-6: #6F4F87;--named-red: #D2443A;--named-blue: #3D72CC;--named-green: #3A9A55;--named-yellow: #F0C31C;--named-orange: #E8822A;--named-purple: #8457C2;--named-pink: #E27AA9;--named-brown: #8B5A36;--named-black: #1A1C1B;--named-white: #FFFFFF;--named-grey: #9AA09D;--shadow: 0 1px 2px rgba(22, 33, 28, .05), 0 6px 20px rgba(22, 33, 28, .04);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-serif: Georgia, "Iowan Old Style", "Times New Roman", serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--text-xs: .78rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.35rem;--text-xl: 2rem;--weight-bold: 650;--weight-black: 650;--space-2xs: .4rem;--space-xs: .6rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--radius-sm: 2px;--radius-md: 3px;--radius-lg: 4px;--radius-xl: 4px;--transition-fast: .15s}:root{--wrong: var(--stop);--wrong-bg: var(--stop-bg)}@media (prefers-color-scheme: dark){:root{--paper: #0E1412;--surface: #161E1A;--surface-2: #1C2621;--wash: #24312B;--rule: #27322C;--rule-strong: #38473F;--ink: #E7EDE8;--ink-2: #AEBDB5;--ink-3: #82938B;--ink-4: #5E6E67;--caret: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%2382938B' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");--accent: #5FBC96;--accent-bg: #172C23;--amber: #DFAB5B;--amber-bg: #2A2317;--amber-rule: #3D3020;--stop: #E78468;--stop-bg: #26140F;--stop-rule: #3A1F17;--right: #6FD3A5;--right-bg: #17301F;--series-1: #5FBC96;--series-2: #DFAB5B;--series-3: #E78468;--series-4: #7FA6D9;--series-5: #5FC4BE;--series-6: #B08CCB;--shadow: none}}:root[data-theme=dark]{--paper: #0E1412;--surface: #161E1A;--surface-2: #1C2621;--wash: #24312B;--rule: #27322C;--rule-strong: #38473F;--ink: #E7EDE8;--ink-2: #AEBDB5;--ink-3: #82938B;--ink-4: #5E6E67;--accent: #5FBC96;--accent-bg: #172C23;--amber: #DFAB5B;--amber-bg: #2A2317;--amber-rule: #3D3020;--stop: #E78468;--stop-bg: #26140F;--stop-rule: #3A1F17;--right: #6FD3A5;--right-bg: #17301F;--series-1: #5FBC96;--series-2: #DFAB5B;--series-3: #E78468;--series-4: #7FA6D9;--series-5: #5FC4BE;--series-6: #B08CCB;--shadow: none}:root[data-theme=light]{--paper: #F6F8F4;--surface: #FFFFFF;--surface-2: #EEF3EC;--wash: #E3EBE1;--rule: #D9E2DA;--rule-strong: #BCCBBE;--ink: #16211C;--ink-2: #46564F;--ink-3: #6E7F77;--ink-4: #9BAAA2;--caret: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%236E7F77' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");--accent: #1D6B52;--accent-bg: #E4EFE8;--amber: #8A5A12;--amber-bg: #F5EDDD;--amber-rule: #E7D8BC;--stop: #B24630;--stop-bg: #F7E7E2;--stop-rule: #E8CFC7;--right: #2F8F5B;--right-bg: #DFF0E5;--series-1: #1D6B52;--series-2: #B07A1E;--series-3: #B24630;--series-4: #3C6091;--series-5: #2E8B87;--series-6: #6F4F87;--shadow: 0 1px 2px rgba(22, 33, 28, .05), 0 6px 20px rgba(22, 33, 28, .04)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--paper);color:var(--ink);min-height:100vh;font-size:16px;line-height:1.62;-webkit-text-size-adjust:100%}.app{max-width:44rem;margin:0 auto;padding:var(--space-xl) var(--space-lg) 4rem}.app-header{padding:var(--space-xl) 0 var(--space-lg)}.header-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:1.25rem}.app-title{font-family:var(--font-serif);font-size:var(--text-xl);font-weight:400;letter-spacing:-.015em;text-wrap:balance;color:var(--accent)}.header-user{display:flex;align-items:center;flex-wrap:wrap;min-width:0;gap:var(--space-sm);font-size:.9rem;color:var(--ink-2)}.link-button{background:none;border:none;color:var(--accent);cursor:pointer;font-size:var(--text-sm);padding:0;min-height:44px;display:inline-flex;align-items:center;white-space:nowrap}.link-button:hover{text-decoration:underline}.theme-toggle{color:var(--ink-2);gap:var(--space-2xs)}.theme-toggle:hover{color:var(--ink);text-decoration:none}.theme-toggle:hover .theme-toggle-label{text-decoration:underline}.theme-toggle svg{flex:0 0 auto}.app-main{display:flex;flex-direction:column;gap:var(--space-lg);margin-top:var(--space-md)}.post-row{display:flex;gap:var(--space-xs);flex-wrap:wrap}.post-row .form-input{flex:1 1 11rem;min-width:0}.post-row .grade-dropdown{flex:0 0 auto}.post-row .form-button{flex:1 0 auto}.form-input{flex:1;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-md);padding:var(--space-xs) .9rem;color:var(--ink);font-size:var(--text-base);outline:none;min-height:44px;transition:border-color var(--transition-fast)}.form-input:focus{border-color:var(--accent)}.form-input::placeholder{color:var(--ink-4)}.form-input:disabled{opacity:.5}.form-button{background:var(--accent);color:var(--paper);font-weight:var(--weight-bold);font-size:var(--text-sm);letter-spacing:.01em;border:none;border-radius:var(--radius-md);padding:var(--space-xs) 1.4rem;cursor:pointer;min-height:44px;transition:opacity var(--transition-fast)}.form-button:hover:not(:disabled){opacity:.88}.form-button:disabled{background:var(--surface-2);color:var(--ink-2);border:1px solid var(--rule);cursor:not-allowed}.form-error{color:var(--stop);font-size:.88rem}.ai-notice{background:var(--amber-bg);border:1px solid var(--amber-rule);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);color:var(--amber)}.worksheet-list{display:flex;flex-direction:column;gap:var(--space-sm)}.worksheet-card{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-2xs) var(--space-md);background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:var(--space-md) 1.25rem;color:var(--ink);font-size:var(--text-base);text-align:left;cursor:pointer;transition:border-color var(--transition-fast)}.worksheet-card:hover{border-color:var(--rule-strong)}.worksheet-title{font-weight:var(--weight-bold);min-width:0}.worksheet-meta{font-size:var(--text-sm);color:var(--ink-2);white-space:nowrap}.upload-panel{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:1.25rem;display:flex;flex-direction:column;gap:var(--space-sm)}.panel-title{font-family:var(--font-serif);font-weight:400;letter-spacing:-.015em;font-size:1.1rem}.panel-note{font-size:var(--text-sm);color:var(--ink-2);margin:0;max-width:62ch}.json-textarea{width:100%;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-md);padding:var(--space-xs) .9rem;color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--text-sm);outline:none;resize:vertical}.json-textarea:focus{border-color:var(--accent)}.json-textarea::placeholder{color:var(--ink-4)}.file-button{display:inline-flex;align-items:center;background:var(--surface-2);border:1px solid var(--wash);color:var(--ink);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm)}.file-button:hover{background:var(--wash)}.error-list{margin:var(--space-2xs) 0 0 1.2rem}.progress-panel{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:var(--space-md) 1.25rem;display:flex;flex-direction:column;gap:var(--space-xs)}.progress-row{display:flex;align-items:center;gap:var(--space-sm)}.progress-row-button{background:none;border:none;padding:var(--space-2xs) var(--space-2xs);border-radius:var(--radius-sm);cursor:pointer;width:100%;text-align:left;transition:background var(--transition-fast)}.progress-row-button:hover{background:var(--wash)}.progress-row-button:hover .progress-track{background:var(--surface)}.progress-hint{font-size:var(--text-xs)}.practise-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.progress-label{flex:1 1 auto;min-width:0;font-size:var(--text-sm);color:var(--ink-2)}.progress-track{flex:1 1 0;min-width:4.5rem;height:8px;background:var(--surface-2);border-radius:var(--radius-sm);overflow:hidden}.progress-fill{height:100%;background:var(--accent);transition:width .3s}.progress-fill.mastered{background:var(--accent)}.progress-score{flex:0 0 3rem;text-align:right;font-size:var(--text-xs);color:var(--ink-2)}.refresher-panel,.question-card,.feedback-panel,.done-panel{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:1.25rem;display:flex;flex-direction:column;gap:var(--space-sm)}.refresher-tag{font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--accent);text-transform:uppercase;letter-spacing:.05em}.concept-name{font-family:var(--font-serif);font-weight:400;letter-spacing:-.015em;font-size:var(--text-lg)}.concept-explanation{color:var(--ink-2)}.story-box{background:var(--paper);border:1px solid var(--rule);border-left:3px solid var(--accent);border-radius:0 var(--radius-md) var(--radius-md) 0;padding:var(--space-md) 1.1rem;color:var(--ink-2);font-size:.98rem;line-height:1.75;white-space:pre-wrap}.refresher-panel .form-button,.feedback-panel .form-button{align-self:flex-start}.question-text{font-size:1.05rem;color:var(--ink)}.ai-question-badge{align-self:flex-start;font-size:var(--text-xs);color:var(--amber);background:var(--surface-2);border-radius:var(--radius-sm);font-size:.68rem;font-weight:var(--weight-bold);letter-spacing:.09em;text-transform:uppercase;padding:.22em .6em}.option-list{display:flex;flex-direction:column;gap:var(--space-xs)}.option-unsigned{text-indent:.7ch}.option-button{background:var(--surface-2);border:1px solid var(--wash);color:var(--ink);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);text-align:left;transition:background var(--transition-fast)}@media (hover: hover) and (pointer: fine){.option-button:hover:not(:disabled):not(.option-chosen){background:var(--wash)}}.option-button:disabled{opacity:.5;cursor:not-allowed}.option-button.option-chosen{background:var(--wash);border-color:var(--rule-strong);font-weight:var(--weight-bold);box-shadow:inset 3px 0 0 var(--ink)}.option-list-figures{display:grid;grid-template-columns:repeat(var(--option-cols, 2),minmax(0,1fr));gap:var(--space-xs)}@media (max-width: 700px){.option-list-figures{grid-template-columns:repeat(2,minmax(0,1fr))}}.option-list-figures .option-button{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:var(--space-2xs);min-width:0;min-height:44px;text-align:center;text-indent:0}.hint-row{min-height:1.4rem}.hint-text{color:var(--amber);font-size:var(--text-sm)}.term-link{position:relative;background:none;border:none;padding:0;font:inherit;color:var(--accent);text-decoration:underline dotted;text-decoration-thickness:1.5px;text-underline-offset:3px;cursor:pointer}.term-link:after{content:"";position:absolute;top:0;left:-4px;right:-4px;height:max(44px,100%)}.term-link[aria-expanded=true]{text-decoration-style:solid}.term-card{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);min-width:0;margin-top:var(--space-xs);padding:var(--space-sm);background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-md);color:var(--ink-2);font-size:var(--text-sm);font-weight:400;line-height:1.5}.term-card-body{display:flex;flex-direction:column;gap:var(--space-2xs);flex:1 1 12rem;min-width:0}.term-card-title{color:var(--ink)}.term-figure{width:132px;height:88px;flex:none}.term-ray{fill:none;stroke:var(--ink);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.term-mark{fill:none;stroke:var(--accent);stroke-width:2}.term-guide{stroke:var(--rule-strong);stroke-width:1.5;stroke-dasharray:4 3}.term-strong{stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}.term-fold{stroke:var(--accent);stroke-width:2;stroke-dasharray:5 4}.term-dot{fill:var(--accent)}.term-fill{fill:var(--accent-bg);stroke:none}.term-grid{fill:none;stroke:var(--rule-strong);stroke-width:1}.term-digit{fill:var(--ink);font-family:var(--font-sans);font-size:26px;font-weight:var(--weight-bold);text-anchor:middle}.writing-badge{color:var(--accent)}.writing-sections{display:flex;flex-direction:column;gap:var(--space-md)}.writing-section{display:flex;flex-direction:column;gap:var(--space-2xs)}.writing-section-name{font-weight:var(--weight-bold);font-size:var(--text-sm);color:var(--ink)}.writing-section-guidance{font-size:var(--text-xs);color:var(--ink-3)}.writing-textarea{font-family:var(--font-sans);font-size:var(--text-base);background:var(--surface)}.writing-sections .form-button{align-self:flex-start}.writing-feedback{background:var(--paper);border:1px solid var(--rule);border-left:3px solid var(--amber);border-radius:0 var(--radius-md) var(--radius-md) 0;padding:var(--space-sm) var(--space-md);color:var(--ink-2);line-height:1.6}.corrections-box{background:var(--paper);border:1px solid var(--rule);border-left:3px solid var(--amber);border-radius:0 var(--radius-md) var(--radius-md) 0;padding:var(--space-sm) var(--space-md);display:flex;flex-direction:column;gap:var(--space-2xs)}.correction-row{font-size:.92rem;line-height:1.5}.correction-tag{display:inline-block;font-size:.68rem;text-transform:uppercase;letter-spacing:.03em;padding:0 .4rem;border-radius:var(--radius-sm);color:var(--paper);font-weight:700}.correction-spelling{background:var(--accent)}.correction-punctuation,.correction-grammar{background:var(--amber)}.correction-error{text-decoration:underline wavy var(--stop);text-underline-offset:2px}.correction-arrow{color:var(--ink-3)}.correction-fix{color:var(--accent);font-weight:600}.feedback-panel.correct{border-color:var(--accent)}.feedback-panel.wrong{border-color:var(--stop-rule)}.feedback-title{font-weight:var(--weight-bold)}.done-panel{align-items:flex-start}.done-link{text-decoration:none;display:inline-block}.history-nav{display:flex;align-items:center;gap:var(--space-md)}.history-nav .link-button:disabled{opacity:.35;cursor:not-allowed;text-decoration:none}.review-card{border-style:dashed}.review-tag{font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em}.review-idle{opacity:.55;cursor:default}.review-chosen{cursor:default;font-weight:var(--weight-bold)}.review-chosen.correct{border-color:var(--accent);color:var(--accent)}.review-chosen.wrong{border-color:var(--stop-rule);color:var(--stop)}.review-typed{color:var(--ink-2)}.recovery-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.6rem;font-weight:var(--weight-black);letter-spacing:.12em;text-align:center;background:var(--paper);border:1px dashed var(--accent);border-radius:var(--radius-md);padding:var(--space-md);color:var(--accent)}.invite-link{font-size:var(--text-sm);font-weight:var(--weight-bold);letter-spacing:0;text-align:left;overflow-wrap:anywhere;word-break:break-all;line-height:1.5}.role-switch{display:flex;gap:var(--space-xs)}.role-option{flex:1;background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-md);padding:var(--space-xs);color:var(--ink-3);cursor:pointer;font-size:var(--text-sm)}.role-option.role-active{border-color:var(--accent);color:var(--ink);background:var(--wash)}.child-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:1.25rem;display:flex;flex-direction:column;gap:var(--space-sm)}.child-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-sm)}.child-worksheets{display:flex;flex-direction:column;gap:var(--space-xs)}.sub-ok{color:var(--accent);font-size:var(--text-sm)}.sub-expired{color:var(--stop);font-size:var(--text-sm);font-weight:var(--weight-bold)}.subscription-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap}.debug-section{margin-top:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-xs)}.answer-key-panel{background:var(--amber-bg);border:1px dashed var(--amber-rule);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);display:flex;flex-direction:column;gap:var(--space-2xs);font-size:var(--text-sm)}.answer-key-row{display:flex;flex-wrap:wrap;gap:var(--space-2xs) var(--space-sm)}.answer-key-q{color:var(--amber);font-weight:var(--weight-bold);white-space:nowrap}.answer-key-text{color:var(--ink-3);flex:1 1 12rem}.answer-key-answer{color:var(--ink-2)}.coverage-pack{color:var(--ink);font-weight:var(--weight-bold);white-space:nowrap}.coverage-untested{color:var(--amber)}.coverage-count{color:var(--ink-2);font-variant-numeric:tabular-nums}.coverage-reviewed{color:var(--accent)}.status-text{color:var(--ink-2);font-size:.9rem}.status-error{color:var(--stop);font-size:.9rem;background:var(--stop-bg);border:1px solid var(--stop-rule);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md)}.auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-lg)}.auth-theme{width:100%;max-width:360px;display:flex;justify-content:flex-end}.auth-card{width:100%;max-width:360px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-xl);padding:var(--space-xl);display:flex;flex-direction:column;gap:.9rem}.auth-title{font-family:var(--font-serif);font-weight:400;letter-spacing:-.015em;font-size:1.5rem;margin-bottom:.5rem}.auth-toggle{background:none;border:none;color:var(--accent);cursor:pointer;font-size:var(--text-sm);padding:0;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.auth-toggle:hover{text-decoration:underline}.error-boundary{max-width:500px;margin:4rem auto;text-align:center;padding:var(--space-xl)}.error-boundary h2{font-family:var(--font-serif);font-weight:400;letter-spacing:-.015em;margin-bottom:var(--space-sm);color:var(--stop)}.error-boundary button{margin-top:var(--space-md);background:var(--surface-2);border:1px solid var(--wash);color:var(--ink);padding:.5rem 1.2rem;border-radius:var(--radius-md);cursor:pointer}.landing{max-width:1020px;margin:0 auto;padding:var(--space-lg) var(--space-lg) 4rem}.landing-nav{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-sm);padding:var(--space-sm) 0 var(--space-xl)}.landing-logo{white-space:nowrap;font-family:var(--font-serif);font-weight:400;font-size:1.2rem;letter-spacing:-.015em;color:var(--accent);text-decoration:none}.landing-nav-links{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm) var(--space-md)}.nav-cta{text-decoration:none}.landing-hero{text-align:center;padding:var(--space-xl) 0 3rem}.landing-headline{font-family:var(--font-serif);font-weight:400;letter-spacing:-.015em;font-size:clamp(2rem,7vw,2.75rem);line-height:1.12;text-wrap:balance}.landing-accent{color:var(--accent)}.landing-sub{color:var(--ink-2);max-width:620px;margin:var(--space-lg) auto;font-size:1.05rem}.landing-cta-row{display:flex;align-items:center;justify-content:center;gap:var(--space-md);flex-wrap:wrap}.landing-cta-main{font-size:1rem;padding:.8rem 1.8rem;text-decoration:none;display:inline-block}.landing-stats{display:flex;justify-content:center;gap:var(--space-xl);margin-top:var(--space-xl);flex-wrap:wrap;color:var(--ink-2);font-size:var(--text-sm)}.landing-stats strong{color:var(--ink)}.landing-section{padding:var(--space-xl) 0}.landing-h2{font-family:var(--font-serif);font-weight:400;letter-spacing:-.015em;font-size:clamp(1.35rem,4.6vw,1.65rem);line-height:1.25;text-align:center;margin-bottom:var(--space-lg);text-wrap:balance}.landing-grid{display:grid;gap:var(--space-md)}.landing-grid.three{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.landing-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:1.25rem}.landing-card h3{font-size:1rem;margin:var(--space-2xs) 0}.landing-card p{color:var(--ink-2);font-size:var(--text-sm)}.landing-emoji{font-size:1.6rem}.catalog-card{border-left:3px solid var(--accent)}.landing-coming-soon{text-align:center;color:var(--amber);background:var(--amber-bg);border:1px solid var(--amber-rule);border-radius:var(--radius-md);padding:var(--space-lg)}.grade-pills{display:flex;justify-content:center;gap:var(--space-xs);margin-bottom:var(--space-lg);flex-wrap:wrap}.grade-pill{background:var(--surface);border:1px solid var(--rule);color:var(--ink-2);min-height:44px;display:inline-flex;align-items:center;cursor:pointer;border-radius:var(--radius-sm);font-size:.68rem;font-weight:var(--weight-bold);letter-spacing:.09em;text-transform:uppercase;padding:.22em .6em}.grade-pill-active{border-color:var(--accent);color:var(--ink);background:var(--wash)}.grade-select-row{display:flex;align-items:center;gap:var(--space-2xs);flex-wrap:wrap}.grade-dropdown{flex:0 0 auto;width:auto}.grade-tag{font-size:var(--text-xs);color:var(--ink-2);font-weight:400;margin-left:.5em;letter-spacing:.02em}.pricing-card{max-width:460px;margin:0 auto;background:var(--surface);border:1px solid var(--accent);border-radius:var(--radius-xl);padding:var(--space-xl);text-align:center;display:flex;flex-direction:column;gap:var(--space-md)}.pricing-card h3{font-family:var(--font-serif);font-weight:400;letter-spacing:-.015em;font-size:1.3rem}.pricing-line{color:var(--ink-2)}.pricing-list{list-style:none;text-align:left;display:flex;flex-direction:column;gap:var(--space-2xs);color:var(--ink-2);font-size:var(--text-sm)}.landing-final{text-align:center}.landing-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--rule);padding-top:var(--space-lg);margin-top:var(--space-xl);color:var(--ink-2);font-size:var(--text-sm);flex-wrap:wrap;gap:var(--space-sm)}.demo-hud{display:flex;gap:var(--space-md);align-items:center}.demo-xp{color:var(--accent);font-weight:var(--weight-bold)}.demo-streak{color:var(--ink-3)}.demo-streak.hot{color:var(--amber);font-weight:var(--weight-bold)}.demo-progress{margin-top:var(--space-sm);height:10px}.demo-flash{color:var(--accent);font-weight:var(--weight-bold);font-size:1.05rem}.demo-retry{animation:shake .3s}.demo-milestone{align-items:center;text-align:center}.demo-badge{font-size:3rem}.demo-done{align-items:center;text-align:center}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.reading-gate{color:var(--amber);font-size:var(--text-sm);font-weight:var(--weight-bold)}.options-reading .option-button{color:var(--ink-3);border-style:dashed;background:var(--paper)}.options-reading .option-button:disabled{opacity:1}.report-chips{display:flex;gap:var(--space-xs);flex-wrap:wrap}.report-chip{border-radius:var(--radius-sm);font-size:.68rem;font-weight:var(--weight-bold);letter-spacing:.09em;text-transform:uppercase;padding:.22em .6em;border:1px solid var(--rule)}.report-chip.small{padding:0 .45rem;font-size:var(--text-xs)}.grade-A{color:var(--accent);border-color:var(--accent)}.grade-B{color:var(--accent);border-color:var(--rule-strong)}.grade-C{color:var(--amber);border-color:var(--amber-rule)}.grade-D{color:var(--stop);border-color:var(--stop-rule)}.child-report,.rubric-bars{display:flex;flex-direction:column;gap:var(--space-2xs)}.practise-fold>.home-category-header{border-left:3px solid var(--amber)}.test-group{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--rule);border-left:3px solid var(--amber);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.test-group>.worksheet-card{border:0;border-radius:0;box-shadow:none;background:transparent}.test-group>.worksheet-card:focus-visible{outline-offset:-3px}.test-group>.worksheet-card.test-warmup{border-top:1px solid var(--rule);padding-left:calc(1.25rem + var(--space-md))}@media (hover: hover) and (pointer: fine){.test-group>.worksheet-card:hover{background:var(--surface-2)}}.needs-practice{display:flex;flex-direction:column;gap:var(--space-2xs)}.focus-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2xs)}.focus-item{min-height:44px;display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--space-md);min-width:0}.focus-name{flex:1 1 12rem;min-width:0;font-size:var(--text-sm);color:var(--ink)}.focus-state{font-size:var(--text-sm);white-space:nowrap}.focus-state.open{color:var(--amber)}.focus-state.done{color:var(--accent)}.progress-actions{margin:0 0 var(--space-xs) var(--space-md)}.notify-row{max-width:420px;margin:var(--space-sm) auto 0}.legal-note{font-size:var(--text-xs);color:var(--ink-3)}.legal-note a{color:var(--accent)}.legal-text h3{margin-top:var(--space-md)}.legal-text p{color:var(--ink-2)}.legal-text a{color:var(--accent)}.admin-user-row{align-items:center}.demo-milestone .form-button,.demo-done .form-button{align-self:center}.demo-reteach{border-left:3px solid var(--amber)}.reteach-box{background:var(--paper);border:1px solid var(--rule);border-left:3px solid var(--amber);border-radius:0 var(--radius-md) var(--radius-md) 0;padding:var(--space-sm) var(--space-md);display:flex;flex-direction:column;gap:var(--space-2xs)}.suggestion-banner{display:flex;flex-direction:column;gap:var(--space-sm)}.demo-dash-preview{pointer-events:none}.legal-toggle{display:flex;align-items:center;gap:var(--space-2xs);cursor:pointer}.subscribe-plan{max-width:none;padding:var(--space-md);text-align:left}.writing-card{border-left:3px solid var(--accent)}.writing-choice{display:flex;flex-direction:column;gap:var(--space-sm)}.or-divider{text-align:center;color:var(--ink-3);margin:var(--space-sm) 0}.writing-piece{border:1px solid var(--rule);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm)}.writing-piece-head{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.writing-piece-topic{font-weight:600}.writing-piece-date{color:var(--ink-3);font-size:.8rem;margin-left:auto}.writing-piece-text{white-space:pre-wrap;background:var(--paper);border-left:3px solid var(--rule);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);line-height:1.6}.writing-section-block{margin-bottom:var(--space-xs)}.writing-section-label{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);font-weight:700}.writing-section-block p{margin:0 0 var(--space-2xs)}.danger-zone{border:1px solid var(--stop-rule);background:var(--stop-bg);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);display:flex;flex-direction:column;gap:var(--space-xs);margin-top:var(--space-xs)}.danger-button{background:var(--stop);color:var(--paper)}.home-category{display:flex;flex-direction:column;gap:var(--space-sm)}.home-category-header{display:flex;justify-content:space-between;align-items:center;width:100%;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:var(--space-md) 1.25rem;color:var(--ink);cursor:pointer;transition:border-color var(--transition-fast)}.home-category-header:hover{border-color:var(--rule-strong)}.home-category-header[aria-expanded=true]{border-color:var(--accent)}.home-category-title{font-family:var(--font-serif);font-weight:400;letter-spacing:-.015em;font-size:1.25rem}.home-category-meta{font-size:var(--text-sm);color:var(--ink-2);display:flex;gap:var(--space-xs);align-items:center}.chevron{color:var(--accent);font-size:1.4rem;line-height:1}.home-category .worksheet-list{padding-left:var(--space-md);margin-left:var(--space-md);border-left:1px solid var(--rule)}.home-fold>summary{list-style:none}.home-fold>summary::-webkit-details-marker{display:none}.home-fold[open]>.home-category-header{border-color:var(--accent)}.practise-fold[open]>.home-category-header{border-left-color:var(--amber)}.home-fold>:not(summary){margin-top:var(--space-sm)}.home-fold .worksheet-list{padding-left:var(--space-md);margin-left:var(--space-md);border-left:1px solid var(--rule)}.home-fold-chev{display:inline-block;color:var(--ink-2);font-size:1rem}.home-fold[open]>summary .home-fold-chev{transform:rotate(90deg)}.recent-added-note{font-size:var(--text-sm);color:var(--ink-2);margin:var(--space-xs) 0 0 calc(var(--space-md) * 2)}.worksheet-meta-long{white-space:normal;min-width:0}.child-card{gap:var(--space-md)}.child-section{display:flex;flex-direction:column;gap:var(--space-xs)}.section-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-weight:800}.section-body{display:flex;flex-direction:column;gap:var(--space-xs);padding-left:var(--space-md);margin-left:var(--space-2xs);border-left:1px solid var(--rule)}.muted{color:var(--ink-2)}.child-footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-xs);border-top:1px solid var(--rule);padding-top:var(--space-sm)}.child-actions{display:flex;gap:var(--space-md);flex-wrap:wrap}.child-tests{display:flex;flex-direction:column;gap:var(--space-sm)}.test-result-card{display:flex;flex-direction:column;gap:var(--space-2xs);background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md)}.test-result-head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm)}.test-result-date{font-weight:600;font-size:var(--text-sm)}.practice-run-title{font-size:var(--text-sm);color:var(--ink)}.test-result-score{font-size:var(--text-sm);color:var(--ink-3)}.test-trend{font-size:var(--text-sm);font-weight:var(--weight-bold)}.test-trend.up{color:var(--accent)}.test-trend.down{color:var(--amber)}.test-missed{display:flex;flex-direction:column;gap:var(--space-xs);list-style:none;padding-left:var(--space-md);margin:var(--space-2xs) 0 0;border-left:1px solid var(--rule)}.test-missed-item{display:flex;flex-direction:column;gap:var(--space-xs);padding-bottom:var(--space-md)}.test-missed-item+.test-missed-item{border-top:1px solid var(--rule);padding-top:var(--space-md)}.test-missed-item strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.student-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--text-xs);color:var(--ink-3)}.test-missed-item .option-list{font-size:var(--text-sm)}.test-missed-item .option-button{cursor:default;font-size:var(--text-sm)}.test-missed-item .story-box{max-height:14rem;overflow-y:auto;font-size:var(--text-sm)}.concept-check-start{align-self:flex-start;font-size:var(--text-sm)}.concept-check{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:var(--surface-2);border-radius:var(--radius-md)}.concept-check-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-sm)}.concept-check .concept-check-head strong,.concept-check .status-text strong{font-family:var(--font-sans)}.concept-check-q{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--ink)}.concept-check .option-button{cursor:pointer}.concept-check .option-button.review-idle,.concept-check .option-button.review-chosen{cursor:default}.concept-check>.link-button{align-self:flex-start;font-size:var(--text-sm)}.concept-check-note{font-size:var(--text-xs)}.test-missed-q{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--ink)}.test-requested-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap}.child-manage{display:flex;flex-direction:column;gap:var(--space-md);background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-md);padding:var(--space-md)}.setting-field{display:flex;flex-direction:column;gap:var(--space-2xs)}.setting-name{font-weight:600;font-size:var(--text-sm)}.app-select{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-md);padding:var(--space-xs) .9rem;color:var(--ink);font-family:var(--font-sans);font-size:var(--text-base);cursor:pointer;outline:none}.app-select:focus{border-color:var(--accent)}.app-select option{background:var(--surface);color:var(--ink)}.grade-legend{font-size:.72rem}.done-actions{align-items:center;gap:var(--space-md)}.practice-progress{margin-bottom:var(--space-xs)}.chart-figure{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);margin:0 0 var(--space-sm);display:flex;flex-direction:column;gap:var(--space-2xs);overflow-x:auto}.chart-figure-option{background:none;border:0;border-radius:0;padding:0;margin:0;width:100%;min-width:0;overflow-x:visible}.chart-figure-option .chart-svg{width:100%;height:88px;max-height:88px}.figure-grid{display:grid;grid-template-columns:repeat(var(--figure-grid-cols, 3),minmax(0,1fr));gap:var(--space-2xs);width:100%}.figure-grid-cell{border:1px solid var(--rule);border-radius:var(--radius-sm);padding:var(--space-2xs);min-width:0;display:flex;align-items:center;justify-content:center}.figure-grid-cell .chart-svg{width:100%;height:62px;max-height:62px}.figure-grid-blank{border-style:dashed;border-color:var(--rule-strong);min-height:62px}.figure-grid-q{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--ink-2)}.chart-title{font-weight:var(--weight-bold);font-size:var(--text-sm)}.chart-svg{max-width:100%;max-height:150px;height:auto}.chart-label{fill:var(--ink-2);font-size:12px;font-family:var(--font-sans)}.chart-value{fill:var(--ink);font-size:12px;font-weight:700;font-family:var(--font-sans)}.chart-key{font-size:var(--text-xs);color:var(--ink-3)}.chart-axis{stroke:var(--rule-strong);stroke-width:1.5}.chart-arrowhead{fill:var(--rule-strong)}.chart-mark{fill:var(--ink);font-size:18px;font-weight:800}.chart-glyph{fill:var(--ink)}.chart-seam{stroke:var(--paper);stroke-width:1}.chart-seam-thick{stroke:var(--paper);stroke-width:1.5}.chart-dot{fill:var(--paper);stroke:var(--rule-strong);stroke-width:1.5}.chart-badge{fill:var(--paper);stroke:var(--accent);stroke-width:1.5}.pie-wrap{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}.pie-svg{width:108px}.pie-legend{list-style:none;display:flex;flex-direction:column;gap:var(--space-2xs);font-size:var(--text-sm)}.pie-legend li{display:flex;align-items:center;gap:var(--space-2xs)}.pie-swatch{width:12px;height:12px;border-radius:var(--radius-sm);display:inline-block}.browse-grades{display:flex;gap:var(--space-2xs);flex-wrap:wrap;margin-top:var(--space-xs)}.chip-button{background:var(--surface);border:1px solid var(--rule);color:var(--ink-2);cursor:pointer;border-radius:var(--radius-sm);font-size:.68rem;font-weight:var(--weight-bold);letter-spacing:.09em;text-transform:uppercase;padding:.22em .6em}.chip-button{min-height:44px;display:inline-flex;align-items:center}.chip-button:hover{border-color:var(--rule-strong)}.chip-on{background:var(--accent);border-color:var(--accent);color:var(--paper)}.browse-group{display:flex;flex-direction:column;gap:var(--space-2xs)}.browse-list{list-style:none;display:flex;flex-direction:column;gap:2px}.browse-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-sm);padding:var(--space-2xs) var(--space-xs);min-height:44px;border-radius:var(--radius-sm);text-decoration:none;color:var(--ink)}.browse-title{min-width:0}.browse-row:hover{background:var(--surface)}.browse-row-locked{border:1px dashed var(--rule);color:var(--ink-2);cursor:default}.browse-row-locked:hover{background:transparent}.browse-title{font-weight:600}.browse-meta{font-size:var(--text-xs);color:var(--ink-2);white-space:nowrap}.preview-concepts{display:flex;flex-direction:column;gap:var(--space-2xs)}.preview-answers-toggle input{width:20px;height:20px}.preview-answers-toggle{min-height:44px;font-size:var(--text-sm);color:var(--ink-2);display:inline-flex;align-items:center;gap:var(--space-2xs);cursor:pointer;margin-top:var(--space-xs)}.preview-q{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-md);padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-xs)}.preview-q-num{font-size:var(--text-xs);color:var(--ink-3);font-family:ui-monospace,monospace}.preview-options{list-style:none;display:flex;flex-direction:column;gap:2px}.preview-options li{padding:2px var(--space-xs);border-radius:var(--radius-sm)}.preview-correct{color:var(--accent);font-weight:700;background:var(--accent-bg)}.preview-hint{font-size:var(--text-sm);color:var(--ink-3)}.chart-tick{fill:var(--ink-3);font-size:9px;font-family:var(--font-sans)}.chart-scale-tall{max-height:190px}.chart-series-1{fill:var(--series-1)}.chart-series-2{fill:var(--series-2)}.chart-series-3{fill:var(--series-3)}.chart-series-4{fill:var(--series-4)}.chart-series-5{fill:var(--series-5)}.chart-series-6{fill:var(--series-6)}.swatch-1{background:var(--series-1)}.swatch-2{background:var(--series-2)}.swatch-3{background:var(--series-3)}.swatch-4{background:var(--series-4)}.swatch-5{background:var(--series-5)}.swatch-6{background:var(--series-6)}.chart-bar{fill:var(--accent)}.chart-water{fill:var(--accent);fill-opacity:.3}.chart-count-dot{fill:var(--accent)}.chart-named-red{fill:var(--named-red)}.chart-named-blue{fill:var(--named-blue)}.chart-named-green{fill:var(--named-green)}.chart-named-yellow{fill:var(--named-yellow);stroke:var(--ink-3);stroke-width:1}.chart-named-orange{fill:var(--named-orange)}.chart-named-purple{fill:var(--named-purple)}.chart-named-pink{fill:var(--named-pink)}.chart-named-brown{fill:var(--named-brown)}.chart-named-black{fill:var(--named-black);stroke:var(--ink-3);stroke-width:1}.chart-named-white{fill:var(--named-white);stroke:var(--ink-3);stroke-width:1}.chart-named-grey{fill:var(--named-grey)}.swatch-named-red{background:var(--named-red)}.swatch-named-blue{background:var(--named-blue)}.swatch-named-green{background:var(--named-green)}.swatch-named-yellow{background:var(--named-yellow);box-shadow:inset 0 0 0 1px var(--ink-3)}.swatch-named-orange{background:var(--named-orange)}.swatch-named-purple{background:var(--named-purple)}.swatch-named-pink{background:var(--named-pink)}.swatch-named-brown{background:var(--named-brown)}.swatch-named-black{background:var(--named-black);box-shadow:inset 0 0 0 1px var(--ink-3)}.swatch-named-white{background:var(--named-white);box-shadow:inset 0 0 0 1px var(--ink-3)}.swatch-named-grey{background:var(--named-grey)}.chart-cell-shaded{fill:var(--accent);fill-opacity:.28}.chart-shape{fill:var(--accent);fill-opacity:.16;stroke:var(--accent);stroke-width:1.5}.chart-mirror-line{stroke:var(--rule-strong);stroke-width:1.5;stroke-dasharray:5 4}.chart-face-top{fill:var(--accent);fill-opacity:.55}.chart-face-right{fill:var(--accent);fill-opacity:.34}.chart-face-left{fill:var(--accent);fill-opacity:.2}.grid-cell{stroke:var(--rule-strong);stroke-width:1}.chart-net-cell{stroke:var(--ink-3);stroke-width:1.5}.chart-net-label{fill:var(--ink);font-size:16px;font-weight:700;font-family:var(--font-sans)}.chart-net{max-height:170px}.chart-triangles{max-height:240px}.chart-triangle-num{fill:var(--ink);font-size:15px;font-weight:700;font-family:var(--font-sans)}.round-counter{font-weight:600;margin-bottom:0}.topic-search{display:flex;align-items:center;gap:var(--space-sm)}.topic-search-input{width:100%;min-width:0}.topic-search-input::-webkit-search-cancel-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.topic-search-clear{flex:0 0 auto}.search-results{display:flex;flex-direction:column;gap:var(--space-sm)}.search-results .link-button{align-self:flex-start}.tt-setup{gap:var(--space-md)}.tt-choice{display:flex;flex-direction:column;gap:var(--space-2xs)}.tt-choice-label{font-size:.7rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}.tt-chips{display:flex;flex-wrap:wrap;gap:var(--space-2xs)}.tt-chip{min-height:44px;min-width:44px;padding:0 var(--space-sm);background:var(--surface);color:var(--ink);border:1px solid var(--rule-strong);border-radius:var(--radius-md);font-size:var(--text-base);cursor:pointer}.tt-chip-num{font-variant-numeric:tabular-nums}.tt-chip[aria-pressed=true]{background:var(--wash);border-color:var(--ink);box-shadow:inset 0 -3px 0 var(--ink);font-weight:var(--weight-bold)}.tt-quick{display:flex;flex-wrap:wrap;gap:0 var(--space-md)}.tt-board{display:flex;flex-direction:column;gap:var(--space-md);width:100%;max-width:28rem;margin:0 auto}.tt-hud{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-sm);font-size:1.1rem;font-variant-numeric:tabular-nums}.tt-time,.tt-score{font-weight:var(--weight-bold);color:var(--ink)}.tt-time-low{color:var(--amber)}.tt-clock{height:8px;background:var(--surface-2);border-radius:var(--radius-sm);overflow:hidden}.tt-clock-fill{height:100%;background:var(--ink-3);transition:width .2s linear}.tt-clock-low{background:var(--amber)}.tt-card{background:var(--surface);border:1px solid var(--rule);border-left:4px solid var(--rule-strong);border-radius:var(--radius-lg);padding:var(--space-lg) var(--space-md);text-align:center;box-shadow:var(--shadow)}.tt-fact{margin:0;font-size:clamp(2rem,9vw,2.75rem);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.tt-note{margin:var(--space-2xs) 0 0;min-height:1.5em;font-size:1rem;color:var(--ink-2)}.tt-right{border-left-color:var(--right);background:var(--right-bg)}.tt-right .tt-note{color:var(--right);font-weight:var(--weight-bold)}.tt-wrong{border-left-color:var(--wrong);background:var(--wrong-bg)}.tt-wrong .tt-note{color:var(--wrong);font-weight:var(--weight-bold)}.tt-keypad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-xs)}.tt-key{min-height:3.5rem;background:var(--surface);color:var(--ink);border:1.5px solid var(--rule-strong);border-radius:var(--radius-md);font-size:1.5rem;font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;cursor:pointer;touch-action:manipulation}.tt-key-go{background:var(--accent);border-color:var(--accent);color:var(--paper)}.tt-key-go:disabled{background:var(--surface-2);border-color:var(--rule);color:var(--ink-2);cursor:not-allowed}@media (hover: hover) and (pointer: fine){.tt-key:hover:not(:disabled):not(.tt-key-go){background:var(--surface-2)}}.tt-stop{align-self:center}.tt-done{align-items:center;text-align:center}.tt-missed{display:flex;flex-direction:column;gap:var(--space-2xs)}.tt-missed-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2xs) var(--space-md);font-size:1.15rem;font-weight:var(--weight-bold);font-variant-numeric:tabular-nums}.syllabus-map{display:flex;flex-direction:column;gap:var(--space-2xs)}.sm-root{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:0 var(--space-sm);font-family:var(--font-serif);font-size:1.35rem;color:var(--ink)}.sm-root .sm-meta{font-family:var(--font-sans)}.sm-branch{list-style:none;margin:0;padding:0}.sm-branch .sm-branch{margin-left:.55rem}.sm-branch>li{position:relative;padding-left:1.1rem}.sm-branch>li:before{content:"";position:absolute;left:0;top:0;bottom:0;border-left:1px solid var(--rule-strong)}.sm-branch>li:last-child:before{bottom:auto;height:22px}.sm-branch>li:after{content:"";position:absolute;left:0;top:22px;width:.8rem;border-top:1px solid var(--rule-strong)}.sm-node{display:flex;align-items:center;gap:var(--space-xs);min-height:44px;padding:.35rem var(--space-xs);border-radius:var(--radius-sm);color:var(--ink);text-decoration:none}summary.sm-node{cursor:pointer;list-style:none}summary.sm-node::-webkit-details-marker{display:none}@media (hover: hover) and (pointer: fine){summary.sm-node:hover,a.sm-node:hover{background:var(--surface-2)}}.sm-body{flex:1 1 auto;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:0 var(--space-xs)}.sm-label{min-width:0;overflow-wrap:anywhere}.sm-meta{font-size:var(--text-sm);color:var(--ink-2);font-weight:400}.sm-chev{flex:none;display:inline-block;width:1rem;text-align:center;font-size:1rem;color:var(--ink-2)}details[open]>summary>.sm-chev{transform:rotate(90deg)}.sm-area{font-size:1.1rem;font-weight:var(--weight-bold)}.sm-strand{font-weight:var(--weight-bold)}.sm-topic{font-weight:500}.sm-skill{font-size:.95rem;color:var(--ink-2)}.sm-whole{color:var(--accent)}.sm-tick{color:var(--accent);font-weight:var(--weight-bold);font-size:var(--text-sm);white-space:nowrap}body[data-mode=child] .sm-tick{color:var(--right)}.sm-locked{border:1px dashed var(--rule);color:var(--ink-2)}.app-header>.tt-chips{margin-top:var(--space-xs)}.home-map{display:flex;flex-direction:column;gap:var(--space-sm)}.sov{--sov-tracks: 4;--sov-stem: .75rem;--sov-gap: var(--space-lg);--sov-drop: 1.25rem}.sov-root{position:relative;margin:0;padding-bottom:var(--sov-drop);display:flex;flex-wrap:wrap;align-items:baseline;gap:0 var(--space-sm)}.sov-root:after{content:"";position:absolute;left:var(--sov-stem);bottom:0;height:var(--sov-drop);border-left:1px solid var(--rule-strong)}.sov-year{font-family:var(--font-serif);font-size:1.35rem;color:var(--ink)}.sov-areas{display:grid;grid-template-columns:repeat(var(--sov-tracks),minmax(0,1fr));gap:var(--space-xl) var(--sov-gap)}.sov-area{position:relative;padding-top:var(--sov-drop);min-width:0}.sov-area.sov-wide{grid-column:span 2}.sov-area:before{content:"";position:absolute;left:var(--sov-stem);top:0;height:var(--sov-drop);border-left:1px solid var(--rule-strong)}.sov-area:after{content:"";position:absolute;top:0;left:var(--sov-stem);right:calc(-1 * (var(--sov-gap) + var(--sov-stem)));border-top:1px solid var(--rule-strong)}.sov-area:last-child:after{display:none}.sov-area-name{margin:0 0 var(--space-sm);display:flex;flex-wrap:wrap;align-items:baseline;gap:0 var(--space-xs);font-size:1.05rem;font-weight:var(--weight-bold);color:var(--ink)}.sov-strands{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.sov-wide .sov-strands{display:block;column-count:2;column-gap:var(--sov-gap)}.sov-wide .sov-strands>li{break-inside:avoid;margin-bottom:var(--space-sm)}.sov-strands>li{display:flex;flex-direction:column;gap:.15rem;padding-left:var(--space-sm);border-left:1px solid var(--rule)}.sov-strand{font-size:.95rem;font-weight:600;color:var(--ink)}.sov-topics{font-size:.88rem;line-height:1.5;color:var(--ink-2);text-wrap:pretty}@media (max-width: 700px){.sov-areas{grid-template-columns:minmax(0,1fr);margin-left:var(--sov-stem);gap:0}.sov-area.sov-wide{grid-column:auto}.sov-wide .sov-strands{display:flex;column-count:auto}.sov-wide .sov-strands>li{margin-bottom:0}.sov-area{padding:0 0 var(--space-lg) 1.1rem}.sov-area:before{left:0;top:0;bottom:0;height:auto}.sov-area:last-child:before{bottom:auto;height:.75rem}.sov-area:after,.sov-area:last-child:after{display:block;left:0;right:auto;top:.75rem;width:.8rem}}.browse-progress{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs);font-size:var(--text-sm);color:var(--ink-2)}.browse-progress .form-input{flex:0 1 auto;min-width:0}body[data-mode=child] .sm-area{font-size:1.2rem}body[data-mode=child] .sm-topic{font-size:1.05rem}.section-label,.refresher-tag,.review-tag,.writing-section-label{font-size:.7rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}.section-label,.refresher-tag{color:var(--accent)}.worksheet-card,.child-card,.landing-card,.auth-card,.upload-panel,.progress-panel,.refresher-panel,.question-card,.feedback-panel,.done-panel,.home-category-header,.preview-q,.pricing-card{box-shadow:var(--shadow)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}body[data-mode=child] .question-text{font-size:1.3rem;line-height:1.5;font-weight:500}body[data-mode=child] .option-list{gap:var(--space-sm)}body[data-mode=child] .option-button{min-height:3.25rem;padding:.8rem 1.15rem;font-size:1.08rem;line-height:1.45;background:var(--surface);border:1.5px solid var(--rule-strong);border-radius:4px}@media (hover: hover) and (pointer: fine){body[data-mode=child] .option-button:hover:not(:disabled):not(.option-chosen){background:var(--surface-2)}}body[data-mode=child] .option-button.option-chosen{background:var(--wash);border-color:var(--rule-strong);box-shadow:inset 5px 0 0 var(--ink)}body[data-mode=child] .options-reading .option-button{border-width:1.5px;border-style:dashed}body[data-mode=child] .reading-gate,body[data-mode=child] .hint-text{font-size:1rem}body[data-mode=child] .feedback-panel{border-left-width:4px;border-left-style:solid}body[data-mode=child] .feedback-panel.correct{border-color:var(--right);background:var(--right-bg)}body[data-mode=child] .feedback-panel.wrong{border-color:var(--wrong);background:var(--wrong-bg)}body[data-mode=child] .feedback-title{font-size:1.15rem}body[data-mode=child] .feedback-panel.correct .feedback-title{color:var(--right)}body[data-mode=child] .feedback-panel.wrong .feedback-title{color:var(--wrong)}body[data-mode=child] .review-chosen.correct{border-color:var(--right);color:var(--right)}body[data-mode=child] .review-chosen.wrong{border-color:var(--wrong);color:var(--wrong)}body[data-mode=child] .correction-fix{color:var(--right)}body[data-mode=child] .demo-flash{color:var(--right);font-size:1.2rem}body[data-mode=child] .progress-fill.mastered{background:var(--right)}body[data-mode=child] .story-box{font-size:1.06rem;line-height:1.85;padding:1.1rem 1.25rem}body[data-mode=child] .concept-name{font-size:1.5rem}body[data-mode=child] .concept-explanation{font-size:1.06rem}body[data-mode=child] .worksheet-card,body[data-mode=child] .home-category-header{min-height:3.5rem;padding:var(--space-md) 1.25rem}body[data-mode=child] .worksheet-title{font-size:1.05rem}body[data-mode=child] .home-category-title{font-size:1.25rem}body[data-mode=child] .progress-row-button{min-height:2.75rem}body[data-mode=child] .progress-label{font-size:1rem}body[data-mode=child] .progress-track{height:10px}body[data-mode=child] .form-button{min-height:3rem;padding:.7rem 1.6rem;font-size:1.02rem}@media (prefers-reduced-motion: no-preference){body[data-mode=child] .feedback-panel{animation:land .18s ease-out}body[data-mode=child] .demo-badge{animation:cheer .5s ease-out}body[data-mode=child] .option-button:active:not(:disabled){transform:scale(.99)}body[data-mode=child] .demo-retry,body[data-mode=child] .tt-wrong{animation:shake .3s}body[data-mode=child] .tt-right{animation:land .18s ease-out}body[data-mode=child] .tt-key:active:not(:disabled){transform:scale(.97)}}@keyframes land{0%{transform:translateY(4px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes cheer{0%{transform:scale(.6) rotate(-8deg)}60%{transform:scale(1.12) rotate(3deg)}to{transform:scale(1) rotate(0)}}body[data-mode=child] .progress-label{flex:0 0 52%}.student-row{display:flex;flex-direction:column;gap:var(--space-2xs);background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md)}.student-row+.student-row{margin-top:var(--space-xs)}.student-row.awaiting{border-left:3px solid var(--amber);border-radius:0 var(--radius-md) var(--radius-md) 0;background:var(--amber-bg)}.student-row .test-result-head{gap:var(--space-sm)}select.form-input,.app-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:2rem;background-image:var(--caret);background-repeat:no-repeat;background-position:right .65rem center;background-size:10px 6px}
