/* ════════════════════════════════════════════════════════════════════════════
   poll.css  —  Poll page specific styles
   Cal-picker CSS is in shared.css.
   .card/.section-label override shared.css.
   ════════════════════════════════════════════════════════════════════════════ */

/* ── Poll page ── */

/* Glass card override for picker-style 22px radius */
.card {
  background: var(--card-bg); border: 1px solid var(--glass-border); border-radius: 22px;
  padding: 1.4rem 1.6rem; margin-bottom: 1rem; position: relative; overflow: hidden;
  backdrop-filter: blur(40px) saturate(150%); -webkit-backdrop-filter: blur(40px) saturate(150%);
  box-shadow: var(--shadow-card);
}
.card::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,rgba(255,255,255,0.3),transparent); }
.card::after  { content:''; position:absolute; inset:0; background:var(--glass-shine); pointer-events:none; border-radius:22px; }

/* Section label plain style */
.section-label { font-size:0.68rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--text-dim); margin-bottom:1rem; position:relative; z-index:1; display:block; }

/* Poll list */
.polls-grid { display:flex; flex-direction:column; gap:0.6rem; position:relative; z-index:1; }
.poll-row { display:flex; align-items:center; gap:0.75rem; padding:0.75rem 1rem; background:rgba(255,255,255,0.025); border:1px solid rgba(255,255,255,0.06); border-radius:12px; cursor:pointer; transition:all 0.15s; }
.poll-row:hover { background:rgba(124,92,252,0.07); border-color:rgba(124,92,252,0.2); }
.poll-row.active { background:rgba(124,92,252,0.1); border-color:rgba(124,92,252,0.35); }
.poll-info { flex:1; min-width:0; }
.poll-question { font-weight:700; font-size:0.9rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.poll-meta { font-size:0.72rem; color:var(--text-dim); margin-top:0.15rem; display:flex; gap:0.5rem; align-items:center; flex-wrap:wrap; }
.type-badge { display:inline-block; padding:0.15rem 0.5rem; border-radius:20px; font-size:0.68rem; font-weight:700; margin-right:0.35rem; }
.type-mc      { background:rgba(124,92,252,0.15); border:1px solid rgba(124,92,252,0.3); color:var(--accent2); }
.type-yesno   { background:rgba(52,211,153,0.12); border:1px solid rgba(52,211,153,0.3); color:var(--green); }
.type-rated   { background:rgba(251,191,36,0.12); border:1px solid rgba(251,191,36,0.3); color:var(--amber); }
.type-ranked  { background:rgba(248,113,113,0.12); border:1px solid rgba(248,113,113,0.3); color:var(--red); }

/* Inline poll accordion */
.poll-row-wrap { display:flex; flex-direction:column; background:rgba(255,255,255,0.025); border:1px solid rgba(255,255,255,0.06); border-radius:12px; overflow:hidden; transition:all 0.15s; margin-bottom:0; }
.poll-row-wrap:hover { border-color:rgba(124,92,252,0.2); }
.poll-row-wrap.expanded { border-color:rgba(124,92,252,0.35); background:rgba(124,92,252,0.06); }
.poll-chevron { transition:transform 0.2s; }
.poll-row-wrap.expanded .poll-chevron { transform:rotate(90deg); }
.poll-panel { display:none; padding:1.1rem 1rem 0.75rem; border-top:1px solid rgba(255,255,255,0.06); margin:0 -1rem; background:rgba(0,0,0,0.15); }
.poll-panel.open { display:block; }

/* Create form */
.create-form { display:flex; flex-direction:column; gap:0.75rem; position:relative; z-index:1; }
.field-grp { display:flex; flex-direction:column; gap:0.25rem; }
.field-grp label { font-size:0.67rem; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--text-dim); }
/* cs-btn styles provided by shared.css */

/* Type selector */
.type-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:0.5rem; }
.type-tile { padding:0.65rem 0.5rem; border-radius:10px; text-align:center; cursor:pointer; border:1px solid rgba(255,255,255,0.07); background:rgba(255,255,255,0.025); transition:all 0.15s; font-size:0.78rem; font-weight:600; color:var(--text-dim); }
.type-tile:hover { border-color:rgba(124,92,252,0.3); color:var(--text); }
.type-tile.selected { background:rgba(124,92,252,0.12); border-color:rgba(124,92,252,0.4); color:var(--accent2); }
.type-tile .type-icon { font-size:1.3rem; display:block; margin-bottom:0.25rem; }
@media(max-width:540px) { .type-grid { grid-template-columns:1fr 1fr; } }

