/* 촘촘 광고주 콘솔 — 디자인 시스템 (#5B2EEA) */
:root {
  --cc-primary: #5b2eea;
  --cc-primary-soft: rgba(91, 46, 234, 0.12);
  --cc-primary-dark: #4527c7;
  --cc-bg: #f3f0fa;
  --cc-bg-warm: linear-gradient(165deg, #faf8ff 0%, #f0ebff 40%, #f3f0fa 100%);
  --cc-card: #ffffff;
  --cc-text: #141414;
  --cc-text-secondary: #3d3d3d;
  --cc-muted: #6b6b6b;
  --cc-muted-light: #9a9a9a;
  --cc-border: #e4dff0;
  --cc-radius: 14px;
  --cc-radius-sm: 10px;
  --cc-shadow-sm: 0 1px 3px rgba(20, 20, 40, 0.06);
  --cc-shadow: 0 8px 32px rgba(91, 46, 234, 0.09);
  --cc-shadow-lg: 0 20px 50px rgba(45, 30, 90, 0.12);
  --cc-font: 'Pretendard', 'Malgun Gothic', -apple-system, sans-serif;
  --cc-sticky-h: 76px;
}

* {
  box-sizing: border-box;
}

body.advertiser-body {
  margin: 0;
  font-family: var(--cc-font);
  background: var(--cc-bg-warm);
  color: var(--cc-text);
  line-height: 1.55;
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
}

/* ─── 로그인 페이지 ─── */
body.ad-login-page {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  scroll-behavior: smooth;
}

.ad-login-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 28px;
  max-width: 1280px;
  margin: 0 auto;
  width: 100%;
}
.ad-login-topbar-logo {
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--cc-primary);
  text-decoration: none;
  letter-spacing: -0.03em;
}
.ad-login-topbar-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
}
.ad-login-topbar-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  border-radius: 10px;
  font-size: 0.88rem;
  font-weight: 700;
  text-decoration: none;
  border: 1px solid transparent;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
  box-sizing: border-box;
}
.ad-login-topbar-btn--demo {
  color: #fff !important;
  background: linear-gradient(135deg, #5b2eea, #7c4dff);
  border-color: transparent;
  box-shadow: 0 4px 14px rgba(91, 46, 234, 0.35);
}
.ad-login-topbar-btn--demo:hover {
  filter: brightness(1.06);
  color: #fff !important;
}
.ad-login-topbar-btn--signup {
  color: var(--cc-primary) !important;
  background: #fff;
  border-color: rgba(91, 46, 234, 0.4);
}
.ad-login-topbar-btn--signup:hover {
  background: var(--cc-primary-soft);
  color: var(--cc-primary-dark) !important;
}

/* 본문 히어로 CTA (첫 화면·스크롤 없이 노출) */
.ad-login-brand-cta {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 28px;
  max-width: min(100%, 360px);
}
.ad-login-hero-primary {
  width: 100%;
  justify-content: center;
  text-align: center;
  text-decoration: none;
  box-sizing: border-box;
}
.ad-login-hero-secondary {
  width: 100%;
  justify-content: center;
  text-align: center;
  text-decoration: none;
  box-sizing: border-box;
}
.ad-login-hero-back-link {
  display: block;
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--cc-primary);
  text-decoration: underline;
  text-underline-offset: 4px;
  text-align: center;
  padding: 10px 8px;
}
.ad-login-hero-back-link:hover {
  color: var(--cc-primary-dark);
}
.ad-login-hero-next-hint {
  margin: 14px 0 0;
  font-size: 0.86rem;
  color: var(--cc-muted);
  line-height: 1.5;
  max-width: 28rem;
}
#ad-login-card {
  scroll-margin-top: 20px;
}

/* 데모 모드 상단 고정 배지 (?demo=1) */
.ad-demo-mode-badge {
  display: none;
  position: sticky;
  top: 0;
  z-index: 9999;
  width: 100%;
  box-sizing: border-box;
  padding: 10px 16px;
  text-align: center;
  font-size: 0.9rem;
  font-weight: 800;
  color: #fff;
  background: linear-gradient(90deg, #5b2eea, #7c4dff);
  border-bottom: 2px solid rgba(255, 255, 255, 0.35);
  letter-spacing: 0.02em;
}

/* 데모 배너 (이벤트 등록) */
.ad-demo-banner {
  max-width: 1280px;
  margin: 0 auto 16px;
  padding: 12px 24px;
  background: linear-gradient(90deg, rgba(91, 46, 234, 0.12), rgba(124, 77, 255, 0.08));
  border: 1px solid rgba(91, 46, 234, 0.25);
  border-radius: var(--cc-radius-sm);
  font-size: 0.88rem;
  color: var(--cc-text-secondary);
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
  justify-content: space-between;
}
.ad-demo-banner strong {
  color: var(--cc-primary-dark);
}
.ad-demo-banner a {
  color: var(--cc-primary);
  font-weight: 600;
}

/* 실동작 데모 (?demo=live) — 실제 저장 경고 */
.ad-live-demo-badge {
  display: none;
  position: sticky;
  top: 0;
  z-index: 9998;
  width: 100%;
  box-sizing: border-box;
  padding: 10px 16px;
  text-align: center;
  font-size: 0.88rem;
  font-weight: 800;
  color: #fff;
  background: linear-gradient(90deg, #c2410c, #ea580c);
  border-bottom: 2px solid rgba(255, 255, 255, 0.3);
  letter-spacing: 0.02em;
}

.ad-live-demo-banner {
  display: none;
  flex-direction: column;
  max-width: 1280px;
  margin: 0 auto 16px;
  padding: 16px 22px;
  background: linear-gradient(145deg, rgba(234, 88, 12, 0.12), rgba(251, 146, 60, 0.08));
  border: 1px solid rgba(194, 65, 12, 0.35);
  border-radius: var(--cc-radius-sm);
  font-size: 0.9rem;
  color: var(--cc-text-secondary);
  line-height: 1.55;
}
.ad-live-demo-banner-inner {
  max-width: 52rem;
}
.ad-live-demo-banner-title {
  margin: 0 0 8px;
  font-size: 1rem;
  color: var(--cc-text);
}
.ad-live-demo-banner-title strong {
  color: #c2410c;
}
.ad-live-demo-banner-desc {
  margin: 0 0 10px;
}
.ad-live-demo-banner-desc code,
.ad-live-demo-banner-warn code {
  font-size: 0.85em;
  padding: 1px 6px;
  background: rgba(255, 255, 255, 0.7);
  border-radius: 4px;
}
.ad-live-demo-banner-warn {
  margin: 0;
  font-size: 0.86rem;
  color: var(--cc-muted);
}

.ad-form-demo-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-bottom: 16px;
}
.ad-btn-demo-fill {
  padding: 10px 16px;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--cc-primary);
  background: #fff;
  border: 1px dashed var(--cc-primary);
  border-radius: var(--cc-radius-sm);
  cursor: pointer;
  font-family: inherit;
}
.ad-btn-demo-fill:hover {
  background: var(--cc-primary-soft);
}

