@import url("https://fonts.googleapis.com/css2?family=Mountains+of+Christmas:wght@400;700&family=Nunito:wght@400;500;600;700&display=swap");:root{--christmas-red:#c41e3a;--christmas-red-dark:#8b0000;--christmas-green:#228b22;--christmas-green-dark:#006400;--christmas-gold:gold;--christmas-cream:#fffef0;--snow-white:#fff;--text-primary:#fff;--text-secondary:#e0e0e0;--text-muted:#b0b0b0;--midnight-blue:#1a1a2e;--holly-green:#2d5a27;--bg-gradient:linear-gradient(135deg,var(--midnight-blue) 0%,#16213e 50%,var(--christmas-red-dark) 100%);--card-gradient:linear-gradient(145deg,hsla(0,0%,100%,.12),hsla(0,0%,100%,.06));--shadow-glow:0 0 20px rgba(255,215,0,.3);--shadow-card:0 8px 32px rgba(0,0,0,.3)}*{box-sizing:border-box;padding:0;margin:0}body,html{max-width:100vw;overflow-x:hidden;font-family:Nunito,sans-serif}body{background:var(--bg-gradient);min-height:100vh;color:var(--snow-white)}@keyframes snowfall{0%{transform:translateY(-10px) rotate(0deg);opacity:1}to{transform:translateY(100vh) rotate(1turn);opacity:.3}}.snowflake{position:fixed;top:-10px;color:#fff;font-size:1rem;opacity:.8;animation:snowfall linear infinite;pointer-events:none;z-index:1000}.christmas-title{font-family:Mountains of Christmas,cursive;color:var(--christmas-gold);text-shadow:2px 2px 4px rgba(0,0,0,.5),0 0 20px rgba(255,215,0,.5)}.card{background:linear-gradient(145deg,rgba(30,40,60,.95),rgba(20,30,50,.9));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid hsla(0,0%,100%,.15);border-radius:16px;padding:24px;box-shadow:var(--shadow-card);color:var(--text-primary)}.btn{padding:12px 24px;border-radius:8px;font-weight:600;font-size:1rem;cursor:pointer;transition:all .3s ease;border:none;font-family:Nunito,sans-serif}.btn-primary{background:linear-gradient(135deg,var(--christmas-red) 0,var(--christmas-red-dark) 100%);color:#fff;box-shadow:0 4px 15px rgba(196,30,58,.4)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(196,30,58,.6)}.btn-secondary{background:linear-gradient(135deg,var(--christmas-green) 0,var(--christmas-green-dark) 100%);color:#fff;box-shadow:0 4px 15px rgba(34,139,34,.4)}.btn-secondary:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(34,139,34,.6)}.btn-gold{background:linear-gradient(135deg,var(--christmas-gold) 0,#daa520 100%);color:var(--midnight-blue);box-shadow:0 4px 15px rgba(255,215,0,.4)}.btn-gold:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(255,215,0,.6)}.btn-danger{background:linear-gradient(135deg,#dc3545,#a71d2a);color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.input{width:100%;padding:12px 16px;border-radius:8px;border:2px solid hsla(0,0%,100%,.2);background:hsla(0,0%,100%,.1);color:#fff;font-size:1rem;font-family:Nunito,sans-serif;transition:border-color .3s ease}.input:focus{outline:none;border-color:var(--christmas-gold);box-shadow:0 0 10px rgba(255,215,0,.3)}.input::placeholder{color:hsla(0,0%,100%,.5)}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:var(--christmas-gold)}.avatar{width:60px;height:60px;border-radius:50%;object-fit:cover;border:3px solid var(--christmas-gold);box-shadow:0 0 15px rgba(255,215,0,.3)}.avatar-large{width:100px;height:100px}.badge{display:inline-block;padding:8px 16px;border-radius:25px;font-size:.9rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.badge-open{background:linear-gradient(135deg,#00c853,#00e676 50%,#00c853);background-size:200% 200%;color:#fff;box-shadow:0 0 20px rgba(0,230,118,.6),0 0 40px rgba(0,230,118,.3);animation:pulse-glow 2s ease-in-out infinite,gradient-shift 3s ease infinite;border:2px solid hsla(0,0%,100%,.3)}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px rgba(0,230,118,.6),0 0 40px rgba(0,230,118,.3)}50%{box-shadow:0 0 30px rgba(0,230,118,.8),0 0 60px rgba(0,230,118,.5)}}@keyframes gradient-shift{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.badge-closed{background:linear-gradient(135deg,var(--christmas-red-dark) 0,#b71c1c 100%);color:#fff;box-shadow:0 2px 10px rgba(139,0,0,.4)}.badge-locked{background:linear-gradient(135deg,#555,#333);color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.3)}.badge-voted{background:linear-gradient(135deg,var(--christmas-gold) 0,#daa520 100%);color:var(--midnight-blue);font-size:.8rem;padding:6px 12px}.badge-admin{background:linear-gradient(135deg,#9c27b0,#7b1fa2);color:#fff;font-size:.7rem!important;padding:4px 10px!important;animation:none!important;box-shadow:0 2px 8px rgba(156,39,176,.4)}.card-highlight:hover{transform:translateY(-5px);box-shadow:0 12px 40px rgba(255,215,0,.2);border-color:var(--christmas-gold)!important}.container{max-width:1200px;margin:0 auto;padding:20px}.grid{display:grid;grid-gap:20px;gap:20px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.ornament{display:inline-block;font-size:1.5rem;margin:0 8px;animation:swing 2s ease-in-out infinite}@keyframes swing{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}.spinner{width:40px;height:40px;border:4px solid hsla(0,0%,100%,.2);border-top:4px solid var(--christmas-gold);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:768px){.christmas-title{font-size:2rem!important}.card,.container{padding:16px}.btn{width:100%;margin-bottom:10px}}.winner-card{text-align:center;padding:30px;background:linear-gradient(145deg,rgba(255,215,0,.15),rgba(255,215,0,.05));border:2px solid var(--christmas-gold)}.winner-card .avatar{width:120px;height:120px;margin-bottom:15px}.nav{justify-content:space-between;align-items:center;padding:20px}.nav,.nav-links{display:flex;flex-wrap:wrap;gap:15px}.nav-link{color:var(--snow-white);text-decoration:none;padding:8px 16px;border-radius:8px;transition:all .3s ease}.nav-link:hover{background:hsla(0,0%,100%,.1);color:var(--christmas-gold)}.nav-link.active{background:rgba(255,215,0,.2);color:var(--christmas-gold)}.alert{padding:12px 20px;border-radius:8px;margin-bottom:20px}.alert-error{background:rgba(220,53,69,.2);border:1px solid var(--christmas-red);color:#ff6b6b}.alert-success{background:rgba(34,139,34,.2);border:1px solid var(--christmas-green);color:#90ee90}.vote-card{display:flex;align-items:center;gap:15px;padding:15px;border-radius:12px;background:hsla(0,0%,100%,.05);transition:all .3s ease;cursor:pointer}.vote-card:hover{background:hsla(0,0%,100%,.1);transform:translateY(-2px)}.vote-card.selected{background:rgba(255,215,0,.2);border:2px solid var(--christmas-gold)}.file-input-wrapper{position:relative;display:inline-block;width:100%}.file-input{position:absolute;left:0;top:0;opacity:0;width:100%;height:100%;cursor:pointer}.file-input-label{display:flex;align-items:center;justify-content:center;padding:40px;border:2px dashed hsla(0,0%,100%,.3);border-radius:12px;text-align:center;transition:all .3s ease}.file-input-label:hover{border-color:var(--christmas-gold);background:rgba(255,215,0,.1)}.file-input-label.has-file{border-color:var(--christmas-green);background:rgba(34,139,34,.1)}textarea.input{min-height:100px;resize:vertical}.table-wrapper{overflow-x:auto}table{width:100%;border-collapse:collapse}td,th{padding:12px;text-align:left;border-bottom:1px solid hsla(0,0%,100%,.1)}th{color:var(--christmas-gold);font-weight:600}@keyframes confetti-fall{0%{transform:translateY(-100%) rotate(0deg);opacity:1}to{transform:translateY(100vh) rotate(2turn);opacity:0}}.confetti{position:fixed;top:0;font-size:2rem;animation:confetti-fall 4s linear forwards;pointer-events:none;z-index:999}