@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400&display=swap";.header{position:fixed;top:0;left:0;right:0;height:64px;background:var(--color-card);border-bottom:1px solid var(--color-border);z-index:100}.header-container{max-width:1200px;height:100%;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between}.header-logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--color-foreground);transition:opacity var(--transition-fast)}.header-logo:hover{opacity:.8}.logo-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);border-radius:var(--radius-lg);transition:transform var(--transition-fast)}.logo-icon img{max-width:100%;height:auto;max-height:100%;object-fit:contain}.header-logo:hover .logo-icon{transform:scale(1.05)}.logo-text{font-family:var(--font-heading);font-size:1.25rem;font-weight:700;color:var(--color-foreground)}.nav-header-actions{display:none}.header-leave-button{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius-md);border:1px solid rgba(255,92,92,.3);background:#ff5c5c1f;color:#ff5c5c;font-family:var(--font-body);font-size:.875rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.header-leave-button:hover{background:#ff5c5c2e;border-color:#ff5c5c73;transform:translateY(-1px)}.header-leave-button:active{transform:translateY(0)}.profile-menu{position:relative}.profile-button{width:40px;height:40px;border:none;background:transparent;cursor:pointer;padding:0;border-radius:50%;overflow:hidden;transition:transform var(--transition-fast);display:flex;align-items:center;justify-content:center}.profile-button:hover{transform:scale(1.1)}.profile-avatar{height:40px;width:40px;border-radius:50%;object-fit:cover}.profile-avatar-placeholder{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-primary) 0%,#00d4aa 100%);color:var(--color-primary-foreground);font-weight:700;font-size:1rem;border-radius:50%}.profile-dropdown{position:absolute;top:calc(100% + 12px);right:0;min-width:240px;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 10px 40px #0006;z-index:100;padding:12px;animation:slideDownFade var(--transition-fast);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}@keyframes slideDownFade{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.profile-info{padding:12px 8px}.profile-email{font-size:.875rem;font-weight:600;color:var(--color-foreground);margin:0 0 4px;word-break:break-all}.profile-name{font-size:.75rem;color:var(--color-muted-foreground);margin:0;font-weight:500}.profile-divider{border:none;height:1px;background:var(--color-border);margin:8px 0;opacity:.5}.logout-button{width:100%;display:flex;align-items:center;gap:10px;padding:10px 8px;border:none;background:transparent;color:var(--color-muted-foreground);font-family:var(--font-body);font-size:.875rem;font-weight:500;cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);text-align:left}.logout-button:hover{background:#ff3b301a;color:#ff3b30}@media(min-width:768px){.nav-header-actions{display:flex;align-items:center;gap:8px}}.auth-button{display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-md);text-decoration:none;color:var(--color-primary-foreground);background:var(--color-primary);font-family:var(--font-body);font-size:.875rem;font-weight:600;transition:all var(--transition-fast)}.auth-button:hover{opacity:.9;transform:translateY(-1px)}.header-nav{display:none;gap:8px}@media(min-width:768px){.header-nav{display:flex}}.nav-link{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:var(--radius-md);text-decoration:none;color:var(--color-muted-foreground);font-family:var(--font-body);font-size:.875rem;font-weight:500;transition:all var(--transition-fast)}.nav-link:hover{background:var(--color-muted);color:var(--color-foreground)}.nav-link.active{background:var(--color-primary);color:var(--color-primary-foreground)}.mobile-menu-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:transparent;color:var(--color-foreground);cursor:pointer;border-radius:var(--radius-md);transition:background var(--transition-fast)}.mobile-menu-toggle:hover{background:var(--color-muted)}@media(min-width:768px){.mobile-menu-toggle{display:none}}.mobile-menu-overlay{position:fixed;inset:64px 0 0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:99;animation:fadeIn var(--transition-fast)}.mobile-menu{position:absolute;top:0;right:0;width:280px;max-width:80vw;height:100%;background:var(--color-card);padding:24px;box-shadow:var(--shadow-lg);animation:slideIn var(--transition-base)}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.mobile-nav-link{display:flex;align-items:center;gap:12px;padding:12px 16px;margin-bottom:8px;border-radius:var(--radius-md);text-decoration:none;color:var(--color-foreground);font-family:var(--font-body);font-size:1rem;font-weight:500;transition:all var(--transition-fast)}.mobile-nav-link:hover{background:var(--color-muted)}.mobile-nav-link.active{background:var(--color-primary);color:var(--color-primary-foreground)}.mobile-divider{height:1px;background:var(--color-border);margin:16px 0}@media(prefers-reduced-motion:reduce){.header-logo,.nav-link,.mobile-menu-toggle,.mobile-menu-overlay,.mobile-menu,.mobile-nav-link{animation:none;transition:none}}.game-status-indicator{display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--color-muted);border-radius:var(--radius-md);font-family:var(--font-data);font-size:.875rem}.status-item{display:flex;align-items:center;gap:6px;color:var(--color-foreground)}.status-label{color:var(--color-muted-foreground);font-weight:400}.status-value{font-weight:500;color:var(--color-foreground)}.turn-value{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--color-primary);color:var(--color-primary-foreground);border-radius:var(--radius-sm);font-weight:600}.aging-badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;background:var(--color-accent);color:var(--color-accent-foreground);border-radius:var(--radius-sm);font-weight:500;font-size:.75rem}@media(max-width:767px){.desktop-only{display:none}.game-status-indicator{gap:8px;padding:6px 12px;font-size:.8rem}.status-item{gap:4px}}.quick-actions-menu{position:relative}.quick-actions-trigger{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:transparent;color:var(--color-foreground);cursor:pointer;border-radius:var(--radius-md);transition:background var(--transition-fast)}.quick-actions-trigger:hover{background:var(--color-muted)}.quick-actions-trigger:focus-visible{outline:2px solid var(--color-ring);outline-offset:2px}.quick-actions-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:180px;background:var(--color-popover);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:8px;z-index:200;animation:slideDown var(--transition-fast)}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.action-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:none;background:transparent;color:var(--color-foreground);font-family:var(--font-body);font-size:.875rem;font-weight:500;text-align:left;cursor:pointer;border-radius:var(--radius-md);transition:background var(--transition-fast)}.action-item:hover{background:var(--color-muted)}.action-item.primary{color:var(--color-primary)}.action-item.primary:hover{background:var(--color-primary);color:var(--color-primary-foreground)}.action-item.warning{color:var(--color-warning)}.action-item.warning:hover{background:var(--color-warning);color:var(--color-warning-foreground)}@media(max-width:767px){.quick-actions-menu{position:fixed;bottom:80px;right:16px;z-index:50}.quick-actions-trigger{width:56px;height:56px;background:var(--color-primary);color:var(--color-primary-foreground);box-shadow:var(--shadow-lg)}.quick-actions-trigger:hover{background:var(--color-primary);transform:scale(1.05)}.quick-actions-dropdown{bottom:calc(100% + 8px);top:auto}}@media(prefers-reduced-motion:reduce){.quick-actions-dropdown,.quick-actions-trigger{animation:none;transition:none}}.loading-spinner-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;padding:2rem}.loading-spinner-container.inline{padding:1rem}.loading-spinner{position:relative;display:inline-block}.loading-spinner.small{--cell-size: 1.5rem;--grid-gap: .25rem;--piece-stroke: 2px}.loading-spinner.medium{--cell-size: 2rem;--grid-gap: .375rem;--piece-stroke: 2.5px}.loading-spinner.large{--cell-size: 2.5rem;--grid-gap: .5rem;--piece-stroke: 3px}.tictactoe-grid{display:grid;grid-template-columns:repeat(3,var(--cell-size));grid-template-rows:repeat(3,var(--cell-size));gap:var(--grid-gap);padding:.5rem;background:var(--color-card);border-radius:var(--radius-lg);border:2px solid var(--color-border);box-shadow:var(--shadow-md);animation:subtle-rotate 8s ease-in-out infinite}.grid-cell{width:var(--cell-size);height:var(--cell-size);display:flex;align-items:center;justify-content:center;background:var(--color-muted);border-radius:var(--radius-sm);position:relative;overflow:hidden}.grid-cell:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);opacity:0;animation:cell-pulse 2s ease-in-out infinite;animation-delay:inherit}@keyframes cell-pulse{0%,to{opacity:0}50%{opacity:.15}}.piece{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative;z-index:1}.piece svg{width:80%;height:80%}.piece-x{color:var(--color-primary);animation:piece-fade-in 1.5s ease-in-out infinite}.piece-x svg{filter:drop-shadow(0 0 4px rgba(20,184,166,.5))}.piece-o{color:var(--color-accent);animation:piece-fade-in 1.5s ease-in-out infinite}.piece-o svg{filter:drop-shadow(0 0 4px rgba(56,189,248,.5))}.piece-empty{animation:piece-fade-in 1.5s ease-in-out infinite}@keyframes piece-fade-in{0%,to{opacity:.2;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}@keyframes subtle-rotate{0%,to{transform:rotate(0)}25%{transform:rotate(2deg)}50%{transform:rotate(0)}75%{transform:rotate(-2deg)}}.loading-message{font-family:var(--font-body);font-size:1rem;font-weight:500;color:var(--color-foreground);text-align:center;margin:0;animation:text-fade 1.5s ease-in-out infinite}@keyframes text-fade{0%,to{opacity:.5}50%{opacity:1}}.loading-spinner-container.inline .loading-message{font-size:.875rem}@media(max-width:640px){.loading-spinner.large{--cell-size: 2rem;--grid-gap: .375rem}.loading-spinner.medium{--cell-size: 1.75rem;--grid-gap: .375rem}}@media(prefers-reduced-motion:reduce){.tictactoe-grid,.piece,.grid-cell:before,.loading-message{animation:none}.piece{opacity:.7}.loading-message{opacity:1}}.game-grid-container{display:flex;justify-content:center;align-items:center;padding:8px}.game-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:400px;width:100%;aspect-ratio:1}.grid-cell{display:flex;align-items:center;justify-content:center;background:var(--color-card);border:2px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);position:relative;overflow:hidden}.grid-cell:before{content:"";position:absolute;inset:0;background:var(--color-muted);opacity:0;transition:opacity var(--transition-fast)}.grid-cell.clickable:hover:before{opacity:.5}.grid-cell.clickable:hover{border-color:var(--color-primary);transform:scale(1.02)}.grid-cell.filled{cursor:not-allowed}.grid-cell.winning{background:var(--color-success);border-color:var(--color-success);animation:pulse .6s ease-in-out}.grid-cell.aging{border-color:var(--color-warning);opacity:.9}.grid-cell.expiring{border-color:var(--color-error);animation:expiring-pulse .8s ease-in-out infinite}.grid-cell.expired{opacity:.35;filter:grayscale(100%)}.age-badge{position:absolute;top:6px;right:6px;background:var(--color-warning);color:var(--color-primary-foreground);font-family:var(--font-data);font-size:.65rem;font-weight:700;padding:2px 6px;border-radius:var(--radius-sm);line-height:1}@keyframes expiring-pulse{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 10px 4px #ef444440}}.grid-cell:disabled{cursor:not-allowed;opacity:.6}.grid-cell:focus-visible{outline:3px solid var(--color-ring);outline-offset:2px}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.grid-cell.hint-highlight{border-color:var(--color-success);border-width:3px;animation:hintBlink 1s ease-in-out infinite}@keyframes hintBlink{0%,to{border-color:var(--color-success);box-shadow:0 0 #4ade8080}50%{border-color:var(--color-success);box-shadow:0 0 12px 2px #4ade804d}}@media(max-width:767px){.game-grid-container{padding:16px}.game-grid{gap:10px;max-width:360px}}@media(prefers-reduced-motion:reduce){.grid-cell,.grid-cell:before,.grid-cell.hint-highlight{transition:none;animation:none}}.move-history-container{display:flex;flex-direction:column;height:100%;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.history-header{display:flex;align-items:center;gap:8px;padding:16px;background:var(--color-muted);border-bottom:1px solid var(--color-border)}.history-title{flex:1;font-family:var(--font-heading);font-size:1rem;font-weight:600;color:var(--color-foreground);margin:0}.history-move-count{font-family:var(--font-data);font-size:.75rem;color:var(--color-muted-foreground);padding:4px 8px;background:var(--color-background);border-radius:var(--radius-sm)}.history-content{flex:1;overflow-y:auto;padding:8px}.history-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 24px;color:var(--color-muted-foreground)}.history-empty-text{font-family:var(--font-body);font-size:.875rem;text-align:center;margin:0}.moves-list{display:flex;flex-direction:column;gap:4px}.move-item{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--color-border);background:var(--color-background);border-radius:var(--radius-md);cursor:pointer;transition:opacity .3s ease-out,transform .3s ease-out,max-height .3s ease-out;text-align:left;overflow:hidden}.move-item:hover{background:var(--color-muted);border-color:var(--color-primary)}.move-item.active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-foreground)}.history-move-number{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--color-muted);border-radius:var(--radius-sm);font-family:var(--font-data);font-size:.75rem;font-weight:600;color:var(--color-foreground)}.move-item.active .history-move-number{background:var(--color-primary-foreground);color:var(--color-primary)}.history-move-details{flex:1;display:flex;flex-direction:column;gap:4px}.move-info{display:flex;align-items:center;gap:8px;font-family:var(--font-body);font-size:.875rem;font-weight:500}.player-marker{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--color-primary);color:var(--color-primary-foreground);border-radius:var(--radius-sm);font-weight:600}.move-item.active .player-marker{background:var(--color-primary-foreground);color:var(--color-primary)}.position-notation{font-family:var(--font-data);font-weight:600}.move-timestamp{font-family:var(--font-data);font-size:.75rem;color:var(--color-muted-foreground)}.move-item.active .move-timestamp{color:var(--color-primary-foreground);opacity:.8}.ai-badge{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--color-secondary);color:var(--color-secondary-foreground);border-radius:var(--radius-sm)}.move-item.active .ai-badge{background:var(--color-primary-foreground);color:var(--color-primary)}.move-item.expired-move{opacity:.6;background:var(--color-background)}.move-item.expired-move .move-timestamp{text-decoration:line-through;color:var(--color-muted-foreground)}.move-item.expired-move .history-move-number{background:var(--color-error);color:var(--color-error-foreground)}.move-item.expired-move .player-marker{opacity:.7}.move-item.active.expired-move{opacity:1;background:var(--color-primary);border-color:var(--color-primary)}.move-item.active.expired-move .move-timestamp{color:var(--color-primary-foreground);opacity:.8;text-decoration:line-through}@media(max-width:767px){.history-header{padding:12px}.move-item{padding:10px;gap:8px}.history-move-number{width:28px;height:28px;font-size:.7rem}}@media(prefers-reduced-motion:reduce){.move-item{transition:none}}.game-controls-container{padding:12px;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.active-game-controls{display:flex;gap:12px;flex-wrap:wrap}.active-game-controls>:global(button){flex:1;min-width:120px}.game-over-controls{display:flex;gap:12px}.game-over-controls>:global(button){flex:1}@media(max-width:767px){.game-controls-container{padding:12px}.active-game-controls{gap:8px}.active-game-controls>:global(button){min-width:100px}.game-over-controls{flex-direction:column;gap:8px}}.modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px;animation:fadeIn var(--transition-fast)}.modal-content{position:relative;width:100%;max-width:480px;background:var(--color-card);border-radius:var(--radius-xl);padding:32px;box-shadow:var(--shadow-lg);animation:slideUp var(--transition-base)}@keyframes victoryBounce{0%{transform:scale(.3) translateY(-20px);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}@keyframes victoryGlow{0%{text-shadow:0 0 0 rgba(20,184,166,0)}50%{text-shadow:0 0 20px rgba(20,184,166,.6)}to{text-shadow:0 0 0 rgba(20,184,166,0)}}.modal-close-button{position:absolute;top:16px;right:16px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--color-muted-foreground);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast)}.modal-close-button:hover{background:var(--color-muted);color:var(--color-foreground)}.result-icon{display:flex;align-items:center;justify-content:center;margin:0 auto 24px}.modal-content[data-result=win] .result-icon{animation:victoryBounce .8s cubic-bezier(.68,-.55,.265,1.55) .2s}.modal-content[data-result=win] .result-title{animation:victoryGlow .6s ease-out .3s}.result-title{font-family:var(--font-heading);font-size:2rem;font-weight:700;color:var(--color-foreground);text-align:center;margin:0 0 12px}.result-message{font-family:var(--font-body);font-size:1rem;color:var(--color-muted-foreground);text-align:center;margin:0 0 32px}.modal-game-stats{display:flex;flex-direction:column;gap:16px;margin-bottom:32px;padding:20px;background:var(--color-muted);border-radius:var(--radius-lg)}.modal-stat-item{display:flex;align-items:center;gap:12px}.modal-stat-content{flex:1;display:flex;justify-content:space-between;align-items:center}.modal-stat-label{font-family:var(--font-body);font-size:.875rem;color:var(--color-muted-foreground)}.modal-stat-value{font-family:var(--font-data);font-size:1rem;font-weight:600;color:var(--color-foreground)}.modal-actions{display:flex;flex-direction:column;gap:12px}@media(max-width:767px){.modal-content{padding:24px}.result-title{font-size:1.5rem}.modal-game-stats{padding:16px}}@media(prefers-reduced-motion:reduce){.modal-overlay,.modal-content{animation:none}}.confirmation-modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px;animation:fadeIn var(--transition-fast)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.confirmation-modal-content{position:relative;width:100%;max-width:420px;background:var(--color-card);border-radius:var(--radius-xl);padding:32px;box-shadow:var(--shadow-lg);animation:slideUp var(--transition-base)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.confirmation-modal-close-button{position:absolute;top:16px;right:16px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--color-muted-foreground);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast)}.confirmation-modal-close-button:hover{background:var(--color-muted);color:var(--color-foreground)}.confirmation-icon{display:flex;align-items:center;justify-content:center;margin:0 auto 24px}.confirmation-title{font-family:var(--font-heading);font-size:1.5rem;font-weight:700;color:var(--color-foreground);margin:0 0 12px;text-align:center}.confirmation-message{font-family:var(--font-body);font-size:.95rem;color:var(--color-muted-foreground);line-height:1.6;margin:0 0 16px;text-align:center}.ai-thinking-warning{display:flex;align-items:center;gap:8px;padding:12px;background:var(--color-muted);border-left:3px solid var(--color-warning);border-radius:var(--radius-md);margin:0 0 20px;color:var(--color-muted-foreground);font-family:var(--font-body);font-size:.875rem}.ai-thinking-warning svg{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.confirmation-actions{display:flex;flex-direction:column;gap:12px}@media(prefers-reduced-motion:reduce){.confirmation-modal-overlay,.confirmation-modal-content,.ai-thinking-warning svg{transition:none;animation:none}}.player-timer-avatar{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:var(--radius-lg);background:var(--color-card);border:1.5px solid var(--color-border);transition:all var(--transition-fast);min-width:0}.player-timer-avatar.active{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 6%,var(--color-card));box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 12%,transparent)}.player-timer-avatar.urgent{border-color:var(--color-error);background:color-mix(in srgb,var(--color-error) 6%,var(--color-card));box-shadow:0 0 0 3px color-mix(in srgb,var(--color-error) 15%,transparent);animation:urgentPulse 1s ease-in-out infinite}.player-timer-avatar.low-time{border-color:var(--color-warning);background:color-mix(in srgb,var(--color-warning) 6%,var(--color-card));box-shadow:0 0 0 3px color-mix(in srgb,var(--color-warning) 12%,transparent)}@keyframes urgentPulse{0%,to{box-shadow:0 0 0 3px color-mix(in srgb,var(--color-error) 15%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--color-error) 25%,transparent),0 0 20px color-mix(in srgb,var(--color-error) 15%,transparent)}}.avatar-ring-container{position:relative;flex-shrink:0;width:56px;height:56px}.timer-ring{position:absolute;top:0;left:0;z-index:2}.timer-ring-bg{stroke:var(--color-border);opacity:.3}.timer-ring-progress{transition:stroke-dashoffset 1s linear,stroke .3s ease}.avatar-inner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;overflow:hidden;z-index:1}.avatar-image{width:100%;height:100%;object-fit:cover;border-radius:50%}.avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:50%}.avatar-placeholder.ai-avatar{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff}.avatar-placeholder.human-avatar{background:linear-gradient(135deg,#14b8a6,#06b6d4);color:#fff}.active-turn-dot{position:absolute;bottom:2px;right:2px;width:14px;height:14px;border-radius:50%;background:var(--color-success);border:2.5px solid var(--color-card);z-index:3;animation:dotPulse 2s ease-in-out infinite}@keyframes dotPulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.urgent .active-turn-dot{background:var(--color-error);animation:dotPulse .6s ease-in-out infinite}.low-time .active-turn-dot{background:var(--color-warning)}.player-info{display:flex;flex-direction:column;gap:2px;min-width:0}.player-label{font-family:var(--font-body);font-size:.85rem;font-weight:600;color:var(--color-foreground);display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-label-full{display:inline}.player-label-short{display:none}.player-symbol{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--radius-sm);font-family:var(--font-data);font-size:.7rem;font-weight:700;flex-shrink:0}.symbol-X{background:color-mix(in srgb,var(--color-primary) 15%,transparent);color:var(--color-primary)}.symbol-O{background:color-mix(in srgb,var(--color-error) 15%,transparent);color:var(--color-error)}.player-time{font-family:var(--font-data);font-size:1.05rem;font-weight:700;color:var(--color-foreground);letter-spacing:.02em;line-height:1}.player-time.time-urgent{color:var(--color-error);animation:timeFlash .5s ease-in-out infinite}.player-time.time-low{color:var(--color-warning)}.player-time.no-timer{font-size:.8rem;font-weight:500;color:var(--color-muted-foreground);letter-spacing:0}@keyframes timeFlash{0%,to{opacity:1}50%{opacity:.4}}.player-time-mobile,.player-mobile-label{display:none}.timer-players-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0}.timer-vs-divider{display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--font-heading);font-size:1rem;font-weight:700;color:var(--color-muted-foreground);text-transform:uppercase;letter-spacing:.08em}@media(max-width:767px){.player-timer-avatar{padding:0;gap:4px;background:transparent;border:none!important;box-shadow:none!important;flex-direction:column;align-items:center;text-align:center}.player-timer-avatar.active,.player-timer-avatar.urgent,.player-timer-avatar.low-time{border:none!important;background:transparent!important;box-shadow:none!important}.avatar-ring-container{width:60px;height:60px;display:flex;flex-direction:column;align-items:center;position:relative}.avatar-inner{width:48px;height:48px}.player-time-mobile{display:block;position:absolute;bottom:-18px;font-family:var(--font-data);font-size:.75rem;font-weight:700;color:var(--color-foreground);letter-spacing:.02em;line-height:1;white-space:nowrap}.player-time-mobile.time-urgent{color:var(--color-error);animation:timeFlash .5s ease-in-out infinite}.player-time-mobile.time-low{color:var(--color-warning)}.player-time-mobile.no-timer{font-size:.65rem;font-weight:500;color:var(--color-muted-foreground);letter-spacing:0}.player-info{display:none!important}.player-mobile-label{display:flex;align-items:center;gap:4px;font-family:var(--font-body);font-size:.7rem;font-weight:600;color:var(--color-muted-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80px;justify-content:center;margin-top:20px}.player-label-full{display:none}.player-label-short{display:inline}.player-symbol{width:16px;height:16px;font-size:.6rem}.player-timer-avatar.mirrored{flex-direction:column;align-items:center}.timer-players-row{gap:12px;align-items:flex-start}.timer-vs-divider{font-size:.7rem;padding-top:18px}}@media(max-width:400px){.avatar-ring-container{width:56px;height:56px}.avatar-inner{width:44px;height:44px}.player-time-mobile{font-size:.7rem}}.connection-status{position:fixed;top:70px;right:20px;display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:8px;font-size:14px;font-weight:500;z-index:1000;box-shadow:0 4px 12px #00000026;animation:slideIn .3s ease-out}.connection-status.warning{background-color:orange;color:#fff}.connection-status.error{background-color:#f44;color:#fff}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.game-board-page{min-height:100vh;background:var(--color-background);padding-top:64px}.game-board-page-header{position:-webkit-sticky;position:sticky;top:64px;background:var(--color-card);border-bottom:1px solid var(--color-border);z-index:30}.page-header-content{max-width:1200px;margin:0 auto;padding:12px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.game-content{max-width:1200px;margin:0 auto;padding:16px 24px;display:grid;grid-template-columns:1fr 300px;gap:20px;min-height:calc(100vh - 140px)}.game-main{display:flex;flex-direction:column;gap:16px}.game-sidebar{display:flex;flex-direction:column}@media(max-width:1023px){.game-content{grid-template-columns:1fr;padding:16px;padding-bottom:calc(50vh + 16px)}.game-sidebar{display:none}}@media(max-width:767px){.page-header-content{padding:12px 16px}.game-content{padding:12px}}.mobile-leave-fab{position:fixed;right:16px;bottom:16px;display:inline-flex;align-items:center;gap:8px;padding:12px 16px;border:none;border-radius:999px;background:linear-gradient(135deg,#ff7b7b,#ff5252);color:#fff;font-family:var(--font-body);font-size:.95rem;font-weight:700;box-shadow:0 12px 30px #ff525259;cursor:pointer;z-index:80;transition:transform var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast)}.mobile-leave-fab:hover{transform:translateY(-2px);box-shadow:0 14px 36px #ff525273}.mobile-leave-fab:active{transform:translateY(0)}@media(min-width:768px){.mobile-leave-fab{display:none}}.page-dashboard-new-game-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-fast)}.page-dashboard-new-game-card:hover{box-shadow:var(--shadow-md)}.page-dashboard-new-game-card-header{display:flex;align-items:flex-start;gap:16px;padding:24px;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%)}.page-dashboard-card-header-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--color-card)!important;border-radius:var(--radius-lg);flex-shrink:0}.page-dashboard-card-header-content{flex:1;min-width:0}.page-dashboard-card-title{font-family:var(--font-heading);font-size:1.5rem;font-weight:700;color:var(--color-foreground);margin:0 0 4px}.page-dashboard-card-description{font-family:var(--font-body);font-size:.875rem;color:var(--color-popover-foreground);margin:0}.page-dashboard-card-body{padding:24px}.page-dashboard-form-group{margin-bottom:20px}.page-dashboard-form-group:last-of-type{margin-bottom:24px}.page-dashboard-action-buttons{display:flex;gap:12px}@media(max-width:767px){.page-dashboard-new-game-card-header{padding:20px}.page-dashboard-card-header-icon{width:48px;height:48px}.page-dashboard-card-title{font-size:1.25rem}.page-dashboard-card-body{padding:20px}}@media(prefers-reduced-motion:reduce){.page-dashboard-new-game-card{transition:none}}.page-dashboard-statistics-panel{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:24px;box-shadow:var(--shadow-sm)}.page-dashboard-panel-header{margin-bottom:24px}.page-dashboard-panel-title{font-family:var(--font-heading);font-size:1.25rem;font-weight:700;color:var(--color-foreground);margin:0 0 4px}.page-dashboard-panel-subtitle{font-family:var(--font-body);font-size:.875rem;color:var(--color-muted-foreground);margin:0}.page-dashboard-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.page-dashboard-stat-card{display:flex;align-items:flex-start;gap:16px;padding:20px;background:var(--color-muted);border-radius:var(--radius-lg);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.page-dashboard-stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.page-dashboard-stat-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);flex-shrink:0}.page-dashboard-stat-content{flex:1;min-width:0}.page-dashboard-stat-label{font-family:var(--font-body);font-size:.875rem;color:var(--color-muted-foreground);margin:0 0 8px}.page-dashboard-stat-value-row{display:flex;align-items:center;gap:12px}.page-dashboard-stat-value{font-family:var(--font-heading);font-size:1.75rem;font-weight:700;color:var(--color-foreground);margin:0}.page-dashboard-stat-change{display:flex;align-items:center;gap:4px;font-family:var(--font-data);font-size:.75rem;font-weight:600;padding:4px 8px;border-radius:var(--radius-sm)}.page-dashboard-stat-change.positive{background:var(--color-success);color:var(--color-popover-foreground)}.page-dashboard-stat-change.negative{background:var(--color-error);color:var(--color-popover-foreground)}.page-dashboard-stat-change.neutral{background:var(--color-muted);color:var(--color-popover-foreground)}@media(max-width:767px){.page-dashboard-statistics-panel{padding:20px}.page-dashboard-stats-grid{grid-template-columns:1fr;gap:12px}.page-dashboard-stat-card{padding:16px}.page-dashboard-stat-value{font-size:1.5rem}}@media(prefers-reduced-motion:reduce){.page-dashboard-stat-card{transition:none}.page-dashboard-stat-card:hover{transform:none}}.recent-games-list{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:24px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;height:100%}.list-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px;flex-shrink:0}.list-header-content{flex:1;min-width:0}.list-title{font-family:var(--font-heading);font-size:1.25rem;font-weight:700;color:var(--color-foreground);margin:0 0 4px}.list-subtitle{font-family:var(--font-body);font-size:.875rem;color:var(--color-muted-foreground);margin:0}.games-container{display:flex;flex-direction:column;gap:8px;overflow-y:auto;padding-right:8px;flex:1;min-height:0}.games-container::-webkit-scrollbar{width:6px}.games-container::-webkit-scrollbar-track{background:transparent}.games-container::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.games-container::-webkit-scrollbar-thumb:hover{background:var(--color-muted-foreground)}.game-item{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;background:var(--color-muted);border-radius:var(--radius-lg);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.game-item:hover{transform:translate(4px);box-shadow:var(--shadow-sm)}.game-result-badge{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);flex-shrink:0}.game-details{flex:1;min-width:0}.game-header-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.recent-game-id{font-family:var(--font-data);font-size:.875rem;font-weight:600;padding-left:0!important;color:var(--color-foreground);margin:0}.result-label{font-family:var(--font-body);font-size:.75rem;font-weight:600;padding:4px 8px;border-radius:var(--radius-sm);text-transform:uppercase}.result-label.win{background:var(--color-success);color:var(--color-popover-foreground)}.result-label.lose{background:var(--color-error);color:var(--color-popover-foreground)}.result-label.draw{background:var(--color-muted);color:var(--color-muted-foreground)}.game-info-row{display:flex;align-items:center;gap:16px;margin-bottom:8px;flex-wrap:wrap}.game-info-item{display:flex;align-items:center;gap:6px;font-family:var(--font-body);font-size:.75rem;color:var(--color-muted-foreground)}.game-meta-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.timestamp{font-family:var(--font-body);font-size:.75rem;color:var(--color-muted-foreground)}.pattern-badge{font-family:var(--font-body);font-size:.75rem;font-weight:500;color:var(--color-popover-foreground);padding:2px 8px;background:var(--color-primary);border-radius:var(--radius-sm)}.game-actions{display:flex;align-items:center;flex-shrink:0}@media(max-width:767px){.recent-games-list{padding:20px}.list-header{flex-direction:column;align-items:stretch}.game-item{flex-direction:column;gap:12px}.game-result-badge{align-self:flex-start}.game-actions{align-self:stretch}.game-info-row{gap:12px}}@media(prefers-reduced-motion:reduce){.game-item{transition:none}.game-item:hover{transform:none}}.achievements-badges{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:24px;box-shadow:var(--shadow-sm)}.achievements-section-header{margin-bottom:24px}.achievements-section-title{font-family:var(--font-heading);font-size:1.25rem;font-weight:700;color:var(--color-foreground);margin:0 0 4px}.section-subtitle{font-family:var(--font-body);font-size:.875rem;color:var(--color-muted-foreground);margin:0}.skill-level-card{padding:20px;background-image:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);border-radius:var(--radius-lg);margin-bottom:24px}.skill-header{display:flex;align-items:center;gap:16px;margin-bottom:16px}.skill-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--color-card);border-radius:var(--radius-md)}.skill-info{flex:1;min-width:0}.skill-current{font-family:var(--font-heading);font-size:1.125rem;font-weight:700;color:var(--color-foreground);margin:0 0 4px}.skill-next{font-family:var(--font-body);font-size:.875rem;color:var(--color-popover-foreground);margin:0}.achievements-progress-bar{width:100%;height:8px;background:var(--color-muted);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:8px}.achievements-progress-fill{height:100%;background-image:linear-gradient(90deg,var(--color-font-secondary) 0%,#fde047 100%)!important;border-radius:var(--radius-sm);transition:width var(--transition-slow)}.progress-label{display:flex;justify-content:flex-end;font-family:var(--font-data);font-size:.75rem;color:var(--color-popover-foreground)}.achievements-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.achievement-card{display:flex;align-items:flex-start;gap:16px;padding:16px;background:var(--color-muted);border-radius:var(--radius-lg);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.achievement-card.unlocked{border:1px solid var(--color-success)}.achievement-card.locked{opacity:.6}.achievement-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.achievement-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);flex-shrink:0}.achievement-content{flex:1;min-width:0}.achievement-name{font-family:var(--font-heading);font-size:1rem;font-weight:600;color:var(--color-foreground);margin:0 0 4px}.achievement-description{font-family:var(--font-body);font-size:.875rem;color:var(--color-muted-foreground);margin:0 0 12px}.unlocked-badge{display:flex;align-items:center;gap:6px;font-family:var(--font-body);font-size:.75rem;font-weight:500;color:var(--color-secondary-foreground);padding:4px 8px;background:var(--color-success);border-radius:var(--radius-sm);width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.progress-indicator{display:flex;align-items:center;gap:8px}.mini-progress-bar{flex:1;height:4px;background:var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.mini-progress-fill{height:100%;background:var(--color-primary);border-radius:var(--radius-sm);transition:width var(--transition-slow)}.progress-text{font-family:var(--font-data);font-size:.75rem;color:var(--color-muted-foreground);white-space:nowrap}@media(max-width:767px){.achievements-badges{padding:20px}.achievements-grid{grid-template-columns:1fr;gap:12px}.skill-level-card{padding:16px}}@media(prefers-reduced-motion:reduce){.achievement-card,.achievements-progress-fill,.mini-progress-fill{transition:none}.achievement-card:hover{transform:none}}.ai-recommendations{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:24px;box-shadow:var(--shadow-sm)}.recommendations-header{display:flex;align-items:center;gap:16px;margin-bottom:24px}.recommendations-header-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);border-radius:var(--radius-md)}.recommendations-header-content{flex:1;min-width:0}.recommendations-title{font-family:var(--font-heading);font-size:1.25rem;font-weight:700;color:var(--color-foreground);margin:0 0 4px}.recommendations-subtitle{font-family:var(--font-body);font-size:.875rem;color:var(--color-muted-foreground);margin:0}.recommendations-list{display:flex;flex-direction:column;gap:16px;margin-bottom:20px}.recommendation-card{padding:20px;background:var(--color-muted);border-radius:var(--radius-lg);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.recommendation-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.recommendation-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;background:var(--color-primary)}.recommendation-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md)}.priority-badge{font-family:var(--font-body);font-size:.75rem;font-weight:600;padding:4px 12px;border-radius:var(--radius-sm);text-transform:uppercase}.recommendations-card-content{margin-bottom:16px}.recommendation-title{font-family:var(--font-heading);font-size:1.125rem;font-weight:600;color:var(--color-foreground);margin:0 0 8px}.recommendation-description{font-family:var(--font-body);font-size:.875rem;color:var(--color-muted-foreground);line-height:1.6;margin:0}.recommendations-card-footer{display:flex;justify-content:flex-end}.recommendations-footer{padding-top:20px;border-top:1px solid var(--color-border)}.footer-info{display:flex;align-items:center;gap:8px;font-family:var(--font-body);font-size:.75rem;color:var(--color-muted-foreground)}@media(max-width:767px){.ai-recommendations{padding:20px}.recommendation-card-header{flex-direction:row;align-items:center;justify-content:space-between}.recommendation-card{padding:16px}}@media(prefers-reduced-motion:reduce){.recommendation-card{transition:none}.recommendation-card:hover{transform:none}}.level-up-modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:9999;opacity:0;transition:opacity .3s ease;pointer-events:none}.level-up-modal-overlay.active{opacity:1;pointer-events:auto}.level-up-modal-overlay.closing{opacity:0;pointer-events:none}.level-up-modal-content{background:linear-gradient(135deg,#1a1f2e,#16213e);border:2px solid var(--color-primary);border-radius:16px;padding:40px 32px;max-width:500px;width:90%;box-shadow:0 20px 60px #00000080;animation:slideUp .4s cubic-bezier(.34,1.56,.64,1);position:relative}.level-up-modal-close{position:absolute;top:16px;right:16px;background:none;border:none;font-size:28px;color:var(--color-text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:color .2s ease}.level-up-modal-close:hover{color:var(--color-text-primary)}.level-up-modal-icon{display:flex;justify-content:center;margin-bottom:20px;animation:bounce .6s cubic-bezier(.68,-.55,.265,1.55)}.level-up-modal-title{font-size:32px;font-weight:700;color:var(--color-success);text-align:center;margin:0 0 12px}.level-up-modal-body{text-align:center;margin-bottom:28px}.level-up-modal-subtitle{font-size:16px;color:var(--color-text-secondary);margin:0 0 24px}.level-up-modal-skill-transition{display:flex;align-items:center;justify-content:center;gap:16px;margin:24px 0}.skill-badge{padding:12px 20px;border-radius:8px;font-weight:600;font-size:14px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1)}.skill-badge.old{color:var(--color-text-secondary)}.skill-badge.new{background:linear-gradient(135deg,var(--color-success),var(--color-accent));border:none;color:#fff;box-shadow:0 4px 15px #4caf504d}.skill-label{display:block}.skill-badge-arrow{display:flex;align-items:center;color:var(--color-primary)}.level-up-modal-stats{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:16px;margin:20px 0}.stat-item{display:flex;justify-content:space-between;align-items:center}.stat-label{font-size:14px;color:var(--color-text-secondary)}.stat-value{font-size:18px;font-weight:700;color:var(--color-accent)}.level-up-modal-message{font-size:13px;color:var(--color-text-secondary);margin:16px 0 0}.level-up-modal-btn{width:100%;padding:12px 24px;background:linear-gradient(135deg,var(--color-primary),var(--color-accent));color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.level-up-modal-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #3fa5ff4d}.level-up-modal-btn:active{transform:translateY(0)}.achievement-modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:9999;opacity:0;transition:opacity .3s ease;pointer-events:none}.achievement-modal-overlay.active{opacity:1;pointer-events:auto}.achievement-modal-overlay.closing{opacity:0;pointer-events:none}.achievement-modal-content{background:linear-gradient(135deg,#1a1f2e,#16213e);border:2px solid var(--color-warning);border-radius:16px;padding:40px 32px;max-width:500px;width:90%;box-shadow:0 20px 60px #00000080;animation:slideUp .4s cubic-bezier(.34,1.56,.64,1);position:relative}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.achievement-modal-close{position:absolute;top:16px;right:16px;background:none;border:none;font-size:28px;color:var(--color-text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:color .2s ease}.achievement-modal-close:hover{color:var(--color-text-primary)}.achievement-modal-icon{display:flex;justify-content:center;margin-bottom:20px;animation:bounce .6s cubic-bezier(.68,-.55,.265,1.55)}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.achievement-modal-title{font-size:32px;font-weight:700;color:var(--color-warning);text-align:center;margin:0 0 12px}.achievement-modal-body{text-align:center;margin-bottom:28px}.achievement-badge{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px;margin:24px 0}.achievement-badge-title{font-size:24px;font-weight:700;color:var(--color-text-primary);margin:0 0 8px}.achievement-badge-description{font-size:16px;color:var(--color-text-secondary);margin:0}.achievement-modal-date{display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;color:var(--color-text-secondary);margin:16px 0}.achievement-modal-message{font-size:13px;color:var(--color-text-secondary);margin:16px 0 0}.achievement-modal-btn{width:100%;padding:12px 24px;background:linear-gradient(135deg,var(--color-warning),var(--color-accent));color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.achievement-modal-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #ff98004d}.achievement-modal-btn:active{transform:translateY(0)}@media(prefers-reduced-motion:reduce){.achievement-modal-content,.achievement-modal-icon{animation:none}.achievement-modal-overlay.active,.achievement-modal-overlay.closing{transition:none}}.page-dashboard-layout{min-height:100vh;background:var(--color-background)}.page-dashboard-main{padding-top:64px;min-height:100vh}.page-dashboard-container{max-width:1200px;margin:0 auto;padding:32px 24px}.page-dashboard-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:32px}.page-dashboard-header-content{flex:1;min-width:0}.page-dashboard-title{font-family:var(--font-heading);font-size:2rem;font-weight:700;color:var(--color-foreground);margin:0 0 8px}.page-dashboard-description{font-family:var(--font-body);font-size:1rem;color:var(--color-muted-foreground);margin:0}.page-dashboard-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:start}.page-dashboard-grid-section{display:flex;flex-direction:column;gap:24px}.page-dashboard-primary-section{grid-column:span 5}.page-dashboard-secondary-section{grid-column:span 7}.page-dashboard-secondary-section .recent-games-list{max-height:1265px}@media(max-width:1200px){.page-dashboard-primary-section{grid-column:span 5}.page-dashboard-secondary-section{grid-column:span 7}}@media(max-width:768px){.page-dashboard-container{padding:24px 16px}.page-dashboard-header{flex-direction:column;margin-bottom:24px}.page-dashboard-title{font-size:1.75rem}.page-dashboard-grid{grid-template-columns:1fr;gap:20px}.page-dashboard-primary-section,.page-dashboard-secondary-section,.page-dashboard-tertiary-section,.page-dashboard-quaternary-section{grid-column:span 1}}@media(max-width:480px){.page-dashboard-container{padding:20px 12px}.page-dashboard-title{font-size:1.5rem}.page-dashboard-grid{gap:16px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.breadcrumb-context{background:var(--color-card);border-bottom:1px solid var(--color-border);padding:12px 0}.breadcrumb-container{max-width:1200px;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:16px}.back-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);color:var(--color-foreground);text-decoration:none;transition:background var(--transition-fast)}.back-button:hover{background:var(--color-muted)}.breadcrumb-nav{flex:1;min-width:0}.breadcrumb-list{display:flex;align-items:center;gap:8px;list-style:none;margin:0;padding:0}.breadcrumb-item{display:flex;align-items:center;font-family:var(--font-body);font-size:.875rem}.breadcrumb-link{color:var(--color-muted-foreground);text-decoration:none;transition:color var(--transition-fast)}.breadcrumb-link:hover{color:var(--color-foreground)}.breadcrumb-separator{display:flex;align-items:center;color:var(--color-muted-foreground)}.breadcrumb-current{display:flex;align-items:center;color:var(--color-foreground);font-weight:500}.game-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}.game-meta{color:var(--color-muted-foreground);font-weight:400;white-space:nowrap}.game-id{font-family:var(--font-data);font-size:.75rem;color:var(--color-muted-foreground);padding:4px 8px;background:var(--color-muted);border-radius:var(--radius-sm)}.breadcrumb-desktop-only{display:none}@media(min-width:768px){.breadcrumb-desktop-only{display:inline}.game-title{max-width:500px}}@media(max-width:767px){.breadcrumb-container{padding:0 16px}.game-title{max-width:200px}}@media(prefers-reduced-motion:reduce){.back-button,.breadcrumb-link{transition:none}}.game-board-container{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px;height:100%;display:flex;flex-direction:column}.board-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.board-title{font-family:var(--font-heading);font-size:1.25rem;font-weight:600;color:var(--color-foreground);margin:0}.move-indicator{font-family:var(--font-data);font-size:.875rem;color:var(--color-muted-foreground);padding:4px 12px;background:var(--color-muted);border-radius:var(--radius-md)}.game-board{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;aspect-ratio:1;max-width:520px;margin:0 auto;flex:1}.board-cell{background:var(--color-muted);border:2px solid var(--color-border);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;transition:all var(--transition-base);position:relative;overflow:visible}.board-cell.filled{background:var(--color-background);border-color:var(--color-border)}.board-cell.active-cell{animation:moveActivate .5s cubic-bezier(.68,-.55,.265,1.55) forwards;box-shadow:0 0 16px #14b8a64d}.board-cell.expiring-cell{animation:moveExpiring 1s ease-in-out infinite;border-color:#f59e0b;box-shadow:0 0 12px #f59e0b66}.board-cell.winning{background:var(--color-secondary);border-color:var(--color-secondary);animation:pulseWinning 1s ease-in-out infinite;z-index:10}.board-cell.winning .cell-content{color:#fff}@keyframes moveActivate{0%{transform:scale(.85);opacity:0}50%{transform:scale(1.08)}to{transform:scale(1);opacity:1}}@keyframes moveExpiring{0%{box-shadow:0 0 12px #f59e0b66}50%{box-shadow:0 0 20px #f59e0bb3}to{box-shadow:0 0 12px #f59e0b66}}@keyframes pulseWinning{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes fadeOut{0%{opacity:1}to{opacity:.4}}.cell-content{display:flex;align-items:center;justify-content:center;width:100%;height:100%;transition:all var(--transition-base)}.cell-content.x{color:var(--color-primary)}.cell-content.o{color:var(--color-secondary)}.cell-content.expired{opacity:.6;color:#94a3b8}.cell-age-badge{position:absolute;top:-4px;right:-4px;width:20px;height:20px;background:var(--color-primary);color:#fff;font-family:var(--font-data);font-size:.68rem;font-weight:700;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid var(--color-card);box-shadow:0 2px 8px #14b8a680;z-index:20;animation:badgeAppear .3s ease-out}.board-cell.current-move{border-color:var(--color-success);box-shadow:0 0 0 2px #22c55e59,0 0 12px #22c55e59}@keyframes badgeAppear{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.board-legend{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:24px;padding-top:24px;border-top:1px solid var(--color-border)}.legend-item{display:flex;align-items:center;gap:8px;font-family:var(--font-body);font-size:.875rem;color:var(--color-muted-foreground)}.legend-item:first-child{color:var(--color-primary)}.legend-item:nth-child(2){color:var(--color-secondary)}.legend-divider{color:var(--color-border);opacity:.5}.legend-item.lifecycle{display:flex;align-items:center;gap:6px;padding:4px 8px;background:var(--color-muted);border-radius:var(--radius-md)}.lifecycle-badge{width:12px;height:12px;border-radius:50%;border:1px solid rgba(255,255,255,.3)}.lifecycle-badge.active{background:var(--color-primary);box-shadow:0 0 8px #14b8a699}.lifecycle-badge.expiring{background:#f59e0b;box-shadow:0 0 8px #f59e0b99;animation:pulse-badge 1s ease-in-out infinite}@keyframes pulse-badge{0%,to{box-shadow:0 0 8px #f59e0b99}50%{box-shadow:0 0 12px #f59e0b}}@media(max-width:767px){.game-board-container{padding:20px 16px}.board-header{margin-bottom:20px}.board-title{font-size:1.125rem}.game-board{gap:12px;max-width:100%;width:100%;min-height:320px}.board-cell{min-height:100px}.board-legend{gap:12px;margin-top:20px;padding-top:16px;font-size:.8rem}.legend-item{gap:6px}.cell-age-badge{width:18px;height:18px;font-size:.65rem;top:-3px;right:-3px}}@media(prefers-reduced-motion:reduce){.board-cell,.board-cell.winning,.board-cell.active-cell,.board-cell.expiring-cell,.lifecycle-badge.expiring{animation:none;transition:none}.lifecycle-badge.active,.lifecycle-badge.expiring,.board-cell.active-cell,.board-cell.expiring-cell{box-shadow:none}}.move-timeline-container{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px;height:100%;display:flex;flex-direction:column;overflow:hidden}.timeline-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}.timeline-title{font-family:var(--font-heading);font-size:1.125rem;font-weight:600;color:var(--color-foreground);margin:0}.timeline-move-count{font-family:var(--font-data);font-size:.75rem;color:var(--color-muted-foreground);padding:4px 8px;background:var(--color-muted);border-radius:var(--radius-sm)}.timeline-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:12px;scrollbar-width:thin;scrollbar-color:var(--color-border) var(--color-background)}.timeline-list::-webkit-scrollbar{width:8px}.timeline-list::-webkit-scrollbar-track{background:var(--color-background);border-radius:var(--radius-md)}.timeline-list::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-md);-webkit-transition:background var(--transition-fast);transition:background var(--transition-fast)}.timeline-list::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}.timeline-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--color-background);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);position:relative}.timeline-item:hover{background:var(--color-muted);border-color:var(--color-primary)}.timeline-item.active{background-color:var(--color-primary);border-color:var(--color-primary)}.timeline-move-number{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--color-muted);border-radius:var(--radius-md);font-family:var(--font-data);font-size:.875rem;font-weight:600;color:var(--color-foreground);flex-shrink:0}.timeline-item.active .timeline-move-number{background:var(--color-primary);color:var(--color-primary-foreground)}.move-content{flex:1;min-width:0}.move-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.player-info{display:flex;align-items:center;gap:6px;font-family:var(--font-body);font-size:.875rem;font-weight:500;color:var(--color-foreground)}.player-name{white-space:nowrap}.move-time{font-family:var(--font-data);font-size:.75rem;color:var(--color-font-secondary)}.timeline-move-details{display:flex;align-items:center;justify-content:space-between;gap:8px}.move-position{font-family:var(--font-data);font-size:.75rem;color:var(--color-font-secondary)}.quality-badge{display:flex;align-items:center;gap:4px;font-family:var(--font-body);font-size:.75rem;font-weight:500;background:var(--color-muted);padding:2px 6px;border-radius:5px}.quality-badge.header-quality{font-size:.7rem;padding:3px 8px;border-radius:6px;font-weight:600}.active-indicator{display:flex;align-items:center;color:var(--color-primary);flex-shrink:0}.timeline-item.expired{opacity:.6;background-color:#ef44440d}.timeline-item.expired .timeline-move-number,.timeline-move-number.expired-number{background-color:var(--color-error);color:#fff}.timeline-expiration-badge{font-size:.75rem;padding:2px 6px;border-radius:12px;white-space:nowrap;margin-left:8px;font-weight:500}.timeline-expiration-badge.expired,.timeline-expiration-badge.expiring-soon{background-color:var(--color-error);color:#fff}.timeline-expiration-badge.expires{background-color:var(--color-warning);color:var(--color-dark)}@media(max-width:1024px){.move-timeline-container{max-height:500px}}@media(max-width:767px){.move-timeline-container{padding:16px;max-height:400px}.timeline-item{padding:10px}.move-time{display:none}}@media(prefers-reduced-motion:reduce){.timeline-item{transition:none}}.analysis-panel-container{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px;height:100%;display:flex;flex-direction:column}.analysis-panel-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--color-muted-foreground);gap:16px}.analysis-panel-empty-state p{font-family:var(--font-body);font-size:.875rem;margin:0}.analysis-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}.analysis-panel-title{font-family:var(--font-heading);font-size:1.125rem;font-weight:600;color:var(--color-foreground);margin:0}.analysis-panel-move-badge{font-family:var(--font-data);font-size:.75rem;color:var(--color-muted-foreground);padding:4px 8px;background:var(--color-muted);border-radius:var(--radius-sm)}.analysis-panel-content{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:24px}.analysis-panel-quality-section,.analysis-panel-recommendation-section,.analysis-panel-reasoning-section,.analysis-panel-outcome-section{display:flex;flex-direction:column;gap:12px}.analysis-panel-quality-header{display:flex;align-items:center;justify-content:space-between}.analysis-panel-section-header{display:flex;align-items:center;gap:8px;color:var(--color-foreground)}.analysis-panel-section-label{font-family:var(--font-body);font-size:.875rem;font-weight:600;color:var(--color-foreground)}.analysis-panel-quality-indicator{display:flex;align-items:center;gap:6px}.analysis-panel-quality-text{font-family:var(--font-body);font-size:.875rem;font-weight:600;text-transform:capitalize}.analysis-panel-quality-score{display:flex;align-items:center;gap:12px}.analysis-panel-score-bar{flex:1;height:8px;background:var(--color-muted);border-radius:var(--radius-md);overflow:hidden}.analysis-panel-score-fill{height:100%;transition:width var(--transition-base)}.analysis-panel-score-value{font-family:var(--font-data);font-size:.875rem;font-weight:600;color:var(--color-foreground);min-width:45px;text-align:right}.analysis-panel-recommendation-content{display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--color-muted);border-radius:var(--radius-md)}.analysis-panel-recommendation-text{font-family:var(--font-body);font-size:.875rem;line-height:1.6;color:var(--color-foreground);margin:0}.analysis-panel-alternative-move{display:flex;align-items:center;gap:8px;padding-top:12px;border-top:1px solid var(--color-border)}.analysis-panel-alternative-label{font-family:var(--font-body);font-size:.75rem;color:var(--color-muted-foreground)}.analysis-panel-alternative-value{font-family:var(--font-data);font-size:.875rem;font-weight:600;color:var(--color-primary)}.analysis-panel-reasoning-text{font-family:var(--font-body);font-size:.875rem;line-height:1.6;color:var(--color-foreground);margin:0;padding:16px;background:var(--color-background);border-radius:var(--radius-md)}.analysis-panel-outcome-grid{display:flex;flex-direction:column;gap:12px}.analysis-panel-outcome-item{display:flex;align-items:center;gap:12px}.analysis-panel-outcome-label{font-family:var(--font-body);font-size:.75rem;font-weight:500;color:var(--color-muted-foreground);min-width:50px}.analysis-panel-outcome-bar{flex:1;height:6px;background:var(--color-muted);border-radius:var(--radius-sm);overflow:hidden}.analysis-panel-outcome-fill{height:100%;transition:width var(--transition-base)}.analysis-panel-outcome-fill.win{background:var(--color-success)}.analysis-panel-outcome-fill.draw{background:var(--color-warning)}.analysis-panel-outcome-fill.lose{background:var(--color-error)}.analysis-panel-outcome-value{font-family:var(--font-data);font-size:.75rem;font-weight:600;color:var(--color-foreground);min-width:40px;text-align:right}@media(max-width:767px){.analysis-panel-container{padding:16px}.analysis-panel-content{gap:20px}}@media(prefers-reduced-motion:reduce){.analysis-panel-score-fill,.analysis-panel-outcome-fill{transition:none}}.replay-controls-container{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px 24px;display:flex;flex-direction:column;gap:20px}.progress-section{display:flex;flex-direction:column;gap:8px}.replay-progress-bar{height:6px;background:var(--color-muted);border-radius:var(--radius-md);overflow:hidden}.replay-progress-fill{height:100%;background:var(--color-primary);transition:width var(--transition-base)}.progress-info{display:flex;align-items:center;justify-content:space-between;font-family:var(--font-data);font-size:.75rem}.current-move{color:var(--color-foreground);font-weight:600}.total-moves{color:var(--color-muted-foreground)}.controls-section{display:flex;align-items:center;justify-content:center;gap:8px}.play-button{min-width:120px}@media(max-width:767px){.replay-controls-container{padding:16px}.controls-section{gap:6px}.play-button{min-width:100px}}@media(prefers-reduced-motion:reduce){.replay-progress-fill{transition:none}}.performance-metrics-container{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px;display:flex;flex-direction:column;gap:24px}.metrics-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--color-border)}.metrics-title{font-family:var(--font-heading);font-size:1.125rem;font-weight:600;color:var(--color-foreground);margin:0}.overall-score{display:flex;align-items:center;gap:6px;font-family:var(--font-data);font-size:1.25rem;font-weight:700;color:var(--color-primary)}.metrics-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.metric-card{display:flex;align-items:center;gap:12px;padding:16px;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md)}.metric-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:var(--color-muted);border-radius:var(--radius-md)}.metric-content{display:flex;flex-direction:column;gap:4px}.metric-value{font-family:var(--font-data);font-size:1.5rem;font-weight:700;color:var(--color-foreground);line-height:1}.metric-label{font-family:var(--font-body);font-size:.75rem;color:var(--color-muted-foreground);text-transform:capitalize}.key-moments{display:flex;flex-direction:column;gap:16px}.metrics-section-header{display:flex;align-items:center;gap:8px;color:var(--color-foreground)}.metrics-section-title{font-family:var(--font-body);font-size:.875rem;font-weight:600}.moments-list{display:flex;flex-direction:column;gap:12px}.moment-item{display:flex;align-items:flex-start;gap:12px;padding:12px;background:var(--color-muted);border-radius:var(--radius-md)}.moment-badge{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--color-warning);color:var(--color-warning-foreground);border-radius:var(--radius-sm);flex-shrink:0}.moment-content{display:flex;flex-direction:column;gap:4px;flex:1}.moment-move{font-family:var(--font-data);font-size:.75rem;font-weight:600;color:var(--color-primary)}.moment-description{font-family:var(--font-body);font-size:.875rem;line-height:1.5;color:var(--color-foreground)}.metrics-aging-section{margin-top:24px;padding-top:24px;border-top:2px solid var(--color-border)}.metrics-section-header{display:flex;align-items:center;gap:8px;margin-bottom:16px;color:var(--color-foreground)}.metrics-section-title{font-family:var(--font-heading);font-size:.875rem;font-weight:600;margin:0}.aging-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.aging-stat{display:flex;flex-direction:column;padding:12px;background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md)}.aging-stat-label{font-size:.75rem;color:var(--color-muted-foreground);margin-bottom:6px;font-weight:500}.aging-stat-value{font-size:1.25rem;font-weight:700;color:var(--color-foreground)}.volatility-bar{height:6px;background-color:var(--color-muted);border-radius:3px;overflow:hidden;margin:6px 0}.volatility-fill{height:100%;background:linear-gradient(90deg,var(--color-success),var(--color-error));transition:width .3s ease}.volatility-label{font-size:.75rem;font-weight:600;color:var(--color-muted-foreground);display:block}.moment-item.aging-critical{border-left:4px solid var(--color-error);background-color:#ef44440d}.moment-item.aging-critical .moment-badge{color:var(--color-error)}@media(max-width:767px){.performance-metrics-container{padding:16px}.metrics-grid{grid-template-columns:1fr;gap:12px}.metric-card{padding:12px}.metric-icon{width:40px;height:40px}.metric-value{font-size:1.25rem}.aging-stat-grid{grid-template-columns:repeat(2,1fr)}}.game-analysis-page{min-height:100vh;background:var(--color-background);padding-top:64px}.page-analysis-main{padding:24px}.page-analysis-container{max-width:1400px;margin:0 auto}.page-analysis-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:32px}.page-analysis-header-content{flex:1}.page-analysis-title-row{display:flex;align-items:center;gap:12px;margin-bottom:16px}.page-analysis-title{font-family:var(--font-heading);font-size:2rem;font-weight:700;color:var(--color-foreground);margin:0}.analysis-cached-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:#14b8a61a;border:1px solid rgba(20,184,166,.3);border-radius:var(--radius-full);font-size:.75rem;font-weight:600;color:#14b8a6;white-space:nowrap}.page-analysis-game-info{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.page-analysis-info-item{display:flex;align-items:center;gap:8px;font-family:var(--font-body);font-size:.875rem;color:var(--color-muted-foreground)}.page-analysis-info-item.result{padding:6px 12px;background:var(--color-muted);border-radius:var(--radius-md);font-weight:600}.page-analysis-info-item.result.win{color:var(--color-success)}.page-analysis-header-actions{display:flex;align-items:center;gap:12px}.page-analysis-mobile-tabs{display:none;gap:8px;margin-bottom:24px;padding:8px;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.page-analysis-tab-button{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;border:none;background:transparent;color:var(--color-muted-foreground);font-family:var(--font-body);font-size:.875rem;font-weight:500;cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast)}.page-analysis-tab-button:hover{background:var(--color-muted);color:var(--color-foreground)}.page-analysis-tab-button.active{background:var(--color-primary);color:var(--color-primary-foreground)}.page-analysis-board-section,.page-analysis-analysis-section{grid-column:span 2}.timeline-section{display:flex;flex-direction:column;max-height:calc(100vh - 198px);overflow:hidden}.page-analysis-content{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:auto 1fr;gap:24px;min-height:calc(100vh - 300px)}.page-analysis-content-section{display:flex;flex-direction:column;gap:24px}@media(max-width:1200px){.page-analysis-content{grid-template-columns:1fr 1fr}.timeline-section{grid-column:1 / -1}.metrics-section{grid-column:span 2}}@media(max-width:767px){.page-analysis-main{padding:16px}.page-analysis-header{flex-direction:column;gap:16px;margin-bottom:24px}.page-analysis-title{font-size:1.5rem}.page-analysis-header-actions{width:100%;flex-direction:column}.page-analysis-header-actions>*{width:100%}.page-analysis-mobile-tabs{display:flex}.page-analysis-content-section{display:none}.page-analysis-content-section.active{display:flex}.page-analysis-analysis-section{display:none}.page-analysis-analysis-section.active{display:flex;margin-bottom:10px}.metrics-section{display:none}.metrics-section.active{display:flex}}@media(prefers-reduced-motion:reduce){.page-analysis-tab-button{transition:none}}.analysis-loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:24px;padding:48px 24px}.analysis-loading-spinner{width:48px;height:48px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin-spinner 1s linear infinite}@keyframes spin-spinner{to{transform:rotate(360deg)}}.analysis-loading-text{display:flex;flex-direction:column;align-items:center;gap:8px}.analysis-loading-title{font-family:var(--font-heading);font-size:1.125rem;font-weight:600;color:var(--color-foreground);margin:0}.analysis-loading-subtitle{font-family:var(--font-body);font-size:.875rem;color:var(--color-muted-foreground);margin:0}.analysis-error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:24px;padding:48px 24px}.analysis-error-icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:var(--color-destructive-alpha);border-radius:50%;color:var(--color-destructive);font-size:2rem}.analysis-error-content{display:flex;flex-direction:column;align-items:center;gap:12px;max-width:500px}.analysis-error-title{font-family:var(--font-heading);font-size:1.25rem;font-weight:600;color:var(--color-foreground);margin:0}.analysis-error-message{font-family:var(--font-body);font-size:.875rem;color:var(--color-muted-foreground);margin:0;text-align:center;line-height:1.5}.analysis-error-actions{display:flex;gap:12px;margin-top:12px}.analysis-error-actions button{padding:8px 16px;font-size:.875rem;border-radius:6px;border:none;cursor:pointer;font-weight:500;transition:all .2s ease}.analysis-error-actions .retry-button{background:var(--color-primary);color:#fff}.analysis-error-actions .retry-button:hover{background:var(--color-primary-hover, var(--color-primary));opacity:.9}.analysis-error-actions .go-back-button{background:var(--color-secondary);color:var(--color-secondary-foreground)}.analysis-error-actions .go-back-button:hover{background:var(--color-secondary-hover, var(--color-secondary));opacity:.9}.game-history-table{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.table-container{overflow-x:auto}.history-table{width:100%;border-collapse:collapse;font-family:var(--font-body)}.history-table thead{background:var(--color-muted);border-bottom:1px solid var(--color-border)}.history-table th{padding:12px 16px;text-align:left;font-size:.875rem;font-weight:600;color:var(--color-foreground);white-space:nowrap}.sortable-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast)}.sortable-header:hover{background:var(--color-muted)}.header-content{display:flex;align-items:center;gap:8px}.actions-column{width:120px;text-align:center}.history-table tbody tr{border-bottom:1px solid var(--color-border);transition:background var(--transition-fast)}.history-table tbody tr:hover{background:var(--color-muted)}.history-table td{padding:16px;font-size:.875rem;color:var(--color-foreground)}.date-column{min-width:140px}.date-info{display:flex;flex-direction:column;gap:2px}.date-text{font-weight:500;color:var(--color-foreground)}.time-text{font-size:.75rem;color:var(--color-muted-foreground)}.table-difficulty-badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:var(--radius-md);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.table-difficulty-easy{background:#10b9811a;color:var(--color-success)}.table-difficulty-medium{background:#f59e0b1a;color:var(--color-warning)}.table-difficulty-hard{background:#ef44441a;color:var(--color-error)}.table-outcome-badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:var(--radius-md);font-size:.75rem;font-weight:600;text-transform:uppercase}.table-outcome-win{background:#10b9811a;color:var(--color-success)}.table-outcome-lose{background:#ef44441a;color:var(--color-error)}.table-outcome-draw{background:#6b72801a;color:var(--color-muted-foreground)}.moves-column,.duration-column{font-family:var(--font-data);font-weight:500}.rating-display{display:flex;align-items:center;gap:6px;font-weight:600}.table-action-buttons{display:flex;align-items:center;justify-content:center;gap:4px}@media(max-width:1024px){.history-table th,.history-table td{padding:12px;font-size:.8125rem}}@media(prefers-reduced-motion:reduce){.sortable-header,.history-table tbody tr{transition:none}}.mobile-game-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:16px;transition:all var(--transition-fast)}.mobile-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--color-border)}.mobile-header-left{display:flex;align-items:center;gap:12px}.mobile-game-info{display:flex;flex-direction:column;gap:2px}.mobile-game-date{font-family:var(--font-body);font-size:.875rem;font-weight:600;color:var(--color-foreground)}.mobile-game-time{font-family:var(--font-data);font-size:.75rem;color:var(--color-muted-foreground)}.mobile-outcome-indicator{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-md);font-size:.75rem;font-weight:600;text-transform:uppercase}.mobile-outcome-win{background:#10b9811a;color:var(--color-success)}.mobile-outcome-lose{background:#ef44441a;color:var(--color-error)}.mobile-outcome-draw{background:#6b72801a;color:var(--color-muted-foreground)}.mobile-card-body{margin-bottom:16px}.mobile-game-stats{display:flex;flex-direction:column;gap:12px}.mobile-stat-item{display:flex;align-items:center;gap:8px;font-size:.875rem}.mobile-stat-label{color:var(--color-muted-foreground);font-weight:500}.mobile-stat-value{font-family:var(--font-data);font-weight:600;color:var(--color-foreground);margin-left:auto}.mobile-difficulty-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-sm);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-left:auto}.mobile-difficulty-easy{background:#10b9811a;color:var(--color-success)}.mobile-difficulty-medium{background:#f59e0b1a;color:var(--color-warning)}.mobile-difficulty-hard{background:#ef44441a;color:var(--color-error)}.mobile-card-footer{display:flex;gap:8px}@media(prefers-reduced-motion:reduce){.mobile-game-card{transition:none}}.history-filter-panel{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px}.history-filter-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.history-filter-header-left{display:flex;align-items:center;gap:12px}.history-filter-title{font-family:var(--font-heading);font-size:1.125rem;font-weight:600;color:var(--color-foreground);margin:0}.history-filter-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:var(--color-primary);color:var(--color-primary-foreground);border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.history-filter-header-right{display:flex;align-items:center;gap:12px}.history-result-count{font-family:var(--font-body);font-size:.875rem;color:var(--color-muted-foreground)}.history-mobile-toggle{display:none;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--color-foreground);cursor:pointer;border-radius:var(--radius-md);transition:background var(--transition-fast)}.history-mobile-toggle:hover{background:var(--color-muted)}.history-filter-content,.history-filter-content.expanded{display:block}.history-filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.history-filter-group{display:flex;flex-direction:column}.search-input{width:100%}@media(max-width:768px){.history-mobile-toggle{display:flex}.history-filter-content{display:none}.history-filter-content.expanded{display:block}.history-filter-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.history-mobile-toggle{transition:none}}.history-statistics-panel{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px}.history-panel-header{display:flex;align-items:center;gap:12px;margin-bottom:20px}.history-panel-title{font-family:var(--font-heading);font-size:1.125rem;font-weight:600;color:var(--color-foreground);margin:0}.history-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.history-stat-card{display:flex;align-items:center;gap:12px;padding:16px;background:var(--color-muted);border-radius:var(--radius-lg)}.history-stat-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--radius-md)}.history-stat-content{display:flex;flex-direction:column;gap:4px}.history-stat-label{font-size:.75rem;color:var(--color-muted-foreground);font-weight:500}.history-stat-value{font-family:var(--font-data);font-size:1.5rem;font-weight:700;color:var(--color-foreground)}.outcome-breakdown,.difficulty-stats{margin-top:24px;padding-top:24px;border-top:1px solid var(--color-border)}.history-breakdown-title{font-family:var(--font-heading);font-size:.875rem;font-weight:600;color:var(--color-foreground);margin:0 0 16px;text-transform:uppercase;letter-spacing:.5px}.history-outcome-bars{display:flex;flex-direction:column;gap:16px}.history-outcome-item{display:flex;flex-direction:column;gap:8px}.history-outcome-header{display:flex;justify-content:space-between;align-items:center}.history-outcome-label{font-size:.875rem;font-weight:500;color:var(--color-foreground)}.history-outcome-value{font-family:var(--font-data);font-size:.875rem;font-weight:600;color:var(--color-muted-foreground)}.history-outcome-bar{height:8px;background:var(--color-muted);border-radius:var(--radius-md);overflow:hidden}.history-outcome-fill{height:100%;transition:width var(--transition-base);border-radius:var(--radius-md)}.history-difficulty-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.history-difficulty-card{padding:12px;background:var(--color-muted);border-radius:var(--radius-md)}.history-difficulty-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.history-difficulty-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:2px 8px;border-radius:var(--radius-sm)}.history-difficulty-easy{background:#10b9811a;color:var(--color-success)}.history-difficulty-medium{background:#f59e0b1a;color:var(--color-warning)}.history-difficulty-hard{background:#ef44441a;color:var(--color-error)}.history-difficulty-games{font-size:.75rem;color:var(--color-muted-foreground)}.history-difficulty-stats-row{display:flex;gap:12px}.history-difficulty-stat{display:flex;align-items:center;gap:4px;font-family:var(--font-data);font-size:.75rem;font-weight:600;color:var(--color-foreground)}@media(max-width:768px){.history-stats-grid{grid-template-columns:repeat(2,1fr)}.history-stat-card{padding:12px}.history-stat-icon{width:40px;height:40px}.history-stat-value{font-size:1.25rem}.history-difficulty-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.history-outcome-fill{transition:none}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 24px;text-align:center}.empty-icon{margin-bottom:24px;opacity:.5}.empty-title{font-family:var(--font-heading);font-size:1.5rem;font-weight:600;color:var(--color-foreground);margin:0 0 12px}.empty-description{font-family:var(--font-body);font-size:1rem;color:var(--color-muted-foreground);max-width:480px;margin:0 0 24px;line-height:1.6}@media(max-width:768px){.empty-state{padding:48px 16px}.empty-title{font-size:1.25rem}.empty-description{font-size:.875rem}}.game-history-page{min-height:100vh;background:var(--color-background);padding-top:64px}.main-content{padding:32px 0}.content-container{max-width:1200px;margin:0 auto;padding:0 24px}.page-header{margin-bottom:32px}.game-history-header-content{max-width:800px}.page-title{font-family:var(--font-heading);font-size:2rem;font-weight:700;color:var(--color-foreground);margin:0 0 8px}.page-description{font-family:var(--font-body);font-size:1rem;color:var(--color-muted-foreground);margin:0;line-height:1.6}.content-layout{display:grid;grid-template-columns:1fr 320px;gap:24px;align-items:start}.primary-content{display:flex;flex-direction:column;gap:24px}.mobile-cards-container{display:flex;flex-direction:column;gap:16px}.sidebar-content{position:-webkit-sticky;position:sticky;top:96px}@media(max-width:1024px){.content-layout{grid-template-columns:1fr}.sidebar-content{position:static}}@media(max-width:768px){.game-history-page{padding-top:64px}.main-content{padding:24px 0}.content-container{padding:0 16px}.page-header{margin-bottom:24px}.page-title{font-size:1.5rem}.page-description{font-size:.875rem}.primary-content{gap:16px}}.password-toggle{position:absolute;right:12px;top:38px;background:transparent;border:none;color:var(--color-muted-foreground);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:color var(--transition-fast)}.form-options{display:flex;align-items:center;justify-content:space-between;font-size:.875rem}.checkbox-label{display:flex;align-items:center;gap:8px;color:var(--color-foreground);cursor:pointer}.checkbox-input{width:16px;height:16px;border-radius:var(--radius-sm);border:1px solid var(--color-border);cursor:pointer}.forgot-link{color:var(--color-primary);text-decoration:none;font-weight:500;transition:opacity var(--transition-fast)}.forgot-link:hover{opacity:.8}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%)}.auth-card{width:100%;max-width:440px;background:var(--color-card);border-radius:var(--radius-xl);padding:48px;box-shadow:var(--shadow-lg)}@media(max-width:640px){.auth-card{padding:32px 24px}}.auth-header{text-align:center;margin-bottom:32px}.auth-logo{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);border-radius:var(--radius-xl);margin-bottom:24px}.auth-logo img{max-width:100%;height:auto;max-height:100%;object-fit:contain}.auth-title{font-family:var(--font-heading);font-size:1.875rem;font-weight:700;color:var(--color-foreground);margin-bottom:8px}.auth-subtitle{font-size:.875rem;color:var(--color-muted-foreground)}.auth-form{display:flex;flex-direction:column;gap:20px}.password-field{position:relative}.password-toggle{position:absolute;right:12px;top:38px;background:transparent;border:none;color:var(--color-muted-foreground);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:color var(--transition-fast);z-index:10}.password-toggle:hover{color:var(--color-foreground)}.password-strength{margin-top:8px;display:flex;align-items:center;gap:12px}.strength-bar{flex:1;height:4px;background:var(--color-muted);border-radius:2px;overflow:hidden}.strength-fill{height:100%;transition:width var(--transition-base),background-color var(--transition-base)}.strength-label{font-size:.75rem;font-weight:600;min-width:50px}.terms-container{display:flex;flex-direction:column;gap:8px}.checkbox-label{display:flex;align-items:flex-start;gap:8px;color:var(--color-foreground);cursor:pointer;font-size:.875rem;line-height:1.5}.checkbox-input{width:16px;height:16px;margin-top:2px;border-radius:var(--radius-sm);border:1px solid var(--color-border);cursor:pointer;flex-shrink:0}.terms-link{color:var(--color-primary);text-decoration:none;font-weight:500;transition:opacity var(--transition-fast)}.terms-link:hover{opacity:.8}.error-text{font-size:.875rem;color:var(--color-error);margin-left:24px}.submit-button{margin-top:8px;height:44px;font-weight:600}.divider{position:relative;text-align:center;margin:32px 0}.divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:var(--color-border)}.divider span{position:relative;display:inline-block;padding:0 16px;background:var(--color-card);color:var(--color-muted-foreground);font-size:.875rem}.social-buttons{display:grid;grid-template-columns:1fr;gap:12px}.social-button{display:flex;align-items:center;justify-content:center;gap:8px;height:44px;font-weight:500}.auth-footer{text-align:center;margin-top:32px;font-size:.875rem;color:var(--color-muted-foreground)}.auth-link{color:var(--color-primary);text-decoration:none;font-weight:600;transition:opacity var(--transition-fast)}.auth-link:hover{opacity:.8}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}:root{--color-primary: #14b8a6;--color-primary-foreground: #ffffff;--color-secondary: #0d9488;--color-secondary-foreground: #ffffff;--color-accent: #38bdf8;--color-accent-foreground: #020617;--color-background: #020617;--color-foreground: #e2e8f0;--color-card: #0f172a;--color-card-foreground: #e2e8f0;--color-popover: #1e293b;--color-popover-foreground: #e2e8f0;--color-muted: #1e293b;--color-muted-foreground: #94a3b8;--color-success: #22c55e;--color-success-foreground: #ffffff;--color-warning: #f59e0b;--color-warning-foreground: #020617;--color-error: #ef4444;--color-error-foreground: #ffffff;--color-destructive: #ef4444;--color-destructive-foreground: #ffffff;--color-border: #334155;--color-input: #1e293b;--color-ring: #38bdf8;--font-heading: "Inter", sans-serif;--font-body: "Inter", sans-serif;--font-caption: "Inter", sans-serif;--font-data: "JetBrains Mono", monospace;--color-font-secondary: #facc15;--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--shadow-sm: 0 1px 3px rgba(20, 184, 166, .1), 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(20, 184, 166, .15), 0 2px 4px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 25px rgba(20, 184, 166, .2), 0 4px 6px rgba(0, 0, 0, .5);--transition-fast: .15s cubic-bezier(0, 0, .2, 1);--transition-base: .2s cubic-bezier(0, 0, .2, 1);--transition-slow: .3s cubic-bezier(0, 0, .2, 1);--transition-spring: .3s cubic-bezier(.68, -.55, .265, 1.55)}*{border-color:var(--color-border)}body{background-color:var(--color-background);color:var(--color-foreground);font-family:var(--font-body);font-feature-settings:"rlig" 1,"calt" 1}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading)}code,pre{font-family:var(--font-data)}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.\!container{width:100%!important;margin-right:auto!important;margin-left:auto!important;padding-right:2rem!important;padding-left:2rem!important}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media(min-width:1400px){.\!container{max-width:1400px!important}.container{max-width:1400px}}.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}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.static{position:static}.absolute{position:absolute}.relative{position:relative}.left-2{left:.5rem}.top-2\.5{top:.625rem}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.-ml-1{margin-left:-.25rem}.mb-2{margin-bottom:.5rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.hidden{display:none}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-8{height:2rem}.h-9{height:2.25rem}.max-h-60{max-height:15rem}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-8\/12{width:66.666667%}.w-full{width:100%}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.resize{resize:both}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-border{border-color:var(--color-border)}.border-destructive{border-color:var(--color-destructive)}.border-input{border-color:var(--color-input)}.border-primary{border-color:var(--color-primary)}.bg-background{background-color:var(--color-background)}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity))}.bg-destructive{background-color:var(--color-destructive)}.bg-error{background-color:var(--color-error)}.bg-neutral-50{--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity))}.bg-primary{background-color:var(--color-primary)}.bg-secondary{background-color:var(--color-secondary)}.bg-success{background-color:var(--color-success)}.bg-warning{background-color:var(--color-warning)}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.p-2{padding:.5rem}.p-4{padding:1rem}.p-8{padding:2rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pl-8{padding-left:2rem}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-9xl{font-size:8rem;line-height:1}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.leading-none{line-height:1}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-current{color:currentColor}.text-destructive{color:var(--color-destructive)}.text-destructive-foreground{color:var(--color-destructive-foreground)}.text-error-foreground{color:var(--color-error-foreground)}.text-foreground{color:var(--color-foreground)}.text-muted-foreground{color:var(--color-muted-foreground)}.text-neutral-600{--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity))}.text-neutral-800{--tw-text-opacity: 1;color:rgb(38 38 38 / var(--tw-text-opacity))}.text-primary{color:var(--color-primary)}.text-primary-foreground{color:var(--color-primary-foreground)}.text-secondary-foreground{color:var(--color-secondary-foreground)}.text-success-foreground{color:var(--color-success-foreground)}.text-warning-foreground{color:var(--color-warning-foreground)}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline-offset-4{text-underline-offset:4px}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.shadow-md{--tw-shadow: var(--shadow-md);--tw-shadow-colored: var(--shadow-md);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: var(--shadow-sm);--tw-shadow-colored: var(--shadow-sm);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-offset-background{--tw-ring-offset-color: var(--color-background)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.duration-200{animation-duration:.2s}.paused{animation-play-state:paused}@keyframes pulse-error{0%,to{opacity:1;box-shadow:0 0 #ef444400}50%{opacity:.8;box-shadow:0 0 20px #ef444499}}.file\:border-0::-webkit-file-upload-button{border-width:0px}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::-webkit-file-upload-button{background-color:transparent}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::-webkit-file-upload-button{font-size:.875rem;line-height:1.25rem}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::-webkit-file-upload-button{font-weight:500}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-muted-foreground::placeholder{color:var(--color-muted-foreground)}.hover\:bg-accent:hover{background-color:var(--color-accent)}.hover\:bg-blue-600:hover{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity))}.hover\:text-accent-foreground:hover{color:var(--color-accent-foreground)}.hover\:underline:hover{-webkit-text-decoration-line:underline;text-decoration-line:underline}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-destructive:focus{--tw-ring-color: var(--color-destructive)}.focus\:ring-ring:focus{--tw-ring-color: var(--color-ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-destructive:focus-visible{--tw-ring-color: var(--color-destructive)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: var(--color-ring)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--color-primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--color-primary-foreground)}@media(min-width:640px){.sm\:flex-row{flex-direction:row}}body{margin:0;padding:0;font-family:Inter}*{box-sizing:border-box;line-height:normal;font-family:inherit;margin:unset}
