:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.grid-container{display:flex;justify-content:center;align-items:center;padding:1rem}.game-canvas{border:2px solid #e5e7eb;border-radius:.5rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;background-color:#fff;cursor:crosshair;touch-action:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.game-canvas.disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.game-canvas:hover:not(.disabled){box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}@media (max-width: 768px){.grid-container{padding:.5rem}}@media (max-width: 480px){.grid-container{padding:.25rem}.game-canvas{border-width:1px}}@media (prefers-contrast: high){.game-canvas{border:3px solid #000}.game-canvas.disabled{border-color:#666}}@media (prefers-reduced-motion: reduce){.game-canvas{transition:none}.game-canvas:hover:not(.disabled){box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}}.game-canvas:focus{outline:2px solid #2563eb;outline-offset:2px}.grid-container{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.timer-container{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background-color:#fff;border-radius:.5rem;box-shadow:0 1px 3px #0000001a;border:1px solid #e5e7eb}.timer-label{font-weight:500;color:#374151;font-size:.875rem}.timer-display{font-family:Courier New,Monaco,monospace;font-size:1.25rem;font-weight:700;color:#1f2937;min-width:80px;text-align:right;transition:color .2s ease}.timer-display.running{color:#2563eb}@media (max-width: 480px){.timer-container{padding:.5rem .75rem;gap:.5rem}.timer-display{font-size:1.125rem;min-width:70px}.timer-label{font-size:.8125rem}}@media (prefers-contrast: high){.timer-container{border:2px solid #374151}.timer-display{color:#000}.timer-display.running{color:#1d4ed8}}@media (prefers-reduced-motion: reduce){.timer-display{transition:none}}.game-container{min-height:100vh;display:flex;flex-direction:column;background-color:var(--bg-color, #f8fafc);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.game-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background-color:#fff;box-shadow:0 1px 3px #0000001a;border-bottom:1px solid #e5e7eb}.game-title{margin:0;font-size:1.75rem;font-weight:700;color:#1f2937}.game-controls{display:flex;align-items:center;gap:1rem}.grid-size-selector{display:flex;align-items:center;gap:.5rem}.grid-size-selector label{font-weight:500;color:#374151}.grid-size-selector select{padding:.5rem;border:1px solid #d1d5db;border-radius:.375rem;background-color:#fff;font-size:.875rem;cursor:pointer}.grid-size-selector select:disabled{opacity:.5;cursor:not-allowed}.new-puzzle-btn,.start-btn,.reset-btn{padding:.75rem 1.5rem;background-color:#2563eb;color:#fff;border:none;border-radius:.5rem;font-weight:500;cursor:pointer;transition:background-color .2s}.new-puzzle-btn:hover:not(:disabled),.start-btn:hover:not(:disabled),.reset-btn:hover:not(:disabled){background-color:#1d4ed8}.new-puzzle-btn:disabled,.reset-btn:disabled{opacity:.5;cursor:not-allowed}.reset-btn{background-color:#dc2626}.reset-btn:hover:not(:disabled){background-color:#b91c1c}.game-content{flex:1;display:flex;flex-direction:column;align-items:center;padding:2rem;gap:1.5rem}.game-info{text-align:center}.completion-message{background-color:#d1fae5;border:1px solid #10b981;border-radius:.5rem;padding:1rem;margin-top:1rem}.completion-message h2{margin:0 0 .5rem;color:#065f46;font-size:1.25rem}.completion-message p{margin:0;color:#047857;font-weight:500}.game-board{position:relative;display:flex;justify-content:center;align-items:center;min-height:400px}.loading-overlay{position:absolute;inset:0;background-color:#ffffffe6;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:10}.loading-spinner{width:32px;height:32px;border:3px solid #e5e7eb;border-top:3px solid #2563eb;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.welcome-message{text-align:center;max-width:400px}.welcome-message h2{margin:0 0 1rem;color:#1f2937;font-size:1.5rem}.welcome-message p{margin:0 0 2rem;color:#6b7280;line-height:1.6}@media (max-width: 768px){.game-header{flex-direction:column;gap:1rem;padding:1rem}.game-controls{width:100%;justify-content:space-between}.game-title{font-size:1.5rem}.game-content{padding:1rem}.welcome-message{max-width:100%}}@media (max-width: 480px){.game-header{padding:.75rem}.game-controls{flex-direction:column;gap:.75rem}.new-puzzle-btn,.start-btn,.reset-btn{width:100%;padding:.875rem}}@media (prefers-contrast: high){.game-header{border-bottom:2px solid #000}.grid-size-selector select{border:2px solid #000}.completion-message{border:2px solid #10b981}}@media (prefers-reduced-motion: reduce){.loading-spinner{animation:none}.new-puzzle-btn,.start-btn{transition:none}}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:#f8fafc;color:#1f2937;overflow-x:hidden}#root{height:100%;width:100%}.App{min-height:100vh;display:flex;flex-direction:column}:root{--primary-color: #2563eb;--primary-hover: #1d4ed8;--secondary-color: #64748b;--success-color: #10b981;--bg-color: #f8fafc;--surface-color: #ffffff;--border-color: #e5e7eb;--text-primary: #1f2937;--text-secondary: #6b7280;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--border-radius: .5rem;--border-radius-sm: .25rem;--border-radius-lg: .75rem}button{font-family:inherit;font-size:inherit;line-height:inherit;margin:0;border:none;background:none;cursor:pointer;outline:none}button:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}input,select{font-family:inherit;font-size:inherit;line-height:inherit;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);padding:.5rem;background-color:var(--surface-color)}input:focus,select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a}.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}.text-center{text-align:center}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.container{width:100%;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (prefers-color-scheme: dark){:root{--bg-color: #111827;--surface-color: #1f2937;--border-color: #374151;--text-primary: #f9fafb;--text-secondary: #d1d5db}}@media (prefers-contrast: high){:root{--border-color: #000000;--text-primary: #000000;--primary-color: #0000ff}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media print{.App{background:#fff;color:#000}button{display:none}}
