
:root{--bg:#f5f7fb;--panel:#fff;--ink:#172033;--muted:#6b7485;--line:#e3e8f0;--accent:#2867d8;--accent2:#1e4fa8;--good:#2f7a4b;--warn:#9b6814;--bad:#b43b3b;--shadow:0 14px 42px rgba(34,55,98,.10);--radius:20px}
*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#eef4ff 0,#f7f8fb 250px);font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;color:var(--ink);min-height:100vh}button,input,select{font:inherit}.app{width:min(1020px,100%);margin:auto;padding:18px 14px 42px}.hero{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin:8px 2px 14px}.hero h1{margin:0 0 6px;font-size:clamp(26px,5vw,38px)}.hero p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}.ver{white-space:nowrap;border:1px solid var(--line);background:#fff;padding:8px 11px;border-radius:999px;font-size:12px;color:var(--muted)}.subject-tabs{display:flex;gap:8px;overflow:auto;padding:2px 0 10px}.tab{border:1px solid var(--line);background:#fff;border-radius:12px;padding:9px 13px;font-weight:700;color:#536178;white-space:nowrap}.tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.tab.coming{opacity:.55}.notice{background:rgba(255,255,255,.86);border:1px solid #dce5f6;border-radius:15px;padding:12px 14px;color:#536078;font-size:13px;line-height:1.7;margin-bottom:12px}.toolbar{background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:18px;padding:10px;box-shadow:0 8px 26px rgba(34,55,98,.06);position:sticky;top:4px;z-index:10;backdrop-filter:blur(10px)}.filters{display:grid;grid-template-columns:1.1fr 1fr 1fr 1.2fr;gap:8px}.filters select,.filters input{width:100%;border:1px solid var(--line);background:#fff;border-radius:11px;padding:10px;color:var(--ink);outline:none}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.btn{border:1px solid var(--line);background:#fff;color:#42516a;border-radius:11px;padding:9px 11px;font-weight:700}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn:hover{border-color:#afbfda}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:11px 12px}.stat b{display:block;font-size:20px}.stat span{font-size:12px;color:var(--muted)}.progress{height:8px;background:#e2e7ef;border-radius:999px;overflow:hidden;margin:9px 0 13px}.progress i{display:block;height:100%;background:linear-gradient(90deg,#6592e8,#2867d8);width:0}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;min-height:410px;display:flex;flex-direction:column;position:relative;overflow:hidden}.card:before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:var(--accent)}.card.warn:before{background:#d29a32}.card.bad:before{background:#c65353}.meta{display:flex;gap:8px;justify-content:space-between;align-items:center;flex-wrap:wrap}.badges{display:flex;gap:6px;flex-wrap:wrap}.badge{font-size:12px;background:#f0f3f8;color:#5a6678;border-radius:999px;padding:5px 8px}.badge.good{background:#edf8f1;color:var(--good)}.badge.warn{background:#fff6df;color:var(--warn)}.badge.bad{background:#fff0f0;color:var(--bad)}.qwrap{flex:1;display:flex;flex-direction:column;justify-content:center;padding:18px 0}.question{font-size:clamp(21px,4vw,30px);line-height:1.55;font-weight:780;margin-bottom:16px}.options{display:grid;gap:9px}.opt{border:1px solid var(--line);background:#fff;border-radius:13px;padding:12px 13px;text-align:left;display:flex;gap:10px;align-items:flex-start;color:#243149}.opt.selected{border-color:#7ea6ef;background:#f0f5ff}.opt.correct{border-color:#8bc49e;background:#eef9f1}.opt.wrong{border-color:#e3a0a0;background:#fff1f1}.letter{font-weight:900;min-width:22px;color:#61708a}.answerbox{display:none;background:#f7f9fd;border:1px solid #e0e6f0;border-radius:14px;padding:14px 15px;line-height:1.75;font-size:14px}.answerbox.show{display:block}.answerbox .title{font-weight:800;margin-bottom:5px}.verify{margin-top:9px;padding-top:9px;border-top:1px dashed #d7dce5}.term-answer{font-size:17px;line-height:1.9}.foot{display:flex;gap:8px;justify-content:space-between;align-items:center;border-top:1px solid #edf0f4;padding-top:13px;margin-top:14px}.foot .left,.foot .right{display:flex;gap:8px;flex-wrap:wrap}.grade{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.grade button{border:1px solid var(--line);background:#fff;border-radius:11px;padding:11px;font-weight:750}.empty{display:none;background:#fff;border:1px dashed #cbd5df;border-radius:18px;padding:34px 22px;text-align:center;color:var(--muted)}.list{display:none;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-top:12px}.list.show{display:block}.row{padding:12px 14px;border-bottom:1px solid #edf0f4;display:grid;grid-template-columns:120px 1fr 90px;gap:10px;align-items:start}.row:last-child{border-bottom:0}.row button{border:0;background:transparent;text-align:left;font-weight:750;color:#24314a;padding:0}.small{font-size:12px;color:var(--muted)}.footer{margin:18px 0 0;text-align:center;color:#8791a1;font-size:12px;line-height:1.7}.modal{position:fixed;inset:0;background:rgba(16,24,40,.45);display:none;align-items:center;justify-content:center;padding:14px;z-index:30}.modal.show{display:flex}.modalbox{background:#fff;border-radius:18px;max-width:650px;width:100%;max-height:84vh;overflow:auto;padding:20px;box-shadow:0 24px 70px rgba(0,0,0,.22)}.modalbox h2{margin-top:0}.modalbox p,.modalbox li{line-height:1.75;color:#526078}.close{float:right;border:0;border-radius:9px;background:#f0f2f6;padding:7px 10px}.comingbox{background:#fff;border:1px dashed #c8d3e6;border-radius:17px;padding:28px 18px;text-align:center;color:#667287;margin-top:14px}
@media(max-width:720px){.app{padding:12px 10px 30px}.filters{grid-template-columns:1fr 1fr}.filters input{grid-column:1/-1}.stats{grid-template-columns:1fr 1fr}.card{min-height:390px;padding:16px}.row{grid-template-columns:1fr}.toolbar{padding:8px}.btn{font-size:13px;padding:8px 9px}.question{font-size:22px}.hero p{font-size:12px}}
