.loading-wrap{color:var(--text-secondary);justify-content:center;align-items:center;gap:10px;padding:24px;display:flex}.spinner{border:3px solid #fff3;border-top-color:var(--accent-primary-strong);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin;display:inline-block}.loading-sm .spinner{border-width:2px;width:14px;height:14px}@keyframes spin{to{transform:rotate(360deg)}}.error-banner{background:#fb71851f;border:1px solid #fb718580;align-items:center;gap:10px;margin-bottom:16px;display:flex}.error-icon{font-size:18px}.error-text{flex:1;font-size:14px}.error-actions{gap:8px;display:flex}.navbar{z-index:100;justify-content:space-between;align-items:center;gap:16px;width:calc(100% - 24px);max-width:1160px;margin:12px auto 0;display:flex;position:sticky;top:12px}.navbar-brand{letter-spacing:.02em;white-space:nowrap;align-items:center;gap:8px;font-size:18px;font-weight:800;display:flex}.navbar-links{gap:4px;margin:0;padding:0;list-style:none;display:flex}.navbar-link{border-radius:var(--radius-sm);color:var(--text-secondary);align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:600;text-decoration:none;transition:background .15s,color .15s;display:flex}.navbar-link:hover{background:var(--glass-bg);color:var(--text-primary)}.navbar-link--active{background:var(--glass-bg-strong);color:var(--text-primary)}.session-banner{width:calc(100% - 24px);max-width:1160px;margin:12px auto 0}.ad-banner{text-align:center;max-width:728px;color:var(--text-muted);border-style:dashed;margin:16px auto 0;padding:10px 16px;font-size:12px}@media (width<=640px){.navbar{justify-content:space-around;width:auto;margin:0;padding:8px 6px;position:fixed;inset:auto 12px 10px}.navbar-brand{display:none}.navbar-links{justify-content:space-around;width:100%}.navbar-link{flex-direction:column;gap:2px;padding:6px 8px;font-size:10px}.app-content{padding-bottom:100px}}:root{--bg-gradient:radial-gradient(circle at 15% 20%, #3a2f78 0%, transparent 45%), radial-gradient(circle at 85% 10%, #1c4d7a 0%, transparent 40%), radial-gradient(circle at 50% 90%, #0f2545 0%, transparent 50%), linear-gradient(160deg, #0b1026 0%, #151a3a 45%, #1a1044 100%);--glass-bg:#ffffff14;--glass-bg-strong:#ffffff24;--glass-border:#ffffff38;--glass-shadow:0 8px 32px #00000059;--text-primary:#f4f6fb;--text-secondary:#f4f6fbb3;--text-muted:#f4f6fb80;--accent-primary:#7c5cff;--accent-primary-strong:#9b82ff;--accent-success:#34d399;--accent-danger:#fb7185;--accent-warning:#fbbf24;--accent-gold:#fcd34d;--board-bg:#0c10228c;--cell-bg:#ffffff0a;--cell-given-bg:#ffffff12;--cell-selected-bg:#7c5cff73;--cell-peer-bg:#7c5cff24;--cell-same-number-bg:#34d3992e;--cell-error-bg:#fb718559;--cell-border:#ffffff1f;--cell-border-strong:#ffffff59;--radius-lg:22px;--radius-md:14px;--radius-sm:8px;--focus-ring:0 0 0 3px #7c5cff99;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg-gradient) fixed;color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;overflow-x:hidden}a{color:inherit}button{font-family:inherit}button:focus-visible,a:focus-visible,input:focus-visible,[tabindex]:focus-visible{box-shadow:var(--focus-ring);outline:none}::selection{background:var(--accent-primary);color:#fff}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-content{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:20px clamp(16px,4vw,40px) 100px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=480px){.app-content{padding:14px 12px 90px}}.glass-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(18px)saturate(140%);padding:clamp(16px,3vw,28px)}.glass-card--strong{background:var(--glass-bg-strong)}.glass-panel-tight{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(14px)saturate(140%);padding:12px 16px}.btn{border:1px solid var(--glass-border);border-radius:var(--radius-md);cursor:pointer;background:var(--glass-bg);color:var(--text-primary);touch-action:manipulation;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:12px 20px;font-size:15px;font-weight:600;transition:transform .15s,box-shadow .15s,background .15s,opacity .15s;display:inline-flex}.btn:hover:not(:disabled){background:var(--glass-bg-strong);transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0)scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg, var(--accent-primary), #5a3fd6);border-color:#ffffff4d;box-shadow:0 6px 20px #7c5cff73}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg, var(--accent-primary-strong), #6b4de0)}.btn-success{background:linear-gradient(135deg, var(--accent-success), #10b981);border-color:#ffffff4d}.btn-danger{background:linear-gradient(135deg, var(--accent-danger), #e11d48);border-color:#ffffff4d}.btn-ghost{background:0 0}.btn-block{width:100%}.btn-sm{min-height:36px;padding:8px 14px;font-size:13px}.input-field{border-radius:var(--radius-md);border:1px solid var(--glass-border);width:100%;color:var(--text-primary);background:#ffffff0f;min-height:44px;padding:12px 16px;font-size:15px}.input-field::placeholder{color:var(--text-muted)}.input-field:focus-visible{box-shadow:var(--focus-ring);border-color:var(--accent-primary);outline:none}.badge{background:var(--glass-bg-strong);border:1px solid var(--glass-border);border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:13px;font-weight:600;display:inline-flex}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#060814a6;justify-content:center;align-items:center;padding:16px;animation:.18s fadeIn;display:flex;position:fixed;inset:0}.modal-card{text-align:center;width:100%;max-width:420px;animation:.22s cubic-bezier(.2,.9,.3,1.2) popIn}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:scale(.9)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@media (prefers-reduced-motion:reduce){*{transition-duration:.001ms!important;animation-duration:.001ms!important}}.board-wrap{width:100%;max-width:560px;margin:0 auto}.sudoku-board{aspect-ratio:1;background:var(--board-bg);border-radius:var(--radius-md);border:2px solid var(--cell-border-strong);-webkit-backdrop-filter:blur(6px);-webkit-user-select:none;user-select:none;touch-action:manipulation;grid-template-rows:repeat(9,1fr);grid-template-columns:repeat(9,1fr);width:100%;display:grid;position:relative;overflow:hidden;box-shadow:0 10px 40px #00000073}.sudoku-cell{background:var(--cell-bg);border:1px solid var(--cell-border);color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;font-size:clamp(16px,4vw,26px);font-weight:600;transition:background .12s;display:flex;position:relative}.sudoku-cell:focus-visible{box-shadow:inset 0 0 0 3px var(--accent-primary-strong);z-index:3;outline:none}.sudoku-cell--given{background:var(--cell-given-bg);color:var(--text-primary);cursor:default;font-weight:700}.sudoku-cell--peer{background:var(--cell-peer-bg)}.sudoku-cell--same-number{background:var(--cell-same-number-bg)}.sudoku-cell--selected{z-index:2;background:var(--cell-selected-bg)!important}.sudoku-cell--error{color:#fff;animation:.3s shake;background:var(--cell-error-bg)!important}.sudoku-cell--hint{color:var(--accent-gold);animation:.5s hintPop}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}@keyframes hintPop{0%{color:var(--accent-gold);transform:scale(1.5)}to{transform:scale(1)}}.sudoku-cell[data-col="2"],.sudoku-cell[data-col="5"]{border-right:2px solid var(--cell-border-strong)}.sudoku-cell[data-col="0"],.sudoku-cell[data-col="3"],.sudoku-cell[data-col="6"]{border-left:2px solid var(--cell-border-strong)}.sudoku-cell[data-row="2"],.sudoku-cell[data-row="5"]{border-bottom:2px solid var(--cell-border-strong)}.sudoku-cell[data-row="0"],.sudoku-cell[data-row="3"],.sudoku-cell[data-row="6"]{border-top:2px solid var(--cell-border-strong)}.number-pad{grid-template-columns:repeat(9,1fr);gap:8px;max-width:560px;margin:16px auto 0;display:grid}.number-pad-btn{aspect-ratio:1;border-radius:var(--radius-sm);border:1px solid var(--glass-border);background:var(--glass-bg);color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;min-height:40px;font-size:clamp(15px,3vw,20px);font-weight:700;transition:transform .1s,background .1s;display:flex}.number-pad-btn:hover:not(:disabled){background:var(--glass-bg-strong);transform:translateY(-2px)}.number-pad-btn:disabled{opacity:.3;cursor:not-allowed}.game-toolbar{flex-wrap:wrap;justify-content:center;gap:10px;max-width:560px;margin:16px auto 0;display:flex}.mistake-dots{gap:6px;display:flex}.mistake-dot{border:1px solid var(--glass-border);background:#fff3;border-radius:50%;width:10px;height:10px}.mistake-dot--filled{background:var(--accent-danger)}@media (width<=380px){.number-pad{gap:5px}.board-wrap{max-width:100%}}@media (width>=900px){.game-layout{grid-template-columns:minmax(320px,560px) 280px;align-items:start;gap:32px;display:grid}}
