.landing-page[data-v-0375a120]{width:100%;max-width:600px;margin:0 auto}.container[data-v-0375a120]{padding:var(--spacing-xl)}.header[data-v-0375a120]{text-align:center;margin-bottom:var(--spacing-2xl)}.header h1[data-v-0375a120]{font-size:var(--font-size-3xl);margin-bottom:var(--spacing-sm)}.subtitle[data-v-0375a120]{font-size:var(--font-size-lg);color:var(--color-gray-500);margin:0}.section[data-v-0375a120]{margin-bottom:var(--spacing-2xl)}.section h2[data-v-0375a120]{margin-bottom:var(--spacing-lg);color:var(--color-gray-900)}.difficulty-buttons[data-v-0375a120]{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.btn-difficulty[data-v-0375a120]{padding:var(--spacing-lg);border:2px solid var(--color-gray-200);border-radius:var(--border-radius-lg);background-color:#fff;cursor:pointer;transition:all var(--transition-normal);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);position:relative}.btn-difficulty[data-v-0375a120]:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.btn-difficulty.active[data-v-0375a120]{border-color:var(--color-primary);background-color:#4f46e50d;box-shadow:0 0 0 3px #4f46e51a}.difficulty-name[data-v-0375a120]{font-size:var(--font-size-lg);font-weight:600;color:var(--color-gray-900)}.difficulty-desc[data-v-0375a120]{font-size:var(--font-size-sm);color:var(--color-gray-500)}.solved-badge[data-v-0375a120]{font-size:var(--font-size-sm);color:var(--color-success);font-weight:600}.btn-play[data-v-0375a120]{width:100%;margin-bottom:var(--spacing-md);padding:var(--spacing-lg);display:flex;align-items:center;gap:var(--spacing-lg);text-align:left;border:none;border-radius:var(--border-radius-lg);cursor:pointer;transition:all var(--transition-normal);font-size:var(--font-size-md)}.btn-play[data-v-0375a120]:last-child{margin-bottom:0}.btn-play[data-v-0375a120]:disabled{opacity:.6;cursor:not-allowed}.status-icon[data-v-0375a120]{font-size:var(--font-size-2xl);flex-shrink:0}.btn-content[data-v-0375a120]{flex:1}.btn-title[data-v-0375a120]{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-xs)}.btn-desc[data-v-0375a120]{font-size:var(--font-size-sm);opacity:.8}.instructions[data-v-0375a120],.rules[data-v-0375a120]{background-color:var(--color-gray-50);padding:var(--spacing-lg);border-radius:var(--border-radius-lg)}.instructions h2[data-v-0375a120],.rules h2[data-v-0375a120]{margin-top:0}.instructions ul[data-v-0375a120],.rules ul[data-v-0375a120]{margin:0;padding-left:var(--spacing-lg)}.instructions li[data-v-0375a120],.rules li[data-v-0375a120]{margin-bottom:var(--spacing-sm);color:var(--color-gray-700);line-height:1.6}@media (max-width: 480px){.container[data-v-0375a120]{padding:var(--spacing-lg)}.header h1[data-v-0375a120]{font-size:var(--font-size-2xl)}.difficulty-buttons[data-v-0375a120]{grid-template-columns:1fr}.btn-play[data-v-0375a120]{flex-direction:column;text-align:center;padding:var(--spacing-md)}.btn-content[data-v-0375a120]{width:100%}}.sudoku-grid[data-v-020ae0f5]{display:flex;flex-direction:column;align-items:center;gap:8px}.column-labels[data-v-020ae0f5]{display:grid;grid-template-columns:28px repeat(9,1fr);gap:0;width:100%;max-width:478px;padding:0 4px}.label-spacer[data-v-020ae0f5]{width:28px}.column-label[data-v-020ae0f5]{font-size:12px;font-weight:600;color:var(--color-gray-400);text-align:center;padding:2px 0}.grid-wrapper[data-v-020ae0f5]{display:grid;grid-template-columns:28px 1fr;gap:8px;width:100%;max-width:478px}.row-labels[data-v-020ae0f5]{display:flex;flex-direction:column;justify-content:flex-start;padding-top:4px}.row-label[data-v-020ae0f5]{flex:1;font-size:12px;font-weight:600;color:var(--color-gray-400);text-align:center;display:flex;align-items:center;justify-content:center}.grid-container[data-v-020ae0f5]{aspect-ratio:1;width:100%;display:grid;grid-template-columns:repeat(9,1fr);gap:0;padding:4px;background-color:var(--color-gray-900);border-radius:var(--border-radius-md);box-shadow:var(--shadow-lg)}.grid-row[data-v-020ae0f5]{display:contents}.cell[data-v-020ae0f5]{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background-color:#fff;border:1px solid var(--color-gray-300);cursor:pointer;transition:all var(--transition-fast);user-select:none;position:relative;font-size:var(--font-size-xl);font-weight:600}.cell[data-v-020ae0f5]:nth-child(3n){border-right:3px solid var(--color-gray-900)}.grid-row:nth-child(3n) .cell[data-v-020ae0f5]{border-bottom:3px solid var(--color-gray-900)}.grid-row:last-child .cell[data-v-020ae0f5]{border-bottom:3px solid var(--color-gray-900)}.grid-row:nth-child(9) .cell[data-v-020ae0f5]{border-bottom:3px solid var(--color-gray-900)}.grid-container[data-v-020ae0f5]>:nth-child(27)~:nth-child(3n),.grid-container[data-v-020ae0f5]>:nth-child(3n){border-right:3px solid var(--color-gray-900)}.cell-given[data-v-020ae0f5]{background-color:var(--color-gray-100);font-weight:700;color:var(--color-gray-900)}.cell-selected[data-v-020ae0f5]{background-color:gold;color:var(--color-gray-900)}.cell-selected .cell-value[data-v-020ae0f5]{color:var(--color-gray-900);font-weight:700}.cell-conflict[data-v-020ae0f5]{background-color:#ef444433}.cell-conflict .cell-value[data-v-020ae0f5]{color:var(--color-error);font-weight:700}.cell[data-v-020ae0f5]:hover:not(.cell-given){background-color:#4f46e50d}.cell-selected[data-v-020ae0f5]:hover{background-color:var(--color-primary-dark)}.cell-value[data-v-020ae0f5]{font-size:var(--font-size-xl);font-weight:700;color:var(--color-gray-900)}.value-user[data-v-020ae0f5]{color:var(--color-primary)}.cell-candidates[data-v-020ae0f5],.cell-notes[data-v-020ae0f5]{width:100%;height:100%;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:1px;padding:2px}.candidate[data-v-020ae0f5],.note[data-v-020ae0f5]{font-size:var(--font-size-xs);display:flex;align-items:center;justify-content:center;color:var(--color-gray-400)}.cand-active[data-v-020ae0f5],.note-active[data-v-020ae0f5]{color:var(--color-primary);font-weight:600}@media (max-width: 600px){.grid-container[data-v-020ae0f5]{max-width:100%}.cell[data-v-020ae0f5]{font-size:var(--font-size-lg)}.candidate[data-v-020ae0f5],.note[data-v-020ae0f5]{font-size:9px}}.number-pad[data-v-a829e8eb]{display:flex;flex-direction:column;gap:8px}.digit-grid[data-v-a829e8eb]{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.btn-digit[data-v-a829e8eb]{aspect-ratio:1;font-size:18px;font-weight:700;padding:0;min-height:44px;border-radius:var(--border-radius-md);display:flex;align-items:center;justify-content:center}.btn-digit[data-v-a829e8eb]:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-digit[data-v-a829e8eb]:active:not(:disabled){transform:translateY(0)}.control-buttons[data-v-a829e8eb]{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}.btn-control[data-v-a829e8eb]{padding:8px 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:44px;border-radius:var(--border-radius-md);font-size:11px;font-weight:500}.control-icon[data-v-a829e8eb]{font-size:var(--font-size-lg)}.control-label[data-v-a829e8eb]{font-size:var(--font-size-xs)}.btn-control[data-v-a829e8eb]:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md)}.mode-active[data-v-a829e8eb]{background-color:#4f46e51a!important;border-color:var(--color-primary)!important;color:var(--color-primary)}@media (max-width: 480px){.digit-grid[data-v-a829e8eb]{gap:var(--spacing-xs)}.btn-digit[data-v-a829e8eb]{min-height:44px;font-size:var(--font-size-lg)}.control-buttons[data-v-a829e8eb]{gap:var(--spacing-xs)}.btn-control[data-v-a829e8eb]{min-height:44px;padding:var(--spacing-sm)}.control-label[data-v-a829e8eb]{font-size:10px}}.controls[data-v-63314053]{display:flex;flex-direction:column;gap:8px}.button-group[data-v-63314053]{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.btn-control[data-v-63314053]{padding:8px;display:flex;align-items:center;justify-content:center;gap:4px;border-radius:var(--border-radius-md);font-size:11px;font-weight:500;white-space:nowrap;flex-wrap:wrap;min-height:40px}.btn-control span[data-v-63314053]{font-size:14px}.btn-control[data-v-63314053]:disabled{opacity:.5;cursor:not-allowed}.btn-control[data-v-63314053]:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md)}.full-width[data-v-63314053]{grid-column:1 / -1}.session-info[data-v-63314053]{background-color:var(--color-gray-50);padding:6px 8px;border-radius:var(--border-radius-md);font-size:11px}.info-row[data-v-63314053]{display:flex;justify-content:space-between;padding:3px 0}.info-row[data-v-63314053]:not(:last-child){border-bottom:1px solid var(--color-gray-200);padding-bottom:3px;margin-bottom:3px}.label[data-v-63314053]{color:var(--color-gray-600);font-weight:500}.value[data-v-63314053]{color:var(--color-gray-900);font-weight:600}@media (max-width: 480px){.button-group[data-v-63314053]{grid-template-columns:1fr}.btn-control[data-v-63314053]{padding:var(--spacing-md);min-height:44px}}.game[data-v-d66af977]{width:100%;height:100vh;display:flex;flex-direction:column;background-color:var(--color-gray-50)}.game-header[data-v-d66af977]{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background-color:#fff;border-bottom:1px solid var(--color-gray-200);box-shadow:var(--shadow-sm)}.game-header h1[data-v-d66af977]{margin:0;font-size:var(--font-size-lg)}.btn-back[data-v-d66af977]{padding:4px 8px;font-size:12px}.game-container[data-v-d66af977]{flex:1;display:grid;grid-template-columns:1fr 300px;gap:var(--spacing-md);padding:var(--spacing-md);overflow:hidden}.grid-column[data-v-d66af977]{display:flex;flex-direction:column;gap:var(--spacing-md);align-items:center;min-height:0}.grid-and-hint[data-v-d66af977]{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%}.hint-message[data-v-d66af977]{color:var(--color-primary);font-size:12px;font-weight:500;text-align:center;padding:8px;animation:fadeIn-d66af977 .3s ease-in-out}@keyframes fadeIn-d66af977{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.controls-column[data-v-d66af977]{display:flex;flex-direction:column;gap:8px;min-height:0;overflow-y:auto;padding-right:4px}.stats-bar[data-v-d66af977]{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;width:100%;max-width:420px}.stat[data-v-d66af977]{background-color:#fff;padding:6px 8px;border-radius:var(--border-radius-md);text-align:center;box-shadow:var(--shadow-sm)}.stat-label[data-v-d66af977]{display:block;font-size:9px;color:var(--color-gray-600);margin-bottom:2px;text-transform:uppercase;font-weight:600}.stat-value[data-v-d66af977]{display:block;font-size:14px;font-weight:700;color:var(--color-primary)}.modal-overlay[data-v-d66af977]{position:fixed;inset:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000;padding:var(--spacing-md)}.modal[data-v-d66af977]{background-color:#fff;padding:var(--spacing-2xl);border-radius:var(--border-radius-xl);max-width:400px;text-align:center;box-shadow:var(--shadow-xl)}.modal h2[data-v-d66af977]{margin-top:0;margin-bottom:var(--spacing-md);color:var(--color-primary)}.modal p[data-v-d66af977]{margin-bottom:var(--spacing-lg);color:var(--color-gray-700)}.stats[data-v-d66af977]{background-color:var(--color-gray-50);padding:var(--spacing-md);border-radius:var(--border-radius-md);margin-bottom:var(--spacing-lg)}.stat-item[data-v-d66af977]{display:flex;justify-content:space-between;padding:var(--spacing-sm) 0;color:var(--color-gray-700)}.stat-item[data-v-d66af977]:not(:last-child){border-bottom:1px solid var(--color-gray-200)}.modal-actions[data-v-d66af977]{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.modal-actions .btn-primary[data-v-d66af977],.modal-actions .btn-secondary[data-v-d66af977]{padding:var(--spacing-md)}@media (max-width: 768px){.game-container[data-v-d66af977]{grid-template-columns:1fr;gap:var(--spacing-md)}.controls-column[data-v-d66af977]{order:2;max-height:400px;overflow-y:auto}.grid-column[data-v-d66af977]{order:1}}@media (max-width: 480px){.game-header[data-v-d66af977]{padding:var(--spacing-md)}.game-header h1[data-v-d66af977]{font-size:var(--font-size-xl)}.game-container[data-v-d66af977]{padding:var(--spacing-md);gap:var(--spacing-md)}.stats-bar[data-v-d66af977]{gap:var(--spacing-xs)}.stat[data-v-d66af977]{padding:var(--spacing-sm)}.stat-label[data-v-d66af977]{font-size:10px}.stat-value[data-v-d66af977]{font-size:var(--font-size-md)}.modal[data-v-d66af977]{padding:var(--spacing-lg)}.modal-actions[data-v-d66af977]{grid-template-columns:1fr}}#app[data-v-eb8a9189]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-md)}.loading[data-v-eb8a9189],.error-screen[data-v-eb8a9189]{text-align:center;padding:var(--spacing-xl)}.spinner[data-v-eb8a9189]{width:40px;height:40px;border:4px solid var(--color-gray-200);border-top-color:var(--color-primary);border-radius:50%;animation:spin-eb8a9189 1s linear infinite;margin:0 auto var(--spacing-md)}@keyframes spin-eb8a9189{to{transform:rotate(360deg)}}.error-screen[data-v-eb8a9189]{background-color:#fee;border:1px solid #fcc;border-radius:var(--border-radius-lg);max-width:400px}.error-screen h2[data-v-eb8a9189]{color:var(--color-error);margin-bottom:var(--spacing-md)}.error-screen p[data-v-eb8a9189]{color:var(--color-gray-700);margin-bottom:var(--spacing-lg)}:root{--color-primary: #4f46e5;--color-primary-light: #818cf8;--color-primary-dark: #4338ca;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-900: #111827;--color-success: #10b981;--color-warning: #f59e0b;--color-error: #ef4444;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--border-radius-sm: .375rem;--border-radius-md: .5rem;--border-radius-lg: .75rem;--border-radius-xl: 1rem;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1);--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--transition-fast: .15s;--transition-normal: .3s;--transition-slow: .5s}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}body{font-family:var(--font-family);font-size:var(--font-size-md);line-height:1.6;color:var(--color-gray-900);background-color:var(--color-gray-50);height:100vh;overflow:hidden}h1{font-size:var(--font-size-3xl);font-weight:700;margin-bottom:var(--spacing-md)}h2{font-size:var(--font-size-2xl);font-weight:700;margin-bottom:var(--spacing-md)}h3{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-sm)}p{margin-bottom:var(--spacing-md);color:var(--color-gray-600)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast) ease}a:hover{color:var(--color-primary-dark)}button{font-family:var(--font-family);font-size:var(--font-size-md);padding:var(--spacing-sm) var(--spacing-md);border:none;border-radius:var(--border-radius-md);cursor:pointer;transition:all var(--transition-fast) ease;font-weight:500}button:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-dark);box-shadow:var(--shadow-md);transform:translateY(-2px)}.btn-secondary{background-color:var(--color-gray-200);color:var(--color-gray-900);box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){background-color:var(--color-gray-300);box-shadow:var(--shadow-md);transform:translateY(-2px)}.btn-ghost{background-color:transparent;color:var(--color-primary);border:1px solid var(--color-primary)}.btn-ghost:hover:not(:disabled){background-color:var(--color-primary);color:#fff}input[type=text],input[type=number],textarea,select{font-family:var(--font-family);font-size:var(--font-size-md);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-gray-300);border-radius:var(--border-radius-md);transition:all var(--transition-fast) ease}input[type=text]:focus,input[type=number]:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #4f46e51a}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-md)}.grid{display:grid;gap:var(--spacing-md)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.flex{display:flex;gap:var(--spacing-md)}.flex-col{flex-direction:column}.flex-center{align-items:center;justify-content:center}.flex-between{align-items:center;justify-content:space-between}.card{background-color:#fff;border-radius:var(--border-radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-md)}.card:hover{box-shadow:var(--shadow-lg)}.panel{background-color:#fff;border-radius:var(--border-radius-md);padding:var(--spacing-md);border:1px solid var(--color-gray-200)}.text-center{text-align:center}.text-right{text-align:right}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.hidden{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}@media (max-width: 768px){:root{font-size:14px}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}.card,.panel{padding:var(--spacing-md)}}@media (max-width: 480px){:root{font-size:13px}.flex{flex-direction:column}button{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-lg);min-height:48px}}