.ad-preview-store {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--cc-muted);
  margin-bottom: 6px;
}

.ad-login-split {
  flex: 1;
  display: grid;
  /* 오른쪽 컬럼이 0폭으로 접히지 않도록 min()/auto 계산 대신 minmax로 고정 */
  grid-template-columns: minmax(0, 1fr) minmax(320px, 440px);
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
  max-width: 1120px;
  margin: 0 auto;
  padding: 24px 28px 48px;
  width: 100%;
}

@media (max-width: 900px) {
  .ad-login-split {
    grid-template-columns: 1fr;
    align-items: start;
    padding-bottom: 32px;
  }

  .ad-login-card-wrap {
    min-width: 0;
  }
}

.ad-login-brand {
  padding-right: clamp(0px, 3vw, 24px);
}
.ad-login-brand-eyebrow {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--cc-primary);
  margin: 0 0 12px;
}
.ad-login-brand-title {
  font-size: clamp(1.75rem, 3.5vw, 2.25rem);
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1.25;
  margin: 0 0 16px;
  color: var(--cc-text);
}
.ad-login-brand-desc {
  font-size: 1.05rem;
  color: var(--cc-text-secondary);
  line-height: 1.65;
  margin: 0 0 28px;
}
.ad-login-brand-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ad-login-brand-list li {
  position: relative;
  padding-left: 22px;
  font-size: 0.95rem;
  color: var(--cc-muted);
  line-height: 1.5;
}
.ad-login-brand-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--cc-primary);
  opacity: 0.85;
}

.ad-login-card-wrap {
  display: block;
  width: 100%;
  min-width: 320px;
}

.ad-login-card {
  max-width: none;
  margin: 0;
  padding: clamp(28px, 4vw, 40px);
  border-radius: var(--cc-radius);
  background: var(--cc-card);
  box-shadow: var(--cc-shadow-lg);
  border: 1px solid rgba(91, 46, 234, 0.06);
}

.ad-login-card-head {
  margin-bottom: 24px;
}
.ad-login-card-title {
  font-size: 1.35rem;
  font-weight: 800;
  margin: 0 0 6px;
  letter-spacing: -0.02em;
}
.ad-login-card-sub {
  margin: 0;
  font-size: 0.9rem;
  color: var(--cc-muted);
}

.ad-login-card-footer {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--cc-border);
  text-align: center;
}
.ad-login-card-hint {
  margin: 0 0 16px;
  font-size: 0.88rem;
  color: var(--cc-muted);
  line-height: 1.55;
}

/* ─── 콘솔 공통 ─── */
.ad-console {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.ad-console-body {
  padding-bottom: var(--cc-sticky-h);
}

.ad-console-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--cc-border);
}
.ad-console-header-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 14px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.ad-console-logo {
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--cc-primary);
  text-decoration: none;
  letter-spacing: -0.03em;
}
.ad-console-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  justify-content: flex-end;
}
.ad-console-nav a {
  font-size: 0.88rem;
  font-weight: 500;
  color: var(--cc-muted);
  text-decoration: none;
}
.ad-console-nav a:hover {
  color: var(--cc-primary);
}

.ad-console-main {
  flex: 1;
  max-width: 1280px;
  margin: 0 auto;
  padding: 28px 24px 120px;
  width: 100%;
}

/* 페이지 히어로 */
.ad-page-hero {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-bottom: 28px;
}
@media (min-width: 768px) {
  .ad-page-hero {
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: 32px;
  }
}

.ad-page-title {
  font-size: clamp(1.5rem, 2.8vw, 1.85rem);
  font-weight: 800;
  letter-spacing: -0.035em;
  margin: 0 0 10px;
  line-height: 1.25;
}
.ad-page-desc {
  margin: 0;
  font-size: 1rem;
  color: var(--cc-text-secondary);
  line-height: 1.65;
}
.ad-br-desktop {
  display: none;
}
@media (min-width: 640px) {
  .ad-br-desktop {
    display: inline;
  }
}

.ad-page-bullets {
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ad-page-bullets li {
  font-size: 0.92rem;
  color: var(--cc-muted);
  padding-left: 1.15rem;
  position: relative;
}
.ad-page-bullets li::before {
  content: '✔';
  position: absolute;
  left: 0;
  color: var(--cc-primary);
  font-size: 0.75rem;
  top: 0.2em;
}

.ad-page-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: flex-start;
  flex-shrink: 0;
}
.ad-badge {
  display: inline-flex;
  align-items: center;
  padding: 8px 14px;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--cc-muted);
  background: #fff;
  border: 1px solid var(--cc-border);
  border-radius: 999px;
  box-shadow: var(--cc-shadow-sm);
}
.ad-badge--accent {
  color: var(--cc-primary);
  border-color: rgba(91, 46, 234, 0.35);
  background: var(--cc-primary-soft);
}

/* 그리드 60/40 */
.ad-grid--console {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(280px, 2fr);
  gap: clamp(20px, 3vw, 36px);
  align-items: start;
}

@media (max-width: 1024px) {
  .ad-grid--console {
    grid-template-columns: 1fr;
  }
}

.ad-form-column {
  position: relative;
  min-width: 0;
}

.ad-event-form {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* 섹션 카드 */
.ad-section {
  background: var(--cc-card);
  border-radius: var(--cc-radius);
  padding: 26px 24px;
  margin-bottom: 20px;
  border: 1px solid rgba(91, 46, 234, 0.07);
  box-shadow: var(--cc-shadow-sm);
}

.ad-section--elevated {
  box-shadow: var(--cc-shadow);
}

.ad-section-head {
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--cc-border);
}
.ad-section-title {
  font-size: 1.05rem;
  font-weight: 800;
  margin: 0 0 6px;
  letter-spacing: -0.02em;
  color: var(--cc-text);
}
.ad-section-desc {
  margin: 0;
  font-size: 0.86rem;
  color: var(--cc-muted);
  line-height: 1.5;
}

.ad-section h2.ad-section-title {
  border: none;
  padding: 0;
  display: block;
}

.ad-req {
  color: #c62828;
  font-weight: 700;
}
.ad-label-optional {
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--cc-muted-light);
}

