:root{color-scheme:light;--ground: #F3EFE6;--surface: #FBF9F4;--sunken: #EAE4D7;--sunken-2: #E0D8C8;--field-bg: #FFFDF8;--ink: #1E1C19;--ink-2: #4F4A42;--ink-3: #655E52;--rule: #D9D1C1;--field: #877E6E;--shu: #B0361F;--on-shu: #FFFFFF;--ai: #2C4A6E;--on-action: #FBF9F4;--ok: #3F6431;--warn: #8C5E12;--shu-bg: #F2E2DA;--ai-bg: #DFE6EF;--ok-bg: #E4E7DD;--warn-bg: #EEE6D9;--retrait-edge: transparent;--kanji: #74485E;--kanji-bg: #EDE2E3;--nando: #2F6566;--unknown-bg: rgba(149, 117, 205, .18);--unknown-bg-strong: rgba(149, 117, 205, .3);--unknown-bg-paper: rgba(149, 117, 205, .18);--unknown-bg-night: rgba(179, 157, 219, .22);--unknown-bg-night-strong: rgba(179, 157, 219, .34);--reader-paper: #F3EFE6;--halo: 0 0 0 3px rgba(44, 74, 110, .18);--action-ai-hover: #3D5F87;--action-koke: #55652A;--action-koke-hover: #66783A;--scrim: rgba(20, 16, 12, .45);--shadow-float: 0 2px 8px rgba(30, 28, 25, .12);--shadow-overlay: 0 12px 32px rgba(30, 28, 25, .16);--shadow-sheet: 0 -8px 24px rgba(30, 28, 25, .12);--accent-ink: #FFFFFF;--action: var(--action-ink);--action-hover: var(--action-ink-hover);--action-ink: var(--ink);--action-ink-hover: var(--ink-2);--action-ai: var(--ai);--bg0: var(--ground);--bg1: var(--surface);--bg2: var(--sunken);--bg3: var(--sunken-2);--text0: var(--ink);--text1: var(--ink-2);--text2: var(--ink-3);--line1: var(--rule);--line2: var(--rule);--blue: var(--ai);--blue-bg: var(--ai-bg);--green: var(--ok);--green-bg: var(--ok-bg);--amber: var(--warn);--amber-bg: var(--warn-bg);--red: var(--shu);--red-bg: var(--shu-bg);--hanko: var(--shu);--hanko-ink: var(--on-shu);--purple: var(--kanji);--teal: var(--nando);--rose: var(--kanji);--hl-1: rgba(255, 235, 59, .45);--hl-2: rgba(76, 175, 80, .35);--hl-3: rgba(33, 150, 243, .3);--hl-4: rgba(255, 152, 0, .35);--hl-5: rgba(233, 30, 99, .3);--r-1: 2px;--r-2: 4px;--r-3: 8px;--r-pill: 999px;--text-scale: 1;--text-12: max(12px, calc(12px * var(--text-scale)));--text-14: calc(14px * var(--text-scale));--text-16: calc(16px * var(--text-scale));--text-20: calc(20px * var(--text-scale));--text-26: calc(26px * var(--text-scale));--text-36: calc(36px * var(--text-scale));--text-56: calc(56px * var(--text-scale));--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-7: 28px;--sp-8: 32px;--sp-9: 36px;--sp-10: 40px;--sp-11: 44px;--sp-12: 48px;--control-h: 44px;--font-ui: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic UI", "Yu Gothic", "Meiryo", "Noto Sans JP", system-ui, sans-serif;--font-mincho: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", "Noto Serif JP", serif;--font-reader: "Hiragino Mincho ProN", "Yu Mincho", "Noto Serif JP", "Noto Serif CJK JP", serif;--font: var(--font-ui);--font-kyokasho: "Klee One", var(--font-ui);--font-jp-study: var(--font-ui);--font-jp-display: var(--font-mincho);--font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, "Noto Sans Mono", monospace;--chat-text: var(--text-20);--film-speaker-0: var(--ai);--film-speaker-1: var(--warn);--film-speaker-2: var(--ok);--film-speaker-3: var(--kanji);--film-speaker-4: var(--nando);--chart-1: #1a5fa8;--chart-2: #92520a;--chart-3: #0d8a6f;--chart-4: #7c3aed;--chart-5: #b8336a}:root[data-theme=dark]{color-scheme:dark;--ground: #1A1815;--surface: #23211D;--sunken: #14120F;--sunken-2: #2E2B26;--field-bg: #2A2823;--ink: #EDE6D8;--ink-2: #BDB4A4;--ink-3: #A39A8A;--rule: #3A362F;--retrait-edge: var(--rule);--field: #837A6B;--shu: #E2765F;--on-shu: #1A1815;--ai: #9DB8DC;--on-action: #1A1815;--ok: #9CC08A;--warn: #D9A955;--shu-bg: #362A24;--ai-bg: #243149;--ok-bg: #2F3128;--warn-bg: #352F23;--kanji: #C9A3B9;--kanji-bg: #3A2E33;--nando: #7FBDBA;--unknown-bg: rgba(179, 157, 219, .22);--unknown-bg-strong: rgba(179, 157, 219, .34);--halo: 0 0 0 3px rgba(157, 184, 220, .28);--action-ai-hover: #86A3C9;--action-koke: #AEBB72;--action-koke-hover: #98A65F;--scrim: rgba(0, 0, 0, .6);--shadow-float: 0 2px 8px rgba(0, 0, 0, .45);--shadow-overlay: 0 12px 32px rgba(0, 0, 0, .5);--shadow-sheet: 0 -8px 24px rgba(0, 0, 0, .45);--accent-ink: #1A1815;--chart-1: #3f8ad0;--chart-2: #c97a1e;--chart-3: #1f9e84;--chart-4: #9270e0;--chart-5: #d65283}:root[data-text-size=s]{--text-scale: .9}:root[data-text-size=l]{--text-scale: 1.12}:root[data-text-size=xl]{--text-scale: 1.25}:root[data-jp-font=mincho]{--font-jp-study: "Sensei Latin", var(--font-mincho)}:root[data-jp-font=kyokasho]{--font-jp-study: "Sensei Latin", var(--font-kyokasho);--font-jp-display: "Sensei Latin", var(--font-kyokasho)}:root[data-text-size=s][data-jp-font=mincho],:root[data-text-size=s][data-jp-font=kyokasho]{--text-20: 20px}:root[data-density=compact]{--sp-1: 3px;--sp-2: 6px;--sp-3: 9px;--sp-4: 12px;--sp-5: 15px;--sp-6: 18px;--sp-7: 21px;--sp-8: 24px;--sp-9: 27px;--sp-10: 30px;--sp-11: 33px;--sp-12: 36px}@media(pointer:fine){:root[data-density=compact]{--control-h: 40px}}:root[data-action=ai]{--action: var(--action-ai);--action-hover: var(--action-ai-hover)}:root[data-action=koke]{--action: var(--action-koke);--action-hover: var(--action-koke-hover)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;overflow:hidden;background:var(--bg0);color:var(--text0);font-family:var(--font);font-size:var(--text-16);line-height:1.55}button,textarea{font:inherit}button{border:0}.composer textarea,.free-text-area,.det-conj-input,.graded-input,.srs-theme-input,.vocab-search-input,.inline-dict-input,.ask-composer textarea,.exercise-ask-composer textarea,.srs-edit-form input,.srs-edit-form textarea,.login-dialog input,.general-review-range input,.bk-assist-question-row input,.book-quiz-answer-row input,.admin-input,.srs-ask-form input,.srs-theme-report textarea,.tutor-deepen-compare-field input,.pdf-reader-page-number input{border:1.5px solid var(--field);border-radius:var(--r-2);background:var(--field-bg);color:var(--ink);font-family:inherit}.composer textarea,.free-text-area,.det-conj-input,.graded-input,.srs-theme-input{font-size:var(--text-20)}.vocab-search-input,.inline-dict-input,.ask-composer textarea,.exercise-ask-composer textarea,.srs-edit-form input,.srs-edit-form textarea,.login-dialog input,.general-review-range input,.bk-assist-question-row input,.book-quiz-answer-row input,.admin-input,.srs-ask-form input,.srs-theme-report textarea,.tutor-deepen-compare-field input,.pdf-reader-page-number input{font-size:max(16px,var(--text-16))}.composer textarea::placeholder,.free-text-area::placeholder,.det-conj-input::placeholder,.graded-input::placeholder,.srs-theme-input::placeholder,.vocab-search-input::placeholder,.inline-dict-input::placeholder,.ask-composer textarea::placeholder,.exercise-ask-composer textarea::placeholder,.srs-edit-form input::placeholder,.srs-edit-form textarea::placeholder,.login-dialog input::placeholder,.general-review-range input::placeholder,.bk-assist-question-row input::placeholder,.book-quiz-answer-row input::placeholder,.admin-input::placeholder,.srs-ask-form input::placeholder,.srs-theme-report textarea::placeholder,.tutor-deepen-compare-field input::placeholder,.pdf-reader-page-number input::placeholder{color:var(--ink-3);opacity:1}.composer textarea:focus-visible,.free-text-area:focus-visible,.det-conj-input:focus-visible,.graded-input:focus-visible,.srs-theme-input:focus-visible,.vocab-search-input:focus-visible,.inline-dict-input:focus-visible,.ask-composer textarea:focus-visible,.exercise-ask-composer textarea:focus-visible,.srs-edit-form input:focus-visible,.srs-edit-form textarea:focus-visible,.login-dialog input:focus-visible,.general-review-range input:focus-visible,.bk-assist-question-row input:focus-visible,.book-quiz-answer-row input:focus-visible,.admin-input:focus-visible,.srs-ask-form input:focus-visible,.srs-theme-report textarea:focus-visible,.tutor-deepen-compare-field input:focus-visible,.pdf-reader-page-number input:focus-visible{outline:none;border-color:var(--ai);box-shadow:var(--halo)}.app-shell{display:flex;flex-direction:column;height:100%;min-width:320px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);min-height:56px;padding:0 var(--sp-4);border-bottom:1px solid var(--line1);background:var(--bg1)}.brand,.top-actions{display:flex;align-items:center;gap:var(--sp-3);min-width:0}.brand h1{margin:0;font-family:var(--font-mincho);font-size:max(20px,var(--text-20));font-weight:700}.brand-level{margin:0;padding-left:var(--sp-4);border-left:1px solid var(--rule);color:var(--ink-2);font-size:var(--text-14);white-space:nowrap}.mark{position:relative;display:grid;width:32px;height:32px;place-items:center;border:0;border-radius:var(--r-1) var(--r-2) var(--r-1) var(--r-2);background:var(--shu);color:var(--on-shu);font-family:var(--font-mincho);font-weight:700}.mark:after{content:"";position:absolute;inset:3px;border:1px solid currentColor;border-radius:var(--r-1);opacity:.5;pointer-events:none}.top-actions{align-self:stretch;justify-content:flex-end;flex-wrap:wrap}.badge,.exercise-badge,.verdict-badge,.exercise-answered-badge,.series-episode-badge,.book-status-badge,.book-coverage-badge,.grammar-library-row-badge,.error-type-badge,.verb-type-badge,.admin-role-badge,.lesson-bonus-chip,.dictionary-tag,.bk-assist-word-tag,.vocab-detail-jisho-tag,.ime-kanji-candidate-tag,.kanji-count-badge,.drill-concept-chip,.placement-section-tag,.kanji-family-chip{display:inline-flex;align-items:center;gap:4px;min-height:24px;padding:0 10px;border:1px solid var(--rule);border-radius:var(--r-pill);background:var(--surface);color:var(--ink-2);font-size:var(--text-12);font-weight:500;white-space:nowrap}.book-catalog-badge-imported{border-color:transparent;background:var(--ok-bg);color:var(--ok)}.badge.info,.exercise-badge,.series-episode-badge,.verb-type-badge,.ime-kanji-candidate-tag,.admin-role-badge.admin,.drill-concept-chip.due,.book-status-processing,.book-catalog-badge-reading,.gcourse-badge-resume,.podcast-badge-resume,.error-type-conjugation,.book-shelf-difficulty--3{border-color:transparent;background:var(--ai-bg);color:var(--ai)}.badge.success,.lesson-bonus-chip.done,.dictionary-tag.common,.book-status-success,.book-coverage-high,.book-catalog-badge-read,.gcourse-badge-done,.podcast-badge-listened,.error-type-vocabulary,.book-shelf-difficulty--1,.book-shelf-difficulty--2{border-color:transparent;background:var(--ok-bg);color:var(--ok)}.badge.warn,.verdict-badge-missing,.grammar-library-row-badge-review,.dictionary-tag.proper-noun,.book-status-error,.book-coverage-mid,.book-catalog-badge-recommended,.podcast-badge-kind-grammaire,.error-type-particle,.book-shelf-difficulty--4{border-color:transparent;background:var(--warn-bg);color:var(--warn)}.badge.danger,.verdict-badge-wrong,.drill-concept-chip.weak,.book-coverage-low,.error-type-word_order,.book-shelf-difficulty--5{border-color:transparent;background:var(--shu-bg);color:var(--shu)}.badge.level,.dictionary-tag.jlpt{border-color:var(--ink-2);color:var(--ink);font-weight:700}.badge.kanji,.kanji-count-badge,.dictionary-tag.kana,.drill-concept-chip.weak.due,.book-status-badge-tadoku,.book-status-badge-reread,.gcourse-badge-level,.podcast-badge-kind-culture,.error-type-reading,.error-type-meaning{border-color:transparent;background:var(--kanji-bg);color:var(--kanji)}.badge.right,.verdict-badge-correct{color:var(--ink)}.dictionary-tag.in-deck,.podcast-badge-kind-histoire{border-color:transparent;background:color-mix(in srgb,var(--nando) 12%,var(--surface));color:var(--nando)}.book-status-error,.drill-concept-chip{max-width:100%;padding-block:2px;white-space:normal}.badge.badge-model{background:transparent;color:var(--text2);border:1px solid var(--line2);border-radius:var(--r-2);font-size:var(--text-12);font-weight:700;letter-spacing:.02em}.icon-button{display:grid;width:40px;height:40px;place-items:center;cursor:pointer;border:0;border-radius:var(--r-2);background:transparent;color:var(--ink-2)}@media(pointer:coarse){.icon-button{width:44px;height:44px}}.tts-rate-btn{width:auto;padding:0 8px;font-size:var(--text-12);font-weight:700;letter-spacing:.02em;color:var(--text2)}.tts-rate-btn:hover{color:var(--text0)}.icon-button:hover,.button:hover{background:var(--sunken)}.button:focus-visible,.icon-button:focus-visible{outline:2px solid var(--ai);outline-offset:2px}.mobile-only{display:none}.options-menu-wrap{position:relative}.options-backdrop{position:fixed;inset:0;z-index:49}.options-dropdown{position:absolute;top:calc(100% + 6px);right:0;z-index:50;min-width:180px;padding:6px 0;border:1px solid var(--line2);border-radius:var(--r-3);background:var(--bg1);box-shadow:var(--shadow-overlay)}.options-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 14px;border:none;background:none;color:var(--text0);font-size:var(--text-14);cursor:pointer;white-space:nowrap}.options-item:hover{background:var(--bg2)}.options-item.danger{color:var(--red)}.options-sep{height:1px;margin:4px 10px;background:var(--line1)}.options-badge{margin-left:auto;font-size:var(--text-12);font-weight:700;color:var(--text2)}.topbar-nav{display:flex;align-self:stretch;gap:var(--sp-1);margin-left:auto}.topbar-tab{display:inline-flex;align-items:center;gap:var(--sp-2);min-height:var(--control-h);padding:0 var(--sp-4);border:0;background:none;color:var(--ink-2);font-size:var(--text-16);font-weight:500;white-space:nowrap;cursor:pointer;transition:color .15s,background .15s,box-shadow .15s}.topbar-tab:hover{background:var(--sunken)}.topbar-tab[aria-current=page]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--ink)}.topbar-tab:focus-visible{outline:2px solid var(--ai);outline-offset:-2px}.topbar-tab:disabled{color:var(--ink-3);cursor:default}.topbar-tab:disabled:hover{background:none}.topbar-tab-count,.bottom-tab-count{background:var(--ink);color:var(--on-action)}.topbar-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:20px;padding:0 var(--sp-2);border-radius:var(--r-pill);font-size:var(--text-12);font-weight:700;font-variant-numeric:tabular-nums;line-height:1}@media(max-width:960px){.brand-level{display:none}.topbar-tab{padding-inline:var(--sp-3)}}@media(max-width:820px){.brand h1{display:none}}@media(max-width:1075px){:root[data-text-size=l] .brand-level{display:none}}@media(max-width:920px){:root[data-text-size=l] .brand h1{display:none}}@media(max-width:1200px){:root[data-text-size=xl] .brand-level{display:none}}@media(max-width:1025px){:root[data-text-size=xl] .brand h1{display:none}}.topbar-tool-btn{height:36px;padding:0 var(--sp-3);background:var(--bg2);border:1px solid var(--line1);border-radius:var(--r-2);color:var(--text1);font-size:var(--text-12);font-weight:500;cursor:pointer;font-family:inherit;transition:background .15s,color .15s,border-color .15s;display:flex;align-items:center;gap:var(--sp-1);white-space:nowrap}.topbar-tool-btn svg{width:15px;height:15px;flex-shrink:0}.topbar-tool-btn:hover{background:var(--bg3);color:var(--text0);border-color:var(--line2)}.top-actions .icon-button{width:36px;height:36px;border-radius:var(--r-2)}.top-actions .icon-button svg{width:15px;height:15px}.top-actions .voice-menu-wrap,.top-actions .settings-menu-wrap{position:relative;display:flex;align-self:stretch}.top-actions .settings-menu-wrap{align-items:center}.more-menu-dropdown{right:0;min-width:270px}.voice-choice{align-items:flex-start;gap:9px;padding:10px 12px}.voice-choice span{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.voice-choice strong{color:var(--text0);font-size:var(--text-12)}.voice-choice small{color:var(--text2);font-size:var(--text-12);white-space:nowrap}.settings-btn{color:var(--text2)}.settings-btn:hover{color:var(--text0)}.settings-dropdown{min-width:220px}.settings-status-row{display:flex;align-items:center;gap:6px}.settings-label{color:var(--text2);font-size:var(--text-12)}.tool-btn{padding:5px 10px;background:var(--bg2);border:1px solid var(--line1);border-radius:var(--r-2);color:var(--text2);font-size:var(--text-12);font-family:inherit;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s;text-align:center}.tool-btn:hover{background:var(--bg3);color:var(--text0)}.progress-strip{flex-shrink:0;padding:6px 14px 8px;border-bottom:1px solid var(--line1);background:var(--bg1)}.progress-track{height:4px;overflow:hidden;border-radius:var(--r-2);background:var(--bg3)}.progress-fill{height:100%;border-radius:inherit;background:var(--blue);transition:width .24s ease}.progress-fill-correct{position:absolute;left:0;height:100%;border-radius:inherit;background:var(--green);transition:width .3s ease}.progress-fill-incorrect{position:absolute;height:100%;border-radius:0 var(--r-2) var(--r-2) 0;background:var(--red);transition:width .3s ease,left .3s ease}.progress-track{position:relative}.progress-labels{display:flex;justify-content:space-between;gap:12px;margin-top:4px;color:var(--text2);font-size:var(--text-12)}.lesson-progress-label{font-weight:500;color:var(--text1);white-space:nowrap}.lesson-progress-label+.lesson-progress-label{min-width:0;white-space:normal}.lesson-bonus-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.lesson-bonus-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.main-layout{display:flex;flex:1;min-height:0}.lesson-tools-title{margin:0;padding-bottom:var(--sp-2);border-bottom:1px solid var(--ink);color:var(--ink-2);font-size:var(--text-14);font-weight:500}.lesson-tools-list{margin:0;padding:0;list-style:none}.lesson-tool{display:flex;align-items:center;gap:var(--sp-3);width:100%;min-height:var(--control-h);padding:0 var(--sp-1);border:0;border-bottom:1px solid var(--rule);background:none;color:var(--ink);font-size:var(--text-16);text-align:left;cursor:pointer}.lesson-tools-list li:last-child .lesson-tool{border-bottom:0}.lesson-tool:hover{background:var(--sunken)}.lesson-tool:focus-visible{outline:2px solid var(--ai);outline-offset:-2px}.lesson-tool svg{flex-shrink:0;color:var(--ink-2)}.vocab-panel .lesson-tools{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--rule)}.sidebar-tool-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px 4px;font-size:var(--text-12);white-space:normal;text-align:center;line-height:1.2;min-height:50px;width:100%}.sidebar-tool-btn svg{flex-shrink:0}.chat-panel{display:flex;flex:1;min-width:0;flex-direction:column;border-right:1px solid var(--line1)}.messages{display:flex;flex:1;min-height:0;flex-direction:column;gap:10px;overflow-y:auto;padding:16px clamp(12px,3vw,28px);position:relative}.selection-buttons{position:fixed;z-index:10000;display:flex;gap:8px;transform:translate(-50%);pointer-events:auto}.selection-speak-btn,.selection-copy-btn,.selection-dict-btn,.selection-translate-btn,.selection-ask-btn,.selection-anki-btn{display:grid;place-items:center;width:44px;height:44px;border:none;border-radius:var(--r-2);background:var(--bg0);color:var(--text1);box-shadow:var(--shadow-float);cursor:pointer;transition:opacity .15s}.selection-speak-btn svg,.selection-copy-btn svg,.selection-dict-btn svg,.selection-translate-btn svg,.selection-ask-btn svg,.selection-anki-btn svg{width:21px;height:21px}.selection-speak-btn:hover{background:var(--amber);color:var(--accent-ink)}.selection-dict-btn:hover{background:var(--blue);color:var(--accent-ink)}.selection-translate-btn:hover{background:var(--green);color:var(--accent-ink)}.selection-copy-btn:hover,.selection-ask-btn:hover,.selection-anki-btn:hover{background:var(--purple);color:var(--accent-ink)}.message{display:flex;width:100%;max-width:860px;margin-inline:auto;gap:8px}.message.user{align-self:flex-end;flex-direction:row-reverse}.avatar{display:grid;width:28px;height:28px;flex-shrink:0;place-items:center;margin-top:1px;border:1px solid var(--line1);border-radius:var(--r-pill);background:var(--bg2);color:var(--text1);font-size:var(--text-12);font-weight:700}.bubble-wrap{display:flex;flex-direction:column;gap:4px;min-width:0}.message.assistant .bubble-wrap{max-width:min(760px,calc(100vw - 64px))}.exercise-badge{align-self:flex-start}.listening-card{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg2);border:1px solid var(--line1);border-radius:var(--r-2);max-width:320px}.listening-card-icon{flex-shrink:0;color:var(--blue)}.listening-card-body{display:flex;flex-direction:column;gap:6px;min-width:0}.listening-card-title{font-size:var(--text-12);font-weight:700;color:var(--text0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.listening-card-btn{align-self:flex-start;font-size:var(--text-12);padding:4px 10px}.bubble{padding:9px 12px;border:1px solid var(--line1);border-radius:var(--r-2);background:var(--bg1);color:var(--text0);font-size:var(--chat-text);line-height:1.9;word-break:break-word}.messages ruby{ruby-align:center}.messages rt{font-size:max(.55em,10px);color:var(--text2);font-weight:400}.bubble p{margin:0 0 8px}.bubble p:last-child{margin-bottom:0}.bubble ul,.bubble ol{margin:2px 0 8px;padding-left:22px}.bubble li{margin-bottom:3px}.bubble hr{border:none;border-top:1px solid var(--line1);margin:10px 0}.bubble h1,.bubble h2,.bubble h3{margin:6px 0 4px;font-size:1em;font-weight:700}.speak-inline-btn{display:inline-flex;align-items:flex-start;gap:5px;margin:4px 0;padding:6px 10px;border:1px solid color-mix(in srgb,var(--blue),transparent 60%);border-radius:var(--r-2);background:var(--blue-bg);color:var(--text0);cursor:pointer;font:inherit;font-size:.9em;line-height:1.7;white-space:normal;text-align:left;vertical-align:top}.speak-inline-btn .speak-inline-icon{flex:none;width:1em;height:1em;margin-top:.35em}.speak-inline-btn:hover{background:color-mix(in srgb,var(--blue-bg),var(--bg3) 30%)}.qcm-options{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.qcm-btn{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;min-height:40px;border:1px solid var(--line2);border-radius:var(--r-2);background:var(--bg1);color:var(--text0);cursor:pointer;font:inherit;font-size:var(--text-20);transition:background .12s,border-color .12s,color .12s}.qcm-btn:hover:not(:disabled){background:var(--blue-bg);border-color:var(--blue);color:var(--blue)}.qcm-btn:disabled{opacity:.45;cursor:not-allowed}.qcm-letter{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0;border-radius:50%;background:var(--bg3);font-size:var(--text-12);font-weight:700}.message.user .bubble{background:var(--bg2)}.typing{display:inline-flex;align-items:center;gap:7px;color:var(--text1)}.typing svg{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.composer{display:flex;flex-shrink:0;gap:7px;padding:9px 10px;border-top:1px solid var(--line1);background:var(--bg1)}.composer textarea{flex:1;width:100%;min-width:0;resize:none;height:max(52px,calc(1.55em + 21px));height:max(52px,calc(1lh + 21px));padding:9px 12px}@media(min-width:721px){.classic-chat .composer{container-type:inline-size}}@container (max-width: 700px){.classic-chat .composer .btn-label{display:none}.classic-chat .composer .ime-switch-btn{min-width:32px;min-height:42px}.classic-chat .composer .button{padding-inline:0}}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:var(--control-h);min-width:var(--control-h);padding:0 var(--sp-5);cursor:pointer;border:1px solid var(--ink);border-radius:var(--r-2);background:var(--surface);color:var(--ink);font-size:var(--text-16);font-weight:500;white-space:nowrap}.button.primary{border-color:var(--action);background:var(--action);color:var(--on-action)}.button.primary:hover:not(:disabled){border-color:var(--action-hover);background:var(--action-hover)}.button.soft{border-color:var(--ink);background:var(--surface);color:var(--ink)}.button.soft:hover:not(:disabled){background:var(--sunken)}.chat-retry-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;margin-top:4px}.button.danger{border-color:var(--shu);background:var(--surface);color:var(--shu)}.button.danger:hover:not(:disabled){background:var(--shu-bg)}.button.ghost{border-color:transparent;background:transparent;color:var(--ink-2);padding:0 var(--sp-3)}.button.ghost:hover:not(:disabled){background:transparent;color:var(--ink);text-decoration:underline;text-underline-offset:4px}.button.ghost:disabled{border-color:transparent}.button:disabled,.button.primary:disabled,.button.danger:disabled{cursor:not-allowed;opacity:1;border-color:var(--field);background:transparent;color:var(--ink-3)}.maru{flex:none;color:var(--shu);overflow:visible}.maru path{vector-effect:non-scaling-stroke}.maru-inline{width:1em;height:1em;vertical-align:-.15em}.badge .maru,.verdict-badge .maru{width:16px;height:16px}.batsu{color:var(--shu);font-weight:700}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.pen-strike{text-decoration:none;background-image:linear-gradient(var(--shu),var(--shu));background-repeat:no-repeat;background-size:100% 2px;background-position:0 68%;-webkit-box-decoration-break:clone;box-decoration-break:clone}.pen-fix{text-decoration:none;background-image:linear-gradient(var(--shu),var(--shu));background-repeat:no-repeat;background-size:100% 2px;background-position:0 100%;padding-bottom:2px;-webkit-box-decoration-break:clone;box-decoration-break:clone}.pen-insert{display:inline-block;vertical-align:-6px;color:var(--shu)}.vocab-panel{position:relative;display:flex;width:clamp(320px,20vw,380px);flex-shrink:0;flex-direction:column;background:var(--bg1);order:-1}@media(min-width:721px)and (max-width:999px){.vocab-panel{width:clamp(240px,30vw,320px)}}@media(pointer:fine)and (min-width:1000px){.main-layout{--vocab-panel-w: clamp(240px, var(--vocab-w, clamp(320px, 20vw, 380px)), 420px)}.vocab-panel{width:var(--vocab-panel-w)}}.resize-handle{position:absolute;top:0;bottom:0;z-index:11;width:9px;cursor:col-resize;touch-action:none;user-select:none;-webkit-user-select:none}.resize-handle[data-edge=left]{left:-5px}.resize-handle[data-edge=right]{right:-5px}.resize-handle:after{content:"";position:absolute;top:0;bottom:0;left:4px;width:1px;background:transparent}.resize-handle:hover:after,.resize-handle:focus-visible:after,.resize-handle.is-dragging:after{width:2px;background:var(--ink-2)}.resize-handle:focus-visible{outline:2px solid var(--ai);outline-offset:-2px}:root.is-resizing,:root.is-resizing *{cursor:col-resize;user-select:none;-webkit-user-select:none}.chat-panel{border-right:0;border-left:1px solid var(--line1)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line1);color:var(--text1)}.panel-head span{display:block;color:var(--ink-2);font-size:var(--text-14);font-weight:500}.panel-head strong{display:block;margin-top:1px;color:var(--text0);font-size:var(--text-16)}.panel-tabs{display:flex;border-bottom:1px solid var(--line1);flex-shrink:0}.panel-tab{flex:1;padding:8px 0 10px;border:none;background:none;color:var(--ink-2);font-size:var(--text-14);font-weight:500;cursor:pointer;transition:color .15s,background .15s,box-shadow .15s}.panel-tab:hover{background:var(--sunken)}.panel-tab.active{color:var(--ink);box-shadow:inset 0 -2px 0 var(--ink)}.lesson-box{flex-shrink:0;padding:9px 12px;border-bottom:1px solid var(--line1);color:var(--text1)}.lesson-box span,.section-label{display:block;color:var(--ink-2);font-size:var(--text-14);font-weight:500}.lesson-box ul{margin:5px 0 9px 16px;padding:0;font-size:var(--text-14);line-height:1.45}.target-vocab{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.target-vocab span{padding:2px 7px;border:1px solid var(--line1);border-radius:var(--r-pill);background:var(--bg0);color:var(--text0);font-size:var(--text-14);font-weight:400}.vocab-list{display:flex;flex:1;min-height:0;flex-direction:column;gap:8px;overflow-y:auto;padding:8px}.section-label{padding:3px 3px 1px;flex-shrink:0}.empty{padding:22px 10px;color:var(--text2);font-size:var(--text-12);line-height:1.7;text-align:center}.vocab-card{padding:12px 14px;border:1px solid var(--line1);border-radius:var(--r-2);background:var(--bg0)}.vocab-card.pending_anki{border-color:color-mix(in srgb,var(--blue),transparent 55%)}.vocab-card strong{display:block;font-size:var(--text-20)}.vocab-card em{display:block;margin-top:2px;color:var(--text2);font-size:var(--text-14)}.vocab-card span{display:block;margin-top:4px;color:var(--text1);font-size:var(--text-12)}.memory-box{flex-shrink:0;padding:9px 12px;border-top:1px solid var(--line1);color:var(--text1)}.collapsible-head{display:flex;align-items:center;justify-content:space-between;cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--ink-2);font-size:var(--text-14);padding:2px 0 4px;font-weight:500}.collapsible-head:hover{color:var(--text1)}.collapsible-head svg{flex-shrink:0}.memory-box span{display:block;margin-bottom:4px;color:var(--ink-2);font-size:var(--text-14);font-weight:500}.memory-box p,.memory-box ul{margin:0;padding:0;overflow-y:auto;font-size:var(--text-14);line-height:1.55;white-space:pre-wrap}.memory-box p{max-height:88px;margin-bottom:8px}.memory-box ul{max-height:92px;margin:0 0 8px 16px}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:18px;background:var(--scrim)}.confirm-dialog{display:grid;grid-template-columns:34px 1fr;gap:12px;width:min(440px,100%);padding:16px;border:1px solid var(--line2);border-radius:var(--r-3);background:var(--bg1);box-shadow:var(--shadow-overlay)}.confirm-icon{display:grid;width:34px;height:34px;place-items:center;border-radius:var(--r-2);background:var(--amber-bg);color:var(--amber)}.confirm-dialog h2{margin:0;font-size:var(--text-16)}.confirm-dialog p{margin:6px 0 14px;color:var(--text1);font-size:var(--text-12);line-height:1.6}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}.login-dialog{display:flex;width:min(360px,100%);flex-direction:column;align-items:stretch;gap:10px;padding:18px;border:1px solid var(--line2);border-radius:var(--r-3);background:var(--bg1);box-shadow:var(--shadow-overlay)}.login-dialog .mark{align-self:center}.login-dialog h2{margin:0;text-align:center;font-size:var(--text-16)}.login-dialog p{margin:0 0 4px;color:var(--text1);font-size:var(--text-12);line-height:1.55;text-align:center}.login-dialog input{padding:0 10px;height:44px}.login-error{color:var(--red);font-size:var(--text-12);text-align:center}.toast-container{position:fixed;top:12px;right:12px;z-index:100;display:flex;flex-direction:column;gap:8px;max-width:min(340px,calc(100vw - 24px));pointer-events:none}.toast{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:var(--r-3);border:1px solid var(--line2);background:var(--bg1);box-shadow:var(--shadow-float);font-size:var(--text-12);pointer-events:all;animation:toast-in .2s ease}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.toast span{flex:1}.toast-close{display:grid;place-items:center;width:20px;height:20px;flex-shrink:0;cursor:pointer;border:0;border-radius:var(--r-2);background:transparent;color:var(--text2)}.toast-info{color:var(--text0)}.toast-success{border-color:color-mix(in srgb,var(--green),transparent 50%);color:var(--green)}.toast-warn{border-color:color-mix(in srgb,var(--amber),transparent 50%);color:var(--amber)}.toast-error{border-color:color-mix(in srgb,var(--red),transparent 50%);color:var(--red)}.offline-banner{display:flex;align-items:center;justify-content:center;gap:6px;padding:5px 14px;background:var(--amber-bg);color:var(--amber);font-size:var(--text-12);font-weight:500}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-dot.ok{background:var(--green)}.status-dot.partial{background:var(--amber)}.status-dot.off{background:var(--red)}.sheet-handle{display:none}.kana-active{border-color:var(--blue)!important;background:var(--blue-bg)!important;color:var(--blue)!important;font-weight:500}.ime-switch{display:inline-flex;flex:0 0 auto;align-self:center;border:1px solid var(--line2);border-radius:var(--r-2);background:var(--bg1);overflow:hidden}.ime-switch-btn{min-width:34px;min-height:36px;padding:0 4px;border:0;border-left:1px solid var(--line2);background:transparent;color:var(--text2);font-family:var(--font);font-size:var(--text-16);line-height:1;cursor:pointer}.ime-switch-btn:first-child{border-left:0}.ime-switch-btn:hover{color:var(--text0);background:var(--bg2)}.ime-switch-btn:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.ime-switch-btn.is-active{background:var(--ai-bg);color:var(--ai);box-shadow:inset 0 0 0 1px var(--ai)}.ime-field-wrap{position:relative;display:inline-block}.ime-field-wrap-block{display:block;width:100%}.composer .ime-field-wrap-block{flex:1;min-width:0}.ime-kanji-btn{position:absolute;right:6px;bottom:6px;z-index:2;min-height:22px;min-width:0;padding:1px 6px;font-size:var(--text-12);line-height:1.4;border-radius:var(--r-2);border:1px solid var(--line2);background:var(--bg1);color:var(--text2);cursor:pointer}.ime-kanji-btn:hover{border-color:var(--blue);color:var(--blue)}.ime-field-wrap.det-conj-wrap,.ime-field-wrap.graded-input-wrap{flex:1;min-width:0}.det-conj-wrap .det-conj-input,.graded-input-wrap .graded-input{width:100%}.phrase-trou-input+.ime-kanji-btn{bottom:2px;right:2px}.ime-kanji-popover{position:absolute;top:100%;left:0;margin-top:4px;min-width:200px;max-width:320px;background:var(--bg1);border:1px solid var(--line2);border-radius:var(--r-3);box-shadow:var(--shadow-overlay);z-index:50;overflow:hidden}.composer .ime-kanji-popover{top:auto;bottom:100%;margin:0 0 4px}.ime-kanji-popover-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border-bottom:1px solid var(--line1);background:var(--bg2)}.ime-kanji-popover-reading{font-size:var(--text-14);color:var(--text2)}.ime-kanji-popover-close{border:none;background:transparent;color:var(--text2);cursor:pointer;font-size:var(--text-16);line-height:1;padding:2px 4px}.ime-kanji-popover-close:hover{color:var(--text0)}.ime-kanji-popover-status{padding:10px;font-size:var(--text-14);color:var(--text2)}.ime-kanji-popover-error{display:flex;align-items:center;justify-content:space-between;gap:8px}.ime-kanji-popover-retry{min-height:36px;padding:4px 12px;border:1px solid var(--line2);border-radius:var(--r-2);background:var(--bg2);color:var(--blue);font-size:var(--text-14);cursor:pointer;flex-shrink:0}.ime-kanji-popover-retry:hover{border-color:var(--blue)}.ime-kanji-popover-list{list-style:none;margin:0;padding:4px;max-height:220px;overflow-y:auto}.ime-kanji-candidate{display:flex;align-items:baseline;gap:8px;width:100%;padding:6px 8px;border:none;border-radius:var(--r-2);background:transparent;color:var(--text0);cursor:pointer;text-align:left}.ime-kanji-candidate:hover,.ime-kanji-candidate-active{background:var(--blue-bg)}.ime-kanji-candidate-surface{font-size:var(--text-16);font-weight:500;flex-shrink:0}.ime-kanji-candidate-meaning{font-size:var(--text-12);color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ime-kanji-candidate-tag{margin-left:auto;flex-shrink:0}.ime-kanji-candidate:hover .ime-kanji-candidate-tag,.ime-kanji-candidate-active .ime-kanji-candidate-tag{border-color:var(--ai)}.vocab-card-head{display:flex;align-items:center;justify-content:space-between;gap:4px}.speak-btn{display:grid;width:32px;height:32px;flex-shrink:0;place-items:center;cursor:pointer;border:1px solid var(--line1);border-radius:var(--r-2);background:transparent;color:var(--text2)}.speak-btn svg{width:17px;height:17px}.speak-btn:hover{background:var(--bg2);color:var(--text0)}.chevron-icon{transition:transform .2s ease;flex-shrink:0;color:var(--text2)}.sheet-chevron-half{transform:rotate(0)}.sheet-chevron-full{transform:rotate(180deg)}.sheet-chevron-closed{transform:rotate(0)}@media(max-width:720px){.desktop-only{display:none}.selection-buttons{gap:6px}.selection-speak-btn,.selection-copy-btn,.selection-dict-btn,.selection-translate-btn,.selection-ask-btn,.selection-anki-btn{width:52px;height:52px;border-radius:var(--r-2)}.selection-speak-btn svg,.selection-copy-btn svg,.selection-dict-btn svg,.selection-translate-btn svg,.selection-ask-btn svg,.selection-anki-btn svg{width:24px;height:24px}.speak-btn{width:38px;height:38px;border-radius:var(--r-2)}.speak-btn svg{width:20px;height:20px}.vocab-panel .lesson-tools{display:none}.main-layout{flex-direction:column;position:relative}.chat-panel{flex:1;min-height:0;border-right:0}.translation-line{grid-template-columns:1fr}.translation-line-source{font-size:var(--text-20)}.translation-line-answer{min-height:68px}.vocab-panel{position:fixed;bottom:var(--bottom-nav-h, 0px);left:0;right:0;width:100%;z-index:30;border-top:1px solid var(--line2);border-radius:var(--r-3) var(--r-3) 0 0;box-shadow:var(--shadow-sheet);transition:max-height .3s cubic-bezier(.32,.72,0,1);overflow:hidden}.vocab-panel{--sheet-closed-h: 52px}.vocab-panel.bottom-sheet-closed{max-height:calc(var(--sheet-closed-h) + var(--bottom-inset, 0px));overflow:hidden}.vocab-panel.bottom-sheet-half{max-height:45vh;max-height:45dvh;overflow-y:auto}.vocab-panel.bottom-sheet-full{max-height:90vh;max-height:90dvh;overflow-y:auto}.sheet-handle{display:flex;align-items:center;gap:8px;padding:10px 14px;cursor:pointer;background:var(--bg1);flex-shrink:0;min-height:var(--sheet-closed-h, 52px);box-sizing:border-box}.handle-bar{width:32px;height:4px;border-radius:var(--r-1);background:var(--bg3);position:absolute;top:6px;left:50%;transform:translate(-50%)}.handle-summary{display:flex;gap:8px;flex:1;font-size:var(--text-12);color:var(--text1)}.handle-summary span:last-child{color:var(--text2)}.panel-head{display:none}.composer{position:relative;z-index:31}.composer textarea{min-height:44px;font-size:max(16px,var(--text-16))}.composer-focused .button:not(.composer-send){display:none}.composer:not(.composer-focused) .ime-switch{display:none}.composer .ime-switch-btn{min-width:32px;min-height:42px}.btn-label{display:none}.mobile-only{display:flex}.vocab-list{flex-direction:row;overflow-x:auto;overflow-y:hidden}.vocab-card{min-width:150px}.messages{padding:10px 8px}.message{max-width:100%;gap:6px}.message.assistant .bubble-wrap{max-width:calc(100vw - 52px)}.avatar{width:22px;height:22px}.dialogue-line{max-width:96%}.karaoke-line{max-width:100%}.ask-bubble{max-width:96%}}@media(max-width:520px){.badge.badge-model{display:inline-flex}.progress-labels{flex-wrap:wrap;gap:4px 12px}.button{padding:0 var(--sp-2)}.composer .button{min-width:38px;padding:0}}@supports (padding: env(safe-area-inset-bottom)){.composer{padding-bottom:calc(9px + var(--bottom-inset, env(safe-area-inset-bottom)))}.vocab-panel.bottom-sheet-closed{padding-bottom:var(--bottom-inset, env(safe-area-inset-bottom))}}.app-shell{--bottom-nav-h: 0px;--bottom-inset: env(safe-area-inset-bottom, 0px)}.bottom-tabs{display:none}@media(max-width:720px){.topbar{display:none}.bottom-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));flex-shrink:0;padding:0 var(--sp-1) env(safe-area-inset-bottom,0px);box-shadow:inset 0 1px 0 var(--line1);background:var(--bg1)}.app-shell:has(>.bottom-tabs){--bottom-nav-h: calc(56px + env(safe-area-inset-bottom, 0px)) ;--bottom-inset: 0px}.app-shell:has(.book-reader,.pdf-reader,.image-page-reader,.podcast-player){--bottom-nav-h: 0px;--bottom-inset: env(safe-area-inset-bottom, 0px)}.app-shell:has(.book-reader,.pdf-reader,.image-page-reader,.podcast-player)>.bottom-tabs{display:none}}.bottom-tab{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;min-height:56px;padding:6px 2px var(--sp-1);border:0;border-radius:var(--r-2);background:none;color:var(--text2);cursor:pointer;-webkit-tap-highlight-color:transparent}.bottom-tab:focus-visible{outline:2px solid var(--ai);outline-offset:-3px}.bottom-tab:disabled{opacity:.5;cursor:default}.bottom-tab-icon{position:relative;display:grid;place-items:center;width:52px;height:28px}.bottom-tab-label{max-width:100%;overflow:hidden;font-size:var(--text-12);font-weight:500;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.bottom-tab-current{color:var(--ink)}.bottom-tab-current:before{content:"";position:absolute;top:0;left:24%;right:24%;height:2px;background:var(--ink)}.bottom-tab-count{position:absolute;top:-4px;left:calc(50% + 5px);min-width:18px;min-height:16px;padding:0 var(--sp-1);border-radius:var(--r-pill);font-size:var(--text-12);font-weight:700;font-variant-numeric:tabular-nums;line-height:1.333;text-align:center}.more-menu-sheet{position:fixed;top:auto;right:0;bottom:var(--bottom-nav-h, 0px);left:0;max-height:min(86vh,640px);max-height:min(86dvh,640px);overflow-y:auto;padding:8px 0 10px;border-width:1px 0 0;border-radius:var(--r-3) var(--r-3) 0 0;box-shadow:var(--shadow-sheet)}.more-menu-backdrop-sheet{bottom:var(--bottom-nav-h, 0px);background:var(--scrim)}.more-menu-sheet .options-item{min-height:48px;padding:10px 18px;font-size:var(--text-16);white-space:normal;text-align:left}.more-menu-sheet .voice-choice strong{font-size:var(--text-16)}.more-menu-sheet .voice-choice small{font-size:var(--text-12);white-space:normal}.more-menu-sheet .voice-choice{padding:9px 18px}.options-footer{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin:6px 0 0;padding:10px 18px 2px;border-top:1px solid var(--line1);color:var(--text2);font-size:var(--text-12)}.options-footer-status{display:inline-flex;align-items:center;gap:6px;color:var(--text1)}.more-menu [aria-current=page] strong{color:var(--blue)}.srs-overlay{position:fixed;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:var(--scrim)}.srs-modal{position:relative;width:min(560px,100%);max-height:min(760px,92vh);overflow:auto;border:1px solid var(--line2);border-radius:var(--r-3);background:var(--bg1);box-shadow:var(--shadow-overlay)}.srs-session{display:flex;flex-direction:column}.srs-session:focus{outline:none}.srs-session .srs-card{flex:1;overflow-y:auto;justify-content:safe center}.srs-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--line1)}.srs-header>div{min-width:0}.srs-header span{display:block;color:var(--ink-2);font-size:var(--text-14);font-weight:500}.srs-header h2{margin:2px 0 0;font-size:var(--text-16);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.srs-launcher-body{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4)}.srs-select-all{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;border:0;background:none;color:var(--blue);padding:4px 0;cursor:pointer;font:inherit;font-size:var(--text-14)}.srs-deck-list{display:grid;gap:var(--sp-2)}.srs-deck-option{display:flex;align-items:center;gap:var(--sp-3);min-height:54px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--line1);border-radius:var(--r-2);cursor:pointer}.srs-deck-option:has(input:checked),.srs-deck-option:has(input:indeterminate){border-color:var(--ink);background:var(--surface)}.srs-deck-option input,.srs-include-new input{width:18px;height:18px;accent-color:var(--ink)}.srs-deck-option span{display:flex;flex:1;align-items:baseline;justify-content:space-between;gap:var(--sp-3)}.srs-deck-option small,.srs-summary small{color:var(--text2);font-size:var(--text-12)}.srs-deck-option.srs-deck-parent{flex-direction:column;align-items:stretch;gap:var(--sp-2);cursor:default}.srs-deck-parent-row{display:flex;align-items:center;gap:var(--sp-2)}.srs-deck-parent-label{display:flex;flex:1;align-items:center;gap:var(--sp-3);min-width:0;cursor:pointer}.srs-deck-toggle{flex-shrink:0}.srs-subdeck-list{display:flex;flex-direction:column;gap:2px;margin:0;padding:var(--sp-2) 0 0;list-style:none;max-height:220px;overflow-y:auto;border-top:1px solid var(--line1)}.srs-subdeck-item{display:flex;align-items:center;gap:var(--sp-2);min-height:40px;padding:var(--sp-1) 6px var(--sp-1) var(--sp-7);border-radius:var(--r-2);cursor:pointer}.srs-subdeck-item:hover{background:var(--bg2)}.srs-subdeck-item input{width:16px;height:16px;flex-shrink:0;accent-color:var(--ink)}.srs-subdeck-item>span{display:flex;flex:1;flex-direction:column;min-width:0;gap:0}.srs-subdeck-item>span strong{overflow:hidden;font-size:var(--text-14);text-overflow:ellipsis;white-space:nowrap}.srs-subdeck-item>span small,.srs-subdeck-item>small{flex-shrink:0;color:var(--text2);font-size:var(--text-12)}.srs-subdeck-empty{margin:var(--sp-2) 0 0;padding:var(--sp-2) var(--sp-1);border-top:1px solid var(--line1);color:var(--text2);font-size:var(--text-12);text-align:center}.srs-include-new{display:flex;align-items:center;gap:var(--sp-2);min-height:var(--control-h);font-size:var(--text-14)}.srs-include-new input{flex-shrink:0}.srs-summary{margin:0;padding:var(--sp-3);border-radius:var(--r-2);background:var(--bg2);color:var(--text1);line-height:1.55;font-size:var(--text-14)}.srs-card>small.srs-context-hint{max-width:34em;color:var(--text1);font-size:clamp(16px,4vw,20px);line-height:2}.srs-mnemonic{display:flex;flex-direction:column;gap:2px;max-width:34em;margin-top:10px;padding:8px 12px;border-radius:var(--r-2);background:var(--amber-bg);color:var(--text0);font-size:var(--text-16);line-height:1.5}.srs-mnemonic small{margin:0;color:var(--ink-2);font-size:var(--text-14);font-weight:500}.srs-progress.review-flow-progress-track{flex-shrink:0;height:2px;margin:0;border-radius:0}.srs-limit-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:6px}.srs-limit-actions .button{min-height:var(--control-h)}.srs-limit .general-review-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.srs-limit .general-review-options label{min-height:var(--control-h);padding:6px 12px}@media(max-width:480px){.srs-limit .general-review-options{grid-template-columns:repeat(2,minmax(0,1fr))}}.srs-retention{margin:0;color:var(--text1);font-size:var(--text-14)}.srs-pace-hint{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0;padding:10px 12px;border-radius:var(--r-2);background:var(--amber-bg);color:var(--text0);line-height:1.45;font-size:var(--text-14)}.srs-pace-hint span{flex:1 1 220px}.srs-pace-hint .button{min-height:40px;flex-shrink:0}.srs-start{min-height:var(--control-h);justify-content:center}.streak-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:var(--r-2);background:var(--bg2);flex-wrap:wrap}.streak-count{display:flex;align-items:baseline;gap:8px;min-width:0}.streak-count-number{font-size:var(--text-26);font-weight:700;line-height:1;color:var(--hanko)}.streak-count-label{font-size:var(--text-12);color:var(--text1)}.streak-week{display:flex;gap:6px;flex-shrink:0}.streak-day{display:flex;flex-direction:column;align-items:center;gap:3px}.streak-day-stamp{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--line2);display:flex;align-items:center;justify-content:center;font-size:var(--text-12);color:var(--hanko-ink);box-sizing:border-box}.streak-day-done .streak-day-stamp{background:var(--hanko);border-color:var(--hanko);transform:rotate(-4deg)}.streak-day:nth-child(2n).streak-day-done .streak-day-stamp{transform:rotate(5deg)}.streak-day-label{font-size:var(--text-12);color:var(--text2)}.streak-day-today .streak-day-stamp{border-style:dashed;border-color:var(--hanko);animation:streak-pulse 2s ease-in-out infinite}.streak-day-today-done .streak-day-stamp{animation:streak-stamp-in .35s cubic-bezier(.2,1.4,.4,1)}@keyframes streak-pulse{0%,to{opacity:.45}50%{opacity:1}}@keyframes streak-stamp-in{0%{transform:scale(1.8) rotate(-14deg);opacity:0}to{transform:scale(1) rotate(-4deg);opacity:1}}@media(prefers-reduced-motion:reduce){.streak-day-today .streak-day-stamp,.streak-day-today-done .streak-day-stamp{animation:none}}.srs-empty{display:flex;min-height:260px;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:28px;color:var(--text2);text-align:center}.srs-empty h3,.srs-empty p{margin:0}.srs-empty .srs-summary-detail{margin:calc(-1 * var(--sp-1)) 0 var(--sp-1);font-size:var(--text-14);line-height:1.5}.srs-spin{animation:spin 1s linear infinite}.srs-live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.srs-card{display:flex;min-height:260px;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-7) var(--sp-6);border:0;background:transparent;color:var(--text0);text-align:center;width:100%}.srs-card-clickable{cursor:pointer}.srs-card-clickable:focus-visible{outline:3px solid var(--blue);outline-offset:-4px}.srs-front{font-family:var(--font-jp-display);font-size:clamp(36px,12vw,var(--text-56));font-weight:500;line-height:1.25;word-break:break-word}.srs-front.srs-front-sentence{font-size:clamp(26px,7vw,var(--text-36))}.srs-front .srs-context-sentence{display:inline-block;font-size:clamp(20px,5vw,32px);font-weight:700;line-height:2}.srs-front .srs-context-sentence ruby rt{font-family:var(--font-ui);font-size:.5em;color:var(--text2)}.srs-context-word{color:var(--text0);text-decoration-line:underline;text-decoration-color:var(--blue);text-decoration-thickness:.12em;text-underline-offset:.3em;text-decoration-skip-ink:none}.srs-context-source{display:block;margin-top:-6px;color:var(--text2);font-size:var(--text-14);font-weight:400}.srs-back .srs-example-origin{color:var(--text2);font-size:var(--text-12);font-style:italic}.srs-card>small{color:var(--text2)}.srs-back{display:flex;flex-direction:column;gap:6px;max-width:100%;animation:review-fade .18s ease}.srs-back strong{font-family:var(--font-mincho);font-size:var(--text-26);font-weight:500}.srs-back>span{color:var(--ink-2);font-size:var(--text-20)}.srs-back p,.srs-back small{margin:6px 0 0;color:var(--text1)}.srs-front.srs-front-kanji{font-size:clamp(72px,20vw,120px);font-weight:500;line-height:1.1;text-align:center}.srs-kanji-back{display:flex;flex-direction:column;align-items:center;gap:8px;max-width:34em}.srs-kanji-back .srs-kanji-meaning{color:var(--text0)}.srs-kanji-readings{display:inline-grid;grid-template-columns:auto auto;gap:4px 12px;margin:0;text-align:left}.srs-kanji-readings dt{color:var(--text2);font-size:var(--text-12);font-weight:500;line-height:1.9}.srs-kanji-readings dd{margin:0;color:var(--text0);font-size:var(--text-20);line-height:1.5}.srs-kanji-word-readings dt{color:var(--blue);font-size:var(--text-16);font-weight:700;line-height:1.5}.srs-kanji-word-readings dd{font-size:var(--text-16)}.srs-kanji-word-more{color:var(--text2);font-size:var(--text-14)}.srs-kanji-components{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:0;padding:0;list-style:none}.srs-back .srs-kanji-carrier{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--sp-1) 6px;margin:2px 0 0;color:var(--text0);font-size:var(--text-16)}.srs-kanji-carrier-meaning{color:var(--text2)}.srs-hint{margin:-5px 0 12px;color:var(--text2);text-align:center;font-size:var(--text-12)}.srs-rating-bar{display:grid;grid-template-columns:1fr 1fr 1.25fr 1fr;gap:var(--sp-2);padding:var(--sp-4);border-top:1px solid var(--line1)}.srs-rating-bar button{display:flex;min-width:0;min-height:60px;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-1);padding:0;border:1px solid var(--field);border-radius:var(--r-2);background:var(--surface);color:var(--ink);cursor:pointer;text-align:center}.srs-rating-bar button:hover:not(:disabled){background:var(--sunken)}.srs-rating-bar button:focus-visible{outline:2px solid var(--ai);outline-offset:2px}.srs-rating-bar button:disabled{cursor:wait;opacity:.55}.srs-rating-bar button span{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1)}.srs-rating-bar strong{font-size:var(--text-16);font-weight:700;line-height:1.125}.srs-rating-bar small{color:var(--ink-3);font-size:var(--text-14);line-height:1.143}.srs-rating-bar kbd{color:var(--ink-3);font-family:var(--font);font-size:var(--text-12);line-height:1}.srs-rating-bar button[data-rating="1"] strong{color:var(--shu)}.srs-rating-bar button[data-rating="2"] strong{color:var(--warn)}.srs-rating-bar button[data-rating="4"] strong{color:var(--ok)}.srs-rating-bar button[data-rating=discover] strong{color:var(--ai)}.srs-rating-bar:not(.srs-rating-bar-theme) button[data-rating="3"],.srs-rating-bar button[data-suggested=true]{border-color:var(--action);background:var(--action)}.srs-rating-bar:not(.srs-rating-bar-theme) button[data-rating="3"] strong,.srs-rating-bar button[data-suggested=true] strong,.srs-rating-bar:not(.srs-rating-bar-theme) button[data-rating="3"] kbd,.srs-rating-bar button[data-suggested=true] kbd{color:var(--on-action)}.srs-rating-bar:not(.srs-rating-bar-theme) button[data-rating="3"] small,.srs-rating-bar button[data-suggested=true] small{color:color-mix(in srgb,var(--on-action) 80%,var(--action))}.srs-rating-bar:not(.srs-rating-bar-theme) button[data-rating="3"]:hover:not(:disabled),.srs-rating-bar button[data-suggested=true]:hover:not(:disabled){border-color:var(--action-hover);background:var(--action-hover)}.srs-rating-bar:not(.srs-rating-bar-theme) button[data-rating="3"]:hover:not(:disabled) small,.srs-rating-bar button[data-suggested=true]:hover:not(:disabled) small{color:var(--on-action)}@media(max-width:349px){.srs-rating-bar{grid-template-columns:1fr 1fr}}@media(max-width:399px){:root[data-text-size=l] .srs-rating-bar,:root[data-text-size=xl] .srs-rating-bar{grid-template-columns:1fr 1fr}}.srs-error{display:flex;align-items:center;justify-content:center;gap:10px;margin:12px;padding:10px;border:1px solid var(--red);border-radius:var(--r-2);color:var(--red);font-size:var(--text-14);text-align:center}.srs-error .button{min-height:36px;color:var(--text0);flex-shrink:0}.srs-counts{display:flex;justify-content:center;gap:14px;padding:0 12px 8px;font-size:var(--text-14);font-weight:500;font-variant-numeric:tabular-nums}.srs-count-new{color:var(--blue)}.srs-count-learning{color:var(--amber)}.srs-count-review{color:var(--green)}.srs-count-current{text-decoration:underline;text-underline-offset:3px}.srs-count-early{color:var(--text2);font-size:var(--text-12);font-weight:500}.srs-menu-wrap{position:relative;display:flex;justify-content:flex-end;padding:0 12px 12px}.srs-menu{position:absolute;right:12px;bottom:52px;z-index:1;display:flex;flex-direction:column;min-width:205px;padding:5px;border:1px solid var(--line2);border-radius:var(--r-3);background:var(--bg1);box-shadow:var(--shadow-overlay)}.srs-menu button{min-height:40px;border:0;border-radius:var(--r-2);background:transparent;color:var(--text1);cursor:pointer;text-align:left;padding:8px}.srs-menu button:hover{background:var(--bg2)}.srs-resistant{display:flex;flex-shrink:0;align-items:center;justify-content:center;gap:4px;padding:0 12px;border-top:1px solid var(--line1);background:var(--bg2);font-size:var(--text-14)}.srs-resistant-anchor{position:relative;display:inline-flex}.srs-resistant-toggle{display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:0 10px;border:0;border-radius:var(--r-2);background:none;color:var(--blue);cursor:pointer;font:inherit;font-weight:500}.srs-resistant-toggle:disabled{cursor:wait;opacity:.55}.srs-resistant-menu{position:absolute;right:0;bottom:calc(100% + 2px);min-width:232px}.srs-resistant-menu button{min-height:44px;padding:8px 12px;font:inherit}.srs-session .srs-card.srs-card-theme{justify-content:flex-start;align-items:stretch;padding:var(--sp-5) var(--sp-4)}.srs-theme{display:flex;flex-direction:column;gap:12px;width:100%;max-width:640px;min-width:0;margin-inline:auto;text-align:center}.srs-theme-context{align-self:center;max-width:100%;padding:3px 12px;border-radius:var(--r-pill);background:var(--bg2);color:var(--text1);font-size:var(--text-14)}.srs-theme-fr{margin:0;color:var(--text0);font-size:clamp(20px,5vw,26px);font-weight:700;line-height:1.4;text-align:center;overflow-wrap:anywhere}.srs-theme-input-row{display:flex;align-items:stretch;gap:8px;min-width:0}.srs-theme-input-row .ime-field-wrap{flex:1 1 auto;min-width:0}.srs-theme-ime{align-self:center}.srs-theme-ime .ime-switch-btn{min-width:44px;min-height:44px;font-size:var(--text-16)}.srs-theme-input{flex:1 1 auto;width:100%;min-width:0;min-height:48px;padding:8px 12px}.srs-theme-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.srs-theme-actions .button{min-height:44px;padding:0 16px}.srs-theme-hint{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 16px;margin:0;padding:0;list-style:none;color:var(--text1);font-size:var(--text-16);line-height:1.6}.srs-theme-error{margin:0;color:var(--red);font-size:var(--text-14);text-align:center}.srs-theme-back{display:flex;flex-direction:column;gap:10px;min-width:0;animation:review-fade .18s ease}.srs-theme-back p{margin:0}.srs-theme-back small{display:block;color:var(--ink-2);font-size:var(--text-14);font-weight:500}.srs-theme-verdict{align-self:center;padding:4px 16px;border-radius:var(--r-pill);background:var(--bg2);color:var(--text0);font-size:var(--text-20)}.srs-theme-verdict[data-verdict=juste]{background:var(--green-bg);color:var(--green)}.srs-theme-verdict[data-verdict=presque]{background:var(--amber-bg);color:var(--amber)}.srs-theme-verdict[data-verdict=faux]{background:var(--red-bg);color:var(--red)}.srs-theme-explanation{color:var(--text1);font-size:var(--text-16);line-height:1.5;text-align:center}.srs-theme-answer,.srs-theme-reference{font-size:clamp(18px,4.5vw,22px);line-height:1.9;overflow-wrap:anywhere}.srs-theme-diff .extra{color:var(--ink-2)}.srs-theme-diff .missing{color:var(--ink)}.srs-theme-reference-line{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 8px}.srs-theme-reference ruby rt{color:var(--text2);font-size:.55em}.srs-theme-reference .speak-btn{width:44px;height:44px}.srs-theme-structure{color:var(--text1);font-size:var(--text-16);line-height:1.5}.srs-theme-accepted ul{margin:2px 0 0;padding:0;list-style:none;font-size:var(--text-16);line-height:1.9;overflow-wrap:anywhere}.srs-theme-contest{align-self:center;min-height:44px}.srs-theme-report{display:flex;flex-direction:column;gap:6px;padding-top:10px;border-top:1px solid var(--line1)}.srs-theme-report label{color:var(--text1);font-size:var(--text-14)}.srs-theme-report textarea{width:100%;min-width:0;padding:8px 10px;resize:vertical}.srs-theme-reported{margin:0;color:var(--text2);font-size:var(--text-14);text-align:center}@media(max-width:759px){.srs-overlay{align-items:stretch;justify-content:stretch;padding:0}.srs-modal{width:100%;height:100dvh;max-height:none;border-radius:0;padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom))}.srs-deck-option span{flex-direction:column;gap:2px}.srs-subdeck-list{max-height:160px}.srs-back p,.srs-back small,.srs-example{font-size:var(--text-16)}.srs-hint{font-size:var(--text-14)}}@media(hover:none)and (pointer:coarse){.srs-rating-bar kbd{display:none}}@media(hover:none)and (pointer:coarse){.srs-fullscreen-btn{display:none}}.srs-overlay.review-overlay-fullpage,.review-overlay.review-overlay-fullpage{align-items:stretch;justify-content:stretch;padding:0}.srs-modal.srs-modal-fullpage,.review-modal.srs-modal-fullpage{width:100%;height:100dvh;max-height:none;border-radius:0}.srs-modal-fullpage .srs-card{width:100%;max-width:920px;margin-inline:auto}@media(prefers-reduced-motion:reduce){.srs-spin,.srs-back{animation:none}}.review-overlay{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:18px;background:var(--scrim)}.voice-review-overlay{position:fixed;inset:0;z-index:300;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:28px;text-align:center;color:var(--text0);background:radial-gradient(circle at top,var(--bg2),var(--bg0) 65%)}.voice-review-eyebrow{margin:12px 0 -8px;color:var(--ink-2);font-size:var(--text-14);font-weight:500}.voice-review-overlay h2{max-width:680px;margin:0;font-size:clamp(28px,6vw,52px);line-height:1.18}.voice-review-instruction{margin:0;color:var(--text2);font-size:var(--text-16)}.voice-review-status{display:flex;min-height:116px;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--text2)}.voice-review-status-listening{color:var(--green)}.voice-review-status-listening svg{animation:headless-pulse 1.4s ease-in-out infinite}.voice-review-status-checking svg,.voice-review-status-transcribing svg{animation:spin 1s linear infinite}.voice-review-transcript{margin:0;color:var(--text1);font-size:var(--text-20)}.voice-review-transcript span{color:var(--text2);font-size:var(--text-14);font-weight:700}.voice-review-verdict{margin:0;font-size:var(--text-16);font-weight:700}.voice-review-verdict.correct{color:var(--green)}.voice-review-verdict.incorrect,.voice-review-verdict.uncertain{color:var(--amber)}.voice-review-commands{margin:4px 0 0;color:var(--text2);font-size:var(--text-12)}.voice-review-quit{margin-top:4px}.voice-review-done{display:flex;flex-direction:column;align-items:center;gap:18px;font-size:var(--text-20)}.voice-review-done svg{color:var(--green)}.passive-review-overlay{position:fixed;inset:0;z-index:310;display:flex;min-height:100dvh;flex-direction:column;align-items:center;justify-content:center;overflow-x:hidden;overflow-y:auto;padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));color:var(--text0);background:radial-gradient(circle at 50% 32%,color-mix(in srgb,var(--blue) 16%,transparent),transparent 34%),radial-gradient(circle at 82% 78%,color-mix(in srgb,var(--green) 9%,transparent),transparent 28%),var(--bg0)}.passive-review-header{position:absolute;top:max(22px,env(safe-area-inset-top));left:max(24px,env(safe-area-inset-left));right:max(24px,env(safe-area-inset-right));z-index:2;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none}.passive-review-header>div{display:flex;flex-direction:column;gap:3px}.passive-review-header span{display:flex;align-items:center;gap:6px;color:var(--text2);font-size:var(--text-14)}.passive-review-header h1{margin:0;font-size:var(--text-20);line-height:1.2}.passive-review-header button{pointer-events:auto}.passive-review-progress{position:absolute;top:max(92px,calc(env(safe-area-inset-top) + 70px));left:50%;display:flex;width:min(460px,calc(100vw - 64px));align-items:center;gap:12px;transform:translate(-50%);color:var(--text2);font-size:var(--text-14);font-variant-numeric:tabular-nums}.passive-review-progress>div{flex:1;height:4px;overflow:hidden;border-radius:var(--r-pill);background:var(--line1)}.passive-review-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--green));transition:width .35s ease}.passive-review-stage{position:relative;display:grid;width:min(1180px,100%);min-height:390px;place-items:center}.passive-review-current{position:relative;z-index:1;display:flex;width:min(620px,64vw);min-height:300px;flex-direction:column;align-items:center;justify-content:center;text-align:center;animation:passive-word-enter .42s cubic-bezier(.2,.8,.2,1) both}.passive-review-kicker{margin:0 0 18px;color:var(--ink-2);font-size:var(--text-14);font-weight:500}.passive-review-jp{max-width:100%;font-size:clamp(3.5rem,10vw,7.5rem);font-weight:700;line-height:1.05;letter-spacing:-.03em;overflow-wrap:anywhere}.passive-review-reading{margin-top:15px;color:var(--text1);font-size:clamp(1.2rem,2.7vw,1.8rem);letter-spacing:.08em}.passive-review-meaning{margin-top:22px;color:var(--text0);font-size:clamp(1.25rem,3vw,2rem);line-height:1.3}.passive-review-orbit{position:absolute;top:12px;right:18px;display:flex;height:22px;align-items:center;gap:3px;color:var(--blue);opacity:.35}.passive-review-orbit i{width:3px;height:7px;border-radius:var(--r-pill);background:currentColor}.passive-review-orbit.is-playing i{animation:passive-equalizer .9s ease-in-out infinite alternate}.passive-review-orbit.is-playing i:nth-child(2){animation-delay:-.3s}.passive-review-orbit.is-playing i:nth-child(3){animation-delay:-.6s}.passive-review-peek{position:absolute;top:44%;display:grid;width:min(190px,18vw);min-height:112px;align-content:center;gap:7px;padding:14px;border:1px solid transparent;border-radius:var(--r-3);color:var(--text2);background:transparent;text-align:left;cursor:pointer;transform:translateY(-50%);transition:color .18s ease,background .18s ease,border-color .18s ease,transform .18s ease}.passive-review-peek:hover:not(:disabled){color:var(--text0);border-color:var(--line1);background:color-mix(in srgb,var(--bg2) 72%,transparent)}.passive-review-peek:disabled{opacity:.2;cursor:default}.passive-review-peek span{font-size:var(--text-14);font-weight:500}.passive-review-peek strong{font-size:clamp(1.15rem,2.4vw,1.65rem);font-weight:500;overflow-wrap:anywhere}.passive-review-peek-previous{left:0}.passive-review-peek-next{right:0;text-align:right}.passive-review-peek-previous svg{position:absolute;left:-4px}.passive-review-peek-next svg{position:absolute;right:-4px}.passive-review-phase{min-height:22px;margin:0 0 12px;color:var(--text2);font-size:var(--text-16);text-align:center}.passive-review-controls{display:flex;align-items:center;justify-content:center;gap:18px}.passive-review-controls button{display:grid;width:52px;height:52px;place-items:center;border:1px solid var(--line2);border-radius:50%;color:var(--text0);background:var(--bg2);cursor:pointer;transition:transform .15s ease,opacity .15s ease,background .15s ease}.passive-review-controls button:hover:not(:disabled){transform:translateY(-2px);background:var(--bg3)}.passive-review-controls button:disabled{opacity:.25;cursor:default}.passive-review-controls .passive-review-play{width:72px;height:72px;border:0;color:var(--bg0);background:var(--text0)}.passive-review-controls .passive-review-play:hover:not(:disabled){background:color-mix(in srgb,var(--text0) 82%,var(--bg0))}.passive-review-play svg{transform:translate(1px)}.passive-review-repeat{display:inline-flex;align-items:center;gap:7px;margin-top:14px;padding:7px 14px;border:1px solid var(--line1);border-radius:var(--r-pill);color:var(--text1);background:transparent;font-size:var(--text-14);cursor:pointer}.passive-review-repeat:hover{background:var(--bg2)}.passive-review-repeat small{color:var(--text2);font-size:var(--text-12)}.passive-review-requeue-notice{min-height:20px;margin:8px 0 0;color:var(--text2);font-size:var(--text-14)}.passive-review-requeue-notice strong{color:var(--text0);font-weight:500}.passive-review-translation-toggle{position:relative;display:grid;grid-template-columns:34px 1fr 44px;width:min(360px,calc(100vw - 48px));align-items:center;gap:10px;margin-top:24px;padding:11px 13px;border:1px solid var(--line1);border-radius:var(--r-3);background:color-mix(in srgb,var(--bg2) 74%,transparent);cursor:pointer}.passive-review-toggle-icon{display:grid;width:34px;height:34px;place-items:center;border-radius:var(--r-2);color:var(--blue);background:color-mix(in srgb,var(--blue) 12%,transparent)}.passive-review-translation-toggle>span:nth-child(2){display:flex;min-width:0;flex-direction:column;gap:2px}.passive-review-translation-toggle strong{font-size:var(--text-14)}.passive-review-translation-toggle small{color:var(--text2);font-size:var(--text-12)}.passive-review-translation-toggle input{position:absolute;width:1px;height:1px;opacity:0}.passive-review-translation-toggle>i{position:relative;width:44px;height:24px;border-radius:var(--r-pill);background:var(--line2);transition:background .18s ease}.passive-review-translation-toggle>i:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--text0);box-shadow:0 0 0 1px var(--rule);transition:transform .18s ease}.passive-review-translation-toggle input:checked+i{background:var(--blue)}.passive-review-translation-toggle input:checked+i:after{transform:translate(20px)}.passive-review-translation-toggle:focus-within{outline:2px solid var(--blue);outline-offset:3px}.passive-review-footer{display:flex;width:min(760px,calc(100vw - 48px));align-items:flex-end;justify-content:space-between;gap:24px;margin-top:18px}.passive-review-speed,.passive-review-estimate{display:flex;flex-direction:column;gap:7px}.passive-review-speed>span,.passive-review-estimate>span{color:var(--ink-2);font-size:var(--text-14);font-weight:500}.passive-review-speed>div{display:flex;gap:6px}.passive-review-speed button{min-width:47px;height:38px;padding:0 10px;border:1px solid var(--line1);border-radius:var(--r-2);color:var(--text2);background:color-mix(in srgb,var(--bg2) 74%,transparent);font-size:var(--text-14);font-weight:700;cursor:pointer;transition:color .16s ease,border-color .16s ease,background .16s ease,transform .16s ease}.passive-review-speed button:hover{color:var(--text0);transform:translateY(-1px)}.passive-review-speed button[aria-pressed=true]{border-color:var(--ai);color:var(--ai);background:var(--ai-bg);box-shadow:inset 0 0 0 1px var(--ai)}.passive-review-estimate{align-items:flex-end;text-align:right}.passive-review-estimate strong{font-size:var(--text-20);font-variant-numeric:tabular-nums;line-height:1}.passive-review-estimate small{color:var(--text2);font-size:var(--text-12)}.passive-review-audio-error{display:flex;align-items:center;gap:10px;margin:0 0 12px;color:var(--amber);font-size:var(--text-14)}.passive-review-limit{margin:12px 0 0;color:var(--text2);font-size:var(--text-12)}.passive-review-state{display:flex;width:min(520px,90vw);flex-direction:column;align-items:center;gap:16px;text-align:center}.passive-review-state>svg{color:var(--blue)}.passive-review-state>.lucide-loader-circle{animation:spin 1s linear infinite}.passive-review-state h2{margin:0;font-size:clamp(1.7rem,5vw,2.5rem)}.passive-review-state p{margin:0;color:var(--text2);font-size:var(--text-16);line-height:1.5}.passive-review-state-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}@keyframes passive-word-enter{0%{opacity:0;transform:translate(24px) scale(.985)}to{opacity:1;transform:none}}@keyframes passive-equalizer{0%{height:6px;opacity:.45}to{height:21px;opacity:1}}@media(max-width:720px){.passive-review-overlay{justify-content:flex-start;padding-top:max(118px,calc(env(safe-area-inset-top) + 94px))}.passive-review-progress{top:max(82px,calc(env(safe-area-inset-top) + 62px));width:calc(100vw - 48px)}.passive-review-stage{width:100%;min-height:min(47vh,390px)}.passive-review-current{width:76vw;min-height:280px}.passive-review-jp{font-size:clamp(3.1rem,17vw,6.2rem)}.passive-review-peek{top:43%;width:22vw;min-height:90px;padding:8px;opacity:.58}.passive-review-peek span,.passive-review-peek svg{display:none}.passive-review-peek strong{font-size:clamp(.9rem,4.2vw,1.25rem)}.passive-review-peek-previous{left:-6vw;text-align:left}.passive-review-peek-next{right:-6vw}.passive-review-audio-error{max-width:90vw;flex-direction:column;text-align:center}.passive-review-translation-toggle{margin-top:18px}.passive-review-footer{width:calc(100vw - 32px);gap:14px;margin-top:14px;padding-bottom:max(8px,env(safe-area-inset-bottom))}.passive-review-speed button{min-width:43px;height:38px;padding:0 7px}.passive-review-estimate strong{font-size:var(--text-20)}}@media(max-height:740px)and (min-width:721px){.passive-review-overlay{justify-content:flex-start;padding-top:105px}.passive-review-stage{min-height:330px}}@media(prefers-reduced-motion:reduce){.passive-review-current,.passive-review-orbit.is-playing i{animation:none}.passive-review-progress i,.passive-review-controls button,.passive-review-translation-toggle>i,.passive-review-translation-toggle>i:after,.passive-review-speed button{transition:none}}.review-modal{display:flex;width:min(480px,100%);max-height:90vh;flex-direction:column;border:1px solid var(--line2);border-radius:var(--r-3);background:var(--bg1);box-shadow:var(--shadow-overlay);overflow:hidden}.settings-panel-body{flex:1;min-height:0;overflow-y:auto;padding:0 1.5rem 1rem}.settings-section-title{margin:24px 0 12px;color:var(--ink);font-size:var(--text-16);font-weight:700}.settings-section-title:first-child{margin-top:16px}.settings-display{display:flex;flex-direction:column;gap:var(--sp-4)}.settings-display-note{margin:var(--sp-2) 0 0;color:var(--ink-3);font-size:var(--text-12)}.settings-display-note:empty{margin:0}.settings-action-dot{flex:none;width:16px;height:16px;border:1px solid var(--rule);border-radius:var(--r-pill)}.settings-action-dot[data-action=ink]{background:var(--action-ink)}.settings-action-dot[data-action=ai]{background:var(--action-ai)}.settings-action-dot[data-action=koke]{background:var(--action-koke)}.review-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--line1);color:var(--text2);font-size:var(--text-12)}.review-card{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:safe center;gap:16px;padding:28px 20px;cursor:pointer;min-height:200px;text-align:center;overflow-y:auto}.review-card-clickable:focus-visible{outline:3px solid var(--blue);outline-offset:-4px}.review-jp{display:flex;align-items:center;gap:8px;font-size:2.4em;font-weight:700;color:var(--text0)}.review-answer{display:flex;flex-direction:column;align-items:center;gap:6px;animation:review-fade .18s ease}@keyframes review-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.review-reading{color:var(--text2);font-size:1.1em}.review-meaning{font-size:1.55em;font-weight:700;color:var(--text0)}.review-tap{color:var(--text2);font-size:.85em}.review-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px;border-top:1px solid var(--line1)}.review-actions .button{justify-content:center}.review-done{display:flex;flex-direction:column;align-items:center;gap:10px;padding:40px 24px;text-align:center}.review-score{font-size:3em;font-weight:700;color:var(--blue)}.review-done p{margin:0;color:var(--text1);font-size:var(--text-14)}.review-concepts-section{border-top:1px solid var(--line1);padding:10px 16px 14px;display:flex;flex-direction:column;gap:8px}.review-concepts-header{display:flex;align-items:center;gap:6px;font-size:var(--text-12);font-weight:500;color:var(--text1)}.review-concepts-btn{align-self:flex-start;font-size:var(--text-12);padding:5px 12px}.review-btn{display:flex;align-items:center;gap:6px;margin:6px 0 4px;padding:7px 10px;border:1px solid var(--line1);border-radius:var(--r-2);background:var(--bg0);color:var(--text1);cursor:pointer;font-size:var(--text-12);justify-content:center;width:100%}.review-progress-bar{height:3px;background:var(--bg3);flex-shrink:0}.review-progress-fill{height:100%;background:var(--blue);transition:width .2s ease}.review-counter{margin-left:auto;font-size:var(--text-14);opacity:.6;font-variant-numeric:tabular-nums}.review-nextdue{color:var(--text2);font-size:var(--text-12);margin:0}.review-header{display:flex;align-items:center;gap:8px;justify-content:flex-start}.review-header>.icon-button:last-child{margin-left:auto}.review-flow-header-actions{display:flex;align-items:center;gap:6px;margin-left:auto}.review-checkpoint-confirm{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:28px 24px;text-align:center}.review-checkpoint-confirm>svg{color:var(--amber)}.review-checkpoint-confirm p{max-width:390px;margin:0;color:var(--text1);line-height:1.5}.review-checkpoint-skip-error{color:var(--red)!important;font-weight:500}.review-checkpoint-confirm-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}@media(max-width:480px){.review-checkpoint-confirm{align-items:stretch;padding:24px 16px}.review-checkpoint-confirm-actions{flex-direction:column-reverse}.review-checkpoint-confirm-actions .button{width:100%;justify-content:center;min-height:42px}}.review-autoplay-off{opacity:.38}.review-actions-3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.review-grade-again{color:var(--red);border-color:color-mix(in srgb,var(--red) 40%,var(--line2))}.review-grade-again:hover{background:color-mix(in srgb,var(--red) 10%,var(--bg2))}.review-grade-soon{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 40%,var(--line2))}.review-grade-soon:hover{background:color-mix(in srgb,var(--amber) 10%,var(--bg2))}.kanji-count-badge{margin-left:6px}.dict-overlay{z-index:70}.review-example-block{display:flex;flex-direction:column;align-items:center;gap:5px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line1);width:100%;max-width:340px}.review-example-sentence{display:flex;align-items:center;gap:6px;color:var(--text1);font-size:1.05em;text-align:center;flex-wrap:wrap;justify-content:center;line-height:1.9}.review-example-sentence ruby rt{font-size:.5em;color:var(--text2)}.review-example-fr{color:var(--text2);font-size:.92em;font-style:italic;text-align:center}.dialogue-modal{display:flex;width:min(480px,100%);max-height:88vh;max-height:88dvh;flex-direction:column;border:1px solid var(--line2);border-radius:var(--r-3);background:var(--bg1);box-shadow:var(--shadow-overlay);overflow:hidden}.dialogue-modal-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--line1);flex-shrink:0}.dialogue-modal-title{display:flex;align-items:center;gap:6px;font-size:var(--text-14);font-weight:700;color:var(--text0)}.dialogue-lines-container{flex:1;overflow-y:auto;padding:16px 14px;display:flex;flex-direction:column;gap:12px}.dialogue-line{display:flex;flex-direction:column;gap:4px;max-width:80%;animation:review-fade .2s ease}.dialogue-line.other{align-self:flex-start}.dialogue-line.self{align-self:flex-end;align-items:flex-end}.dialogue-speaker{font-size:var(--text-12);font-weight:500;color:var(--text2);padding-left:4px}.dialogue-bubble{padding:10px 13px;border-radius:var(--r-2);background:var(--bg2);border:1px solid var(--line1)}.dialogue-line.self .dialogue-bubble{background:var(--blue-bg);border-color:color-mix(in srgb,var(--blue) 30%,transparent)}.dialogue-jp{font-size:var(--text-20);color:var(--text0);line-height:1.6}.dialogue-jp ruby{ruby-align:center}.dialogue-jp ruby rt{font-size:max(.5em,10px);color:var(--text2)}.dialogue-fr{font-size:.82em;color:var(--text2);margin-top:4px;font-style:italic}.dialogue-line-actions{display:flex;gap:4px;align-self:flex-start;margin-top:2px}.dialogue-line.self .dialogue-line-actions{align-self:flex-end}.dialogue-tts-btn{display:flex;align-items:center;gap:4px;padding:3px 7px;border:1px solid var(--line1);border-radius:var(--r-2);background:transparent;color:var(--text2);cursor:pointer;font-size:var(--text-12);margin-top:2px;align-self:flex-start}.dialogue-line.self .dialogue-tts-btn{align-self:flex-end}.dialogue-tts-btn:hover{background:var(--bg3);color:var(--text0)}.dialogue-cultural-note{margin:0 14px 8px;padding:10px 12px;border-radius:var(--r-2);background:var(--amber-bg);color:var(--amber);font-size:var(--text-12);line-height:1.5;flex-shrink:0}.dialogue-new-words{margin:0 14px 8px;padding:10px 12px;border-radius:var(--r-2);background:var(--blue-bg);flex-shrink:0}.dialogue-new-words-title{font-size:var(--text-12);font-weight:700;color:var(--blue);margin-bottom:6px}.dialogue-new-word-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 0}.dialogue-new-word-row+.dialogue-new-word-row{border-top:1px solid var(--line1)}.dialogue-new-word-text{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;font-size:var(--text-14);color:var(--text0)}.dialogue-new-word-jp{font-weight:700}.dialogue-new-word-reading{font-size:var(--text-12);color:var(--text2)}.dialogue-new-word-fr{font-size:var(--text-12);color:var(--text1)}.dialogue-new-word-actions{display:flex;gap:4px;flex-shrink:0}.dialogue-new-word-actions .speak-btn{width:28px;height:28px}.dialogue-new-word-actions .speak-btn svg{width:14px;height:14px}.dialogue-controls{padding:10px 14px;border-top:1px solid var(--line1);flex-shrink:0}.dialogue-next-btn{width:100%;justify-content:center}.active-toggle{background:var(--blue-bg);border-color:var(--blue);color:var(--blue)}.mobile-drawer-overlay{position:fixed;inset:0;z-index:40;background:var(--scrim)}.mobile-drawer{position:absolute;top:0;left:0;width:min(340px,86vw);height:100%;max-height:100%;overflow-y:auto;background:var(--bg1);border-radius:0 var(--r-3) var(--r-3) 0;box-shadow:var(--shadow-overlay);animation:drawer-slide-in .22s cubic-bezier(.32,.72,0,1)}@keyframes drawer-slide-in{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}.mobile-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line1);font-weight:700;font-size:var(--text-14);position:sticky;top:0;background:var(--bg1);z-index:1}.mobile-drawer-section{padding:12px 14px;border-bottom:1px solid var(--line1)}.mobile-drawer-label{color:var(--ink-2);font-size:var(--text-14);margin-bottom:8px;font-weight:500}.mobile-drawer-goals{margin:0 0 8px 16px;padding:0;font-size:var(--text-12);line-height:1.5;color:var(--text1)}.mobile-vocab-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:8px}.mobile-menu-trigger{cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;border-radius:var(--r-2);padding:4px 8px 4px 4px;margin-left:-4px;transition:background .12s}.mobile-menu-trigger:hover{background:var(--bg2)}.mobile-menu-trigger:focus-visible{outline:2px solid var(--ai);outline-offset:2px}.hide-furigana rt{display:none}.furigana-btn{font-family:var(--font);font-size:var(--text-16);font-weight:700}.furigana-btn.furigana-off{opacity:.38}.phrase-trou-form{display:flex;flex-direction:column;gap:8px}.free-text-form{display:flex;flex-direction:column;gap:10px;min-width:0}.free-text-area{width:100%;max-width:100%;min-width:0;min-height:96px;padding:10px 12px;line-height:1.5;resize:vertical}.translation-lines{display:flex;flex-direction:column;gap:14px;min-width:0}.translation-line{display:grid;grid-template-columns:minmax(120px,.85fr) minmax(180px,1.15fr);gap:12px;align-items:stretch;width:100%;min-width:0;overflow:hidden}.translation-line-source{display:flex;align-items:flex-start;gap:8px;min-width:0;color:var(--text0);font-size:var(--text-20);font-weight:700;line-height:1.45}.translation-line-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0;border-radius:var(--r-pill);background:var(--blue-bg);color:var(--blue);font-size:var(--text-12);font-weight:700}.translation-line-answer{min-height:54px;resize:vertical}.translation-line-fixed-answer,.translation-retry-complete{display:inline-flex;align-items:flex-start;gap:7px;min-width:0;padding:9px 10px;border:1px solid color-mix(in srgb,var(--green),transparent 65%);border-radius:var(--r-2);background:var(--green-bg);color:var(--text0);font-size:var(--text-16);font-weight:700;line-height:1.45}.translation-line-fixed-answer svg,.translation-retry-complete svg{flex-shrink:0;margin-top:2px;color:var(--green)}.translation-line-fixed-answer span{min-width:0;overflow-wrap:anywhere}.translation-line-locked .translation-line-source{color:var(--text2)}@media(max-width:900px){.translation-line{grid-template-columns:minmax(0,1fr)}}.phrase-trou-bubble{display:block;font-size:var(--text-20);line-height:1.8;background:var(--bg1);border:1px solid var(--line1);border-radius:var(--r-2);padding:10px 14px}.phrase-trou-input{display:inline-block;width:5.5em;height:1.7em;padding:0 6px;border:0;border-bottom:2px solid var(--field);border-radius:0;background:var(--field-bg);color:var(--text0);font:inherit;font-size:var(--text-20);vertical-align:baseline;margin:0 2px}.phrase-trou-input:focus{outline:none;border-bottom-color:var(--ai);border-radius:var(--r-2) var(--r-2) 0 0;box-shadow:var(--halo);background:var(--field-bg)}.phrase-trou-input:disabled{opacity:.45}.phrase-trou-submit{align-self:flex-start;gap:5px;font-size:var(--text-16);padding:0 10px;min-height:44px}.exercise-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-3) var(--sp-4);margin-top:var(--sp-4)}.exercise-controls .phrase-trou-submit{align-self:center;margin-left:auto}.exercise-ime{border:1.5px solid var(--field);background:var(--field-bg)}@media(pointer:coarse){.phrase-trou-input{height:44px}.exercise-ime .ime-switch-btn{min-width:44px;min-height:44px}}.ecoute-widget{display:flex;flex-direction:column;gap:10px;margin-top:4px}.ecoute-controls{display:flex;gap:8px;flex-wrap:wrap}.ecoute-replay-btn,.ecoute-reveal-btn{font-size:var(--text-14);padding:4px 12px;min-height:30px}.ecoute-revealed-text{font-size:var(--text-20);line-height:1.8;padding:8px 12px;background:var(--bg1);border-radius:var(--r-2);border:1px solid var(--line1);margin:0}.word-order-widget{margin-top:8px;display:flex;flex-direction:column;gap:8px}.word-order-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:38px;padding:6px 10px;border:1px dashed var(--line2);border-radius:var(--r-2)}.assoc-widget{margin-top:8px;display:flex;flex-direction:column;gap:8px}.assoc-help{margin:0;font-size:.85em;color:var(--text1)}.assoc-rows{display:flex;flex-direction:column;gap:5px}.assoc-row{display:flex;align-items:center;gap:8px}.assoc-question{display:flex;align-items:center;gap:4px;min-width:70px;max-width:130px}.assoc-num{font-size:var(--text-12);color:var(--text2);min-width:14px;flex-shrink:0}.assoc-jp{font-size:var(--text-20);font-weight:700;color:var(--text0);word-break:break-all}.assoc-slot{flex:1;min-height:32px;padding:4px 9px;border:1.5px dashed var(--line2);border-radius:var(--r-2);display:flex;align-items:center;gap:5px;font-size:var(--text-16);color:var(--text2);cursor:pointer;transition:border-color .12s,background .12s;-webkit-user-select:none;user-select:none}.assoc-slot.droppable{border-color:var(--blue);background:var(--blue-bg)}.assoc-slot.drag-over{border-style:solid;border-color:var(--blue);background:var(--blue-bg)}.assoc-slot.filled{border-style:solid;border-color:var(--green);background:var(--green-bg);color:var(--text0);font-weight:500;cursor:grab}.assoc-slot.filled:active{cursor:grabbing}.assoc-slot-placeholder{color:var(--text2);font-size:var(--text-12);letter-spacing:3px}.assoc-chip-id{font-size:var(--text-12);font-weight:700;color:var(--blue);background:var(--blue-bg);padding:1px 4px;border-radius:var(--r-1);min-width:16px;text-align:center;flex-shrink:0}.assoc-slot.filled .assoc-chip-id{color:var(--green);background:transparent;padding:0}.assoc-pool{display:flex;flex-wrap:wrap;gap:5px;padding-top:6px;border-top:1px dashed var(--line1)}.assoc-chip{display:inline-flex;align-items:center;gap:5px;padding:8px 12px;background:var(--bg1);border:1px solid var(--line2);border-radius:var(--r-2);font:inherit;font-size:var(--text-20);color:var(--text0);cursor:grab;transition:border-color .12s,background .12s,box-shadow .12s}.assoc-chip:hover:not(:disabled){border-color:var(--blue);background:var(--bg3)}.assoc-chip.selected{border-color:var(--blue);background:var(--blue-bg);color:var(--blue);box-shadow:0 0 0 2px var(--blue-bg)}.assoc-chip:disabled{opacity:.4;cursor:not-allowed}.assoc-chip:active:not(:disabled){transform:scale(.97)}.assoc-submit{margin-top:2px}.vocab-search-bar{display:flex;gap:6px;padding:0 0 8px}.vocab-search-input{flex:1;min-width:0;padding:6px 10px}.vocab-search-clear{width:28px;height:28px;flex-shrink:0}.vocab-search-btn{gap:4px}.vocab-detail-modal{display:flex;width:min(440px,100%);max-height:90vh;max-height:90dvh;flex-direction:column;border:1px solid var(--line2);border-radius:var(--r-3);background:var(--bg1);box-shadow:var(--shadow-overlay);overflow:hidden}.vocab-detail-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--line1);color:var(--text2);font-size:var(--text-12)}.vocab-detail-content{flex:1;overflow-y:auto;padding:24px 20px;display:flex;flex-direction:column;align-items:center;gap:10px}.vocab-detail-word{display:flex;align-items:center;gap:10px;font-size:2.4em;font-weight:700;color:var(--text0)}.vocab-detail-speak{width:36px;height:36px;border-radius:50%;border:1px solid var(--line2);display:grid;place-items:center;cursor:pointer;background:transparent;color:var(--text1)}.vocab-detail-speak:hover{background:var(--bg2)}.vocab-detail-reading{color:var(--text2);font-size:.95em}.vocab-detail-meaning{font-size:1.25em;font-weight:700;color:var(--text0)}.vocab-detail-example{width:100%;margin-top:8px;padding:12px;border:1px solid var(--line1);border-radius:var(--r-2);background:var(--bg2);display:flex;flex-direction:column;gap:6px}.vocab-detail-example-jp{display:flex;align-items:center;gap:8px;font-size:1.05em;color:var(--text0)}.vocab-detail-example-fr{font-style:italic;color:var(--text2);font-size:.9em}.vocab-detail-strokes{width:100%;margin-top:12px;display:flex;flex-direction:column;gap:12px}.vocab-detail-section-title{font-size:var(--text-14);font-weight:500;color:var(--ink-2)}.vocab-detail-no-kanji{margin-top:12px;font-size:var(--text-12);color:var(--text2);font-style:italic}.vocab-delete-btn{color:var(--text2)}.vocab-delete-btn:hover,.vocab-delete-confirm-btn{color:var(--red)}.vocab-detail-dict-btn{margin-top:4px;display:inline-flex;align-items:center;gap:6px;font-size:var(--text-12)}.vocab-detail-jisho{margin:6px 0 4px;display:flex;flex-direction:column;gap:3px}.vocab-detail-jisho-sense{display:flex;align-items:baseline;gap:5px;font-size:var(--text-12);line-height:1.4}.vocab-detail-jisho-num{color:var(--text2);min-width:14px;font-size:var(--text-12)}.vocab-detail-jisho-def{color:var(--text1);flex:1}.dict-add-btn{color:var(--blue)}.dict-add-btn.added{color:var(--green);opacity:.7}.dictionary-entry-actions .speak-btn{width:44px;height:44px;border-radius:var(--r-2)}.dictionary-entry-actions .speak-btn svg{width:22px;height:22px}.vocab-action-bar{display:flex;gap:6px}.vocab-dict-btn.active-toggle{background:var(--bg3);color:var(--text0)}.inline-dict-panel{padding:6px 0}.inline-dict-form{display:flex}.inline-dict-input{width:100%;padding:6px 8px}.inline-dict-loading,.inline-dict-empty{padding:8px 0;font-size:var(--text-12);color:var(--text2)}.inline-dict-results{max-height:300px;overflow-y:auto}.inline-dict-entry{padding:6px 0;border-bottom:1px solid var(--line1)}.inline-dict-entry:last-child{border-bottom:none}.inline-dict-entry-head{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.inline-dict-word{font-weight:700;font-size:var(--text-14)}.inline-dict-reading{color:var(--text2);font-size:var(--text-12)}.inline-dict-def{font-size:var(--text-12);color:var(--text1);margin-top:2px}.inline-dict-add-btn{color:var(--blue)}.inline-dict-add-btn.added{color:var(--green);opacity:.7}.dictionary-popup{display:flex;width:min(500px,95vw);max-height:85vh;max-height:85dvh;flex-direction:column;border:1px solid var(--line2);border-radius:var(--r-3);background:var(--bg1);box-shadow:var(--shadow-overlay);overflow:hidden}.dictionary-content{flex:1;overflow-y:auto;padding:16px 20px}.dictionary-loading{display:flex;align-items:center;gap:8px;color:var(--text2);padding:24px 0;justify-content:center}.dictionary-error{color:var(--red);padding:16px 0;text-align:center}.dictionary-parts-note{margin-bottom:12px;padding:8px 10px;border-radius:var(--r-2);background:var(--bg2);color:var(--text2);font-size:var(--text-14);line-height:1.5}.dictionary-empty{color:var(--text2);padding:24px 0;text-align:center;font-style:italic}.dictionary-entry{margin-bottom:8px}.dictionary-entry-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.dictionary-word{font-size:var(--text-26);font-weight:700;color:var(--text0)}.dictionary-reading{font-size:var(--text-16);font-weight:400;color:var(--text2);margin-left:4px}.dictionary-form{margin-top:4px;color:var(--text1);font-size:var(--text-14);line-height:1.4}.dictionary-tags{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.dictionary-sense{display:flex;gap:6px;margin:6px 0;font-size:var(--text-14)}.dictionary-sense-num{color:var(--text2);font-weight:700;min-width:18px}.dictionary-sense-body{flex:1;min-width:0}.dict-sense-add{flex:none;align-self:flex-start;display:grid;place-items:center;min-width:44px;height:32px;border:1px dashed var(--line2);border-radius:var(--r-2);background:transparent;color:var(--text1);cursor:pointer}.dict-sense-add:hover:not(:disabled){border-style:solid;color:var(--text0)}.dict-sense-add:disabled{cursor:default}.dict-sense-add.added{color:var(--green);border-color:var(--green);border-style:solid;opacity:.7}@media(pointer:coarse){.dict-sense-add{height:44px}}.dictionary-pos{font-size:var(--text-12);color:var(--text2);font-style:italic;margin-bottom:2px}.dictionary-pos-entry{margin:4px 0 2px;font-size:var(--text-12);color:var(--text1)}.dictionary-def{color:var(--text0)}.dictionary-strokes{margin-top:12px;display:flex;flex-direction:column;gap:12px}.dictionary-separator{border:none;border-top:1px solid var(--line1);margin:12px 0}.conjugation-panel{padding:4px 0}.verb-type-badge{margin-bottom:12px}.conjugation-table{width:100%;border-collapse:collapse;font-size:var(--text-14)}.conjugation-table th{text-align:left;padding:6px 8px;font-size:var(--text-12);color:var(--text2);font-weight:500;border-bottom:2px solid var(--line1)}.conjugation-group-row td{padding:10px 8px 4px;font-size:var(--text-14);font-weight:500;color:var(--ink-2)}.conjugation-label{padding:5px 8px;vertical-align:middle}.conjugation-label-jp{display:block;font-size:var(--text-12);color:var(--text0);font-weight:500}.conjugation-label-fr{display:block;font-size:var(--text-12);color:var(--text2)}.conjugation-cell{padding:5px 8px;font-size:var(--text-14);color:var(--text0);cursor:pointer;border-radius:var(--r-2);transition:background .1s;position:relative}.conjugation-cell:hover{background:var(--bg2)}.conjugation-cell.conjugation-na{color:var(--text2);cursor:default}.conjugation-cell.conjugation-na:hover{background:none}.conjugation-speak{opacity:0;margin-left:4px;color:var(--text2);vertical-align:middle;transition:opacity .15s}.conjugation-cell:hover .conjugation-speak{opacity:1}.conjugation-empty{padding:24px 0;text-align:center;color:var(--text2);font-style:italic}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.kanji-stroke-container{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px;border:1px solid var(--line1);border-radius:var(--r-2);background:var(--bg0)}.kanji-stroke-label{font-size:1.3em;font-weight:700;color:var(--text0)}.kanji-stroke-svg{width:120px;height:120px}.kanji-stroke-svg svg{width:100%;height:100%}.kanji-stroke-svg path[d]{stroke:var(--text0);fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.kanji-stroke-path{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);animation:draw-stroke .5s ease forwards;animation-delay:var(--delay)}@keyframes draw-stroke{to{stroke-dashoffset:0}}.kanji-stroke-replay{display:flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--line2);border-radius:var(--r-2);background:transparent;color:var(--text2);font-size:var(--text-12);cursor:pointer;font-family:inherit}.kanji-stroke-replay:hover{background:var(--bg2);color:var(--text0)}.kanji-stroke-loading,.kanji-stroke-error{font-size:var(--text-12);color:var(--text2);padding:16px;text-align:center}.dict-kanji-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px}.dict-kanji-cell{flex:0 0 auto}.dict-kanji-row .kanji-stroke-container{padding:8px;gap:4px}.dict-kanji-row .kanji-stroke-svg{width:96px;height:96px}.dict-kanji-row .kanji-sheet{flex:1 1 130px;min-width:0;gap:8px;font-size:var(--text-14);line-height:1.45}.dict-kanji-row .kanji-sheet-readings{gap:4px 8px}.dict-kanji-row .kanji-sheet-readings dt{line-height:1.75}.dict-kanji-row .kanji-sheet-meta{font-size:var(--text-12)}.dict-kanji-row .kanji-sheet-components{gap:4px}.kanji-sheet{display:flex;flex-direction:column;gap:12px}.kanji-sheet-card-btn.speak-btn{display:inline-flex;align-self:flex-start;width:auto;min-height:44px;height:auto;gap:6px;padding:4px 14px;border-radius:var(--r-2);font:inherit;font-size:var(--text-14);font-weight:500;touch-action:manipulation}.kanji-sheet-card-btn.speak-btn:disabled{cursor:default}.kanji-sheet-readings{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;margin:0}.kanji-sheet-readings dt{color:var(--text2);font-size:var(--text-12);font-weight:500;line-height:1.6}.kanji-sheet-readings dd{margin:0;color:var(--text0)}.kanji-sheet-lang{margin-left:6px;padding:0 5px;border:1px solid var(--line2);border-radius:var(--r-2);color:var(--text2);font-size:var(--text-12);vertical-align:1px}.kanji-sheet-meta{margin:0;color:var(--text2);font-size:var(--text-14)}.kanji-sheet-components{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.kanji-family-chip.kanji-sheet-chip{white-space:normal;padding-block:2px;cursor:default}.kanji-sheet-loading,.kanji-sheet-error{margin:0;font-size:var(--text-14)}.kanji-sheet-loading{color:var(--text2)}.kanji-sheet-error{color:var(--red)}.vocab-detail-kanji-sens{margin:12px 0;border:1px solid var(--line1);border-radius:var(--r-2);overflow:hidden}.vocab-detail-section-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:6px 10px;background:var(--bg2);border:none;cursor:pointer;font-family:inherit;color:var(--text2);gap:6px}.vocab-detail-section-toggle:hover{background:var(--bg3, var(--bg2));color:var(--text0)}.kanji-sens-row{display:flex;align-items:flex-start;gap:10px;padding:8px 10px;border-top:1px solid var(--line1)}.kanji-sens-char{font-size:var(--text-26);font-weight:700;min-width:32px;text-align:center;line-height:1.2;color:var(--blue)}.kanji-sens-info{flex:1;min-width:0}.kanji-sens-reading{display:block;font-size:var(--text-12);color:var(--text2);margin-bottom:2px}.kanji-sens-meaning{display:block;font-size:var(--text-14);font-weight:500;color:var(--text0)}.kanji-sens-words{margin-top:4px;display:flex;flex-wrap:wrap;gap:4px}.kanji-sens-word{font-size:var(--text-12);color:var(--text2)}.kanji-family-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.kanji-family-chip{font-family:inherit;cursor:pointer;color:var(--text0);transition:background .12s,border-color .12s}.kanji-family-chip:not(.kanji-sheet-chip):hover{background:var(--blue-bg);border-color:var(--blue);color:var(--blue)}@media(pointer:coarse){.kanji-family-chip:not(.kanji-sheet-chip){min-height:44px}}.error-drill-modal{max-height:min(92vh,700px);display:flex;flex-direction:column;min-height:0}.error-drill-title{margin:0;color:inherit;font:inherit;font-weight:700}.error-general-review-btn{flex:0 0 auto;padding:5px 8px;font-size:var(--text-12);white-space:nowrap}.general-review-modal{width:min(560px,100%)}.general-review-modal .review-header h2{margin:0;color:var(--text0);font-size:var(--text-20)}.general-review-eyebrow{margin:0 0 2px;color:var(--ink-2);font-size:var(--text-14);font-weight:500}.general-review-content{display:flex;flex:1;min-height:0;flex-direction:column;gap:16px;overflow-y:auto;padding:18px}.general-review-status,.general-review-error,.general-review-summary{margin:0;color:var(--text2);font-size:var(--text-14)}.general-review-status{display:flex;align-items:center;justify-content:center;gap:8px;min-height:130px}.general-review-error{border:1px solid color-mix(in srgb,var(--red) 45%,transparent);border-radius:var(--r-2);background:var(--red-bg);color:var(--red);padding:10px 12px}.general-review-fieldset{min-width:0;margin:0;padding:0;border:0}.general-review-fieldset legend{margin-bottom:var(--sp-2);color:var(--ink-2);font-size:var(--text-14);font-weight:500}.general-review-options{display:flex;flex-wrap:wrap;gap:8px}.general-review-options label{display:inline-flex;align-items:center;gap:5px;min-height:var(--control-h);border:1px solid var(--line2);border-radius:var(--r-2);color:var(--text1);cursor:pointer;padding:6px 9px;font-size:var(--text-14)}.general-review-options label:has(input:checked){border-color:var(--ai);background:var(--ai-bg);color:var(--ai);box-shadow:inset 0 0 0 1px var(--ai)}.general-review-options input{accent-color:var(--ink)}.general-review-fieldset:disabled .general-review-options label{cursor:not-allowed;opacity:.65}.general-review-range{display:flex;gap:10px;margin-top:8px}.general-review-range label{display:flex;align-items:center;gap:6px;color:var(--text2);font-size:var(--text-12)}.general-review-range input{width:68px;padding:5px 6px}.general-review-resume,.general-review-confirm,.general-review-checkpoint{display:flex;align-items:center;gap:10px;border:1px solid var(--line1);border-radius:var(--r-2);background:var(--bg0);padding:12px}.general-review-confirm{align-items:flex-start;border-color:color-mix(in srgb,var(--amber) 45%,transparent);background:var(--amber-bg);color:var(--amber)}.general-review-resume>div,.general-review-confirm>div,.general-review-checkpoint>div{flex:1}.general-review-resume strong,.general-review-confirm strong,.general-review-checkpoint strong{color:inherit;font-size:var(--text-14)}.general-review-resume p,.general-review-confirm p,.general-review-checkpoint p{margin:3px 0 0;color:var(--text2);font-size:var(--text-12)}.general-review-inline-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.general-review-start{justify-content:center}.review-flow-modal{width:min(560px,100%)}.review-flow-progress{padding:10px 18px 12px;border-bottom:1px solid var(--line1)}.review-flow-progress-label{display:flex;justify-content:space-between;gap:12px;color:var(--text2);font-size:var(--text-12);font-weight:500}.review-flow-progress-track{height:4px;margin-top:7px;overflow:hidden;border-radius:var(--r-pill);background:var(--line1)}.review-flow-progress-track>span{display:block;height:100%;border-radius:inherit;background:var(--ink);transition:width .18s ease}.review-flow-content{display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:11px;padding:22px 18px}.review-flow-content h3,.review-flow-content p{margin:0}.review-flow-content h3{color:var(--text0);font-size:var(--text-16)}.review-flow-content p{color:var(--text2);font-size:var(--text-14);line-height:1.5}.review-flow-content .general-review-error{display:flex;flex-wrap:wrap;align-items:center;gap:10px;width:100%}.review-flow-note{color:var(--text2)!important;font-size:var(--text-12)!important}.review-flow-note code{overflow-wrap:anywhere}.review-flow-local-summary,.review-flow-unavailable{align-items:center;text-align:center}@media(max-width:520px){.error-general-review-btn{padding:5px 6px;font-size:var(--text-12)}.general-review-content{padding:14px}.general-review-resume{align-items:flex-start;flex-wrap:wrap}.general-review-resume .button{margin-left:28px}.general-review-checkpoint{align-items:flex-start;flex-direction:column}.general-review-checkpoint .button{width:100%;justify-content:center}}.drill-concepts-recap{display:flex;flex-wrap:wrap;gap:6px;padding:8px 16px;border-bottom:1px solid var(--line1);flex-shrink:0}.drill-concepts-summary{flex-basis:100%;color:var(--text2);font-size:var(--text-12)}.error-tabs{display:flex;border-bottom:1px solid var(--line1)}.error-tab{flex:1;padding:8px 12px 10px;background:none;border:none;color:var(--ink-2);font-size:var(--text-14);font-weight:500;font-family:inherit;cursor:pointer;transition:color .15s,background .15s,box-shadow .15s}.error-tab:hover{background:var(--sunken)}.error-tab.active{color:var(--ink);box-shadow:inset 0 -2px 0 var(--ink)}@media(max-width:480px){.error-tab{padding-inline:4px}}.error-date{font-size:var(--text-12);color:var(--text2);margin-left:auto}.error-drill-loading{padding:12px;text-align:center;color:var(--text2);font-size:var(--text-14)}.error-drill-content{flex:1;min-height:0;overflow-y:auto;padding:20px}.error-history-content{flex:1;min-height:0;display:flex;flex-direction:column}.error-filter-bar{display:flex;flex-wrap:wrap;gap:6px;padding:10px 16px;border-bottom:1px solid var(--line1);flex-shrink:0}.error-filter-btn{padding:3px 10px;border:1px solid var(--line2);border-radius:var(--r-pill);background:transparent;font-size:var(--text-12);font-family:inherit;cursor:pointer;color:var(--text1);transition:background .12s,border-color .12s}.error-filter-btn:not(.active):hover{background:var(--sunken);color:var(--ink)}.error-filter-btn.active{border-color:var(--ai);background:var(--ai-bg);color:var(--ai);box-shadow:inset 0 0 0 1px var(--ai)}.error-list{flex:1;overflow-y:auto;padding:12px 16px 16px;display:flex;flex-direction:column;gap:10px}.error-card{border:1px solid var(--line1);border-radius:var(--r-2);padding:10px 12px;background:var(--bg1)}.error-card-header{display:flex;align-items:center;gap:6px;margin-bottom:8px;flex-wrap:wrap}.error-concept-tag{font-size:var(--text-12);color:var(--text2)}.error-lesson{margin-left:auto;font-size:var(--text-12);color:var(--text2)}.error-card-body{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.error-line{display:flex;align-items:center;gap:6px;font-size:var(--text-14)}.error-wrong{color:var(--red)}.error-wrong .pen-strike{color:var(--ink-2)}.error-expected ruby,.error-correction ruby{ruby-align:center}.error-expected rt,.error-correction rt{font-size:max(.5em,10px);font-weight:400}.error-expected{color:var(--green);font-weight:500}.error-correction{font-size:var(--text-14);color:var(--text2);font-style:italic;margin-top:4px}.error-resolve-btn{font-size:var(--text-12);padding:3px 10px}.error-empty-filter{text-align:center;color:var(--text2);font-size:var(--text-14);padding:20px 0}.error-older-toggle{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 4px;border:0;background:none;color:var(--text1);cursor:pointer;font:inherit;font-size:var(--text-14);font-weight:500}.det-modal{max-width:520px;width:95vw;padding:0 18px 18px}.det-modal .review-header{margin:0 -18px;padding-left:18px;padding-right:18px}.det-progress-bar{height:4px;background:var(--bg3);border-radius:var(--r-1);margin:0 0 6px;overflow:hidden}.det-progress-fill{height:100%;background:var(--blue);border-radius:var(--r-1);transition:width .35s ease}.det-counter{font-size:var(--text-12);color:var(--text2);text-align:right;margin-bottom:10px}.det-empty-state{display:grid;min-height:180px;place-items:center;padding:24px;color:var(--text2);text-align:center;font-size:var(--text-14)}.det-question{margin-bottom:14px}.det-question-text{font-size:var(--text-20);font-weight:700;color:var(--text0);line-height:1.5;margin:0}.det-exercise-body{display:flex;flex-direction:column;gap:12px}.det-answer-zone{min-height:48px;background:var(--bg0);border:1.5px dashed var(--line2);border-radius:var(--r-2);padding:8px 10px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.det-answer-placeholder{color:var(--text2);font-size:var(--text-16);font-style:italic}.det-pool-zone{display:flex;flex-wrap:wrap;gap:6px}.det-chip{padding:6px 12px;border-radius:var(--r-2);border:none;cursor:pointer;font-family:var(--font);font-size:var(--text-16);transition:opacity .15s,transform .1s}.det-chip ruby rt{font-size:var(--text-12)}.det-chip-pool{background:var(--bg2);color:var(--text0)}.det-chip-pool:hover:not(:disabled){background:var(--blue-bg);color:var(--blue)}.det-chip-pool:disabled{opacity:.45;cursor:default}.det-chip-selected{background:var(--blue);color:var(--accent-ink)}.det-chip-selected:hover:not(.det-chip-locked){background:color-mix(in srgb,var(--blue) 85%,black)}.det-chip-locked{cursor:default}.det-exercise-actions{display:flex;align-items:center;gap:8px;justify-content:flex-end}.det-reset-btn{background:none;border:none;cursor:pointer;color:var(--text2);padding:4px;display:flex;align-items:center}.det-reset-btn:hover{color:var(--text0)}.det-particle-sentence{font-size:var(--text-20);line-height:1.7;text-align:center;padding:12px 0}.det-particle-blank{display:inline-block;min-width:28px;text-align:center;border-bottom:2px solid var(--blue);color:var(--blue);margin:0 2px}.det-options-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}@media(max-width:480px){.det-options-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.det-option-btn{min-width:0;padding:10px 6px;overflow-wrap:anywhere;border-radius:var(--r-2);border:1.5px solid var(--line2);background:var(--bg1);font-size:var(--text-20);cursor:pointer;transition:background .15s,border-color .15s}.det-option-btn:hover:not(:disabled){background:var(--blue-bg);border-color:var(--blue)}.det-option-correct{background:var(--surface)!important;border-color:var(--ink)!important;color:var(--ink);font-weight:700}.det-option-correct .maru{margin-right:var(--sp-1)}.det-option-wrong{background:var(--surface)!important;border-color:var(--field)!important;color:var(--ink-2)}.det-option-disabled{opacity:.45;cursor:default}.det-association-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,.75fr);gap:12px}.det-association-left,.det-association-right{display:flex;flex-direction:column;gap:8px}.det-association-row,.det-association-target{border:1px solid var(--line1);border-radius:var(--r-2);background:var(--bg1);padding:8px}.det-association-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.det-association-item{font-size:var(--text-16);font-weight:500;color:var(--text0)}.det-association-choice-row{display:flex;gap:4px}.det-assoc-choice{min-width:32px;height:32px;border-radius:var(--r-2);border:1.5px solid var(--line2);background:var(--bg0);font-weight:700;cursor:pointer}.det-assoc-choice:hover:not(:disabled),.det-assoc-choice.selected{border-color:var(--blue);background:var(--blue-bg);color:var(--blue)}.det-conjugaison-verb{display:flex;align-items:center;gap:10px;font-size:var(--text-20);padding:8px 0}.det-verb-kanji{font-weight:700}.det-verb-arrow{color:var(--text2)}.det-verb-form{color:var(--blue);font-size:var(--text-16);background:var(--blue-bg);padding:2px 8px;border-radius:var(--r-2)}.det-conjugaison-input-row{display:flex;gap:8px}.det-conj-input{flex:1;min-width:0;padding:9px 12px}.det-input-correct{border-color:var(--ok)!important;background:var(--field-bg)!important}.det-input-wrong{border-color:var(--shu)!important;background:var(--field-bg)!important}.det-expected-answer{font-size:var(--text-16);color:var(--text1)}.det-expected-text{font-weight:500;color:var(--ink)}.det-feedback{display:flex;flex-direction:column;gap:6px;padding:var(--sp-3) var(--sp-3);border-radius:var(--r-2);background:var(--sunken);color:var(--ink);font-size:var(--text-16);font-weight:500;align-items:flex-start}.det-feedback>.det-expected-line{max-width:100%}.det-feedback svg{vertical-align:middle;margin-right:var(--sp-1)}.det-feedback .pen-fix,.det-expected-text{font-size:var(--text-20)}.verdict-right{display:inline-flex;align-items:center;gap:var(--sp-2)}.verdict-right .maru{width:20px;height:20px;margin-right:0}.det-feedback-gone{background:var(--amber-bg);color:var(--amber);font-size:var(--text-16);font-weight:500}.det-hint{font-size:var(--text-14);font-weight:400;color:var(--text1);margin:0;font-style:italic}.det-explanation{font-size:var(--text-16);font-weight:400;color:var(--text1);margin:2px 0 0;padding:8px 10px;background:var(--bg2);border-radius:var(--r-2);border-left:3px solid var(--rule);line-height:1.45}.det-feedback .det-explanation{background:var(--surface)}.det-hint-toggle{display:flex;align-items:center;margin:2px 0 4px}.det-hint-btn{background:none;border:none;padding:0;cursor:pointer;font-size:var(--text-14);color:var(--ink-2)}.det-hint-btn:hover{color:var(--ink);text-decoration:underline;text-underline-offset:4px}@media(pointer:coarse){.det-hint-btn{min-height:44px}}.det-next-btn{align-self:flex-end;margin-top:4px;display:flex;align-items:center;gap:4px}.det-summary{display:flex;flex-direction:column;align-items:center;gap:14px;padding:24px 16px;text-align:center}.det-summary-score{font-size:var(--text-56);font-weight:700;color:var(--text0)}.det-summary-label{font-size:var(--text-20);font-weight:400;color:var(--text1)}.det-summary-perfect{font-size:var(--text-16);color:var(--green);font-weight:700;margin:0}.det-summary-retry{font-size:var(--text-14);color:var(--text1);margin:0}.det-summary-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.det-loading,.det-error{padding:32px;text-align:center;color:var(--text2)}.graded-modal{max-width:740px;width:95vw;max-height:88vh;overflow-y:auto;padding:0 18px 18px}.graded-modal .review-header{margin:0 -18px;padding-left:18px;padding-right:18px}.graded-title-block{max-width:40rem;text-align:center;margin:0 auto 14px}.graded-title{font-size:var(--text-20);font-weight:700;margin:0;color:var(--text0)}.graded-title-fr{font-size:var(--text-14);color:var(--text2);margin:3px 0 0;font-style:italic}.graded-passage-wrap{position:relative;max-width:40rem;background:var(--bg0);border:1px solid var(--line1);border-radius:var(--r-2);padding:20px 24px;margin:0 auto 16px;line-height:2}.graded-passage{font-size:var(--text-20);color:var(--text0)}.graded-passage ruby rt{font-size:.6em}.graded-passage-lines{display:flex;flex-direction:column;gap:18px}.graded-line-row{--speaker: var(--text2);display:flex;align-items:flex-start;gap:10px;scroll-margin:24px}.graded-line-row.graded-speaker-0{--speaker: var(--film-speaker-0)}.graded-line-row.graded-speaker-1{--speaker: var(--film-speaker-1)}.graded-line-row.graded-speaker-2{--speaker: var(--film-speaker-2)}.graded-line-row.graded-speaker-3{--speaker: var(--film-speaker-3)}.graded-line-row.graded-speaker-4{--speaker: var(--film-speaker-4)}.graded-line{min-width:0}.graded-line-narration{padding:2px 4px;margin:0 -4px;border-radius:var(--r-2);transition:background .2s ease}.graded-narration-body{flex:1;min-width:0}.graded-line-narration .graded-line{color:var(--text0)}.graded-line-narration.is-active{background:var(--blue-bg)}.graded-side-right{flex-direction:row-reverse}.graded-avatar{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;margin-top:22px;border-radius:50%;background:color-mix(in srgb,var(--speaker) 16%,var(--bg1));border:1px solid color-mix(in srgb,var(--speaker) 40%,transparent);color:var(--speaker);font-size:var(--text-16);font-weight:700;line-height:1}.graded-bubble-wrap{display:flex;flex-direction:column;gap:3px;min-width:0;max-width:86%}.graded-side-right .graded-bubble-wrap{align-items:flex-end}.graded-line-head{display:flex;align-items:center;gap:6px;min-height:22px;padding:0 4px}.graded-side-right .graded-line-head{flex-direction:row-reverse}.graded-speaker-name{font-size:var(--text-12);font-weight:700;letter-spacing:.02em;color:var(--speaker)}.graded-bubble{padding:8px 15px 9px;border-radius:var(--r-3);border-top-left-radius:var(--r-2);background:color-mix(in srgb,var(--speaker) 7%,var(--bg1));border:1px solid color-mix(in srgb,var(--speaker) 26%,transparent);font-size:var(--text-20);line-height:1.9;transition:box-shadow .2s ease,border-color .2s ease}.graded-side-right .graded-bubble{border-top-left-radius:var(--r-3);border-top-right-radius:var(--r-2)}.graded-line-dialogue.is-active .graded-bubble{border-color:var(--speaker);box-shadow:0 0 0 3px color-mix(in srgb,var(--speaker) 20%,transparent)}.graded-line-dialogue .graded-line{color:var(--text0)}.graded-line-fr{margin:2px 0 0;font-family:var(--font);font-size:var(--text-14);line-height:1.5;font-style:italic;color:var(--text1)}.graded-line-dialogue .graded-line-fr{padding-top:5px;border-top:1px dashed color-mix(in srgb,var(--speaker) 30%,transparent)}.graded-line-actions{display:inline-flex;align-items:center;gap:2px;flex-shrink:0;opacity:.35;transition:opacity .15s ease}.graded-line-narration .graded-line-actions{margin-top:6px}.graded-line-row:hover .graded-line-actions,.graded-line-row.is-active .graded-line-actions,.graded-line-actions:focus-within{opacity:1}.graded-line-action{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:22px;padding:0 5px;border:none;border-radius:var(--r-2);background:transparent;color:var(--text2);font-family:var(--font);font-size:var(--text-12);font-weight:700;letter-spacing:.03em;cursor:pointer;transition:background .15s ease,color .15s ease}.graded-line-action:hover,.graded-line-fr-btn.active{color:var(--blue);background:var(--blue-bg)}@media(pointer:coarse){.graded-line-actions{opacity:.75}.graded-line-action{min-width:44px;height:44px;font-size:var(--text-12)}.graded-line-head{min-height:44px}.graded-avatar{margin-top:44px}.graded-line-narration .graded-line-actions{margin-top:0}}@media(max-width:520px){.graded-passage-wrap{padding:16px 12px}.graded-avatar{display:none}.graded-bubble-wrap{max-width:94%}.graded-bubble{font-size:var(--text-20)}}.graded-questions{max-width:40rem;margin:24px auto 0;padding:18px 20px 4px;border-top:1px solid var(--line1);background:var(--bg2);border-radius:0 0 var(--r-2) var(--r-2)}.graded-questions-title{font-size:var(--text-14);font-weight:500;color:var(--ink-2);margin:0 0 10px}.graded-question-block{margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--line1)}.graded-question-block:last-child{border-bottom:none}.graded-question-text{font-size:var(--text-14);color:var(--text0);margin:0 0 8px}.graded-input-row{display:flex;gap:8px}.graded-input{flex:1;padding:8px 12px}.graded-input-ok{border-color:var(--green)!important;background:var(--green-bg)!important}.graded-input-ko{border-color:var(--red)!important;background:var(--red-bg)!important}.graded-check-btn{white-space:nowrap}.graded-result{margin-top:6px;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-2);background:var(--sunken);color:var(--ink);font-size:var(--text-14);font-weight:500}.graded-questions .graded-result{background:var(--surface)}.graded-result .pen-fix{font-size:var(--text-20)}.graded-footer{display:flex;gap:8px;justify-content:flex-end;padding-top:10px;border-top:1px solid var(--line1);margin-top:8px;flex-wrap:wrap}.graded-back-btn{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-12);color:var(--blue);background:none;border:none;padding:0 0 8px;cursor:pointer;font-family:inherit}.graded-back-btn:hover{text-decoration:underline}.roleplay-trigger-btn{display:inline-flex;align-items:center;gap:5px}.roleplay-container{display:flex;flex-direction:column;flex:1;min-height:0}.roleplay-header-note{font-size:var(--text-12);color:var(--text2);padding:6px 14px;background:var(--blue-bg);border-radius:var(--r-2);margin:0 0 8px;display:flex;align-items:center;gap:6px}.roleplay-back-btn{margin-left:auto;background:none;border:none;cursor:pointer;color:var(--blue);font-size:var(--text-12);padding:2px 6px}.roleplay-lines{flex:1;overflow-y:auto}.roleplay-input-line .dialogue-bubble{background:var(--blue-bg)!important}.roleplay-bubble{width:100%}.roleplay-revealed{font-size:var(--text-14);line-height:1.5}.roleplay-oral-prompt{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.roleplay-oral-hint{font-size:var(--text-14);color:var(--text2);font-style:italic}.roleplay-reveal-btn{background:none;border:1px solid var(--line2);border-radius:var(--r-2);padding:4px 10px;font-size:var(--text-12);cursor:pointer;color:var(--text1);white-space:nowrap}.roleplay-reveal-btn:hover{background:var(--bg2)}.roleplay-done{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;font-size:var(--text-14);font-weight:500;color:var(--green);border-top:1px solid var(--line1);margin-top:8px}.roleplay-picker{display:flex;flex-direction:column;align-items:center;gap:14px;padding:24px 16px;text-align:center}.roleplay-picker-label{font-size:var(--text-14);color:var(--text1);margin:0}.roleplay-picker-btns{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.roleplay-speaker-btn{font-size:var(--text-16);padding:10px 20px}.roleplay-cancel-btn{font-size:var(--text-14);color:var(--text2)}.login-switch-link{background:none;border:none;color:var(--blue);font-size:var(--text-12);cursor:pointer;text-align:center;padding:4px 0}.login-switch-link:hover{text-decoration:underline}.register-dialog{width:min(400px,100%)}.invitation-code-input{font-family:var(--font-mono);font-size:max(16px,var(--text-16))!important}.settings-user-row{display:flex;align-items:center;gap:8px;padding-bottom:6px!important;border-bottom:1px solid var(--line1);margin-bottom:2px}.settings-user-avatar{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--blue);color:var(--accent-ink);font-size:var(--text-12);font-weight:700}.settings-user-name{font-size:var(--text-12);font-weight:500;color:var(--text0)}.placement-container{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:18px;background:var(--bg0)}.placement-card{display:flex;flex-direction:column;align-items:center;gap:16px;width:min(480px,100%);padding:28px 24px;border:1px solid var(--line2);border-radius:var(--r-3);background:var(--bg1);box-shadow:var(--shadow-overlay)}.placement-card .mark{width:48px;height:48px;font-size:var(--text-26)}.placement-card h2{margin:0;text-align:center;font-size:var(--text-20)}.placement-intro-text{margin:0;color:var(--text1);font-size:var(--text-14);line-height:1.6;text-align:center;max-width:380px}.placement-sections-preview{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.placement-start-btn{width:100%;max-width:260px;margin-top:4px}.placement-loading{color:var(--text1);font-size:var(--text-14);text-align:center}.placement-test-card{gap:12px;width:min(520px,100%)}.placement-test-header{display:flex;justify-content:space-between;align-items:center;width:100%}.placement-section-label{font-size:var(--text-14);font-weight:500;color:var(--ink-2)}.placement-counter{font-size:var(--text-12);color:var(--text2);font-variant-numeric:tabular-nums}.placement-progress-bar{width:100%;height:4px;border-radius:var(--r-1);background:var(--bg2);overflow:hidden}.placement-progress-fill{height:100%;background:var(--blue);border-radius:var(--r-1);transition:width .3s ease}.placement-question-body{width:100%;display:flex;flex-direction:column;gap:14px}.placement-question-text{margin:0;font-size:var(--text-16);line-height:1.6;text-align:center;color:var(--text0)}.placement-sentence{margin:0;font-size:var(--text-16);line-height:1.7;text-align:center;color:var(--text0)}.placement-blank{display:inline-block;min-width:32px;padding:1px 6px;margin:0 2px;border-bottom:2px solid var(--blue);text-align:center;font-weight:500;color:var(--blue)}.placement-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}.placement-option-btn{padding:10px 14px;border:1px solid var(--line2);border-radius:var(--r-2);background:var(--bg0);color:var(--text0);font:inherit;font-size:var(--text-14);cursor:pointer;text-align:center;transition:all .15s ease}.placement-option-btn:hover:not(:disabled){border-color:var(--blue);background:var(--blue-bg)}.placement-option-selected{border-color:var(--blue);background:var(--blue-bg);color:var(--blue);font-weight:500}.placement-option-disabled{opacity:.4}.placement-result-card{gap:12px}.placement-result-icon{font-size:var(--text-36)}.placement-result-lesson{margin:0;font-size:var(--text-14);color:var(--text1);text-align:center}.placement-scores{width:100%;display:flex;flex-direction:column;gap:8px;margin:4px 0}.placement-score-item{display:flex;align-items:center;gap:8px}.placement-score-label{font-size:var(--text-12);font-weight:500;width:24px;text-align:right;color:var(--text2)}.placement-score-bar{flex:1;height:8px;border-radius:var(--r-2);background:var(--bg2);overflow:hidden}.placement-score-fill{height:100%;background:var(--blue);border-radius:var(--r-2);transition:width .5s ease}.placement-score-pct{font-size:var(--text-12);font-variant-numeric:tabular-nums;width:32px;text-align:right;color:var(--text1)}.placement-vocab-count{margin:0;font-size:var(--text-12);color:var(--text2);text-align:center}.admin-modal{width:min(700px,96vw);max-height:80vh;display:flex;flex-direction:column}.admin-tabs{display:flex;gap:2px;padding:0 16px;border-bottom:1px solid var(--line1)}.admin-tab{padding:8px 14px 10px;font-size:var(--text-14);font-weight:500;background:none;border:none;color:var(--ink-2);cursor:pointer;transition:color .15s,background .15s,box-shadow .15s}.admin-tab:hover{background:var(--sunken)}.admin-tab.active{color:var(--ink);box-shadow:inset 0 -2px 0 var(--ink)}.admin-content{flex:1;overflow-y:auto;padding:16px}.admin-loading{text-align:center;color:var(--text2);padding:24px;font-size:var(--text-14)}.admin-error{padding:8px 12px;border-radius:var(--r-2);background:var(--red-bg);color:var(--red);font-size:var(--text-12);margin-bottom:12px}.admin-table{width:100%;border-collapse:collapse;font-size:var(--text-14)}.admin-table th{text-align:left;font-size:var(--text-12);font-weight:500;color:var(--text2);padding:0 8px 8px;border-bottom:1px solid var(--line1)}.admin-table td{padding:10px 8px;border-bottom:1px solid var(--line1);vertical-align:middle}.admin-table tr:last-child td{border-bottom:none}.admin-row-self td{background:#3b82f608}.admin-row-dim td{opacity:.45}.admin-member-cell{display:flex;align-items:center;gap:10px}.admin-avatar{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--bg2);color:var(--text0);font-size:var(--text-12);font-weight:700;flex-shrink:0}.admin-member-name{font-weight:500;font-size:var(--text-14)}.admin-member-email{font-size:var(--text-12);color:var(--text2)}.admin-level-tag{font-size:var(--text-12);font-weight:500}.admin-level-pending{font-size:var(--text-12);color:var(--text2);font-style:italic}.admin-time{font-size:var(--text-12);color:var(--text2);white-space:nowrap}.admin-row-actions{display:flex;gap:4px;justify-content:flex-end}.admin-action-btn{display:inline-grid;place-items:center;width:28px;height:28px;border:1px solid var(--line2);border-radius:var(--r-2);background:var(--bg0);color:var(--text1);cursor:pointer}.admin-action-btn:hover{background:var(--bg2);color:var(--text0)}.admin-action-btn.danger:hover{border-color:var(--red);color:var(--red);background:var(--red-bg)}.admin-modal-backdrop{position:absolute;inset:0;background:var(--scrim);display:grid;place-items:center;z-index:10;border-radius:inherit}.admin-confirm{background:var(--bg1);border:1px solid var(--line2);border-radius:var(--r-3);padding:20px;width:min(320px,90%);display:flex;flex-direction:column;gap:10px}.admin-confirm p{margin:0;font-size:var(--text-14)}.admin-confirm-sub{font-size:var(--text-12)!important;color:var(--text2)!important}.admin-confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.admin-input{height:36px;padding:0 10px}.admin-generate-card{border:1px solid var(--line2);border-radius:var(--r-2);padding:16px;margin-bottom:20px;display:flex;flex-direction:column;gap:12px}.admin-section-title{margin:0 0 4px;font-size:var(--text-14);font-weight:700;color:var(--text0)}.admin-generate-row{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.admin-generate-btn{height:32px;padding:0 14px;font-size:var(--text-14);display:flex;align-items:center;gap:6px}.admin-code-display{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--r-2);background:var(--bg0);border:1px dashed var(--blue)}.admin-code-value{font-family:var(--font-mono);font-size:var(--text-20);font-weight:700;letter-spacing:4px;color:var(--blue);flex:1;text-align:center}.admin-code-mono{font-family:var(--font-mono);font-size:var(--text-14);letter-spacing:2px;font-weight:500}.admin-copy-btn{display:inline-grid;place-items:center;width:22px;height:22px;border:1px solid var(--line2);border-radius:var(--r-2);background:var(--bg1);color:var(--text2);cursor:pointer;margin-left:6px;font-size:var(--text-12)}.admin-copy-btn:hover{background:var(--bg2);color:var(--text0)}.admin-invite-hint{margin:0;font-size:var(--text-12);color:var(--text2);flex:1;line-height:1.5}.admin-code-status{font-size:var(--text-12);font-weight:500;padding:2px 7px;border-radius:var(--r-2)}.admin-code-status.available{background:#22c55e1a;color:var(--green)}.admin-code-status.used{background:var(--bg2);color:var(--text2)}.admin-cost{overflow-x:auto}.admin-cost-col{text-align:right;white-space:nowrap}.admin-cost-val{text-align:right;font-variant-numeric:tabular-nums;font-size:var(--text-14);padding-right:16px!important;white-space:nowrap}.admin-cost-dim{color:var(--text2);font-size:var(--text-12)}.admin-cost-warn{margin-left:5px;color:var(--amber);font-size:var(--text-12)}.admin-row-warn td{background:#f59e0b0a}.admin-cost-totals td{border-top:1px solid var(--line2);padding-top:8px;padding-bottom:4px}.exercise-block{width:100%;max-width:min(720px,100%);padding:var(--sp-3) var(--sp-4) var(--sp-4);margin-top:var(--sp-1);background:var(--surface);border:1px solid var(--ink);border-radius:var(--r-2)}.exercise-prompt{font-size:var(--text-20);font-weight:700;color:var(--text0);margin:0 0 var(--sp-3);line-height:1.5}.exercise-block .free-text-form-multi+*{margin-top:0}.quick-actions{display:flex;flex-wrap:wrap;gap:8px}.quick-actions .button{font-size:var(--text-20);padding:0 16px}.exercise-block .quick-actions .button{background:var(--bg1);border:1px solid var(--field);border-radius:var(--r-2);min-height:40px;color:var(--text0)}@media(pointer:coarse){.exercise-block .quick-actions .button{min-height:44px}}.exercise-block .quick-actions .button:hover:not(:disabled){border-color:var(--ink);background:var(--sunken)}.exercise-block .quick-actions .button:disabled{background:transparent;border-color:var(--field);color:var(--ink-3)}.exercise-block-answered{background:var(--sunken);border-color:var(--retrait-edge)}.exercise-answered-badge{margin-bottom:var(--sp-2)}.exercise-chips-answered{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-top:var(--sp-1)}.exercise-chip-answered{display:inline-flex;align-items:center;gap:2px;font-size:.8em;padding:2px var(--sp-2);background:var(--surface);border-radius:var(--r-2);color:var(--text2)}.exercise-chips-qcm{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:var(--sp-2) var(--sp-4)}.exercise-chips-qcm .exercise-chip-answered{gap:var(--sp-3);min-height:40px;padding:0 var(--sp-3) 0 var(--sp-2);border:1px solid var(--rule);background:var(--surface);font-size:var(--text-16);color:var(--ink-3)}.exercise-chip-answered.is-right{color:var(--ink);font-weight:500}.exercise-chip-answered .qcm-letter{position:relative;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:none;font-size:var(--text-14)}.exercise-chip-answered .qcm-letter .maru{position:absolute;left:-8px;top:-8px;width:44px;height:44px}.exercise-chip-verdict{margin-left:auto;color:var(--shu);font-size:var(--text-14);font-weight:500}.lesson-advance-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;background:var(--bg2);border-top:1px solid var(--line1)}.lesson-advance-banner span{font-size:.85em;color:var(--text2)}.lesson-advance-btn{flex-shrink:0;font-size:.85em}.composer-dimmed>*{opacity:.4}.karaoke-modal{width:min(600px,100%)}.karaoke-index-previous{display:flex;flex-direction:column;gap:8px}.karaoke-index-previous-toggle{display:flex;align-items:center;gap:6px;padding:8px 4px;border:none;background:transparent;font:inherit;color:var(--ink-2);font-size:var(--text-14);font-weight:500;cursor:pointer}.karaoke-index-previous-toggle:hover{color:var(--text0)}.karaoke-index-empty-current{text-align:center;color:var(--text2);font-size:var(--text-12);padding:4px 0 8px}.karaoke-index-empty-current-hint{font-size:var(--text-12);opacity:.75}.bank-card-list{display:flex;flex-direction:column;gap:8px;padding:12px 14px;overflow-y:auto}.bank-card{display:flex;flex-direction:column;gap:3px;width:100%;padding:12px 14px;border:1.5px solid var(--line2);border-radius:var(--r-2);background:var(--bg1);text-align:left;cursor:pointer;transition:border-color .12s,background .12s;font:inherit;color:inherit}.bank-card:hover{border-color:var(--blue);background:var(--blue-bg)}.bank-card-done{opacity:.55}.bank-card-done .bank-card-title{color:var(--text2)}.bank-card-disabled{opacity:.55;cursor:default;border-style:dashed}.bank-card-disabled:hover{border-color:var(--line2);background:var(--bg1)}.bank-card-title{font-size:var(--text-14);font-weight:700;color:var(--text0)}.bank-card-title ruby{ruby-align:center}.bank-card-title rt{font-size:max(.5em,10px);font-weight:400}.bank-card-icon{display:inline-flex;align-items:center;margin-right:6px;opacity:.6;vertical-align:middle}.bank-card-title-fr{font-weight:400;color:var(--text2)}.bank-card-warning{font-size:var(--text-12);color:var(--amber);margin-left:6px}.bank-card-sub{font-size:var(--text-12);color:var(--text2)}.bank-card-badge{color:var(--green);font-size:var(--text-12)}.bank-card-progress{margin-top:4px;height:4px;border-radius:var(--r-1);background:var(--line2);overflow:hidden}.bank-card-progress-fill{height:100%;background:var(--green);border-radius:var(--r-1);transition:width .2s}.karaoke-modal .dialogue-controls{display:flex;align-items:center;flex-wrap:nowrap;gap:8px;justify-content:flex-start}.karaoke-modal .dialogue-controls .button{flex-shrink:0}.karaoke-modal .dialogue-controls .button.primary{margin-left:auto}@media(max-width:600px){.karaoke-modal .dialogue-controls{gap:6px}.karaoke-btn-label{display:none}}.ask-panel{display:flex;flex-direction:column;border-top:1px solid var(--line2);background:var(--bg2);flex-shrink:0;max-height:260px}.ask-panel-header{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;border-bottom:1px solid var(--line1);flex-shrink:0}.ask-panel-title{font-size:var(--text-14);font-weight:500;color:var(--ink-2)}.ask-messages{flex:1;overflow-y:auto;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.ask-hint{font-size:var(--text-12);color:var(--text2);text-align:center;margin:4px 0 0}.ask-bubble{max-width:88%;padding:7px 11px;border-radius:var(--r-2);font-size:var(--text-16);line-height:1.45;white-space:pre-wrap;word-break:break-word}.ask-bubble-user{align-self:flex-end;background:var(--blue);color:var(--accent-ink);border-bottom-right-radius:0}.ask-bubble-assistant{align-self:flex-start;background:var(--bg1);color:var(--text0);border:1px solid var(--line1);border-bottom-left-radius:0;white-space:normal}.ask-loading{color:var(--text2);font-style:italic;display:flex;align-items:center;gap:6px}.ask-composer{display:flex;gap:8px;padding:8px 12px;border-top:1px solid var(--line1);flex-shrink:0;background:var(--bg2)}.ask-composer textarea{flex:1;resize:none;padding:6px 10px;line-height:1.4}.ask-composer .button.primary{padding:0 12px;align-self:flex-end;height:34px}.ask-panel-resizable{max-height:none;min-height:140px;flex-grow:0;flex-shrink:0;border-top:0}.ask-panel-resize{display:flex;align-items:center;justify-content:center;height:12px;flex-shrink:0;border-top:1px solid var(--rule);cursor:row-resize;touch-action:none;user-select:none;-webkit-user-select:none}.ask-panel-resize-grip{width:36px;height:4px;border-radius:var(--r-1);background:var(--rule);transition:background .15s}.ask-panel-resize:hover .ask-panel-resize-grip,.ask-panel-resize:focus-visible .ask-panel-resize-grip,.ask-panel.is-resizing .ask-panel-resize-grip{background:var(--ink-2)}.ask-panel-resize:focus-visible{outline:2px solid var(--ai);outline-offset:-2px}.ask-panel.is-resizing{user-select:none;-webkit-user-select:none}@media(pointer:coarse){.ask-panel-resize{height:24px}.ask-panel-resize-grip{width:44px;height:5px}}.ask-toggle-active{background:var(--ai-bg)!important;color:var(--ai)!important;border-color:var(--ai)!important;box-shadow:inset 0 0 0 1px var(--ai)!important}.chat-ask-wrap{display:flex;flex-direction:column;flex-shrink:0}.chat-panel .ask-panel{max-height:min(320px,45vh)}.ask-chat-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 14px;background:var(--bg2);border-top:1px solid var(--line1)}.ask-chat-footer span{font-size:.8em;color:var(--text2)}.exercise-ask-btn{align-self:flex-start;margin-top:2px;min-height:30px;padding:0 var(--sp-2);font-size:var(--text-12)}.exercise-ask-panel{width:100%;display:flex;flex-direction:column;gap:0;margin-top:var(--sp-1);border:1px solid var(--line2);border-radius:var(--r-2);background:var(--bg2);overflow:hidden}.exercise-ask-messages{display:flex;flex-direction:column;gap:6px;padding:var(--sp-2) var(--sp-2);max-height:200px;overflow-y:auto}.exercise-ask-composer{display:flex;gap:6px;padding:6px var(--sp-2);border-top:1px solid var(--line1);background:var(--bg2)}.exercise-ask-composer textarea{flex:1;resize:none;padding:var(--sp-1) var(--sp-2);line-height:1.4}.exercise-ask-composer .button.primary{padding:0 var(--sp-2);height:28px;align-self:flex-end}.karaoke-level-badge{font-size:var(--text-12);color:var(--text2);margin-left:6px}.karaoke-validated-badge{display:inline-flex;align-items:center;gap:3px;font-size:var(--text-12);font-weight:500;color:var(--green);margin-left:8px}.karaoke-player-wrap{position:relative;width:100%;aspect-ratio:16 / 9;background:#000;flex-shrink:0}.karaoke-yt-player{width:100%;height:100%}.karaoke-yt-player iframe{width:100%;height:100%;border:0;display:block}.karaoke-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:var(--text-14);color:#ccc;background:#000000b3}.film-clip-error{flex-direction:column;gap:10px;text-align:center;padding:12px}.karaoke-placeholder{padding:20px 18px;background:color-mix(in srgb,var(--amber) 10%,var(--bg0));border-bottom:1px solid color-mix(in srgb,var(--amber) 30%,transparent);font-size:var(--text-14);line-height:1.5;flex-shrink:0}.karaoke-placeholder code{font-family:var(--font-mono);font-size:var(--text-12);background:var(--bg2);padding:1px 4px;border-radius:var(--r-1)}.karaoke-lines{gap:6px}.karaoke-line{display:flex;flex-direction:column;max-width:88%;gap:3px;padding:4px 0;transition:opacity .2s}.karaoke-line.align-start{align-self:flex-start}.karaoke-lines:has(.karaoke-active) .karaoke-line:not(.karaoke-active){opacity:.38}.karaoke-active{opacity:1!important}.karaoke-bubble{position:relative;padding:8px 12px;border-radius:var(--r-2);background:var(--bg2);border:1px solid var(--line1);cursor:pointer;transition:border-color .15s}.karaoke-bubble:hover{border-color:var(--blue)}.karaoke-active .karaoke-bubble{border-color:var(--blue);background:var(--blue-bg)}.karaoke-jp{font-size:var(--text-16);font-weight:500;line-height:1.7}.karaoke-fr{font-size:var(--text-12);color:var(--text2);margin-top:2px;font-style:italic}@keyframes karaoke-loop-pulse{0%,to{border-color:var(--blue)}50%{border-color:color-mix(in srgb,var(--blue) 40%,transparent)}}.karaoke-bubble-looping{animation:karaoke-loop-pulse 1s ease-in-out infinite}.karaoke-tap-words .karaoke-bubble{cursor:default;padding-right:84px}.karaoke-tap-words .karaoke-jp{cursor:pointer}.karaoke-line-actions{position:absolute;top:2px;right:2px;display:flex;gap:2px}.karaoke-line-btn{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--r-2);background:transparent;color:var(--text2);cursor:pointer}.karaoke-line-btn:hover:not(:disabled),.karaoke-line-btn:focus-visible{color:var(--blue);background:var(--blue-bg)}.karaoke-line-btn.active{color:var(--blue)}.karaoke-line-btn:disabled{opacity:.4;cursor:default}@media(max-width:600px){.karaoke-tap-words .karaoke-bubble{padding-right:44px;min-height:84px}.karaoke-line-actions{flex-direction:column}}.karaoke-jp .bk-tok.bk-unk:not(:hover){background:var(--unknown-bg);border-radius:var(--r-1)}.karaoke-jp .bk-tok:hover{background:var(--blue-bg);border-radius:var(--r-1)}.film-screen{display:flex;flex:1;flex-direction:column;min-width:0;height:100%;overflow:hidden}.film-shelves{display:flex;flex-direction:column;gap:22px;padding:14px;overflow-y:auto}.film-shelf{display:flex;flex-direction:column;gap:12px}.film-shelf-heading{display:flex;align-items:center;gap:8px;padding-bottom:7px;border-bottom:1px solid var(--line1)}.film-shelf-heading h4{margin:0;font-size:var(--text-14);color:var(--text0)}.film-shelf-heading>span{min-width:22px;padding:2px 7px;border-radius:var(--r-pill);background:var(--bg2);color:var(--text2);font-size:var(--text-12);font-weight:700;text-align:center}.film-shelf-levels{display:flex;flex-wrap:wrap;gap:4px;margin-left:6px}.film-shelf-level{min-width:40px;min-height:32px;padding:0 10px;border:1px solid var(--line2);border-radius:var(--r-pill);background:transparent;color:var(--text1);font:inherit;font-size:var(--text-12);font-weight:500;cursor:pointer}.film-shelf-level:hover{background:var(--bg2)}.film-shelf-level-active,.film-shelf-level-active:hover{border-color:var(--blue);background:var(--blue-bg);color:var(--blue)}.film-shelf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px}.film-shelf-card{display:flex;flex-direction:column;gap:8px;min-width:0;padding:8px;border:1.5px solid var(--line2);border-radius:var(--r-2);background:var(--bg1)}.film-shelf--current .film-shelf-card{border:1px solid var(--ink);background:var(--surface)}.film-shelf-open{display:flex;flex-direction:column;gap:4px;min-height:44px;padding:0;border:none;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.film-shelf-open:disabled{cursor:default;opacity:.7}.film-shelf-poster{display:block;width:100%;aspect-ratio:2 / 3;object-fit:cover;border-radius:var(--r-2);border:1px solid var(--line2);background:var(--bg3);transition:border-color .12s}.film-shelf-poster-placeholder{display:flex;align-items:center;justify-content:center;color:var(--text2)}.film-shelf-open:not(:disabled):hover .film-shelf-poster{border-color:var(--ink)}.film-shelf-title{font-size:var(--text-14);font-weight:700;line-height:1.3;color:var(--text0);overflow-wrap:anywhere}.film-shelf-title-fr{font-size:var(--text-12);line-height:1.3;color:var(--text2);overflow-wrap:anywhere}.film-shelf-channel{font-size:var(--text-12);line-height:1.3;color:var(--text2);font-style:italic;overflow-wrap:anywhere}.video-library .film-shelf-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.video-library .film-shelf-poster{aspect-ratio:16 / 9}.film-shelf-meta,.film-shelf-difficulty{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:var(--text-12);color:var(--text2)}.film-shelf-coverage{border:0;font:inherit;font-size:var(--text-12);cursor:pointer}.film-shelf-coverage:hover{text-decoration:underline;text-underline-offset:2px}.film-shelf-pace-slow{color:var(--green)}.film-shelf-pace-fast{color:var(--amber)}.film-shelf-notions{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.film-shelf-progress{height:4px;border-radius:var(--r-1);background:var(--line2);overflow:hidden}.film-shelf-progress-fill{height:100%;border-radius:var(--r-1);background:var(--green)}.film-shelf-resume.book-library-btn{width:100%;padding:6px 10px;font-size:var(--text-14);line-height:1.25;text-align:center;white-space:normal}.film-shelf--seen{border-top:1px solid var(--line2);padding-top:12px}.film-shelf-toggle{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:4px 0;border:none;background:none;color:var(--text1);font:inherit;font-size:var(--text-16);font-weight:500;cursor:pointer}.film-shelf-empty{padding:20px 0;text-align:center;color:var(--text2)}.series-detail-body{display:flex;flex-direction:column;gap:16px;padding:14px;overflow-y:auto}.series-detail-body>*{width:100%;max-width:880px;margin-inline:auto}.series-detail-head{display:flex;gap:14px;align-items:flex-start}.series-detail-poster{flex-shrink:0;width:112px;aspect-ratio:2 / 3;object-fit:cover;border:1px solid var(--line2);border-radius:var(--r-2);background:var(--bg3)}.series-detail-info{display:flex;flex-direction:column;gap:6px;min-width:0}.series-detail-title{margin:0;font-size:var(--text-20);line-height:1.25;color:var(--text0);overflow-wrap:anywhere}.series-detail-title-fr{margin:0;font-size:var(--text-14);color:var(--text1)}.series-detail-info .film-shelf-meta{margin:0;font-size:var(--text-12)}.series-detail-resume.book-library-btn{align-self:flex-start;min-height:44px;margin-top:4px;white-space:normal}.series-season-pills{display:flex;flex-wrap:wrap;gap:8px}.series-season-pill{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border:1.5px solid var(--line2);border-radius:var(--r-pill);background:var(--bg1);color:var(--text1);font:inherit;font-size:var(--text-14);font-weight:500;cursor:pointer}.series-season-pill small{color:var(--text2);font-size:var(--text-12);font-weight:500}.series-season-pill.active{border-color:var(--ai);background:var(--ai-bg);color:var(--ai);box-shadow:inset 0 0 0 1px var(--ai)}.series-season-pill:focus-visible,.series-episode:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.series-episode-list{display:flex;flex-direction:column;gap:8px;margin-block:0;padding:0;list-style:none}.series-episode{display:flex;flex-direction:column;gap:4px;width:100%;min-height:44px;padding:10px 12px;border:1.5px solid var(--line2);border-radius:var(--r-2);background:var(--bg1);color:inherit;font:inherit;text-align:left;cursor:pointer}.series-episode:disabled{cursor:default;opacity:.7}@media(hover:hover){.series-episode:not(:disabled):hover{border-color:var(--ink);background:var(--sunken)}.series-season-pill:not(.active):hover{color:var(--text0)}}.series-episode-current{border-color:var(--blue);background:var(--blue-bg)}.series-episode-line{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 10px}.series-episode-name{min-width:0;font-size:var(--text-14);color:var(--text0);overflow-wrap:anywhere}.series-episode-code{font-weight:700}.series-episode-meta{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:var(--text-12);color:var(--text2)}.series-episode-title-jp{font-size:var(--text-12);color:var(--text2);overflow-wrap:anywhere}.series-episode-progress{display:block;margin-top:2px}.series-episode-progress .film-shelf-progress-fill{display:block}@media(max-width:420px){.series-detail-poster{width:88px}.series-detail-title{font-size:var(--text-20)}}.settings-progress-section{display:flex;flex-direction:column;gap:4px}.settings-progress-controls{display:flex;align-items:center;gap:6px}.settings-progress-controls select{max-width:210px}.settings-progress-message{display:block;font-size:var(--text-12);color:var(--text2);padding:4px 0}.srs-settings-section{display:flex;flex-direction:column;gap:9px}.srs-settings-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:var(--text-14)}.srs-settings-row .admin-input{width:86px;min-height:34px}.srs-preset-group{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px}.srs-preset-group .button{min-height:32px;padding:4px 7px;font-size:var(--text-12)}.srs-preset-group .button.active{border-color:var(--ai);background:var(--ai-bg);color:var(--ai);box-shadow:inset 0 0 0 1px var(--ai)}.srs-settings-types{display:flex;flex-wrap:wrap;align-items:center;gap:7px 11px;font-size:var(--text-14)}.srs-settings-types>span{width:100%;font-size:var(--text-14)}.srs-settings-types label{white-space:nowrap}.srs-settings-hint{color:var(--text2);font-size:var(--text-12);line-height:1.35}.srs-stats-summary{display:flex;flex-direction:column;gap:6px;margin-top:5px;padding:10px;border:1px solid var(--line1);border-radius:var(--r-2);background:var(--bg2);font-size:var(--text-12)}.srs-stats-summary>div{display:flex;justify-content:space-between;gap:8px}.srs-stats-summary span,.srs-stats-summary small{color:var(--text2)}.srs-stats-summary b{text-align:right;font-weight:700}.srs-stats-summary>.srs-forecast{flex-direction:column;justify-content:flex-start;gap:4px}.srs-forecast-chart{display:flex;align-items:flex-end;gap:6px;height:52px;padding-bottom:2px;border-bottom:1px solid var(--line1)}.srs-forecast-bar-col{flex:1;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:2px}.srs-forecast-bar-count{font-size:var(--text-12);color:var(--text2)}.srs-forecast-bar{width:100%;min-height:2px;border-radius:var(--r-1) var(--r-1) 0 0;background:var(--line1)}.srs-forecast-bar-col-today .srs-forecast-bar{background:var(--blue)}.srs-stats-summary>.srs-leech-list{flex-direction:column;justify-content:flex-start;gap:6px}.srs-leech-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:6px 0;border-top:1px solid var(--line1)}.srs-leech-row-suspended{opacity:.5}.srs-leech-info{display:flex;flex-direction:column;gap:1px}.srs-leech-jp{color:var(--text1);font-weight:700}.srs-leech-actions{display:flex;gap:6px}.srs-leech-actions .button{padding:3px 8px;font-size:var(--text-12)}.srs-leech-message{width:100%}@media(max-width:480px){.srs-settings-row{align-items:flex-start;flex-direction:column}.srs-preset-group{justify-content:flex-start}.srs-stats-summary>div{flex-direction:column;gap:1px}.srs-stats-summary b{text-align:left}.srs-stats-summary>.srs-forecast,.srs-stats-summary>.srs-leech-list{flex-direction:column}}.film-speaker-0{color:var(--film-speaker-0)}.film-speaker-1{color:var(--film-speaker-1)}.film-speaker-2{color:var(--film-speaker-2)}.film-speaker-3{color:var(--film-speaker-3)}.film-speaker-4{color:var(--film-speaker-4)}.kana-review-card{gap:20px}.kana-review-kana-big{display:flex;align-items:center;gap:10px;font-size:4.4em;font-weight:700;color:var(--text0);line-height:1}.kana-review-kana-answer{animation:review-fade .18s ease}.kana-review-romaji-front{display:flex;flex-direction:column;align-items:center;gap:10px}.kana-review-romaji-big{font-size:2.6em;font-weight:700;color:var(--text0);text-transform:lowercase}.kana-review-hint{color:var(--text2);font-size:.85em}.kana-review-romaji-answer{font-size:1.8em;font-weight:700;color:var(--purple);text-transform:lowercase}.kana-review-example-romaji{color:var(--text2);font-size:.85em;font-style:italic}.kana-review-title-badge{flex:1;text-align:center;font-size:var(--text-12);color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kana-review-done-actions{display:flex;flex-direction:column;gap:8px;width:100%;margin-top:8px}.kana-review-done-actions .button{justify-content:center;width:100%}.kana-review-callout{margin:0 12px 10px;padding:10px 12px;border:1px solid var(--line2);border-radius:var(--r-2);background:var(--bg2)}.kana-review-callout-text{font-size:var(--text-12);color:var(--text2);margin-bottom:8px}.kana-review-callout-btns{display:flex;gap:8px}.kana-review-callout-btns .tool-btn{flex:1;flex-direction:row;gap:var(--sp-2);min-height:44px;padding:0 var(--sp-3);border:1px solid var(--ink);border-radius:var(--r-2);background:var(--surface);color:var(--ink);font-size:var(--text-14);font-weight:500;line-height:1.2}.kana-review-callout-btns .tool-btn:hover{background:var(--sunken);color:var(--ink)}.kana-review-callout-btns .tool-btn:focus-visible{outline:2px solid var(--ai);outline-offset:2px}.kana-review-callout-glyph{font-size:var(--text-16);line-height:1}.kana-review-invite{margin-top:18px;padding-top:14px;border-top:1px solid var(--line2)}.kana-review-invite-text{font-size:var(--text-14);color:var(--text2);margin:0 0 10px}.kana-review-invite-btns{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.kana-review-invite-btn{display:inline-flex;align-items:center;gap:6px}.kana-review-invite-glyph{font-size:var(--text-16);line-height:1}.kana-review-drawer-section .kana-review-callout-btns{margin-top:2px}@media(max-width:480px){.kana-review-callout-btns,.kana-review-invite-btns{flex-direction:column}.kana-review-invite-btn{justify-content:center;width:100%}.kana-review-kana-big{font-size:3.4em}.kana-review-romaji-big{font-size:2.1em}}.message-badges{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px}.verdict-badge svg{flex-shrink:0}.inline-icon{flex:none;vertical-align:-.15em}.verdict-badge-missing{margin-top:6px}.karaoke-speaker-prefix{display:inline-block;margin-right:6px;font-size:var(--text-12);font-weight:700;vertical-align:middle}.karaoke-speaker-prefix.karaoke-speaker-0{color:var(--film-speaker-0)}.karaoke-speaker-prefix.karaoke-speaker-1{color:var(--film-speaker-1)}.karaoke-speaker-prefix.karaoke-speaker-2{color:var(--film-speaker-2)}.karaoke-speaker-prefix.karaoke-speaker-3{color:var(--film-speaker-3)}.karaoke-speaker-prefix.karaoke-speaker-4{color:var(--film-speaker-4)}.karaoke-bubble.karaoke-speaker-0{border-left:3px solid var(--film-speaker-0)}.karaoke-bubble.karaoke-speaker-1{border-left:3px solid var(--film-speaker-1)}.karaoke-bubble.karaoke-speaker-2{border-left:3px solid var(--film-speaker-2)}.karaoke-bubble.karaoke-speaker-3{border-left:3px solid var(--film-speaker-3)}.karaoke-bubble.karaoke-speaker-4{border-left:3px solid var(--film-speaker-4)}.button.soft.active{border-color:var(--ai);background:var(--ai-bg);color:var(--ai);box-shadow:inset 0 0 0 1px var(--ai)}.button.soft.active:hover:not(:disabled){background:var(--ai-bg)}.headless-overlay{position:fixed;inset:0;z-index:300;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;background:var(--bg0);color:var(--text0);padding:24px;text-align:center}.headless-close{position:absolute;top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));display:grid;place-items:center;width:44px;height:44px;background:none;border:1px solid var(--line2);border-radius:var(--r-2);color:inherit;cursor:pointer}.headless-close:hover{background:var(--bg2)}.headless-block{display:flex;flex-direction:column;align-items:center;gap:4px;max-width:34ch}.headless-block-label{margin:0;font-size:var(--text-14);font-weight:500;color:var(--ink-2)}.headless-question-text{margin:0;font-size:var(--text-16);font-weight:700}.headless-result{font-size:var(--text-20);font-weight:700;margin:0}.headless-result-correct{color:var(--green)}.headless-result-wrong{color:var(--red)}.headless-status{display:flex;flex-direction:column;align-items:center;gap:12px}.headless-status-listening{color:var(--green)}.headless-status-speaking{color:var(--blue)}.headless-status-paused{color:var(--amber)}.headless-label{font-size:var(--text-20);margin:0}.headless-transcript{opacity:.75;font-size:var(--text-16);max-width:30ch;margin:0}.headless-reply-text{opacity:.85;font-size:var(--text-16);max-width:34ch;margin:0;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}.headless-multipart-progress{opacity:.7;font-size:var(--text-14);margin:0}.headless-event-text{opacity:.6;font-size:var(--text-14);max-width:30ch;margin:0}.headless-pulse{animation:headless-pulse 1.4s ease-in-out infinite}@keyframes headless-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.15);opacity:.7}}.headless-pause{min-width:140px;min-height:48px}.headless-hint-text{position:absolute;bottom:max(16px,env(safe-area-inset-bottom));left:16px;right:16px;font-size:var(--text-14);opacity:.5;margin:0}.media-tabs-bar{display:flex;flex-shrink:0;align-items:stretch;gap:12px;padding:0 16px;border-bottom:1px solid var(--line1);background:var(--bg0)}.media-tabs{display:flex;gap:4px;min-width:0}.media-tab{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:56px;padding:0 14px;border:none;background:none;color:var(--ink-2);font:inherit;font-size:var(--text-14);font-weight:500;white-space:nowrap;cursor:pointer;transition:color .15s,background .15s,box-shadow .15s}.media-tab:hover{background:var(--sunken)}.media-tab.active{color:var(--ink);box-shadow:inset 0 -2px 0 var(--ink);cursor:default}.media-tab:focus-visible{outline:2px solid var(--blue);outline-offset:-4px}.media-tab svg{flex-shrink:0}.media-tabs-actions{display:flex;align-items:center;margin-left:auto;padding:5px 0}@media(max-width:720px){.media-tabs-bar{flex-wrap:wrap;gap:0;padding:0;border-bottom:0}.media-tabs{flex:1 0 100%;gap:0;border-bottom:1px solid var(--line1)}.media-tab{flex:1 1 0;min-width:0;min-height:48px;padding:0 6px;gap:5px}.media-tabs-actions{padding:12px 12px 0}}@media(max-width:560px){.media-tab svg{display:none}.media-tab{padding:0 2px;font-size:var(--text-14)}.media-tab span{overflow:hidden;text-overflow:ellipsis}}@media(max-width:400px){.media-tabs{overflow-x:auto;scrollbar-width:none}.media-tab{min-width:max-content;padding:0 1px;font-size:var(--text-12);letter-spacing:-.03em}}.book-overlay{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;background:var(--bg0)}.book-body{flex:1;overflow-y:auto;display:flex;flex-direction:column}.book-back-link{background:none;border:none;color:var(--blue);cursor:pointer;font:inherit;padding:0}.book-back-link:hover{text-decoration:underline}.book-library{display:flex;flex-direction:column;gap:16px;padding:16px;overflow-y:auto}.book-library-screen{display:flex;flex-direction:column;flex-shrink:0}.book-library-toolbar{display:flex;flex-shrink:0;align-items:center;gap:8px}.book-library-menu-wrap{position:relative;display:flex;min-width:0}.book-library-btn{display:inline-flex;flex:0 1 auto;align-items:center;justify-content:center;gap:6px;min-width:0;min-height:44px;padding:0 14px;border:1px solid var(--ink);border-radius:var(--r-2);background:var(--surface);color:var(--ink);font-size:var(--text-14);font-weight:500;white-space:nowrap;cursor:pointer}.book-library-btn:hover:not(:disabled){background:var(--sunken)}.book-library-btn:disabled{cursor:wait;opacity:.65}.book-library-btn-primary{border-color:var(--action);background:var(--action);color:var(--on-action)}.book-library-btn-primary:hover:not(:disabled){border-color:var(--action-hover);background:var(--action-hover)}.book-library-btn svg{flex-shrink:0}@media(max-width:420px){.book-library-btn{padding:0 10px}.book-library-toolbar .book-library-btn svg{display:none}}.book-library-more-btn{width:44px;height:44px;flex-shrink:0}.book-library-menu{left:auto;right:0;min-width:250px}.book-library-menu-end{left:auto;right:0;min-width:190px}.book-library-menu .options-item,.book-card-menu .options-item,.book-toolbar-menu .options-item{min-height:44px;gap:10px;font-size:var(--text-14);text-align:left;white-space:normal}.options-item svg{flex-shrink:0}.book-storage-warning{flex-shrink:0;margin:0;padding:8px 12px;border-radius:var(--r-2);background:var(--amber-bg);color:var(--amber);font-size:var(--text-14);line-height:1.45}.book-resume{display:flex;flex-direction:column;flex-shrink:0;overflow:hidden;border:1px solid var(--line2);border-radius:var(--r-2);background:var(--bg1)}.book-resume-open{display:flex;align-items:center;gap:12px;padding:10px 12px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.book-resume-open:hover{background:var(--bg2)}.book-resume-open:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.book-resume-cover{flex:0 0 48px}.book-resume-cover .book-card-cover{display:block;width:48px;border-radius:var(--r-2)}.book-resume-cover .book-gen-cover>*{display:none}.book-resume-body{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}.book-resume-kicker{color:var(--ink-2);font-size:var(--text-14);font-weight:500}.book-resume-title{overflow:hidden;font-size:var(--text-16);font-weight:700;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.book-resume-progress{display:flex;align-items:center;gap:8px}.book-resume-progress .book-card-progress{display:block;flex:1}.book-resume-progress .book-card-progress-fill{display:block}.book-resume-chevron{flex-shrink:0;color:var(--text2)}.book-resume-next{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;padding:6px 12px 8px;border-top:1px solid var(--line1);font-size:var(--text-14)}.book-resume-next-label{color:var(--ink-2);font-size:var(--text-14);font-weight:500}.book-resume-next .book-tadoku-suggestion-catalog,.book-resume-next .book-tadoku-suggestion-next{flex:0 1 auto;min-height:36px;padding:4px 0;border:0;background:none;color:var(--blue);font-weight:500}.book-resume-next .book-tadoku-suggestion-catalog{color:var(--text1);font-weight:400;white-space:normal}.book-resume-next .book-tadoku-suggestion-catalog:hover,.book-resume-next .book-tadoku-suggestion-next:hover{background:none;text-decoration:underline}.media-resume-cover--wide{flex-basis:96px}.media-resume-cover--wide>img,.media-resume-cover--wide>span{display:block;width:96px;aspect-ratio:16 / 9;object-fit:cover;border:1px solid var(--line2);border-radius:var(--r-2);background:var(--bg3)}.media-resume-cover--wide>span{display:flex;align-items:center;justify-content:center;color:var(--ink-2)}.media-resume-cover--tile{display:flex;align-items:center;justify-content:center;height:48px;border-radius:var(--r-2);background:var(--bg2);color:var(--ink-2);font-size:var(--text-14);font-weight:700}.media-resume .book-resume-next .media-resume-next-open{min-width:0;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.media-resume-next-info{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 8px;color:var(--text1)}@media(max-width:520px){.media-resume .book-resume-next .media-resume-next-open{flex:1 1 0}.media-resume-next-info{flex:1 1 100%}}.book-upload-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--r-2);border:1.5px solid var(--blue);background:var(--blue-bg);color:var(--blue);font-size:var(--text-14);font-weight:500;cursor:pointer}.book-upload-btn:hover{opacity:.85}.book-upload-error{margin:0;padding:8px 12px;border-radius:var(--r-2);background:var(--amber-bg);color:var(--amber);font-size:var(--text-14)}.book-library-empty{color:var(--text2);font-size:var(--text-14);text-align:center;padding:24px 0}.book-tadoku-suggestion{display:flex;flex-shrink:0;width:100%;margin:0;border:1px solid color-mix(in srgb,var(--purple) 35%,var(--line2));border-radius:var(--r-2);overflow:hidden}.book-tadoku-suggestion-catalog,.book-tadoku-suggestion-next{min-width:0;padding:10px 14px;border:0;background:color-mix(in srgb,var(--purple) 6%,var(--bg1));color:var(--text1);font-size:var(--text-14);text-align:left;cursor:pointer}.book-tadoku-suggestion-catalog{flex:1 1 48%}.book-tadoku-suggestion-next{flex:1 1 52%;border-left:1px solid color-mix(in srgb,var(--purple) 35%,var(--line2));font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-tadoku-suggestion-catalog:hover,.book-tadoku-suggestion-next:hover{background:color-mix(in srgb,var(--purple) 10%,var(--bg1))}.book-tadoku-suggestion-catalog:focus-visible,.book-tadoku-suggestion-next:focus-visible{position:relative;outline:2px solid var(--blue);outline-offset:-2px}.book-tadoku-suggestion-catalog:disabled,.book-tadoku-suggestion-next:disabled{cursor:wait;opacity:.65}@media(max-width:520px){.book-tadoku-suggestion{flex-direction:column}.book-tadoku-suggestion-next{border-top:1px solid color-mix(in srgb,var(--purple) 35%,var(--line2));border-left:0}}.lookup-suggestions{flex-shrink:0;width:100%;margin:0 0 14px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--blue) 30%,var(--line2));border-radius:var(--r-2)}.lookup-suggestions-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:var(--text-14)}.lookup-suggestions-msg{margin:6px 0 0;color:var(--text2);font-size:var(--text-14)}.lookup-suggestions-list{margin:10px 0 0;padding:0;list-style:none;max-height:320px;overflow-y:auto}.lookup-suggestions-list li{padding:6px 0;border-top:1px solid var(--line2)}.lookup-suggestions-list label{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:baseline;gap:8px;cursor:pointer}.lookup-suggestions-word{font-size:var(--text-16)}.lookup-suggestions-word small{color:var(--text2);font-size:var(--text-12)}.lookup-suggestions-meaning{overflow:hidden;color:var(--text2);font-size:var(--text-14);text-overflow:ellipsis;white-space:nowrap}.lookup-suggestions-count{color:var(--text2);font-size:var(--text-12);font-variant-numeric:tabular-nums}.lookup-suggestions-context{margin:2px 0 0 26px;color:var(--text2);font-size:var(--text-14)}.lookup-suggestions-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.book-library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px}.book-card{display:flex;flex-direction:column;gap:6px}.book-card-open{display:flex;flex-direction:column;gap:4px;padding:0;border:none;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.book-card-open:disabled{cursor:default;opacity:.7}.book-card-cover{width:100%;aspect-ratio:2 / 3;object-fit:cover;border-radius:var(--r-2);border:1px solid var(--line2);background:var(--bg2)}.book-card-cover-placeholder{display:flex;align-items:center;justify-content:center;padding:8px;text-align:center;font-size:var(--text-12);font-weight:500;color:var(--text1)}.book-card-title{font-size:var(--text-14);font-weight:700;line-height:1.3}.book-card-author{font-size:var(--text-12);color:var(--text2)}.book-card-cover-wrap{position:relative;display:block}.book-card-flag{position:absolute;top:6px;display:grid;width:24px;height:24px;place-items:center;border:1px solid var(--rule);border-radius:50%;background:var(--bg1);color:var(--text1)}.book-card-flag-favorite{left:6px;color:var(--amber)}.book-card-flag-favorite svg{fill:currentColor}.book-card-flag-audio{right:6px}.book-card-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.book-card-progress-row{position:relative;display:flex;align-items:center;gap:8px;width:100%}.book-card-progress-row .book-card-progress{flex:1;width:auto}.book-card-progress-spacer{flex:1}.book-card-progress-label{color:var(--text2);font-size:var(--text-12);font-variant-numeric:tabular-nums}.book-card-menu-wrap{flex-shrink:0;margin:-4px -6px -4px 0}.book-card-menu-btn{width:44px;height:44px;border-color:transparent;background:none;color:var(--text2)}.book-card-menu-btn:hover,.book-card-menu-btn[aria-expanded=true]{background:var(--bg2);color:var(--text0)}.book-card-menu{top:auto;bottom:calc(100% + 4px);width:250px;min-width:0}.book-card-menu-end{right:0;left:auto}.book-card-menu-start{right:auto;left:0}.book-card-labels{display:flex;flex-wrap:wrap;gap:6px;width:100%}.book-status-processing{animation:book-status-pulse 1.4s ease-in-out infinite}@keyframes book-status-pulse{0%,to{opacity:1}50%{opacity:.5}}.book-card-progress{width:100%;height:4px;border-radius:var(--r-1);background:var(--line2);overflow:hidden}.book-card-progress-fill{height:100%;background:var(--green);border-radius:var(--r-1);transition:width .2s}.book-card-delete-btn{background:none;border:1px solid var(--line2);border-radius:var(--r-2);color:var(--text2);font-size:var(--text-12);padding:2px 8px;cursor:pointer}.book-card-delete-btn:hover{color:var(--shu)}.book-library-read{display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--line2);padding-top:12px}.book-library-read-toggle{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;background:none;border:none;color:var(--text1);font:inherit;font-size:var(--text-16);font-weight:500;padding:4px 0;cursor:pointer}.book-library-read-due{font-size:var(--text-12);font-weight:500;color:var(--text2)}.book-reader{display:flex;flex-direction:column;flex:1;min-height:0}.book-reader-toolbar{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line1);flex-shrink:0}.book-reader-chapter-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-14);font-weight:700;color:var(--text1)}.book-reader-toolbar-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.book-reader-toolbar-actions .icon-button:disabled{opacity:.35;cursor:default}.book-audio-toggle-active{background:var(--blue-bg);color:var(--blue);border-color:var(--blue)}.book-toc,.book-settings-panel,.book-highlights-panel{flex-shrink:0;max-height:40vh;overflow-y:auto;background:var(--bg1);border-bottom:1px solid var(--line1);padding:10px 14px}.book-toc-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.book-toc-item{display:block;width:100%;text-align:left;padding:7px 10px;border:none;border-radius:var(--r-2);background:none;color:var(--text1);font:inherit;font-size:var(--text-14);cursor:pointer}.book-toc-item:hover{background:var(--bg2);color:var(--text0)}.book-toc-item-active{background:var(--blue-bg);color:var(--blue);font-weight:500}.book-settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;font-size:var(--text-14);color:var(--text1)}.book-settings-row:not(:last-child){border-bottom:1px solid var(--line1)}.book-settings-row input[type=range]{width:140px}.book-settings-toggle-group{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.book-settings-btn{padding:5px 10px;border:1px solid var(--line2);border-radius:var(--r-2);background:var(--bg2);color:var(--text1);font-size:var(--text-12);cursor:pointer}.book-settings-btn-active{border-color:var(--blue);background:var(--blue-bg);color:var(--blue);font-weight:500}.book-reader-page{--bk-page-pad: 20px;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding:var(--bk-page-pad)}.book-reader-loading{margin:auto;color:var(--text2);font-size:var(--text-14)}.book-theme-light{background:var(--reader-paper);color:#1a1918}.book-block{margin:0 0 1em}.book-heading{margin:1.5em 0 .75em;font-size:1.15em;font-weight:700}.book-block-img{display:block;max-width:100%;height:auto;margin:1em auto;border-radius:var(--r-2)}.book-reader-text{font-family:var(--font-reader)}.book-reader-text.bk-horizontal{flex:1;min-height:0;overflow-y:auto;max-width:42em;margin:0 auto}.book-reader-text.bk-vertical{writing-mode:vertical-rl;flex:1;min-height:0;overflow-x:auto;overflow-y:hidden;direction:ltr;overscroll-behavior:contain;scroll-behavior:smooth}.book-reader-text.bk-vertical{margin-bottom:calc(-1 * var(--bk-page-pad, 0px));padding-bottom:var(--bk-page-pad, 0px);scrollbar-width:auto;scrollbar-color:rgba(128,128,128,.6) rgba(128,128,128,.14)}@supports not (scrollbar-color: auto){.book-reader-text.bk-vertical::-webkit-scrollbar{height:14px}.book-reader-text.bk-vertical::-webkit-scrollbar-track{background:#80808024;border-radius:var(--r-2)}.book-reader-text.bk-vertical::-webkit-scrollbar-thumb{background:#80808099;border-radius:var(--r-2)}}.book-reader-text.bk-vertical.bk-paginated{scroll-snap-type:x mandatory}.book-reader-text.bk-vertical.bk-paginated .book-block{scroll-snap-align:end}.book-reader-text.bk-horizontal.bk-paginated{scroll-snap-type:y mandatory}.book-reader-text.bk-horizontal.bk-paginated .book-block{scroll-snap-align:start}.book-page-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0;padding-top:10px}.book-page-button{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line2);border-radius:var(--r-2);background:var(--bg1);color:var(--text1);padding:6px 9px;font:inherit;font-size:var(--text-12);cursor:pointer}.book-page-button:hover{background:var(--bg2);color:var(--text0)}.book-page-hint{color:var(--text2);font-size:var(--text-12);text-align:center}.book-page-bar{flex-shrink:0;border-top:1px solid var(--line1);background:var(--bg1);padding-bottom:env(safe-area-inset-bottom)}.book-page-bar-progress{height:3px;background:var(--line1)}.book-page-bar-progress-fill{height:100%;background:var(--blue);transition:width .2s ease}.book-page-bar-row{display:flex;align-items:center;gap:8px;padding:6px 10px}.book-page-bar-button{display:inline-flex;align-items:center;justify-content:center;gap:4px;flex-shrink:0;min-width:64px;min-height:48px;padding:0 14px;border:1px solid var(--line2);border-radius:var(--r-2);background:var(--bg0);color:var(--text0);font:inherit;font-size:var(--text-16);font-weight:500;cursor:pointer;touch-action:manipulation}.book-page-bar-button:hover:not(:disabled){background:var(--bg2)}.book-page-bar-button:disabled{opacity:.35;cursor:default}.book-page-bar-center{display:flex;flex:1;min-width:0;align-items:center;justify-content:center;gap:10px}.book-page-bar-count{color:var(--text1);font-size:var(--text-14);font-variant-numeric:tabular-nums;white-space:nowrap}.book-page-bar-extra{display:flex;align-items:center;gap:6px}.book-page-bar-fr{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 8px;border:1px solid var(--line2);border-radius:var(--r-2);background:var(--bg0);color:var(--text0);font:inherit;font-size:var(--text-14);font-weight:500;line-height:1;cursor:pointer;touch-action:manipulation}.book-page-bar-fr:not(.book-page-bar-fr-active):hover:not(:disabled){background:var(--bg2)}.book-page-bar-fr:disabled{opacity:.35;cursor:default}.book-page-bar-fr-active{border-color:var(--ai);background:var(--ai-bg);color:var(--ai);box-shadow:inset 0 0 0 1px var(--ai)}@media(max-width:479px){.book-page-bar-label{display:none}}@media(prefers-reduced-motion:reduce){.book-page-bar-progress-fill{transition:none}}.book-theme-dark{background:#16161a;color:#e8e6e3}.book-theme-sepia{background:#f4ecd8;color:#4b3f2f}.bk-tok{cursor:pointer}.bk-tok:hover,.bk-tok.bk-tok-active{background:#78a0ff40;border-radius:var(--r-1)}.bk-tok.bk-tok-speaking{background:#ffbe2852;box-shadow:inset 0 -2px #e69600bf;border-radius:var(--r-1)}.bk-block-speaking{background:var(--blue-bg);border-radius:var(--r-2);transition:background .25s ease}.book-reader-text,.book-extracted-text-wrap,.bk-page-layer{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}@media(hover:none)and (pointer:coarse){.book-reader-text,.book-extracted-text-wrap,.bk-page-layer,.bk-page-layer-word{-webkit-user-select:none;user-select:none}}.bk-tok.bk-sel-active,.book-extracted-token.bk-sel-active,.bk-page-layer-word.bk-sel-active{background:#4084f459;border-radius:var(--r-1)}.book-reader-text.bk-touch-armed{touch-action:none}.bk-tok.bk-sync-active{box-shadow:0 .12em #009688cc;transition:box-shadow .2s ease}.bk-vertical .bk-tok.bk-sync-active{box-shadow:-.12em 0 #009688cc}.book-theme-dark .bk-tok.bk-sync-active{box-shadow:0 .12em #4dd0c4d9}.book-theme-dark .bk-vertical .bk-tok.bk-sync-active{box-shadow:-.12em 0 #4dd0c4d9}.bk-sync-row{position:relative;padding-inline-start:1.45em}.bk-sync-play{position:absolute;inset-inline-start:0;inset-block-start:.15em;display:inline-flex;align-items:center;justify-content:center;width:2em;height:2em;padding:0;border:1px solid transparent;border-radius:50%;background:transparent;color:inherit;font-size:.65em;line-height:1;opacity:.3;cursor:pointer;user-select:none;-webkit-user-select:none;writing-mode:horizontal-tb}.bk-vertical .bk-sync-play{left:auto;right:0}.bk-sync-row:hover .bk-sync-play,.bk-sync-play:focus-visible{opacity:.8}.bk-sync-row-active .bk-sync-play{opacity:1;color:var(--teal);border-color:color-mix(in srgb,var(--teal) 50%,transparent)}.bk-sync-play:focus-visible{outline:2px solid var(--blue);outline-offset:1px}@media(hover:none){.bk-sync-play{opacity:.5}}.bk-sent-row{position:relative;padding-inline-end:44px}.book-reader-page-mode .book-reader-text.bk-horizontal{width:100%}.bk-sent-toggle{position:absolute;top:0;right:0;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid transparent;border-radius:var(--r-2);background:transparent;color:inherit;opacity:.45;cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:manipulation;writing-mode:horizontal-tb}.bk-vertical .bk-sent-toggle{top:auto;bottom:0}.bk-sent-row:hover .bk-sent-toggle,.bk-sent-toggle:focus-visible{opacity:.85}.bk-sent-toggle[aria-pressed=true]{opacity:1;border-color:#80808073;background:#80808024}.bk-sent-toggle:focus-visible{outline:2px solid var(--blue);outline-offset:1px}.bk-horizontal .bk-sent-row[data-fr] .book-block{margin-bottom:.25em}.bk-sent-row[data-fr]:after{content:attr(data-fr);display:block;margin:0 0 1.25em;padding-left:.6em;border-left:2px solid rgba(128,128,128,.45);font-family:var(--font);font-size:.8em;font-weight:400;line-height:1.45;white-space:pre-line;opacity:.8}.bk-sent-row-sync[data-fr]:after{margin-left:1.8125em}.bk-vertical .bk-sent-row[data-fr]:after{writing-mode:horizontal-tb;width:min(15em,60vw);margin:0 .6em 0 1.25em}.bk-vertical .bk-sent-row-sync[data-fr]:after{margin-top:1.8125em}.bk-tok.bk-sent-open:not(.bk-sync-active){box-shadow:inset 0 -.12em #80808080}.bk-vertical .bk-tok.bk-sent-open:not(.bk-sync-active){box-shadow:inset -.12em 0 #80808080}.pdf-reader{display:flex;flex:1;min-height:0;flex-direction:column;background:var(--bg2)}.pdf-reader-toolbar,.pdf-reader-page-controls{display:flex;align-items:center;gap:10px;flex-shrink:0;padding:10px 14px;background:var(--bg1);border-bottom:1px solid var(--line1)}.pdf-reader-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text1);font-size:var(--text-14);font-weight:700}.pdf-reader-toolbar-actions{display:flex;gap:6px}.pdf-reader-page-controls{justify-content:center;border-top:0}.pdf-reader-page-number{display:inline-flex;align-items:center;gap:6px;color:var(--text2);font-size:var(--text-12)}.pdf-reader-page-number input{width:4.5em;padding:5px 6px;text-align:center}.pdf-reader-viewport{position:relative;display:flex;flex:1;min-height:0;align-items:center;justify-content:center;overflow:auto;padding:12px}.pdf-reader-canvas{display:block;flex:none;max-width:none;background:#fff;outline:1px solid var(--rule)}.pdf-reader-render-error{position:absolute;inset:auto 16px 16px;display:flex;align-items:center;justify-content:center;gap:10px;padding:8px 12px;border:1px solid var(--amber);border-radius:var(--r-2);background:var(--bg1);color:var(--amber);font-size:var(--text-12)}.pdf-reader-text-section{flex-shrink:0;max-height:35vh;overflow:auto;border-top:1px solid var(--line1);background:var(--bg1)}.pdf-reader-text-toggle{display:inline-flex;align-items:center;gap:6px;margin:8px 14px;border:none;background:none;color:var(--blue);font:inherit;font-size:var(--text-12);cursor:pointer}.book-extracted-text{margin:0;padding:0 14px 14px;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text1);font:var(--text-14)/1.7 "Noto Serif JP","Hiragino Mincho ProN",serif}.book-extracted-text-section{padding-bottom:2px}.book-extracted-text-label{margin:0;padding:0 14px 6px;color:var(--text2);font-size:var(--text-12)}.book-extracted-text-wrap{position:relative}.book-extracted-token{cursor:pointer}.book-extracted-token:hover{background:color-mix(in srgb,var(--blue) 15%,transparent)}.pdf-reader-no-text{flex-shrink:0;margin:0;padding:8px 14px;border-top:1px solid var(--line1);background:var(--bg1);color:var(--text2);font-size:var(--text-12)}.bk-page-layer{position:absolute;top:0;left:0;overflow:hidden;z-index:2}.bk-page-layer-word{position:absolute;color:transparent;cursor:pointer;white-space:pre;line-height:1;overflow:hidden;-webkit-user-select:text;user-select:text}.bk-page-layer-word::selection{background:#4084f459}.bk-page-layer-gap{position:absolute;top:0;left:0;width:0;height:0;overflow:hidden;pointer-events:none;color:transparent;white-space:pre}.bk-page-hl{border-radius:var(--r-1)}.bk-page-hl-1{background:var(--hl-1)}.bk-page-hl-2{background:var(--hl-2)}.bk-page-hl-3{background:var(--hl-3)}.bk-page-hl-4{background:var(--hl-4)}.bk-page-hl-5{background:var(--hl-5)}.image-page-reader{display:flex;flex:1;min-height:0;flex-direction:column;background:var(--bg2)}.image-page-reader-viewport{display:flex;flex:1;min-height:0;align-items:center;justify-content:center;overflow:auto;padding:12px}.image-page-reader-frame{position:relative;display:block;flex:none;max-width:100%;max-height:100%}.image-page-reader-image{display:block;max-width:100%;max-height:100%;object-fit:contain;outline:1px solid var(--rule)}.book-audio-player{flex-shrink:0;border-top:1px solid var(--line1);background:var(--bg1);padding:6px 12px 4px}.book-audio-player:not(:has(+.book-page-bar)){padding-bottom:calc(4px + env(safe-area-inset-bottom))}.book-audio-player-hidden{display:none}.book-audio-player audio{display:none}.book-audio-status{color:var(--text2);font-size:var(--text-12);white-space:nowrap}.book-audio-player .book-audio-status{display:block;padding:8px 0;color:var(--text2);font-size:var(--text-14);text-align:center}.book-audio-bar{display:flex;flex-direction:column;gap:2px;max-width:760px;margin:0 auto}.book-audio-seek{display:flex;align-items:center;gap:10px;min-width:0}.book-audio-time{flex-shrink:0;min-width:34px;color:var(--text1);font-size:var(--text-12);font-variant-numeric:tabular-nums;text-align:center}.book-audio-range{flex:1;min-width:0;height:32px;margin:0;background:transparent;cursor:pointer;-webkit-appearance:none;appearance:none;touch-action:none}.book-audio-range::-webkit-slider-runnable-track{height:4px;border-radius:var(--r-1);background:linear-gradient(to right,var(--blue) var(--book-audio-progress, 0%),var(--line2) var(--book-audio-progress, 0%))}.book-audio-range::-moz-range-track{height:4px;border-radius:var(--r-1);background:var(--line2)}.book-audio-range::-moz-range-progress{height:4px;border-radius:var(--r-1);background:var(--blue)}.book-audio-range::-webkit-slider-thumb{width:16px;height:16px;margin-top:-6px;border:none;border-radius:50%;background:var(--blue);-webkit-appearance:none;appearance:none}.book-audio-range::-moz-range-thumb{width:16px;height:16px;border:none;border-radius:50%;background:var(--blue)}.book-audio-controls{display:flex;align-items:center;justify-content:space-between;gap:6px}.book-audio-button,.book-audio-rate{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-width:44px;height:44px;padding:0;border:1px solid transparent;border-radius:50%;background:transparent;color:var(--text0);font:inherit;cursor:pointer;touch-action:manipulation}.book-audio-button:hover{background:var(--bg2)}.book-audio-button-active,.book-audio-button-active:hover{border-color:var(--blue);background:var(--blue-bg);color:var(--blue)}.book-audio-play,.book-audio-play:hover{min-width:52px;height:52px;background:var(--blue);color:var(--accent-ink)}.book-audio-rate{min-width:56px;height:36px;padding:0 10px;border-color:var(--line2);border-radius:var(--r-pill);background:var(--bg0);font-size:var(--text-14);font-weight:500;font-variant-numeric:tabular-nums}.book-audio-rate:hover{background:var(--bg2)}.book-audio-spacer{flex-shrink:0;width:56px}@media(min-width:721px){.book-audio-bar{flex-direction:row-reverse;align-items:center;gap:16px}.book-audio-seek{flex:1}.book-audio-controls{justify-content:flex-start}.book-audio-play,.book-audio-play:hover{min-width:44px;height:44px}.book-audio-spacer{display:none}}.book-toolbar-more{display:none}.book-toolbar-menu{min-width:230px}.book-toolbar-menu-open{color:var(--blue);font-weight:500}.book-toolbar-menu .options-item:disabled{color:var(--text2);cursor:default}.book-toolbar-menu .options-item:disabled:hover{background:none}@media(max-width:720px){.book-toolbar-more{display:block}.book-reader-toolbar-actions .book-toolbar-secondary,.book-reader-page-mode .book-toolbar-chapter{display:none}}@media(max-width:720px),(pointer:coarse){.book-reader-toolbar .icon-button,.pdf-reader-toolbar .icon-button{width:44px;height:44px;border-radius:var(--r-2)}.book-reader-toolbar .icon-button svg,.pdf-reader-toolbar .icon-button svg{width:20px;height:20px}.book-reader-toolbar .book-back-link,.pdf-reader-toolbar .book-back-link{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;min-width:44px;min-height:44px}.book-back-link{position:relative}.book-back-link:after{content:"";position:absolute;top:50%;left:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%)}.film-shelf-coverage,.book-coverage-btn{position:relative}.film-shelf-coverage:after,.book-coverage-btn:after{content:"";position:absolute;top:50%;left:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%)}.book-coverage-btn:after{top:calc(50% + 6px)}.bk-sync-play:after{content:"";position:absolute;top:50%;right:0;width:44px;height:44px;transform:translateY(-50%)}.bk-vertical .bk-sync-play:after{inset:auto auto 0 50%;transform:translate(-50%)}}@media(max-width:520px){.book-back-label{display:none}.book-reader-toolbar,.pdf-reader-toolbar{flex-wrap:wrap;gap:6px 8px;padding:5px 8px}.book-reader-toolbar .book-back-link,.pdf-reader-toolbar .book-back-link{margin-inline-start:-6px;font-size:var(--text-20);line-height:1}.book-reader-text.bk-horizontal{margin-inline:calc(-1 * var(--bk-page-pad));padding-inline:var(--bk-page-pad)}.book-reader-page-mode .book-reader-text.bk-horizontal{width:calc(100% + 2 * var(--bk-page-pad))}.book-reader-text.bk-vertical{margin-top:calc(-1 * var(--bk-page-pad));padding-top:var(--bk-page-pad)}}.book-storage-usage{display:flex;align-items:center;gap:10px;margin:0;color:var(--text1);font-size:var(--text-14)}.book-storage-meter{flex:1;min-width:80px;height:6px;overflow:hidden;border-radius:var(--r-pill);background:var(--line1)}.book-storage-meter-fill{height:100%;border-radius:inherit;background:var(--blue)}.book-add-toast{position:fixed;left:50%;bottom:calc(max(24px,env(safe-area-inset-bottom)) + var(--bottom-nav-h, 0px));transform:translate(-50%);z-index:9000;width:max-content;max-width:min(520px,calc(100vw - 32px));padding:8px 16px;border-radius:var(--r-3);font-size:var(--text-14);font-weight:500;text-align:center;box-shadow:var(--shadow-float);pointer-events:none}.book-add-toast-above-bar{bottom:calc(max(24px,env(safe-area-inset-bottom)) + 64px)}.book-add-toast-ok{background:var(--green-bg);color:var(--green)}.book-add-toast-dup{background:var(--amber-bg);color:var(--amber)}.book-hl-bar{position:fixed;z-index:10000;display:flex;gap:7px;padding:6px;border-radius:var(--r-2);background:var(--bg0);box-shadow:var(--shadow-float);transform:translate(-50%);pointer-events:auto}.book-hl-dot{width:24px;height:24px;border-radius:50%;border:2px solid rgba(0,0,0,.12);padding:0;cursor:pointer}.book-hl-dot-1{background:#ffeb3b}.book-hl-dot-2{background:#4caf50}.book-hl-dot-3{background:#2196f3}.book-hl-dot-4{background:#ff9800}.book-hl-dot-5{background:#e91e63}.bk-mark-unknown .bk-tok.bk-unk:not(.bk-hl){background:var(--unknown-bg-paper);border-radius:var(--r-1)}.book-theme-dark .bk-mark-unknown .bk-tok.bk-unk:not(.bk-hl){background:var(--unknown-bg-night)}.bk-hl{border-radius:var(--r-1)}.bk-hl-1{background:var(--hl-1)}.bk-hl-2{background:var(--hl-2)}.bk-hl-3{background:var(--hl-3)}.bk-hl-4{background:var(--hl-4)}.bk-hl-5{background:var(--hl-5)}.book-highlights-empty{padding:10px 4px;color:var(--text2);font-size:var(--text-14);text-align:center}.book-highlights-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.book-highlight-item{display:flex;align-items:center;gap:4px}.book-highlight-jump{flex:1;display:flex;align-items:center;gap:8px;min-width:0;padding:6px 8px;border:none;border-radius:var(--r-2);background:transparent;color:var(--text0);cursor:pointer;text-align:left;font:inherit}.book-highlight-jump:hover{background:var(--bg2)}.book-hl-swatch{flex-shrink:0;width:11px;height:11px;border-radius:50%}.book-highlight-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-14)}.book-highlight-chapter{flex-shrink:0;font-size:var(--text-12);color:var(--text2)}.book-highlight-delete{flex-shrink:0;border:none;background:transparent;cursor:pointer;padding:6px;border-radius:var(--r-2);font-size:var(--text-14)}.book-highlight-delete:hover{background:var(--bg2)}.book-block-img{cursor:zoom-in}.book-img-zoom{position:fixed;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;background:#000000e6;cursor:zoom-out}.book-img-zoom img{max-width:95%;max-height:95%;object-fit:contain}.book-stats-panel{padding:14px;border:1px solid var(--line1);border-radius:var(--r-2);background:var(--bg1)}.book-stats-tadoku-row{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:10px;font-size:var(--text-14);font-weight:500}.book-stats-week-chars{color:var(--text2)}.book-stats-weekchart{display:flex;align-items:flex-end;gap:6px;height:56px;margin-bottom:14px;padding-bottom:2px;border-bottom:1px solid var(--line1)}.book-stats-weekbar-col{flex:1;height:100%;display:flex;align-items:flex-end}.book-stats-weekbar{width:100%;min-height:2px;border-radius:var(--r-1) var(--r-1) 0 0;background:var(--line1)}.book-stats-weekbar-col-current .book-stats-weekbar{background:var(--blue)}.book-stats-summary{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:10px}.book-stats-metric{display:flex;flex-direction:column;gap:2px}.book-stats-metric-value{font-size:var(--text-20);font-weight:700}.book-stats-metric-label{font-size:var(--text-12);color:var(--text2)}.book-stats-per-book{list-style:none;margin:0;padding:10px 0 0;border-top:1px solid var(--line1);display:flex;flex-direction:column;gap:6px}.book-stats-book-row{display:flex;align-items:center;gap:10px;font-size:var(--text-14)}.book-stats-book-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-stats-book-meta{flex-shrink:0;color:var(--text2);font-size:var(--text-12)}.book-stats-empty{color:var(--text2);font-size:var(--text-14)}.learning-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;width:100%}.learning-toolbar-group{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.learning-toolbar-primary{margin-left:auto}.learning-toolbar-toggle{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:44px;min-height:44px;padding:0 12px;border:1px solid var(--line2);border-radius:var(--r-2);background:transparent;color:var(--text1);cursor:pointer;font-family:var(--font);font-size:var(--text-14);font-weight:500;white-space:nowrap}.learning-toolbar-toggle:hover{background:var(--bg3);color:var(--text0)}.learning-toolbar-toggle.active{border-color:var(--ai);background:var(--ai-bg);color:var(--ai);box-shadow:inset 0 0 0 1px var(--ai)}.learning-toolbar-toggle:disabled{opacity:.45;cursor:not-allowed}.learning-toolbar-toggle-label{line-height:1}.grammar-capsule{margin-top:10px;padding:12px;border:1px solid var(--line2);border-radius:var(--r-2);background:var(--bg2)}.grammar-capsule-label{color:var(--ink-2);font-size:var(--text-14);font-weight:500}.grammar-capsule h3{margin:5px 0;font-size:var(--text-20)}.grammar-capsule p{margin:7px 0}.grammar-capsule-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.grammar-capsule-inline{margin-bottom:10px}@media(max-width:360px){.learning-toolbar-toggle{padding:0 8px;font-size:var(--text-12)}}.hide-japanese .dialogue-jp{position:relative;visibility:hidden}.learning-toolbar-hide-jp-hint{font-size:var(--text-12);color:var(--text2);font-style:italic;padding:0 2px 4px}.dialogue-done-actions-compact{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dialogue-completion-status{margin:0 14px 8px;font-size:var(--text-12);color:var(--text2);font-style:italic}.dialogue-completion-error{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 14px 8px;padding:8px 10px;border-radius:var(--r-2);background:var(--red-bg);color:var(--red);font-size:var(--text-12)}.roleplay-toolbar{padding:0 14px;margin-bottom:4px}.graded-toolbar{margin-bottom:12px}.grammar-library-modal{max-width:680px;max-height:min(86vh,760px);overflow:auto}.grammar-library-list,.grammar-lesson-view{padding:18px 16px 22px}.grammar-library-section{margin:0 0 26px}.grammar-library-section:last-child{margin-bottom:6px}.grammar-library-list h3{margin:0 0 10px;font-size:var(--text-14);font-weight:500;color:var(--ink-2)}.grammar-library-empty{margin:0;padding:10px 2px;color:var(--text2);font-size:var(--text-14)}.grammar-library-row{width:100%;display:flex;align-items:center;gap:10px;text-align:left;padding:12px 14px;border:1px solid var(--line1);border-radius:var(--r-2);background:var(--bg1);color:var(--text0);margin:0 0 10px;cursor:pointer;transition:border-color .12s ease,background-color .12s ease}.grammar-library-row:last-child{margin-bottom:0}.grammar-library-row:hover{border-color:var(--line2);background:var(--bg2)}.grammar-library-row:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.grammar-library-row.current{border-color:var(--blue);background:var(--blue-bg)}.grammar-library-row-num{display:grid;flex:0 0 auto;place-items:center;width:26px;height:26px;border-radius:var(--r-pill);background:var(--bg2);color:var(--text1);font-size:var(--text-12);font-weight:700}.grammar-library-row.current .grammar-library-row-num{background:var(--blue);color:var(--accent-ink)}.grammar-library-row-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.grammar-library-row-title{font-size:var(--text-14);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grammar-library-row-body small{display:block;color:var(--text2);font-size:var(--text-12)}.grammar-library-row-badge{flex:0 0 auto}.grammar-library-row-chevron{flex:0 0 auto;color:var(--text2)}.grammar-lesson-view h2{margin:0 0 16px}.grammar-legacy-note{margin:0 0 16px;padding:10px 12px;border:1px solid var(--line1);border-radius:var(--r-2);background:var(--bg2);color:var(--text2);font-size:var(--text-14)}.grammar-card{border:1px solid var(--line2);border-radius:var(--r-2);margin:0 0 14px;background:var(--bg1);overflow:hidden}.grammar-card:last-child{margin-bottom:0}.grammar-card-legacy{background:var(--bg2);border-style:dashed}.grammar-card-head{width:100%;display:flex;align-items:center;justify-content:space-between;padding:13px 14px;background:transparent;color:var(--text0);border:0;text-align:left}.grammar-card-head-static{cursor:default}.grammar-card-head span{display:inline-flex;align-items:center;gap:7px}.grammar-card-head em{font-size:var(--text-12);color:var(--text2);font-style:normal}.grammar-card-content{padding:0 14px 16px}.grammar-card-content p{margin:8px 0}.grammar-pattern{padding:10px;border-radius:var(--r-2);background:var(--bg2);font-size:var(--text-20)}.grammar-example{padding:8px 10px;margin:8px 0;border-left:3px solid var(--blue);background:var(--bg2)}.grammar-example span,.grammar-example small{display:block}.grammar-example small{color:var(--text2);margin-top:3px}.grammar-contrast,.grammar-pitfall{font-size:var(--text-14);color:var(--text2)}.grammar-card-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:14px}.grammar-mixed-btn{margin:16px 0 4px;width:100%}.det-feedback-why{display:block;font-weight:400;margin-top:var(--sp-1)}@media(max-width:520px){.grammar-library-modal{width:calc(100vw - 20px);max-height:92vh}.grammar-library-list,.grammar-lesson-view{padding:14px 10px 18px}.grammar-card-content{padding:0 11px 12px}.grammar-library-row{padding:9px 10px;gap:8px}.grammar-library-row-num{width:24px;height:24px;font-size:var(--text-12)}.grammar-library-row-title{font-size:var(--text-14)}}.book-overlay .dict-overlay{z-index:1350}.book-overlay.book-dict-docked{--dict-panel-w: clamp(280px, var(--dict-w-book, clamp(340px, 30vw, 440px)), 50vw);padding-right:var(--dict-panel-w)}.dict-panel{position:absolute;top:0;right:0;bottom:0;z-index:10;display:flex;width:var(--dict-panel-w, 380px);border-left:1px solid var(--line1);background:var(--bg1)}.dict-panel .dictionary-popup{width:100%;height:100%;max-height:none;border:0;border-radius:0;box-shadow:none}@media(pointer:fine){.dict-panel .vocab-detail-header{min-height:51px;padding-block:0}.dict-panel .dict-sentence-btn{min-height:30px}}.book-dict-docked .bk-assist-popup{left:calc((100vw - var(--dict-panel-w)) / 2);width:min(560px,calc(100vw - var(--dict-panel-w) - 24px))}.book-dict-docked .book-add-toast{left:calc((100vw - var(--dict-panel-w)) / 2);max-width:min(520px,calc(100vw - var(--dict-panel-w) - 32px))}.main-layout.lesson-dict-docked{--dict-panel-w: clamp(280px, var(--dict-w-lesson, clamp(340px, 30vw, 440px)), min(50vw, calc(100vw - 560px - var(--vocab-panel-w, 320px))))}.main-layout>.dict-panel{position:relative;top:auto;right:auto;bottom:auto;z-index:auto;flex:0 0 var(--dict-panel-w);width:auto;min-width:0}.dict-float{position:fixed;z-index:70;display:flex;width:min(400px,calc(100vw - 16px));max-height:min(70vh,600px)}.book-overlay .dict-float{z-index:1350}.topbar .options-dropdown{z-index:1360}@media(pointer:fine)and (min-width:1024px){.book-img-zoom{z-index:1370}}.dict-float .dictionary-popup{width:100%;max-height:inherit}.dict-float .vocab-detail-header{cursor:move;touch-action:none;-webkit-user-select:none;user-select:none}.dict-float-return{min-height:40px;margin-left:auto;margin-right:var(--sp-1);padding:0 var(--sp-2);border:0;border-radius:var(--r-2);background:none;color:var(--ink-2);font:inherit;font-size:var(--text-14);cursor:pointer}.dict-sentence-btn~.dict-float-return{margin-left:0}.dict-float-return:hover{color:var(--ink);text-decoration:underline}.dict-float-return:focus-visible{outline:2px solid var(--ai);outline-offset:2px}@media(max-width:720px){.dict-overlay.dict-sheet{padding:0;background:#00000024}.dict-overlay.dict-sheet-bottom{align-items:flex-end}.dict-overlay.dict-sheet-top{align-items:flex-start}.dict-sheet .dictionary-popup{width:100%;max-height:50vh;max-height:50dvh;border-right:0;border-left:0}.dict-sheet-bottom .dictionary-popup{padding-bottom:env(safe-area-inset-bottom,0px);border-bottom:0;border-radius:var(--r-3) var(--r-3) 0 0;box-shadow:var(--shadow-sheet)}.dict-sheet-top .dictionary-popup{padding-top:env(safe-area-inset-top,0px);border-top:0;border-radius:0 0 var(--r-3) var(--r-3);box-shadow:var(--shadow-overlay)}}.bk-assist-popup{position:fixed;left:50%;bottom:calc(16px + var(--bottom-nav-h, 0px));transform:translate(-50%);width:min(560px,calc(100vw - 24px));max-height:55vh;overflow-y:auto;background:var(--bg1);color:var(--text0);border:1px solid var(--line2);border-radius:var(--r-3);box-shadow:var(--shadow-overlay);padding:12px 14px;z-index:1300;display:flex;flex-direction:column;gap:8px}.bk-assist-head{display:flex;align-items:center;justify-content:space-between}.bk-assist-title{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:var(--text-16)}.bk-assist-close{background:none;border:none;cursor:pointer;padding:4px;line-height:0;color:inherit}.bk-assist-source{margin:0;font-size:var(--text-14);opacity:.75;border-inline-start:3px solid var(--line2);padding-inline-start:8px;max-height:5.5em;overflow-y:auto;flex-shrink:0}.bk-assist-body{margin:0;white-space:pre-wrap;line-height:1.5}.bk-assist-loading,.bk-assist-error{margin:0;font-size:var(--text-14);opacity:.8}.bk-assist-error{color:var(--red)}.bk-assist-question-row{display:flex;gap:8px}.bk-assist-question-row input{flex:1;min-width:0;padding:8px 10px}.bk-assist-question-row button{padding:7px 13px;border:1px solid var(--action);border-radius:var(--r-2);background:var(--action);color:var(--on-action);font:inherit;cursor:pointer}.bk-assist-question-row button:hover:not(:disabled){border-color:var(--action-hover);background:var(--action-hover)}.bk-assist-question-row button:disabled{border-color:var(--field);background:transparent;color:var(--ink-3);cursor:default}.bk-assist-popup-above-bar{bottom:calc(72px + env(safe-area-inset-bottom));max-height:min(55vh,calc(100vh - 136px - env(safe-area-inset-bottom)));max-height:min(55dvh,calc(100dvh - 136px - env(safe-area-inset-bottom)))}.bk-assist-sentence .bk-assist-source{font-size:var(--text-20);line-height:1.6;opacity:1;max-height:6.4em}.bk-assist-fr{font-size:var(--text-16)}.bk-assist-actions{display:flex;flex-wrap:wrap;gap:8px}.bk-assist-action{min-height:40px;padding:8px 14px;border:1px solid var(--line2);border-radius:var(--r-2);background:var(--bg2);color:var(--text0);font:inherit;font-size:var(--text-14);font-weight:500;cursor:pointer;touch-action:manipulation}.bk-assist-action:hover:not(:disabled){background:var(--bg3)}.bk-assist-action:disabled{opacity:.6;cursor:default}.bk-assist-words,.bk-assist-grammar{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.bk-assist-word{display:grid;grid-template-columns:minmax(5.5em,34%) 1fr;gap:2px 10px;align-items:baseline;padding:5px 0;border-top:1px solid var(--line1)}.bk-assist-word:first-child{border-top:none}.bk-assist-word-head{min-width:0;overflow-wrap:anywhere}.bk-assist-word-surface{font-size:var(--text-16);font-weight:700;color:var(--text0)}.bk-assist-word-reading{display:block;color:var(--text2);font-size:var(--text-14);line-height:1.3}.bk-assist-word-info{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:0;font-size:var(--text-14);line-height:1.35}.bk-assist-word-form{color:var(--text2);font-size:var(--text-14)}.bk-assist-word-grammar{opacity:.55}.bk-assist-word-grammar .bk-assist-word-surface{font-weight:400}.bk-assist-grammar{gap:8px;padding-top:8px;border-top:1px solid var(--line2)}.bk-assist-grammar-point{display:flex;flex-direction:column;gap:2px}.bk-assist-grammar-pattern{color:var(--blue);font-weight:700}.bk-assist-grammar-text{font-size:var(--text-14);line-height:1.45}.bk-assist-notice{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.bk-assist-answer{display:flex;flex-direction:column;gap:4px;padding-top:8px;border-top:1px solid var(--line2)}.bk-assist-answer-question{margin:0;color:var(--text1);font-size:var(--text-14);font-weight:500}.dict-sentence-btn{display:inline-flex;align-items:center;gap:5px;min-height:40px;margin-left:auto;margin-right:8px;padding:4px 12px;border:1px solid var(--line2);border-radius:var(--r-2);background:var(--bg2);color:var(--text0);font:inherit;font-size:var(--text-14);font-weight:500;cursor:pointer;touch-action:manipulation}.dict-sentence-btn:hover{background:var(--bg3)}.dict-proper-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-bottom:8px}.dict-proper-btn{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:4px 12px;border:1px dashed var(--line2);border-radius:var(--r-2);background:transparent;color:var(--text1);font:inherit;font-size:var(--text-14);cursor:pointer;touch-action:manipulation}.dict-proper-btn:hover{background:var(--bg2)}.dict-proper-undo{min-height:40px;padding:4px 2px;border:none;background:transparent;color:var(--text2);font:inherit;font-size:var(--text-14);text-decoration:underline;cursor:pointer;touch-action:manipulation}.dict-proper-btn:disabled,.dict-proper-undo:disabled{opacity:.55;cursor:default}.dict-known{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:2px 0}.dict-known-forget{min-height:40px;padding:4px 2px;border:none;background:none;color:var(--text2);font:inherit;font-size:var(--text-12);text-decoration:underline;cursor:pointer;touch-action:manipulation}.dict-known-forget:disabled{opacity:.5;cursor:default}.book-add-toast-action{display:flex;align-items:center;gap:12px;pointer-events:auto;text-align:left}.book-add-toast-undo{flex-shrink:0;min-height:32px;padding:4px 12px;border:1px solid currentColor;border-radius:var(--r-pill);background:transparent;color:inherit;font:inherit;font-weight:700;cursor:pointer;touch-action:manipulation}.book-coverage-btn{border:none;font:inherit;font-size:var(--text-12);text-decoration:underline dotted;text-underline-offset:2px;cursor:pointer;touch-action:manipulation}.book-coverage-btn:hover{text-decoration-style:solid}@media(max-width:400px){.book-reader-toolbar-actions{gap:4px}}.book-words-layer{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;background:var(--bg0)}.book-words{flex:1;min-height:0;display:flex;flex-direction:column;gap:12px;overflow-y:auto;padding:16px max(16px,calc((100% - 760px)/2)) calc(80px + env(safe-area-inset-bottom))}.book-words>*{flex-shrink:0}.book-words-header{display:flex;align-items:flex-start;gap:14px}.book-words-header .book-back-link{flex-shrink:0;min-height:32px}.book-words-heading{min-width:0}.book-words-title{margin:0;color:var(--text0);font-size:var(--text-20);font-weight:700}.book-words-book{margin:2px 0 0;overflow:hidden;color:var(--text2);font-size:var(--text-14);text-overflow:ellipsis;white-space:nowrap}.book-words-scope{display:flex;flex-wrap:wrap;gap:6px}.book-words-scope .book-settings-btn{min-height:36px;padding:5px 14px;font-size:var(--text-14)}.book-words-summary{margin:0;color:var(--text0);font-size:var(--text-16);font-weight:500}.book-words-state{margin:0;color:var(--text2);font-size:var(--text-14);line-height:1.5}.book-words-error{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.book-words-error p{margin:0}.book-words-bulk{position:sticky;top:0;z-index:1;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 0;background:var(--bg0);font-size:var(--text-14)}.book-words-select-all{display:inline-flex;align-items:center;gap:6px;min-height:36px;cursor:pointer}.book-words-selected-count{margin-right:auto;color:var(--text2);font-variant-numeric:tabular-nums}.book-words-list{max-height:none;margin:0;overflow:visible}.book-words-list li{padding:10px 0}.book-words-list .lookup-suggestions-word{font-size:var(--text-20)}.book-words-list .lookup-suggestions-meaning{overflow:visible;color:var(--text1);font-size:var(--text-14);white-space:normal}.book-words-list .lookup-suggestions-context{margin:4px 0 0 26px;font-size:var(--text-14);line-height:1.6}.book-words-row-actions{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 0 26px}.book-words-row-btn{min-height:36px;padding:4px 14px;border:1px solid var(--line2);border-radius:var(--r-2);background:var(--bg2);color:var(--text0);font:inherit;font-size:var(--text-14);font-weight:500;cursor:pointer;touch-action:manipulation}.book-words-row-btn:hover{background:var(--bg3)}.book-words-row-btn:disabled{opacity:.45;cursor:default}.book-words-more{display:flex;flex-wrap:wrap;align-items:center;gap:10px;color:var(--amber);font-size:var(--text-14)}.book-quiz-trigger:disabled{opacity:.4;cursor:default}.book-quiz-trigger-ready{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 40%,var(--line2))}.book-quiz-overlay{z-index:1400}.book-quiz-popup{display:flex;flex-direction:column;gap:12px;width:min(520px,95vw);max-height:85vh;max-height:85dvh;overflow-y:auto;border:1px solid var(--line2);border-radius:var(--r-3);background:var(--bg1);color:var(--text0);box-shadow:var(--shadow-overlay);padding:16px 18px}.book-quiz-head{display:flex;align-items:center;justify-content:space-between}.book-quiz-title{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:var(--text-16)}.book-quiz-loading,.book-quiz-error{margin:0;opacity:.85}.book-quiz-error{color:var(--red);opacity:1}.book-quiz-error-block,.book-quiz-score-block{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.book-quiz-progress{margin:0;font-size:var(--text-14);opacity:.7}.book-quiz-question{margin:0;font-size:var(--text-20);line-height:1.6}.book-quiz-hint-toggle{align-self:flex-start;background:none;border:none;padding:0;color:var(--blue);font:inherit;font-size:var(--text-14);cursor:pointer;text-decoration:underline}.book-quiz-hint{margin:0;font-size:var(--text-14);opacity:.85;border-inline-start:3px solid var(--line2);padding-inline-start:8px}.book-quiz-answer-row{display:flex;gap:8px}.book-quiz-answer-row input{flex:1;min-width:0;padding:10px 12px}.book-quiz-answer-row button{padding:7px 15px;border:1px solid var(--action);border-radius:var(--r-2);background:var(--action);color:var(--on-action);font:inherit;cursor:pointer}.book-quiz-answer-row button:hover:not(:disabled){border-color:var(--action-hover);background:var(--action-hover)}.book-quiz-answer-row button:disabled{border-color:var(--field);background:transparent;color:var(--ink-3);cursor:default}.book-quiz-result{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:var(--r-2)}.book-quiz-result-correct{background:var(--green-bg)}.book-quiz-result-partial{background:var(--amber-bg)}.book-quiz-result-wrong{background:color-mix(in srgb,var(--red) 12%,transparent)}.book-quiz-verdict{margin:0;font-weight:500}.book-quiz-result-correct .book-quiz-verdict{color:var(--green)}.book-quiz-result-partial .book-quiz-verdict{color:var(--amber)}.book-quiz-result-wrong .book-quiz-verdict{color:var(--red)}.book-quiz-explanation,.book-quiz-expected{margin:0;font-size:var(--text-14)}.book-quiz-expected{opacity:.75}.book-quiz-next-btn{align-self:flex-end;padding:7px 15px;border:1px solid var(--action);border-radius:var(--r-2);background:var(--action);color:var(--on-action);font:inherit;cursor:pointer}.book-quiz-next-btn:hover:not(:disabled){border-color:var(--action-hover);background:var(--action-hover)}.book-quiz-score{margin:0;font-size:var(--text-36);font-weight:700}.book-quiz-encouragement{margin:0;opacity:.85}.book-quiz-close-btn{padding:8px 16px;border:1px solid var(--line2);border-radius:var(--r-2);background:transparent;color:inherit;font:inherit;cursor:pointer}.book-catalog{display:flex;flex-direction:column;gap:14px;padding:16px;overflow-y:auto}.book-catalog-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.book-catalog-levels{display:flex;flex-wrap:wrap;gap:4px}.book-catalog-level-btn{padding:5px 12px;border:1px solid var(--line1);border-radius:var(--r-pill);background:var(--bg1);color:var(--text1);font-size:var(--text-12);font-weight:500;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.book-catalog-level-btn:hover{background:var(--bg2);color:var(--text0)}.book-catalog-level-btn.active{background:var(--ai-bg);color:var(--ai);border-color:var(--ai);box-shadow:inset 0 0 0 1px var(--ai)}.book-catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px}.book-catalog-card{display:flex;flex-direction:column;gap:6px}.book-catalog-card-open{display:flex;flex-direction:column;gap:4px;padding:0;border:none;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.book-catalog-card-open:disabled{cursor:default;opacity:.7}.book-catalog-card-title{font-size:var(--text-14);font-weight:700;line-height:1.3}.book-catalog-card-author{font-size:var(--text-12);color:var(--text2)}.book-catalog-card-subtitle{font-size:var(--text-12);color:var(--text2);line-height:1.3}.book-catalog-card-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.book-catalog-badge-library{border-color:var(--rule);background:var(--surface);color:var(--ink-3)}.book-catalog-card--read .book-catalog-card-open>:first-child{opacity:.5}.book-catalog-hide-read{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-14);color:var(--text2);cursor:pointer}.book-catalog-card-synopsis{margin:0;color:var(--text2);font-size:var(--text-12);line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}@media(max-width:520px){.book-catalog{padding:12px;gap:10px}.book-catalog-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.book-catalog-toolbar{gap:8px}.book-catalog-levels{gap:3px}.book-catalog-level-btn{padding:4px 9px;font-size:var(--text-12)}.book-catalog-card-synopsis{-webkit-line-clamp:2}}.book-catalog-grid:has(.book-catalog-card--text){grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.book-catalog-card--text{padding:14px;border:1px solid var(--line1);border-radius:var(--r-2);background:var(--bg1);transition:border-color .15s,background .15s}.book-catalog-card--text:has(.book-catalog-card-open:not(:disabled):hover){border-color:var(--ink);background:var(--sunken)}.book-catalog-card--text .book-catalog-card-title{font-size:var(--text-16)}.book-catalog-card--text .book-catalog-card-synopsis{margin-top:2px;-webkit-line-clamp:3}.books-catalog-level-title{margin:4px 0 -6px;font-size:var(--text-14);font-weight:700;color:var(--text1)}.book-catalog-section-title{margin:14px 0 -6px;font-size:var(--text-14);font-weight:700;color:var(--text1)}@media(max-width:520px){.book-catalog-card--text{padding:11px}.book-catalog-card--text .book-catalog-card-title{font-size:var(--text-14)}}::highlight(jp-sel){background-color:#4084f459}.jp-select-custom{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.jp-select-custom input,.jp-select-custom textarea{user-select:text;-webkit-user-select:text}.srs-edit-overlay{position:absolute;inset:0;background:var(--scrim);display:flex;align-items:center;justify-content:center;z-index:30;border-radius:inherit}.srs-edit-form{background:var(--bg1);border-radius:var(--r-3);padding:16px;width:min(420px,92%);max-height:92%;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.srs-edit-head{display:flex;align-items:center;justify-content:space-between}.srs-edit-form label{font-size:var(--text-14);font-weight:500;display:flex;flex-direction:column;gap:3px}.srs-edit-form input,.srs-edit-form textarea{font-weight:400;padding:6px 8px}.srs-edit-error{color:var(--red);font-size:var(--text-14);margin:0}.srs-edit-shared-note{margin:0;color:var(--text2);font-size:var(--text-14);line-height:1.4}.srs-edit-suggest{align-self:flex-start;min-height:36px;margin-top:-6px;padding:0 2px;border:0;background:none;color:var(--blue);cursor:pointer;font:inherit;font-size:var(--text-14);font-weight:500}.srs-edit-suggest:disabled{color:var(--text2);cursor:wait}.srs-edit-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.srs-example{display:flex;align-items:center;justify-content:center;gap:6px;margin:6px 0 0;line-height:2}.srs-example ruby rt{font-size:.55em;color:var(--text2)}.srs-example-speak{flex-shrink:0}.srs-components{margin:2px 0 0;display:flex;flex-direction:column;gap:2px;max-width:100%}.srs-components p{margin:0;font-size:var(--text-14);color:var(--text2);line-height:1.7}.srs-kanji-chips-wrap{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);width:100%;max-width:34em;margin-top:6px}.srs-kanji-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-2)}.srs-kanji-chip{display:flex;flex-direction:row;align-items:center;gap:var(--sp-3);min-height:60px;padding:0 var(--sp-3);border:1px solid var(--rule);border-radius:var(--r-2);background:var(--field-bg);color:var(--ink);font:inherit;cursor:pointer}.srs-kanji-chip-char{font-family:var(--font-jp-display);font-size:var(--text-36);font-weight:500;line-height:1}.srs-kanji-chip-label{font-size:var(--text-14);color:var(--ink-3);white-space:nowrap}.srs-kanji-chip.is-suggest{border-color:var(--ai)}.srs-kanji-chip.is-suggest .srs-kanji-chip-label{color:var(--ai);font-weight:500}.srs-kanji-chip.is-has .srs-kanji-chip-label{color:var(--ok);font-weight:500}.srs-kanji-chip.is-quiet{border-style:dashed}.srs-kanji-chip:hover{border-color:var(--ink-2)}.srs-kanji-chip.is-open{border-color:var(--ink)}.srs-kanji-chip-panel{width:100%;padding:var(--sp-3) var(--sp-3);border:1px solid var(--line2);border-radius:var(--r-2);background:var(--bg1);text-align:left;font-size:var(--text-14);line-height:1.5}.srs-back .srs-kanji-chip-reason{margin:0 0 var(--sp-2);padding:var(--sp-2) var(--sp-2);border-radius:var(--r-2);background:var(--sunken);color:var(--ink)}.srs-kanji-chip-words{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin:0 0 var(--sp-2);padding:0;list-style:none}.srs-kanji-chip-words li{padding:0 var(--sp-2);border:1px solid var(--line2);border-radius:var(--r-2)}.srs-kanji-chip-words li.is-missed{border-color:var(--rule);color:var(--shu)}.srs-kanji-chip-words li.srs-kanji-chip-more{border:0}.srs-ask-popup{position:absolute;left:12px;right:12px;bottom:96px;z-index:25;background:var(--bg1);border:1px solid var(--line2);border-radius:var(--r-3);box-shadow:var(--shadow-overlay);padding:12px;max-height:60%;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.srs-ask-head{display:flex;align-items:center;justify-content:space-between}.srs-ask-title{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:var(--text-14)}.srs-ask-context{font-size:var(--text-14);color:var(--text2);white-space:pre-wrap;margin:0}.srs-ask-question{font-weight:500;font-size:var(--text-14);margin:0}.srs-ask-answer{font-size:var(--text-14);white-space:pre-wrap;margin:2px 0 0}.srs-ask-error{color:var(--red);font-size:var(--text-14);margin:2px 0 0}.srs-ask-loading{font-size:var(--text-14);color:var(--text2);margin:0}.srs-ask-form{display:flex;gap:6px}.srs-ask-form input{flex:1;min-width:0;min-height:44px;padding:6px 8px}.srs-browser{width:min(1280px,96vw);height:min(820px,94dvh);max-height:min(820px,94dvh);overflow:hidden;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto}.srs-browser-header{gap:10px}.srs-browser-header>div{flex:1;text-align:center}.srs-browser-header .button{min-height:38px}.srs-browser-toolbar{display:flex;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line1)}.srs-browser-toolbar>label{display:flex;flex:1;align-items:center;gap:8px;min-width:0;padding:0 10px;color:var(--text2);border:1.5px solid var(--field);border-radius:var(--r-2);background:var(--field-bg)}.srs-browser-toolbar input{width:100%;min-width:0;min-height:38px;border:0;outline:0;background:transparent;color:var(--text0);font:inherit;font-size:max(16px,var(--text-16))}.srs-browser-toolbar>label:focus-within{border-color:var(--ai);box-shadow:var(--halo)}.srs-browser-mobile-filter{display:none}.srs-browser-content{display:grid;grid-template-columns:minmax(210px,240px) minmax(360px,1fr) minmax(340px,420px);min-width:0;min-height:0}.srs-browser-nav,.srs-browser-list,.srs-browser-detail{min-width:0;min-height:0;overflow:auto}.srs-browser-nav{padding:10px;border-right:1px solid var(--line1)}.srs-browser-list{border-right:1px solid var(--line1)}.srs-browser-tree{display:flex;flex-direction:column;gap:3px}.srs-browser-deck,.srs-browser-child{display:flex;align-items:center;min-width:0;min-height:44px;border:1px solid transparent;border-radius:var(--r-2);color:var(--text1)}.srs-browser-deck.all{width:100%}.srs-browser-deck.all,.srs-browser-deck-label,.srs-browser-child{background:transparent;font:inherit;text-align:left;cursor:pointer}.srs-browser-deck.all,.srs-browser-deck-label{padding:7px 8px}.srs-browser-deck-label{display:flex;flex:1;align-items:center;justify-content:space-between;gap:8px;min-width:0;border:0;color:inherit}.srs-browser-deck span,.srs-browser-child>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.srs-browser-deck b,.srs-browser-child b{flex-shrink:0;color:var(--text2);font-size:var(--text-12);font-weight:500}.srs-browser-deck.selected,.srs-browser-child.selected{border-color:var(--blue);background:var(--blue-bg);color:var(--blue)}.srs-browser-deck:hover,.srs-browser-child:hover{background:var(--bg2)}.srs-browser-expand{flex-shrink:0}.srs-browser-children{display:flex;flex-direction:column;gap:2px;margin:2px 0 4px;padding-left:12px}.srs-browser-child{justify-content:space-between;gap:7px;padding:6px 8px}.srs-browser-child>span{display:flex;flex-direction:column;gap:1px}.srs-browser-child strong{font-size:var(--text-12);font-weight:500}.srs-browser-child small{color:var(--text2);font-size:var(--text-12)}.srs-browser-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;width:100%;min-height:64px;padding:9px 12px;border:0;border-bottom:1px solid var(--line1);border-left:3px solid transparent;background:transparent;color:var(--text0);font:inherit;text-align:left;cursor:pointer}.srs-browser-card:hover{background:var(--bg2)}.srs-browser-card.selected{border-left-color:var(--blue);background:var(--blue-bg)}.srs-browser-card-main{display:flex;flex-direction:column;min-width:0;gap:2px}.srs-browser-card-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-16)}.srs-browser-card-main span{overflow:hidden;color:var(--text1);text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-14)}.srs-browser-card-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;color:var(--text2)}.srs-browser-card-meta small{font-size:var(--text-12)}.srs-browser-card-badges{grid-column:1 / -1;display:flex;gap:4px;overflow:hidden}.srs-browser-card-badges em,.srs-browser-statuses span,.srs-browser-state{padding:2px 5px;border-radius:var(--r-2);background:var(--bg3);color:var(--text2);font-size:var(--text-12);font-style:normal;white-space:nowrap}.srs-browser-detail{padding:15px}.srs-browser-detail.empty,.srs-browser-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:180px;padding:22px;color:var(--text2);text-align:center}.srs-browser-detail.empty h3,.srs-browser-detail.empty p,.srs-browser-empty h3,.srs-browser-empty p{margin:3px 0}.srs-browser-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.srs-browser-detail-head h3{margin:0;font-size:var(--text-26);line-height:1.45}.srs-browser-detail-head p{margin:2px 0 0;color:var(--text2);font-size:var(--text-14)}.srs-browser-state{flex-shrink:0;background:var(--blue-bg);color:var(--blue)}.srs-browser-preview{display:grid;gap:7px;margin:16px 0;padding:10px;border:1px solid var(--line1);border-radius:var(--r-2);background:var(--bg2)}.srs-browser-preview>small{color:var(--text2);font-size:var(--text-12)}.srs-browser-preview div{display:grid;grid-template-columns:48px minmax(0,1fr);gap:8px}.srs-browser-preview span{color:var(--ink-2);font-size:var(--text-14);font-weight:500}.srs-browser-preview strong{overflow-wrap:anywhere}.srs-browser-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}.srs-browser-stats div{padding:7px;border:1px solid var(--line1);border-radius:var(--r-2)}.srs-browser-stats dt{color:var(--text2);font-size:var(--text-12)}.srs-browser-stats dd{margin:2px 0 0;font-size:var(--text-14)}.srs-browser-statuses{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0}.srs-browser-sources{margin-top:16px}.srs-browser-sources h4{margin:0;font-size:var(--text-14)}.srs-browser-sources>p{margin:4px 0 8px;color:var(--text2);font-size:var(--text-12);line-height:1.4}.srs-browser-source{display:flex;flex-direction:column;width:100%;min-height:44px;gap:3px;margin-top:6px;padding:8px;border:1px solid var(--line1);border-radius:var(--r-2);background:var(--bg1);color:var(--text1);font:inherit;text-align:left;cursor:pointer}.srs-browser-source:hover,.srs-browser-source.selected{border-color:var(--blue);background:var(--blue-bg)}.srs-browser-source strong{font-size:var(--text-12)}.srs-browser-source small,.srs-browser-source em{color:var(--text2);font-size:var(--text-12);font-style:normal}.srs-browser-source span{line-height:1.5}.srs-browser-actions{display:flex;gap:8px;margin-top:14px}.srs-browser-actions .button{min-height:44px;flex:1;justify-content:center}.srs-browser-pagination{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-height:55px;padding:8px 14px;border-top:1px solid var(--line1)}.srs-browser-pagination span{margin-right:auto;color:var(--text2);font-size:var(--text-12)}.srs-browser-error{display:flex;align-items:center;justify-content:center;gap:8px;min-height:90px;padding:14px;color:var(--red);text-align:center}.srs-browser-mobile-back{display:none}.srs-browser-card:focus-visible,.srs-browser-deck:focus-within,.srs-browser-child:focus-visible,.srs-browser-source:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}@media(max-width:759px){.srs-browser-overlay{padding:0;align-items:stretch}.srs-browser{width:100%;height:100dvh;max-height:100dvh;border:0;border-radius:0}.srs-browser-header{padding-top:max(12px,env(safe-area-inset-top))}.srs-browser-header .button{padding:6px 8px;font-size:var(--text-12)}.srs-browser-header>div{text-align:left}.srs-browser-toolbar{flex-direction:column;padding:9px 12px}.srs-browser-mobile-filter{display:flex;align-items:center;gap:7px;color:var(--text2);font-size:var(--text-12)}.srs-browser-mobile-filter select{flex:1;min-height:38px;border:1px solid var(--line2);border-radius:var(--r-2);background:var(--bg1);color:var(--text0);font:inherit}.srs-browser-content{display:block;grid-template-columns:minmax(0,1fr);overflow:hidden;min-width:0}.srs-browser-nav{display:none}.srs-browser-list,.srs-browser-detail{height:100%;border:0}.srs-browser-content.mobile-detail .srs-browser-list,.srs-browser-content.mobile-list .srs-browser-detail{display:none}.srs-browser-detail{padding:13px;min-width:0}.srs-browser-mobile-back{display:inline-flex;min-height:44px;margin:-2px 0 12px}.srs-browser-card{min-height:66px;padding:10px 12px}.srs-browser-pagination{padding-bottom:max(8px,env(safe-area-inset-bottom))}}@media(prefers-reduced-motion:reduce){.srs-browser *,.srs-browser *:before,.srs-browser *:after{scroll-behavior:auto;transition-duration:.01ms!important}}.classic-chat{--classic-col: clamp(680px, 60vw, 880px)}.classic-chat .messages{gap:var(--sp-4)}.classic-chat .message{max-width:var(--classic-col)}.classic-chat .message.assistant .bubble-wrap{max-width:640px}.classic-chat .message.assistant .bubble-wrap.learning-turn{max-width:100%;gap:var(--sp-2)}.classic-chat .bubble-plain{background:transparent;border:none;padding:0;color:var(--ink)}.classic-chat .message.assistant .bubble{padding:0;border-color:transparent;background:transparent;color:var(--ink)}.classic-chat .message.user .bubble{border-color:var(--retrait-edge);background:var(--sunken);color:var(--ink)}.classic-chat .message.assistant .avatar{width:32px;height:32px;box-sizing:border-box;border:1px solid var(--retrait-edge);margin-top:calc(1px + (var(--chat-text) * 1.9 - 32px) / 2);border-radius:var(--r-1);background:var(--sunken);color:var(--ink-2);font-size:var(--text-16);font-weight:500}.classic-chat .message.user .avatar{display:none}.classic-chat .message.user .bubble-wrap{max-width:min(70%,470px)}.classic-chat .composer{padding-inline:max(var(--sp-2),calc((100% - var(--classic-col)) / 2))}@media(max-width:720px){.classic-chat .message,.classic-chat .message.assistant .bubble-wrap{max-width:100%}.classic-chat .message.user .bubble-wrap{max-width:85%}.classic-chat .message.assistant .avatar{width:24px;height:24px;margin-top:calc(1px + (var(--chat-text) * 1.9 - 24px) / 2);font-size:var(--text-14)}}.classic-chat .answer-feedback-panel{margin:var(--sp-1) 0 2px;padding:0;border:0;background:transparent;display:flex;flex-direction:column;gap:var(--sp-1);font-size:var(--text-14)}.classic-chat .answer-feedback-row{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-2);align-items:baseline}.classic-chat .answer-feedback-label{font-weight:500;font-size:var(--text-14);color:var(--shu);flex-shrink:0}.classic-chat .answer-feedback-value{color:var(--ink);font-size:var(--text-20)}.classic-chat .answer-feedback-value .pen-strike{color:var(--ink-2)}.classic-chat .answer-feedback-explanation{margin:2px 0 0;color:var(--text1)}.classic-chat .answer-feedback-unavailable{display:flex;flex-wrap:wrap;padding-block:2px;white-space:normal;align-items:center;justify-content:space-between;gap:var(--sp-2)}.classic-chat .answer-feedback-unavailable .chat-retry-btn{margin:0}.podcast-shelf{display:flex;flex-direction:column;gap:10px}.podcast-shelf-heading{display:flex;align-items:center;gap:8px;padding-bottom:7px;border-bottom:1px solid var(--line1)}.podcast-shelf-heading h4{margin:0;font-size:var(--text-14);color:var(--text0)}.podcast-shelf-heading>span{min-width:22px;padding:2px 7px;border-radius:var(--r-pill);background:var(--bg2);color:var(--text2);font-size:var(--text-12);font-weight:700;text-align:center}.podcast-shelf-heading--listened{border-bottom-color:color-mix(in srgb,var(--green) 38%,var(--line1))}.podcast-shelf-heading--listened h4,.podcast-shelf-heading--listened>span{color:var(--green)}.podcast-shelf-heading--listened>span{background:var(--green-bg)}.podcast-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.podcast-card{position:relative;overflow:hidden}.podcast-card--listened{border:1px solid var(--rule);background:var(--sunken)}.podcast-listened-mark{position:absolute;top:9px;right:9px;display:flex;align-items:center;gap:4px;color:var(--green);font-size:var(--text-12);pointer-events:none}.podcast-listened-mark>span{display:grid;width:24px;height:24px;place-items:center;border-radius:50%;background:var(--green);color:var(--accent-ink);font-size:var(--text-16);font-weight:700}.podcast-card--listened .book-catalog-card-open{padding-right:80px}.podcast-card-title-jp{font-size:var(--text-12);color:var(--text2)}.podcast-card-title-jp rt{font-size:.6em}.podcast-card-date{font-size:var(--text-12);color:var(--text2)}.podcast-card-error-row{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.podcast-card-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-top:auto}.podcast-mark-listened-btn{font-size:var(--text-14)}.podcast-card-delete-btn{align-self:center;margin-left:auto}.podcast-card-delete-btn:hover{color:var(--shu)}.podcast-player{width:100%;max-width:720px;margin:0 auto;padding:16px;display:flex;flex-direction:column;gap:14px}.podcast-player-topbar{display:flex;align-items:center;justify-content:space-between;gap:10px}.podcast-fr-toggle{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line1);background:var(--bg2);color:var(--text2);border-radius:var(--r-pill);padding:5px 12px;font-size:var(--text-14);cursor:pointer;transition:border-color .15s,background .15s,color .15s,box-shadow .15s}.podcast-fr-toggle:not(.podcast-fr-toggle-active):hover{border-color:var(--ai)}.podcast-fr-toggle-active{border-color:var(--ai);background:var(--ai-bg);color:var(--ai);box-shadow:inset 0 0 0 1px var(--ai)}@media(pointer:coarse){.podcast-fr-toggle{min-height:44px}}.podcast-player-title{margin:0;font-size:var(--text-26);line-height:1.35}.podcast-player-title-jp{margin:-8px 0 0;color:var(--text2);font-size:var(--text-16);font-family:var(--font-reader)}.podcast-player-audio{position:sticky;top:0;z-index:2;background:var(--bg1);padding:8px 0;display:flex;align-items:center;gap:8px}.podcast-player-audio audio{flex:1;min-width:0}.podcast-speed-btn{border:1px solid var(--line1);background:var(--bg2);color:var(--text2);border-radius:var(--r-pill);padding:5px 12px;font-size:var(--text-14);white-space:nowrap;font-variant-numeric:tabular-nums;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.podcast-speed-btn:hover{border-color:var(--blue)}.podcast-furigana-btn{border:1px solid var(--line1);background:var(--bg2);border-radius:var(--r-pill);padding:5px 12px;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.podcast-furigana-btn:hover{border-color:var(--blue)}.podcast-seg-jp-text ruby,.podcast-seg-host ruby,.podcast-player-title-jp ruby{ruby-align:center}.podcast-seg-jp-text rt,.podcast-seg-host rt,.podcast-player-title-jp rt{font-size:.5em;color:var(--text2);font-weight:400}.podcast-player-transcript{display:flex;flex-direction:column;gap:10px}.podcast-seg{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:6px}.podcast-seg-play{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:42px;margin-top:8px;padding:5px 4px;border:1px solid transparent;border-radius:var(--r-2);background:transparent;color:var(--text2);font-size:var(--text-14);line-height:1.1;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.podcast-seg-play:hover:not(:disabled){border-color:var(--blue);color:var(--blue)}.podcast-seg-play:focus-visible{outline:2px solid var(--blue);outline-offset:1px}.podcast-seg-play:disabled{opacity:.4;cursor:default}.podcast-seg-clock{font-size:var(--text-12);font-variant-numeric:tabular-nums}.podcast-seg-gutter{display:flex;flex-direction:column;align-items:center;gap:2px}.podcast-seg-card{min-width:42px;padding:2px 4px;border:1px solid transparent;border-radius:var(--r-2);background:transparent;color:var(--text2);font-size:var(--text-16);line-height:1.2;cursor:pointer}.podcast-seg-card:hover:not(:disabled){border-color:var(--blue);color:var(--blue)}.podcast-seg-card:focus-visible{outline:2px solid var(--blue);outline-offset:1px}.podcast-seg-card:disabled{cursor:default}.podcast-seg-card-done{color:var(--green)}.podcast-seg-jp{padding:8px 10px;border-radius:var(--r-2);transition:background .15s}.podcast-seg-jp-text{margin:0;font-family:var(--font-reader);font-size:var(--text-26);line-height:1.85;white-space:pre-line}.podcast-seg-fr{margin:4px 0 0;color:var(--text2);font-size:var(--text-16);font-style:italic;line-height:1.5}.podcast-seg-host{margin:0;padding:8px 10px 8px 20px;border-left:2px solid var(--line1);color:var(--text2);font-style:italic;font-size:var(--text-16);line-height:1.6;white-space:pre-line;border-radius:0 var(--r-2) var(--r-2) 0;transition:background .15s}.podcast-seg-hosted{display:flex;flex-direction:column;gap:2px;min-width:0}.podcast-seg-speaker{padding-left:20px;font-size:var(--text-12);font-weight:500;letter-spacing:.04em;color:var(--text2)}.podcast-seg-speaker-camille{color:var(--rose)}.podcast-seg-speaker-manon{color:var(--teal)}.podcast-seg-host .bk-tok{font-style:normal;color:var(--text1)}.podcast-seg-active{background:var(--blue-bg)!important}.podcast-player-transcript .bk-tok.bk-unk:not(.bk-tok-speaking):not(.bk-tok-active):not(:hover){background:var(--unknown-bg);border-radius:var(--r-1)}.podcast-seg-host.podcast-seg-active{border-left-color:var(--blue)}.podcast-seg-pause{grid-template-columns:42px minmax(0,1fr);border-radius:var(--r-2)}.podcast-seg-pause-mark{grid-column:2;padding:2px 10px;color:var(--text2);font-size:var(--text-14);font-style:italic}.podcast-player-footer{margin-top:8px;padding:10px 12px;border-top:1px solid var(--line1);color:var(--text2);font-size:var(--text-14);line-height:1.6}.podcast-unknown-label{font-weight:500;color:var(--text1)}.podcast-tobook{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:18px}.podcast-tobook-btn{border:1px solid var(--line1);background:var(--bg2);color:var(--text2);border-radius:var(--r-pill);padding:8px 16px;font-size:var(--text-14);cursor:pointer;transition:border-color .15s,background .15s,color .15s}.podcast-tobook-btn:hover:not(:disabled){border-color:var(--blue)}.podcast-tobook-btn:disabled{cursor:default;opacity:.75}@media(max-width:520px){.podcast-player{padding:10px}.podcast-seg-jp-text{font-size:var(--text-20)}.podcast-seg-play,.podcast-seg-card{min-width:36px}.podcast-player-audio{flex-wrap:wrap;gap:6px}.podcast-player-audio audio{flex:1 1 100%;height:40px}.podcast-player-audio>button{flex:1 1 0;min-height:34px}}.gcourse-subtitle{margin:-8px 0 4px;color:var(--text2);font-size:var(--text-12)}.gcourse-season{display:flex;flex-direction:column;gap:10px}.gcourse-season-title{margin:6px 0 -2px;font-size:var(--text-14);font-weight:700;color:var(--text1)}.gcourse-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.gcourse-card{display:flex;flex-direction:column;gap:6px;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}.gcourse-card-upcoming{cursor:default;opacity:.55}.gcourse-card-head{display:flex;align-items:baseline;gap:8px}.gcourse-card-order{flex:none;font-size:var(--text-12);font-weight:700;color:var(--text2);background:var(--bg2);border-radius:var(--r-pill);padding:2px 7px}.gcourse-card-titles{display:flex;flex-direction:column;gap:2px;min-width:0}.gcourse-card-title{font-size:var(--text-16);font-weight:700;line-height:1.3}.gcourse-card-title-jp{font-size:var(--text-12);color:var(--text2)}.gcourse-card-objective{margin:0;color:var(--text2);font-size:var(--text-12);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.gcourse-card-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.gcourse-badge-upcoming{color:var(--ink-3)}@media(max-width:520px){.gcourse-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.gcourse-card-objective{-webkit-line-clamp:2}}.books-catalog{gap:22px;min-width:0}.books-catalog-section{display:flex;flex-direction:column;gap:12px;min-width:0}.books-catalog-section+.books-catalog-section{padding-top:18px;border-top:1px solid var(--line1)}.books-catalog-section-head{display:flex;flex-direction:column;gap:2px}.books-catalog-section-name{margin:0;display:flex;align-items:center;gap:8px;font-size:var(--text-16);font-weight:700;color:var(--text1)}.books-catalog-count{font-size:var(--text-12);font-weight:500;padding:1px 7px;border-radius:var(--r-pill);background:var(--bg2);color:var(--text2)}.books-catalog-section-hint{margin:0;font-size:var(--text-12);color:var(--text2)}.book-shelf-grid{grid-template-columns:repeat(auto-fill,minmax(min(170px,100%),1fr));min-width:0}.book-shelf-card{min-width:0}.book-shelf-add{width:100%;aspect-ratio:2 / 3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:12px;border:1.5px dashed var(--line2);border-radius:var(--r-2);background:transparent;color:var(--text2);font:inherit;font-size:var(--text-14);font-weight:500;text-align:center;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.book-shelf-add:not(:disabled):hover{border-color:var(--ink);color:var(--ink);background:var(--sunken)}.book-shelf-add:disabled{cursor:default;opacity:.6}.book-shelf-add-plus{font-size:var(--text-36);line-height:1;font-weight:400}.book-shelf-add-hint{font-size:var(--text-12);font-weight:400}.books-catalog-imported>summary{cursor:pointer;font-size:var(--text-14);font-weight:500;color:var(--text2);margin-bottom:12px}.book-gen-cover{position:relative;display:block;overflow:hidden;container-type:inline-size;background:var(--gen-paper);color:var(--gen-ink);border-color:color-mix(in srgb,var(--gen-ink) 18%,transparent)}.book-gen-cover:before{content:"";position:absolute;inset:5cqw;border:1.5px solid var(--gen-accent);border-radius:var(--r-1);pointer-events:none}.book-gen-cover--kraft{--gen-paper: #eadfc8;--gen-ink: #2b2118;--gen-accent: #9b3a24}.book-gen-cover--matcha{--gen-paper: #dde5d3;--gen-ink: #1e2a1b;--gen-accent: #4f6b3a}.book-gen-cover--ai{--gen-paper: #d6e0ea;--gen-ink: #16222f;--gen-accent: #2f4f78}.book-gen-cover--sakura{--gen-paper: #f0e0e0;--gen-ink: #2e1a1c;--gen-accent: #a8384b}.book-gen-cover--fuji{--gen-paper: #e5dfee;--gen-ink: #211b2c;--gen-accent: #5d4a80}.book-gen-cover--yamabuki{--gen-paper: #f1e5c6;--gen-ink: #2a2210;--gen-accent: #b27716}.book-gen-cover-title{position:absolute;top:14cqw;right:16cqw;max-height:94cqw;writing-mode:vertical-rl;font-family:var(--font-mincho);font-weight:700;font-size:clamp(9cqw,calc(88cqw / var(--gen-len, 6)),17cqw);line-height:1.15;letter-spacing:.06em}.book-gen-cover-author{position:absolute;left:14cqw;bottom:14cqw;max-height:70cqw;writing-mode:vertical-rl;font-size:7.5cqw;letter-spacing:.1em;opacity:.8}.book-gen-cover-imprint{position:absolute;right:14cqw;bottom:12cqw;writing-mode:vertical-rl;padding:1.8cqw 1.2cqw;border-radius:1.5cqw;background:var(--gen-accent);color:var(--gen-paper);font-size:5.5cqw;font-weight:700;letter-spacing:.05em}@media(max-width:520px){.book-shelf-grid{grid-template-columns:repeat(auto-fill,minmax(min(140px,100%),1fr))}.books-catalog-section-name{font-size:var(--text-14)}}.book-shelf-note{font-size:var(--text-12)}.book-shelf-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.book-shelf-select{font:inherit;font-size:var(--text-12);padding:2px 4px;border:1px solid var(--line2);border-radius:var(--r-2);background:var(--bg1);color:var(--text1);max-width:100%}.error-boundary{display:grid;place-items:center;padding:18px}.error-boundary-panel{flex:1;min-height:0}.error-boundary-overlay,.error-boundary-page{position:fixed;inset:0;z-index:2000}.error-boundary-overlay{background:var(--scrim)}.error-boundary-page{background:var(--bg0)}.error-boundary-card{display:flex;flex-direction:column;align-items:center;gap:10px;width:min(440px,100%);padding:24px 20px;border:1px solid var(--line2);border-radius:var(--r-3);background:var(--bg1);text-align:center}.error-boundary-title{margin:4px 0 0;font-size:var(--text-16);font-weight:700;color:var(--text0)}.error-boundary-text{margin:0;font-size:var(--text-14);color:var(--text1)}.error-boundary-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px}.lazy-fallback{display:grid;place-items:center}.lazy-fallback-panel{flex:1;min-height:0}.lazy-fallback-page{position:fixed;inset:0;background:var(--bg0)}.lazy-fallback-spinner{width:26px;height:26px;border:3px solid var(--line2);border-top-color:var(--blue);border-radius:50%;opacity:0;animation:spin .8s linear infinite,lazy-fallback-appear .2s ease-out .2s forwards}@keyframes lazy-fallback-appear{to{opacity:1}}.home-page{flex:1;min-height:0;overflow-y:auto;background:var(--bg0)}.home-column{max-width:720px;margin:0 auto;padding:var(--sp-4) var(--sp-4) var(--sp-12);display:flex;flex-direction:column;gap:var(--sp-5)}.home-main,.home-side{display:flex;flex-direction:column;gap:var(--sp-5);min-width:0}.home-header{display:flex;flex-direction:column;gap:var(--sp-2)}.home-date{margin:0;color:var(--text2);font-size:var(--text-14);font-weight:500;letter-spacing:.02em}.home-summary{margin:0;color:var(--text0);font-size:var(--text-16);line-height:1.5}.home-section{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--line1);border-radius:var(--r-2);background:var(--bg1)}.home-section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--ink)}.home-section-title{margin:0;color:var(--ink);font-family:var(--font-mincho);font-size:max(20px,var(--text-20));font-weight:500;line-height:1.2;white-space:nowrap}.home-section-toggle{display:flex;flex:1;align-items:center;justify-content:space-between;gap:var(--sp-2);min-height:var(--control-h);margin-block:calc((var(--control-h) - 28px) / -2);margin-inline:0;padding:0;border:0;background:none;color:var(--text1);font:inherit;cursor:pointer}.home-section-hint{margin-left:auto;color:var(--text1);font-size:var(--text-14)}.home-goals-toggle{display:inline-flex;align-items:center;gap:6px;min-height:36px;border-color:var(--line1);color:var(--text1);font-size:var(--text-14)}.home-goals-toggle svg{flex-shrink:0}.home-today-goal{color:var(--text1);font-size:var(--text-14);font-variant-numeric:tabular-nums}.home-today-goal-done{color:var(--green)}.home-today-track{height:4px;margin-top:calc(-1 * var(--sp-1))}.home-today-track.home-gauge-full .progress-fill{background:var(--green)}.home-actions{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.home-action,.home-recap{display:grid;grid-template-columns:36px minmax(0,1fr) 124px;gap:var(--sp-3);align-items:center;padding:var(--sp-3) 0;border-top:1px solid var(--line1)}.home-action-lead{border-top:0}.home-actions-divider+.home-action{border-top:0}.home-actions-divider{padding-top:var(--sp-3);color:var(--ink-2);font-size:var(--text-14);font-weight:500}.home-actions-divider+.home-action{padding-top:var(--sp-2)}.home-action-num{align-self:start;color:var(--shu);font-family:var(--font-mincho);font-size:max(20px,var(--text-20));font-weight:500;line-height:1.4;text-align:center}.home-action-body{display:flex;flex-direction:column;gap:2px;min-width:0}.home-action-title{margin:0;text-wrap:balance;color:var(--text0);font-size:var(--text-16);font-weight:700;line-height:1.35}.home-action-subtitle{margin:0;color:var(--text1);font-size:var(--text-14);line-height:1.45}.home-action-secondary{align-self:flex-start;margin-top:2px;padding:2px 0;border:0;background:none;color:var(--ink-2);font:inherit;font-size:var(--text-14);text-decoration:underline;text-decoration-color:var(--field);text-underline-offset:4px;cursor:pointer}.home-action-secondary:hover{color:var(--ink);text-decoration-color:var(--ink)}.home-action-go{justify-content:center;width:100%;min-width:0;padding:0 var(--sp-2)}.home-bonus-label,.home-recap-label{display:inline-block;margin-right:6px;padding:0 6px;border-radius:var(--r-pill);font-size:var(--text-12);font-weight:700}.home-bonus-label{background:var(--amber-bg);color:var(--amber)}.home-progress{display:flex;flex-direction:column;gap:var(--sp-4)}.home-progress-item{display:flex;flex-direction:column;gap:var(--sp-1)}.home-progress-title{margin:0;color:var(--ink-2);font-size:var(--text-14);font-weight:500}.home-progress-line{margin:0;color:var(--text0);font-size:var(--text-14);line-height:1.45}.home-progress-muted{color:var(--text1);font-size:var(--text-14)}.home-progress-link{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);width:100%;padding:0;border:0;background:none;font-family:inherit;text-align:left;cursor:pointer}.home-progress-link svg{flex-shrink:0;color:var(--text2)}.home-progress-link:hover>span,.home-progress-link:focus-visible>span,.home-meter-link:hover .home-meter-label,.home-meter-link:focus-visible .home-meter-label{text-decoration:underline;text-underline-offset:2px}.home-progress-link:hover svg{color:var(--blue)}.home-meter-list{display:flex;flex-direction:column;gap:6px;margin:2px 0 0;padding:0;list-style:none}.home-meter{display:grid;grid-template-columns:minmax(0,42%) minmax(0,1fr) 56px;gap:var(--sp-3);align-items:center;width:100%;color:var(--text0);font-size:var(--text-14);line-height:1.45}.home-meter-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-meter .progress-track,.home-meter .progress-fill{display:block}.home-meter .progress-track{height:6px}.home-meter-value{color:var(--text2);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.home-meter-link{padding:0;border:0;background:none;font-family:inherit;text-align:left;cursor:pointer}.home-path{display:flex;flex-direction:column;gap:var(--sp-1)}.home-path-bar,.home-path-labels{display:flex;gap:2px}.home-path-segment{flex-basis:0;height:8px;overflow:hidden;border-radius:var(--r-2);background:var(--bg3)}.home-path-fill{height:100%;background:var(--blue)}.home-path-segment.passed .home-path-fill{background:var(--green)}.home-path-label{flex-basis:0;color:var(--text2);font-size:var(--text-12);font-weight:500}.home-gauge{display:flex;flex-direction:column;gap:var(--sp-1)}.home-gauge .progress-track{height:6px}.home-gauge-head{display:flex;justify-content:space-between;gap:var(--sp-3);color:var(--text1);font-size:var(--text-14)}.home-gauge-full .progress-fill{background:var(--green)}.home-week{display:flex;flex-direction:column;gap:var(--sp-3)}.home-week-side{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}.home-week-rhythm,.home-week-goals{display:flex;flex-direction:column;gap:var(--sp-2)}.home-week-rhythm:empty{display:none}.home-week .streak-banner{margin:0 calc(-1 * var(--sp-2));padding:var(--sp-2) var(--sp-2)}.home-week .home-goals{margin:0 calc(-1 * var(--sp-2));padding:var(--sp-3) var(--sp-2)}.home-week-due{margin:0;color:var(--text1);font-size:var(--text-14)}.home-week-due-done{color:var(--green)}.home-journal{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.home-journal-day{display:flex;align-items:baseline;gap:var(--sp-2);padding:6px 0;border-top:1px solid var(--line1)}.home-journal-label{flex-shrink:0;min-width:76px;color:var(--text0);font-size:var(--text-14);font-weight:500}.home-journal-body{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px var(--sp-2);min-width:0}.home-journal-facts{color:var(--text1);font-size:var(--text-14)}.home-journal-fact-minutes{color:var(--text0)}.home-journal-fact+.home-journal-fact:before{content:" · "}.home-journal-chips{flex-basis:100%;margin-top:0}.home-journal-chips-alone{flex-basis:auto}.home-week-goals-pairs .home-week-due{display:flex;justify-content:space-between;gap:var(--sp-3)}.home-goal-value{color:var(--text0);font-variant-numeric:tabular-nums;white-space:nowrap}.home-gauge-full .home-goal-value,.home-week-due-done .home-goal-value{color:var(--green)}.home-week-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;color:var(--text1);font-size:var(--text-14);font-variant-numeric:tabular-nums;line-height:1.3}.home-week-table th,.home-week-table td{padding:0;font-weight:400;text-align:center}.home-week-corner{width:78px}.home-week-table thead th{padding:var(--sp-1) 0 6px}.home-week-day{gap:var(--sp-1)}.home-week-dayname{color:var(--text2);font-size:var(--text-12);font-weight:500;white-space:nowrap}.home-week-today .home-week-dayname{color:var(--blue)}.home-week-table th:nth-child(odd) .streak-day-done .streak-day-stamp{transform:rotate(5deg)}.home-week-table tbody th,.home-week-table tbody td{height:24px;border-top:1px solid var(--line1)}.home-week-table tbody th{color:var(--text2);font-size:var(--text-12);text-align:left}.home-week-cell-minutes{color:var(--text0);font-weight:500}.home-week-table .home-week-goal-met{color:var(--green)}.home-week-table .home-week-today{background:var(--blue-bg)}.home-week-table thead .home-week-today{border-radius:var(--r-2) var(--r-2) 0 0}.home-week-table tbody tr:last-child .home-week-today{border-radius:0 0 var(--r-2) var(--r-2)}.home-week-table-bare thead .home-week-today{border-radius:var(--r-2)}.home-goals{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--r-2);background:var(--bg2)}.home-goals-field{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);color:var(--text0);font-size:var(--text-14)}.home-goals-field select{min-height:36px;padding:var(--sp-1) var(--sp-2);border:1px solid var(--line2);border-radius:var(--r-2);background:var(--bg1);color:var(--text0);font:inherit}.home-goals-check{display:flex;align-items:center;gap:var(--sp-2);min-height:var(--control-h);color:var(--text0);font-size:var(--text-14)}.home-goals-check input{width:18px;height:18px;accent-color:var(--blue)}.home-goals-actions,.home-error-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--sp-2)}.home-error{margin:0;color:var(--red);font-size:var(--text-14)}.home-error p{margin:0}.home-error-soft{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-2);background:var(--red-bg);font-size:var(--text-14)}.home-error .button{display:inline-flex;align-items:center;gap:6px}.home-skeleton{border-radius:var(--r-2);background:var(--bg2);animation:home-skeleton-pulse 1.4s ease-in-out infinite}.home-skeleton-line{height:16px;width:40%}.home-skeleton-banner{height:52px}.home-skeleton-block{height:160px}@keyframes home-skeleton-pulse{0%,to{opacity:.55}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.home-skeleton{animation:none}}@media(max-width:720px){.home-column{padding:var(--sp-3) var(--sp-3) var(--sp-8)}.home-action,.home-recap{grid-template-columns:36px 1fr}.home-action-go{grid-column:1 / -1;width:100%;min-height:44px}}@media(pointer:coarse){.home-action-secondary{min-height:44px}.home-progress-link,.home-meter-link{min-height:36px}}@media(min-width:1000px){.home-column-wide{max-width:1560px;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);grid-auto-flow:row dense;align-items:stretch;gap:var(--sp-3) var(--sp-4);padding:var(--sp-3) var(--sp-3);--home-card-inset: calc(var(--sp-3) + 1px)}.home-column-wide>.home-header,.home-column-wide>.home-error-soft{grid-column:1 / -1}.home-column-wide .home-main,.home-column-wide .home-side{display:contents}.home-column-wide .home-today{grid-column:1}.home-column-wide .home-section-progress{grid-column:2}.home-column-wide .home-blockers,.home-column-wide .home-section-week{grid-column:1 / -1}.home-column-wide .home-header{display:block}.home-column-wide .home-date,.home-column-wide .home-summary{display:inline}.home-column-wide .home-date:after{content:" · ";font-weight:400}.home-column-wide .home-section{padding:var(--sp-3) var(--sp-3);gap:var(--sp-2)}.home-column-wide .home-actions>.home-action,.home-column-wide .home-recap{padding:var(--sp-2) 0}.home-column-wide .home-actions>.home-actions-divider+.home-action{padding-top:var(--sp-1)}.home-column-wide .home-action:not(.home-action-lead) .home-action-title,.home-column-wide .home-recap .home-action-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-column-wide .home-goals-toggle{min-height:28px;padding:0 var(--sp-2)}.home-column-wide .home-progress-body:not([hidden]){display:flex;flex-direction:column}.home-column-wide .home-progress{justify-content:flex-start;gap:var(--sp-3)}.home-column-wide .home-week,.home-column-wide .home-week-side,.home-column-wide .home-week-rhythm,.home-column-wide .home-week-goals{gap:var(--sp-2)}.home-column-wide .home-actions-divider{padding-top:var(--sp-2)}.home-column-wide .home-week-wide:not(.home-week-stacked){display:grid;grid-template-columns:minmax(0,1.5fr) minmax(min(100%,420px),1fr);align-items:stretch;column-gap:calc(var(--sp-4) + var(--home-card-inset) / 2);row-gap:0}.home-column-wide .home-week-stacked .home-goals{max-width:44rem}.home-column-wide .home-week-wide:not(.home-week-stacked) .home-week-side{display:contents}.home-column-wide .home-week-wide:not(.home-week-stacked) .home-section-head{grid-column:1 / -1;margin-bottom:var(--sp-2)}.home-column-wide .home-week-wide:not(.home-week-stacked) .home-week-rhythm{grid-column:1}.home-column-wide .home-week-wide:not(.home-week-stacked) .home-week-days{grid-column:2;padding-left:var(--sp-3);border-left:1px solid var(--line1)}.home-column-wide .home-week-wide .home-week-rhythm{flex-direction:row;flex-wrap:wrap;align-items:flex-start;align-content:flex-start;gap:var(--sp-2) var(--sp-7)}.home-column-wide .home-week-wide .home-week-goals{flex:1 1 15rem;max-width:26rem}.home-column-wide .home-week-wide:not(.home-week-stacked) .home-week-goals{max-width:none;margin-right:calc(var(--home-card-inset) / 2)}.home-column-wide .home-blockers-list:not(.home-blockers-tiles)>.home-blocker{grid-template-columns:minmax(0,1.5fr) minmax(min(100%,420px),1fr);column-gap:calc(var(--sp-4) + var(--home-card-inset) / 2)}.home-column-wide .home-blockers-list:not(.home-blockers-tiles) .home-blocker-actions{justify-content:flex-start;padding-left:var(--home-card-inset)}.home-column-wide .home-blockers-tiles{display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column}.home-column-wide .home-blockers-tiles>.home-blocker{display:flex;flex-direction:column;align-items:stretch;gap:var(--sp-2);padding:2px var(--sp-4) 0;border-top:0;border-left:1px solid var(--line1)}.home-column-wide .home-blockers-tiles>.home-blocker:first-child{padding-left:0;border-left:0}.home-column-wide .home-blockers-tiles>.home-blocker:last-child{padding-right:0}.home-column-wide .home-blockers-tiles .home-blocker-actions{order:1;margin-top:auto;justify-content:flex-start}.home-column-wide .home-blockers-tiles>.home-blocker-done{flex-direction:row;align-items:flex-start;gap:6px}}@media(min-width:1000px)and (max-height:820px){.home-column-wide .home-week-table thead th{padding:2px 0 var(--sp-1)}.home-column-wide .home-week-table tbody th,.home-column-wide .home-week-table tbody td{height:22px}}.home-stats-link{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);min-width:var(--control-h);min-height:var(--control-h);margin-block:calc((var(--control-h) - 28px) / -2);margin-inline:0 calc(-1 * var(--sp-2));padding:0 var(--sp-2);border:0;border-radius:var(--r-2);background:none;color:var(--text2);font:inherit;font-size:var(--text-14);cursor:pointer}.home-stats-link-wide{min-height:30px;margin:-6px calc(-1 * var(--sp-2)) -6px 0;padding:0 var(--sp-2)}.home-stats-link:hover,.home-stats-link:focus-visible{background:var(--bg2);color:var(--text0)}.stats-column{max-width:1560px;margin:0 auto;padding:16px 16px 48px;display:flex;flex-direction:column;gap:16px}.stats-header{display:flex;flex-direction:column;gap:10px}.stats-back{display:inline-flex;align-self:flex-start;align-items:center;gap:2px;min-height:36px;margin-left:-6px;padding:0 10px 0 4px;border:0;border-radius:var(--r-2);background:none;color:var(--text1);font:inherit;font-size:var(--text-14);cursor:pointer}.stats-back:hover,.stats-back:focus-visible{background:var(--bg2);color:var(--text0)}.stats-title-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px}.stats-title{display:flex;align-items:center;gap:10px;margin:0;color:var(--text0);font-size:var(--text-20);font-weight:700}.stats-title-kanji{padding:1px 6px 2px;border-radius:var(--r-1);background:var(--hanko);color:var(--hanko-ink);font-size:var(--text-14);font-weight:700;letter-spacing:.08em}.stats-meta{margin:0;color:var(--text2);font-family:var(--font-mono);font-size:var(--text-12);font-variant-numeric:tabular-nums}.stats-filters,.stats-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.stats-segmented{display:inline-flex;flex-wrap:wrap;max-width:100%;padding:2px;border:1px solid var(--line1);border-radius:var(--r-2);background:var(--bg2)}.stats-segment{min-height:30px;padding:0 10px;border:0;border-radius:var(--r-2);background:none;color:var(--text1);font:inherit;font-size:var(--text-14);white-space:nowrap;cursor:pointer}.stats-segment:not(.stats-segment-on):hover{color:var(--ink)}.stats-segment-on{background:var(--ai-bg);color:var(--ai);box-shadow:inset 0 0 0 1px var(--ai)}@media(pointer:coarse){.stats-segment{min-height:38px}}.stats-body{display:flex;flex-direction:column;gap:16px;transition:opacity .15s ease}.stats-body-loading{opacity:.6}.stats-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stats-tiles>div{min-width:0}.stats-tile{display:flex;flex-direction:column;gap:2px;height:100%;min-height:116px;padding:12px 12px 10px;border:1px solid var(--line1);border-radius:var(--r-2);background:var(--bg1)}.stats-tile-label{color:var(--ink-2);font-size:var(--text-14);font-weight:500}.stats-tile-value{color:var(--text0);font-size:var(--text-26);font-weight:700;line-height:1.25;letter-spacing:-.01em;white-space:nowrap}.stats-tile-meta{display:flex;flex-wrap:wrap;gap:0 8px;color:var(--text1);font-size:var(--text-12);line-height:1.45}.stats-delta{color:var(--text2);font-variant-numeric:tabular-nums;white-space:nowrap}.stats-delta-up{color:var(--green)}.stats-spark{display:block;width:100%;height:24px;margin-top:auto;padding-top:4px;overflow:visible}.stats-spark path{stroke:var(--text2);stroke-width:1.5;stroke-linejoin:round;opacity:.7}.stats-spark circle{fill:var(--chart-1)}.stats-row{display:grid;gap:16px}.stats-card{min-width:0}.stats-head-wrap{flex-wrap:wrap}.stats-card-sub{margin:-6px 0 0;color:var(--text2);font-size:var(--text-12)}.stats-kicker{margin-right:2px;color:var(--hanko);font-family:var(--font-ui);font-size:var(--text-12);font-weight:700;letter-spacing:.06em}.stats-card-count{color:var(--text1);font-family:var(--font-mono);font-size:var(--text-14);font-variant-numeric:tabular-nums}.stats-muted{color:var(--text2)}.stats-good{color:var(--green)}.stats-icon-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin:-4px 0;border:1px solid var(--line1);border-radius:var(--r-2);background:none;color:var(--text2);cursor:pointer}.stats-icon-button:hover,.stats-icon-button[aria-pressed=true]{background:var(--bg2);color:var(--text0)}.stats-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0;padding:0;list-style:none;color:var(--text1);font-size:var(--text-12)}.stats-legend li{display:inline-flex;align-items:center}.stats-key-rect,.stats-key-line{display:inline-block;flex-shrink:0;margin-right:6px}.stats-key-rect{width:10px;height:10px;border-radius:var(--r-1)}.stats-key-line{width:14px;height:2px;border-radius:var(--r-1)}.stats-empty{margin:0;color:var(--text2);font-size:var(--text-14)}.stats-footnote{margin:0;color:var(--text2);font-size:var(--text-12);line-height:1.5}.stats-chart{position:relative;width:100%;min-width:0;border-radius:var(--r-2);outline:none;touch-action:pan-y}.stats-chart:focus-visible{box-shadow:0 0 0 2px var(--blue)}.stats-svg{display:block;overflow:visible}.stats-axis text{fill:var(--text2);font-family:var(--font-mono);font-size:var(--text-12);font-variant-numeric:tabular-nums}.stats-grid,.stats-baseline,.stats-crosshair,.stats-target-line{stroke-width:1;shape-rendering:crispEdges}.stats-grid{stroke:var(--line1)}.stats-baseline{stroke:var(--line2)}.stats-crosshair{stroke:var(--text2)}.stats-target-line{stroke:var(--text2);opacity:.6}.stats-axis .stats-target-label{fill:var(--text1);font-family:var(--font)}.stats-hover-band{fill:var(--bg2)}.stats-dot{stroke:var(--bg1);stroke-width:2}.stats-tooltip{position:absolute;z-index:5;min-width:128px;padding:6px 9px;border:1px solid var(--line2);border-radius:var(--r-2);background:var(--bg1);box-shadow:var(--shadow-float);color:var(--text1);font-size:var(--text-12);line-height:1.5;white-space:nowrap;pointer-events:none;transform:translate(12px)}.stats-tooltip-flip{transform:translate(calc(-100% - 12px))}.stats-tooltip-title{color:var(--text2);font-size:var(--text-12)}.stats-tooltip-row{display:flex;align-items:center;gap:6px}.stats-tooltip-row strong{color:var(--text0);font-variant-numeric:tabular-nums}.stats-tooltip-footer{margin-top:3px;padding-top:3px;border-top:1px solid var(--line1)}.stats-heat-0{fill:var(--bg2);background:var(--bg2)}.stats-heat-1{fill:color-mix(in srgb,var(--chart-1) 28%,var(--bg1));background:color-mix(in srgb,var(--chart-1) 28%,var(--bg1))}.stats-heat-2{fill:color-mix(in srgb,var(--chart-1) 52%,var(--bg1));background:color-mix(in srgb,var(--chart-1) 52%,var(--bg1))}.stats-heat-3{fill:color-mix(in srgb,var(--chart-1) 76%,var(--bg1));background:color-mix(in srgb,var(--chart-1) 76%,var(--bg1))}.stats-heat-4{fill:var(--chart-1);background:var(--chart-1)}.stats-heat-before{opacity:.45}.stats-heat-today{stroke:var(--text1);stroke-width:1}.stats-heat-focus{fill:none;stroke:var(--text0);stroke-width:1.5;pointer-events:none}.stats-heat-legend{display:flex;align-items:center;gap:3px;margin:0;padding:0;list-style:none;color:var(--text2);font-size:var(--text-12)}.stats-heat-legend li:first-child{margin-right:3px}.stats-heat-legend li:last-child{margin-left:3px}.stats-heat-swatch{display:block;width:11px;height:11px;border-radius:var(--r-1)}.stats-heatmap{overflow-x:auto}.stats-punch{fill:var(--chart-1);opacity:.85}.stats-punch-hover{opacity:1;stroke:var(--bg1);stroke-width:2}.stats-punch-empty{fill:var(--line2)}.stats-barlist{display:flex;flex-direction:column;gap:7px;margin:0;padding:0;list-style:none}.stats-barlist li{display:grid;grid-template-columns:minmax(0,9.5em) minmax(0,1fr) 7.5em;gap:10px;align-items:center;font-size:var(--text-14)}.stats-barlist-label{overflow:hidden;color:var(--text1);text-overflow:ellipsis;white-space:nowrap}.stats-barlist-track{position:relative;height:8px;overflow:hidden;border-radius:var(--r-2);background:var(--bg2)}.stats-barlist-fill,.stats-barlist-under{position:absolute;top:0;bottom:0;left:0;border-radius:var(--r-2)}.stats-barlist-under{opacity:.28}.stats-barlist-value{color:var(--text0);font-family:var(--font-mono);font-size:var(--text-12);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.stats-barlist-marker{position:absolute;top:-2px;bottom:-2px;width:2px;margin-left:-1px;border-radius:var(--r-1);background:var(--text0)}.stats-barlist-track:has(.stats-barlist-marker){overflow:visible}.stats-health-summary{margin:0;color:var(--text1);font-family:var(--font-mono);font-size:var(--text-12);font-variant-numeric:tabular-nums}.stats-subtitle{margin:6px 0 0;color:var(--text0);font-size:var(--text-14);font-weight:700}.stats-card-sub.stats-card-sub-flat{margin-top:0}.stats-resistant{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.stats-resistant li{display:grid;grid-template-columns:minmax(0,9em) minmax(0,1fr) auto;gap:10px;align-items:baseline;padding:6px 0;border-top:1px solid var(--line1);font-size:var(--text-14)}.stats-resistant li:first-child{border-top:0}.stats-resistant-word{overflow:hidden;color:var(--text0);font-size:var(--text-16);font-weight:700;text-overflow:ellipsis;white-space:nowrap}.stats-resistant-reading{margin-left:6px;color:var(--text2);font-size:var(--text-12);font-weight:400}.stats-resistant-meaning{overflow:hidden;color:var(--text1);text-overflow:ellipsis;white-space:nowrap}.stats-resistant-meta{color:var(--text2);font-family:var(--font-mono);font-size:var(--text-12);white-space:nowrap}@media(max-width:520px){.stats-table.stats-table-compact th,.stats-table.stats-table-compact td{padding-right:4px;padding-left:4px;font-size:var(--text-12)}.stats-table .stats-col-optional{display:none}.stats-resistant li{grid-template-columns:minmax(0,1fr) auto}.stats-resistant-meaning{grid-column:1 / -1;grid-row:2}}.stats-forecast{gap:14px}.stats-forecast-hero{display:flex;flex-direction:column;gap:2px;margin:0 -8px;padding:12px 8px;border-radius:var(--r-2);background:var(--blue-bg)}.stats-forecast-step{margin:0;color:var(--text0);font-size:var(--text-14);font-weight:700}.stats-forecast-step span{color:var(--text1);font-weight:400}.stats-hero-figure{margin:0;color:var(--text0);font-size:clamp(36px,6vw,56px);font-weight:700;line-height:1.15;letter-spacing:-.02em}.stats-hero-prefix{color:var(--text1);font-size:var(--text-20);font-weight:500;letter-spacing:0}.stats-forecast-sub,.stats-forecast-note{margin:0;color:var(--text1);font-size:var(--text-14)}.stats-forecast-range{margin:0;color:var(--text2);font-family:var(--font-mono);font-size:var(--text-12)}.stats-forecast-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}.stats-forecast-metric{display:flex;flex-direction:column;gap:6px;min-width:0}.stats-forecast-metric-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.stats-forecast-metric-label{color:var(--text0);font-size:var(--text-14);font-weight:700}.stats-num{color:var(--text0);font-family:var(--font-mono);font-size:var(--text-14);font-variant-numeric:tabular-nums}.stats-forecast-track{height:6px}.stats-forecast-metric-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 8px;color:var(--text1);font-size:var(--text-12)}.stats-table-wrap{max-width:100%;overflow-x:auto}.stats-table{width:100%;border-collapse:collapse;font-size:var(--text-14);font-variant-numeric:tabular-nums}.stats-table caption{padding-bottom:6px;color:var(--text2);font-size:var(--text-12);text-align:left;white-space:normal}.stats-table th,.stats-table td{padding:5px 8px;border-bottom:1px solid var(--line1);text-align:right;white-space:nowrap}.stats-table th:first-child,.stats-table td:first-child{padding-left:0;text-align:left}.stats-table thead th{color:var(--text2);font-size:var(--text-12);font-weight:500}.stats-table tbody th{color:var(--text1);font-weight:500}.stats-table td{color:var(--text0);font-family:var(--font-mono);font-size:var(--text-12)}.stats-required-now th,.stats-required-now td{border-bottom:0;color:var(--text0);font-weight:500}.stats-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.stats-log{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.stats-log li{display:grid;grid-template-columns:4.6em 16px minmax(0,1fr);gap:8px;align-items:center;padding:6px 0;border-top:1px solid var(--line1);font-size:var(--text-14)}.stats-log li:first-child{border-top:0}.stats-log time{color:var(--text2);font-family:var(--font-mono);font-size:var(--text-12);font-variant-numeric:tabular-nums}.stats-log svg{color:var(--text2)}.stats-log-title{overflow:hidden;color:var(--text0);text-overflow:ellipsis;white-space:nowrap}.stats-link{align-self:flex-start;padding:4px 0;border:0;background:none;color:var(--blue);font:inherit;font-size:var(--text-14);cursor:pointer}.stats-records{display:flex;flex-direction:column;margin:0;font-size:var(--text-14)}.stats-records>div{display:flex;align-items:baseline;gap:8px;padding:3px 0}.stats-records dt{display:flex;flex:1;align-items:baseline;gap:8px;min-width:0;color:var(--text1);white-space:nowrap}.stats-records dt:after{content:"";flex:1;min-width:12px;border-bottom:1px dotted var(--line2);transform:translateY(-4px)}.stats-records dd{margin:0;color:var(--text0);font-family:var(--font-mono);font-size:var(--text-14);font-variant-numeric:tabular-nums;text-align:right}@media(min-width:720px){.stats-tiles,.stats-forecast-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1000px){.stats-column{padding:var(--sp-3) var(--sp-3) var(--sp-12)}.stats-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:6px 16px}.stats-header>.stats-back{grid-column:1 / -1}.stats-header>.home-error-soft{grid-column:1 / -1}.stats-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}.stats-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1200px){.stats-tiles{grid-template-columns:repeat(6,minmax(0,1fr))}}@media(max-width:420px){.stats-tile-value{font-size:var(--text-20)}.stats-barlist li{grid-template-columns:minmax(0,7.5em) minmax(0,1fr) 6.5em}}.film-player{--film-player-video-bg: #000;--film-player-ink: #fff;--film-player-ink-soft: rgba(255, 255, 255, .84);--film-player-scrim: rgba(0, 0, 0, .62);--film-player-scrim-strong: rgba(0, 0, 0, .8);--film-player-btn-hover: rgba(255, 255, 255, .2);--film-player-chip-line: rgba(255, 255, 255, .45);--film-player-primary-bg: #fff;--film-player-primary-ink: #000;--dict-panel-w: clamp(280px, var(--dict-w-film, 380px), 50vw);position:relative;display:flex;flex-direction:column;flex:1;min-width:0;min-height:0;background:var(--bg0)}.film-player-main{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0}.film-player-bar{display:flex;flex-shrink:0;align-items:center;gap:6px;min-height:48px;padding:2px 12px 2px 2px;border-bottom:1px solid var(--line1);background:var(--bg1)}.film-player-back{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--r-2);background:transparent;color:var(--text1);cursor:pointer}.film-player-back:hover{background:var(--bg2);color:var(--text0)}.film-player-heading{display:flex;align-items:baseline;gap:8px;min-width:0}.film-player-title{overflow:hidden;font-size:var(--text-16);font-weight:700;color:var(--text0);white-space:nowrap;text-overflow:ellipsis}.film-player-title-jp{overflow:hidden;min-width:0;font-size:var(--text-14);color:var(--text2);white-space:nowrap;text-overflow:ellipsis}.film-player-credit{flex-shrink:0;font-size:var(--text-12);color:var(--text2);white-space:nowrap}.film-player-credit a{color:inherit;text-decoration:underline;text-underline-offset:2px}@media(max-width:640px){.film-player-heading:has(.film-player-credit) .film-player-title-jp{display:none}}.film-player-notions{display:inline-flex;flex-shrink:1;align-items:baseline;gap:8px;min-width:0;overflow:hidden;font-size:var(--text-12);color:var(--text2);white-space:nowrap;text-overflow:ellipsis}.film-player-grammar-link{padding:0;border:0;background:none;font:inherit;color:var(--text1);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.film-player-words-btn{display:inline-flex;flex-shrink:0;align-items:center;gap:6px;min-height:44px;margin-left:auto;padding:0 12px;border-radius:var(--r-2);background:transparent;color:var(--text1);cursor:pointer}.film-player-words-btn:hover{background:var(--bg2);color:var(--text0)}.film-player-words{position:absolute;inset:0;z-index:40;display:flex;flex-direction:column;background:var(--bg1)}.video-library:has(>.video-words){display:flex;flex-direction:column;min-height:0}.video-words{display:flex;flex:1;flex-direction:column;min-height:0}.film-player-stage{position:relative;display:flex;flex-direction:column;flex-shrink:0;background:var(--film-player-video-bg);container:film-stage / inline-size}.film-player-screen{position:relative;width:100%;aspect-ratio:16 / 9;max-height:56dvh;overflow:hidden;background:var(--film-player-video-bg)}.film-player-video{display:block;width:100%;height:100%;object-fit:contain;background:var(--film-player-video-bg)}.film-player-yt iframe{display:block;width:100%;height:100%;border:0}.film-player-yt-catcher{position:absolute;inset:0;z-index:0}.film-player-endcard{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:12px 16px;background:var(--film-player-scrim-strong);color:var(--film-player-ink);text-align:center}.film-player-endcard-title{max-width:34em;margin:0;font-size:var(--text-16);font-weight:700;line-height:1.35;overflow-wrap:anywhere}.film-player-endcard-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.film-player-endcard-actions button{min-height:44px;padding:0 18px;border-radius:var(--r-pill);font:inherit;font-size:var(--text-16);font-weight:500;cursor:pointer}.film-player-endcard-launch{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;background:var(--film-player-primary-bg);color:var(--film-player-primary-ink)}.film-player-endcard-back{border:1.5px solid var(--film-player-chip-line);background:transparent;color:var(--film-player-ink)}.film-player-endcard-actions button:focus-visible{outline:2px solid var(--film-player-ink);outline-offset:2px}@media(max-width:420px){.film-player-endcard{gap:8px}.film-player-endcard-title{font-size:var(--text-14)}}.film-player-status{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px;font-size:var(--text-14);color:var(--film-player-ink-soft);text-align:center;pointer-events:none}.film-player-status-error{background:var(--film-player-scrim);pointer-events:auto}.film-player-overlay{--film-overlay-gap: 76px;position:absolute;right:0;bottom:max(var(--film-overlay-gap),calc(var(--film-picture-inset-y, 0px) + 12px));left:0;z-index:1;display:flex;justify-content:center;padding:0 max(4%,calc(var(--film-picture-inset-x, 0px) + 8px));pointer-events:none}.film-player-subtitle{max-width:100%;padding:4px 14px 6px;border-radius:var(--r-2);background:var(--film-player-scrim);color:var(--film-player-ink);text-align:center}.film-player-subtitle-speaker{font-size:var(--text-12);font-weight:500}.film-player-subtitle-speaker.film-speaker-0{color:color-mix(in srgb,var(--film-speaker-0) 55%,white)}.film-player-subtitle-speaker.film-speaker-1{color:color-mix(in srgb,var(--film-speaker-1) 55%,white)}.film-player-subtitle-speaker.film-speaker-2{color:color-mix(in srgb,var(--film-speaker-2) 55%,white)}.film-player-subtitle-speaker.film-speaker-3{color:color-mix(in srgb,var(--film-speaker-3) 55%,white)}.film-player-subtitle-speaker.film-speaker-4{color:color-mix(in srgb,var(--film-speaker-4) 55%,white)}.film-player-subtitle-jp,.film-player-subtitle-fr{width:fit-content;margin-inline:auto;pointer-events:auto}.film-player-subtitle-jp{font-size:clamp(20px,2.2vw,28px);font-weight:500;line-height:1.5;cursor:pointer}.film-player-subtitle-jp ruby{ruby-align:center}.film-player-subtitle-jp rt{font-size:max(.5em,10px);color:var(--film-player-ink-soft)}.film-player-subtitle-jp .bk-tok.bk-unk:not(:hover){background:var(--unknown-bg-night-strong);box-shadow:inset 0 -2px #d1c4ffe6;border-radius:var(--r-1)}.film-player-subtitle-fr{margin-top:2px;font-size:clamp(13px,1.4vw,18px);color:var(--film-player-ink-soft)}.film-player-fr-blur .film-player-subtitle-fr,.film-player-fr-blur .film-player-line-fr{filter:blur(6px);cursor:pointer;transition:filter .15s ease}.film-player-fr-blur .film-player-subtitle-fr.is-revealed,.film-player-fr-blur .film-player-line-fr.is-revealed{filter:none}@media(hover:hover){.film-player-fr-blur .film-player-subtitle-fr:hover,.film-player-fr-blur .film-player-line-fr:hover{filter:none}}.film-player-fr-hidden .film-player-line-fr{display:none}.film-player-controls{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;color:var(--film-player-ink);pointer-events:none;transition:opacity .2s ease}.film-player-controls-bar{display:flex;align-items:center;gap:8px;padding:20px 10px 6px;background:linear-gradient(to top,var(--film-player-scrim-strong),transparent);pointer-events:auto}.film-player-controls-hidden .film-player-controls{opacity:0}.film-player-controls-hidden .film-player-controls-bar{pointer-events:none}.film-player-controls-hidden .film-player-controls:has(:focus-visible){opacity:1}.film-player-controls-hidden .film-player-controls:has(:focus-visible) .film-player-controls-bar{pointer-events:auto}.film-player-controls-hidden .film-player-stage{cursor:none}.film-player-timeline{display:flex;flex:1;align-items:center;gap:8px;min-width:120px;padding:0 4px}.film-player-seek{flex:1;min-width:0;height:20px;margin:0;accent-color:var(--blue);cursor:pointer}.film-player-time{flex-shrink:0;font-size:var(--text-12);font-variant-numeric:tabular-nums;white-space:nowrap}.film-player-transport,.film-player-chips{display:flex;flex-shrink:0;align-items:center}.film-player-transport{gap:2px}.film-player-chips{gap:6px}.film-player-btn{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 8px;border-radius:var(--r-2);background:transparent;color:var(--film-player-ink);font-size:var(--text-14);font-weight:500;cursor:pointer}.film-player-btn.is-on{background:var(--blue);color:var(--accent-ink)}.film-player-btn.film-player-play{width:44px;min-width:44px;height:44px;padding:0;border-radius:50%;background:var(--film-player-primary-bg);color:var(--film-player-primary-ink)}.film-player-btn.film-player-furigana{padding:0;border-radius:50%;font-size:var(--text-16)}.film-player-furigana.is-off{color:var(--film-player-ink-soft);text-decoration:line-through;text-decoration-thickness:2px}.film-player-chip{position:relative;display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;gap:4px;min-height:30px;padding:0 12px;border:1px solid var(--film-player-chip-line);border-radius:var(--r-pill);background:transparent;color:var(--film-player-ink);font-size:var(--text-14);font-weight:500;line-height:1;white-space:nowrap;cursor:pointer}.film-player-chip.is-on,.film-player-fr-chip-visible{border-color:var(--blue);background:var(--blue);color:var(--accent-ink)}.film-player-fr-chip-hidden{border-style:dashed;color:var(--film-player-ink-soft)}.film-player-chip-text{display:inline-grid;justify-items:center}.film-player-chip-text>span,.film-player-chip-text:after{grid-area:1 / 1}.film-player-chip-text:after{content:attr(data-widest);visibility:hidden}.film-player-autopause.is-on .film-player-chip-text>span:before{content:"✓ "}.film-player-speed{font-variant-numeric:tabular-nums}@media(hover:hover){.film-player-btn:hover,.film-player-chip:hover{background:var(--film-player-btn-hover)}.film-player-btn.is-on:hover,.film-player-chip.is-on:hover,.film-player-fr-chip-visible:hover{background:color-mix(in srgb,var(--blue) 85%,black)}.film-player-btn.film-player-play:hover{background:var(--film-player-ink-soft)}}.film-player-volume{display:flex;flex-shrink:0;align-items:center}.film-player-volume-range{width:0;margin:0;opacity:0;accent-color:var(--blue);cursor:pointer;transition:width .2s ease,opacity .2s ease,margin .2s ease}.film-player-volume:hover .film-player-volume-range,.film-player-volume:focus-within .film-player-volume-range{width:80px;margin:0 6px;opacity:1}.film-player-btn:focus-visible,.film-player-chip:focus-visible,.film-player-back:focus-visible,.film-player-line-btn:focus-visible,.film-player-return:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.film-player-chip:focus-visible,.film-player-btn.film-player-play:focus-visible{outline-offset:2px}.film-player-side{position:relative;display:flex;flex:1;flex-direction:column;min-height:0;background:var(--bg1)}.film-player-transcript{position:relative;display:flex;flex:1;flex-direction:column;min-height:0}.film-player-lines{position:relative;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:4px 0 64px}.film-player-line{position:relative;display:flex;align-items:flex-start;gap:4px;padding:8px 6px 8px 16px;border-bottom:1px solid var(--line1);content-visibility:auto;contain-intrinsic-size:auto 80px}.film-player-line.is-active{background:var(--blue-bg)}.film-player-line-mark{position:absolute;top:8px;bottom:8px;left:6px;width:3px;border-radius:var(--r-1);background:currentColor;opacity:.8}.film-player-line-text{flex:1;min-width:0}.film-player-line-speaker{display:block;margin-bottom:1px;font-size:var(--text-12);font-weight:500}.film-player-line-jp{font-size:var(--text-20);line-height:1.6;color:var(--text0);cursor:pointer}.film-player-line-jp ruby{ruby-align:center}.film-player-line-jp rt{font-size:max(.5em,10px);color:var(--text2)}.film-player-line-jp .bk-tok.bk-unk:not(:hover){background:var(--unknown-bg);border-radius:var(--r-1)}.film-player-line-fr{margin-top:2px;font-size:var(--text-14);color:var(--text1)}.film-player-line-actions{display:flex;flex-shrink:0;gap:2px}.film-player-line-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--r-2);background:transparent;color:var(--text2);cursor:pointer}.film-player-line-btn:hover{background:var(--bg2);color:var(--text0)}.film-player-return{position:absolute;bottom:12px;left:50%;z-index:1;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 16px;border-radius:var(--r-pill);background:var(--blue);color:var(--accent-ink);font-size:var(--text-14);font-weight:500;white-space:nowrap;box-shadow:var(--shadow-float);cursor:pointer;transform:translate(-50%)}@media(pointer:coarse){.film-player-btn{min-width:44px;height:44px}.film-player-btn.film-player-play{width:48px;min-width:48px;height:48px}.film-player-chip{min-height:36px}.film-player-chip:before{content:"";position:absolute;inset:-4px 0}.film-player-seek{height:44px}.film-player-line-btn{width:44px;height:44px}.film-player-overlay{--film-overlay-gap: 80px}}@media(hover:none),(pointer:coarse){.film-player-volume{display:none}}@container film-stage (max-width: 799px){.film-player:not(.film-player-stacked) .film-player-controls-bar{flex-wrap:wrap;row-gap:0}.film-player:not(.film-player-stacked) .film-player-timeline{flex-basis:100%;order:-1}.film-player:not(.film-player-stacked) .film-player-chips{margin-left:auto}.film-player:not(.film-player-stacked) .film-player-overlay{--film-overlay-gap: 98px}@media(pointer:coarse){.film-player:not(.film-player-stacked) .film-player-overlay{--film-overlay-gap: 126px}}}@media(min-width:1024px){.film-player{display:grid;grid-template-columns:minmax(0,1fr) var(--dict-panel-w);grid-template-rows:minmax(0,1fr)}.film-player-stage{flex:1;min-height:0}.film-player-screen{flex:1;min-height:0;max-height:none;aspect-ratio:auto}.film-player-side{border-left:1px solid var(--line1)}}.film-player-stacked .film-player-controls-bar{flex-direction:column;align-items:stretch;gap:0;padding:2px 8px 8px}.film-player-stacked .film-player-transport{justify-content:center;gap:12px}.film-player-stacked .film-player-btn.film-player-play{width:56px;min-width:56px;height:56px}.film-player-stacked .film-player-chips{flex-wrap:wrap;justify-content:center;gap:8px;min-height:44px;margin-top:2px}.film-player-stacked:not(.film-player-is-fullscreen) .film-player-stage{cursor:auto}.film-player-stacked:not(.film-player-is-fullscreen) .film-player-controls{position:static;opacity:1}.film-player-stacked:not(.film-player-is-fullscreen) .film-player-controls-bar{background:var(--film-player-video-bg);pointer-events:auto}.film-player-stacked:not(.film-player-is-fullscreen) .film-player-overlay{--film-overlay-gap: 10px}@media(max-width:599px){.film-player-heading{flex:1 1 auto;flex-direction:column;align-items:flex-start;gap:0}.film-player-title{display:-webkit-box;max-width:100%;font-size:var(--text-14);line-height:1.2;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.film-player-title-jp{max-width:100%;overflow:hidden;font-size:var(--text-12);text-overflow:ellipsis}}.film-player:fullscreen,.film-player.film-player-is-fullscreen{display:block;background:var(--film-player-video-bg)}.film-player.film-player-css-fullscreen{position:fixed;inset:0;z-index:500;width:100vw;height:100dvh}.film-player-is-fullscreen .film-player-bar,.film-player-is-fullscreen .film-player-side{display:none}.film-player-is-fullscreen .film-player-main,.film-player-is-fullscreen .film-player-stage{height:100%}.film-player-is-fullscreen .film-player-screen{flex:1;min-height:0;max-height:none;aspect-ratio:auto}.film-player-is-fullscreen .film-player-subtitle-jp{font-size:clamp(20px,3vw,40px)}.film-player-is-fullscreen .film-player-subtitle-fr{font-size:clamp(15px,1.8vw,24px)}.film-player-is-fullscreen .film-player-controls-bar{padding-bottom:max(6px,env(safe-area-inset-bottom))}.film-player-stacked.film-player-is-fullscreen .film-player-controls-bar{padding-top:24px;padding-bottom:max(8px,env(safe-area-inset-bottom))}.film-player-stacked.film-player-is-fullscreen .film-player-overlay{--film-overlay-gap: 186px}.home-blockers{gap:var(--sp-2)}.home-blockers-list{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.home-blocker{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--sp-2) var(--sp-6);align-items:center;padding:var(--sp-3) 0;border-top:1px solid var(--line1)}.home-blocker:first-child{border-top:0;padding-top:2px}.home-blocker-text{display:flex;flex-direction:column;margin:0;min-width:0}.home-blocker-text strong{color:var(--ink);font-size:var(--text-16);font-weight:500;line-height:1.5}.home-blocker-cause{color:var(--ink-2);font-size:var(--text-14);line-height:1.45}.home-blocker-slip{color:var(--ink);font-size:var(--text-20);line-height:1.4;white-space:nowrap}.home-blocker-slip-given{color:var(--ink-2)}.home-blocker-comma{margin-inline-start:calc(var(--text-20) / -2);color:var(--ink-2);font-size:var(--text-14)}.home-blocker-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--sp-1)}.home-blocker-actions .button{min-height:var(--control-h)}.home-blocker-error{grid-column:1 / -1;margin:0;color:var(--red);font-size:var(--text-14)}.home-blocker-done{display:flex;grid-template-columns:none;align-items:center;gap:6px;color:var(--green);font-size:var(--text-14)}@media(max-width:720px){.home-blocker{grid-template-columns:minmax(0,1fr)}.home-blocker-actions{justify-content:flex-start}}.home-steps{display:flex;flex-direction:column}.home-steps>.home-recap:first-child{border-top:0}.home-recap+.home-actions>.home-action-lead{border-top:1px solid var(--line1)}.home-action-num.home-recap-mark{color:var(--ink-2)}.home-recap-label{background:var(--ai-bg);color:var(--ai)}.home-recap-done{color:var(--ok);white-space:nowrap}.home-recap-links{display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--sp-4)}.home-recap-feedback{display:inline-flex;align-items:center;gap:var(--sp-1);margin-top:2px;color:var(--ink-2);font-size:var(--text-14)}.home-recap-votes{display:inline-flex;gap:2px}.home-recap-vote{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid transparent;border-radius:var(--r-2);background:transparent;color:var(--ink-2);cursor:pointer}@media(hover:hover){.home-recap-vote:hover:not(:disabled){background:var(--sunken);color:var(--ink)}}.home-recap-vote:focus-visible{outline:2px solid var(--ai);outline-offset:1px}.home-recap-vote[aria-pressed=true]{border-color:var(--field);background:var(--sunken);color:var(--ink)}.home-recap-vote:disabled{cursor:default}.home-recap-error{flex-basis:100%;margin:0;color:var(--ink-3);font-size:var(--text-12)}@media(pointer:coarse){.home-recap-vote{width:44px;height:44px}}.blocker-drill-intro{display:flex;flex-direction:column;gap:6px;margin:0 0 14px;padding:12px 14px;border:1px solid var(--line1);border-radius:var(--r-2);background:var(--bg2)}.blocker-drill-rule-title{margin:0;color:var(--text0);font-size:var(--text-16)}.blocker-drill-formation{margin:0;padding-left:20px;color:var(--text1);font-size:var(--text-14);line-height:1.6}.blocker-drill-pitfall{margin:0;color:var(--amber);font-size:var(--text-14)}.blocker-drill-empty p{max-width:36ch}.grammar-pitfall-personal{color:var(--amber)}.grammar-pitfall-personal strong{color:inherit}.grammar-pitfall-resolved{color:var(--text2)}.grammar-pitfall-resolved-on{color:var(--green)}.grammar-card-focused{outline:2px solid var(--blue);outline-offset:2px}.tutor-deepen{display:flex;flex-direction:column;gap:6px;margin:4px 0 8px;min-width:0}.tutor-deepen-reply{display:flex;flex-direction:column;gap:2px;padding:8px 12px;border-left:3px solid var(--blue);border-radius:0 var(--r-2) var(--r-2) 0;background:var(--bg2)}.tutor-deepen-label{color:var(--text2);font-size:var(--text-12);font-weight:500}.tutor-deepen-text{color:var(--text0);font-size:var(--text-16);line-height:1.75;overflow-wrap:anywhere}.tutor-deepen-text>:first-child{margin-top:0}.tutor-deepen-text>:last-child{margin-bottom:0}.tutor-deepen-loading,.tutor-deepen-error{display:flex;align-items:center;gap:6px;margin:0;font-size:var(--text-14)}.tutor-deepen-loading{color:var(--text2)}.tutor-deepen-error{color:var(--red)}.tutor-deepen-actions{display:flex;flex-wrap:wrap;gap:6px}.tutor-deepen-btn{display:inline-flex;align-items:center;min-height:32px;padding:0 10px;border:1px solid var(--line2);border-radius:var(--r-pill);background:transparent;color:var(--blue);cursor:pointer;font:inherit;font-size:var(--text-14);font-weight:500}.tutor-deepen-btn:hover:not(:disabled){background:var(--blue-bg)}.tutor-deepen-btn:disabled{cursor:wait;opacity:.55}.tutor-deepen-btn[aria-expanded=true]{background:var(--blue-bg)}.tutor-deepen-compare{display:flex;align-items:center;gap:6px}.tutor-deepen-compare-field{flex:1;min-width:0}.tutor-deepen-compare-field input{width:100%;min-height:38px;padding:0 10px}@media(pointer:coarse){.tutor-deepen-btn{min-height:44px;padding:0 14px}.tutor-deepen-compare-field input,.tutor-deepen-compare-go{min-height:44px}}.srs-contrast-front{display:flex;flex-direction:column;align-items:center;gap:14px}.srs-contrast-question{margin:0;color:var(--text1);font-size:var(--text-20)}.srs-contrast-question em{color:var(--text0);font-weight:700}.srs-contrast-words{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 28px}.srs-contrast-word{font-size:clamp(30px,7vw,52px);font-weight:700;line-height:1.25}.srs-contrast-back{display:flex;flex-direction:column;align-items:stretch;gap:8px;width:min(100%,460px);margin:0 auto}.srs-contrast-list{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}.srs-contrast-option{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:6px 6px 6px 12px;border:1px solid var(--line1);border-radius:var(--r-2);color:var(--text1);text-align:left}.srs-contrast-right{border-color:var(--green);background:var(--green-bg);color:var(--text0)}.srs-contrast-wrong{border-color:var(--red);background:var(--red-bg);color:var(--text0)}.srs-contrast-badge-wrong{color:var(--red)}.srs-contrast-pick{min-width:2.6em;min-height:44px;padding:6px 18px;border:1px solid var(--line1);border-radius:var(--r-2);background:var(--bg1);color:var(--text0);font-family:inherit;cursor:pointer}.srs-contrast-pick:hover{border-color:var(--action)}.srs-contrast-skip{align-self:center;min-height:44px;padding:6px 14px;border:0;background:none;color:var(--text2);font:inherit;font-size:var(--text-14);text-decoration:underline;cursor:pointer}.srs-contrast-verdict{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin:0 0 2px;font-size:var(--text-16);font-weight:700}.srs-contrast-verdict-right{color:var(--green)}.srs-contrast-verdict-wrong{color:var(--red)}.srs-contrast-jp{color:var(--text0);font-size:var(--text-26);font-weight:700}.srs-contrast-reading{color:var(--text2);font-size:var(--text-16)}.srs-contrast-meaning{flex:1;min-width:8ch;font-size:var(--text-16)}.srs-contrast-badge{display:inline-flex;align-items:center;gap:3px;color:var(--green);font-size:var(--text-12);font-weight:700}.srs-contrast-option .speak-btn{margin-left:auto}.srs-back .srs-contrast-hint{margin:2px 0 0;color:var(--text1);font-size:var(--text-16)}.srs-back .srs-contrast-example{flex-wrap:wrap}.srs-cause{flex-shrink:0;margin:0 12px 10px;padding:10px 12px;border-radius:var(--r-2);background:var(--amber-bg);font-size:var(--text-14);line-height:1.5;text-align:left}.srs-cause-label{display:block;color:var(--amber);font-size:var(--text-14);font-weight:500}.srs-cause-text{margin:2px 0 0;color:var(--text0)}.srs-cause-date{color:var(--text2)}.srs-cause-actions{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:8px}.srs-cause-go{min-height:40px;padding:6px 12px;border:1px solid var(--amber);border-radius:var(--r-2);background:transparent;color:var(--amber);font:inherit;font-size:var(--text-14);font-weight:500;cursor:pointer}.srs-cause-go:disabled{opacity:.6;cursor:default}.srs-cause-later{min-height:40px;padding:6px;border:0;background:transparent;color:var(--text2);font:inherit;font-size:var(--text-14);cursor:pointer}.srs-cause-done{display:flex;align-items:center;gap:6px;margin:8px 0 0;color:var(--green)}.srs-cause-error{margin:8px 0 0;color:var(--red)}.srs-cause-kanji{margin-top:10px;padding:10px 12px;border:1px solid var(--line2);border-radius:var(--r-2);background:var(--bg1)}.srs-cause-recap{width:100%;max-width:30em;margin:18px auto 0;border:1px solid var(--line2);border-radius:var(--r-2);overflow:hidden;text-align:left}.srs-cause-recap h4{margin:0;padding:10px 12px;background:var(--amber-bg);color:var(--amber);font-size:var(--text-14)}.srs-cause-recap ul{margin:0;padding:0;list-style:none}.srs-cause-recap li{padding:10px 12px;border-top:1px solid var(--line1);font-size:var(--text-14);line-height:1.45}.srs-cause-recap-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.srs-cause-recap-row strong{font-size:var(--text-20)}.srs-cause-recap-text{flex:1 1 12em;color:var(--text1)}.exercise-prompt,.exercise-block .quick-actions .button,.qcm-btn,.phrase-trou-bubble,.phrase-trou-input,.free-text-area,.assoc-jp,.assoc-chip,.translation-line-source,.classic-chat .answer-feedback-value,.det-question-text,.det-option-btn,.det-conj-input,.vocab-card strong,.dictionary-word,.dialogue-jp,.graded-passage,.graded-bubble{font-family:var(--font-jp-study)}.exercise-prompt rt,.exercise-block .quick-actions .button rt,.qcm-btn rt,.phrase-trou-bubble rt,.phrase-trou-input rt,.free-text-area rt,.assoc-jp rt,.assoc-chip rt,.translation-line-source rt,.classic-chat .answer-feedback-value rt,.det-question-text rt,.det-option-btn rt,.det-conj-input rt,.vocab-card strong rt,.dictionary-word rt,.dialogue-jp rt,.graded-passage rt,.graded-bubble rt{font-family:var(--font-ui)}:where(.exercise-prompt,.exercise-block .quick-actions .button,.qcm-btn,.phrase-trou-bubble,.phrase-trou-input,.free-text-area,.assoc-jp,.assoc-chip,.translation-line-source,.classic-chat .answer-feedback-value,.det-question-text,.det-option-btn,.det-conj-input,.vocab-card strong,.dictionary-word,.dialogue-jp,.graded-passage,.graded-bubble) rt{font-size:max(.5em,10px)}
