/* 제공·제작 — 페이지 맨 끝 오른쪽 구석만 (고정 오버레이·중간 페이지 없음) */
.election-legal-footer--page-end {
  display: block;
  position: relative;
  clear: both;
  max-width: var(--eposter-max, 440px);
  margin: 28px auto 10px;
  padding: 0 max(6px, env(safe-area-inset-right)) 10px 16px;
  text-align: right;
  pointer-events: none;
  user-select: none;
  line-height: 1.3;
  background: transparent;
}
.election-legal-footer--page-end .provider,
.election-legal-footer--page-end .ai-made {
  display: inline-block;
  font-size: 8px;
  font-weight: 600;
  padding: 4px 6px;
  border-radius: 4px;
  background: rgba(0, 0, 0, 0.78);
  color: rgba(255, 255, 255, 0.92);
  letter-spacing: -0.02em;
}
.election-legal-footer--page-end .ai-made {
  font-weight: 700;
  color: rgba(251, 191, 36, 0.95);
  margin-left: 2px;
}
.share-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}
.share-bar .btn-share {
  flex: 1 1 calc(50% - 4px);
  min-width: 120px;
  border: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
  padding: 12px 14px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.12);
  color: inherit;
  border: 1px solid rgba(255, 255, 255, 0.2);
}
.share-bar .btn-share--primary {
  background: linear-gradient(135deg, #2563eb, #1d4ed8);
  color: #fff;
  border: none;
}
.share-bar .btn-share:active {
  opacity: 0.85;
  transform: scale(0.98);
}
.share-toast {
  position: fixed;
  left: 50%;
  bottom: 72px;
  transform: translateX(-50%);
  z-index: 10000;
  background: rgba(15, 23, 42, 0.95);
  color: #f8fafc;
  font-size: 13px;
  font-weight: 600;
  padding: 10px 18px;
  border-radius: 999px;
  opacity: 0;
  transition: opacity 0.25s;
  pointer-events: none;
}
.share-toast.show {
  opacity: 1;
}

/* 유권자↔후보 직접 소통 — 절차 없음 */
.election-direct { margin-top: 14px; }
.election-direct .direct-note { font-size: 13px; line-height: 1.5; opacity: 0.85; margin-bottom: 10px; }
.election-direct-form { display: flex; flex-direction: column; gap: 8px; }
.election-direct-form input,
.election-direct-form textarea {
  width: 100%;
  font-family: inherit;
  font-size: 14px;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid rgba(128, 128, 128, 0.35);
  background: rgba(255, 255, 255, 0.08);
  color: inherit;
}
.election-direct-form textarea { min-height: 88px; resize: vertical; }
.election-direct-form .btn-send {
  border: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 14px;
  font-weight: 800;
  padding: 12px;
  border-radius: 12px;
  background: linear-gradient(135deg, #059669, #047857);
  color: #fff;
}
.election-direct-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.election-direct-links a {
  flex: 1 1 calc(50% - 4px);
  min-width: 120px;
  text-align: center;
  text-decoration: none;
  font-size: 13px;
  font-weight: 700;
  padding: 11px 10px;
  border-radius: 12px;
  border: 1px solid rgba(128, 128, 128, 0.35);
  color: inherit;
}
.election-thread { margin-top: 12px; max-height: 220px; overflow-y: auto; }
.election-thread-item {
  font-size: 12px;
  line-height: 1.45;
  padding: 8px 10px;
  border-radius: 8px;
  margin-bottom: 6px;
  background: rgba(128, 128, 128, 0.12);
}
.election-thread-item .who { font-weight: 700; margin-bottom: 2px; }
.election-thread-item .reply { margin-top: 6px; padding-left: 8px; border-left: 2px solid rgba(59, 130, 246, 0.6); }
.election-privacy-agree {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 11px;
  line-height: 1.45;
  margin: 8px 0 4px;
  cursor: pointer;
}
.election-privacy-agree #electionPrivacyVersion {
  font-size: 10px;
  opacity: 0.75;
}
.election-privacy-agree input { margin-top: 3px; flex-shrink: 0; }
.election-privacy-agree a { color: #2563eb; }
.election-moderation-note { font-size: 11px; opacity: 0.8; margin-top: 6px; line-height: 1.4; }

.eposter-party-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  font-size: 11px;
  font-weight: 800;
  position: sticky;
  top: 0;
  z-index: 100;
}
.eposter-party-nav a {
  text-decoration: none;
  opacity: 0.95;
}
.eposter-party-nav--kang {
  background: rgba(15, 118, 110, 0.95);
  color: #99f6e4;
}
.eposter-party-nav--kang a { color: #ccfbf1; }
.eposter-party-nav--park {
  background: #ea580c;
  color: #fff;
}
.eposter-party-nav--park a { color: #fff; }
