/* Takuzu only: the board is square, readable and internally scrollable. */
.takuzu-panel { border:2px solid #183333;border-radius:30px;background:#fffdf7;padding:1rem;box-shadow:7px 8px 0 #183333; }
.takuzu-top,.takuzu-heading {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;}
.takuzu-top{margin-bottom:1.5rem;}.takuzu-heading h2{font-size:clamp(1.5rem,4vw,2rem);font-weight:900;letter-spacing:-.04em;line-height:1.15;}
.takuzu-heading p{font-size:.875rem;font-weight:800;color:#a53d28;margin-bottom:.25rem;}.takuzu-size{font-size:1.5rem;font-weight:900;}
.takuzu-levels,.takuzu-inputs,.takuzu-actions,.takuzu-stats{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin-top:1rem;}
.takuzu-panel button{font-size:.875rem;font-weight:800;min-height:44px;touch-action:manipulation;}
.takuzu-levels button,.takuzu-inputs button,.takuzu-actions button{padding:.6rem 1rem;border:2px solid #183333;border-radius:2rem;background:#fffdf7;color:#183333;cursor:pointer;}
.takuzu-levels [aria-pressed="true"],.takuzu-actions [data-action="share"]{background:#183333;color:#fffdf7;}
.takuzu-actions [data-action="check"]{background:#bd412c;color:white;border-color:#bd412c;}
.takuzu-panel button:disabled{opacity:.42;cursor:not-allowed;}.takuzu-panel button:focus-visible{outline:3px solid #183333;outline-offset:3px;}
.takuzu-help,.takuzu-rules{font-size:.875rem;line-height:1.6;color:#36514f;margin:1rem 0;}
.takuzu-rules{font-weight:750;border-top:1px solid #b8c9c5;padding-top:1rem;}
.takuzu-scroll{position:relative;overflow-x:auto;max-width:100%;padding:.4rem 0 .6rem;overscroll-behavior-x:contain;}
.takuzu-board{position:relative;display:grid;grid-template-columns:repeat(var(--takuzu-size),minmax(44px,1fr));gap:2px;width:max(100%,calc(var(--takuzu-size) * 46px + 2px));max-width:560px;margin-inline:auto;background:#183333;border:2px solid #183333;}
#takuzu-game .takuzu-cell{position:relative;display:grid;place-items:center;aspect-ratio:1;border:0;border-radius:0;padding:0;background:#fffdf7;color:#183333;font-size:clamp(1.2rem,3vw,1.8rem);font-weight:800;line-height:1;cursor:pointer;}
#takuzu-game .takuzu-cell[data-value="0"]{background:#c0e4dc;}#takuzu-game .takuzu-cell[data-value="1"]{background:#f4bd4f;}
#takuzu-game .takuzu-cell.is-fixed{box-shadow:inset 0 0 0 3px #18333333;cursor:default;}#takuzu-game .takuzu-cell.is-hint{box-shadow:inset 0 0 0 3px #177a67;cursor:default;}
#takuzu-game .takuzu-cell.is-selected{outline:3px solid #183333;outline-offset:-4px;z-index:1;}#takuzu-game .takuzu-cell:focus-visible{outline:3px solid #183333;outline-offset:-4px;box-shadow:inset 0 0 0 6px #fff;z-index:2;}
#takuzu-game .takuzu-cell.is-wrong{background:#ffd8ce;box-shadow:inset 0 0 0 3px #a52f1d;}
.takuzu-error{position:absolute;right:3px;top:1px;font-size:1rem;color:#972614;}.takuzu-pin{position:absolute;right:3px;bottom:2px;font-size:.75rem;}
.takuzu-inputs [data-value-input]{min-width:64px;font-size:1.3rem;}.takuzu-inputs [data-value-input="0"]{background:#c0e4dc;}.takuzu-inputs [data-value-input="1"]{background:#f4bd4f;}
.takuzu-status{margin-top:1.2rem;padding:1rem;background:#f4efe4;border-radius:12px;font-size:1rem;line-height:1.6;font-weight:700;min-height:3.5rem;}
.takuzu-status.is-error{background:#ffd8ce;}.takuzu-status.is-won{background:#a9d8cf;}.takuzu-stats{font-size:.875rem;font-weight:700;color:#36514f;}
@media(min-width:640px){.takuzu-panel{padding:1.75rem;}.takuzu-help{max-width:750px;}}
@media(prefers-reduced-motion:reduce){.takuzu-panel *{scroll-behavior:auto;}}
@media(max-width:400px){.takuzu-page{padding-left:.5rem;padding-right:.5rem;}.takuzu-panel{padding:.5rem;}}
