.poll-card,.album-card{position:relative;overflow:hidden}.poll-card h2,.album-card h2{margin-top:20px}.poll-result-header{display:flex;gap:24px;justify-content:space-between;align-items:center;flex-wrap:wrap}.poll-winner{font-size:clamp(1.5rem,3vw,2.3rem);font-weight:650;color:#b79840;line-height:1.15}.poll-participation{display:flex;flex-direction:column;gap:3px}.poll-participation strong{font-size:2.8rem;line-height:1}.poll-participation small{font-size:1.1rem;font-weight:400}.poll-participation span,.poll-voters{font-size:.82rem;opacity:.7}.poll-bars{display:grid;gap:24px;margin:30px 0}.poll-option-heading{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:8px;font-size:.9rem}.poll-option-heading strong{display:flex;align-items:center;gap:9px}.poll-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none}.poll-result-row.is-leader .poll-option-heading strong::after{content:'●';color:#b79840;font-size:.55rem}.poll-bar{appearance:none;width:100%;height:13px;border:0;border-radius:8px;overflow:hidden;background:#c0c0b51f}.poll-bar::-webkit-progress-bar{background:#c0c0b51f}.poll-bar::-webkit-progress-value{background:var(--poll-color,#b79840);border-radius:8px}.poll-bar::-moz-progress-bar{background:var(--poll-color,#b79840);border-radius:8px}.poll-result-row{animation:poll-enter .5s ease both}.poll-choice{display:flex;gap:12px;padding:16px;border:1px solid #8b8d7d44;border-radius:12px;margin:12px 0;align-items:center;cursor:pointer}.poll-choice:has(input:checked){border-color:#b79840;background:#b7984010}.poll-choice input{width:19px;height:19px;flex:none;accent-color:#b79840}.poll-ring-wrap{display:flex;justify-content:center;margin:22px 0}.poll-ring{width:205px;height:205px}.poll-ring circle{fill:none;stroke-width:13}.poll-ring-base{stroke:#8b8d7d22}.poll-ring-segment{stroke:var(--poll-color);transform:rotate(-90deg);transform-origin:60px 60px}.poll-ring text{fill:currentColor;font-size:23px;font-weight:700}.poll-ring text.poll-ring-label{font-size:9px;font-weight:400}.album-art{display:flex;align-items:center;justify-content:center;height:100px;border-radius:12px;background:linear-gradient(130deg,#b7984026,#397b7229);color:#b79840}.album-art .icon{width:52px;height:52px}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:20px}.photo-card{padding:0;overflow:hidden;margin:0}.photo-open{border:0;background:transparent;padding:0;width:100%;cursor:zoom-in}.photo-open img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.photo-card figcaption{display:grid;gap:10px;padding:16px;overflow-wrap:anywhere}.photo-full{display:block;max-width:100%;max-height:75vh;object-fit:contain;margin:auto}.poll-locked{background:linear-gradient(140deg,#b7984014,transparent)}
@keyframes poll-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.poll-result-row{animation:none}}
@media(max-width:600px){.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.photo-card figcaption{padding:10px;font-size:.8rem}.poll-participation strong{font-size:2.1rem}}

.poll-color-0{--poll-color:#b79840}.poll-bg-0{background:#b79840}
.poll-color-1{--poll-color:#397b72}.poll-bg-1{background:#397b72}
.poll-color-2{--poll-color:#587ba5}.poll-bg-2{background:#587ba5}
.poll-color-3{--poll-color:#986f96}.poll-bg-3{background:#986f96}
.poll-color-4{--poll-color:#b57556}.poll-bg-4{background:#b57556}
.poll-color-5{--poll-color:#758346}.poll-bg-5{background:#758346}
.poll-color-6{--poll-color:#497b96}.poll-bg-6{background:#497b96}
.poll-color-7{--poll-color:#a16671}.poll-bg-7{background:#a16671}
.poll-color-8{--poll-color:#7d735d}.poll-bg-8{background:#7d735d}
.poll-color-9{--poll-color:#7476a2}.poll-bg-9{background:#7476a2}
.poll-color-10{--poll-color:#4d8770}.poll-bg-10{background:#4d8770}
.poll-color-11{--poll-color:#9b7b48}.poll-bg-11{background:#9b7b48}
.home-polls{margin-top:0}.home-polls .card{border-color:#b7984060;background:linear-gradient(145deg,#b798400d,transparent)}.poll-remarks{border-top:1px solid #8b8d7d44;margin-top:24px;padding-top:16px}.poll-remark{padding:14px 0;border-bottom:1px solid #8b8d7d22}.poll-remark p{white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0}.poll-remarks strong{font-size:.85rem}
