:root{color-scheme:light;--bg: #F7F1E5;--surface: #EFE6D1;--tile: #E8DCC2;--tile-open: #FBF7EE;--line: #D9CBAC;--line-soft: #E5DAC2;--ink: #423729;--ink-soft: #8D7E66;--ink-faint: #B3A489;--peach: #E89B6E;--terra: #B65C36;--terra-soft: #F0CFBB;--sage: #6E8A63;--sage-soft: #DDE5D1;--rose: #C4807C;--press-ms: .45s}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #211B13;--surface: #2A2318;--tile: #33291B;--tile-open: #1A1610;--line: #453A27;--line-soft: #382F1F;--ink: #EFE5D0;--ink-soft: #A39276;--ink-faint: #6E5F49;--peach: #D98A58;--terra: #DE9265;--terra-soft: #573823;--sage: #97B085;--sage-soft: #333D28;--rose: #C08480}}:root[data-theme=dark]{color-scheme:dark;--bg: #211B13;--surface: #2A2318;--tile: #33291B;--tile-open: #1A1610;--line: #453A27;--line-soft: #382F1F;--ink: #EFE5D0;--ink-soft: #A39276;--ink-faint: #6E5F49;--peach: #D98A58;--terra: #DE9265;--terra-soft: #573823;--sage: #97B085;--sage-soft: #333D28;--rose: #C08480}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--ink);font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior:none}.serif{font-family:Georgia,Times New Roman,"Noto Serif",serif}#app{height:100%}.screen{height:100%;display:flex;flex-direction:column;max-width:480px;margin:0 auto;padding:calc(env(safe-area-inset-top,0px) + 12px) 16px calc(env(safe-area-inset-bottom,0px) + 16px);overflow-y:auto;overscroll-behavior:contain}.topbar{display:flex;align-items:center;gap:8px;min-height:40px}.topbar .spacer{flex:1}.topbar-label{color:var(--ink-soft);font-size:13px;letter-spacing:.02em}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:10px 20px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);font-size:15px;transition:transform 90ms ease,background-color .12s ease,border-color .12s ease}.btn:active{transform:translateY(1px)}.btn-primary{border-color:var(--terra);color:var(--terra);font-weight:600}.btn-primary:disabled{border-color:var(--line-soft);color:var(--ink-faint);font-weight:400}.btn-ghost{border:none;background:none;color:var(--ink-soft);min-height:44px;padding:8px 10px;font-size:15px}.toast{position:fixed;left:50%;top:calc(env(safe-area-inset-top,0px) + 64px);transform:translate(-50%);background:var(--ink);color:var(--bg);padding:9px 16px;border-radius:9px;font-size:14px;opacity:0;pointer-events:none;transition:opacity .18s ease;z-index:30;max-width:min(90vw,420px);text-align:center}.toast.show{opacity:.96}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#140f0859;opacity:0;transition:opacity .22s ease;z-index:20}.sheet-backdrop.show{opacity:1}.sheet{position:fixed;left:50%;bottom:0;transform:translate(-50%,105%);width:min(100%,480px);background:var(--bg);border:1px solid var(--line);border-bottom:none;border-radius:16px 16px 0 0;padding:22px 20px calc(env(safe-area-inset-bottom,0px) + 22px);transition:transform .26s cubic-bezier(.3,.9,.3,1);z-index:21}.sheet.show{transform:translate(-50%)}.muted{color:var(--ink-soft)}.small{font-size:13px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:1ms!important;animation-duration:1ms!important}}.round-screen{user-select:none;-webkit-user-select:none}.round-mid{display:flex;flex-direction:column;gap:10px;margin-top:clamp(16px,8vh,88px)}.round-hint{color:var(--ink-soft);font-size:13.5px;text-align:center;padding:0 8px;min-height:20px}.round-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 2px 8px}.probe-dots{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.probe-dots .dot{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--ink-faint);transition:background-color .15s ease,border-color .15s ease}.probe-dots .dot.used{background:var(--terra);border-color:var(--terra)}.probe-over{color:var(--rose);font-size:14px;font-weight:600;margin-left:2px}.board{display:grid;grid-template-columns:repeat(var(--bw, 6),1fr);gap:6px;width:100%;touch-action:none;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}.board.shake{animation:board-shake .32s ease}@keyframes board-shake{20%{transform:translate(-5px)}45%{transform:translate(4px)}70%{transform:translate(-3px)}90%{transform:translate(2px)}}.cell{position:relative;aspect-ratio:1;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:7px;background:var(--tile);overflow:hidden;display:flex;align-items:center;justify-content:center;font-family:Georgia,Times New Roman,"Noto Serif",serif;font-size:clamp(19px,6.5vw,28px);color:var(--ink);transition:background-color .16s ease,border-color .16s ease}.cell:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:120%;aspect-ratio:1;border-radius:50%;background:var(--peach);opacity:0;transform:scale(0);transition:transform .14s ease,opacity .14s ease;pointer-events:none}.cell.pressing:after{transform:scale(1);opacity:.85;transition:transform var(--press-ms) linear,opacity 90ms ease}.cell.open{background:var(--tile-open);border-color:var(--line-soft)}.cell.open .num{animation:num-pop .24s cubic-bezier(.3,1.4,.5,1)}@keyframes num-pop{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}.cell.zero{background:var(--sage-soft);border-color:var(--sage)}.cell.zero .num{color:var(--sage);font-weight:700}.cell.marked{border-color:var(--terra)}.cell.marked:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:46%;aspect-ratio:1;border:2.5px solid var(--terra);border-radius:50%;animation:mark-in .16s ease;pointer-events:none}@keyframes mark-in{0%{transform:scale(.5);opacity:0}}.cell.marked .num{opacity:.4}.cell.src{background:var(--sage);border-color:var(--sage)}.cell.src:before{border-color:var(--bg)}.cell.src .num{color:var(--bg)}.cell.extra{border:2px dashed var(--rose);background:var(--tile-open)}.home-head{padding:26px 2px 18px}.home-title{font-size:34px;letter-spacing:.045em;font-weight:400}.home-title .tick{color:var(--terra)}.home-tagline{color:var(--ink-soft);font-size:14px;margin-top:4px}.section-label{color:var(--ink-soft);font-size:12.5px;text-transform:uppercase;letter-spacing:.1em;margin:18px 2px 8px}.card-list{display:flex;flex-direction:column;gap:8px}.card{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:14px 16px;min-height:60px;transition:transform 90ms ease}.card:active:not(:disabled){transform:translateY(1px)}.card:disabled{opacity:.55}.card-no{font-family:Georgia,serif;font-size:24px;color:var(--terra);min-width:26px;text-align:center}.card:disabled .card-no{color:var(--ink-faint)}.card-body{flex:1;min-width:0}.card-name{font-size:16px}.card-meta{color:var(--ink-soft);font-size:13px;margin-top:2px}.card-arrow{color:var(--ink-faint);font-family:Georgia,serif;font-size:20px}.settings{margin-top:26px;display:flex;flex-direction:column;gap:10px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.setting-row>span{color:var(--ink-soft);font-size:14px}.seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--surface)}.seg button{padding:8px 14px;min-height:38px;font-size:13.5px;color:var(--ink-soft);border-left:1px solid var(--line-soft)}.seg button:first-child{border-left:none}.seg button.on{background:var(--tile-open);color:var(--terra);font-weight:600}.summary{text-align:center}.summary-title{font-size:24px;letter-spacing:.03em}.stars{display:flex;justify-content:center;gap:10px;margin:16px 0 6px}.stars i{width:16px;height:16px;border-radius:50%;border:2px solid var(--ink-faint)}.stars i.on{background:var(--terra);border-color:var(--terra);animation:star-in .3s cubic-bezier(.3,1.5,.5,1) backwards}.stars i.on:nth-child(2){animation-delay:.11s}.stars i.on:nth-child(3){animation-delay:.22s}@keyframes star-in{0%{transform:scale(.3);opacity:0}}.summary-meta{color:var(--ink-soft);font-size:14px}.clean-badge{display:inline-block;margin-top:10px;padding:4px 12px;border:1px solid var(--sage);border-radius:999px;color:var(--sage);font-size:13px}.summary-note{margin-top:12px;font-size:13.5px;color:var(--ink-soft)}.summary-actions{display:flex;gap:10px;justify-content:center;margin-top:22px}.summary-actions .btn{flex:1;max-width:170px}
