.board-container{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.25rem}.game-difficulty-row{width:min(95vw,calc(100dvh - 280px),560px)}.game-difficulty-link{font-size:.75rem;font-weight:500;color:var(--color-text-muted, #9ca3af);text-decoration:none;text-transform:uppercase;letter-spacing:.06em}.game-difficulty-link:hover{color:var(--color-primary, #2563eb);text-decoration:underline}.game-difficulty-link:focus-visible{outline:3px solid var(--color-primary, #2563eb);outline-offset:2px;border-radius:2px}.board{display:inline-grid;grid-template-rows:repeat(9,1fr);width:min(95vw,calc(100dvh - 280px),560px);aspect-ratio:1;border:2px solid var(--color-text, #333);background:var(--color-bg, #fff);gap:0}.board-row{display:grid;grid-template-columns:repeat(9,1fr)}.cell{display:flex;align-items:center;justify-content:center;background:var(--color-bg, #fff);font-size:clamp(.9rem,4vw,1.5rem);cursor:pointer;user-select:none;aspect-ratio:1;outline:none;min-width:24px;min-height:24px;border:0;border-right:1px solid var(--color-border-light, #ddd);border-bottom:1px solid var(--color-border-light, #ddd)}.cell:nth-child(9){border-right:0}.board-row:nth-child(9) .cell{border-bottom:0}.cell:nth-child(3),.cell:nth-child(6){border-right-color:var(--color-border-box, #999)}.board-row:nth-child(3) .cell,.board-row:nth-child(6) .cell{border-bottom-color:var(--color-border-box, #999)}.cell--given{font-weight:700;color:var(--color-text, #1a1a1a)}.cell--editable{color:var(--color-primary, #2563eb)}.cell--selected{background:var(--color-cell-selected, #dbeafe)}.cell--highlighted{background:var(--color-cell-highlighted, #eff6ff)}.cell:focus-visible{outline:3px solid var(--color-primary, #2563eb);outline-offset:-3px;z-index:1}.board-controls{display:flex;width:min(95vw,calc(100dvh - 280px),560px);justify-content:center;gap:var(--space-sm, .5rem)}.board-controls button{padding:var(--space-sm, .5rem) var(--space-md, 1rem);font-size:var(--text-base, 1rem);border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-sm, 4px);background:var(--color-bg-alt, #f9fafb);cursor:pointer;min-width:44px;min-height:44px}.board-controls button:focus-visible{outline:3px solid var(--color-primary, #2563eb);outline-offset:2px}.board--paused{position:relative;filter:blur(4px);pointer-events:none;user-select:none}.board-paused-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--color-pause-overlay, rgba(255, 255, 255, .6));filter:none;pointer-events:all;z-index:10;border-radius:2px}.board-paused-btn{font-size:1.25rem;font-weight:700;padding:.75rem 2rem;border:2px solid var(--color-primary, #2563eb);border-radius:8px;background:var(--color-bg, #fff);color:var(--color-primary, #2563eb);cursor:pointer;filter:none}.board-paused-btn:hover{background:var(--color-cell-highlighted, #eff6ff)}.board-paused-btn:focus-visible{outline:3px solid var(--color-primary, #2563eb);outline-offset:2px}@media(prefers-reduced-motion:no-preference){.board--paused{transition:filter .15s ease}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.number-pad{display:grid;grid-template-columns:repeat(5,1fr);gap:.25rem;width:min(95vw,calc(100dvh - 280px),560px)}.number-pad__btn{display:flex;align-items:center;justify-content:center;position:relative;min-width:36px;min-height:44px;font-size:1.125rem;font-weight:600;border:1px solid var(--color-border-input, #d1d5db);border-radius:6px;background:var(--color-bg-input, #f9fafb);color:var(--color-text, #111827);cursor:pointer;user-select:none;padding:.25rem}.number-pad__btn:hover{background:var(--color-bg-input-hover, #e5e7eb)}.number-pad__btn:active{background:var(--color-border-input, #d1d5db)}.number-pad__btn:focus-visible{outline:3px solid var(--color-primary, #2563eb);outline-offset:2px}.number-pad__btn--erase{color:var(--color-error, #dc2626)}.number-pad__count{position:absolute;top:2px;right:4px;font-size:.6rem;line-height:1;color:var(--color-text-muted, #9ca3af);font-weight:400;pointer-events:none}.number-pad__btn--completed{opacity:.3}.number-pad__btn--active,.toolbar-btn--active{background:var(--color-active-bg, #dbeafe);border-color:var(--color-active-border, #93c5fd);color:var(--color-active-text, #1d4ed8)}.game-toolbar-row{display:flex;align-items:center;justify-content:space-between;width:min(95vw,calc(100dvh - 280px),560px);gap:.5rem}.game-toolbar-tools{display:flex;gap:.25rem}.toolbar-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--color-border-input, #d1d5db);border-radius:6px;background:var(--color-bg-input, #f9fafb);cursor:pointer;color:var(--color-text-secondary, #374151);padding:0}.toolbar-btn:hover{background:var(--color-bg-input-hover, #e5e7eb)}.toolbar-btn:focus-visible{outline:3px solid var(--color-primary, #2563eb);outline-offset:2px}.toolbar-btn:disabled{opacity:.35;cursor:not-allowed}.toolbar-btn--print{display:none;text-decoration:none}@media(min-width:768px){.toolbar-btn--print{display:inline-flex}}.toolbar-btn--active{background:var(--color-active-bg, #dbeafe);border-color:var(--color-primary, #2563eb);color:var(--color-active-text, #1d4ed8)}.daily-puzzle-btn{display:none}.cell--notes{padding:0}.cell-notes{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:100%;height:100%;align-items:center;justify-items:center}.cell-note{font-size:clamp(.4rem,1.5vw,.65rem);line-height:1;color:var(--color-text-secondary, #6b7280)}.cell--conflict{background-color:#fef2f2}.cell--conflict.cell--selected{background-color:#fee2e2}.conflict-indicator{position:absolute;top:2px;right:2px;width:6px;height:6px;border-radius:50%;background:var(--color-error, #dc2626)}.cell{position:relative}[data-theme=dark] .cell--conflict{background-color:#3b0a0a}[data-theme=dark] .cell--conflict.cell--selected{background-color:#5a1212}.timer-container{display:flex;align-items:center;gap:.5rem}.timer{font-family:SF Mono,Cascadia Mono,Consolas,monospace;font-variant-numeric:tabular-nums;font-size:1.25rem;min-width:4ch;text-align:center}@media(prefers-reduced-motion:reduce){.timer,.conflict-indicator{animation:none;transition:none}}.modal-backdrop{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:50;animation:fade-in .2s ease-out}.modal{background:var(--color-bg, #fff);border-radius:12px;padding:2rem;max-width:min(90vw,400px);width:100%;box-shadow:0 10px 40px #0003;animation:slide-up .25s ease-out}.modal__title{font-size:1.5rem;font-weight:700;margin:0 0 .25rem;text-align:center}.modal__subtitle{color:var(--color-text-secondary, #6b7280);text-align:center;margin:0 0 1.5rem}.modal__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:0 0 1.5rem;padding:0}.modal__stat{text-align:center}.modal__stat dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted, #9ca3af);margin-bottom:.25rem}.modal__stat dd{font-size:1.25rem;font-weight:600;margin:0}.modal__actions{display:flex;flex-direction:column;gap:.5rem}.modal__share-btn{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;padding:.75rem 1rem;font-size:.9375rem;font-weight:500;border:1px solid var(--color-border, #e5e7eb);border-radius:8px;background:var(--color-bg-input, #f9fafb);color:var(--color-text-secondary, #374151);cursor:pointer;min-height:44px;white-space:nowrap}.modal__share-btn:hover{background:var(--color-bg-input-hover, #e5e7eb);color:var(--color-text, #111827)}.modal__share-btn--copied{border-color:var(--color-success-border, #22c55e);background:var(--color-success-bg, #f0fdf4);color:var(--color-success-text, #15803d)}.modal__share-btn:focus-visible{outline:3px solid var(--color-primary, #2563eb);outline-offset:2px}.modal__close{display:block;padding:.75rem;font-size:1rem;font-weight:600;border:none;border-radius:8px;background:var(--color-primary, #2563eb);color:#fff;cursor:pointer;min-height:44px}.modal__close:hover{background:var(--color-primary-dark, #1d4ed8)}.modal__close:focus-visible{outline:3px solid var(--color-primary, #2563eb);outline-offset:2px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal__percentile{text-align:center;font-size:.875rem;color:var(--color-text-secondary, #6b7280);margin:-.75rem 0 1rem}.modal__pb-badge{text-align:center;font-weight:700;color:var(--color-success, #059669);margin:0 0 1rem}.modal__pb-prev{font-weight:400;color:var(--color-text-secondary, #6b7280)}.modal__streak{text-align:center;color:var(--color-text-secondary, #6b7280);margin:0 0 .75rem}.modal__tutorial-link{text-align:center;margin:0 0 1rem;font-size:.875rem}.modal__tutorial-link a{color:var(--color-primary, #2563eb);text-decoration:none}.modal__tutorial-link a:hover{text-decoration:underline}.modal__tutorial-link a:focus-visible{outline:3px solid var(--color-primary, #2563eb);outline-offset:2px;border-radius:2px}.streak-display{display:flex;align-items:center;justify-content:center;gap:1rem;padding:.5rem 0}.streak-display__current{display:flex;align-items:baseline;gap:.25rem}.streak-display__number{font-size:1.5rem;font-weight:700}.streak-display__label{font-size:.875rem;color:var(--color-text-secondary, #6b7280)}.streak-display__best{font-size:.75rem;color:var(--color-text-muted, #9ca3af)}@media(prefers-reduced-motion:reduce){.modal-backdrop,.modal{animation:none}}.ng-diff-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin:1.25rem 0}.ng-diff-btn{display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.625rem .5rem;border:2px solid var(--color-border, #e5e7eb);border-radius:8px;background:var(--color-bg-input, #f9fafb);cursor:pointer;color:var(--color-text, #374151);min-height:56px;transition:border-color .12s,background .12s,color .12s;text-align:center}.ng-diff-btn:hover{border-color:var(--color-active-border, #93c5fd);background:var(--color-cell-highlighted, #eff6ff);color:var(--color-info-text, #1e40af)}.ng-diff-btn--active{border-color:var(--color-primary, #2563eb);background:var(--color-active-bg, #dbeafe);color:var(--color-active-text, #1d4ed8)}.ng-diff-btn:focus-visible{outline:3px solid var(--color-primary, #2563eb);outline-offset:2px}.ng-diff-btn__label{font-size:.9375rem;font-weight:600;line-height:1.2}.ng-diff-btn__desc{font-size:.6875rem;font-weight:400;color:var(--color-text-secondary, #6b7280);line-height:1.3}.ng-diff-btn--active .ng-diff-btn__desc{color:var(--color-primary, #3b82f6)}.ng-actions{display:grid;grid-template-columns:auto 1fr;gap:.5rem;margin-top:.25rem}.ng-cancel{padding:.75rem 1.25rem;border:1px solid var(--color-border, #e5e7eb);border-radius:8px;background:var(--color-bg-input, #f9fafb);font-size:1rem;cursor:pointer;color:var(--color-text-secondary, #6b7280);min-height:44px;white-space:nowrap}.ng-cancel:hover:not(:disabled){background:var(--color-bg-input-hover, #e5e7eb);color:var(--color-text, #374151)}.ng-cancel:disabled{opacity:.5;cursor:not-allowed}.ng-cancel:focus-visible{outline:3px solid var(--color-primary, #2563eb);outline-offset:2px}.ng-confirm{padding:.75rem;border:none;border-radius:8px;background:var(--color-primary, #2563eb);font-size:1rem;font-weight:600;cursor:pointer;color:#fff;min-height:44px}.ng-confirm:hover:not(:disabled){background:var(--color-primary-dark, #1d4ed8)}.ng-confirm:disabled{opacity:.65;cursor:not-allowed}.ng-confirm:focus-visible{outline:3px solid var(--color-primary, #2563eb);outline-offset:3px}.settings-modal{max-width:min(90vw,380px)}.settings-modal__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.settings-modal__title{font-size:1.25rem;font-weight:700;margin:0}.settings-modal__close-x{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:none;cursor:pointer;color:var(--color-text-secondary, #6b7280);border-radius:4px;padding:0}.settings-modal__close-x:hover{background:var(--color-bg-input-hover, #e5e7eb);color:var(--color-text, #111827)}.settings-modal__close-x:focus-visible{outline:3px solid var(--color-primary, #2563eb);outline-offset:2px}.settings-group{padding:.875rem 0;border-bottom:1px solid var(--color-border, #e5e7eb)}.settings-group:last-of-type{border-bottom:none;padding-bottom:.5rem}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.settings-row__label{display:flex;flex-direction:column;gap:.125rem;min-width:0}.settings-row__name{font-size:.9375rem;font-weight:500;color:var(--color-text, #111827)}.settings-row__desc{font-size:.8125rem;color:var(--color-text-secondary, #6b7280)}.settings-toggle{position:relative;flex-shrink:0;width:44px;height:24px;border-radius:12px;border:none;cursor:pointer;padding:0;background:var(--color-border-input, #d1d5db);transition:background .15s ease}.settings-toggle[aria-checked=true]{background:var(--color-primary, #2563eb)}.settings-toggle:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .15s ease}.settings-toggle[aria-checked=true]:after{transform:translate(20px)}.settings-toggle:focus-visible{outline:3px solid var(--color-primary, #2563eb);outline-offset:2px}.settings-segment{display:flex;border:1px solid var(--color-border-input, #d1d5db);border-radius:6px;overflow:hidden}.settings-segment__btn{flex:1;padding:.375rem .25rem;border:none;border-right:1px solid var(--color-border-input, #d1d5db);background:var(--color-bg-input, #f9fafb);color:var(--color-text-secondary, #374151);cursor:pointer;font-size:.8125rem;font-weight:500;white-space:nowrap}.settings-segment__btn:last-child{border-right:none}.settings-segment__btn[aria-pressed=true]{background:var(--color-active-bg, #dbeafe);color:var(--color-active-text, #1d4ed8)}.settings-segment__btn:hover:not([aria-pressed=true]){background:var(--color-bg-input-hover, #e5e7eb)}.settings-segment__btn:focus-visible{outline:3px solid var(--color-primary, #2563eb);outline-offset:-2px;z-index:1}@media(prefers-reduced-motion:reduce){.settings-toggle,.settings-toggle:after{transition:none}}.modal__challenge-btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1rem;font-size:.9375rem;font-weight:500;border:1px solid var(--color-border, #e5e7eb);border-radius:8px;background:var(--color-bg-input, #f9fafb);color:var(--color-text-secondary, #374151);cursor:pointer;min-height:44px;white-space:nowrap}.modal__challenge-btn:hover{background:var(--color-bg-input-hover, #e5e7eb);color:var(--color-text, #111827)}.modal__challenge-btn--copied{border-color:var(--color-success-border, #22c55e);background:var(--color-success-bg, #f0fdf4);color:var(--color-success-text, #15803d)}.modal__challenge-btn:focus-visible{outline:3px solid var(--color-primary, #2563eb);outline-offset:2px}.modal__next-btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1rem;font-size:.9375rem;font-weight:500;border:1px solid var(--color-primary, #2563eb);border-radius:8px;background:transparent;color:var(--color-primary, #2563eb);text-decoration:none;min-height:44px;white-space:nowrap}.modal__next-btn:hover{background:var(--color-cell-highlighted, #eff6ff)}.modal__next-btn:focus-visible{outline:3px solid var(--color-primary, #2563eb);outline-offset:2px}.game-page{display:flex;flex-direction:column;align-items:center;padding:0 .5rem;gap:.5rem;max-width:100vw;overflow-x:hidden}.game-area{display:flex;justify-content:center;gap:1rem;align-items:flex-start;width:100%}.game-area__board{flex:1;max-width:600px;display:flex;justify-content:center;min-height:calc(min(95vw,calc(100dvh - 280px),560px) + 140px)}.ad-slot{display:flex;align-items:center;justify-content:center;background:#f9fafb;border:1px dashed #e5e7eb;color:#d1d5db;font-size:.75rem}.ad-slot--side{display:none;min-height:250px;width:160px;flex-shrink:0}@media(min-width:900px){.ad-slot--side{display:flex}}.ad-slot--bottom{min-height:90px;width:100%;max-width:728px;margin:1rem auto 0}.ad-slot--top{display:none}@media print{.ad-slot{display:none!important}}.shortcuts-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:60}.shortcuts-overlay[hidden]{display:none}.shortcuts-modal{background:var(--color-bg, #fff);border-radius:12px;padding:1.5rem;max-width:min(90vw,380px);width:100%;box-shadow:0 10px 40px #0003}.shortcuts-modal__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.shortcuts-modal__title{font-size:1.125rem;font-weight:700;margin:0}.shortcuts-modal__close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:none;cursor:pointer;color:var(--color-text-secondary, #6b7280);border-radius:4px;padding:0}.shortcuts-modal__close:hover{background:var(--color-bg-input-hover, #e5e7eb)}.shortcuts-modal__close:focus-visible{outline:3px solid var(--color-primary, #2563eb);outline-offset:2px}.shortcuts-table{width:100%;border-collapse:collapse;font-size:.9375rem}.shortcuts-table tr{border-bottom:1px solid var(--color-border, #e5e7eb)}.shortcuts-table tr:last-child{border-bottom:none}.shortcuts-table td{padding:.5rem 0;vertical-align:middle}.shortcuts-table td:first-child{width:40%;padding-right:1rem}.shortcuts-table td:last-child{color:var(--color-text-secondary, #6b7280);font-size:.875rem}kbd{display:inline-block;padding:.15rem .4rem;font-family:var(--font-mono, monospace);font-size:.75rem;background:var(--color-bg-subtle, #f8fafc);border:1px solid var(--color-border-subtle, #e2e8f0);border-bottom-width:2px;border-radius:4px;white-space:nowrap}.game-page__title{font-size:.875rem;font-weight:600;color:var(--color-text-secondary, #6b7280);text-align:center;letter-spacing:.05em;text-transform:uppercase;margin:.5rem 0 .25rem}
