:root{--c1:#1a3a6b;--c2:#2b6cb0;--ok:#1e8e3e;--bad:#d93025;--bg:#f5f7fa;--card:#fff;--line:#e3e8ef}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:"Microsoft YaHei","PingFang SC",sans-serif;background:var(--bg);color:#1a1a1a;line-height:1.6;padding-bottom:80px;min-height:100vh}
header{background:var(--c1);color:#fff;padding:18px 16px;position:sticky;top:0;z-index:20;box-shadow:0 2px 6px rgba(0,0,0,.2)}
header h1{font-size:19px;margin-bottom:4px}
header .sub{font-size:12px;opacity:.85}
.tabs{display:flex;flex-wrap:wrap;gap:6px;padding:12px 16px;position:sticky;top:70px;background:var(--bg);z-index:15;border-bottom:1px solid var(--line)}
.tabs button{border:1px solid #c9d4e0;background:#fff;color:#333;padding:7px 13px;border-radius:18px;cursor:pointer;font-size:13px;transition:.15s}
.tabs button.on{background:var(--c2);border-color:var(--c2);color:#fff}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:12px 0;font-size:13px}
.toolbar button{background:var(--c2);color:#fff;border:none;padding:7px 13px;border-radius:7px;cursor:pointer;font-size:13px}
.toolbar button.ghost{background:#fff;color:var(--c2);border:1px solid var(--c2)}
.wrap{max-width:780px;margin:0 auto;padding:0 14px}
.q{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:14px;margin:10px 0}
.q .t{font-weight:600;margin-bottom:8px}
.q .t .num{color:var(--c2);font-weight:700}
.q .tag{display:inline-block;font-size:11px;color:#fff;background:#9aa6b2;border-radius:3px;padding:0 6px;margin-left:6px;vertical-align:1px}
.opts{display:flex;flex-direction:column;gap:6px}
.opt{text-align:left;border:1px solid #d6dee8;background:#fbfcfe;padding:8px 12px;border-radius:7px;cursor:pointer;font-size:14px;transition:.12s}
.opt:hover{border-color:var(--c2)}
.opt.correct{border-color:var(--ok);background:#e6f6ea;color:var(--ok);font-weight:600}
.opt.wrong{border-color:var(--bad);background:#fdecea;color:var(--bad)}
.opt.locked{pointer-events:none}
.judge{display:flex;gap:10px;margin-top:8px}
.judge .opt{min-width:80px;text-align:center}
.btn{background:var(--c2);color:#fff;border:none;padding:7px 14px;border-radius:6px;cursor:pointer;font-size:13px;margin-top:8px}
.btn.ghost{background:#eef3f9;color:var(--c2);border:1px solid var(--c2)}
.ans{display:none;margin-top:10px;padding:10px 12px;background:#f0f7ff;border-left:4px solid var(--c2);border-radius:5px;font-size:14px}
.ans.show{display:block}
.score{position:fixed;right:16px;bottom:16px;background:var(--c1);color:#fff;padding:10px 18px;border-radius:22px;font-size:14px;box-shadow:0 3px 10px rgba(0,0,0,.25)}
.empty{background:var(--card);border:1px dashed #c9d4e0;border-radius:10px;padding:30px;text-align:center;color:#888}
@media(max-width:480px){header h1{font-size:16px}.tabs button{font-size:12px;padding:6px 10px}}

/* 登录/注册 */
.hidden{display:none!important}
.user{margin-left:auto;font-size:13px;opacity:.95}
.user a{color:#ffd479;text-decoration:none;margin-left:8px}
.auth{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a3a6b,#2b6cb0);padding:16px}
.auth-card{background:#fff;border-radius:14px;padding:28px 24px;width:100%;max-width:380px;box-shadow:0 10px 30px rgba(0,0,0,.3)}
.auth-card h2{font-size:18px;color:#1a3a6b;margin-bottom:6px;text-align:center}
.auth-sub{font-size:12px;color:#888;text-align:center;margin-bottom:16px}
.auth-tabs{display:flex;gap:0;border:1px solid #d6dee8;border-radius:8px;overflow:hidden;margin-bottom:14px}
.auth-tabs button{flex:1;padding:9px;border:none;background:#f2f5f9;color:#555;font-size:14px;cursor:pointer}
.auth-tabs button.on{background:var(--c2);color:#fff}
.auth-card input{width:100%;padding:10px 12px;border:1px solid #d6dee8;border-radius:8px;font-size:14px;margin-bottom:10px;box-sizing:border-box}
.auth-btn{width:100%;padding:11px;background:var(--c2);color:#fff;border:none;border-radius:8px;font-size:15px;cursor:pointer;margin-top:4px}
.auth-btn:hover{background:var(--c1)}
.auth-msg{font-size:13px;color:var(--bad);text-align:center;margin-top:10px;min-height:18px}