:root{--primary-orange: #ff6b00;--dark-bg: #0a0a0a;--body-text: #e0e0e0}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,sans-serif;background:var(--dark-bg);color:#fff;min-height:100vh;display:flex;flex-direction:column;align-items:center;overflow:hidden}.game-header{padding:.75rem 2rem;text-align:center;width:100%}.game-header h1{font-size:1.3rem;font-weight:800}.game-header h1 span{color:var(--primary-orange)}.game-container{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;max-width:500px;padding:0 .5rem}canvas{border-radius:12px;display:block;max-width:100%;touch-action:none;-webkit-user-select:none;user-select:none}.score-bar{display:flex;justify-content:space-around;width:100%;max-width:500px;padding:.5rem 1rem;gap:.5rem}.score-item{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:.5rem 1rem;text-align:center;flex:1}.score-item .value{font-size:1.8rem;font-weight:700;color:var(--primary-orange)}.score-item .label{font-size:.85rem;color:#fff9}.auth-area{display:flex;align-items:center;gap:.75rem;margin-top:.5rem;justify-content:center}.auth-username{color:var(--body-text);font-size:.95rem;font-weight:600}.auth-btn{padding:.5rem 1.2rem;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;font-family:Inter,sans-serif}.login-btn{background:var(--primary-orange);color:#fff}.login-btn:hover{background:#ff8533;transform:scale(1.05)}.logout-btn{background:#ffffff1a;color:var(--body-text);border:1px solid rgba(255,255,255,.2)}.logout-btn:hover{background:#ffffff26}.leaderboard-btn{margin-top:1rem;padding:.75rem 1.5rem;background:#ff6b0026;border:2px solid var(--primary-orange);border-radius:10px;color:var(--primary-orange);font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s;font-family:Inter,sans-serif}.leaderboard-btn:hover{background:#ff6b0040;transform:scale(1.05)}.modal-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#1a1a1a;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:2rem;max-width:400px;width:100%;position:relative;box-shadow:0 10px 40px #00000080}.modal-content h2{margin:0 0 1.5rem;color:#fff;font-size:1.75rem;text-align:center}.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;color:#fff9;font-size:2rem;cursor:pointer;line-height:1;padding:0;width:2rem;height:2rem;transition:color .2s}.modal-close:hover{color:#fff}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-form input{padding:.875rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:1rem;font-family:Inter,sans-serif;transition:border-color .2s}.auth-form input:focus{outline:none;border-color:var(--primary-orange);background:#ffffff14}.auth-form input::placeholder{color:#fff6}.auth-submit-btn{padding:.875rem;background:var(--primary-orange);border:none;border-radius:8px;color:#fff;font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s;font-family:Inter,sans-serif;margin-top:.5rem}.auth-submit-btn:hover:not(:disabled){background:#ff8533;transform:scale(1.02)}.auth-submit-btn:disabled{opacity:.5;cursor:not-allowed}.auth-error{min-height:1.5rem;color:#f44336;font-size:.9rem;text-align:center;margin-bottom:.5rem}.auth-switch{text-align:center;margin-top:1rem;color:#fff9;font-size:.9rem}.auth-switch a{color:var(--primary-orange);text-decoration:none;font-weight:600}.auth-switch a:hover{text-decoration:underline}.account-prompt{position:fixed;top:0;left:0;right:0;background:linear-gradient(135deg,#ff6b00f2,#ff8c32f2);padding:1rem;text-align:center;z-index:999;box-shadow:0 2px 10px #0000004d}.account-prompt p{margin:0 0 .75rem;color:#fff;font-weight:600;font-size:.95rem}.account-prompt-buttons{display:flex;gap:.75rem;justify-content:center}.prompt-register-btn,.prompt-later-btn{padding:.5rem 1.25rem;border:none;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;font-family:Inter,sans-serif}.prompt-register-btn{background:#fff;color:var(--primary-orange)}.prompt-register-btn:hover{transform:scale(1.05)}.prompt-later-btn{background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3)}.prompt-later-btn:hover{background:#ffffff4d}.leaderboard-modal{max-width:500px}.leaderboard-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:2px solid rgba(255,255,255,.1)}.leaderboard-tab{flex:1;padding:.75rem;background:none;border:none;border-bottom:3px solid transparent;color:#fff9;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s;font-family:Inter,sans-serif;margin-bottom:-2px}.leaderboard-tab:hover{color:#ffffffe6}.leaderboard-tab.active{color:var(--primary-orange);border-bottom-color:var(--primary-orange)}.leaderboard-table-container{max-height:400px;overflow-y:auto;margin-bottom:1rem}.leaderboard-table-container .loading,.leaderboard-table-container .error,.leaderboard-table-container .empty{text-align:center;padding:2rem;color:#fff9}.leaderboard-table-container .error{color:#f44336}.leaderboard-table{width:100%;border-collapse:collapse}.leaderboard-table th{background:#ffffff0d;padding:.75rem;text-align:left;color:#fffc;font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid rgba(255,255,255,.1);position:sticky;top:0}.leaderboard-table th:first-child{width:50px;text-align:center}.leaderboard-table th:nth-child(3),.leaderboard-table th:nth-child(4){width:80px;text-align:center}.leaderboard-table td{padding:.875rem .75rem;color:var(--body-text);font-size:.95rem;border-bottom:1px solid rgba(255,255,255,.05)}.leaderboard-table td:first-child{text-align:center;font-weight:700;color:#ffffff80}.leaderboard-table td:nth-child(3),.leaderboard-table td:nth-child(4){text-align:center;font-weight:700}.leaderboard-table tbody tr{transition:background-color .2s}.leaderboard-table tbody tr:nth-child(2n){background:#ffffff05}.leaderboard-table tbody tr:hover{background:#ffffff0d}.leaderboard-table tbody tr.current-user{background:#ff6b0026!important;border:1px solid rgba(255,107,0,.3)}.leaderboard-table tbody tr.current-user td{color:var(--primary-orange);font-weight:700}.leaderboard-table tbody tr:nth-child(1) td:first-child{color:gold;font-size:1.1rem}.leaderboard-table tbody tr:nth-child(2) td:first-child{color:silver;font-size:1.05rem}.leaderboard-table tbody tr:nth-child(3) td:first-child{color:#cd7f32;font-size:1.05rem}@media(max-width:480px){.modal-content{padding:1.5rem;margin:0 .5rem}.modal-content h2{font-size:1.5rem}.leaderboard-table th,.leaderboard-table td{padding:.625rem .5rem;font-size:.85rem}.leaderboard-table th:first-child,.leaderboard-table td:first-child{width:40px}.leaderboard-table th:nth-child(3),.leaderboard-table th:nth-child(4),.leaderboard-table td:nth-child(3),.leaderboard-table td:nth-child(4){width:60px}.auth-area{flex-direction:column;gap:.5rem}.account-prompt{padding:.75rem .5rem}.account-prompt p{font-size:.85rem}}#lobby-panel{position:fixed;top:120px;right:1rem;width:280px;background:#1a1a1af2;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:1rem;box-shadow:0 10px 40px #00000080;z-index:900;display:none;max-height:calc(100vh - 140px);overflow-y:auto}.lobby-header{margin-bottom:1rem;padding-bottom:.75rem;border-bottom:2px solid rgba(255,255,255,.1)}.lobby-header h3{margin:0;color:var(--primary-orange);font-size:1.1rem;font-weight:700}.lobby-player-list{display:flex;flex-direction:column;gap:.5rem}.lobby-player-row{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;transition:all .2s}.lobby-player-row:hover{background:#ffffff0f;border-color:#ff6b004d}.lobby-player-name{color:var(--body-text);font-size:.95rem;font-weight:600;flex:1}.lobby-challenge-btn{padding:.4rem .9rem;background:var(--primary-orange);border:none;border-radius:6px;color:#fff;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s;font-family:Inter,sans-serif}.lobby-challenge-btn:hover{background:#ff8533;transform:scale(1.05)}.lobby-challenge-btn:active{transform:scale(.98)}.lobby-empty{color:#ffffff80;text-align:center;padding:1.5rem .5rem;font-size:.9rem;font-style:italic}#challenge-modal{position:fixed;inset:0;z-index:1001;display:none}#challenge-modal:not(:empty){display:block}.challenge-notification{max-width:400px;text-align:center}.challenge-text{font-size:1.3rem;font-weight:700;color:#fff;margin:0 0 1rem}.challenge-countdown{font-size:.9rem;color:#fff9;margin:0 0 1.5rem}.challenge-buttons{display:flex;gap:.75rem;justify-content:center}.challenge-accept-btn,.challenge-decline-btn{flex:1;padding:.875rem;border:none;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s;font-family:Inter,sans-serif}.challenge-accept-btn{background:var(--primary-orange);color:#fff}.challenge-accept-btn:hover{background:#ff8533;transform:scale(1.05)}.challenge-decline-btn{background:#ffffff1a;color:var(--body-text);border:1px solid rgba(255,255,255,.2)}.challenge-decline-btn:hover{background:#ffffff26}#toast-container{position:fixed;bottom:2rem;right:2rem;z-index:1002;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}.toast{background:#1a1a1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:.875rem 1.25rem;color:#fff;font-size:.95rem;font-weight:600;box-shadow:0 4px 20px #0006;opacity:1;transition:opacity .3s;pointer-events:auto;min-width:250px}.toast-info{border-left:4px solid #2196F3}.toast-success{border-left:4px solid #4CAF50}.toast-error{border-left:4px solid #f44336}.toast-fade-out{opacity:0}@media(max-width:768px){#lobby-panel{inset:auto 0 0;width:100%;border-radius:16px 16px 0 0;max-height:50vh;padding:.75rem 1rem 1rem}.lobby-header{cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.lobby-header h3{font-size:1rem}.lobby-header:after{content:"▼";position:absolute;right:0;top:50%;transform:translateY(-50%);font-size:.8rem;color:var(--primary-orange)}.lobby-player-row{padding:.625rem}.lobby-player-name{font-size:.9rem}.lobby-challenge-btn{padding:.35rem .75rem;font-size:.8rem}#toast-container{bottom:1rem;right:1rem;left:1rem}.toast{min-width:auto;width:100%}}@media(max-width:480px){.challenge-notification{margin:.5rem;padding:1.5rem}.challenge-text{font-size:1.1rem}.challenge-buttons{flex-direction:column;gap:.5rem}.challenge-accept-btn,.challenge-decline-btn{width:100%}}
