/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.isolate{isolation:isolate}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.hidden{display:none}.table{display:table}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--navy-950:#10233f;--navy-800:#1c3a62;--orange-500:#e87b32;--orange-600:#b54708;--orange-action:#b54708;--orange-action-hover:#9a3412;--ivory-50:#fffaf0;--ivory-100:#f4ead6;--ink:#182536;--muted:#677282}*{box-sizing:border-box}body{background:var(--ivory-50);min-height:100vh;color:var(--ink);margin:0;font-family:Arial,PingFang SC,Microsoft YaHei,sans-serif}a{color:inherit;text-decoration:none}.account-entry{background:radial-gradient(circle at 20% 10%, #e87b3221, transparent 30rem), var(--navy-950);place-items:center;min-height:100vh;padding:clamp(1.25rem,5vw,3rem);display:grid}.account-card{background:var(--ivory-50);border:1px solid #ffffff29;border-radius:1.25rem;width:min(100%,28rem);padding:clamp(1.5rem,6vw,2.75rem);box-shadow:0 1.5rem 5rem #00000047}.account-brand{color:var(--orange-action);letter-spacing:.16em;margin:0 0 1rem;font-size:.9rem;font-weight:800}.account-card h1{color:var(--navy-950);margin:0;font-size:clamp(1.75rem,7vw,2.5rem)}.account-explanation{color:var(--muted);margin:.65rem 0 1.5rem;line-height:1.6}.account-error{color:#a92929;margin:0 0 1rem}.account-message{color:var(--navy-800);margin:0 0 1rem}.account-form{gap:1rem;display:grid}.account-form label{color:var(--navy-950);gap:.45rem;font-weight:700;display:grid}.account-form input{width:100%;color:var(--ink);font:inherit;background:#fff;border:1px solid #cfbea1;border-radius:.65rem;padding:.8rem .9rem;font-weight:400}.account-form input:focus-visible{border-color:var(--orange-action);outline:3px solid #b5470840}.account-card button{cursor:pointer;font:inherit}.account-card button:disabled{cursor:not-allowed;opacity:.55}.account-secondary-actions,.account-code-actions{justify-content:space-between;gap:.75rem;margin-top:1rem;display:flex}.account-secondary-actions button,.account-code-actions button,.account-back{color:var(--navy-800);background:0 0;border:0;padding:.45rem 0}.account-back{margin-top:1rem}.recovery-code-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin:1.25rem 0;display:grid}.recovery-code-grid code{background:var(--ivory-100);text-align:center;border-radius:.5rem;padding:.6rem;font-size:.8rem}.account-confirmation{align-items:center;gap:.55rem;margin:1.25rem 0;line-height:1.4;display:flex}.account-card>.primary-button,.account-form .primary-button{background:var(--orange-action);color:#fff;border:0;border-radius:.65rem;width:100%;padding:.85rem 1rem;font-weight:800}.account-dialog-backdrop{z-index:50;background:#081425c2;place-items:center;padding:1.25rem;display:grid;position:fixed;inset:0}.account-dialog{background:var(--ivory-50);border-radius:1rem;width:min(100%,31rem);padding:clamp(1.35rem,5vw,2rem);box-shadow:0 1.5rem 5rem #00000059}.account-dialog h2{color:var(--navy-950);margin:0;font-size:1.5rem}.account-dialog p{color:var(--muted);line-height:1.65}.account-dialog .secondary-button{width:100%;color:var(--navy-800);background:#fff;border:1px solid #cfbea1;border-radius:.65rem;padding:.75rem;font-weight:700}.account-dialog-actions{grid-template-columns:1fr 2fr;gap:.75rem;display:grid}.account-dialog-actions>button{border:0;border-radius:.65rem;padding:.8rem}.account-dialog-actions>button:first-child{background:var(--ivory-100);color:var(--navy-800)}.account-dialog>.primary-button{background:var(--orange-action);color:#fff;border:0;border-radius:.65rem;width:100%;padding:.85rem 1rem;font-weight:800}@media (width<=32rem){.recovery-code-grid{grid-template-columns:1fr}}.app-shell{grid-template-rows:auto 1fr;grid-template-columns:12rem minmax(0,1fr);min-height:100vh;display:grid}.topbar{background:var(--navy-950);color:var(--ivory-50);grid-column:1/-1;justify-content:space-between;align-items:center;gap:1rem;padding:1rem clamp(1.25rem,4vw,3rem);display:flex}.topbar strong{letter-spacing:.08em;font-size:1.125rem}.topbar span{color:var(--ivory-100);font-size:.875rem}.current-book-control{align-items:center;gap:.65rem;display:flex}.current-book-control select{background:var(--navy-800);color:#fff;min-width:min(18rem,42vw);font:inherit;border:1px solid #ffffff59;border-radius:.5rem;padding:.5rem .7rem}.shell-error{color:#ffd2c3!important}.account-menu{position:relative}.account-menu-trigger{color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff4d;border-radius:999px;align-items:center;gap:.4rem;max-width:min(19rem,38vw);padding:.45rem .75rem;display:inline-flex}.account-menu-trigger>span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.account-menu-popover{z-index:40;width:10rem;color:var(--navy-950);background:#fffdf8;border:1px solid #d8ccb6;border-radius:.65rem;padding:.35rem;display:grid;position:absolute;top:calc(100% + .5rem);right:0;box-shadow:0 .8rem 2.2rem #0003}.account-menu-popover a,.account-menu-popover button{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:.45rem;padding:.6rem .7rem}.account-menu-popover a:hover,.account-menu-popover a:focus-visible,.account-menu-popover button:hover,.account-menu-popover button:focus-visible{background:var(--ivory-100);outline:none}.rail{background:var(--navy-800);color:var(--ivory-100);flex-direction:column;gap:.25rem;padding:1.5rem 1rem;display:flex}.rail a{border-radius:.5rem;padding:.7rem .85rem}.rail a[aria-current=page],.rail a:hover,.rail a:focus-visible{color:#fff;background:#ffffff24;outline:none}.app-shell main{place-items:center;padding:clamp(1.5rem,6vw,5rem);display:grid}.today-card{background:#fffdf8;border:1px solid #e7dcc6;border-radius:1.25rem;width:min(100%,42rem);padding:clamp(2rem,6vw,4.5rem);box-shadow:0 1.25rem 3.75rem #10233f1f}.today-card p{color:var(--muted);margin:0;font-size:.95rem}.today-card h1{max-width:12em;color:var(--navy-950);margin:1rem 0 2rem;font-size:clamp(2rem,5vw,3.5rem);line-height:1.15}.today-card progress{width:100%;height:.8rem;accent-color:var(--orange-500)}.learning-chapter-picker{border:1px solid #e7dcc6;border-radius:.7rem;flex-wrap:wrap;gap:.6rem 1rem;margin-top:1.5rem;padding:.8rem 1rem 1rem;display:flex}.learning-chapter-picker legend{color:var(--muted);padding-inline:.3rem;font-size:.88rem}.learning-chapter-picker label{align-items:center;gap:.4rem;display:inline-flex}.home-actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.home-actions a{border:1px solid var(--orange-500);border-radius:.55rem;padding:.75rem 1rem;font-weight:700}.home-actions a:first-child{background:var(--orange-action);color:#fff}.home-actions a:hover,.home-actions a:focus-visible{border-color:var(--orange-action-hover);background:var(--orange-action-hover);color:#fff;outline:3px solid var(--orange-action);outline-offset:2px}.learning-page{grid-template-rows:auto minmax(25rem,1fr);width:min(100%,52rem);min-height:min(42rem,100vh - 10rem);display:grid}.learning-progress{color:var(--muted);grid-template-columns:1fr auto auto;align-items:center;gap:1rem;display:grid}.learning-progress strong{color:var(--navy-950);font-size:1.15rem}.learning-progress label{align-items:center;gap:.5rem;display:flex}.learning-progress select{color:var(--navy-950);background:#fffdf8;border:1px solid #d8ccb6;border-radius:.5rem;padding:.45rem .6rem}.spelling-stage{flex-direction:column;align-self:center;align-items:center;width:min(100%,39rem);margin-inline:auto;display:flex}.spelling-audio-row{justify-content:center;align-items:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.replay-button{border:1px solid var(--navy-800);background:var(--navy-950);color:#fff;font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:.5rem;padding:.65rem 1rem;font-weight:700;display:inline-flex}.replay-button span{color:#ffaf73;font-size:1.35rem;line-height:.8}.rate-indicator{color:var(--muted);font-variant-numeric:tabular-nums}.spelling-feedback{text-align:center;flex-direction:column;justify-content:end;align-items:center;width:100%;display:flex}.spelling-feedback--reserved{flex:0 0 7rem;height:7rem;padding-bottom:1rem}.correct-answer{color:var(--navy-950);letter-spacing:.045em;font-size:clamp(1.65rem,5vw,2.45rem);font-weight:800}.diff-token--error{color:#bd2b2b;text-underline-offset:.14em;text-decoration-line:underline;text-decoration-color:#bd2b2b;text-decoration-thickness:.13em}.diff-insertion-marker{color:#bd2b2b;vertical-align:-.03em;width:.16em;margin-inline:.04em;display:inline-block;overflow:hidden}.correct-phonetic{color:var(--muted);margin-top:.5rem;font-family:Times New Roman,serif;font-size:1.1rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.spelling-input{width:100%;color:var(--navy-950);font:inherit;letter-spacing:.035em;text-align:center;background:#fffdf8;border:2px solid #c8bca7;border-radius:.9rem;padding:1rem 1.2rem;font-size:clamp(1.4rem,4vw,2rem);box-shadow:0 .75rem 2rem #10233f14}.spelling-input--error{border-color:#bd2b2b}.spelling-input:focus-visible,.replay-button:focus-visible,.learning-progress select:focus-visible{outline:3px solid var(--orange-action);outline-offset:3px}.save-error,.learning-load-error{color:#9f2424;text-align:center;margin:.75rem 0 0}.voice-fallback-notice{color:var(--navy);text-align:center;max-width:42rem;margin:0 auto;font-size:.9rem}.keyboard-hint{color:var(--muted);align-self:end;margin:.8rem 0 0;font-size:.8rem}.keyboard-hint kbd{font:inherit;background:#fffdf8;border:1px solid #c8bca7;border-radius:.25rem;padding:.08rem .28rem;box-shadow:0 1px #c8bca7}.learning-loading,.learning-complete,.learning-load-error{place-self:center}.test-page{width:min(100%,58rem)}.test-setup,.test-recovery,.test-paused,.test-results{background:#fffdf8;border:1px solid #e7dcc6;border-radius:1.15rem;padding:clamp(1.4rem,4vw,2.5rem);box-shadow:0 1rem 3rem #10233f1a}.test-setup h1,.test-recovery h1,.test-paused h2,.test-results h1,.test-stage h1{color:var(--navy-950);margin:0}.test-setup{gap:1.2rem;display:grid}.test-setup fieldset{border:1px solid #ded2bd;border-radius:.75rem;flex-wrap:wrap;gap:.65rem 1.1rem;margin:0;padding:.85rem 1rem 1rem;display:flex}.test-setup legend{color:var(--navy-800);padding-inline:.3rem;font-weight:700}.test-setup label{align-items:center;gap:.45rem;display:inline-flex}.chapter-picker{max-height:13rem;overflow-y:auto}.test-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}.test-setting{color:var(--muted);gap:.4rem!important;display:grid!important}.test-setting select,.test-setting input{width:100%;color:var(--ink);font:inherit;background:#fff;border:1px solid #c8bca7;border-radius:.55rem;padding:.65rem .75rem}.test-primary-action,.test-actions button,.result-actions button{border:1px solid var(--orange-500);background:var(--orange-action);color:#fff;font:inherit;cursor:pointer;border-radius:.6rem;padding:.75rem 1.1rem;font-weight:700}.test-primary-action:disabled,.test-actions button:disabled,.result-actions button:disabled{cursor:wait;opacity:.65}.test-stage{align-content:center;width:100%;min-height:min(40rem,100vh - 10rem);display:grid}.test-progress{grid-template-columns:1fr auto auto;align-items:center;gap:1.2rem;margin-bottom:clamp(3rem,8vh,6rem);display:grid}.test-progress strong,.test-timer{font-variant-numeric:tabular-nums}.test-timer{color:var(--orange-600);font-weight:700}.test-stage .spelling-input{width:min(100%,39rem);margin-inline:auto}.test-stage .keyboard-hint,.test-stage .save-error{justify-self:center}.test-rate-control{color:var(--muted);align-items:center;gap:.45rem;display:inline-flex}.test-rate-control select{color:var(--navy-950);font:inherit;background:#fff;border:1px solid #c8bca7;border-radius:.45rem;padding:.42rem .55rem}.test-actions,.result-actions{flex-wrap:wrap;gap:.75rem;margin-top:1.25rem;display:flex}.test-actions button:last-child,.result-actions button:last-child{border-color:var(--navy-800);color:var(--navy-950);background:#fff}.test-complete{text-align:center}.test-results{width:100%}.test-results header p{color:var(--orange-600);margin:0 0 .35rem;font-weight:700}.result-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin:1.5rem 0;display:grid}.result-summary div{background:var(--ivory-50);border-radius:.7rem;padding:.85rem}.result-summary dt{color:var(--muted);font-size:.8rem}.result-summary dd{color:var(--navy-950);margin:.3rem 0 0;font-weight:700}.result-details{gap:.8rem;margin:1.5rem 0 0;padding:0;list-style:none;display:grid}.result-details li{border:1px solid #e7dcc6;border-radius:.75rem;padding:1rem}.result-details p{margin:.3rem 0}.result-details p>span:first-child{color:var(--muted)}.result-correct-answer{color:var(--navy-950);letter-spacing:.035em}.mistakes-page,.stats-page{width:min(100%,68rem)}.section-heading{justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.5rem;display:flex}.section-heading p{color:var(--orange-600);margin:0 0 .3rem;font-size:.85rem;font-weight:700}.section-heading h1{color:var(--navy-950);margin:0;font-size:clamp(1.8rem,4vw,2.6rem)}.section-heading>span{color:var(--muted)}.mistake-filters{grid-template-columns:minmax(12rem,2fr) repeat(3,minmax(8rem,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.mistake-filters label{color:var(--muted);gap:.35rem;font-size:.85rem;display:grid}.mistake-filters input,.mistake-filters select{min-width:0;color:var(--ink);font:inherit;background:#fff;border:1px solid #c8bca7;border-radius:.55rem;padding:.65rem .75rem}.mistake-selection-bar{background:#fffdf8;border:1px solid #e7dcc6;border-radius:.75rem;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.mistake-selection-bar>label{align-items:center;gap:.45rem;font-weight:700;display:flex}.mistake-selection-bar>span{color:var(--muted)}.mistake-actions{gap:.6rem;margin-left:auto;display:flex}.mistake-actions button{border:1px solid var(--orange-500);background:var(--orange-action);color:#fff;font:inherit;cursor:pointer;border-radius:.55rem;padding:.6rem .85rem;font-weight:700}.mistake-actions button:last-child{border-color:var(--navy-800);color:var(--navy-950);background:#fff}.mistake-actions button:disabled{cursor:default;opacity:.5}.mistake-list{gap:.75rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.mistake-list li{background:#fffdf8;border:1px solid #e7dcc6;border-radius:.85rem;grid-template-columns:auto minmax(12rem,1fr) minmax(18rem,2fr);align-items:start;gap:1rem;padding:1rem;display:grid}.mistake-check{padding-top:.25rem}.mistake-word strong{color:var(--navy-950);letter-spacing:.03em;font-size:1.2rem;display:block}.mistake-word span{color:var(--muted);font-family:Times New Roman,serif}.mistake-word p{margin:.45rem 0 0}.mistake-list dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin:0;display:grid}.mistake-list dl div:last-child{grid-column:1/-1}.mistake-list dt{color:var(--muted);font-size:.78rem}.mistake-list dd{overflow-wrap:anywhere;margin:.2rem 0 0}.empty-state,.stats-intro-empty,.stat-empty{color:var(--muted);text-align:center;border:1px dashed #c8bca7;border-radius:.75rem;padding:1.25rem}.stats-intro-empty{margin:0 0 1rem}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.stat-card{background:#fffdf8;border:1px solid #e7dcc6;border-radius:.9rem;min-width:0;padding:1.1rem;box-shadow:0 .7rem 2rem #10233f0f}.stat-card--wide{grid-column:1/-1}.stat-card h2{color:var(--navy-950);margin:0 0 1rem;font-size:1.1rem}.mastery-total{color:var(--orange-600);margin:-.5rem 0 1rem;font-weight:700}.stat-bars{gap:.5rem;margin-bottom:1rem;display:grid}.stat-bar-row{grid-template-columns:minmax(5rem,9rem) minmax(5rem,1fr);align-items:center;gap:.65rem;display:grid}.stat-bar-row>span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.stat-bar-track{background:var(--ivory-100);border-radius:999px;height:.65rem;overflow:hidden}.stat-bar-track span{border-radius:inherit;background:var(--orange-500);height:100%;display:block}.stat-card table{border-collapse:collapse;width:100%;font-size:.85rem}.stat-card th,.stat-card td{text-align:left;border-top:1px solid #e7dcc6;padding:.55rem .45rem}.stat-card th{color:var(--muted);font-size:.75rem}.books-page,.settings-page{width:min(100%,68rem)}.primary-button,.book-actions button,.modal-card button,.sound-setting button,.backup-actions button{border:1px solid var(--navy-800);color:var(--navy-950);font:inherit;cursor:pointer;background:#fff;border-radius:.55rem;padding:.65rem .9rem;font-weight:700}.primary-button,.modal-actions button:last-child{border-color:var(--orange-action);background:var(--orange-action);color:#fff}.primary-button:disabled,.book-actions button:disabled,.modal-card button:disabled,.sound-setting button:disabled,.backup-actions button:disabled{cursor:wait;opacity:.55}.primary-button:focus-visible,.book-actions button:focus-visible,.modal-card button:focus-visible,.sound-setting button:focus-visible,.backup-actions button:focus-visible,.form-field input:focus-visible,.form-field select:focus-visible,.file-picker:focus-within{outline:3px solid var(--orange-action);outline-offset:2px}.book-list{gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.book-card{background:#fffdf8;border:1px solid #e7dcc6;border-radius:.9rem;justify-content:space-between;align-items:center;gap:1rem;padding:1.15rem;display:flex}.book-card--active{border-color:var(--orange-500);box-shadow:0 0 0 2px #e87b321f}.book-type{color:var(--orange-600);font-size:.78rem;font-weight:700}.book-card h2{color:var(--navy-950);margin:.25rem 0;font-size:1.2rem}.book-card p{color:var(--muted);margin:0;font-size:.9rem}.book-actions{flex-wrap:wrap;justify-content:flex-end;gap:.55rem;display:flex}.active-badge{background:var(--ivory-100);color:var(--orange-600);border-radius:999px;padding:.45rem .75rem;font-weight:700}.danger-button,.modal-actions .danger-button{color:#8e2020;background:#fff;border-color:#a52b2b}.modal-backdrop{z-index:50;background:#10233f9e;place-items:center;padding:1rem;display:grid;position:fixed;inset:0;overflow-y:auto}.modal-card{background:#fffdf8;border-radius:1rem;width:min(100%,34rem);max-height:calc(100vh - 2rem);padding:clamp(1.25rem,4vw,2rem);overflow-y:auto;box-shadow:0 1.5rem 5rem #00000047}.modal-card h2{color:var(--navy-950);margin:0 0 1rem}.modal-card p{color:var(--muted);line-height:1.55}.modal-card form{gap:1rem;display:grid}.form-field{color:var(--muted);gap:.38rem;font-size:.88rem;display:grid}.form-field input,.form-field select{width:100%;min-width:0;color:var(--ink);font:inherit;background:#fff;border:1px solid #c8bca7;border-radius:.55rem;padding:.68rem .75rem}.file-picker{color:var(--navy-800);border:1px dashed #c8bca7;border-radius:.65rem;gap:.4rem;padding:.8rem;font-weight:700;display:grid}.file-picker input{width:100%;color:var(--muted);font:inherit;font-weight:400}.import-target{margin:0}.import-errors{color:#8e2020;background:#fff0ed;border-radius:.65rem;margin:0;padding:.8rem .8rem .8rem 2rem}.import-preview{background:var(--ivory-50);border-radius:.75rem;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;padding:1rem;display:grid}.import-preview strong{color:var(--navy-950);grid-column:1/-1}.import-preview>span{color:var(--muted);font-size:.88rem}.update-counts{color:var(--orange-600);grid-column:1/-1;gap:.65rem;margin-top:.35rem;font-weight:700;display:flex}.modal-actions{justify-content:flex-end;gap:.65rem;margin-top:1rem;display:flex}.settings-page{gap:1rem;display:grid}.settings-page .section-heading{margin-bottom:.5rem}.settings-card{background:#fffdf8;border:1px solid #e7dcc6;border-radius:.9rem;padding:clamp(1rem,3vw,1.5rem)}.settings-card h2{color:var(--navy-950);margin:0 0 1rem;font-size:1.15rem}.settings-card>p{color:var(--muted);line-height:1.55}.account-settings{scroll-margin-top:1.5rem}.account-settings strong{color:var(--navy-950)}.account-settings-actions{flex-wrap:wrap;gap:.75rem;display:flex}.account-settings-actions button{color:var(--navy-800);background:#fff;border:1px solid #cfbea1;border-radius:.6rem;padding:.7rem .9rem;font-weight:700}.account-settings-actions .danger-button{color:#8d2424;background:#fff5f2;border-color:#b93a3a}.account-settings .modal-card .form-field{margin-top:1rem}.account-settings .account-dialog-close{width:100%;margin-top:1rem}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;display:grid}.mode-setting{border:1px solid #e7dcc6;border-radius:.7rem;flex-wrap:wrap;gap:.75rem 1.25rem;margin:1rem 0 0;padding:.8rem 1rem 1rem;display:flex}.mode-setting legend{color:var(--muted);padding-inline:.3rem;font-size:.88rem}.mode-setting label,.sound-setting>label{align-items:center;gap:.45rem;display:inline-flex}.sound-setting{justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;display:flex}.sound-setting>div,.backup-actions{flex-wrap:wrap;gap:.65rem;display:flex}.file-picker--inline{cursor:pointer;background:#fff;justify-content:center;padding:.62rem .9rem;display:inline-flex}.file-picker--inline input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.backup-counts{grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;display:grid}.backup-counts div{background:var(--ivory-50);border-radius:.6rem;padding:.7rem}.backup-counts dt{color:var(--muted);font-size:.78rem}.backup-counts dd{color:var(--navy-950);margin:.25rem 0 0;font-weight:700}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}@media (width<=42rem){.app-shell{padding-bottom:calc(4.25rem + env(safe-area-inset-bottom));display:block}.topbar{flex-wrap:wrap;align-items:flex-start;padding:.8rem 1rem}.current-book-control{justify-content:space-between;width:100%}.current-book-control select{min-width:0;max-width:70vw}.rail{z-index:20;padding:.45rem .3rem calc(.45rem + env(safe-area-inset-bottom));grid-template-columns:repeat(7,minmax(0,1fr));gap:.15rem;display:grid;position:fixed;bottom:0;left:0;right:0;overflow:hidden;box-shadow:0 -.4rem 1.2rem #10233f2e}.rail a{text-align:center;white-space:nowrap;min-width:0;padding:.55rem .15rem;font-size:.78rem;overflow:hidden}.app-shell main{padding:1.25rem 1rem 2rem}.learning-page{grid-template-rows:auto minmax(22rem,1fr);min-height:31rem}.learning-progress{grid-template-columns:1fr auto}.learning-progress label{grid-column:1/-1;justify-self:end}.spelling-feedback--reserved{flex-basis:6rem;height:6rem}.test-settings-grid,.result-summary{grid-template-columns:1fr}.test-progress{grid-template-columns:1fr auto}.test-timer{grid-column:1/-1;justify-self:end}.mistake-filters,.stats-grid,.settings-grid{grid-template-columns:1fr}.stat-card--wide{grid-column:auto}.mistake-selection-bar{flex-direction:column;align-items:flex-start}.mistake-actions{width:100%;margin-left:0}.mistake-actions button{flex:1}.mistake-list li{grid-template-columns:auto 1fr}.mistake-list dl{grid-column:2;grid-template-columns:1fr}.mistake-list dl div:last-child{grid-column:auto}.book-card,.sound-setting{flex-direction:column;align-items:stretch}.book-actions{justify-content:flex-start}.import-preview,.backup-counts{grid-template-columns:1fr}.import-preview strong,.update-counts{grid-column:auto}.spelling-audio-row{z-index:2;position:sticky;top:.5rem}}.learning-complete{text-align:center;max-width:42rem;margin-inline:auto}.learning-complete h1{font-size:clamp(1.5rem,4vw,2.25rem)}.learning-complete p{margin-block:.8rem;line-height:1.7}.learning-complete .learning-complete__total{font-size:1.4rem;font-weight:700}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
