
:root{--bg:#f4efe7;--paper:#fffdf9;--ink:#29251f;--muted:#756d63;--accent:#7b3f21;--line:#ded5c9;--good:#2d6a4f;--bad:#9d2c2c}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Georgia,"Times New Roman",serif}.app{max-width:760px;margin:auto;min-height:100vh;padding:18px}.top{display:flex;justify-content:space-between;align-items:center;gap:12px}h1{font-size:2rem;margin:.3rem 0}.subtitle,.muted{color:var(--muted)}button,select,input,textarea{font:inherit}button{border:1px solid var(--line);background:var(--paper);border-radius:12px;padding:12px 15px;color:var(--ink);cursor:pointer}button.primary{background:var(--accent);color:white;border-color:var(--accent)}button.small{padding:8px 10px;font-size:.9rem}.card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:20px;margin:16px 0;box-shadow:0 3px 12px #0000000b}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.choice{width:100%;text-align:left;margin:7px 0;line-height:1.35}.choice.correct{outline:2px solid var(--good)}.choice.wrong{outline:2px solid var(--bad)}.term{font-size:2rem;margin:.2rem 0 .7rem}.definition{font-size:1.15rem;line-height:1.45}.note{font-style:italic;color:var(--muted);margin-top:8px}.statline{display:flex;flex-wrap:wrap;gap:12px;color:var(--muted);font-size:.9rem}.hidden{display:none!important}label{display:block;margin:12px 0 5px}input,textarea,select{width:100%;padding:11px;border:1px solid var(--line);border-radius:10px;background:white}textarea{min-height:90px}.badge{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:4px 8px;font-size:.78rem;color:var(--muted);margin:2px}.listrow{padding:11px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;align-items:center}.feedback{margin-top:14px;padding:12px;border-radius:10px;background:#f3eee6;line-height:1.4}@media(max-width:520px){.app{padding:12px}.grid{grid-template-columns:1fr}h1,.term{font-size:1.7rem}}

/* v1.1 */
.group-definition{background:#fff4bd;border:1px solid #e5d58a;border-radius:12px;padding:14px 16px;margin:14px 0 16px;line-height:1.45}.group-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.group-picker-list{max-height:55vh;overflow:auto}.group-picker-item{width:100%;text-align:left;margin:5px 0}.pos{font-style:italic;color:var(--muted);font-size:.88em}.family-box{border-top:1px solid var(--line);margin-top:18px;padding-top:12px}.family-link{display:inline-block;margin:4px 6px 4px 0}.modehint{font-size:.9rem;color:var(--muted)}

/* v1.2 */
.choice.correct{background:#dff2df;border-color:#7eae7e;outline:2px solid var(--good)}
.choice.wrong{background:#f6dddd;border-color:#c88b8b;outline:2px solid var(--bad)}
/* v1.4 */
.version{text-align:center;color:var(--muted);font-size:.82rem;margin:28px 0 6px}.review-member{padding:13px 0;border-bottom:1px solid var(--line)}.review-member:last-child{border-bottom:0}.review-term{font-size:1.12rem;font-weight:bold}.review-gloss{line-height:1.45;margin:5px 0}.danger-zone{border-color:#d7b7b7}.danger-zone #confirmResetStats:not(:disabled){background:#8d2929;color:#fff;border-color:#8d2929}button:disabled{opacity:.5;cursor:not-allowed}.teaching-reveal{background:#fff4bd;border:1px solid #e5d58a;border-radius:12px;padding:14px;margin-top:12px}.group-toolbar{justify-content:space-between;margin:6px 0}.choice.correct{background:#dff2df}.choice.wrong{background:#f6dddd}

/* v1.8 */
.home-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.home-column{display:flex;flex-direction:column;gap:12px}.home-column button{width:100%}@media(max-width:520px){.home-actions{grid-template-columns:1fr}}

/* v2.0 */
.recall-grades{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.recall-grades button{width:100%}.recall-definition{background:#fff4bd;border:1px solid #e5d58a;border-radius:12px;padding:14px 16px;margin-top:14px;line-height:1.45}.recall-definition p{margin:.45rem 0}.recall-definition .note{display:block;margin-top:4px}@media(max-width:520px){.recall-grades{grid-template-columns:1fr}}

.keyhint{font-size:.78em;opacity:.65;margin-left:.35em}

/* v2.1 */
.recall-grades{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.recall-grades .recall-correct{background:#dff2df;border-color:#7eae7e}
.recall-grades .recall-almost{background:#eef8ee;border-color:#a9caa9}
.recall-grades .recall-blanked{background:#fff;border-color:var(--line)}
.recall-grades .recall-wrong{background:#f6dddd;border-color:#c88b8b}
@media(max-width:520px){.recall-grades{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.recall-grades button{padding:10px 4px;font-size:.9rem}.recall-grades .keyhint{display:block;margin:.2em 0 0}}

/* v2.2 flags and domains */
.quiet-flag{padding:7px 9px;font-size:.84rem;color:var(--muted);background:transparent;border-color:transparent}.quiet-flag:hover{border-color:var(--line);background:var(--paper)}.flag-area{margin-top:10px}.flag-editor{margin-top:8px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#faf7f1}.flag-editor textarea{min-height:62px}.domain-chip{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:3px 8px;font-size:.78rem;color:var(--muted);margin:2px 4px 2px 0}.flag-note{border-left:3px solid var(--line);padding-left:10px;margin:8px 0;color:var(--muted)}


/* v2.3 */
.result-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;min-height:44px}.result-footer .flag-area{margin-top:0;margin-left:auto}.result-footer #nextBtn{flex:0 0 auto}.flag-editor{margin-top:8px}
@media(max-width:520px){.result-footer{flex-wrap:nowrap}.quiet-flag{white-space:nowrap;padding-left:6px;padding-right:6px}}


/* v2.5 browse filters and filtered-set detail navigation */
.detail-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;margin:12px 0 0}.detail-nav #detailPrev{justify-self:start}.detail-nav #detailNext{justify-self:end}.detail-nav #detailPosition{text-align:center;font-size:.9rem}.detail-nav button:disabled{visibility:hidden}
