:root{--bg:#f4f1ea;--panel:#fffdf8;--ink:#23201b;--muted:#7a7266;--line:#e2dccf;--accent:#d9622b;--accent-ink:#fff;--good:#2f8f5b;--bad:#c0392b;--cell:#ebe5d8;--cell-open:#fbf8f1;--shadow:0 1px 2px rgba(35,32,27,0.06),0 4px 16px rgba(35,32,27,0.06);color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#16151a;--panel:#201f26;--ink:#ece8df;--muted:#9a958b;--line:#33313b;--accent:#f0814a;--accent-ink:#1a1410;--good:#5cc48a;--bad:#ef6b5b;--cell:#2c2a33;--cell-open:#191820;--shadow:0 1px 2px rgba(0,0,0,0.3),0 4px 16px rgba(0,0,0,0.25);color-scheme:dark}}:root[data-theme="dark"]{--bg:#16151a;--panel:#201f26;--ink:#ece8df;--muted:#9a958b;--line:#33313b;--accent:#f0814a;--accent-ink:#1a1410;--good:#5cc48a;--bad:#ef6b5b;--cell:#2c2a33;--cell-open:#191820;--shadow:0 1px 2px rgba(0,0,0,0.3),0 4px 16px rgba(0,0,0,0.25);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC","PingFang TC",sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit}button{font:inherit;cursor:pointer}.wrap{max-width:1080px;margin:0 auto;padding:0 16px}.topbar{display:flex;align-items:center;gap:12px;padding:20px 0}.topbar .brand{font-weight:700;letter-spacing:.02em;text-decoration:none}.topbar .crumb{color:var(--muted)}.topbar .spacer{flex:1}.topbar .theme-btn{background:0;border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:4px 12px;font-size:13px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:8px;padding:8px 14px;font-size:14px}.btn:hover{border-color:var(--muted)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.on{background:var(--ink);border-color:var(--ink);color:var(--bg)}.btn[disabled]{opacity:.5;cursor:default}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:24px;align-items:start;padding-bottom:48px}@media(max-width:760px){.game-layout{grid-template-columns:minmax(0,1fr)}}.game-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;margin-bottom:16px}.game-head h1{margin:0;font-size:28px}.game-head .stats{display:flex;gap:8px;margin-left:auto}.game-head .stat{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:4px 12px;text-align:center;min-width:72px}.game-head .stat .k{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.game-head .stat .v{font-weight:700;font-variant-numeric:tabular-nums}.game-stage{position:relative}.hint{color:var(--muted);font-size:13px;margin-top:12px}.overlay{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:rgba(0,0,0,0.45);color:#fff;border-radius:12px;text-align:center;padding:16px}.overlay.show{display:flex}.overlay .title{font-size:28px;font-weight:700}.overlay .sub{opacity:.85}.scoreboard{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:16px;font-size:14px}.scoreboard .sb-sec+.sb-sec{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.scoreboard label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}.scoreboard input{width:100%;font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink)}.scoreboard input:focus{outline:2px solid var(--accent);outline-offset:-1px}.scoreboard .sb-row{display:flex;justify-content:space-between;padding:2px 0}.scoreboard .sb-row .v{font-weight:700;font-variant-numeric:tabular-nums}.scoreboard .sb-status{min-height:1.5em;margin-top:6px;font-size:13px;color:var(--muted)}.scoreboard .sb-status.good{color:var(--good)}.scoreboard .sb-status.bad{color:var(--bad)}.scoreboard .sb-submit{width:100%;margin-top:8px}.scoreboard .sb-title{font-weight:700;margin-bottom:6px;display:flex;justify-content:space-between;align-items:center}.scoreboard .sb-refresh{background:0;border:0;color:var(--muted);font-size:12px;padding:0}.scoreboard ol{margin:0;padding:0;list-style:none;counter-reset:rank}.scoreboard li{display:flex;gap:8px;padding:4px 0;counter-increment:rank}.scoreboard li:before{content:counter(rank);width:1.5em;color:var(--muted);font-variant-numeric:tabular-nums}.scoreboard li.me{color:var(--accent);font-weight:700}.scoreboard li .n{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scoreboard li .s{font-variant-numeric:tabular-nums}.scoreboard .sb-empty{color:var(--muted)}