.ad-form-group {
  margin-bottom: 18px;
}
.ad-form-group:last-child {
  margin-bottom: 0;
}

.ad-form-group label {
  display: block;
  font-size: 0.82rem;
  font-weight: 600;
  margin-bottom: 8px;
  color: var(--cc-text-secondary);
}

.ad-field-hint {
  margin: 8px 0 0;
  font-size: 0.78rem;
  color: var(--cc-muted-light);
}

.ad-field-row {
  display: flex;
  gap: 10px;
  align-items: stretch;
  flex-wrap: wrap;
}
.ad-field-row .ad-input {
  flex: 1;
  min-width: 160px;
}

.ad-input,
.ad-textarea,
.ad-select {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--cc-border);
  border-radius: var(--cc-radius-sm);
  font-size: 0.95rem;
  font-family: inherit;
  background: #fff;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.ad-textarea {
  min-height: 120px;
  resize: vertical;
}
.ad-textarea--tall {
  min-height: 160px;
}
.ad-input:focus,
.ad-textarea:focus,
.ad-select:focus {
  outline: none;
  border-color: var(--cc-primary);
  box-shadow: 0 0 0 3px var(--cc-primary-soft);
}

.ad-row-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.ad-row-2--tight {
  margin-top: 8px;
}

@media (max-width: 640px) {
  .ad-row-2 {
    grid-template-columns: 1fr;
  }
}

.ad-check-line {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 12px 0;
  font-size: 0.9rem;
  color: var(--cc-text-secondary);
  cursor: pointer;
}
.ad-check-line input {
  margin-top: 4px;
  accent-color: var(--cc-primary);
}

.ad-details {
  margin-top: 16px;
  padding: 14px 16px;
  border-radius: var(--cc-radius-sm);
  background: rgba(91, 46, 234, 0.04);
  border: 1px dashed var(--cc-border);
}
.ad-details summary {
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--cc-primary-dark);
  cursor: pointer;
}
.ad-details[open] summary {
  margin-bottom: 12px;
}

.ad-subblock {
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid var(--cc-border);
}
.ad-subblock-title {
  font-size: 0.92rem;
  font-weight: 700;
  margin: 0 0 6px;
}
.ad-benefit-grid {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* 버튼 */
.ad-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 20px;
  font-size: 0.95rem;
  font-weight: 700;
  font-family: inherit;
  border: none;
  border-radius: var(--cc-radius-sm);
  cursor: pointer;
  transition: background 0.15s, transform 0.1s, box-shadow 0.15s;
}
.ad-btn:active:not(:disabled) {
  transform: scale(0.98);
}
.ad-btn-lg {
  padding: 14px 22px;
  font-size: 1rem;
  border-radius: 12px;
}
.ad-btn-primary {
  background: var(--cc-primary);
  color: #fff;
  width: 100%;
  box-shadow: 0 4px 16px rgba(91, 46, 234, 0.35);
}
.ad-btn-primary:hover:not(:disabled) {
  background: var(--cc-primary-dark);
}
.ad-btn-primary:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  box-shadow: none;
}
.ad-btn-secondary {
  background: #fff;
  color: var(--cc-text);
  border: 1px solid var(--cc-border);
  width: auto;
}
.ad-btn-secondary:hover:not(:disabled) {
  background: #fafafa;
  border-color: #ccc;
}
.ad-btn-outline {
  background: #fff;
  color: var(--cc-primary);
  border: 2px solid var(--cc-primary);
  text-decoration: none;
  width: 100%;
  box-sizing: border-box;
}
.ad-btn-outline:hover {
  background: var(--cc-primary-soft);
}
.ad-btn-ghost {
  background: transparent;
  color: var(--cc-primary);
  border: 1px solid var(--cc-primary);
}
.ad-btn-ai {
  flex-shrink: 0;
  padding: 10px 16px;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--cc-primary);
  background: #fff;
  border: 1px solid var(--cc-primary);
  border-radius: var(--cc-radius-sm);
}
.ad-btn-ai:hover:not(:disabled) {
  background: var(--cc-primary-soft);
}
.ad-btn-ai:disabled {
  opacity: 0.5;
  cursor: wait;
}

/* 하단 고정 액션 */
.ad-form-end-spacer {
  height: 24px;
}

.ad-form-sticky-actions {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 40;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0));
  background: linear-gradient(180deg, rgba(243, 240, 250, 0) 0%, rgba(243, 240, 250, 0.92) 18%, #f3f0fa 40%);
  border-top: 1px solid var(--cc-border);
  backdrop-filter: blur(8px);
}

.ad-form-sticky-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding-left: 8px;
  padding-right: 8px;
  display: flex;
  gap: 12px;
  justify-content: flex-end;
  flex-wrap: wrap;
}

.ad-form-sticky-inner .ad-btn {
  width: auto;
  min-width: min(200px, 100%);
}
.ad-form-sticky-inner .ad-btn-primary {
  flex: 1 1 220px;
  max-width: 320px;
}

@media (max-width: 1024px) {
  .ad-form-sticky-inner {
    justify-content: stretch;
  }
  .ad-form-sticky-inner .ad-btn {
    flex: 1;
    min-width: 0;
  }
}

/* 드롭존 */
.ad-dropzone {
  border: 2px dashed var(--cc-border);
  border-radius: var(--cc-radius);
  padding: 32px 20px;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
  background: rgba(255, 255, 255, 0.6);
}
.ad-dropzone:hover,
.ad-dropzone.ad-drop-active {
  border-color: var(--cc-primary);
  background: var(--cc-primary-soft);
}
.ad-dropzone-icon {
  display: block;
  font-size: 1.5rem;
  color: var(--cc-primary);
  margin-bottom: 8px;
  font-weight: 300;
}
.ad-dropzone-title {
  display: block;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--cc-text);
}
.ad-dropzone-sub {
  display: block;
  font-size: 0.8rem;
  color: var(--cc-muted);
  margin-top: 6px;
}

.ad-thumb-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}
.ad-thumb {
  position: relative;
  width: 88px;
  height: 88px;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid var(--cc-border);
  box-shadow: var(--cc-shadow-sm);
}
.ad-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ad-thumb button.remove {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 24px;
  height: 24px;
  border: none;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
}

/* 미리보기 컬럼 */
.ad-preview-column {
  position: relative;
}

.ad-preview-phone {
  position: sticky;
  top: 88px;
  padding-bottom: 24px;
}

.ad-preview-sticky {
  position: relative;
}

.ad-preview-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--cc-muted-light);
  margin: 0 0 4px;
}
.ad-preview-hint {
  font-size: 0.82rem;
  color: var(--cc-muted);
  margin: 0 0 14px;
}

