:root{--bg: #0b0f1a;--bg2: #141a2b;--card: #1b2336;--card2: #232c44;--text: #eef1f8;--muted: #9aa3bd;--primary: #6c5ce7;--primary2: #8b7bff;--good: #2ecc71;--bad: #e74c3c;--gold: #ffd166;--line: #2a334d}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overscroll-behavior:none}button{font-family:inherit;cursor:pointer;border:none}a{color:var(--primary2)}.app{max-width:520px;margin:0 auto;height:100dvh;display:flex;flex-direction:column;position:relative;background:var(--bg)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;gap:8px}.topbar .brand{font-weight:800;font-size:18px;letter-spacing:.3px}.topbar .brand span{color:var(--primary2)}.chips{display:flex;gap:8px;align-items:center}.chip{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:6px 10px;font-size:13px;font-weight:700;display:flex;gap:6px;align-items:center}.chip.gold{color:var(--gold)}.langtoggle button{background:var(--card);color:var(--muted);border:1px solid var(--line);border-radius:8px;padding:5px 8px;font-weight:700;font-size:12px}.langtoggle button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.content{flex:1;overflow-y:auto;padding:4px 16px 84px}.content.nopad{padding:0 0 64px}.bottomnav{position:absolute;bottom:0;left:0;right:0;display:flex;background:var(--bg2);border-top:1px solid var(--line)}.bottomnav a{flex:1;text-align:center;padding:10px 0 14px;color:var(--muted);text-decoration:none;font-size:11px;font-weight:700}.bottomnav a.active{color:var(--primary2)}.bottomnav .ico{font-size:20px;display:block}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;margin:12px 0}.row{display:flex;align-items:center;justify-content:space-between;gap:10px}.muted{color:var(--muted)}.h1{font-size:22px;font-weight:800;margin:12px 2px}.h2{font-size:15px;font-weight:800;margin:6px 2px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}.btn{background:var(--primary);color:#fff;border-radius:12px;padding:13px 16px;font-weight:800;font-size:15px;width:100%}.btn:active{transform:translateY(1px)}.btn.ghost{background:var(--card2);color:var(--text)}.btn.sm{width:auto;padding:8px 12px;font-size:13px;border-radius:10px}.btn:disabled{opacity:.5}.cat{display:flex;align-items:center;gap:14px}.cat .icon{font-size:30px;width:48px;height:48px;display:grid;place-items:center;background:var(--card2);border-radius:12px}.cat .meta{flex:1}.cat .name{font-weight:800;font-size:16px}.elo-pill{background:var(--primary);color:#fff;border-radius:999px;padding:4px 10px;font-weight:800;font-size:13px}.auth{padding:24px 18px;display:flex;flex-direction:column;gap:12px;justify-content:center;flex:1}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;color:var(--muted);font-weight:700}.field input,select{background:var(--card);border:1px solid var(--line);color:var(--text);border-radius:10px;padding:12px;font-size:15px}.error{color:var(--bad);font-size:13px;font-weight:700}.feed{height:100%;position:relative;overflow:hidden}.qcard{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;padding:18px;transition:transform .28s ease,opacity .28s ease}.qcard .topic{color:var(--muted);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.5px}.qcard .prompt{font-size:24px;font-weight:800;line-height:1.25;margin:14px 0 18px;flex:0 0 auto}.choices{display:flex;flex-direction:column;gap:12px;margin-top:auto}.choice{background:var(--card);border:2px solid var(--line);color:var(--text);border-radius:14px;padding:16px;font-size:16px;font-weight:700;text-align:left;transition:all .15s}.choice:active{transform:scale(.99)}.choice.correct{border-color:var(--good);background:#2ecc7126}.choice.wrong{border-color:var(--bad);background:#e74c3c26}.choice.hidden{opacity:.25;pointer-events:none}.choice .letter{display:inline-block;width:22px;color:var(--muted);font-weight:800}.feedbar{display:flex;gap:10px;margin-top:14px;align-items:center}.powerbtn{background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-weight:800;font-size:13px;color:var(--text);display:flex;gap:6px;align-items:center}.powerbtn:disabled{opacity:.4}.skip{margin-left:auto;background:transparent;color:var(--muted);font-weight:700}.result{position:absolute;top:0;right:0;bottom:0;left:0;background:#0b0f1aeb;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:24px;text-align:center;z-index:5}.result .big{font-size:30px;font-weight:900}.result .delta{font-size:40px;font-weight:900;margin:6px 0}.result .delta.up{color:var(--good)}.result .delta.down{color:var(--bad)}.result .expl{color:var(--muted);margin:10px 0 20px;max-width:360px}.result .earn{color:var(--gold);font-weight:800}.swipehint{color:var(--muted);font-size:13px;margin-top:16px;animation:bob 1.4s infinite}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.lb-row{display:flex;align-items:center;gap:12px;padding:12px 6px;border-bottom:1px solid var(--line)}.lb-row .pos{width:30px;font-weight:900;color:var(--muted);text-align:center}.lb-row.me{background:#6c5ce726;border-radius:10px}.lb-row .nm{flex:1;font-weight:700}.lb-row .rt{font-weight:900;color:var(--primary2)}.pos.gold{color:var(--gold)}.admin textarea,.admin input,.admin select{width:100%;background:var(--card);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:10px;font-size:14px}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px}.stat .v{font-size:24px;font-weight:900}.stat .k{color:var(--muted);font-size:12px;font-weight:700}.center{display:grid;place-items:center;height:100%;color:var(--muted);padding:24px;text-align:center}.spinner{width:28px;height:28px;border:3px solid var(--line);border-top-color:var(--primary2);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
