:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-page:#fbfcfc;--color-surface:#fff;--color-surface-alt:#f4f8f7;--color-surface-accent:#fff7ed;--color-ink:#1e272c;--color-muted:#60707a;--color-subtle:#8a98a1;--color-line:#dce6e5;--color-primary:#276b6d;--color-primary-strong:#174f52;--color-primary-soft:#dcebea;--color-accent:#b95e4c;--color-warm:#c77724;--color-warm-soft:#fff1dc;--color-sky:#3b7f96;--color-sky-soft:#e6f3f6;--color-rose:#b95e72;--color-rose-soft:#fdecef;--color-highlight:#fff2a8;--color-success:#1f9d62;--color-success-soft:#e1f3ea;--theme-page-bg:var(--color-page);--theme-page-bg-size:auto;--theme-surface:var(--color-surface);--theme-surface-alt:var(--color-surface-alt);--theme-surface-muted:#f7fbfb;--theme-surface-raised:#fffffff7;--theme-surface-glass:#fffc;--theme-toolbar-bg:#f5f7f8f5;--theme-text:var(--color-ink);--theme-text-muted:var(--color-muted);--theme-text-subtle:var(--color-subtle);--theme-text-soft:#617178;--theme-border:var(--color-line);--theme-border-soft:#edf4f4;--theme-border-muted:#e3eeee;--theme-border-strong:#b9d2d4;--theme-label-bg:var(--color-primary-soft);--theme-label-border:#b9d2d4;--theme-label-text:var(--color-primary-strong);--theme-chat-separator:#d7dedf;--theme-chat-self-separator:#9bc8c8;--theme-control-bg:var(--color-surface);--theme-control-border:var(--color-line);--theme-control-disabled-bg:#edf1f2;--theme-control-disabled-border:#d7dedf;--theme-control-disabled-text:#8d9aa0;--theme-action:var(--color-primary);--theme-action-strong:var(--color-primary-strong);--theme-action-soft:var(--color-primary-soft);--theme-action-on:#fff;--theme-action-ring:#276b6d1a;--theme-focus-ring:#276b6d4d;--theme-success-bg:var(--color-success-soft);--theme-success-border:#b9e3cb;--theme-success-text:#0f7546;--theme-danger-bg:#fff6f4;--theme-danger-border:#e1b9b4;--theme-danger-text:#9f2f24;--theme-warning-bg:#fff5e4;--theme-warning-border:#e4c99f;--theme-warning-text:#8a5a13;--theme-progress-track:#e1e8eb;--theme-progress-track-alt:#e3ebed;--theme-progress-fill:linear-gradient(90deg, var(--theme-action), var(--color-success));--theme-progress-fill-muted:#91a2aa;--theme-progress-shimmer:#ffffff38;--theme-highlight-bg:var(--color-highlight);--theme-mark-bg:#fff2b8;--theme-link-decoration:#9cb5bd;--theme-overlay-bg:#0f191e30;--theme-bottom-nav-bg:#ffffff1a;--theme-bottom-nav-border:#97afb552;--theme-inset-highlight:#ffffffb8;--theme-brand-shadow:0 1px 2px #15263014;--theme-chip-shadow:0 1px 0 #1526300a;--theme-control-knob-shadow:0 1px 3px #1f29292e;--theme-floating-shadow:0 8px 22px #1f292914;--theme-popover-shadow:0 6px 14px #1f42451f;--theme-today-bg:var(--theme-surface);--theme-continue-target-bg:linear-gradient(135deg, var(--theme-action-soft), var(--theme-surface-glass)), var(--theme-surface);--theme-continue-target-border:var(--theme-label-border);--theme-continue-target-ring:var(--theme-action-ring);--shadow-card:0 3px 12px #1526300d;--shadow-soft:0 8px 22px #1526300f;--radius-card:8px;--radius-control:7px;--radius-pill:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--bottom-nav-height:64px;--bottom-nav-offset:max(8px, env(safe-area-inset-bottom,0px));--bottom-nav-clearance:32px;--app-bottom-padding:calc(var(--bottom-nav-height) + var(--bottom-nav-offset) + var(--bottom-nav-clearance));--font-ui:Pretendard, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-ja-gothic:var(--jp-font-family,"Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans CJK JP", "Source Han Sans JP", "Yu Gothic", Meiryo, sans-serif)}@media (display-mode:standalone){:root{--bottom-nav-offset:max(16px, env(safe-area-inset-bottom,0px))}}*,:before,:after{box-sizing:border-box}body{min-height:100vh;color:var(--theme-text);background:var(--theme-page-bg);background-size:var(--theme-page-bg-size);font-family:var(--font-ui);letter-spacing:0;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:16px;line-height:1.55}:root[data-theme=notebook]{--color-accent:#8a6d4d;--color-warm:#c07a35;--color-sky:#6d8696;--color-rose:#9b7378;--color-highlight:#f2dd9a;--color-success:#6f8c53;--color-success-soft:#edf3dc;--theme-page-bg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cfilter id='paperNoise' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.96' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.62 0 0 0 0 0.55 0 0 0 0 0.38 0.1 0.1 0.1 0 -0.055'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23paperNoise)'/%3E%3C/svg%3E"), radial-gradient(circle at 18px 24px, #8974490c 0 .7px, transparent 1.15px), radial-gradient(circle at 74px 56px, #a48e5b08 0 .65px, transparent 1.05px), linear-gradient(17deg, transparent 0 46%, #93805307 46.35%, transparent 46.75% 100%), linear-gradient(154deg, transparent 0 61%, #7d6d4805 61.25%, transparent 61.6% 100%), #fffefb;--theme-page-bg-size:180px 180px, 88px 88px, 124px 124px, 220px 160px, 260px 190px, auto;--theme-surface:#fffefd;--theme-surface-alt:#fdfbf7;--theme-surface-muted:#faf8f3;--theme-surface-raised:#fffefdf5;--theme-surface-glass:#fffefdd6;--theme-toolbar-bg:#fdfbf7f0;--theme-text:#2d2923;--theme-text-muted:#6c6257;--theme-text-subtle:#9d8f7e;--theme-text-soft:#766c60;--theme-border:#e3ded4;--theme-border-soft:#efebe4;--theme-border-muted:#e8e2d8;--theme-border-strong:#d2cabe;--theme-label-bg:#fff6d6;--theme-label-border:#e7d99f;--theme-label-text:#695620;--theme-chat-separator:#ded8ce;--theme-chat-self-separator:#ded8ce;--theme-control-bg:#fffdf8;--theme-control-border:#dcd5ca;--theme-control-disabled-bg:#ebe7df;--theme-control-disabled-border:#d7d0c5;--theme-control-disabled-text:#8a8277;--theme-action:#59677a;--theme-action-strong:#344054;--theme-action-soft:#e5e9f0;--theme-action-on:#fbfdff;--theme-action-ring:#59677a29;--theme-focus-ring:#59677a47;--theme-success-bg:#edf3dc;--theme-success-border:#cad8a9;--theme-success-text:#516a32;--theme-danger-bg:#f8e5df;--theme-danger-border:#d7aaa2;--theme-danger-text:#843d35;--theme-warning-bg:#fff1cf;--theme-warning-border:#e1be75;--theme-warning-text:#78580f;--theme-progress-track:#e9e4db;--theme-progress-track-alt:#e5ded4;--theme-progress-fill:linear-gradient(90deg, var(--theme-action), #7a8291);--theme-progress-fill-muted:#a9a39a;--theme-progress-shimmer:#fffdf83d;--theme-highlight-bg:#f2dd9a;--theme-mark-bg:#ffeaa0;--theme-link-decoration:#c8bfae;--theme-overlay-bg:#2d292338;--theme-bottom-nav-bg:#fffdf8fa;--theme-bottom-nav-border:#76685238;--theme-inset-highlight:#ffffffb8;--theme-brand-shadow:0 1px 2px #45331c17;--theme-chip-shadow:0 1px 0 #45331c0d;--theme-control-knob-shadow:0 1px 3px #45331c2e;--theme-floating-shadow:0 8px 22px #45331c17;--theme-popover-shadow:0 6px 14px #45331c21;--theme-today-bg:var(--theme-surface);--theme-continue-target-bg:linear-gradient(135deg, #fffefdf0, #faf8f4d6), var(--theme-surface);--theme-continue-target-border:var(--theme-border-strong);--theme-continue-target-ring:#71675824;--shadow-card:0 3px 12px #372f240f;--shadow-soft:0 8px 22px #372f2414}:where([lang=ja]){font-family:var(--font-ja-gothic)}a{color:inherit;text-decoration:none}button,input,select{font:inherit}img,svg{max-width:100%}#app{min-height:100vh}.app-shell{width:100%;max-width:800px;padding:18px 16px var(--app-bottom-padding);margin:0 auto}.app-shell>*{min-width:0}.route-fade-enter-active,.route-fade-leave-active{transition:opacity .18s,transform .18s}.route-fade-enter-from{opacity:0;transform:translateY(8px)}.route-fade-leave-to{opacity:0;transform:translateY(-4px)}.topbar{justify-items:start;gap:var(--space-3);min-height:48px;padding:0 16px var(--space-3);border-bottom:1px solid var(--theme-border);grid-template-columns:1fr;margin:0 -16px;display:grid}.brand{align-items:center;gap:var(--space-3);min-width:0;display:flex}.brand-mark{border-radius:var(--radius-card);background:var(--theme-surface);width:36px;height:36px;box-shadow:var(--theme-brand-shadow);place-items:center;display:grid;overflow:hidden}.brand-mark-image{width:100%;height:100%;display:block}.brand-title{margin:0;font-size:20px;font-weight:800;line-height:1.15}.brand-subtitle{color:var(--theme-text-muted);margin:-3px 0 0;font-size:11px}.status-row{gap:var(--space-2);flex-wrap:wrap;width:100%;display:flex}.section{margin-top:28px}.detail-loading-section{min-height:max(300px, calc(100svh - var(--app-bottom-padding) - 112px));margin-top:var(--space-5);place-items:center;display:grid}.detail-loading-message{color:var(--theme-text-muted);justify-content:center;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:800;line-height:1.35;display:inline-flex}.loading-dots{width:26px;height:1em;color:var(--theme-action);align-items:center;gap:4px;display:inline-flex}.loading-dots span{background:currentColor;border-radius:50%;width:5px;height:5px;animation:.9s ease-in-out infinite loading-dot}.loading-dots span:nth-child(2){animation-delay:.12s}.loading-dots span:nth-child(3){animation-delay:.24s}.topbar+.section,.topbar+.surface,.topbar+.settings-grid,.topbar+.toolbar{margin-top:var(--space-5)}.grammar-list-page .topbar+.toolbar{margin-top:0}.section-title{align-items:center;gap:var(--space-3);flex-wrap:wrap;margin:0 0 10px;font-size:16px;font-weight:800;line-height:1.3;display:flex}.surface{border:1px solid var(--theme-border);border-radius:var(--radius-card);background:var(--theme-surface);min-width:0;box-shadow:var(--shadow-card)}.badge{border:1px solid var(--theme-border);border-radius:var(--radius-pill);max-width:100%;min-height:28px;color:var(--theme-text-muted);background:var(--theme-surface-glass);white-space:nowrap;align-items:center;gap:6px;padding:4px 9px;font-size:12px;font-weight:700;display:inline-flex}.badge.success{border-color:var(--theme-success-border);color:var(--theme-success-text);background:var(--theme-success-bg)}.badge.warning{border-color:var(--theme-warning-border);color:var(--theme-warning-text);background:var(--theme-warning-bg)}.badge.level{border-color:var(--theme-label-border);color:var(--theme-label-text);background:var(--theme-label-bg)}.icon{stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;fill:none;flex:none;width:1.1em;height:1.1em}.meaning{color:var(--theme-text-muted);overflow-wrap:anywhere;margin:0;font-size:14px}.grammar-pattern-text{line-break:strict;overflow-wrap:anywhere;display:inline}.grammar-pattern-text.has-ruby{line-height:1.45}.grammar-pattern-text ruby{ruby-align:center}.grammar-pattern-text rt{position:relative;left:-.1em}.progress-panel{padding:var(--space-4);box-shadow:none}.progress-meta{justify-content:space-between;align-items:start;gap:var(--space-4);margin-bottom:var(--space-3);display:flex}.progress-meta strong{margin-right:6px;font-size:26px;line-height:1;display:inline-block}.progress-eyebrow{color:var(--theme-action-strong);margin-bottom:4px;font-size:12px;font-weight:900;display:block}.progress-meta span:not(.progress-eyebrow,.progress-percent),.progress-detail-row{color:var(--theme-text-muted);font-size:12px}.progress-percent{border:1px solid var(--theme-label-border);border-radius:var(--radius-pill);min-width:52px;min-height:32px;color:var(--theme-label-text);background:var(--theme-label-bg);justify-content:center;align-items:center;padding:0 10px;font-size:13px;font-weight:900;display:inline-flex}.progress-track{border-radius:var(--radius-pill);background:var(--theme-progress-track);height:12px;overflow:hidden}.progress-fill{border-radius:inherit;background:var(--theme-progress-fill);height:100%;display:block}.progress-detail-row{justify-content:space-between;gap:var(--space-2);flex-wrap:wrap;margin-top:10px;font-weight:750;display:flex}.sync-reminder-card{background:var(--theme-surface-alt);box-shadow:none;grid-template-columns:40px minmax(0,1fr);gap:12px;padding:15px 16px;display:grid}.sync-reminder-icon{border-radius:var(--radius-control);width:38px;height:38px;color:var(--theme-action);background:var(--theme-action-soft);place-items:center;display:grid}.sync-reminder-icon .icon{width:20px;height:20px}.sync-reminder-copy{justify-items:start;gap:5px;min-width:0;display:grid}.sync-reminder-copy h2{color:var(--theme-text);margin:0;font-size:16px;font-weight:900;line-height:1.35}.sync-reminder-copy p{color:var(--theme-text-muted);word-break:keep-all;overflow-wrap:anywhere;margin:0;font-size:13px;font-weight:720;line-height:1.5}.sync-reminder-actions{gap:var(--space-2);flex-wrap:wrap;grid-column:2;justify-content:flex-start;display:flex}.today-button{border:1px solid var(--theme-border);border-radius:var(--radius-card);width:100%;min-height:156px;color:var(--theme-text);background:var(--theme-surface);box-shadow:var(--shadow-card);grid-template-columns:minmax(0,1fr);align-content:center;gap:10px;padding:18px;display:grid;position:relative;overflow:hidden}.today-copy{z-index:1;justify-items:start;gap:8px;min-width:0;display:grid;position:relative}.today-level{border:1px solid var(--theme-label-border);border-radius:var(--radius-pill);background:var(--theme-label-bg);width:fit-content;min-height:28px;color:var(--theme-label-text);align-items:center;padding:3px 9px;font-size:13px;font-weight:900;line-height:1;display:inline-flex}.today-pattern{color:var(--theme-text);font-family:var(--font-ja-gothic);font-size:26px;font-weight:900;line-height:1.15;display:block}.today-description{max-width:28rem;color:var(--theme-text-muted);font-size:14px;font-weight:500;display:block}.today-action{color:var(--theme-action-strong);align-items:center;gap:6px;margin-top:2px;font-size:13px;font-weight:900;display:inline-flex}.today-action .icon{width:16px;height:16px}.today-check{width:26px;height:26px;color:var(--theme-action-on);background:var(--color-success);border-radius:50%;place-items:center;display:grid;position:absolute;top:16px;right:16px}.today-check .icon{stroke-width:3px;width:16px;height:16px}.level-progress-panel{padding:var(--space-4);gap:10px;display:grid}.level-progress-list{gap:10px;display:grid}.level-progress-row{min-height:34px;color:var(--theme-action-strong);grid-template-columns:64px minmax(0,1fr) 58px;align-items:center;gap:10px;display:grid}.level-progress-name{align-items:center;gap:8px;min-width:0;display:inline-flex}.level-progress-name,.level-progress-count{font-weight:900}.level-complete-crown{color:#d8b23a;flex:none;place-items:center;width:17px;height:17px;display:inline-grid;position:relative}.level-complete-crown:before{content:"";filter:blur(5px);background:#ffdd733d;border-radius:999px;animation:2.4s ease-in-out infinite crown-glow;position:absolute;inset:1px}.level-complete-crown .icon{stroke-width:2.5px;fill:#ffe38a;width:15px;height:15px;position:relative}.level-progress-count{color:var(--theme-text-muted);white-space:nowrap;justify-self:end;font-size:12px}@keyframes crown-glow{0%,to{opacity:.45;transform:scale(.82)}50%{opacity:1;transform:scale(1.14)}}@media (prefers-reduced-motion:reduce){.level-complete-crown:before{animation:none}}.level-progress-track{border-radius:var(--radius-pill);background:var(--theme-progress-track-alt);height:10px;position:relative;overflow:visible}.level-progress-track:before{content:"";border-radius:inherit;background:inherit;position:absolute;inset:0}.level-progress-fill{border-radius:inherit;background:var(--theme-action);width:0;min-width:8px;height:100%;display:block;position:relative;overflow:hidden}.level-progress-popover{top:-24px;left:var(--progress-percent);z-index:1;border:1px solid var(--theme-label-border);border-radius:var(--radius-pill);min-width:30px;color:var(--theme-label-text);background:var(--theme-surface-raised);box-shadow:var(--theme-popover-shadow);pointer-events:none;justify-content:center;align-items:center;padding:3px 7px;font-size:11px;font-weight:900;line-height:1;display:inline-flex;position:absolute;transform:translate(-50%)}.level-progress-popover:after{content:"";border-right:1px solid var(--theme-label-border);border-bottom:1px solid var(--theme-label-border);background:inherit;width:7px;height:7px;position:absolute;bottom:-4px;left:50%;transform:translate(-50%)rotate(45deg)}.level-progress-row:nth-child(2) .level-progress-fill{background:var(--color-sky)}.level-progress-row:nth-child(3) .level-progress-fill{background:var(--color-warm)}.level-progress-row:nth-child(4) .level-progress-fill{background:var(--color-rose)}.level-progress-row:nth-child(5) .level-progress-fill{background:var(--theme-progress-fill-muted)}.level-progress-row.muted{color:var(--theme-text-subtle)}.level-progress-row.muted .level-progress-fill{min-width:0}.card-list{gap:10px;display:grid}.grammar-list-page .card-list{gap:12px}.grammar-list-page .card-meta{gap:6px}.grammar-card{border:1px solid var(--theme-border);border-radius:var(--radius-card);background:var(--theme-surface);min-width:0;box-shadow:var(--shadow-card);gap:10px;padding:15px 16px;display:grid;position:relative}.grammar-card.complete{padding-right:52px}.grammar-list-page .grammar-card.complete{border-color:var(--theme-border-muted);background:var(--theme-surface-alt)}.grammar-list-page .grammar-card.complete .card-head,.grammar-list-page .grammar-card.complete>.meaning,.grammar-list-page .grammar-card.complete .card-meta{opacity:.68;filter:saturate(.45)}.grammar-card.continue-target{border-color:var(--theme-continue-target-border);background:var(--theme-continue-target-bg);box-shadow:0 0 0 2px var(--theme-continue-target-ring), var(--shadow-card);scroll-margin-top:168px}.grammar-card.complete.continue-target .card-meta{opacity:1;filter:none}.resume-badge.badge{border-color:var(--theme-label-border);color:var(--theme-label-text);background:var(--theme-action-soft)}.study-label-badge.badge{border-color:var(--theme-border);min-height:24px;color:var(--theme-text-muted);background:var(--theme-surface-muted);padding:3px 8px;font-size:11px;font-weight:760}.grammar-tag-badge.badge{border-color:var(--theme-warning-border);min-height:24px;color:var(--theme-warning-text);background:var(--theme-warning-bg);padding:3px 8px;font-size:11px;font-weight:800}.card-head{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.learned-check.badge{border-color:var(--theme-success-border);width:28px;min-height:28px;color:var(--theme-success-text);background:var(--theme-success-bg);justify-content:center;padding:0;position:absolute;top:12px;right:12px}.learned-check .icon{stroke-width:2.7px;width:16px;height:16px}.pattern{min-width:0;font-family:var(--font-ja-gothic);overflow-wrap:anywhere;font-size:22px;font-weight:800;line-height:1.25}.card-meta,.vocab-row,.button-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.toolbar{z-index:4;border-bottom:1px solid var(--theme-border);background:var(--theme-toolbar-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);gap:8px;margin:0 -16px;padding:10px 16px;display:grid;position:sticky;top:0;overflow:visible}.grammar-list-page .toolbar{grid-template-columns:minmax(0,1fr) auto;align-items:center}.search-control{min-width:0;display:grid;position:relative}.input,.select{border:1px solid var(--theme-control-border);border-radius:var(--radius-control);width:100%;min-height:42px;color:var(--theme-text);background:var(--theme-control-bg)}.input{padding:0 44px 0 12px}.grammar-list-page .input{min-height:40px}.select{background-color:var(--theme-control-bg);background-image:linear-gradient(45deg, transparent 50%, var(--theme-text-muted) 50%), linear-gradient(135deg, var(--theme-text-muted) 50%, transparent 50%);box-shadow:inset 0 1px 0 var(--theme-inset-highlight);appearance:none;background-position:calc(100% - 18px),calc(100% - 13px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding:0 40px 0 12px;line-height:1.2}.select::-ms-expand{display:none}.select:disabled{border-color:var(--theme-control-disabled-border);color:var(--theme-control-disabled-text);background-color:var(--theme-control-disabled-bg);cursor:not-allowed;opacity:.72}.field-icon-button{border-radius:var(--radius-control);width:34px;height:34px;color:var(--theme-text-muted);background:0 0;border:0;place-items:center;display:grid;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.filter-row{justify-content:flex-end;align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.button{border:1px solid var(--theme-control-border);border-radius:var(--radius-control);min-height:42px;color:var(--theme-text);background:var(--theme-control-bg);white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-weight:800;display:inline-flex}.button.primary{border-color:var(--theme-action);color:var(--theme-action-on);background:var(--theme-action)}.button.primary.complete{border-color:var(--theme-success-border);color:var(--theme-success-text);background:var(--theme-success-bg)}.button:disabled{border-color:var(--theme-control-disabled-border);color:var(--theme-control-disabled-text);background:var(--theme-control-disabled-bg);box-shadow:none;cursor:not-allowed;opacity:.72}.button.download-complete,.button.download-complete:disabled{border-color:var(--theme-control-disabled-border);color:var(--theme-control-disabled-text);background:var(--theme-control-disabled-bg);box-shadow:none;cursor:default}.button.danger{border-color:var(--theme-danger-border);color:var(--theme-danger-text);background:var(--theme-danger-bg)}.button.danger:disabled{border-color:var(--theme-control-disabled-border);color:var(--theme-control-disabled-text);background:var(--theme-control-disabled-bg);box-shadow:none;cursor:not-allowed;opacity:.72}.button.compact{min-height:34px;padding:0 10px;font-size:13px}.button.subtle{color:var(--theme-text-muted);background:0 0}.icon-button{border:1px solid var(--theme-control-border);border-radius:var(--radius-control);width:40px;height:40px;color:var(--theme-action-strong);background:var(--theme-control-bg);place-items:center;display:inline-grid}.icon-button.compact{width:34px;height:34px}.level-filter-control{flex:none;display:inline-flex;position:relative}.button.level-filter-button{border-radius:var(--radius-control);min-width:76px;min-height:40px;color:var(--theme-action-strong);padding:0 12px}.button.level-filter-button.active,.button.level-filter-button.open{border-color:var(--theme-action);background:var(--theme-action-soft)}.button.level-filter-button .icon{width:16px;height:16px}.level-filter-popover{z-index:8;border:1px solid var(--theme-border);border-radius:var(--radius-card);background:var(--theme-surface-raised);width:min(280px,100vw - 32px);min-width:246px;max-width:calc(100vw - 32px);box-shadow:var(--theme-popover-shadow);gap:10px;padding:12px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.level-filter-popover:before{content:"";border-top:1px solid var(--theme-border);border-left:1px solid var(--theme-border);background:var(--theme-surface-raised);pointer-events:none;width:10px;height:10px;position:absolute;top:-6px;right:41px;transform:translate(50%)rotate(45deg)}.level-filter-section{gap:8px;min-width:0;display:grid}.level-filter-section+.level-filter-section{border-top:1px solid var(--theme-border-soft);padding-top:10px}.level-filter-heading{color:var(--theme-text-muted);margin:0;font-size:12px;font-weight:900;line-height:1.2}.level-filter-options{grid-template-columns:repeat(3,minmax(52px,1fr));gap:6px;display:grid}.level-sort-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.level-filter-option{border:1px solid var(--theme-border);border-radius:var(--radius-pill);width:100%;min-height:32px;color:var(--theme-text-muted);background:var(--theme-surface);text-align:center;justify-content:center;align-items:center;gap:5px;padding:0 9px;font-size:13px;font-weight:800;line-height:1.2;display:inline-flex}.level-filter-option.selected{border-color:var(--theme-action);color:var(--theme-action-strong);background:var(--theme-action-soft)}.level-sort-option{min-height:34px}.button.sort-button{border-radius:var(--radius-pill);min-width:76px;min-height:36px;color:var(--theme-action-strong);padding:0 12px}.segmented{gap:var(--space-2);scrollbar-width:none;flex-wrap:nowrap;min-width:0;max-width:100%;display:flex;overflow-x:auto}.segmented::-webkit-scrollbar{display:none}.segment{border:1px solid var(--theme-border);border-radius:var(--radius-pill);background:var(--theme-surface);min-height:36px;color:var(--theme-text-muted);flex:none;padding:0 12px;font-weight:800}.segment.active{border-color:var(--theme-action);color:var(--theme-action-strong);background:var(--theme-action-soft)}.sticky-level{z-index:3;border:1px solid var(--theme-border);border-radius:var(--radius-pill);background:var(--theme-surface-raised);width:fit-content;max-width:calc(100% - 32px);min-height:36px;color:var(--theme-action-strong);box-shadow:var(--theme-floating-shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);justify-content:center;align-items:center;gap:7px;margin:8px auto 12px;padding:8px 14px;font-size:12px;font-weight:760;display:flex;position:sticky;top:69px}.sticky-level span{white-space:nowrap}.grammar-list-page main>section+section,.grammar-list-page>section+section{margin-top:var(--space-6)}.detail-hero{gap:9px;padding:20px;display:grid;overflow:visible}.detail-hero[id],.dialogue-section[id],.example-section[id]{scroll-margin-top:18px}.detail-level{gap:var(--space-2);flex-wrap:wrap;margin-bottom:0;display:flex}.detail-pattern{font-family:var(--font-ja-gothic);font-size:calc(var(--jp-font-size,24px) + 9px);overflow-wrap:anywhere;margin:0;line-height:1.15}.detail-hero .page-note,.preview .page-note{max-width:42rem;color:var(--theme-text-muted);word-break:keep-all;overflow-wrap:anywhere;margin:0;font-size:15px;line-height:1.68}.grammar-explanation-list{gap:10px;max-width:44rem;display:grid}.grammar-explanation-carousel{gap:10px;min-width:0;max-width:44rem;display:grid}.grammar-explanation-viewport{touch-action:pan-y;min-width:0;overflow:hidden}.grammar-explanation-track{will-change:transform;grid-auto-columns:100%;grid-auto-flow:column;align-items:stretch;column-gap:10px;transition:transform .22s;display:grid}.grammar-explanation-slide{width:100%;min-width:0}.grammar-explanation-slide .grammar-explanation{height:100%}.grammar-explanation-indicators{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.grammar-explanation{border:1px solid var(--theme-border-muted);border-radius:var(--radius-sm);background:var(--theme-surface-muted);gap:0;max-width:44rem;margin-top:0;padding:8px 14px;display:grid}.grammar-explanation .definition-item{grid-template-columns:54px minmax(0,1fr);padding:8px 0}.grammar-explanation .definition-item:first-child{padding-top:0}.grammar-explanation .definition-item:last-child{padding-bottom:0}.sense-chip{border:1px solid var(--theme-label-border);border-radius:var(--radius-pill);max-width:100%;min-height:22px;color:var(--theme-label-text);background:var(--theme-label-bg);white-space:nowrap;align-items:center;padding:3px 7px;font-size:12px;font-weight:800;line-height:1.2;display:inline-flex}.definition-grid{border-top:1px solid var(--theme-border-muted);gap:0;margin-top:4px;padding:4px 0;display:grid}.detail-hero .definition-grid{border-top:0;margin-top:-3px;padding-top:0}.definition-item{border-bottom:1px solid var(--theme-border-soft);grid-template-columns:68px minmax(0,1fr);align-items:start;gap:12px;min-width:0;padding:11px 0;display:grid}.definition-item:last-child{border-bottom:0}.definition-label{color:var(--theme-text-muted);white-space:nowrap;align-items:center;gap:6px;padding:4px 0;font-size:12px;font-weight:900;line-height:1.2;display:inline-flex}.definition-label:before{content:"";background:var(--theme-action);border-radius:50%;flex:none;width:6px;height:6px}.definition-item:nth-child(2) .definition-label:before{background:var(--color-accent)}.definition-item:nth-child(3) .definition-label:before{background:var(--color-success)}.definition-value{color:var(--theme-text);word-break:keep-all;overflow-wrap:anywhere;font-size:13px;font-weight:760;line-height:1.55}.example{border:1px solid var(--theme-border);border-radius:var(--radius-card);background:var(--theme-surface);min-width:0;box-shadow:var(--shadow-card);gap:10px;padding:18px;display:grid}.example-section>.example{padding-top:12px}.sentence{font-family:var(--font-ja-gothic);font-size:var(--jp-font-size,24px);line-break:strict;overflow-wrap:anywhere;margin:0;line-height:1.62}.example-text-block{gap:14px;min-width:0;padding:2px 2px 0;display:grid}.tts-icon-button{border:1px solid var(--theme-label-border);width:34px;min-width:34px;min-height:34px;color:var(--theme-action-strong);background:var(--theme-surface-muted);white-space:nowrap;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border-radius:999px;justify-content:center;align-items:center;gap:0;padding:0;font-size:13px;font-weight:800;line-height:1;display:inline-flex}.tts-icon-button.active{border-color:var(--theme-label-border);color:var(--theme-action-strong);background:var(--theme-surface-muted)}.tts-icon-button:disabled{border-color:var(--theme-control-disabled-border);color:var(--theme-control-disabled-text);background:var(--theme-control-disabled-bg);cursor:not-allowed;opacity:.56}.tts-icon-button .icon{flex:none;width:15px;height:15px}.example-tts-row{flex:none;justify-content:flex-end;align-items:center;margin:0;display:flex}.example-footer-row{align-items:flex-start;gap:var(--space-2);min-width:0;display:flex}.example-footer-row .vocab-row{flex:auto;gap:6px;min-width:0}.tts-button-wave{flex:none;place-items:center;width:15px;height:15px;display:inline-grid}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes loading-dot{0%,80%,to{opacity:.34;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}@media (prefers-reduced-motion:reduce){.loading-dots span{opacity:.72;animation:none;transform:none}}.sentence *,.sentence-text{font-family:inherit}.sentence.with-ruby .sentence-text.particle-gap{margin-left:.08em}.sentence.with-ruby .word-button.vocabulary-gap{margin-left:.185em}.sentence-furigana{color:var(--theme-text-muted);font-family:var(--font-ja-gothic);font-size:var(--sentence-furigana-font-size,16px);margin:-12px 0 0}.example-translation-text{color:var(--theme-text-soft);font-size:var(--example-translation-font-size,14px);word-break:keep-all;overflow-wrap:anywhere;margin:-8px 0 0;font-weight:500;line-height:1.55}ruby rt{color:var(--theme-text-muted);font-size:var(--ruby-font-size,14px);font-weight:600}.grammar-highlight{background:var(--theme-highlight-bg);word-break:keep-all;overflow-wrap:normal;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:3px;padding:0 3px 2px}.word-button{font:inherit;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0;line-height:1.25;display:inline}.word-button:hover,.word-button:focus,.word-button:focus-visible,.word-button:active{color:inherit;background:0 0;outline:0}.word-button ruby,.word-button rt{pointer-events:none;-webkit-user-select:none;user-select:none}.word-button.grammar-highlight,.word-button.grammar-highlight:hover,.word-button.grammar-highlight:focus,.word-button.grammar-highlight:focus-visible,.word-button.grammar-highlight:active{background:var(--theme-highlight-bg);padding:0 3px 2px}.word-link{color:var(--theme-action-strong);text-decoration-line:underline;text-decoration-style:dotted;-webkit-text-decoration-color:var(--theme-link-decoration);text-decoration-color:var(--theme-link-decoration);text-underline-offset:5px;text-decoration-thickness:2px}.translation{border-top:1px solid var(--theme-border-soft);border-bottom:1px solid var(--theme-border-soft);color:var(--theme-text);word-break:keep-all;overflow-wrap:anywhere;grid-template-columns:56px minmax(0,1fr);gap:12px;margin:0;padding:10px 0;font-weight:760;line-height:1.55;display:grid}.translation:before{content:"뜻";background:radial-gradient(circle at 3px 50%, var(--theme-action) 0 3px, transparent 3.5px);color:var(--theme-text-muted);align-items:center;padding:4px 0 4px 14px;font-size:12px;font-weight:900;line-height:1.2;display:inline-flex}.translation-value{min-width:0;font-size:14px;line-height:1.55;display:block}.vocab-chip{border:1px solid var(--theme-border);border-radius:var(--radius-pill);background:var(--theme-surface);max-width:100%;min-height:32px;color:var(--theme-action-strong);box-shadow:var(--theme-chip-shadow);align-items:center;padding:4px 11px;font-size:13px;font-weight:800;display:inline-flex}.note-panel{padding:var(--space-4)}.modal-backdrop{z-index:40;background:var(--theme-overlay-bg);place-items:center;padding:24px 16px;display:grid;position:fixed;inset:0;overflow-y:auto}.modal-sheet{width:min(100%,520px);max-height:min(620px,100vh - 48px);padding:var(--space-4);border:1px solid var(--theme-border-strong);border-radius:var(--radius-card);background:var(--theme-surface-muted);gap:16px;margin:0 auto;display:grid;position:relative;overflow-y:auto}.modal-close{width:34px;height:34px;color:var(--theme-text-muted);background:0 0;border:0;border-radius:50%;place-items:center;display:grid;position:absolute;top:10px;right:10px}.modal-title{align-items:center;gap:var(--space-3);flex-wrap:wrap;min-width:0;padding-right:36px;display:flex}.modal-title strong{min-width:0;color:var(--theme-text);font-family:var(--font-ui);letter-spacing:0;word-break:keep-all;overflow-wrap:anywhere;font-size:20px;font-weight:900;line-height:1.3}.word-modal .modal-title strong{font-family:var(--font-ja-gothic);font-size:22px}.modal-info-list{border-top:1px solid var(--theme-border-muted);gap:0;padding:4px 0;display:grid}.modal-info-row{border-bottom:1px solid var(--theme-border-soft);grid-template-columns:84px minmax(0,1fr);align-items:start;gap:12px;padding:11px 0;display:grid}.modal-info-row:last-child{border-bottom:0}.modal-info-label{color:var(--theme-text-muted);white-space:nowrap;align-items:center;gap:6px;padding:4px 0;font-size:12px;font-weight:900;line-height:1.2;display:inline-flex}.modal-info-label:before{content:"";background:var(--theme-action);border-radius:50%;flex:none;width:6px;height:6px}.modal-info-row:nth-child(3n+2) .modal-info-label:before{background:var(--color-accent)}.modal-info-row:nth-child(3n) .modal-info-label:before{background:var(--theme-text-subtle)}.modal-info-value{color:var(--theme-text);word-break:keep-all;overflow-wrap:anywhere;font-size:13px;font-weight:760;line-height:1.55}.word-example-card{border:1px solid var(--theme-border-muted);border-radius:var(--radius-sm);background:var(--theme-surface);gap:8px;padding:12px 14px;display:grid}.word-context-label{color:var(--theme-text-muted);font-size:12px;font-weight:900;line-height:1.2}.word-example-translation,.word-example-note{color:var(--theme-text);word-break:keep-all;overflow-wrap:anywhere;margin:0;font-size:13px;font-weight:720;line-height:1.68}.word-example-text{color:var(--theme-action-strong);font-family:var(--font-ja-gothic);font-size:calc(var(--jp-font-size,24px) - 5px);overflow-wrap:anywhere;margin:0;font-weight:850;line-height:1.55}.word-example-text mark{background:var(--theme-mark-bg);color:inherit;border-radius:4px;padding:0 2px}.settings-grid,.settings-home,.settings-detail,.settings-form{gap:var(--space-4);display:grid}.settings-group{gap:var(--space-2);display:grid}.settings-group>.section-title{margin-bottom:0}.settings-menu-button,.settings-info-row{border:1px solid var(--theme-border);border-radius:var(--radius-card);width:100%;min-height:72px;color:var(--theme-text);background:var(--theme-surface);text-align:left;box-shadow:var(--shadow-card);grid-template-columns:44px minmax(0,1fr);align-items:center;gap:14px;padding:14px 16px;display:grid}.settings-menu-button{text-decoration:none}.settings-menu-icon{border-radius:var(--radius-control);background:var(--theme-action-soft);width:38px;height:38px;color:var(--theme-action);place-items:center;display:grid}.settings-menu-icon .icon{width:20px;height:20px}.settings-menu-button span,.settings-info-row span{gap:3px;min-width:0;font-weight:900;display:grid}.settings-menu-button small,.settings-info-row small{color:var(--theme-text-muted);font-size:12px;font-weight:650;line-height:1.35}.settings-info-row{grid-template-columns:44px minmax(0,1fr) auto}.settings-info-row strong{color:var(--theme-action-strong);margin-right:12px;font-size:13px}.settings-update-row .button{min-height:34px}.settings-analytics-row{cursor:pointer;-webkit-tap-highlight-color:transparent}.settings-analytics-row .toggle-visual{min-width:46px;font-weight:400;display:block}.settings-detail-head{align-items:center;gap:var(--space-3);min-width:0;display:flex}.settings-detail-head .section-title{margin:0}.settings-panel,.preview{border:1px solid var(--theme-border);border-radius:var(--radius-card);background:var(--theme-surface);min-width:0;box-shadow:var(--shadow-card);padding:16px}.settings-form.settings-panel{gap:0}.settings-reset-panel{align-items:center;gap:var(--space-3);background:var(--theme-surface-muted);box-shadow:none;grid-template-columns:minmax(0,1fr) auto;display:grid}.settings-reset-copy{gap:5px;min-width:0;display:grid}.settings-reset-copy .setting-group-title,.settings-reset-copy .meaning{margin:0}.settings-reset-panel .button{justify-self:end}.settings-grid-single{grid-template-columns:minmax(0,1fr)}.preview{gap:var(--space-3);display:grid}.preview>.badge,.preview-section>.badge{justify-self:start}.learning-preview{gap:14px;overflow:hidden}.learning-preview .definition-grid{margin-top:0}.preview-carousel{gap:12px;min-width:0;display:grid}.preview-carousel-viewport{touch-action:pan-y;min-width:0;overflow:hidden}.preview-carousel-track{will-change:transform;grid-auto-columns:100%;grid-auto-flow:column;align-items:center;column-gap:16px;transition:transform .22s;display:grid}.preview-section{gap:var(--space-3);min-width:0;display:grid}.preview-slide{align-content:center;align-self:center;width:100%;padding:1px}.preview-indicators{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.preview-indicator{border:1px solid var(--theme-border);border-radius:var(--radius-pill);min-height:28px;color:var(--theme-text-muted);background:var(--theme-surface-muted);justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:850;display:inline-flex}.preview-indicator.active{border-color:var(--theme-label-border);color:var(--theme-action-strong);background:var(--theme-action-soft)}.preview-indicator-dot{background:var(--theme-border-strong);border-radius:50%;width:7px;height:7px}.preview-indicator.active .preview-indicator-dot{background:var(--theme-action)}.example-info-list{margin-top:-2px;padding-top:0}.example-info-list+.example-footer-row{margin-top:-16px}.example-info-list .definition-item:first-child{padding-top:8px}.example-info-list .definition-item{grid-template-columns:minmax(0,1fr);gap:4px}.example-info-list .definition-label{padding-bottom:0}.example-info-list .definition-item:first-child .definition-label:before{background:var(--color-warm)}.dialogue-card{border:1px solid var(--theme-border);border-radius:var(--radius-card);background:var(--theme-surface-muted);min-width:0;box-shadow:var(--shadow-card);gap:12px;padding:20px 16px;display:grid}.dialogue-head{align-items:center;gap:var(--space-4);grid-template-columns:minmax(0,1fr) auto;display:grid}.dialogue-summary{gap:4px;min-width:0;display:grid}.dialogue-summary-label,.dialogue-summary-text,.dialogue-summary-meta{margin:0}.dialogue-summary-label{color:var(--theme-action-strong);font-size:12px;font-weight:900;line-height:1.2}.dialogue-summary-text{color:var(--theme-text);word-break:keep-all;overflow-wrap:anywhere;font-size:14px;font-weight:800;line-height:1.45}.dialogue-summary-meta{color:var(--theme-text-muted);font-size:13px;font-weight:800;line-height:1.3}.dialogue-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;width:auto;display:flex}.dialogue-actions .button{height:36px;min-height:0;padding:0 10px;line-height:1}.dialogue-actions .button .icon{width:16px;height:16px}.dialogue-play-button{color:var(--theme-action-strong);background:var(--theme-surface);flex:none}.dialogue-view-button{border-color:var(--theme-border);color:var(--theme-text-muted);background:var(--theme-surface);flex:none}.dialogue-view-button:disabled,.dialogue-play-button:disabled{border-color:var(--theme-control-disabled-border);color:var(--theme-control-disabled-text);background:var(--theme-control-disabled-bg);box-shadow:none;cursor:not-allowed;opacity:.76;filter:saturate(.45)}.chat-thread{gap:10px;min-width:0;display:grid}.chat-thread-shell{grid-template-rows:1fr;display:grid;overflow:hidden}.chat-thread-shell>.chat-thread{min-height:0}.chat-thread-slide-enter-active,.chat-thread-slide-leave-active{transition:grid-template-rows .22s,opacity .18s}.chat-thread-slide-enter-from,.chat-thread-slide-leave-to{opacity:0;grid-template-rows:0fr}.chat-message{appearance:none;-webkit-tap-highlight-color:transparent;width:fit-content;min-width:0;max-width:min(540px,100% - 40px);color:inherit;font:inherit;text-align:left;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:0 0;border:0;grid-template-columns:32px minmax(0,1fr);align-items:end;gap:8px;padding:0;display:grid}.chat-message.self{text-align:right;grid-template-columns:minmax(0,1fr) 32px;justify-self:end}.chat-message:disabled{cursor:not-allowed}.chat-message-typing{cursor:default;pointer-events:none;-webkit-user-select:none;user-select:none}.chat-message:focus,.chat-message:focus-visible,.chat-message:active{color:inherit;box-shadow:none;background:0 0;outline:0}.chat-message:focus .chat-bubble,.chat-message:focus-visible .chat-bubble,.chat-message:active .chat-bubble{outline:0}.chat-message.self .chat-avatar{grid-area:1/2}.chat-message.self .chat-content{grid-area:1/1;justify-items:end}.chat-avatar{border:1px solid var(--theme-border);width:32px;height:32px;color:var(--theme-action-strong);background:var(--theme-surface);border-radius:50%;place-items:center;display:grid;overflow:hidden}.chat-avatar-image{object-fit:cover;width:100%;height:100%}.chat-content{justify-items:start;gap:4px;min-width:0;max-width:100%;display:grid}.chat-speaker{color:var(--theme-text-muted);font-size:12px;font-weight:850}.chat-bubble{border:1px solid var(--theme-border);min-width:0;max-width:100%;color:var(--theme-text);background:var(--theme-surface);text-align:left;border-radius:8px;gap:6px;margin:0;padding:11px 13px;display:grid}.chat-japanese{font-family:var(--font-ja-gothic);font-size:var(--dialogue-font-size,16px);overflow-wrap:anywhere;margin:0;font-weight:500;line-height:1.6}.chat-message.self .chat-bubble{border-color:var(--theme-label-border);color:var(--theme-action-strong);background:var(--theme-action-soft)}:root[data-theme=notebook] .chat-message.self .chat-bubble{color:var(--theme-text);background:#fffaf1}:root[data-theme=notebook] .chat-message.self:not(.active) .chat-bubble{border-color:var(--theme-border-muted)}.chat-message.active .chat-bubble{border-color:var(--theme-action);box-shadow:0 0 0 2px var(--theme-action-ring)}.chat-typing-bubble{min-width:54px;min-height:38px;color:var(--theme-text-muted);place-items:center;display:inline-grid}.chat-ellipsis-indicator{color:var(--theme-action);grid-template-columns:repeat(3,6px);justify-content:center;align-items:center;gap:5px;display:inline-grid;transform:translateY(2px)}.chat-ellipsis-indicator span{background:currentColor;border-radius:50%;width:6px;height:6px;animation:.9s ease-in-out infinite loading-dot}.chat-ellipsis-indicator span:nth-child(2){animation-delay:.12s}.chat-ellipsis-indicator span:nth-child(3){animation-delay:.24s}.chat-japanese mark{background:var(--theme-highlight-bg);color:inherit;border-radius:3px;padding:0 3px 2px}.chat-translation{border-top:1px solid var(--theme-chat-separator);max-width:100%;color:var(--theme-text-muted);font-size:calc(var(--dialogue-font-size,16px) - 2px);word-break:keep-all;overflow-wrap:anywhere;justify-content:flex-start;align-items:center;gap:6px;margin:0;padding-top:6px;font-weight:700;line-height:1.45;display:flex}.chat-message.self .chat-translation{border-top-color:var(--theme-chat-self-separator);text-align:left;justify-content:flex-start}.chat-translation-text{min-width:0}.chat-playback-indicator{width:16px;height:16px;color:var(--theme-action);visibility:hidden;opacity:0;flex:none;place-items:center;margin-left:auto;transition:opacity .12s;display:inline-grid}.chat-playback-indicator.is-visible{visibility:visible;opacity:1}.chat-playback-indicator .icon{width:14px;height:14px}.chat-wave-indicator{grid-template-columns:repeat(3,3px);align-items:center;gap:2px}.chat-wave-indicator span{background:currentColor;border-radius:999px;width:3px;height:8px;animation:.72s ease-in-out infinite chat-wave}.chat-wave-indicator span:nth-child(2){animation-delay:.12s}.chat-wave-indicator span:nth-child(3){animation-delay:.24s}@keyframes chat-wave{0%,to{opacity:.58;transform:scaleY(.45)}50%{opacity:1;transform:scaleY(1.15)}}@media (prefers-reduced-motion:reduce){.chat-wave-indicator span,.chat-ellipsis-indicator span{opacity:.72;animation:none;transform:none}.chat-playback-indicator,.chat-thread-slide-enter-active,.chat-thread-slide-leave-active{transition:none}.chat-thread-slide-enter-from,.chat-thread-slide-leave-to{opacity:1;grid-template-rows:1fr}}.preview-example .word-button,.preview-example .vocab-chip{pointer-events:none}.preview-dialogue-card .chat-message{cursor:default}.setting-row{border-bottom:1px solid var(--theme-border);gap:10px;padding:16px 0;display:grid}.settings-panel>.setting-row:first-child{padding-top:0}.setting-group{gap:0;display:grid}.setting-group+.setting-group{border-top:1px solid var(--theme-border);margin-top:16px;padding-top:16px}.setting-group-title{color:var(--theme-text);margin:0 0 12px;font-size:14px;font-weight:900;line-height:1.35}.setting-group-title+.setting-row{padding-top:0}.setting-row:last-child{border-bottom:0;padding-bottom:0}.setting-label{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;font-weight:900;display:flex}.setting-label>span:first-child{gap:3px;min-width:0;display:grid}.setting-label small{color:var(--theme-text-muted);font-size:12px;font-weight:650;line-height:1.35}.setting-toggle{align-items:center;gap:var(--space-3);border-radius:var(--radius-control);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:0 0;grid-template-columns:minmax(0,1fr) auto;display:grid}.setting-toggle:hover,.setting-toggle:active,.setting-toggle:focus,.setting-toggle:focus-within{background:0 0}.toggle-input{opacity:0;pointer-events:none;block-size:1px;inline-size:1px;position:absolute}.toggle-input:focus,.toggle-input:active{outline:0}.toggle-visual{border:1px solid var(--theme-control-disabled-border);border-radius:var(--radius-pill);background:var(--theme-control-disabled-bg);width:46px;height:26px;transition:background-color .16s,border-color .16s;position:relative}.toggle-visual:after{background:var(--theme-surface);width:18px;height:18px;box-shadow:var(--theme-control-knob-shadow);content:"";border-radius:50%;transition:transform .16s;position:absolute;top:3px;left:3px}.toggle-input:focus-visible+.toggle-visual{outline:2px solid var(--theme-focus-ring);outline-offset:3px}.toggle-input:checked+.toggle-visual{border-color:var(--theme-action);background:var(--theme-action-soft)}.toggle-input:checked+.toggle-visual:after{background:var(--theme-action);transform:translate(20px)}.speed-badge-row{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:inline-flex}.speed-profile-badge{color:var(--theme-action-strong);background:var(--theme-action-soft)}.speed-profile-badge .icon{width:14px;height:14px}.generation-duration-badge{font-variant-numeric:tabular-nums}.speed-profile-slow{border-color:var(--theme-success-border);color:var(--theme-success-text);background:var(--theme-success-bg)}.speed-profile-clear,.speed-profile-normal,.speed-profile-slightly-fast{border-color:var(--theme-label-border);color:var(--theme-label-text);background:var(--theme-label-bg)}.speed-profile-fast{border-color:var(--theme-warning-border);color:var(--theme-warning-text);background:var(--theme-warning-bg)}.settings-panel .segment{font-size:13px;line-height:1.2}.range{width:100%;accent-color:var(--theme-action)}.range:disabled{accent-color:var(--theme-control-disabled-text);cursor:not-allowed;opacity:.52}.button-row.compact{gap:8px}.learning-completion-section{margin-bottom:var(--space-4)}.learning-completion-card{border-color:var(--theme-border);background:var(--theme-surface-alt);box-shadow:none;gap:14px;padding:16px;display:grid}.learning-completion-copy{gap:5px;min-width:0;display:grid}.learning-completion-eyebrow{color:var(--theme-text-muted);margin:0;font-size:12px;font-weight:850;line-height:1.2}.learning-completion-copy h2{color:var(--theme-text);margin:0;font-size:17px;line-height:1.35}.learning-completion-copy p{color:var(--theme-text-muted);word-break:keep-all;overflow-wrap:anywhere;margin:0;font-size:13px;font-weight:720;line-height:1.55}.learning-sync-nudge{align-items:center;gap:var(--space-3);border:1px solid var(--theme-border-muted);border-radius:var(--radius-card);background:var(--theme-surface);grid-template-columns:minmax(0,1fr) auto;padding:12px 13px;display:grid}.learning-sync-copy{gap:4px;min-width:0;display:grid}.learning-sync-copy strong{color:var(--theme-text);font-size:13px;line-height:1.35}.learning-sync-copy span{color:var(--theme-text-muted);word-break:keep-all;overflow-wrap:anywhere;font-size:12px;font-weight:700;line-height:1.4}.learning-sync-actions{justify-content:flex-end}.learning-action-row .button{min-height:38px;padding:0 12px;font-size:13px}.learning-completion-card .learning-action-row{grid-template-columns:minmax(72px,.8fr) minmax(88px,1fr) minmax(112px,1.2fr);display:grid}.learning-completion-card .learning-action-row .button{justify-content:center;width:100%}.tts-voice-action-row{gap:var(--space-2);grid-template-columns:minmax(0,7fr) minmax(72px,3fr);align-items:center;display:grid}.settings-info-card{border:1px solid var(--theme-border);border-radius:var(--radius-card);color:var(--theme-action-strong);background:var(--theme-surface-muted);gap:6px;padding:13px 14px;display:grid}.settings-info-card-dismissible{padding-right:52px;position:relative}.settings-info-dismiss{color:var(--theme-text-muted);background:0 0;border-color:#0000;position:absolute;top:8px;right:8px}.settings-info-dismiss:hover,.settings-info-dismiss:focus-visible{border-color:var(--theme-label-border);color:var(--theme-action-strong);background:var(--theme-surface)}.settings-info-dismiss .icon{width:18px;height:18px}.settings-info-card strong{font-size:14px;line-height:1.35}.settings-info-card p{color:var(--theme-text-muted);word-break:keep-all;overflow-wrap:anywhere;margin:0;font-size:13px;font-weight:700;line-height:1.55}.tts-voice-action-row .select{min-width:0}.tts-voice-action-row .button{min-height:42px}.tts-preview-button{border:1px solid var(--theme-label-border);border-radius:var(--radius-control);width:100%;min-height:42px;color:var(--theme-action-strong);background:var(--theme-surface-muted);white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:850;line-height:1;display:inline-flex}.tts-preview-button:disabled{cursor:not-allowed;opacity:.62}.tts-preview-button .icon{flex:none;width:16px;height:16px}.tts-preview-copy{gap:4px;min-width:0;display:grid}.tts-preview-copy .sentence,.tts-preview-copy .sentence-furigana{margin:0}.tts-preview-copy .sentence{font-size:var(--jp-font-size,22px)}.definition-grid.compact{gap:8px}.license-item h3{color:var(--theme-text);margin:0;font-size:15px;line-height:1.25}.settings-warning{color:var(--theme-danger-text);overflow-wrap:anywhere;margin:0;font-size:12px;font-weight:750;line-height:1.35}.license-panel{gap:18px;display:grid}.license-item{gap:6px;min-width:0;display:grid}.license-item p{color:var(--theme-text-muted);word-break:keep-all;overflow-wrap:anywhere;margin:0;font-size:13px;line-height:1.55}.settings-confirm-modal{background:var(--theme-surface);gap:14px;width:min(100%,420px)}.settings-confirm-modal .modal-title{gap:var(--space-2)}.settings-confirm-modal .modal-title strong{font-size:18px;line-height:1.35}.settings-confirm-modal .meaning{color:var(--theme-text-muted);word-break:keep-all;overflow-wrap:anywhere;margin:0;font-size:13px;font-weight:700;line-height:1.6}.modal-action-row{justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;display:flex}.app-update-prompt-wrap{right:0;bottom:calc(var(--bottom-nav-offset) + var(--bottom-nav-height) + var(--space-3));z-index:22;pointer-events:none;justify-items:center;width:100%;padding:0 16px;display:grid;position:fixed;left:0}.app-update-prompt{border:1px solid var(--theme-label-border);border-radius:var(--radius-card);width:min(680px,100vw - 32px);color:var(--theme-text);background:var(--theme-surface-raised);box-shadow:var(--theme-floating-shadow);-webkit-backdrop-filter:blur(22px)saturate(160%);backdrop-filter:blur(22px)saturate(160%);pointer-events:auto;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 12px;padding:12px;display:grid}.app-update-header{grid-template-columns:40px minmax(0,1fr);align-items:center;gap:12px;min-width:0;display:grid}.app-update-icon{border-radius:var(--radius-control);width:38px;height:38px;color:var(--theme-action);background:var(--theme-action-soft);place-items:center;display:grid}.app-update-icon .icon{width:20px;height:20px}.app-update-heading,.app-update-content{gap:4px;min-width:0;display:grid}.app-update-content{grid-column:1/-1}.app-update-heading strong{color:var(--theme-text);font-size:15px;font-weight:900;line-height:1.3}.app-update-heading p,.app-update-content p{color:var(--theme-text-muted);word-break:keep-all;overflow-wrap:anywhere;margin:0;font-size:13px;font-weight:720;line-height:1.45}.app-update-heading .app-update-version{color:var(--theme-action-strong);font-weight:900}.app-update-content .app-update-status{color:var(--theme-text-muted)}.app-update-content .app-update-status.danger{color:var(--theme-danger-text);font-weight:800}.app-update-notes{color:var(--theme-text);gap:3px;margin:0;font-size:12px;font-weight:720;line-height:1.4;display:grid}.app-update-note{gap:5px;display:grid}.app-update-content .app-update-note-title{color:var(--theme-text);font-size:13px;font-weight:850;line-height:1.4}.app-update-note-items{gap:3px;margin:0;padding-left:16px;display:grid}.app-update-actions{justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;grid-area:1/2;display:flex}.app-update-actions .button{min-height:34px}.app-update-confirm-modal .modal-title .icon{color:var(--theme-warning-text)}.app-update-prompt-enter-active,.app-update-prompt-leave-active{transition:opacity .18s,transform .22s}.app-update-prompt-enter-from,.app-update-prompt-leave-to{opacity:0;transform:translateY(14px)}.app-toast-wrap{right:0;bottom:calc(var(--bottom-nav-offset) + var(--bottom-nav-height) + 10px);z-index:21;pointer-events:none;justify-items:center;width:100%;padding:0 16px;display:grid;position:fixed;left:0}.app-toast{border:1px solid var(--theme-label-border);border-radius:var(--radius-pill);max-width:min(360px,100vw - 32px);min-height:38px;color:var(--theme-action-strong);background:var(--theme-surface-raised);box-shadow:var(--theme-floating-shadow);-webkit-backdrop-filter:blur(18px)saturate(150%);backdrop-filter:blur(18px)saturate(150%);justify-content:center;align-items:center;gap:8px;padding:8px 13px;display:inline-flex}.app-toast-text{white-space:nowrap;font-size:13px;font-weight:900;line-height:1.2}.app-toast .icon{stroke-width:3px;width:16px;height:16px}.app-toast-success{border-color:var(--theme-success-border);color:var(--theme-success-text);background:var(--theme-success-bg)}.app-toast-error{border-color:var(--theme-danger-border);color:var(--theme-danger-text);background:var(--theme-danger-bg)}.app-toast-info{border-color:var(--theme-label-border);color:var(--theme-action-strong);background:var(--theme-action-soft)}.app-toast-wave{grid-template-columns:repeat(3,3px);align-items:center;gap:2px;width:13px;height:16px;display:inline-grid}.app-toast-wave span{background:currentColor;border-radius:999px;width:3px;height:9px;animation:.72s ease-in-out infinite chat-wave}.app-toast-wave span:nth-child(2){animation-delay:.12s}.app-toast-wave span:nth-child(3){animation-delay:.24s}.app-toast-enter-active,.app-toast-leave-active{transition:opacity .18s,transform .22s}.app-toast-enter-from,.app-toast-leave-to{opacity:0;transform:translateY(14px)}.bottom-nav{z-index:20;width:100%;padding-bottom:var(--bottom-nav-offset);pointer-events:none;position:fixed;bottom:0;left:0;right:0}.bottom-nav-inner{border:1px solid var(--theme-bottom-nav-border);border-radius:var(--radius-pill);background:var(--theme-bottom-nav-bg);width:min(360px,100vw - 24px);max-width:100%;box-shadow:inset 0 1px 0 var(--theme-inset-highlight);-webkit-backdrop-filter:blur(26px)saturate(185%);backdrop-filter:blur(26px)saturate(185%);pointer-events:auto;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 auto;padding:7px 8px;display:grid}.nav-item{min-height:48px;color:var(--theme-text-muted);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:0 0;border:0;place-items:center;gap:6px;padding:2px 0;font-size:12px;font-weight:800;line-height:1.1;display:grid}.nav-item:active,.nav-item:focus,.nav-item:focus-visible{background:0 0;outline:0}.nav-item.active{color:var(--theme-action);font-weight:900}.nav-icon{place-items:center;width:30px;height:28px;display:grid}.nav-icon .icon{stroke-width:2.15px;width:23px;height:23px}.nav-item.active .nav-icon .icon{stroke-width:2.45px}@media (width>=760px){.topbar{grid-template-columns:1fr auto;place-items:center stretch}.status-row{justify-content:flex-end;width:auto}.app-shell{padding-left:24px;padding-right:24px}.progress-panel{padding:var(--space-5)}.desktop-grid{grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);align-items:start}.settings-grid{grid-template-columns:minmax(0,1fr);align-items:start}.topbar,.toolbar{margin-left:-24px;margin-right:-24px;padding-left:24px;padding-right:24px}}@media (width<=640px){.app-update-prompt{grid-template-columns:minmax(0,1fr);align-items:start}.app-update-actions{grid-area:auto/1/auto/-1;justify-content:flex-end}.dialogue-head{grid-template-columns:minmax(0,1fr);align-items:stretch}.dialogue-actions{justify-content:center;width:100%}}@media (width<=430px){.sync-reminder-actions,.learning-sync-nudge{grid-column:1/-1}.learning-sync-nudge{grid-template-columns:minmax(0,1fr)}.learning-sync-actions{justify-content:flex-start}.settings-reset-panel{grid-template-columns:minmax(0,1fr)}.settings-reset-panel .button{justify-self:start}.detail-pattern{font-size:calc(var(--jp-font-size,24px) + 7px)}.sentence{font-size:var(--jp-font-size,24px)}.chart-plot{gap:6px}}@media (prefers-reduced-motion:reduce){.route-fade-enter-active,.route-fade-leave-active,.app-toast-enter-active,.app-toast-leave-active,.app-update-prompt-enter-active,.app-update-prompt-leave-active{transition:none}.route-fade-enter-from,.route-fade-leave-to,.app-toast-enter-from,.app-toast-leave-to,.app-update-prompt-enter-from,.app-update-prompt-leave-to{opacity:1;transform:none}.app-toast-wave span{opacity:.72;animation:none}}
