*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f5f5f4;color:#1d1d1f;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{max-width:480px;margin:0 auto;padding:1.25rem 1rem;text-align:center}header h1{font-size:1.75rem;font-weight:700;letter-spacing:-.3px;color:#1d1d1f;margin-bottom:.2rem}.subtitle{color:#86868b;font-size:.9rem;font-weight:400;margin-bottom:1rem}.toolbar{display:flex;align-items:center;justify-content:center;gap:.35rem;margin-bottom:.75rem;flex-wrap:wrap}.toolbar-sep{width:1px;height:16px;background:#d2d2d7;margin:0 .3rem}.btn-option{padding:.3rem .7rem;font-size:.78rem;font-weight:500;font-family:inherit;background:#fff;border:1px solid #d2d2d7;border-radius:100px;cursor:pointer;color:#1d1d1f;transition:all .2s ease}.btn-option:hover:not(:disabled){background:#f5f5f7;border-color:#86868b}.btn-option:active:not(:disabled){transform:scale(.96)}.btn-option:disabled{opacity:.4;cursor:default}.paste-area{margin-bottom:1rem;display:flex;gap:.5rem;align-items:stretch}.paste-area textarea{flex:1;padding:.6rem .75rem;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.78rem;border:1px solid #d2d2d7;border-radius:8px;resize:none;outline:none;background:#fff;color:#1d1d1f;transition:border-color .2s,box-shadow .2s}.paste-area textarea:focus{border-color:#0071e3;box-shadow:0 0 0 3px #0071e31f}.btn-sm{padding:.45rem 1rem;font-size:.82rem}.scan-status{color:#0071e3;font-size:.82rem;margin-bottom:.75rem;font-weight:500}.grid{border-collapse:collapse;margin:0 auto 1rem;border:2.5px solid #1d1d1f;border-radius:2px;box-shadow:0 2px 8px #00000014,0 0 0 1px #00000005}.cell{padding:0;border:1px solid #c7c7cc}.cell input{width:36px;height:36px;border:none;background:#fff;text-align:center;font-size:1.05rem;font-weight:500;color:#1d1d1f;outline:none;cursor:pointer;caret-color:transparent;transition:background .15s ease;font-variant-numeric:tabular-nums}.cell input:focus{background:#e8f0fe}.cell input[readonly]{cursor:default}.selected-cell input{background:#e8f0fe}.box-right{border-right:2.5px solid #1d1d1f}.box-bottom td{border-bottom:2.5px solid #1d1d1f}.given input{color:#1d1d1f;font-weight:700}.hinted-cell input{color:#0071e3;font-weight:600;background:#f0f5ff}.highlight-cell input{color:#0071e3;font-weight:700;background:#d0e2ff;animation:hint-pop .3s ease}@keyframes hint-pop{0%{transform:scale(1)}50%{transform:scale(1.08)}to{transform:scale(1)}}.numpad{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;width:192px;margin:0 auto 1rem}.numpad-btn{padding:.6rem 0;font-size:1.1rem;font-weight:500;font-family:inherit;background:#fff;border:1px solid #d2d2d7;border-radius:12px;cursor:pointer;color:#1d1d1f;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:all .15s ease;box-shadow:0 1px 3px #0000000d}.numpad-btn:hover{background:#f5f5f7;border-color:#86868b}.numpad-btn:active{background:#e8e8ed;transform:scale(.95);box-shadow:none}.numpad-erase{grid-column:1 / -1;font-size:.78rem;font-weight:500;color:#86868b;padding:.45rem 0;box-shadow:none}.numpad-erase:hover{color:#ff3b30;border-color:#ff3b30;background:#fff5f5}.error{color:#ff3b30;font-size:.82rem;margin-bottom:.5rem;font-weight:500}.hint-msg{color:#0071e3;font-size:.82rem;margin-bottom:.5rem;font-weight:500}.success{color:#34c759;font-size:.9rem;margin-bottom:.5rem;font-weight:600;animation:success-fade .4s ease}@keyframes success-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.actions{display:flex;gap:.6rem;justify-content:center;margin-bottom:1rem}.btn{padding:.5rem 1.75rem;font-size:.9rem;font-weight:600;font-family:inherit;border:none;border-radius:100px;cursor:pointer;transition:all .2s ease}.btn-primary{background:#0071e3;color:#fff;box-shadow:0 1px 3px #0071e333}.btn-primary:hover:not(:disabled){background:#0077ed;box-shadow:0 2px 8px #0071e34d}.btn-primary:active:not(:disabled){transform:scale(.97);box-shadow:0 1px 2px #0071e333}.btn-primary:disabled{opacity:.35;cursor:default}.btn-secondary{background:#e8e8ed;color:#1d1d1f}.btn-secondary:hover{background:#dddde1}.btn-secondary:active{transform:scale(.97)}.how-to{text-align:left;margin:2rem 0;border-top:1px solid #d2d2d7;padding-top:2rem}.how-to h2{font-size:1.05rem;font-weight:700;letter-spacing:-.1px;margin:1.5rem 0 .5rem;color:#1d1d1f}.how-to h2:first-child{margin-top:0}.how-to ol,.how-to ul{padding-left:1.25rem;margin:0}.how-to li{font-size:.85rem;line-height:1.65;color:#515154;margin-bottom:.25rem}.how-to p{font-size:.85rem;line-height:1.65;color:#515154}.how-to dl{margin:0}.how-to dt{font-size:.85rem;font-weight:600;color:#1d1d1f;margin-top:.75rem}.how-to dd{font-size:.85rem;line-height:1.65;color:#515154;margin:.1rem 0 0}footer{color:#aeaeb2;font-size:.75rem}@media (max-width: 420px){.cell input{width:33px;height:33px;font-size:.95rem}header h1{font-size:1.45rem}.numpad{width:172px}.numpad-btn{font-size:1rem;padding:.55rem 0}}