.ad-preview-card {
  background: var(--cc-card);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: var(--cc-shadow-lg);
  border: 1px solid rgba(91, 46, 234, 0.1);
}

.ad-preview-phone-notch {
  height: 28px;
  background: linear-gradient(180deg, #eae8f2 0%, #f3f0fa 100%);
  border-radius: 20px 20px 0 0;
  position: relative;
}
.ad-preview-phone-notch::after {
  content: '';
  position: absolute;
  top: 8px;
  left: 50%;
  transform: translateX(-50%);
  width: 48px;
  height: 5px;
  background: #ccc;
  border-radius: 99px;
}

#ad-preview-img-wrap {
  position: relative;
  background: linear-gradient(145deg, #ede8ff 0%, #f5f2ff 100%);
}

.ad-preview-img-wrap--empty .ad-preview-img {
  opacity: 0;
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.ad-preview-img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  display: block;
  vertical-align: middle;
}

.ad-preview-img-placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--cc-muted);
  font-size: 0.88rem;
  font-weight: 500;
  pointer-events: none;
}
.ad-preview-img-wrap--empty .ad-preview-img-placeholder {
  display: flex;
}
.ad-preview-img-placeholder[hidden] {
  display: none !important;
}

.ad-preview-body {
  padding: 18px 18px 20px;
}
.ad-preview-title {
  font-size: 1.12rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  margin: 0 0 6px;
  line-height: 1.3;
}
.ad-preview-copy {
  color: var(--cc-muted);
  font-size: 0.88rem;
  margin-bottom: 12px;
  line-height: 1.45;
}
.ad-preview-meta {
  font-size: 0.82rem;
  color: var(--cc-text-secondary);
  margin-bottom: 4px;
}
.ad-preview-meta--price {
  font-weight: 700;
  color: var(--cc-primary-dark);
}
.ad-preview-intro {
  margin: 12px 0 0;
  font-size: 0.78rem;
  color: var(--cc-muted);
  line-height: 1.5;
  max-height: 72px;
  overflow: hidden;
}

.ad-preview-cta-row {
  display: flex;
  gap: 8px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--cc-border);
}
.ad-preview-cta {
  flex: 1;
  text-align: center;
  padding: 10px 8px;
  font-size: 0.78rem;
  font-weight: 700;
  border-radius: 10px;
  background: var(--cc-primary);
  color: #fff;
}
.ad-preview-cta--ghost {
  background: #fff;
  color: var(--cc-primary);
  border: 1px solid var(--cc-border);
}

@media (max-width: 1024px) {
  .ad-preview-phone {
    position: relative;
    top: auto;
  }
}

/* 레거시 프리뷰 클래스 호환 */
.ad-preview {
  position: sticky;
  top: 24px;
}

/* 에러 */
.ad-error {
  background: #fff5f5;
  color: #b00020;
  padding: 12px 14px;
  border-radius: var(--cc-radius-sm);
  font-size: 0.88rem;
  margin-bottom: 16px;
  border: 1px solid #ffcdd2;
}
.ad-error[hidden] {
  display: none !important;
}
.ad-error--wide {
  max-width: 100%;
}

.ad-banner-warn {
  background: #fff8e6;
  border: 1px solid #ffc107;
  color: #6d4c00;
  padding: 14px 18px;
  border-radius: var(--cc-radius-sm);
  margin: 0 24px 16px;
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
  font-size: 0.9rem;
}
.ad-banner-warn--console {
  margin-top: 16px;
}

/* 성공 패널 */
.ad-success-panel {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 48px 24px;
  min-height: 60vh;
}
.ad-success-panel--polish {
  background: var(--cc-bg-warm);
}
.ad-success-inner {
  text-align: center;
  max-width: 420px;
  padding: 40px 32px;
  background: #fff;
  border-radius: var(--cc-radius);
  box-shadow: var(--cc-shadow-lg);
  border: 1px solid rgba(91, 46, 234, 0.08);
}
.ad-success-icon {
  width: 56px;
  height: 56px;
  margin: 0 auto 20px;
  border-radius: 50%;
  background: var(--cc-primary-soft);
  color: var(--cc-primary);
  font-size: 1.5rem;
  line-height: 56px;
  font-weight: 700;
}
.ad-success-title {
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--cc-primary-dark);
  margin: 0 0 12px;
}
.ad-success-msg {
  color: var(--cc-text-secondary);
  margin: 0 0 8px;
  font-size: 0.95rem;
}
.ad-success-rmid {
  font-weight: 700;
  color: var(--cc-text);
  margin: 0 0 24px;
  font-size: 0.95rem;
}
.ad-success-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
  align-items: center;
}
.ad-success-actions button.ad-btn {
  font: inherit;
  cursor: pointer;
}

/* 모달 AI */
.ad-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(18, 12, 40, 0.48);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  padding: 24px;
}
.ad-modal-overlay[hidden] {
  display: none !important;
}

.ad-modal--ai {
  position: relative;
  max-width: 420px;
  width: 100%;
  max-height: min(72vh, 520px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  padding: 0;
  border-radius: var(--cc-radius);
  background: #fff;
  box-shadow: var(--cc-shadow-lg);
}

.ad-modal-close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 36px;
  height: 36px;
  border: none;
  border-radius: 10px;
  background: #f5f5f5;
  color: #666;
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
  z-index: 2;
}
.ad-modal-close:hover {
  background: #eee;
}

.ad-modal-title {
  margin: 0;
  padding: 22px 48px 8px 22px;
  font-size: 1.1rem;
  font-weight: 800;
}
.ad-modal-lead {
  margin: 0;
  padding: 0 22px 16px;
  font-size: 0.86rem;
  color: var(--cc-muted);
}

.ad-ai-state {
  padding: 28px 22px;
  text-align: center;
  font-size: 0.9rem;
  color: var(--cc-text-secondary);
}
.ad-ai-state--warn {
  color: var(--cc-muted);
}
.ad-ai-state--error {
  color: #b00020;
}

.ad-ai-spinner {
  width: 36px;
  height: 36px;
  margin: 0 auto 14px;
  border: 3px solid var(--cc-border);
  border-top-color: var(--cc-primary);
  border-radius: 50%;
  animation: ad-spin 0.85s linear infinite;
}
@keyframes ad-spin {
  to {
    transform: rotate(360deg);
  }
}

.ad-ai-list-wrap {
  overflow: auto;
  flex: 1;
  padding: 0 16px 20px;
  min-height: 120px;
}

