.vote-result-chart{margin-top:32px}.stats-header{text-align:center;margin-bottom:32px}.stats-header h3{font-size:1.25rem;color:#111827;margin-bottom:4px}.stats-header p{color:#6b7280;font-size:.875rem}.ranking-section{margin-bottom:40px}.ranking-section h4{font-size:1rem;color:#374151;margin-bottom:16px;border-left:4px solid #3b82f6;padding-left:12px}.category-bars{display:flex;flex-direction:column;gap:16px}.ranking-row{display:flex;flex-direction:column;gap:6px}.ranking-info{display:flex;align-items:center;gap:8px;font-size:.875rem}.ranking-num{font-weight:700;color:#d97706;min-width:24px;text-align:center}.cat-name{color:#111827;font-weight:600;flex:1}.vote-num{color:#4b5563;font-weight:500}.progress-bar-bg{width:100%;height:12px;background:#f3f4f6;border-radius:9999px;overflow:hidden}.progress-bar-fill{background:linear-gradient(to right,#60a5fa,#2563eb);height:100%;border-radius:9999px;transition:width 1s cubic-bezier(.4,0,.2,1)}.top-items-list{background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.top-item-row{display:flex;align-items:center;padding:12px 16px;border-bottom:1px solid #f3f4f6;transition:background .2s}.top-item-row:last-child{border-bottom:none}.top-item-row:hover{background:#f9fafb}.item-rank{font-family:Inter,sans-serif;font-weight:800;color:#9ca3af;font-size:1.125rem;min-width:32px}.top-item-row:nth-child(1) .item-rank{color:#f59e0b}.top-item-row:nth-child(2) .item-rank{color:#94a3b8}.top-item-row:nth-child(3) .item-rank{color:#b45309}.item-details{flex:1;display:flex;flex-direction:column}.item-name{font-weight:600;color:#111827}.item-cat-label{font-size:.75rem;color:#6b7280}.item-votes{font-weight:600;color:#3b82f6;font-size:.875rem}.stats-refresh-hint{text-align:center;color:#9ca3af;font-size:.75rem;font-style:italic;margin-top:16px}.stats-loading{text-align:center;padding:40px;color:#6b7280;font-style:italic}.voting-container{background:#fff;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;padding:24px;max-width:800px;margin:0 auto}.voting-container.voted{background:linear-gradient(to bottom,#f8fafc,#fff)}.vote-header{text-align:center;margin-bottom:32px}.vote-badge{display:inline-block;background:#fef3c7;color:#92400e;padding:4px 12px;border-radius:9999px;font-size:.875rem;font-weight:600;margin-bottom:12px}.vote-badge.success{background:#ecfdf5;color:#065f46}.vote-header h2{font-size:1.5rem;color:#111827;margin-bottom:8px}.vote-header p{color:#4b5563;line-height:1.6}.accordion-list{display:flex;flex-direction:column;gap:12px;margin-bottom:32px}.accordion-item{border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;transition:all .2s ease}.accordion-item.expanded{border-color:#3b82f6;box-shadow:0 4px 12px -2px #3b82f61a}.accordion-header{padding:16px 20px;background:#f9fafb;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background .2s}.accordion-header:hover{background:#f3f4f6}.header-content{display:flex;align-items:center;gap:16px}.cat-icon{font-size:1.5rem;min-width:32px;text-align:center}.cat-text{display:flex;flex-direction:column}.cat-title{font-weight:600;color:#111827}.cat-subtitle{font-size:.8125rem;color:#6b7280}.header-status{display:flex;align-items:center;gap:8px}.selected-count{background:#3b82f6;color:#fff;font-size:.75rem;font-weight:600;padding:2px 8px;border-radius:9999px}.arrow{color:#9ca3af;font-size:.75rem;transition:transform .2s}.expanded .arrow{transform:rotate(180deg)}.accordion-content{padding:12px 20px 20px;background:#fff;display:flex;flex-direction:column;gap:8px}.vote-item{display:flex;align-items:flex-start;gap:12px;padding:12px;border-radius:8px;cursor:pointer;border:1px solid transparent;transition:all .2s}.vote-item:hover{background:#f8fafc}.vote-item.active{background:#eff6ff;border-color:#bfdbfe}.vote-item input[type=checkbox]{width:20px;height:20px;margin-top:2px;cursor:pointer}.item-info{display:flex;flex-direction:column}.item-label{font-weight:500;color:#111827}.item-desc{font-size:.8125rem;color:#6b7280}.suggestion-box{margin-bottom:32px}.suggestion-box h3{font-size:1rem;color:#111827;margin-bottom:12px}.suggestion-box textarea{width:100%;padding:12px;border:1px solid #d1d5db;border-radius:8px;font-size:1rem;resize:vertical;transition:border-color .2s}.suggestion-box textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.submit-area{text-align:center;margin-bottom:24px}.btn-submit-vote{background:#2563eb;color:#fff;padding:12px 32px;border-radius:8px;font-size:1.125rem;font-weight:600;border:none;cursor:pointer;transition:all .2s;box-shadow:0 4px 6px -1px #2563eb33}.btn-submit-vote:hover:not(:disabled){background:#1d4ed8;transform:translateY(-1px);box-shadow:0 10px 15px -3px #2563eb4d}.btn-submit-vote:active:not(:disabled){transform:translateY(0)}.btn-submit-vote:disabled{background:#93c5fd;cursor:not-allowed}.hint{font-size:.8125rem;color:#6b7280;margin-top:12px}.vote-message{padding:12px;border-radius:8px;margin-bottom:24px;text-align:center;font-weight:500}.vote-message.success{background:#ecfdf5;color:#065f46}.vote-message.error{background:#fef2f2;color:#991b1b}.my-vote-summary{background:#f3f4f6;border-radius:12px;padding:24px;margin-bottom:32px}.my-vote-summary h3{font-size:1rem;color:#111827;margin-bottom:20px}.voted-categories{display:flex;flex-direction:column;gap:16px}.voted-cat-item{display:flex;flex-direction:column;gap:8px}.voted-cat-item .cat-title{font-size:.875rem;color:#4b5563;font-weight:600}.item-labels{display:flex;flex-wrap:wrap;gap:8px}.item-badge{background:#fff;border:1px solid #d1d5db;color:#111827;padding:4px 12px;border-radius:9999px;font-size:.8125rem;box-shadow:0 1px 2px #0000000d}.voted-suggestion{margin-top:24px;padding-top:16px;border-top:1px solid #d1d5db}.voted-suggestion strong{font-size:.875rem;color:#4b5563}.voted-suggestion p{margin-top:8px;color:#111827;font-style:italic}.divider{border:none;border-top:1px solid #e5e7eb;margin:40px 0}.voting-footer{text-align:center;color:#9ca3af;font-size:.75rem}.voting-loading{text-align:center;padding:40px;color:#6b7280}@media(max-width:640px){.voting-container{padding:16px}.accordion-header{padding:12px 16px}.header-status{flex-direction:column;align-items:flex-end;gap:4px}}