/* Options list */
.options-list { display:flex; flex-direction:column; gap:0.35rem; }
.option-row { display:flex; gap:0.4rem; align-items:center; }
.add-option-row { display:flex; gap:0.4rem; }

/* Vote view */
.vote-section { position:relative; z-index:1; }
.vote-question { font-size:1.15rem; font-weight:800; color:var(--text); margin-bottom:0.35rem; }
.vote-meta { font-size:0.75rem; color:var(--text-dim); margin-bottom:1.25rem; }

/* Multiple choice */
.vote-options { display:flex; flex-direction:column; gap:0.5rem; margin-bottom:1.25rem; }
.vote-option { display:flex; align-items:center; gap:0.75rem; padding:0.7rem 1rem; background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.07); border-radius:10px; cursor:pointer; transition:all 0.15s; }
.vote-option:hover { background:rgba(124,92,252,0.08); border-color:rgba(124,92,252,0.25); }
.vote-option.selected { background:rgba(124,92,252,0.14); border-color:rgba(124,92,252,0.45); }
.vote-option .vo-label { flex:1; font-size:0.9rem; font-weight:500; }
.vote-check { width:18px; height:18px; border-radius:50%; border:2px solid rgba(255,255,255,0.2); flex-shrink:0; transition:all 0.15s; }
.vote-option.selected .vote-check { background:var(--accent2); border-color:var(--accent2); }

/* Yes/No */
.yesno-row { display:grid; grid-template-columns:1fr 1fr; gap:0.75rem; margin-bottom:1.25rem; }
.yn-btn { padding:1.25rem 0; border-radius:14px; font-size:1.2rem; font-weight:800; cursor:pointer; text-align:center; border:2px solid; transition:all 0.2s; }
.yn-yes { background:rgba(52,211,153,0.08); border-color:rgba(52,211,153,0.25); color:var(--green); }
.yn-yes:hover, .yn-yes.selected { background:rgba(52,211,153,0.18); border-color:rgba(52,211,153,0.6); }
.yn-no  { background:rgba(248,113,113,0.08); border-color:rgba(248,113,113,0.25); color:var(--red); }
.yn-no:hover, .yn-no.selected  { background:rgba(248,113,113,0.18); border-color:rgba(248,113,113,0.6); }

/* Rating */
.rating-row { display:flex; gap:0.5rem; justify-content:center; margin-bottom:1.25rem; flex-wrap:wrap; }
.star-btn { width:44px; height:44px; border-radius:50%; border:1px solid rgba(255,255,255,0.1); background:rgba(255,255,255,0.03); font-size:1.3rem; cursor:pointer; transition:all 0.15s; display:flex; align-items:center; justify-content:center; }
.star-btn:hover, .star-btn.selected { background:rgba(251,191,36,0.15); border-color:rgba(251,191,36,0.4); transform:scale(1.1); }

/* Ranked choice */
.rank-list { display:flex; flex-direction:column; gap:0.4rem; margin-bottom:1.25rem; }
.rank-item { display:flex; align-items:center; gap:0.65rem; padding:0.6rem 0.85rem; background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.07); border-radius:10px; cursor:grab; }
.rank-item:active { cursor:grabbing; }
.rank-item.drag-over { background:rgba(124,92,252,0.1); border-color:rgba(124,92,252,0.3); }
.rank-num { font-family:'DM Mono',monospace; font-size:0.8rem; color:var(--text-dim); width:20px; text-align:center; }
.rank-label { flex:1; font-size:0.9rem; }
.drag-handle { color:var(--text-muted); font-size:0.85rem; cursor:grab; }

/* Results */
.results-section { position:relative; z-index:1; }
.result-bar-row { margin-bottom:0.7rem; }
.result-label-row { display:flex; justify-content:space-between; margin-bottom:0.3rem; font-size:0.84rem; }
.result-label { font-weight:600; }
.result-count { color:var(--text-dim); font-family:'DM Mono',monospace; font-size:0.78rem; }
.result-bar-bg { height:8px; background:rgba(255,255,255,0.06); border-radius:4px; overflow:hidden; }
.result-bar-fill { height:8px; border-radius:4px; transition:width 0.5s cubic-bezier(0.16,1,0.3,1); }
.result-winner { display:flex; align-items:center; gap:0.6rem; padding:0.75rem 1rem; background:rgba(124,92,252,0.1); border:1px solid rgba(124,92,252,0.3); border-radius:12px; margin-top:1rem; }
.result-winner .rw-label { font-size:0.7rem; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--text-dim); }
.result-winner .rw-val { font-size:1rem; font-weight:800; color:var(--text); }
.vote-actions { display:flex; gap:0.5rem; flex-wrap:wrap; }