.ad-ai-item {
  display: block;
  width: 100%;
  text-align: left;
  padding: 14px 16px;
  margin-bottom: 8px;
  border: 1px solid var(--cc-border);
  border-radius: var(--cc-radius-sm);
  background: #fff;
  cursor: pointer;
  font-size: 0.92rem;
  font-family: inherit;
  line-height: 1.45;
  transition: border-color 0.12s, background 0.12s, box-shadow 0.12s;
}
.ad-ai-item:hover {
  border-color: var(--cc-primary);
  background: var(--cc-primary-soft);
  box-shadow: var(--cc-shadow-sm);
}
.ad-ai-item:active {
  transform: scale(0.99);
}

/* 레거시 .ad-ai-list button */
.ad-ai-list button {
  display: block;
  width: 100%;
  text-align: left;
  padding: 14px 16px;
  margin-bottom: 8px;
  border: 1px solid var(--cc-border);
  border-radius: var(--cc-radius-sm);
  background: #fff;
  cursor: pointer;
  font-size: 0.92rem;
}

/* 프리뷰 허브 */
.ad-preview-hub-body {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  padding: 24px;
}
.ad-preview-hub {
  max-width: 520px;
  text-align: center;
}
.ad-preview-hub-eyebrow {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--cc-primary);
  margin: 0 0 12px;
}
.ad-preview-hub-title {
  font-size: 1.65rem;
  font-weight: 800;
  margin: 0 0 12px;
  letter-spacing: -0.03em;
}
.ad-preview-hub-lead {
  font-size: 0.95rem;
  color: var(--cc-muted);
  line-height: 1.6;
  margin: 0 0 28px;
}
.ad-preview-hub-cards {
  display: grid;
  gap: 14px;
}
.ad-preview-hub-card {
  display: block;
  padding: 22px 20px;
  border-radius: var(--cc-radius);
  background: #fff;
  border: 1px solid var(--cc-border);
  box-shadow: var(--cc-shadow);
  text-decoration: none;
  color: inherit;
  text-align: left;
  transition: transform 0.12s, box-shadow 0.12s;
}
.ad-preview-hub-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--cc-shadow-lg);
}
.ad-preview-hub-card-kicker {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--cc-muted-light);
  margin-bottom: 8px;
}
.ad-preview-hub-card strong {
  display: block;
  font-size: 1.05rem;
  margin-bottom: 4px;
  color: var(--cc-text);
}
.ad-preview-hub-card span:last-child {
  font-size: 0.85rem;
  color: var(--cc-muted);
}
.ad-preview-hub-foot {
  margin-top: 28px;
  font-size: 0.88rem;
}
.ad-preview-hub-foot a {
  color: var(--cc-primary);
  font-weight: 600;
}

/* 레거시 래퍼 */
.ad-wrap {
  max-width: 1280px;
  margin: 0 auto;
  padding: 32px 24px 64px;
}

.ad-card {
  background: var(--cc-card);
  border-radius: var(--cc-radius);
  box-shadow: var(--cc-shadow);
  padding: 40px;
  max-width: 440px;
  margin: 0 auto;
}
.ad-card-wide {
  max-width: none;
}

.ad-title {
  font-size: 1.5rem;
  font-weight: 800;
  margin: 0 0 8px;
}
.ad-sub {
  color: var(--cc-muted);
  font-size: 0.95rem;
  margin-bottom: 28px;
}

.ad-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 28px;
}
.ad-logo {
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--cc-primary);
  text-decoration: none;
}
.ad-header-actions a {
  color: var(--cc-muted);
  font-size: 0.9rem;
  margin-left: 16px;
}

.ad-inline-actions {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}
.ad-inline-actions .ad-input {
  flex: 1;
  min-width: 200px;
}

/* 1단계 이벤트 유형 (라디오 카드) */
.ad-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.ad-event-type-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
@media (max-width: 720px) {
  .ad-event-type-grid {
    grid-template-columns: 1fr;
  }
}
.ad-event-type-card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 16px 18px;
  border: 2px solid var(--cc-border);
  border-radius: var(--cc-radius-sm);
  background: var(--cc-card);
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.ad-event-type-card:has(input:focus-visible) {
  outline: 2px solid var(--cc-primary);
  outline-offset: 2px;
}
.ad-event-type-card:has(input:checked) {
  border-color: var(--cc-primary);
  box-shadow: 0 0 0 3px var(--cc-primary-soft);
}
.ad-event-type-card input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.ad-event-type-title {
  font-weight: 800;
  font-size: 1.02rem;
  color: var(--cc-text);
}
.ad-event-type-desc {
  font-size: 0.82rem;
  color: var(--cc-muted);
  line-height: 1.45;
}

