*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:#f5f5f5;color:#333}button,input{font-family:inherit}.page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.card{background:#fff;border-radius:16px;padding:32px;width:min(680px,100%);box-shadow:0 10px 30px #00000014}.title{font-size:40px;font-weight:700;text-align:center;margin-bottom:8px}.subtitle{text-align:center;color:#666;margin-bottom:24px}.button{width:100%;padding:14px 18px;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;color:#fff;transition:transform .15s ease,opacity .15s ease}.button:disabled{opacity:.6;cursor:not-allowed}.button-selected{outline:3px solid #2e7d32}.button-primary{background:#4caf50}.button-secondary{background:#2196f3}.button-outline{background:transparent;border:2px solid #2196f3;color:#2196f3}.button-row{display:flex;gap:12px;flex-wrap:wrap}.button-row .button{flex:1}.divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:#999;font-size:14px}.divider:before,.divider:after{content:"";height:1px;flex:1;background:#ddd}.input-group{margin-bottom:16px}.input-label{font-size:14px;font-weight:600;margin-bottom:6px;display:block}.input{width:100%;padding:12px 14px;border:1px solid #ddd;border-radius:10px;font-size:16px}.back-link{margin-top:16px;text-align:center;color:#666;cursor:pointer}.lobby-header{text-align:center;margin-bottom:24px}.game-code{font-size:28px;font-weight:700;letter-spacing:6px;color:#2196f3}.players-list{list-style:none;padding:0;margin:0 0 24px}.players-list li{display:flex;align-items:center;justify-content:space-between;padding:12px;border-radius:12px;background:#f8f8f8;margin-bottom:10px}.badge{background:#ffc107;padding:4px 8px;border-radius:6px;font-size:12px;font-weight:700}.prompt-card{background:#fff;border-radius:16px;padding:20px;margin-bottom:16px;border:1px solid #eee;position:relative}.input{scroll-margin-bottom:120px}.lyrics-line{text-align:center;margin-bottom:8px}.lyrics-blank{font-weight:700;color:#2196f3}.timer{font-size:22px;font-weight:700;color:#f44336;margin:10px 0;text-align:center}.center{text-align:center}.score-card{background:#fff;border-radius:12px;padding:14px;margin-bottom:12px}.score-banner{background:#e3f2fd;color:#0d47a1;border-radius:12px;padding:12px 16px;margin:12px 0 20px;text-align:center;font-weight:700}.vote-badge{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:#ff9800;color:#fff;font-weight:700;margin:8px auto 0}.qr-wrapper{display:flex;flex-direction:column;align-items:center;gap:12px;margin:16px 0}.qr-link{font-size:14px;word-break:break-all;color:#333;text-align:center}.qr-scanner{margin-top:16px;border:1px solid #eee;border-radius:12px;padding:16px}.error-container,.loading-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px}.loading-text{font-size:18px;color:#666}.error-text{color:#d32f2f}.error-details{color:#999}.status-text{color:#2e7d32}
