.ds{--ds-paper:#f2ead7;--ds-ink:#343d34;--ds-card:#fff9ec;--ds-rule:#9f9c87;--ds-accent:#315c52;--ds-select:#d2e6d4;background:var(--ds-paper);min-height:100dvh;color:var(--ds-ink);padding:12px 12px 40px;font-family:IBM Plex Mono,monospace}.ds[data-theme=night]{--ds-paper:#172724;--ds-ink:#f5ecd5;--ds-card:#263b34;--ds-rule:#8b9a86;--ds-accent:#c7e6bb;--ds-select:#46634d}.ds *{box-sizing:border-box}.ds-shell{max-width:590px;margin:auto}.ds header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.ds h1{margin:0;font:italic 34px Georgia,serif}.ds header span{font-size:12px}.ds a{color:inherit;align-items:center;min-height:44px;font-size:13px;display:inline-flex}.ds button{font:inherit;cursor:pointer;color:inherit}.ds button:focus-visible,.ds a:focus-visible,.ds input:focus-visible,.ds summary:focus-visible{outline-offset:2px;outline:3px solid #d49329}.ds-board{border:3px solid var(--ds-ink);background:var(--ds-card);aspect-ratio:1;border-radius:8px;grid-template-rows:repeat(9,1fr);width:100%;display:grid;overflow:hidden}.ds-board>[role=row]{grid-template-columns:repeat(9,1fr);min-height:0;display:grid}.ds-board button{border:0;border-right:1px solid var(--ds-rule);border-bottom:1px solid var(--ds-rule);min-width:0;min-height:0;color:var(--ds-accent);background:0 0;padding:0;font-size:clamp(20px,5vw,34px);font-weight:500;line-height:1;position:relative}.ds-board button:nth-child(3n):not(:last-child){border-right:2px solid var(--ds-ink)}.ds-board>[role=row]:nth-child(3n):not(:last-child)>button{border-bottom:2px solid var(--ds-ink)}.ds-board button:last-child{border-right:0}.ds-board>[role=row]:last-child>button{border-bottom:0}.ds-board button.given{color:var(--ds-ink);font-weight:750}.ds-board button.same{background:color-mix(in srgb,var(--ds-select) 50%,transparent)}.ds-board button.selected{background:var(--ds-select);box-shadow:inset 0 0 0 3px var(--ds-accent)}.ds-board button.conflict{text-underline-offset:5px;text-decoration:underline wavy}.ds-pencil{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);font-size:clamp(9px,2.3vw,13px);font-weight:400;display:grid;position:absolute;inset:3px}.ds-pencil i{align-self:center;font-style:normal}.ds-numbers{grid-template-columns:repeat(9,1fr);gap:4px;margin-top:12px;display:grid}.ds-numbers button,.ds-tools button,.ds-more button,.ds button[data-action=reload],.ds dialog button{border:1px solid var(--ds-rule);background:var(--ds-card);border-radius:8px;min-height:44px;padding:7px}.ds-numbers button{font-size:22px}.ds-tools{flex-wrap:wrap;gap:7px;margin-top:10px;display:flex}.ds-tools button{flex:1;min-width:70px;font-size:12px}.ds button[aria-pressed=true]{background:var(--ds-select);box-shadow:inset 0 0 0 1px var(--ds-accent)}.ds button:disabled{opacity:.45;cursor:default}.ds-notice{min-height:22px;font-size:12px;line-height:1.6}.ds-more{border-top:1px solid var(--ds-rule);margin-top:14px;padding-top:4px;font-size:12px}.ds-more summary{cursor:pointer;align-content:center;min-height:44px;display:list-item}.ds-more a{margin-right:20px}.ds-more form{align-items:end;gap:8px;margin:10px 0;display:flex}.ds-more label{gap:6px;display:grid}.ds input{font:inherit;background:var(--ds-card);min-height:44px;color:var(--ds-ink);border:1px solid var(--ds-rule);border-radius:6px;padding:8px}.ds-more p{line-height:1.7}.ds dialog{background:var(--ds-paper);color:var(--ds-ink);border:1px solid var(--ds-rule);border-radius:14px;max-width:min(420px,100vw - 28px);padding:24px}.ds dialog::backdrop{background:#0008}.ds dialog p{line-height:1.6}.ds[data-contrast=true] .ds-board{--ds-rule:var(--ds-ink)}@media (width<=400px){.ds{padding-left:8px;padding-right:8px}.ds header a{font-size:12px}.ds h1{font-size:28px}.ds-numbers{grid-template-columns:repeat(5,1fr);gap:5px}.ds-numbers button{padding:2px}}.ds-appearance{flex-wrap:wrap;align-items:end;gap:12px;margin:12px 0;display:flex}.ds-appearance select{font:inherit;background:var(--ds-card);min-height:44px;color:var(--ds-ink);border:1px solid var(--ds-rule);border-radius:6px;padding:8px}.ds-appearance input[type=checkbox]{min-height:0}.ds-appearance select:focus-visible{outline-offset:2px;outline:3px solid #d49329}
