:root{--bg: #f4f5f9;--card: #ffffff;--ink: #1c2333;--muted: #7a8499;--line: #e6e9f0;--main: #4f46e5;--main-weak: #eef0ff;--ok: #16a34a;--ok-bg: #ecfdf3;--bad: #dc2626;--bad-bg: #fef2f2}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 -apple-system,PingFang SC,Microsoft YaHei,sans-serif}#root{max-width:680px;margin:0 auto;padding:12px 14px 90px}button{font:inherit;cursor:pointer}h3{margin:14px 0 8px;font-size:15px}.muted{color:var(--muted);font-size:13px}.err{color:var(--bad);font-size:14px}.bar{display:flex;align-items:center;justify-content:space-between;padding:10px 2px;gap:10px}.link{background:none;border:none;color:var(--main);padding:4px}.brand{font-size:34px;font-weight:800;letter-spacing:1px;color:var(--main)}.brand.small{font-size:18px;font-weight:700;color:var(--main)}.center{min-height:80vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center}.practice{margin:26px 0 8px;width:190px;height:190px;border-radius:50%;border:none;background:var(--main);color:#fff;font-size:30px;font-weight:700;letter-spacing:6px;box-shadow:0 12px 30px #4f46e559}.practice:active{transform:scale(.96)}.home-meta{display:flex;gap:18px;color:var(--muted);font-size:13px}.spinner{width:34px;height:34px;border-radius:50%;border:4px solid var(--main-weak);border-top-color:var(--main);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.card{background:var(--card);border-radius:14px;padding:14px 16px;margin:10px 0;box-shadow:0 1px 3px #1c23330f}.q{position:relative;border:2px solid transparent}.q.ok{border-color:#bbe8c9}.q.bad{border-color:#f3c1c1}.q.done{border-color:#c9cdf7}.qhead{display:flex;align-items:center;gap:8px;margin-bottom:6px}.idx{width:22px;height:22px;border-radius:50%;background:var(--main-weak);color:var(--main);font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.tagchip{font-size:11px;color:var(--muted);background:var(--bg);border-radius:20px;padding:2px 9px}.verdict{margin-left:auto;font-weight:800}.ok-t{color:var(--ok)}.bad-t{color:var(--bad)}.stem{margin:2px 0 10px}.opts{display:flex;flex-direction:column;gap:7px}.opt{display:flex;gap:9px;align-items:baseline;text-align:left;border:1.5px solid var(--line);background:#fff;color:var(--ink);border-radius:10px;padding:9px 12px}.opt.on{border-color:var(--main);background:var(--main-weak)}.opt.dim{cursor:default;opacity:.92}.opt.right{border-color:var(--ok);background:var(--ok-bg)}.opt.wrong{border-color:var(--bad);background:var(--bad-bg)}.letter{font-weight:700;color:var(--muted);font-size:13px;min-width:16px}.explain{margin-top:9px;font-size:13px;color:#5b4a12;background:#fdf6e3;border-radius:8px;padding:7px 10px}.score{text-align:center;padding:20px}.score-num{font-size:46px;font-weight:800;color:var(--main)}.score-num small{font-size:22px;color:var(--muted)}.foot{position:fixed;left:0;right:0;bottom:0;padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--bg) 40%);display:flex;justify-content:center}.foot>*{width:100%;max-width:652px}.primary{border:none;border-radius:12px;background:var(--main);color:#fff;padding:11px 18px;font-weight:700}.primary:disabled{opacity:.5}.big{font-size:17px;padding:14px 18px}.ghost{border:1.5px solid var(--line);background:#fff;color:var(--ink);border-radius:9px;padding:7px 12px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}.gap{flex:1}select,input,textarea{font:inherit;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:9px;padding:8px 10px}textarea.prompt{width:100%;font-size:13px;line-height:1.55}.token{max-width:230px;font-size:13px}table.vers{width:100%;border-collapse:collapse;font-size:14px}.vers th{text-align:left;color:var(--muted);font-weight:500;font-size:12px;padding:4px 6px}.vers td{border-top:1px solid var(--line);padding:7px 6px}.vers tr.sel td{background:var(--main-weak)}.vers tbody tr{cursor:pointer}.st{font-size:12px;border-radius:20px;padding:2px 9px}.st.active{background:var(--ok-bg);color:var(--ok)}.st.draft{background:#fff7ed;color:#c2610a}.st.retired{background:var(--bg);color:var(--muted)}.bars{display:flex;gap:6px;align-items:flex-end;height:90px}.barcol{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1}.barwrap{display:flex;flex-direction:column-reverse;width:70%;height:70px;justify-content:flex-start}.barfill{background:var(--ok);border-radius:3px 3px 0 0;min-height:2px}.barmiss{background:var(--bad);border-radius:0 0 3px 3px;opacity:.75}.barlabel{font-size:10px;color:var(--muted);transform:rotate(-40deg);white-space:nowrap}.tagrow{display:flex;align-items:center;gap:9px;padding:3px 0}.tagrow .tagchip{min-width:64px;text-align:center}.tagbar{flex:1;height:8px;background:var(--ok-bg);border-radius:4px;overflow:hidden}.tagbad{height:100%;background:var(--bad);opacity:.75}.writebox{width:100%;margin-top:6px;min-height:46px;font-size:15px}.writebox:disabled{background:var(--bg);color:var(--muted)}.explain.okmsg{background:var(--ok-bg);color:var(--ok);margin-top:6px}.explain.badmsg{background:var(--bad-bg);color:var(--bad);margin-top:6px}
