:root{--su-bg:#c3d7de;--su-surface:#fff;--su-surface-2:#f7fafc;--su-panel:#d9e8ed;--su-text:#17212b;--su-muted:#667985;--su-line:#c7d7df;--su-line-strong:#9eb7c2;--su-cyan:#18bfd2;--su-cyan-dark:#067f92;--su-mint:#5bcfae;--su-violet:#7965df;--su-danger:#c63b5e;--su-shadow:0 18px 48px rgba(35,65,82,.12);--su-header:60px;color-scheme:light}
html[data-theme="dark"]{--su-bg:#111c24;--su-surface:#1b2a35;--su-surface-2:#243744;--su-panel:#172731;--su-text:#f5fafc;--su-muted:#b2c4ce;--su-line:#405966;--su-line-strong:#6d8996;--su-cyan:#62d8e5;--su-cyan-dark:#8ae8f1;--su-mint:#75dfc0;--su-violet:#ad9cff;--su-danger:#ff91aa;--su-shadow:0 18px 48px rgba(0,0,0,.28);color-scheme:dark}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto}html{background:var(--su-bg);-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{min-height:100vh;min-height:100svh;color:var(--su-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at 0 0,rgba(24,191,210,.18),transparent 29rem),radial-gradient(circle at 100% 6%,rgba(121,101,223,.14),transparent 28rem),linear-gradient(180deg,color-mix(in srgb,var(--su-bg) 84%,#fff),var(--su-bg))}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.5;background-image:linear-gradient(rgba(50,87,107,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(50,87,107,.035) 1px,transparent 1px);background-size:30px 30px}
button{font:inherit;touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid color-mix(in srgb,var(--su-cyan) 48%,transparent);outline-offset:3px}
.app{width:min(100%,1120px);min-height:100vh;min-height:100svh;height:auto;margin:0 auto;padding:0 max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));display:grid;grid-template-rows:auto 1fr auto;gap:0}
.topbar{position:sticky;top:0;z-index:30;min-height:var(--su-header);margin:0 -12px;padding:9px max(14px,env(safe-area-inset-right));display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;color:var(--su-text);background:color-mix(in srgb,var(--su-surface) 88%,transparent);border:0;border-bottom:1px solid color-mix(in srgb,var(--su-line) 75%,transparent);border-radius:0;box-shadow:none;backdrop-filter:blur(18px) saturate(1.15)}
.brand{min-width:0}.brand-title{color:var(--su-text);font-size:clamp(21px,4.8vw,30px);line-height:1;font-weight:1000;letter-spacing:-.04em;text-shadow:none}.brand-sub{margin-top:4px;color:var(--su-muted);font-size:10px;line-height:1.15;font-weight:850;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}.header-actions{display:flex;align-items:center;gap:7px}
.icon-btn,.theme-toggle{height:42px;border:1px solid var(--su-line);border-radius:13px;color:var(--su-text);background:var(--su-surface);box-shadow:0 4px 12px rgba(40,68,84,.06);cursor:pointer}.icon-btn{width:42px;padding:0;display:grid;place-items:center}.icon-btn.red{color:#fff;background:var(--su-danger);border-color:var(--su-danger)}html[data-theme="dark"] .icon-btn.red{color:#481021}.icon-btn svg{width:20px;height:20px}
.theme-toggle{position:relative;width:64px;padding:0;display:grid;place-items:center}.theme-toggle-track{position:relative;width:56px;height:32px;display:block;border:0;border-radius:999px;background:var(--su-surface-2);box-shadow:inset 0 0 0 1px var(--su-line)}.theme-toggle-thumb{position:absolute;top:4px;left:4px;width:24px;height:24px;border:0;border-radius:50%;background:var(--su-cyan);box-shadow:0 2px 7px rgba(28,62,80,.2);transform:translateX(24px);transition:transform .2s ease}.theme-toggle-sun,.theme-toggle-moon{position:absolute;top:8px;width:16px;height:16px;color:var(--su-muted)}.theme-toggle-sun{left:7px}.theme-toggle-moon{right:7px}html[data-theme="dark"] .theme-toggle-thumb{transform:translateX(0)}
.game{min-height:0;width:100%;max-width:1040px;margin:0 auto;padding:14px 0 10px;display:grid;grid-template-rows:auto auto auto;justify-items:center;align-content:start;gap:11px}.board-zone{width:100%;min-width:0;display:grid;place-items:center;overflow:visible}
.board-shell{width:var(--board-shell-size,calc(var(--board-size) + 22px));height:var(--board-shell-size,calc(var(--board-size) + 22px));max-width:100%;padding:10px;border:1px solid var(--su-line-strong);border-radius:24px;background:color-mix(in srgb,var(--su-panel) 88%,var(--su-surface));box-shadow:var(--su-shadow)}
.board{width:var(--board-size);height:var(--board-size);display:grid;overflow:hidden;border:2px solid var(--su-text);border-radius:15px;background:var(--su-line);box-shadow:none}
.cell{position:relative;min-width:0;min-height:0;padding:0;display:grid;place-items:center;border:0;border-color:var(--su-line)!important;color:var(--su-text);background:var(--su-surface);box-shadow:none;text-shadow:none;cursor:pointer;touch-action:manipulation}.cell.block-dark{background:color-mix(in srgb,var(--su-panel) 35%,var(--su-surface))}.cell.given{color:color-mix(in srgb,var(--su-violet) 76%,var(--su-text));background:color-mix(in srgb,var(--su-violet) 12%,var(--su-surface));font-weight:1000}.cell.peer:not(.selected){background:color-mix(in srgb,var(--su-cyan) 10%,var(--su-surface))}.cell.same:not(.selected){color:var(--su-cyan-dark);background:color-mix(in srgb,var(--su-cyan) 17%,var(--su-surface))}.cell.selected{z-index:2;color:#17313a;background:color-mix(in srgb,var(--su-mint) 42%,#fff);box-shadow:inset 0 0 0 3px #16866d}.cell.error{color:#fff;background:var(--su-danger);box-shadow:inset 0 0 0 3px #fff}.cell.conflict:not(.error){color:#8d1739;background:#ffe3ea}.cell .notes{color:var(--su-muted)}
.keypad-wrap{width:100%;padding:8px;border:1px solid var(--su-line-strong);border-radius:18px;background:var(--su-panel);box-shadow:0 7px 17px rgba(42,66,82,.07)}.keypad{display:grid;gap:7px}.num-btn{min-width:0;min-height:50px;padding:0;border:1px solid var(--su-line);border-radius:14px;color:var(--su-text);background:var(--su-surface);box-shadow:0 5px 12px rgba(42,66,82,.05);font-size:clamp(17px,4.5vw,27px);font-weight:1000;cursor:pointer}.num-btn.complete{color:var(--su-muted);background:var(--su-surface-2);opacity:.55}
.control-row{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.control-btn{min-width:0;min-height:52px;padding:9px 5px;border:1px solid var(--su-line);border-radius:16px;color:var(--su-text);background:var(--su-surface);box-shadow:0 7px 17px rgba(42,66,82,.07);font-size:clamp(11px,2.8vw,15px);font-weight:950;cursor:pointer;text-shadow:none}.control-btn.active{color:#075d4c;background:color-mix(in srgb,var(--su-mint) 25%,var(--su-surface));border-color:var(--su-mint)}.control-btn.red{color:#fff;background:var(--su-danger);border-color:var(--su-danger)}html[data-theme="dark"] .control-btn.red{color:#481021}.num-btn:active,.control-btn:active,.icon-btn:active{transform:scale(.97)}
.legal-footer{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;padding:8px 10px max(7px,env(safe-area-inset-bottom));color:var(--su-muted);font-size:11px;letter-spacing:.02em}.legal-footer a{color:inherit;text-decoration:none}.legal-footer a:hover{text-decoration:underline}
.modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:max(20px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom));overflow-y:auto;background:rgba(19,37,47,.62);backdrop-filter:blur(12px);transition:opacity .2s ease}.modal.hidden{opacity:0;pointer-events:none}.modal-card{width:min(100%,500px);margin:auto;padding:0;border:1px solid var(--su-line-strong);border-radius:26px;background:var(--su-surface);box-shadow:0 30px 80px rgba(20,44,56,.28);overflow:hidden}.modal-inner{padding:clamp(22px,5vw,34px);border:0;border-radius:0;color:var(--su-text);background:var(--su-surface);text-align:center}.modal h1{margin:0;color:var(--su-text);font-size:clamp(34px,9vw,52px);line-height:1;font-weight:1000;letter-spacing:-.05em;text-shadow:none}.modal p{max-width:40ch;margin:10px auto 20px;color:var(--su-muted);line-height:1.48;font-weight:700;text-shadow:none}.option-title{margin:15px 0 7px;text-align:left;color:var(--su-muted);font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.1em}.option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.option-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.option-btn,.modal-btn{min-height:50px;border:1px solid var(--su-line);border-radius:15px;color:var(--su-text);background:var(--su-surface-2);box-shadow:none;font-weight:950;cursor:pointer}.option-btn.selected{color:#fff;background:linear-gradient(135deg,var(--su-violet),var(--su-cyan));border-color:var(--su-violet)}.modal-btn{width:100%;margin-top:12px;color:#fff;background:linear-gradient(135deg,var(--su-cyan-dark),var(--su-cyan),var(--su-mint));border:0;font-size:16px}.win-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:16px 0 4px}.win-stat{padding:12px 7px;border:1px solid var(--su-line);border-radius:15px;color:var(--su-text);background:var(--su-surface-2)}.win-stat b{display:block;font-size:20px}.win-stat span{display:block;color:var(--su-muted);font-size:11px;font-weight:850}.win-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:14px}.win-actions .modal-btn{margin:0}.loading{display:none;margin-top:12px;color:var(--su-muted);font-weight:850}.loading.show{display:block}
.toast{position:fixed;z-index:2000;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translate(-50%,18px);max-width:88vw;padding:10px 15px;border:1px solid var(--su-line);border-radius:999px;color:var(--su-text);background:var(--su-surface);box-shadow:var(--su-shadow);opacity:0;pointer-events:none;transition:.2s ease;text-align:center;font-weight:850;font-size:13px}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{color:#fff;background:var(--su-danger)}.toast.success{color:#063f35;background:var(--su-mint)}
@media(max-width:430px){.brand-sub{display:none}.topbar{min-height:56px;padding-block:7px}.icon-btn{width:40px;height:40px}.theme-toggle{height:40px;width:60px}.game{padding-top:10px;gap:8px}.board-shell{padding:7px;border-radius:18px}.keypad-wrap{padding:6px}.keypad{gap:4px}.num-btn{min-height:44px;border-radius:11px}.control-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.control-btn{min-height:48px;border-radius:14px;font-size:12px}.win-actions{grid-template-columns:1fr}}
@media(min-width:700px) and (orientation:portrait){:root{--su-header:78px}.topbar{padding-inline:20px}.brand-title{font-size:36px}.brand-sub{font-size:13px}.icon-btn,.theme-toggle{height:54px}.icon-btn{width:54px}.theme-toggle{width:82px}.theme-toggle-track{width:72px;height:42px}.theme-toggle-thumb{width:32px;height:32px;top:5px;left:5px;transform:translateX(30px)}html[data-theme="dark"] .theme-toggle-thumb{transform:translateX(0)}.theme-toggle-sun,.theme-toggle-moon{top:12px;width:18px;height:18px}.game{gap:14px;padding-top:18px}.board-shell{padding:14px;border-radius:30px}.keypad-wrap{padding:11px}.keypad{gap:9px}.num-btn{min-height:68px;border-radius:19px;font-size:31px}.control-row{gap:12px}.control-btn{min-height:68px;border-radius:20px;font-size:18px}.modal-card{max-width:680px}.modal-inner{padding:42px}.option-btn,.modal-btn{min-height:68px;font-size:19px}.option-title{font-size:14px}.modal p{font-size:17px}}
@media(min-width:760px) and (orientation:landscape){:root{--su-header:64px}.game{max-width:1060px;grid-template-columns:minmax(0,1fr) minmax(250px,300px);grid-template-rows:auto auto;column-gap:18px;row-gap:12px;align-items:center;align-content:center;padding:16px 0 10px}.board-zone{grid-column:1;grid-row:1/3;width:100%;min-width:0}.keypad-wrap{grid-column:2;grid-row:1;align-self:end}.control-row{grid-column:2;grid-row:2;align-self:start;grid-template-columns:repeat(2,minmax(0,1fr))}.control-btn{min-height:54px;font-size:14px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
html.gq-sudoku body{color:var(--su-text);background:radial-gradient(circle at 0 0,rgba(24,191,210,.18),transparent 29rem),radial-gradient(circle at 100% 6%,rgba(121,101,223,.14),transparent 28rem),linear-gradient(180deg,color-mix(in srgb,var(--su-bg) 84%,#fff),var(--su-bg))}
html.gq-sudoku .topbar{color:var(--su-text);background:color-mix(in srgb,var(--su-surface) 88%,transparent);border-color:color-mix(in srgb,var(--su-line) 75%,transparent);box-shadow:none}
html.gq-sudoku .brand-title{color:var(--su-text);text-shadow:none}html.gq-sudoku .brand-sub{color:var(--su-muted)}
html.gq-sudoku .icon-btn:not(.red){color:var(--su-text);background:var(--su-surface);border-color:var(--su-line);box-shadow:0 4px 12px rgba(40,68,84,.06)}
html.gq-sudoku .board-shell{background:color-mix(in srgb,var(--su-panel) 88%,var(--su-surface));border-color:var(--su-line-strong);box-shadow:var(--su-shadow)}
html.gq-sudoku .keypad-wrap{background:var(--su-panel);border-color:var(--su-line-strong);box-shadow:0 7px 17px rgba(42,66,82,.07)}
html.gq-sudoku .num-btn{color:var(--su-text);background:var(--su-surface);border-color:var(--su-line);box-shadow:0 5px 12px rgba(42,66,82,.05);text-shadow:none}
html.gq-sudoku .num-btn.complete{color:var(--su-muted);background:var(--su-surface-2)}
html.gq-sudoku .control-btn:not(.active):not(.red){color:var(--su-text);background:var(--su-surface);border-color:var(--su-line);box-shadow:0 7px 17px rgba(42,66,82,.07);text-shadow:none}
html.gq-sudoku .cell.block-dark{color:var(--su-text);background:color-mix(in srgb,var(--su-panel) 35%,var(--su-surface))}
html.gq-sudoku .cell.same:not(.selected){color:var(--su-cyan-dark);background:color-mix(in srgb,var(--su-cyan) 17%,var(--su-surface))}
html.gq-sudoku .cell.error{color:#fff;background:var(--su-danger)}
html.gq-sudoku .modal{background:rgba(19,37,47,.62)}html.gq-sudoku .modal-card{background:var(--su-surface);box-shadow:0 30px 80px rgba(20,44,56,.28)}html.gq-sudoku .modal-inner{color:var(--su-text);background:var(--su-surface);border-color:transparent}
html.gq-sudoku .modal h1{color:var(--su-text);text-shadow:none}html.gq-sudoku .modal p{color:var(--su-muted)}html.gq-sudoku .option-title{color:var(--su-muted)}html.gq-sudoku .loading{color:var(--su-muted)}
html.gq-sudoku .win-stat{color:var(--su-text);background:var(--su-surface-2);border-color:var(--su-line)}html.gq-sudoku .win-stat span{color:var(--su-muted)}
html.gq-sudoku .theme-toggle-track{background:var(--su-surface-2);border-color:transparent;box-shadow:inset 0 0 0 1px var(--su-line)}
html.gq-sudoku .option-btn.selected{color:#fff;background:#604bc6;border-color:#604bc6}
html.gq-sudoku .modal-btn{color:#fff;background:#067f92;border-color:#067f92}
html[data-theme="dark"].gq-sudoku .option-btn.selected{color:#21184d;background:#ad9cff;border-color:#ad9cff}
html[data-theme="dark"].gq-sudoku .modal-btn{color:#102c35;background:#8ae8f1;border-color:#8ae8f1}
