:root{--paper:#f4f5f8;--surface:#fff;--sunken:#f7f8fa;--ink:#17191e;--muted:#6b7180;--faint:#9aa0ac;--hair:#e4e5ec;--hair-2:#eeeff4;--accent:#5b5bd6;--accent-deep:#4747b8;--accent-soft:#e9e9fb;--on-accent:#fff;--good:#1e8a5a;--good-soft:#ddf4ea;--warn:#b7791f;--warn-soft:#fff2dc;--bad:#c9412f;--bad-soft:#ffe9e6;--phrase:#178a76;--phrase-deep:#11695a;--phrase-soft:#d8f0ea;--rule:#b7791f;--rule-soft:#fff2dc;--story:#b8487a;--story-soft:#fbe6ef;--check:#2b2f3a;--check-soft:#e6e7ec;--ph-launch:#6b7180;--ph-a1:#3c8d7a;--ph-a2:#2f6fa6;--ph-b1:#5b4e9e;--ph-prep:#c9922e;--ph-exam:#b5482d;--ph-planb:#8a94a0;--radius:22px;--button-radius:12px;--shadow:0 1px 2px #1e1e3c0a, 0 8px 24px #1e1e3c0f;--ff:-apple-system, BlinkMacSystemFont, "SF Pro Rounded", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--ff-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--paper:#14161c;--surface:#1d2029;--sunken:#232733;--ink:#e9ebf1;--muted:#9aa1b2;--faint:#6e7587;--hair:#2c303c;--hair-2:#262a35;--accent:#8c8cf0;--accent-deep:#6a6ad8;--accent-soft:#2b2b4a;--on-accent:#12121f;--good:#5cc195;--good-soft:#1d3a2f;--warn:#e3ae55;--warn-soft:#3a2f1c;--bad:#ee7b67;--bad-soft:#43231f;--phrase:#4fc2ac;--phrase-deep:#2e9a86;--phrase-soft:#1b3833;--rule:#e3ae55;--rule-soft:#3a2f1c;--story:#e07aa8;--story-soft:#3d2230;--check:#d5d8e2;--check-soft:#2f3340;--ph-launch:#9aa1b2;--ph-a1:#5cb09b;--ph-a2:#6fa3d6;--ph-b1:#9a8fd3;--ph-prep:#e0b15a;--ph-exam:#d9765a;--ph-planb:#7b8794;--shadow:0 1px 2px #0000004d, 0 8px 24px #00000040;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--ff);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.5}a{color:var(--accent)}button{font:inherit;color:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:filter .12s}:where(button,a.btn,a.close,a.path-icon,a.path-banner,a.rescue-bar,.plan-links a):not(:disabled):active{filter:brightness(.94)}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3{margin:0;line-height:1.2}h1{letter-spacing:-.02em;flex-wrap:wrap;align-items:center;gap:10px;font-size:1.55rem;display:flex}h2{letter-spacing:-.01em;margin-bottom:8px;font-size:1.05rem}p{margin:0 0 8px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{min-height:100dvh;padding-bottom:calc(76px + env(safe-area-inset-bottom))}.main{max-width:560px;margin:0 auto}.page{padding:18px 16px 24px}.page-head{margin-bottom:14px}.page-head.row{justify-content:space-between;align-items:center;gap:10px;display:flex}.eyebrow{color:var(--muted);margin:0 0 2px;font-size:.8rem}.lede{color:var(--muted);margin:4px 0 0}.fine{color:var(--muted);font-size:.84rem}.fine.warn,.warn{color:var(--warn)}.good{color:var(--good)}.center{text-align:center}.section-title{margin:22px 2px 10px;font-size:1.1rem}.tabs{background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--hair);padding:6px 0 calc(6px + env(safe-area-inset-bottom));z-index:10;display:flex;position:fixed;bottom:0;left:0;right:0}.tabs a{color:var(--faint);flex-direction:column;flex:1;align-items:center;gap:3px;padding:4px 0;font-size:.7rem;text-decoration:none;display:flex;position:relative}.tabs a .ico{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.tabs a.active .ico{stroke-width:2.1px}.tabs a.active{color:var(--accent);font-weight:700}.tabs .badge{background:var(--bad);color:#fff;border-radius:99px;padding:3px 5px;font-size:.62rem;font-style:normal;font-weight:800;line-height:1;position:absolute;top:-3px;left:calc(50% + 6px)}@media (width>=600px){.tabs{border:1px solid var(--hair);border-bottom:0;border-radius:20px 20px 0 0;max-width:560px;left:50%;transform:translate(-50%)}}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:12px;padding:16px}.card p:last-child{margin-bottom:0}.actions{flex-wrap:wrap;gap:10px;margin:12px 0;display:flex}.actions.two>*{flex:1 1 0}.btn{border-radius:var(--button-radius);border:1px solid var(--hair);background:var(--sunken);min-height:50px;color:var(--ink);cursor:pointer;box-shadow:none;text-align:center;flex:auto;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-weight:650;text-decoration:none;display:inline-flex}.btn b{font-weight:800}.btn.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.btn.phrase{background:var(--phrase);color:var(--on-accent);border-color:var(--phrase)}.btn.muted{color:var(--muted)}.btn.danger{color:var(--bad);background:var(--bad-soft);border-color:color-mix(in srgb, var(--bad) 25%, var(--bad-soft))}.btn.wide{width:100%}.btn:disabled{opacity:.5;cursor:default;transform:none}.chip{letter-spacing:.06em;text-transform:uppercase;color:var(--c,var(--muted));background:color-mix(in srgb, var(--c,var(--muted)) 14%, transparent);vertical-align:middle;border-radius:7px;padding:3px 8px;font-size:.68rem;font-weight:750;line-height:1.4;display:inline-block}.ph-launch{--c:var(--ph-launch)}.ph-a1{--c:var(--ph-a1)}.ph-a2{--c:var(--ph-a2)}.ph-b1{--c:var(--ph-b1)}.ph-prep{--c:var(--ph-prep)}.ph-exam{--c:var(--ph-exam)}.ph-planb{--c:var(--ph-planb)}.kind-row{justify-content:space-between;align-items:center;gap:8px;margin:0 2px 10px;display:flex}.kind-row .fine{margin:0}.kind-chip{letter-spacing:.06em;text-transform:uppercase;background:var(--accent-soft);color:var(--accent);border-radius:7px;padding:4px 9px;font-size:.68rem;font-weight:750;display:inline-block}.kind-chip.phrase{background:var(--phrase-soft);color:var(--phrase)}.kind-chip.check{background:var(--check-soft);color:var(--check)}.session-top{align-items:center;gap:12px;margin:0 0 14px;display:flex}.session-top .close{border-radius:var(--button-radius);border:1px solid var(--hair);background:var(--sunken);width:44px;height:44px;color:var(--muted);touch-action:manipulation;-webkit-tap-highlight-color:transparent;flex:none;justify-content:center;align-items:center;margin:-8px -4px -8px -12px;font-size:1.2rem;text-decoration:none;transition:background .12s;display:inline-flex}.session-top .close:active{background:var(--hair-2);color:var(--ink)}.session-top .bar{flex:1}.session-top .count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8rem}.nextstep{gap:8px;margin:14px 0 2px;display:grid}.focus-page .session-top .count{flex:1}.focus-page .page-head{margin-bottom:12px}.focus-foot{margin-top:16px}.path-page{padding-top:calc(24px + env(safe-area-inset-top))}.path-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.path-header h1{letter-spacing:-.04em;font-size:2rem}.path-tools{flex:none;gap:4px;display:flex}.path-icon{width:40px;height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:14px;flex:none;justify-content:center;align-items:center;padding:0;text-decoration:none;display:inline-flex}.path-stats{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;margin:12px 0 24px;font-size:.75rem;display:flex}.path-stats a,.path-stats button,.path-streak{min-height:44px;color:var(--muted);align-items:center;gap:6px;text-decoration:none;display:inline-flex}.path-stats button{font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.path-stats svg{flex:none;width:17px;height:17px}.path-streak>svg{width:21px;height:23px;color:var(--warn)}.path-stats .path-streak.warn{color:var(--warn)}.path-sync{align-items:center;gap:8px;margin-bottom:16px;display:flex}.path-sync svg{flex:none}.timeline{--rail:50px;--rail-gap:16px;padding:0 0 24px}.timeline-stage{padding:0 0 32px calc(var(--rail) + var(--rail-gap));position:relative}.timeline-stage:not(:last-child):after{content:"";top:var(--rail);bottom:0;left:calc(var(--rail) / 2 - 1px);border-left:1px dashed var(--faint);opacity:.5;position:absolute}.timeline-current:not(:last-child):after,.tone-completed:not(:last-child):after{border-left-style:solid;border-left-color:var(--accent);opacity:.8}.timeline-badge,.course-group-badge{width:var(--rail);height:var(--rail);border-radius:50%;place-items:center;font-size:1.05rem;font-weight:800;display:grid;position:absolute;top:0;left:0}.timeline-badge{background:var(--accent);color:var(--on-accent)}.timeline-badge svg,.course-group-badge svg{width:25px;height:25px}.timeline-current-head{margin:0 0 16px;padding-top:2px}.timeline-current-head p{color:var(--accent);margin:0 0 4px;font-size:.85rem;font-weight:650}.timeline-current-head h2{letter-spacing:-.03em;margin:0;font-size:1.8rem;line-height:1.15}.timeline-current-head>span{color:var(--muted);margin-top:8px;font-size:.8rem;display:block}.road-today{background:var(--surface);border:0;border-radius:20px;margin:0;padding:14px;scroll-margin-top:16px}.road-today-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.road-today-head b{font-size:.94rem}.road-today-head>span{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:.72rem}.today-lessons{gap:4px;margin:12px 0;display:grid}.today-lessons .path-lesson-row{background:var(--sunken);border:0;border-radius:12px;padding:10px 8px}.today-lessons .path-lesson-icon{background:0 0;width:27px;height:32px}.today-lessons .path-lesson-icon>svg{width:25px;height:25px}.today-lessons .path-row-text b{font-size:.85rem}.today-lessons .path-row-text small{font-size:.7rem}.lesson-next{color:var(--accent);flex:none;font-size:.68rem;font-weight:650}.isl-go{background:var(--accent);min-height:48px;color:var(--on-accent);border-radius:13px;justify-content:center;align-items:center;gap:8px;padding:10px;font-size:.95rem;font-weight:750;text-decoration:none;display:flex}.isl-go svg{flex:none;width:18px;height:18px}.isl-skip{width:100%;min-height:40px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;margin:4px 0 -6px;padding:6px;font-size:.75rem}.timeline-week-link{width:100%;min-height:52px;color:var(--accent);text-align:left;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:8px 2px;font-size:.8rem;font-weight:650;display:flex}.timeline-week-link>span{flex:1}.timeline-week-link>svg{flex:none;width:19px;height:19px}.road-reminders{margin-bottom:14px}.road-reminders .rescue-bar{margin:0}.path-page .rescue-bar>i{color:var(--warn);filter:none}.path-page .rescue-bar>i>svg{width:26px;height:30px}.path-debts{gap:8px;margin:4px 0 0;display:grid}.path-debts:empty{display:none}.path-action{background:var(--surface);width:100%;min-height:60px;color:var(--warn);font:inherit;text-align:left;cursor:pointer;border:0;border-radius:16px;align-items:center;gap:10px;padding:12px;text-decoration:none;display:flex}.path-action>svg{flex:none;width:25px;height:25px}.path-action>svg:last-child{width:17px;height:17px;color:var(--muted);margin-left:auto}.path-action>span{flex:1;min-width:0}.path-action b{font-size:.86rem;font-weight:650;line-height:1.35;display:block}.path-action small{color:var(--muted);margin-top:3px;font-size:.72rem;display:block}.path-action.about{color:var(--phrase)}.course-group{--group-color:var(--muted);--group-soft:var(--sunken);background:0 0;border:0;margin:0}.course-group.tone-completed{--group-color:var(--on-accent);--group-soft:var(--good)}.course-group.tone-a2{--group-color:var(--phrase);--group-soft:var(--phrase-soft)}.course-group.tone-b1{--group-color:var(--muted);--group-soft:var(--hair)}.course-group.tone-prep{--group-color:var(--rule);--group-soft:var(--rule-soft)}.course-group-badge{color:var(--group-color);background:var(--group-soft)}.course-group>summary{min-height:var(--rail);cursor:pointer;align-items:center;gap:10px;padding:0;list-style:none;display:flex}.course-group>summary::-webkit-details-marker{display:none}.week-card>summary::-webkit-details-marker{display:none}.timeline-remaining>summary::-webkit-details-marker{display:none}.course-group-title,.week-title{flex:1;min-width:0}.course-group-title b{letter-spacing:-.02em;font-size:1.3rem;font-weight:750;line-height:1.2;display:block}.course-group-title small{color:var(--muted);margin-top:5px;font-size:.8rem;line-height:1.4;display:block}.course-group>summary>svg{width:22px;height:22px;color:var(--accent);flex:none}.course-group-weeks{background:var(--surface);border-radius:16px;margin-top:14px;padding:0 8px}.week-card{background:var(--surface);border:0;border-radius:16px;scroll-margin-top:16px}.course-group-weeks .week-card,.course-group-weeks .planned-week{border-radius:0}.course-group-weeks>*+*{border-top:1px solid var(--hair-2)}.week-card>summary,.planned-week{align-items:center;gap:8px;min-height:72px;padding:12px 4px;list-style:none;display:flex}.week-card>summary{cursor:pointer}.week-card>summary>svg{width:15px;height:15px;color:var(--muted);flex:none}.week-number{background:var(--sunken);width:25px;height:28px;color:var(--muted);border-radius:8px;flex:none;place-items:center;font-size:.7rem;font-weight:700;display:grid}.week-number>svg{width:16px;height:16px}.week-card.is-complete .week-number{background:var(--good-soft);color:var(--good)}.week-title b{font-size:.82rem;font-weight:650;line-height:1.35;display:block}.week-title small{color:var(--muted);overflow-wrap:anywhere;margin-top:3px;font-size:.7rem;line-height:1.35;display:block}.week-count{max-width:65px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;flex:none;font-size:.66rem;line-height:1.4}.week-count em{color:var(--warn);font-size:.65rem;font-style:normal;display:block}.week-days{padding:0 0 10px}.week-day{padding-top:8px}.week-day h3{color:var(--muted);justify-content:space-between;align-items:baseline;gap:10px;margin:0 0 2px;padding:8px;font-size:.73rem;font-weight:650;display:flex}.week-day h3 span+span{font-size:.67rem;font-weight:400}.week-day+.week-day{border-top:1px solid var(--hair-2);margin-top:6px}.planned-week .week-title b{color:var(--muted)}.timeline-remaining{margin-top:12px}.timeline-remaining>summary{min-height:44px;color:var(--muted);cursor:pointer;justify-content:space-between;align-items:center;gap:8px;padding:0 2px;font-size:.8rem;list-style:none;display:flex}.timeline-remaining>summary>svg{flex:none;width:16px;height:16px}.timeline-remaining[open]>summary>svg{transform:rotate(180deg)}.timeline-remaining>div{background:var(--surface);border-radius:16px;padding:0 8px}.path-lesson-row{width:100%;min-height:60px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:10px 4px;display:flex}.path-lesson-row+.path-lesson-row{border-top:1px solid var(--hair-2)}.path-lesson-icon{background:var(--accent-soft);width:32px;height:36px;color:var(--accent);border-radius:10px;flex:none;place-items:center;display:grid}.path-lesson-icon>svg{width:22px;height:22px}.path-lesson-row.k-grammar .path-lesson-icon{background:var(--rule-soft);color:var(--rule)}.path-lesson-row.k-phrases .path-lesson-icon{background:var(--phrase-soft);color:var(--phrase)}.path-lesson-row.k-story .path-lesson-icon{background:var(--story-soft);color:var(--story)}.path-lesson-row.k-checkpoint .path-lesson-icon{background:var(--accent-soft);color:var(--accent)}.path-row-text{flex:1;min-width:0}.path-row-text b{overflow-wrap:anywhere;font-size:.88rem;font-weight:650;line-height:1.35;display:block}.path-row-text small{color:var(--muted);margin-top:3px;font-size:.72rem;line-height:1.4;display:block}.path-lesson-row>svg{width:18px;height:18px;color:var(--muted);flex:none}.path-lesson-row.done>svg{color:var(--good)}.path-lesson-row.skipped>svg{color:var(--warn)}.path-lesson-row.locked .path-row-text b{color:var(--muted)}.path-dialog{overscroll-behavior:contain;background:var(--surface);width:min(100%,560px);max-width:none;max-height:88dvh;color:var(--ink);border:0;border-radius:26px 26px 0 0;margin:0 auto;padding:0;position:fixed;inset:auto 0 0;overflow:auto}.path-dialog::backdrop{background:#0a0c12a6}.path-dialog-inner{padding:12px 20px calc(24px + env(safe-area-inset-bottom))}.path-dialog .grab{margin-bottom:8px}.path-dialog-tools{justify-content:space-between;align-items:center;gap:12px;min-height:36px;display:flex}.path-dialog-tools button{min-height:44px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;font-size:.85rem;display:inline-flex}.path-dialog-tools button>svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.path-dialog-back{gap:4px}.path-dialog-tools .path-dialog-close{border-radius:12px;width:44px;margin-left:auto}.path-dialog-title{letter-spacing:-.03em;margin:4px 0 10px;font-size:1.7rem;line-height:1.2}.path-dialog-title:focus{outline:none}.path-dialog-subtitle{color:var(--muted);margin:0 0 20px;font-size:.84rem;line-height:1.5}.postponed-week{padding:12px 0}.postponed-week+.postponed-week{border-top:1px solid var(--hair)}.postponed-week>header{justify-content:space-between;align-items:center;gap:8px;display:flex}.postponed-week h3{margin:0;font-size:1rem}.postponed-week>header>button{min-height:44px;color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:4px 0;font-size:.78rem;display:inline-flex}.postponed-week>header>button>svg{width:16px;height:16px}.postponed-week .path-lesson-row+.path-lesson-row{border:0}.path-dialog .sheet-head{padding:0}.sheet-head .ic{background:var(--ks,var(--accent-soft));color:var(--k,var(--accent));flex:none;place-items:center;display:grid}.lesson-details>p{color:var(--muted);font-size:.9rem}.lesson-details .facts{margin-bottom:16px}@media (width<=360px){.path-header h1{font-size:1.8rem}.path-stats{gap:4px;font-size:.68rem}.path-stats svg{width:15px;height:17px}.timeline{--rail:42px;--rail-gap:12px}.timeline-current-head h2{font-size:1.65rem}.road-today{padding:10px}.today-lessons .path-lesson-row{gap:7px;padding-inline:6px}.today-lessons .path-row-text b{font-size:.8rem}.today-lessons .path-lesson-icon{width:23px}.lesson-next{font-size:.64rem}.week-card>summary,.planned-week{gap:5px}.week-count{max-width:52px;font-size:.62rem}.path-dialog-inner{padding-inline:16px}.path-page .map-weeks{grid-template-columns:repeat(5,1fr)}.path-page .map-head{flex-wrap:wrap}}.rescue-bar{background:var(--warn-soft);border-radius:var(--button-radius);color:var(--ink);border:1px solid #0000;align-items:center;gap:10px;margin:10px 0 0;padding:10px 12px;text-decoration:none;display:flex}.rescue-bar>i{filter:grayscale();flex:none;font-size:1.4rem;font-style:normal}.rescue-bar.saved{background:var(--surface);border-color:var(--hair)}.rescue-bar.saved>i{filter:none}.rescue-bar b{font-size:.92rem;display:block}.rescue-bar small{color:var(--muted);font-size:.78rem;display:block}.rescue-steps{color:var(--warn);flex-wrap:wrap;gap:4px 12px;margin-top:4px;font-size:.8rem;font-weight:600;display:flex}.rescue-steps .ok{color:var(--good)}.rescue-bar .go{color:var(--accent);margin-left:auto;font-weight:800}.seg{background:0 0;gap:6px;margin-top:10px;display:flex}.seg button{border:1px solid var(--hair);background:var(--sunken);border-radius:var(--button-radius);min-height:44px;color:var(--muted);cursor:pointer;flex:1;padding:6px;font-size:.84rem;font-weight:600}.seg button.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.sync{color:var(--muted);margin:6px 0 0;font-size:.8rem}.sync.error,.sync.unauthorized{color:var(--warn)}.sheet-skip{margin-top:8px}.skip-link{border:1px solid var(--hair);border-radius:var(--button-radius);background:var(--sunken);width:100%;min-height:44px;color:var(--muted);cursor:pointer;padding:10px;font-size:.88rem}.sheet-wrap{z-index:30;background:#14161e61;justify-content:center;align-items:flex-end;animation:.15s fade;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:560px;max-height:88dvh;padding:10px 18px calc(22px + env(safe-area-inset-bottom));border-radius:28px 28px 0 0;animation:.2s rise;position:relative;overflow:auto}.grab{background:var(--hair);border-radius:3px;width:40px;height:5px;margin:0 auto 14px}.sheet-x{border:1px solid var(--hair);background:var(--hair-2);border-radius:var(--button-radius);cursor:pointer;width:44px;height:44px;color:var(--muted);position:absolute;top:10px;right:12px}.sheet-head{align-items:center;gap:12px;margin-bottom:14px;padding-right:48px;display:flex}.sheet-head .ic{border-radius:15px;width:48px;height:48px;font-size:1.05rem}.sheet-head .ic.k-words{--k:var(--accent);--ks:var(--accent-soft)}.sheet-head .ic.k-phrases{--k:var(--phrase);--ks:var(--phrase-soft)}.sheet-head .ic.k-grammar{--k:var(--rule);--ks:var(--rule-soft)}.sheet-head .ic.k-story{--k:var(--story);--ks:var(--story-soft)}.sheet-head .ic.k-checkpoint{--k:var(--check);--ks:var(--check-soft)}.sheet-head b{letter-spacing:-.02em;font-size:1.2rem;line-height:1.2;display:block}.sheet-head small{color:var(--muted);font-size:.8rem}.sheet p{color:var(--muted);font-size:.9rem}.word-chips{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.word-chips span{background:var(--sunken);border-radius:10px;padding:5px 9px;font-size:.9rem}.word-chips span.hk{background:var(--accent-soft);color:var(--accent);font-weight:600}.sheet-list{gap:4px;margin:0 0 12px;padding-left:18px;font-size:.92rem;display:grid}.facts{grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px;margin-bottom:12px;display:grid}.facts div{background:var(--sunken);color:var(--muted);border-radius:14px;padding:8px 10px;font-size:.74rem}.facts b{color:var(--ink);font-size:1.02rem;display:block}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:.5;transform:translateY(40px)}}.course-map{padding-top:4px}.map-group{background:var(--surface);box-shadow:var(--shadow);border-radius:20px;margin-bottom:12px;padding:12px}.map-group.ph-a1{--pc:var(--ph-a1)}.map-group.ph-a2{--pc:var(--ph-a2)}.map-group.ph-b1{--pc:var(--ph-b1)}.map-group.ph-prep{--pc:var(--ph-prep)}.map-head{color:var(--muted);justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;font-size:.76rem;display:flex}.map-head b{color:var(--pc);font-size:.95rem}.map-weeks{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.map-weeks button{aspect-ratio:1;border-radius:var(--button-radius);border:1.5px dashed color-mix(in srgb, var(--pc) 30%, transparent);background:color-mix(in srgb, var(--pc) 10%, var(--surface));color:color-mix(in srgb, var(--pc) 75%, var(--surface));cursor:pointer;font-size:.8rem;font-weight:700;position:relative;overflow:hidden}.map-weeks button:disabled{cursor:default;opacity:.6}.map-weeks button.open{border-style:solid}.map-weeks button.done{background:var(--pc);color:#fff;border:0}.map-weeks button.current{background:var(--surface);color:var(--pc);border:2px solid var(--pc);outline:4px solid color-mix(in srgb, var(--pc) 18%, transparent);overflow:visible}.map-weeks button.current i{background:var(--pc);border-radius:2px;max-width:calc(100% - 8px);height:4px;position:absolute;bottom:4px;left:4px}.map-weeks button.exam{background:var(--ph-exam);color:#fff;opacity:1;border:0}.flash{padding:20px 16px 16px}.ro-face{text-align:center;margin-bottom:12px}.ro-word{border-radius:var(--button-radius);cursor:pointer;letter-spacing:-.03em;text-wrap:balance;background:0 0;border:0;align-items:center;gap:10px;padding:4px 8px;font-size:1.6rem;font-weight:800;line-height:1.15;display:inline-flex}.ro-word.big{font-size:2.1rem}.ro-word .speaker{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);letter-spacing:0;border-radius:50%;flex:none;place-items:center;font-size:.85rem;display:grid}.ro-word:active{background:var(--hair-2)}.meta{color:var(--muted);margin-top:2px;font-size:.82rem}.forms{color:var(--ink);background:var(--sunken);border-radius:10px;margin-top:8px;padding:5px 10px;font-size:.86rem;display:inline-block}.forms em{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-right:6px;font-size:.66rem;font-style:normal;font-weight:750}.forms-grid{background:var(--sunken);border-radius:12px;max-width:360px;margin:10px auto 0;padding:7px 10px 9px}.forms-cap{color:var(--muted);margin:0 0 5px;font-size:.7rem;line-height:1.3}.forms-verb{grid-template-columns:repeat(3,1fr);gap:6px 8px;display:grid}.forms-verb>div{flex-direction:column;min-width:0;display:flex}.forms-verb small,.forms-adj th{color:var(--muted);font-size:.68rem;font-weight:650}.forms-verb i,.forms-adj i{color:var(--faint);font-style:normal;font-weight:500}.forms-verb b{overflow-wrap:anywhere;font-size:.9rem;font-weight:600}.forms-adj{border-collapse:collapse;width:100%}.forms-adj th,.forms-adj td{text-align:left;padding:3px 4px}.forms-adj thead th{font-weight:650}.forms-adj td{font-size:.95rem;font-weight:600}.forms-verb>button{text-align:left;min-width:0;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;flex-direction:column;align-items:flex-start;margin:-2px -4px;padding:2px 4px;display:flex}.forms-verb>button:active,.forms-adj td button:active,.form-say:active{background:var(--hair-2)}.forms-adj td button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;margin:-2px -4px;padding:2px 4px}.form-say{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:1px 4px}.form-say b{color:var(--ink);font-weight:650}.form-say span{font-size:.72rem}.verb-tenses{text-align:left;gap:12px;margin-top:14px;display:grid}.verb-tense{background:var(--sunken);border-radius:14px;padding:12px}.verb-tense-label{color:var(--muted);margin-bottom:4px;font-size:.78rem;font-weight:650;display:block}.verb-tense>.form-say{padding:0;font-size:1rem}.verb-tense-example{text-align:left;background:0 0;border:0;gap:3px;margin-top:8px;padding:0;font-size:.88rem;line-height:1.45;display:grid}.verb-tense-example>span:last-child{color:var(--muted)}.verb-tense-rule{color:var(--accent);margin-top:8px;font-size:.78rem;display:inline-block}.ft{gap:6px;max-width:400px;margin:0 auto 12px;display:grid}.ft-grid{align-items:stretch;gap:6px;display:grid}.ft-row{display:contents}.ft-h{letter-spacing:.05em;text-transform:uppercase;color:var(--faint);text-align:center;align-self:end;font-size:.68rem;font-weight:700}.ft-rl{color:var(--muted);flex-direction:column;justify-content:center;max-width:42vw;padding-right:2px;font-size:.8rem;font-weight:650;display:flex}.ft-rl i{color:var(--faint);font-size:.72rem;font-style:normal;font-weight:500}.ft-cell{border-radius:var(--button-radius);background:var(--sunken);border:1px solid var(--hair);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1px;min-width:0;min-height:58px;padding:6px 4px;display:flex;position:relative}.ft-cell small{color:var(--muted);font-size:.68rem;font-weight:650;line-height:1.25}.ft-cell small i{color:var(--faint);font-style:normal;font-weight:500}.ft-cue{color:var(--muted);font-weight:600}.ft-q{color:var(--accent);font-size:1.2rem;font-weight:800}.ft-cell.wide{flex-direction:row;gap:8px}.ft-cell.fixed{border-color:var(--hair);color:var(--faint);background:0 0}.ft-peek{color:var(--ink);font:inherit;cursor:pointer}.ft-peek:active{background:var(--hair-2)}.ft-cell.open{border:1px solid var(--accent-soft);color:var(--ink);font:inherit;cursor:pointer;background:var(--accent-soft);padding-left:22px;padding-right:22px}.ft-cell.open:active{background:var(--hair-2)}.ft-cell b{overflow-wrap:break-word;font-size:1.05rem;font-weight:700;line-height:1.2}.ft-art{color:var(--muted);font-weight:600}.ft-note{color:var(--muted);font-size:.66rem}.ft-spk{opacity:.8;font-size:.68rem;position:absolute;bottom:6px;right:7px}.ft-meta{text-align:center;margin:10px 0}.ft-extra{text-align:center;margin:-4px 0 10px}.ro-table{text-align:left;margin-top:12px}.ro-table .ft{margin-bottom:4px}.ft-extra .forms{margin-top:0}.langs{gap:5px;margin:0;display:grid}.langs>div{background:var(--sunken);border-radius:12px;grid-template-columns:30px 1fr;align-items:baseline;gap:6px;padding:7px 10px;display:grid}.langs dt{font-family:var(--ff-mono);color:var(--faint);letter-spacing:.06em;font-size:.68rem;font-weight:700}.langs dd{margin:0}.langs>div.hook{background:var(--accent-soft)}.langs>div.hook dt{color:var(--accent)}.langs>div.hook dd{font-weight:700}.hook-tag{color:var(--accent);margin-left:6px;font-size:.72rem;font-weight:500}.translations .note{color:var(--ink);gap:8px;margin:10px 0 0;font-size:.88rem;line-height:1.45;display:flex}.translations .note i{background:color-mix(in srgb, var(--ph-a2) 14%, transparent);width:22px;height:22px;color:var(--ph-a2);border-radius:7px;flex:none;place-items:center;font-family:Georgia,serif;font-size:.72rem;font-style:normal;font-weight:800;display:grid}.ff{background:var(--warn-soft);border-radius:12px;margin:10px 0 0;padding:9px 11px;font-size:.88rem;line-height:1.45}.ff b{color:var(--warn);letter-spacing:.06em;text-transform:uppercase;font-size:.68rem;display:block}.example{text-align:left;border-radius:var(--button-radius);border:1px solid var(--hair);background:var(--surface);cursor:pointer;justify-content:space-between;align-items:center;gap:8px;width:100%;margin-top:10px;padding:10px 12px;display:flex}.example .ex-ro{font-weight:650;display:block}.example .ex-ru{color:var(--muted);font-size:.84rem;display:block}.example .speaker{color:var(--accent);font-size:.9rem}.hint{text-align:center;color:var(--muted);margin:18px 0 6px;font-size:.9rem}.prompt{text-align:center;margin-bottom:12px}.prompt-ru{letter-spacing:-.02em;font-size:1.55rem;font-weight:800;line-height:1.25}.prompt-uk{color:var(--muted);margin-top:4px}details.how{margin:2px 2px 0}details.how>summary{border:1.5px dotted var(--hair);width:26px;height:26px;color:var(--muted);cursor:pointer;border-radius:50%;place-items:center;margin-left:auto;font-family:Georgia,serif;font-size:.82rem;font-style:italic;font-weight:700;line-height:1;list-style:none;display:grid}details.how>summary::-webkit-details-marker{display:none}details.how[open]>summary{border-color:var(--accent);color:var(--accent)}details.how>p{margin:8px 0 0}.grades{grid-template-columns:repeat(4,1fr);gap:6px;margin:10px 0;display:grid}.grade{border-radius:var(--button-radius);cursor:pointer;text-align:center;border:1px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:60px;padding:8px 2px;font-size:.8rem;font-weight:750;line-height:1.2;display:flex}.grade small{opacity:.75;font-variant-numeric:tabular-nums;font-size:.72rem;font-weight:500}.grade.again{background:var(--bad-soft);color:var(--bad)}.grade.hard{background:var(--warn-soft);color:var(--warn)}.grade.good{background:var(--good-soft);color:var(--good)}.grade.easy{background:var(--accent-soft);color:var(--accent)}.grade:disabled{opacity:.5}.ex-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.mode{gap:4px;display:flex}.mode button{border-radius:var(--button-radius);border:1px solid var(--hair);background:var(--sunken);cursor:pointer;min-height:44px;color:var(--muted);padding:6px 10px;font-size:.78rem;font-weight:600}.mode button.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.phrase-ex .prompt-ru{margin:0 0 14px;font-size:1.35rem}.tiles{flex-wrap:wrap;gap:8px;display:flex}.tile{border-radius:var(--button-radius);border:1px solid var(--hair);background:var(--surface);cursor:pointer;min-height:44px;padding:9px 14px;font-size:1.02rem;font-weight:600;line-height:1.2}.tile:disabled{cursor:default}.tile.used{background:var(--hair-2);color:#0000;border-color:#0000}.tiles-answer{border:2px dashed color-mix(in srgb, var(--phrase) 25%, var(--hair));border-radius:18px;flex-wrap:wrap;align-content:flex-start;gap:8px;min-height:96px;margin:0 0 16px;padding:10px;display:flex}.tiles-answer .hint{margin:0;padding:6px}.tiles-answer .tile{background:var(--phrase-soft);color:var(--phrase-deep);border-color:var(--phrase-soft)}:root[data-theme=dark] .tiles-answer .tile{color:var(--phrase)}.type-input{border:1.5px solid var(--hair);background:var(--sunken);width:100%;color:var(--ink);border-radius:14px;padding:12px 14px;font-size:1.1rem}.phrase-input{resize:none;min-height:52px;font-family:inherit;line-height:1.5;display:block;overflow:hidden}.diacritics{gap:8px;margin-top:10px;display:flex}.diacritics .btn{min-width:44px;min-height:44px;padding:8px}.diacritics.above-kb{z-index:30;background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--hair);margin:0;padding:6px 8px;position:fixed;left:0;right:0;transform:translateY(-100%)}.diacritics.above-kb .btn{flex:1;font-size:1.15rem}.verdict{border-radius:16px;margin-top:14px;padding:12px 14px}.verdict.ok{background:var(--good-soft)}.verdict.almost{--ink:#302a16;--muted:#655a34;--surface:#f6e7a8;--good:#216044;--good-soft:#dfe8b6;--bad:#9a3026;--warn:#80630e;color:var(--ink);background:#f6e7a8;border:1px solid #e1c85a}.verdict.wrong{background:var(--bad-soft)}.verdict-title{margin:0 0 6px;font-weight:700}.art-hint,.alt-hint,.phrase-note{color:var(--muted);margin:8px 0 0;font-size:.85rem;line-height:1.4}.art-hint b,.alt-hint b,.phrase-note b{color:var(--ink);font-weight:650}.note-text{min-width:0;display:block}.note-line{display:block}.note-line+.note-line{margin-top:4px}.art-hint i{color:var(--ink);font-style:normal;font-weight:700}.art-why{color:var(--ink);margin:8px 0 0;font-size:.95rem;line-height:1.45}.art-why i{color:var(--muted);text-decoration:line-through}.verdict.ok .verdict-title{color:var(--good)}.verdict-ro{cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:8px;padding:0;font-size:1.12rem;font-weight:650;display:inline-flex}.verdict-ro .speaker{opacity:.6;font-size:.9rem}.phrase-diff-label{color:var(--muted);margin:0 0 4px;font-size:.78rem;line-height:1.4}.phrase-diff-label:not(:first-child){margin-top:12px}.phrase-diff-line{overflow-wrap:anywhere;margin:0;font-size:1.12rem;font-weight:650;line-height:1.65}.phrase-diff .verdict-ro{width:100%;display:flex}.phrase-diff .verdict-ro>span:first-child{min-width:0}.phrase-diff mark{color:var(--ink);border-radius:3px;padding:1px 0}.phrase-diff-error,.phrase-diff-missing{background:color-mix(in srgb, var(--bad) 24%, var(--surface));text-decoration:underline;-webkit-text-decoration-color:var(--bad);text-decoration-color:var(--bad);text-underline-offset:3px;text-decoration-thickness:2px}.phrase-diff-missing{text-align:center;min-width:.65em;display:inline-block}.phrase-diff-fix{background:var(--good-soft);box-shadow:inset 0 -2px var(--good);font-weight:800}.phrase-diff-moved{background:color-mix(in srgb, var(--warn) 22%, var(--surface));-webkit-text-decoration:underline dashed;text-decoration:underline dashed;-webkit-text-decoration-color:var(--warn);text-decoration-color:var(--warn);text-underline-offset:3px;text-decoration-thickness:2px}.review-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.review-header .lede{color:var(--muted);max-width:28ch;margin-top:5px;font-size:.8rem}.review-theme{border:1px solid var(--hair);border-radius:var(--button-radius);background:var(--sunken);width:44px;height:44px;color:var(--muted);cursor:pointer;flex:none;place-items:center;display:grid}.review-home-content{flex-direction:column;gap:12px;display:flex}.review-home-content>.card{margin:0}.review-caption{color:var(--muted);margin:0 0 12px;font-size:.78rem}.review-overview{padding:22px}.review-total{align-items:center;gap:12px;display:flex}.review-total>b{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:3.4rem;font-weight:750;line-height:1}.review-total>span{font-size:.9rem}.review-total small{color:var(--muted);margin-top:2px;font-size:.8rem;display:block}.review-breakdown{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 16px;margin:18px 0 20px;font-size:.8rem;display:flex}.review-breakdown>span{align-items:center;gap:5px;display:inline-flex}.review-breakdown svg{flex:none;width:16px;height:16px}.review-start{font-size:1rem}.review-stories{border:1px solid var(--hair);border-radius:var(--button-radius);background:var(--surface)}.review-stories>summary{cursor:pointer;align-items:center;gap:10px;min-height:48px;padding:10px 12px;list-style:none;display:flex}.review-stories>summary::-webkit-details-marker{display:none}.review-stories>summary b{font-size:.9rem;font-weight:650}.review-stories>summary span{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:.78rem}.review-stories>summary svg{color:var(--muted);flex:none}.review-stories[open]>summary>svg:last-child{transform:rotate(180deg)}.review-stories[open]>summary{border-bottom:1px solid var(--hair)}.review-stories>div{gap:8px;display:grid}.review-story{min-height:56px;color:var(--ink);align-items:center;gap:10px;padding:10px 12px;text-decoration:none;display:flex}.review-story>span{flex:1;min-width:0}.review-story+.review-story{border-top:1px solid var(--hair)}.review-story b{overflow-wrap:anywhere;font-size:.9rem;font-weight:650;display:block}.review-story small{color:var(--muted);margin-top:2px;font-size:.78rem;display:block}.review-story>svg{color:var(--muted);flex:none}.review-upcoming{padding:2px}.review-section-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px;display:flex}.review-section-head h2{margin:0;font-size:1rem}.review-section-head>svg{color:var(--muted);flex:none}.review-upcoming ul{margin:0;padding:0;list-style:none}.review-upcoming li{justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}.review-upcoming li+li{border-top:1px solid var(--hair)}.review-upcoming li b{min-width:0;font-size:.84rem;font-weight:650}.review-upcoming li strong{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.84rem;font-weight:650}.review-upcoming>.fine{margin:8px 0 0}.review-forecast-body{background:var(--surface);border-radius:18px;padding:14px}.review-forecast-body h2{margin:0 0 4px;font-size:1rem}.review-forecast-body .review-caption{margin-bottom:8px}.review-bars{grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;gap:8px;height:100px;display:grid}.review-bars>div{flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;height:100%;display:flex}.review-bars b{font-variant-numeric:tabular-nums;font-size:.78rem;font-weight:650}.review-bars small{color:var(--muted);font-size:.7rem}.review-bar{background:var(--accent-soft);border-radius:5px 5px 2px 2px;width:100%;min-height:3px;display:block}.review-bars .today .review-bar{background:var(--accent)}.review-forecast-body>.fine{margin:8px 0 0;font-size:.72rem}.review-empty{text-align:center;padding:24px 20px}.review-done-mark{background:var(--good-soft);width:50px;height:50px;color:var(--good);border-radius:14px;place-items:center;margin:0 auto 16px;display:grid}.review-done-mark svg{width:26px;height:26px}.review-done-mark.pending{color:var(--accent);background:var(--accent-soft)}.review-empty h1,.review-empty h2{margin:0 0 8px;font-size:1.4rem;display:block}.review-empty p{color:var(--muted);margin:0 0 20px;font-size:.9rem}.review.session .grades{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.review.session .grade{gap:4px;min-height:64px;font-size:.88rem}.review.session .grade small{font-size:.78rem}.review-actions{z-index:11;background:var(--paper);border-top:1px solid var(--hair);width:100%;max-width:560px;padding:12px 16px;position:fixed;left:50%;transform:translate(-50%)}.review-actions .grades,.review-actions .actions{margin:0}.review-actions .grades+.actions,.review-actions .actions+.actions{margin-top:8px}.review-actions>.btn{width:100%}.review-actions>.fine{margin-bottom:8px}.review-actions-space{flex:none}@media (height<=500px){.review-actions{padding-top:8px;padding-bottom:8px}.review.session .grade{gap:2px;min-height:48px;font-size:.78rem}.review.session .grade small{font-size:.68rem}}@media (width<=360px){.review-overview{padding:18px 16px}.review-total>b{font-size:3rem}.review-upcoming li strong{font-size:.76rem}.review-upcoming li{gap:8px}.review-forecast-body{padding:14px}.review-bars{gap:5px}.review-header .lede{max-width:24ch}}details.note{scroll-margin-top:12px}details.note summary{cursor:pointer;justify-content:space-between;align-items:center;gap:10px;font-weight:650;list-style:none;display:flex}details.note summary:after{content:"+";color:var(--muted);font-size:1.2rem}details.note[open] summary:after{content:"–"}details.note summary::-webkit-details-marker{display:none}details.note.read summary{color:var(--muted)}.md{margin-top:10px;font-size:.95rem}.md p{margin:0 0 10px}.md ul,.md ol{margin:0 0 10px;padding-left:1.2em}.md li+li{margin-top:4px}.md table{border-collapse:collapse;width:100%;margin:6px 0 12px;font-size:.9rem}.md th,.md td{text-align:left;border-bottom:1px solid var(--hair);vertical-align:top;padding:5px 8px}.md th{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.72rem;font-weight:600}.md code{font-family:var(--ff-mono);background:var(--hair-2);border-radius:4px;padding:.05em .3em;font-size:.88em}.md table:has(td){display:block;overflow-x:auto}.md .say{all:unset;cursor:pointer;color:inherit;font:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border-radius:4px}.md .say:after{content:"🔊";vertical-align:.1em;opacity:.75;margin-left:.25em;font-size:.7em}.md .say:active{background:var(--accent-soft)}.md .say:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.sounds{gap:14px;margin:14px 0 0;padding:0;list-style:none;display:grid}.sounds li{gap:8px;display:grid}.sounds li+li{border-top:1px solid var(--hair);padding-top:14px}.sound-head{align-items:center;gap:10px;display:flex}.sound-head .fine{min-width:0;margin:0}.sound-letter{border-radius:var(--button-radius);border:1px solid var(--hair);background:var(--surface);cursor:pointer;flex:none;align-items:center;gap:6px;min-height:44px;padding:5px 11px;display:inline-flex}.sound-letter.flat{cursor:default;background:0 0;border-style:dashed}.sound-letter .letter{font-weight:700}.sound-letter .speaker{font-size:.8rem}.sound-words{flex-wrap:wrap;gap:6px;display:flex}.sound-word{border-radius:var(--button-radius);border:1px solid var(--hair);background:var(--sunken);cursor:pointer;text-align:left;align-items:baseline;gap:6px;max-width:100%;min-height:44px;padding:6px 10px;display:flex}.sound-word .ro{font-weight:600}.sound-word .tr,.sound-word .ru{color:var(--muted);font-size:.78rem}.chunks{gap:10px;margin:0;padding:0;list-style:none;display:grid}.chunks li{grid-template-columns:44px 1fr;align-items:start;gap:10px;display:grid}.chunks button,.story-head button{border-radius:var(--button-radius);border:1px solid var(--hair);background:var(--accent-soft);cursor:pointer;flex:none;width:44px;height:44px}.chunks .ro{font-weight:600}.chunks .ru{color:var(--muted);font-size:.9rem}.story{scroll-margin-top:12px}.story-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.story-head h2{margin:0}.story-player{gap:14px;max-width:340px;margin:24px auto 20px;display:grid}.story-player-controls{justify-content:center;align-items:center;gap:16px;display:flex}.story-player-controls .btn{flex:none}.story-toggle{background:var(--accent);width:72px;height:72px;color:var(--on-accent);place-items:center;display:grid}.story-toggle svg{fill:currentColor;width:30px;height:30px}.story-skip{background:var(--sunken);font-variant-numeric:tabular-nums;min-width:64px;min-height:48px}.story-timeline{color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:10px;font-size:.78rem;display:flex}.story-timeline span{text-align:center;min-width:34px}.story-timeline progress{background:var(--hair);width:0;height:5px;color:var(--accent);border:0;border-radius:5px;flex:1;overflow:hidden}.story-timeline progress::-webkit-progress-bar{background:var(--hair)}.story-timeline progress::-webkit-progress-value{background:var(--accent)}.story-timeline progress::-moz-progress-bar{background:var(--accent)}.story-player-tools{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.story-player-tools .btn{flex:none;min-height:44px;padding:8px 18px;font-size:.85rem}.story-player.compact{gap:10px;margin:16px auto}.story-player.compact .story-toggle{width:48px;height:48px}.story-player.compact .story-toggle svg{width:24px;height:24px}.story-ro{margin:10px 0;font-size:1.05rem;line-height:1.65}.story details summary{cursor:pointer;color:var(--muted);font-size:.9rem}.story-ru{color:var(--muted);margin-top:8px;line-height:1.6}.fine.done{color:var(--good);font-weight:600}.rules-page-head .lede{font-size:.88rem}.rules-theme{border:1px solid var(--hair);border-radius:var(--button-radius);background:var(--sunken);cursor:pointer;flex:none;place-items:center;width:44px;height:44px;display:grid}.rules-page summary{cursor:pointer;align-items:center;gap:10px;min-height:44px;list-style:none;display:flex}.rules-page summary::-webkit-details-marker{display:none}.rules-heading{flex:1;gap:3px;min-width:0;display:grid}.rules-heading b{font-size:.94rem;font-weight:650;line-height:1.4}.rules-heading small{color:var(--muted);font-size:.76rem;line-height:1.45}.rules-chevron{color:var(--muted);flex:none;margin-left:auto;display:flex}.rules-chevron svg{width:16px;height:16px}.rules-page details[open]>summary>.rules-chevron{transform:rotate(180deg)}.rules-week-picker{margin-bottom:0}.rules-week-picker>summary{min-height:48px}.rules-week-picker>summary b{font-size:1rem}.rules-week-options{border-top:1px solid var(--hair);gap:4px;margin-top:14px;padding-top:6px;display:grid}.rules-week-options button{border-radius:var(--button-radius);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;min-height:56px;padding:10px 8px;display:flex}.rules-week-options button[aria-pressed=true]{background:var(--accent-soft)}.rules-week-options .rules-heading b{font-size:.86rem}.rules-week-number{width:26px;color:var(--muted);text-align:center;flex:none;font-size:.85rem;font-weight:700}.rules-week-selected{color:var(--accent);flex:none;display:flex}.rules-week-selected svg{width:16px;height:16px}.rules-week-hint{margin:12px 2px 0}.rules-progress{margin:16px 2px 20px}.rules-progress p{flex-wrap:wrap;align-items:baseline;gap:4px;margin-bottom:8px;font-size:.82rem;display:flex}.rules-progress b{font-variant-numeric:tabular-nums}.rules-progress-done{color:var(--good);margin-left:auto;font-size:.74rem}.rules-section-label{letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:0 2px 9px;font-size:.68rem;font-weight:700;line-height:1.5}.rules-list{padding:0 16px}.rules-note{border-bottom:1px solid var(--hair)}.rules-note:last-child{border-bottom:0}.rules-page .rules-note>summary{justify-content:flex-start;min-height:66px;padding:18px 0}.rules-page .rules-note>summary:after{content:none}.rules-page .rules-note.read>summary{color:var(--ink)}.rules-note-title{flex:1;min-width:0;font-size:.91rem;font-weight:650;line-height:1.4}.rules-note-mark{background:var(--sunken);width:24px;height:24px;color:var(--muted);border-radius:8px;flex:none;place-items:center;font-size:.73rem;font-weight:650;display:grid}.rules-note-mark svg{width:15px;height:15px}.rules-note.read .rules-note-mark{background:var(--good-soft);color:var(--good)}.rules-note-body{padding-bottom:16px}.rules-note-body .md{margin-top:0}.rules-note-body>.btn{margin-top:12px}.rules-note-done{margin:14px 0 0}.rules-extra>summary{min-height:44px}.rules-extra-icon{color:var(--muted);flex:none;display:flex}.rules-extra-body{border-top:1px solid var(--hair);margin-top:16px;padding-top:16px}.rules-translation>summary{min-height:44px}.rules-chunks .chunks li{grid-template-columns:44px 1fr}.rules-chunks .chunks button{width:44px;height:44px;color:var(--accent);place-items:center;display:grid}.plan-page-head .lede{font-size:.88rem}.plan-theme{border:1px solid var(--hair);border-radius:var(--button-radius);background:var(--sunken);width:44px;height:44px;color:var(--ink);cursor:pointer;flex:none;place-items:center;display:grid}.plan-goal{color:var(--muted);align-items:center;gap:7px;margin:12px 0 0;font-size:.78rem;display:flex}.plan-goal svg{flex:none;width:16px;height:16px}.plan-content-missing{margin:8px 0 0}.plan-page summary{cursor:pointer;align-items:center;gap:10px;min-height:44px;list-style:none;display:flex}.plan-page summary::-webkit-details-marker{display:none}.plan-chevron{color:var(--muted);flex:none;margin-left:auto;display:flex}.plan-chevron svg{width:16px;height:16px}.plan-page details[open]>summary>.plan-chevron{transform:rotate(180deg)}.plan-stage{scroll-margin-top:16px}.plan-stage-mark{background:var(--sunken);border-radius:12px;flex:none;place-items:center;width:38px;height:38px;font-size:.85rem;font-weight:750;display:grid}.plan-stage.current .plan-stage-mark{color:var(--accent);background:var(--accent-soft)}.plan-stage-heading{flex:1;gap:3px;min-width:0;display:grid}.plan-stage-title{font-size:.95rem;font-weight:650;line-height:1.35}.plan-caption{color:var(--muted);font-size:.74rem}.plan-stage-state{background:var(--accent-soft);color:var(--accent);border-radius:7px;flex:none;align-self:flex-start;margin-top:3px;padding:3px 7px;font-size:.68rem;font-weight:700}.plan-stage-state.complete{background:var(--good-soft);color:var(--good)}.plan-stage-body{border-top:1px solid var(--hair);margin-top:12px}.plan-week,.plan-past{border-bottom:1px solid var(--hair);scroll-margin-top:16px}.plan-week:last-child,.plan-past:last-child{border-bottom:0}.plan-week>summary,.plan-past>summary{align-items:flex-start;padding:13px 0}.plan-week>summary>.plan-chevron,.plan-past>summary>.plan-chevron{margin-top:3px}.plan-week-marker{width:28px;color:var(--muted);flex:none;padding-top:1px;font-size:.8rem;font-weight:750}.plan-week-marker svg{width:16px;height:16px}.plan-week-marker.complete{color:var(--good)}.plan-week-heading{flex:1;gap:3px;min-width:0;display:grid}.plan-week-heading b{font-size:.88rem;font-weight:650;line-height:1.4}.plan-week-heading small{color:var(--muted);font-size:.72rem;line-height:1.45}.plan-week.current>summary .plan-week-marker,.plan-week.current>summary small{color:var(--accent)}.plan-milestone{color:var(--warn);font-size:.72rem}.plan-week-body{margin:0 0 14px 38px}.plan-week-intro{margin-bottom:12px;font-size:.84rem}.plan-program{gap:12px;margin:0;font-size:.84rem;display:grid}.plan-program dt{margin-bottom:3px;font-size:.75rem;font-weight:700}.plan-program dd{margin:0}.plan-week-parts{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.plan-week-parts>div{align-content:start;gap:4px;display:grid}.plan-week-parts small{min-height:2.5em;color:var(--muted);font-size:.7rem;line-height:1.25}.plan-week-parts b{font-variant-numeric:tabular-nums;font-size:.83rem}.plan-week-program{margin-top:4px}.plan-week-program>summary{color:var(--accent);font-size:.8rem;font-weight:650}.plan-week-program .plan-program{margin:8px 0 14px}.plan-week-foot{color:var(--muted);flex-wrap:wrap;gap:4px 12px;margin-top:12px;font-size:.7rem;display:flex}.plan-past>div{margin-left:12px}.plan-links{gap:10px;display:grid}.plan-page .seg button{min-height:44px}.plan-time .today-head{align-items:center}.plan-time .today-head .seg{gap:4px;margin:-8px 0}.plan-time .today-head .seg button{flex:none;min-width:56px;min-height:36px;padding:4px 10px;font-size:.78rem}.plan-time .study-totals{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:14px}.plan-time .study-bars{height:110px}.plan-time .study-totals b{font-size:1.2rem}.plan-links a{border-radius:var(--button-radius);background:var(--surface);min-height:52px;color:var(--ink);border:1px solid var(--hair);align-items:center;gap:8px;padding:12px;font-size:.8rem;font-weight:650;text-decoration:none;display:flex}.plan-links a>svg{width:18px;height:18px;color:var(--accent);flex:none}.plan-links a>svg:last-child{width:13px;height:13px;color:var(--muted);margin-left:auto}@media (width<=375px){.plan-week-body{margin-left:0}.plan-week-parts{gap:8px}.plan-stage-state{padding:3px 5px;font-size:.67rem}.plan-links a{gap:6px;padding:12px 10px}}.bar{background:var(--hair-2);border-radius:999px;height:10px;position:relative;overflow:visible}.bar .fill{background:var(--accent);border-radius:999px;height:100%;transition:width .3s;display:block}.bar.good .fill{background:var(--good)}.bar.thin{height:6px}.bar .marker{background:var(--ink);opacity:.45;border-radius:1px;width:2px;height:18px;position:absolute;top:-4px;transform:translate(-1px)}.today-head{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.today-head h2{margin:0}.course-total{align-items:baseline;gap:10px;margin:4px 0 6px;display:flex}.course-total .pct{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:2rem;font-weight:800;line-height:1}.course .warn{color:var(--warn);font-weight:600}.course .good{color:var(--good);font-weight:600}.chart{width:100%;height:auto;display:block}.chart .grid{stroke:var(--hair);stroke-width:1px}.chart .tick{fill:var(--muted);font-size:9px;font-family:var(--ff-mono)}.chart .plan-intro{fill:none;stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:4 3;opacity:.7}.chart .plan-learn{fill:none;stroke:var(--good);stroke-width:1.5px;stroke-dasharray:4 3;opacity:.7}.chart .act-intro{fill:none;stroke:var(--accent);stroke-width:2.5px}.chart .act-learn{fill:none;stroke:var(--good);stroke-width:2.5px}.chart .now-line{stroke:var(--ink);stroke-width:1px;opacity:.5}.chart .exam-line{stroke:var(--bad);stroke-width:1px;stroke-dasharray:2 3}.legend{color:var(--muted);flex-wrap:wrap;gap:6px 14px;margin-top:8px;font-size:.74rem;display:flex}.legend .l:before{content:"";border-top:3px solid var(--c);vertical-align:middle;width:14px;height:0;margin-right:6px;display:inline-block}.legend .plan-intro{--c:var(--accent)}.legend .plan-learn{--c:var(--good)}.legend .plan-intro:before,.legend .plan-learn:before{border-top-style:dashed}.legend .act-intro{--c:var(--accent)}.legend .act-learn{--c:var(--good)}.dates{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form label{margin-bottom:14px;display:block}.form label>span{color:var(--muted);margin-bottom:4px;font-size:.85rem;display:block}.form label.row{justify-content:space-between;align-items:center;display:flex}.form label.row>span{margin:0}.form input[type=number],.form select{border:1.5px solid var(--hair);background:var(--sunken);width:100%;min-height:44px;color:var(--ink);border-radius:12px;padding:10px 12px;font-size:1rem}.form input[type=range]{width:100%;accent-color:var(--accent)}.form input[type=checkbox]{width:22px;height:22px;accent-color:var(--accent)}.form .btn{margin-bottom:8px}.settings-fields{border:0;min-width:0;margin:0;padding:0}.settings-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.settings-caption{color:var(--muted);overflow-wrap:anywhere;margin:3px 0 0;font-size:.8rem;line-height:1.45}.settings-caption.good{color:var(--good)}.settings-caption.warn{color:var(--warn)}.settings-icon-button{background:var(--surface);border:1px solid var(--hair);border-radius:var(--button-radius);width:44px;height:44px;color:var(--muted);cursor:pointer;flex:0 0 44px;justify-content:center;align-items:center;padding:0;display:inline-flex}.settings-icon-button:disabled{opacity:.5;cursor:default}.settings-account{background:var(--surface);border:1px solid var(--hair);border-radius:18px;align-items:center;gap:12px;margin-bottom:16px;padding:14px;display:flex}.settings-avatar{width:38px;height:38px;color:var(--accent);background:var(--accent-soft);border-radius:50%;flex:0 0 38px;place-items:center;font-weight:650;display:grid}.settings-account-info{flex:1;min-width:0}.settings-account-info b{overflow-wrap:anywhere;font-size:.9rem;display:block}.settings-section{border:1px solid var(--hair);background:var(--surface);border-radius:18px;margin-bottom:12px}.settings-section>summary{cursor:pointer;border-radius:18px;align-items:center;gap:12px;min-height:68px;padding:14px;list-style:none;display:flex}.settings-section>summary::-webkit-details-marker{display:none}.settings-section[open]>summary{border-bottom:1px solid var(--hair);border-radius:18px 18px 0 0}.settings-section-icon{background:var(--accent-soft);width:32px;height:32px;color:var(--accent);border-radius:10px;flex:0 0 32px;place-items:center;display:grid}.settings-section-icon svg{width:18px;height:18px}.settings-section-heading{flex:1;min-width:0}.settings-section-title{font-size:.9rem;font-weight:650;display:block}.settings-section-heading .settings-caption{margin-top:2px;display:block}.settings-chevron{color:var(--muted);flex:0 0 18px;transition:transform .15s;display:flex}.settings-chevron svg{width:18px;height:18px}.settings-section[open] .settings-chevron{transform:rotate(90deg)}.settings-row{justify-content:space-between;align-items:center;gap:10px;min-height:60px;padding:8px 14px;display:flex}.settings-row+.settings-row,.settings-block+.settings-block,.settings-row+.settings-block{border-top:1px solid var(--hair-2)}.settings-row>label{flex:1;min-width:0;font-size:.9rem;font-weight:550}.settings-stepper{background:0 0;border:0;flex:0 0 134px;grid-template-columns:44px 44px 44px;gap:1px;display:grid}.settings-stepper button{border:1px solid var(--hair);border-radius:var(--button-radius);background:var(--sunken);cursor:pointer;width:44px;height:44px;padding:0;font-size:1.2rem}.settings-stepper button:disabled{opacity:.35;cursor:default}.settings-stepper input{width:44px;min-width:0;height:44px;color:var(--ink);font:inherit;text-align:center;appearance:textfield;background:0 0;border:0;padding:0;font-size:16px;font-weight:600}.settings-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.settings-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.settings-select{border:1px solid var(--hair);min-width:0;max-width:160px;min-height:44px;color:var(--ink);background:var(--sunken);font:inherit;border-radius:11px;padding:8px;font-size:16px}.settings-block{padding:14px}.settings-block h3{margin:0 0 6px;font-size:.9rem;font-weight:650}.settings-line{justify-content:space-between;align-items:center;gap:10px;font-size:.9rem;font-weight:550;display:flex}.settings-line output{font-variant-numeric:tabular-nums;margin:0;font-weight:400}.settings-range{align-items:center;gap:12px;margin-top:8px;display:flex}.settings-range input{width:100%;min-width:0;min-height:44px;accent-color:var(--accent);flex:1;margin:0}.settings-toggle{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-height:44px;display:flex}.settings-switch{appearance:none;background:var(--hair);cursor:pointer;border:0;border-radius:20px;flex:0 0 42px;width:42px;height:25px;margin:0;position:relative}.settings-switch:after{content:"";background:#fff;border-radius:50%;width:19px;height:19px;transition:transform .15s;position:absolute;top:3px;left:3px}.settings-switch:checked{background:var(--accent)}.settings-switch:checked:after{transform:translate(17px)}.settings-switch:disabled{opacity:.5;cursor:default}.settings-segments{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:10px;display:grid}.settings-segments button{border:1px solid var(--hair);border-radius:var(--button-radius);background:var(--sunken);cursor:pointer;min-height:44px;padding:8px 2px;font-size:.85rem;font-weight:600}.settings-segments button[aria-pressed=true]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.settings-help{color:var(--muted);font-size:.8rem}.settings-help>summary{cursor:pointer;align-items:center;gap:6px;min-height:44px;padding:8px 14px;list-style:none;display:flex}.settings-help>summary::-webkit-details-marker{display:none}.settings-help>summary:before{content:"›";font-size:1rem;transition:transform .15s}.settings-help[open]>summary:before{transform:rotate(90deg)}.settings-help>div{padding:0 14px 14px}.settings-help p:last-child{margin-bottom:0}.settings-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.settings-actions.single{grid-template-columns:minmax(0,1fr)}.settings-page .btn{border-radius:var(--button-radius);overflow-wrap:anywhere;width:100%;min-width:0;min-height:44px;margin:0;padding:9px 10px;font-size:.85rem;font-weight:600;line-height:1.35}.settings-page .audio-block{margin:8px 0 0}.settings-page .audio-count{color:var(--muted);font-size:.8rem}.settings-page .audio-count b{color:var(--ink)}.settings-page .audio-count span{margin-top:3px;display:block}.settings-message{color:var(--muted);overflow-wrap:anywhere;margin:8px 4px 0;font-size:.8rem}.settings-message.err{color:var(--bad)}.settings-import{background:var(--accent-soft);border-radius:12px;margin-top:12px;padding:12px;font-size:.85rem}.settings-fields:disabled .settings-toggle{cursor:default}@media (prefers-reduced-motion:reduce){.settings-page *,.settings-page :before,.settings-page :after{transition:none!important}}.login{justify-content:center;align-items:center;min-height:100dvh;padding:20px 16px;display:flex}.login .card{width:100%;max-width:380px;padding:24px 20px}.login h1{margin-bottom:6px}.login .lede{margin-bottom:18px}.login label{margin-bottom:14px;display:block}.login label span{color:var(--muted);margin-bottom:4px;font-size:.85rem;display:block}.login input{border:1.5px solid var(--hair);background:var(--sunken);width:100%;color:var(--ink);border-radius:12px;padding:12px;font-size:1rem}.login .btn{margin:4px 0 12px}.err{color:var(--bad);margin:0 0 12px;font-size:.9rem}.audio-block{gap:8px;margin-bottom:10px;display:grid}.audio-count{margin:0}.update-bar{z-index:20;padding:calc(8px + env(safe-area-inset-top)) 16px 8px;background:var(--accent-soft);color:var(--ink);justify-content:space-between;align-items:center;gap:10px;font-size:.9rem;font-weight:600;display:flex;position:sticky;top:0}.update-bar .btn{flex:none;min-height:38px;padding:6px 14px}.update-status{gap:3px;display:grid}.update-status small{color:var(--muted);font-size:.75rem;font-weight:400;line-height:1.4}.update-button{justify-content:center;align-items:center;gap:7px;display:inline-flex}.update-button:disabled{opacity:1;cursor:wait}.update-spinner{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-dasharray:40 17;flex:none;width:17px;height:17px;animation:1s linear infinite update-spin}@keyframes update-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.update-spinner{animation:none}}.audio-error{bottom:calc(84px + env(safe-area-inset-bottom));background:var(--surface);width:min(92%,520px);box-shadow:var(--shadow), inset 0 0 0 1px var(--bad);z-index:20;border-radius:14px;padding:12px;position:fixed;left:50%;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.pace{gap:8px;margin:4px 0 2px;display:grid}.pace-row{grid-template-columns:1fr auto;align-items:baseline;gap:2px 10px;font-size:.86rem;display:grid}.pace-row .v{font-variant-numeric:tabular-nums;color:var(--muted)}.pace-row .v b{color:var(--ink)}.pace-row .verdict-txt{grid-column:1/-1;font-size:.8rem}.pace-row .verdict-txt.muted{color:var(--muted)}.pace-row .l:before,.legend .l:before{content:"";border-top:3px solid var(--c);vertical-align:middle;width:14px;height:0;margin-right:6px;display:inline-block}.pace-row .act-intro{--c:var(--accent)}.pace-row .act-learn{--c:var(--good)}.chart .dot.act-intro{fill:var(--accent);stroke:none}.chart .dot.act-learn{fill:var(--good);stroke:none}.chart .diff{font-size:10px;font-weight:700;font-family:var(--ff-mono)}.chart .diff.ahead{fill:var(--good)}.chart .diff.behind{fill:var(--warn)}.by-ear{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:28px 0 18px;display:flex}.ear-play{border-radius:var(--button-radius);border:1px solid var(--hair);background:var(--accent-soft);width:96px;height:96px;color:var(--accent);cursor:pointer;font-size:2.4rem}.listen-prompt{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px;display:flex}.listen-prompt p{flex-basis:100%;margin:6px 0 0}.listen-prompt .prompt-ru{margin:6px 0 0}.load-bar{gap:4px;margin:10px 0;display:grid}.load-bar .bar{display:block}.load-bar .fill.over{background:var(--warn,#d9822b)}.load-bar small{color:var(--muted);font-size:.78rem}.load-note small{display:block}.pace-row .verdict-txt.good{color:var(--good)}.tf-list{gap:10px;margin:8px 0;padding:0;list-style:none;display:grid}.tf-list li{background:var(--hair-2);border-radius:12px;padding:10px 12px}.tf-list li.ok{background:var(--good-soft)}.tf-list li.bad{background:var(--bad-soft)}.tf-ro{margin:0 0 8px;font-weight:650}.tf-list li .fine{margin:0}.tf-btns{gap:8px;display:flex}.tf-btns .btn{flex:1}.gap-task .kind-chip{margin-bottom:10px}.gap-ro{margin:10px 0 6px;font-size:1.3rem;font-weight:700;line-height:1.4}.gap-slot{text-align:center;border-bottom:2px solid var(--accent);min-width:3.5em;color:var(--accent);display:inline-block}.gap-slot.ok{color:var(--good);border-color:var(--good)}.gap-slot.bad{color:var(--bad);border-color:var(--bad)}.gap-options{gap:8px;margin:12px 0 4px;display:grid}.gap-options .btn.ok{background:var(--good-soft);color:var(--good)}.gap-options .btn.bad{background:var(--bad-soft);color:var(--bad)}.task-ro{margin:0 0 6px;font-size:1.15rem;font-weight:700}.task-points{gap:4px;margin:10px 0 0;padding-left:1.2em;font-size:.9rem;display:grid}.letter{box-sizing:border-box;width:100%;min-height:180px;font:inherit;border:1.5px solid var(--hair);background:var(--surface);color:var(--ink);resize:vertical;border-radius:12px;padding:12px;font-size:1.05rem;line-height:1.5}.letter:focus{border-color:var(--accent);outline:none}.letter-meta{justify-content:space-between;margin-top:6px;font-size:.85rem;font-weight:650;display:flex}.letter-meta .good{color:var(--good)}.check-row{align-items:flex-start;gap:10px;margin:8px 0;font-size:.9rem;display:flex}.ear-play.recording{background:var(--bad-soft);color:var(--bad)}.speak-card .load-bar{width:100%}.takes{gap:14px;margin:8px 0;padding:0;list-style:none;display:grid}.takes audio{width:100%;margin:6px 0}.prev-letter{white-space:pre-wrap}.quiet-toggle,.theme-toggle,.undo-toggle{border:1px solid var(--hair);border-radius:var(--button-radius);background:var(--sunken);cursor:pointer;opacity:1;touch-action:manipulation;flex:none;width:44px;height:44px;font-size:1.05rem}.quiet-toggle.on{opacity:1;background:var(--warn-soft)}.theme-toggle{opacity:1}.undo-toggle{color:var(--ink);justify-content:center;align-items:center;display:inline-flex}.undo-toggle:disabled{opacity:.45}.theme-toggle:active{background:var(--hair-2)}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.about-bar i{background:var(--phrase-soft);color:var(--phrase-deep)}.about-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.about-list li{border-bottom:1px solid var(--hair-2);align-items:center;gap:10px;padding:10px 0;display:flex}.about-list li:last-child{border-bottom:0}.about-list li>a,.about-list li>div{color:var(--ink);flex:1;gap:2px;text-decoration:none;display:grid}.about-list li.locked b{color:var(--muted)}.about-list li>span{flex:none;font-size:.8rem}.about-list .ok,.about-page .ok{color:var(--phrase-deep)}.about-q{font-size:1.2rem}.about-template{gap:8px;margin:0 0 10px;padding:0;list-style:none;display:grid}.about-template li{gap:1px;display:grid}.about-answer,.about-questions{gap:10px;margin:12px 0 0;padding:0;list-style:none;display:grid}.about-questions{list-style:inside decimal}.about-recall{gap:8px;display:grid}.study-totals{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;display:grid}.study-totals b{font-variant-numeric:tabular-nums;font-size:1.55rem;line-height:1.3;display:block}.study-totals>div:first-child b{color:var(--accent)}.study-bars{align-items:stretch;gap:8px;height:150px;display:flex}.study-bars button{cursor:pointer;background:0 0;border:0;border-radius:5px;flex-direction:column;flex:1;gap:5px;min-width:0;padding:4px 0 0;display:flex}.study-bar-track{border-bottom:1px solid var(--hair);flex:1;justify-content:center;align-items:flex-end;width:100%;display:flex}.study-bar-track i{width:75%;height:var(--height);background:var(--accent);opacity:.5;border-radius:5px 5px 0 0;min-height:3px}.study-bar-track i.empty{background:var(--hair)}.study-bars .selected .study-bar-track i{opacity:1}.study-bars .selected .study-day-label{color:var(--accent);font-weight:700}.study-day-label{color:var(--muted);font-size:.74rem}.study-bars.month{gap:2px}.study-bars.month .study-bar-track i{border-radius:3px 3px 0 0;width:100%}.study-axis{justify-content:space-between;gap:6px;margin-top:8px;font-size:.7rem;display:flex}@media (prefers-reduced-motion:reduce){button{transition:none}}.head-side{align-items:center;gap:4px;display:inline-flex}.info{display:inline-flex;position:relative}.info>button{cursor:pointer;width:36px;height:36px;color:var(--muted);background:0 0;border:0;place-items:center;margin:-8px -8px -8px 0;font:italic 700 .8rem/1 Georgia,serif;display:grid}.info>button:before{content:"";border:1.5px solid;border-radius:50%;width:20px;height:20px;position:absolute}.info>button.on{color:var(--accent)}.info-pop{z-index:20;border:1px solid var(--hair);background:var(--surface);width:min(320px,100vw - 48px);color:var(--ink);text-align:left;letter-spacing:normal;border-radius:12px;padding:12px 14px;font-size:.82rem;font-weight:400;line-height:1.45;position:absolute;top:calc(100% + 6px);right:-8px;box-shadow:0 8px 28px #0000002e}.info-pop p{margin:0}.info-pop p+p{margin-top:8px}:root{--pen-blue:#1f4fb8;--pen-red:#d0312d;--notebook:#fffdf6;--notebook-line:#d9e3f2;--notebook-margin:#f2b8b5}:root[data-theme=dark]{--pen-blue:#8db2ff;--pen-red:#ff7a70;--notebook:#1f2230;--notebook-line:#2e3446;--notebook-margin:#5a3236}.btn.small{min-height:36px;padding:4px 12px;font-size:.9rem}.btn.icon{flex:none;width:auto}.linklike{font:inherit;color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.linklike:disabled{color:var(--faint);cursor:default}.check-links{flex-wrap:wrap;justify-content:space-between;gap:12px;margin:4px 2px 12px;display:flex}.check-links a{color:var(--accent)}.check-head{margin:20px 2px 8px;font-size:1.05rem}.check-title{margin:0 2px 10px}.notebook{white-space:pre-wrap;overflow-wrap:break-word;color:var(--pen-blue);background-color:var(--notebook);background-image:linear-gradient(90deg, transparent 18px, var(--notebook-margin) 18px, var(--notebook-margin) 19.5px, transparent 19.5px), repeating-linear-gradient(transparent 0 calc(2.6rem - 1px), var(--notebook-line) calc(2.6rem - 1px) 2.6rem);background-position:0 8px;border-radius:12px;padding:8px 12px 8px 28px;font-size:1.08rem;line-height:2.6rem}.pen-err{ruby-position:over;ruby-align:center;white-space:nowrap}.pen-err s{-webkit-text-decoration-color:var(--pen-red);text-decoration-color:var(--pen-red);text-decoration-thickness:2px}.pen-fix{color:var(--pen-red);white-space:nowrap;font-size:.78em;font-weight:600;line-height:1}.pen-unsure{-webkit-text-decoration:underline dotted var(--warn);text-decoration:underline dotted var(--warn);text-underline-offset:4px;text-decoration-thickness:2px}.pen-fix sup{margin-left:1px;font-size:.62rem}.check-score{align-items:center;gap:16px;display:flex}.check-total{border:3px solid var(--pen-red);width:84px;height:84px;color:var(--pen-red);border-radius:50%;flex:none;place-items:center;display:grid;transform:rotate(-6deg)}.check-total b{font-size:2rem;line-height:1}.check-total span{margin-top:-18px;font-size:.85rem}.check-level{margin:0 0 8px;font-weight:600}.check-scores{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:4px 12px;margin:0;padding:0;list-style:none;display:grid}.check-scores li{color:var(--muted);justify-content:space-between;font-size:.88rem;display:flex}.check-scores b{color:var(--ink)}.check-points{gap:10px;margin:0;padding:0;list-style:none;display:grid}.check-points li{gap:10px;display:flex}.check-points li>span{flex:none;width:22px;font-weight:700}.check-points li div{gap:2px;display:grid}.check-points .ok>span{color:var(--good)}.check-points .weak>span{color:var(--warn)}.check-points .miss>span{color:var(--bad)}.check-errors{gap:10px;margin:0;padding-left:22px;display:grid}.check-errors p{margin:0}.check-errors s{color:var(--pen-red)}.check-tag{background:var(--sunken);color:var(--muted);vertical-align:2px;border-radius:999px;padding:1px 8px;font-size:.72rem;display:inline-block}.check-phrases{gap:10px;margin:0;padding:0;list-style:none;display:grid}.check-phrases li{gap:2px;display:grid}.check-general{gap:6px;margin:0;padding-left:20px;display:grid}.check-pending{align-items:center;gap:14px;display:flex}.check-pending p{margin:4px 0 0}.check-spinner{border:3px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;flex:none;width:26px;height:26px;animation:1s linear infinite check-spin}@keyframes check-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.check-spinner{animation:none}}.check-list{display:grid}.check-row{border-bottom:1px solid var(--hair-2);color:inherit;align-items:center;gap:12px;padding:10px 0;text-decoration:none;display:flex}.check-row:last-child{border-bottom:0}.check-row-text{flex:1;min-width:0;display:grid}.check-row-text .fine{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.check-row>.fine{flex:none;font-size:.75rem}.check-badge{text-align:center;background:var(--bad-soft);min-width:52px;color:var(--pen-red);border-radius:10px;flex:none;padding:4px 6px;font-size:.85rem;font-weight:700}.check-badge.pending{background:var(--accent-soft);color:var(--accent)}.check-badge.error{background:var(--warn-soft);color:var(--warn)}.exam-parts{gap:4px;margin:0 0 10px;padding-left:1.3em;display:grid}.exam-variants{gap:10px;margin:12px 0 6px;display:grid}.exam-attempt{border:0;border-bottom:1px solid var(--hair-2);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;justify-content:space-between;gap:10px;padding:10px 0;display:flex}.exam-attempt:last-child{border-bottom:0}.exam-timer{font-variant-numeric:tabular-nums;margin-left:auto;font-weight:700}.exam-q{border:0;gap:6px;margin:14px 0 0;padding:0;display:grid}.exam-q legend{margin-bottom:6px;padding:0;font-weight:650}.exam-opt{border-radius:var(--button-radius);border:1px solid var(--hair);background:var(--sunken);cursor:pointer;align-items:center;gap:10px;min-height:44px;padding:6px 12px;display:flex}.exam-opt.on{border-color:var(--accent);background:var(--accent-soft)}.exam-opt input{accent-color:var(--accent)}.exam-options{gap:4px;margin:6px 0 12px;padding-left:1.6em;display:grid}.exam-match{border-top:1px solid var(--hair-2);padding:10px 0}.exam-match p{margin:0 0 8px}.exam-letters{grid-auto-columns:1fr;grid-auto-flow:column;gap:6px;display:grid}.exam-letters .tile{min-width:0;padding:9px 0}.tile.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.exam-order{gap:6px;margin:8px 0;padding-left:1.4em;display:grid}.exam-order .linklike{color:var(--ink)}.exam-fragments{gap:8px;display:grid}.exam-fragments .tile{text-align:left;font-weight:500}.exam-text{white-space:pre-line;background:var(--sunken);border-radius:14px;padding:12px}.exam-clip{width:100%;margin-top:14px}.exam-asks{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin-top:10px;display:grid}.exam-asks details{grid-column:1/-1}.exam-pictures{letter-spacing:.2em;text-align:center;margin:10px 0;font-size:2.6rem}.exam-total{gap:4px;display:grid}.exam-total b{font-size:1.6rem}.exam-total.ok{background:var(--good-soft)}.exam-total.ok b{color:var(--good)}.exam-total.wrong{background:var(--warn-soft)}.exam-review{gap:8px;margin:0;padding:0;list-style:none;display:grid}.exam-review li{gap:2px;display:grid}.exam-review li.ok span{color:var(--good)}.exam-review li.bad span{color:var(--bad)}.exam-review small{color:var(--muted)}.exam-result-task{margin-bottom:14px}.exam-speak{margin-bottom:18px}