/* ─── 이벤트 등록 위저드 (PC) ─── */
.ad-wizard-root {
  width: 100%;
}
.ad-wizard-top {
  margin-bottom: 20px;
  outline: none;
}
.ad-wizard-lead {
  margin: 0 0 16px;
  font-size: 0.95rem;
  color: var(--cc-text-secondary);
  line-height: 1.55;
}
.ad-wizard-progress {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: flex-start;
}
.ad-wizard-progress-text {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--cc-primary);
  letter-spacing: 0.02em;
}
.ad-wizard-progress-dots {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}
.ad-wizard-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--cc-border);
  transition: background 0.2s ease, transform 0.2s ease;
}
.ad-wizard-dot--current {
  background: var(--cc-primary);
  transform: scale(1.15);
}
.ad-wizard-dot--done {
  background: rgba(91, 46, 234, 0.45);
}
.ad-wizard-step-label {
  margin: 0;
  font-size: 1.08rem;
  font-weight: 800;
  color: var(--cc-text);
  letter-spacing: -0.02em;
}
.ad-wizard-breadcrumb {
  margin: 0 0 12px;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 4px;
  font-size: 0.78rem;
  color: var(--cc-muted);
  line-height: 1.4;
}
.ad-wizard-breadcrumb li {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.ad-wizard-breadcrumb li:not(:last-child)::after {
  content: '›';
  color: var(--cc-border);
  font-weight: 700;
  margin-left: 2px;
}
.ad-wizard-breadcrumb .is-current {
  color: var(--cc-primary-dark);
  font-weight: 700;
}
.ad-wizard-layout {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(280px, 2fr);
  gap: clamp(20px, 3vw, 36px);
  align-items: start;
}
@media (max-width: 1024px) {
  .ad-wizard-layout {
    grid-template-columns: 1fr;
  }
}
.ad-wizard-main-col {
  min-width: 0;
}
.ad-wizard-form .ad-step-panel {
  display: none;
}
.ad-wizard-form .ad-step-panel.ad-step-panel--active {
  display: block;
}
.ad-preview-column--wizard-hidden {
  display: none !important;
}
.ad-wizard-footer {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--cc-border);
  flex-wrap: wrap;
}
.ad-wizard-footer .ad-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.ad-wizard-footer-spacer {
  flex: 1;
  min-width: 8px;
}
.ad-wizard-summary {
  margin-top: 4px;
}
.ad-wizard-summary-cards {
  display: grid;
  gap: 14px;
}
@media (min-width: 720px) {
  .ad-wizard-summary-cards {
    grid-template-columns: 1fr 1fr;
  }
}
.ad-wizard-summary-card {
  background: var(--cc-card);
  border: 1px solid var(--cc-border);
  border-radius: var(--cc-radius-sm);
  padding: 16px 18px;
  box-shadow: var(--cc-shadow-sm);
}
.ad-wizard-summary-h {
  margin: 0 0 10px;
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--cc-primary);
}
.ad-wizard-summary-t {
  margin: 0 0 8px;
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--cc-text);
  line-height: 1.35;
}
.ad-wizard-summary-sub {
  margin: 0 0 10px;
  font-size: 0.92rem;
  color: var(--cc-text-secondary);
}
.ad-wizard-summary-intro {
  margin: 0;
  font-size: 0.88rem;
  color: var(--cc-muted);
  white-space: pre-wrap;
  line-height: 1.5;
}
.ad-wizard-summary-line {
  margin: 0 0 6px;
  font-size: 0.9rem;
  color: var(--cc-text-secondary);
}
.ad-wizard-summary-ul {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.9rem;
  color: var(--cc-text-secondary);
  line-height: 1.55;
}
.ad-wizard-summary-row {
  margin-top: 8px;
  font-size: 0.88rem;
  color: var(--cc-text-secondary);
}
.ad-wizard-summary-k {
  font-weight: 700;
  color: var(--cc-muted);
  margin-right: 6px;
}
.ad-wizard-summary-thumb-wrap {
  margin-bottom: 10px;
  border-radius: var(--cc-radius-sm);
  overflow: hidden;
  border: 1px solid var(--cc-border);
  max-height: 160px;
  background: var(--cc-bg);
}
.ad-wizard-summary-thumb {
  width: 100%;
  max-height: 160px;
  object-fit: cover;
  display: block;
  vertical-align: middle;
}

/* ─── AI 초안 시작 (Agentic UX) ─── */
.ad-wizard-root--pre-entry {
  display: none !important;
}

.ad-ai-draft-root {
  margin-bottom: 28px;
}

.ad-ai-entry-hint strong {
  color: var(--cc-primary-dark);
  font-weight: 700;
}

.ad-ai-back-choice {
  display: block;
  margin: 0 0 14px;
  padding: 0;
  border: none;
  background: none;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--cc-text-secondary);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ad-ai-back-choice:hover {
  color: var(--cc-primary);
}

.ad-ai-draft-field-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 16px;
  margin-bottom: 18px;
}
@media (max-width: 640px) {
  .ad-ai-draft-field-grid {
    grid-template-columns: 1fr;
  }
}
.ad-ai-draft-field--full {
  grid-column: 1 / -1;
}

.ad-ai-draft-reopen-wrap {
  margin: 0 0 12px;
}

.ad-ai-draft-hero {
  position: relative;
  background: linear-gradient(135deg, #ffffff 0%, #f7f4ff 48%, #faf8ff 100%);
  border: 1px solid rgba(91, 46, 234, 0.2);
  box-shadow: 0 12px 40px rgba(91, 46, 234, 0.08);
}

.ad-ai-draft-hero[aria-busy='true'] {
  opacity: 0.92;
  pointer-events: none;
}

.ad-ai-badge {
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #fff;
  background: linear-gradient(90deg, var(--cc-primary), #7c4dff);
  border-radius: 999px;
  margin-bottom: 12px;
}

.ad-ai-badge--soft {
  background: var(--cc-primary-soft);
  color: var(--cc-primary-dark);
  border: 1px solid rgba(91, 46, 234, 0.25);
}

.ad-ai-draft-title {
  margin: 0 0 10px;
  font-size: clamp(1.35rem, 2.5vw, 1.65rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--cc-text);
  line-height: 1.3;
}

.ad-ai-draft-lead {
  margin: 0;
  font-size: 0.98rem;
  color: var(--cc-text-secondary);
  line-height: 1.65;
  max-width: 52rem;
}

.ad-ai-draft-lead strong {
  color: var(--cc-primary-dark);
  font-weight: 700;
}

.ad-ai-draft-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 18px 0 14px;
}

.ad-ai-chip {
  border: 1px solid var(--cc-border);
  background: #fff;
  color: var(--cc-text-secondary);
  font-size: 0.86rem;
  font-weight: 600;
  padding: 8px 14px;
  border-radius: 999px;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, color 0.15s ease;
}
.ad-ai-chip:hover {
  border-color: rgba(91, 46, 234, 0.45);
  color: var(--cc-primary);
  box-shadow: 0 2px 8px rgba(91, 46, 234, 0.12);
}

.ad-ai-draft-label {
  display: block;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--cc-text);
  margin-bottom: 8px;
}

.ad-ai-draft-textarea {
  min-height: 96px;
  resize: vertical;
  font-size: 0.95rem;
  line-height: 1.55;
}

.ad-ai-draft-error {
  margin-top: 10px;
}

.ad-ai-auto-apply-toggle {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 14px 0 4px;
  padding: 12px 14px;
  background: rgba(91, 46, 234, 0.06);
  border: 1px solid rgba(91, 46, 234, 0.18);
  border-radius: var(--cc-radius-sm);
  cursor: pointer;
  font-size: 0.9rem;
  color: var(--cc-text-secondary);
  line-height: 1.5;
}
.ad-ai-auto-apply-toggle input {
  margin-top: 3px;
  width: 18px;
  height: 18px;
  accent-color: var(--cc-primary);
  flex-shrink: 0;
}
.ad-ai-auto-apply-text {
  font-weight: 500;
}

.ad-ai-draft-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
  align-items: center;
}

.ad-ai-draft-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 36px 24px;
  margin-bottom: 20px;
  background: var(--cc-card);
  border-radius: var(--cc-radius);
  border: 1px dashed rgba(91, 46, 234, 0.35);
}

.ad-ai-draft-spinner {
  width: 40px;
  height: 40px;
  border: 3px solid var(--cc-border);
  border-top-color: var(--cc-primary);
  border-radius: 50%;
  animation: ad-ai-spin 0.75s linear infinite;
  margin-bottom: 14px;
}

