:root{--ink: #142033;--muted: #5d6b7c;--line: #e4e9f0;--paper: #eef2f6;--card: #ffffff;--accent: #0c6b63;--accent-ink: #084e49;--accent-soft: #e7f5f3;--gold: #9a6b2f;--ok: #0d7a45;--ok-soft: #e8f6ee;--bad: #b42318;--bad-soft: #fdeceb;--shadow: 0 10px 30px rgba(20, 32, 51, .08);color:var(--ink);background:#dfe6ee;font-family:PingFang TC,Microsoft JhengHei,Noto Sans TC,Segoe UI,sans-serif;line-height:1.5}*{box-sizing:border-box}body{margin:0;background:#dfe6ee}button,input,select{font:inherit;color:inherit}h1,h2,p{margin:0}a{color:var(--accent-ink)}.app,.gate{width:min(440px,100%);margin:0 auto;min-height:100vh;background:var(--paper);padding:20px 16px 108px}.gate{padding-top:28px}.brand{display:flex;align-items:center;gap:14px;margin-bottom:22px}.mark{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--ink);color:#fff;font-weight:700;font-size:22px}.eyebrow{color:var(--gold);font-size:12px;letter-spacing:.14em;font-weight:700}.brand h1,.page-title{font-size:28px;letter-spacing:-.03em}.disclaimer{color:var(--muted);font-size:13px;margin:0 0 18px}.segment{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px;background:#fff;border-radius:14px;margin-bottom:14px}.segment button{background:transparent;color:var(--muted)}.segment button.on{background:var(--ink);color:#fff}button{border:0;border-radius:12px;background:var(--accent);color:#fff;padding:12px 14px;min-height:48px;font-weight:700}button.secondary,button.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}button.ghost{min-height:36px;padding:6px 12px;font-size:13px;font-weight:600}button:disabled{opacity:.45}button.danger{background:#fff;color:var(--bad);border:1px solid #f3c7c3}label{display:grid;gap:6px;font-size:13px;color:var(--muted);font-weight:600}input,select{width:100%;min-height:48px;border-radius:12px;border:1px solid #d5dde7;padding:10px 12px;background:#fff}input:focus,select:focus{outline:2px solid rgba(12,107,99,.28);border-color:var(--accent)}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px;margin-bottom:12px;box-shadow:var(--shadow)}.stack{display:grid;gap:12px}.row{display:flex;gap:8px}.row>*{flex:1}.top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px}.muted{color:var(--muted);font-size:13px}.notice{background:var(--accent-soft);color:var(--accent-ink);border-radius:12px;padding:10px 12px;font-size:14px}.notice.bad{background:var(--bad-soft);color:var(--bad)}.captcha{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f7f4ee;border-radius:12px;padding:8px}.captcha img{height:58px;border-radius:8px}.subject{display:grid;gap:6px;width:100%;text-align:left;padding:18px;margin-bottom:12px;border-radius:18px;min-height:112px}.subject.taxi{background:#17324d}.subject.law{background:#0c6b63}.subject strong{font-size:20px;letter-spacing:-.02em}.subject span{color:#ffffffc7;font-size:13px;font-weight:500}.text-link{display:inline-block;margin-top:8px;font-weight:700;text-decoration:none}.bar{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;margin:-20px -16px 16px;padding:14px 16px;background:#eef2f6eb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.pill{background:var(--ink);color:#fff;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:700}.topic{display:flex;justify-content:space-between;align-items:center;text-decoration:none;color:inherit}.topic strong{font-size:16px}.count{background:var(--accent-soft);color:var(--accent-ink);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.chips{display:flex;gap:6px;margin-bottom:12px;overflow-x:auto}.chips button{min-height:36px;padding:6px 12px;background:#fff;color:var(--muted);border:1px solid var(--line);white-space:nowrap}.chips button.on{background:var(--ink);color:#fff;border-color:var(--ink)}.stem{font-size:18px;font-weight:700;letter-spacing:-.02em;margin:8px 0 12px}.option{text-align:left;background:#fff;color:var(--ink);border:1px solid var(--line);font-weight:600}.option.picked{border-color:var(--accent);background:var(--accent-soft)}.option.right{border-color:var(--ok);background:var(--ok-soft)}.option.wrong{border-color:var(--bad);background:var(--bad-soft)}.feedback{border-radius:12px;padding:10px 12px;font-size:14px}.feedback.ok{background:var(--ok-soft);color:var(--ok)}.feedback.bad{background:var(--bad-soft);color:var(--bad)}.nav{position:fixed;z-index:3;left:50%;bottom:0;transform:translate(-50%);width:min(440px,100%);display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.nav.guest{grid-template-columns:repeat(3,1fr)}.gate>button.secondary{width:100%;margin-top:12px}.nav a{text-align:center;text-decoration:none;color:var(--muted);padding:12px 4px 10px;font-size:13px;font-weight:700}.nav a.active{color:var(--accent-ink);box-shadow:inset 0 2px 0 var(--accent)}.timer{font-variant-numeric:tabular-nums;font-weight:700;font-size:20px;background:var(--ink);color:#fff;border-radius:999px;padding:6px 12px}.timer.low{background:var(--bad)}.grid{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;margin-bottom:12px}.num{min-height:36px;padding:0;background:#fff;color:var(--ink);border:1px solid var(--line)}.num.done{background:var(--accent-soft);border-color:transparent;color:var(--accent-ink)}.num.current{outline:2px solid var(--ink)}img.sign{width:min(100%,220px);display:block;margin:8px auto;background:#fff;border-radius:12px}.pass{color:var(--ok)}.fail{color:var(--bad)}.badge{display:inline-flex;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:700}.badge.pass{background:var(--ok-soft)}.badge.fail{background:var(--bad-soft)}.meter{height:6px;background:#e6ebf1;border-radius:99px;overflow:hidden;margin-top:8px}.meter span{display:block;height:100%;background:var(--accent)}.empty{color:var(--muted);text-align:center;padding:28px 8px}h2.page-title{font-size:22px;margin-bottom:6px}
