@import url(https://fonts.googleapis.com/css?family=Raleway:300,400,500,700&display=swap);.App{display:flex;flex-direction:column;width:100vw;height:100dvh;overflow:hidden}.player-score-area-wrapper{width:100%;flex-shrink:0}.player-score-area{display:flex;flex-direction:row;align-items:center;justify-content:center;grid-gap:12px;gap:12px;padding:9px 12px;background:rgb(95.52,64.476,134.524)}.player-score-area .vs-divider{color:hsla(0,0%,100%,.6);font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:2px}.game-status-bar{display:flex;align-items:center;justify-content:center;grid-gap:16px;gap:16px;padding:4px 16px;background:rgb(83.28,56.214,117.286);color:hsla(0,0%,100%,.7);font-size:12px;font-weight:500;letter-spacing:.5px}.game-status-bar .opponent-action-indicator,.game-status-bar .stage-indicator{color:#d4af37;font-weight:600}.game-status-bar.game-over{font-weight:600;color:#fff}.game-status-bar.game-over.won{background:#4caf50}.game-status-bar.game-over.lost{background:rgb(177.7777777778,144.8888888889,38.2222222222)}.player-card{display:flex;align-items:center;grid-gap:8px;gap:8px;padding:6px 20px;border-radius:6px;transition:all .3s ease;position:relative}.player-card.active{background:hsla(0,0%,100%,.15);outline:2px solid hsla(0,0%,100%,.4);outline-offset:-2px}.player-card .avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#f093fb,#f5576c);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:13px;border:2px solid #fff;flex-shrink:0}.player-card .player-info{display:flex;flex-direction:column;grid-gap:0;gap:0}.player-card .player-info .username{color:hsla(0,0%,100%,.9);font-size:12px}.player-card .player-info .score{color:#fff;font-size:22px;font-weight:700;line-height:1.1}.move-history-sidebar{display:flex;flex-direction:column;overflow:hidden;min-height:0}.move-history-sidebar .sidebar-header{padding:8px 4px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.move-history-sidebar .sidebar-header h3{display:none}.move-history-sidebar .sidebar-header .move-count{font-size:12px;color:#888;background:#f0f0f0;padding:4px 8px;border-radius:12px}.move-history-sidebar .sidebar-content{flex:1 1;overflow-y:auto;padding:12px;min-height:0}.move-history-sidebar .sidebar-content::-webkit-scrollbar{width:6px}.move-history-sidebar .sidebar-content::-webkit-scrollbar-track{background:#f5f5f5;border-radius:3px}.move-history-sidebar .sidebar-content::-webkit-scrollbar-thumb{background:rgb(199.36,182.668,220.332);border-radius:3px}.move-history-sidebar .sidebar-content::-webkit-scrollbar-thumb:hover{background:rgb(172.84,148.192,203.808)}.move-history-sidebar .empty-state{text-align:center;padding:40px 20px;color:#888;font-size:14px}.move-history-sidebar .moves-list{display:flex;flex-direction:column;grid-gap:8px;gap:8px}.move-history-sidebar .move-item{padding:12px 14px;border-radius:10px}.move-history-sidebar .move-item.your-move{background:linear-gradient(135deg,rgb(212.62,199.906,228.594),rgb(225.88,217.144,236.856));margin-left:20px}.move-history-sidebar .move-item.your-move .move-player{color:rgb(95.52,64.476,134.524)}.move-history-sidebar .move-item.their-move{background:#f5f5f5;margin-right:20px}.move-history-sidebar .move-item.their-move .move-player{color:#555}.move-history-sidebar .move-item .move-info{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.move-history-sidebar .move-item .move-info .move-player{display:flex;align-items:center;grid-gap:6px;gap:6px;font-weight:600;font-size:13px}.move-history-sidebar .move-item .move-info .move-result{font-size:14px;font-weight:700;color:#333}.move-history-sidebar .move-item .move-info .move-type-pill{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.04em;padding:1px 6px;border-radius:4px;background:#fff3e0;color:#b35c00}.move-history-sidebar .move-item .move-time{font-size:11px;color:#888}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;animation:modalFadeIn .2s ease}.modal{background:#fff;border-radius:16px;width:90%;max-height:80vh;overflow:hidden;animation:modalSlideIn .2s ease}.modal .modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #eee;background:linear-gradient(135deg,#7851a9,rgb(95.52,64.476,134.524))}.modal .modal-header h3{margin:0;font-size:18px;font-weight:600;color:#fff;flex:1 1}.modal .modal-header .close-btn{flex-shrink:0;width:32px;height:32px;border-radius:50%;border:none;background:hsla(0,0%,100%,.2);color:#fff;font-size:24px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease}.modal .modal-header .close-btn:hover{background:hsla(0,0%,100%,.3)}.modal .modal-content{padding:20px;overflow-y:auto;max-height:calc(80vh - 60px)}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-content table{width:100%;border-collapse:collapse}.modal-content table th{background:#7851a9;color:#fff;padding:10px 12px;text-align:left;font-size:14px}.modal-content table td{padding:10px 12px;border-bottom:1px solid #eee;font-size:14px}.modal-content table tr:hover td{background:#f9f9f9}.confirmation-modal-content{text-align:center}.confirmation-modal-content .confirmation-message{margin:0 0 24px;font-size:15px;color:#333;line-height:1.5}.confirmation-modal-content .confirmation-buttons{display:flex;grid-gap:12px;gap:12px;justify-content:center}.confirmation-modal-content .confirmation-buttons button{padding:10px 24px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.confirmation-modal-content .confirmation-buttons .cancel-btn{background:#f0f0f0;color:#333}.confirmation-modal-content .confirmation-buttons .cancel-btn:hover{background:#e0e0e0}.confirmation-modal-content .confirmation-buttons .confirm-btn{background:#7851a9;color:#fff}.confirmation-modal-content .confirmation-buttons .confirm-btn:hover{background:rgb(95.52,64.476,134.524)}.confirmation-modal-content .confirmation-buttons .confirm-btn.danger{background:#dc3545}.confirmation-modal-content .confirmation-buttons .confirm-btn.danger:hover{background:rgb(189.2151898734,32.7848101266,47.7721518987)}.error-modal-content{text-align:center}.error-modal-content .error-message{margin:0;font-size:15px;color:#333;line-height:1.5}.more-menu{position:relative}.more-menu .more-trigger{display:flex;flex-direction:column;align-items:center;grid-gap:2px;gap:2px;padding:4px 8px;border:none;background:transparent;color:#fff;cursor:pointer;margin:0}.more-menu .more-trigger .icon{width:20px;height:20px}.more-menu .more-trigger .label{font-size:8px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.more-menu .more-trigger:hover{opacity:.8}.more-menu .more-dropdown{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);margin-bottom:8px;background:#fff;border-radius:12px;min-width:200px;overflow:hidden;z-index:100;animation:slideUp .15s ease}.more-menu .more-dropdown button{width:100%;padding:14px 16px;border:none;background:#fff;text-align:left;cursor:pointer;display:flex;align-items:center;grid-gap:12px;gap:12px;font-size:14px;color:#333;transition:background .15s ease}.more-menu .more-dropdown button:hover:not(:disabled){background:#f5f5f5}.more-menu .more-dropdown button:disabled{opacity:.4;cursor:not-allowed}.more-menu .more-dropdown button .icon{width:18px;height:18px;filter:invert(1);flex-shrink:0}@keyframes slideUp{0%{opacity:0;transform:translateX(-50%) translateY(8px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@keyframes slideUpMobile{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.more-menu .more-dropdown.more-dropdown{left:0;transform:none;animation:slideUpMobile .15s ease}}.exchange-rack-container{background:#7851a9;border-radius:10px;padding:16px;display:flex;justify-content:center;margin-top:16px}.exchange-view .btn-group{margin-top:16px;margin-bottom:0}.landscape-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#7851a9,rgb(71.04,47.952,100.048));z-index:9999;align-items:center;justify-content:center}.landscape-overlay .landscape-overlay-content{text-align:center;color:#fff;padding:20px}.landscape-overlay .landscape-overlay-content .rotate-icon{font-size:64px;display:block;margin-bottom:20px;animation:tilt 1.5s ease-in-out infinite}.landscape-overlay .landscape-overlay-content h2{font-size:24px;margin-bottom:10px}.landscape-overlay .landscape-overlay-content p{font-size:16px;opacity:.8}@keyframes tilt{0%,to{transform:rotate(0deg)}25%{transform:rotate(-15deg)}75%{transform:rotate(15deg)}}@media(max-width:1000px)and (max-height:500px)and (orientation:landscape){.landscape-overlay{display:flex}}.game-container{flex:1 1;flex-direction:column;background:repeating-linear-gradient(-45deg,rgb(71.04,47.952,100.048),rgb(71.04,47.952,100.048) 12px,rgb(46.56,31.428,65.572) 0,rgb(46.56,31.428,65.572) 24px)}.game-container,.game-container .game-content-wrapper{width:100%;box-sizing:border-box;display:flex;overflow:hidden}.game-container .game-content-wrapper{flex:1 1;align-items:center;justify-content:center;padding:8px;min-height:0;container-type:size;container-name:game-area}.game-container .game-panel{max-height:100%;max-width:100%}.game-container .game-panel,.game-controls{display:flex;flex-direction:column;align-items:center}.game-controls{width:100%;flex-shrink:0}.tile-ledge{background:linear-gradient(0deg,#7851a9,rgb(159.58,130.954,195.546) 3%,#7851a9 8%,rgb(83.28,56.214,117.286) 15%,transparent 18%,transparent);container-type:inline-size;container-name:tile-ledge}.options-bar,.tile-ledge{width:100%;display:flex;justify-content:center;align-items:center;padding:8px;box-sizing:border-box}.options-bar{grid-gap:8px;gap:8px;background:linear-gradient(135deg,#7851a9,rgb(95.52,64.476,134.524))}.options-bar .play-btn{background:linear-gradient(180deg,#ffd966,#e6b800);color:#5c4a00;border:none;padding:8px 24px;border-radius:50px;font-size:16px;font-weight:700;cursor:pointer;letter-spacing:1px;margin:0}.options-bar .play-btn:hover:not(:disabled){background:linear-gradient(180deg,#ffe080,#f0c620)}.options-bar .play-btn:disabled{opacity:.5;cursor:not-allowed}.options-bar .option-btn{display:flex;flex-direction:column;align-items:center;grid-gap:2px;gap:2px;padding:4px 6px;border:none;background:transparent;color:#fff;cursor:pointer;margin:0}.options-bar .option-btn .icon{width:20px;height:20px}.options-bar .option-btn .label{font-size:8px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.options-bar .option-btn:hover:not(:disabled){opacity:.8}.options-bar .option-btn:disabled{opacity:.4;cursor:not-allowed}.exchange-view{display:flex;flex-direction:column;align-items:center}.btn-group{display:flex;grid-gap:12px;gap:12px;justify-content:center;margin-bottom:20px}.btn-group button{padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-group button:first-child{background:#f0f0f0;color:#333}.btn-group button:first-child:hover{background:#e0e0e0}.btn-group button:last-child{background:#7851a9;color:#fff}.btn-group button:last-child:hover{background:rgb(95.52,64.476,134.524)}.how-to-play{flex:1 1;background:#f8f9fa;padding:40px 16px;overflow-y:auto;display:flex;justify-content:center;align-items:flex-start}.htp-card{width:100%;max-width:520px;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 4px 20px rgba(0,0,0,.12)}.htp-card-header{background:#7851a9;padding:14px 20px 20px}.htp-header-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.htp-header-nav .htp-dots{display:flex;grid-gap:8px;gap:8px}.htp-header-nav .htp-dots .htp-dot{width:8px;height:8px;border-radius:50%;background:hsla(0,0%,100%,.35);transition:background .2s}.htp-header-nav .htp-dots .htp-dot.active{background:#fff}.htp-card-title{color:#fff;font-size:22px;font-weight:700;margin:0;text-align:center}.htp-nav-btn{padding:6px 14px;border:1px solid hsla(0,0%,100%,.4);border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;background:hsla(0,0%,100%,.15);color:#fff;transition:background .15s}.htp-nav-btn:hover{background:hsla(0,0%,100%,.25)}.htp-nav-btn.htp-hidden{visibility:hidden;pointer-events:none}.htp-card-body{padding:24px}.htp-tile-row{grid-gap:6px;gap:6px;flex-wrap:wrap}.htp-tile,.htp-tile-row{display:flex;align-items:center;justify-content:center}.htp-tile{width:40px;height:40px;background:#fff;border:1.5px solid #ddd;border-radius:6px;font-weight:700;font-size:13px;flex-shrink:0}.htp-tile.htp-tile-board{background:#999;color:#fff;border-color:#999}.htp-tile.htp-tile-new{border:2px solid #7851a9}.htp-tile.htp-tile-word{font-size:11px}.htp-tile.htp-tile-ignored{opacity:.35}.htp-tile-equals{font-size:13px;color:#888}.htp-tile-result{background:#7851a9;color:#fff;border-radius:6px;padding:8px 12px;font-weight:700;font-size:13px}.htp-formula-container{background:#f8f8f8;border-radius:10px;padding:16px;display:flex;justify-content:center;align-items:center;grid-gap:8px;gap:8px;flex-wrap:wrap;margin:16px 0}.htp-intro{font-size:15px;margin-bottom:20px}.htp-intro,.htp-text{color:#333;text-align:center;line-height:1.6}.htp-text{font-size:13px;margin-bottom:12px}.htp-board-screenshot{width:75%;border-radius:8px;display:block;margin:0 auto 12px}.htp-rack-row{display:flex;grid-gap:6px;gap:6px;justify-content:center;margin-bottom:20px}.htp-turn-options{display:flex;grid-gap:10px;gap:10px}@media(max-width:480px){.htp-turn-options{flex-direction:column}}.htp-turn-option{flex:1 1;background:#f8f8f8;border-radius:10px;padding:14px 10px;text-align:center}.htp-turn-option .htp-turn-title{font-weight:700;font-size:14px;margin-bottom:6px;color:#222}.htp-turn-option .htp-turn-desc{font-size:12px;color:#666;line-height:1.4}.htp-turn-option .htp-penalty-badge{display:inline-block;margin-top:8px;background:#fff3e0;color:#b45309;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px}.htp-placement-legend{display:flex;align-items:center;grid-gap:8px;gap:8px;justify-content:center;margin-bottom:16px;font-size:12px;color:#333}.htp-placement-examples{display:flex;flex-direction:column;grid-gap:12px;gap:12px;margin-bottom:12px}.htp-placement-example{border-radius:8px;padding:12px}.htp-placement-example .htp-tile-row{flex-wrap:nowrap}.htp-placement-example.valid{background:#e8f5e9;border:1.5px solid #66bb6a}.htp-placement-example.invalid{background:#fce4ec;border:1.5px solid #ef9a9a}.htp-placement-example .htp-example-label{font-weight:700;font-size:12px;margin-bottom:8px;text-align:center}.htp-placement-example.valid .htp-example-label{color:#2e7d32}.htp-placement-example.invalid .htp-example-label{color:#c62828}.htp-example-or{margin:8px 0}.htp-example-caption,.htp-example-or{text-align:center;font-size:11px;color:#666}.htp-example-caption{margin-top:8px;line-height:1.4}.htp-tile-gap{font-size:16px;color:#ccc;align-self:center;flex-shrink:0}.htp-tile-ignored-wrap{display:flex;flex-direction:column;align-items:center}.htp-tile-ignored-label{font-size:9px;color:#999;text-align:center;margin-top:2px;text-transform:uppercase;letter-spacing:.5px}.htp-rules-list{margin:0;text-align:center;font-size:13px;color:#333;line-height:1.9}.htp-rules-list p{margin:0}.htp-read-aloud{font-style:italic;font-size:13px;color:#666;width:100%;text-align:center;margin:8px 0 0}.htp-score-callout{background:#e8f5e9;border-radius:8px;padding:12px 16px;font-size:13px;color:#2e7d32;margin-top:12px;text-align:center}.htp-tile-section-label{font-size:11px;font-weight:600;color:#999;text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;text-align:center}.htp-tile-grid+.htp-tile-section-label{margin-top:16px}.htp-tile-grid{display:flex;flex-wrap:wrap;grid-gap:10px;gap:10px;justify-content:center}.htp-tile-grid-item{display:flex;flex-direction:column;align-items:center;grid-gap:3px;gap:3px}.htp-tile-count{font-size:11px;color:#888}.htp-tile-rare{font-size:9px;color:#7851a9;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.htp-card-footer{padding:12px 24px;border-top:1px solid #eee;text-align:center;font-size:.75rem;color:#aaa}.htp-card-footer a{color:#aaa;text-decoration:none}.htp-card-footer a:hover{text-decoration:underline}:root{--tile-size:42px}.games-sidebar{width:280px;background:#f8f9fa;border-right:1px solid #e0e0e0;flex-shrink:0;align-self:stretch;overflow-y:auto;display:flex;flex-direction:column;padding:16px;transition:transform .3s ease}@media(max-width:768px){.games-sidebar{position:fixed;top:64px;left:0;bottom:0;width:280px;max-width:85vw;z-index:900;transform:translateX(-100%)}.games-sidebar.open{transform:translateX(0)}}.how-to-play-link{grid-gap:8px;gap:8px;padding:12px 20px;margin-bottom:12px;background:#fff;border:1px solid #e0e0e0;border-radius:8px;color:#7851a9;font-size:15px;font-weight:600;text-decoration:none;transition:background .15s ease,border-color .15s ease}.how-to-play-link,.how-to-play-link .link-icon{display:flex;align-items:center;justify-content:center}.how-to-play-link .link-icon{width:22px;height:22px;border-radius:50%;background:#7851a9;color:#fff;font-size:14px;font-weight:700}.how-to-play-link:hover{background:rgb(239.14,234.382,245.118);border-color:#7851a9}.new-game-container{position:relative;margin-bottom:20px}.create-game-btn{width:100%;padding:14px 20px;margin:0;background:linear-gradient(135deg,#7851a9,rgb(95.52,64.476,134.524));color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;grid-gap:8px;gap:8px}.create-game-btn .btn-icon{font-size:24px;font-weight:700;line-height:1}.create-game-btn.disabled,.create-game-btn:disabled{background:linear-gradient(135deg,#999,#777);cursor:not-allowed;opacity:.7}.new-game-menu{position:absolute;top:100%;left:0;right:0;margin-top:8px;background:#fff;border-radius:8px;border:1px solid #e0e0e0;overflow:visible;z-index:100;animation:slideDown .15s ease}.new-game-menu>button{width:100%;padding:10px 16px;margin:0;border:none;background:#fff;text-align:left;cursor:pointer;display:flex;align-items:center;grid-gap:10px;gap:10px;font-size:14px;color:#333;transition:background .15s ease}.new-game-menu>button:first-child{border-radius:8px 8px 0 0}.new-game-menu>button:hover{background:#f5f5f5}.new-game-menu>button:not(:last-child){border-bottom:1px solid #eee}.menu-icon{font-size:18px;width:24px;text-align:center;flex-shrink:0}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.sidebar-section{margin-bottom:24px}.sidebar-section:last-child{margin-bottom:0}.section-header{display:flex;align-items:center;grid-gap:8px;gap:8px;padding:8px 0;margin-bottom:8px}.section-header .header-icon{font-size:18px}.section-header h3{font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#333;margin:0}.section-header .clear-completed-btn{margin:0 0 0 auto;background:none;border:none;font-size:12px;font-weight:600;color:#999;cursor:pointer;padding:0;line-height:1;align-self:center}.section-header .clear-completed-btn:hover{color:#555}.game-list{display:flex;flex-direction:column;grid-gap:8px;gap:8px}.game-item{display:flex;align-items:center;grid-gap:12px;gap:12px;padding:12px;background:#fff;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.game-item:hover{background:#f5f5f5;border-color:#7851a9}.game-item.active{background:rgb(239.14,234.382,245.118);border-color:#7851a9;border-width:2px;padding:11px}.game-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#f093fb,#f5576c);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:16px;flex-shrink:0;border:2px solid #fff;box-shadow:0 2px 4px rgba(0,0,0,.1)}.game-info{flex:1 1;min-width:0}.game-opponent{font-weight:600;font-size:14px;color:#333;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-score{font-size:13px;color:#666}.game-result-container{position:relative;width:24px;height:24px;flex-shrink:0}.game-result,.hide-game-btn{position:absolute;top:0;left:0;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:opacity .15s ease}.game-result{font-size:12px;font-weight:700}.game-result.win{background:rgba(76,175,80,.15);color:#4caf50}.game-result.loss{background:rgba(212,175,55,.15);color:#d4af37}.game-result.tie{background:hsla(0,0%,53.3%,.15);color:#888}.hide-game-btn{border:none;padding:0;margin:0;background:hsla(0,0%,60%,.15);color:#999;font-size:16px;font-weight:400;cursor:pointer;opacity:0}.hide-game-btn:hover{background:rgba(220,53,69,.15);color:#dc3545}@media(hover:hover){.game-item.completed:hover .game-result{opacity:0}.game-item.completed:hover .hide-game-btn{opacity:1}}.game-item.completed{opacity:.8}.game-item.completed.win{border-left:3px solid #4caf50}.game-item.completed.loss{border-left:3px solid #d4af37}.game-item.completed.tie{border-left:3px solid #888}.empty-state{padding:20px 12px;text-align:center;color:#999;font-size:13px;font-style:italic}.games-sidebar::-webkit-scrollbar{width:6px}.games-sidebar::-webkit-scrollbar-track{background:#f1f1f1}.games-sidebar::-webkit-scrollbar-thumb{background:rgb(172.84,148.192,203.808);border-radius:3px}.games-sidebar::-webkit-scrollbar-thumb:hover{background:#7851a9}.create-game-error{color:#ff6b6b;font-size:13px;text-align:center;padding:0 20px;margin:-12px 0 12px}.challenge-in-menu{display:flex;flex-direction:column;grid-gap:4px;gap:4px;padding:6px 16px 10px}.challenge-search-row{display:flex;align-items:center;grid-gap:10px;gap:10px}.challenge-search-input{width:100%;padding:8px 10px;margin:0;border-radius:6px;border:1px solid #d0d0d0;background:#f9f9f9;color:#333;font-size:13px;box-sizing:border-box}.challenge-search-input::-moz-placeholder{color:#aaa}.challenge-search-input::placeholder{color:#aaa}.challenge-search-input:focus{outline:none;border-color:#7851a9;background:#fff}.challenge-search-results{margin-top:4px;border:1px solid #e0e0e0;border-radius:6px;overflow:hidden;background:#fff}.search-hint{padding:8px 10px;font-size:12px;color:#999}.search-result-item{display:flex;align-items:center;grid-gap:10px;gap:10px;width:100%;padding:8px 10px;margin:0;background:none;border:none;color:#333;cursor:pointer;text-align:left;font-size:13px}.search-result-item:hover{background:#f5f5f5}.search-result-item:not(:last-child){border-bottom:1px solid #eee}.challenge-send-label{margin-left:auto;font-size:11px;color:#7851a9;font-weight:600}.challenge-banner{display:flex;align-items:center;justify-content:space-between;grid-gap:8px;gap:8px;padding:12px;border-radius:8px;border:1px solid #e0e0e0;background:#fff;transition:background .15s ease,border-color .15s ease}.challenge-banner.incoming{background:#f6efd7;border-color:#d4af37}.challenge-banner.sent{background:#f5f5f5;border-color:#e0e0e0}.challenge-banner-body{display:flex;align-items:center;grid-gap:10px;gap:10px;flex:1 1;min-width:0}.challenge-banner-body .game-avatar{width:32px;height:32px;font-size:13px;flex-shrink:0}.challenge-banner-text{font-size:13px;color:#333;display:flex;flex-direction:column;grid-gap:2px;gap:2px;min-width:0}.challenge-banner-text strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.challenge-pending-label{font-size:11px;color:#999;font-weight:500}.challenge-banner-actions{display:flex;align-items:center;grid-gap:6px;gap:6px;flex-shrink:0}.challenge-accept-btn{padding:4px 10px;margin:0;border-radius:4px;border:none;font-size:12px;cursor:pointer;font-weight:600;background:#4caf50;color:#fff}.challenge-accept-btn:hover{background:rgb(63.6462151394,146.5537848606,66.9960159363)}.challenge-dismiss-btn{padding:0;margin:0;width:24px;height:24px;border-radius:50%;border:none;background:hsla(0,0%,60%,.15);color:#999;font-size:16px;font-weight:400;cursor:pointer;display:flex;align-items:center;justify-content:center}.challenge-dismiss-btn:hover{background:rgba(220,53,69,.15);color:#dc3545}.games-layout{display:flex;width:100%;flex:1 1;overflow:hidden;position:relative}.games-content{flex:1 1;display:flex;flex-direction:column;overflow:auto;background:#f5f5f5;container-type:inline-size;container-name:games-content;min-width:0}.sidebar-overlay{display:none}@media(max-width:768px){.sidebar-overlay{display:block;position:fixed;top:64px;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:800}}.user-profile-page{min-height:100%;padding:40px 20px}.user-profile-content{max-width:600px;margin:0 auto;background:#fff;border-radius:12px;padding:40px;border:1px solid #e0e0e0}.error-state,.loading{text-align:center;padding:60px 20px;color:#666;font-size:16px}.error-state{color:#dc3545}.profile-header{grid-gap:24px;gap:24px;margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid #eee}.avatar-large,.profile-header{display:flex;align-items:center}.avatar-large{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#7851a9,rgb(83.28,56.214,117.286));justify-content:center;color:#fff;font-size:36px;font-weight:700;flex-shrink:0}.profile-info .profile-username{margin:0 0 4px;font-size:28px;font-weight:700;color:#333}.profile-info .join-date{margin:0;font-size:14px;color:#888}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:16px;gap:16px;margin-bottom:32px}.stat-card{background:#f8f9fa;border-radius:10px;padding:20px 12px;text-align:center}.stat-card .stat-value{font-size:28px;font-weight:700;color:#7851a9;margin-bottom:4px}.stat-card .stat-label{font-size:12px;color:#888;text-transform:uppercase;letter-spacing:.5px}.win-rate-section{background:#f8f9fa;border-radius:10px;padding:20px}.win-rate-section+.win-rate-section{margin-top:12px}.win-rate-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.win-rate-header .win-rate-label{font-size:14px;font-weight:600;color:#333}.win-rate-header .win-rate-value{font-size:24px;font-weight:700;color:#7851a9}.win-rate-bar{height:12px;background:#e57373;border-radius:6px;overflow:hidden;margin-bottom:8px}.win-rate-fill{height:100%;background:#66bb6a;border-radius:6px;transition:width .5s ease}.win-loss-counts{display:flex;justify-content:space-between;font-size:13px;font-weight:600}.win-loss-counts .wins-count{color:#28a745}.win-loss-counts .ties-count{color:#888}.win-loss-counts .losses-count{color:#dc3545}.win-rate-empty{font-size:13px;color:#aaa;text-align:center;padding:8px 0 4px}.email-section{margin-top:24px;padding-top:24px;border-top:1px solid #eee}.email-section .section-title{font-size:14px;font-weight:600;color:#333;margin-bottom:12px}.email-section .save-message{padding:10px 12px;border-radius:6px;font-size:14px;margin-bottom:12px}.email-section .save-message.success{background:rgba(40,167,69,.1);color:#28a745}.email-section .save-message.error{background:rgba(220,53,69,.1);color:#dc3545}.email-section .email-display{display:flex;align-items:center;justify-content:space-between;grid-gap:12px;gap:12px;background:#f8f9fa;padding:12px 16px;border-radius:8px}.email-section .email-display .email-value{font-size:14px;color:#666}.email-section .email-display .edit-btn{margin:0;padding:6px 14px;border:none;background:#7851a9;color:#fff;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer}.email-section .email-display .edit-btn:hover{background:rgb(95.52,64.476,134.524)}.email-section .email-edit-form .email-input{width:100%;padding:12px 14px;border:1px solid #ddd;border-radius:8px;font-size:14px;margin-bottom:12px;box-sizing:border-box}.email-section .email-edit-form .email-input:focus{outline:none;border-color:#7851a9}.email-section .email-edit-form .email-buttons{display:flex;grid-gap:10px;gap:10px;justify-content:flex-end}.email-section .email-edit-form .email-buttons button{padding:8px 16px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer}.email-section .email-edit-form .email-buttons button:disabled{opacity:.6;cursor:not-allowed}.email-section .email-edit-form .email-buttons .cancel-btn{background:#f0f0f0;color:#333}.email-section .email-edit-form .email-buttons .cancel-btn:hover:not(:disabled){background:#e0e0e0}.email-section .email-edit-form .email-buttons .save-btn{background:#7851a9;color:#fff}.email-section .email-edit-form .email-buttons .save-btn:hover:not(:disabled){background:rgb(95.52,64.476,134.524)}@media(max-width:500px){.user-profile-content{padding:24px}.profile-header{flex-direction:column;text-align:center}.stat-card .stat-value{font-size:24px}}.modern-navbar{background:linear-gradient(135deg,#7851a9,rgb(95.52,64.476,134.524));box-shadow:0 2px 8px rgba(0,0,0,.15);position:sticky;top:0;z-index:1000;padding:0;flex:none}.navbar-content{justify-content:space-between;padding:12px 24px;max-width:1400px;margin:0 auto}.navbar-content,.navbar-left{display:flex;align-items:center}.navbar-left{flex:1 1;grid-gap:12px;gap:12px}.hamburger-btn{display:none;flex-direction:column;justify-content:center;align-items:center;width:36px;height:36px;margin:0;padding:0;background:hsla(0,0%,100%,.1);border:none;border-radius:6px;cursor:pointer;grid-gap:5px;gap:5px;transition:background .2s ease}@media(max-width:768px){.hamburger-btn{display:flex}}.hamburger-btn:hover{background:hsla(0,0%,100%,.2)}.hamburger-btn span{display:block;width:20px;height:2px;background:#fff;border-radius:1px;transition:all .3s ease}.hamburger-btn.open span:first-child{transform:translateY(7px) rotate(45deg)}.hamburger-btn.open span:nth-child(2){opacity:0}.hamburger-btn.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.logo-link{display:flex;align-items:center;text-decoration:none;color:#fff}.logo-image{height:40px;width:auto}.navbar-center{flex:2 1;display:flex;justify-content:center}.nav-link{color:#fff;text-decoration:none;font-weight:500;font-size:15px;padding:8px 16px;border-radius:6px;transition:all .2s ease}.nav-link:hover{background:hsla(0,0%,100%,.15)}.navbar-right{flex:1 1;display:flex;justify-content:flex-end}.user-info{grid-gap:16px;gap:16px}.user-info,.user-profile{display:flex;align-items:center}.user-profile{grid-gap:10px;gap:10px;text-decoration:none;padding:6px 10px;border-radius:6px;transition:background .2s ease}.user-profile:hover{background:hsla(0,0%,100%,.15)}.user-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#f093fb,#f5576c);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:16px;border:2px solid #fff;box-shadow:0 2px 4px rgba(0,0,0,.2)}.btn-logout,.username{color:#fff;font-weight:500;font-size:15px}.btn-logout{margin:0;padding:8px 20px;background:hsla(0,0%,100%,.15);border:none;border-radius:6px;cursor:pointer;transition:all .2s ease}.btn-logout:hover{background:hsla(0,0%,100%,.25);transform:translateY(-1px)}.auth-buttons{display:flex;align-items:center;grid-gap:12px;gap:12px}.btn-login,.btn-signup{margin:0;padding:8px 20px;border-radius:6px;font-weight:500;transition:all .2s ease;font-size:15px;cursor:pointer}.btn-login{color:#fff;background:hsla(0,0%,100%,.1);border:1px solid hsla(0,0%,100%,.3)}.btn-login:hover{background:hsla(0,0%,100%,.2)}.btn-signup{color:#7851a9;background:#fff;border:none}.btn-signup:hover{background:#f0f0f0;transform:translateY(-1px)}.hamburger-wrap{position:relative;display:inline-flex}.hamburger-badge{position:absolute;top:-4px;right:-4px;background:#f59e0b;color:#fff;font-size:10px;font-weight:700;width:16px;height:16px;border-radius:50%;display:none;align-items:center;justify-content:center;pointer-events:none}@media(max-width:768px){.hamburger-badge{display:flex}}.login-modal-content form{display:flex;flex-direction:column;grid-gap:16px;gap:16px}.login-modal-content .form-field{display:flex;flex-direction:column;grid-gap:6px;gap:6px}.login-modal-content .form-field label{font-size:14px;font-weight:600;color:#333}.login-modal-content .form-field input{padding:12px;border:1px solid #ddd;border-radius:8px;font-size:14px;transition:border-color .2s ease}.login-modal-content .form-field input:focus{outline:none;border-color:#7851a9}.login-modal-content .form-field input::-moz-placeholder{color:#999}.login-modal-content .form-field input::placeholder{color:#999}.login-modal-content .error-message{margin:0;padding:10px;background:#fff0f0;border-radius:6px;color:#dc3545;font-size:14px;text-align:center}.login-modal-content .submit-btn{padding:12px;border:none;border-radius:8px;background:#7851a9;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s ease}.login-modal-content .submit-btn:hover:not(:disabled){background:rgb(95.52,64.476,134.524)}.login-modal-content .submit-btn:disabled{opacity:.7;cursor:not-allowed}.login-modal-content .forgot-password{margin-top:12px;text-align:center}.login-modal-content .signup-prompt{margin-top:16px;padding-top:16px;border-top:1px solid #eee;text-align:center;font-size:14px;color:#666}.login-modal-content .link-btn{background:none;border:none;color:#7851a9;font-size:14px;font-weight:600;cursor:pointer;padding:0}.login-modal-content .link-btn:hover{text-decoration:underline}.signup-modal-content form{display:flex;flex-direction:column;grid-gap:16px;gap:16px}.signup-modal-content .form-field{display:flex;flex-direction:column;grid-gap:6px;gap:6px}.signup-modal-content .form-field label{font-size:14px;font-weight:600;color:#333}.signup-modal-content .form-field input{padding:12px;border:1px solid #ddd;border-radius:8px;font-size:14px;transition:border-color .2s ease}.signup-modal-content .form-field input:focus{outline:none;border-color:#7851a9}.signup-modal-content .form-field input::-moz-placeholder{color:#999}.signup-modal-content .form-field input::placeholder{color:#999}.signup-modal-content .error-message{margin:0;padding:10px;background:#fff0f0;border-radius:6px;color:#dc3545;font-size:14px;text-align:center}.signup-modal-content .submit-btn{padding:12px;border:none;border-radius:8px;background:#7851a9;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s ease}.signup-modal-content .submit-btn:hover:not(:disabled){background:rgb(95.52,64.476,134.524)}.signup-modal-content .submit-btn:disabled{opacity:.7;cursor:not-allowed}.signup-modal-content .login-prompt{margin-top:16px;text-align:center;font-size:14px;color:#666}.signup-modal-content .login-prompt .link-btn{background:none;border:none;color:#7851a9;font-size:14px;font-weight:600;cursor:pointer;padding:0}.signup-modal-content .login-prompt .link-btn:hover{text-decoration:underline}.forgot-password-content .instructions{margin:0 0 16px;font-size:14px;color:#666;line-height:1.5}.forgot-password-content form{display:flex;flex-direction:column;grid-gap:16px;gap:16px}.forgot-password-content .form-field{display:flex;flex-direction:column;grid-gap:6px;gap:6px}.forgot-password-content .form-field label{font-size:14px;font-weight:600;color:#333}.forgot-password-content .form-field input{padding:12px;border:1px solid #ddd;border-radius:8px;font-size:14px;transition:border-color .2s ease}.forgot-password-content .form-field input:focus{outline:none;border-color:#7851a9}.forgot-password-content .form-field input::-moz-placeholder{color:#999}.forgot-password-content .form-field input::placeholder{color:#999}.forgot-password-content .error-message{margin:0;padding:10px;background:#fff0f0;border-radius:6px;color:#dc3545;font-size:14px;text-align:center}.forgot-password-content .success-message{margin:0;padding:16px;background:rgba(40,167,69,.1);border-radius:8px;color:#28a745;font-size:14px;text-align:center;line-height:1.5}.forgot-password-content .success-state{display:flex;flex-direction:column;grid-gap:16px;gap:16px}.forgot-password-content .back-btn,.forgot-password-content .submit-btn{padding:12px;border:none;border-radius:8px;background:#7851a9;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s ease}.forgot-password-content .back-btn:hover:not(:disabled),.forgot-password-content .submit-btn:hover:not(:disabled){background:rgb(95.52,64.476,134.524)}.forgot-password-content .back-btn:disabled,.forgot-password-content .submit-btn:disabled{opacity:.7;cursor:not-allowed}.forgot-password-content .back-prompt{margin-top:16px;text-align:center}.forgot-password-content .back-prompt .link-btn{background:none;border:none;color:#7851a9;font-size:14px;font-weight:600;cursor:pointer;padding:0}.forgot-password-content .back-prompt .link-btn:hover{text-decoration:underline}.reset-password-content form{display:flex;flex-direction:column;grid-gap:16px;gap:16px}.reset-password-content .form-field{display:flex;flex-direction:column;grid-gap:6px;gap:6px}.reset-password-content .form-field label{font-size:14px;font-weight:600;color:#333}.reset-password-content .form-field input{padding:12px;border:1px solid #ddd;border-radius:8px;font-size:14px;transition:border-color .2s ease}.reset-password-content .form-field input:focus{outline:none;border-color:#7851a9}.reset-password-content .form-field input::-moz-placeholder{color:#999}.reset-password-content .form-field input::placeholder{color:#999}.reset-password-content .error-message{margin:0;padding:10px;background:#fff0f0;border-radius:6px;color:#dc3545;font-size:14px;text-align:center}.reset-password-content .submit-btn{padding:12px;border:none;border-radius:8px;background:#7851a9;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s ease}.reset-password-content .submit-btn:hover:not(:disabled){background:rgb(95.52,64.476,134.524)}.reset-password-content .submit-btn:disabled{opacity:.7;cursor:not-allowed}.game-info-bar{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:rgba(0,0,0,.2);border-radius:8px;flex-shrink:0}.game-info-bar .tiles-count{color:hsla(0,0%,100%,.7);font-size:12px}.game-info-bar .stage-indicator{color:#d4af37;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:3px 8px;background:rgba(212,175,55,.15);border-radius:4px}.game-info-bar.game-over{justify-content:center;padding:12px 16px}.game-info-bar.game-over .game-over-text{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:1px}.game-info-bar.game-over.won{background:rgba(76,175,80,.2)}.game-info-bar.game-over.won .game-over-text{color:#4caf50}.game-info-bar.game-over.lost{background:rgba(212,175,55,.2)}.game-info-bar.game-over.lost .game-over-text{color:#d4af37}body,html{overscroll-behavior:none}#js-board{width:min(100cqw,100cqh);height:min(100cqw,100cqh);aspect-ratio:1;background-color:#1a1a1a;box-sizing:border-box;border-radius:4px;border-top:2px solid #666;border-top:var(--tile-border-width) solid #666;border-left:2px solid #666;border-left:var(--tile-border-width) solid #666}#js-board .board{width:100%;height:100%;display:grid;grid-template-rows:repeat(12,1fr);background-color:#1a1a1a}#js-board .board .row{display:grid;grid-template-columns:repeat(12,1fr);height:auto}#js-board .tile{width:100%;height:100%;aspect-ratio:1;background-color:#1a1a1a;border:none;border-right:2px solid #666;border-right:var(--tile-border-width) solid #666;border-bottom:2px solid #666;border-bottom:var(--tile-border-width) solid #666;display:flex;align-items:center;justify-content:center;text-align:center;color:#000;position:relative;box-sizing:border-box;container-type:size}#js-board .tile.starting{background-color:#444}#js-board .tile .decal{width:100%;height:100%;background-color:#f5f5f5;text-align:center;display:flex;align-items:center;justify-content:center;text-transform:uppercase;overflow:visible;position:absolute;top:0;left:0;border-radius:3px;font-family:Open Sans,sans-serif;font-weight:700;font-size:30cqmin}#js-board .tile .decal.temp{background-color:#ffd54f}#js-board .tile .decal.last-move{background-color:#bae9ff}#js-board .tile .highlight{width:100%;height:100%;background-color:#ffd54f;opacity:.4;position:absolute;top:0;left:0;border-radius:4px}button{margin:10px auto 0;background-color:#4caf50;color:#fff;padding:8px 16px;border:none;border-radius:4px;cursor:pointer;display:block;font-size:1.5em;white-space:nowrap}button.play-btn{background-color:#7851a9}button:disabled{opacity:.5}.btn-group{text-align:center}.btn-group button{margin:20px;display:inline-block}form{margin:10px auto;max-width:400px;padding:20px 12px 10px 20px}input,select,textarea{width:100%;padding:12px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box;margin-top:6px;margin-bottom:16px;resize:vertical}#Login{padding:60px 0}#Login input[type=submit]{width:100%;background-color:#4caf50;color:#fff;padding:14px 16px;margin:8px 0;border:none;border-radius:4px;cursor:pointer}#Logout{margin:10px auto;max-width:400px;padding:20px 12px 10px 20px}.move-history{display:flex}.move-history .board-section,.move-history .move-list-section{flex:1 1}.move-message-list{display:flex;flex-direction:column;padding:5px 20px}.move-message-list .move-message-row{display:grid;padding:0 20px}.move-message-list .message-text{padding:9px 14px;margin-bottom:5px;overflow-wrap:break-word;position:relative;top:0;transition:all .2s}.move-message-list .message-text:hover{top:-3px;cursor:pointer}.move-message-list .message-time{font-size:.8rem;color:#777}.move-message-list .you-message{justify-content:end}.move-message-list .them-message{justify-content:start}.move-message-list .you-message .message-text{background:#0048aa;color:#fff;border-radius:10px 10px 0 10px}.move-message-list .them-message .message-text{background:#eee;color:#000;border-radius:10px 10px 10px 0}.play-area{display:flex}.play-area .play-area-box{flex:1 1}@media only screen and (max-width:800px){.play-area .hidden-on-small-screen{display:none}}:root{--tile-size:52px;--board-tiles:12;--board-width:calc(var(--tile-size)*var(--board-tiles));--tile-border-width:2px}#js-rack{display:inline-flex;padding:0;background-color:transparent;align-items:center}#js-rack .rack{display:flex;grid-gap:6px;gap:6px}#js-rack .tile{width:min(52px,11cqi);width:min(var(--tile-size),11cqi);height:min(52px,11cqi);height:min(var(--tile-size),11cqi);background-color:transparent;border:none;color:#000;position:relative;box-sizing:border-box;border-radius:4px;container-type:size}#js-rack .tile,#js-rack .tile .decal{display:flex;align-items:center;justify-content:center;text-align:center}#js-rack .tile .decal{width:100%;height:100%;background-color:#f5f5f5;text-transform:uppercase;overflow:visible;position:absolute;top:0;left:0;border-radius:4px;font-family:Open Sans,sans-serif;font-weight:700;font-size:30cqmin}#js-rack .tile .decal.temp{background-color:#ffd54f}#js-rack .tile .highlight{width:100%;height:100%;background-color:#ffd54f;opacity:.4;position:absolute;top:0;left:0;border-radius:4px}html{box-sizing:border-box;font-size:16px}*,:after,:before{box-sizing:inherit}body,h1,h2,h3,h4,h5,h6,ol,p,ul{margin:0;padding:0;font-weight:400}ol,ul{list-style:none}img{max-width:100%;height:auto}.scoreboard{width:100%;height:75px;color:#fff;text-align:center}.scoreboard .scoreboard-lt{width:50%;height:100%;background-color:#7851a9;border-color:transparent;border-style:solid;float:left;transition:border-color .5s}.scoreboard .scoreboard-lt.current{border-color:#fff}.scoreboard .scoreboard-rt{width:50%;height:100%;background-color:#7851a9;border-color:transparent;border-style:solid;float:right;transition:border-color .5s}.scoreboard .scoreboard-rt.current{border-color:#fff}.gameover-message{text-align:center;height:75px;line-height:75px;width:100%}.scroller{margin:10px auto;height:550px;width:300px;overflow:auto}*{margin:0;padding:0}body{font-family:Raleway}a{text-decoration:none}table{margin:10px auto;max-width:400px;padding:20px 12px 10px 20px}td{padding:15px;text-align:center}th{padding:5px;background-color:#4caf50;color:#fff}tr:hover{background-color:#999}