@keyframes ad-ai-spin {
  to {
    transform: rotate(360deg);
  }
}

.ad-ai-draft-loading-text {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  color: var(--cc-text);
}

.ad-ai-draft-loading-sub {
  margin: 6px 0 0;
  font-size: 0.88rem;
  color: var(--cc-muted);
}

.ad-ai-draft-loading-progress {
  display: flex;
  gap: 8px;
  justify-content: center;
  margin-top: 16px;
}
.ad-ai-draft-loading-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--cc-border);
  transition: background 0.25s ease, transform 0.25s ease;
}
.ad-ai-draft-loading-dot--on {
  background: var(--cc-primary);
  transform: scale(1.25);
}

.ad-ai-draft-result {
  margin-bottom: 24px;
}

.ad-ai-draft-result-emotion {
  margin: 0 0 14px;
  font-size: 0.98rem;
  font-weight: 600;
  color: var(--cc-text);
  line-height: 1.55;
}

.ad-ai-draft-result-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  margin-bottom: 10px;
}

.ad-ai-badge--ready {
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #2e6b4e;
  background: linear-gradient(90deg, rgba(46, 107, 78, 0.12), rgba(46, 107, 78, 0.08));
  border: 1px solid rgba(46, 107, 78, 0.28);
  border-radius: 999px;
}

.ad-ai-draft-result-hint {
  margin: 0 0 16px;
  font-size: 0.88rem;
  color: var(--cc-muted);
}

.ad-ai-draft-result-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}

.ad-ai-draft-preview-grid {
  display: grid;
  gap: 12px;
}
@media (min-width: 720px) {
  .ad-ai-draft-preview-grid {
    grid-template-columns: 1fr 1fr;
  }
  .ad-ai-draft-preview-card--wide {
    grid-column: 1 / -1;
  }
}

.ad-ai-draft-preview-card {
  background: #faf9ff;
  border: 1px solid var(--cc-border);
  border-radius: var(--cc-radius-sm);
  padding: 14px 16px;
}

.ad-ai-draft-preview-h {
  margin: 0 0 8px;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--cc-primary);
}

.ad-ai-draft-preview-t {
  margin: 0 0 6px;
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--cc-text);
  line-height: 1.35;
}

.ad-ai-draft-preview-sub {
  margin: 0;
  font-size: 0.9rem;
  color: var(--cc-text-secondary);
  line-height: 1.5;
}

.ad-ai-draft-preview-body {
  margin: 0;
  font-size: 0.88rem;
  color: var(--cc-text-secondary);
  white-space: pre-wrap;
  line-height: 1.55;
}

.ad-ai-draft-preview-line {
  margin: 0 0 6px;
  font-size: 0.88rem;
  color: var(--cc-text-secondary);
  line-height: 1.5;
}

.ad-ai-draft-preview-muted {
  color: var(--cc-muted) !important;
  font-size: 0.85rem !important;
}

.ad-ai-draft-preview-k {
  font-weight: 700;
  color: var(--cc-muted);
  margin-right: 6px;
}

.ad-ai-draft-preview-ul {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.88rem;
  color: var(--cc-text-secondary);
  line-height: 1.55;
}

.ad-ai-draft-fail {
  padding: 20px 22px;
  margin-bottom: 20px;
  border: 1px solid rgba(200, 80, 80, 0.25);
  background: #fff8f8;
  border-radius: var(--cc-radius-sm);
}

.ad-ai-draft-fail-msg {
  margin: 0 0 14px;
  font-size: 0.95rem;
  color: var(--cc-text-secondary);
  line-height: 1.55;
}

.ad-ai-draft-fail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.ad-link-ghost {
  display: inline;
  margin-left: 8px;
  padding: 0;
  border: none;
  background: none;
  font: inherit;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--cc-primary);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.ad-link-ghost:hover {
  color: var(--cc-primary-dark);
}

/* ─── 광고주 랜딩 /advertiser ─── */
.ad-landing-main {
  max-width: 920px;
  margin: 0 auto;
  padding: 24px 16px 48px;
}
.ad-landing-hero {
  padding: 28px 24px;
  margin-bottom: 20px;
}
.ad-landing-kicker {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--cc-primary);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin: 0 0 8px;
}
.ad-landing-title {
  font-size: 1.45rem;
  font-weight: 800;
  margin: 0 0 12px;
  line-height: 1.35;
}
.ad-landing-lead {
  margin: 0 0 20px;
  color: var(--cc-text-secondary);
  font-size: 0.98rem;
}
.ad-landing-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 12px;
}
.ad-landing-hint {
  margin: 0;
}
.ad-landing-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
}
.ad-landing-card {
  background: var(--cc-card);
  border: 1px solid var(--cc-border);
  border-radius: var(--cc-radius);
  padding: 16px 18px;
  box-shadow: var(--cc-shadow-sm);
}
.ad-landing-card h2 {
  margin: 0 0 8px;
  font-size: 1rem;
  font-weight: 800;
}
.ad-landing-card p {
  margin: 0;
  font-size: 0.9rem;
  color: var(--cc-text-secondary);
}

/* 잔액 안내 */
.ad-reward-status {
  max-width: 920px;
  margin: 0 auto;
  padding: 0 16px 12px;
}
.ad-reward-status-inner {
  background: #f0f7ff;
  border: 1px solid #c5d9f5;
  border-radius: var(--cc-radius-sm);
  padding: 12px 16px;
  font-size: 0.92rem;
}
.ad-reward-status-inner p {
  margin: 0 0 6px;
}
.ad-reward-sub {
  color: var(--cc-muted);
  font-size: 0.85rem;
}
.ad-reward-gate {
  font-weight: 700;
  margin-top: 4px !important;
}
.ad-reward-gate--ok {
  color: #1565c0;
}
.ad-reward-gate--no {
  color: #c62828;
}
.ad-reward-ft {
  color: #2e7d32;
  font-weight: 700;
}

/* 수동 입력 우선 히어로 */
.ad-manual-public {
  margin-bottom: 16px;
}

/* 미리보기 전용 페이지 */
.ad-preview-page-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 20px 0;
}
.ad-preview-page-badge {
  display: inline-block;
  padding: 6px 10px;
  border-radius: 8px;
  font-size: 0.8rem;
  font-weight: 700;
  background: #fff3e0;
  color: #e65100;
  margin-bottom: 12px;
}

