/* ROSA Sudoku — sapphire glass, porcelain numerals, restrained metallic accents. */
.game-dialog[data-game='sudoku'] {
 background:radial-gradient(ellipse at 80% 15%,#16476266,transparent 50%),radial-gradient(ellipse at 5% 90%,#17474030,transparent 45%),#04121f;
}
.game-dialog[data-game='sudoku'] .game-dialog-bar {background:#04121fc9;border-bottom-color:#e0c48e30;}
.game-dialog[data-game='sudoku'] .game-dialog-content {max-width:1240px;padding-top:28px;}
.game-dialog[data-game='sudoku'] .game-tabs {gap:0;width:max-content;padding:5px;border:1px solid #a5c6cf25;background:#061c2ccc;border-radius:30px;margin-bottom:25px;}
.game-dialog[data-game='sudoku'] .game-tabs button {border:0;background:transparent;border-radius:25px;color:#9db6c6;padding:10px 24px;font-size:12px;}
.game-dialog[data-game='sudoku'] .game-tabs button[aria-pressed='true'] {background:linear-gradient(140deg,#f8e6b9,#d6ae68);color:#182d3b;box-shadow:inset 0 1px #fffa,0 3px 15px #c7953c25;}
.game-dialog[data-game='sudoku'] .game-panel {border:1px solid #cbb07838;border-radius:24px;padding:38px;gap:60px;grid-template-columns:.8fr 1.2fr;background:linear-gradient(135deg,#112e435e,#061726a6);box-shadow:inset 0 1px #ffffff09,0 28px 80px #0003;}
.game-dialog[data-game='sudoku'] .game-instructions {gap:22px;align-self:center;}
.game-dialog[data-game='sudoku'] .game-instructions .eyebrow {color:#c7b387;letter-spacing:3px;font-size:9px;}
.game-dialog[data-game='sudoku'] #game-title {font:italic 58px/1.1 Georgia,serif;color:#f1dfba;letter-spacing:-1px;}
.game-dialog[data-game='sudoku'] #game-hint {font-size:13px;line-height:1.9;color:#9db8c9;max-width:290px;}
.game-dialog[data-game='sudoku'] #game-score {position:relative;display:block;width:100%;max-width:290px;font-size:13px;letter-spacing:2px;color:#d6c39d;padding-bottom:14px;border-bottom:2px solid #afc1ca22;font-variant-numeric:tabular-nums;}
.game-dialog[data-game='sudoku'] #game-score::after {content:'';position:absolute;left:0;bottom:-2px;width:var(--completion,0%);height:2px;background:linear-gradient(90deg,#719da3,#efce8a);box-shadow:0 0 12px #d9b77233;}
.game-dialog[data-game='sudoku'] #new-game {background:transparent;border:1px solid #d2b27780;color:#e4c895;box-shadow:none;border-radius:30px;font-size:12px;min-height:44px;padding:12px 23px;}
.game-dialog[data-game='sudoku'] #new-game:hover {background:#d8b97715;border-color:#e9cf99;}
.game-dialog[data-game='sudoku'] .game-board-wrap {padding:14px;border:1px solid #e0c58d35;border-radius:18px;background:linear-gradient(145deg,#2a4a5b77,#05131fee);box-shadow:inset 0 1px #ffffff10,0 20px 50px #0005;}
.game-dialog[data-game='sudoku'] .board-sudoku {width:min(100%,calc(100dvh - 280px),520px);min-width:0;gap:0;padding:5px;background:linear-gradient(135deg,#d3b77c,#718a89 48%,#bda475);border:1px solid #e8d2a177;border-radius:8px;box-shadow:0 0 0 4px #041624,0 12px 25px #0004;}
.game-dialog[data-game='sudoku'] .sudoku-cell {border-radius:0;border:0;border-right:1px solid #b5c7c0;border-bottom:1px solid #b5c7c0;background:#f2f0e5;color:#337a91;font:500 clamp(16px,2.3vw,29px)/1 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;transition:background .15s,color .15s;}
.game-dialog[data-game='sudoku'] .sudoku-cell.given {background:#e1e6de;color:#233d4c;font-weight:650;}
.game-dialog[data-game='sudoku'] .sudoku-cell.peer {background:#d2e3e1;}
.game-dialog[data-game='sudoku'] .sudoku-cell.same-number {background:#b7d8d8;color:#155b71;}
.game-dialog[data-game='sudoku'] .sudoku-cell.box-right {border-right:2px solid #8c9f97;}
.game-dialog[data-game='sudoku'] .sudoku-cell.box-bottom {border-bottom:2px solid #8c9f97;}
.game-dialog[data-game='sudoku'] .sudoku-cell.selected {background:linear-gradient(135deg,#f5e3b6,#dfbf7f);color:#203947;box-shadow:inset 0 0 0 2px #9d7741;}
.game-dialog[data-game='sudoku'] .sudoku-cell.invalid {color:#9b3c40;background:#f0d8d2;}
.game-dialog[data-game='sudoku'] .sudoku-cell:focus-visible {outline:2px solid #bc944f;outline-offset:-3px;z-index:1;}
.game-dialog[data-game='sudoku'] #sudoku-pad {display:grid;grid-template-columns:repeat(3,1fr);gap:9px;width:100%;max-width:290px;}
.game-dialog[data-game='sudoku'] #sudoku-pad button {min-height:52px;border:1px solid #94acb340;border-radius:10px;background:linear-gradient(150deg,#19394d,#0b2335);color:#ebd8af;font:400 24px Georgia,serif;box-shadow:inset 0 1px #ffffff08,0 3px 6px #0002;}
.game-dialog[data-game='sudoku'] #sudoku-pad button:hover,.game-dialog[data-game='sudoku'] #sudoku-pad button.number-active {background:linear-gradient(145deg,#ecd5a3,#c69f5e);color:#193246;border-color:#e2c184;}
.game-dialog[data-game='sudoku'] #sudoku-pad button[data-number='0'] {grid-column:1/-1;font:12px -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;min-height:44px;color:#a9c2ce;background:#071d2b66;}
.game-dialog[data-game='sudoku'] #game-message {margin-top:14px;color:#d4bf95;font-size:12px;}
@media(max-width:900px) and (min-width:761px){.game-dialog[data-game='sudoku'] .game-panel{gap:25px;padding:25px;}}
@media(max-width:760px){
 .game-dialog[data-game='sudoku'] .game-dialog-content {padding:14px 16px 20px;}
 .game-dialog[data-game='sudoku'] .game-tabs {margin:0 auto 16px;}
 .game-dialog[data-game='sudoku'] .game-tabs button {padding:9px 17px;}
 .game-dialog[data-game='sudoku'] .game-panel {display:grid;grid-template-columns:1fr 1fr;padding:18px;gap:13px;border-radius:18px;}
 .game-dialog[data-game='sudoku'] .game-instructions {display:contents;}
 .game-dialog[data-game='sudoku'] .game-instructions .eyebrow {display:none;}
 .game-dialog[data-game='sudoku'] #game-title {grid-column:1;grid-row:1;font-size:35px;}
 .game-dialog[data-game='sudoku'] #game-score {grid-column:2;grid-row:1;justify-self:end;width:100%;max-width:140px;text-align:right;align-self:center;font-size:11px;}
 .game-dialog[data-game='sudoku'] #game-hint {grid-column:1/-1;grid-row:2;max-width:none;font-size:11px;line-height:1.6;}
 .game-dialog[data-game='sudoku'] .game-board-wrap {grid-column:1/-1;grid-row:3;padding:8px;margin:0;border-radius:12px;}
 .game-dialog[data-game='sudoku'] .board-sudoku {width:min(100%,max(220px,calc(100dvh - 335px)),480px);}
 .game-dialog[data-game='sudoku'] #sudoku-pad {grid-column:1/-1;grid-row:4;grid-template-columns:repeat(9,minmax(0,1fr));gap:5px;max-width:none;}
 .game-dialog[data-game='sudoku'] #sudoku-pad button {min-width:0;min-height:44px;padding:4px;font-size:21px;border-radius:7px;}
 .game-dialog[data-game='sudoku'] #sudoku-pad button[data-number='0'] {grid-column:1/-1;min-height:36px;}
 .game-dialog[data-game='sudoku'] #new-game {grid-column:1/-1;grid-row:5;justify-self:center;margin:0;min-height:38px;padding:9px 22px;}
 .game-dialog[data-game='sudoku'] .sudoku-cell {font-size:clamp(16px,4.8vw,24px);}
 .game-dialog[data-game='sudoku'] #game-message {min-height:0;margin-top:6px;}
 .game-dialog[data-game='sudoku'] #game-message:empty {display:none;}
}
@media(max-width:380px){.game-dialog[data-game='sudoku'] .game-dialog-content{padding-inline:10px;}.game-dialog[data-game='sudoku'] .game-panel{padding:12px;gap:10px;}.game-dialog[data-game='sudoku'] #game-hint{font-size:10px;}.game-dialog[data-game='sudoku'] #sudoku-pad button{font-size:18px;}}
@media(prefers-reduced-motion:reduce){.game-dialog[data-game='sudoku'] .sudoku-cell{transition:none;}}
@media(max-width:760px){
 .game-dialog[data-game='sudoku'] .game-dialog-content{padding:10px 16px 16px;}
 .game-dialog[data-game='sudoku'] .game-tabs{margin-bottom:12px;}
 .game-dialog[data-game='sudoku'] .game-panel{padding:14px;gap:10px;}
 .game-dialog[data-game='sudoku'] .game-board-wrap{justify-self:center;width:min(100%,max(236px,calc(100dvh - 394px)),500px);}
 .game-dialog[data-game='sudoku'] .board-sudoku{width:100%;}
}

/* Dimensional jewel edition: real CSS surfaces, without obscuring the puzzle. */
.game-dialog[data-game='sudoku'] {background:radial-gradient(ellipse at 82% 12%,#176a8666,transparent 42%),radial-gradient(ellipse at 10% 85%,#1b675242,transparent 48%),linear-gradient(140deg,#020c16,#092337 55%,#030e19);}
.game-dialog[data-game='sudoku']::before {content:'';position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 88% 17%,#bcf6eeaa 0 2px,transparent 5px),radial-gradient(circle at 9% 67%,#d6bd7b99 0 2px,transparent 5px),radial-gradient(circle at 74% 82%,#a4dedf55 0 3px,transparent 6px);opacity:.5;animation:dew-breathe 8s ease-in-out infinite;}
.game-dialog[data-game='sudoku'] .game-panel {position:relative;border-color:#b39c625c;background:linear-gradient(125deg,#31596b22,#071a2caa 40%,#123d4d3b);box-shadow:inset 0 1px #effff523,inset 0 -1px #0008,0 24px 75px #0006;backdrop-filter:blur(18px);}
.game-dialog[data-game='sudoku'] #game-title {background:linear-gradient(180deg,#fff8df 12%,#efd39c 47%,#a7793e 70%,#ffe6b7 100%);background-clip:text;-webkit-background-clip:text;color:transparent;filter:drop-shadow(0 2px 1px #0009);}
.game-dialog[data-game='sudoku'] .game-board-wrap {position:relative;isolation:isolate;padding:17px;border:1px solid #e4cc9480;background:linear-gradient(135deg,#b9dcd739,#163b4da6 25%,#071c2de0 70%,#73afb53b);border-radius:20px;box-shadow:inset 0 2px 2px #f3fff44d,inset 0 -6px 8px #0007,0 8px 0 #020c15,0 10px 0 #a28a4f66,0 24px 38px #0008,0 0 45px #78cfcb10;transform:perspective(1200px) rotateX(3deg);transform-origin:center;}
.game-dialog[data-game='sudoku'] .game-board-wrap::before {content:'';position:absolute;z-index:-1;inset:-20px;border-radius:28px;background:radial-gradient(ellipse,#77c5bd17,transparent 72%);pointer-events:none;}
.game-dialog[data-game='sudoku'] .board-sudoku {gap:2px;padding:7px;border-radius:10px;background:linear-gradient(125deg,#f2d7a0,#aa874b 25%,#d6c696 45%,#54777c 72%,#d4b373);box-shadow:inset 0 1px #fff6,0 0 0 3px #051622,0 10px 18px #0006;}
.game-dialog[data-game='sudoku'] .sudoku-cell {position:relative;border-radius:3px;border-right:0;border-bottom:0;background:linear-gradient(145deg,#f9f6e8,#e1e7df);color:#24778b;box-shadow:inset 0 1px #fff,inset 0 -2px #a1b3aa77,1px 2px 2px #041c2766;text-shadow:0 1px #fff9;transition:background .2s,box-shadow .2s,translate .2s,color .2s;}
.game-dialog[data-game='sudoku'] .sudoku-cell.given {background:linear-gradient(145deg,#e9eee4,#c4d4cf);color:#213e4c;box-shadow:inset 0 1px #fbfff2cc,inset 0 -2px #91a9a277,1px 2px 2px #041c2766;}
.game-dialog[data-game='sudoku'] .sudoku-cell.peer {background:linear-gradient(145deg,#d7eae4,#b9d3d0);}
.game-dialog[data-game='sudoku'] .sudoku-cell.same-number {background:linear-gradient(145deg,#bfe9e2,#91c4c7);color:#164d62;}
.game-dialog[data-game='sudoku'] .sudoku-cell.box-right {border-right:3px solid #a28c57;}
.game-dialog[data-game='sudoku'] .sudoku-cell.box-bottom {border-bottom:3px solid #a28c57;}
.game-dialog[data-game='sudoku'] .sudoku-cell.selected {z-index:1;background:linear-gradient(135deg,#fff4c9,#e7c481 60%,#d1a45b);box-shadow:inset 0 1px #fff9,inset 0 -2px #b28a4d,0 0 0 1px #f5dba4,0 0 14px #dfbe6870;translate:0 -1px;color:#253d47;animation:cell-select .28s ease-out;}
.game-dialog[data-game='sudoku'] .sudoku-cell.invalid {background:linear-gradient(145deg,#f5ddd0,#dfa69d);color:#943c3e;}
.game-dialog[data-game='sudoku'] .sudoku-cell.just-entered {animation:number-set .32s ease-out;}
.game-dialog[data-game='sudoku'] #sudoku-pad button {background:linear-gradient(145deg,#315567,#13374d 45%,#0b2336);border-color:#b3c3bc55;box-shadow:inset 0 1px #edffe629,inset 0 -3px #020f1b88,0 4px 0 #020d17,0 7px 12px #0003;text-shadow:0 1px 3px #0007;transition:translate .16s,box-shadow .16s,background .16s;}
.game-dialog[data-game='sudoku'] #sudoku-pad button:active {translate:0 3px;box-shadow:inset 0 1px #edffe622,inset 0 -1px #020f1b88,0 1px 0 #020d17;}
.game-dialog[data-game='sudoku'] #sudoku-pad button.number-active {background:linear-gradient(145deg,#fff0c4,#d0a55f);color:#163346;text-shadow:0 1px #fff6;}
.game-dialog[data-game='sudoku'] .game-tabs button[aria-pressed='true'] {box-shadow:inset 0 2px #fff9,inset 0 -2px #ab7e3c77,0 3px 10px #0005;}
.game-dialog[data-game='sudoku'] #new-game {background:linear-gradient(145deg,#c8aa6420,#0d263800);box-shadow:inset 0 1px #fff1,0 3px 10px #0002;}
@media(hover:hover){.game-dialog[data-game='sudoku'] .sudoku-cell:not(.selected):hover{translate:0 -1px;box-shadow:inset 0 1px #fff,0 2px 5px #0003;}.game-dialog[data-game='sudoku'] #sudoku-pad button:hover{translate:0 -1px;}}
@keyframes cell-select {from{filter:brightness(1.25);translate:0 0;}to{filter:brightness(1);translate:0 -1px;}}
@keyframes number-set {0%{scale:.94;filter:brightness(1.18);}65%{scale:1.035;}100%{scale:1;filter:brightness(1);}}
@keyframes dew-breathe {0%,100%{opacity:.25;}50%{opacity:.65;}}
@media(max-width:760px){.game-dialog[data-game='sudoku'] .game-board-wrap{padding:10px;border-radius:14px;transform:none;}.game-dialog[data-game='sudoku'] .board-sudoku{padding:5px;gap:1px;}.game-dialog[data-game='sudoku'] .sudoku-cell.box-right{border-right-width:2px;}.game-dialog[data-game='sudoku'] .sudoku-cell.box-bottom{border-bottom-width:2px;}}
@media(prefers-reduced-motion:reduce){.game-dialog[data-game='sudoku']::before,.game-dialog[data-game='sudoku'] .sudoku-cell{animation:none!important;}.game-dialog[data-game='sudoku'] .game-board-wrap{transform:none;}.game-dialog[data-game='sudoku'] .sudoku-cell,.game-dialog[data-game='sudoku'] #sudoku-pad button{transition:none;translate:none!important;}}

/* Board refinement: continuous nine-by-nine surface inside a machined frame. */
.game-dialog[data-game='sudoku'] .game-board-wrap {
 padding:15px;border-radius:19px;
 background:linear-gradient(135deg,#d6c28b 0%,#766e50 10%,#163d50 17%,#061b2d 55%,#254c58 88%,#c2ad75 100%);
 border:1px solid #e3d0a3;
 box-shadow:inset 0 2px 2px #ffffe569,inset 0 -5px 8px #0008,0 6px 0 #020b14,0 8px 0 #a18b5266,0 22px 42px #0008;
}
.game-dialog[data-game='sudoku'] .board-sudoku {
 gap:0;padding:6px;border-radius:8px;
 background:linear-gradient(135deg,#f2ddb0,#9b824f 30%,#ead6a2 65%,#9b8553);
 box-shadow:0 0 0 2px #020f1b,inset 0 1px #fff8,0 9px 18px #0007;
}
.game-dialog[data-game='sudoku'] .sudoku-cell {
 border-radius:0;border:0;border-right:1px solid #98aaa780;border-bottom:1px solid #98aaa780;
 background:linear-gradient(145deg,#faf8ed,#e8ece3);
 box-shadow:inset 0 1px #ffffffb3;
 font-size:clamp(19px,2.5vw,32px);font-weight:450;
 font-variant-numeric:tabular-nums;
}
.game-dialog[data-game='sudoku'] .sudoku-cell.given {
 background:linear-gradient(145deg,#e9eee5,#d5e0d9);color:#183848;font-weight:700;
 box-shadow:inset 0 1px #ffffff9c;
}
.game-dialog[data-game='sudoku'] .sudoku-cell:nth-child(9n) {border-right:0;}
.game-dialog[data-game='sudoku'] .sudoku-cell:nth-child(n+73) {border-bottom:0;}
.game-dialog[data-game='sudoku'] .sudoku-cell.box-right {border-right:3px solid #55747a;}
.game-dialog[data-game='sudoku'] .sudoku-cell.box-bottom {border-bottom:3px solid #55747a;}
.game-dialog[data-game='sudoku'] .sudoku-cell.peer {background:linear-gradient(145deg,#e0eeea,#cbded9);}
.game-dialog[data-game='sudoku'] .sudoku-cell.same-number {background:linear-gradient(145deg,#bee4dd,#a5d2d0);color:#0f5267;box-shadow:inset 0 0 0 1px #4b8b9755;}
.game-dialog[data-game='sudoku'] .sudoku-cell.selected {
 translate:0 0;background:linear-gradient(145deg,#fff3c7,#e6c78b);
 box-shadow:inset 0 0 0 2px #a47e43,inset 0 2px 4px #fff6,0 0 16px #e0bc693d;color:#1a3948;
}
.game-dialog[data-game='sudoku'] .sudoku-cell.invalid {background:linear-gradient(145deg,#f6ddd4,#e8beb2);color:#8d3439;}
.game-dialog[data-game='sudoku'] .sudoku-cell.selected.invalid {box-shadow:inset 0 0 0 2px #a25b4d;}
.game-dialog[data-game='sudoku'] .sudoku-cell:focus-visible {outline:2px solid #8c6c37;outline-offset:-3px;}
@media(hover:hover){.game-dialog[data-game='sudoku'] .sudoku-cell:not(.selected):hover{translate:none;background:#ecdfb9;box-shadow:inset 0 0 0 1px #bea06a;}}
@media(max-width:760px){
 .game-dialog[data-game='sudoku'] .game-panel {padding:12px;gap:9px;}
 .game-dialog[data-game='sudoku'] #game-hint {font-size:10px;line-height:1.5;}
 .game-dialog[data-game='sudoku'] .game-board-wrap {width:min(100%,max(248px,calc(100dvh - 355px)),500px);padding:9px;border-radius:13px;}
 .game-dialog[data-game='sudoku'] .board-sudoku {padding:4px;gap:0;}
 .game-dialog[data-game='sudoku'] .sudoku-cell {font-size:clamp(17px,4.8vw,25px);}
 .game-dialog[data-game='sudoku'] .sudoku-cell.box-right {border-right-width:2px;}
 .game-dialog[data-game='sudoku'] .sudoku-cell.box-bottom {border-bottom-width:2px;}
 .game-dialog[data-game='sudoku'] #sudoku-pad {gap:4px;}
 .game-dialog[data-game='sudoku'] #sudoku-pad button[data-number='0'] {grid-column:1/6;min-height:36px;}
 .game-dialog[data-game='sudoku'] #new-game {grid-column:2;grid-row:4;align-self:end;justify-self:end;z-index:1;min-height:36px;margin-bottom:0;padding:8px 15px;font-size:11px;}
}
@media(max-width:380px){.game-dialog[data-game='sudoku'] .game-board-wrap{width:100%;padding:7px;}.game-dialog[data-game='sudoku'] .sudoku-cell{font-size:17px;}}
