.sudoku-game{--sdk-ink:#182620;--sdk-muted:#50625a;--sdk-paper:#f7f6f0;--sdk-line:#77877e;--sdk-accent:#176b50;--sdk-warn:#8a2532;color:var(--sdk-ink);font:inherit;}
.sudoku-game *{box-sizing:border-box;}
.sudoku-game button,.sudoku-game select{font:inherit;color:inherit;}
.sudoku-game button{min-height:44px;border:1px solid #62786b;border-radius:8px;background:#fff;padding:.45rem .7rem;cursor:pointer;}
.sudoku-game button:hover:not(:disabled){background:#e8f2ec;border-color:var(--sdk-accent);}
.sudoku-game button:focus-visible,.sudoku-game select:focus-visible{outline:3px solid #b65c00;outline-offset:2px;z-index:1;}
.sudoku-game button:disabled{opacity:.58;cursor:not-allowed;}
.sdk-shell{max-width:1150px;margin:0 auto;padding:clamp(.35rem,1vw,.85rem);background:var(--sdk-paper);border:1px solid #c4cec7;border-radius:14px;}
.sdk-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.15rem;}
.sdk-kicker{margin:0;color:#315d48;font-size:.75rem;font-weight:800;letter-spacing:.09em;}
.sdk-heading h2{margin:.05rem 0;font-size:clamp(1.25rem,2vw,1.8rem);line-height:1.1;}
.sdk-memory{max-width:310px;margin:0;color:var(--sdk-muted);font-size:.83rem;text-align:right;}
.sdk-instructions{margin:.25rem 0 .55rem;color:#34453d;font-size:.9rem;}
.sdk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap;}
.sdk-tiers,.sdk-actions,.sdk-readouts,.sdk-entry-actions{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;}
.sdk-tiers button[aria-pressed="true"],.sdk-entry-actions button[aria-pressed="true"]{background:#d5e8dc;border-color:#176b50;box-shadow:inset 0 0 0 1px #176b50;}
.sdk-tiers button,.sdk-actions button,.sdk-entry-actions button{min-height:40px;font-size:.88rem;}
.sdk-readouts{color:var(--sdk-muted);font-size:.82rem;}
.sdk-readouts span{padding:.12rem .38rem;border-left:1px solid #c4cec7;}
.sdk-rewards{margin:.3rem 0 .55rem;color:#40564b;font-size:.78rem;}
.sdk-play-area{display:flex;align-items:center;justify-content:center;gap:clamp(.75rem,2vw,1.5rem);}
.sdk-board{--sdk-cell:min(6.15vh, min(6.15vw, 58px));display:grid;grid-template-columns:repeat(9,minmax(0,1fr));width:min(56vh,540px,62vw);aspect-ratio:1;border:2px solid #172a20;background:#fff;}
.sudoku-game .sdk-cell{position:relative;display:grid;min-width:0;min-height:0;padding:0;border:0;border-right:1px solid #a7b2ab;border-bottom:1px solid #a7b2ab;border-radius:0;background:#fff;place-items:center;font-size:clamp(1rem,2.25vw,1.5rem);}
.sudoku-game .sdk-cell:nth-child(3n){border-right:2px solid #32463a;}
.sudoku-game .sdk-cell:nth-child(n+19):nth-child(-n+27),.sudoku-game .sdk-cell:nth-child(n+46):nth-child(-n+54){border-bottom:2px solid #32463a;}
.sudoku-game .sdk-cell.is-given{font-weight:800;color:#26382e;background:#eef0e9;}
.sudoku-game .sdk-cell.is-entry{color:#075b9b;}
.sudoku-game .sdk-cell.is-related{background:#e8f0e9;}
.sudoku-game .sdk-cell.is-same{background:#d7e9d8;}
.sudoku-game .sdk-cell.is-selected{z-index:0;box-shadow:inset 0 0 0 3px #176b50;background:#e4f3e8;}
.sudoku-game .sdk-cell.is-conflict{background:repeating-linear-gradient(135deg,#ffdfdf 0 5px,#fff0ee 5px 10px);color:#7a1420;}
.sdk-value{line-height:1;}
.sdk-notes{display:grid;width:100%;height:100%;grid-template:repeat(3,1fr)/repeat(3,1fr);align-items:center;justify-items:center;color:#45594d;font-size:clamp(.38rem,.8vw,.58rem);line-height:1;}
.sdk-notes i{font-style:normal;}
.sdk-controls{width:180px;flex:0 0 180px;}
.sdk-keypad{display:grid;grid-template-columns:repeat(3,minmax(44px,1fr));gap:.35rem;}
.sdk-keypad button{min-height:48px;padding:0;font-size:1.15rem;font-weight:700;}
.sdk-entry-actions{margin-top:.5rem;}
.sdk-entry-actions button{flex:1;}
.sdk-selected{min-height:2.3em;margin:.4rem 0 0;color:var(--sdk-muted);font-size:.8rem;}
.sdk-status{margin:.45rem 0 .15rem;min-height:1.4em;padding:.38rem .5rem;border-left:4px solid #aebbb2;background:#edf0e9;color:#24372d;font-size:.86rem;}
.sdk-status.is-paused{border-color:#765700;background:#fff4c7;}
.sdk-status.is-success{border-color:#167247;background:#dff4e5;color:#174d31;font-weight:700;}
.sdk-key-help{margin:.25rem 0 0;color:var(--sdk-muted);font-size:.75rem;}
.sdk-dialog{width:min(92vw,440px);border:2px solid #496153;border-radius:12px;padding:1rem;color:var(--sdk-ink);background:#fff;}
.sdk-dialog::backdrop{background:#102019aa;}
.sdk-dialog h3{margin:.1rem 0 .4rem;}
.sdk-dialog p{color:#40564b;}
.sdk-dialog label{display:grid;gap:.3rem;font-weight:700;}
.sdk-dialog select{min-height:44px;padding:.4rem;border:1px solid #63766a;border-radius:7px;background:#fff;}
.sdk-dialog-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem;}
.sdk-main[inert]{pointer-events:none;user-select:none;}
@media (max-height:760px) and (min-width:850px){
 .sdk-shell{padding:.35rem .55rem;}
 .sdk-heading h2{font-size:1.28rem;}
 .sdk-kicker{font-size:.65rem;}
 .sdk-memory{font-size:.72rem;}
 .sdk-instructions{margin:.1rem 0 .35rem;font-size:.8rem;}
 .sdk-tiers button,.sdk-actions button,.sdk-entry-actions button{min-height:36px;padding:.28rem .48rem;font-size:.8rem;}
 .sdk-rewards{margin:.15rem 0 .25rem;font-size:.7rem;}
 .sdk-board{width:min(42vh,390px,43vw);}
 .sdk-controls{width:148px;flex-basis:148px;}
 .sdk-keypad{gap:.25rem;}
 .sdk-keypad button{min-height:42px;}
 .sdk-status{margin:.3rem 0 .1rem;padding:.24rem .4rem;font-size:.78rem;}
 .sdk-key-help{font-size:.68rem;}
}
@media (max-width:700px){
 .sdk-heading{align-items:flex-start;}
 .sdk-memory{max-width:48%;font-size:.72rem;}
 .sdk-play-area{align-items:center;flex-direction:column;}
 .sdk-board{width:min(100%,55vh);}
 .sdk-controls{width:min(100%,360px);flex-basis:auto;}
 .sdk-readouts{order:3;}
}
@media (max-width:420px){
 .sdk-heading{display:block}
 .sdk-memory{text-align:left;max-width:none}
 .sdk-key-help{font-size:.68rem}
 .sdk-play-area{width:100%;min-width:0;align-items:stretch}
 .sdk-board{width:min(100%,55vh);max-width:100%;min-width:0;flex:0 1 auto;margin-inline:auto}
 .sdk-controls{width:100%;max-width:360px;min-width:0;flex:0 1 auto;margin-inline:auto}
 .sdk-keypad{grid-template-columns:repeat(3,minmax(0,1fr))}
}
