*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);color:#fff;min-height:100vh;overflow-x:hidden}.container{max-width:100%;margin:0 auto;padding:1rem;min-height:100vh}@media(min-width: 768px){.container{max-width:768px;padding:2rem}}.header{text-align:center;padding:2rem 0;position:relative;display:flex;flex-direction:column;align-items:center;gap:1rem}.header .btn-icon{position:static;align-self:flex-start;background:rgba(0,0,0,0);border:none;color:#fff;font-size:18px;cursor:pointer;padding:1rem}.header .btn-icon:hover{color:#ff6b35}.header .btn-icon.logout-btn{left:auto;right:0;font-size:14px;color:#b8b8d0}.header .btn-icon.logout-btn:hover{color:#ff4757}.title{font-size:32px;font-weight:700;margin-bottom:.5rem;background:linear-gradient(135deg, #ff6b35 0%, #4ecdc4 100%);-webkit-background-clip:text;-webkit-text-fill-color:rgba(0,0,0,0);background-clip:text}.subtitle{font-size:18px;color:#b8b8d0}.main-content{padding:1.5rem 0}.btn{display:inline-block;padding:1.5rem 2rem;font-size:16px;font-weight:600;border:none;border-radius:12px;cursor:pointer;transition:all .3s ease;width:100%;text-align:center}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:not(:disabled):active{transform:scale(0.98)}.btn-primary{background:linear-gradient(135deg, #ff6b35 0%, rgb(255, 69.6336633663, 2) 100%);color:#fff;box-shadow:0 4px 8px rgba(0,0,0,.2)}.btn-primary:not(:disabled):hover{box-shadow:0 8px 16px rgba(0,0,0,.3);transform:translateY(-2px)}.btn-primary.success{background:linear-gradient(135deg, #2ed573 0%, rgb(34.8047808765, 173.1952191235, 91.984063745) 100%)}.btn-secondary{background:linear-gradient(135deg, #4ecdc4 0%, rgb(51.1013215859, 180.8986784141, 171.7004405286) 100%);color:#fff;box-shadow:0 4px 8px rgba(0,0,0,.2)}.btn-secondary:not(:disabled):hover{box-shadow:0 8px 16px rgba(0,0,0,.3);transform:translateY(-2px)}.btn-text{background:rgba(0,0,0,0);color:#b8b8d0;padding:1rem 1.5rem}.btn-text:hover{color:#ff6b35}.btn-danger{background:linear-gradient(135deg, #ff4757 0%, rgb(255, 20, 40.4347826087) 100%);color:#fff;box-shadow:0 4px 8px rgba(0,0,0,.2)}.btn-small{padding:.5rem 1rem;font-size:14px}.button-group{display:flex;flex-direction:column;gap:1.5rem}.button-group .btn{width:100%}.input{width:100%;padding:1.5rem;font-size:16px;background:#0f3460;color:#fff;border:2px solid rgba(0,0,0,0);border-radius:12px;transition:border-color .3s ease}.input:focus{outline:none;border-color:#ff6b35}.input::placeholder{color:#b8b8d0}.welcome-screen{text-align:center;padding:3rem 0}.welcome-screen .welcome-message{margin-bottom:3rem}.welcome-screen .welcome-message h2{font-size:24px;margin-bottom:1rem}.welcome-screen .welcome-message p{color:#b8b8d0;font-size:18px}.name-input-screen{max-width:400px;margin:0 auto}.name-input-screen h2{font-size:24px;text-align:center;margin-bottom:2rem}.name-input-screen form{display:flex;flex-direction:column;gap:1.5rem}.menu{max-width:400px;margin:0 auto}.menu .menu-nav{display:flex;flex-direction:column;gap:1.5rem}.register-form{max-width:500px;margin:0 auto}.register-form .form-group{margin-bottom:2rem}.register-form .form-group label{display:block;margin-bottom:1rem;font-weight:600;color:#b8b8d0}.register-form .photo-upload input[type=file]{width:100%;padding:1.5rem;background:#0f3460;color:#fff;border:2px dashed #b8b8d0;border-radius:12px;cursor:pointer}.register-form .photo-upload input[type=file]::-webkit-file-upload-button{background:#ff6b35;color:#fff;border:none;padding:1rem 1.5rem;border-radius:8px;cursor:pointer;margin-right:1rem}.register-form .photo-upload .upload-buttons{display:flex;gap:1rem;margin-bottom:1.5rem}.register-form .photo-upload .upload-buttons button{flex:1;padding:1.5rem;font-size:16px;min-height:60px}.register-form .existing-photo{margin-bottom:1.5rem;text-align:center}.register-form .existing-photo p{color:#b8b8d0;margin-bottom:1rem;font-size:14px}.register-form .existing-photo img{max-width:100%;max-height:200px;border-radius:12px;border:2px solid #0f3460}.register-form .photo-preview{text-align:center}.register-form .photo-preview img{max-width:100%;max-height:300px;border-radius:12px;margin-bottom:1.5rem}.register-form .optional-label{color:#b8b8d0;font-size:14px;font-weight:normal}.loading{text-align:center;padding:3rem}.loading .spinner{width:50px;height:50px;border:4px solid #0f3460;border-top-color:#ff6b35;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1.5rem}@keyframes spin{to{transform:rotate(360deg)}}.success-message{text-align:center;padding:3rem}.success-message .success-icon{width:80px;height:80px;background:#2ed573;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:48px;margin:0 auto 2rem}.success-message h2{margin-bottom:1.5rem}.success-message p{color:#b8b8d0;margin-bottom:2rem}.voting-instructions{background:#0f3460;padding:1.5rem;border-radius:12px;margin-bottom:1.5rem;text-align:center}.voting-instructions p{margin-bottom:1rem;font-weight:600}.voting-instructions .medal-legend{display:flex;justify-content:center;gap:1.5rem}.voting-instructions .medal-legend .medal{font-size:14px}.selected-votes{background:#0f3460;padding:1.5rem;border-radius:12px;margin-bottom:1.5rem}.selected-votes .vote-slot{display:flex;align-items:center;gap:1rem;padding:1rem;margin-bottom:.5rem}.selected-votes .vote-slot:last-child{margin-bottom:0}.selected-votes .vote-slot .medal-icon{font-size:24px}.selected-votes .vote-slot .vote-name{flex:1;font-weight:600}.selected-votes .vote-slot .vote-name .person-name{font-weight:400;font-size:14px;color:#b8b8d0}.selected-votes .vote-slot .clear-vote{background:#ff4757;color:#fff;border:none;width:24px;height:24px;border-radius:50%;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center}.selected-votes .vote-slot .clear-vote.hidden{display:none}.submit-votes{margin-bottom:2rem;position:sticky;top:1rem;z-index:10}.contestants-list{display:flex;flex-direction:column;gap:1.5rem}.contestant-card{background:#0f3460;border-radius:12px;padding:1.5rem;display:flex;flex-direction:column;gap:1rem;box-shadow:0 2px 4px rgba(0,0,0,.1);transition:all .3s ease;position:relative}.contestant-card.voted{border:2px solid #ff6b35}.contestant-card.admin{flex-direction:row;align-items:center;gap:1.5rem}.contestant-card .vote-badge{position:absolute;top:1rem;right:1rem;font-size:24px;z-index:1}.contestant-card .card-main{display:flex;align-items:center;gap:1.5rem}.contestant-card .contestant-photo{width:80px;height:80px;object-fit:cover;border-radius:8px;flex-shrink:0}.contestant-card .contestant-photo-placeholder{width:80px;height:80px;background:#1a1a2e;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#b8b8d0;font-size:14px;flex-shrink:0}.contestant-card .contestant-info{flex:1;min-width:0}.contestant-card .contestant-info .contestant-costume{font-size:18px;font-weight:600;margin-bottom:.5rem}.contestant-card .contestant-info .contestant-name{color:#b8b8d0;font-size:14px}.contestant-card .vote-buttons{display:flex;flex-direction:column;gap:.5rem}.contestant-card .vote-buttons .vote-btn{background:#1a1a2e;border:none;width:40px;height:40px;border-radius:8px;font-size:18px;cursor:pointer;transition:all .15s ease}.contestant-card .vote-buttons .vote-btn:not(:disabled):hover{transform:scale(1.1)}.contestant-card .vote-buttons .vote-btn:disabled{opacity:.5;cursor:not-allowed}.contestant-card .vote-buttons .vote-btn.gold{background:linear-gradient(135deg, #ffd700 0%, #ccac00 100%)}.contestant-card .vote-buttons .vote-btn.silver{background:linear-gradient(135deg, #c0c0c0 0%, rgb(166.5, 166.5, 166.5) 100%)}.contestant-card .vote-buttons .vote-btn.bronze{background:linear-gradient(135deg, #cd7f32 0%, rgb(164, 101.6, 40) 100%)}.contestant-card .reaction-buttons{display:flex;flex-wrap:wrap;gap:.5rem;padding-top:.5rem;border-top:1px solid rgba(184,184,208,.1)}.contestant-card .reaction-buttons .reaction-btn{background:#1a1a2e;border:2px solid rgba(255,107,53,.2);padding:4px 8px;border-radius:9999px;font-size:16px;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;gap:4px;min-width:40px;justify-content:center}.contestant-card .reaction-buttons .reaction-btn:hover{transform:scale(1.1);border-color:#ff6b35;background:rgba(255,107,53,.1)}.contestant-card .reaction-buttons .reaction-btn:active{transform:scale(0.95)}.contestant-card .reaction-buttons .reaction-btn .reaction-count{font-size:14px;font-weight:600;color:#ff6b35}.vote-notifications{position:fixed;bottom:0;left:0;right:0;pointer-events:none;z-index:1000}.vote-notification{position:absolute;bottom:100px;background:#ff6b35;color:#fff;padding:1rem 1.5rem;border-radius:9999px;font-weight:600;box-shadow:0 8px 16px rgba(0,0,0,.3);white-space:nowrap;opacity:0}.vote-notification.animate{animation:flyUp 3s ease-out forwards}.emoji-notification{position:absolute;bottom:100px;font-size:3rem;opacity:0;filter:drop-shadow(0 4px 8px rgba(0, 0, 0, 0.2))}.emoji-notification.animate{animation:flyUp 3s ease-out forwards}@keyframes flyUp{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-200px)}}.modal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1.5rem}.modal.hidden{display:none}.modal .modal-content{background:#16213e;border-radius:16px;padding:2rem;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;position:relative}.modal .modal-content h2{text-align:center;margin-bottom:2rem}.modal .image-modal-content{background:rgba(0,0,0,0);padding:0;max-width:90vw;max-height:90vh;overflow:visible}.modal .image-modal-content img{width:100%;height:auto;max-height:90vh;object-fit:contain;border-radius:12px}.modal .image-modal-content .close-image-btn{position:absolute;top:-40px;right:0;background:#ff4757;color:#fff;border:none;width:36px;height:36px;border-radius:50%;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 16px rgba(0,0,0,.3);transition:all .3s ease}.modal .image-modal-content .close-image-btn:hover{transform:scale(1.1);background:rgb(255,122,133.5652173913)}.leaderboard{display:flex;flex-direction:column;gap:1.5rem}.leaderboard-item{background:#0f3460;border-radius:12px;padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem}.leaderboard-item.rank-1{background:linear-gradient(135deg, rgba(255, 215, 0, 0.2) 0%, #0f3460 100%);border:2px solid gold}.leaderboard-item.rank-2{background:linear-gradient(135deg, rgba(192, 192, 192, 0.2) 0%, #0f3460 100%);border:2px solid silver}.leaderboard-item.rank-3{background:linear-gradient(135deg, rgba(205, 127, 50, 0.2) 0%, #0f3460 100%);border:2px solid #cd7f32}.leaderboard-item .leaderboard-header{display:flex;align-items:center;gap:1.5rem}.leaderboard-item .rank{font-size:32px;font-weight:700;flex-shrink:0}.leaderboard-item .contestant-info{flex:1;display:flex;align-items:center;gap:1.5rem;min-width:0}.leaderboard-item .contestant-info img{width:60px;height:60px;object-fit:cover;border-radius:8px;flex-shrink:0}.leaderboard-item .contestant-info .details{flex:1;min-width:0}.leaderboard-item .contestant-info .details h3{font-size:18px;margin-bottom:.5rem}.leaderboard-item .contestant-info .details p{color:#b8b8d0;font-size:14px}.leaderboard-item .score{display:flex;flex-direction:column;gap:.5rem;padding-top:.5rem;border-top:1px solid rgba(184,184,208,.1)}.leaderboard-item .score .medals{display:flex;gap:1.5rem;font-size:14px;justify-content:center}.leaderboard-item .score .medals span{white-space:nowrap}.leaderboard-item .score .score-bar{width:100%;height:8px;background:#1a1a2e;border-radius:9999px;overflow:hidden}.leaderboard-item .score .score-bar .score-fill{height:100%;background:linear-gradient(90deg, #ff6b35 0%, #4ecdc4 100%);transition:width .5s ease}.leaderboard-item .score .score-text{font-size:14px;color:#b8b8d0;text-align:center;font-weight:600}.leaderboard-item .score .total{font-weight:600;color:#ff6b35;text-align:center}.leaderboard-item .reaction-buttons{display:flex;flex-wrap:wrap;gap:.5rem;padding-top:.5rem;border-top:1px solid rgba(184,184,208,.1)}.leaderboard-item .reaction-buttons .reaction-btn{background:#1a1a2e;border:2px solid rgba(255,107,53,.2);padding:4px 8px;border-radius:9999px;font-size:16px;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;gap:4px;min-width:40px;justify-content:center}.leaderboard-item .reaction-buttons .reaction-btn:hover{transform:scale(1.1);border-color:#ff6b35;background:rgba(255,107,53,.1)}.leaderboard-item .reaction-buttons .reaction-btn:active{transform:scale(0.95)}.leaderboard-item .reaction-buttons .reaction-btn .reaction-count{font-size:14px;font-weight:600;color:#ff6b35}.admin-controls{display:flex;gap:1.5rem;margin-bottom:2rem}.admin-controls .btn{flex:1}.admin-controls #toggle-leaderboard.revealed{background:linear-gradient(135deg, #ff4757 0%, rgb(255, 20, 40.4347826087) 100%)}.admin-section{margin-bottom:3rem}.admin-section h2{font-size:24px;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #0f3460}.admin-contestants .contestant-card.admin .admin-actions{display:flex;flex-direction:column;gap:.5rem}.hidden{display:none !important}.empty-state{text-align:center;color:#b8b8d0;padding:3rem;font-size:18px}.error-message{color:#ff4757;text-align:center;margin-top:1.5rem;padding:1rem;background:rgba(255,71,87,.1);border-radius:8px;font-size:14px}@media(min-width: 640px){.vote-buttons{flex-direction:row !important}}
