:root{--bg: #f5f7fa;--card: #ffffff;--border: #e4e8ef;--text: #1f2937;--muted: #6b7280;--blue: #2563eb;--green: #059669;--red: #dc2626;--amber: #d97706}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Segoe UI,Microsoft YaHei,PingFang SC,sans-serif;background:var(--bg);color:var(--text)}.app{max-width:1080px;margin:0 auto;padding:16px}.topbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:16px}.brand{display:flex;gap:10px;align-items:center}.logo{font-size:34px}.title{font-size:20px;font-weight:700}.subtitle{font-size:12px;color:var(--muted)}.nav{display:flex;gap:6px;flex-wrap:wrap}.navbtn{border:1px solid var(--border);background:var(--card);padding:8px 14px;border-radius:999px;cursor:pointer;font-size:14px;position:relative}.navbtn.active{background:var(--blue);color:#fff;border-color:var(--blue)}.badge{position:absolute;top:-6px;right:-6px;background:var(--red);color:#fff;font-size:11px;border-radius:999px;padding:1px 6px}.content{min-height:60vh}.footer{margin-top:24px;text-align:center;color:var(--muted);font-size:12px}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:14px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.stat{font-size:30px;font-weight:700}.muted{color:var(--muted);font-size:13px}.tag{display:inline-block;font-size:11px;padding:2px 8px;border-radius:999px;margin-right:6px;color:#fff}button.primary{background:var(--blue);color:#fff;border:none;padding:9px 18px;border-radius:8px;cursor:pointer;font-size:14px}button.ghost{background:transparent;border:1px solid var(--border);padding:8px 14px;border-radius:8px;cursor:pointer;font-size:13px}button.danger{background:var(--red);color:#fff;border:none;padding:8px 14px;border-radius:8px;cursor:pointer}input[type=text],input[type=number],textarea,select{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px;margin-top:6px}.qstem{font-size:15px;line-height:1.7;margin:8px 0;white-space:pre-wrap}.opt{display:block;border:1px solid var(--border);border-radius:8px;padding:9px 12px;margin:6px 0;cursor:pointer}.opt:hover{border-color:var(--blue)}.opt.sel{background:#eff6ff;border-color:var(--blue)}.opt.correct{background:#ecfdf5;border-color:var(--green)}.opt.wrong{background:#fef2f2;border-color:var(--red)}.passage{background:#fafaf7;border:1px dashed var(--border);border-radius:8px;padding:14px;font-size:14px;line-height:1.8;white-space:pre-wrap;max-height:380px;overflow:auto;margin-bottom:12px}.result-ok{color:var(--green);font-weight:600}.result-no{color:var(--red);font-weight:600}.timer{font-variant-numeric:tabular-nums;font-size:20px;font-weight:700}.explain{background:#fffbeb;border-left:3px solid var(--amber);padding:8px 12px;margin-top:8px;font-size:13px;border-radius:0 8px 8px 0}.flashcard{height:220px;display:flex;align-items:center;justify-content:center;text-align:center;cursor:pointer;font-size:22px;padding:24px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}table.kv{width:100%;border-collapse:collapse;font-size:14px}table.kv td,table.kv th{border:1px solid var(--border);padding:7px 10px;text-align:left}table.kv tr:nth-child(2n){background:#fafbfc}.search{margin-bottom:10px}
