.memorize-edit-link{color:var(--color-accent);font-size:var(--text-base);text-decoration:none}.memorize-edit-link:hover{text-decoration:underline}.doc-overview{max-width:760px;margin:0 auto}.doc-overview-header{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.doc-overview-back{color:var(--color-accent);font:inherit;font-size:var(--text-sm);padding:var(--space-1) 0;cursor:pointer;background:0 0;border:none}.doc-overview-back span{font-size:1.3em;line-height:1}.doc-overview-back:hover{text-decoration:underline}.doc-overview-title{font-size:var(--text-2xl);overflow-wrap:anywhere;margin:0}.doc-overview-author{margin:var(--space-1) 0 0;color:var(--color-ink-3)}.doc-overview-progress{margin-top:var(--space-4)}.doc-overview-status{margin:0 0 var(--space-2);color:var(--color-ink-2)}.doc-meter{gap:2px;height:8px;display:flex}.doc-meter span{background:var(--color-surface-3);border-radius:2px;flex:1 1 0;min-width:1px}.doc-meter .doc-meter-learned{background:var(--color-green)}.doc-meter .doc-meter-due{background:var(--color-accent)}.doc-next{gap:var(--space-3);margin:var(--space-5) 0 var(--space-6);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md);flex-direction:column;display:flex}.doc-next-item{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.doc-next-item .btn{min-width:13rem;text-decoration:none}.doc-next-detail{color:var(--color-ink-3);font-size:var(--text-sm);flex:14rem}.doc-next-quiet{border-top:1px solid var(--color-divider);padding-top:var(--space-3)}.doc-next-quiet .btn{min-width:0;padding-left:0}.doc-next-done{font-family:var(--font-display);font-size:var(--text-lg);margin:0}.doc-lines-heading{font-size:var(--text-lg);margin:0}.doc-lines-sub{margin:var(--space-1) 0 var(--space-3);font-size:var(--text-sm);color:var(--color-ink-3)}.memorize-line-list{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md);margin:0;padding:0;list-style:none;overflow:hidden}.memorize-line-row{border-bottom:1px solid var(--color-divider);align-items:stretch;display:flex;position:relative}.memorize-line-row:last-child{border-bottom:none}.memorize-line-main{align-items:flex-start;gap:var(--space-3);min-width:0;padding:var(--space-3);color:inherit;flex:1;text-decoration:none;display:flex}.memorize-line-main:hover{background:var(--color-surface-2);text-decoration:none}.memorize-line-num{min-width:1.75rem;color:var(--color-ink-muted);font-size:var(--text-sm);text-align:right;font-variant-numeric:tabular-nums;flex:none;padding-top:2px}.memorize-line-body{flex-direction:column;gap:2px;min-width:0;display:flex}.memorize-line-text{color:var(--color-ink);font-family:var(--font-display);overflow-wrap:anywhere}.memorize-line-status{font-size:var(--text-xs)}.memorize-line-status.is-due{color:var(--color-accent-hover);font-weight:600}.memorize-line-status.is-learned{color:#3f7f3d}.memorize-line-status.is-new{color:var(--color-ink-muted)}.memorize-line-menu{border:none;border-left:1px solid var(--color-divider);color:var(--color-ink-3);font:inherit;font-size:var(--text-xs);padding:0 var(--space-3);cursor:pointer;background:0 0;flex:none}.memorize-line-menu:hover{color:var(--color-accent-hover);background:var(--color-surface-2)}.schedule-dialog{gap:var(--space-3);flex-direction:column;max-width:30rem;display:flex}.schedule-subject{font-family:var(--font-display);color:var(--color-ink-2);border-left:3px solid var(--color-accent);padding-left:var(--space-3);overflow-wrap:anywhere;max-height:6.5em;margin:0;overflow:hidden}.schedule-status{margin:0;font-weight:600}.schedule-explain{font-size:var(--text-sm);color:var(--color-ink-3)}.schedule-explain p{margin:0 0 var(--space-2)}.schedule-limit{font-size:var(--text-xs)}.schedule-manual{gap:var(--space-2);border-top:1px solid var(--color-divider);padding-top:var(--space-3);flex-direction:column;display:flex}.schedule-label{font-weight:600;font-size:var(--text-sm)}.schedule-row{gap:var(--space-2);display:flex}.schedule-row select{flex:1;min-width:0}.schedule-hint{font-size:var(--text-xs);color:var(--color-ink-3);margin:0}.schedule-reset{color:var(--color-red);align-self:flex-start;padding-left:0}.schedule-confirm{border-radius:var(--radius-sm);padding:var(--space-3);font-size:var(--text-sm);background:#fdf0ef}.schedule-confirm p{margin:0 0 var(--space-2)}.library-screen{--library-fab-bottom:calc(96px + env(safe-area-inset-bottom,0px));position:relative}@media (width<=767px){.library-screen{--library-fab-bottom:calc(var(--tabbar-height) + 92px + env(safe-area-inset-bottom,0px))}}.library-navbar{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);min-height:2.5rem;display:flex}.library-navbar-title{font-size:var(--text-xl);color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;overflow:hidden}.library-icon-btn{cursor:pointer;padding:var(--space-1) var(--space-2);color:var(--color-ink-2);border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;font-size:1.1rem;line-height:1;display:inline-flex}.library-icon-btn:hover{background:var(--color-surface-3)}.library-search{width:100%;margin-bottom:var(--space-3)}.library-search input{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-divider);border-radius:var(--radius-md);font:inherit;font-size:var(--text-sm);background:var(--color-surface);color:var(--color-ink)}.library-search input:focus{outline:2px solid var(--color-accent);outline-offset:-1px}.library-section-header{background:var(--color-accent);color:#000;height:34px;font-family:var(--font-ui);padding:0 var(--space-2) 0 var(--space-3);justify-content:space-between;align-items:center;font-size:16px;display:flex}.library-section-header.centered{justify-content:center}.library-section-header .library-icon-btn{color:#000}.library-section-header-actions{align-items:center;gap:var(--space-2);display:flex}.library-header-textbtn{cursor:pointer;font-size:var(--text-sm);color:#000;padding:var(--space-1) var(--space-2);background:0 0;border:none;font-weight:700}.library-section-footer{height:5px}.library-list{margin:0 0 var(--space-4);background:var(--color-surface);border:1px solid var(--color-divider);border-top:none;padding:0;list-style:none}.library-row{border-bottom:1px solid var(--color-divider);position:relative}.library-row:last-child{border-bottom:none}.library-row.drag-over{outline:2px dashed var(--color-accent);outline-offset:-2px}.library-row-inner{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);display:flex}.library-collection-row .library-row-inner{min-height:70px}.library-doc-row .library-row-inner{align-items:stretch;min-height:120px}.library-row-main{justify-content:center;gap:var(--space-1);min-width:0;color:inherit;cursor:pointer;flex-direction:column;flex:1;text-decoration:none;display:flex}.library-row-title{color:var(--color-ink);font-weight:600;font-size:var(--text-base);text-overflow:ellipsis;overflow:hidden}.library-row-detail{font-size:var(--text-sm);color:var(--color-ink-3)}.library-doc-preview{font-size:var(--text-sm);color:var(--color-ink-3);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.library-row-side{justify-content:center;align-items:flex-end;gap:var(--space-1);flex-direction:column;flex-shrink:0;display:flex}.library-row-side-inline{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.library-due-label{font-size:var(--text-xs);white-space:nowrap;text-align:right}.library-check{color:var(--color-divider);font-size:1.1rem;line-height:1}.library-check.active{color:var(--color-accent)}.library-due-dot{border-radius:5px;flex-shrink:0;width:10px;height:10px}.library-chevron{color:var(--color-divider);flex-shrink:0;font-size:1.3rem;line-height:1}.library-freq-area{margin-top:auto}.library-freq-caption{font-size:var(--text-xs);color:var(--color-ink-3);margin-bottom:2px}.library-sort-controls{align-items:center;gap:var(--space-1);flex-shrink:0;display:flex}.library-drag-handle{cursor:grab;color:var(--color-ink-muted);padding:0 var(--space-1);-webkit-user-select:none;user-select:none;font-size:1.2rem}.library-fab{right:20px;bottom:var(--library-fab-bottom);z-index:61;position:fixed}.library-fab-btn{background:var(--color-accent);color:#fff;cursor:pointer;width:56px;height:56px;box-shadow:var(--shadow-md);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:2rem;line-height:1;transition:transform .3s ease-out;display:flex}.library-fab-btn.open{transform:rotate(-45deg)}.library-addmenu-overlay{z-index:60;padding:0 20px calc(var(--library-fab-bottom) + 76px);background:#000c;justify-content:flex-end;align-items:flex-end;display:flex;position:fixed;inset:0}.library-addmenu-options{align-items:flex-end;gap:var(--space-4);flex-direction:column;display:flex}.library-addmenu-option{align-items:center;gap:var(--space-3);cursor:pointer;background:0 0;border:none;display:flex}.library-addmenu-option-label{color:#fff;font-family:var(--font-ui);font-size:14px;font-weight:300}.library-addmenu-option-circle{background:#fff;border:2px solid #000;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:60px;height:60px;font-size:1.4rem;display:flex}.library-hud{z-index:120;justify-content:center;align-items:center;gap:var(--space-3);background:#00000040;flex-direction:column;display:flex;position:fixed;inset:0}.library-hud-text{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);color:var(--color-ink-2);box-shadow:var(--shadow-md)}.library-actionsheet{gap:var(--space-2);flex-direction:column;display:flex}.library-actionsheet .btn{width:100%}.library-freq-list{border:1px solid var(--color-divider);border-radius:var(--radius-sm);max-height:50vh;margin:0;padding:0;list-style:none;overflow-y:auto}.library-freq-row{background:var(--color-surface);border:none;border-bottom:1px solid var(--color-divider);width:100%;padding:var(--space-2) var(--space-3);font:inherit;font-size:var(--text-sm);cursor:pointer;text-align:left;color:var(--color-ink-2);justify-content:space-between;align-items:center;display:flex}.library-freq-row:last-child{border-bottom:none}.library-freq-row:disabled{background:var(--color-surface-3);color:var(--color-ink-muted);cursor:not-allowed}.library-freq-row .library-check{font-size:1rem}.library-collpicker-list{margin:0 0 var(--space-3);border:1px solid var(--color-divider);border-radius:var(--radius-sm);max-height:40vh;padding:0;list-style:none;overflow-y:auto}.library-collpicker-row{align-items:center;gap:var(--space-2);background:var(--color-surface);border:none;border-bottom:1px solid var(--color-divider);width:100%;padding:var(--space-3);min-height:48px;font:inherit;cursor:pointer;text-align:left;color:var(--color-ink-2);font-size:14px;display:flex}.library-collpicker-row:last-child{border-bottom:none}.library-collpicker-checkbox{width:25px;height:25px;color:var(--color-accent);flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;display:inline-flex}.library-editor-form{gap:var(--space-3);background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md);padding:var(--space-4);flex-direction:column;display:flex}.library-editor-field label{font-size:var(--text-xs);color:var(--color-ink-3);margin-bottom:var(--space-1);display:block}.library-editor-field input[type=text],.library-editor-field input[type=date]{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-divider);border-radius:var(--radius-sm);font:inherit;font-size:var(--text-sm);color:var(--color-ink);background:var(--color-surface)}.library-scan-btn{cursor:pointer;color:#e18c36;font-size:14px;font-family:var(--font-ui);padding:var(--space-2);text-align:center;background:0 0;border:none;width:100%}.library-collections-btn{border:1px solid var(--color-divider);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;padding:var(--space-2) var(--space-3);font:inherit;font-size:var(--text-sm);cursor:pointer;color:var(--color-ink);justify-content:space-between;align-items:center;display:flex}.library-detail-value{color:var(--color-ink-3);font-size:var(--text-sm)}.library-segmented{border:1px solid var(--color-accent);border-radius:var(--radius-sm);width:fit-content;display:flex;overflow:hidden}.library-segmented button{background:var(--color-surface);color:var(--color-accent);font:inherit;font-size:var(--text-sm);padding:var(--space-1) var(--space-4);cursor:pointer;border:none}.library-segmented button.active{background:var(--color-accent);color:#fff}.library-paste-bar{border:1px solid var(--color-divider);border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--color-surface-3);border-bottom:none;justify-content:center;display:flex}.library-paste-bar button{cursor:pointer;font:inherit;font-size:var(--text-sm);padding:var(--space-1) var(--space-4);color:var(--color-ink-2);background:0 0;border:none}.library-textarea{width:100%;min-height:220px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-divider);border-radius:0 0 var(--radius-sm) var(--radius-sm);font:inherit;font-size:var(--text-sm);color:var(--color-ink);resize:vertical;background:var(--color-surface)}.library-preview{border:1px solid var(--color-divider);border-radius:var(--radius-sm);min-height:220px;max-height:50vh;padding:var(--space-2) var(--space-3);background:var(--color-surface);font-size:14px;overflow-y:auto}.library-preview-line{color:#000;display:block}.library-preview-line.alt{color:#963}.library-split-header{cursor:pointer;font:inherit;font-size:var(--text-sm);color:var(--color-ink-2);padding:var(--space-1) 0;text-align:left;background:0 0;border:none;width:100%;font-weight:600}.library-split-option{align-items:center;gap:var(--space-2);cursor:pointer;width:100%;font:inherit;font-size:var(--text-sm);color:var(--color-ink-2);text-align:left;height:30px;padding:0 var(--space-2);background:0 0;border:none;display:flex}.library-editor-actions{justify-content:space-between;gap:var(--space-2);display:flex}.library-date-picker-row{align-items:center;gap:var(--space-2);margin-top:var(--space-2);display:flex}.library-ocr-drop{border:2px dashed var(--color-divider);border-radius:var(--radius-md);padding:var(--space-6) var(--space-4);text-align:center;color:var(--color-ink-3);font-size:var(--text-sm);cursor:pointer;background:var(--color-surface-2)}.library-ocr-drop.drag-over{border-color:var(--color-accent)}.library-ocr-progress{margin:var(--space-3) 0;gap:4px;display:flex}.library-ocr-step{background:var(--color-surface-3);border-radius:4px;flex:1;height:8px}.library-ocr-result{border:1px solid var(--color-divider);border-radius:var(--radius-sm);max-height:30vh;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-ink-2);white-space:pre-wrap;overflow-y:auto}.library-ocr-langs{gap:var(--space-1) var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.library-ocr-langs label{align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-ink-3);cursor:pointer;display:inline-flex}.library-due-pill{font-size:var(--text-xs);white-space:nowrap;color:#fff;background:var(--color-accent);border-radius:var(--radius-pill);padding:2px var(--space-2);font-weight:600}.library-due-text{color:var(--color-accent-hover);font-weight:600}.library-due-banner{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3);background:var(--color-accent-soft);border-radius:var(--radius-md);border:1px solid #f6cf9d;flex-wrap:wrap;display:flex}.library-due-banner .btn{text-decoration:none}.library-due-banner-sub{color:var(--color-ink-3)}.library-reset-warning{font-size:var(--text-sm);color:#7a3b00;background:var(--color-accent-soft);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);border:1px solid #f6cf9d;margin:0}.library-preview-summary{margin:0 0 var(--space-2);font-size:var(--text-sm);color:var(--color-ink-3)}.library-fix-pill{font-size:var(--text-xs);color:var(--color-red);border:1px solid var(--color-red);border-radius:var(--radius-pill);padding:1px var(--space-2);font-weight:600}.library-fix-text{color:var(--color-red)}.practice-screen{gap:var(--space-3);flex-direction:column;max-width:760px;margin:0 auto;display:flex}.practice-header{align-items:baseline;gap:var(--space-3);flex-wrap:wrap;display:flex}.practice-back{color:var(--color-accent);font:inherit;font-size:var(--text-sm);padding:var(--space-1) 0;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;max-width:14rem;overflow:hidden}.practice-back span{font-size:1.3em;line-height:1}.practice-back:hover{text-decoration:underline}.practice-title{font-size:var(--text-xl);flex:12rem;min-width:0;margin:0}.practice-count{color:var(--color-ink-3);font-size:var(--text-sm);white-space:nowrap;font-variant-numeric:tabular-nums}.practice-progress{background:var(--color-surface-3);border-radius:var(--radius-pill);height:4px;overflow:hidden}.practice-progress span{background:var(--color-accent);height:100%;transition:width .3s;display:block}.practice-run-note{font-size:var(--text-sm);color:var(--color-ink-3);background:var(--color-surface-3);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);margin:0}.practice-steps{border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);grid-template-columns:repeat(3,1fr);gap:0;display:grid;overflow:hidden}.practice-step{justify-content:center;align-items:center;gap:var(--space-2);border:none;border-left:1px solid var(--color-divider);min-height:44px;color:var(--color-ink-3);font:inherit;font-size:var(--text-sm);cursor:pointer;padding:var(--space-2);background:0 0;display:flex}.practice-step:first-child{border-left:none}.practice-step:hover:not(:disabled){background:var(--color-surface-2)}.practice-step:focus-visible{outline:2px solid var(--color-accent);outline-offset:-3px}.practice-step:disabled{cursor:default}.practice-step-n{width:24px;height:24px;font-weight:700;font-size:var(--text-xs);border:2px solid;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.practice-step-current{background:var(--color-accent-soft);color:var(--color-ink);box-shadow:inset 0 -3px 0 var(--color-accent);font-weight:600}.practice-step-current .practice-step-n{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.practice-step-short{display:none}.practice-help{color:var(--color-ink-2);font-size:var(--text-sm);margin:0}.practice-example{color:var(--color-ink-3);white-space:nowrap}.practice-screen kbd{border:1px solid var(--color-divider);background:var(--color-surface);min-width:1.4em;font-family:var(--font-mono);text-align:center;border-bottom-width:2px;border-radius:4px;padding:0 .3em;font-size:.85em;line-height:1.4;display:inline-block}.practice-stage{gap:var(--space-2);margin-top:var(--space-2);flex-direction:column;display:flex}.practice-context-label{font-size:var(--text-xs);color:var(--color-ink-muted);margin:0}.practice-context{font-family:var(--font-display);color:var(--color-ink-muted);font-size:var(--text-base);padding:0 var(--space-4);margin:0}.practice-context-next{padding-top:var(--space-1);flex-wrap:wrap;gap:.45em;display:flex}.pw-ghost{border-bottom:2px dotted var(--color-divider);height:.5em;display:inline-block}.practice-line-card{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md);padding:var(--space-5) var(--space-5) var(--space-6);cursor:text;transition:border-color .15s,box-shadow .15s;position:relative}.practice-line-focused{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.practice-line-completed{border-color:var(--color-green);box-shadow:0 0 0 3px #72b1702e}.practice-line{font-family:var(--font-display);color:var(--color-ink);-webkit-user-select:none;user-select:none;overflow-wrap:anywhere;margin:0;line-height:1.7}.pw-slot{display:inline;position:relative}.pw{border-bottom:2px solid #0000;transition:color .1s}.pw-black{color:var(--color-ink)}.pw-lightGray{color:#a3a3a3}.pw-red{color:var(--color-red);text-underline-offset:.25em;-webkit-text-decoration:underline wavy #c7000080;text-decoration:underline wavy #c7000080;text-decoration-thickness:1px}.pw-white{color:#0000;border-bottom:2px solid #cfc8bf}.pw-target{border-bottom-color:var(--color-accent);border-bottom-width:3px}.pw-lightGray.pw-target{color:var(--color-ink-2)}.pw-hint{color:var(--color-accent-hover);border-bottom:2px dashed var(--color-accent);font-style:italic}.pw-typed{font-family:var(--font-mono);color:#fff;background:var(--color-red);pointer-events:none;border-radius:3px;margin-bottom:-.25em;padding:.15em .35em;font-size:.4em;line-height:1;text-decoration:line-through;position:absolute;bottom:100%;left:0}.practice-focus-state{left:var(--space-5);bottom:var(--space-2);font-size:var(--text-xs);color:var(--color-ink-muted);position:absolute}.practice-line-focused .practice-focus-state{color:var(--color-accent-hover)}.practice-line-completed .practice-focus-state{color:#3f7f3d}.practice-input{opacity:0;color:#0000;caret-color:#0000;cursor:text;background:0 0;border:none;width:100%;height:100%;padding:0;font-size:16px;position:absolute;inset:0}.practice-feedback{min-height:1.6em;font-size:var(--text-sm);padding:0 var(--space-1);margin:0}.practice-feedback-good{color:#3f7f3d}.practice-feedback-bad{color:var(--color-red)}.practice-feedback-neutral{color:var(--color-ink-3)}.practice-tools{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.practice-tools .btn:last-child{margin-left:auto}.practice-keys{font-size:var(--text-xs);color:var(--color-ink-muted);margin:0}.practice-notice{font-size:var(--text-sm);color:var(--color-ink-2);background:var(--color-accent-soft);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3)}.practice-actions-row{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.practice-empty{padding:var(--space-6) 0}.practice-empty h2{font-size:var(--text-xl)}.practice-summary{padding-top:var(--space-4)}.practice-summary-title{font-size:var(--text-2xl);margin:0}.practice-summary-facts{font-size:var(--text-lg);color:var(--color-ink-2);margin:0}.practice-summary-note{color:var(--color-ink-3);margin:0}.practice-summary-block{margin-top:var(--space-4)}.practice-summary-block h3{font-size:var(--text-lg);margin-bottom:var(--space-1)}.practice-summary-sub{font-size:var(--text-sm);color:var(--color-ink-3);margin-bottom:var(--space-2)}.practice-summary-list{border-top:1px solid var(--color-divider);margin:0;padding:0;list-style:none}.practice-summary-list li{padding:var(--space-2) 0;border-bottom:1px solid var(--color-divider);flex-direction:column;gap:2px;display:flex}.practice-summary-line{font-family:var(--font-display);color:var(--color-ink)}.practice-summary-meta{font-size:var(--text-xs);color:var(--color-ink-3)}@media (width<=560px){.practice-step-long{display:none}.practice-step-short{display:inline}.practice-line-card{padding:var(--space-4) var(--space-4) var(--space-6)}.practice-focus-state{left:var(--space-4)}.practice-example{white-space:normal}.practice-keys{display:none}}@media (prefers-reduced-motion:reduce){.practice-progress span,.practice-line-card,.pw{transition:none}}.practice-save-state{color:var(--color-ink-3)}.practice-summary-again{margin-top:var(--space-2)}@media (height<=600px){.practice-screen{gap:var(--space-2)}.practice-help .practice-example,.practice-keys,.practice-context-prev,.practice-context-next{display:none}.practice-line-card{padding:var(--space-3) var(--space-4) var(--space-5)}.practice-stage{margin-top:0}}.review-screen{position:relative}.review-navbar{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);min-height:2.5rem;display:flex}.review-navbar-title{font-size:var(--text-xl);color:var(--color-ink);flex:1;margin:0}.review-list{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md);margin:0;padding:0;list-style:none;overflow:hidden}.review-list li+li{border-top:1px solid var(--color-divider)}.review-row{align-items:center;gap:var(--space-3);min-height:56px;padding:var(--space-2) var(--space-3);color:inherit;text-decoration:none;display:flex}.review-row:hover{background:var(--color-surface-2)}.review-dot{background:var(--color-green);border-radius:5px;flex:none;width:10px;height:10px}.review-dot.review-due{background:var(--color-red)}.review-row-title{min-width:0;font-size:var(--text-base);color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.review-row-time{font-size:var(--text-sm);text-align:right;color:var(--color-green);flex:none}.review-row-time.review-due{color:var(--color-red)}.review-chevron{color:var(--color-ink-muted);font-size:var(--text-lg);flex:none;line-height:1}.review-screen{max-width:760px}.review-hero{padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md);margin-bottom:var(--space-5)}.review-hero-due{border-color:var(--color-accent);border-left-width:4px}.review-hero-count{margin:0 0 var(--space-1);font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-ink);overflow-wrap:anywhere}.review-hero-sub{color:var(--color-ink-3);margin:0}.review-hero-actions{align-items:center;gap:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.review-hero-actions .btn{text-decoration:none}.review-hero-all{font-size:var(--text-sm)}.review-section{margin-bottom:var(--space-5)}.review-section-title{font-size:var(--text-lg);margin:0 0 var(--space-2)}.review-item{align-items:center;gap:var(--space-2);padding-right:var(--space-2);display:flex}.review-item-main{min-width:0;padding:var(--space-3);color:inherit;flex-direction:column;flex:1;text-decoration:none;display:flex}.review-item-main:hover{background:var(--color-surface-2);text-decoration:none}.review-item-title{color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.review-item-meta{font-size:var(--text-sm);color:var(--color-ink-3)}.review-item-warn{color:var(--color-red)}.review-item-action{flex:none;text-decoration:none}.review-item-when{font-size:var(--text-sm);color:#3f7f3d;flex:none}@media (width<=560px){.review-item-when{display:none}}.review-section-sub{margin:0 0 var(--space-2);font-size:var(--text-sm);color:var(--color-ink-3)}.stats-screen{position:relative}.stats-navbar{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);min-height:2.5rem;display:flex}.stats-navbar-title{font-size:var(--text-xl);color:var(--color-ink);flex:1;margin:0}.stats-chart-area{background:var(--color-surface-3);border:1px solid var(--color-divider);border-radius:var(--radius-md);justify-content:center;align-items:center;min-height:240px;display:flex;overflow:hidden}.stats-chart-area.stats-loaded{background:var(--color-surface)}.stats-chart-svg{width:100%;height:auto;display:block}.stats-nodata{padding:var(--space-6);color:var(--color-ink-3);font-size:var(--text-sm);text-align:center;margin:0}.stats-bars{animation:.2s ease-in stats-grow}@keyframes stats-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){.stats-bars{animation:none}}.stats-axis-label{fill:var(--color-ink-3);font-family:var(--font-ui);font-size:9px}.stats-value-label{fill:#fff;font-family:var(--font-ui);pointer-events:none;font-size:9px}.stats-description{fill:var(--color-ink-muted);font-family:var(--font-ui);font-size:10px}.stats-legend{justify-content:center;gap:var(--space-4);margin:var(--space-3) 0 0;font-size:var(--text-sm);color:var(--color-ink-2);flex-wrap:wrap;padding:0;list-style:none;display:flex}.stats-legend-item{align-items:center;gap:var(--space-2);display:inline-flex}.stats-legend-swatch{border-radius:2px;flex:none;width:12px;height:12px}.stats-month-nav{justify-content:center;align-items:center;gap:var(--space-4);margin-top:var(--space-4);display:flex}.stats-month-btn{cursor:pointer;color:var(--color-ink-2);padding:0 var(--space-2);border-radius:var(--radius-sm);background:0 0;border:none;font-size:32px;line-height:1}.stats-month-btn:hover{color:var(--color-accent)}.stats-month-label{text-align:center;min-width:10rem;font-size:var(--text-lg);color:var(--color-ink)}.stats-sr-table{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.stats-now{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4);margin-bottom:var(--space-5);background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md);flex-wrap:wrap;display:flex}.stats-now-main{font-size:var(--text-lg);margin:0}.stats-now-actions{gap:var(--space-2);display:flex}.stats-now-actions .btn{text-decoration:none}.stats-month-heading{font-size:var(--text-lg);margin:0 0 var(--space-1)}.stats-month-summary{margin:0 0 var(--space-1);color:var(--color-ink-2)}.stats-explain{font-size:var(--text-sm);color:var(--color-ink-3)}.settings-screen{position:relative}.settings-navbar{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);min-height:2.5rem;display:flex}.settings-navbar-title{font-size:var(--text-xl);color:var(--color-ink);flex:1;margin:0}.settings-back-btn{cursor:pointer;padding:0 var(--space-2);color:var(--color-accent);border-radius:var(--radius-sm);background:0 0;border:none;font-size:1.6rem;line-height:1}.settings-back-btn:hover{background:var(--color-surface-3)}.settings-list{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md);margin:0;padding:0;list-style:none;overflow:hidden}.settings-list li+li{border-top:1px solid var(--color-divider)}.settings-list-secondary{margin-top:var(--space-5)}.settings-row{align-items:center;gap:var(--space-3);width:100%;min-height:48px;padding:var(--space-2) var(--space-3);text-align:left;color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;text-decoration:none;display:flex}.settings-row:hover{background:var(--color-surface-2)}.settings-row-static{cursor:default}.settings-row-static:hover{background:0 0}.settings-row-icon{text-align:center;flex:none;width:1.5rem}.settings-row-label{min-width:0;font-size:var(--text-base);color:var(--color-ink);flex-direction:column;flex:1;gap:2px;display:flex}.settings-row-sub{font-size:var(--text-xs);color:var(--color-ink-3)}.settings-row-detail{font-size:var(--text-sm);color:var(--color-ink-3);flex:none}.settings-row-action{font-size:var(--text-sm);color:var(--color-accent);flex:none;text-decoration:none}.settings-row-action:hover{text-decoration:underline}.settings-danger{color:var(--color-red)}.settings-chevron{color:var(--color-ink-muted);font-size:var(--text-lg);flex:none;line-height:1}.settings-checkmark{color:var(--color-accent);flex:none;font-weight:700}.settings-switch{flex:none;display:inline-flex;position:relative}.settings-switch input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute}.settings-switch-track{pointer-events:none;border-radius:var(--radius-pill);background:var(--color-surface-3);border:1px solid var(--color-divider);width:44px;height:26px;transition:background .15s;position:relative}.settings-switch-track:after{content:"";background:var(--color-surface);width:20px;height:20px;box-shadow:var(--shadow-sm);border-radius:50%;transition:transform .15s;position:absolute;top:2px;left:2px}.settings-switch input:checked+.settings-switch-track{background:var(--color-accent);border-color:var(--color-accent)}.settings-switch input:checked+.settings-switch-track:after{transform:translate(18px)}.settings-switch input:focus-visible+.settings-switch-track{outline:2px solid var(--color-accent);outline-offset:2px}.settings-busy{align-items:center;gap:var(--space-3);padding:var(--space-4);color:var(--color-ink-2);flex-direction:column;display:flex}.auth-page{max-width:420px;padding:var(--space-6) var(--space-4) var(--space-8);margin:0 auto}.auth-wordmark{font-size:var(--text-2xl);text-align:center;margin-bottom:var(--space-2)}.auth-title{text-align:center;font-family:var(--font-ui);font-size:var(--text-xl);margin-bottom:var(--space-5)}.auth-providers{gap:var(--space-3);margin-bottom:var(--space-5);flex-direction:column;display:flex}.auth-btn-provider{justify-content:center;align-items:center;gap:var(--space-2);width:100%;font-size:var(--text-base);border:1px solid var(--color-divider);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink-2);cursor:pointer;padding:.65rem 1rem;font-weight:600;display:flex}.auth-btn-provider:hover:not(:disabled){border-color:var(--color-ink-muted)}.auth-btn-provider:disabled{opacity:.5;cursor:not-allowed}.auth-btn-apple{color:#fff;background:#000;border-color:#000;border-radius:5px}.auth-btn-apple:hover:not(:disabled){background:#1a1a1a;border-color:#1a1a1a}.auth-divider{align-items:center;gap:var(--space-3);color:var(--color-ink-3);font-size:var(--text-sm);margin-bottom:var(--space-4);display:flex}.auth-divider:before,.auth-divider:after{content:"";border-top:1px solid var(--color-divider);flex:1}.auth-form{gap:var(--space-3);flex-direction:column;display:flex}.auth-input{width:100%}.auth-input::placeholder{color:var(--color-ink-3)}.auth-form-actions{gap:var(--space-3);display:flex}.auth-btn-email{font-size:var(--text-base);background:var(--color-accent);color:#fff;cursor:pointer;border:none;border-radius:20px;flex:1;padding:.6rem 1rem;font-weight:600}.auth-btn-email:hover:not(:disabled){background:var(--color-accent-hover)}.auth-btn-email:disabled{opacity:.5;cursor:not-allowed}.auth-forgot{color:var(--color-accent);font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;align-self:center;padding:0}.auth-forgot:hover{text-decoration:underline}.auth-busy{align-items:center;gap:var(--space-3);padding:var(--space-4) 0;color:var(--color-ink-3);flex-direction:column;display:flex}.auth-section-header{font-size:var(--text-xs);letter-spacing:.06em;color:var(--color-ink-3);margin:var(--space-5) 0 var(--space-2);font-weight:600}.auth-account-list{border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);margin:0;padding:0;list-style:none;overflow:hidden}.auth-account-row{width:100%;padding:var(--space-3) var(--space-4);border:none;border-bottom:1px solid var(--color-divider);background:var(--color-surface);text-align:left;font-family:var(--font-ui);font-size:var(--text-base);cursor:pointer;flex-direction:column;gap:2px;display:flex}.auth-account-list>li:last-child .auth-account-row{border-bottom:none}.auth-account-row.current{background:var(--color-surface-3);cursor:default}.auth-account-primary{color:var(--color-ink);font-weight:600}.auth-account-secondary,.auth-impersonate-info{color:var(--color-ink-3);font-size:var(--text-sm)}.auth-banner{z-index:200;justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);background:var(--color-red);color:#fff;font-size:var(--text-sm);font-weight:600;display:flex;position:fixed;top:0;left:0;right:0}.auth-banner-exit{border-radius:var(--radius-pill);color:#fff;font-size:var(--text-xs);cursor:pointer;background:0 0;border:1px solid #fff;padding:2px 10px;font-weight:600}.auth-banner-exit:hover{background:#ffffff26}.marketing-page{background:var(--color-surface-2);min-height:100dvh;overflow-x:hidden}.marketing-container{max-width:1080px;padding-left:var(--space-4);padding-right:var(--space-4);margin:0 auto}@media (width>=768px){.marketing-container{padding-left:var(--space-6);padding-right:var(--space-6)}}.marketing-header{z-index:60;-webkit-backdrop-filter:blur(8px);background:#faf8f5eb;border-bottom:1px solid #c7c7c780;position:sticky;top:0}.marketing-header-inner{justify-content:space-between;align-items:center;gap:var(--space-3);height:64px;display:flex}.marketing-brand{font-size:var(--text-xl);white-space:nowrap;text-decoration:none}.marketing-brand:hover{text-decoration:none}.marketing-nav{align-items:center;gap:var(--space-4);display:flex}.marketing-nav-links{gap:var(--space-4);display:none}.marketing-nav-links a{color:var(--color-ink-3);font-size:var(--text-sm);font-weight:600}.marketing-nav-links a:hover{color:var(--color-ink);text-decoration:none}@media (width>=640px){.marketing-nav-links{display:flex}}.marketing-hero{padding:var(--space-8) 0 var(--space-6);text-align:center;position:relative}.marketing-hero:before{content:"";pointer-events:none;background:radial-gradient(600px 320px at 50% 10%,#f28f1e24,#0000 70%),radial-gradient(420px 260px at 82% 40%,#72b1701a,#0000 70%);height:130%;position:absolute;inset:-40% -20% auto}.marketing-hero>*{position:relative}.marketing-eyebrow{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent);background:var(--color-accent-soft);border-radius:var(--radius-pill);margin-bottom:var(--space-4);border:1px solid #f28f1e59;padding:.3rem .9rem;font-weight:700;display:inline-block}.marketing-hero-title{letter-spacing:-.01em;margin:0 auto var(--space-4);max-width:22ch;font-size:clamp(2.1rem,6.5vw,3.6rem)}.marketing-hero-sub{color:var(--color-ink-3);max-width:46ch;margin:0 auto var(--space-5);font-size:clamp(1rem,2.4vw,1.25rem)}.marketing-hero-ctas{justify-content:center;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.marketing-hero-note{font-size:var(--text-sm);color:var(--color-ink-muted);margin:0}.marketing-legacy-note{background:var(--color-surface);border-bottom:1px solid var(--color-divider)}.marketing-legacy-note p{padding:var(--space-2) 0;font-size:var(--text-sm);color:var(--color-ink-muted);text-align:center;margin:0}.marketing-legacy-note a{color:var(--color-accent);font-weight:600}.marketing-demo{max-width:640px;margin:var(--space-6) auto 0;background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-4);text-align:left}@media (width>=640px){.marketing-demo{padding:var(--space-5)}}.marketing-demo-head{align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-4);flex-direction:column;display:flex}@media (width>=640px){.marketing-demo-head{justify-content:space-between;align-items:center;gap:var(--space-3);flex-direction:row}}.marketing-demo-step{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-3);background:var(--color-surface-3);border-radius:var(--radius-pill);white-space:nowrap;padding:.25rem .75rem;font-weight:700}.marketing-demo-step.is-active{color:#fff;background:var(--color-accent)}.marketing-demo-doc{font-size:var(--text-xs);color:var(--color-ink-muted)}@media (width>=640px){.marketing-demo-doc{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}}.marketing-demo-line{font-family:var(--font-display);min-height:4em;color:var(--color-ink);font-size:clamp(1.1rem,3.4vw,1.45rem);line-height:2}@media (width>=640px){.marketing-demo-line{min-height:2em}}.marketing-demo-word{border-radius:4px;margin-right:.45em;transition:color .15s,background-color .15s;display:inline-block}.marketing-demo-word.is-pending{color:var(--color-ink-3)}.marketing-demo-word.is-done{color:var(--color-green)}.marketing-demo-word.is-current{background:var(--color-accent-soft);box-shadow:0 2px 0 var(--color-accent)}.marketing-demo-blank{vertical-align:baseline;border-bottom:2px solid var(--color-divider);background:linear-gradient(#0000 40%,#eaeaea99);border-radius:2px;height:.9em;display:inline-block}.marketing-demo-word.is-current .marketing-demo-blank{border-bottom-color:var(--color-accent)}.marketing-demo-footer{align-items:center;gap:var(--space-3);margin-top:var(--space-4);min-height:44px;display:flex}.marketing-demo-key{width:40px;height:40px;font-family:var(--font-mono);font-size:var(--text-lg);color:var(--color-ink);border:1px solid var(--color-divider);border-radius:var(--radius-sm);background:linear-gradient(#fff,#f1efec);border-bottom-width:3px;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.marketing-demo-key.is-pressed{animation:.26s marketing-keypress}@keyframes marketing-keypress{0%{transform:translateY(0)}35%{background:var(--color-accent-soft);border-bottom-width:1px;transform:translateY(2px)}to{transform:translateY(0)}}.marketing-demo-hint{font-size:var(--text-sm);color:var(--color-ink-3);margin:0}.marketing-demo-result{align-items:center;gap:var(--space-2);border-radius:var(--radius-pill);font-weight:700;font-size:var(--text-sm);padding:.35rem .9rem;display:inline-flex}.marketing-demo-result.is-pass{color:var(--color-green);background:#72b17024}.marketing-demo-result.is-mastered{color:#fff;background:var(--color-accent)}.marketing-demo-meter{background:var(--color-surface-3);border-radius:var(--radius-pill);flex:1;height:6px;overflow:hidden}.marketing-demo-meter-fill{background:var(--color-accent);border-radius:inherit;height:100%;transition:width .2s}.marketing-demo-try{margin-top:var(--space-3);justify-content:center;display:flex}.marketing-demo-input{opacity:.01;clip-path:inset(50%);border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.marketing-demo-word.is-error{color:var(--color-red)}.marketing-demo-result.is-fail{color:var(--color-red);background:#c700001a}.marketing-demo-cta{margin:var(--space-3) 0 0;font-size:var(--text-sm);color:var(--color-ink-3)}.marketing-section{padding:var(--space-8) 0}.marketing-section+.marketing-section{padding-top:var(--space-6)}.marketing-section-head{text-align:center;max-width:56ch;margin:0 auto var(--space-6)}.marketing-section-title{margin-bottom:var(--space-3);font-size:clamp(1.6rem,4.5vw,2.4rem)}.marketing-section-sub{color:var(--color-ink-3);font-size:var(--text-lg);margin:0}.marketing-steps{gap:var(--space-4);grid-template-columns:1fr;display:grid}@media (width>=768px){.marketing-steps{grid-template-columns:repeat(3,1fr)}}.marketing-step-card{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-5)}.marketing-step-num{color:#fff;background:var(--color-accent);width:34px;height:34px;margin-bottom:var(--space-3);border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.marketing-step-card h3{font-family:var(--font-ui);font-size:var(--text-lg);margin-bottom:var(--space-2)}.marketing-step-card p{color:var(--color-ink-3);font-size:var(--text-sm);margin:0}.marketing-features{gap:var(--space-4);grid-template-columns:1fr;display:grid}@media (width>=560px){.marketing-features{grid-template-columns:repeat(2,1fr)}}@media (width>=960px){.marketing-features{grid-template-columns:repeat(3,1fr)}}.marketing-feature{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-5);transition:transform .15s,box-shadow .15s}.marketing-feature:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.marketing-feature-icon{border-radius:var(--radius-md);background:var(--color-accent-soft);width:44px;height:44px;margin-bottom:var(--space-3);justify-content:center;align-items:center;font-size:1.4rem;display:inline-flex}.marketing-feature h3{font-family:var(--font-ui);font-size:var(--text-lg);margin-bottom:var(--space-2)}.marketing-feature p{color:var(--color-ink-3);font-size:var(--text-sm);margin:0}.marketing-audience{gap:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}@media (width>=768px){.marketing-audience{grid-template-columns:repeat(4,1fr)}}.marketing-audience-card{text-align:center;background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md);padding:var(--space-5) var(--space-3)}.marketing-audience-icon{margin-bottom:var(--space-2);font-size:1.8rem;display:block}.marketing-audience-card h3{font-family:var(--font-ui);font-size:var(--text-base);margin-bottom:var(--space-1)}.marketing-audience-card p{font-family:var(--font-display);color:var(--color-ink-3);font-style:italic;font-size:var(--text-sm);margin:0}.marketing-pricing{gap:var(--space-4);grid-template-columns:1fr;align-items:stretch;max-width:760px;margin:0 auto;display:grid}@media (width>=700px){.marketing-pricing{grid-template-columns:1fr 1fr}}.marketing-plan{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5);flex-direction:column;display:flex;position:relative}.marketing-plan.is-featured{border:2px solid var(--color-accent);box-shadow:var(--shadow-md)}.marketing-plan-badge{background:var(--color-accent);color:#fff;font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius-pill);white-space:nowrap;padding:.25rem .9rem;font-weight:700;position:absolute;top:-.85rem;left:50%;transform:translate(-50%)}.marketing-plan-name{font-family:var(--font-ui);font-size:var(--text-lg);margin:0 0 var(--space-2);font-weight:700}.marketing-plan-price{align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-1);display:flex}.marketing-plan-price strong{font-family:var(--font-display);font-size:var(--text-3xl);color:var(--color-ink);line-height:1}.marketing-plan-price span{color:var(--color-ink-muted);font-size:var(--text-sm);font-weight:600}.marketing-plan-tagline{color:var(--color-accent);font-weight:600;font-size:var(--text-sm);margin-bottom:var(--space-4)}.marketing-plan-list{margin:0 0 var(--space-5);gap:var(--space-2);color:var(--color-ink-3);font-size:var(--text-sm);padding:0;list-style:none;display:grid}.marketing-plan-list li{gap:var(--space-2);align-items:flex-start;display:flex}.marketing-plan-list li:before{content:"✓";color:var(--color-green);flex:none;font-weight:700}.marketing-plan-cta{margin-top:auto}.marketing-pricing-note{text-align:center;color:var(--color-ink-muted);font-size:var(--text-sm);margin-top:var(--space-4)}.marketing-faq{gap:var(--space-3);max-width:700px;margin:0 auto;display:grid}.marketing-faq-item{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md);padding:0}.marketing-faq-item summary{cursor:pointer;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4);font-weight:600;list-style:none;display:flex}.marketing-faq-item summary::-webkit-details-marker{display:none}.marketing-faq-item summary:after{content:"+";font-size:var(--text-xl);color:var(--color-accent);flex:none;line-height:1;transition:transform .15s}.marketing-faq-item[open] summary:after{transform:rotate(45deg)}.marketing-faq-item p{color:var(--color-ink-3);padding:0 var(--space-4) var(--space-4);font-size:var(--text-sm);margin:0;line-height:1.6}.marketing-final{border-radius:var(--radius-lg);color:#fff;text-align:center;padding:var(--space-8) var(--space-4);margin:var(--space-6) 0 var(--space-8);background:radial-gradient(480px 240px at 20% 0,#f28f1e47,#0000 70%),linear-gradient(160deg,#2b2620,#3a2f21)}.marketing-final h2{color:#fff;font-size:clamp(1.6rem,4.5vw,2.4rem)}.marketing-final p{color:#ffffffc7;max-width:44ch;margin:0 auto var(--space-5)}.marketing-nav .marketing-nav-getapp{display:none}@media (width>=480px){.marketing-nav .marketing-nav-getapp{display:inline-flex}}.marketing-hero-getapp{margin-top:var(--space-2)}.marketing-hero-getapp a{color:var(--color-accent);font-weight:600}.marketing-final-getapp{margin:var(--space-4) auto 0}.marketing-final .marketing-final-getapp a{color:#fff;text-underline-offset:3px;font-weight:600;text-decoration:underline}.marketing-getapp-overlay{z-index:120}.marketing-getapp{text-align:center;max-width:24rem;padding:var(--space-6) var(--space-5) var(--space-5);position:relative}.marketing-getapp-close{top:var(--space-2);right:var(--space-2);border-radius:var(--radius-pill);width:2.5rem;height:2.5rem;color:var(--color-ink-3);cursor:pointer;background:0 0;border:none;font-size:1.75rem;line-height:1;position:absolute}.marketing-getapp-close:hover{background:var(--color-surface-2);color:var(--color-ink)}.marketing-getapp-close:focus-visible,.marketing-store-badge:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.marketing-getapp-title{font-size:var(--text-xl);margin:0 var(--space-4) var(--space-4)}.marketing-getapp-qr{width:200px;height:200px;margin:0 auto var(--space-4);border:1px solid var(--color-divider);border-radius:var(--radius-md);image-rendering:pixelated;display:block}.marketing-getapp-desc{color:var(--color-ink-3);margin:0 0 var(--space-4)}.marketing-getapp-badges{justify-content:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.marketing-store-badge{border-radius:var(--radius-md);color:#fff;text-align:left;background:#000;flex-direction:column;align-items:flex-start;min-width:9.5rem;padding:.4rem 1rem;line-height:1.15;display:inline-flex}.marketing-store-badge:hover{background:#222;text-decoration:none}.marketing-store-badge small{font-size:.7rem}.marketing-store-badge strong{font-size:1.2rem;font-weight:600}.marketing-getapp-note{font-size:var(--text-sm);color:var(--color-ink-muted);margin:var(--space-3) 0 0}.marketing-getapp-redirect{padding:var(--space-8) var(--space-4);text-align:center}.marketing-footer{border-top:1px solid var(--color-divider);padding:var(--space-6) 0}.marketing-footer-inner{align-items:center;gap:var(--space-3);text-align:center;flex-direction:column;display:flex}.marketing-footer-links{justify-content:center;gap:var(--space-4);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.marketing-footer-links a{color:var(--color-ink-3)}.marketing-footer-copy{color:var(--color-ink-muted);font-size:var(--text-xs);margin:0}@media (width>=768px){.marketing-footer-inner{text-align:left;flex-direction:row;justify-content:space-between}}.marketing-legal{max-width:700px;padding-top:var(--space-6);padding-bottom:var(--space-8)}.marketing-legal h1{margin-bottom:var(--space-2);font-size:clamp(1.8rem,5vw,2.4rem)}.marketing-legal-updated{color:var(--color-ink-muted);font-size:var(--text-sm);margin-bottom:var(--space-6)}.marketing-legal section{margin-bottom:var(--space-5)}.marketing-legal h2{font-family:var(--font-ui);font-size:var(--text-lg);margin-bottom:var(--space-2)}.marketing-legal p{color:var(--color-ink-2);font-size:var(--text-sm);margin:0 0 var(--space-3);line-height:1.7}.marketing-checkout{max-width:560px;padding:var(--space-6) var(--space-4) var(--space-8);margin:0 auto}.marketing-checkout-title{text-align:center;font-size:clamp(1.6rem,5vw,2.2rem)}.marketing-checkout-sub{text-align:center;color:var(--color-ink-3);margin-bottom:var(--space-5)}.marketing-plan-picker{gap:var(--space-3);margin-bottom:var(--space-5);display:grid}.marketing-plan-option{align-items:center;gap:var(--space-3);text-align:left;background:var(--color-surface);border:2px solid var(--color-divider);border-radius:var(--radius-md);width:100%;padding:var(--space-4);cursor:pointer;font-size:var(--text-base);transition:border-color .12s,box-shadow .12s;display:flex}.marketing-plan-option.is-selected{border-color:var(--color-accent);box-shadow:var(--shadow-sm)}.marketing-plan-option-radio{border:2px solid var(--color-divider);border-radius:50%;flex:none;width:20px;height:20px;position:relative}.marketing-plan-option.is-selected .marketing-plan-option-radio{border-color:var(--color-accent)}.marketing-plan-option.is-selected .marketing-plan-option-radio:after{content:"";background:var(--color-accent);border-radius:50%;position:absolute;inset:3px}.marketing-plan-option-body{flex:1;min-width:0}.marketing-plan-option-name{align-items:center;gap:var(--space-2);flex-wrap:wrap;font-weight:700;display:flex}.marketing-plan-option-name .marketing-mini-badge{font-size:var(--text-xs);color:var(--color-accent);background:var(--color-accent-soft);border-radius:var(--radius-pill);padding:.1rem .6rem;font-weight:700}.marketing-plan-option-tagline{color:var(--color-ink-3);font-size:var(--text-sm)}.marketing-plan-option-price{text-align:right;flex:none}.marketing-plan-option-price strong{font-size:var(--text-lg);display:block}.marketing-plan-option-price span{color:var(--color-ink-muted);font-size:var(--text-xs)}.marketing-checkout-smallprint{text-align:center;color:var(--color-ink-muted);font-size:var(--text-xs);margin-top:var(--space-3)}.marketing-notice{border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);margin-bottom:var(--space-4);border:1px solid #0000}.marketing-notice.is-error{color:var(--color-red);background:#c7000012;border-color:#c700004d}.marketing-notice.is-info{background:var(--color-accent-soft);color:var(--color-ink-2);border-color:#f28f1e66}.marketing-notice.is-success{color:var(--color-ink-2);background:#72b1701f;border-color:#72b17073}.marketing-license-badge{font-size:var(--text-xs);letter-spacing:.04em;border-radius:var(--radius-pill);white-space:nowrap;align-items:center;gap:.35rem;padding:.15rem .65rem;font-weight:700;display:inline-flex}.marketing-license-badge.is-lifetime{color:#fff;background:var(--color-accent)}.marketing-license-badge.is-annual{color:var(--color-accent);background:var(--color-accent-soft);border:1px solid #f28f1e66}.marketing-license-badge.is-free{color:var(--color-ink-3);background:var(--color-surface-3)}.marketing-upgrade-banner{align-items:center;gap:var(--space-3);background:var(--color-accent-soft);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);border:1px solid #f28f1e66;flex-wrap:wrap;display:flex}.marketing-upgrade-banner.is-success{background:#72b1701f;border-color:#72b17073}.marketing-upgrade-banner-text{font-size:var(--text-sm);color:var(--color-ink-2);flex:200px;margin:0}.marketing-upgrade-banner-text strong{display:block}.marketing-upgrade-banner-actions{align-items:center;gap:var(--space-2);display:flex}@media (prefers-reduced-motion:reduce){.marketing-page *,.marketing-page :before,.marketing-page :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;--color-accent:#f28f1e;--color-accent-hover:#de7f0f;--color-accent-soft:#fdf1e2;--color-green:#72b170;--color-red:#c70000;--color-theme-red:#931c13;--color-chart-blue:#00f;--color-ink:#222;--color-ink-2:#333;--color-ink-3:#555;--color-ink-muted:#8a8a8a;--color-divider:#c7c7c7;--color-surface:#fff;--color-surface-2:#faf8f5;--color-surface-3:#eaeaea;--font-display:"American Typewriter", "Bookman Old Style", "Georgia", "Iowan Old Style", "Times New Roman", serif;--font-ui:"Helvetica Neue", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.5rem;--text-2xl:2rem;--text-3xl:2.75rem;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-pill:999px;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-8:3rem;--shadow-sm:0 1px 2px #22222214;--shadow-md:0 4px 16px #2222221a;--shadow-lg:0 12px 40px #2222222e;--sidebar-width:220px;--tabbar-height:60px;--content-max-width:960px}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-ui);font-size:var(--text-base);color:var(--color-ink);background:var(--color-surface-2);-webkit-font-smoothing:antialiased;line-height:1.5}#root{min-height:100dvh}h1,h2,h3,h4{font-family:var(--font-display);color:var(--color-ink);margin:0 0 var(--space-3);line-height:1.2}p{margin:0 0 var(--space-3)}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit}img{max-width:100%}input,textarea,select{font-family:var(--font-ui);font-size:var(--text-base);color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3)}input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.wordmark{font-family:var(--font-display);letter-spacing:.01em;font-weight:700}.wordmark-memory{color:var(--color-accent)}.wordmark-typer{color:var(--color-ink-2)}.btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-pill);font-size:var(--text-base);cursor:pointer;white-space:nowrap;border:1px solid #0000;padding:.5rem 1.25rem;font-weight:600;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn-secondary{background:var(--color-surface);color:var(--color-ink-2);border-color:var(--color-divider)}.btn-secondary:hover:not(:disabled){border-color:var(--color-ink-muted)}.btn-danger{background:var(--color-red);color:#fff}.btn-danger:hover:not(:disabled){background:#a80000}.btn-ghost{color:var(--color-accent);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-accent-soft)}.btn-sm{font-size:var(--text-sm);padding:.25rem .875rem}.btn-lg{font-size:var(--text-lg);padding:.75rem 1.75rem}.btn-block{width:100%;display:flex}.card{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-4)}.card-title{font-family:var(--font-ui);font-size:var(--text-lg);margin:0 0 var(--space-2);color:var(--color-ink);font-weight:600}.modal-overlay{z-index:100;padding:var(--space-4);background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-panel{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:26rem;max-height:calc(100dvh - 2 * var(--space-4));padding:var(--space-5);overflow-y:auto}.modal-title{font-family:var(--font-ui);font-size:var(--text-lg);margin:0 0 var(--space-3);font-weight:700}.modal-body{color:var(--color-ink-3)}.modal-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-5);display:flex}.progress{background:var(--color-surface-3);border-radius:var(--radius-pill);width:100%;overflow:hidden}.progress-fill{background:var(--color-accent);border-radius:inherit;height:100%;transition:width .2s}.spinner{border:3px solid var(--color-surface-3);border-top-color:var(--color-accent);border-radius:50%;animation:.8s linear infinite spinner-rotate;display:inline-block}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.spinner-center{padding:var(--space-8);justify-content:center;align-items:center;display:flex}.empty-state{text-align:center;padding:var(--space-8) var(--space-4);color:var(--color-ink-3)}.empty-state-icon{font-size:var(--text-3xl);margin-bottom:var(--space-3)}.empty-state-title{font-family:var(--font-ui);font-size:var(--text-lg);color:var(--color-ink);margin:0 0 var(--space-2);font-weight:600}.app-shell{min-height:100dvh;display:flex}.app-nav{background:var(--color-surface);display:flex}.app-nav-brand{font-size:var(--text-xl);padding:var(--space-4);display:none}.app-nav-brand .wordmark,.app-nav-brand .wordmark:hover{text-decoration:none}.app-tabs{flex:1;margin:0;padding:0;list-style:none;display:flex}.app-tab{flex:1}.app-tab-link{height:100%;padding:var(--space-1) var(--space-2);color:var(--color-ink-3);font-size:var(--text-xs);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-weight:600;text-decoration:none;display:flex;position:relative}.app-tab-link:hover{color:var(--color-ink);text-decoration:none}.app-tab-link.active{color:var(--color-accent)}.app-tab-icon{font-size:1.25rem;line-height:1}.app-tab-badge{border-radius:var(--radius-pill);background:var(--color-accent);color:#fff;text-align:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;line-height:18px;position:absolute;top:4px;right:calc(50% - 22px)}.app-main{min-width:0;padding:var(--space-5) var(--space-4) calc(var(--tabbar-height) + env(safe-area-inset-bottom,0px) + var(--space-5));flex:1}.app-content{max-width:var(--content-max-width);margin:0 auto}.app-shell{flex-direction:column}.app-nav{z-index:50;height:calc(var(--tabbar-height) + env(safe-area-inset-bottom,0px));border-top:1px solid var(--color-divider);padding-bottom:env(safe-area-inset-bottom,0px);position:fixed;bottom:0;left:0;right:0}@media (width>=768px){.app-shell{flex-direction:row}.app-nav{height:100dvh;width:var(--sidebar-width);border-top:none;border-right:1px solid var(--color-divider);flex-direction:column;padding-bottom:0;position:sticky;top:0;bottom:auto}.app-nav-brand{display:block}.app-tabs{padding:var(--space-2);gap:var(--space-1);flex-direction:column;flex:none}.app-tab{flex:none}.app-tab-link{justify-content:flex-start;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-base);flex-direction:row}.app-tab-link.active{background:var(--color-accent-soft)}.app-tab-badge{margin-left:auto;position:static}.app-main{padding:var(--space-6) var(--space-6) var(--space-6)}}.text-muted{color:var(--color-ink-3)}.text-green{color:var(--color-green)}.text-red{color:var(--color-red)}.text-accent{color:var(--color-accent)}.stack{gap:var(--space-3);flex-direction:column;display:flex}.row{align-items:center;gap:var(--space-3);display:flex}.divider{border:0;border-top:1px solid var(--color-divider);margin:var(--space-4) 0}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=767px){[data-supportopus]{transform:translateZ(0);right:0!important;bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom,0px))!important;width:0!important;height:0!important;position:fixed!important}body[data-supportopus-open] [data-supportopus]{z-index:2147483000;width:100%!important;height:100%!important;inset:0!important}body.practice-active [data-supportopus]{display:none!important}.app-main{padding-bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom,0px) + 96px)}}
