.q-page{max-width:900px;margin-inline:auto}.q-page fieldset{border:0;padding:0;margin:24px 0;min-width:0}.q-page legend{font-size:1.2rem;font-weight:650;margin-bottom:18px;line-height:1.6}.q-actions,.q-filters,.q-numbers{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0}.q-filters label{display:grid;gap:8px}.q-filters select,.q-page input[type=text]{font:inherit;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);max-width:100%}.q-page input[type=text]{display:block;width:100%;margin-top:10px}.q-explanation{border-left:4px solid var(--yellow);background:var(--bg);padding:20px;margin:20px 0;line-height:1.8;overflow-wrap:anywhere}.q-explanation h3,.q-explanation h4{margin:12px 0}.q-explanation li{margin:10px 0}.q-review{border-bottom:1px solid var(--line);padding:18px 0}.q-review summary{cursor:pointer;font-weight:600;line-height:1.6}.q-note{font-size:.9rem;color:var(--muted)}.q-numbers .btn[aria-current]{outline:2px solid var(--ink)}.q-page .btn:disabled{opacity:.55;cursor:default}.q-page fieldset:disabled .option{cursor:default}@media(max-width:650px){.q-actions .btn{flex:1 1 100%}.q-explanation{padding:14px}.q-filters label{width:100%}.q-numbers{gap:8px}.q-numbers .btn{padding:10px;min-width:44px}}
.q-word-answer,.q-word-bank{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.q-word-answer{min-height:68px;border:1px dashed var(--line);border-radius:10px;padding:10px}.q-word-answer .btn,.q-word-bank .btn{min-height:44px}.q-page progress{width:100%;max-width:420px}.topic-grid select[data-q-section]{display:block;width:100%;min-height:44px;font:inherit;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:10px;margin-top:8px}.q-word-bank .btn:focus-visible,.q-word-answer .btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.q-body-figure{margin:16px 0;text-align:center}.q-body-figure img{display:block;max-width:100%;width:180px;height:auto;margin:auto;border-radius:12px}.q-body-figure figcaption{font-size:.9rem;margin:8px 0}.q-audio .btn{margin:4px}.q-transcript{white-space:pre-line;line-height:1.8;padding:14px;border:1px solid var(--line);border-radius:10px;margin:12px 0}.q-section-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.q-section-results article{padding:12px;border:1px solid var(--line);border-radius:10px}.q-section-results h3{font-size:1rem}.q-section-results p{font-size:.9rem}
.cw-page{min-width:0}.cw-scroll{overflow:auto;max-width:100%;padding:8px 0;touch-action:pan-x pan-y}.cw-grid{display:grid;grid-template-columns:repeat(var(--cols),44px);grid-auto-rows:44px;width:max-content;border:1px solid var(--line);gap:1px;background:var(--line)}.cw-cell{display:block;position:relative;margin:0;background:var(--bg);box-sizing:border-box}.cw-cell>span{position:absolute;left:3px;top:1px;font-size:10px;z-index:1;pointer-events:none}.q-page .cw-cell input{width:44px;height:44px;min-width:0;margin:0;padding:10px 0 0;text-align:center;font-size:22px;border:0;border-radius:0;background:transparent;box-sizing:border-box}.cw-block{background:#252525}.cw-selected{background:#fff0ad;color:#171717}.cw-current{outline:2px solid var(--ink);outline-offset:-2px}.cw-keys{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.cw-clues{display:grid;grid-template-columns:1fr 1fr;gap:16px}.cw-clue{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.cw-clue p{flex:1 1 130px}.cw-clue-image{max-width:100px;height:auto;max-height:175px;object-fit:contain}.cw-forms,.cw-review{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.cw-forms label{display:block;margin:10px 0 6px}.cw-forms select,.cw-forms input{font:inherit;min-height:44px;padding:10px;max-width:100%;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:8px}.cw-forms .panel{min-width:0}.cw-review .vocab-item{display:block}@media(max-width:600px){.cw-clues{grid-template-columns:1fr}.cw-forms,.cw-review{grid-template-columns:1fr}.cw-page{padding:14px}.cw-clue-image{max-width:80px}}
.q-scene-figure img{width:min(100%,440px);height:auto;object-fit:contain}

.q-komposita{min-width:0;overflow-wrap:anywhere}.q-komposita .q-actions .btn{white-space:normal;max-width:100%}.q-komposita legend,.q-komposita .q-explanation{max-width:100%;min-width:0}.q-komposita .pronunciation-button{vertical-align:middle;margin:4px}
/* Keep the helper in document flow while solving; it cannot cover feedback. */
body.komposita-active .assistant-toggle{position:static;display:block;margin:20px 16px 24px auto;max-width:calc(100% - 32px)}
@media(max-width:650px){.q-komposita{padding:14px}.q-komposita .q-actions{gap:10px}.q-komposita .q-actions .btn{min-width:0}.q-komposita input[type=text]{box-sizing:border-box;min-width:0}}

.q-komposita .q-explanation p{margin:14px 0;line-height:1.85}.q-komposita .pronunciation-button{display:inline-flex;flex-shrink:0;max-width:100%}

.expression-card{min-width:0;overflow-wrap:anywhere}.expression-card .btn{white-space:normal;max-width:100%;margin:6px 0}.expression-card section{margin-top:18px}.expression-card details{margin:16px 0}@media(max-width:650px){.expression-card .btn{width:100%}}

.en-card{min-width:0;overflow-wrap:anywhere}.en-card .btn{max-width:100%;white-space:normal}.en-card p{line-height:1.8}

.q-matching{display:grid;gap:14px}.q-matching label{display:grid;gap:8px;min-width:0}.q-matching select{font:inherit;min-height:44px;max-width:100%;width:100%;padding:10px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px}.en-word-link{text-decoration:underline;text-underline-offset:3px}.accent-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px;max-width:100%}.accent-controls select{font:inherit;max-width:100%;min-height:44px;padding:8px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px}.accent-controls label{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.accent-controls p{margin:0}@media(max-width:650px){.accent-controls{flex-basis:100%;justify-content:center}.accent-controls label{justify-content:center}}
.vocabulary-study{min-width:0}.vocabulary-study select{max-width:100%;width:100%;min-height:44px}.vocabulary-study h2,.vocab-definition{overflow-wrap:anywhere}.vocabulary-study h2 .pronunciation-button{vertical-align:middle}.vocabulary-study .q-actions{flex-wrap:wrap;gap:.6rem}.vocab-definition{margin-block:1rem;padding:1rem;border-left:3px solid var(--accent,#fff0a6)}
@media(max-width:430px){.vocabulary-study .q-filters{display:grid;grid-template-columns:1fr}.vocabulary-study .q-actions .btn{flex:1 1 100%;min-height:44px}}
.en-speaking audio{display:block;width:100%;max-width:100%;margin-block:.75rem}.en-speaking select{max-width:100%;min-height:44px}.en-speaking blockquote{margin-inline:0;padding:1rem;border-left:3px solid var(--accent,#fff0a6);overflow-wrap:anywhere}.en-speaking progress{width:100%}.en-record-review{padding-block:.75rem;border-top:1px solid var(--border,#777)}
@media(max-width:430px){.en-speaking .q-actions{display:flex;flex-wrap:wrap}.en-speaking .q-actions .btn{flex:1 1 100%;min-height:44px}}
.grammar-lesson{min-width:0}.grammar-lesson p,.grammar-lesson li,.grammar-mistake{overflow-wrap:anywhere}.grammar-lesson li{padding-block:.4rem}.grammar-lesson .pronunciation-button{vertical-align:middle;flex-shrink:0}.grammar-mistake{padding:1rem;margin-block:1rem;border-left:3px solid var(--accent,#fff0a6)}.grammar-lesson .btn{white-space:normal}
@media(max-width:430px){.grammar-lesson{padding:1rem}.grammar-lesson .btn{display:block;min-height:44px;width:100%}}
.rw-reading,.rw-compare{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:1.7}.rw-reading{padding:1rem;border-left:3px solid var(--accent,#fff0a6);margin-block:1rem}.rw-editor{min-width:0}.rw-editor textarea{width:100%;box-sizing:border-box;font:inherit;line-height:1.65;min-height:12rem;resize:vertical}.rw-editor select{max-width:100%;min-height:44px}.rw-check{display:flex;gap:.6rem;align-items:flex-start;margin-block:.8rem}.rw-check input{min-width:20px;min-height:20px}.rw-compare-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.rw-feedback{padding:1rem;margin-block:1rem;border-left:3px solid var(--accent,#fff0a6)}
@media(max-width:600px){.rw-compare-grid{grid-template-columns:1fr}.rw-editor .q-actions{display:flex;flex-wrap:wrap}.rw-editor .q-actions .btn{flex:1 1 100%;min-height:44px}.rw-editor{padding:1rem}}

.en-progress{min-width:0;overflow-wrap:anywhere}.en-progress .q-filters{display:flex;flex-wrap:wrap;gap:1rem}.en-progress .q-filters label{display:grid;gap:.4rem;flex:1 1 160px;min-width:0}.en-progress select{max-width:100%;min-height:44px}.en-progress-skill{min-width:0;padding:1rem;border:1px solid var(--border,#777);border-radius:10px}.en-progress progress{width:100%;max-width:100%}.en-progress-event{padding:1rem 0;border-bottom:1px solid var(--border,#777)}@media(max-width:600px){.en-progress .topic-grid{grid-template-columns:1fr}.en-progress .q-filters{flex-direction:column}.en-progress .q-filters label{flex:auto}}

.en-progress{padding-bottom:6rem}.en-progress button{min-height:44px}
.en-mock{min-width:0;overflow-wrap:anywhere;padding-bottom:6rem}.en-mock .q-actions{flex-wrap:wrap}.en-mock .btn{min-height:44px}.q-page #mock-clock{font-variant-numeric:tabular-nums}@media(max-width:600px){.en-mock .topic-grid{grid-template-columns:1fr}}
.q-advice{min-width:0;overflow-wrap:anywhere;padding-bottom:5rem}.q-advice textarea{display:block;width:100%;box-sizing:border-box;min-height:90px;font:inherit;margin:.5rem 0 1rem}.q-advice fieldset{min-width:0}.q-advice .q-actions{flex-wrap:wrap}.q-advice .btn{min-height:44px}.q-advice .advice-image{max-width:100%;height:auto;max-height:280px;object-fit:contain}.q-advice .q-explanation{overflow-wrap:anywhere}@media(max-width:600px){.q-advice .topic-grid{grid-template-columns:1fr}.q-advice .q-actions .btn{flex:1 1 100%}}
.conversation{min-width:0;overflow-wrap:anywhere;padding-bottom:6rem}.conversation .q-filters{display:flex;flex-wrap:wrap;gap:1rem}.conversation .q-filters label{display:grid;gap:.4rem;flex:1 1 150px;min-width:0}.conversation select{max-width:100%;min-height:44px}.conversation textarea{width:100%;box-sizing:border-box;display:block;font:inherit;margin:.6rem 0;min-height:100px}.conversation .btn{min-height:44px;margin:.3rem .3rem .3rem 0}.conversation-options{display:grid;gap:.6rem}.conversation-character{padding:.8rem;border-bottom:1px solid var(--border,#888)}.conversation-bubble{margin:1rem 0;padding:1rem;background:var(--surface,#333);border-left:4px solid var(--accent,#e1d68c);border-radius:8px;font-size:1.15rem}.conversation-turn{border-bottom:1px solid var(--border,#888);padding:.6rem 0}.conversation audio,.conversation progress{width:100%;max-width:100%}@media(max-width:600px){.conversation .topic-grid{grid-template-columns:1fr}.conversation .q-filters{flex-direction:column}.conversation .q-filters label{flex:auto}.conversation .q-actions .btn{flex:1 1 100%}}

.pilot-start{min-width:0;overflow-wrap:anywhere}.pilot-links{display:flex;flex-wrap:wrap;gap:8px}.pilot-links>a{min-height:44px;white-space:normal;max-width:100%;display:inline-flex;align-items:center}@media(max-width:430px){.pilot-links{display:grid;grid-template-columns:1fr}.pilot-links>a{width:100%}}
