*{box-sizing:border-box}html,body{margin:0;min-width:280px;background:#eef0e7;color:#203d35;font:15px/1.4 system-ui,sans-serif}main{max-width:464px;margin:auto;padding:4px}.topbar{height:48px;display:flex;gap:3px;align-items:center}.identity{flex:1;min-width:0}h1{font:25px/1 Georgia,serif;margin:0}#level{font-size:10px;line-height:1.3;white-space:nowrap;margin:3px 0 0}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:disabled{opacity:.5;cursor:default}.topbar>button{min-width:44px;min-height:44px;padding:2px;font-size:11px;border:1px solid #96a993;border-radius:7px;background:#f9fbf6}.topbar>button[aria-pressed=true]{background:#eacb8d}#board{--n:4;display:grid;grid-template-columns:18px repeat(var(--n),minmax(0,1fr)) 18px;grid-template-rows:18px repeat(var(--n),minmax(0,1fr)) 18px;gap:2px;width:100%;aspect-ratio:1;margin:2px auto 0}.cell{padding:0;min-width:0;min-height:0;border:1px solid #9daa9b;border-radius:5px;background:#fafaf4;color:#203d35;font:bold clamp(18px,5vw,28px) Georgia,serif}.cell.given{background:#d2ddcf;box-shadow:inset 0 -3px #869a82}.cell.notes{font:11px/1.1 system-ui;word-spacing:1px;padding:1px}.cell.selected{outline:3px solid #bb742a;outline-offset:-2px;background:#fff5d5}.cell.conflict{box-shadow:inset 0 0 0 2px #973e27}.clue{display:flex;align-items:center;justify-content:center;font:bold 16px/1 Georgia,serif}.clue.absent{color:#849388}.clue.matched{color:#32674a;text-decoration:underline;text-underline-offset:2px}.clue.wrong{outline:2px dashed #973e27;outline-offset:-2px}#selection{height:20px;font-size:12px;line-height:20px;margin:3px 1px 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#digits{display:flex;gap:4px}#digits button{flex:1;min-width:0;min-height:48px;border:0;border-radius:7px;background:#234b3e;color:#fff;font:26px Georgia,serif}#status{font-size:11px;line-height:14px;min-height:28px;margin:4px 1px 0}.cell:focus-visible,button:focus-visible,select:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid #1e6777;outline-offset:1px}#save-alert{background:#fff3d3;border:1px solid #b9842f;border-radius:8px;padding:10px;margin-top:6px;font-size:12px}#save-alert button{min-height:44px;margin:2px}dialog{color:inherit;background:#eef0e7;border:1px solid #879f89;border-radius:12px;padding:14px;width:calc(100% - 20px);max-width:440px;max-height:calc(100% - 20px);overflow:auto}dialog::backdrop{background:#13291fc9}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}h2{font:24px Georgia,serif;margin:0 0 10px}.dialog-head h2{margin:0}dialog button,dialog input,dialog select{min-height:44px;border:1px solid #8c9f8d;border-radius:7px;background:#f9fbf6;color:inherit;padding:7px;font:inherit}dialog select{display:block;width:100%;margin:3px 0 8px}dialog label{font-size:12px}dialog details{padding:10px;background:#fff8;border-radius:8px;margin-top:12px}dialog summary{font-weight:650;cursor:pointer}dialog p{font-size:13px}.muted{font-size:11px!important;color:#52645b}.menu-tools{display:flex;gap:6px;flex-wrap:wrap}.menu-tools button{flex:1}#levels{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}#levels button{min-width:0;min-height:48px;padding:4px;font-size:13px}#levels button.current{outline:2px solid #b77a2b;background:#fff2ca}#levels button.done{background:#cfe3d0}.pager{display:flex;gap:4px;margin-top:10px}.pager button{flex:1;padding:4px;font-size:12px}#jump{display:flex;align-items:center;gap:7px;margin-top:8px}#page-input{width:70px}#page-range,#picker-note{font-size:12px}a{color:inherit}[hidden]{display:none!important}@media(min-width:600px){main{padding:12px}.topbar{height:54px}#board{max-width:420px}#selection,#status,#digits{max-width:420px;margin-left:auto;margin-right:auto}}

.site-links{display:flex;gap:8px;flex-wrap:wrap}.site-links a{display:inline-flex;align-items:center;min-height:44px;padding:4px 7px}.license-page{padding:18px;max-width:720px}.license-page h1{margin:24px 0}.license-page pre{white-space:pre-wrap;font:13px/1.65 system-ui,sans-serif}.license-page nav a{display:inline-block;min-height:44px;padding:8px}#load-error{padding:12px;background:#fff3d3}#load-error button,#load-error a{min-height:44px;padding:8px}


.selection-row{display:flex;align-items:center;gap:8px;min-height:44px;margin:3px 0}.selection-row #selection{flex:1;min-width:0;height:auto;margin:0;line-height:20px}.selection-row button{min-width:58px;min-height:44px;border:1px solid #96a993;border-radius:7px;background:#f9fbf6;font-size:13px}
#completion{margin:10px 0;padding:14px;border:2px solid #467659;border-radius:10px;background:#dcebd7}#completion h2{font-size:25px;margin:0 0 5px}#completion p{margin:0 0 10px;font-size:13px}#completion button{min-height:48px;width:100%;border:0;border-radius:7px;background:#234b3e;color:white;padding:8px 12px;font-weight:650}
#rule-cue{font-size:12px;line-height:16px;margin:4px 1px 6px;color:#334f43}#status{font-size:12px;line-height:16px;min-height:32px}#digits{position:sticky;bottom:0;padding:6px 0 calc(6px + env(safe-area-inset-bottom));background:#eef0e7;z-index:2}
@media(min-width:600px){.selection-row,#completion,#rule-cue{max-width:420px;margin-left:auto;margin-right:auto}}

dialog summary{min-height:44px;display:flex;align-items:center}

/* Hitori uses fixed printed numbers and optional circle annotations, not cages. */
#board{grid-template-columns:repeat(var(--n),minmax(0,1fr));grid-template-rows:repeat(var(--n),minmax(0,1fr));gap:3px;max-width:420px;border:2px solid #304248;background:#304248;padding:3px;border-radius:9px}
.cell{position:relative;min-height:40px;border:0;border-radius:3px;background:#fffdf7;color:#253b43;font:700 clamp(22px,6vw,32px)/1 system-ui,sans-serif;padding:0}
.cell.kept::after{content:'';position:absolute;inset:10%;border:2px solid #386e86;border-radius:50%;pointer-events:none}
.cell.shaded{background:#253b43;color:#d1d9d9;text-decoration:line-through;text-decoration-thickness:1px}
.cell.selected{outline:3px solid #d28128;outline-offset:-3px}
.cell.conflict{box-shadow:inset 0 0 0 3px #ff806d}
#digits button{font:600 16px/1.2 system-ui,sans-serif;background:#edf2f2;color:#253b43;border:2px solid #8d9da1}
#digits button[aria-pressed=true]{background:#253b43;color:white;border-color:#253b43}