/* --- 이벤트 등록: 비로그인 게이트 (상태 분리) --- */
.ad-event-guest-gate {
  max-width: 640px;
  margin: 0 auto;
  padding: 24px 16px 32px;
}
.ad-event-guest-gate-card {
  padding: 28px 24px;
}
.ad-event-guest-gate-eyebrow {
  margin: 0 0 8px;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--cc-muted);
}
.ad-event-guest-gate-title {
  margin: 0 0 12px;
  font-size: 1.45rem;
  font-weight: 800;
  line-height: 1.35;
}
.ad-event-guest-gate-desc {
  margin: 0 0 24px;
  font-size: 0.95rem;
  color: var(--cc-text-secondary);
  line-height: 1.55;
}
.ad-event-guest-gate-actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@media (min-width: 520px) {
  .ad-event-guest-gate-actions {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: stretch;
  }
  .ad-event-guest-gate-actions .ad-btn {
    flex: 1 1 220px;
    justify-content: center;
    text-align: center;
  }
}
.ad-btn-cta-primary {
  min-height: 52px;
  font-weight: 800;
  box-shadow: 0 8px 24px rgba(99, 102, 241, 0.25);
}
.ad-btn-cta-secondary {
  min-height: 52px;
  font-weight: 700;
}
.ad-event-guest-gate-sub {
  margin: 20px 0 0;
  font-size: 0.88rem;
  color: var(--cc-muted);
}
.ad-link-muted {
  color: var(--cc-text-secondary);
  font-weight: 600;
  margin-left: 6px;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* 비광고주 게이트: PC 안내 링크 */
.ad-gate-not-advertiser-links {
  margin: 12px 0 0;
  font-size: 0.9rem;
}
.ad-gate-not-advertiser-links a {
  color: inherit;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ad-success-panel-host {
  max-width: 920px;
  margin: 0 auto;
  padding: 16px;
}

/* 로그인 페이지: 주 CTA 강조 */
.ad-login-submit-primary {
  width: 100%;
  min-height: 52px;
  font-weight: 800;
  font-size: 1.02rem;
}
.ad-login-after-hint {
  margin: 14px 0 0;
  font-size: 0.86rem;
  color: var(--cc-muted);
  text-align: center;
  line-height: 1.45;
}
.ad-login-card .ad-btn-outline.ad-login-signup-secondary {
  width: 100%;
  min-height: 48px;
  font-weight: 700;
}

/* 데모 배너 내 작은 버튼 */
.ad-btn-sm {
  padding: 10px 16px;
  font-size: 0.88rem;
  border-radius: 10px;
  white-space: nowrap;
}

/* ========== 본문 UI 가시성 보장 (flex/grid 접힘·z-index 대비) ========== */
body.ad-login-page > main.ad-login-split {
  flex: 1 1 auto;
  min-height: min(70vh, 900px);
  display: grid;
  visibility: visible;
  opacity: 1;
  align-content: start;
}
body.ad-login-page .ad-login-brand,
body.ad-login-page .ad-login-card-wrap,
body.ad-login-page .ad-login-brand-cta,
body.ad-login-page #ad-login-card {
  visibility: visible;
  opacity: 1;
  min-width: 0;
  position: relative;
  z-index: 1;
}
body.ad-login-page .ad-login-brand-cta .ad-btn,
body.ad-login-page .ad-login-card button,
body.ad-login-page .ad-login-card .ad-btn {
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
}
body.ad-login-page .ad-login-card form {
  display: block !important;
  visibility: visible !important;
}

body.ad-signup-page {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
body.ad-signup-page .ad-wrap {
  visibility: visible;
  opacity: 1;
  flex: 1 1 auto;
  min-height: min(60vh, 800px);
  display: block;
  width: 100%;
}
body.ad-signup-page .ad-signup-card {
  visibility: visible;
  opacity: 1;
  position: relative;
  z-index: 1;
}
body.ad-signup-page .ad-signup-card .ad-btn {
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* 이벤트: 게이트는 기본 노출, 앱 셸은 [hidden]일 때만 숨김 */
body.ad-console-body #ad-event-guest-gate:not([hidden]) {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative;
  z-index: 2;
}
body.ad-console-body #ad-event-app-shell:not([hidden]) {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}
body.ad-console-body #ad-main-workspace {
  visibility: visible;
  opacity: 1;
  min-height: 120px;
}

/* 점검: class="debug-force-show" 또는 ?ad-debug=1 (advertiser-init.js) */
.debug-force-show,
.debug-force-show * {
  visibility: visible !important;
  opacity: 1 !important;
}

.debug-force-show [hidden] {
  display: block !important;
}

.debug-force-show form,
.debug-force-show .ad-login-card,
.debug-force-show .ad-signup-card,
.debug-force-show #ad-event-guest-gate,
.debug-force-show #ad-event-app-shell,
.debug-force-show #ad-main-workspace {
  display: block !important;
  height: auto !important;
}

/* 이벤트 폼: 위저드 pre-entry 숨김까지 풀어 점검할 때 */
.debug-force-show .ad-login-brand-cta,
.debug-force-show .ad-event-guest-gate-actions {
  display: flex !important;
}
.debug-force-show .ad-wizard-root--pre-entry {
  display: block !important;
  height: auto !important;
  min-height: 120px;
}

/* 등록 완료 — 대표 이미지 */
.ad-complete-hero {
  width: 100%;
  max-height: 240px;
  border-radius: var(--cc-radius);
  overflow: hidden;
  background: rgba(91, 46, 234, 0.06);
  border: 1px solid var(--cc-border);
  position: relative;
}
.ad-complete-hero--empty {
  min-height: 120px;
}
.ad-complete-hero-img {
  width: 100%;
  height: auto;
  max-height: 240px;
  object-fit: cover;
  display: block;
  vertical-align: middle;
}
.ad-complete-hero-ph {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--cc-muted);
  font-size: 0.9rem;
  font-weight: 600;
}
.ad-complete-hero:not(.ad-complete-hero--empty) .ad-complete-hero-ph {
  display: none;
}

/* 내 이벤트 — 목록 썸네일 */
.ad-my-events-row {
  display: flex;
  gap: 14px;
  padding: 14px 16px;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  align-items: center;
}
.ad-my-events-thumb-wrap {
  flex: 0 0 72px;
  width: 72px;
  height: 72px;
  border-radius: 10px;
  overflow: hidden;
  background: rgba(0, 0, 0, 0.04);
  border: 1px solid var(--cc-border);
  position: relative;
}
.ad-my-events-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ad-my-events-thumb-ph {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.65rem;
  color: var(--cc-muted);
  text-align: center;
  padding: 4px;
}
.ad-my-events-thumb-wrap:not(.ad-my-events-thumb-wrap--empty) .ad-my-events-thumb-ph {
  display: none;
}
.ad-my-events-row-main {
  flex: 1;
  min-width: 0;
}
