@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 0px);--safe-area-left: env(safe-area-inset-left, 0px);--safe-area-right: env(safe-area-inset-right, 0px);--touch-target-min: 44px;--touch-target-comfortable: 48px;--black: #111111;--black-soft: #1a1a1a;--gray-900: #222222;--gray-800: #333333;--gray-700: #444444;--gray-600: #666666;--gray-500: #888888;--gray-400: #999999;--gray-300: #cccccc;--gray-200: #e5e5e5;--gray-100: #f5f5f5;--white: #ffffff;--success: #22c55e;--error: #ef4444;--warning: #f59e0b;--app-bg: var(--white);--app-bg-gradient: none;--board-bg: var(--white);--modal-bg: var(--white);--stats-bg: var(--gray-100);--cell-bg: var(--white);--cell-hover: var(--gray-100);--cell-selected: var(--gray-100);--cell-highlighted: var(--gray-100);--cell-same-value: var(--gray-200);--cell-conflict: rgba(239, 68, 68, .1);--text-primary: var(--black);--text-secondary: var(--gray-600);--text-muted: var(--gray-500);--text-initial: var(--black);--text-user: var(--gray-700);--note-color: var(--gray-500);--border-color: var(--gray-200);--border-thick: var(--black);--border-gold: var(--black);--button-bg: var(--white);--button-border: var(--gray-200);--button-hover: var(--gray-100);--button-active: var(--gray-200);--button-complete: var(--gray-100);--button-danger-bg: var(--white);--button-danger-border: var(--error);--button-danger-text: var(--error);--button-danger-hover: rgba(239, 68, 68, .05);--accent-color: var(--black);--accent-secondary: var(--gray-700);--accent-hover: var(--gray-900);--note-mode-color: var(--black);--hint-color: var(--gray-600);--hint-bg-hover: var(--gray-100);--gold-warm: var(--black);--gold-glow: var(--gray-100);--iznik-deep: var(--black);--iznik-blue: var(--gray-700);--iznik-light: var(--gray-500);--turquoise-deep: var(--gray-700);--turquoise-soft: var(--gray-500);--terra-warm: var(--error);--terra-muted: var(--error);--success-color: var(--success);--error-color: var(--error);--success-rich: var(--success);--error-rich: var(--error);--error-soft: rgba(239, 68, 68, .1);--easy-bg: var(--gray-100);--easy-text: var(--gray-600);--medium-bg: var(--gray-100);--medium-text: var(--gray-700);--hard-bg: var(--gray-200);--hard-text: var(--gray-800);--expert-bg: var(--gray-200);--expert-text: var(--black);--pause-overlay: rgba(255, 255, 255, .95);--modal-overlay: rgba(0, 0, 0, .5);--shadow-soft: none;--shadow-medium: 0 1px 3px rgba(0, 0, 0, .08);--shadow-elevated: 0 4px 12px rgba(0, 0, 0, .1);--shadow-glow: none;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--ease-smooth: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.34, 1.56, .64, 1)}@media(prefers-color-scheme:dark){:root{--black: #ffffff;--black-soft: #f0f0f0;--gray-900: #e5e5e5;--gray-800: #d0d0d0;--gray-700: #b0b0b0;--gray-600: #909090;--gray-500: #707070;--gray-400: #505050;--gray-300: #404040;--gray-200: #2a2a2a;--gray-100: #1a1a1a;--white: #111111;--app-bg: var(--white);--app-bg-gradient: none;--board-bg: var(--white);--modal-bg: #1a1a1a;--stats-bg: #1a1a1a;--cell-bg: var(--white);--cell-hover: var(--gray-100);--cell-selected: var(--gray-100);--cell-highlighted: var(--gray-100);--cell-same-value: var(--gray-200);--cell-conflict: rgba(239, 68, 68, .15);--text-primary: var(--black);--text-secondary: var(--gray-600);--text-muted: var(--gray-500);--text-initial: var(--black);--text-user: var(--gray-700);--note-color: var(--gray-500);--border-color: var(--gray-200);--border-thick: var(--gray-700);--border-gold: var(--gray-700);--button-bg: var(--white);--button-border: var(--gray-200);--button-hover: var(--gray-100);--button-active: var(--gray-200);--button-complete: var(--gray-100);--pause-overlay: rgba(17, 17, 17, .95);--modal-overlay: rgba(0, 0, 0, .7);--shadow-soft: none;--shadow-medium: 0 1px 3px rgba(0, 0, 0, .3);--shadow-elevated: 0 4px 12px rgba(0, 0, 0, .4);--shadow-glow: none;--gold-warm: var(--gray-700);--gold-glow: var(--gray-100);--iznik-deep: var(--black);--iznik-blue: var(--gray-700);--iznik-light: var(--gray-500);--turquoise-deep: var(--gray-700);--turquoise-soft: var(--gray-500);--terra-warm: #ff6b6b;--terra-muted: #ff6b6b;--success-rich: #4ade80;--error-rich: #f87171;--error-soft: rgba(248, 113, 113, .15);--easy-bg: var(--gray-100);--easy-text: var(--gray-600);--medium-bg: var(--gray-100);--medium-text: var(--gray-700);--hard-bg: var(--gray-200);--hard-text: var(--gray-800);--expert-bg: var(--gray-200);--expert-text: var(--black)}}*{box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--app-bg);color:var(--text-primary);min-height:100vh;min-height:100dvh;position:relative;-webkit-text-size-adjust:100%;-webkit-overflow-scrolling:touch;overscroll-behavior:none;touch-action:pan-x pan-y;overscroll-behavior-y:contain}button{font-family:inherit}.board,.cell,.number-pad,.controls{-webkit-user-select:none;user-select:none}:focus-visible{outline:2px solid var(--black);outline-offset:2px}:focus:not(:focus-visible){outline:none}.font-display,.font-mono{font-family:JetBrains Mono,SF Mono,Monaco,Cascadia Code,monospace}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes subtlePulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@media(max-width:374px){:root{--radius-sm: 4px;--radius-md: 8px;--radius-lg: 14px}html{font-size:14px}}@media(max-width:480px){body{-webkit-touch-callout:none}a,button,input,select,textarea{touch-action:manipulation}}@media(max-height:500px)and (orientation:landscape){html{font-size:13px}}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){body:before{opacity:.01}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(hover:none)and (pointer:coarse){button,[role=button],input[type=button],input[type=submit]{min-height:var(--touch-target-min)}}@media(display-mode:standalone){body{padding-top:var(--safe-area-top);padding-bottom:var(--safe-area-bottom)}}@supports (-webkit-touch-callout: none){body{padding-bottom:max(var(--safe-area-bottom),20px)}}.cell{width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;background-color:var(--cell-bg);border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);cursor:pointer;transition:background-color .1s var(--ease-smooth);-webkit-user-select:none;user-select:none;position:relative;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.cell:hover{background-color:var(--cell-hover)}.cell--selected{background-color:var(--cell-selected)!important;box-shadow:inset 0 0 0 2px var(--text-primary);z-index:5}.cell--highlighted{background-color:var(--cell-highlighted)}.cell--same-value{background-color:var(--cell-same-value)}.cell--initial .cell__value{color:var(--text-initial);font-weight:600}.cell--error .cell__value{color:var(--error-color);animation:pulse .3s var(--ease-smooth)}.cell--conflict{background-color:var(--cell-conflict)!important}.cell--border-right{border-right:2px solid var(--border-thick)}.cell--border-bottom{border-bottom:2px solid var(--border-thick)}.cell__value{font-family:JetBrains Mono,monospace;font-size:clamp(1.2rem,5vw,1.6rem);color:var(--text-user);line-height:1;font-weight:500}.cell__notes{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:100%;height:100%;padding:2px}.cell__note{font-family:JetBrains Mono,monospace;font-size:.5rem;font-weight:400;display:flex;align-items:center;justify-content:center;color:var(--note-color);opacity:0;transition:opacity .1s var(--ease-smooth)}.cell__note--visible{opacity:1}@media(max-width:374px){.cell__value{font-size:clamp(1rem,5vw,1.2rem)}.cell__notes{padding:1px}.cell__note{font-size:.35rem}.cell--selected{box-shadow:inset 0 0 0 1.5px var(--text-primary)}}@media(max-width:480px)and (min-width:375px){.cell__value{font-size:clamp(1.1rem,6vw,1.4rem)}.cell__note{font-size:.4rem}}@media(max-height:600px)and (orientation:landscape){.cell__value{font-size:clamp(.9rem,4vh,1.2rem)}.cell__notes{padding:1px}.cell__note{font-size:.3rem}.cell--selected{box-shadow:inset 0 0 0 1.5px var(--text-primary)}}.cell--shake{animation:shake .5s var(--ease-smooth)}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}.cell--entering .cell__value{animation:cellValueEnter .2s var(--ease-bounce)}@keyframes cellValueEnter{0%{opacity:0;transform:scale(.5)}50%{transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@media(hover:none){.cell:active{transform:scale(.96);transition:transform .1s var(--ease-smooth)}}@media(prefers-reduced-motion:reduce){.cell,.cell__value,.cell--shake,.cell--entering .cell__value{animation:none!important;transition:none!important}}.board-wrapper{width:100%;position:relative;animation:fadeIn .3s var(--ease-smooth) both}.board{display:grid;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(9,1fr);width:100%;aspect-ratio:1;background-color:var(--board-bg);border:2px solid var(--text-primary);touch-action:manipulation;position:relative;z-index:1;overflow:hidden}.board:before{content:"";position:absolute;top:calc(33.333% - 1px);left:0;right:0;height:2px;background:var(--text-primary);z-index:10;pointer-events:none}.board:after{content:"";position:absolute;top:calc(66.666% - 1px);left:0;right:0;height:2px;background:var(--text-primary);z-index:10;pointer-events:none}.board--paused{position:relative}.board__pause-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--pause-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);gap:.75rem;z-index:100}.board__pause-icon-svg{color:var(--text-primary);opacity:.6}.board__pause-text{font-family:JetBrains Mono,monospace;font-size:1rem;font-weight:500;color:var(--text-primary);letter-spacing:.05em;text-transform:uppercase}.board__pause-hint{font-family:Inter,sans-serif;font-size:.75rem;font-weight:400;color:var(--text-muted)}.board-corner{display:none}@media(max-width:374px){.board{border-width:1.5px}.board__pause-icon-svg{width:28px;height:28px}.board__pause-text{font-size:.85rem}.board__pause-hint{font-size:.65rem}}@media(max-width:480px)and (min-width:375px){.board__pause-text{font-size:.9rem}}@media(max-height:600px)and (orientation:landscape){.board-wrapper{height:100%;width:auto}.board{height:100%;width:auto;aspect-ratio:1}.board__pause-overlay{gap:.5rem}.board__pause-icon-svg{width:20px;height:20px}.board__pause-text{font-size:.75rem}.board__pause-hint{font-size:.6rem}}@media(hover:none)and (pointer:coarse){.board{touch-action:manipulation}}.header{display:flex;align-items:center;gap:.5rem}.header__difficulty-badge{padding:.2rem .4rem;border-radius:3px;font-family:JetBrains Mono,monospace;font-size:.55rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.header__difficulty-badge--easy{background:var(--easy-bg);color:var(--easy-text)}.header__difficulty-badge--medium{background:var(--medium-bg);color:var(--medium-text)}.header__difficulty-badge--hard{background:var(--hard-bg);color:var(--hard-text)}.header__difficulty-badge--expert{background:var(--expert-bg);color:var(--expert-text)}.header__timer{display:flex;align-items:center;gap:.3rem}.header__timer-button{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;transition:all .12s var(--ease-smooth);touch-action:manipulation}.header__timer-button:active{transform:scale(.92);background:var(--gray-100)}.header__timer-icon{display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.header__timer-value{font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:500;color:var(--text-primary);min-width:40px}.header__mistakes{display:flex;align-items:center;gap:.2rem}.header__mistakes-label{font-family:JetBrains Mono,monospace;font-size:.55rem;font-weight:400;color:var(--text-muted);text-transform:uppercase}.header__mistakes-value{font-family:JetBrains Mono,monospace;font-size:.8rem;font-weight:500;color:var(--text-primary)}.header__mistakes-count--error{color:var(--error-color)}@media(max-width:374px){.header{gap:.35rem}.header__difficulty-badge{font-size:.5rem;padding:.15rem .3rem}.header__timer-button{width:24px;height:24px}.header__timer-value{font-size:.75rem;min-width:35px}.header__mistakes-label{font-size:.5rem}.header__mistakes-value{font-size:.7rem}}@media(hover:none)and (pointer:coarse){.header__timer-button{min-width:28px;min-height:28px}}.controls{display:flex;gap:.35rem;justify-content:center;flex-wrap:wrap}.controls__button{display:flex;align-items:center;justify-content:center;gap:.25rem;padding:.4rem .6rem;min-height:36px;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;transition:all .12s var(--ease-smooth);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.controls__button:active:not(:disabled){transform:scale(.94);background:var(--gray-100)}.controls__button:disabled{opacity:.3;cursor:not-allowed}.controls__button--active{background:var(--gray-200);border-color:var(--text-primary)}.controls__icon{display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.controls__icon svg{width:18px;height:18px}.controls__button--active .controls__icon{color:var(--text-primary)}.controls__label{font-family:JetBrains Mono,monospace;font-size:.55rem;font-weight:500;color:var(--text-muted);text-transform:uppercase}.controls__button--active .controls__label{color:var(--text-primary)}@media(max-width:374px){.controls{gap:.25rem}.controls__button{padding:.35rem .5rem;min-height:34px}.controls__icon svg{width:16px;height:16px}.controls__label{font-size:.5rem}}@media(hover:none)and (pointer:coarse){.controls__button{min-height:38px}}.number-pad{display:flex;flex-direction:column;gap:.4rem;width:100%}.number-pad__grid{display:grid;grid-template-columns:repeat(9,1fr);gap:4px}.number-pad__button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:.5rem 0;min-height:52px;background:var(--gray-100);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;transition:all .12s var(--ease-smooth);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.number-pad__button:active:not(:disabled){transform:scale(.94);background:var(--gray-200)}.number-pad__button:disabled{opacity:.3;cursor:not-allowed}.number-pad__button--complete{background:transparent;opacity:.4}.number-pad__button--note-mode{border-style:dashed;border-color:var(--text-secondary)}.number-pad__number{font-family:JetBrains Mono,monospace;font-size:1.25rem;font-weight:600;color:var(--text-primary);line-height:1}.number-pad__button--complete .number-pad__number{color:var(--text-muted)}.number-pad__count{font-family:JetBrains Mono,monospace;font-size:.55rem;font-weight:500;color:var(--text-muted)}.number-pad__clear{display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.5rem;min-height:40px;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);font-family:JetBrains Mono,monospace;font-size:.7rem;font-weight:500;text-transform:uppercase;cursor:pointer;transition:all .12s var(--ease-smooth);touch-action:manipulation}.number-pad__clear:active:not(:disabled){transform:scale(.96);background:var(--gray-100);border-color:var(--error-color);color:var(--error-color)}.number-pad__clear:disabled{opacity:.3;cursor:not-allowed}@media(max-width:374px){.number-pad__grid{gap:3px}.number-pad__button{min-height:46px;padding:.4rem 0}.number-pad__number{font-size:1.1rem}.number-pad__count{font-size:.5rem}.number-pad__clear{min-height:36px;font-size:.65rem}}@media(min-width:400px){.number-pad__button{min-height:56px}.number-pad__number{font-size:1.35rem}}@media(hover:none)and (pointer:coarse){.number-pad__button{min-height:50px}.number-pad__clear{min-height:42px}}.confetti{position:fixed;inset:0;pointer-events:none;z-index:9999;overflow:hidden}.confetti__piece{position:absolute;width:12px;height:12px;opacity:0;animation:confettiFall linear forwards}.confetti__piece--square{border-radius:2px}.confetti__piece--circle{border-radius:50%}.confetti__piece--star{width:0;height:0;background:transparent!important;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:12px solid currentColor}.confetti__piece--star:after{content:"";position:absolute;top:4px;left:-6px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:12px solid currentColor}@keyframes confettiFall{0%{opacity:1;transform:translateY(0) rotate(0) scale(var(--scale, 1))}10%{opacity:1}to{opacity:0;transform:translateY(100vh) rotate(720deg) scale(var(--scale, 1))}}.confetti__piece:nth-child(odd){animation-name:confettiFallWobble}@keyframes confettiFallWobble{0%{opacity:1;transform:translateY(0) translate(0) rotate(0)}25%{transform:translateY(25vh) translate(15px) rotate(180deg)}50%{transform:translateY(50vh) translate(-10px) rotate(360deg)}75%{transform:translateY(75vh) translate(20px) rotate(540deg)}to{opacity:0;transform:translateY(100vh) translate(-5px) rotate(720deg)}}@media(prefers-reduced-motion:reduce){.confetti__piece{animation:confettiFallSimple 2s linear forwards}@keyframes confettiFallSimple{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(100vh)}}}.confirm-overlay{position:fixed;inset:0;background:var(--modal-overlay);display:flex;align-items:center;justify-content:center;z-index:2000;padding:1.5rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .15s var(--ease-smooth)}.confirm-dialog{background:var(--modal-bg);border-radius:var(--radius-md);padding:1.5rem;width:100%;max-width:320px;animation:scaleIn .15s var(--ease-smooth);position:relative;border:1px solid var(--border-color)}.confirm-dialog--danger{border-top:2px solid var(--error-color)}.confirm-dialog__close{position:absolute;top:.75rem;right:.75rem;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all .15s var(--ease-smooth)}.confirm-dialog__close:hover{color:var(--text-primary);background:var(--gray-100)}.confirm-dialog__title{font-family:JetBrains Mono,monospace;font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:0 0 .625rem;padding-right:2rem}.confirm-dialog__message{font-family:Inter,sans-serif;font-size:.85rem;color:var(--text-secondary);margin:0 0 1.25rem;line-height:1.5}.confirm-dialog__actions{display:flex;gap:.625rem;justify-content:flex-end}.confirm-dialog__button{padding:.625rem 1.25rem;border-radius:var(--radius-sm);font-family:JetBrains Mono,monospace;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .15s var(--ease-smooth);border:none}.confirm-dialog__button--cancel{background:transparent;color:var(--text-primary);border:1px solid var(--border-color)}.confirm-dialog__button--cancel:hover{background:var(--gray-100);border-color:var(--text-primary)}.confirm-dialog__button--confirm{background:var(--text-primary);color:var(--app-bg)}.confirm-dialog__button--confirm:hover{opacity:.85}.confirm-dialog__button--danger{background:var(--error-color);color:#fff}.confirm-dialog__button--danger:hover{opacity:.85}@media(max-width:480px){.confirm-dialog{padding:1.25rem;max-width:290px}.confirm-dialog__title{font-size:1rem}.confirm-dialog__message{font-size:.8rem}.confirm-dialog__button{padding:.5rem 1rem;font-size:.75rem}}@media(hover:none)and (pointer:coarse){.confirm-dialog__close{min-width:var(--touch-target-min);min-height:var(--touch-target-min)}.confirm-dialog__button{min-height:var(--touch-target-min)}}.modal-overlay{position:fixed;inset:0;background:var(--modal-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1.5rem;padding-top:calc(1.5rem + var(--safe-area-top));padding-bottom:calc(1.5rem + var(--safe-area-bottom));padding-left:calc(1.5rem + var(--safe-area-left));padding-right:calc(1.5rem + var(--safe-area-right));-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .15s var(--ease-smooth);overflow-y:auto;overscroll-behavior:contain}.modal{background:var(--modal-bg);border-radius:var(--radius-md);width:100%;max-width:400px;border:1px solid var(--border-color);overflow:hidden;position:relative;animation:modalSlideIn .2s var(--ease-smooth)}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.modal__header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color)}.modal__title{font-family:JetBrains Mono,monospace;font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:0}.modal__close{background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-sm);width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);transition:all .15s var(--ease-smooth)}.modal__close:hover{border-color:var(--text-primary);color:var(--text-primary);background:var(--gray-100)}.modal__content{padding:1.5rem}.modal__section{margin-bottom:1.5rem}.modal__section-title{font-family:JetBrains Mono,monospace;font-size:.7rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 .875rem}.modal__difficulty-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.modal__difficulty-option{display:flex;flex-direction:column;align-items:center;padding:1rem .75rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:transparent;cursor:pointer;transition:all .15s var(--ease-smooth)}.modal__difficulty-option:hover{background:var(--gray-100);border-color:var(--text-primary)}.modal__difficulty-option--selected{border-color:var(--text-primary);background:var(--gray-100);border-width:2px}.modal__difficulty-icon{color:var(--text-secondary);margin-bottom:.5rem;transition:color .15s var(--ease-smooth)}.modal__difficulty-option--selected .modal__difficulty-icon{color:var(--text-primary)}.modal__difficulty-label{font-family:JetBrains Mono,monospace;font-size:.9rem;font-weight:500;color:var(--text-primary);margin-bottom:.2rem}.modal__difficulty-desc{font-family:Inter,sans-serif;font-size:.65rem;color:var(--text-muted);font-weight:400}.modal__actions{display:flex;flex-direction:column;gap:.625rem}.modal__button{padding:.875rem 1.5rem;border-radius:var(--radius-sm);font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s var(--ease-smooth);border:none}.modal__button--primary{background:var(--text-primary);color:var(--app-bg)}.modal__button--primary:hover{opacity:.85}.modal__button--secondary{background:transparent;color:var(--text-primary);border:1px solid var(--border-color)}.modal__button--secondary:hover{background:var(--gray-100);border-color:var(--text-primary)}@media(max-width:374px){.modal-overlay{padding:.75rem;padding-top:calc(.75rem + var(--safe-area-top));padding-bottom:calc(.75rem + var(--safe-area-bottom))}.modal{max-height:calc(100vh - 1.5rem - var(--safe-area-top) - var(--safe-area-bottom));overflow-y:auto}.modal__header{padding:1rem;position:sticky;top:0;background:var(--modal-bg);z-index:1}.modal__title{font-size:1rem}.modal__close{width:var(--touch-target-min);height:var(--touch-target-min)}.modal__content{padding:1rem}.modal__section{margin-bottom:1rem}.modal__difficulty-grid{gap:.5rem}.modal__difficulty-option{padding:.75rem .5rem;min-height:var(--touch-target-comfortable)}.modal__difficulty-label{font-size:.8rem}.modal__difficulty-desc{font-size:.55rem}.modal__button{padding:.75rem 1rem;font-size:.8rem;min-height:var(--touch-target-comfortable)}}@media(max-width:480px)and (min-width:375px){.modal-overlay{padding:1rem;padding-top:calc(1rem + var(--safe-area-top));padding-bottom:calc(1rem + var(--safe-area-bottom))}.modal{max-height:calc(100vh - 2rem - var(--safe-area-top) - var(--safe-area-bottom));overflow-y:auto}.modal__header{padding:1rem 1.25rem}.modal__close{width:var(--touch-target-min);height:var(--touch-target-min)}.modal__content{padding:1.25rem}.modal__difficulty-grid{gap:.5rem}.modal__difficulty-option{padding:.875rem .625rem;min-height:var(--touch-target-comfortable)}.modal__button{padding:.8rem 1.25rem;font-size:.8rem;min-height:var(--touch-target-comfortable)}}@media(max-height:500px)and (orientation:landscape){.modal-overlay{padding:.5rem 1rem;padding-left:calc(1rem + var(--safe-area-left));padding-right:calc(1rem + var(--safe-area-right));align-items:flex-start;padding-top:calc(.5rem + var(--safe-area-top))}.modal{max-height:calc(100vh - 1rem - var(--safe-area-top) - var(--safe-area-bottom));overflow-y:auto}.modal__header{padding:.75rem 1rem;position:sticky;top:0;background:var(--modal-bg);z-index:1}.modal__content{padding:.75rem 1rem}.modal__section{margin-bottom:.75rem}.modal__difficulty-grid{grid-template-columns:repeat(4,1fr);gap:.4rem}.modal__difficulty-option{padding:.5rem}.modal__difficulty-icon{display:none}.modal__actions{flex-direction:row}.modal__button{flex:1;padding:.5rem .75rem}}@media(hover:none)and (pointer:coarse){.modal__close{min-width:var(--touch-target-min);min-height:var(--touch-target-min)}.modal__difficulty-option{min-height:var(--touch-target-comfortable)}.modal__difficulty-option:active{background:var(--gray-200)}.modal__button{min-height:var(--touch-target-comfortable)}.modal__button:active{opacity:.7}}.game-over-modal{background:var(--modal-bg);border-radius:var(--radius-md);width:100%;max-width:360px;padding:2rem 1.75rem;text-align:center;border:1px solid var(--border-color);position:relative;animation:modalSlideIn .2s var(--ease-smooth)}.game-over-modal--win{border-top:2px solid var(--text-primary)}.game-over-modal--lose{border-top:2px solid var(--error-color)}.game-over-modal__icon{margin-bottom:1rem;color:var(--text-secondary)}.game-over-modal--win .game-over-modal__icon{color:var(--text-primary)}.game-over-modal--lose .game-over-modal__icon{color:var(--error-color);opacity:.7}.game-over-modal__title{font-family:JetBrains Mono,monospace;font-size:1.5rem;font-weight:600;color:var(--text-primary);margin:0 0 .5rem}.game-over-modal__message{font-family:Inter,sans-serif;font-size:.9rem;color:var(--text-secondary);margin:0 0 1.5rem;font-weight:400}.game-over-modal__stats{display:flex;justify-content:center;gap:2rem;margin-bottom:1.5rem;padding:1rem 1.25rem;background:var(--stats-bg);border-radius:var(--radius-sm);border:1px solid var(--border-color)}.game-over-modal__stat{display:flex;flex-direction:column;align-items:center;gap:.25rem}.game-over-modal__stat-label{font-family:JetBrains Mono,monospace;font-size:.6rem;font-weight:400;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.game-over-modal__stat-value{font-family:JetBrains Mono,monospace;font-size:1.1rem;font-weight:600;color:var(--text-primary)}.game-over-modal__actions{display:flex;flex-direction:column;gap:.625rem}.game-over-modal__button{padding:.875rem 1.5rem;border-radius:var(--radius-sm);font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s var(--ease-smooth);border:none}.game-over-modal__button--primary{background:var(--text-primary);color:var(--app-bg)}.game-over-modal__button--primary:hover{opacity:.85}.game-over-modal__button--secondary{background:transparent;color:var(--text-primary);border:1px solid var(--border-color)}.game-over-modal__button--secondary:hover{background:var(--gray-100);border-color:var(--text-primary)}@media(max-width:480px){.game-over-modal{padding:1.75rem 1.5rem}.game-over-modal__title{font-size:1.35rem}.game-over-modal__stats{gap:1.5rem;padding:.875rem 1rem}.game-over-modal__stat-value{font-size:1rem}.game-over-modal__button{padding:.8rem 1.25rem;font-size:.8rem}}@media(hover:none)and (pointer:coarse){.game-over-modal__button{min-height:var(--touch-target-comfortable)}.game-over-modal__button:active{opacity:.7}}.stats-modal{background:var(--modal-bg);border-radius:var(--radius-md);width:100%;max-width:400px;border:1px solid var(--border-color);overflow:hidden;position:relative;animation:modalSlideIn .2s var(--ease-smooth)}.stats-modal__header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color)}.stats-modal__title{font-family:JetBrains Mono,monospace;font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:0}.stats-modal__close{background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-sm);width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);transition:all .15s var(--ease-smooth)}.stats-modal__close:hover{border-color:var(--text-primary);color:var(--text-primary);background:var(--gray-100)}.stats-modal__content{padding:1.5rem}.stats-modal__overview{display:flex;justify-content:space-around;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-color)}.stats-modal__overview-item{display:flex;flex-direction:column;align-items:center;gap:.25rem}.stats-modal__overview-value{font-family:JetBrains Mono,monospace;font-size:1.75rem;font-weight:600;color:var(--text-primary);line-height:1}.stats-modal__overview-label{font-family:JetBrains Mono,monospace;font-size:.6rem;font-weight:400;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.stats-modal__streaks{display:flex;justify-content:center;gap:3rem;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-color)}.stats-modal__streak{display:flex;flex-direction:column;align-items:center;gap:.25rem}.stats-modal__streak-value{font-family:JetBrains Mono,monospace;font-size:1.35rem;font-weight:600;color:var(--text-primary);line-height:1}.stats-modal__streak-label{font-family:Inter,sans-serif;font-size:.65rem;font-weight:400;color:var(--text-muted)}.stats-modal__section-title{font-family:JetBrains Mono,monospace;font-size:.7rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 .875rem;text-align:center}.stats-modal__times-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.625rem}.stats-modal__time-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem .875rem;background:var(--stats-bg);border-radius:var(--radius-sm);border:1px solid var(--border-color);transition:all .15s var(--ease-smooth)}.stats-modal__time-item:hover{border-color:var(--text-primary)}.stats-modal__time-difficulty{font-family:JetBrains Mono,monospace;font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.02em}.stats-modal__time-difficulty--easy{color:var(--easy-text)}.stats-modal__time-difficulty--medium{color:var(--medium-text)}.stats-modal__time-difficulty--hard{color:var(--hard-text)}.stats-modal__time-difficulty--expert{color:var(--expert-text)}.stats-modal__time-value{font-family:JetBrains Mono,monospace;font-size:.95rem;font-weight:500;color:var(--text-primary)}@media(max-width:480px){.stats-modal__header{padding:1rem 1.25rem}.stats-modal__title{font-size:1rem}.stats-modal__content{padding:1.25rem}.stats-modal__overview-value{font-size:1.5rem}.stats-modal__streaks{gap:2rem}.stats-modal__streak-value{font-size:1.2rem}.stats-modal__times-grid{gap:.5rem}.stats-modal__time-item{padding:.625rem .75rem}.stats-modal__time-difficulty{font-size:.6rem}.stats-modal__time-value{font-size:.85rem}}@media(hover:none)and (pointer:coarse){.stats-modal__close{min-width:var(--touch-target-min);min-height:var(--touch-target-min)}}.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:.5rem;padding-top:calc(.5rem + var(--safe-area-top));padding-bottom:calc(.5rem + var(--safe-area-bottom));padding-left:calc(.5rem + var(--safe-area-left));padding-right:calc(.5rem + var(--safe-area-right));position:relative;z-index:1}.app__container{display:flex;flex-direction:column;align-items:center;gap:.5rem;width:100%;max-width:420px;animation:slideUp .4s var(--ease-smooth) both}.app__topbar{display:flex;justify-content:space-between;align-items:center;width:100%;gap:.5rem}.app__topbar .header{flex:1;border-bottom:none;padding:0}.app__topbar-actions{display:flex;gap:.25rem;flex-shrink:0}.app__icon-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all .15s var(--ease-smooth);touch-action:manipulation}.app__icon-btn:active{transform:scale(.92);background:var(--gray-100)}.app__board-section{width:100%}.app__bottom{display:flex;flex-direction:column;gap:.4rem;width:100%}@media(min-aspect-ratio:1.35/1)and (min-width:700px)and (min-height:500px){.app{padding:1rem;padding-left:calc(1rem + var(--safe-area-left));padding-right:calc(1rem + var(--safe-area-right));padding-top:calc(1rem + var(--safe-area-top));padding-bottom:calc(1rem + var(--safe-area-bottom));justify-content:center;align-items:center}.app__container{--container-height: calc(100dvh - 2rem - var(--safe-area-top) - var(--safe-area-bottom));display:grid;grid-template-columns:var(--container-height) minmax(220px,300px);grid-template-rows:auto 1fr;column-gap:1.5rem;row-gap:.75rem;width:100%;max-width:none;height:var(--container-height)}.app__board-section{grid-column:1;grid-row:1 / -1;width:100%;height:100%}.app__board-section .board-wrapper{width:100%;height:100%}.app__panel--left{grid-column:2;grid-row:1;display:flex;flex-direction:column;gap:.5rem}.app__panel--right{grid-column:2;grid-row:2;display:flex;flex-direction:column;gap:.5rem;min-height:0;overflow-y:auto}.app__title-bar{padding:0}.app__title{font-size:1rem}.app__logo{width:20px;height:20px}.app__title-button{width:30px;height:30px}.header{padding:.5rem 0;gap:.5rem;border-bottom:1px solid var(--border-color)}.header__timer-value{font-size:1rem}.header__timer-button{width:28px;height:28px}.controls{flex-wrap:wrap;gap:.3rem}.controls__button{flex:1 1 auto;min-width:55px;padding:.35rem .5rem;min-height:34px}.controls__icon svg{width:16px;height:16px}.controls__label{font-size:.5rem}.app__shortcuts{display:none}.number-pad__grid{grid-template-columns:repeat(3,1fr);gap:4px}.number-pad__button{min-height:38px}.number-pad__number{font-size:1rem}.number-pad__count{font-size:.45rem}.number-pad__clear{min-height:34px}.progress-bar__track{height:4px}.candidate-hints{padding:.4rem .5rem}.candidate-hints__number{width:20px;height:20px;font-size:.75rem}}@media(min-aspect-ratio:1.75/1)and (min-width:1000px)and (min-height:500px){.app__container{--panel-width: minmax(190px, 260px);grid-template-columns:var(--panel-width) var(--container-height) var(--panel-width);grid-template-rows:1fr;column-gap:1.5rem;row-gap:0}.app__panel--left{grid-column:1;grid-row:1;display:flex;flex-direction:column;gap:.75rem;justify-content:center}.app__board-section{grid-column:2;grid-row:1}.app__panel--right{grid-column:3;grid-row:1;justify-content:center;overflow-y:visible}.app__title-bar{flex-direction:column;align-items:flex-start;gap:.5rem}.app__shortcuts{display:flex;flex-direction:column;gap:.2rem;margin-top:auto;padding-top:.5rem;border-top:1px solid var(--border-color)}.app__shortcuts span{font-family:JetBrains Mono,monospace;font-size:.55rem;color:var(--text-muted)}.header{flex-direction:column;align-items:flex-start;gap:.4rem}.header__timer,.header__mistakes{width:100%;justify-content:space-between}.controls{flex-direction:column;flex-wrap:nowrap;gap:.35rem}.controls__button{flex-direction:row;min-width:100%;gap:.5rem;justify-content:flex-start}}@media(min-aspect-ratio:1.75/1)and (min-width:1200px)and (min-height:500px){.app__container{--panel-width: minmax(220px, 300px);column-gap:2rem}.app__panel--left,.app__panel--right{gap:1rem}.app__title{font-size:1.1rem}.app__title-button{width:34px;height:34px}.header__timer-value{font-size:1.1rem}.controls__button{min-height:38px}.number-pad__button{min-height:44px}.number-pad__number{font-size:1.1rem}}@media(max-width:374px){.app{padding:.75rem;padding-top:calc(1rem + var(--safe-area-top));padding-bottom:calc(.75rem + var(--safe-area-bottom))}.app__container{gap:.75rem}.app__title{font-size:1.15rem}.app__logo{width:20px;height:20px}.app__title-button{width:var(--touch-target-min);height:var(--touch-target-min)}.app__title-wrapper{gap:.5rem}}@media(max-width:480px)and (min-width:375px){.app{padding:.75rem;padding-top:calc(.75rem + var(--safe-area-top));padding-bottom:calc(.75rem + var(--safe-area-bottom))}.app__container{gap:.75rem}.app__title{font-size:1.1rem}.app__logo{width:20px;height:20px}.app__title-button{width:var(--touch-target-min);height:var(--touch-target-min)}}@media(min-width:481px)and (max-width:699px){.app{padding:1.5rem;padding-top:calc(2rem + var(--safe-area-top))}.app__container{max-width:460px}}@media(hover:none)and (pointer:coarse){.app__title-button{min-width:var(--touch-target-min);min-height:var(--touch-target-min)}.app__title-button:active{transform:scale(.92);opacity:.8}}
