:root{--paper: #f7f5ef;--paper-raised: #ffffff;--ink: #2b302c;--ink-soft: #5b645d;--ink-faint: #8a9189;--line: #dfe3dc;--line-soft: #ebeee7;--sage-50: #e7efe9;--sage-100: #d7e6dc;--sage-500: #5c8d73;--sage-600: #3f7259;--sage-700: #2c5641;--gold-100: #f7ecd8;--gold-500: #e2a83f;--gold-700: #8a5f10;--sky-100: #e5eef3;--sky-600: #2f6690;--sky-700: #234d6c;--sakura-100: #f5e3e6;--sakura-600: #a14a5c;--sakura-700: #7d3547;--level-c1-bg: #e3f0ec;--level-c1-text: #2d6b5c;--level-c2-bg: #ece3ea;--level-c2-text: #6b3d5e;--radius-control: 10px;--radius-card: 14px;--shadow-card: 0 16px 36px rgba(43, 48, 44, .08);--shadow-soft: 0 12px 28px rgba(43, 48, 44, .07);--shadow-popup: 0 22px 60px rgba(63, 114, 89, .22);--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;color:var(--ink);background:var(--paper);font-family:Noto Sans JP,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(180deg,#ffffffc2,#fff0 28rem),var(--paper)}@keyframes panel-open{0%{opacity:0;transform:translateY(-8px) scaleY(.97)}to{opacity:1;transform:translateY(0) scaleY(1)}}@keyframes row-open{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}button,input{font:inherit}button{border:0}.has-tooltip{position:relative}.has-tooltip:after{position:absolute;left:50%;bottom:calc(100% + 8px);z-index:80;width:max-content;max-width:min(260px,80vw);border:1px solid rgba(43,48,44,.14);border-radius:8px;padding:7px 9px;background:var(--ink);color:#fff;box-shadow:0 12px 28px #2b302c2e;content:attr(data-tooltip);font-size:.74rem;font-weight:700;line-height:1.35;opacity:0;pointer-events:none;text-align:left;transform:translate(-50%,4px);transition:opacity .14s ease,transform .14s ease,visibility .14s ease;visibility:hidden;white-space:normal}.has-tooltip:hover:after,.has-tooltip:focus-visible:after,.has-tooltip:focus-within:after{opacity:1;transform:translate(-50%);visibility:visible}.tooltip-below:after{top:calc(100% + 8px);bottom:auto;transform:translate(-50%,-4px)}.tooltip-below:hover:after,.tooltip-below:focus-visible:after,.tooltip-below:focus-within:after{transform:translate(-50%)}.tooltip-left:after{top:50%;right:calc(100% + 10px);bottom:auto;left:auto;transform:translate(4px,-50%)}.tooltip-left:hover:after,.tooltip-left:focus-visible:after,.tooltip-left:focus-within:after{transform:translateY(-50%)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;padding:0}.app-shell{width:100%;min-height:100vh;padding:24px 20px 20px}.app-header{display:grid;grid-template-columns:minmax(290px,.4fr) minmax(0,1fr);gap:18px;align-items:end;width:min(1360px,100%);margin:0 auto 14px;border:1px solid var(--line);border-radius:var(--radius-card);padding:16px 18px;background:var(--paper-raised);box-shadow:var(--shadow-soft)}.app-brand{display:flex;align-items:center;gap:12px}.app-wordmark{position:relative;display:inline-block}.app-wordmark-kicker{display:block;margin:0 0 1px;color:var(--gold-700);font-family:Yanone Kaffeesatz,Noto Sans JP,sans-serif;font-size:.92rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.app-title{margin:0;color:var(--ink);font-size:clamp(1.1rem,1.7vw,1.4rem);font-weight:700;letter-spacing:-.01em;line-height:1.2;text-wrap:balance}.app-title-accent{position:absolute;left:1px;bottom:-8px;width:72%;height:9px;pointer-events:none}.app-title-segment{white-space:nowrap}.header-controls{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:14px;align-items:end}.header-category{display:grid;gap:6px}.header-category-label{color:var(--ink-faint);font-size:.78rem;font-weight:700;letter-spacing:.02em}.header-category-language{min-width:112px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;width:min(1360px,100%);margin:0 auto;align-items:start}.question-card,.panel{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--paper-raised);box-shadow:var(--shadow-card)}.question-card{min-height:0;padding:28px}.question-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:18px}.eyebrow{margin:0 0 4px;color:var(--ink-faint);font-size:.82rem;font-weight:700;text-transform:uppercase}h1,h2,p{margin-top:0}h1{margin-bottom:0;color:var(--ink);font-size:clamp(1.52rem,2.8vw,2.15rem);line-height:1.08;letter-spacing:0}h2{margin-bottom:10px;color:var(--ink);font-size:1.2rem}.level-badge{flex:0 0 auto;min-width:54px;border-radius:999px;padding:5px 12px;text-align:center;font-size:.8rem;font-weight:700;text-transform:uppercase}.question-badges{display:flex;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end;gap:6px}.learning-state-badge{border-radius:999px;padding:5px 10px;font-size:.74rem;font-weight:700;line-height:1;white-space:nowrap}.learning-state-notMastered{background:var(--gold-100);color:var(--gold-700)}.learning-state-mastered,.level-a1{background:var(--sage-50);color:var(--sage-700)}.level-a2{background:var(--sky-100);color:var(--sky-700)}.level-b1{background:var(--gold-100);color:var(--gold-700)}.level-b2{background:var(--sakura-100);color:var(--sakura-700)}.level-c1{background:var(--level-c1-bg);color:var(--level-c1-text)}.level-c2{background:var(--level-c2-bg);color:var(--level-c2-text)}.meta-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:8px;margin:0 0 18px;animation:panel-open .2s ease-out both;transform-origin:top center}.meta-chip{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;border-radius:var(--radius-control);padding:7px 10px;background:var(--sage-50);color:var(--ink-soft);font-size:.84rem;font-weight:700;text-align:center}.meta-chip-clickable{cursor:pointer;box-shadow:inset 0 0 0 1px #3f725929;transition:background .16s ease,color .16s ease,box-shadow .16s ease}.meta-chip-clickable:hover,.meta-chip-clickable:focus-visible,.meta-chip-clickable[aria-expanded=true]{background:var(--sage-100);color:var(--sage-700);outline:none;box-shadow:inset 0 0 0 2px #3f72594d}.meta-grid-label{display:inline-flex;align-items:center;width:fit-content;grid-column:1 / -1;border-radius:999px;padding:3px 8px;background:var(--sky-100);color:var(--sky-700);font-size:.76rem;font-weight:700}.sentence{min-height:96px;margin-bottom:20px;color:var(--ink);font-size:clamp(2rem,3.5vw,3rem);font-weight:700;line-height:1.12;overflow-wrap:anywhere}.sentence-word{display:inline;border-radius:6px;padding:0 .03em;background:transparent;color:inherit;font:inherit;font-weight:inherit;line-height:inherit;text-decoration-line:underline;text-decoration-color:var(--sage-600);text-decoration-style:dotted;text-decoration-thickness:.08em;text-underline-offset:.12em;cursor:pointer;transition:background .16s ease,color .16s ease}.sentence-word:hover,.sentence-word:focus-visible,.sentence-word[aria-expanded=true]{background:var(--sage-50);color:var(--sage-700);outline:none}.blank{display:inline-flex;align-items:center;justify-content:center;min-width:3.1em;min-height:.9em;margin:0 .14em;border:.06em solid var(--sage-500);border-bottom:.1em solid var(--sage-600);border-radius:7px 7px 3px 3px;background:var(--sage-50);color:var(--sage-500);font-weight:900;vertical-align:baseline}.blank-active{box-shadow:0 0 0 .08em #3f725924}.blank-clickable{padding:0;background:transparent;font:inherit;font-weight:inherit;line-height:inherit;cursor:pointer;transition:background .16s ease,color .16s ease}.blank-clickable:hover,.blank-clickable:focus-visible,.blank-clickable[aria-expanded=true]{background:var(--sage-100);outline:none}.blank-complete{border-color:var(--sage-700);background:var(--sage-600);color:#fff}.typing-field{display:grid;margin-bottom:14px}.typing-field>span{color:var(--ink-soft);font-size:.9rem;font-weight:700}.typing-input-frame{position:relative;display:block}.typing-field input{width:100%;min-height:54px;border:1px solid var(--line);border-radius:var(--radius-control);padding:12px 172px 12px 14px;background:var(--paper-raised);color:var(--ink);font-size:1.2rem;font-weight:700;outline:none}.typing-input-frame-answered input{padding-right:88px}.typing-field input:focus{border-color:var(--sage-600);box-shadow:inset 0 0 0 2px var(--sage-600)}.typing-speech-key{position:absolute;top:50%;right:92px;display:inline-flex;align-items:center;gap:5px;min-height:32px;border:1px solid var(--line);border-radius:var(--radius-control);padding:4px 8px;background:var(--paper);color:var(--ink-soft);font-family:var(--font-mono);font-size:.74rem;font-weight:600;line-height:1;cursor:pointer;transform:translateY(-50%)}.typing-input-frame-answered .typing-speech-key{right:12px}.typing-speech-key:hover,.typing-speech-key:focus-visible{background:var(--sage-50);color:var(--ink);outline:none}.typing-speech-key:disabled{cursor:not-allowed;opacity:.56}.typing-speech-key-active{border-color:var(--sakura-600);background:var(--sakura-100);color:var(--sakura-700)}.typing-enter-key{position:absolute;top:50%;right:12px;display:inline-flex;align-items:center;gap:5px;min-height:32px;border:1px solid var(--line);border-radius:var(--radius-control);padding:4px 9px;background:var(--paper);color:var(--ink-soft);font-family:var(--font-mono);font-size:.76rem;font-weight:600;line-height:1;pointer-events:none;transform:translateY(-50%)}.typing-field .mistake-attempt-counter{justify-self:start;margin-top:7px;border:1px solid var(--gold-500);border-radius:999px;padding:4px 9px;background:var(--gold-100);color:var(--gold-700);font-size:.78rem;font-weight:700;line-height:1}.typing-field .mistake-attempt-counter-limit{border-color:var(--sakura-600);background:var(--sakura-100);color:var(--sakura-700)}.enter-icon{color:var(--ink-soft);font-size:1rem;line-height:1}.translation{margin-bottom:10px;color:var(--ink-soft);font-size:.92rem}.translation-under-sentence{display:grid;gap:8px;padding-left:2px}.translation-row{display:flex;gap:10px;align-items:baseline;margin:0;font-size:.98rem;line-height:1.55}.translation-label{flex:0 0 auto;min-width:58px;border-radius:999px;padding:3px 8px;background:var(--sky-100);color:var(--sky-700);font-size:.76rem;font-weight:700;line-height:1.35;text-align:center}.translation-highlight{border-radius:5px;padding:0 4px;background:var(--gold-100);color:var(--gold-700);font-weight:700}.vocabulary-prompt{display:grid;gap:14px;margin-bottom:18px}.vocabulary-prompt-row{display:grid;grid-template-columns:94px minmax(0,1fr);gap:14px;align-items:baseline;border-bottom:1px solid var(--line-soft);padding:0 0 14px;animation:row-open .18s ease-out both}.vocabulary-prompt-row-german{border-bottom:0;padding-bottom:0}.vocabulary-prompt-label{border-radius:999px;padding:5px 9px;background:var(--sky-100);color:var(--sky-700);font-size:.78rem;font-weight:700;text-align:center}.vocabulary-prompt-value{color:var(--ink);font-size:clamp(1.25rem,2.5vw,2rem);font-weight:700;line-height:1.28;overflow-wrap:anywhere}.vocabulary-prompt-value ruby{ruby-position:over}.vocabulary-prompt-value rt{color:var(--ink-faint);font-size:.34em;font-weight:700;line-height:1}.vocabulary-prompt-german{display:block;color:var(--ink);font-size:clamp(1.45rem,2.8vw,2.25rem);line-height:1.18}.answer-format{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:center;margin:0 0 18px;border:1px solid rgba(63,114,89,.2);border-radius:var(--radius-control);padding:12px 14px;background:var(--sage-50);animation:panel-open .18s ease-out both;transform-origin:top center}.answer-format-label{color:var(--sage-700);font-size:.82rem;font-weight:700}.answer-format-pattern{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.article-option,.word-slot{min-height:30px;border-radius:999px;padding:4px 10px;font-size:.92rem;font-weight:700}.article-option{border:1px solid var(--line);background:var(--paper-raised);color:var(--ink)}.article-option-clickable{cursor:pointer;transition:background .16s ease,box-shadow .16s ease}.article-option-clickable:hover,.article-option-clickable:focus-visible,.article-option-clickable[aria-expanded=true]{background:var(--sage-50);outline:none;box-shadow:inset 0 0 0 2px #3f72593d}.word-slot{border:1px dashed var(--ink-faint);background:var(--paper);color:var(--ink-soft)}.format-plus{color:var(--ink-faint);font-size:1rem;font-weight:700}.vocabulary-panel,.grammar-panel{margin-bottom:24px;border:1px solid rgba(47,102,144,.22);border-radius:var(--radius-card);padding:18px;background:var(--sky-100);color:var(--ink);animation:panel-open .22s cubic-bezier(.2,.8,.2,1) both;transform-origin:top center}.grammar-panel{border-color:#3f725938;background:var(--sage-50)}.grammar-panel-inline{width:100%;margin:2px 0 0;padding:14px}.meta-grid .grammar-panel-inline{grid-column:1 / -1}.answer-format .grammar-panel-inline{flex:1 0 100%}.vocabulary-kicker{margin-bottom:3px;color:var(--sky-700);font-size:.78rem;font-weight:700}.grammar-panel .vocabulary-kicker{color:var(--sage-700)}.grammar-example-list{display:grid;gap:6px;margin:12px 0 0}.grammar-example-list div{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px}.grammar-example-list dt{color:var(--sage-700);font-weight:700}.grammar-example-list dd{margin:0;color:var(--ink)}.vocabulary-header{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:12px}.vocabulary-header h2{margin-bottom:0}.vocabulary-header span{flex:0 0 auto;max-width:48%;border-radius:999px;padding:6px 10px;background:var(--sky-100);color:var(--sky-700);font-size:.82rem;font-weight:700;text-align:center}.vocabulary-headword,.vocabulary-meaning{margin-bottom:8px;font-weight:700}.vocabulary-note{margin-bottom:0}.answer-panel{margin-bottom:24px;border:1px solid rgba(63,114,89,.24);border-radius:var(--radius-card);padding:18px;background:var(--sage-50);color:var(--ink);animation:panel-open .24s cubic-bezier(.2,.8,.2,1) both;transform-origin:top center}.answer-panel p{margin-bottom:12px}.answer-translation-list{display:grid;gap:4px}.answer-translation-list .translation-row{margin:0}.article-table-block{display:grid;gap:8px;margin:0 0 14px}.article-table-block h3{margin:0;color:var(--sage-700);font-size:.96rem}.article-table-scroll{overflow-x:auto}.article-declension-table{width:100%;min-width:560px;border-collapse:separate;border-spacing:0;overflow:hidden;border:1px solid rgba(63,114,89,.24);border-radius:var(--radius-control);background:var(--paper-raised);color:var(--ink);font-size:.9rem}.article-declension-table th,.article-declension-table td{border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);padding:8px 10px;text-align:center}.article-declension-table th:last-child,.article-declension-table td:last-child{border-right:0}.article-declension-table tr:last-child th,.article-declension-table tr:last-child td{border-bottom:0}.article-declension-table thead th,.article-declension-table tbody th{background:var(--sage-50);color:var(--sage-700);font-weight:700}.article-declension-table tbody th{text-align:left;white-space:nowrap}.article-declension-table td{font-weight:700}.article-declension-table .article-cell-correct{background:var(--gold-100);color:var(--gold-700);box-shadow:inset 0 0 0 2px var(--gold-500)}.answer-panel dl{display:grid;gap:8px;margin:0}.answer-panel>dl>div{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px}.answer-panel dt{color:var(--sage-700);font-weight:700}.answer-panel dd{margin:0}.example-block{display:grid;gap:5px}.example-block p{margin:0}.example-sentence{color:var(--ink);font-weight:700}.example-translation{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px;color:var(--ink-soft);font-size:.9rem}.example-translation span{color:var(--sage-700);font-size:.78rem;font-weight:700}.answer-popup{position:fixed;right:max(18px,calc((100vw - 1360px)/2 + 320px));bottom:18px;z-index:30;display:grid;gap:10px;width:min(620px,calc(100vw - 36px));max-height:min(72vh,620px);border:1px solid rgba(63,114,89,.26);border-radius:10px;padding:14px;background:#e7efe9fa;box-shadow:var(--shadow-popup);overflow:auto;animation:panel-open .22s cubic-bezier(.2,.8,.2,1) both;transform-origin:bottom right}.answer-panel-popup{margin:0;border:0;padding:0;background:transparent;box-shadow:none;animation:none}.answer-popup-next{width:100%}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border-radius:var(--radius-control);padding:9px 14px;font-weight:700;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.button:not(:disabled):hover{transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.55}.button-primary{background:var(--sage-600);color:#fff;box-shadow:0 10px 22px #3f725947}.button-primary:not(:disabled):hover{background:var(--sage-700)}.button-secondary{background:transparent;color:var(--ink-soft);box-shadow:inset 0 0 0 1px var(--line)}.button-secondary:hover{background:var(--sage-50);color:var(--ink)}.button-keycap{border:1px solid currentColor;border-radius:6px;padding:2px 6px;background:#ffffff7a;font-family:var(--font-mono);font-size:.68rem;font-weight:600;line-height:1.2;text-transform:uppercase}.action-row{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.25fr);gap:10px}.action-row .button:only-child{grid-column:1 / -1}.side-column{display:grid;gap:14px}.challenge-card,.challenge-play{display:grid;gap:16px;animation:panel-open .2s ease-out both;transform-origin:top center}.challenge-status{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:18px;animation:panel-open .2s ease-out both;transform-origin:top center}.challenge-status-main{display:grid;gap:8px;min-width:0}.challenge-status h2{margin:0;font-size:1.8rem}.challenge-kicker{margin:0 0 4px;color:var(--ink-faint);font-size:.78rem;font-weight:700}.challenge-score-preview{display:grid;gap:2px;border-radius:var(--radius-control);padding:10px 14px;background:var(--sage-50);color:var(--ink-soft);text-align:right}.challenge-score-preview small{color:var(--ink-faint);font-size:.74rem;font-weight:700}.challenge-progress{display:grid;grid-template-columns:repeat(10,minmax(18px,36px));gap:5px;width:fit-content}.challenge-progress-item{display:inline-grid;width:100%;height:10px;place-items:center;border:0;border-radius:999px;background:var(--line-soft);color:transparent;font-size:0;font-weight:700;line-height:1;pointer-events:none}.challenge-progress-correct{background:var(--sage-600);color:transparent}.challenge-progress-partial{background:var(--gold-500);color:transparent}.challenge-progress-wrong{background:var(--sakura-600);color:transparent}.challenge-progress-current{background:var(--ink);box-shadow:none}.challenge-meta-row,.challenge-meta-panel{display:flex;flex-wrap:wrap;gap:8px}.challenge-meta-row span,.challenge-meta-panel span{display:inline-flex;gap:6px;align-items:center;border-radius:999px;padding:6px 10px;background:var(--sage-50);color:var(--ink-soft);font-size:.78rem;font-weight:700}.challenge-meta-row strong,.challenge-meta-panel strong{color:var(--ink)}.challenge-meta-panel{padding:12px;border-radius:var(--radius-control);background:var(--sage-50)}.challenge-score-preview span,.challenge-result-grid span,.challenge-field span{color:var(--ink-faint);font-size:.8rem;font-weight:700}.challenge-score-preview strong,.challenge-result-grid strong{color:var(--ink);font-size:1.45rem;line-height:1}.challenge-setup,.challenge-result{display:grid;gap:14px;animation:panel-open .24s cubic-bezier(.2,.8,.2,1) both;transform-origin:top center}.challenge-field{display:grid;gap:7px}.challenge-field input,.challenge-field select,.challenge-field textarea{min-height:46px;border:1px solid var(--line);border-radius:var(--radius-control);padding:10px 12px;background:var(--paper-raised);color:var(--ink);font-weight:700}.challenge-field input:focus,.challenge-field select:focus,.challenge-field textarea:focus{outline:none;box-shadow:inset 0 0 0 2px var(--sage-600)}.challenge-field textarea{resize:vertical;line-height:1.5}.challenge-choice-field{display:grid;gap:7px;margin:0;border:0;padding:0}.challenge-choice-field legend{margin-bottom:2px;color:var(--ink-faint);font-size:.8rem;font-weight:700}.challenge-choice-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.challenge-choice-grid-levels{grid-template-columns:repeat(4,minmax(0,1fr))}.challenge-choice-chip{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:1px solid transparent;border-radius:var(--radius-control);padding:9px 10px;background:var(--sage-50);color:var(--ink);font-size:.92rem;font-weight:700;cursor:pointer;transition:background .16s ease,color .16s ease,box-shadow .16s ease,border-color .16s ease}.challenge-choice-chip input{width:16px;height:16px;margin:0;accent-color:var(--sage-600)}.challenge-choice-chip:hover,.challenge-choice-chip:focus-within{background:var(--sage-100);border-color:var(--sage-500)}.challenge-choice-chip-active,.challenge-choice-chip-active.level-chip-a1{background:var(--sage-50);color:var(--sage-700);box-shadow:inset 0 0 0 2px var(--sage-600)}.challenge-choice-chip-active.level-chip-a2{background:var(--sky-100);color:var(--sky-700);box-shadow:inset 0 0 0 2px var(--sky-600)}.challenge-choice-chip-active.level-chip-b1{background:var(--gold-100);color:var(--gold-700);box-shadow:inset 0 0 0 2px var(--gold-500)}.challenge-choice-chip-active.level-chip-b2{background:var(--sakura-100);color:var(--sakura-700);box-shadow:inset 0 0 0 2px var(--sakura-600)}.challenge-choice-chip:has(input:disabled){cursor:not-allowed;opacity:.78}.challenge-result-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.challenge-result-grid div{min-height:76px;border-radius:var(--radius-control);padding:12px;background:var(--sage-50)}.score-breakdown{display:grid;gap:10px;border-radius:var(--radius-control);padding:14px;background:var(--sage-50);animation:panel-open .2s ease-out both;transform-origin:top center}.score-breakdown h2{margin:0;color:var(--ink);font-size:1rem}.score-breakdown dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}.score-breakdown div{display:grid;gap:2px}.score-breakdown dt{color:var(--ink-faint);font-size:.78rem;font-weight:700}.score-breakdown dd{margin:0;color:var(--ink);font-weight:700}.submitted-summary{display:grid;gap:10px;border:1px solid rgba(63,114,89,.24);border-radius:var(--radius-control);padding:14px;background:var(--sage-50);animation:panel-open .22s cubic-bezier(.2,.8,.2,1) both;transform-origin:top center}.submitted-summary h2{margin:0;color:var(--sage-700)}.submitted-summary dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0}.submitted-summary div{display:grid;gap:2px}.submitted-summary dt{color:var(--sage-700);font-size:.78rem;font-weight:700}.submitted-summary dd{margin:0;color:var(--ink);font-weight:700}.submitted-comment,.ranking-comment{margin:2px 0 0;color:var(--ink-soft);font-size:.82rem;font-weight:700;overflow-wrap:anywhere}.ranking-panel{display:grid;gap:12px;margin-top:4px;border-top:1px solid var(--line);padding-top:18px;animation:panel-open .2s ease-out both;transform-origin:top center}.ranking-header{display:flex;justify-content:space-between;gap:12px;align-items:center}.ranking-header h2{margin:0}.ranking-tabs{display:flex;gap:6px}.ranking-tabs button{min-height:34px;border-radius:var(--radius-control);padding:6px 10px;background:var(--sage-50);color:var(--ink-soft);font-size:.82rem;font-weight:700;cursor:pointer;transition:background .16s ease,color .16s ease}.ranking-tabs button:hover,.ranking-tabs button:focus-visible,.ranking-tabs .ranking-tab-active{background:var(--sage-600);color:#fff;outline:none}.ranking-empty{margin:0;color:var(--ink-faint)}.ranking-list{display:grid;gap:8px;margin:0;padding:0;list-style-position:inside}.ranking-list li{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;border-radius:var(--radius-control);padding:10px 12px;background:var(--sage-50);color:var(--ink);font-weight:700;animation:row-open .18s ease-out both}.ranking-list em{color:var(--ink-faint);font-style:normal;font-weight:700}.ranking-list span{display:grid;gap:3px;min-width:0}.ranking-list span strong{overflow-wrap:anywhere}.ranking-list small{color:var(--ink-faint);font-size:.76rem;font-weight:700}.panel{padding:14px}.stats-panel-wrapper{display:grid;gap:14px}.stats-weekly{display:grid;gap:8px}.stats-weekly-header{display:flex;justify-content:space-between;align-items:baseline;color:var(--ink-soft);font-size:.78rem;font-weight:700}.stats-weekly-header strong{color:var(--sage-700);font-size:1.15rem;line-height:1}.stats-weekly-bars{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;height:40px}.stats-weekly-bar-track{display:flex;flex-direction:column-reverse;height:100%}.stats-weekly-bar-fill{width:100%;min-height:4px;border-radius:3px 3px 2px 2px;background:var(--sage-100)}.stats-weekly-bar-fill-today{background:var(--sage-600)}.stats-weekly-labels{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.stats-weekly-bar-label{color:var(--ink-faint);font-size:.66rem;font-weight:700;font-variant-numeric:tabular-nums;text-align:center}.stats-weekly-bar-label-today{color:var(--sage-700)}.stats-weekly-month{color:var(--ink-faint);font-size:.78rem;font-weight:700;border-top:1px solid var(--line-soft);padding-top:8px}.stats-weekly-month strong{color:var(--ink)}.stats-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.stat-item{min-height:58px;border-radius:var(--radius-control);padding:9px;background:var(--sage-50)}.stat-label{display:block;margin-bottom:5px;color:var(--ink-soft);font-size:.76rem;font-weight:700}.stat-value{color:var(--ink);font-size:1.24rem;line-height:1}.stat-secondary-row{display:flex;flex-wrap:wrap;gap:6px;grid-column:1 / -1;color:var(--ink-faint);font-size:.76rem;font-weight:700}.stat-secondary-row span{border-radius:999px;padding:4px 8px;background:var(--paper)}.stat-secondary-row strong{color:var(--ink)}.vocabulary-session-panel{display:grid;gap:12px}.vocabulary-session-heading{display:flex;align-items:flex-start;gap:10px}.vocabulary-session-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius-control);background:var(--sage-50);font-size:1rem}.vocabulary-session-heading h2{margin:0;color:var(--ink);font-size:1rem;line-height:1.15}.vocabulary-session-heading p{margin:4px 0 0;color:var(--ink-faint);font-size:.78rem;font-weight:700}.vocabulary-session-picker{display:grid;gap:9px}.vocabulary-level-field{display:grid;gap:6px;color:var(--ink-soft);font-size:.78rem;font-weight:700}.vocabulary-level-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.vocabulary-level-tab{min-height:34px;border-radius:var(--radius-control);background:var(--sage-50);color:var(--ink-soft);font-size:.86rem;font-weight:700;cursor:pointer}.vocabulary-level-tab.level-a1{background:var(--sage-50);color:var(--sage-700)}.vocabulary-level-tab.level-a2{background:var(--sky-100);color:var(--sky-700)}.vocabulary-level-tab.level-b1{background:var(--gold-100);color:var(--gold-700)}.vocabulary-level-tab.level-b2{background:var(--sakura-100);color:var(--sakura-700)}.vocabulary-level-tab:hover,.vocabulary-level-tab:focus-visible{filter:saturate(1.08) brightness(.98);outline:none}.vocabulary-level-tab-active{box-shadow:inset 0 0 0 2px currentColor}.vocabulary-session-field{display:grid;gap:6px;color:var(--ink-soft);font-size:.78rem;font-weight:700}.vocabulary-session-field select{width:100%;min-height:38px;border:1px solid var(--line);border-radius:var(--radius-control);padding:7px 9px;background:var(--paper-raised);color:var(--ink);font-size:.86rem;font-weight:700;cursor:pointer}.vocabulary-session-field select:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--sage-600)}.vocabulary-session-size{display:grid;gap:7px;color:var(--ink-faint);font-size:.78rem;font-weight:700}.vocabulary-session-size>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.session-size-button{min-height:34px;border-radius:var(--radius-control);background:var(--sage-50);color:var(--ink-soft);font-size:.86rem;font-weight:700;cursor:pointer}.session-size-button:hover,.session-size-button:focus-visible{background:var(--sage-100);outline:none}.session-size-button-active{background:var(--sage-50);color:var(--sage-700);box-shadow:inset 0 0 0 2px var(--sage-600)}.vocabulary-unit-status{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.vocabulary-status-button{display:grid;gap:3px;min-height:48px;border-radius:var(--radius-control);padding:7px 6px;border:1px solid transparent;background:var(--paper);color:var(--ink-soft);text-align:center;cursor:pointer}.vocabulary-status-button span{font-size:.68rem;font-weight:700}.vocabulary-status-button strong{color:var(--ink);font-size:1rem;line-height:1}.vocabulary-status-button:hover,.vocabulary-status-button:focus-visible{border-color:var(--sage-500);background:var(--sage-50);outline:none}.vocabulary-status-button-active{border-color:var(--sage-600);background:var(--sage-50);box-shadow:inset 0 0 0 1px var(--sage-600)}.vocabulary-status-notMastered.vocabulary-status-button-active{border-color:var(--gold-500);background:var(--gold-100);box-shadow:inset 0 0 0 1px var(--gold-500)}.vocabulary-status-mastered.vocabulary-status-button-active{border-color:var(--sage-600);background:var(--sage-50);box-shadow:inset 0 0 0 1px var(--sage-600)}.vocabulary-session-progress{display:grid;gap:8px;border-radius:var(--radius-control);padding:10px;background:var(--sage-50)}.session-progress-summary{display:grid;gap:2px}.session-progress-summary strong{color:var(--ink);font-size:1.05rem;line-height:1}.session-progress-summary span{color:var(--ink-faint);font-size:.74rem;font-weight:700}.session-progress-track{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:5px}.session-progress-marker{display:block;height:6px;border-radius:999px;background:var(--line)}.session-progress-marker-current{background:var(--ink-faint)}.session-progress-marker-correct{background:var(--sage-600)}.session-progress-marker-missed{background:var(--gold-500)}.vocabulary-word-list-panel{display:grid;gap:8px;border-radius:var(--radius-control);padding:10px;background:var(--paper-raised);box-shadow:inset 0 0 0 1px var(--line)}.vocabulary-word-list-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.vocabulary-word-list-heading strong{color:var(--ink);font-size:.86rem}.vocabulary-word-list-close{min-height:28px;border-radius:7px;padding:5px 9px;background:var(--sage-50);color:var(--ink-soft);font-size:.74rem;font-weight:700;cursor:pointer}.vocabulary-word-list-close:hover,.vocabulary-word-list-close:focus-visible{background:var(--sage-100);outline:none}.vocabulary-list-review-button{min-height:30px;padding:6px 9px;background:var(--sage-50);color:var(--sage-700);font-size:.74rem;box-shadow:inset 0 0 0 1px #3f725942}.vocabulary-list-review-button:disabled{cursor:not-allowed;opacity:.5}.vocabulary-word-list{display:grid;gap:7px;max-height:260px;margin:0;padding:0;overflow:auto;list-style:none}.vocabulary-word-list li{display:grid;gap:2px;border-top:1px solid var(--line-soft);padding-top:7px}.vocabulary-word-list li:first-child{border-top:0;padding-top:0}.vocabulary-word-list strong{color:var(--ink);font-size:.84rem}.vocabulary-word-list span{color:var(--ink-faint);font-size:.74rem;font-weight:700;line-height:1.35}.vocabulary-session-actions{display:grid;gap:7px}.vocabulary-session-start{min-height:38px;background:var(--sage-50);color:var(--sage-700);font-size:.86rem;box-shadow:inset 0 0 0 1px #3f725942}.vocabulary-session-start:hover,.vocabulary-session-start:focus-visible{background:var(--sage-100)}.vocabulary-session-start:disabled{cursor:not-allowed;opacity:.5}.vocabulary-session-secondary{min-height:36px;background:var(--paper);color:var(--ink-soft);font-size:.82rem;box-shadow:inset 0 0 0 1px var(--line)}.vocabulary-session-secondary:hover,.vocabulary-session-secondary:focus-visible{background:var(--sage-50)}.vocabulary-session-settings{display:grid;gap:10px;border-top:1px solid var(--line);padding-top:10px}.vocabulary-session-complete{margin:0;border-radius:var(--radius-control);padding:8px 10px;background:var(--gold-100);color:var(--gold-700);font-size:.8rem;font-weight:700}.settings-panel{display:grid;gap:0}.settings-disclosure{display:grid;gap:10px}.settings-disclosure summary{min-height:38px;border-radius:var(--radius-control);padding:9px 10px;background:var(--sage-50);color:var(--ink-soft);font-size:.86rem;font-weight:700;cursor:pointer;list-style-position:inside}.settings-disclosure summary:hover,.settings-disclosure summary:focus-visible{background:var(--sage-100);outline:none}.settings-disclosure-body{display:grid;gap:10px;padding-top:10px}.reset-history-button{min-height:38px;background:var(--paper-raised);color:var(--sakura-700);font-size:.86rem;box-shadow:inset 0 0 0 1px #a14a5c4d}.language-control{display:grid;gap:8px;color:var(--ink-soft);font-size:.78rem;font-weight:700}.language-control select{min-height:38px;min-width:112px;border:1px solid var(--line);border-radius:var(--radius-control);padding:7px 10px;background:var(--paper-raised);color:var(--ink);font-size:.88rem;font-weight:700;cursor:pointer}.language-control select:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--sage-600)}.mode-control{display:grid;gap:7px}.mode-control-horizontal{grid-template-columns:repeat(5,minmax(0,1fr))}.mode-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;border-radius:var(--radius-control);padding:8px 10px;background:transparent;color:var(--ink-faint);font-size:.86rem;font-weight:500;text-align:left;cursor:pointer;border-bottom:2px solid transparent;transition:background .16s ease,color .16s ease,border-color .16s ease}.mode-control-horizontal .mode-button{text-align:center}.mode-button:hover,.mode-button:focus-visible{background:var(--sage-50);color:var(--ink);outline:none}.mode-button-active{background:transparent;color:var(--sage-700);font-weight:700;border-bottom-color:var(--sage-600)}.mode-button-active:hover,.mode-button-active:focus-visible{background:var(--sage-50);color:var(--sage-700)}.level-filter{display:grid;gap:7px;min-width:0;margin:0;border:0;padding:0}.level-filter legend{margin-bottom:2px;color:var(--ink-faint);font-size:.78rem;font-weight:700}.level-filter-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.level-chip{display:flex;align-items:center;justify-content:center;gap:6px;min-height:34px;border-radius:var(--radius-control);padding:6px;background:var(--sage-50);color:var(--ink-soft);font-size:.92rem;font-weight:700;cursor:pointer}.level-chip input{width:15px;height:15px;margin:0;accent-color:var(--sage-600)}.level-chip:has(input:checked).level-chip-a1{background:var(--sage-50);color:var(--sage-700)}.level-chip:has(input:checked).level-chip-a2{background:var(--sky-100);color:var(--sky-700)}.level-chip:has(input:checked).level-chip-b1{background:var(--gold-100);color:var(--gold-700)}.level-chip:has(input:checked).level-chip-b2{background:var(--sakura-100);color:var(--sakura-700)}.level-chip:has(input:disabled){cursor:not-allowed}.toggle-row{display:flex;align-items:center;gap:8px;color:var(--ink);font-size:.96rem;font-weight:700}.toggle-row input{width:19px;height:19px;accent-color:var(--sage-600)}.support-note{border-radius:var(--radius-control);padding:8px 10px;background:var(--gold-100);color:var(--gold-700);font-size:.84rem}.support-note-info{background:var(--sky-100);color:var(--sky-700)}@media(max-width:860px){.has-tooltip:after{display:none}.challenge-status{align-items:stretch;flex-direction:column}.challenge-score-preview{text-align:left}.app-shell{padding:18px 12px}.app-header,.header-controls{grid-template-columns:1fr}.header-category-language{min-width:0}.layout{grid-template-columns:1fr}.question-card{min-height:auto;padding:22px}.meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sentence{min-height:120px}.side-column{grid-template-columns:1fr}.vocabulary-unit-status{grid-template-columns:repeat(2,minmax(0,1fr))}.answer-popup{right:18px}}@media(max-width:520px){.question-header{display:grid}.level-badge{width:fit-content}.mode-control-horizontal{display:flex;grid-template-columns:none;overflow-x:auto;gap:4px;padding-bottom:2px}.mode-control-horizontal .mode-button{flex:0 0 auto;white-space:nowrap}.meta-grid{grid-template-columns:1fr}.sentence{font-size:2rem;min-height:72px}.typing-field input{min-height:54px;padding:12px 154px 12px 12px;font-size:1.12rem}.typing-input-frame-answered input{padding-right:78px}.typing-speech-key{right:84px;padding:4px 7px;font-size:.72rem}.typing-input-frame-answered .typing-speech-key{right:9px}.typing-enter-key{right:9px;padding:4px 7px;font-size:.74rem}.answer-panel>dl>div{grid-template-columns:1fr;gap:2px}.challenge-result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.challenge-choice-grid,.challenge-choice-grid-levels,.score-breakdown dl{grid-template-columns:1fr}.submitted-summary dl{grid-template-columns:repeat(2,minmax(0,1fr))}.ranking-header{align-items:flex-start;flex-direction:column}.vocabulary-prompt-row{grid-template-columns:1fr;gap:8px}.vocabulary-prompt-label{width:fit-content}.vocabulary-header{display:grid}.vocabulary-header span{width:fit-content;max-width:100%}.vocabulary-word-list-heading{align-items:stretch;flex-direction:column}.stats-panel{grid-template-columns:repeat(3,minmax(0,1fr))}.action-row{grid-template-columns:1fr}.answer-popup{right:12px;bottom:12px;width:calc(100vw - 24px);max-height:68vh}}@media(prefers-reduced-motion:reduce){.meta-grid,.vocabulary-prompt-row,.answer-format,.vocabulary-panel,.grammar-panel,.answer-panel,.answer-popup,.challenge-card,.challenge-play,.challenge-status,.challenge-result,.score-breakdown,.submitted-summary,.ranking-panel,.ranking-list li{animation:none}.button,.meta-chip-clickable,.sentence-word,.blank-clickable,.article-option-clickable,.challenge-choice-chip,.ranking-tabs button{transition:none}}
