/* Full-screen working tables. Cards and puzzle values are live, accessible controls. */
.puzzle-screen{overflow:hidden;background:#081922}.puzzle-screen .game-wrap{height:100dvh;max-width:1320px;margin:auto;padding:0 max(8px,env(safe-area-inset-left)) max(6px,env(safe-area-inset-bottom));display:flex;flex-direction:column;overflow:hidden}.puzzle-screen .topbar,.puzzle-screen .footer{display:none}.puzzle-screen .puzzle-toolbar{flex:none;margin:0;padding:5px 2px;min-height:48px;flex-wrap:nowrap;gap:8px}.puzzle-toolbar h1{font:600 1.4rem Georgia,serif;margin:0;flex:1;color:#f5dfa7}.puzzle-screen .puzzle-toolbar button{min-height:38px;padding:6px 11px;font-size:12px}.puzzle-screen .puzzle-toolbar .actions{width:auto;gap:5px}.puzzle-screen .game-scene{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.puzzle-screen .table{flex:1;min-height:0;margin:0;padding:12px;border-radius:17px;display:flex;flex-direction:column;overflow:hidden;box-shadow:inset 0 0 0 1px #e4c27955,0 5px 30px #0005}.puzzle-hud{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:2px 3px 10px;font:12px system-ui;letter-spacing:.02em;flex:none;color:var(--puzzle-muted,#d5d7c6)}.puzzle-hud b{font-size:15px;color:var(--puzzle-ink,#ffedc0);margin-left:3px}.puzzle-hud>span:first-child{font-weight:750;color:var(--puzzle-ink,#ffedc0)}.puzzle-screen .status{font-size:13px;line-height:1.3;min-height:22px;max-height:42px;padding:5px 3px;margin:3px 0;background:none;border:0;box-shadow:none;flex:none;color:var(--puzzle-muted,#d5d7c6);overflow:hidden;text-align:center}.puzzle-tools{display:flex;align-items:center;justify-content:space-evenly;gap:5px;flex:none;padding:5px 0 3px}.puzzle-tools button{min-height:42px;padding:6px 9px;font-size:12px;flex:1;min-width:0}.puzzle-screen dialog{max-height:calc(100dvh - 24px);overflow:auto}.puzzle-choice-grid{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.puzzle-choice-grid button{min-height:42px;font-size:14px;text-transform:capitalize}.puzzle-stat-grid,.puzzle-win-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:20px 0}.puzzle-stat-grid span,.puzzle-win-stats span{font-size:13px;color:#c7cfce}.puzzle-stat-grid b,.puzzle-win-stats b{display:block;font-size:26px;color:#f4d99f;margin-top:5px}.puzzle-screen .puzzle-win{position:absolute;z-index:7;inset:auto 7% 15%;background:linear-gradient(#142f3af5,#081822f5);border:2px solid #dfbc73;box-shadow:0 0 0 5px #182333aa,0 20px 70px #0009;padding:25px 16px;text-align:center;border-radius:20px;margin:0}.puzzle-screen .puzzle-win h2{font:bold clamp(25px,5vw,40px) Georgia,serif;color:#ffe2a1;text-shadow:0 2px #6b471c;margin:9px 0}.puzzle-win-stats{grid-template-columns:repeat(3,1fr);margin:15px 0}.puzzle-win-stats b{font-size:22px}.puzzle-win button{min-height:44px;font-size:14px}.puzzle-pause{position:absolute;z-index:8;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;background:#071724ed;backdrop-filter:blur(12px);border-radius:14px}.puzzle-pause strong{font:italic 30px Georgia,serif;color:#f4dfa5}.puzzle-screen .instruction{display:none}
.solitaire-table{--sol-card-w:45px;--sol-card-h:65px;--sol-gap:22px;--puzzle-ink:#f7e8b6;--puzzle-muted:#c3d9ce;background:radial-gradient(ellipse at 50% 30%,#216653,#0b392f 70%,#082720)!important}.solitaire-table[data-puzzle-theme="midnight"]{background:radial-gradient(ellipse at 50% 20%,#214c6f,#0b223f 70%,#081525)!important}.solitaire-table[data-puzzle-theme="ivory"]{--puzzle-ink:#503c25;--puzzle-muted:#64543d;background:radial-gradient(ellipse at 50% 20%,#f7ebcb,#d1bc90)!important}.solitairetop{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin:0 0 12px;flex:none;overflow:visible;min-width:0}.solitaire-table[data-handed="left"] .solitairetop{flex-direction:row-reverse}.solitaire-table .piles{display:flex;gap:6px;min-width:0;flex:none}.solitaire-table .card,.solitaire-table .slot{width:var(--sol-card-w);height:var(--sol-card-h);min-height:0;padding:0;flex:none;margin:0;font-size:20px;border-radius:5px}.solitaire-table .slot{background:#022e2855;border:1px solid #eee2ab55;color:#e6d6a4;box-shadow:inset 0 2px 12px #0004}.solitaire-table .card-index{left:3px;top:3px;gap:1px;font-size:clamp(13px,1.8vw,21px);line-height:.8}.solitaire-table .card-index small{font-size:11px}.solitaire-table .card-index.index-bottom{left:auto;right:3px;top:auto;bottom:3px}.solitaire-table .card-pips{left:24%;right:24%;top:25%;bottom:25%}.solitaire-table .card-pips i{font-size:clamp(8px,1.4vw,16px)}.solitaire-table .ace-emblem{font-size:clamp(22px,4vw,42px)}.solitaire-table .court-art{inset:12% 23%;border:0}.solitaire-table[data-card-face="classic"] .court-art{display:none}.solitaire-table[data-card-face="classic"] .court-card::after{content:attr(aria-label);position:absolute;inset:30% 20%;overflow:hidden;font:bold clamp(12px,2vw,23px) Georgia,serif;color:#132b35;line-height:1.2;word-spacing:40px;text-align:center;pointer-events:none}.solitaire-table[data-card-face="classic"] .court-card.red::after{color:#ac252f}.solitaire-table .card.back{background-image:linear-gradient(#0e234040,#0e234040),var(--card-back-art);background-position:center,35% 15%;background-size:auto,auto 135%;border:1px solid #e4cc8b}.stock-card span{position:absolute;bottom:3px;right:3px;padding:2px 4px;border-radius:4px;background:#071728cc;color:#ffe5a2;font:bold 12px system-ui}.stock-label{font-size:12px;color:var(--puzzle-muted);align-self:center}.spider-runs{display:flex;gap:4px;align-items:center;margin-left:auto}.spider-runs i{width:clamp(15px,3vw,28px);height:clamp(25px,4vw,42px);border:1px solid #dbca7944;color:#d0be7a44;border-radius:3px;font:italic 16px Georgia,serif;display:grid;place-items:center;box-shadow:inset 0 0 8px #0002}.spider-runs .cleared{background:#f4e4b1;color:#12362d;border-color:#fbeabd;box-shadow:0 0 10px #e8c65755}.sol-board-stage{position:relative;flex:1;min-height:80px;display:flex;overflow:hidden}.solitaire-table .columns{display:grid;grid-template-columns:repeat(var(--col-count),minmax(0,1fr));gap:4px;padding:0 1px 7px;width:100%;min-width:0;min-height:0;flex:1;overflow-x:hidden;overflow-y:auto;align-items:start;scrollbar-width:thin;scrollbar-color:#efdba340 transparent}.solitaire-table .column{position:relative;width:auto;min-width:0;flex:none;height:calc(var(--sol-card-h) + var(--stack-length)*var(--sol-gap));min-height:var(--sol-card-h);display:block;touch-action:pan-y}.sol-card-position{position:absolute;left:0;right:0;top:calc(var(--card-row)*var(--sol-gap));height:var(--sol-card-h)}.sol-card-position .card{display:block;width:100%;max-width:var(--sol-card-w);margin:0}.solitaire-table .card:disabled{opacity:1;filter:none}.solitaire-table .card.selected{outline:2px solid #ffe799;transform:translateY(-3px);box-shadow:0 0 15px #fff1a666}.solitaire-table .hint-card{outline:2px solid #7fe6c9;box-shadow:0 0 16px #54e7af77}.solitaire-table[data-large="true"] .card-index{font-size:clamp(17px,2vw,25px)}.solitaire-table[data-large="true"] .card-index small{font-size:13px}.solitaire-table[data-speed="slow"] .piece-reveal{animation-duration:.75s}.solitaire-table[data-speed="fast"] .piece-reveal{animation-duration:.15s}
.sudoku-table{--puzzle-ink:#573923;--puzzle-muted:#826346;--sud-bg:#f5ecd8;--sud-fixed:#402f22;--sud-entry:#18765a;--sud-line:#b9aa8d;--sud-strong:#876040;--sud-peer:#e9dcc0;--sud-selected:#efd495;--sud-match:#d4e6c0;background:linear-gradient(135deg,#f6ebd4,#e3cfa9)!important;color:var(--puzzle-ink)}.sudoku-table[data-puzzle-theme="chalk"]{--puzzle-ink:#f2ecd3;--puzzle-muted:#c0d1c0;--sud-bg:#174d42;--sud-fixed:#f4ead6;--sud-entry:#b8f0c5;--sud-line:#71998a;--sud-strong:#d3d6b0;--sud-peer:#275e50;--sud-selected:#517a52;--sud-match:#386e48;background:linear-gradient(#124336,#092d28)!important}.sudoku-table[data-puzzle-theme="glass"]{--puzzle-ink:#ecf6fa;--puzzle-muted:#bfd5dd;--sud-bg:#274e68;--sud-fixed:#eaf0f4;--sud-entry:#7ee6df;--sud-line:#7c9baf;--sud-strong:#d6eaf5;--sud-peer:#386580;--sud-selected:#517e93;--sud-match:#347e83;background:linear-gradient(#21455b,#102a3e)!important}.sudoku-table[data-puzzle-theme="wood"]{--puzzle-ink:#4d2b14;--puzzle-muted:#715133;--sud-bg:#efd5af;--sud-fixed:#432711;--sud-entry:#8c4c20;--sud-line:#b18b61;--sud-strong:#80522b;--sud-peer:#e0bc87;--sud-selected:#edb962;--sud-match:#d6d19b;background:linear-gradient(135deg,#b98a51,#ecd2a7)!important}.sudoku-body{display:flex;flex-direction:column;flex:1;min-height:0;justify-content:center;gap:8px}.sudoku-stage{position:relative;aspect-ratio:1;width:min(100%,calc(100dvh - 260px));max-width:630px;margin:auto;flex:none}.puzzle-screen .sudoku{width:100%;height:100%;max-width:none;margin:0;border:3px solid var(--sud-strong);border-radius:9px;overflow:hidden;background:var(--sud-bg);box-shadow:0 5px 18px #71451d20;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));grid-template-rows:repeat(9,minmax(0,1fr))}.puzzle-screen .sudcell{min-width:0;min-height:0;aspect-ratio:auto;padding:0;background:var(--sud-bg);border:0;border-right:1px solid var(--sud-line);border-bottom:1px solid var(--sud-line);border-radius:0;box-shadow:none;text-shadow:none;color:var(--sud-entry);font:600 clamp(19px,4.9vw,34px)/1 system-ui;transition:background .1s;position:relative}.puzzle-screen .sudcell.given{color:var(--sud-fixed);font-weight:750}.puzzle-screen .sudcell.peer{background:var(--sud-peer)}.puzzle-screen .sudcell.same-number{background:var(--sud-match);box-shadow:inset 0 0 0 2px #72964155}.puzzle-screen .sudcell.active{background:var(--sud-selected);box-shadow:inset 0 0 0 2px #c58a32}.puzzle-screen .sudcell.rightedge{border-right:3px solid var(--sud-strong)}.puzzle-screen .sudcell.bottomedge{border-bottom:3px solid var(--sud-strong)}.puzzle-screen .sudcell.error{color:#c43d37;background:#f2c6b8;box-shadow:inset 0 0 0 1px #c34a39}.puzzle-screen .sudcell:hover{filter:none}.puzzle-screen .sudcell:active{transform:none}.puzzle-screen .sudcell:focus-visible{outline:2px solid #268f7c;outline-offset:-3px}.puzzle-screen .notes{position:absolute;inset:3px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);font:500 clamp(8px,2vw,12px)/1 system-ui;color:var(--puzzle-muted)}.notes i{font-style:normal;display:grid;place-items:center}.sudoku-controls{width:100%;max-width:630px;margin:0 auto;flex:none}.sud-progress{display:flex;justify-content:space-between;gap:6px;color:var(--puzzle-muted);font-size:12px;padding:0 3px}.sudoku-table .numbar{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:5px;margin:7px 0;max-width:none}.sudoku-table .numbar button{min-height:52px;padding:4px 0;background:var(--sud-bg)!important;background-image:none!important;color:var(--sud-fixed)!important;text-shadow:none!important;border:1px solid var(--sud-strong);border-radius:8px;box-shadow:0 2px 0 #7c542c33;display:flex;flex-direction:column;align-items:center;gap:3px;touch-action:manipulation}.numbar b{font-size:25px;font-weight:650;line-height:1.1}.numbar small{font-size:10px;color:var(--puzzle-muted)}.puzzle-secondary{display:flex;justify-content:center;gap:7px;margin:0}.puzzle-secondary button{font-size:12px;min-height:36px;padding:4px 12px}.sudoku-table[data-large="true"] .sudcell{font-size:clamp(23px,6vw,39px)}.sudoku-table .puzzle-win{inset:10% 5%}.sudoku-table .puzzle-win .eyebrow{color:#dbc486}
@media(max-width:600px){.puzzle-screen .game-wrap{padding-left:6px;padding-right:6px}.puzzle-screen .table{padding:9px 6px}.puzzle-toolbar h1{font-size:1.15rem}.puzzle-screen .puzzle-toolbar button{font-size:12px;padding:6px 9px}.puzzle-hud{font-size:11px;gap:5px}.puzzle-hud b{font-size:13px}.solitaire-table .piles{gap:4px}.solitaire-table .solitairetop{gap:5px;margin-bottom:10px}.solitaire-table .card-index{font-size:14px}.solitaire-table .card-index small{font-size:10px}.solitaire-table .piles .card,.solitaire-table .piles .slot{width:clamp(33px,8.3vw,45px);height:clamp(48px,12vw,65px)}.spider-runs{gap:3px}.spider-runs i{width:16px;height:25px;font-size:12px}.stock-label{display:none}.puzzle-tools button{font-size:12px;padding:5px 4px;min-height:42px}.puzzle-screen .status{font-size:12px}.sudoku-stage{width:min(100%,calc(100dvh - 265px))}.sudoku-table .numbar{gap:4px}.sudoku-table .numbar button{min-height:48px}.numbar b{font-size:24px}.puzzle-screen .puzzle-win{padding:18px 10px}.puzzle-hud>span:first-child{letter-spacing:0}}
@media(orientation:landscape) and (max-height:650px){.puzzle-screen .puzzle-toolbar{min-height:39px;padding:2px}.puzzle-screen .puzzle-toolbar button{min-height:32px;padding:3px 10px}.puzzle-screen .table{padding:6px 10px}.puzzle-hud{padding-bottom:5px}.solitaire-table .solitairetop{margin-bottom:7px}.solitaire-table .piles .card,.solitaire-table .piles .slot{width:38px;height:55px}.solitaire-table .status{font-size:12px;min-height:18px;padding:2px;margin:1px}.solitaire-table .puzzle-tools{padding:1px}.solitaire-table .puzzle-tools button{min-height:32px}.sudoku-body{flex-direction:row;align-items:center;gap:18px}.sudoku-stage{width:min(calc(100dvh - 85px),50%);max-height:100%;margin:0;flex:none}.sudoku-controls{flex:1;min-width:0;max-width:420px;margin:0}.sudoku-table .numbar{grid-template-columns:repeat(3,1fr);gap:5px;margin:6px 0}.sudoku-table .numbar button{min-height:36px;flex-direction:row;justify-content:center;gap:10px}.numbar b{font-size:22px}.sudoku-table .puzzle-tools{gap:3px}.sudoku-table .puzzle-tools button{min-height:36px;font-size:11px}.sudoku-table .puzzle-secondary button{min-height:32px}.sudoku-table .status{font-size:12px;max-height:34px}.puzzle-screen .sudcell{font-size:21px}.puzzle-screen .puzzle-win{inset:auto 15% 5%;padding:10px}.puzzle-screen .puzzle-win h2{font-size:25px;margin:4px}.puzzle-win-stats{margin:9px 0}.puzzle-win-stats b{font-size:18px}.puzzle-screen .puzzle-win .eyebrow{font-size:10px}}
.solitaire-table[data-card-face="classic"] .court-card::after{content:attr(data-rank) " " attr(data-suit);word-spacing:0;inset:30% 14%;font-size:clamp(16px,2.7vw,31px);line-height:1.1}.solitaire-screen .drag-ghost .card-index{font-size:15px;left:3px;top:3px}.solitaire-screen .drag-ghost .card-index small{font-size:11px}.solitaire-screen .drag-ghost .index-bottom{left:auto;top:auto;right:3px;bottom:3px}
