/* ── POLL CARD ── */
.poll-card{
  background:var(--surface);
  border:1.5px solid var(--border);
  border-radius:20px;
  margin-bottom:20px;
  padding:20px 20px 0;
  transition:border-color .2s, transform .2s;
  overflow:hidden;
  position:relative;
}
.poll-card::before{
  content:'';
  position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg,var(--accent),#f5a623);
  opacity:0; transition:opacity .2s;
}
.poll-card:hover{
  border-color:var(--border2);
  transform:translateY(-2px);
}
.poll-card:hover::before{ opacity:1; }

.card-head{
  padding:0 0 14px;
  display:flex; flex-direction:column; gap:10px; align-items:flex-start;
}
.card-cat-badge{
  font-family:'DM Mono',monospace; font-size:11px; font-weight:700;
  padding:4px 10px; border-radius:100px; white-space:nowrap;
  flex-shrink:0; letter-spacing:.3px;
  border:1px solid;
}
.cc-politics{color:#1e5fd6;background:rgba(30,95,214,.08);border-color:rgba(30,95,214,.2);}
.cc-economy {color:#1a7a4a;background:rgba(26,122,74,.08);border-color:rgba(26,122,74,.2);}
.cc-society {color:#7a3a1a;background:rgba(122,58,26,.08);border-color:rgba(122,58,26,.2);}
.cc-culture {color:#6a1a7a;background:rgba(106,26,122,.08);border-color:rgba(106,26,122,.2);}
.cc-intl    {color:#1a5a7a;background:rgba(26,90,122,.08);border-color:rgba(26,90,122,.2);}
.cc-election{color:#b02020;background:rgba(176,32,32,.08);border-color:rgba(176,32,32,.25);}
.cc-adult   {color:#8b008b;background:rgba(139,0,139,.08);border-color:rgba(139,0,139,.25);}
.cat-pill.cat-adult {
  border-color:rgba(139,0,139,.4); color:#8b008b;
  background:rgba(139,0,139,.05);
}
.cat-pill.cat-adult.active, .cat-pill.cat-adult:hover {
  background:#8b008b; border-color:#8b008b; color:#fff;
}

/* 수정 모달 */
#m-edit .modal { border-color: var(--accent2); }

/* 성인인증 오버레이 */
.adult-gate {
  position:fixed; inset:0; z-index:500;
  background:rgba(10,10,15,.97);
  backdrop-filter:blur(12px);
  display:flex; align-items:center; justify-content:center;
  padding:24px;
}
.adult-gate-box {
  background:var(--surface); border:2px solid #8b008b;
  border-radius:20px; padding:40px 32px;
  max-width:420px; width:100%; text-align:center;
}
.adult-gate-icon { font-size:48px; margin-bottom:16px; }
.adult-gate-title {
  font-family:'Gmarket Sans','Noto Sans KR',sans-serif; font-size:22px; font-weight:900;
  margin-bottom:8px; letter-spacing:-.5px;
}
.adult-gate-desc { font-size:14px; color:var(--ink2); line-height:1.7; margin-bottom:28px; }
.adult-gate-btns { display:flex; gap:10px; }
.adult-gate-btn {
  flex:1; padding:13px; border-radius:10px; font-size:14px; font-weight:700;
  cursor:pointer; font-family:'Noto Sans KR',sans-serif; transition:all .15s;
  border:1.5px solid;
}
.adult-gate-btn.confirm {
  background:#8b008b; color:#fff; border-color:#8b008b;
}
.adult-gate-btn.confirm:hover { background:#6a006a; }
.adult-gate-btn.cancel {
  background:transparent; color:var(--ink2); border-color:var(--border2);
}
.adult-gate-btn.cancel:hover { border-color:var(--ink); color:var(--ink); }
.adult-warning {
  font-size:11px; color:var(--ink3); margin-top:14px; line-height:1.5;
}

.card-title{
  font-family:'Gmarket Sans','Noto Sans KR',sans-serif; font-size:18px; font-weight:900;
  line-height:1.4; letter-spacing:-.4px; flex:1;
}

/* ── 투표 바 ── */
.poll-bar-section { padding: 16px 0 4px; }
.choice-bar-row { margin-bottom: 14px; }
.choice-bar-info {
  display: flex; justify-content: space-between; align-items: center;
  font-size: 13px; margin-bottom: 7px;
  font-weight: 700; color: var(--ink);
}
.choice-bar-info span:last-child {
  font-size: 13px; font-weight: 700; color: var(--accent);
  font-variant-numeric: tabular-nums;
}
.bar-outer {
  height: 10px; border-radius: 100px; background: var(--surface2);
  overflow: hidden; display: block; border: none;
}
.bar-fill {
  height: 100%; border-radius: 100px;
  transition: width 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ── 투표 버튼 ── */
.vote-row {
  display: flex; flex-wrap: wrap; justify-content: center;
  gap: 8px; padding: 12px 0 20px;
}
.vbtn {
  flex: 1 1 calc(50% - 10px); min-width: 100px; max-width: 220px;
  padding: 13px 8px; border-radius: 12px;
  font-size: 13px; font-weight: 700; cursor: pointer;
  border: 1.5px solid var(--border); background: var(--surface);
  transition: all .15s; text-align: center;
  font-family: var(--font-body); color: var(--ink2);
}
.vbtn:hover:not(.done) {
  border-color: var(--accent); color: var(--accent);
  background: rgba(232,99,42,.05);
}
.vbtn.done {
  background: var(--ink) !important; color: #fff !important;
  border-color: var(--ink); transform: scale(1.02);
}
.card-footer{
  padding: 12px 0; margin: 0 0; border-top: 1px solid var(--border);
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 8px;
  margin-left:-20px; margin-right:-20px; padding-left:20px; padding-right:20px;
}

.badges{display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
.badge{
  font-size:11px; padding:2px 7px; border-radius:100px;
  font-family:'DM Mono',monospace; border:1px solid; letter-spacing:.2px;
}
.b-country{color:#1e5fd6;background:rgba(30,95,214,.07);border-color:rgba(30,95,214,.3);}
.b-age    {color:#7a4a00;background:rgba(122,74,0,.07);border-color:rgba(122,74,0,.25);}
.b-male   {color:#1e5fd6;background:rgba(30,95,214,.07);border-color:rgba(30,95,214,.25);}
.b-female {color:#a0206a;background:rgba(160,32,106,.07);border-color:rgba(160,32,106,.25);}
.b-other  {color:#5a5a5a;background:rgba(90,90,90,.07);border-color:rgba(90,90,90,.25);}

.vote-meta{
  font-family:'DM Mono',monospace; font-size:11px; color:var(--ink3);
}