/* Empty state */
.empty-state { padding:2.5rem 1rem; text-align:center; color:var(--text-muted); font-size:0.88rem; }

/* Custom toggle switch */
.vc-toggle-wrap { display:inline-flex; align-items:center; gap:0.55rem; cursor:pointer; user-select:none; }
.vc-toggle-wrap input[type=checkbox] { position:absolute; opacity:0; width:0; height:0; pointer-events:none; }
.vc-toggle-track { width:34px; height:20px; border-radius:10px; flex-shrink:0; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.12); position:relative; transition:all 0.2s; }
.vc-toggle-thumb { width:14px; height:14px; border-radius:50%; background:var(--text-dim); position:absolute; top:2px; left:2px; transition:all 0.2s; }
.vc-toggle-wrap input:checked ~ .vc-toggle-track { background:var(--accent); border-color:var(--accent); box-shadow:0 0 8px rgba(124,92,252,0.35); }
.vc-toggle-wrap input:checked ~ .vc-toggle-track .vc-toggle-thumb { left:16px; background:#fff; }

/* Anonymous/named toggle row */
.anon-toggle-row { display:flex; align-items:center; justify-content:space-between; padding:0.65rem 0; border-top:1px solid rgba(255,255,255,0.06); }
.anon-label { display:flex; flex-direction:column; gap:0.1rem; }
.anon-label strong { font-size:0.84rem; font-weight:700; color:var(--text); }
.anon-label span { font-size:0.7rem; color:var(--text-dim); }

/* Deadline picker */
.deadline-row { display:flex; align-items:center; gap:0.65rem; flex-wrap:wrap; }
.deadline-input { background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.1); border-radius:8px; padding:0.45rem 0.7rem; color:var(--text); font-size:0.82rem; font-family:inherit; outline:none; transition:border-color 0.2s; }
.deadline-picker-btn { cursor:pointer; text-align:left; min-width:160px; color:var(--text-dim); }
.deadline-picker-btn.has-value { color:var(--text); }
.deadline-picker-btn:hover,.deadline-picker-btn:focus { border-color:rgba(124,92,252,0.5); }


/* Named voter */
.voter-name-row { display:flex; flex-direction:column; gap:0.25rem; margin-bottom:0.85rem; }
.voter-name-row label { font-size:0.67rem; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--text-dim); }
.voter-chip { display:inline-flex; align-items:center; gap:0.3rem; padding:0.1rem 0.5rem; border-radius:20px; font-size:0.68rem; font-weight:600; background:rgba(124,92,252,0.1); border:1px solid rgba(124,92,252,0.25); color:var(--accent2); margin:0.15rem 0.15rem 0 0; }
.voters-list { display:flex; flex-wrap:wrap; margin-top:0.5rem; }

/* Share link */
.share-link-box { display:flex; align-items:center; gap:0.5rem; margin-top:0.5rem; background:rgba(255,255,255,0.04); border:1px solid var(--border); border-radius:8px; padding:0.5rem 0.75rem; font-size:0.78rem; color:var(--text-dim); }
.share-link-url { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-family:'DM Mono',monospace; font-size:0.72rem; }

