.piece{cursor:pointer;transition:transform .15s ease-out}.piece:hover .piece-circle{filter:brightness(1.1)}.piece-circle{transition:filter .15s ease-out}.piece-selection-ring{fill:none;stroke:var(--color-primary);stroke-width:3;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.05)}}.piece-crown{pointer-events:none}.piece.dragging{cursor:grabbing;filter:drop-shadow(0 4px 8px rgba(0,0,0,.4))}.piece.dragging .piece-circle{filter:brightness(1.1)}@media (hover: none) and (pointer: coarse){.piece{cursor:default}.piece:active .piece-circle{filter:brightness(1.15)}}.game-board-container{display:flex;justify-content:center;align-items:center;width:100%;aspect-ratio:1}.game-board{width:100%;height:100%;cursor:pointer;border:2px solid rgba(255,255,255,.2);border-radius:4px;box-shadow:0 4px 12px #0000004d;transition:transform .3s ease}.game-board.flipped{transform:rotate(180deg)}.square-light{fill:var(--color-square-light)}.square-dark{fill:var(--color-square-dark)}.move-hint{fill:var(--color-highlight);opacity:.7;pointer-events:none}@media (hover: none) and (pointer: coarse){.game-board{cursor:default}}.player-clock{font-size:1.2rem;font-weight:700;font-variant-numeric:tabular-nums;padding:4px 10px;border-radius:6px;background:#ffffff0f;color:var(--color-text-secondary);white-space:nowrap;transition:all .2s ease}.player-clock.active{background:#2c5f2d33;color:var(--color-text)}.player-clock.low-time{background:#e5393533;color:var(--color-error);animation:pc-pulse .5s ease-in-out infinite alternate}@keyframes pc-pulse{0%{opacity:1}to{opacity:.7}}.game-screen{display:flex;flex-direction:column;align-items:center;height:100dvh;overflow:hidden;overflow-y:auto;width:100%}.gs-header{width:100%;max-width:1200px;padding:4px 8px;flex-shrink:0}.gs-result-badge{padding:4px 16px;flex-shrink:0}.gs-result-text{display:inline-block;font-size:.95rem;font-weight:600;padding:4px 16px;border-radius:20px;background:var(--color-surface);color:var(--color-text)}.gs-result-text.win{color:var(--color-success);background:#27ae6026}.gs-result-text.draw{color:var(--color-warning);background:#f39c1226}.gs-result-text.loss,.gs-result-text.lose{color:var(--color-error);background:#e74c3c26}.gs-main{flex:1;display:flex;flex-direction:row;gap:16px;align-items:center;justify-content:center;width:100%;max-width:1200px;padding:0 8px;min-height:0}.gs-board-column{display:flex;flex-direction:column;gap:4px;width:min(calc(100dvh - 210px),calc(100vw - 340px));max-width:800px;flex-shrink:0}.gs-board-area{width:100%}.gs-player-bar{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:var(--color-surface);border-radius:6px;font-size:1rem;width:100%;box-sizing:border-box;min-height:40px;border-left:3px solid transparent;transition:border-color .2s,background-color .2s}.gs-player-info{display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden}.gs-player-bar .gs-player-name{font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gs-player-bar .gs-player-rating{color:var(--color-text-secondary);font-size:.9rem;flex-shrink:0}.gs-player-bar.active-turn{border-left-color:var(--color-forest-dark, #2c5f2d);background-color:#2c5f2d14}.gs-player-bar.disconnected{border-left-color:var(--color-warning, #f39c12);background-color:#f39c121a}.gs-grace-indicator{display:flex;align-items:center;gap:4px;margin-left:8px;font-weight:600;color:var(--color-warning, #f39c12);font-size:.95rem;animation:gs-graceFlash 1s ease-in-out infinite;transition:color .3s ease;flex-shrink:0}.gs-grace-indicator.critical{color:var(--color-danger, #e74c3c);animation:gs-graceCriticalFlash .5s ease-in-out infinite}.gs-grace-icon{font-size:1rem}.gs-grace-text{font-variant-numeric:tabular-nums}@keyframes gs-graceFlash{0%,to{opacity:1}50%{opacity:.6}}@keyframes gs-graceCriticalFlash{0%,to{opacity:1}50%{opacity:.4}}.gs-actions-bar{display:flex;align-items:center;justify-content:center;gap:8px;padding:4px 0}.gs-action-icon{width:64px;height:40px;display:flex;align-items:center;justify-content:center;border:none;border-radius:8px;background:var(--color-surface);color:var(--color-text-secondary);font-size:1.2rem;cursor:pointer;transition:all .2s}.gs-action-icon:hover{background:#ffffff1f}.gs-action-icon.resign:hover{background:#e74c3c33;color:var(--color-error)}.gs-action-icon.draw:hover:not(:disabled){background:#f39c1233;color:var(--color-warning, #f39c12)}.gs-action-icon.draw.offered{opacity:.4;cursor:default}.gs-draw-offer-received{display:flex;flex-direction:column;align-items:center;gap:6px}.gs-draw-offer-label{font-size:.85rem;color:var(--color-text-secondary);font-weight:500}.gs-draw-offer-buttons{display:flex;gap:8px}.gs-draw-accept{padding:6px 14px;background:var(--color-success, #27ae60);color:#fff;border:none;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:filter .2s;min-height:36px}.gs-draw-accept:hover{filter:brightness(1.1)}.gs-draw-decline{padding:6px 14px;background:var(--color-error, #e74c3c);color:#fff;border:none;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:filter .2s;min-height:36px}.gs-draw-decline:hover{filter:brightness(1.1)}.gs-sidebar{display:flex;flex-direction:column;min-width:260px;max-width:320px;width:280px;flex-shrink:0;align-self:center;height:calc(min(calc(100dvh - 210px),calc(100vw - 340px)) / 3);max-height:270px;overflow:hidden}.gs-match-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#0f140feb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:gs-matchFadeIn .2s ease-out}@keyframes gs-matchFadeIn{0%{opacity:0}to{opacity:1}}.gs-match-card{background:var(--color-surface);border-radius:20px;padding:32px;width:340px;max-width:calc(100vw - 32px);text-align:center;box-shadow:0 16px 48px #0000004d;animation:gs-matchScaleIn .3s cubic-bezier(.34,1.56,.64,1)}@keyframes gs-matchScaleIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.gs-match-title{font-size:1.6rem;font-weight:700;color:var(--color-forest-dark);margin:0 0 20px;font-family:Georgia,serif}.gs-match-opponent{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}.gs-match-label{font-size:.75rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.gs-match-name{font-size:1.3rem;font-weight:600;color:var(--color-text)}.gs-match-rating{font-size:.9rem;color:var(--color-text-secondary)}.gs-match-color{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;background:var(--color-beige-warm);border-radius:12px;margin-bottom:20px;font-size:.9rem;color:var(--color-text)}.gs-match-color-dot{width:16px;height:16px;border-radius:50%}.gs-match-color-dot.white{background:var(--color-beige-cream);border:2px solid var(--color-brown-medium)}.gs-match-color-dot.black{background:var(--color-brown-dark);border:2px solid var(--color-beige-cream)}.gs-match-opening{display:flex;flex-direction:column;gap:4px;margin-bottom:16px;padding:8px 12px;background:#ffffff0d;border-radius:8px}.gs-match-opening-label{font-size:.75rem;color:var(--color-text-secondary);text-transform:uppercase}.gs-match-opening-moves{font-size:.95rem;color:var(--color-text);font-weight:500}.gs-match-countdown{display:flex;flex-direction:column;align-items:center;gap:4px;margin-bottom:20px}.gs-match-countdown-label{font-size:.8rem;color:var(--color-text-secondary)}.gs-match-countdown-number{font-size:2.5rem;font-weight:700;color:var(--color-forest-dark);font-variant-numeric:tabular-nums;animation:gs-matchPulse 1s ease-in-out infinite}@keyframes gs-matchPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.gs-match-start-btn{width:100%;padding:14px 24px;background:var(--color-forest-dark);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s;min-height:44px}.gs-match-start-btn:hover{background:var(--color-forest-medium)}.gs-match-start-btn:active{transform:scale(.97)}@media (max-width: 900px){.gs-main{flex-direction:column;align-items:center;padding:0 4px}.gs-board-column{width:min(calc(100vw - 16px),calc(100dvh - 260px));max-width:100%}.gs-sidebar{width:100%;max-width:480px;min-width:unset;height:auto;max-height:180px;flex:0 0 auto;overflow-y:auto}}@media (max-width: 480px){.game-screen{padding:0}.gs-header{padding:2px 4px}.gs-match-card{width:calc(100vw - 32px);padding:24px}.gs-player-bar{padding:4px 8px;min-height:36px}.gs-board-column{width:min(100vw - 16px,100dvh - 260px)}.gs-action-icon{width:52px;height:44px}}.game-over-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000000bf;display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .2s ease-out}.game-over-modal{background-color:var(--color-surface);border-radius:12px;padding:var(--spacing-xl);text-align:center;max-width:90%;width:320px;box-shadow:0 8px 32px #00000080;animation:slideUp .3s ease-out}.game-over-title{font-size:1.75rem;margin-bottom:var(--spacing-md);color:var(--color-text)}.game-over-message{font-size:.95rem;color:var(--color-text-secondary);margin-bottom:var(--spacing-lg)}.game-over-buttons{display:flex;gap:var(--spacing-sm);justify-content:center}.game-over-button{background-color:var(--color-primary);color:#fff;border:none;border-radius:8px;padding:var(--spacing-md) var(--spacing-xl);font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s,transform .1s;min-width:140px;min-height:44px}.game-over-button:hover{background-color:var(--color-primary-hover)}.game-over-button:active{transform:scale(.98)}.game-over-button--secondary{background-color:var(--color-surface-hover);color:var(--color-text-secondary)}.game-over-button--secondary:hover{background-color:var(--color-border)}.move-list{background-color:var(--color-surface);border-radius:8px;overflow-y:auto;flex:1;min-height:0;padding:var(--spacing-sm)}.move-list-empty{color:var(--color-text-secondary);text-align:center;padding:var(--spacing-lg);font-size:.85rem;font-style:italic}.move-list-table{width:100%;border-collapse:collapse;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:.85rem}.move-list-row:nth-child(odd){background-color:#ffffff08}.move-list-num{color:var(--color-text-secondary);padding:3px 6px 3px 4px;text-align:right;width:28px;font-size:.8rem;-webkit-user-select:none;user-select:none}.move-list-move{padding:3px 8px;color:var(--color-text);cursor:default}.move-list-move.last-move{background-color:rgba(var(--color-primary-rgb, 39, 174, 96),.2);border-radius:3px;font-weight:600}@media (max-width: 900px){.move-list{max-height:200px}}@media (max-width: 500px){.move-list{max-height:150px}}.local-game-header{display:flex;align-items:center;gap:12px}.local-game-back-btn{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:.9rem;padding:4px 8px}.local-game-variant-label{font-size:.9rem;color:var(--color-text-secondary)}.online-lobby{display:flex;justify-content:center;align-items:center;min-height:calc(100vh - 140px);padding:var(--spacing-lg)}.lobby-card{background-color:var(--color-surface);border-radius:12px;padding:var(--spacing-xl);max-width:400px;width:100%;text-align:center;box-shadow:0 4px 20px #0000004d}.lobby-card h2{margin-bottom:var(--spacing-lg);font-size:1.5rem}.lobby-card h3{margin-bottom:var(--spacing-sm);font-size:1.1rem;color:var(--color-text)}.lobby-card p{color:var(--color-text-secondary);margin-bottom:var(--spacing-md);font-size:.9rem}.lobby-section{margin-bottom:var(--spacing-lg)}.lobby-button{padding:var(--spacing-md) var(--spacing-xl);border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;min-height:44px;border:none}.lobby-button.primary{background-color:var(--color-primary);color:#fff}.lobby-button.primary:hover{background-color:var(--color-primary-hover)}.lobby-button.primary:disabled{background-color:var(--color-neutral-600);cursor:not-allowed}.lobby-button.secondary{background-color:transparent;color:var(--color-text-secondary);border:1px solid rgba(255,255,255,.2)}.lobby-button.secondary:hover{background-color:#ffffff1a}.lobby-divider{display:flex;align-items:center;margin:var(--spacing-lg) 0}.lobby-divider:before,.lobby-divider:after{content:"";flex:1;height:1px;background-color:#fff3}.lobby-divider span{padding:0 var(--spacing-md);color:var(--color-text-secondary);font-size:.85rem}.join-form{display:flex;gap:var(--spacing-sm)}.join-form input{flex:1;padding:var(--spacing-md);border-radius:8px;border:1px solid rgba(255,255,255,.2);background-color:#0003;color:var(--color-text);font-size:1rem;text-transform:uppercase;letter-spacing:2px;text-align:center}.join-form input::placeholder{text-transform:none;letter-spacing:normal}.join-form input:focus{outline:none;border-color:var(--color-primary)}.room-info{margin:var(--spacing-lg) 0}.room-code{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.room-code span{font-size:1.5rem;font-weight:700;letter-spacing:3px;background-color:#0000004d;padding:var(--spacing-sm) var(--spacing-md);border-radius:6px}.copy-button{padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;border:1px solid rgba(255,255,255,.2);background-color:transparent;color:var(--color-text);cursor:pointer;font-size:.85rem}.copy-button:hover{background-color:#ffffff1a}.variant-selector{display:flex;gap:var(--spacing-sm);justify-content:center;margin-bottom:var(--spacing-md)}.variant-button{padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;border:1px solid rgba(255,255,255,.2);background-color:transparent;color:var(--color-text-secondary);cursor:pointer;font-size:.85rem;transition:all .2s}.variant-button:hover{background-color:#ffffff1a}.variant-button.active{background-color:var(--color-primary);border-color:var(--color-primary);color:#fff}.variant-info{color:var(--color-text);font-weight:600;font-size:.95rem}.color-info{color:var(--color-text)}.color-info strong{color:var(--color-primary)}.error-message{color:var(--color-error);background-color:#e74c3c1a;padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;margin-bottom:var(--spacing-md)}.spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;margin:var(--spacing-md) auto}.lobby-section.matchmaking{background:linear-gradient(135deg,#2c5f2d1a,#2c5f2d0d);border:1px solid rgba(44,95,45,.3);border-radius:10px;padding:var(--spacing-lg)}.lobby-section.matchmaking.disabled{background:#ffffff05;border-color:#ffffff1a}.login-hint{color:var(--color-text-secondary);font-style:italic}.time-control-selector{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.time-control-button{padding:var(--spacing-sm) var(--spacing-xs);border-radius:6px;border:1px solid rgba(255,255,255,.2);background-color:transparent;color:var(--color-text-secondary);cursor:pointer;font-size:.8rem;transition:all .2s}.time-control-button:hover{background-color:#ffffff1a;border-color:#ffffff4d}.time-control-button.active{background-color:var(--color-primary);border-color:var(--color-primary);color:#fff}.lobby-button.find-match{width:100%;font-size:1.1rem;padding:var(--spacing-md) var(--spacing-xl)}.lobby-card.searching{border:2px solid var(--color-primary)}.search-info{margin:var(--spacing-lg) 0}.variant-badge{display:inline-block;background-color:var(--color-brown-medium);color:#fff;padding:var(--spacing-xs) var(--spacing-md);border-radius:20px;font-weight:600;font-size:.85rem;margin-bottom:var(--spacing-xs)}.time-control-badge{display:inline-block;background-color:var(--color-primary);color:#fff;padding:var(--spacing-xs) var(--spacing-md);border-radius:20px;font-weight:600;font-size:.9rem;margin-bottom:var(--spacing-sm)}.search-timer{font-size:2rem;font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums}.search-hint{font-size:.85rem;color:var(--color-text-secondary);margin-top:var(--spacing-md)}.custom-time-control{margin-top:var(--spacing-md)}@media (max-width: 400px){.time-control-selector{grid-template-columns:repeat(2,1fr)}}.chat-panel{display:flex;flex-direction:column;background-color:var(--color-surface);border:1px solid rgba(255,255,255,.1);border-radius:8px;overflow:hidden;transition:height .2s ease}.chat-panel.open{width:280px;max-height:400px}.chat-panel.closed{width:280px;height:auto}.chat-panel.compact.closed{display:none}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-primary);cursor:pointer;-webkit-user-select:none;user-select:none;min-height:40px}.chat-header:hover{background-color:var(--color-primary-hover)}.chat-title{font-weight:500;font-size:.9rem;color:var(--color-text)}.chat-toggle{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:.8rem;padding:2px 6px}.chat-badge{background-color:var(--color-primary);color:#fff;font-size:.7rem;font-weight:700;padding:2px 6px;border-radius:10px;min-width:18px;text-align:center}.chat-messages{flex:1;overflow-y:auto;padding:var(--spacing-sm);display:flex;flex-direction:column;gap:var(--spacing-xs);min-height:200px;max-height:300px}.chat-empty{color:var(--color-text-secondary);text-align:center;padding:var(--spacing-lg);font-size:.85rem;font-style:italic}.chat-message{display:flex;flex-direction:column;padding:var(--spacing-xs) var(--spacing-sm);border-radius:8px;max-width:85%;word-wrap:break-word}.chat-message.own{align-self:flex-end;background-color:var(--color-primary);color:#fff}.chat-message.opponent{align-self:flex-start;background-color:#ffffff1a}.chat-message.white .chat-sender{color:var(--color-beige-warm)}.chat-message.black .chat-sender{color:var(--color-brown-medium)}.chat-message.own .chat-sender{color:#fffc}.chat-message-header{display:flex;align-items:center;gap:var(--spacing-xs);margin-bottom:2px}.chat-sender{font-size:.75rem;font-weight:600}.chat-time{font-size:.65rem;opacity:.6}.chat-message-content{font-size:.85rem;line-height:1.4}.chat-input-form{display:flex;gap:var(--spacing-xs);padding:var(--spacing-sm);background-color:#0003;border-top:1px solid rgba(255,255,255,.05)}.chat-input{flex:1;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid rgba(255,255,255,.1);border-radius:4px;background-color:#ffffff0d;color:var(--color-text);font-size:.85rem}.chat-input:focus{outline:none;border-color:var(--color-primary)}.chat-input:disabled{opacity:.5;cursor:not-allowed}.chat-input::placeholder{color:var(--color-text-secondary)}.chat-send-button{padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-primary);border:none;border-radius:4px;color:#fff;font-size:.8rem;font-weight:500;cursor:pointer;transition:background-color .2s}.chat-send-button:hover:not(:disabled){background-color:var(--color-primary-hover)}.chat-send-button:disabled{opacity:.5;cursor:not-allowed}.chat-toggle-button{position:relative;display:flex;align-items:center;justify-content:center;width:48px;height:48px;background-color:var(--color-surface);border:1px solid rgba(255,255,255,.1);border-radius:50%;cursor:pointer;transition:background-color .2s,transform .1s}.chat-toggle-button:hover{background-color:#ffffff1a;transform:scale(1.05)}.chat-icon{font-size:1.4rem}.chat-toggle-button .chat-badge{position:absolute;top:-4px;right:-4px}@media (max-width: 900px){.chat-panel.open{width:100%;max-width:100%;max-height:300px}.chat-messages{min-height:150px;max-height:200px}}@media (max-width: 500px){.chat-panel.open{max-height:250px}.chat-messages{min-height:120px;max-height:150px}.chat-message{max-width:90%}}.sidebar-tabs{display:flex;flex-direction:column;background-color:var(--color-surface);border:1px solid rgba(255,255,255,.1);border-radius:8px;overflow:hidden;width:280px;flex:1;min-height:0}.sidebar-tabs-bar{display:flex;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:var(--spacing-sm) var(--spacing-md);background:none;border:none;border-bottom:2px solid transparent;color:var(--color-text-secondary);font-size:.9rem;font-weight:500;cursor:pointer;transition:color .15s,border-color .15s,background-color .15s;min-height:40px}.sidebar-tab:hover{color:var(--color-text);background-color:#ffffff0d}.sidebar-tab.active{color:var(--color-text);border-bottom-color:var(--color-primary)}.sidebar-tab-badge{background-color:var(--color-primary);color:#fff;font-size:.7rem;font-weight:700;padding:1px 5px;border-radius:10px;min-width:16px;text-align:center;line-height:1.3}.sidebar-tabs-content{flex:1;min-height:0;overflow-y:auto}.sidebar-tabs-content .move-list{border-radius:0;border:none}.sidebar-tabs-content .chat-panel{border-radius:0;border:none;width:100%}.sidebar-tabs-content .chat-panel.open{width:100%;max-height:360px}@media (max-width: 900px){.sidebar-tabs{width:100%;max-width:100%}}@media (max-width: 500px){.sidebar-tabs-content .chat-panel.open{max-height:250px}}.rematch-panel{padding:var(--spacing-md);border-top:1px solid rgba(255,255,255,.1);margin-top:var(--spacing-md)}.session-score{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);padding:var(--spacing-sm);background-color:#ffffff0d;border-radius:6px}.score-label{color:var(--color-text-secondary);font-size:.9rem}.score-value{font-size:1.2rem;font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums}.rematch-notification{text-align:center;padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-md);background-color:#2c5f2d33;border:1px solid rgba(44,95,45,.4);border-radius:6px;color:var(--color-primary);font-weight:500;animation:pulse-bg 2s infinite}@keyframes pulse-bg{0%,to{background-color:#2c5f2d33}50%{background-color:#2c5f2d4d}}.rematch-waiting{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);color:var(--color-text-secondary);font-size:.9rem}.rematch-actions{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.rematch-btn{flex:1;padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;min-height:40px;display:flex;align-items:center;justify-content:center}.rematch-btn.request{background-color:var(--color-primary);color:#fff;border:none}.rematch-btn.request:hover:not(:disabled){background-color:var(--color-primary-hover)}.rematch-btn.request:disabled{opacity:.7;cursor:not-allowed}.rematch-btn.accept{background-color:var(--color-primary);color:#fff;border:none}.rematch-btn.accept:hover{background-color:var(--color-primary-hover)}.rematch-btn.decline{background-color:#e74c3c1a;color:#e74c3c;border:1px solid rgba(231,76,60,.3)}.rematch-btn.decline:hover{background-color:#e74c3c33}.new-game-btn{flex:1;padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;border:none;background-color:var(--color-primary);color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;transition:all .2s;min-height:40px}.new-game-btn:hover{background-color:var(--color-primary-hover)}.spinner-small{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@media (max-width: 400px){.rematch-actions{flex-direction:column}.rematch-btn,.new-game-btn{width:100%}}.online-game{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);width:100%;max-width:900px;margin:0 auto;padding:0 var(--spacing-md)}.online-game-header{display:flex;gap:var(--spacing-lg);justify-content:center;flex-wrap:wrap}.room-badge,.player-badge{background-color:var(--color-surface);padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;font-size:.9rem}.room-badge span{font-weight:700;letter-spacing:1px}.player-badge span{font-weight:700}.player-badge span.black{color:var(--color-brown-medium)}.online-turn-indicator{display:flex;align-items:center;gap:var(--spacing-sm);font-size:1.1rem}.online-turn-indicator .turn-dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--color-text-secondary)}.online-turn-indicator .turn-dot.white{background-color:var(--color-beige-cream)}.online-turn-indicator .turn-dot.black{background-color:var(--color-brown-dark)}.online-turn-indicator .turn-dot.waiting{animation:pulse 1s ease-in-out infinite}.result-reason{color:var(--color-text-secondary);font-size:.9rem}.online-board-container{display:flex;flex-direction:row;gap:var(--spacing-md);align-items:flex-start;justify-content:center;width:100%}.player-info-bar{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-surface);border-radius:6px;font-size:1rem;width:100%;box-sizing:border-box;min-height:40px}@media (max-width: 900px){.online-game{max-width:100%}.online-board-container{flex-direction:column;align-items:center}.online-game-sidebar{width:100%;max-width:480px;min-width:unset}}.online-game-actions{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-md)}.action-button{padding:var(--spacing-sm) var(--spacing-lg);border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .2s;min-height:44px;border:1px solid rgba(255,255,255,.2);background-color:transparent;color:var(--color-text)}.action-button:hover{background-color:#ffffff1a}.legal-page{max-width:900px;margin:0 auto;padding:0 var(--spacing-md) var(--spacing-xl)}.legal-hero-banner{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--color-forest-dark) 0%,var(--color-forest-medium) 60%,#4CAF50 100%);color:#fff;border-radius:16px;padding:24px 28px;margin-bottom:20px;box-shadow:0 4px 24px #2c5f2d4d;display:flex;align-items:center;gap:16px;min-height:130px}.legal-hero-banner-icon{position:absolute;top:50%;right:20px;transform:translateY(-50%);font-size:5rem;opacity:.22;pointer-events:none;line-height:1}.legal-hero-banner-content{flex:1;min-width:0}.legal-hero-banner-title{font-size:1.8rem;font-family:Georgia,serif;font-weight:700;margin:0 0 6px;color:#fff}.legal-hero-banner-subtitle{font-size:.95rem;margin:0;color:#fffc;line-height:1.4}.legal-back-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:.9rem;padding:8px 0;margin-bottom:16px;transition:color .2s}.legal-back-btn:hover{color:var(--text-primary)}.legal-content{background:var(--card-bg);border-radius:var(--radius-md);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);line-height:1.7;color:var(--text-primary)}.legal-content h2{font-size:1.3rem;font-weight:700;margin:2rem 0 .75rem;color:var(--text-primary)}.legal-content h2:first-child{margin-top:0}.legal-content h3{font-size:1.1rem;font-weight:600;margin:1.5rem 0 .5rem;color:var(--text-primary)}.legal-content p{margin:0 0 1rem;color:var(--text-secondary)}.legal-content ul,.legal-content ol{margin:0 0 1rem;padding-left:1.5rem;color:var(--text-secondary)}.legal-content li{margin-bottom:.4rem}.legal-content a{color:var(--color-forest-light);text-decoration:underline}.legal-content a:hover{color:var(--color-forest)}.legal-last-updated{font-size:.85rem;color:var(--text-tertiary);margin-bottom:1.5rem;font-style:italic}@media (max-width: 480px){.legal-hero-banner{padding:18px 16px;min-height:100px}.legal-hero-banner-title{font-size:1.4rem}.legal-hero-banner-subtitle{font-size:.85rem}.legal-hero-banner-icon{font-size:3.5rem;right:12px}.legal-content{padding:var(--spacing-md)}.legal-content h2{font-size:1.15rem}}.legal-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1100;padding:var(--spacing-md)}.legal-modal{background-color:var(--color-surface);border-radius:12px;max-width:700px;width:100%;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #0006}.legal-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0}.legal-modal-header h3{margin:0;font-size:1.2rem;color:var(--text-primary)}.legal-modal-close{background:none;border:none;color:var(--color-text-secondary);font-size:1.5rem;cursor:pointer;padding:var(--spacing-xs) var(--spacing-sm);line-height:1;border-radius:6px}.legal-modal-close:hover{color:var(--color-text);background:#ffffff0d}.legal-modal-body{overflow-y:auto;padding:var(--spacing-lg);line-height:1.7;color:var(--text-primary)}.legal-modal-body h2{font-size:1.2rem;font-weight:700;margin:1.5rem 0 .6rem;color:var(--text-primary)}.legal-modal-body h2:first-child{margin-top:0}.legal-modal-body h3{font-size:1.05rem;font-weight:600;margin:1.2rem 0 .4rem;color:var(--text-primary)}.legal-modal-body p{margin:0 0 .8rem;color:var(--text-secondary);font-size:.92rem}.legal-modal-body ul,.legal-modal-body ol{margin:0 0 .8rem;padding-left:1.5rem;color:var(--text-secondary);font-size:.92rem}.legal-modal-body li{margin-bottom:.3rem}.legal-modal-body a{color:var(--color-forest-light);text-decoration:underline}.legal-modal-body a:hover{color:var(--color-forest)}@media (max-width: 480px){.legal-modal{max-height:90vh;border-radius:8px}.legal-modal-header{padding:var(--spacing-sm) var(--spacing-md)}.legal-modal-header h3{font-size:1.05rem}.legal-modal-body{padding:var(--spacing-md)}}.auth-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-md)}.auth-modal{background-color:var(--color-surface);border-radius:12px;padding:var(--spacing-xl);max-width:400px;width:100%;position:relative;box-shadow:0 4px 20px #0000004d}.auth-modal-close{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);background:none;border:none;color:var(--color-text-secondary);font-size:1.5rem;cursor:pointer;padding:var(--spacing-sm);line-height:1}.auth-modal-close:hover{color:var(--color-text)}.auth-modal h2{text-align:center;margin-bottom:var(--spacing-lg);font-size:1.5rem}.auth-error{background-color:#e74c3c1a;border:1px solid var(--color-error);color:var(--color-error);padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;margin-bottom:var(--spacing-md);font-size:.9rem;text-align:center}.auth-field{margin-bottom:var(--spacing-md)}.auth-field label{display:block;margin-bottom:var(--spacing-xs);font-size:.9rem;color:var(--color-text-secondary)}.auth-field input{width:100%;padding:var(--spacing-md);border-radius:8px;border:1px solid rgba(255,255,255,.2);background-color:#0003;color:var(--color-text);font-size:1rem;min-height:44px;box-sizing:border-box}.auth-field input:focus{outline:none;border-color:var(--color-primary)}.auth-field input::placeholder{color:var(--color-text-secondary)}.auth-terms-checkbox{margin:var(--spacing-sm) 0}.auth-terms-label{display:flex;align-items:flex-start;gap:var(--spacing-sm);font-size:.85rem;color:var(--color-text-secondary);cursor:pointer;line-height:1.4}.auth-terms-label input[type=checkbox]{margin-top:3px;flex-shrink:0;cursor:pointer;width:16px;height:16px}.auth-terms-link{background:none;border:none;color:var(--color-primary);text-decoration:underline;cursor:pointer;font:inherit;line-height:inherit;padding:0}.auth-terms-link:hover{color:var(--color-primary-hover)}.auth-submit{width:100%;padding:var(--spacing-md);border-radius:8px;border:none;background-color:var(--color-primary);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;min-height:44px;margin-top:var(--spacing-md);display:flex;align-items:center;justify-content:center}.auth-submit:hover:not(:disabled){background-color:var(--color-primary-hover)}.auth-submit:disabled{background-color:var(--color-neutral-600);cursor:not-allowed}.auth-spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:auth-spin 1s linear infinite}.auth-switch{text-align:center;margin-top:var(--spacing-lg);color:var(--color-text-secondary);font-size:.9rem}.auth-switch button{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:inherit;text-decoration:underline}.auth-switch button:hover{color:var(--color-primary-hover)}.auth-guest-option{margin-top:var(--spacing-md)}.auth-divider{display:flex;align-items:center;margin-bottom:var(--spacing-md);color:var(--color-text-secondary);font-size:.85rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-bottom:1px solid rgba(255,255,255,.15)}.auth-divider span{padding:0 var(--spacing-sm)}.auth-guest-btn{width:100%;padding:var(--spacing-md);border-radius:8px;border:1px solid rgba(255,255,255,.2);background:transparent;color:var(--color-text);font-size:1rem;cursor:pointer;min-height:44px}.auth-guest-btn:hover{background:#ffffff0d;border-color:#ffffff4d}@keyframes auth-spin{to{transform:rotate(360deg)}}.guest-banner{display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--surface-secondary, #2a2a3d);border-bottom:1px solid var(--border-color, #3a3a4d);font-size:.875rem;color:var(--text-secondary, #b0b0c0);z-index:100}.guest-banner-text{flex:1}.guest-banner-upgrade{padding:4px 12px;border-radius:4px;border:none;background:var(--accent-color, #4a90d9);color:#fff;font-size:.8125rem;font-weight:600;cursor:pointer;white-space:nowrap}.guest-banner-upgrade:hover{opacity:.9}.guest-banner-close{background:none;border:none;color:var(--text-secondary, #b0b0c0);font-size:1.25rem;cursor:pointer;padding:0 4px;line-height:1}.guest-banner-close:hover{color:var(--text-primary, #e0e0e0)}.game-replay{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-lg);max-width:600px;margin:0 auto}.replay-close{align-self:flex-start;background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:.9rem;padding:var(--spacing-xs) var(--spacing-sm);margin-bottom:var(--spacing-md)}.replay-close:hover{text-decoration:underline}.replay-info{text-align:center;margin-bottom:var(--spacing-lg)}.replay-players{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);font-size:1.1rem;margin-bottom:var(--spacing-sm)}.replay-player{font-weight:700}.replay-player.white{color:var(--color-beige-warm)}.replay-player.black{color:var(--color-brown-medium)}.replay-vs{color:var(--color-text-secondary);font-weight:400}.replay-result{font-size:1rem;color:var(--color-text);margin-bottom:var(--spacing-xs)}.replay-reason{color:var(--color-text-secondary);font-size:.9rem}.replay-meta{display:flex;gap:var(--spacing-md);justify-content:center;font-size:.85rem;color:var(--color-text-secondary)}.replay-meta span{background-color:#ffffff0d;padding:2px 8px;border-radius:4px}.replay-board-container{width:100%;max-width:480px;margin-bottom:var(--spacing-lg)}.replay-board{width:100%;height:auto;border-radius:8px;box-shadow:0 4px 20px #0000004d}.replay-board .square-light{fill:var(--color-square-light)}.replay-board .square-dark{fill:var(--color-square-dark)}.last-move-highlight{fill:#ffff004d}.replay-controls{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.replay-controls button{background-color:var(--color-surface);border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--color-text);cursor:pointer;font-size:1.2rem;padding:var(--spacing-sm) var(--spacing-md);transition:background-color .2s,border-color .2s}.replay-controls button:hover:not(:disabled){background-color:#ffffff1a;border-color:var(--color-primary)}.replay-controls button:disabled{opacity:.3;cursor:not-allowed}.replay-move-counter{font-size:.9rem;color:var(--color-text-secondary);min-width:60px;text-align:center}.replay-slider{width:100%;max-width:400px}.replay-slider input[type=range]{width:100%;height:8px;border-radius:4px;background:#ffffff1a;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.replay-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--color-primary);cursor:pointer}.replay-slider input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--color-primary);cursor:pointer;border:none}.replay-actions{margin-top:var(--spacing-lg)}.pdn-download-btn{background-color:var(--color-primary);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:var(--spacing-sm) var(--spacing-lg);transition:background-color .2s,transform .1s}.pdn-download-btn:hover{background-color:var(--color-primary-hover);transform:translateY(-1px)}.pdn-download-btn:active{transform:translateY(0)}@media (max-width: 500px){.game-replay{padding:var(--spacing-sm)}.replay-players{flex-direction:column;gap:var(--spacing-xs)}.replay-controls button{padding:var(--spacing-xs) var(--spacing-sm);font-size:1rem}}.profile-page{width:100%;max-width:1200px;margin:0 auto;padding:var(--spacing-lg);position:relative}.profile-back-btn{background:none;border:none;color:var(--color-text-secondary);font-size:1rem;cursor:pointer;padding:var(--spacing-sm) 0;margin-bottom:var(--spacing-md);transition:color .2s}.profile-back-btn:hover{color:var(--color-text)}.profile-loading,.profile-error-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center}.profile-spinner{width:48px;height:48px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:var(--spacing-md)}.profile-error{color:var(--color-error);margin-bottom:var(--spacing-md)}.profile-button{padding:var(--spacing-md) var(--spacing-xl);border-radius:8px;border:none;background-color:var(--color-primary);color:#fff;font-size:1rem;cursor:pointer;transition:background-color .2s}.profile-button:hover{background-color:var(--color-primary-hover)}.profile-header-card{background-color:#fff;border-radius:24px;overflow:hidden;margin-bottom:var(--spacing-lg);box-shadow:0 8px 30px #0000001f;border:1px solid var(--color-brown-light)}.profile-banner{height:128px;background:linear-gradient(135deg,var(--color-forest-dark) 0%,var(--color-forest-medium) 50%,var(--color-brown-dark) 100%);position:relative}.profile-banner-pattern{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.1;background-image:repeating-linear-gradient(45deg,transparent,transparent 20px,rgba(255,255,255,.2) 20px,rgba(255,255,255,.2) 40px)}.profile-header-content{display:flex;flex-direction:column;padding:0 32px 24px;margin-top:-64px;position:relative}@media (min-width: 768px){.profile-header-content{flex-direction:row;align-items:flex-end;gap:24px}}.profile-avatar-wrapper{position:relative;flex-shrink:0}.profile-avatar{width:128px;height:128px;border-radius:16px;background:linear-gradient(135deg,var(--color-beige-warm) 0%,var(--color-forest-light) 100%);color:var(--color-forest-dark);font-size:3.5rem;font-weight:700;display:flex;align-items:center;justify-content:center;border:4px solid white;box-shadow:0 4px 16px #00000026}.profile-online-indicator{position:absolute;bottom:-4px;right:-4px;width:24px;height:24px;background-color:var(--color-success);border:3px solid white;border-radius:50%;display:flex;align-items:center;justify-content:center}.profile-online-pulse{width:12px;height:12px;background-color:var(--color-forest-light);border-radius:50%;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.profile-info{flex:1;padding-top:16px}@media (min-width: 768px){.profile-info{padding-top:0}}.profile-name-row{display:flex;align-items:center;gap:12px;margin-bottom:4px;flex-wrap:wrap}.profile-displayname{font-size:1.875rem;font-weight:700;color:var(--color-forest-dark);margin:0;font-family:Georgia,serif}.profile-country{font-size:1.5rem}.profile-handle{font-size:1.125rem;color:var(--color-neutral-600);margin:0 0 8px}.profile-meta-row{display:flex;flex-wrap:wrap;gap:16px;margin-top:16px;font-size:.875rem;color:var(--color-neutral-600)}.profile-meta-row .meta-item{display:flex;align-items:center;gap:4px}.profile-meta-row .meta-item.online{color:var(--color-success);font-weight:500}.profile-header-actions{display:flex;flex-direction:column;gap:12px;margin-top:16px}@media (min-width: 768px){.profile-header-actions{margin-top:0;align-items:flex-end}}.profile-actions{display:flex;gap:8px}.btn-challenge{background-color:var(--color-forest-dark);color:#fff;border:none;padding:10px 24px;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 4px 12px #2c5f2d4d}.btn-challenge:hover{background-color:var(--color-forest-medium);transform:scale(1.05);box-shadow:0 6px 16px #2c5f2d66}.btn-more{background-color:var(--color-beige-sand);color:var(--color-brown-dark);border:none;padding:10px 16px;border-radius:12px;font-size:1.2rem;font-weight:700;cursor:pointer;transition:all .2s;letter-spacing:2px;line-height:1}.btn-more:hover{background-color:var(--color-beige-warm)}.btn-more.active{background-color:var(--color-forest-dark);color:#fff}.profile-settings-panel{background-color:var(--color-surface);border-radius:16px;padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);box-shadow:0 2px 12px #0000001a;border:1px solid var(--color-brown-light);animation:settingsSlideIn .2s ease-out}@keyframes settingsSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.settings-title{font-size:1.1rem;font-weight:600;color:var(--color-forest-dark);margin:0 0 var(--spacing-md);font-family:Georgia,serif}.settings-item{display:flex;align-items:center;gap:var(--spacing-md);width:100%;padding:var(--spacing-md);background:var(--color-beige-warm);border:none;border-radius:12px;font-size:1rem;color:var(--color-text);cursor:pointer;transition:all .2s;margin-bottom:var(--spacing-sm)}.settings-item:hover:not(:disabled){background-color:var(--color-beige-sand)}.settings-item:disabled{opacity:.6;cursor:not-allowed}.settings-item-icon{font-size:1.25rem;flex-shrink:0}.settings-item-label{flex:1;text-align:left;font-weight:500}.settings-item-badge{font-size:.75rem;font-weight:600;color:var(--color-brown-medium);background-color:var(--color-beige-sand);padding:2px 8px;border-radius:8px;text-transform:uppercase}.settings-item-danger{color:var(--color-error)}.settings-item-danger:hover:not(:disabled){background-color:#e74c3c1a}.settings-lang-select{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-brown-light);background-color:#fff;color:var(--color-brown-dark);font-size:.9rem;border-radius:8px;cursor:pointer}.settings-lang-select:focus{outline:none;border-color:var(--color-forest-dark)}.profile-variant-selector{display:flex;gap:var(--spacing-xs);padding:var(--spacing-xs);background-color:var(--color-beige-sand);border-radius:16px;margin-bottom:var(--spacing-lg)}.variant-btn{flex:1;padding:var(--spacing-sm) var(--spacing-md);border:none;background:transparent;color:var(--color-brown-dark);font-size:.95rem;font-weight:500;cursor:pointer;border-radius:12px;transition:all .2s}.variant-btn:hover{background-color:#ffffff80}.variant-btn.active{background-color:var(--color-forest-dark);color:#fff;box-shadow:0 4px 12px #2c5f2d4d}.profile-ratings-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.rating-card{background-color:var(--color-surface);border-radius:16px;padding:var(--spacing-md);cursor:pointer;transition:all .2s;border:2px solid transparent;box-shadow:0 2px 12px #0000001a}.rating-card:hover{transform:translateY(-2px);box-shadow:0 4px 20px #00000026}.rating-card.selected{border-color:var(--color-forest-dark);box-shadow:0 4px 20px #2c5f2d33}.rating-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xs)}.rating-icon{font-size:1.5rem}.rating-class{font-size:.7rem;font-weight:600;text-transform:uppercase}.rating-trend{font-size:.75rem;font-weight:600;padding:2px 8px;border-radius:10px}.rating-trend.positive{background-color:var(--color-forest-light);color:var(--color-forest-dark)}.rating-trend.negative{background-color:#e74c3c26;color:var(--color-error)}.rating-trend.neutral{background-color:var(--color-beige-sand);color:var(--color-brown-dark)}.rating-type{font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary);margin:0}.rating-value{font-size:2rem;font-weight:700;color:var(--color-text);margin:var(--spacing-xs) 0;font-family:Georgia,serif}.rating-games{font-size:.8rem;color:var(--color-text-secondary);margin:0}.profile-tabs{display:flex;gap:var(--spacing-xs);padding:var(--spacing-xs);background-color:var(--color-beige-sand);border-radius:16px;margin-bottom:var(--spacing-lg)}.tab-button{flex:1;padding:var(--spacing-sm) var(--spacing-md);border:none;background:transparent;color:var(--color-brown-dark);font-size:.95rem;font-weight:500;cursor:pointer;border-radius:12px;transition:all .2s}.tab-button:hover{background-color:#ffffff80}.tab-button.active{background-color:var(--color-forest-dark);color:#fff;box-shadow:0 4px 12px #2c5f2d4d}.profile-winloss-card{background-color:var(--color-surface);border-radius:16px;padding:var(--spacing-md) var(--spacing-lg);box-shadow:0 2px 12px #0000001a;border:1px solid var(--color-brown-light);margin-bottom:var(--spacing-lg)}.winloss-labels{display:flex;justify-content:space-between;font-size:.8rem;font-weight:600;margin-bottom:var(--spacing-xs)}.label-win{color:var(--color-success)}.label-draw{color:var(--color-brown-medium)}.label-loss{color:var(--color-error)}.winloss-bar{height:14px;border-radius:7px;overflow:hidden;display:flex;background-color:var(--color-neutral-200)}.bar-win{background-color:var(--color-success)}.bar-draw{background-color:var(--color-brown-medium)}.bar-loss{background-color:var(--color-error)}.winloss-total{text-align:center;font-size:.8rem;color:var(--color-text-secondary);margin-top:var(--spacing-xs)}.games-tab-content{background-color:var(--color-surface);border-radius:16px;padding:var(--spacing-lg);box-shadow:0 2px 12px #0000001a;border:1px solid var(--color-brown-light)}.games-filters{display:flex;flex-wrap:wrap;gap:var(--spacing-md);align-items:center;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-brown-light)}.filter-group{display:flex;align-items:center;gap:var(--spacing-xs)}.filter-pills{display:flex;gap:var(--spacing-xs);background-color:var(--color-beige-sand);padding:4px;border-radius:10px}.filter-pill{padding:var(--spacing-xs) var(--spacing-md);border:none;background:transparent;color:var(--color-brown-dark);font-size:.85rem;font-weight:500;cursor:pointer;border-radius:8px;transition:all .2s}.filter-pill:hover{background-color:#ffffff80}.filter-pill.active{background-color:var(--color-forest-dark);color:#fff}.filter-pill.active.pill-win{background-color:var(--color-success)}.filter-pill.active.pill-draw{background-color:var(--color-brown-medium)}.filter-pill.active.pill-loss{background-color:var(--color-error)}.filter-select{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-brown-light);background-color:var(--color-beige-warm);color:var(--color-brown-dark);font-size:.85rem;border-radius:8px;cursor:pointer;transition:border-color .2s}.filter-select:hover{border-color:var(--color-forest-medium)}.filter-select:focus{outline:none;border-color:var(--color-forest-dark)}.games-count{margin-left:auto;font-size:.85rem;color:var(--color-text-secondary);font-weight:500}.games-full-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.games-loading,.games-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl) var(--spacing-md);text-align:center;color:var(--color-text-secondary)}.games-empty-icon{font-size:3rem;margin-bottom:var(--spacing-md);opacity:.5}.btn-clear-filters{margin-top:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-beige-sand);color:var(--color-brown-dark);border:none;border-radius:8px;font-size:.85rem;cursor:pointer;transition:background-color .2s}.btn-clear-filters:hover{background-color:var(--color-beige-warm)}.game-row-full{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-beige-warm);border-radius:12px;transition:all .2s;cursor:pointer}.game-row-full:hover{background-color:var(--color-beige-sand);transform:translate(4px)}.game-result-badge-full{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;flex-shrink:0}.game-result-badge-full.result-win{background-color:var(--color-success);color:#fff}.game-result-badge-full.result-draw{background-color:var(--color-brown-medium);color:#fff}.game-result-badge-full.result-loss{background-color:var(--color-error);color:#fff}.game-info-full{flex:1;min-width:0}.game-opponent-full{font-weight:600;color:var(--color-text);margin:0;font-size:1rem}.opponent-rating{font-weight:400;color:var(--color-text-secondary);margin-left:var(--spacing-xs);font-size:.9rem}.game-meta-full{display:flex;align-items:center;gap:var(--spacing-sm);margin:4px 0 0;font-size:.8rem;color:var(--color-text-secondary)}.game-variant,.game-tc{font-size:1rem}.game-moves{color:var(--color-neutral-600)}.game-date-full{font-size:.85rem;color:var(--color-text-secondary);white-space:nowrap}.btn-load-more{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);width:100%;margin-top:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-forest-dark);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-load-more:hover:not(:disabled){background-color:var(--color-forest-medium);transform:scale(1.02)}.btn-load-more:disabled{opacity:.7;cursor:not-allowed}.btn-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}.tab-content-wrapper{min-height:400px;width:100%}.stats-tab-content{display:flex;flex-direction:column;gap:var(--spacing-lg)}.stats-loading,.stats-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl) var(--spacing-md);text-align:center;background-color:var(--color-surface);border-radius:16px;box-shadow:0 2px 12px #0000001a;border:1px solid var(--color-brown-light);min-height:300px}.stats-empty-icon{font-size:4rem;margin-bottom:var(--spacing-md);opacity:.5}.stats-empty p{color:var(--color-text-secondary);margin:0}.stats-section{background-color:var(--color-surface);border-radius:16px;padding:var(--spacing-lg);box-shadow:0 2px 12px #0000001a;border:1px solid var(--color-brown-light)}.stats-section-title{font-size:1.1rem;font-weight:600;color:var(--color-forest-dark);margin:0 0 var(--spacing-md);font-family:Georgia,serif}.stats-cards-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-md)}.stats-cards-grid.two-cols{grid-template-columns:repeat(2,1fr)}.stats-card{background-color:var(--color-beige-warm);border-radius:12px;padding:var(--spacing-md);transition:transform .2s}.stats-card:hover{transform:translateY(-2px)}.stats-card.simple{text-align:center}.stats-card-header{display:flex;align-items:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm)}.stats-card-icon{font-size:1.25rem}.stats-card-label{font-size:.85rem;font-weight:600;color:var(--color-brown-dark);text-transform:capitalize}.stats-card-value{font-size:.8rem;color:var(--color-text-secondary);margin-bottom:var(--spacing-sm)}.stats-card-big-value{font-size:2.5rem;font-weight:700;color:var(--color-forest-dark);font-family:Georgia,serif}.stats-winrate-bar{height:8px;border-radius:4px;overflow:hidden;display:flex;background-color:var(--color-neutral-200);margin-bottom:var(--spacing-xs)}.stats-bar-fill{height:100%;transition:width .3s ease}.stats-bar-fill.win{background-color:var(--color-success)}.stats-bar-fill.draw{background-color:var(--color-brown-medium)}.stats-bar-fill.loss{background-color:var(--color-error)}.stats-wdl-labels{display:flex;justify-content:space-between;font-size:.7rem;font-weight:600}.wdl-win{color:var(--color-success)}.wdl-draw{color:var(--color-brown-medium)}.wdl-loss{color:var(--color-error)}.wdl-rate{color:var(--color-forest-dark)}@media (max-width: 768px){.profile-page{padding:var(--spacing-md)}.profile-ratings-grid{grid-template-columns:repeat(2,1fr)}.profile-tabs{flex-wrap:wrap}.tab-button{flex:1 1 45%;font-size:.85rem;padding:var(--spacing-sm)}}@media (max-width: 480px){.profile-ratings-grid{grid-template-columns:repeat(2,1fr)}.rating-value{font-size:1.5rem}.stats-tab-content{gap:var(--spacing-md)}.stats-section{padding:var(--spacing-md)}.stats-cards-grid{grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm)}.stats-cards-grid.two-cols{grid-template-columns:1fr}.stats-card{padding:var(--spacing-sm)}.stats-card-big-value{font-size:2rem}.stats-section-title{font-size:1rem;margin-bottom:var(--spacing-sm)}.games-tab-content{padding:var(--spacing-md)}.games-filters{flex-direction:column;align-items:stretch;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm)}.filter-pills{width:100%;justify-content:space-between}.filter-pill{flex:1;text-align:center;padding:var(--spacing-sm) var(--spacing-xs);font-size:.8rem}.filter-select{width:100%}.games-count{margin-left:0;text-align:center}.game-row-full{padding:var(--spacing-sm)}.game-result-badge-full{width:36px;height:36px;font-size:.9rem}.game-opponent-full{font-size:.9rem}.game-meta-full,.game-date-full{font-size:.75rem}}@media (max-width: 360px){.profile-header-content{padding:0 16px 16px}.profile-avatar{width:96px;height:96px;font-size:2.5rem}.profile-displayname{font-size:1.5rem}.profile-ratings-grid{grid-template-columns:1fr}.rating-card{padding:var(--spacing-sm)}.rating-value{font-size:1.3rem}.stats-cards-grid{grid-template-columns:1fr}}.profile-delete-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.profile-delete-modal{background:var(--color-surface);border-radius:16px;padding:24px;max-width:420px;width:90%}.profile-delete-modal h3{margin:0 0 12px;color:var(--color-danger, #e53e3e)}.delete-warning{color:var(--color-text-secondary);font-size:.9rem;margin-bottom:16px;line-height:1.5}.delete-password-field{margin-bottom:12px}.delete-password-field label{display:block;font-size:.85rem;margin-bottom:6px;color:var(--color-text-secondary)}.delete-password-field input{width:100%;padding:10px 12px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);font-size:.95rem;box-sizing:border-box}.delete-error{color:var(--color-danger, #e53e3e);font-size:.85rem;margin-bottom:12px}.delete-actions{display:flex;gap:12px;justify-content:flex-end}.btn-cancel{padding:10px 20px;border-radius:8px;border:1px solid var(--color-border);background:transparent;color:var(--color-text);cursor:pointer;font-size:.9rem}.btn-delete{padding:10px 20px;border-radius:8px;border:none;background:var(--color-danger, #e53e3e);color:#fff;cursor:pointer;font-size:.9rem}.btn-delete:disabled{opacity:.5;cursor:not-allowed}.change-password-form{padding:12px 16px;display:flex;flex-direction:column;gap:10px}.change-password-form .auth-field{display:flex;flex-direction:column;gap:4px}.change-password-form .auth-field label{font-size:.85rem;color:var(--color-text-secondary)}.change-password-form .auth-field input{padding:8px 12px;border-radius:8px;border:1px solid var(--color-border);font-size:.9rem;background:var(--color-bg)}.change-password-form .auth-submit{margin-top:4px;padding:10px;border-radius:8px;border:none;background-color:var(--color-primary);color:#fff;font-weight:600;cursor:pointer}.change-password-form .auth-submit:disabled{opacity:.5;cursor:not-allowed}.change-password-form .auth-error{padding:8px 12px;background-color:#fff5f5;color:#e53e3e;border-radius:8px;font-size:.85rem}.auth-success{padding:8px 12px;background-color:#f0fff4;color:#276749;border-radius:8px;font-size:.85rem}.settings-toggle{position:relative;display:inline-block;width:44px;height:24px;margin-left:auto;flex-shrink:0}.settings-toggle input{opacity:0;width:0;height:0}.settings-toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;border-radius:24px;transition:.3s}.settings-toggle-slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;border-radius:50%;transition:.3s}.settings-toggle input:checked+.settings-toggle-slider{background-color:var(--color-primary)}.settings-toggle input:checked+.settings-toggle-slider:before{transform:translate(20px)}.games-history-page{display:flex;justify-content:center;padding:var(--spacing-lg);min-height:400px}.games-card{background-color:var(--color-surface);border-radius:12px;padding:var(--spacing-xl);max-width:600px;width:100%;box-shadow:0 4px 20px #0000004d;position:relative}.games-card h2{margin:0 0 var(--spacing-sm) 0;color:var(--color-text);font-size:1.5rem}.games-back{position:absolute;top:var(--spacing-md);left:var(--spacing-md);background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:.9rem;padding:var(--spacing-xs) var(--spacing-sm)}.games-back:hover{text-decoration:underline}.games-count{color:var(--color-text-secondary);margin:0 0 var(--spacing-lg) 0;font-size:.9rem}.games-message{color:var(--color-text-secondary);text-align:center;padding:var(--spacing-xl) 0}.games-error{color:var(--color-error);text-align:center}.games-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--color-primary);border-radius:50%;animation:games-spin 1s linear infinite;margin:var(--spacing-md) auto}@keyframes games-spin{to{transform:rotate(360deg)}}.games-list{display:flex;flex-direction:column;gap:var(--spacing-sm);max-height:500px;overflow-y:auto}.game-item{display:flex;flex-direction:column;gap:var(--spacing-xs);background-color:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:var(--spacing-md);cursor:pointer;transition:background-color .2s,border-color .2s;text-align:left;width:100%}.game-item:hover{background-color:#ffffff1a;border-color:var(--color-primary)}.game-item-main{display:flex;align-items:center;gap:var(--spacing-md)}.game-result{font-weight:700;font-size:.9rem;padding:var(--spacing-xs) var(--spacing-sm);border-radius:4px;min-width:50px;text-align:center}.result-win{background-color:#27ae6033;color:var(--color-success)}.result-loss{background-color:#e74c3c33;color:var(--color-error)}.result-draw{background-color:#f39c1233;color:var(--color-warning)}.game-opponent{color:var(--color-text);font-size:1rem}.game-item-details{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);font-size:.8rem;color:var(--color-text-secondary)}.game-variant,.game-time,.game-moves,.game-date{background-color:#ffffff0d;padding:2px 8px;border-radius:4px}@media (max-width: 600px){.games-history-page{padding:var(--spacing-sm)}.games-card{padding:var(--spacing-md)}.game-item-main{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs)}}.leaderboard-page{width:100%;max-width:800px;margin:0 auto;padding:var(--spacing-md)}.leaderboard-hero-banner{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--color-forest-dark) 0%,var(--color-forest-medium) 60%,#4CAF50 100%);color:#fff;border-radius:16px;padding:24px 28px;margin-bottom:20px;box-shadow:0 4px 24px #2c5f2d4d;display:flex;align-items:center;gap:16px;min-height:130px}.leaderboard-hero-banner-icon{position:absolute;top:50%;right:20px;transform:translateY(-50%);font-size:5rem;opacity:.22;pointer-events:none;line-height:1}.leaderboard-hero-banner-content{flex:1;min-width:0}.leaderboard-hero-banner-title{font-size:1.8rem;font-family:Georgia,serif;font-weight:700;margin:0 0 6px;color:#fff}.leaderboard-hero-banner-subtitle{font-size:.95rem;margin:0;color:#fffc;line-height:1.4}.leaderboard-tab-selector{display:flex;justify-content:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-md)}.tab-button{padding:var(--spacing-sm) var(--spacing-lg);border:none;background-color:transparent;color:var(--color-text-secondary);font-size:1rem;cursor:pointer;border-radius:4px;transition:all .2s}.tab-button:hover{background-color:#ffffff0d;color:var(--color-text)}.tab-button.active{background-color:var(--color-primary);color:#fff}.time-control-tabs{display:flex;justify-content:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.time-control-tab{padding:var(--spacing-xs) var(--spacing-md);border:1px solid rgba(255,255,255,.1);background-color:transparent;color:var(--color-text-secondary);font-size:.9rem;cursor:pointer;border-radius:20px;transition:all .2s}.time-control-tab:hover{border-color:#ffffff4d;color:var(--color-text)}.time-control-tab.active{border-color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.15);color:var(--color-primary)}.variant-tabs{display:flex;gap:var(--spacing-xs);padding:var(--spacing-xs);background-color:var(--color-beige-sand);border-radius:16px;margin-bottom:var(--spacing-lg)}.variant-tab{flex:1;padding:var(--spacing-sm) var(--spacing-md);border:none;background:transparent;color:var(--color-brown-dark);font-size:.95rem;font-weight:500;cursor:pointer;border-radius:12px;transition:all .2s}.variant-tab:hover{background-color:#ffffff80}.variant-tab.active{background-color:var(--color-forest-dark);color:#fff;box-shadow:0 4px 12px #2c5f2d4d}.monthly-meta{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background-color:#ffffff08;border-radius:8px;margin-bottom:var(--spacing-md)}.month-name{font-weight:600;font-size:1.1rem}.days-left{color:var(--color-text-secondary);font-size:.9rem}.leaderboard-loading,.leaderboard-error,.leaderboard-empty{text-align:center;padding:var(--spacing-xl);color:var(--color-text-secondary)}.leaderboard-error{color:var(--color-error)}.leaderboard-table-container{overflow-x:auto;transition:opacity .15s}.leaderboard-table-container.loading{opacity:.5;pointer-events:none}.leaderboard-table{width:100%;border-collapse:collapse;background-color:var(--color-surface);border-radius:8px;overflow:hidden}.leaderboard-table th,.leaderboard-table td{padding:var(--spacing-sm) var(--spacing-md);text-align:left}.leaderboard-table th{background-color:#ffffff0d;color:var(--color-text-secondary);font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid rgba(255,255,255,.1)}.leaderboard-row{border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer;transition:background-color .2s}.leaderboard-row:hover{background-color:#ffffff0d}.leaderboard-row:last-child{border-bottom:none}.leaderboard-row.top-1{background-color:#ffd7001a}.leaderboard-row.top-2{background-color:#c0c0c014}.leaderboard-row.top-3{background-color:#cd7f3214}.leaderboard-row.not-qualified{opacity:.6}.col-rank{width:60px;text-align:center;font-weight:700}.col-player{font-weight:500}.col-rating{font-family:monospace;font-size:1rem}.col-class{min-width:100px}.col-games{text-align:right;color:var(--color-text-secondary)}.col-progress{text-align:right;font-weight:600;font-family:monospace}.col-wdl{text-align:center;font-family:monospace;font-size:.9rem}.rank-medal{display:flex;align-items:center;justify-content:center}.medal-gold{color:gold}.medal-silver{color:silver}.medal-bronze{color:#cd7f32}.rating-class-badge{font-weight:600;font-size:.85rem}.progress-value{padding:2px 6px;border-radius:4px}.progress-value.positive{color:var(--color-success);background-color:#27ae6026}.progress-value.negative{color:var(--color-error);background-color:#e74c3c26}.wdl-value{color:var(--color-text-secondary)}.qualify-progress{font-size:.8rem;color:var(--color-text-secondary);font-style:italic}@media (max-width: 700px){.leaderboard-table th,.leaderboard-table td{padding:var(--spacing-xs) var(--spacing-sm);font-size:.85rem}.col-class,.col-wdl{display:none}.leaderboard-title{font-size:1.5rem}.time-control-tab{padding:var(--spacing-xs) var(--spacing-sm);font-size:.8rem}.monthly-meta{flex-direction:column;gap:var(--spacing-xs);text-align:center}}@media (max-width: 500px){.tab-button{padding:var(--spacing-xs) var(--spacing-md);font-size:.9rem}.leaderboard-hero-banner{padding:18px 16px;min-height:100px}.leaderboard-hero-banner-title{font-size:1.4rem}.leaderboard-hero-banner-subtitle{font-size:.85rem}.leaderboard-hero-banner-icon{font-size:3.5rem;right:12px}}@media (max-width: 360px){.leaderboard-table th,.leaderboard-table td{padding:4px 6px;font-size:.8rem}.col-rank{width:36px}.col-progress{display:none}.time-control-tabs{flex-wrap:wrap;gap:4px}.time-control-tab{padding:6px 8px;font-size:.75rem;min-height:44px;display:flex;align-items:center}}.tournament-list-page{max-width:900px;margin:0 auto;padding:20px}.create-tournament-button{padding:10px 20px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:1rem;cursor:pointer;transition:background-color .2s}.create-tournament-button:hover{background:var(--color-primary-hover)}.tournament-filters-container{display:flex;flex-direction:column;gap:12px;margin-bottom:24px;padding:16px;background:var(--color-beige-sand);border-radius:16px;border:1px solid var(--color-brown-light)}.tournament-filter-group{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.tournament-filter-label{font-size:.85rem;font-weight:600;color:var(--color-text-secondary);min-width:70px}.tournament-filter-buttons{display:flex;gap:8px;flex-wrap:wrap}.filter-chip{padding:8px 14px;background:transparent;color:var(--color-brown-dark);border:none;border-radius:12px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.filter-chip:hover:not(:disabled){background:#ffffff80}.filter-chip.active{background:var(--color-forest-dark);color:#fff;box-shadow:0 4px 12px #2c5f2d4d}.filter-chip:disabled{opacity:.5;cursor:not-allowed}.filter-chip.format-arena.active{background:var(--color-format-arena);box-shadow:0 4px 12px #1565c04d}.filter-chip.format-swiss.active{background:var(--color-format-swiss);box-shadow:0 4px 12px #2e7d324d}.filter-chip.format-elimination.active{background:var(--color-format-elimination);box-shadow:0 4px 12px #e651004d}.tournament-sections{display:flex;flex-direction:column;gap:32px}.tournament-section{margin-bottom:8px}.tournament-section-title{display:flex;align-items:center;gap:8px;font-size:1.2rem;font-weight:600;color:var(--color-forest-dark);margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid var(--color-brown-light);font-family:Georgia,serif}.section-icon{display:inline-flex;align-items:center}.live-icon{color:#e74c3c}.section-count{background:var(--color-beige-warm);color:var(--color-brown-dark);font-size:.8rem;font-weight:600;padding:4px 10px;border-radius:12px;margin-left:auto;font-family:-apple-system,BlinkMacSystemFont,sans-serif}.tournament-loading,.tournament-error,.tournament-empty{text-align:center;padding:40px;color:var(--color-text-secondary);font-size:1.1rem}.tournament-error{color:var(--color-error)}.tournament-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.tournament-card{background:var(--color-surface);border-radius:16px;padding:16px;cursor:pointer;transition:all .2s;border:1px solid var(--color-brown-light);box-shadow:0 2px 12px #0000001a}.tournament-card:hover{transform:translateY(-2px);box-shadow:0 4px 20px #00000026}.tournament-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;flex-wrap:wrap;gap:8px}.tournament-badges{display:flex;gap:6px;flex-wrap:wrap}.tournament-format-badge{padding:4px 10px;border-radius:4px;font-size:.75rem;font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:.3px}.tournament-status-badge{padding:4px 8px;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.tournament-status-badge.status-live{background:var(--color-error);color:#fff;animation:pulse-live 2s infinite}.tournament-status-badge.status-upcoming{background:var(--color-info);color:#fff}.tournament-status-badge.status-finished{background:var(--color-text-muted);color:#fff}.tournament-status-badge.status-default{background:var(--color-neutral-600);color:#fff}.tournament-registered-badge{padding:4px 8px;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;background:var(--color-success);color:#fff}.tournament-meta-badges{display:flex;gap:6px}.tournament-rated-badge{padding:3px 8px;border-radius:4px;font-size:.7rem;background:var(--color-brown-medium);color:#fff;font-weight:500}.tournament-name{font-size:1.15rem;margin:0 0 14px;color:var(--color-text);font-weight:600}.tournament-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px;padding:10px;background:var(--color-beige-warm);border-radius:12px}.tournament-info-item{display:flex;flex-direction:column;gap:2px}.tournament-info-label{font-size:.7rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.3px}.tournament-info-value{font-size:.85rem;color:var(--color-text);font-weight:500}.tournament-progress-container{display:flex;align-items:center;gap:10px;margin-bottom:12px}.tournament-progress-bar{flex:1;height:6px;background:var(--color-bg);border-radius:3px;overflow:hidden}.tournament-progress-fill{height:100%;background:linear-gradient(90deg,var(--color-format-arena),var(--color-info));border-radius:3px;transition:width .3s ease}.tournament-progress-text{font-size:.75rem;color:var(--color-text-secondary);font-weight:500;min-width:35px}.tournament-footer{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid var(--color-brown-light)}.tournament-players,.tournament-starts,.tournament-games{font-size:.85rem;color:var(--color-text-secondary)}.tournament-starts{color:var(--color-info);font-weight:500}.tournament-starts.pulsing{color:var(--color-error);animation:start-pulse 1s infinite}.tournament-games{color:var(--color-text-secondary)}.tournament-hero-banner{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--color-forest-dark) 0%,var(--color-forest-medium) 60%,#4CAF50 100%);color:#fff;border-radius:16px;padding:24px 28px;margin-bottom:20px;box-shadow:0 4px 24px #2c5f2d4d;display:flex;align-items:center;gap:16px;min-height:130px}.tournament-hero-banner-icon{position:absolute;top:50%;right:20px;transform:translateY(-50%);font-size:5rem;opacity:.22;pointer-events:none;line-height:1}.tournament-hero-banner-content{flex:1;min-width:0}.tournament-hero-banner-title{font-size:1.8rem;font-family:Georgia,serif;font-weight:700;margin:0 0 6px;color:#fff}.tournament-hero-banner-subtitle{font-size:.95rem;margin:0;color:#fffc;line-height:1.4}@media (max-width: 768px){.tournament-list-page{padding:15px}.tournament-filter-group{flex-direction:column;align-items:flex-start;gap:8px}.tournament-filter-label{min-width:auto}.tournament-grid{grid-template-columns:1fr}.tournament-info-grid{grid-template-columns:1fr;gap:6px}.tournament-info-item{flex-direction:row;justify-content:space-between;align-items:center}}@media (max-width: 480px){.tournament-filters-container{padding:12px}.filter-chip{padding:8px 12px;font-size:.8rem;min-height:44px;display:flex;align-items:center}.tournament-card{padding:12px}.tournament-hero-banner{padding:18px 16px;min-height:100px}.tournament-hero-banner-title{font-size:1.4rem}.tournament-hero-banner-subtitle{font-size:.85rem}.tournament-hero-banner-icon{font-size:3.5rem;right:12px}.tournament-card-header{flex-direction:column}.tournament-footer{flex-direction:column;gap:8px;align-items:flex-start}}.tournament-detail-page{max-width:700px;margin:0 auto;padding:16px}.tournament-detail-header{display:flex;align-items:center;gap:16px;background:var(--color-surface);border-radius:16px;padding:16px;margin-bottom:16px;box-shadow:0 2px 12px #0000001a;border:1px solid var(--color-brown-light)}.tournament-back-button{background:none;border:none;color:var(--color-text-secondary);font-size:1.5rem;cursor:pointer;padding:8px;border-radius:var(--radius-md);transition:all .2s}.tournament-back-button:hover{background:var(--color-bg);color:var(--color-text)}.tournament-header-center{flex:1}.tournament-detail-name{font-size:1.3rem;font-weight:600;margin:0 0 6px;color:var(--color-text)}.tournament-header-meta{display:flex;gap:8px;flex-wrap:wrap}.tournament-status-badge-detail{padding:3px 8px;border-radius:4px;font-size:.75rem;font-weight:600}.tournament-status-badge-detail.live{background:var(--color-error);color:#fff}.tournament-status-badge-detail.upcoming{background:var(--color-info);color:#fff}.tournament-status-badge-detail.finished{background:var(--color-text-secondary);color:#fff}.tournament-detail-page .tournament-format-badge,.tournament-tc-badge,.tournament-duration-badge,.tournament-variant-badge,.tournament-round-badge{padding:6px 12px;background:var(--color-bg);color:var(--color-text-secondary);border-radius:4px;font-size:.75rem;min-height:28px;display:inline-flex;align-items:center}.tournament-timer-container{display:flex;flex-direction:column;align-items:center;padding:8px 16px;background:var(--color-error);border-radius:var(--radius-md);min-width:90px}.tournament-timer-label{font-size:.65rem;color:#fffc;text-transform:uppercase;letter-spacing:.5px}.tournament-timer-value{font-size:1.2rem;font-weight:700;color:#fff;font-variant-numeric:tabular-nums}.tournament-status-bar{display:flex;align-items:center;gap:16px;padding:12px 16px;background:var(--color-surface);border-radius:12px;margin-bottom:16px;border:1px solid var(--color-brown-light);min-height:48px}.tournament-status-item{display:flex;align-items:center;gap:6px}.tournament-status-icon{font-size:1rem}.tournament-status-text{font-size:.85rem;color:var(--color-text-secondary)}.tournament-status-action{margin-left:auto;flex-shrink:0;display:flex;gap:8px}.tournament-status-join-button,.tournament-status-leave-button,.tournament-status-play-button{padding:8px 16px;border:none;border-radius:8px;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;min-width:90px;text-align:center}.tournament-status-join-button{background:var(--color-forest-dark);color:#fff}.tournament-status-join-button:hover{background:var(--color-forest-medium)}.tournament-status-leave-button{background:none;color:var(--color-text-muted);border:1px solid var(--color-brown-light)}.tournament-status-leave-button:hover{color:var(--color-error);border-color:var(--color-error)}.tournament-status-play-button{background:var(--color-forest-dark);color:#fff}.tournament-status-play-button:hover{background:var(--color-forest-medium)}.tournament-swiss-notice{font-size:.8rem;color:var(--color-text-muted);font-style:italic}.tournament-status-sign-in-hint{margin-left:auto;font-size:.8rem;color:var(--color-text-muted);flex-shrink:0}.tournament-position-bar{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:linear-gradient(135deg,var(--color-forest-dark) 0%,var(--color-forest-medium) 100%);border-radius:var(--radius-lg);padding:14px 20px;margin-bottom:16px;box-shadow:var(--shadow-md);min-height:96px;transition:background .3s ease,box-shadow .3s ease,border-color .3s ease}.tournament-position-bar.not-joined{background:var(--color-beige-sand);box-shadow:none;border:1px solid var(--color-brown-light);min-height:96px;display:flex;align-items:center;justify-content:center}.tournament-position-cta{display:flex;align-items:center;justify-content:center;padding:8px 0;width:100%}.tournament-position-cta-text{font-size:.95rem;color:var(--color-text-secondary);font-weight:500;text-align:center}.tournament-position-bar.highlighted{animation:tournament-position-glow 2s ease-out}@keyframes tournament-position-glow{0%{box-shadow:0 0 20px #ffd70099,var(--shadow-md)}50%{box-shadow:0 0 30px #ffd70066,var(--shadow-md)}to{box-shadow:var(--shadow-md)}}.tournament-position-title{font-size:.75rem;color:#fffc;text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.tournament-position-stats{display:flex;align-items:center;gap:16px}.tournament-position-stat{display:flex;flex-direction:column;align-items:center}.tournament-position-stat.main{padding-right:16px}.tournament-position-divider{width:1px;height:36px;background:#ffffff4d}.tournament-position-rank{font-size:1.8rem;font-weight:700;color:#fff}.tournament-position-value{font-size:1.2rem;font-weight:600;color:#fff}.tournament-position-value.win-rate{color:var(--color-forest-light)}.tournament-position-label{font-size:.65rem;color:#ffffffb3;text-transform:uppercase;margin-top:2px}.tournament-detail-loading{text-align:center;padding:48px 16px;color:var(--color-text-secondary)}.tournament-detail-error{background:#e74c3c1a;color:var(--color-error);padding:12px;border-radius:12px;text-align:center;margin-bottom:16px;border:1px solid rgba(231,76,60,.3)}.tournament-detail-tabs{display:flex;gap:4px;background:var(--color-beige-sand);border-radius:16px;padding:4px;margin-bottom:16px;border:1px solid var(--color-brown-light)}.tournament-detail-tab{flex:1;padding:10px 16px;background:transparent;border:none;border-radius:12px;color:var(--color-brown-dark);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.tournament-detail-tab:hover{background:#ffffff80;color:var(--color-text)}.tournament-detail-tab.active{background:var(--color-forest-dark);color:#fff;box-shadow:0 4px 12px #2c5f2d4d}.tournament-detail-content{background:var(--color-surface);border-radius:16px;padding:16px;margin-bottom:16px;min-height:300px;border:1px solid var(--color-brown-light);box-shadow:0 2px 12px #0000001a;display:grid}.tournament-tab-panel{grid-row:1;grid-column:1;visibility:hidden;pointer-events:none}.tournament-tab-panel.active{visibility:visible;pointer-events:auto}.tournament-standings-empty{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--color-text-secondary);text-align:center}.tournament-standings-table{width:100%;border-collapse:collapse}.tournament-standings-table th{text-align:left;padding:10px 8px;border-bottom:2px solid var(--color-brown-light);color:var(--color-text-secondary);font-size:.75rem;text-transform:uppercase;font-weight:600}.tournament-standings-table td{padding:12px 8px;border-bottom:1px solid var(--color-brown-light);color:var(--color-text);font-size:.9rem}.tournament-standings-table tr{transition:background-color .15s;cursor:pointer}.tournament-standings-table tbody tr:hover{background:var(--color-bg)}.tournament-standings-table tr.top-1{background:#ffd70014}.tournament-standings-table tr.top-2{background:#c0c0c014}.tournament-standings-table tr.top-3{background:#cd7f3214}.tournament-rank-medal{font-size:1.1rem}.tournament-player-cell{display:flex;align-items:center;gap:6px}.tournament-player-name{font-weight:500}.tournament-player-rating{color:var(--color-text-secondary);font-size:.8rem}.tournament-points-col{font-weight:600;color:var(--color-forest-dark)}.tournament-games-col{color:var(--color-text-secondary)}.tournament-tiebreaker-col{color:var(--color-text-secondary);font-size:.85rem}.tournament-streak-col{color:var(--color-text-secondary)}.tournament-status-col{width:30px;text-align:center;font-size:.9rem}.tournament-status-playing{color:var(--color-error);font-size:.85rem}.tournament-status-ready{color:var(--color-success);font-size:.85rem}.tournament-games-tab{display:flex;flex-direction:column;min-height:200px}.tournament-games-empty{display:flex;align-items:center;justify-content:center;min-height:150px;color:var(--color-text-secondary);text-align:center}.tournament-games-list{display:flex;flex-direction:column;gap:6px}.tournament-game-entry{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--color-beige-warm);border-radius:10px;gap:12px}.tournament-game-left{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.tournament-game-round{font-size:.7rem;color:var(--color-text-muted);background:var(--color-bg);padding:2px 6px;border-radius:4px;flex-shrink:0}.tournament-game-players{display:flex;align-items:center;gap:4px;min-width:0;font-size:.85rem}.tournament-game-player-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tournament-game-vs{color:var(--color-text-muted);font-size:.75rem;flex-shrink:0}.tournament-game-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.tournament-game-result{padding:2px 8px;border-radius:4px;font-size:.8rem;font-weight:600;min-width:28px;text-align:center}.tournament-game-result.win-result{background:#2c5f2d26;color:var(--color-forest-dark)}.tournament-game-result.loss-result{background:#e74c3c1a;color:var(--color-error)}.tournament-game-result.draw-result{background:var(--color-beige-sand);color:var(--color-text-secondary)}.tournament-game-result.ongoing{background:var(--color-info);color:#fff}.tournament-game-moves{font-size:.75rem;color:var(--color-text-muted)}.tournament-info-tab{display:flex;flex-direction:column;gap:20px}.tournament-info-section{display:flex;flex-direction:column;gap:12px}.tournament-info-section-title{font-size:1rem;font-weight:600;color:var(--color-text);margin:0}.tournament-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tournament-info-detail{display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:var(--color-beige-warm);border-radius:10px}.tournament-info-detail-label{font-size:.75rem;color:var(--color-text-secondary);text-transform:uppercase}.tournament-info-detail-value{font-size:.9rem;font-weight:500;color:var(--color-text)}.tournament-info-rules{display:flex;flex-direction:column;gap:10px}.tournament-rule-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--color-beige-warm);border-radius:12px;font-size:.85rem;color:var(--color-text)}.tournament-rule-icon{font-size:1rem;width:24px;text-align:center}.tournament-info-description{font-size:.9rem;color:var(--color-text-secondary);line-height:1.5;padding:10px 12px;background:var(--color-beige-warm);border-radius:10px}.tournament-info-tiebreaker-card{background:linear-gradient(135deg,#3498db14,#3498db08);border:1px solid rgba(52,152,219,.25);border-radius:12px;padding:16px}.tournament-tiebreaker-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.tournament-tiebreaker-icon{font-size:1.4rem}.tournament-tiebreaker-label{font-size:1rem;font-weight:600;color:#3498db}@media (max-width: 600px){.tournament-detail-page{padding:12px}.tournament-detail-header{flex-wrap:wrap;gap:12px}.tournament-timer-container{width:100%;flex-direction:row;justify-content:center;gap:8px;order:-1}.tournament-timer-label{margin-right:4px}.tournament-position-stats{flex-wrap:wrap;gap:12px}.tournament-position-stat.main{padding-right:12px}.tournament-detail-tab{padding:8px 12px;font-size:.85rem}.tournament-status-bar{flex-wrap:wrap;gap:12px}.tournament-info-grid{grid-template-columns:1fr}.tournament-tiebreaker-col,.tournament-status-col{display:none}.tournament-game-entry{flex-direction:column;align-items:flex-start;gap:6px}.tournament-game-right{width:100%;justify-content:flex-start}}.tournament-lobby{max-width:700px;margin:0 auto;padding:16px;padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}.lobby-header-new{display:flex;align-items:center;gap:16px;background:var(--color-surface);border-radius:16px;padding:16px;margin-bottom:16px;box-shadow:0 2px 12px #0000001a;border:1px solid var(--color-brown-light)}.back-button-new{background:none;border:none;color:var(--color-text-secondary);font-size:1.5rem;cursor:pointer;padding:8px;border-radius:var(--radius-md);transition:all .2s}.back-button-new:hover{background:var(--color-bg);color:var(--color-text)}.header-center{flex:1}.tournament-name-new{font-size:1.3rem;font-weight:600;margin:0 0 6px;color:var(--color-text)}.header-meta{display:flex;gap:8px;flex-wrap:wrap}.tournament-format-badge{padding:6px 12px;background:var(--color-format-arena);color:#fff;border-radius:4px;font-size:.75rem;font-weight:600;min-height:28px;display:inline-flex;align-items:center}.tournament-format-badge.swiss{background:var(--color-format-swiss, #2E7D32)}.tc-badge,.duration-badge{padding:3px 8px;background:var(--color-bg);color:var(--color-text-secondary);border-radius:4px;font-size:.75rem}.timer-container{display:flex;flex-direction:column;align-items:center;padding:8px 16px;background:var(--color-error);border-radius:var(--radius-md);min-width:90px}.timer-label{font-size:.65rem;color:#fffc;text-transform:uppercase;letter-spacing:.5px}.timer-value{font-size:1.2rem;font-weight:700;color:#fff;font-variant-numeric:tabular-nums}.my-position-bar{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:linear-gradient(135deg,var(--color-forest-dark) 0%,var(--color-forest-medium) 100%);border-radius:var(--radius-lg);padding:14px 20px;margin-bottom:16px;box-shadow:var(--shadow-md);transition:box-shadow .3s}.my-position-bar.highlighted{animation:position-glow 2s ease-out}@keyframes position-glow{0%{box-shadow:0 0 20px #ffd70099,var(--shadow-md)}50%{box-shadow:0 0 30px #ffd70066,var(--shadow-md)}to{box-shadow:var(--shadow-md)}}.position-title{font-size:.75rem;color:#fffc;text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.position-stats{display:flex;align-items:center;gap:16px}.position-stat{display:flex;flex-direction:column;align-items:center}.position-stat.main{padding-right:16px}.position-divider{width:1px;height:36px;background:#ffffff4d}.position-rank{font-size:1.8rem;font-weight:700;color:#fff}.position-value{font-size:1.2rem;font-weight:600;color:#fff}.position-value.win-rate{color:var(--color-forest-light)}.position-label{font-size:.65rem;color:#ffffffb3;text-transform:uppercase;margin-top:2px}.pairing-status{background:var(--color-surface);border-radius:16px;padding:24px;text-align:center;margin-bottom:16px;min-height:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--color-brown-light)}.searching-animation{display:flex;justify-content:center;gap:8px;margin-bottom:12px}.dot{width:10px;height:10px;background:var(--color-format-arena);border-radius:50%;animation:bounce 1.4s infinite ease-in-out both}.dot:nth-child(1){animation-delay:-.32s}.dot:nth-child(2){animation-delay:-.16s}.dot:nth-child(3){animation-delay:0s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.status-text{color:var(--color-text);font-size:1rem;margin:0}.status-text.paused{color:var(--color-text-secondary)}.lobby-error{background:#e74c3c1a;color:var(--color-error);padding:12px;border-radius:12px;text-align:center;margin-bottom:16px;border:1px solid rgba(231,76,60,.3)}.lobby-tabs{display:flex;gap:4px;background:var(--color-beige-sand);border-radius:16px;padding:4px;margin-bottom:16px;border:1px solid var(--color-brown-light);overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}.lobby-tab{flex:1;padding:10px 16px;background:transparent;border:none;border-radius:12px;color:var(--color-brown-dark);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s;scroll-snap-align:center;white-space:nowrap}.lobby-tab:hover{background:#ffffff80;color:var(--color-text)}.lobby-tab.active{background:var(--color-forest-dark);color:#fff;box-shadow:0 4px 12px #2c5f2d4d}.lobby-content{background:var(--color-surface);border-radius:16px;padding:16px;margin-bottom:16px;min-height:300px;border:1px solid var(--color-brown-light);box-shadow:0 2px 12px #0000001a}.lobby-standings{overflow-x:auto}.standings-table{width:100%;border-collapse:collapse}.standings-table th{text-align:left;padding:10px 8px;border-bottom:2px solid var(--color-brown-light);color:var(--color-text-secondary);font-size:.75rem;text-transform:uppercase;font-weight:600}.standings-table td{padding:12px 8px;border-bottom:1px solid var(--color-brown-light);color:var(--color-text);font-size:.9rem}.standings-table tr{cursor:pointer;transition:background-color .15s}.standings-table tbody tr:hover{background:var(--color-bg)}.standings-table tr.top-1{background:#ffd70014}.standings-table tr.top-2{background:#c0c0c014}.standings-table tr.top-3{background:#cd7f3214}.rank-medal{font-size:1.1rem}.player-cell{display:flex;align-items:center;gap:6px}.player-name{font-weight:500}.player-rating{color:var(--color-text-secondary);font-size:.8rem}.streak-badge{font-size:.9rem}.points{font-weight:600;color:var(--color-forest-dark)}.games{color:var(--color-text-secondary)}.status-col{width:30px;text-align:center}.status-indicator{font-size:.9rem}.more-players{text-align:center;color:var(--color-text-secondary);font-size:.85rem;margin:16px 0 0;padding-top:12px;border-top:1px solid var(--color-brown-light)}.lobby-games{display:flex;flex-direction:column;min-height:200px}.games-filter-bar{display:flex;gap:8px;margin-bottom:12px}.games-filter-btn{padding:6px 14px;background:transparent;border:1px solid var(--color-brown-light);border-radius:8px;color:var(--color-text-secondary);font-size:.85rem;cursor:pointer;transition:all .2s}.games-filter-btn.active{background:var(--color-forest-dark);color:#fff;border-color:var(--color-forest-dark)}.games-filter-btn:hover:not(.active){background:var(--color-beige-warm)}.games-empty{display:flex;align-items:center;justify-content:center;min-height:150px;color:var(--color-text-secondary);text-align:center}.games-list{display:flex;flex-direction:column;gap:6px}.game-entry{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--color-beige-warm);border-radius:10px;gap:12px}.game-players{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.game-player{font-size:.85rem;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-player.winner{font-weight:600}.game-player-rating{color:var(--color-text-secondary);font-size:.75rem;margin-left:2px}.game-vs{color:var(--color-text-muted);font-size:.75rem;flex-shrink:0}.game-meta{display:flex;align-items:center;gap:8px;flex-shrink:0}.game-result-badge{padding:2px 6px;border-radius:4px;font-size:.75rem;font-weight:600}.game-result-badge.white-win{background:var(--color-beige-cream);color:var(--color-brown-dark)}.game-result-badge.black-win{background:var(--color-brown-dark);color:var(--color-beige-cream)}.game-result-badge.draw-result{background:var(--color-beige-sand);color:var(--color-text-secondary)}.game-result-badge.ongoing{background:var(--color-info);color:#fff}.game-moves,.game-time-ago{font-size:.75rem;color:var(--color-text-muted)}.participants-sort-bar{display:flex;gap:6px;margin-bottom:12px}.sort-btn{padding:6px 12px;background:transparent;border:1px solid var(--color-brown-light);border-radius:8px;color:var(--color-text-secondary);font-size:.8rem;cursor:pointer;transition:all .2s}.sort-btn.active{background:var(--color-forest-dark);color:#fff;border-color:var(--color-forest-dark)}.sort-btn:hover:not(.active){background:var(--color-beige-warm)}.participants-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}.participant-card{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;background:var(--color-beige-warm);border-radius:12px;cursor:pointer;transition:all .2s}.participant-card:hover{background:var(--color-beige-sand)}.participant-left{display:flex;align-items:center;gap:8px;min-width:0}.participant-status-dot{font-size:.85rem;flex-shrink:0}.participant-info{display:flex;align-items:center;gap:6px;min-width:0}.participant-name{font-weight:500;color:var(--color-text);font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.participant-rating{color:var(--color-text-secondary);font-size:.8rem;flex-shrink:0}.participant-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.participant-record{font-size:.75rem;color:var(--color-text-muted)}.participant-points{font-size:.85rem;font-weight:600;color:var(--color-forest-dark)}.participant-streak{font-size:.85rem}.rules-accordion{background:var(--color-surface);border-radius:16px;margin-bottom:16px;overflow:hidden;border:1px solid var(--color-brown-light)}.rules-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:transparent;border:none;color:var(--color-forest-dark);font-size:.95rem;font-weight:600;cursor:pointer;transition:background .2s;font-family:Georgia,serif}.rules-toggle:hover{background:var(--color-beige-warm)}.rules-chevron{color:var(--color-text-secondary);font-size:.8rem}.rules-content{padding:0 16px 16px;display:flex;flex-direction:column;gap:10px}.rule-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--color-beige-warm);border-radius:12px;font-size:.85rem;color:var(--color-text)}.rule-icon{font-size:1rem;width:24px;text-align:center}.bottom-action-bar{position:fixed;bottom:0;left:0;right:0;display:flex;gap:12px;padding:16px;padding-bottom:max(16px,env(safe-area-inset-bottom));background:var(--color-surface);border-top:1px solid var(--color-brown-light);box-shadow:0 -4px 12px #0000001a;z-index:20}.action-button{flex:1;padding:14px 20px;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;min-height:48px}.action-button.pause{background:var(--color-beige-sand);color:var(--color-brown-dark);border:1px solid var(--color-brown-light)}.action-button.pause:hover{background:var(--color-beige-warm)}.action-button.resume{background:var(--color-forest-dark);color:#fff;box-shadow:0 4px 12px #2c5f2d4d}.action-button.resume:hover{background:var(--color-forest-medium)}.action-button.leave{background:transparent;border:1px solid var(--color-brown-light);color:var(--color-text-secondary)}.action-button.leave:hover{border-color:var(--color-error);color:var(--color-error)}.back-button{background:none;border:none;color:var(--color-info);font-size:1rem;cursor:pointer;padding:8px 0;margin-bottom:10px}.back-button:hover{color:var(--color-primary)}@media (max-width: 600px){.tournament-lobby{padding:12px;padding-bottom:calc(110px + env(safe-area-inset-bottom,0px))}.lobby-header-new{flex-wrap:wrap;gap:12px}.timer-container{width:100%;flex-direction:row;justify-content:center;gap:8px;order:-1}.timer-label{margin-right:4px}.position-stats{flex-wrap:wrap;gap:12px}.position-stat.main{padding-right:12px}.lobby-tab{padding:8px 12px;font-size:.85rem}.participants-grid{grid-template-columns:1fr}.bottom-action-bar{flex-direction:column;gap:8px}.action-button{padding:12px 16px}.standings-table .buchholz,.standings-table .sb,.standings-table .status-col{display:none}.game-entry{flex-direction:column;align-items:flex-start;gap:6px}.game-meta{width:100%;justify-content:flex-start}}.game-end-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f5f0e6f2;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:game-end-fadeIn .3s ease-out;padding:16px}@keyframes game-end-fadeIn{0%{opacity:0}to{opacity:1}}.game-end-card{width:360px;max-width:calc(100vw - 32px);display:flex;flex-direction:column;gap:16px;animation:game-end-slideUp .4s cubic-bezier(.34,1.56,.64,1)}@keyframes game-end-slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.game-end-result{background:var(--color-surface);border-radius:16px;padding:24px;text-align:center;border:1px solid var(--color-brown-light);box-shadow:0 4px 16px #0000001a}.game-end-result.win{border-left:4px solid #27AE60}.game-end-result.loss{border-left:4px solid #E74C3C}.game-end-result.draw{border-left:4px solid #636E72}.game-end-result-icon{font-size:2rem;margin-bottom:4px}.game-end-result-text{font-size:1.4rem;font-weight:700;margin:0 0 8px;font-family:Georgia,serif}.game-end-result.win .game-end-result-text{color:#27ae60}.game-end-result.loss .game-end-result-text{color:#c0392b}.game-end-result.draw .game-end-result-text{color:#636e72}.game-end-opponent{font-size:.9rem;color:var(--color-text-secondary);margin:0}@media (max-width: 480px){.game-end-card{width:calc(100vw - 32px)}.game-end-result{padding:20px}}.tournament-game{display:flex;flex-direction:column;align-items:center;padding:20px;max-width:800px;margin:0 auto}.tournament-game-header{width:100%;max-width:500px;margin-bottom:16px}.tournament-info-bar{display:flex;justify-content:space-between;align-items:center;background:var(--color-surface);padding:8px 12px;border-radius:8px;margin-bottom:12px}.tournament-name{color:var(--color-text);font-weight:500}.my-score{color:var(--color-warning);font-weight:600}.streak{margin-left:4px}.players-bar{display:flex;justify-content:center;align-items:center;gap:16px;margin-bottom:12px}.player{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--color-surface);border-radius:8px}.player.you{background:var(--color-success)}.color-badge{width:12px;height:12px;border-radius:50%}.color-badge.white{background:var(--color-beige-cream)}.color-badge.black{background:var(--color-brown-dark);border:2px solid var(--color-beige-cream)}.player .name{color:var(--color-text);font-weight:500}.player .rating{color:var(--color-text-secondary);font-size:.85rem}.vs{color:var(--color-text-secondary);font-size:.9rem}.turn-indicator{text-align:center;padding:12px;background:var(--color-surface);border-radius:8px}.turn-text{font-size:1.2rem;color:var(--color-text)}.turn-text.win{color:var(--color-success)}.turn-text.draw{color:var(--color-warning)}.turn-text.lose{color:var(--color-error)}.points-earned{margin-left:12px;padding:4px 8px;background:var(--color-warning);color:var(--color-neutral-900);border-radius:4px;font-weight:600;font-size:1rem}.game-area{width:100%;display:flex;flex-direction:row;gap:16px;align-items:center;justify-content:center}@media (max-width: 768px){.game-area{flex-direction:column}}.tournament-game-actions{display:flex;gap:16px;align-items:center;margin-top:16px;min-height:50px}.resign-button{padding:12px 20px;background:var(--color-surface);color:var(--color-text-secondary);border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .2s}.resign-button:hover{background:var(--color-error);color:#fff}.game-over-notice{color:var(--color-text-secondary);font-size:1rem;animation:fade-pulse 1s infinite}@keyframes fade-pulse{0%,to{opacity:1}50%{opacity:.5}}.tge-points-container{text-align:center;margin-bottom:12px}.tge-points-big{font-size:3rem;font-weight:800;display:inline-block;animation:tge-points-pop .4s cubic-bezier(.34,1.56,.64,1) .2s both}@keyframes tge-points-pop{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.tge-points-big.win{color:var(--color-success)}.tge-points-big.draw{color:var(--color-warning)}.tge-points-big.lose{color:var(--color-text-muted)}.tge-streak-bonus{font-size:1rem;color:var(--color-warning);margin-bottom:8px;text-align:center}.tge-rank{font-size:.9rem;color:var(--color-text-secondary);margin-bottom:8px;text-align:center}.tge-rating-change{display:flex;align-items:center;justify-content:center;gap:6px;font-size:.95rem;animation:tge-fade-in .4s ease-out .3s both}@keyframes tge-fade-in{0%{opacity:0}to{opacity:1}}.tge-rating-old{color:var(--color-text-secondary)}.tge-rating-arrow{color:var(--color-text-muted)}.tge-rating-new{color:var(--color-text);font-weight:600}.tge-rating-delta{font-weight:700}.tge-rating-delta.positive{color:var(--color-success)}.tge-rating-delta.negative{color:var(--color-error)}.tge-countdown{font-size:.85rem;color:var(--color-text-muted);text-align:center}.tge-continue-btn{width:100%;padding:14px 24px;background:var(--color-forest-dark);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s;min-height:48px}.tge-continue-btn:hover{background:var(--color-forest-medium)}@media (max-width: 600px){.tournament-game{padding:15px}.players-bar{flex-direction:column;gap:8px}.vs{display:none}.tournament-game-actions{flex-direction:column;gap:12px}.resign-button{width:100%;min-height:44px}}:root{--arena-boost-color: #F39C12;--arena-boost-bg: rgba(243, 156, 18, .15);--arena-boost-border: rgba(243, 156, 18, .25);--arena-streak-color: #E74C3C;--arena-win-color: #27AE60;--arena-loss-color: #E74C3C;--arena-draw-color: #636E72;--arena-variant-international: #2C5F2D;--arena-variant-italian: #E74C3C;--arena-medal-gold: #FFD700;--arena-medal-silver: #C0C0C0;--arena-medal-bronze: #CD7F32;--arena-max-width: 900px;--arena-detail-max-width: 700px;--arena-card-radius: 16px;--arena-overlay-z: 100}@keyframes arena-rank-slide-up{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes arena-rank-slide-down{0%{transform:translateY(-12px);opacity:0}to{transform:translateY(0);opacity:1}}.arena-animate-rank-up{animation:arena-rank-slide-up .5s ease-out}.arena-animate-rank-down{animation:arena-rank-slide-down .5s ease-out}@keyframes arena-count-up{0%{opacity:0;transform:translateY(8px) scale(.8)}60%{opacity:1;transform:translateY(-2px) scale(1.05)}to{opacity:1;transform:translateY(0) scale(1)}}.arena-animate-count{animation:arena-count-up .5s ease-out}.arena-animate-count-delay-1{animation-delay:.1s;animation-fill-mode:both}.arena-animate-count-delay-2{animation-delay:.2s;animation-fill-mode:both}.arena-animate-count-delay-3{animation-delay:.3s;animation-fill-mode:both}.arena-animate-count-delay-4{animation-delay:.4s;animation-fill-mode:both}@keyframes arena-streak-grow{0%{transform:scale(.5);opacity:0}50%{transform:scale(1.3)}to{transform:scale(1);opacity:1}}@keyframes arena-streak-shrink{0%{transform:scale(1);opacity:1}to{transform:scale(0);opacity:0}}@keyframes arena-streak-flicker{0%,to{transform:scale(1) rotate(0)}25%{transform:scale(1.05) rotate(-3deg)}50%{transform:scale(.95) rotate(2deg)}75%{transform:scale(1.08) rotate(-1deg)}}.arena-animate-streak-grow{animation:arena-streak-grow .3s ease-out}.arena-animate-streak-shrink{animation:arena-streak-shrink .3s ease-in forwards}.arena-animate-streak-active{display:inline-block;animation:arena-streak-flicker 1.5s ease-in-out infinite}@keyframes arena-match-found-pulse{0%{transform:scale(.9);opacity:0;box-shadow:0 0 #2c5f2d66}50%{transform:scale(1.02);box-shadow:0 0 0 15px #2c5f2d00}to{transform:scale(1);opacity:1;box-shadow:0 16px 48px #0000004d}}.arena-animate-match-found{animation:arena-match-found-pulse .4s cubic-bezier(.34,1.56,.64,1)}@keyframes arena-podium-enter{0%{transform:translateY(40px) scale(.8);opacity:0}60%{transform:translateY(-5px) scale(1.02)}to{transform:translateY(0) scale(1);opacity:1}}.arena-animate-podium-1st{animation:arena-podium-enter .7s cubic-bezier(.34,1.56,.64,1) .6s both}.arena-animate-podium-2nd{animation:arena-podium-enter .6s cubic-bezier(.34,1.56,.64,1) .8s both}.arena-animate-podium-3rd{animation:arena-podium-enter .6s cubic-bezier(.34,1.56,.64,1) 1s both}@keyframes arena-live-pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes arena-fade-in{0%{opacity:0}to{opacity:1}}@keyframes arena-slide-up{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}.arena-card[data-variant=international]{border-left:4px solid var(--arena-variant-international)}.arena-card[data-variant=italian]{border-left:4px solid var(--arena-variant-italian)}.arena-tabular-nums{font-variant-numeric:tabular-nums}@media (pointer: coarse){.arena-action-button,.arena-tab,.arena-detail-tab,.arena-games-filter,.arena-searching-pause-btn,.arena-match-start-btn,.arena-game-end-btn,.arena-game-resign-btn,.arena-boost-btn{min-height:44px}}@supports (padding-bottom: env(safe-area-inset-bottom)){.arena-bottom-action-bar{padding-bottom:max(16px,env(safe-area-inset-bottom))}.arena-game-actions{padding-bottom:env(safe-area-inset-bottom,8px)}}@media (prefers-reduced-motion: reduce){.arena-animate-rank-up,.arena-animate-rank-down,.arena-animate-count,.arena-animate-streak-grow,.arena-animate-streak-shrink,.arena-animate-streak-active,.arena-animate-match-found,.arena-animate-podium-1st,.arena-animate-podium-2nd,.arena-animate-podium-3rd,.arena-boost-btn,.arena-match-countdown-number,.arena-podium-entry,.arena-final-trophy,.arena-final-rank-value,.arena-final-hero{animation-duration:.01ms!important;animation-iteration-count:1!important}}.arena-list-page{max-width:900px;margin:0 auto;padding:20px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.arena-status-tabs{display:flex;gap:4px;margin-bottom:16px;background:var(--color-beige-sand);border-radius:12px;padding:4px}.arena-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;background:transparent;border:none;border-radius:10px;font-size:.9rem;font-weight:500;color:var(--color-brown-dark);cursor:pointer;transition:all .2s}.arena-tab:hover{background:#fff6}.arena-tab.active{background:var(--color-forest-dark);color:#fff;box-shadow:0 2px 8px #2c5f2d4d}.live-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#e74c3c;animation:blink-live 1.5s ease-in-out infinite}.live-dot.inactive{background:#999;animation:none}@keyframes blink-live{0%,to{opacity:1}50%{opacity:.2}}.arena-tab-count{background:#ffffff4d;font-size:.75rem;font-weight:600;padding:2px 7px;border-radius:8px}.arena-tab.active .arena-tab-count{background:#ffffff40}.arena-filters-container{display:flex;flex-direction:column;gap:12px;margin-bottom:20px;padding:12px 16px;background:var(--color-beige-sand);border-radius:12px;border:1px solid var(--color-brown-light)}.arena-filter-group{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.arena-filter-label{font-size:.85rem;font-weight:600;color:var(--color-text-secondary);min-width:70px}.arena-filter-buttons{display:flex;gap:8px;flex-wrap:wrap}.arena-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.arena-card{background:var(--color-surface);border-radius:16px;padding:16px;cursor:pointer;transition:all .2s;border:1px solid var(--color-brown-light);box-shadow:0 2px 12px #0000001a}.arena-card:hover{transform:translateY(-2px);box-shadow:0 4px 20px #00000026}.arena-card:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.arena-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;flex-wrap:wrap;gap:8px}.arena-badges{display:flex;gap:6px;flex-wrap:wrap}.arena-status-badge{padding:4px 8px;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.arena-status-badge.arena-status-live{background:var(--color-error);color:#fff;animation:pulse-live 2s infinite}.arena-status-badge.arena-status-upcoming{background:var(--color-info);color:#fff}.arena-status-badge.arena-status-finished{background:var(--color-text-muted);color:#fff}.arena-status-badge.arena-status-default{background:var(--color-neutral-600);color:#fff}@keyframes pulse-live{0%,to{opacity:1}50%{opacity:.7}}.arena-registered-badge{padding:4px 8px;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;background:var(--color-success);color:#fff}.arena-meta-badges{display:flex;gap:6px}.arena-rated-badge{padding:3px 8px;border-radius:4px;font-size:.7rem;background:var(--color-brown-medium);color:#fff;font-weight:500}.arena-name{font-size:1.15rem;margin:0 0 14px;color:var(--color-text);font-weight:600}.arena-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px;padding:10px;background:var(--color-beige-warm);border-radius:12px}.arena-info-item{display:flex;flex-direction:column;gap:2px}.arena-info-label{font-size:.7rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.3px}.arena-info-value{font-size:.85rem;color:var(--color-text);font-weight:500}.arena-progress-container{display:flex;align-items:center;gap:10px;margin-bottom:12px}.arena-progress-bar{flex:1;height:6px;background:var(--color-bg);border-radius:3px;overflow:hidden}.arena-progress-fill{height:100%;background:linear-gradient(90deg,#2C5F2D,var(--color-info));border-radius:3px;transition:width .3s ease}.arena-progress-text{font-size:.75rem;color:var(--color-text-secondary);font-weight:500;min-width:35px}.arena-footer{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid var(--color-brown-light)}.arena-players,.arena-starts,.arena-games,.arena-time-remaining{font-size:.85rem;color:var(--color-text-secondary)}.arena-starts{color:var(--color-info);font-weight:500}.arena-starts.pulsing{color:var(--color-error);animation:start-pulse 1s infinite}.arena-time-remaining{color:var(--color-info);font-weight:500}.arena-time-remaining.pulsing{color:var(--color-error);font-weight:600;animation:start-pulse 1s infinite}@keyframes start-pulse{0%,to{opacity:1}50%{opacity:.5}}.arena-loading,.arena-error,.arena-empty{text-align:center;padding:40px;color:var(--color-text-secondary);font-size:1.1rem}.arena-error{color:var(--color-error)}.arena-hero-banner{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--color-forest-dark) 0%,var(--color-forest-medium) 60%,#4CAF50 100%);color:#fff;border-radius:16px;padding:24px 28px;margin-bottom:20px;box-shadow:0 4px 24px #2c5f2d4d;display:flex;align-items:center;gap:16px;min-height:130px}.arena-hero-banner-icon{position:absolute;top:50%;right:20px;transform:translateY(-50%);font-size:5rem;opacity:.22;pointer-events:none;line-height:1}.arena-hero-banner-content{flex:1;min-width:0}.arena-hero-banner-title{font-size:1.8rem;font-family:Georgia,serif;font-weight:700;margin:0 0 6px;color:#fff}.arena-hero-banner-subtitle{font-size:.95rem;margin:0;color:#fffc;line-height:1.4}@media (max-width: 768px){.arena-list-page{padding:15px}.arena-grid{grid-template-columns:1fr}.arena-info-grid{grid-template-columns:1fr;gap:6px}.arena-info-item{flex-direction:row;justify-content:space-between;align-items:center}.arena-filter-group{flex-direction:column;align-items:flex-start;gap:8px}.arena-filter-label{min-width:auto}.arena-tab{font-size:.8rem;padding:10px 8px}}@media (max-width: 480px){.arena-filters-container{padding:10px 12px}.arena-card{padding:12px}.arena-hero-banner{padding:18px 16px;min-height:100px}.arena-hero-banner-title{font-size:1.4rem}.arena-hero-banner-subtitle{font-size:.85rem}.arena-hero-banner-icon{font-size:3.5rem;right:12px}.arena-card-header{flex-direction:column}.arena-footer{flex-direction:column;gap:8px;align-items:flex-start}.arena-tab{min-height:44px}.filter-chip{min-height:44px;display:flex;align-items:center}}.arena-standings-component{overflow-x:auto}.arena-rank-cell{display:flex;align-items:center;gap:4px}.arena-rank-number{font-variant-numeric:tabular-nums}.arena-rank-delta{font-size:.65rem;font-weight:600;animation:arena-rank-delta-fade 2s ease-out forwards}.arena-rank-delta.up{color:var(--color-forest-dark)}.arena-rank-delta.down{color:var(--color-error)}@keyframes arena-rank-delta-fade{0%{opacity:1;transform:translateY(0)}70%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}.arena-standings-table tbody tr.rank-up{animation:arena-row-rank-up .6s ease-out}.arena-standings-table tbody tr.rank-down{animation:arena-row-rank-down .6s ease-out}@keyframes arena-row-rank-up{0%{background-color:#2c5f2d33}to{background-color:transparent}}@keyframes arena-row-rank-down{0%{background-color:#e74c3c1a}to{background-color:transparent}}.arena-standings-table tbody tr.my-row{position:relative}.arena-standings-table tbody tr.my-row:after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--color-forest-dark);border-radius:3px 0 0 3px}.arena-detail-page{max-width:700px;margin:0 auto;padding:16px}.arena-detail-page.has-bottom-bar{padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}.arena-detail-header{display:flex;align-items:center;gap:16px;background:var(--color-surface);border-radius:16px;padding:16px;margin-bottom:16px;box-shadow:0 2px 12px #0000001a;border:1px solid var(--color-brown-light)}.arena-back-button{background:none;border:none;color:var(--color-text-secondary);font-size:1.5rem;cursor:pointer;padding:8px;border-radius:var(--radius-md);transition:all .2s}.arena-back-button:hover{background:var(--color-bg);color:var(--color-text)}.arena-header-center{flex:1}.arena-detail-name{font-size:1.3rem;font-weight:600;margin:0 0 6px;color:var(--color-text)}.arena-header-meta{display:flex;gap:8px;flex-wrap:wrap}.arena-status-badge-detail{padding:3px 8px;border-radius:4px;font-size:.75rem;font-weight:600}.arena-status-badge-detail.live{background:var(--color-error);color:#fff}.arena-status-badge-detail.upcoming{background:var(--color-info);color:#fff}.arena-status-badge-detail.finished{background:var(--color-text-secondary);color:#fff}.arena-tc-badge,.arena-duration-badge,.arena-variant-badge{padding:3px 8px;background:var(--color-bg);color:var(--color-text-secondary);border-radius:4px;font-size:.75rem}.arena-timer-container{display:flex;flex-direction:column;align-items:center;padding:8px 16px;background:var(--color-error);border-radius:var(--radius-md);min-width:90px}.arena-timer-label{font-size:.65rem;color:#fffc;text-transform:uppercase;letter-spacing:.5px}.arena-timer-value{font-size:1.2rem;font-weight:700;color:#fff;font-variant-numeric:tabular-nums}.arena-status-bar{display:flex;align-items:center;gap:16px;padding:12px 16px;background:var(--color-surface);border-radius:12px;margin-bottom:16px;border:1px solid var(--color-brown-light);min-height:48px}.arena-status-item{display:flex;align-items:center;gap:6px}.arena-status-icon{font-size:1rem}.arena-status-text{font-size:.85rem;color:var(--color-text-secondary)}.arena-status-action{margin-left:auto;flex-shrink:0;display:flex;gap:8px}.arena-status-join-button,.arena-status-leave-link{padding:8px 16px;border:none;border-radius:8px;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.arena-status-join-button{background:var(--color-forest-dark);color:#fff}.arena-status-join-button:hover{background:var(--color-forest-medium)}.arena-status-leave-link{background:none;color:var(--color-text-muted);border:1px solid var(--color-brown-light)}.arena-status-leave-link:hover{color:var(--color-error);border-color:var(--color-error)}.arena-status-sign-in-hint{margin-left:auto;font-size:.8rem;color:var(--color-text-muted);flex-shrink:0}.arena-position-bar{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:linear-gradient(135deg,var(--color-forest-dark) 0%,var(--color-forest-medium) 100%);border-radius:var(--radius-lg);padding:14px 20px;margin-bottom:16px;box-shadow:var(--shadow-md);min-height:96px;transition:background .3s ease,box-shadow .3s ease,border-color .3s ease}.arena-position-bar.not-joined{background:var(--color-beige-sand);box-shadow:none;border:1px solid var(--color-brown-light);min-height:96px;display:flex;align-items:center;justify-content:center}.arena-position-cta{display:flex;align-items:center;justify-content:center;padding:8px 0;width:100%}.arena-position-cta-text{font-size:.95rem;color:var(--color-text-secondary);font-weight:500;text-align:center}.arena-position-bar.highlighted{animation:arena-position-glow 2s ease-out}@keyframes arena-position-glow{0%{box-shadow:0 0 20px #ffd70099,var(--shadow-md)}50%{box-shadow:0 0 30px #ffd70066,var(--shadow-md)}to{box-shadow:var(--shadow-md)}}.arena-position-title{font-size:.75rem;color:#fffc;text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.arena-position-stats{display:flex;align-items:center;gap:16px}.arena-position-stat{display:flex;flex-direction:column;align-items:center}.arena-position-stat.main{padding-right:16px}.arena-position-divider{width:1px;height:36px;background:#ffffff4d}.arena-position-rank{font-size:1.8rem;font-weight:700;color:#fff}.arena-position-value{font-size:1.2rem;font-weight:600;color:#fff}.arena-position-value.win-rate{color:var(--color-forest-light)}.arena-position-label{font-size:.65rem;color:#ffffffb3;text-transform:uppercase;margin-top:2px}.arena-position-pairing{display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.2)}.arena-position-pairing-status{display:flex;align-items:center;gap:10px}.arena-position-dots{display:flex;gap:5px}.arena-dot{width:8px;height:8px;background:#ffffffd9;border-radius:50%;animation:arena-bounce 1.4s infinite ease-in-out both}.arena-dot:nth-child(1){animation-delay:-.32s}.arena-dot:nth-child(2){animation-delay:-.16s}.arena-dot:nth-child(3){animation-delay:0s}@keyframes arena-bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.arena-position-pairing-text{font-size:.85rem;color:#ffffffd9;font-weight:500}.arena-position-pairing-text.paused{color:#fff9}.arena-position-pause-btn,.arena-position-resume-btn{padding:6px 18px;border:1px solid rgba(255,255,255,.35);border-radius:8px;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s;min-height:36px}.arena-position-pause-btn{background:#ffffff1a;color:#ffffffe6}.arena-position-pause-btn:hover{background:#fff3}.arena-position-resume-btn{background:#ffffffe6;color:var(--color-forest-dark);border-color:transparent}.arena-position-resume-btn:hover{background:#fff}.arena-detail-loading{text-align:center;padding:48px 16px;color:var(--color-text-secondary)}.arena-detail-error{background:#e74c3c1a;color:var(--color-error);padding:12px;border-radius:12px;text-align:center;margin-bottom:16px;border:1px solid rgba(231,76,60,.3)}.arena-detail-tabs{display:flex;gap:4px;background:var(--color-beige-sand);border-radius:16px;padding:4px;margin-bottom:16px;border:1px solid var(--color-brown-light)}.arena-detail-tab{flex:1;padding:10px 16px;background:transparent;border:none;border-radius:12px;color:var(--color-brown-dark);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.arena-detail-tab:hover{background:#ffffff80;color:var(--color-text)}.arena-detail-tab.active{background:var(--color-forest-dark);color:#fff;box-shadow:0 4px 12px #2c5f2d4d}.arena-detail-content{background:var(--color-surface);border-radius:16px;padding:16px;margin-bottom:16px;min-height:300px;border:1px solid var(--color-brown-light);box-shadow:0 2px 12px #0000001a;display:grid}.arena-tab-panel{grid-row:1;grid-column:1;visibility:hidden;pointer-events:none}.arena-tab-panel.active{visibility:visible;pointer-events:auto}.arena-standings-tab{overflow-x:auto}.arena-standings-empty{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--color-text-secondary);text-align:center}.arena-standings-table{width:100%;border-collapse:collapse}.arena-standings-table th{text-align:left;padding:10px 8px;border-bottom:2px solid var(--color-brown-light);color:var(--color-text-secondary);font-size:.75rem;text-transform:uppercase;font-weight:600}.arena-standings-table td{padding:12px 8px;border-bottom:1px solid var(--color-brown-light);color:var(--color-text);font-size:.9rem}.arena-standings-table tr{transition:background-color .15s}.arena-standings-table tbody tr:hover{background:var(--color-bg)}.arena-standings-table tr.top-1{background:#ffd70014}.arena-standings-table tr.top-2{background:#c0c0c014}.arena-standings-table tr.top-3{background:#cd7f3214}.arena-standings-table tr.my-row{background:#2c5f2d1a;font-weight:500}.arena-rank-medal{font-size:1.1rem}.arena-player-cell{display:flex;align-items:center;gap:6px}.arena-player-name{font-weight:500}.arena-player-rating{color:var(--color-text-secondary);font-size:.8rem}.arena-streak-badge{font-size:.9rem}.arena-points-col{font-weight:600;color:var(--color-forest-dark)}.arena-games-col,.arena-streak-col{color:var(--color-text-secondary)}.arena-status-col{width:30px;text-align:center;font-size:.9rem}.arena-more-players{text-align:center;color:var(--color-text-secondary);font-size:.85rem;margin:16px 0 0;padding-top:12px;border-top:1px solid var(--color-brown-light)}.arena-games-tab{display:flex;flex-direction:column;min-height:200px}.arena-games-filter-bar{display:flex;gap:8px;margin-bottom:12px}.arena-games-filter{padding:6px 14px;background:transparent;border:1px solid var(--color-brown-light);border-radius:8px;color:var(--color-text-secondary);font-size:.85rem;cursor:pointer;transition:all .2s}.arena-games-filter.active{background:var(--color-forest-dark);color:#fff;border-color:var(--color-forest-dark)}.arena-games-filter:hover:not(.active){background:var(--color-beige-warm)}.arena-games-empty{display:flex;align-items:center;justify-content:center;min-height:150px;color:var(--color-text-secondary);text-align:center}.arena-games-list{display:flex;flex-direction:column;gap:6px}.arena-game-entry{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--color-beige-warm);border-radius:10px;gap:12px}.arena-game-left{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.arena-game-color-indicator{flex-shrink:0}.color-dot{display:inline-block;width:12px;height:12px;border-radius:50%;border:1px solid var(--color-brown-light)}.color-dot.white{background:#fff}.color-dot.black{background:#333}.arena-game-opponent{display:flex;align-items:center;gap:4px;min-width:0}.arena-game-opponent-name{font-weight:500;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.arena-game-opponent-rating{font-size:.75rem;color:var(--color-text-secondary);flex-shrink:0}.arena-game-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.arena-game-result{padding:2px 8px;border-radius:4px;font-size:.8rem;font-weight:600;min-width:28px;text-align:center}.arena-game-result.win-result{background:#2c5f2d26;color:var(--color-forest-dark)}.arena-game-result.loss-result{background:#e74c3c1a;color:var(--color-error)}.arena-game-result.draw-result{background:var(--color-beige-sand);color:var(--color-text-secondary)}.arena-game-result.ongoing{background:var(--color-info);color:#fff}.arena-game-boost-badge,.arena-game-streak-badge{font-size:.85rem}.arena-game-moves,.arena-game-time{font-size:.75rem;color:var(--color-text-muted)}.arena-game-entry.clickable{cursor:pointer;transition:background .15s}.arena-game-entry.clickable:hover{background:var(--color-beige-sand)}.arena-game-analyze{font-size:.85rem;opacity:.5;transition:opacity .15s}.arena-game-entry.clickable:hover .arena-game-analyze{opacity:1}.arena-info-tab{display:flex;flex-direction:column;gap:20px}.arena-info-section{display:flex;flex-direction:column;gap:12px}.arena-info-section-title{font-size:1rem;font-weight:600;color:var(--color-text);margin:0}.arena-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.arena-info-detail{display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:var(--color-beige-warm);border-radius:10px}.arena-info-detail-label{font-size:.75rem;color:var(--color-text-secondary);text-transform:uppercase}.arena-info-detail-value{font-size:.9rem;font-weight:500;color:var(--color-text)}.arena-info-rules{display:flex;flex-direction:column;gap:10px}.arena-rule-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--color-beige-warm);border-radius:12px;font-size:.85rem;color:var(--color-text)}.arena-rule-icon{font-size:1rem;width:24px;text-align:center}.arena-info-boost-card{background:linear-gradient(135deg,#f39c1214,#f39c1208);border:1px solid rgba(243,156,18,.25);border-radius:12px;padding:16px}.arena-boost-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.arena-boost-icon{font-size:1.4rem}.arena-boost-label{font-size:1rem;font-weight:600;color:#f39c12}.arena-rule-item.warning{background:#e74c3c0f;border:1px solid rgba(231,76,60,.15)}.arena-bottom-action-bar{position:fixed;bottom:0;left:0;right:0;display:flex;gap:12px;padding:16px;padding-bottom:max(16px,env(safe-area-inset-bottom));background:var(--color-surface);border-top:1px solid var(--color-brown-light);box-shadow:0 -4px 12px #0000001a;z-index:20}.arena-action-button{flex:1;padding:14px 20px;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;min-height:48px}.arena-action-button.join{background:var(--color-forest-dark);color:#fff;box-shadow:0 4px 12px #2c5f2d4d}.arena-action-button.join:hover{background:var(--color-forest-medium)}.arena-action-button.pause{background:var(--color-beige-sand);color:var(--color-brown-dark);border:1px solid var(--color-brown-light)}.arena-action-button.pause:hover{background:var(--color-beige-warm)}.arena-action-button.resume{background:var(--color-forest-dark);color:#fff;box-shadow:0 4px 12px #2c5f2d4d}.arena-action-button.resume:hover{background:var(--color-forest-medium)}.arena-action-button.leave{background:transparent;border:1px solid var(--color-brown-light);color:var(--color-text-secondary)}.arena-action-button.leave:hover{border-color:var(--color-error);color:var(--color-error)}.arena-action-button.disabled{background:var(--color-beige-sand);color:var(--color-text-muted);cursor:not-allowed}@media (max-width: 600px){.arena-detail-page{padding:12px}.arena-detail-page.has-bottom-bar{padding-bottom:calc(110px + env(safe-area-inset-bottom,0px))}.arena-detail-header{flex-wrap:wrap;gap:12px}.arena-timer-container{width:100%;flex-direction:row;justify-content:center;gap:8px;order:-1}.arena-timer-label{margin-right:4px}.arena-position-stats{flex-wrap:wrap;gap:12px}.arena-position-stat.main{padding-right:12px}.arena-detail-tab{padding:8px 12px;font-size:.85rem}.arena-status-bar{flex-wrap:wrap;gap:12px}.arena-info-grid{grid-template-columns:1fr}.arena-bottom-action-bar{flex-direction:column;gap:8px}.arena-action-button{padding:12px 16px}.arena-game-entry{flex-direction:column;align-items:flex-start;gap:6px}.arena-game-right{width:100%;justify-content:flex-start}}.arena-boost-btn{display:flex;align-items:center;gap:6px;padding:10px 18px;background:#f39c1226;border:2px solid #F39C12;border-radius:12px;color:#f39c12;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;min-height:44px;min-width:44px;animation:arena-boost-pulse 2s ease-in-out infinite}.arena-boost-btn:hover:not(:disabled){background:#f39c124d;transform:scale(1.05)}.arena-boost-btn:active:not(:disabled){transform:scale(.95)}.arena-boost-btn.activated{background:#f39c12;color:#fff;border-color:#f39c12;cursor:default;animation:arena-boost-activate .4s ease-out}.arena-boost-btn-icon{font-size:1.2rem}.arena-boost-btn-label{font-size:.9rem}@keyframes arena-boost-pulse{0%,to{box-shadow:0 0 #f39c1266}50%{box-shadow:0 0 0 6px #f39c1200}}@keyframes arena-boost-activate{0%{transform:scale(1)}30%{transform:scale(1.15)}to{transform:scale(1)}}.arena-game-end-points{background:var(--color-surface);border-radius:12px;padding:16px;border:1px solid var(--color-brown-light)}.arena-game-end-points-title{font-size:.75rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px}.arena-game-end-points-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:.9rem;color:var(--color-text)}.arena-game-end-points-row.total{border-top:1px solid var(--color-brown-light);margin-top:8px;padding-top:8px;font-weight:700;font-size:1rem}.arena-game-end-points-value{font-weight:600;font-variant-numeric:tabular-nums}.arena-game-end-points-value.positive{color:#27ae60}.arena-game-end-points-value.streak{color:#e74c3c}.arena-game-end-points-value.boost{color:#f39c12}.arena-game-end-stats{background:var(--color-surface);border-radius:12px;padding:16px;border:1px solid var(--color-brown-light);display:grid;grid-template-columns:repeat(3,1fr);gap:12px;text-align:center}.arena-game-end-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.arena-game-end-stat-value{font-size:1.2rem;font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums}.arena-game-end-stat-label{font-size:.7rem;color:var(--color-text-secondary);text-transform:uppercase}.arena-game-end-rank-delta{font-size:.85rem;font-weight:600;margin-left:2px}.arena-game-end-rank-delta.up{color:#27ae60}.arena-game-end-rank-delta.down{color:#e74c3c}.arena-game-end-countdown{text-align:center;padding:8px}.arena-game-end-countdown-text{font-size:.85rem;color:var(--color-text-secondary);margin:0}.arena-game-end-countdown-number{font-weight:700;color:var(--color-forest-dark);font-variant-numeric:tabular-nums}.arena-game-end-actions{display:flex;gap:12px}.arena-game-end-btn{flex:1;padding:14px 16px;border-radius:12px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s;min-height:44px;border:none}.arena-game-end-btn:active{transform:scale(.97)}.arena-game-end-btn.pause{background:var(--color-beige-sand);color:var(--color-brown-dark);border:1px solid var(--color-brown-light)}.arena-game-end-btn.pause:hover{background:var(--color-beige-warm)}.arena-game-end-btn.play{background:var(--color-forest-dark);color:#fff}.arena-game-end-btn.play:hover{background:var(--color-forest-medium)}.arena-game-end-animate{animation:arena-endCountFade .5s ease-out}@keyframes arena-endCountFade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.arena-game-end-rank-slide-up{animation:arena-endRankUp .6s ease-out}.arena-game-end-rank-slide-down{animation:arena-endRankDown .6s ease-out}@keyframes arena-endRankUp{0%{transform:translateY(8px);opacity:.5}to{transform:translateY(0);opacity:1}}@keyframes arena-endRankDown{0%{transform:translateY(-8px);opacity:.5}to{transform:translateY(0);opacity:1}}@media (max-width: 480px){.arena-game-end-btn{min-height:48px}}.arena-game{display:flex;flex-direction:column;align-items:center;padding:8px;max-width:800px;margin:0 auto;min-height:100dvh}.arena-game-bar{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:500px;padding:6px 12px;background:var(--color-surface);border-radius:8px;margin-bottom:8px;gap:12px}.arena-game-bar.time-warning{background:#e74c3c26}.arena-game-bar.time-warning .arena-game-bar-time{color:var(--color-error);animation:arena-time-pulse 1s infinite}@keyframes arena-time-pulse{0%,to{opacity:1}50%{opacity:.5}}.arena-game-bar-timer{display:flex;align-items:center;gap:4px}.arena-game-bar-icon{font-size:.85rem}.arena-game-bar-time{font-size:.9rem;font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums}.arena-game-bar-position{display:flex;align-items:center;gap:8px}.arena-game-bar-rank{font-weight:700;color:var(--color-warning);font-size:.95rem}.arena-game-bar-points{font-size:.85rem;color:var(--color-text-secondary)}.arena-game-bar-streak{font-size:1rem}.arena-game-bar-delta{font-size:.75rem;font-weight:600;margin-left:2px}.arena-game-bar-delta.arena-rank-up{color:var(--color-success)}.arena-game-bar-delta.arena-rank-down{color:var(--color-error)}.arena-game-players{display:flex;justify-content:center;align-items:center;gap:12px;width:100%;max-width:500px;margin-bottom:6px}.arena-game-player{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--color-surface);border-radius:8px;font-size:.9rem}.arena-game-player.self{background:var(--color-success)}.arena-game-player-color{width:10px;height:10px;border-radius:50%;flex-shrink:0}.arena-game-player-color.white{background:var(--color-beige-cream)}.arena-game-player-color.black{background:var(--color-brown-dark);border:2px solid var(--color-beige-cream)}.arena-game-player-name{color:var(--color-text);font-weight:500}.arena-game-player-rating,.arena-game-vs{color:var(--color-text-secondary);font-size:.8rem}.arena-game-turn{text-align:center;padding:8px;width:100%;max-width:500px;background:var(--color-surface);border-radius:8px;margin-bottom:8px}.arena-game-turn-text{font-size:1.1rem;font-weight:500;color:var(--color-text)}.arena-game-turn-text.win{color:var(--color-success)}.arena-game-turn-text.draw{color:var(--color-warning)}.arena-game-turn-text.loss{color:var(--color-error)}.arena-game-board-area{width:100%;display:flex;flex-direction:row;gap:12px;align-items:center;justify-content:center;flex:1}.arena-game-actions{display:flex;gap:12px;align-items:center;justify-content:center;width:100%;max-width:500px;margin-top:8px;min-height:48px;padding-bottom:env(safe-area-inset-bottom,8px)}.arena-game-resign-btn{padding:12px 24px;background:var(--color-surface);color:var(--color-text-secondary);border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .2s;min-height:44px;min-width:44px}.arena-game-resign-btn:hover{background:var(--color-error);color:#fff}@media (max-width: 768px){.arena-game-board-area{flex-direction:column}.arena-game-players{flex-direction:column;gap:4px}.arena-game-vs{display:none}.arena-game-resign-btn{width:100%}}@media (max-width: 400px){.arena-game{padding:4px}.arena-game-bar{padding:4px 8px;font-size:.85rem}}.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-width);background-color:var(--sidebar-bg);display:flex;flex-direction:column;z-index:100;box-shadow:var(--shadow-lg)}.sidebar-nav{flex:1;display:flex;flex-direction:column;padding:0}.sidebar-nav-item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-md) var(--spacing-sm);background:none;border:none;color:var(--sidebar-text);cursor:pointer;transition:background-color .2s;gap:var(--spacing-xs);min-height:70px}.sidebar-nav-item:hover:not(.disabled){background-color:var(--sidebar-hover)}.sidebar-nav-item.active{background-color:var(--sidebar-active);border-left:3px solid var(--color-forest-light)}.sidebar-nav-item.disabled{opacity:.5;cursor:not-allowed}.sidebar-nav-icon{font-size:1.5rem}.sidebar-nav-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.5px;text-align:center}.sidebar-lock{position:absolute;top:var(--spacing-xs);right:var(--spacing-xs);font-size:.6rem}.sidebar-footer{padding:var(--spacing-md);border-top:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:var(--spacing-sm)}.sidebar-login-nav{background:var(--color-forest)!important;color:#fff!important;margin:var(--spacing-xs) var(--spacing-xs) 0;border-radius:var(--radius-sm)}.sidebar-login-nav:hover{background:var(--color-forest-light)!important}.sidebar-logout-nav{margin:var(--spacing-xs) var(--spacing-xs) 0;border-radius:var(--radius-sm);opacity:.7}.sidebar-logout-nav:hover{background:#e74c3c4d!important;opacity:1}.sidebar-logout-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-sm);background:none;border:none;color:var(--sidebar-text);cursor:pointer;transition:background-color .2s;gap:var(--spacing-xs);border-radius:var(--radius-sm)}.sidebar-logout-btn:hover{background-color:#e74c3c4d}.sidebar-logout-btn .sidebar-nav-icon{font-size:1.2rem}.sidebar-logout-btn .sidebar-nav-label{font-size:.6rem;text-transform:uppercase}.sidebar-language{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}.sidebar-lang-btn{background:none;border:1px solid transparent;border-radius:var(--radius-sm);padding:4px;font-size:.9rem;cursor:pointer;transition:all .2s;opacity:.7}.sidebar-lang-btn:hover{opacity:1;background-color:var(--sidebar-hover)}.sidebar-lang-btn.active{opacity:1;border-color:#ffffff4d;background-color:var(--sidebar-active)}@media (max-width: 768px){.sidebar{top:auto;bottom:0;left:0;right:0;width:100%;height:var(--bottom-nav-height, 64px);flex-direction:row;border-top:1px solid rgba(255,255,255,.1);box-shadow:0 -2px 10px #0003}.sidebar-nav{flex:1;flex-direction:row;justify-content:space-around;align-items:center;padding:0}.sidebar-nav-item{flex:1;min-height:48px;padding:8px 4px;border-left:none}.sidebar-nav-item.active{border-left:none;border-top:3px solid var(--color-forest-light);background-color:var(--sidebar-active)}.sidebar-nav-icon{font-size:1.3rem}.sidebar-nav-label{font-size:.7rem}.sidebar-lock{top:2px;right:2px;font-size:.5rem}.sidebar-login-nav,.sidebar-logout-nav{margin:0;border-radius:0}.sidebar-footer{display:none}}.layout{min-height:100vh;background-color:var(--color-bg)}.layout.with-sidebar{padding-left:var(--sidebar-width)}.layout-content{min-height:100vh;display:flex;flex-direction:column}@media (max-width: 768px){.layout.with-sidebar{padding-left:0;padding-bottom:var(--bottom-nav-height, 64px)}}.cookie-banner{position:fixed;bottom:0;left:var(--sidebar-width);right:0;background-color:var(--color-surface);border-top:2px solid var(--color-primary);box-shadow:0 -4px 20px #00000026;z-index:9999;padding:var(--spacing-md) var(--spacing-lg)}.cookie-banner-content{max-width:900px;margin:0 auto;display:flex;align-items:center;gap:var(--spacing-lg)}.cookie-banner-text{flex:1;margin:0;font-size:.9rem;color:var(--color-text);line-height:1.4}.cookie-banner-actions{display:flex;gap:var(--spacing-sm);flex-shrink:0}.cookie-btn{padding:8px 16px;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;border:none;white-space:nowrap}.cookie-btn-accept{background-color:var(--color-primary);color:#fff}.cookie-btn-accept:hover{background-color:var(--color-primary-hover)}.cookie-btn-reject{background-color:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.cookie-btn-reject:hover{background-color:var(--color-bg)}@media (max-width: 600px){.cookie-banner{left:0}.cookie-banner-content{flex-direction:column;text-align:center}.cookie-banner-actions{width:100%;justify-content:center}.cookie-btn{min-height:44px;padding:10px 20px}}.animated-showcase-board{position:relative;display:flex;flex-direction:column;align-items:center}.showcase-board-svg{width:80vw;max-width:700px;min-width:280px;height:auto;aspect-ratio:1;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);overflow:hidden;border:3px solid var(--color-brown-dark)}.showcase-square-light{fill:var(--color-square-light)}.showcase-square-dark{fill:var(--color-square-dark)}.showcase-piece{transition:transform .4s ease-out}.showcase-piece.animating circle,.showcase-piece.animating path,.showcase-piece.animating rect{transition:all .4s ease-out}.capture-highlight{fill:#e74c3c4d;stroke:var(--color-error);stroke-width:3;animation:pulseHighlight .3s ease-out}.capture-highlight.fade-out{animation:fadeOut .4s ease-out forwards}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes pulseHighlight{0%{opacity:0;transform:scale(.5)}50%{opacity:1;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.captured-piece{animation:captureEffect .5s ease-out forwards}@keyframes captureEffect{0%{opacity:1;transform:scale(1)}30%{opacity:1;transform:scale(1.3)}to{opacity:0;transform:scale(0)}}.capture-flash{animation:flashSquare .4s ease-out}@keyframes flashSquare{0%{fill:var(--color-square-dark)}50%{fill:var(--color-error)}to{fill:var(--color-square-dark)}}.showcase-variant-label{margin-top:var(--spacing-md);font-size:1rem;font-weight:500;color:var(--color-text-secondary);text-align:center}@media (max-width: 900px){.showcase-board-svg{max-width:500px}}@media (max-width: 768px){.showcase-board-svg{max-width:400px}.showcase-variant-label{font-size:.9rem}}@media (max-width: 480px){.showcase-board-svg{max-width:320px}}.features-section{position:relative;z-index:1;padding:80px 40px}.features-container{max-width:1000px;margin:0 auto;text-align:center}.section-label{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--color-forest-medium);margin-bottom:12px}.section-title{font-family:Georgia,Times New Roman,serif;font-size:2.2rem;font-weight:700;color:var(--color-forest-dark);margin:0 0 12px;line-height:1.2}.section-subtitle{font-size:1.05rem;color:var(--color-text-secondary);max-width:560px;margin:0 auto 48px;line-height:1.5}.features-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.feature-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;padding:32px 24px;text-align:center;transition:transform .2s ease,box-shadow .2s ease}.feature-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000014}.feature-icon-box{width:56px;height:56px;border-radius:14px;background:#2c5f2d14;display:flex;align-items:center;justify-content:center;font-size:1.6rem;margin:0 auto 16px}.feature-title{font-size:1.05rem;font-weight:700;color:var(--color-text);margin:0 0 8px}.feature-desc{font-size:.88rem;color:var(--color-text-secondary);line-height:1.5;margin:0}@media (max-width: 900px){.features-section{padding:60px 24px}.features-grid{grid-template-columns:repeat(2,1fr)}.section-title{font-size:1.8rem}}@media (max-width: 480px){.features-section{padding:48px 16px}.features-grid{grid-template-columns:1fr;gap:16px}.section-title{font-size:1.5rem}.feature-card{padding:24px 20px}}.how-section{position:relative;z-index:1;padding:80px 40px;background:var(--color-surface)}.how-container{max-width:900px;margin:0 auto;text-align:center}.how-steps{display:flex;align-items:flex-start;justify-content:center;gap:0;margin-top:48px}.how-step{position:relative;flex:1;max-width:260px;padding:0 20px;display:flex;flex-direction:column;align-items:center;text-align:center}.step-circle{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--color-forest-dark),var(--color-forest-medium));color:#fff;font-size:1.2rem;font-weight:700;display:flex;align-items:center;justify-content:center;margin-bottom:20px;flex-shrink:0;position:relative;z-index:2}.step-connector{position:absolute;top:24px;left:calc(50% + 30px);width:calc(100% - 20px);height:2px;background:var(--color-forest-light);z-index:1}.step-title{font-size:1.05rem;font-weight:700;color:var(--color-text);margin:0 0 8px}.step-desc{font-size:.88rem;color:var(--color-text-secondary);line-height:1.5;margin:0}@media (max-width: 768px){.how-section{padding:60px 24px}.how-steps{flex-direction:column;gap:32px;align-items:center}.how-step{max-width:400px}.step-connector{display:none}}@media (max-width: 480px){.how-section{padding:48px 16px}}.variants-section{position:relative;z-index:1;padding:80px 40px}.variants-container{max-width:1000px;margin:0 auto;text-align:center}.variants-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;margin-top:48px}.variant-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;overflow:hidden;text-align:left;transition:transform .2s ease,box-shadow .2s ease}.variant-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000014}.variant-preview{display:flex;align-items:center;justify-content:center;padding:28px;border-bottom:1px solid var(--color-border)}.variant-preview-intl{background:linear-gradient(135deg,#2c5f2d0f,#a8d5a226)}.variant-preview-ita{background:linear-gradient(135deg,#c9a84c14,#c9a84c2e)}.mini-board{display:grid;border-radius:6px;overflow:hidden;box-shadow:0 2px 8px #0000001f}.mini-board-10{grid-template-columns:repeat(10,20px);grid-template-rows:repeat(10,20px)}.mini-board-8{grid-template-columns:repeat(8,24px);grid-template-rows:repeat(8,24px)}.mini-cell{display:flex;align-items:center;justify-content:center}.mini-cell.light{background:#f0d9b5}.mini-cell.dark{background:#b58863}.mini-piece{width:60%;height:60%;border-radius:50%}.mini-piece.white{background:radial-gradient(circle at 35% 35%,#fff,#ddd);box-shadow:0 1px 2px #0000004d}.mini-piece.black{background:radial-gradient(circle at 35% 35%,#555,#222);box-shadow:0 1px 2px #0006}.variant-info{padding:24px}.variant-badge{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:4px 10px;border-radius:6px;margin-bottom:10px}.variant-badge-intl{background:#2c5f2d1a;color:var(--color-forest-dark)}.variant-badge-ita{background:#8b69141a;color:#8b6914}.variant-name{font-size:1.2rem;font-weight:700;color:var(--color-text);margin:0 0 8px}.variant-desc{font-size:.88rem;color:var(--color-text-secondary);line-height:1.5;margin:0 0 16px}.variant-specs{display:flex;flex-wrap:wrap;gap:8px}.spec-pill{font-size:.75rem;font-weight:600;color:var(--color-text-secondary);background:var(--color-bg);padding:5px 10px;border-radius:20px;white-space:nowrap}@media (max-width: 768px){.variants-section{padding:60px 24px}.variants-grid{grid-template-columns:1fr}}@media (max-width: 480px){.variants-section{padding:48px 16px}.mini-board-10{grid-template-columns:repeat(10,16px);grid-template-rows:repeat(10,16px)}.mini-board-8{grid-template-columns:repeat(8,20px);grid-template-rows:repeat(8,20px)}.variant-info{padding:20px}}.cta-banner{position:relative;z-index:1;padding:80px 40px;background:linear-gradient(135deg,var(--color-forest-dark) 0%,var(--color-forest-medium) 60%,#4CAF50 100%);overflow:hidden}.cta-watermark{position:absolute;top:50%;right:10%;transform:translateY(-50%);font-size:12rem;color:#fff;opacity:.06;pointer-events:none;line-height:1}.cta-content{position:relative;max-width:600px;margin:0 auto;text-align:center}.cta-title{font-family:Georgia,Times New Roman,serif;font-size:2.4rem;font-weight:700;color:#fff;margin:0 0 12px}.cta-subtitle{font-size:1.1rem;color:#ffffffd9;margin:0 0 32px;line-height:1.5}.cta-button{padding:16px 40px;background:#fff;border:none;border-radius:12px;color:var(--color-forest-dark);font-size:1.15rem;font-weight:700;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 16px #00000026}.cta-button:hover{transform:translateY(-2px);box-shadow:0 6px 24px #0003}@media (max-width: 768px){.cta-banner{padding:60px 24px}.cta-title{font-size:1.8rem}.cta-watermark{font-size:8rem}}@media (max-width: 480px){.cta-banner{padding:48px 16px}.cta-title{font-size:1.5rem}.cta-subtitle{font-size:1rem}.cta-button{padding:14px 32px;font-size:1rem}}.dashboard{position:relative;z-index:1;max-width:1000px;margin:0 auto;padding:32px 24px 60px}.dash-hero{display:flex;align-items:center;gap:40px;margin-bottom:32px}.dash-hero-content{flex:1;display:flex;flex-direction:column;gap:8px}.dash-welcome{font-size:.9rem;color:var(--color-text-secondary);font-weight:500}.dash-username{font-family:Georgia,Times New Roman,serif;font-size:2.4rem;font-weight:700;color:var(--color-forest-dark);margin:0;line-height:1.1}.dash-cta-row{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}.dash-cta{padding:12px 20px!important;font-size:.95rem!important}.dash-cta.home-cta-primary{animation:none;box-shadow:0 4px 12px #2c5f2d40}.dash-hero-board{flex-shrink:0;max-width:260px}.dash-hero-board .showcase-board-svg{width:100%;max-width:260px}.dash-hero-board .showcase-variant-label{font-size:.75rem}.dash-ratings-header{display:flex;justify-content:flex-end;margin-bottom:12px}.dash-variant-toggle{display:flex;gap:4px;background:var(--color-bg);border-radius:8px;padding:3px}.dash-variant-btn{padding:6px 14px;border:none;border-radius:6px;background:transparent;color:var(--color-text-secondary);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s}.dash-variant-btn.active{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 4px #00000014}.dash-rating-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}.dash-rating-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:20px 16px;text-align:center}.dash-rating-header{display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:8px}.dash-rating-icon{font-size:1rem}.dash-rating-label{font-size:.8rem;color:var(--color-text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.dash-rating-value{font-size:1.8rem;font-weight:800;color:var(--color-text);line-height:1}.dash-panels{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.dash-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;overflow:hidden}.dash-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border)}.dash-panel-header h3{font-size:.95rem;font-weight:700;color:var(--color-text);margin:0}.dash-link{background:none;border:none;color:var(--color-forest-medium);font-size:.8rem;font-weight:600;cursor:pointer;padding:0;transition:color .15s}.dash-link:hover{color:var(--color-forest-dark)}.dash-panel-body{padding:8px 0}.dash-empty{padding:24px 20px;text-align:center;color:var(--color-text-muted);font-size:.88rem;margin:0}.dash-game-row{display:flex;align-items:center;gap:12px;padding:10px 20px;transition:background .1s}.dash-game-row:hover{background:#00000005}.dash-result-badge{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#fff;flex-shrink:0}.dash-result-win{background:#4caf50}.dash-result-loss{background:#e53935}.dash-result-draw{background:#9e9e9e}.dash-game-info{display:flex;flex-direction:column;gap:2px;min-width:0}.dash-game-opponent{font-size:.88rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-game-meta{font-size:.75rem;color:var(--color-text-muted)}.dash-event-row{display:flex;align-items:center;gap:12px;padding:10px 20px;cursor:pointer;transition:background .1s}.dash-event-row:hover{background:#00000005}.dash-event-icon{font-size:1.2rem;flex-shrink:0}.dash-event-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.dash-event-name{font-size:.88rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-event-meta{font-size:.75rem;color:var(--color-text-muted)}.dash-live-badge{font-size:.65rem;font-weight:700;color:#fff;background:#e53935;padding:3px 8px;border-radius:4px;letter-spacing:.5px;flex-shrink:0}.dash-join-btn{font-size:.75rem;font-weight:600;color:var(--color-forest-medium);padding:4px 12px;border:1px solid var(--color-forest-medium);border-radius:6px;flex-shrink:0}@media (max-width: 900px){.dash-hero{flex-direction:column;text-align:center;gap:24px}.dash-hero-content{align-items:center}.dash-hero-board{order:-1;max-width:220px}.dash-cta-row{justify-content:center}.dash-username{font-size:2rem}}@media (max-width: 768px){.dashboard{padding:24px 16px 48px}.dash-rating-cards{grid-template-columns:repeat(2,1fr)}.dash-panels{grid-template-columns:1fr}}@media (max-width: 480px){.dash-username{font-size:1.6rem}.dash-cta-row{flex-direction:column;align-items:stretch}.dash-rating-cards{grid-template-columns:repeat(2,1fr);gap:10px}.dash-rating-value{font-size:1.4rem}.dash-rating-card{padding:14px 10px}}@media (max-width: 360px){.dashboard{padding:16px 12px 40px}.dash-hero-board{max-width:180px}}.online-players-list{background-color:var(--color-surface);border-radius:12px;padding:var(--spacing-lg);box-shadow:0 4px 20px #0000004d}.players-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid rgba(255,255,255,.1)}.players-header h3{margin:0;font-size:1.1rem;color:var(--color-text)}.player-count{background-color:var(--color-primary);color:#fff;padding:2px 10px;border-radius:12px;font-size:.85rem;font-weight:600}.players-list{list-style:none;padding:0;margin:0;max-height:400px;overflow-y:auto}.player-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) 0;border-bottom:1px solid rgba(255,255,255,.05)}.player-item:last-child{border-bottom:none}.player-info{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.player-name{font-weight:600;color:var(--color-text)}.player-rating{font-size:.85rem;padding:2px 8px;border-radius:4px;font-weight:500}.player-rating.novice{background-color:#96969633;color:#aaa}.player-rating.intermediate{background-color:#4caf5033;color:#4caf50}.player-rating.advanced{background-color:#2196f333;color:#2196f3}.player-rating.expert{background-color:#9c27b033;color:#9c27b0}.player-rating.master{background-color:#ff980033;color:#ff9800}.player-rating.grandmaster{background-color:#f4433633;color:#f44336}.player-rating.legend{background-color:#ffd70033;color:gold}.status-badge{font-size:.75rem;padding:2px 8px;border-radius:10px;font-weight:500}.status-badge.available{background-color:#4caf5033;color:#4caf50}.status-badge.playing{background-color:#ff980033;color:#ff9800}.status-badge.away{background-color:#9e9e9e33;color:#9e9e9e}.challenge-button{padding:var(--spacing-xs) var(--spacing-md);border-radius:6px;border:none;background-color:var(--color-primary);color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;transition:all .2s;min-height:44px}.challenge-button:hover:not(:disabled){background-color:var(--color-primary-hover)}.challenge-button:disabled{background-color:var(--color-neutral-600);cursor:not-allowed;opacity:.6}.login-required,.no-players{text-align:center;color:var(--color-text-secondary);padding:var(--spacing-lg)}.error-message{color:var(--color-error);background-color:#e74c3c1a;padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;text-align:center}.spinner{width:30px;height:30px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;margin:var(--spacing-md) auto}.players-list::-webkit-scrollbar{width:6px}.players-list::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.players-list::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.players-list::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;padding:var(--spacing-md)}.send-challenge-modal{background-color:var(--color-surface);border-radius:12px;padding:var(--spacing-xl);max-width:400px;width:100%;box-shadow:0 4px 30px #00000080}.send-challenge-modal h2{margin:0 0 var(--spacing-lg) 0;font-size:1.3rem;text-align:center;color:var(--color-text)}.challenge-target{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background-color:#ffffff0d;border-radius:8px}.target-name{font-size:1.2rem;font-weight:600;color:var(--color-text)}.target-rating{font-size:.9rem;padding:4px 10px;border-radius:4px;font-weight:500}.target-rating.novice{background-color:#96969633;color:#aaa}.target-rating.intermediate{background-color:#4caf5033;color:#4caf50}.target-rating.advanced{background-color:#2196f333;color:#2196f3}.target-rating.expert{background-color:#9c27b033;color:#9c27b0}.target-rating.master{background-color:#ff980033;color:#ff9800}.target-rating.grandmaster{background-color:#f4433633;color:#f44336}.target-rating.legend{background-color:#ffd70033;color:gold}.challenge-options{margin-bottom:var(--spacing-lg)}.option-section{margin-bottom:var(--spacing-md)}.option-section label{display:block;margin-bottom:var(--spacing-sm);font-size:.9rem;color:var(--color-text-secondary);font-weight:500}.variant-buttons{display:flex;gap:var(--spacing-sm)}.variant-btn{flex:1;padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;border:1px solid rgba(255,255,255,.2);background-color:transparent;color:var(--color-text-secondary);cursor:pointer;font-size:.9rem;transition:all .2s}.variant-btn:hover{background-color:#ffffff1a}.variant-btn.active{background-color:var(--color-primary);border-color:var(--color-primary);color:#fff}.time-control-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-xs)}.time-control-btn{padding:var(--spacing-sm);border-radius:6px;border:1px solid rgba(255,255,255,.2);background-color:transparent;color:var(--color-text-secondary);cursor:pointer;font-size:.85rem;transition:all .2s}.time-control-btn:hover{background-color:#ffffff1a}.time-control-btn.active{background-color:var(--color-primary);border-color:var(--color-primary);color:#fff}.modal-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end}.cancel-btn{padding:var(--spacing-sm) var(--spacing-lg);border-radius:6px;border:1px solid rgba(255,255,255,.2);background-color:transparent;color:var(--color-text-secondary);cursor:pointer;font-size:.9rem;transition:all .2s}.cancel-btn:hover:not(:disabled){background-color:#ffffff1a}.cancel-btn:disabled{opacity:.5;cursor:not-allowed}.send-btn{padding:var(--spacing-sm) var(--spacing-xl);border-radius:6px;border:none;background-color:var(--color-primary);color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;transition:all .2s;min-width:100px;display:flex;align-items:center;justify-content:center}.send-btn:hover:not(:disabled){background-color:var(--color-primary-hover)}.send-btn:disabled{opacity:.7;cursor:not-allowed}.spinner-small{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 400px){.time-control-grid{grid-template-columns:repeat(2,1fr)}}.home-page-new{position:relative;display:flex;flex-direction:column;min-height:100vh;overflow:hidden}.home-bg-pattern{position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:0;background-image:linear-gradient(45deg,rgba(139,115,85,.04) 25%,transparent 25%),linear-gradient(-45deg,rgba(139,115,85,.04) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(139,115,85,.04) 75%),linear-gradient(-45deg,transparent 75%,rgba(139,115,85,.04) 75%);background-size:60px 60px;background-position:0 0,0 30px,30px -30px,-30px 0}.home-hero{position:relative;z-index:1;flex:1;display:flex;align-items:center;justify-content:center;padding:40px;gap:60px;min-height:min(calc(100vh - 80px),700px)}.home-hero-content{flex:1;max-width:500px;display:flex;flex-direction:column;gap:20px}.home-hero-title{font-family:Georgia,Times New Roman,serif;font-size:3.2rem;font-weight:700;color:var(--color-forest-dark);line-height:1.1;margin:0}.home-hero-accent{color:var(--color-forest-medium)}.home-hero-tagline{font-size:1.15rem;color:var(--color-text-secondary);line-height:1.5;max-width:420px;margin:0}.home-cta-group{display:flex;flex-direction:column;gap:12px;margin-top:8px;max-width:400px}.home-cta-row{display:flex;gap:12px}.home-hero-board{flex-shrink:0;max-width:480px}.home-hero-board .showcase-board-svg{width:100%;max-width:420px}.home-hero-board .showcase-variant-label{font-size:.85rem;color:var(--color-text-muted)}.home-cta-primary{position:relative;padding:20px 40px;background:linear-gradient(135deg,var(--color-forest-dark) 0%,var(--color-forest-medium) 50%,#4CAF50 100%);border:none;border-radius:16px;color:#fff;font-size:1.4rem;font-weight:700;cursor:pointer;transition:all .3s ease;box-shadow:0 6px 24px #2c5f2d59;animation:glow-pulse 2s ease-in-out infinite;overflow:hidden;letter-spacing:.5px}@keyframes glow-pulse{0%,to{box-shadow:0 4px 20px #2c5f2d66,0 0 30px #3d8b4033}50%{box-shadow:0 4px 25px #2c5f2d80,0 0 50px #3d8b4066}}.home-cta-primary:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);animation:shimmer 3s ease-in-out infinite}@keyframes shimmer{0%{left:-100%}50%,to{left:100%}}.home-cta-primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px #2c5f2d73;animation:none}.home-cta-primary:active{transform:translateY(-1px)}.home-cta-secondary{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 20px;background:var(--color-surface);border:2px solid var(--color-forest-dark);border-radius:12px;color:var(--color-forest-dark);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.home-cta-secondary:hover{background:var(--color-forest-dark);color:#fff;transform:translateY(-2px)}.home-cta-tertiary{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 20px;background:var(--color-surface);border:2px solid #c9a84c;border-radius:12px;color:#8b6914;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.home-cta-tertiary:hover{background:#8b6914;color:#fff;transform:translateY(-2px)}.home-cta-icon{font-size:1.2rem}.home-hero-stats{display:flex;align-items:center;gap:16px;margin-top:8px}.home-stat{display:flex;align-items:center;gap:6px;color:var(--color-text-secondary);font-size:.9rem}.home-stat-dot{width:8px;height:8px;background:#4caf50;border-radius:50%;animation:pulse-dot 2s infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.home-stat-separator{color:#c9a84c}.home-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.home-modal{position:relative;background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--spacing-xl);max-width:440px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.home-modal-close{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);width:32px;height:32px;background:transparent;border:none;border-radius:50%;color:var(--color-text-secondary);font-size:1.5rem;line-height:1;cursor:pointer;transition:all .2s}.home-modal-close:hover{background:var(--color-bg);color:var(--color-text)}.home-modal-title{font-size:1.5rem;font-weight:600;color:var(--color-text);text-align:center;margin-bottom:var(--spacing-xl)}.home-option-group{margin-bottom:var(--spacing-lg)}.home-option-label{display:block;font-size:.8rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--spacing-sm)}.home-option-buttons{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.home-option-buttons.time-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr))}.home-option-btn{flex:1;min-width:70px;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:.9rem;cursor:pointer;transition:border-color .15s,background-color .15s,color .15s}.home-option-btn:hover{border-color:var(--color-primary);background-color:#2c5f2d0d}.home-option-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.home-option-checkbox{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;font-size:.95rem;color:var(--color-text-primary)}.home-option-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer}.home-option-hint{font-size:.8rem;color:var(--color-text-secondary);margin-top:var(--spacing-xs);margin-left:26px}.home-modal-start{width:100%;padding:var(--spacing-md) var(--spacing-xl);margin-top:var(--spacing-lg);background:linear-gradient(135deg,var(--color-forest-dark) 0%,var(--color-forest-medium) 100%);border:none;border-radius:var(--radius-lg);color:#fff;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #2c5f2d4d}.home-modal-start:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #2c5f2d66}.home-modal-start:disabled{opacity:.5;cursor:not-allowed}.home-challenge-section{max-height:400px;overflow-y:auto}.challenge-guest-error{background:#dc354526;color:#dc3545;padding:8px 12px;border-radius:6px;font-size:.85rem;text-align:center;margin-bottom:8px}.home-challenge-section .online-players-list{background:transparent;padding:0;box-shadow:none}.home-footer{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:16px;color:var(--color-text-muted);font-size:.8rem}.home-footer button{background:none;border:none;color:var(--color-text-secondary);font-size:.8rem;cursor:pointer;padding:4px 2px;transition:color .2s}.home-footer button:hover{color:var(--color-text)}.home-footer span{color:var(--color-text-muted);opacity:.5}@media (max-width: 900px){.home-hero{flex-direction:column;padding:30px 20px;gap:30px;min-height:auto}.home-hero-content{align-items:center;text-align:center}.home-hero-title{font-size:2.4rem}.home-hero-tagline{font-size:1rem}.home-hero-board{order:-1;max-width:340px}.home-hero-stats{justify-content:center}}@media (max-width: 480px){.home-hero{padding:20px 16px;gap:24px}.home-hero-title{font-size:2rem}.home-hero-board{max-width:280px}.home-cta-primary{padding:16px 32px;font-size:1.2rem}.home-cta-row{flex-direction:column}}@media (max-width: 360px){.home-hero{padding:16px 12px;gap:16px}.home-hero-title{font-size:1.7rem}.home-hero-tagline{font-size:.9rem}.home-cta-primary{padding:14px 24px;font-size:1.1rem}.home-cta-secondary,.home-cta-tertiary{padding:12px 16px;font-size:.9rem}.home-hero-board{max-width:240px}}.page-container{padding:var(--spacing-xl);max-width:1200px;margin:0 auto;width:100%}.back-button{background-color:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:.9rem;padding:var(--spacing-sm);margin-bottom:var(--spacing-md);transition:color .2s}.back-button:hover{color:var(--color-text)}.game-fullscreen{display:flex;flex-direction:column;min-height:100vh;background-color:var(--color-bg)}.game-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-surface);border-bottom:1px solid var(--color-border);gap:var(--spacing-md);flex-wrap:wrap}.game-back-btn{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:.9rem;padding:var(--spacing-sm);transition:color .2s}.game-back-btn:hover{color:var(--color-text)}.game-info{display:flex;align-items:center;gap:var(--spacing-lg);flex-wrap:wrap}.game-variant{font-size:.9rem;color:var(--color-text-secondary)}.game-main{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);overflow:auto}.game-footer{display:flex;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-surface);border-top:1px solid var(--color-border)}.turn-indicator{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.95rem;color:var(--color-text)}.turn-dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--color-border)}.turn-dot.white{background-color:var(--color-beige-cream)}.turn-dot.black{background-color:var(--color-brown-dark)}.turn-dot.thinking{animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.1)}}.game-layout{display:flex;align-items:center;gap:var(--spacing-lg)}.action-button{padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-size:.9rem;cursor:pointer;transition:all .2s;min-height:44px;border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text)}.action-button:hover{background-color:var(--color-bg)}.action-button.resign{border-color:var(--color-error);color:var(--color-error)}.action-button.resign:hover{background-color:#e74c3c1a}.room-badge,.player-badge{background-color:var(--color-bg);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:.85rem;color:var(--color-text-secondary)}.player-badge span.white{color:var(--color-beige-cream)}.player-badge span.black{color:var(--color-neutral-600)}.result-reason{color:var(--color-text-secondary);font-size:.85rem;margin-left:var(--spacing-sm)}.online-board-container{display:flex;flex-direction:row;gap:var(--spacing-lg);align-items:flex-start;justify-content:center;width:100%}.online-game-sidebar{display:flex;flex-direction:column;gap:var(--spacing-md);min-width:280px}.online-board-wrapper{display:flex;flex-direction:column;gap:var(--spacing-xs);width:900px}.player-info-bar{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;font-size:1rem;width:100%;box-sizing:border-box;min-height:40px}.player-info-bar .player-name{font-weight:600;color:var(--color-text)}.player-info-bar .player-rating{color:var(--color-text-secondary);font-size:.9rem}.player-info-bar.opponent,.player-info-bar.you{border-left:4px solid var(--color-neutral-600);background-color:#636e721a}.player-info-bar.disconnected{border-left-color:var(--color-warning, #f39c12);background-color:#f39c121a}.disconnection-badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);margin-left:auto;padding:2px 8px;border-radius:var(--radius-sm);background-color:#f39c1233;color:var(--color-warning, #f39c12);font-size:.8rem;font-weight:500;animation:badge-pulse 2s ease-in-out infinite}@keyframes badge-pulse{0%,to{opacity:1}50%{opacity:.7}}@media (max-width: 1000px){.online-board-wrapper{width:100%;max-width:min(calc(100vw - 2rem),calc(100vh - 300px))}}@media (max-width: 900px){.game-layout{flex-direction:column}.online-board-container{flex-direction:column;align-items:center}.online-game-sidebar{width:100%;max-width:480px;min-width:unset}}@media (max-width: 600px){.game-header{padding:var(--spacing-sm)}.game-info{gap:var(--spacing-sm)}.game-main{padding:var(--spacing-md)}.game-footer{flex-wrap:wrap}}:root{--color-beige-cream: #F5F0E6;--color-beige-warm: #F0D9B5;--color-beige-sand: #E8D5B7;--color-forest-dark: #2C5F2D;--color-forest-medium: #3D8B40;--color-forest-light: #A8D5A2;--color-brown-dark: #5D4037;--color-brown-medium: #B58863;--color-brown-light: #D7C4A7;--color-neutral-900: #2D3436;--color-neutral-600: #636E72;--color-neutral-200: #DFE6E9;--color-success: #27AE60;--color-warning: #F39C12;--color-error: #E74C3C;--color-info: #3498DB;--color-format-arena: #1565C0;--color-format-swiss: #2E7D32;--color-format-elimination: #E65100;--color-text-muted: #9CA3AF;--color-bg: var(--color-beige-cream);--color-surface: #FFFFFF;--color-text: var(--color-neutral-900);--color-text-secondary: var(--color-neutral-600);--color-primary: var(--color-forest-dark);--color-primary-hover: var(--color-forest-medium);--color-border: var(--color-brown-light);--color-square-light: var(--color-beige-warm);--color-square-dark: var(--color-brown-medium);--color-highlight: rgba(39, 174, 96, .4);--color-selection: rgba(243, 156, 18, .5);--sidebar-width: 80px;--sidebar-bg: var(--color-forest-dark);--sidebar-text: #FFFFFF;--sidebar-hover: rgba(255, 255, 255, .1);--sidebar-active: rgba(255, 255, 255, .2);--bottom-nav-height: 64px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:var(--color-bg);color:var(--color-text)}#root{height:100%}
