.chess-board{width:100%;height:100%;aspect-ratio:1;margin:0 auto;position:relative}.chess-board-grid{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);width:100%;height:100%;border:2px solid #333}.square-wrapper{position:relative;width:100%;height:100%}.chess-square{width:100%;height:100%;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;-webkit-user-select:none;user-select:none}.chess-square-light{background-color:#f0d9b5}.chess-square-dark{background-color:#b58863}.chess-square-highlighted{background-color:#ffff004d!important}.dragging-from{opacity:.7}.piece-image{width:80%;height:80%;object-fit:contain;pointer-events:none}.dragging{opacity:.5}.drag-ghost{position:fixed;pointer-events:none;z-index:1000;opacity:.8}.drag-ghost.enlarged .ghost-image{width:60px;height:60px}.ghost-image{width:100%;height:100%;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}.square-coords{position:absolute;font-size:10px;padding:2px;pointer-events:none}.coords-light{color:#b58863;bottom:0;right:0}.coords-dark{color:#f0d9b5;bottom:0;right:0}.chess-square-possible-move{position:relative}.chess-square-possible-move:after{content:"";position:absolute;width:12px;height:12px;border-radius:50%;background:#00ff0080;border:1px solid rgba(0,200,0,.8);top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:2}.chess-square-possible-move:hover:after{background:#00ff00b3;border-color:#0f0}.move-list{border:2px solid #e0e7ff;border-radius:16px;padding:16px;background:linear-gradient(135deg,#fff,#f8fafc);min-width:280px;box-shadow:0 8px 20px #0000000f,0 3px 6px #00000008;position:relative;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;height:100%}.move-list:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#3b82f6,#2563eb)}.move-list:hover{box-shadow:0 12px 24px #00000017,0 4px 8px #0000000a;transform:translateY(-1px)}.move-grid{display:flex;flex-direction:column;gap:3px;flex:1;overflow-y:auto;padding-right:6px;scroll-behavior:smooth}.move-grid::-webkit-scrollbar{width:6px}.move-grid::-webkit-scrollbar-track{background:linear-gradient(135deg,#f1f5f9,#e2e8f0);border-radius:6px;margin:1px 0}.move-grid::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#cbd5e1,#94a3b8);border-radius:6px;border:1px solid #f1f5f9;transition:background .2s}.move-grid::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#94a3b8,#64748b)}.move-grid::-webkit-scrollbar-thumb:active{background:linear-gradient(135deg,#64748b,#475569)}.move-row{display:grid;grid-template-columns:32px 1fr 1fr;gap:6px;align-items:center;padding:2px 0;min-height:32px;font-family:Segoe UI,SF Mono,Monaco,Inconsolata,monospace}.move-number{color:#64748b;font-family:SF Mono,Monaco,Inconsolata,Courier New,monospace;font-weight:600;font-size:.85rem;text-align:right;letter-spacing:.3px;background:transparent;border-radius:3px;padding:4px 6px 4px 4px;box-shadow:none}.move-btn{padding:5px 8px;border:1px solid #e2e8f0;border-radius:5px;background:linear-gradient(135deg,#fff,#f8fafc);cursor:pointer;text-align:center;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:.9rem;font-weight:600;color:#0f172a;letter-spacing:.1px;transition:all .15s ease;min-height:28px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;box-shadow:0 1px 1px #00000008;width:100%}.move-btn.move-white{font-weight:700;color:#1e293b}.move-btn.move-black{color:#475569;opacity:.95}.move-btn:before{content:"";position:absolute;left:0;top:0;height:100%;width:0;background:linear-gradient(135deg,#3b82f6,#2563eb);transition:width .15s ease}.move-btn:hover:not(.current):not(:disabled){background:linear-gradient(135deg,#f8fafc,#e2e8f0);border-color:#94a3b8;transform:translateY(-1px);box-shadow:0 2px 4px #0000000f}.move-btn:hover:not(.current):not(:disabled):before{width:2px}.move-btn:active:not(.current):not(:disabled){transform:translateY(0);box-shadow:0 1px 2px #0000000a}.move-btn.current{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-color:#3b82f6;font-weight:800;box-shadow:0 2px 6px #3b82f633,inset 0 1px #fff9;color:#1e40af;transform:scale(1.01)}.move-btn.current:before{background:linear-gradient(135deg,#3b82f6,#2563eb);width:2px;box-shadow:1px 0 4px #3b82f64d}.move-btn:disabled{opacity:.4;cursor:default;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;box-shadow:none}.move-btn.move-black:disabled{font-style:normal;color:#94a3b8;background:transparent;border:1px solid transparent}.move-list--analysis{background:linear-gradient(135deg,var(--bg-primary, #0f172a) 0%,var(--bg-secondary, #1a1a2e) 100%);border:1px solid rgba(255,255,255,.08);color:var(--text-primary, #ffffff);box-shadow:0 8px 24px #0009,0 3px 8px #0006}.move-list--analysis:before{background:linear-gradient(90deg,#3b82f6,#8b5cf6);height:1px}.move-list--analysis .move-number{background:transparent;color:var(--text-secondary, #94a3b8)}.move-list--analysis .move-btn{background:linear-gradient(135deg,#ffffff05,#ffffff03);border:1px solid rgba(255,255,255,.06);color:var(--text-primary, #fff)}.move-list--analysis .move-btn.move-white{color:#f1f5f9}.move-list--analysis .move-btn.move-black{color:#cbd5e1}.move-list--analysis .move-btn:hover:not(.current):not(:disabled){background:linear-gradient(135deg,#ffffff0f,#ffffff08);border-color:#3b82f666}.move-list--analysis .move-btn.current{background:linear-gradient(135deg,#0d2a5699,#2563eb99);border-color:#3b82f6cc;color:#fff;box-shadow:0 2px 8px #2563eb33,inset 0 1px #ffffff14}.move-list--analysis .move-btn.current:before{background:linear-gradient(135deg,#3b82f6,#8b5cf6)}@media (max-width: 768px){.move-list{min-width:unset;padding:12px}.move-grid{max-height:280px;gap:2px}.move-row{grid-template-columns:28px 1fr 1fr;gap:4px;min-height:28px}.move-btn{padding:4px 6px;font-size:.85rem;min-height:24px}.move-number{font-size:.8rem;padding:3px 4px 3px 2px}}.move-btn:focus-visible{outline:1px solid #3b82f6;outline-offset:1px}@media (prefers-reduced-motion: no-preference){.move-grid{scroll-behavior:smooth}.move-btn.current{animation:highlight .2s ease}}@keyframes highlight{0%{transform:scale(1)}50%{transform:scale(1.01)}to{transform:scale(1.01)}}:root{--board-size: 640px;--square-size: calc(var(--board-size) / 8);--light-square: #f0d9b5;--dark-square: #b58863;--bg-primary: #0f0f1e;--bg-secondary: #1a1a2e;--bg-card: #16213e;--accent-cyan: #00d4ff;--accent-purple: #a855f7;--accent-green: #10b981;--accent-red: #ef4444;--text-primary: #ffffff;--text-secondary: #94a3b8;--border-color: #2d3748}*{box-sizing:border-box}.chess-arena{display:flex;gap:24px;background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%);padding:32px;border-radius:16px;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;max-width:1400px;margin:0 auto;box-shadow:0 20px 60px #00000080}.side-panel{width:340px;display:flex;flex-direction:column;gap:16px}.mode-controls{display:flex;flex-direction:column;gap:12px}.btn-mode{display:flex;align-items:center;justify-content:center;gap:10px;padding:16px 24px;border:none;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);text-transform:uppercase;letter-spacing:.5px}.btn-icon{font-size:20px}.btn-analyze{background:linear-gradient(135deg,var(--accent-cyan),#0088ff);color:#fff;box-shadow:0 4px 15px #00d4ff4d}.btn-analyze:hover{transform:translateY(-2px);box-shadow:0 6px 25px #00d4ff80}.btn-stop{background:linear-gradient(135deg,var(--accent-red),#dc2626);color:#fff;box-shadow:0 4px 15px #ef44444d}.btn-stop:hover{transform:translateY(-2px);box-shadow:0 6px 25px #ef444480}.pieces-tray{background:var(--bg-card);border-radius:12px;padding:16px;border:1px solid var(--border-color)}.trash-bin{margin-top:12px;padding:10px;border-radius:8px;background:#ef44440f;color:var(--accent-red);font-weight:600;text-align:center;border:1px dashed rgba(239,68,68,.2);cursor:default}.tray-header{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-secondary);margin-bottom:12px}.tray-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.tray-piece{aspect-ratio:1;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:grab;transition:all .2s}.tray-piece:hover{background:#ffffff1a;border-color:var(--accent-cyan);transform:scale(1.05)}.tray-piece:active{cursor:grabbing;transform:scale(.95)}.tray-piece.selected{outline:3px solid rgba(0,212,255,.6);transform:scale(1.03)}.tray-piece .piece-image{width:70%;height:70%}.trash-toggle{padding:10px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.06);background:#ef44440a;color:var(--accent-red);cursor:pointer}.trash-toggle.active{background:#ef44441f;box-shadow:0 6px 18px #ef44441f}.status-card{background:var(--bg-card);border-radius:12px;padding:20px;border:1px solid var(--border-color)}.status-header{margin-bottom:16px}.turn-indicator{display:flex;align-items:center;gap:12px;font-size:16px;font-weight:600}.turn-indicator.w .turn-dot{background:linear-gradient(135deg,#fff,#e5e5e5);box-shadow:0 0 10px #ffffff80}.turn-indicator.b .turn-dot{background:linear-gradient(135deg,#3a3a3a,#1a1a1a);box-shadow:0 0 10px #00000080}.turn-dot{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.3);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.status-details{display:flex;flex-direction:column;gap:8px}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#ffffff08;border-radius:6px}.detail-label{font-size:13px;color:var(--text-secondary);font-weight:500}.detail-value{font-size:14px;font-weight:600;font-family:Monaco,monospace;color:var(--accent-cyan)}.castling-toggles{display:flex;gap:8px;align-items:center}.castling-btn{--size: 30px;width:var(--size);height:var(--size);border-radius:6px;border:1px solid rgba(255,255,255,.06);background:#ffffff08;color:var(--text-primary);display:inline-flex;align-items:center;justify-content:center;font-weight:700;cursor:pointer;transition:all .12s ease}.castling-btn:hover{transform:translateY(-2px);box-shadow:0 6px 18px #0000004d}.castling-btn.active{background:linear-gradient(135deg,var(--accent-cyan),#0088ff);border-color:#00d4ff59;color:#022431;box-shadow:0 6px 20px #00d4ff2e,inset 0 -6px 18px #ffffff08}.color-swatch{width:28px;height:28px;border-radius:6px;border:2px solid rgba(255,255,255,.06);box-shadow:0 6px 14px #00000040;padding:0;cursor:pointer}.color-swatch.selected{outline:3px solid rgba(255,255,255,.12);transform:translateY(-2px);box-shadow:0 10px 26px #00000059,0 0 0 4px #ffffff08 inset}.error-card{background:#ef44441a;border:1px solid var(--accent-red);border-radius:12px;padding:16px;color:#fca5a5;font-size:14px;line-height:1.5}.moves-panel{background:var(--bg-card);border-radius:12px;border:1px solid var(--border-color);display:flex;flex-direction:column;flex-grow:1;overflow:hidden}.moves-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:#0003;border-bottom:1px solid var(--border-color)}.moves-header h4{margin:0;font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--accent-cyan)}.move-badge{background:#00d4ff33;color:var(--accent-cyan);padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;font-family:Monaco,monospace}.moves-content{flex-grow:1;overflow-y:auto;padding:12px;max-height:300px}.move-row{display:grid;grid-template-columns:auto 1fr 1fr;gap:8px;padding:10px 12px;border-radius:8px;cursor:pointer;transition:all .2s;font-family:Monaco,Courier New,monospace;font-size:14px;align-items:center}.move-row:hover{background:#ffffff0d}.move-row.active{background:#00d4ff26;border-left:3px solid var(--accent-cyan);padding-left:9px}.move-num{color:var(--text-secondary);font-size:13px;text-align:right;min-width:30px}.move-san{padding:4px 8px;border-radius:6px;transition:all .2s}.move-san:hover{background:#ffffff1a}.move-san.white{color:#f0f0f0}.move-san.black{color:#cbd5e1}.moves-footer{display:flex;gap:8px;padding:12px 16px;background:#0003;border-top:1px solid var(--border-color)}.nav-btn{flex:1;padding:10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.nav-btn:hover:not(:disabled){background:#ffffff1a;border-color:var(--accent-cyan);transform:translateY(-1px)}.nav-btn:disabled{opacity:.3;cursor:not-allowed}.nav-btn.jump{flex:2;background:#00d4ff1a;border-color:#00d4ff4d}.nav-btn.jump:hover:not(:disabled){background:#00d4ff33}.action-buttons{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:auto}.btn-action{padding:12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:all .2s}.btn-action:hover{background:#ffffff1a;border-color:var(--accent-purple);transform:translateY(-2px)}.board-section{flex:1;display:flex;flex-direction:column;min-width:0}.board-wrapper{position:relative;width:min(var(--board-size),100%);max-width:var(--board-size);aspect-ratio:1 / 1;height:auto;margin:0 auto;outline:none;min-width:0}.board-wrapper:focus-visible{box-shadow:0 0 0 3px var(--accent-cyan);border-radius:12px}.analysis-chess-board{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);width:100%;height:100%;border-radius:12px;overflow:hidden;box-shadow:0 10px 40px #0009;border:3px solid var(--border-color)}.square{position:relative;display:flex;justify-content:center;align-items:center;cursor:pointer;transition:all .15s}.square.light{background:var(--light-square)}.square.dark{background:var(--dark-square)}.square.selected:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle,rgba(0,212,255,.4),transparent 70%);box-shadow:inset 0 0 20px #00d4ff99;animation:glow-pulse 1.5s ease-in-out infinite;z-index:5}.square.arrow-origin:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#00d4ff40,#00d4ff00);box-shadow:inset 0 0 18px #00d4ff80;z-index:5}.square.arrow-target:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#a855f733,#a855f700);box-shadow:inset 0 0 18px #a855f773;z-index:5}.square.possible:after{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border-radius:10px;background:radial-gradient(circle,rgba(0,212,255,.18),transparent 60%);box-shadow:inset 0 0 18px #00d4ff59;animation:glow-pulse 1.5s ease-in-out infinite;pointer-events:none;z-index:4}.square.possible-capture:after{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border-radius:10px;background:radial-gradient(circle,rgba(239,68,68,.14),transparent 60%);box-shadow:inset 0 0 18px #ef444447;animation:glow-pulse 1.5s ease-in-out infinite;pointer-events:none;z-index:4}.square.possible-capture:before{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border:3px solid rgba(239,68,68,.8);border-radius:8px;pointer-events:none;z-index:5}.square.in-check:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle,rgba(239,68,68,.4),transparent 60%);box-shadow:inset 0 0 26px #ef444499}@keyframes glow-pulse{0%,to{opacity:1}50%{opacity:.6}}.piece{width:85%;height:85%;display:flex;align-items:center;justify-content:center;cursor:grab;z-index:2;transition:transform .1s}.piece:hover{transform:scale(1.05)}.piece:active{cursor:grabbing}.piece-image{width:100%;height:100%;background-size:contain;background-repeat:no-repeat;background-position:center;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.ghost-piece{position:fixed;width:calc(var(--square-size) * .85);height:calc(var(--square-size) * .85);pointer-events:none;z-index:9999;transform:translate(-50%,-50%);opacity:.9;filter:drop-shadow(0 6px 18px rgba(0,0,0,.6));will-change:transform}.board-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10}.board-overlay circle.debug-center{stroke:#0ff;stroke-width:2px;fill:#00d4ff1f}@keyframes flow-animation{0%{stroke-dashoffset:0}to{stroke-dashoffset:-40}}.promotion-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s}.promotion-modal{background:var(--bg-card);border:2px solid var(--border-color);border-radius:16px;padding:32px;box-shadow:0 20px 60px #000000b3;animation:slideUp .3s cubic-bezier(.4,0,.2,1)}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.promotion-title{font-size:18px;font-weight:600;margin-bottom:20px;text-align:center;color:var(--text-primary)}.promotion-options{display:flex;gap:12px}.promotion-option{width:70px;height:70px;background:#ffffff0d;border:2px solid rgba(255,255,255,.1);border-radius:12px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.promotion-option:hover{background:#ffffff1a;border-color:var(--accent-cyan);transform:translateY(-4px)}.promotion-option .piece-image{width:80%;height:80%}.moves-content::-webkit-scrollbar{width:6px}.moves-content::-webkit-scrollbar-track{background:#0003;border-radius:3px}.moves-content::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.moves-content::-webkit-scrollbar-thumb:hover{background:#ffffff4d}@media (max-width: 1200px){.chess-arena{flex-direction:column;align-items:center}.side-panel{width:100%;max-width:var(--board-size)}.moves-content{max-height:200px}}@media (max-width: 768px){:root{--board-size: 480px}.chess-arena{padding:20px}.side-panel{width:100%}}.move-white.has-arrows,.move-black.has-arrows{position:relative;background:#00d4ff14}.arrow-indicator{margin-left:6px;color:#00d4ff;font-weight:700;opacity:.8}.move-white.active,.move-black.active{background:#00d4ff26;font-weight:700}.move-white:hover,.move-black:hover{background:#00d4ff1a;cursor:pointer}.analysis-panel{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:16px;font-size:14px}.analysis-header{font-weight:700;margin-bottom:8px;color:var(--accent-cyan)}.analysis-eval{margin-bottom:4px}.analysis-bestmove{margin-bottom:4px;font-weight:700}.analysis-depth{margin-bottom:8px;color:var(--text-secondary)}.analysis-lines{display:flex;flex-direction:column;gap:4px}.analysis-line{font-family:monospace;font-size:12px;color:var(--text-secondary)}.piece-image{width:100%;height:100%;object-fit:contain;pointer-events:none;background-repeat:no-repeat;background-position:center;background-size:contain}.piece-wP{background-image:url(/chess_pieces/svg/wP.svg)}.piece-wR{background-image:url(/chess_pieces/svg/wR.svg)}.piece-wN{background-image:url(/chess_pieces/svg/wN.svg)}.piece-wB{background-image:url(/chess_pieces/svg/wB.svg)}.piece-wQ{background-image:url(/chess_pieces/svg/wQ.svg)}.piece-wK{background-image:url(/chess_pieces/svg/wK.svg)}.piece-bP{background-image:url(/chess_pieces/svg/bP.svg)}.piece-bR{background-image:url(/chess_pieces/svg/bR.svg)}.piece-bN{background-image:url(/chess_pieces/svg/bN.svg)}.piece-bB{background-image:url(/chess_pieces/svg/bB.svg)}.piece-bQ{background-image:url(/chess_pieces/svg/bQ.svg)}.piece-bK{background-image:url(/chess_pieces/svg/bK.svg)}.chess-arena{flex-wrap:wrap;align-items:flex-start}.side-panel{flex:0 0 320px}.board-wrapper{flex:1 1 min(300px,50%);min-width:280px;max-width:100%}@media (max-width: 900px){.chess-arena{gap:12px;padding:16px}.side-panel{width:100%;flex:0 0 auto}.board-wrapper{width:100%;--board-size: 640px}}.context-item{background:none;border:none;color:var(--text-primary);padding:8px 12px;text-align:left;cursor:pointer;border-radius:4px;font-size:14px;width:100%}.context-item:hover{background:var(--bg-secondary)}.turn-toggle-btn:hover{background:var(--bg-secondary)!important;color:var(--text-primary)!important}.fen-input-section{margin-top:16px}.fen-input-section input:focus{outline:2px solid var(--accent-cyan)}.pgn-input-section{margin-top:16px}.pgn-input-section textarea:focus{outline:2px solid var(--accent-cyan)}:root{--bg-card: #0f172a;--bg-item: rgba(255, 255, 255, .03);--accent: #3b82f6;--gold: #f59e0b;--text-primary: #f8fafc;--text-secondary: #94a3b8;--border: rgba(255, 255, 255, .1)}.leaderboard-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:20px;color:var(--text-primary);font-family:Inter,sans-serif;box-shadow:0 10px 30px #0000004d;width:100%;height:100%;display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden}.leaderboard-content{flex:1;display:flex;flex-direction:column;min-height:0}.leaderboard-header{margin-bottom:20px;flex-shrink:0}.title-group{display:flex;align-items:center;gap:10px;margin-bottom:16px}.title-group h3{margin:0;font-size:1.2rem;font-weight:800;background:linear-gradient(to right,#fff,#94a3b8);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.range-nav{display:flex;background:#0000004d;padding:4px;border-radius:10px;border:1px solid var(--border)}.range-tab{flex:1;background:transparent;border:none;color:var(--text-secondary);padding:6px 8px;font-size:.7rem;font-weight:700;cursor:pointer;border-radius:6px;transition:all .2s;text-transform:uppercase}.range-tab.active{background:var(--accent);color:#fff}.podium-section{display:flex;align-items:flex-end;justify-content:center;gap:8px;margin-bottom:20px;flex-shrink:0;padding-top:10px}.podium-card{background:var(--bg-item);border:1px solid var(--border);border-radius:12px;padding:12px 6px;display:flex;flex-direction:column;align-items:center;text-align:center;flex:1;min-width:0;box-sizing:border-box}.rank-1{order:2;min-height:160px;background:#f59e0b0d;border-color:#f59e0b4d}.rank-2{order:1;min-height:135px}.rank-3{order:3;min-height:125px}.avatar-wrapper{position:relative;margin-bottom:8px;flex-shrink:0}.avatar-placeholder{width:40px;height:40px;background:#1e293b;border:2px solid var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:800}.rank-1 .avatar-placeholder{width:48px;height:48px;border-color:var(--gold)}.medal{position:absolute;top:-8px;right:-8px;font-size:1rem}.podium-name{font-weight:600;font-size:.75rem;margin-bottom:4px;width:100%;white-space:normal;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.podium-score{margin-top:auto;font-weight:900;color:var(--accent);font-size:1rem}.rank-1 .podium-score{color:var(--gold)}.list-container{flex:1;min-height:0;overflow-y:auto;padding-right:8px;display:flex;flex-direction:column;gap:6px}.list-container::-webkit-scrollbar{width:4px}.list-container::-webkit-scrollbar-track{background:transparent}.list-container::-webkit-scrollbar-thumb{background:var(--border);border-radius:10px}.list-row{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:var(--bg-item);border-radius:10px;border:1px solid transparent;transition:transform .2s;min-height:54px}.list-row:hover{transform:scale(1.01);border-color:var(--accent)}.row-left{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.row-rank{color:var(--text-secondary);font-weight:800;width:24px;flex-shrink:0}.row-user{font-weight:600;color:var(--text-primary);white-space:normal;line-height:1.2;font-size:.9rem;word-break:break-word}.row-right{text-align:right;flex-shrink:0;margin-left:10px}.row-score{display:block;font-weight:800;color:var(--accent);font-size:.95rem}.row-label{font-size:.6rem;color:var(--text-secondary);text-transform:uppercase}.leaderboard-footer{margin-top:16px;text-align:center;border-top:1px solid var(--border);padding-top:12px;flex-shrink:0}.footer-stats{font-size:.75rem;color:var(--text-secondary)}.skeleton-loader{width:40px;height:40px;border:3px solid var(--bg-item);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@media (max-width: 480px){.podium-name{font-size:.7rem}.rank-1{min-height:150px}.rank-2{min-height:125px}.rank-3{min-height:115px}}.filter-card{background:linear-gradient(135deg,#fff,#f8f9fa);border-radius:clamp(8px,2vw,16px);padding:clamp(20px,5vw,32px);box-shadow:0 8px 32px #00000014,0 2px 8px #0000000a;margin-bottom:clamp(20px,5vw,32px);border:1px solid rgba(0,0,0,.06);transition:all .3s cubic-bezier(.4,0,.2,1);box-sizing:border-box}.filter-card:hover{box-shadow:0 12px 40px #0000001f,0 4px 12px #0000000f;transform:translateY(-2px)}.filter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:clamp(20px,5vw,28px);padding-bottom:clamp(16px,4vw,20px);border-bottom:2px solid rgba(0,123,255,.1);flex-wrap:wrap;gap:clamp(12px,3vw,16px)}.filter-header h3{margin:0;font-size:clamp(1.2rem,3vw,1.5rem);font-weight:700;background:linear-gradient(135deg,#007bff,#0056b3);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.5px}.filter-toggle{display:flex;gap:clamp(6px,1.5vw,12px);background:#f1f3f5;padding:clamp(4px,1vw,6px);border-radius:clamp(8px,2vw,12px);flex-wrap:wrap}.toggle-btn{padding:clamp(8px,2vw,10px) clamp(12px,3vw,20px);border:none;border-radius:8px;background:transparent;cursor:pointer;font-size:clamp(.8rem,2vw,.95rem);font-weight:600;color:#495057;transition:all .25s cubic-bezier(.4,0,.2,1);position:relative}.toggle-btn:hover:not(.active){background:#fff9;color:#007bff;transform:translateY(-1px)}.toggle-btn.active{background:linear-gradient(135deg,#007bff,#0056b3);color:#fff;box-shadow:0 4px 12px #007bff4d,0 2px 4px #007bff33}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(clamp(180px,20vw,200px),1fr));gap:clamp(12px,3vw,20px);margin-bottom:clamp(20px,5vw,28px)}.stat-button{padding:clamp(16px,4vw,20px) clamp(14px,3.5vw,18px);border:2px solid #e9ecef;border-radius:clamp(8px,2vw,12px);background:linear-gradient(135deg,#fff,#f8f9fa);cursor:pointer;text-align:left;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-sizing:border-box}.stat-button:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#007bff,#0056b3);opacity:0;transition:opacity .3s}.stat-button:hover:not(:disabled){border-color:#007bff;transform:translateY(-4px);box-shadow:0 12px 24px #007bff26,0 6px 12px #007bff1a;background:#fff}.stat-button:hover:not(:disabled):before{opacity:1}.stat-button:active:not(:disabled){transform:translateY(-2px)}.stat-button:disabled{opacity:.45;cursor:not-allowed;background:#f8f9fa;border-color:#dee2e6}.stat-button .count{font-weight:700;margin-bottom:clamp(6px,1.5vw,8px);font-size:clamp(1rem,2.5vw,1.25rem);color:#212529;letter-spacing:-.3px}.stat-button .stats{font-size:clamp(.8rem,2vw,.9rem);color:#6c757d;margin-bottom:clamp(8px,2vw,10px)}.stat-button .solved{color:#28a745;font-weight:600}.stat-button .separator{color:#adb5bd;margin:0 4px}.stat-button .total{color:#495057;font-weight:600}.progress-bar{height:6px;background:linear-gradient(90deg,#e9ecef,#f1f3f5);border-radius:10px;overflow:hidden;box-shadow:inset 0 1px 2px #0000000d;margin-top:8px}.progress-fill{height:100%;background:linear-gradient(90deg,#28a745,#20c997);transition:width .5s cubic-bezier(.4,0,.2,1);box-shadow:0 0 8px #28a74566;position:relative}.progress-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,#fff0,#ffffff4d,#fff0);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.filter-navigation{display:flex;justify-content:space-between;align-items:center;padding-top:24px;margin-top:24px;border-top:2px solid #f1f3f5}.nav-arrow{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:2px solid #dee2e6;border-radius:10px;font-size:1.5rem;cursor:pointer;color:#495057;padding:8px 16px;transition:all .25s cubic-bezier(.4,0,.2,1);font-weight:700}.nav-arrow:hover{color:#fff;background:linear-gradient(135deg,#007bff,#0056b3);border-color:#007bff;transform:scale(1.05);box-shadow:0 6px 16px #007bff40}.nav-arrow:active{transform:scale(.98)}.nav-arrow.left{margin-right:auto}.nav-arrow.right{margin-left:auto}.current-filter{font-weight:700;font-size:1.1rem;color:#212529;background:linear-gradient(135deg,#f8f9fa,#e9ecef);padding:10px 24px;border-radius:10px;border:2px solid #dee2e6;letter-spacing:-.2px;margin:0 16px}.filter-loading,.filter-error,.filter-empty{text-align:center;padding:48px 32px;color:#6c757d;font-size:1.05rem;border-radius:12px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:2px dashed #dee2e6;margin-bottom:clamp(20px,5vw,28px)}.filter-loading{background:linear-gradient(135deg,#e3f2fd,#bbdefb);color:#1976d2;border-color:#90caf9}.filter-error{background:linear-gradient(135deg,#ffebee,#ffcdd2);color:#c62828;border-color:#ef9a9a}.filter-error button,.filter-empty button{margin-top:16px;padding:12px 24px;background:linear-gradient(135deg,#007bff,#0056b3);color:#fff;border:none;border-radius:10px;cursor:pointer;font-weight:700;font-size:.95rem;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #007bff4d;letter-spacing:.3px}.filter-error button:hover,.filter-empty button:hover{transform:translateY(-2px);box-shadow:0 8px 20px #007bff66;background:linear-gradient(135deg,#0056b3,#004085)}.filter-error button:active,.filter-empty button:active{transform:translateY(0)}.filter-error a{color:#007bff;text-decoration:none;font-weight:600}.filter-error a:hover{text-decoration:underline}@media (max-width: 768px){.filter-header{flex-direction:column;align-items:flex-start;gap:clamp(12px,3vw,16px)}.filter-toggle{width:100%;justify-content:center}.stats-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.filter-navigation{flex-direction:column;gap:12px}.current-filter{margin:8px 0;order:-1}}@media (max-width: 480px){.stats-grid{grid-template-columns:1fr}.filter-toggle{flex-direction:column;width:100%}.toggle-btn{width:100%;text-align:center}}*{margin:0;padding:0;box-sizing:border-box;border:0;outline:0}html,body{width:100%;height:50%;overflow:hidden;background:#000}.puzzle-container{position:fixed;top:70px;left:0;width:100vw;height:calc(100vh - 70px);background:#000}.puzzle-content{display:grid;grid-template-columns:280px 1fr 320px;gap:0;width:100%;height:100%;margin:0;padding:0}.leaderboard-container{width:280px;height:100%;background:#1a1a1a;border-right:1px solid #333;overflow-y:auto;padding:0}.board-container{width:94%;height:94%;max-width:94vh;max-height:98vw;aspect-ratio:1 / 1;background:#1a1a1a;display:flex;align-items:center;justify-content:center;margin:0 auto}.board-wrapper{width:100%;height:100%;padding:0}.board-wrapper .chessboard{width:100%!important;height:100%!important;aspect-ratio:1 / 1!important}.puzzle-sidebar{width:320px;height:100%;background:#1a1a1a;border-left:2px solid #333;overflow-y:auto;padding:0}html,body{overflow:auto!important}.puzzle-container{position:relative!important;height:auto!important;min-height:calc(100vh - 70px)}.analysis-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1200;animation:fadeIn .3s cubic-bezier(.4,0,.2,1)}.analysis-modal-content{width:min(clamp(320px,95vw,1100px),95%);height:min(clamp(400px,90vh,800px),92%);background:#1a1a1a;border-radius:16px;box-shadow:0 20px 60px #000000b3;display:flex;flex-direction:column;overflow:hidden;animation:slideUp .3s cubic-bezier(.4,0,.2,1);border:1px solid #333}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.analysis-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:2px solid #333;background:#1a1a1a}.analysis-modal-header h3{margin:0;font-size:1.4rem;font-weight:700;color:#fff;letter-spacing:-.3px}.analysis-modal-body{flex:1 1 auto;display:flex;gap:16px;padding:20px;overflow:auto;background:#000}.close-analysis{background:#333;border:2px solid #444;border-radius:8px;font-size:22px;cursor:pointer;width:36px;height:36px;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;transition:all .25s cubic-bezier(.4,0,.2,1);color:#fff;font-weight:700}.close-analysis:hover{background:#dc3545;color:#fff;border-color:#dc3545;transform:rotate(90deg)}.analysis-embedded{width:100%}.sidebar-feedback{display:flex;align-items:center;gap:12px;padding:0;border-radius:12px;font-weight:600;font-size:1rem;animation:feedbackSlide .3s ease-out;border:2px solid #333;background:#2a2a2a;flex-shrink:0;min-height:70px;margin-bottom:16px}@keyframes feedbackSlide{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.sidebar-feedback.correct{background:#28a74526;border-color:#28a74566;color:#4cd964}.sidebar-feedback.incorrect{background:#dc354526;border-color:#dc354566;color:#ff6b6b}.feedback-icon{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.45rem;font-weight:800;flex-shrink:0}.sidebar-feedback.correct .feedback-icon{background:#28a745;color:#fff;box-shadow:0 6px 16px #28a74547}.sidebar-feedback.incorrect .feedback-icon{background:#dc3545;color:#fff;box-shadow:0 6px 16px #dc354547}.feedback-text{flex:1;line-height:1.2;font-size:1.1rem;font-family:Helvetica Neue,Arial,sans-serif;font-weight:700}.completion-card{background:#2a2a2a;border-radius:16px;padding:0;border:2px solid #333;box-shadow:0 8px 32px #0000004d;flex-shrink:0;height:140px;position:sticky;top:16px;z-index:2;overflow:hidden;margin-bottom:16px}.completion-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}.completion-emoji{font-size:1.8rem;line-height:1;color:#fff}.completion-title h3{margin:0;font-size:1.2rem;font-weight:700;color:#4cd964;line-height:1.2}.completion-subtitle{margin:4px 0 0;font-size:.85rem;color:#aaa;font-weight:500}.puzzle-metadata{background:#2a2a2a;border-radius:12px;border:1px solid #333;flex-shrink:0;min-height:120px;padding:16px;margin-bottom:24px}.metadata-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.metadata-item{display:flex;flex-direction:column;gap:4px}.metadata-label{font-size:.75rem;color:#aaa;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:24px}.metadata-value{font-size:.95rem;font-weight:700;color:#fff}.move-list-section{flex:1;display:flex;flex-direction:column;min-height:350px;background:#2a2a2a;border-radius:16px;border:1px solid #333;overflow:hidden}.move-list-header h4{margin:0;font-size:1.1rem;font-weight:700;color:#007bff;letter-spacing:-.3px}.move-list-container{flex:1;overflow-y:auto;padding:0}.analysis-button{padding:12px 24px;border-radius:10px;border:none;background:linear-gradient(135deg,#007bff,#0056b3);color:#fff;cursor:pointer;font-weight:700;font-size:.95rem;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #007bff4d;letter-spacing:.3px;min-height:44px}.analysis-button:hover{background:linear-gradient(135deg,#0056b3,#004085);transform:translateY(-2px);box-shadow:0 8px 20px #007bff66}.completion-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:0;border:none;border-radius:10px;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s ease;min-height:44px;color:#fff}.next-btn{background:linear-gradient(135deg,#28a745,#1e7e34);color:#fff;font-weight:700}.next-btn:hover{background:linear-gradient(135deg,#1e7e34,#155724);transform:translateY(-2px)}@media (max-width: 768px){.puzzle-content{grid-template-columns:1fr;grid-template-rows:auto auto auto}.leaderboard-container,.board-container,.puzzle-sidebar{width:100vw;height:auto;border:none;border-bottom:2px solid #333}.board-container{aspect-ratio:1 / 1;max-height:100vw}.leaderboard-container,.puzzle-sidebar{width:100%}}@media (min-width: 769px) and (max-width: 1024px){.puzzle-content{grid-template-columns:220px 1fr 260px}.leaderboard-container{width:220px}.puzzle-sidebar{width:260px}}@media (min-width: 1025px){.puzzle-content{grid-template-columns:350px 1fr 320px}.leaderboard-container{width:410px}.puzzle-sidebar{width:100%}}body{padding-top:70px!important;margin:0!important;min-height:100vh;overflow-x:hidden;position:relative}.app-header{position:fixed!important;top:0!important;left:0!important;right:0!important;z-index:1000!important;display:flex!important;align-items:center!important;justify-content:space-between!important;padding:12px 16px!important;border-bottom:1px solid #e2e8f0!important;background:linear-gradient(180deg,#fff,#f8fafc)!important;box-shadow:0 1px 3px #0000001a!important;flex-wrap:wrap!important;gap:12px!important;min-height:60px!important;width:100%!important;box-sizing:border-box!important;transform:translateZ(0)!important;will-change:transform!important;backface-visibility:hidden!important;margin:0!important;height:auto!important;max-height:none!important}.app-header *{position:static!important;transform:none!important}.app-header{transition:transform .3s ease-in-out!important}.app-title-wrap{display:flex!important;align-items:baseline!important;gap:10px!important;flex-shrink:0!important}.app-title{font-weight:800!important;color:#0f172a!important;font-size:clamp(16px,4vw,20px)!important;line-height:1.2!important;margin:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;flex-shrink:0!important}.app-subtitle{font-weight:600!important;color:#475569!important;font-size:clamp(12px,2.2vw,14px)!important;white-space:nowrap!important;opacity:.9!important;margin-left:6px!important;display:block!important}.app-actions{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important;margin-left:auto!important}.username{font-weight:600!important;color:#334155!important;font-size:clamp(13px,2.5vw,15px)!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:150px!important}.stats-button{background:#4f46e5!important;color:#fff!important;padding:8px 14px!important;border:none!important;border-radius:6px!important;cursor:pointer!important;font-weight:600!important;font-size:clamp(13px,2.5vw,14px)!important;display:flex!important;align-items:center!important;gap:6px!important;transition:all .2s ease!important;white-space:nowrap!important;flex-shrink:0!important}.stats-button:hover{background:#4338ca!important;transform:translateY(-1px)!important;box-shadow:0 2px 4px #4f46e54d!important}.stats-button:active{transform:translateY(0)!important}.logout-button{background:#dc3545!important;color:#fff!important;padding:8px 12px!important;border:none!important;border-radius:6px!important;cursor:pointer!important;font-weight:600!important;font-size:clamp(13px,2.5vw,14px)!important;transition:all .2s ease!important;white-space:nowrap!important;flex-shrink:0!important}.logout-button:hover{background:#c82333!important;box-shadow:0 2px 4px #dc35454d!important}.logout-button:active{transform:scale(.98)!important}.guest-status{color:#64748b!important;font-weight:600!important;font-size:clamp(13px,2.5vw,15px)!important}@media (max-width: 640px){.app-header{padding:10px 12px!important;gap:10px!important;min-height:55px!important}.app-title{font-size:16px!important;max-width:140px!important}.app-actions{gap:6px!important;width:100%!important;justify-content:flex-end!important}.username{max-width:100px!important;font-size:13px!important}.stats-button,.logout-button{padding:7px 10px!important;font-size:13px!important}body{padding-top:65px!important}}@media (min-width: 641px) and (max-width: 1024px){.app-header{padding:12px 18px!important}.username{max-width:120px!important}}@media (min-width: 1025px){.app-header{padding:12px 24px!important}}html body .app-header{position:fixed!important;top:0!important}main,.main-content,#root>div{position:relative!important;z-index:1!important}body:has(.app-header){padding-top:70px!important}body.header-inline{padding-top:0!important}body.header-inline .app-header{position:static!important;top:auto!important;left:auto!important;right:auto!important;z-index:auto!important;box-shadow:none!important;border-bottom:1px solid #e6eef5!important;width:100%!important}body.header-inline main,body.header-inline .main-content,body.header-inline #root>div{position:static!important;z-index:0!important}.daily-stats-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .3s cubic-bezier(.4,0,.2,1);padding:20px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.daily-stats-modal-content{width:min(1200px,100%);max-height:90vh;background:linear-gradient(135deg,#0f172a,#1e293b);border-radius:20px;box-shadow:0 25px 80px #0009;overflow:hidden;animation:slideUp .4s cubic-bezier(.4,0,.2,1);border:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:28px 32px;background:linear-gradient(135deg,#1e293b,#0f172a);border-bottom:1px solid rgba(255,255,255,.08)}.header-left{display:flex;flex-direction:column;gap:6px}.modal-title{margin:0;font-size:1.8rem;font-weight:800;color:#f8fafc;letter-spacing:-.5px}.modal-subtitle{margin:0;font-size:.95rem;color:#94a3b8;font-weight:500}.close-modal{background:#ffffff0d;border:2px solid rgba(255,255,255,.1);border-radius:12px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:28px;color:#94a3b8;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);font-weight:700}.close-modal:hover{background:linear-gradient(135deg,#ef4444,#dc2626);border-color:#ef4444;color:#fff;transform:rotate(90deg) scale(1.1)}.time-range-selector{display:flex;gap:12px;padding:20px 32px;background:#0003;border-bottom:1px solid rgba(255,255,255,.05)}.time-range-btn{padding:12px 28px;border:2px solid rgba(255,255,255,.1);border-radius:10px;background:#ffffff08;color:#94a3b8;cursor:pointer;font-weight:700;font-size:.95rem;transition:all .25s cubic-bezier(.4,0,.2,1);letter-spacing:.3px}.time-range-btn:hover:not(.active){background:#ffffff14;border-color:#3b82f680;color:#60a5fa;transform:translateY(-2px)}.time-range-btn.active{background:linear-gradient(135deg,#3b82f6,#2563eb);border-color:#3b82f6;color:#fff;box-shadow:0 6px 20px #3b82f666}.stats-content{flex:1;overflow-y:auto;padding:32px;background:linear-gradient(135deg,#0f172a,#1e293b)}.stats-content::-webkit-scrollbar{width:10px}.stats-content::-webkit-scrollbar-track{background:#0003}.stats-content::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:10px}.stats-content::-webkit-scrollbar-thumb:hover{background:#fff3}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:40px}.summary-card{display:flex;align-items:center;gap:16px;padding:24px;background:linear-gradient(135deg,#1e293bcc,#0f172acc);border:1px solid rgba(255,255,255,.1);border-radius:16px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.summary-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,#3b82f6,#8b5cf6)}.summary-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px #3b82f64d;border-color:#3b82f680}.summary-icon{font-size:2.5rem;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}.summary-details{display:flex;flex-direction:column;gap:4px}.summary-label{font-size:.85rem;color:#94a3b8;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.summary-value{font-size:2rem;font-weight:800;color:#f8fafc;letter-spacing:-.5px}.line-graph-section{background:linear-gradient(135deg,#1e293b99,#0f172a99);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:28px;margin-bottom:32px}.graph-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.graph-header h3{margin:0;font-size:1.3rem;font-weight:700;color:#f8fafc}.graph-period{font-size:.9rem;color:#94a3b8;font-weight:600;padding:6px 14px;background:#ffffff0d;border-radius:8px}.graph-container{display:flex;gap:16px;min-height:350px;position:relative}.y-axis{display:flex;flex-direction:column;justify-content:space-between;padding-right:12px;color:#64748b;font-size:.85rem;font-weight:600;width:40px}.y-label{text-align:right;font-family:SF Mono,Monaco,monospace}.graph-bars{flex:1;display:flex;align-items:flex-end;gap:8px;position:relative;padding:20px 0;background:linear-gradient(to bottom,rgba(59,130,246,.05) 0%,transparent 50%);border-radius:8px}.graph-bars:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:100% 25%,50px 100%;pointer-events:none}.bar-container{flex:1;display:flex;flex-direction:column;align-items:center;gap:12px;position:relative;min-width:0}.bar{width:100%;max-width:40px;min-height:4px;background:linear-gradient(180deg,#3b82f6,#1e40af);border-radius:6px 6px 0 0;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;cursor:pointer;box-shadow:0 -4px 20px #3b82f666;display:flex;align-items:flex-start;justify-content:center;padding-top:8px}.bar:before{content:"";position:absolute;top:-8px;left:50%;transform:translate(-50%);width:12px;height:12px;background:linear-gradient(135deg,#60a5fa,#3b82f6);border:3px solid #0f172a;border-radius:50%;box-shadow:0 0 20px #3b82f6cc;opacity:0;transition:opacity .3s}.bar:hover{background:linear-gradient(180deg,#60a5fa,#3b82f6);box-shadow:0 -8px 30px #3b82f699;transform:scaleY(1.05)}.bar:hover:before{opacity:1}.bar.today{background:linear-gradient(180deg,#10b981,#059669);box-shadow:0 -4px 20px #10b98180}.bar.today:before{background:linear-gradient(135deg,#34d399,#10b981);box-shadow:0 0 20px #10b981cc}.bar.empty{background:#ffffff0d;box-shadow:none;min-height:4px}.bar.empty:hover{background:#ffffff14}.bar-value{color:#fff;font-size:.75rem;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.5);opacity:0;transition:opacity .3s}.bar:hover .bar-value{opacity:1}.x-label{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.7rem;color:#64748b;font-weight:600;text-align:center}.day-of-week{color:#94a3b8;font-size:.65rem;text-transform:uppercase;letter-spacing:.5px}.day-number{color:#cbd5e1;font-weight:700;font-size:.75rem}.graph-legend{display:flex;justify-content:space-between;margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.05);color:#64748b;font-size:.85rem;font-weight:600}.data-table-section{background:linear-gradient(135deg,#1e293b66,#0f172a66);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:28px}.data-table-section h3{margin:0 0 24px;font-size:1.2rem;font-weight:700;color:#f8fafc}.table-container{max-height:400px;overflow-y:auto;border-radius:8px}.stats-table{width:100%;border-collapse:collapse}.stats-table thead{position:sticky;top:0;z-index:10;background:linear-gradient(135deg,#1e293b,#0f172a)}.stats-table th{padding:16px;text-align:left;font-size:.85rem;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid rgba(255,255,255,.1)}.stats-table tbody tr{border-bottom:1px solid rgba(255,255,255,.05);transition:all .2s}.stats-table tbody tr:hover{background:#3b82f61a}.stats-table tbody tr.empty-day{opacity:.5}.stats-table td{padding:14px 16px;color:#cbd5e1;font-weight:500}.solved-count{text-align:center}.count-badge{display:inline-block;padding:6px 14px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border-radius:8px;font-weight:700;font-size:.9rem;box-shadow:0 2px 8px #3b82f64d}.count-badge.zero{background:#ffffff0d;color:#64748b;box-shadow:none}.progress-bar{height:8px;background:#ffffff0d;border-radius:10px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#8b5cf6);transition:width .5s cubic-bezier(.4,0,.2,1);box-shadow:0 0 12px #3b82f680}.stats-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 32px;color:#94a3b8;gap:20px}.loading-spinner{width:50px;height:50px;border:4px solid rgba(59,130,246,.2);border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}.stats-loading p{font-size:1.1rem;font-weight:600}.stats-error,.not-authenticated,.no-data{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 32px;color:#94a3b8;text-align:center;gap:16px}.error-icon,.auth-icon,.no-data-icon{font-size:4rem;filter:drop-shadow(0 4px 12px rgba(0,0,0,.3))}.stats-error p,.not-authenticated p,.no-data p{font-size:1.1rem;font-weight:600;color:#cbd5e1;margin:0}.no-data-hint{font-size:.95rem!important;color:#64748b!important;font-weight:500!important}.retry-btn{padding:12px 28px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:10px;cursor:pointer;font-weight:700;font-size:.95rem;margin-top:12px;transition:all .3s;box-shadow:0 4px 16px #3b82f64d}.retry-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px #3b82f666}@media (max-width: 900px){.summary-cards{grid-template-columns:1fr}.graph-container{min-height:300px}.x-label{font-size:.65rem}.day-of-week{font-size:.6rem}}@media (max-width: 640px){.daily-stats-modal-content{border-radius:16px}.modal-header{padding:20px 24px}.modal-title{font-size:1.4rem}.time-range-selector{padding:16px 24px;gap:8px;flex-wrap:wrap}.time-range-btn{padding:10px 20px;font-size:.85rem}.stats-content{padding:24px}.bar{max-width:30px}}.line-graph-container{display:flex;flex-direction:column;gap:16px;background:linear-gradient(135deg,#1e293b99,#0f172a99);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:24px;position:relative}.svg-graph{height:200px;position:relative;overflow:hidden;border-radius:8px}.svg-graph svg{width:100%;height:100%}.data-point{transition:all .3s ease}.data-point:hover{r:4;fill:#60a5fa;filter:drop-shadow(0 0 8px rgba(59,130,246,.8))}.x-axis-labels{display:flex;justify-content:space-between;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.x-axis-labels .x-label{font-size:.75rem;color:#64748b;font-weight:600;transform:rotate(-45deg);transform-origin:left top;white-space:nowrap}.bar-graph-container{display:flex;gap:16px;background:linear-gradient(135deg,#1e293b99,#0f172a99);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:24px}.bars-container{flex:1;display:flex;align-items:flex-end;gap:4px;height:200px;padding:20px 0;position:relative}.bar-column{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0}.bar-column .bar{width:100%;max-width:30px;min-height:4px;background:linear-gradient(180deg,#3b82f6,#1e40af);border-radius:4px 4px 0 0;transition:all .3s ease;position:relative;cursor:pointer;display:flex;align-items:flex-start;justify-content:center;padding-top:4px}.bar-column .bar:hover{background:linear-gradient(180deg,#60a5fa,#3b82f6);transform:scaleY(1.05)}.bar-column .bar.today{background:linear-gradient(180deg,#10b981,#059669)}.bar-column .bar.empty{background:#ffffff0d}.bar-column .bar-value{color:#fff;font-size:.7rem;font-weight:700;text-shadow:0 1px 3px rgba(0,0,0,.5);opacity:0;transition:opacity .3s}.bar-column .x-label{font-size:.7rem;color:#64748b;font-weight:600;text-align:center}.date-range{text-align:center;font-size:.85rem;color:#94a3b8;font-weight:600;margin-top:16px;padding-top:12px;border-top:1px solid rgba(255,255,255,.05)}.chart-type-selector{display:flex;gap:12px;margin:0 0 24px;padding:12px;background:#0003;border-radius:10px}.chart-type-btn{flex:1;padding:12px 20px;border:2px solid rgba(255,255,255,.1);border-radius:8px;background:#ffffff08;color:#94a3b8;cursor:pointer;font-weight:600;font-size:.9rem;transition:all .25s ease;display:flex;align-items:center;justify-content:center;gap:8px}.chart-type-btn:hover:not(.active){background:#ffffff14;border-color:#3b82f64d;color:#60a5fa}.chart-type-btn.active{background:linear-gradient(135deg,#3b82f633,#2563eb33);border-color:#3b82f6;color:#fff}.step-graph-section{background:linear-gradient(135deg,#1e293b99,#0f172a99);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:24px;margin-bottom:32px}.step-graph-container{display:flex;gap:16px;height:250px;position:relative}.svg-step-graph{flex:1;position:relative;border-radius:8px;background:#0003}.svg-step-graph svg{width:100%;height:100%}.step-data-point{transition:all .3s ease}.step-data-point:hover{r:5;fill:#60a5fa;filter:drop-shadow(0 0 12px rgba(59,130,246,.8))}.step-x-axis-labels{display:flex;justify-content:space-between;margin-top:16px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.step-x-label{font-size:.75rem;color:#64748b;font-weight:600;text-align:center;transform:rotate(-45deg);transform-origin:left top;height:40px;width:30px}.bar-graph-section{background:linear-gradient(135deg,#1e293b99,#0f172a99);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:24px;margin-bottom:32px}.bar-graph-container{display:flex;gap:16px;height:250px;position:relative}.bars-container{flex:1;display:flex;align-items:flex-end;gap:4px;padding:20px 0;position:relative;background:#0003;border-radius:8px}.bars-container:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px);background-size:100% 25%;pointer-events:none}.bar-column{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:8px;min-width:0;height:100%}.bar-column .bar{width:100%;max-width:40px;min-height:4px;background:linear-gradient(180deg,#3b82f6,#1e40af);border-radius:6px 6px 0 0;transition:all .3s ease;position:relative;cursor:pointer;display:flex;align-items:flex-start;justify-content:center;padding-top:6px;box-shadow:0 -4px 12px #3b82f64d}.bar-column .bar:hover{background:linear-gradient(180deg,#60a5fa,#3b82f6);transform:scaleY(1.05);box-shadow:0 -6px 20px #3b82f680}.bar-column .bar.today{background:linear-gradient(180deg,#10b981,#059669);box-shadow:0 -4px 12px #10b9814d}.bar-column .bar.today:hover{background:linear-gradient(180deg,#34d399,#10b981);box-shadow:0 -6px 20px #10b98180}.bar-column .bar.empty{background:#ffffff0d;box-shadow:none}.bar-column .bar.empty:hover{background:#ffffff14}.bar-column .bar-value{color:#fff;font-size:.75rem;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.5);opacity:0;transition:opacity .3s}.bar-column .bar:hover .bar-value{opacity:1}.bar-column .x-label{font-size:.7rem;color:#64748b;font-weight:600;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}.graph-footer{display:flex;justify-content:space-between;margin-top:16px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1);font-size:.85rem;color:#94a3b8;font-weight:600}.data-points-count{color:#cbd5e1}.max-value{color:#3b82f6;font-weight:700}.y-axis{display:flex;flex-direction:column;justify-content:space-between;padding-right:12px;color:#64748b;font-size:.85rem;font-weight:600;width:40px;font-family:SF Mono,Monaco,monospace}.y-label{text-align:right;height:20px;display:flex;align-items:center;justify-content:flex-end}@media (max-width: 768px){.step-x-label{font-size:.65rem;width:25px}.bar-column .x-label{font-size:.65rem}.bar-column .bar{max-width:30px}.step-graph-container,.bar-graph-container{height:200px}.chart-type-selector{flex-direction:column}}@media (max-width: 480px){.step-x-label{font-size:.6rem;width:20px}.bar-column .x-label{font-size:.6rem}.bar-column .bar{max-width:20px}.y-axis{width:30px;font-size:.75rem}}.auth-container{max-width:440px;margin:3rem auto;padding:40px;border:none;border-radius:16px;background:linear-gradient(135deg,#fff,#f8f9fa);box-shadow:0 12px 48px #0000001f,0 4px 16px #00000014;position:relative;overflow:hidden;animation:slideIn .4s cubic-bezier(.4,0,.2,1)}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.auth-container:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#007bff,#0056b3)}.form-group{margin-bottom:24px}.form-group label{display:block;margin-bottom:8px;font-weight:700;color:#212529;font-size:.95rem;letter-spacing:.3px}.form-group input{width:100%;padding:14px 16px;border:2px solid #e9ecef;border-radius:10px;font-size:1rem;transition:all .25s cubic-bezier(.4,0,.2,1);background:#fff;box-sizing:border-box;font-family:inherit}.form-group input::placeholder{color:#adb5bd}.form-group input:hover:not(:disabled){border-color:#ced4da}.form-group input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 4px #007bff26;transform:translateY(-1px)}.form-group input:disabled{background-color:#f1f3f5;cursor:not-allowed;opacity:.6;border-color:#dee2e6}.submit-button{padding:14px 24px;background:linear-gradient(135deg,#007bff,#0056b3);color:#fff;border:none;border-radius:10px;cursor:pointer;width:100%;font-size:1.05rem;font-weight:700;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 16px #007bff4d;letter-spacing:.5px;position:relative;overflow:hidden}.submit-button:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);transition:width .6s,height .6s}.submit-button:hover:not(:disabled):before{width:300px;height:300px}.submit-button:hover:not(:disabled){background:linear-gradient(135deg,#0056b3,#004085);transform:translateY(-2px);box-shadow:0 8px 24px #007bff66}.submit-button:active:not(:disabled){transform:translateY(0);box-shadow:0 4px 12px #007bff4d}.submit-button:disabled{background:linear-gradient(135deg,#dee2e6,#ced4da);cursor:not-allowed;box-shadow:none;color:#6c757d;opacity:.7}.toggle-button{background:transparent;color:#007bff;margin-top:16px;border:2px solid #007bff;padding:12px 20px;width:100%;cursor:pointer;border-radius:10px;font-weight:700;font-size:.95rem;transition:all .3s cubic-bezier(.4,0,.2,1);letter-spacing:.3px}.toggle-button:hover:not(:disabled){background:linear-gradient(135deg,#007bff,#0056b3);color:#fff;transform:translateY(-2px);box-shadow:0 4px 16px #007bff40}.toggle-button:active:not(:disabled){transform:translateY(0)}.toggle-button:disabled{opacity:.4;cursor:not-allowed;border-color:#ced4da;color:#6c757d}.logout-button{background:linear-gradient(135deg,#dc3545,#c82333);color:#fff;padding:14px 24px;border:none;border-radius:10px;cursor:pointer;width:100%;margin-top:16px;font-weight:700;font-size:1rem;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 16px #dc35454d;letter-spacing:.5px}.logout-button:hover{background:linear-gradient(135deg,#c82333,#bd2130);transform:translateY(-2px);box-shadow:0 8px 24px #dc354566}.logout-button:active{transform:translateY(0);box-shadow:0 4px 12px #dc35454d}.error-message{background:linear-gradient(135deg,#f8d7da,#f5c6cb);color:#721c24;padding:16px 20px;border-radius:10px;margin-bottom:24px;border:2px solid #f1b0b7;font-weight:600;font-size:.95rem;animation:shake .4s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #721c241a}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}.success-message{background:linear-gradient(135deg,#d4edda,#c3e6cb);color:#155724;padding:16px 20px;border-radius:10px;margin-bottom:24px;border:2px solid #b1dfbb;font-weight:600;font-size:.95rem;animation:slideDown .4s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #1557241a}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.submit-button.loading,.logout-button.loading{position:relative;color:transparent;pointer-events:none}.submit-button.loading:after,.logout-button.loading:after{content:"";position:absolute;width:20px;height:20px;top:50%;left:50%;margin-left:-10px;margin-top:-10px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 640px){.auth-container{margin:2rem 16px;padding:32px 24px}.form-group{margin-bottom:20px}.form-group input{padding:12px 14px}.submit-button,.logout-button{padding:12px 20px;font-size:1rem}.toggle-button{padding:10px 16px;font-size:.9rem}}.submit-button:focus-visible,.toggle-button:focus-visible,.logout-button:focus-visible{outline:3px solid #007bff;outline-offset:2px}.form-group input:focus-visible{outline:3px solid #007bff;outline-offset:2px}@media (prefers-color-scheme: dark){.auth-container{background:linear-gradient(135deg,#2d3748,#1a202c);box-shadow:0 12px 48px #0006}.form-group label{color:#e2e8f0}.form-group input{background:#1a202c;border-color:#4a5568;color:#e2e8f0}.form-group input:focus{border-color:#4299e1;box-shadow:0 0 0 4px #4299e133}.form-group input::placeholder{color:#718096}}.password-prompt{margin-bottom:24px;padding:20px;border:2px solid #ffc107;border-radius:10px;background:#ffc1071a;animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.password-prompt label{display:block;margin-bottom:12px;font-weight:700;color:#856404;font-size:1rem}.password-prompt input{width:100%;padding:12px 16px;border:2px solid #ffc107;border-radius:8px;font-size:1rem;margin-bottom:12px;box-sizing:border-box;font-family:inherit}.password-prompt button{padding:10px 20px;background:#ffc107;color:#212529;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:background .2s}.password-prompt button:hover{background:#e0a800}
