@import url("https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600&family=Nunito:wght@400;600&display=swap");:root{--color-background:#f5ddd0;--color-surface:#fff7f2;--color-border:#e8c9ba;--color-text-primary:#3d2c23;--color-text-muted:#9b7a70;--color-primary:#3db54a;--color-primary-hover:#35a241;--color-accent:#29b5e8;--color-accent-hover:#1fa3d4;--color-success:#3db54a;--color-warning:#e8a85c;--color-error:#e85c5c;--color-wordmark-start:#3db54a;--color-wordmark-end:#29b5e8;--font-display:"Fredoka",sans-serif;--font-body:"Nunito",sans-serif;--type-display-size:32px;--type-display-weight:600;--type-display-line-height:1.2;--type-display-letter-spacing:-0.02em;--type-h1-size:26px;--type-h1-weight:600;--type-h1-line-height:1.3;--type-h1-letter-spacing:-0.01em;--type-h2-size:20px;--type-h2-weight:500;--type-h2-line-height:1.4;--type-h2-letter-spacing:0;--type-h3-size:16px;--type-h3-weight:500;--type-h3-line-height:1.4;--type-h3-letter-spacing:0;--type-body-size:15px;--type-body-weight:400;--type-body-line-height:1.6;--type-body-letter-spacing:0;--type-caption-size:12px;--type-caption-weight:400;--type-caption-line-height:1.4;--type-caption-letter-spacing:0.01em;--type-label-size:11px;--type-label-weight:600;--type-label-line-height:1.2;--type-label-letter-spacing:0.06em;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:12px;--spacing-base:16px;--spacing-lg:20px;--spacing-xl:24px;--spacing-2xl:30px;--spacing-3xl:36px;--radius-sm:8px;--radius-md:16px;--radius-lg:24px;--radius-pill:9999px;--shadow-sm:0 1px 3px rgba(61,44,35,.08);--shadow-md:0 4px 12px rgba(61,44,35,.1);--shadow-lg:0 8px 24px rgba(61,44,35,.12);--animation-fast:120ms;--animation-normal:200ms;--animation-slow:350ms;--animation-spring:450ms;--animation-easing:cubic-bezier(0.4,0,0.2,1)}[data-theme=dark]{--color-background:#151e18;--color-surface:#243028;--color-border:#3a4a3f;--color-text-primary:#f0ebe4;--color-text-muted:#a89e94;--color-primary:#5ec269;--color-primary-hover:#4db85a;--color-accent:#e8a85c;--color-accent-hover:#d4964e;--color-success:#5ec269;--color-warning:#e8a85c;--color-error:#e85c5c;--color-wordmark-start:#5ec269;--color-wordmark-end:#e8a85c;--shadow-sm:0 1px 3px rgba(0,0,0,.2);--shadow-md:0 4px 12px rgba(0,0,0,.25);--shadow-lg:0 8px 24px rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-background:#151e18;--color-surface:#243028;--color-border:#3a4a3f;--color-text-primary:#f0ebe4;--color-text-muted:#a89e94;--color-primary:#5ec269;--color-primary-hover:#4db85a;--color-accent:#e8a85c;--color-accent-hover:#d4964e;--color-success:#5ec269;--color-warning:#e8a85c;--color-error:#e85c5c;--color-wordmark-start:#5ec269;--color-wordmark-end:#e8a85c;--shadow-sm:0 1px 3px rgba(0,0,0,.2);--shadow-md:0 4px 12px rgba(0,0,0,.25);--shadow-lg:0 8px 24px rgba(0,0,0,.3)}}.btn{border:0;border-radius:var(--radius-pill);padding:11px 22px;background:var(--color-primary);color:#fff;font-family:var(--font-body);font-weight:700;font-size:15px;cursor:pointer;transition:background .2s,transform .15s;white-space:nowrap}.btn:hover:not(:disabled){background:var(--color-primary-hover);transform:scale(1.03)}.btn:disabled{opacity:.5;cursor:default}.btn.secondary{background:hsla(23,35%,55%,.18);color:#5a3020}.btn.secondary:hover:not(:disabled){background:hsla(23,35%,55%,.28);transform:scale(1.03)}.knowledge-detail{display:flex;flex-direction:column;gap:8px}.knowledge-prompt-section{display:flex;flex-direction:column;gap:4px}.knowledge-prompt-value{font-family:var(--font-body);font-size:18px;font-weight:800;color:var(--color-text-primary);line-height:1.3}.knowledge-answer-section{display:flex;flex-direction:column;gap:4px;padding-top:6px;border-top:2px solid var(--color-border)}.knowledge-answer-value{font-family:var(--font-body);font-size:15px;font-weight:600;color:#5a3020;line-height:1.4}.knowledge-generic{margin:0;display:flex;flex-direction:column;gap:6px}.knowledge-generic-row{display:flex;gap:8px;align-items:baseline}.knowledge-generic-key{font-family:var(--font-body);font-size:11px;font-weight:800;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;min-width:80px;flex-shrink:0}.knowledge-generic-value{font-family:var(--font-body);font-size:14px;font-weight:600;color:var(--color-text-primary);margin:0}.review-page-main{max-width:760px;width:100%;padding:8px 0 24px;margin:0 auto}.review-page-main .card{width:100%;border-radius:20px;box-shadow:0 18px 45px rgba(15,23,42,.08);border:1px solid rgba(15,23,42,.04)}.review-card{display:flex;flex-direction:column;justify-content:center;gap:12px;min-height:min(70vh,520px);padding:8px 0}.review-card.japanese-review{gap:18px}.review-card.japanese-review .review-prompt{background:linear-gradient(135deg,rgba(124,58,237,.12),rgba(45,212,191,.16));border-color:rgba(124,58,237,.3);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.5)}.review-card.japanese-review .review-prompt-value{font-size:30px;letter-spacing:.01em}.review-card.japanese-review .review-reveal-panel{border-color:rgba(124,58,237,.22);box-shadow:0 8px 24px rgba(15,23,42,.04)}.review-card.japanese-review .review-reveal-panel-answer{background:linear-gradient(135deg,rgba(34,197,94,.08),rgba(16,185,129,.12))}.review-reveal-reading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(15,23,42,.08)}.review-reveal-reading-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.review-reveal-reading-value{font-size:16px;font-weight:700;color:var(--color-text-primary)}.review-card.japanese-review .review-audio-toggle{background:rgba(124,58,237,.12);border:1px solid rgba(124,58,237,.18)}.review-header{justify-content:space-between;gap:10px;margin-bottom:8px;padding:0 2px}.review-header,.review-header-copy{display:flex;align-items:center;flex-wrap:wrap}.review-header-copy{gap:8px}.review-progress-pill{padding:4px 10px;border-radius:999px;background:rgba(124,58,237,.1);color:#5a2e92;font-size:12px}.review-nav-back,.review-progress-pill{display:inline-flex;align-items:center;font-weight:700}.review-nav-back{gap:6px;padding:6px 10px;border:0;border-radius:999px;background:transparent;color:var(--color-text-muted);font-size:13px;cursor:pointer}.review-nav-back:hover{background:rgba(15,23,42,.05);color:var(--color-text-primary)}.review-card-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:2px}.review-context-pill{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:hsla(0,0%,100%,.82);box-shadow:inset 0 0 0 1px rgba(15,23,42,.05);color:var(--color-text-muted);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.review-progress-track{flex:1 1;height:6px;border-radius:999px;background:rgba(15,23,42,.08);overflow:hidden}.review-progress-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,rgba(124,58,237,.95),rgba(45,212,191,.95))}.review-prompt{display:flex;flex-direction:column;gap:6px;padding:24px 20px;background:linear-gradient(135deg,hsla(0,0%,100%,.98),hsla(48,26%,96%,.96));border:1px solid hsla(23,35%,55%,.16);border-radius:20px;min-height:148px;justify-content:center;align-items:center;text-align:center;box-shadow:0 10px 30px rgba(15,23,42,.04)}.review-panel-enter{animation:reviewPanelIn .22s cubic-bezier(.2,.8,.2,1)}.review-score-enter{animation:reviewPanelIn .22s cubic-bezier(.2,.8,.2,1) 60ms both}@keyframes reviewPanelIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.review-prompt-value{font-family:var(--font-body);font-size:24px;font-weight:800;color:var(--color-text-primary);line-height:1.2;letter-spacing:-.02em}.review-answer{display:flex;flex-direction:column;gap:6px;padding:20px 24px;background:rgba(61,181,74,.06);border:2px solid rgba(61,181,74,.22);border-radius:14px;text-align:center;align-items:center}.review-answer-value{font-family:var(--font-body);font-size:20px;font-weight:700;color:#2a8a35;line-height:1.4}.review-actions{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}.review-actions>*{flex:1 1 auto}.review-actions-single{justify-content:center;margin-top:2px}.review-reveal-button{min-width:188px;padding:13px 24px;font-size:15px;box-shadow:0 10px 24px rgba(124,58,237,.2)}.review-audio-toggle{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border-radius:999px;background:hsla(23,35%,55%,.08);font-size:13px;color:var(--color-text-primary);border:1px solid hsla(23,35%,55%,.12)}.review-audio-toggle-inline{background:transparent;border-color:transparent;padding:0;font-size:12px;color:var(--color-text-muted)}.review-actions-hidden-tools{margin-top:-2px;justify-content:flex-end}.review-reveal-stack{display:flex;flex-direction:column;gap:10px}.review-reveal-panel{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border:1px solid hsla(23,35%,55%,.16);border-radius:16px;background:hsla(0,0%,100%,.92);box-shadow:0 8px 22px rgba(15,23,42,.03)}.review-reveal-panel-answer{background:rgba(61,181,74,.06);border-color:rgba(61,181,74,.22)}.review-reveal-label{font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--color-text-muted)}.review-reveal-content{font-size:16px;font-weight:700;line-height:1.4;color:var(--color-text-primary)}.review-reveal-content-answer{color:#2a8a35}.review-score-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));grid-gap:10px;gap:10px;width:100%;margin-top:4px;padding:12px;border:1px solid rgba(15,23,42,.07);border-radius:18px;background:rgba(248,250,252,.86)}.review-score-buttons .btn{min-width:0;min-height:50px;border:1px solid transparent;border-radius:14px;padding:12px 14px;font-size:14px}.review-score-buttons .review-grade-btn{box-shadow:0 4px 12px rgba(15,23,42,.05);filter:none;transform:none}.review-score-buttons .review-grade-btn-again{border-color:rgba(220,38,38,.2)!important;background:#fff1f2;color:#be123c}.review-score-buttons .review-grade-btn-hard{border-color:rgba(217,119,6,.22)!important;background:#fffbeb;color:#a16207}.review-score-buttons .review-grade-btn-good{border-color:rgba(37,99,235,.2)!important;background:#eff6ff;color:#1d4ed8}.review-score-buttons .review-grade-btn-easy{border-color:rgba(5,150,105,.2)!important;background:#ecfdf5;color:#047857}.review-score-buttons .review-grade-btn-again:hover:not(:disabled){border-color:rgba(190,18,60,.38)!important;background:#ffe4e6;color:#9f1239}.review-score-buttons .review-grade-btn-hard:hover:not(:disabled){border-color:rgba(161,98,7,.38)!important;background:#fef3c7;color:#854d0e}.review-score-buttons .review-grade-btn-good:hover:not(:disabled){border-color:rgba(29,78,216,.36)!important;background:#dbeafe;color:#1e40af}.review-score-buttons .review-grade-btn-easy:hover:not(:disabled){border-color:rgba(4,120,87,.36)!important;background:#d1fae5;color:#065f46}.review-score-buttons .review-grade-btn:hover:not(:disabled){filter:none;box-shadow:0 8px 18px rgba(15,23,42,.09);transform:translateY(-1px)}.review-score-buttons .review-grade-btn:focus-visible{outline:3px solid color-mix(in srgb,currentColor 28%,transparent);outline-offset:3px}.review-score-buttons .review-grade-btn:active:not(:disabled){box-shadow:0 2px 8px rgba(15,23,42,.08);transform:translateY(0)}@media (hover:none){.review-score-buttons .review-grade-btn:hover:not(:disabled){box-shadow:0 4px 12px rgba(15,23,42,.05);transform:none}}.review-score-buttons>*{width:100%}.review-page-heading{font-family:var(--font-display);font-size:28px;font-weight:600;margin:0;color:var(--color-text-primary)}@media (max-width:640px){.review-page-main{padding:8px 6px 20px;max-width:100%}.review-card{gap:12px;min-height:min(72vh,480px)}.review-header{text-align:center}.review-header,.review-header-copy{justify-content:center}.review-prompt{padding:18px 14px;min-height:122px;border-radius:16px}.review-prompt-value{font-size:20px}.review-actions{flex-direction:column;align-items:stretch}.review-actions>*{width:100%;flex-basis:100%}.review-actions-single{align-items:center}.review-reveal-button{min-width:0;width:min(100%,220px)}.review-audio-toggle{justify-content:center}.review-actions-hidden-tools{justify-content:center;margin-top:0}.review-score-buttons{position:-webkit-sticky;position:sticky;bottom:max(8px,env(safe-area-inset-bottom));z-index:5;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px;padding:10px;border-radius:16px;background:hsla(0,0%,100%,.94);box-shadow:0 12px 30px rgba(15,23,42,.12);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.review-score-buttons .btn{min-height:54px;padding:12px 8px;font-size:15px}.review-reveal-content{font-size:15px}.review-summary{padding:24px 16px;border-radius:18px}.review-summary-stats{gap:10px}.review-stat{min-width:0;flex-grow:1;flex-shrink:1;flex-basis:calc(50% - 5px)}}.review-summary{gap:24px;padding:32px 28px;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.review-summary,.review-summary-header{display:flex;flex-direction:column;align-items:center}.review-summary-header{gap:4px}.review-summary-title{font-family:var(--font-display);font-size:28px;font-weight:600;margin:0;color:var(--color-text-primary)}.review-summary-count{font-family:var(--font-body);font-size:15px;font-weight:600;color:var(--color-text-muted)}.review-summary-stats{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;width:100%}.review-stat{flex:1 1;min-width:90px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px 12px;border-radius:14px}.review-stat-number{font-family:var(--font-display);font-size:36px;font-weight:600;line-height:1}.review-stat-label{font-family:var(--font-body);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.review-stat-mastered{background:rgba(61,181,74,.08);border:2px solid rgba(61,181,74,.18)}.review-stat-mastered .review-stat-label,.review-stat-mastered .review-stat-number{color:#2a8a35}.review-stat-strengthened{background:rgba(41,181,232,.08);border:2px solid rgba(41,181,232,.18)}.review-stat-strengthened .review-stat-label,.review-stat-strengthened .review-stat-number{color:#1a7da0}.review-stat-improve{background:hsla(26,40%,65%,.12);border:2px solid hsla(26,40%,65%,.25)}.review-stat-improve .review-stat-label,.review-stat-improve .review-stat-number{color:#8a6040}.review-summary-next{display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 24px;background:var(--color-surface);border-radius:12px;width:100%}.review-summary-next-label{font-family:var(--font-body);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.review-summary-next-time{font-family:var(--font-display);font-size:22px;font-weight:500;color:#5a3020}.morpheme-review{display:flex;flex-direction:column;align-items:center;gap:18px}.morpheme-review-prompt{font-family:var(--font-body);font-size:22px;font-weight:600;color:#5a3020;margin:0;text-align:center}.morpheme-review-prompt strong{font-size:28px;font-weight:800;color:var(--color-text-primary)}.kanji-writer-canvas{background:var(--color-surface);border:2px solid var(--color-border);border-radius:14px;display:flex;align-items:center;justify-content:center;cursor:crosshair;touch-action:none;transition:border-color .2s,box-shadow .2s}.kanji-writer-canvas:hover{border-color:#d4b0a0}.kanji-writer-canvas:active{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(61,181,74,.12)}.kanji-writer-fallback{background:var(--color-surface);border:2px solid var(--color-border);border-radius:14px;display:flex;align-items:center;justify-content:center}.kanji-writer-static{font-size:64px;color:var(--color-text-muted)}.morpheme-kanji{font-size:68px;font-weight:600;line-height:1;color:var(--color-text-primary);text-align:center}.morpheme-meaning{font-family:var(--font-body);font-size:20px;font-weight:700;color:#5a3020;text-align:center}.morpheme-radicals{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.morpheme-radical-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;background:rgba(61,181,74,.08);border:1px solid rgba(61,181,74,.2);border-radius:var(--radius-pill);font-size:14px;font-weight:600;color:#2a8a35}.morpheme-radical-char{font-size:18px}.morpheme-radical-meaning{color:#5a3020;font-weight:500}.cloze-readings,.morpheme-readings{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}.cloze-reading,.morpheme-reading{font-family:var(--font-body);font-size:17px;font-weight:600;color:var(--color-text-muted);letter-spacing:.03em}.cloze-reading-line{display:flex;align-items:center;gap:10px;justify-content:center;margin:0}.cloze-correct-kanji-inline{font-size:28px;font-weight:700;color:#2a8a35}.morpheme-result-feedback{font-family:var(--font-body);font-size:15px;font-weight:600;color:var(--color-text-muted);margin:0;text-align:center}.cloze-review{display:flex;flex-direction:column;align-items:center;gap:22px}.cloze-sentence{font-family:var(--font-body);font-size:26px;font-weight:700;color:var(--color-text-primary);text-align:center;line-height:1.5;margin:0;padding:20px 24px;background:var(--color-surface);border:2px solid var(--color-border);border-radius:14px;width:100%}.cloze-choices{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;width:100%;max-width:340px}.cloze-choice{font-family:var(--font-body);font-size:36px;font-weight:700;color:var(--color-text-primary);padding:16px 12px;background:var(--color-surface);border:2px solid var(--color-border);border-radius:14px;cursor:pointer;transition:border-color .15s,background .15s,transform .1s,box-shadow .15s;text-align:center;line-height:1}.cloze-choice:hover:not(:disabled){border-color:#d4b0a0;background:var(--color-surface);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.cloze-choice:active:not(:disabled){transform:translateY(0)}.cloze-choice:disabled{cursor:default}.cloze-choice.cloze-correct{background:rgba(61,181,74,.1);border-color:var(--color-primary);color:#2a8a35}.cloze-choice.cloze-wrong{background:rgba(195,57,43,.08);border-color:var(--color-error);color:var(--color-error)}.cloze-choice.cloze-dimmed{opacity:.4}.cloze-explanation{display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px 24px;background:rgba(61,181,74,.06);border:2px solid rgba(61,181,74,.18);border-radius:14px;width:100%}.cloze-correct-kanji{font-size:44px;font-weight:700;color:#2a8a35;line-height:1}.cloze-full-sentence{font-size:18px;font-weight:600;color:var(--color-text-primary)}.cloze-full-sentence,.cloze-story{font-family:var(--font-body);text-align:center;line-height:1.5;margin:0}.cloze-story{font-size:14px;font-weight:500;color:var(--color-text-muted);font-style:italic}.usage-detail{display:flex;flex-direction:column;align-items:center;gap:12px}.usage-kanji{font-size:56px;font-weight:600;line-height:1;color:var(--color-text-primary);text-align:center}.usage-sentence{font-size:18px;font-weight:600;color:#5a3020}.usage-sentence,.usage-story{font-family:var(--font-body);text-align:center;line-height:1.5}.usage-story{font-size:14px;font-weight:500;color:var(--color-text-muted);font-style:italic;padding:12px 16px;background:var(--color-surface);border-radius:10px;margin:0}.direction-grid-review{display:flex;flex-direction:column;align-items:center;gap:18px}.direction-grid-header{display:flex;justify-content:space-between;width:100%;max-width:320px;font-family:var(--font-body);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.direction-grid-hints{width:100%;max-width:320px;padding:12px 16px;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:10px}.direction-grid-hints ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.direction-grid-hints li{font-family:var(--font-body);font-size:14px;color:var(--color-text-primary);line-height:1.4}.direction-grid-hints li strong{font-weight:800;color:var(--color-primary)}.direction-grid-container{display:flex;justify-content:center}.direction-grid{display:inline-grid;gap:0;image-rendering:pixelated;position:relative;border:2px solid var(--color-border);border-radius:8px;overflow:hidden}.direction-grid-tile{width:var(--tile-size,32px);height:var(--tile-size,32px);position:relative}.direction-grid-tree{image-rendering:pixelated;pointer-events:none}.direction-grid-chest-glow{position:absolute;inset:0;border-radius:2px;animation:chest-glow 1.5s ease-in-out infinite;pointer-events:none}@keyframes chest-glow{0%,to{box-shadow:inset 0 0 4px rgba(255,215,0,0)}50%{box-shadow:inset 0 0 8px rgba(255,215,0,.4)}}.direction-grid-player{position:absolute;transition:left .25s ease-out,top .25s ease-out;pointer-events:none}.player-sprite-img{image-rendering:pixelated}.player-confused-indicator{position:absolute;top:-16px;left:50%;transform:translateX(-50%);font-size:14px;animation:confused-pop .3s ease-out;z-index:30}@keyframes confused-pop{0%{transform:translateX(-50%) scale(0)}50%{transform:translateX(-50%) scale(1.3)}to{transform:translateX(-50%) scale(1)}}.direction-grid-speech{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:#fff;color:#1a1a2e;padding:4px 8px;border-radius:8px;font-family:var(--font-body);font-size:11px;white-space:nowrap;z-index:20;font-weight:600;opacity:0;transition:opacity .3s}.direction-grid-speech.visible{opacity:1}.direction-grid-speech:after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:#fff}.direction-grid-history{width:100%;max-width:320px;display:flex;flex-direction:column;gap:8px;max-height:160px;overflow-y:auto;padding:12px;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:10px}.direction-grid-history-entry{display:flex;flex-direction:column;gap:2px}.history-user{font-weight:600;color:var(--color-text-primary)}.history-response,.history-user{font-family:var(--font-body);font-size:13px}.history-response{font-weight:500;color:var(--color-text-muted);padding-left:8px}.history-response.history-clear{color:#2a8a35}.history-response.history-unclear,.history-response.history-wrong_language{color:var(--color-error,#c0392b)}.history-moves{font-weight:700;color:var(--color-primary)}.direction-grid-transcript{font-family:var(--font-body);font-size:15px;font-weight:600;color:var(--color-text-primary);text-align:center;padding:8px 16px;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:10px;width:100%;max-width:320px;min-height:2em}.direction-grid-controls{display:flex;justify-content:center;gap:10px}.direction-grid-record.recording{background:var(--color-error,#c0392b)}.direction-grid-record.recording:hover:not(:disabled){background:#a93226}.direction-grid-processing{font-family:var(--font-body);font-size:14px;font-weight:600;color:var(--color-text-muted)}[data-theme=dark] .review-answer{background:rgba(94,194,105,.06);border-color:rgba(94,194,105,.22)}[data-theme=dark] .cloze-explanation{background:rgba(94,194,105,.06);border-color:rgba(94,194,105,.18)}[data-theme=dark] .cloze-choice.cloze-correct{background:rgba(94,194,105,.1)}[data-theme=dark] .cloze-choice.cloze-wrong{background:rgba(232,92,92,.08)}[data-theme=dark] .btn.secondary{background:hsla(30,10%,62%,.18);color:var(--color-text-primary)}[data-theme=dark] .btn.secondary:hover:not(:disabled){background:hsla(30,10%,62%,.28)}[data-theme=dark] .review-score-buttons{border-color:hsla(0,0%,100%,.09);background:rgba(15,23,42,.28)}[data-theme=dark] .review-score-buttons .review-grade-btn-again{border-color:rgba(251,113,133,.3)!important;background:rgba(190,18,60,.15);color:#fda4af}[data-theme=dark] .review-score-buttons .review-grade-btn-hard{border-color:rgba(251,191,36,.3)!important;background:rgba(161,98,7,.16);color:#fcd34d}[data-theme=dark] .review-score-buttons .review-grade-btn-good{border-color:rgba(96,165,250,.3)!important;background:rgba(29,78,216,.16);color:#93c5fd}[data-theme=dark] .review-score-buttons .review-grade-btn-easy{border-color:rgba(52,211,153,.3)!important;background:rgba(4,120,87,.16);color:#6ee7b7}[data-theme=dark] .review-score-buttons .review-grade-btn-again:hover:not(:disabled){border-color:rgba(251,113,133,.5)!important;background:rgba(190,18,60,.25)}[data-theme=dark] .review-score-buttons .review-grade-btn-hard:hover:not(:disabled){border-color:rgba(251,191,36,.5)!important;background:rgba(161,98,7,.27)}[data-theme=dark] .review-score-buttons .review-grade-btn-good:hover:not(:disabled){border-color:rgba(96,165,250,.5)!important;background:rgba(29,78,216,.27)}[data-theme=dark] .review-score-buttons .review-grade-btn-easy:hover:not(:disabled){border-color:rgba(52,211,153,.5)!important;background:rgba(4,120,87,.27)}[data-theme=dark] .review-stat-mastered{background:rgba(94,194,105,.08);border-color:rgba(94,194,105,.18)}[data-theme=dark] .review-stat-strengthened{background:rgba(41,181,232,.08);border-color:rgba(41,181,232,.18)}[data-theme=dark] .review-stat-improve{background:hsla(30,10%,62%,.1);border-color:hsla(30,10%,62%,.2)}[data-theme=dark] .kanji-writer-canvas:active{box-shadow:0 0 0 3px rgba(94,194,105,.15)}[data-theme=dark] .morpheme-radical-chip{background:rgba(94,194,105,.08);border-color:rgba(94,194,105,.2)}[data-theme=dark] .knowledge-answer-value,[data-theme=dark] .morpheme-meaning,[data-theme=dark] .morpheme-radical-meaning,[data-theme=dark] .morpheme-review-prompt,[data-theme=dark] .review-summary-next-time,[data-theme=dark] .usage-sentence{color:var(--color-text-primary)}[data-theme=dark] .cloze-choice.cloze-correct,[data-theme=dark] .cloze-correct-kanji,[data-theme=dark] .cloze-correct-kanji-inline,[data-theme=dark] .morpheme-radical-chip,[data-theme=dark] .review-answer-value,[data-theme=dark] .review-stat-mastered .review-stat-label,[data-theme=dark] .review-stat-mastered .review-stat-number{color:var(--color-primary)}[data-theme=dark] .review-stat-strengthened .review-stat-label,[data-theme=dark] .review-stat-strengthened .review-stat-number{color:#4ec8f0}[data-theme=dark] .review-stat-improve .review-stat-label,[data-theme=dark] .review-stat-improve .review-stat-number{color:var(--color-text-muted)}[data-theme=dark] .cloze-choice:hover:not(:disabled),[data-theme=dark] .kanji-writer-canvas:hover{border-color:var(--color-primary)}