:root{--bg:#0d0716;--bg2:#1a0f2b;--card:rgba(30,18,48,0.82);--line:rgba(255,140,26,0.22);--orange:#ff7a18;--orange2:#ffb347;--green:#8be04e;--text:#f6eee3;--muted:#b3a5c4;--danger:#ff5d73;--radius:18px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{margin:0;padding:0}body{min-height:100dvh;background:radial-gradient(120% 80% at 50% -10%,#3a1c5c 0,var(--bg2) 40%,var(--bg) 75%);background-color:var(--bg);color:var(--text);font-family:Vazirmatn,Tahoma,system-ui,sans-serif;line-height:1.7;overflow-x:hidden}button,input{font-family:inherit;font-size:16px}.sky{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}.moon{top:28px;left:24px;width:86px;height:86px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff6d8,#f4d58d 60%,#d9a845);box-shadow:0 0 60px 18px rgba(255,210,120,.25);opacity:.9}.bat,.moon{position:absolute}.bat{font-size:22px;filter:drop-shadow(0 0 4px #000);animation:fly 14s linear infinite}.b1{top:12%;animation-delay:0s}.b2{top:22%;animation-delay:-5s;font-size:16px}.b3{top:6%;animation-delay:-9s;font-size:18px}@keyframes fly{0%{transform:translateX(-10vw) translateY(0)}25%{transform:translateX(25vw) translateY(-12px)}50%{transform:translateX(55vw) translateY(10px)}75%{transform:translateX(85vw) translateY(-8px)}to{transform:translateX(115vw) translateY(0)}}.fog{position:absolute;bottom:-40px;left:-20%;width:140%;height:180px;background:radial-gradient(ellipse at center,rgba(180,160,220,.12),transparent 70%);animation:drift 18s ease-in-out infinite alternate}@keyframes drift{to{transform:translateX(8%)}}.wrap{position:relative;z-index:1;max-width:960px;margin:0 auto;padding:20px 16px 48px}.hero{text-align:center;padding:56px 0 20px}.hero .pumpkin{font-size:64px;display:inline-block;animation:bob 3s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-8px) rotate(-4deg)}}.hero h1{margin:8px 0 4px;font-size:clamp(28px,7vw,44px);font-weight:900;letter-spacing:-.5px;color:var(--orange2);text-shadow:0 0 18px rgba(255,122,24,.55),0 2px 0 #5a2200}.hero p{margin:0;color:var(--muted)}.panel{max-width:440px;margin:16px auto 0;padding:22px 18px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 20px 60px rgba(0,0,0,.45)}.tabs{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px;padding:5px;background:rgba(0,0,0,.35);border-radius:14px;margin-bottom:18px}.tabs button{border:0;padding:10px;border-radius:10px;background:transparent;color:var(--muted);font-weight:700;cursor:pointer}.tabs button.on{background:var(--orange);color:#1b0b00;box-shadow:0 4px 18px rgba(255,122,24,.45)}.field{display:block;margin-bottom:14px}.field span{display:block;font-size:14px;color:var(--muted);margin-bottom:6px}.field input{width:100%;padding:13px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(0,0,0,.35);color:var(--text);outline:none;transition:border-color .2s,box-shadow .2s}.field input:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(255,122,24,.2)}.field input.ltr{direction:ltr;text-align:right;letter-spacing:1px}.hint{font-size:12.5px;color:var(--muted);margin-top:5px}.photo-slots{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px}.photo-slot{position:relative;aspect-ratio:3/4;border-radius:14px;overflow:hidden;background:rgba(0,0,0,.35);border:1px solid var(--line)}.photo-slot.add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:2px dashed var(--line);cursor:pointer;color:var(--muted);font-size:12px;text-align:center;padding:6px}.photo-slot.add.disabled{opacity:.5;pointer-events:none}.photo-slot.add input{display:none}.photo-slot.add .ico{font-size:26px}.photo-slot.filled img{width:100%;height:100%;object-fit:cover;display:block;cursor:zoom-in}.slot-actions{position:absolute;inset-inline:4px;bottom:4px;display:flex;gap:4px;justify-content:center}.slot-btn{flex:1 1;display:inline-flex;align-items:center;justify-content:center;gap:2px;padding:4px 6px;font-size:11.5px;font-weight:700;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:rgba(13,7,22,.82);color:var(--text);cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.slot-btn input{display:none}.slot-btn.danger{background:rgba(255,93,115,.25);border-color:rgba(255,93,115,.55);color:#ffd0d7}.slot-btn.disabled,.slot-btn:disabled{opacity:.5;pointer-events:none}.my-photos-box{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:16px}.my-photos-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px;margin-bottom:10px}.my-photos-head b{color:var(--orange2);font-size:15px}.my-photos-head small{color:var(--muted);font-size:12px}.btn{width:100%;border:0;padding:14px;border-radius:14px;cursor:pointer;font-weight:800;font-size:16px;background:linear-gradient(135deg,var(--orange2),var(--orange));color:#1b0b00;box-shadow:0 8px 24px rgba(255,122,24,.35);transition:transform .15s,opacity .2s}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.55;cursor:default}.btn.ghost{background:transparent;color:var(--text);border:1px solid rgba(255,255,255,.18);box-shadow:none}.btn.small{width:auto;padding:8px 14px}.btn.small,.msg{font-size:14px;border-radius:10px}.msg{margin:0 0 14px;padding:10px 12px}.msg.error{background:rgba(255,93,115,.14);border:1px solid rgba(255,93,115,.4);color:#ffc2cb}.msg.ok{background:rgba(139,224,78,.12);border:1px solid rgba(139,224,78,.4);color:#d4f7bb}.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0 14px;flex-wrap:wrap}.topbar h2{margin:0;font-size:20px;color:var(--orange2)}.topbar .who{font-size:13px;color:var(--muted)}.topbar-actions{display:flex;gap:8px;align-items:center}.status{padding:12px 14px;border-radius:14px;margin-bottom:16px;font-size:14.5px;background:rgba(255,122,24,.1);border:1px solid var(--line)}.grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:12px;gap:12px}@media (min-width:640px){.grid{grid-template-columns:repeat(3,1fr);gap:16px}}@media (min-width:900px){.grid{grid-template-columns:repeat(4,1fr)}}.person{background:var(--card);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,border-color .2s,box-shadow .2s}.person.picked{border-color:var(--orange);box-shadow:0 0 0 2px var(--orange),0 10px 30px rgba(255,122,24,.35)}.person .img{aspect-ratio:3/4;background:#000;position:relative;cursor:zoom-in}.person .img img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(1.05) contrast(1.05)}.person .badge{position:absolute;top:8px;right:8px;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:700;background:rgba(0,0,0,.65);border:1px solid rgba(255,255,255,.2)}.person .badge.vote{background:var(--orange);color:#1b0b00;border:0}.carousel-nav{position:absolute;top:50%;transform:translateY(-50%);width:30px;height:30px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:rgba(0,0,0,.65);color:#fff;font-size:18px;line-height:1;display:grid;place-items:center;cursor:pointer}.carousel-nav.prev{right:6px}.carousel-nav.next{left:6px}.photo-count{position:absolute;bottom:8px;left:8px;padding:1px 8px;border-radius:99px;font-size:11.5px;background:rgba(0,0,0,.65);color:var(--text);border:1px solid rgba(255,255,255,.18)}.person .body{padding:10px;display:flex;flex-direction:column;gap:8px}.person .name{font-weight:700;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.person .btn{padding:10px;font-size:14px;border-radius:11px}.empty{text-align:center;color:var(--muted);padding:40px 10px}.lightbox{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px;background:rgba(5,2,10,.9)}.lightbox-inner{display:flex;flex-direction:column;align-items:center;max-width:100%}.lightbox img{max-width:100%;max-height:72dvh;border-radius:14px;box-shadow:0 0 60px rgba(255,122,24,.3)}.lightbox-thumbs{display:flex;gap:8px;margin-top:10px}.lightbox-thumbs img{width:52px;height:52px;object-fit:cover;border-radius:10px;cursor:pointer;opacity:.55;border:2px solid transparent;box-shadow:none}.lightbox-thumbs img.active{opacity:1;border-color:var(--orange)}.lightbox .cap{text-align:center;margin-top:10px;font-weight:700}.lightbox-close{margin-top:8px}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:60;padding:10px 18px;border-radius:99px;background:#241338;border:1px solid var(--line);box-shadow:0 10px 30px rgba(0,0,0,.5);font-size:14px;white-space:nowrap}.stats{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px;margin-bottom:18px}.stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px;text-align:center}.stat b{display:block;font-size:24px;color:var(--orange2)}.stat small{color:var(--muted)}.section{margin:22px 0 10px;font-size:17px;color:var(--orange2)}.row,.row-wrap{margin-bottom:8px}.row{display:flex;align-items:center;gap:10px;padding:10px;background:var(--card);border:1px solid rgba(255,255,255,.07);border-radius:14px}.row-wrap .row{margin-bottom:0}.av-group{display:flex;gap:4px;flex:none}.row .av{width:44px;height:44px;border-radius:50%;object-fit:cover;flex:none;border:2px solid var(--line)}.row .grow{flex:1 1;min-width:0}.row .sub{font-size:12.5px;color:var(--muted);direction:ltr;text-align:right}.row .count{font-size:20px;font-weight:900;color:var(--orange2);min-width:36px;text-align:center}.row .voters{font-size:12.5px;color:var(--muted);margin-top:2px}.row .arrow{color:var(--orange);font-size:18px;flex:none}.rank{width:26px;text-align:center;font-weight:900;color:var(--muted);flex:none}.rank.r1{color:#ffd166}.vote-row .pair{display:flex;align-items:center;gap:8px;min-width:0;flex:1 1}.vote-row .pair .grow{overflow:hidden}.vote-row .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700;font-size:14px}.time{font-size:11.5px;color:var(--muted)}.admin-inline-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;margin-bottom:14px;background:rgba(0,0,0,.35);border:1px solid var(--line);border-radius:12px;font-size:13.5px}.admin-inline-form.sub-form{margin-top:6px;margin-bottom:0}.admin-inline-form input{flex:1 1;min-width:140px;padding:8px 10px;border-radius:9px;border:1px solid rgba(255,255,255,.16);background:rgba(0,0,0,.4);color:var(--text)}