*{box-sizing:border-box}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.login-page{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.login-container{background:#fff;padding:2.5rem;border-radius:12px;box-shadow:0 10px 40px #0003;width:100%;max-width:400px}.login-container h1{text-align:center;margin-bottom:.5rem;color:#333;font-size:2rem}.login-container h2{text-align:center;margin-bottom:2rem;color:#666;font-size:1.5rem;font-weight:400}.login-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:500;color:#333;font-size:.95rem}.form-group input{padding:.75rem;border:2px solid #e0e0e0;border-radius:6px;font-size:1rem;transition:border-color .3s}.form-group input:focus{outline:none;border-color:#667eea}.form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}.error-message{background-color:#fee;color:#c33;padding:.75rem;border-radius:6px;font-size:.9rem;text-align:center}.submit-btn{padding:.875rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}.submit-btn:active:not(:disabled){transform:translateY(0)}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.toggle-mode{margin-top:1.5rem;text-align:center}.toggle-mode button{background:none;border:none;color:#667eea;cursor:pointer;font-size:.95rem;text-decoration:underline;padding:.5rem}.toggle-mode button:hover:not(:disabled){color:#764ba2}.toggle-mode button:disabled{opacity:.6;cursor:not-allowed}.navbar{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 10px #0000001a;position:fixed;left:0;right:0;width:100%;top:0;z-index:1000}.navbar-container{max-width:1400px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center;height:60px}.navbar-logo{color:#fff;font-size:1.5rem;font-weight:700;text-decoration:none;transition:opacity .3s}.navbar-logo:hover{opacity:.9}.navbar-menu{display:flex;align-items:center;gap:2rem}.navbar-link{color:#fff;text-decoration:none;font-size:1rem;font-weight:500;padding:.5rem 1rem;border-radius:6px;transition:background-color .3s}.navbar-link:hover{background-color:#ffffff1a}.navbar-user{display:flex;align-items:center;gap:1rem;padding-left:1rem;border-left:1px solid rgba(255,255,255,.3)}.username{color:#fff;font-weight:500}.logout-btn{background-color:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3);padding:.5rem 1rem;border-radius:6px;font-size:.9rem;cursor:pointer;transition:background-color .3s}.logout-btn:hover{background-color:#ffffff4d}@media(max-width:768px){.navbar-container{padding:0 1rem}.navbar-menu{gap:1rem}.navbar-link{padding:.5rem;font-size:.9rem}.username{display:none}}.lobby-page{display:flex;min-height:calc(100vh - 60px);background-color:#f5f5f5}.lobby-loading{display:flex;justify-content:center;align-items:center;height:calc(100vh - 60px);font-size:1.2rem;color:#666}.lobby-container{flex:1;padding:2rem;max-width:1200px}.lobby-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.lobby-header h1{margin:0;color:#333;font-size:2rem}.btn-create-game{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:.875rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.btn-create-game:hover{transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}.lobby-filters{display:flex;gap:1rem;margin-bottom:2rem}.filter-btn{padding:.75rem 1.5rem;border:2px solid #e0e0e0;background:#fff;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .3s;font-weight:500;color:#666}.filter-btn:hover{border-color:#667eea;color:#667eea}.filter-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:transparent}.games-list{display:flex;flex-direction:column;gap:1rem}.no-games{background:#fff;padding:3rem;border-radius:12px;text-align:center;box-shadow:0 2px 10px #0000001a}.no-games p{color:#999;font-size:1.2rem;margin-bottom:1.5rem}.no-games button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:.875rem 2rem;border-radius:8px;font-size:1rem;cursor:pointer;transition:transform .2s}.no-games button:hover{transform:translateY(-2px)}.game-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 10px #0000001a;display:flex;justify-content:space-between;align-items:center;transition:transform .2s,box-shadow .2s}.game-card:hover{transform:translateY(-2px);box-shadow:0 4px 15px #00000026}.game-info{flex:1}.game-header{display:flex;gap:1rem;align-items:center;margin-bottom:.75rem}.game-status{font-weight:700;font-size:.9rem}.game-mode{background-color:#f0f0f0;padding:.25rem .75rem;border-radius:4px;font-size:.85rem;color:#666;font-weight:500}.game-details{display:flex;gap:1.5rem;color:#666;font-size:.95rem}.game-actions{display:flex;gap:1rem}.btn-join,.btn-view{padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .3s}.btn-join{background:linear-gradient(135deg,#16a34a,#15803d);color:#fff}.btn-join:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #16a34a66}.btn-join:disabled{opacity:.5;cursor:not-allowed}.btn-leave{background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff}.btn-leave:hover{transform:translateY(-2px);box-shadow:0 5px 15px #dc262666}.btn-view{background-color:#667eea;color:#fff}.btn-view:hover{background-color:#764ba2}.lobby-sidebar{width:300px;background:#fff;padding:2rem;box-shadow:-2px 0 10px #0000001a}.friends-section h2{margin:0 0 1rem;color:#333;font-size:1.5rem}.coming-soon{color:#999;font-style:italic}.modal-overlay{position:fixed;inset:0;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:#fff;padding:2.5rem;border-radius:12px;width:90%;max-width:500px;box-shadow:0 10px 40px #0000004d}.modal-content h2{margin:0 0 2rem;color:#333;font-size:1.8rem}.modal-content .form-group{margin-bottom:1.5rem}.modal-content .form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#333}.modal-content .form-group select,.modal-content .form-group input[type=text]{width:100%;padding:.75rem;border:2px solid #e0e0e0;border-radius:6px;font-size:1rem;transition:border-color .3s}.modal-content .form-group select:focus,.modal-content .form-group input[type=text]:focus{outline:none;border-color:#667eea}.modal-content .form-group.checkbox{display:flex;align-items:center}.modal-content .form-group.checkbox label{display:flex;align-items:center;gap:.5rem;margin:0;cursor:pointer}.modal-content .form-group.checkbox input[type=checkbox]{width:20px;height:20px;cursor:pointer}.modal-actions{display:flex;gap:1rem;margin-top:2rem}.btn-submit,.btn-cancel{flex:1;padding:.875rem;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s}.btn-submit{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}.btn-submit:disabled{opacity:.6;cursor:not-allowed}.btn-cancel:hover:not(:disabled){background-color:#d0d0d0}@media(max-width:1024px){.lobby-page{flex-direction:column}.lobby-sidebar{width:100%;box-shadow:0 -2px 10px #0000001a}}@media(max-width:768px){.lobby-container{padding:1rem}.lobby-header{flex-direction:column;gap:1rem;align-items:flex-start}.lobby-filters{flex-wrap:wrap}.game-card{flex-direction:column;gap:1rem;align-items:flex-start}.game-actions{width:100%}.btn-join,.btn-view{flex:1}.game-details{flex-wrap:wrap}}.arrow-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:100}.chess-board-container{display:flex;justify-content:center;align-items:center;padding:2rem}.chess-board{display:inline-grid;grid-template-columns:repeat(14,1fr);gap:0;position:relative}.board-row{display:contents}.square{width:60px;height:60px;display:flex;align-items:center;justify-content:center;position:relative;transition:all .2s}.square.corner{background-color:transparent!important;cursor:default}.square.playable{cursor:pointer}.square.playable:hover{filter:brightness(1.1)}.square.selected{box-shadow:inset 0 0 0 3px #fbbf24;z-index:10}.square.last-move-0{background-color:#dc262680!important}.square.last-move-1{background-color:#2563eb80!important}.square.last-move-2{background-color:#eab30880!important}.square.last-move-3{background-color:#16a34a80!important}.square.valid-move{background-color:#22c55e33!important}.square.hovered.valid-move{background-color:#22c55e66!important}.square.drag-over{background-color:#3b82f680!important;box-shadow:inset 0 0 0 3px #3b82f6cc}.piece{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;pointer-events:auto;cursor:grab;z-index:5;transition:opacity .2s,transform .1s}.piece:active{cursor:grabbing}.piece.dragging{opacity:.5;cursor:grabbing}.piece-image{width:90%;height:90%;object-fit:contain}.promoted-indicator{position:absolute;top:-2px;right:-2px;background:#fbbf24;color:#1f2937;border:2px solid #ffffff;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;z-index:10;pointer-events:none;box-shadow:0 2px 4px #0000004d}.valid-move-indicator{position:absolute;width:14px;height:14px;background-color:#22c55e99;border-radius:50%;pointer-events:none}.capture-indicator{position:absolute;width:100%;height:100%;border:3px solid rgba(34,197,94,.8);border-radius:50%;pointer-events:none;box-sizing:border-box}@media(max-width:1400px){.square{width:45px;height:45px}.piece{font-size:2.2rem}}@media(max-width:1200px){.square{width:40px;height:40px}.piece{font-size:2rem}}@media(max-width:1000px){.square{width:35px;height:35px}.piece{font-size:1.8rem}}@media(max-width:800px){.square{width:30px;height:30px}.piece{font-size:1.5rem}.valid-move-indicator{width:10px;height:10px}}@media(max-width:600px){.chess-board-container{padding:1rem}.square{width:25px;height:25px}.piece{font-size:1.2rem}.valid-move-indicator{width:8px;height:8px}.chess-board{border-width:2px}}.player-clock{background:#000000b3;border:2px solid;border-radius:8px;padding:8px 12px;width:140px;min-width:140px;max-width:140px;display:flex;flex-direction:column;align-items:center;gap:4px;transition:all .3s ease}.player-clock.active{background:#fffffff2;box-shadow:0 0 15px #ffffff80;transform:scale(1.05)}.player-clock.inactive{opacity:.3}.player-clock.low-time{animation:pulse 1s infinite}.clock-player{font-size:.9rem;font-weight:600;text-align:center}.clock-time{font-size:1.4rem;font-weight:700;font-family:Courier New,monospace;text-align:center;letter-spacing:1px}.clock-points{font-size:.75rem;font-weight:600;text-align:center;opacity:.8}.player-clock.low-time .clock-time{animation:blink 1s infinite}@keyframes blink{0%,50%,to{opacity:1}25%,75%{opacity:.4}}.game-over-modal-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.game-over-modal{background:linear-gradient(135deg,#1a1a2e,#16213e);border-radius:16px;padding:32px;max-width:600px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 20px 60px #00000080;animation:slideUp .3s ease;border:2px solid rgba(255,255,255,.1)}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.game-over-title{font-size:2rem;font-weight:700;text-align:center;margin-bottom:32px;color:#fff;text-shadow:0 2px 10px rgba(255,255,255,.2)}.game-over-content{margin-bottom:24px}.placements-list{display:flex;flex-direction:column;gap:16px}.placement-item{display:flex;align-items:center;gap:16px;padding:16px;background:#ffffff0d;border-radius:12px;border-left:4px solid;transition:all .3s ease}.placement-item:hover{background:#ffffff14;transform:translate(4px)}.placement-rank{min-width:60px}.placement-number{font-size:2rem;font-weight:700;display:flex;align-items:baseline;gap:2px}.placement-suffix{font-size:1rem;opacity:.8}.placement-player{flex:1;display:flex;flex-direction:column;gap:4px}.player-name{font-size:1.2rem;font-weight:600;color:#fff}.player-rating{font-size:.9rem;color:#aaa}.rating-change{font-weight:600}.placement-points{font-size:1rem;font-weight:600;color:#eab308;min-width:70px;text-align:right}.teams-results{display:flex;flex-direction:column;gap:24px}.team-section{padding:20px;border-radius:12px;background:#ffffff0d}.team-section.winners{border:2px solid #16a34a;background:#16a34a1a}.team-section.losers{border:2px solid #dc2626;background:#dc26261a}.team-title{font-size:1.5rem;font-weight:700;margin-bottom:16px;color:#fff}.team-section.winners .team-title{color:#16a34a}.team-section.losers .team-title{color:#dc2626}.team-players{display:flex;flex-direction:column;gap:12px}.team-player-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background:#ffffff0d;border-radius:8px}.team-player-item .player-name{font-size:1.1rem;font-weight:600;color:#fff}.team-player-item .player-rating{font-size:.95rem;color:#aaa}.game-over-actions{display:flex;justify-content:center;gap:16px;margin-top:24px}.btn-close{padding:12px 32px;font-size:1rem;font-weight:600;border:none;border-radius:8px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #667eea66}.btn-close:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea99}.btn-close:active{transform:translateY(0)}@media(max-width:600px){.game-over-modal{padding:24px}.game-over-title,.placement-number{font-size:1.5rem}.player-name{font-size:1rem}}.chat-header{padding:0;margin:0 0 1rem;border-bottom:2px solid #667eea;padding-bottom:.5rem;display:flex;justify-content:space-between;align-items:center}.chat-header h3{margin:0;font-size:1.2rem;color:#333;font-weight:700}.chat-hint{font-size:12px;color:#666;font-style:italic}.chat-messages{flex:1;overflow-y:auto;padding:1rem;background:#f9f9f9;border-radius:8px;margin-bottom:1rem;min-height:200px;display:flex;flex-direction:column;gap:12px}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:#f0f0f0}.chat-messages::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}.chat-messages::-webkit-scrollbar-thumb:hover{background:#999}.chat-empty{text-align:center;color:#999;padding:2rem;font-style:italic}.chat-message{padding:8px 12px;background:#fff;border-radius:6px;border-left:3px solid #ddd;box-shadow:0 1px 3px #0000001a}.chat-message.own-message{background:#e8f0fe}.chat-message.team-message{background:#f3e8ff}.chat-message.spectator-message{background:#f5f5f5;opacity:.9}.message-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.message-sender{font-weight:600;font-size:13px;color:#333}.message-time{font-size:11px;color:#999}.message-text{font-size:14px;color:#555;word-wrap:break-word;line-height:1.4}.message-badge{display:inline-block;font-size:10px;padding:2px 6px;border-radius:10px;margin-top:4px;font-weight:600;text-transform:uppercase}.team-badge{background:#8b5cf6;color:#fff}.spectator-badge{background:#999;color:#fff}.chat-input-form{display:flex;gap:.5rem}.chat-input{flex:1;padding:.75rem;border:2px solid #e5e7eb;border-radius:8px;font-size:.95rem;transition:border-color .3s;background:#fff;color:#333}.chat-input::placeholder{color:#999}.chat-send-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer;transition:transform .2s;font-size:.95rem}.chat-send-btn:hover:not(:disabled){transform:translateY(-1px)}.chat-send-btn:disabled{background:#e5e7eb;color:#999;cursor:not-allowed;transform:none}.game-page{height:100vh;width:100vw;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;flex-direction:column;overflow:hidden;position:fixed;top:0;left:0;padding-top:60px}.game-loading,.game-error{display:flex;flex-direction:column;justify-content:center;align-items:center;height:calc(100vh - 60px);font-size:1.2rem;color:#fff;gap:1rem}.game-error button{background:#fff;color:#764ba2;border:none;padding:.875rem 2rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s}.game-error button:hover{transform:scale(1.05)}.game-container{flex:1;display:grid;grid-template-columns:350px 1fr 350px;grid-template-rows:1fr;gap:0;width:100%;height:calc(100vh - 60px);overflow:hidden;max-width:100vw}.game-sidebar.left{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1.5rem;overflow-y:auto;border-right:1px solid rgba(255,255,255,.3)}.game-board-area{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:1.5rem;gap:20px;overflow:hidden}.game-sidebar.right{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1.5rem;overflow-y:auto;border-left:1px solid rgba(255,255,255,.3);display:flex;flex-direction:column}.info-section{margin-bottom:1.5rem}.info-section h2{margin:0 0 1rem;font-size:1.2rem;color:#333;font-weight:700;border-bottom:2px solid #667eea;padding-bottom:.5rem}.info-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid #f0f0f0}.info-item:last-child{border-bottom:none}.info-item .label{font-weight:500;color:#666;font-size:.9rem}.info-item .value{color:#333;font-weight:600}.status-badge{padding:.25rem .75rem;border-radius:4px;font-size:.85rem;text-transform:uppercase;font-weight:700}.status-badge[data-status=pending]{background-color:#fef3c7;color:#92400e}.status-badge[data-status=active]{background-color:#d1fae5;color:#065f46}.status-badge[data-status=completed]{background-color:#e5e7eb;color:#374151}.current-turn{text-align:center;padding:1rem;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;color:#fff}.turn-indicator{font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.turn-player{font-size:1rem;margin-bottom:.5rem}.your-turn{background:#fff3;padding:.5rem 1rem;border-radius:6px;font-weight:600;margin-top:.5rem;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.game-ended{text-align:center;color:#fffc;font-style:italic;padding:1rem}.btn-resign{background-color:#dc2626;color:#fff;border:none;padding:.875rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .3s;width:100%}.btn-resign:hover{background-color:#b91c1c}.btn-resign.confirm{background-color:#f59e0b;animation:pulse-confirm 1s ease-in-out infinite}.btn-resign.confirm:hover{background-color:#d97706}@keyframes pulse-confirm{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.players-list{display:flex;flex-direction:column;gap:.75rem}.player-item{padding:.875rem;background-color:#f9f9f9;border-radius:8px;border-left:4px solid;transition:all .2s}.player-item.current-player{background:linear-gradient(90deg,#667eea1a,#fff);box-shadow:0 2px 8px #667eea33}.player-item.inactive{opacity:.5}.player-name{display:flex;align-items:center;gap:.5rem;font-weight:600;color:#333;margin-bottom:.5rem;font-size:.95rem}.player-color-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.player-stats{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;color:#666}.player-stats .eliminated{color:#dc2626;font-weight:500;font-size:.8rem}.player-stats .inactive{color:#6b7280;font-weight:500;font-size:.8rem}.game-result{background:linear-gradient(135deg,#10b981,#059669);color:#fff;padding:1.5rem;border-radius:8px;text-align:center;font-size:1.1rem;font-weight:600;margin-bottom:1rem}.chat-container{flex:1;display:flex;flex-direction:column;height:100%}.chat-messages{flex:1;overflow-y:auto;padding:1rem;background:#f9f9f9;border-radius:8px;margin-bottom:1rem;min-height:200px}.chat-placeholder{text-align:center;color:#999;padding:2rem;font-style:italic}.chat-input-area{display:flex;gap:.5rem}.chat-input{flex:1;padding:.75rem;border:2px solid #e5e7eb;border-radius:8px;font-size:.95rem;transition:border-color .3s}.chat-input:focus{outline:none;border-color:#667eea}.chat-send-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer;transition:transform .2s}.chat-send-btn:hover{transform:scale(1.05)}.chat-send-btn:disabled{opacity:.5;cursor:not-allowed}@media(max-width:1400px){.game-container{grid-template-columns:280px 1fr 280px}}@media(max-width:1200px){.game-container{grid-template-columns:1fr;grid-template-rows:auto 1fr auto;height:auto;min-height:calc(100vh - 60px)}.game-sidebar.left,.game-sidebar.right{border:none;border-bottom:1px solid rgba(255,255,255,.3)}.game-board-area{min-height:500px}}@media(max-width:768px){.game-page{padding:0}.game-container{gap:0}.game-sidebar{padding:1rem}.info-section h2{font-size:1.1rem}.game-board-area{padding:1rem}}.board-with-side-clocks{display:flex;align-items:center;gap:20px}.clock-top,.clock-bottom{display:flex;justify-content:center}.clock-left,.clock-right{display:flex;align-items:center}.profile-page{min-height:calc(100vh - 60px);background-color:#f5f5f5;padding:2rem}.profile-loading{display:flex;justify-content:center;align-items:center;height:calc(100vh - 60px);font-size:1.2rem;color:#666}.profile-error{display:flex;flex-direction:column;justify-content:center;align-items:center;height:calc(100vh - 60px);text-align:center;padding:2rem}.profile-error h2{color:#e74c3c;font-size:2rem;margin-bottom:1rem}.profile-error p{color:#666;font-size:1.1rem}.profile-container{max-width:900px;margin:0 auto;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a;overflow:hidden}.profile-header{background:linear-gradient(135deg,#667eea,#764ba2);padding:3rem 2rem;display:flex;align-items:center;gap:2rem}.avatar-container{position:relative}.avatar-container.clickable{cursor:pointer}.avatar{width:120px;height:120px;border-radius:50%;overflow:hidden;background:#fff;display:flex;align-items:center;justify-content:center;border:4px solid white;box-shadow:0 4px 15px #0003}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-placeholder{font-size:3rem;font-weight:700;color:#667eea}.avatar-overlay{position:absolute;inset:0;background:#0009;border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s;color:#fff;font-size:.9rem;font-weight:500}.avatar-container.clickable:hover .avatar-overlay{opacity:1}.profile-info h1{color:#fff;margin:0;font-size:2.5rem}.rating{color:#ffffffe6;font-size:1.2rem;margin-top:.5rem}.profile-content{padding:2rem;display:flex;flex-direction:column;gap:2rem}.profile-section h2{margin:0 0 1rem;color:#333;font-size:1.5rem}.bio-display{position:relative}.bio-display p{color:#666;line-height:1.6;margin:0;padding-right:100px}.btn-edit{position:absolute;top:0;right:0;background-color:#667eea;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;transition:background-color .3s}.btn-edit:hover{background-color:#764ba2}.bio-edit textarea{width:100%;padding:.75rem;border:2px solid #e0e0e0;border-radius:6px;font-size:1rem;font-family:inherit;resize:vertical}.bio-edit textarea:focus{outline:none;border-color:#667eea}.bio-actions{display:flex;gap:1rem;margin-top:1rem}.btn-save,.btn-cancel{padding:.5rem 1.5rem;border:none;border-radius:6px;font-size:1rem;cursor:pointer;transition:all .3s}.btn-save{background-color:#667eea;color:#fff}.btn-save:hover{background-color:#764ba2}.btn-cancel{background-color:#e0e0e0;color:#333}.btn-cancel:hover{background-color:#d0d0d0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1.5rem}.stat-card{background:linear-gradient(135deg,#667eea,#764ba2);padding:1.5rem;border-radius:10px;text-align:center;color:#fff;box-shadow:0 4px 10px #667eea4d}.stat-value{font-size:2.5rem;font-weight:700;margin-bottom:.5rem}.stat-label{font-size:.95rem;opacity:.9}.game-history{display:flex;flex-direction:column;gap:1rem}.history-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background-color:#f9f9f9;border-radius:8px;border-left:4px solid #667eea}.history-info{display:flex;flex-direction:column;gap:.25rem}.game-mode{font-weight:500;color:#333}.game-date{font-size:.9rem;color:#999}.history-result{font-weight:600;color:#667eea}.no-history{color:#999;text-align:center;padding:2rem;font-style:italic}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:#333;font-weight:500}.input-field{width:100%;padding:.75rem;border:2px solid #e0e0e0;border-radius:6px;font-size:1rem;font-family:inherit}.input-field:focus{outline:none;border-color:#667eea}.form-group small{display:block;margin-top:.25rem;color:#999;font-size:.85rem}.ratings-list{display:flex;flex-direction:column;gap:1rem}.rating-item{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;color:#fff}.rating-mode{font-weight:500;font-size:1.1rem}.rating-details{display:flex;align-items:center;gap:.75rem}.rating-value{font-size:1.5rem;font-weight:700}.rating-games{font-size:.9rem;opacity:.9}.no-ratings{color:#999;text-align:center;padding:2rem;font-style:italic}@media(max-width:768px){.profile-page{padding:1rem}.profile-header{flex-direction:column;text-align:center;padding:2rem 1rem}.profile-info h1{font-size:2rem}.stats-grid{grid-template-columns:repeat(2,1fr)}}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}
