*{box-sizing:border-box}
html{color-scheme:light;background:#f7f8f4;color:#213b33;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;font-size:14px;line-height:1.5}
body{margin:0}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,select,summary{cursor:pointer}
button{min-height:40px;border:1px solid #d9e2da;border-radius:8px;padding:7px 13px;background:#fff;color:#25483b;transition:background .15s}button:hover{background:#eef4ee}button:disabled{opacity:.45;cursor:default}
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #86b8a5;outline-offset:2px}
.primary{background:#246854;color:#fff;border-color:#246854}.primary:hover{background:#1b5543}a{color:#246854;text-decoration:none}
.top{background:#fff;border-bottom:1px solid #e4e8df;padding:10px max(20px,calc((100vw - 1200px)/2));display:flex;justify-content:space-between;align-items:center;gap:12px}
.brand{display:flex;align-items:center;gap:9px;color:inherit;font-size:17px;font-weight:700;white-space:nowrap}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#246854;color:white;font:31px Georgia}.brand small{display:block;font-size:10px;font-weight:400;color:#7b8a7d}.version{font-size:12px;color:#6a7b70}.version i{font-style:normal;border:1px solid #dce6db;border-radius:50px;padding:3px 8px;margin-left:8px}
.shell{max-width:1240px;margin:0 auto;padding:10px 20px 14px}h2{font-size:18px;line-height:1.4;margin:0}h3{margin:0;font-size:16px}p{margin:6px 0}
nav{display:flex;gap:4px;border-bottom:1px solid #dae1d4;margin-bottom:12px}nav button{border:0;border-radius:8px 8px 0 0;background:transparent;min-height:44px;padding:9px 22px;color:#758476}nav button span{font-size:10px;margin-right:8px;color:#8b9d89}nav [aria-current=page]{color:#246854;background:#eaf0e5;box-shadow:inset 0 -3px #246854;font-weight:650}nav b{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:50px;background:#e1e9dc;font-size:11px;margin-left:4px}
.card{background:#fff;border:1px solid #e1e6dc;border-radius:12px;padding:16px;min-width:0;box-shadow:0 3px 14px #29423404}
.two-col{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);grid-template-areas:"input result" "keyboard result";gap:10px;align-items:start}.lookup-input{grid-area:input}.keyboard-card{grid-area:keyboard}.result-card{grid-area:result;align-self:stretch}
.muted{color:#6f7e70;font-size:12px}.tag{display:inline-block;padding:3px 7px;background:#edf3e9;color:#54764e;border-radius:5px;font-size:11px}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.between{justify-content:space-between}.space{margin-top:10px}
input,select{min-height:42px;border:1px solid #d4ded1;border-radius:8px;background:#fbfcf8;color:#203b30;padding:7px 10px;width:100%;min-width:0}input{font-size:18px}
.search-form{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:5px;margin:10px 0 0}.search-form input{font-family:Arial,sans-serif;font-size:23px}.search-form button{white-space:nowrap;padding:7px 10px}
.key-groups{display:grid;gap:6px}.key-groups>div{display:grid;grid-template-columns:62px minmax(0,1fr);align-items:center;gap:8px}.key-label{font-size:11px;color:#7b8c76}.keys{display:flex;gap:4px;flex-wrap:wrap}.keys button{min-width:36px;min-height:40px;padding:5px 6px;font:20px Arial,sans-serif;background:#f6f8f0;border-color:#e7ebdf}.samples{margin-top:9px;padding-top:8px;border-top:1px solid #edf0e7}.samples button{font:15px Arial;min-height:34px;padding:5px 9px}
.result-card{display:flex;flex-direction:column;background:linear-gradient(155deg,#fff 55%,#f4f7ed)}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:150px;gap:8px;padding:14px 0}.result-card .empty{flex:1}.empty-symbol{font:45px Georgia;color:#b2c3a3;line-height:1}.empty p{max-width:310px}.word{font-size:34px;line-height:1.2;font-weight:650;overflow-wrap:anywhere;margin:16px 0 6px}.ipa{font:25px/1.3 Arial,sans-serif;color:#577b55;overflow-wrap:anywhere}.meaning{white-space:pre-line;overflow-wrap:anywhere;font-size:14px;margin:12px 0}.result-body{flex:1}.result-note{margin:8px 0}.result-note summary{width:fit-content}.result-card .pager{padding-top:10px;margin-top:12px;border-top:1px solid #e6ecdd}.note{font-size:11px;color:#77816b;line-height:1.5}
.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.settings{display:grid;grid-template-columns:minmax(0,2fr) 1fr 1fr 1fr;gap:10px;margin-top:14px}.settings label{font-size:12px;color:#6d7c68;display:grid;gap:4px}.settings input,.settings select{font-size:15px}.practice-cover{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding-top:12px;margin-top:12px;border-top:1px solid #edf0e7}.steps{display:grid;gap:6px}.steps p{margin:0;color:#6e7d68;font-size:13px}.steps b{display:inline-grid;place-items:center;width:21px;height:21px;border-radius:50%;margin-right:7px;background:#ecf1e5;color:#58744e;font-size:11px}
.question{max-width:820px;margin:auto}.progress{height:4px;background:#edf1e6;border-radius:8px;overflow:hidden;margin:10px 0 12px}.progress span{display:block;height:100%;background:#85a477}.question .ipa{font-size:38px;text-align:center;margin:10px 0 8px}.question .clue{text-align:center;color:#66775f;font-size:14px;overflow-wrap:anywhere}.answer-form{max-width:600px;margin:14px auto 0}.answer-form label{display:block;font-size:12px;color:#6e7b67;margin-bottom:4px}.answer-form input{font-size:22px;letter-spacing:.4px;height:46px}.answer-form>.row{margin-top:8px;justify-content:space-between}.feedback{margin:12px 0 0;border-radius:9px;padding:12px;background:#f0f6ec;border:1px solid #dbe8d5}.feedback.wrong{background:#fff6ed;border-color:#f1deca}.feedback .word{font-size:24px;margin:4px 0}.feedback p{font-size:12px}.feedback h3{font-size:15px}.feedback .row{margin-top:6px}
.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.summary>div{padding:14px 8px;background:#f3f6ec;border-radius:9px;text-align:center}.summary strong{display:block;font-size:26px;color:#4d7648}.summary span{font-size:12px;color:#6e7e63}
.review-list{display:grid;margin-top:8px}.review-row{display:grid;grid-template-columns:minmax(100px,1fr) minmax(130px,2fr) auto;gap:12px;align-items:center;border-top:1px solid #e5eadf;padding:10px 0}.review-row:first-child{border-top:0}.review-row .ipa{font-size:18px}.review-row p{font-size:12px}.review-row .meaning{margin:3px 0}.review-row strong{font-size:20px;overflow-wrap:anywhere}.review-row .wrong-answer{color:#ad694c;overflow-wrap:anywhere}.review-actions{display:flex;gap:6px;flex-wrap:wrap}
#status{min-height:18px;font-size:12px;color:#69825f;margin:6px 0}#status.error{color:#a14e32}footer{border-top:1px solid #e0e5d8;padding-top:8px;display:flex;justify-content:space-between;gap:4px 16px;flex-wrap:wrap;font-size:11px;color:#7f8a75}footer details{width:100%}footer details p{max-width:850px}footer summary{display:inline-block;text-decoration:underline;text-underline-offset:3px}.hidden,[hidden]{display:none!important}
@media(max-width:1100px) and (min-width:851px){.keys button{min-width:31px;padding:5px 4px}.key-groups>div{grid-template-columns:54px minmax(0,1fr);gap:5px}.card{padding:13px}}
@media(max-width:850px){.two-col{grid-template-columns:minmax(0,1fr);grid-template-areas:"input" "result" "keyboard";gap:8px}.result-card .empty{min-height:0;padding:3px 0;gap:2px}.result-card .empty h3{display:none}.result-card .empty p{max-width:none;margin:3px 0}.result-card>.row h2{font-size:15px}.result-card .word{font-size:27px;margin-top:8px}.result-body{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 8px}.result-body .word,.result-body .ipa,.result-body .meaning{grid-column:1}.result-body>button{grid-column:2;grid-row:1/4;align-self:center}.result-body .ipa{font-size:20px}.result-body .meaning{margin:6px 0}.result-note{grid-column:1/-1;margin:2px 0}.result-card .pager{margin-top:7px;padding-top:7px}.result-card .pager button{min-height:36px;padding:5px 10px}.settings{grid-template-columns:2fr 1fr}.settings label:first-child{grid-column:1/-1}.practice-cover{align-items:center}.shell{padding:8px 12px 12px}}
@media(max-width:600px){.top{padding:8px 12px}.brand{font-size:15px;gap:8px}.brand-mark{width:32px;height:32px;font-size:29px}.version{font-size:10px}.version i{display:none}.brand small{font-size:9px}nav{gap:0;margin-bottom:8px}nav button{flex:1;min-width:0;padding:9px 3px;font-size:13px;white-space:nowrap}nav button span{display:none}nav b{min-width:18px;height:18px;margin-left:2px}.card{padding:12px;border-radius:10px}h2{font-size:17px}.lookup-input .tag{display:none}.search-form{gap:4px;margin-top:8px}.search-form input{font-size:21px;padding:7px}.search-form button{padding:7px;min-width:44px;font-size:12px}button{min-height:44px}.key-groups{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.key-groups>div,.key-groups>div>.keys{display:contents}.key-label{display:none}.key-groups button{min-width:0;width:100%;min-height:44px;padding:4px 1px;font-size:21px}.key-groups>div:nth-child(-n+3) button{background:#edf3e6}.keyboard-card .samples{gap:6px}.samples button{min-height:40px}.keyboard-card details summary{min-height:32px;display:flex;align-items:center}.keyboard-card details summary::before{content:'▸';margin-right:5px}.keyboard-card details[open] summary::before{content:'▾'}.settings{grid-template-columns:1fr 1fr;gap:9px}.settings select,.settings input{font-size:16px}.settings label:last-child{grid-column:1/-1}.practice-cover{align-items:stretch;flex-direction:column;gap:12px}.steps p{font-size:12px}.question .ipa{font-size:34px}.question .clue{font-size:13px}.question .row>span{font-size:11px}.answer-form input{font-size:20px}.feedback{padding:10px}.page-head{gap:8px;flex-wrap:wrap}.review-row{grid-template-columns:minmax(0,1fr) auto;gap:4px 8px}.review-row>div:nth-child(2){grid-column:1/-1;grid-row:2}.review-actions{grid-column:2;grid-row:1}.review-actions button{padding:6px 8px;font-size:12px}.summary{gap:7px}.summary strong{font-size:24px}footer{font-size:10px}.result-body>button{font-size:12px;padding:7px 9px}}
@media(max-width:359px){.shell{padding-left:8px;padding-right:8px}.card{padding:10px}.key-groups{grid-template-columns:repeat(6,minmax(0,1fr))}.search-form button{padding:6px;min-width:40px}.result-body>button{grid-column:1/-1;grid-row:auto;justify-self:start;margin:4px 0}.tag{font-size:10px}.review-row{grid-template-columns:1fr}.review-actions{grid-column:1;grid-row:3}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Keep the core lookup controls together; extra explanations scroll naturally. */
@media(min-width:851px){.lookup-input{padding-top:12px;padding-bottom:12px}.keyboard-card{padding-top:12px;padding-bottom:12px}.key-groups{gap:5px}.keys button{min-height:38px}.shell{padding-bottom:10px}}
@media(max-width:600px){.result-card.has-result>.row:first-child{display:none}.result-card.has-result .result-body{grid-template-columns:auto minmax(0,1fr) auto}.result-card.has-result .word{grid-column:1;grid-row:1;font-size:25px;margin:0}.result-card.has-result .ipa{grid-column:2;grid-row:1;font-size:18px}.result-card.has-result .meaning{grid-column:1/3;grid-row:2;margin:5px 0}.result-card.has-result .result-body>button{grid-column:3;grid-row:1/3;min-height:40px}.result-card.has-result .result-note{grid-column:1/-1;grid-row:3}.key-groups{grid-template-columns:repeat(8,minmax(0,1fr));gap:4px}.key-groups button{min-height:40px;font-size:20px}.keyboard-card .space{margin-top:6px}.keyboard-card .samples{margin-top:5px;padding-top:5px}}
@media(max-width:374px){.key-groups{grid-template-columns:repeat(7,minmax(0,1fr))}.result-card.has-result .word{font-size:23px}.result-card.has-result .ipa{font-size:16px}}
@media(max-width:600px) and (max-height:700px){.top{padding-top:6px;padding-bottom:6px}.brand small{display:none}.shell{padding-top:5px}.card{padding:10px}.lookup-input>.row{display:none}.search-form{margin-top:0}.result-card.has-result .result-note{margin-top:0}.question .progress{margin:7px 0}.question .ipa{margin:7px 0;font-size:31px}.answer-form{margin-top:10px}.feedback{margin-top:8px;padding:8px}.feedback p{margin:3px 0}.feedback .row{margin-top:3px}}
