:root,[data-theme=light]{--bg:#F6F6F2;--surface:#FFFFFF;--peer:#EFEFE8;--ink:#15161A;--mid:#74767F;--line:#E1E1DA;--pop:#FF5A36;--pop-soft:rgba(255,90,54,.13);--good:#0FA97D;--good-soft:rgba(15,169,125,.15);--warn:#D6930C;--warn-soft:rgba(214,147,12,.17);--shadow:0 1px 0 rgba(0,0,0,.05),0 2px 8px rgba(0,0,0,.04)}[data-theme=dark]{--bg:#14151B;--surface:#272A36;--peer:#333747;--ink:#F3F4F8;--mid:#9CA0AE;--line:#3C4050;--pop:#FF7554;--pop-soft:rgba(255,117,84,.2);--good:#3BD9AC;--good-soft:rgba(59,217,172,.18);--warn:#F5C455;--warn-soft:rgba(245,196,85,.2);--shadow:0 1px 0 rgba(0,0,0,.3),0 2px 10px rgba(0,0,0,.25)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{-webkit-user-select:none;user-select:none}.cell,.sign,.pad button,.tools button,.levels button{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}html,body{margin:0}body{background:var(--bg);color:var(--ink);font-family:Outfit,system-ui,sans-serif;min-height:100dvh;display:flex;justify-content:center;padding:20px 14px calc(24px + env(safe-area-inset-bottom));transition:background .2s,color .2s}.wrap{width:100%;max-width:430px;display:flex;flex-direction:column}.hide{display:none!important}button{font-family:inherit;color:inherit;cursor:pointer}.brand{display:flex;align-items:center;gap:10px;margin-bottom:18px}.mark{width:38px;height:38px;border-radius:11px;background:var(--pop);padding:8px;display:grid;grid-template-columns:1fr 1fr;gap:2.5px;box-shadow:var(--shadow)}.mark b{background:#fff;border-radius:1.5px;display:block}.mark b:nth-child(3){grid-column:span 2}.brand h1{font-size:25px;font-weight:800;letter-spacing:-.03em;margin:0}.tagline{font-size:14px;line-height:1.5;color:var(--mid);margin:0 0 22px}.menu{display:flex;flex-direction:column;gap:10px}.card{display:flex;align-items:center;gap:13px;text-align:left;width:100%;padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);transition:transform .12s,border-color .12s}.card:active{transform:scale(.985)}.card:hover{border-color:var(--mid)}.card:focus-visible{outline:2px solid var(--pop);outline-offset:2px}.chip{width:42px;height:42px;flex:none;border-radius:12px;display:grid;place-items:center;font-size:15px;font-weight:800;letter-spacing:-.02em}.chip.a{background:var(--pop-soft);color:var(--pop)}.chip.b{background:var(--good-soft);color:var(--good)}.chip.c{background:var(--warn-soft);color:var(--warn)}.card h2{font-size:16.5px;font-weight:700;margin:0 0 2px;letter-spacing:-.01em}.card p{margin:0;font-size:12.5px;line-height:1.4;color:var(--mid)}.card .go{margin-left:auto;color:var(--mid);font-size:17px}.row{display:flex;gap:9px;margin-top:16px}.ghost{flex:1;padding:12px;border-radius:12px;border:1px solid var(--line);background:transparent;font-size:13px;color:var(--mid);transition:.14s}.ghost:hover{border-color:var(--mid);color:var(--ink)}.seg{display:flex;gap:5px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:4px}.seg button{flex:1;padding:8px 4px;border:none;background:transparent;border-radius:9px;font-size:12px;font-weight:600;color:var(--mid)}.seg button[aria-pressed=true]{background:var(--peer);color:var(--ink)}.topbar{display:flex;align-items:center;gap:10px;margin-bottom:14px}.icon{width:36px;height:36px;flex:none;border-radius:11px;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;font-size:15px;font-weight:600}.icon:hover{border-color:var(--mid)}.titleblock{flex:1;min-width:0}.titleblock h2{margin:0;font-size:19px;font-weight:700;letter-spacing:-.02em;line-height:1.1}.titleblock span{font-size:11.5px;color:var(--mid);font-weight:500}.meta{display:flex;justify-content:space-between;align-items:baseline;font-size:11.5px;color:var(--mid);margin-bottom:10px}.meta b{font-size:19px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.stage{position:relative;display:flex;justify-content:center;align-items:center;flex:1;min-height:0;padding:6px 0 2px}.grid{display:grid;position:relative}.cell{background:var(--surface);border:1px solid var(--line);display:grid;place-items:center;position:relative;font-weight:700;border-radius:7px;letter-spacing:-.02em;transition:background .14s,color .14s,box-shadow .14s,transform .1s}.cell.tap:active{transform:scale(.93)}.grid.solidgrid{border:3px solid var(--ink);border-radius:12px;overflow:hidden}.grid.solidgrid .cell{border:0;border-radius:0}.cell.thick-t{border-top-width:3px;border-top-color:var(--ink)}.cell.thick-b{border-bottom-width:3px;border-bottom-color:var(--ink)}.cell.thick-l{border-left-width:3px;border-left-color:var(--ink)}.cell.thick-r{border-right-width:3px;border-right-color:var(--ink)}.cell.given{background:var(--peer);color:var(--ink)}.cell.mine{color:var(--good)}.cell.hinted{color:var(--warn);background:var(--warn-soft)}.cell.clash{background:var(--pop-soft);color:var(--pop);border-color:var(--pop)}.cell.sel{box-shadow:inset 0 0 0 3px var(--pop);z-index:4}.cell.peer{background:var(--peer)}.cell.pop{animation:pop .26s cubic-bezier(.2,1.6,.35,1)}@keyframes pop{0%{transform:scale(.55)}60%{transform:scale(1.14)}to{transform:scale(1)}}.cell.done{animation:done .5s ease both}@keyframes done{0%{transform:scale(1)}35%{transform:scale(1.16);background:var(--good-soft);color:var(--good)}to{transform:scale(1)}}.notes{display:flex;flex-wrap:wrap;align-content:center;justify-content:center;gap:0 5px;width:100%;padding:2px;font-weight:600;color:var(--mid);line-height:1.15}.sign{display:grid;place-items:center;font-weight:700;color:var(--mid);line-height:1;font-size:15px}.sign span{display:block}.sign.vert span{transform:rotate(90deg)}.sign.bad span{color:var(--pop)}.pad{display:grid;gap:7px;margin-top:14px}.pad .nums{display:flex;gap:6px}.pad .nums button{flex:1;height:52px;border-radius:13px;border:1px solid var(--line);background:var(--surface);font-size:20px;font-weight:700;box-shadow:var(--shadow);transition:transform .09s,.14s}.pad .nums button:active{transform:scale(.92);background:var(--peer)}.pad .nums button:disabled{opacity:.3;box-shadow:none}.tools{display:flex;gap:6px}.tools button{flex:1;height:44px;border-radius:12px;border:1px solid var(--line);background:var(--surface);font-size:12.5px;font-weight:600;color:var(--mid);transition:.14s}.tools button:active{transform:scale(.96)}.tools button.on{background:var(--good);border-color:var(--good);color:#fff}.tools button.hintbtn{color:var(--warn);border-color:var(--warn-soft)}.tools button:disabled{opacity:.35}.hintline{text-align:center;font-size:11px;color:var(--mid);margin:8px 0 0;min-height:15px}.footer{display:flex;gap:8px;margin-top:12px;align-items:center}.footer .newbtn{flex:1;height:46px;border-radius:13px;border:none;background:var(--ink);color:var(--bg);font-size:14px;font-weight:700;box-shadow:var(--shadow)}.footer .newbtn:active{transform:scale(.97)}.levels{display:flex;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:3px}.levels button{padding:9px;border:none;background:transparent;border-radius:10px;font-size:11px;font-weight:600;color:var(--mid)}.levels button[aria-pressed=true]{background:var(--peer);color:var(--ink)}.won{margin-top:12px;padding:13px 15px;border-radius:14px;background:var(--good-soft);border:1px solid var(--good);display:flex;align-items:center;gap:11px;animation:pop .3s cubic-bezier(.2,1.6,.35,1)}.won .big{font-size:20px;font-weight:800;color:var(--good);letter-spacing:-.02em}.won .sub{font-size:11.5px;color:var(--mid);line-height:1.35}.won button{margin-left:auto;padding:9px 12px;border-radius:10px;border:1px solid var(--good);background:transparent;color:var(--good);font-size:12px;font-weight:700;white-space:nowrap}.scrim{position:fixed;inset:0;background:#00000073;z-index:50;display:flex;align-items:flex-end;justify-content:center;padding:0}#confirm{align-items:center;padding:20px}.sheet{background:var(--bg);width:100%;max-width:430px;max-height:86dvh;overflow:auto;border-radius:20px 20px 0 0;padding:20px 18px calc(24px + env(safe-area-inset-bottom));animation:rise .24s cubic-bezier(.2,.9,.3,1)}@keyframes rise{0%{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}.sheet h3{margin:16px 0 6px;font-size:14px;font-weight:700}.sheet h3:first-of-type{margin-top:4px}.sheet ul{margin:0;padding-left:17px;font-size:13px;line-height:1.6;color:var(--mid)}.sheet .cap{font-size:12px;color:var(--mid);margin:8px 0 0;line-height:1.5}.sheet .close{width:100%;margin-top:20px;height:46px;border-radius:13px;border:none;background:var(--ink);color:var(--bg);font-size:14px;font-weight:700}.grab{width:38px;height:4px;border-radius:2px;background:var(--line);margin:0 auto 14px}.exgrid{display:grid;gap:3px;margin:9px 0 0;width:fit-content}.excell{width:34px;height:34px;background:var(--surface);border:1px solid var(--line);border-radius:7px;display:grid;place-items:center;font-size:14px;font-weight:700}.excell.hl{background:var(--pop-soft);color:var(--pop);border-color:var(--pop)}.exsign{width:16px;height:34px;display:grid;place-items:center;font-size:13px;font-weight:700;color:var(--mid)}.statcards{display:flex;gap:9px;margin:4px 0 18px}.statcard{flex:1;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:13px 12px;box-shadow:var(--shadow)}.statcard b{display:block;font-size:23px;font-weight:800;letter-spacing:-.03em;line-height:1.1}.statcard span{font-size:10.5px;color:var(--mid);font-weight:500}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:9px 5px;font-size:12.5px;border-bottom:1px solid var(--line)}th{font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--mid);font-weight:700}td.n{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}td.dim{color:var(--mid);font-weight:500}.gname{font-size:15px;font-weight:700;margin:20px 0 0}.note{font-size:12px;color:var(--mid);margin:16px 0 0;line-height:1.6}.loading{text-align:center;color:var(--mid);font-size:12.5px;padding:44px 0}
