:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#131211;--card:#1b1a18;--surface-2:#22201d;--ink:#eee8df;--muted:#9d968c;--line-soft:#f4f0e81a;--brand:#f36f4f;--brand-2:#f68a6f;--brand-ink:#f58a6e;--brand-soft:#f36f4f24;--accent-2:#65b58e;--gold:#c7a75b;--radius:8px;--shadow:0 24px 80px #00000073;--header-bg:#131211db;--btn:#22201d;--btn-hover:#2b2925;--line:#f4f0e821;--line-strong:#8a8378;--peer:#282521;--same:#c7a75b42;--sel:#f36f4f5c;--given:#f4f0ea;--user:#7cc6a0;--danger:#ff5f6d;--danger-soft:#ff5f6d33;--overlay:#131211b8;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-family:Space Grotesk,PingFang SC,Noto Sans SC,Microsoft YaHei,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f2ec;--card:#fff;--surface-2:#f1ece4;--ink:#27242a;--muted:#6f6960;--line-soft:#27242a1f;--brand-2:#e85f3e;--brand-ink:#d4502f;--brand-soft:#f36f4f1f;--shadow:0 24px 60px #27242a29;--header-bg:#f6f2ece0;--btn:#f1ece4;--btn-hover:#e9e2d7;--line:#27242a29;--line-strong:#27242a;--peer:#f3eee6;--same:#c7a75b52;--sel:#f36f4f4d;--given:#27242a;--user:#2f7d54;--danger:#d32f3f;--danger-soft:#d32f3f21;--overlay:#f6f2ecbf}*{box-sizing:border-box}body{min-height:100vh;margin:0}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}button:disabled{cursor:default;opacity:.45}.muted{color:var(--muted)}.small{font-size:12px}.danger{color:var(--danger)}.center{text-align:center}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--header-bg);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--line-soft);z-index:5;align-items:center;gap:16px;min-height:62px;padding:0 32px;display:flex;position:sticky;top:0}.brand{color:var(--ink);letter-spacing:1px;align-items:center;gap:8px;font-size:18px;font-weight:700;text-decoration:none;display:flex}.logo{color:var(--brand);border:1px solid #f36f4f8c;border-radius:7px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.tabs{gap:4px;margin-left:12px;display:flex}.tabs button{border-radius:var(--radius);color:var(--muted);border:1px solid #0000;padding:7px 12px;font-weight:500}.tabs button:hover{color:var(--ink);background:var(--btn)}.tabs button.active{background:var(--brand-soft);color:var(--brand-ink);border-color:#f36f4f59}.top-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.home-link{color:var(--muted);border-radius:var(--radius);border:1px solid var(--line-soft);white-space:nowrap;margin-right:4px;padding:7px 10px;font-size:13px;text-decoration:none}.home-link:hover{color:var(--brand-ink);border-color:#f36f4f73}.icon-btn{border-radius:var(--radius);width:36px;height:36px;color:var(--muted);border:1px solid #0000;justify-content:center;align-items:center;font-size:18px;display:inline-flex}.icon-btn:hover{background:var(--btn);color:var(--ink);border-color:var(--line-soft)}.icon-btn.sm{width:28px;height:28px}.main{flex:1;width:100%;max-width:900px;margin:0 auto;padding:16px 16px 24px}.sub-bar{margin-bottom:10px}.diff-row{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.diff{border-radius:var(--radius);color:var(--muted);padding:6px 12px;font-weight:600}.diff:hover{color:var(--ink)}.diff.active{color:var(--brand-ink);background:var(--brand-soft)}.date-btn{border-radius:var(--radius);background:var(--brand-soft);color:var(--brand-ink);border:1px solid #f36f4f59;align-items:center;gap:8px;padding:8px 14px;font-weight:600;display:inline-flex}.badge{border-radius:var(--radius);color:var(--gold);background:#c7a75b29;border:1px solid #c7a75b61;padding:4px 10px;font-size:13px;font-weight:600;display:inline-block}.game-area{align-items:flex-start;gap:32px;display:flex}.left{flex:0 520px;min-width:0}.right{flex-direction:column;flex:260px;gap:16px;max-width:320px;padding-top:34px;display:flex}.stats-bar{justify-content:space-between;align-items:center;padding:0 2px 8px;font-size:15px;display:flex}.timer{font-variant-numeric:tabular-nums;align-items:center;gap:4px;display:flex}.board-wrap{aspect-ratio:1;width:100%;position:relative}.board{border:2px solid var(--line-strong);border-radius:var(--radius);background:var(--card);-webkit-user-select:none;user-select:none;grid-template-rows:repeat(9,1fr);grid-template-columns:repeat(9,1fr);width:100%;height:100%;display:grid;overflow:hidden}.board.loading{color:var(--muted);justify-content:center;align-items:center;display:flex}.cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--card);justify-content:center;align-items:center;padding:0;font-size:clamp(18px,5.6vw,32px);transition:background 80ms;display:flex;position:relative}.cell:nth-child(9n){border-right:0}.cell:nth-child(n+73){border-bottom:0}.cell.br{border-right:2px solid var(--line-strong)}.cell.bb{border-bottom:2px solid var(--line-strong)}.cell.peer{background:var(--peer)}.cell.same{background:var(--same)}.cell.selected{background:var(--sel)}.cell.given{color:var(--given)}.cell.filled{color:var(--user)}.cell.wrong{color:var(--danger)}.cell.wrong:not(.selected){background:var(--danger-soft)}.cell .val{line-height:1}.cell.filled .val{animation:.18s ease-out pop}@keyframes pop{0%{opacity:.3;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.notes{color:var(--muted);grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);font-size:clamp(8px,1.9vw,12px);display:grid;position:absolute;inset:2px}.notes span{justify-content:center;align-items:center;display:flex}.notes span.hl{color:var(--brand-ink);font-weight:700}.board.is-paused .cell{background:var(--card)!important}.pause-overlay{background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);color:var(--ink);border-radius:var(--radius);flex-direction:column;justify-content:center;align-items:center;gap:12px;font-weight:600;display:flex;position:absolute;inset:0}.play-big{background:var(--brand);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;padding-left:6px;font-size:28px;display:flex}.controls{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.controls button{color:var(--muted);flex-direction:column;align-items:center;gap:4px;padding:4px 0;font-size:13px;display:flex}.controls .ctl{border-radius:var(--radius);background:var(--btn);border:1px solid var(--line-soft);width:54px;height:54px;color:var(--ink);justify-content:center;align-items:center;transition:background .15s;display:flex;position:relative}.controls button:hover:not(:disabled) .ctl{background:var(--btn-hover);color:var(--brand-ink)}.controls button.on .ctl{background:var(--brand);border-color:var(--brand);color:#fff}.pill{background:var(--muted);min-width:22px;height:20px;color:var(--bg);border:2px solid var(--bg);border-radius:6px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-style:normal;font-weight:600;display:flex;position:absolute;top:-4px;right:-6px}.controls button.on .pill{background:var(--gold);color:#131211}.numpad{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.numpad button{aspect-ratio:1.15;border-radius:var(--radius);background:var(--btn);border:1px solid var(--line-soft);color:var(--ink);justify-content:center;align-items:center;font-size:32px;font-weight:500;transition:background .12s,transform 50ms;display:flex;position:relative}.numpad button:hover:not(:disabled){background:var(--brand-soft);color:var(--brand-ink);border-color:#f36f4f59}.numpad button:active:not(:disabled){transform:scale(.96)}.numpad button small{color:var(--muted);font-size:11px;position:absolute;top:4px;right:8px}.numpad button.done{visibility:hidden}.primary{background:var(--brand);color:#fff;border-radius:var(--radius);padding:12px 16px;font-weight:600}.primary:hover{background:var(--brand-2)}.primary.big{padding:14px;font-size:17px}.ghost{border-radius:var(--radius);color:var(--brand-ink);padding:10px 14px}.ghost:hover{background:var(--brand-soft)}.tip{line-height:1.6}.footer{text-align:center;border-top:1px solid var(--line-soft);margin-top:8px;padding:22px 16px;line-height:1.8}.footer a{color:var(--ink);text-decoration:none}.footer a:hover{color:var(--brand-ink)}.toast{background:var(--surface-2);color:var(--ink);border:1px solid var(--line-soft);box-shadow:var(--shadow);border-radius:var(--radius);z-index:30;padding:10px 18px;font-size:14px;position:fixed;bottom:32px;left:50%;transform:translate(-50%)}.backdrop{z-index:20;background:#0a090899;justify-content:center;align-items:center;padding:16px;animation:.15s fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.dialog{background:var(--card);border:1px solid var(--line-soft);width:100%;max-width:380px;box-shadow:var(--shadow);border-radius:12px;padding:24px;animation:.2s ease-out rise;position:relative}@keyframes rise{0%{opacity:0;transform:translateY(16px)}}.dialog h2{text-align:center;margin:0 0 12px;font-size:20px}.dialog .close{color:var(--muted);width:32px;height:32px;font-size:24px;position:absolute;top:10px;right:12px}.celebrate .confetti{text-align:center;font-size:48px;animation:.4s pop}.menu-list{flex-direction:column;gap:8px;margin-top:12px;display:flex}.menu-list>button:not(.primary):not(.ghost){border-radius:var(--radius);background:var(--btn);border:1px solid var(--line-soft);color:var(--ink);padding:12px;font-weight:600}.menu-list>button:not(.primary):not(.ghost):hover{background:var(--brand-soft);color:var(--brand-ink);border-color:#f36f4f59}.win-stats{text-align:center;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0;display:grid}.win-stats div{background:var(--surface-2);border-radius:var(--radius);flex-direction:column;gap:4px;padding:10px;display:flex}.win-stats b{font-size:18px}.stats-table{border-collapse:collapse;width:100%;font-size:14px}.stats-table th,.stats-table td{text-align:center;border-bottom:1px solid var(--line-soft);padding:8px 4px}.stats-table th{color:var(--muted);font-weight:500}.switch-row{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;padding:10px 0;display:flex}.switch-row input{width:20px;height:20px;accent-color:var(--brand)}.cal-head{text-align:center;justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.cal-head .ghost{padding:4px 12px;font-size:22px}.cal-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal-w{text-align:center;color:var(--muted);padding:4px 0;font-size:12px}.cal-day{aspect-ratio:1;border-radius:var(--radius);font-size:14px}.cal-day:hover:not(:disabled){background:var(--brand-soft)}.cal-day.today{box-shadow:inset 0 0 0 2px var(--brand)}.cal-day.done{color:var(--gold);font-size:18px}.cal-day.sel{background:var(--brand);color:#fff}@media (width<=760px){.topbar{gap:8px;min-height:56px;padding:8px 12px}.home-link{display:none}.brand span:last-child{font-size:17px}.tabs{margin-left:0}.tabs button{padding:6px 10px;font-size:14px}.main{padding:10px 8px 16px}.game-area{flex-direction:column;align-items:stretch;gap:14px}.left{flex:none;width:100%;max-width:520px;margin:0 auto}.right{gap:12px;width:100%;max-width:520px;margin:0 auto;padding-top:0}.numpad{grid-template-columns:repeat(9,1fr);gap:4px}.numpad button{aspect-ratio:auto;background:0 0;border-color:#0000;height:56px;font-size:26px}.numpad button small{display:none}.controls .ctl{width:48px;height:48px}.hide-sm{display:none}}@media (width<=400px){.brand span:last-child{display:none}}
