:root{--bg:#0f172a;--panel:#1e293b;--panel-2:#273449;--text:#e2e8f0;--muted:#94a3b8;--accent:#3b82f6;--accent-h:#2563eb;--green:#22c55e;--green-bg:#14361f;--red:#ef4444;--red-bg:#3a1717;--border:#334155;--radius:10px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased}.appbar{display:flex;align-items:center;justify-content:space-between;max-width:820px;margin:0 auto;padding:14px 18px 0}.appbar-brand{font-weight:700;font-size:.95rem;letter-spacing:.01em;color:var(--text)}.appbar-actions{display:flex;align-items:center;gap:12px}.plan-pill{font-size:.72rem;font-weight:700;padding:3px 10px;border-radius:999px;letter-spacing:.03em}.plan-pill.premium{background:#14361f;color:#6ee7a8;border:1px solid #1d5232}.upgrade-card{background:linear-gradient(135deg,#1e293b,#24344f);border:1px solid var(--accent);border-radius:var(--radius);padding:20px 22px;margin-bottom:18px}.upgrade-card h2{margin-bottom:6px}.upgrade-card p{color:var(--muted);font-size:.9rem;margin:0 0 14px}.upgrade-card ul{color:var(--muted);font-size:.88rem;margin:0 0 16px;padding-left:18px}.upgrade-card li{margin-bottom:4px}.wrap{max-width:820px;margin:0 auto;padding:24px 18px 64px}h1{font-size:1.55rem;margin:0 0 4px}h2{font-size:1.15rem;margin:0 0 12px}.sub{color:var(--muted);margin:0 0 24px;font-size:.92rem}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:22px;margin-bottom:18px}button{font:inherit;cursor:pointer;border:none;border-radius:8px;padding:11px 18px;background:var(--accent);color:white;font-weight:600;transition:background .12s ease}button:hover:not(:disabled){background:var(--accent-h)}button:disabled{opacity:.45;cursor:not-allowed}button.secondary{background:var(--panel-2);color:var(--text);border:1px solid var(--border)}button.secondary:hover:not(:disabled){background:#31425c}.hidden{display:none!important}.ranges{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));grid-gap:10px;gap:10px;margin:8px 0 18px}.range-btn{background:var(--panel-2);border:1px solid var(--border);color:var(--text);font-weight:500;padding:12px 8px;text-align:center;border-radius:8px}.range-btn small{display:block;color:var(--muted);font-size:.72rem;margin-top:2px;font-weight:400}.range-btn.sel,.range-btn:hover{border-color:var(--accent)}.range-btn.sel{background:var(--accent);color:#fff}.range-btn.sel small{color:#dbeafe}.custom-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}.custom-row label{color:var(--muted);font-size:.9rem}input[type=number]{width:86px;padding:9px 10px;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit}.opt-row{display:flex;align-items:center;gap:10px;margin:14px 0}.opt-row label,.topbar{color:var(--muted);font-size:.9rem}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.timer{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;color:var(--text)}.progress-track{height:6px;background:var(--panel-2);border-radius:4px;overflow:hidden;margin-bottom:18px}.progress-fill{height:100%;background:var(--accent);width:0;transition:width .25s ease}.badges{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.badge{font-size:.72rem;font-weight:600;padding:3px 9px;border-radius:999px;letter-spacing:.02em}.badge.verified{background:#14361f;color:#6ee7a8;border:1px solid #1d5232}.badge.keyonly{background:#3a2c12;color:#fbbf6e;border:1px solid #5a431b}.badge.multi{background:#1e2c4a;color:#93b4f7;border:1px solid #2c4575}.badge.recon{background:#3a1730;color:#f0a6d8;border:1px solid #5a2049}.badge.match{background:#14323a;color:#6ee7d8;border:1px solid #1d4f52}.badge.order{background:#2c2447;color:#c4a6f7;border:1px solid #463a6b}.stem{font-size:1.06rem;margin:4px 0 18px}.match-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px 18px;gap:12px 18px}.match-col-head{font-size:.76rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}.match-item,.match-term{display:flex;align-items:center;gap:10px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:11px 13px;cursor:pointer;transition:border-color .1s,background .1s;min-height:44px}.match-item:hover,.match-term:hover{border-color:var(--accent)}.match-item.active,.match-term.active{border-color:var(--accent);background:#24344f}.match-item.paired,.match-term.paired{cursor:pointer}.match-badge{font-weight:700;font-size:.8rem;min-width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.match-item .match-badge.empty,.match-term .match-badge.empty{background:transparent;border:1px dashed var(--border);color:var(--muted)}.match-item.locked,.match-term.locked{cursor:default}.match-item.correct,.match-term.correct{border-color:var(--green);background:var(--green-bg)}.match-item.incorrect,.match-term.incorrect{border-color:var(--red);background:var(--red-bg)}.match-fix{font-size:.8rem;color:var(--green);margin-left:auto;padding-left:8px}.order-list{display:flex;flex-direction:column;gap:8px}.order-item{display:flex;align-items:center;gap:12px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:11px 13px;min-height:44px}.order-pos{font-weight:700;color:var(--accent);min-width:20px;text-align:center}.order-label{flex:1 1}.order-ctrls{display:flex;gap:4px}.order-ctrls button{background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:6px;width:30px;height:30px;padding:0;cursor:pointer;font-size:1rem}.order-ctrls button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.order-ctrls button:disabled{opacity:.35;cursor:default}.order-item.locked .order-ctrls{display:none}.order-item.correct{border-color:var(--green);background:var(--green-bg)}.order-item.incorrect{border-color:var(--red);background:var(--red-bg)}.order-fix{font-size:.8rem;color:var(--green);margin-left:auto}.options{display:flex;flex-direction:column;gap:10px}.option{display:flex;gap:12px;align-items:flex-start;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:13px 15px;cursor:pointer;transition:border-color .1s,background .1s}.option.chosen,.option:hover{border-color:var(--accent)}.option.chosen{background:#24344f}.option .letter{font-weight:700;color:var(--muted);min-width:18px}.option.chosen .letter{color:var(--accent)}.option input{margin-top:4px;accent-color:var(--accent)}.option.correct{border-color:var(--green);background:var(--green-bg)}.option.correct .letter{color:var(--green)}.option.incorrect{border-color:var(--red);background:var(--red-bg)}.option.incorrect .letter{color:var(--red)}.option.locked{cursor:default}.mark{margin-left:auto;font-weight:700}.mark.ok{color:var(--green)}.mark.no{color:var(--red)}.feedback{margin-top:18px;padding:15px 17px;border-radius:8px;border:1px solid var(--border);background:var(--panel-2)}.feedback.right{border-color:var(--green)}.feedback.wrong{border-color:var(--red)}.feedback .verdict{font-weight:700;margin-bottom:6px}.feedback.right .verdict{color:var(--green)}.feedback.wrong .verdict{color:var(--red)}.feedback .exp{font-size:.94rem;color:var(--text)}.feedback .cite{font-size:.82rem;color:var(--muted);margin-top:8px}.actions{display:flex;gap:10px;margin-top:20px;justify-content:flex-end}.hint{color:var(--muted);font-size:.82rem;margin-top:8px}.score-big{font-size:2.6rem;font-weight:800;margin:4px 0}.score-pct{color:var(--accent)}.stat-row{display:flex;gap:24px;flex-wrap:wrap;margin:14px 0 6px;color:var(--muted)}.stat-row b{color:var(--text)}.missed{margin-top:16px}.missed h3{font-size:.95rem;margin:0 0 8px}.chip{display:inline-block;background:var(--red-bg);color:#fca5a5;border:1px solid #5a2222;border-radius:6px;padding:3px 9px;margin:0 6px 6px 0;font-size:.82rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chip.allok{background:var(--green-bg);color:#86efac;border-color:#1d5232}a.review-link{color:var(--accent);text-decoration:none}.err{color:#fca5a5}.footer-note{color:var(--muted);font-size:.78rem;margin-top:30px;text-align:center}