:root{--bg:#f6f7f9;--surface:#fff;--text:#1d2330;--muted:#5d6677;--line:#dde1e8;--accent:#2456d6;--accent-ink:#fff;--ok:#137a4a;--ok-bg:#e3f5ec;--bad:#b3261e;--bad-bg:#fde8e6;--warn-bg:#fff4d6;--code-bg:#f0f2f6;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--bg:#14171d;--surface:#1c2029;--text:#e7eaf0;--muted:#98a1b3;--line:#2c3340;--accent:#6c93ff;--accent-ink:#0c1220;--ok:#5fd39a;--ok-bg:#15301f;--bad:#ff8a80;--bad-bg:#3a1f1d;--warn-bg:#3a3118;--code-bg:#12151b}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,PingFang TC,Noto Sans TC,Microsoft JhengHei,sans-serif;font-size:16px;line-height:1.7}main{max-width:860px;margin:0 auto;padding:16px 16px 64px}h1{margin:8px 0 12px;font-size:1.5rem}h2{margin:28px 0 10px;font-size:1.15rem}h3{margin:0 0 6px;font-size:1.05rem}a{color:var(--accent)}p{margin:6px 0}.muted{color:var(--muted);font-size:.92rem}.big{font-size:1.6rem}.top{background:var(--surface);border-bottom:1px solid var(--line);z-index:5;position:sticky;top:0}.top .brand{color:var(--text);max-width:860px;margin:0 auto;padding:10px 16px 0;font-weight:700;text-decoration:none;display:block}.top nav{scrollbar-width:none;gap:4px;max-width:860px;margin:0 auto;padding:4px 12px 8px;display:flex;overflow-x:auto}.top nav a{white-space:nowrap;color:var(--muted);border-radius:999px;padding:6px 12px;font-size:.95rem;text-decoration:none}.top nav a[aria-current]{background:var(--accent);color:var(--accent-ink)}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin:12px 0;padding:16px}.grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;display:grid}.grid .card{margin:0}.countdown .big{margin-top:2px}.row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.row.between{justify-content:space-between}.btn{border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);font:inherit;cursor:pointer;border-radius:8px;min-height:44px;padding:9px 18px;line-height:1.4;text-decoration:none;display:inline-block}.btn.small{min-height:36px;padding:4px 12px;font-size:.92rem}.btn.ghost{color:var(--accent);background:0 0}.btn.ghost.on{background:var(--warn-bg);color:var(--text);border-color:#d6a400}.btn.danger{background:var(--bad);border-color:var(--bad);color:#fff}.btn:disabled{opacity:.45;cursor:not-allowed}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.notice{background:var(--code-bg);border-left:4px solid var(--accent);border-radius:6px;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;display:flex}.notice.warn{background:var(--warn-bg);border-color:#d6a400}.rules{color:var(--muted);padding-left:1.2em}.field{margin-bottom:12px;font-weight:600;display:block}.field select{width:100%;font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:8px;min-height:44px;margin-top:4px;padding:9px;display:block}.check{align-items:center;gap:8px;margin-bottom:8px;display:inline-flex}.list{margin:0;padding:0;list-style:none}.list li a{border-bottom:1px solid var(--line);color:var(--text);flex-wrap:wrap;justify-content:space-between;gap:4px 14px;padding:12px 4px;text-decoration:none;display:flex}.score{font-weight:600}.badge{border-radius:999px;margin-left:4px;padding:1px 8px;font-size:.8rem;font-weight:600}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.bad{background:var(--bad-bg);color:var(--bad)}.bar{background:var(--bg);z-index:4;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:8px 0;display:flex;position:sticky;top:74px}.bar .btn{margin-left:auto}.clock{font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:700}.clock.low{color:var(--bad)}.qhead{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.choices{gap:8px;margin:14px 0;display:grid}.choice{text-align:left;width:100%;font:inherit;color:inherit;background:var(--bg);border:2px solid var(--line);cursor:pointer;border-radius:10px;align-items:flex-start;gap:12px;min-height:48px;padding:10px 12px;display:flex}.choice.sel{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--surface))}.letter{border:1px solid var(--line);border-radius:50%;flex:none;place-items:center;width:1.7em;height:1.7em;font-size:.9rem;font-weight:700;display:inline-grid}.choice.sel .letter{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.qgrid{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px;display:grid}.qgrid button{border:1px solid var(--line);background:var(--surface);min-height:44px;color:var(--text);font:inherit;cursor:pointer;border-radius:8px}.qgrid button.done,.legend i.done{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.qgrid button.flag,.legend i.flag{box-shadow:inset 0 -5px #d6a400}.qgrid button.cur{outline:3px solid var(--text);outline-offset:1px}.legend i{border:1px solid var(--line);vertical-align:-2px;border-radius:3px;width:14px;height:14px;margin-left:10px;display:inline-block}.rich p{white-space:pre-wrap;margin:8px 0}.rich pre{background:var(--code-bg);border:1px solid var(--line);border-radius:8px;padding:12px;font-size:.9rem;line-height:1.5;overflow-x:auto}.rich code,.rich pre code{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.rich p code{background:var(--code-bg);border-radius:4px;padding:1px 5px;font-size:.9em}.review{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin:12px 0;padding:14px 16px}.options{gap:6px;margin:10px 0;padding:0;list-style:none;display:grid}.options li{border:1px solid var(--line);border-radius:8px;align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.options li em{white-space:nowrap;margin-left:auto;font-size:.85rem;font-style:normal}.options li.right{background:var(--ok-bg);border-color:var(--ok)}.options li.wrong{background:var(--bad-bg);border-color:var(--bad)}.note{border-top:1px dashed var(--line);margin-top:10px;padding-top:8px}.tabs{flex-wrap:wrap;gap:6px;margin:10px 0;display:flex}.tabs button{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;border-radius:999px;min-height:40px;padding:8px 16px}.tabs button.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}details{border-top:1px solid var(--line);padding:8px 0}summary{cursor:pointer}.snip{font-weight:600}.legal ul,.legal ol{padding-left:1.4em}.legal li{margin:6px 0}.legal table{margin-top:8px}.site-foot{gap:16px;max-width:860px;margin:0 auto;padding:0 16px 32px;font-size:.92rem;display:flex}.site-foot a{color:var(--muted)}.tablewrap{overflow-x:auto}table{border-collapse:collapse;background:var(--surface);width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;white-space:nowrap;padding:10px 8px}td:first-child{white-space:normal}.meter{background:var(--code-bg);border-radius:4px;width:110px;height:8px;overflow:hidden}.meter i{background:var(--accent);height:100%;display:block}.scorecard .big b{font-size:2.4rem}.badge.src{background:var(--surface);color:var(--muted);border:1px solid var(--line);font-weight:500}.badge.src.official{color:var(--accent);border-color:var(--accent)}.tasks li{align-items:center}.tasks li.done>span{color:var(--muted)}.plandays{padding-left:1.2em}.plandays>li{margin:8px 0}.plandays ul{color:var(--muted);margin:2px 0 0;padding-left:1.2em}