/* Custom select (portal-based) */
.vc-select-wrap { position:relative; width:100%; }
.vc-select-trigger { display:flex; align-items:center; justify-content:space-between; width:100%; padding:0.6rem 0.85rem; background:rgba(0,0,0,0.38); border:1px solid rgba(124,92,252,0.28); border-radius:9px; color:var(--text); font-family:'DM Sans',inherit; font-size:0.84rem; cursor:pointer; transition:border-color 0.18s,box-shadow 0.18s,background 0.18s; user-select:none; gap:0.5rem; min-height:38px; }
.vc-select-trigger:hover:not(.is-disabled) { border-color:rgba(124,92,252,0.5); background:rgba(0,0,0,0.42); }
.vc-select-trigger.is-open { border-color:rgba(124,92,252,0.65); box-shadow:0 0 0 3px rgba(124,92,252,0.12); background:rgba(0,0,0,0.42); border-radius:9px 9px 6px 6px; }
.vc-select-trigger.is-disabled { opacity:0.38; cursor:not-allowed; }
.vc-select-text { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--text); }
.vc-select-text.is-placeholder { color:var(--text-muted); }
.vc-select-chevron { flex-shrink:0; transition:transform 0.2s cubic-bezier(0.34,1.56,0.64,1); }
.vc-select-trigger.is-open .vc-select-chevron { transform:rotate(180deg); }
.vc-select-panel { position:fixed; z-index:99999; background:linear-gradient(145deg,#141424,#0e0e1c); border:1px solid rgba(124,92,252,0.45); border-radius:0 0 11px 11px; box-shadow:0 16px 48px rgba(0,0,0,0.7),0 0 0 1px rgba(124,92,252,0.08); overflow:hidden; animation:vcDropIn 0.17s cubic-bezier(0.16,1,0.3,1) both; min-width:120px; }
.vc-select-panel.vc-flip { border-radius:11px 11px 0 0; border-top:1px solid rgba(124,92,252,0.45); border-bottom:1px solid rgba(124,92,252,0.2); }
@keyframes vcDropIn { from{opacity:0;transform:scaleY(0.9) translateY(-6px)} to{opacity:1;transform:scaleY(1) translateY(0)} }
@keyframes vcDropUp  { from{opacity:0;transform:scaleY(0.9) translateY(6px)} to{opacity:1;transform:scaleY(1) translateY(0)} }
.vc-select-panel.vc-flip { animation-name:vcDropUp; }
.vc-select-list { max-height:220px; overflow-y:auto; overscroll-behavior:contain; padding:0.3rem 0; }
.vc-select-list::-webkit-scrollbar { width:4px; }
.vc-select-list::-webkit-scrollbar-track { background:transparent; }
.vc-select-list::-webkit-scrollbar-thumb { background:rgba(124,92,252,0.25); border-radius:2px; }
.vc-option { display:flex; align-items:center; gap:0.55rem; padding:0.52rem 0.9rem; font-size:0.83rem; font-family:'DM Sans',inherit; color:var(--text-dim); cursor:pointer; transition:background 0.1s,color 0.1s; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; position:relative; }
.vc-option:hover { background:rgba(124,92,252,0.1); color:var(--text); }
.vc-option.is-selected { color:var(--accent2); background:rgba(124,92,252,0.08); }
.vc-option.is-selected::before { content:''; position:absolute; left:0; top:0; bottom:0; width:2px; background:var(--accent); border-radius:0 2px 2px 0; }
.vc-option-tick { margin-left:auto; flex-shrink:0; opacity:0; }
.vc-option.is-selected .vc-option-tick { opacity:1; }
.vc-option.is-placeholder { color:var(--text-muted); font-style:italic; font-size:0.8rem; }
.vc-option.is-placeholder:hover { background:rgba(255,255,255,0.02); color:var(--text-muted); }
.vc-select-hidden { position:absolute; opacity:0; pointer-events:none; width:1px; height:1px; overflow:hidden; top:0; left:0; }
#rating-group .vc-select-wrap { max-width:140px; }

/* Confirm modal */
#confirm-modal { display:none; position:fixed; inset:0; z-index:8000; background:rgba(0,0,0,0.7); backdrop-filter:blur(6px); align-items:center; justify-content:center; }
#confirm-modal.open { display:flex; }
.confirm-modal-inner { background:linear-gradient(145deg,#0e0e1c,#12121e); border:1px solid rgba(255,255,255,0.12); border-radius:18px; padding:1.75rem 2rem; width:92%; max-width:400px; box-shadow:0 24px 64px rgba(0,0,0,0.6); position:relative; overflow:hidden; }
.confirm-modal-inner::before { content:''; position:absolute; top:0; left:10%; right:10%; height:1px; background:linear-gradient(90deg,transparent,rgba(255,255,255,0.18),transparent); }

/* Toast stack */
#toast { position:fixed; bottom:1.5rem; right:1.5rem; z-index:9999; display:flex; flex-direction:column; gap:0.4rem; pointer-events:none; }
.toast-item { padding:0.6rem 1rem; border-radius:10px; font-size:0.82rem; font-weight:600; background:rgba(20,20,36,0.95); border:1px solid rgba(255,255,255,0.12); backdrop-filter:blur(12px); color:var(--text); animation:toastIn 0.25s cubic-bezier(0.16,1,0.3,1); pointer-events:auto; }
@keyframes toastIn { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }
