/* 광고주 사이트 (ads.nomad-market.net) 전용 스타일 — 노마앱 CSS 와 의도적 분리.
   정본: claude-design 시안 AdJourneyShared.jsx (ADV 토큰·primitives) + AdJourneyPages1/2/4 (S1·S6·S10·S11).
   규격 — 직각 (radius 0, 버튼만 2px) · 타이포 계층 40/26/24/22/13/12/11/10 · 패널 보더 line(#c8c8c8),
   구분선 softline(#e2e2e2) · 주문요약만 2px ink. 변경 시 시안 JSX 값과 대조할 것. */

:root {
  --ads-bg: #fafaf8;
  --ads-panel: #ffffff;
  --ads-ink: #1a1a1a;
  --ads-sub: #6b6b6b;
  --ads-mute: #9a9a9a;
  --ads-line: #c8c8c8;
  --ads-softline: #e2e2e2;
  --ads-fill: #ececea;
  --ads-accent: #c14922;
  --ads-accent-ink: #ffffff;
  --ads-warn: #7a5a00;
  --ads-warn-bg: #fdfaf0;
  --ads-warn-bd: #e0b84a;
  --ads-ok: #1a5a2a;
  --ads-ok-bg: #f0f5ea;      /* ADV.okBg — S3 아이콘 등 */
  --ads-ok-callout: #edf3ea; /* Callout ok 톤 배경 */
  --ads-ok-bd: #7a9a6a;
  --ads-info: #1a3a7a;
  --ads-info-bg: #eef2fa;
  --ads-info-bd: #98a8c8;
  --ads-danger: #8a1a1a;
  --ads-danger-bg: #fbeeee;
  --ads-danger-bd: #c88a8a;
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: var(--ads-bg);
  color: var(--ads-ink);
  font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 13px;
  line-height: 1.6;
}

a { color: inherit; }

.ads-container { max-width: 1440px; margin: 0 auto; padding: 0 80px; }
.ads-main { min-height: 60vh; padding-top: 32px; padding-bottom: 64px; }

/* ---------- 헤더 (시안 PublicChrome — 56px · 메뉴 12px · 로그인 칩) ---------- */
.ads-header { background: #fff; border-bottom: 1px solid var(--ads-softline); }
.ads-header-inner { display: flex; align-items: center; gap: 18px; height: 56px; padding: 0 32px; max-width: 1440px; margin: 0 auto; }
.ads-brand { display: flex; align-items: center; gap: 8px; text-decoration: none; margin-right: auto; }
.ads-brand-mark {
  width: 26px; height: 26px; background: var(--ads-ink); color: #fff; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 700;
}
.ads-brand-text { display: flex; flex-direction: column; line-height: 1.15; }
.ads-brand-text strong { font-size: 13px; }
.ads-brand-text small { font-size: 9px; color: var(--ads-mute); }
.ads-nav { display: flex; align-items: center; gap: 18px; font-size: 12px; color: var(--ads-sub); }
.ads-nav a { text-decoration: none; }
.ads-nav a:hover { color: var(--ads-ink); }
.ads-nav-lang { font-size: 11px; color: var(--ads-sub); }
.ads-nav-divider { width: 1px; height: 18px; background: var(--ads-softline); }
.ads-nav-account { display: flex; align-items: center; gap: 8px; }
.ads-avatar { width: 24px; height: 24px; border-radius: 50%; background: var(--ads-fill); border: 1px solid var(--ads-line); flex-shrink: 0; }
.ads-nav-user { font-size: 11px; color: var(--ads-ink); }
.ads-nav form { display: inline; }

/* ---------- 버튼 (시안 Btn — 7×14px · 12px · 500 · radius 2) ---------- */
.ads-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 7px 14px; font-size: 12px; font-weight: 500; line-height: 1.5;
  border: 1px solid transparent; border-radius: 2px; cursor: pointer;
  text-decoration: none; text-align: center; background: none; font-family: inherit;
  transition: opacity .15s;
}
.ads-btn:hover { opacity: .85; }
.ads-btn-primary { background: var(--ads-accent); color: var(--ads-accent-ink); border-color: var(--ads-accent); }
.ads-btn-dark { background: var(--ads-ink); color: #fff; border-color: var(--ads-ink); }
.ads-btn-outline { border-color: var(--ads-line); color: var(--ads-ink); background: #fff; }
.ads-btn-ghost { border-color: transparent; color: var(--ads-sub); font-size: 11px; padding: 6px 8px; }
.ads-btn-chip { padding: 6px 12px; font-size: 11px; font-weight: 400; border-color: var(--ads-line); color: var(--ads-ink); background: #fff; }
.ads-btn-lg { padding: 10px 14px; font-size: 13px; }
.ads-btn-pay { padding: 12px; font-size: 13px; }
.ads-btn-block { display: flex; width: 100%; }

/* ---------- Callout (시안 Callout — 10×14px · 11px) · 플래시 공용 ---------- */
.ads-callout { border: 1px solid var(--ads-line); background: #f5f5f2; padding: 10px 14px; font-size: 11px; line-height: 1.6; }
.ads-callout-title { font-weight: 600; margin-bottom: 4px; }
.ads-callout-info { background: var(--ads-info-bg); border-color: var(--ads-info-bd); }
.ads-callout-info .ads-callout-title { color: var(--ads-info); }
.ads-callout-danger { background: var(--ads-danger-bg); border-color: var(--ads-danger-bd); }
.ads-callout-danger .ads-callout-title { color: var(--ads-danger); }
.ads-flash { border: 1px solid; padding: 10px 14px; font-size: 12px; margin-bottom: 20px; }
.ads-flash-notice { background: var(--ads-ok-callout); border-color: var(--ads-ok-bd); color: var(--ads-ok); }
.ads-flash-alert { background: var(--ads-danger-bg); border-color: var(--ads-danger-bd); color: var(--ads-danger); }

/* ---------- 랜딩 (S1 — 히어로 60/80/40 · 스탯 22px · 플랫 4컬럼 스트립) ---------- */
.ads-hero { display: flex; align-items: center; gap: 60px; padding: 60px 0 40px; }
.ads-hero-copy { flex: 1; }
.ads-hero-eyebrow { font-size: 11px; letter-spacing: .6px; text-transform: uppercase; color: var(--ads-mute); margin: 0 0 18px; }
.ads-hero-title { font-size: 40px; line-height: 1.15; letter-spacing: -1px; font-weight: 700; margin: 0 0 18px; }
.ads-hero-sub { font-size: 14px; color: var(--ads-sub); line-height: 1.7; max-width: 480px; margin: 0 0 26px; }
.ads-hero-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.ads-hero-stats { display: flex; gap: 24px; margin-top: 38px; padding-top: 20px; border-top: 1px solid var(--ads-softline); }
.ads-stat strong { display: block; font-size: 22px; font-weight: 700; line-height: 1.2; margin-bottom: 4px; }
.ads-stat span { font-size: 11px; color: var(--ads-sub); }
.ads-hero-visual { flex: 0 0 520px; display: flex; justify-content: center; }
.ads-hero-visual img { width: 300px; height: auto; display: block; }

.ads-journey {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px;
  padding: 20px 0; border-top: 1px solid var(--ads-softline);
  font-size: 11px; color: var(--ads-sub); line-height: 1.6;
}
.ads-journey strong { display: block; font-size: 11px; font-weight: 700; color: var(--ads-ink); margin-bottom: 4px; }

/* ---------- 페이지 헤더 (S2 패턴 — crumb 10px · 제목 24px · 서브 12px) ---------- */
.ads-page-head { margin-bottom: 20px; }
.ads-page-crumb { font-size: 10px; color: var(--ads-mute); letter-spacing: .3px; margin: 0; }
.ads-page-title { font-size: 24px; font-weight: 700; margin: 4px 0 0; }
.ads-page-sub { font-size: 12px; color: var(--ads-sub); line-height: 1.6; margin: 6px 0 0; }

/* ---------- 요금 카드 ---------- */
.ads-product-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 16px; }
.ads-card { background: var(--ads-panel); border: 1px solid var(--ads-line); padding: 20px; display: flex; flex-direction: column; }
.ads-card-zone { font-size: 10px; letter-spacing: .8px; text-transform: uppercase; color: var(--ads-accent); font-weight: 700; margin: 0 0 6px; }
.ads-card-name { font-size: 13px; font-weight: 600; margin: 0 0 6px; }
.ads-card-desc { font-size: 12px; color: var(--ads-sub); line-height: 1.6; margin: 0 0 14px; flex: 1; }
.ads-card-rate { font-size: 11px; color: var(--ads-mute); margin: 0 0 2px; }
.ads-card-price { margin: 0 0 14px; }
.ads-card-price strong { font-size: 22px; font-weight: 700; font-variant-numeric: tabular-nums; }
.ads-card-price small { display: block; font-size: 10px; color: var(--ads-mute); margin-top: 2px; }

.ads-note { margin-top: 28px; font-size: 11px; color: var(--ads-sub); line-height: 1.8; }
.ads-note p { margin: 2px 0; }

/* ---------- 표 (환불정책) ---------- */
.ads-table { width: 100%; border-collapse: collapse; background: var(--ads-panel); font-size: 12px; line-height: 1.6; }
.ads-table th, .ads-table td { border: 1px solid var(--ads-softline); padding: 10px 14px; text-align: left; vertical-align: top; }
.ads-table th { background: var(--ads-fill); font-size: 11px; font-weight: 600; color: var(--ads-sub); }

/* ---------- FAQ ---------- */
.ads-faq-list { display: flex; flex-direction: column; gap: 12px; max-width: 760px; }
.ads-faq-item { background: var(--ads-panel); border: 1px solid var(--ads-line); padding: 18px 20px; }
.ads-faq-q { font-size: 13px; font-weight: 600; margin: 0 0 6px; }
.ads-faq-a { font-size: 12px; color: var(--ads-sub); line-height: 1.7; margin: 0; }

/* ---------- 폼 공통 (시안 FormField/Input — 라벨 11px · 입력 h32 12px) ---------- */
.ads-label { display: block; font-size: 11px; color: var(--ads-sub); margin: 0 0 5px; }
.ads-input {
  width: 100%; height: 32px; padding: 0 10px; font-size: 12px; font-family: inherit;
  border: 1px solid var(--ads-line); border-radius: 0; background: #fff;
}
.ads-input:focus { outline: none; border-color: var(--ads-ink); }
.ads-check { display: flex; align-items: center; gap: 6px; font-size: 11px; color: var(--ads-sub); }
.ads-check input {
  appearance: none; width: 12px; height: 12px; margin: 0;
  border: 1px solid var(--ads-line); background: #fff;
  display: inline-grid; place-content: center;
}
.ads-check input:checked { background: var(--ads-ink); border-color: var(--ads-ink); }
.ads-check input:checked::before { content: "✓"; font-size: 8px; line-height: 1; color: #fff; }

/* ---------- 로그인 카드 (S6 — 380px · 직각 · 패딩 36 · gap 16) ---------- */
.ads-auth-card {
  width: 380px; max-width: 100%; margin: 64px auto;
  background: var(--ads-panel); border: 1px solid var(--ads-line); padding: 36px;
  display: flex; flex-direction: column; gap: 16px;
}
.ads-auth-card form { display: flex; flex-direction: column; gap: 16px; }
.ads-auth-brand { display: flex; align-items: center; gap: 8px; }
.ads-auth-brand .ads-brand-mark { width: 28px; height: 28px; font-size: 14px; }
.ads-auth-brand strong { display: block; font-size: 14px; line-height: 1.3; }
.ads-auth-brand small { display: block; font-size: 10px; color: var(--ads-mute); }
.ads-auth-links { display: flex; justify-content: space-between; gap: 12px; font-size: 11px; color: var(--ads-sub); }
.ads-auth-links a { text-decoration: none; }
.ads-auth-links strong { color: var(--ads-ink); }

/* ---------- 주문·결제 (S10 — 1fr/380px · 패널 헤더 패턴 · 2px ink 주문요약) ---------- */
.ads-order-layout { display: grid; grid-template-columns: 1fr 380px; gap: 18px; align-items: start; }
.ads-order-main { display: flex; flex-direction: column; gap: 14px; }
.ads-order-title { font-size: 22px; font-weight: 700; margin: 0; }
.ads-order-sub { font-size: 12px; color: var(--ads-sub); margin: 4px 0 0; }
.ads-panel { background: var(--ads-panel); border: 1px solid var(--ads-line); }
.ads-panel-title { padding: 12px 16px; border-bottom: 1px solid var(--ads-softline); font-size: 13px; font-weight: 600; margin: 0; }
.ads-panel-body { padding: 16px; }
.ads-order-summary { position: sticky; top: 16px; }
.ads-order-summary .ads-panel { border: 2px solid var(--ads-ink); }
.ads-summary-name { font-size: 12px; font-weight: 600; margin: 0 0 10px; }
.ads-summary-list { display: grid; grid-template-columns: 1fr auto; row-gap: 5px; column-gap: 12px; font-size: 11px; margin: 0; }
.ads-summary-list dt { color: var(--ads-mute); }
.ads-summary-list dd { margin: 0; text-align: right; word-break: break-all; }
.ads-summary-total { display: flex; justify-content: space-between; border-top: 1px solid var(--ads-softline); margin: 10px 0 0; padding: 10px 0 0; font-size: 12px; }
.ads-summary-total strong { font-weight: 700; }
.ads-summary-today { background: var(--ads-bg); border: 1px solid var(--ads-softline); padding: 10px; margin-top: 10px; }
.ads-summary-today-label { font-size: 10px; color: var(--ads-sub); text-transform: uppercase; }
.ads-summary-today-amount { font-size: 26px; font-weight: 700; color: var(--ads-accent); font-variant-numeric: tabular-nums; line-height: 1.3; }
.ads-summary-today-note { font-size: 10px; color: var(--ads-mute); }
.ads-order-summary .ads-btn { margin-top: 10px; }
.ads-summary-foot { font-size: 10px; color: var(--ads-mute); text-align: center; margin: 8px 0 0; }
.ads-mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; }

/* ---------- 결제 결과 (S11 패턴 — 600px 카드 · 원형 52px · bg 정보 그리드) ---------- */
.ads-result-card {
  width: 600px; max-width: 100%; margin: 48px auto;
  background: var(--ads-panel); border: 1px solid var(--ads-line); padding: 36px;
  display: flex; flex-direction: column; align-items: center; gap: 18px; text-align: center;
}
.ads-result-icon {
  width: 52px; height: 52px; border-radius: 50%; color: #fff; font-size: 24px;
  display: flex; align-items: center; justify-content: center;
}
.ads-result-icon-ok { background: var(--ads-ok); }
.ads-result-icon-fail { background: var(--ads-danger); }
.ads-result-card h1 { font-size: 22px; font-weight: 700; margin: 0; }
.ads-result-card p { font-size: 12px; color: var(--ads-sub); line-height: 1.7; margin: 0; }
.ads-result-meta {
  width: 100%; background: var(--ads-bg); border: 1px solid var(--ads-softline); padding: 14px;
  display: grid; grid-template-columns: 1fr 1fr; gap: 8px; font-size: 11px; text-align: left;
}
.ads-result-meta span { color: var(--ads-mute); }
.ads-result-meta strong { font-weight: 600; word-break: break-all; }
.ads-result-card .ads-callout { width: 100%; text-align: left; }
.ads-result-actions { display: flex; gap: 8px; }

/* ---------- 푸터 (사업자정보 — Toss 심사 필수, 클래스명 테스트 의존) ---------- */
.ads-footer { border-top: 1px solid var(--ads-softline); background: #fff; padding: 28px 0 36px; margin-top: 64px; }
.ads-footer-links { display: flex; gap: 10px; font-size: 11px; color: var(--ads-mute); margin-bottom: 14px; }
.ads-footer-links a { text-decoration: none; color: var(--ads-sub); }
.ads-footer-links a:hover { color: var(--ads-ink); }
.ads-footer-info { font-size: 10px; color: var(--ads-mute); line-height: 1.9; }
.ads-footer-info p { margin: 0; }
.ads-footer-company { font-weight: 600; color: var(--ads-sub); font-size: 11px; }
.ads-footer-sep { margin: 0 6px; color: var(--ads-softline); }

/* ---------- 텍스트 유틸 ---------- */
.ads-req { color: var(--ads-danger); }
.ads-hint { font-size: 10px; color: var(--ads-mute); margin: 4px 0 0; line-height: 1.5; }
.ads-tabular { font-variant-numeric: tabular-nums; }
.ads-text-sub { color: var(--ads-sub); }
.ads-text-mute { color: var(--ads-mute); }
.ads-text-ok { color: var(--ads-ok); }
.ads-text-warn { color: var(--ads-warn); }
.ads-text-accent { color: var(--ads-accent); }
.ads-pay-label { font-size: 10px; font-weight: 600; }

/* ---------- 상태 칩 ---------- */
.ads-chip { display: inline-flex; align-items: center; padding: 3px 8px; font-size: 10px; font-weight: 600; border-radius: 2px; border: 1px solid; }
.ads-chip-ok { background: var(--ads-ok-bg); border-color: var(--ads-ok-bd); color: var(--ads-ok); }
.ads-chip-warn { background: var(--ads-warn-bg); border-color: var(--ads-warn-bd); color: var(--ads-warn); }
.ads-chip-info { background: var(--ads-info-bg); border-color: var(--ads-info-bd); color: var(--ads-info); }
.ads-chip-neutral { background: #fff; border-color: var(--ads-line); color: var(--ads-sub); font-weight: 400; }
.ads-chip-danger { background: var(--ads-danger-bg); border-color: var(--ads-danger-bd); color: var(--ads-danger); }

/* ---------- 폼 페이지 (S2 — 2컬럼 그리드 박스) ---------- */
.ads-form-page { max-width: 960px; margin: 0 auto; }
.ads-form-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 14px;
  background: var(--ads-panel); border: 1px solid var(--ads-line); padding: 24px;
}
.ads-field-full { grid-column: 1 / -1; }
.ads-textarea { height: auto; min-height: 110px; padding: 10px; line-height: 1.6; resize: vertical; }
.ads-select { padding-right: 6px; }
.ads-zone-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.ads-zone-chip {
  display: inline-flex; align-items: center; gap: 5px; padding: 7px 14px;
  border: 1px solid var(--ads-line); background: #fff; font-size: 11px; border-radius: 2px; cursor: pointer;
}
.ads-zone-chip input { position: absolute; opacity: 0; pointer-events: none; }
.ads-zone-chip-box {
  width: 12px; height: 12px; border: 1px solid var(--ads-line); background: #fff;
  display: inline-flex; align-items: center; justify-content: center; font-size: 8px; color: #fff;
}
.ads-zone-chip:has(input:checked) { background: var(--ads-ink); border-color: var(--ads-ink); color: #fff; }
.ads-zone-chip:has(input:checked) .ads-zone-chip-box { background: var(--ads-ink); border-color: #fff; }
.ads-zone-chip:has(input:checked) .ads-zone-chip-box::before { content: "✓"; }
.ads-consent { display: flex; flex-direction: column; gap: 6px; padding-top: 4px; border-top: 1px solid var(--ads-softline); margin-top: 4px; }
/* S2 동의 행 — 시안은 라벨 ink + 14px 박스 (S6 로그인 11px sub·12px 와 구분) */
.ads-consent .ads-check { color: var(--ads-ink); }
.ads-consent .ads-check input { width: 14px; height: 14px; }
.ads-form-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 20px; }

/* ---------- 문의 완료 (S3 — outline ✓ 원형 · 440px 정보 박스) ---------- */
.ads-complete { display: flex; flex-direction: column; align-items: center; gap: 20px; padding: 60px 0; text-align: center; }
.ads-complete-icon {
  width: 56px; height: 56px; border-radius: 50%; font-size: 26px; font-weight: 700;
  background: var(--ads-ok-bg); border: 1px solid var(--ads-ok); color: var(--ads-ok);
  display: flex; align-items: center; justify-content: center;
}
.ads-complete-title { font-size: 24px; font-weight: 700; margin: 0; }
.ads-complete-sub { font-size: 13px; color: var(--ads-sub); max-width: 520px; line-height: 1.6; margin: 0; }
.ads-complete-box {
  width: 440px; max-width: 100%; background: var(--ads-panel); border: 1px solid var(--ads-line);
  padding: 18px; display: flex; flex-direction: column; gap: 10px;
}
.ads-complete-row { display: flex; justify-content: space-between; font-size: 11px; }
.ads-complete-row > span:first-child { color: var(--ads-mute); }
.ads-complete-divider { height: 1px; background: var(--ads-softline); }
.ads-complete-note { font-size: 10px; color: var(--ads-mute); line-height: 1.6; margin: 0; text-align: left; }

/* ---------- 비밀번호 변경 (S7 — 480px 카드 · 체크리스트) ---------- */
.ads-auth-card-wide { width: 480px; }
.ads-auth-title { font-size: 18px; font-weight: 700; margin: 0; }
.ads-auth-sub { font-size: 12px; color: var(--ads-sub); line-height: 1.6; margin: 0; }
.ads-pw-rules { background: var(--ads-bg); border: 1px solid var(--ads-softline); padding: 10px; display: flex; flex-direction: column; gap: 5px; }
.ads-pw-rule { display: flex; align-items: center; gap: 6px; font-size: 11px; color: var(--ads-mute); }
.ads-pw-rule-box {
  width: 12px; height: 12px; border: 1px solid var(--ads-line); background: #fff; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center; font-size: 8px; color: #fff;
}
.ads-pw-rule.is-ok { color: var(--ads-ok); }
.ads-pw-rule.is-ok .ads-pw-rule-box { background: var(--ads-ok); border-color: var(--ads-ok); }
.ads-pw-rule.is-ok .ads-pw-rule-box::before { content: "✓"; }
.ads-pw-rule.is-static { color: var(--ads-mute); }

/* ---------- 대시보드 (S8 — KPI 4 · 필터 칩 · 이력 표) ---------- */
.ads-dash-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 18px; flex-wrap: wrap; }
.ads-kpi-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 20px; }
.ads-kpi { border: 1px solid var(--ads-line); background: var(--ads-panel); padding: 14px; display: flex; flex-direction: column; gap: 4px; }
.ads-kpi-label { font-size: 10px; color: var(--ads-sub); text-transform: uppercase; letter-spacing: .4px; }
.ads-kpi-value { font-size: 22px; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.2; }
.ads-kpi-hint { font-size: 10px; color: var(--ads-mute); }
.ads-panel-title-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.ads-tgrid { display: grid; grid-template-columns: 80px 2fr 1fr 1fr 1.2fr 1fr 90px; font-size: 11px; align-items: center; }
.ads-tgrid > span { padding: 12px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ads-tgrid-head { background: #f5f5f2; font-weight: 600; color: var(--ads-sub); }
.ads-tgrid-head > span { padding: 10px 12px; }
.ads-empty { padding: 40px 16px; display: flex; flex-direction: column; align-items: center; gap: 16px; text-align: center; }
.ads-empty-title { font-size: 13px; font-weight: 600; margin: 0; }
.ads-empty-steps { display: flex; gap: 18px; flex-wrap: wrap; justify-content: center; font-size: 11px; color: var(--ads-sub); }
.ads-empty-steps strong { display: block; color: var(--ads-ink); margin-bottom: 2px; }

/* ---------- 나의 광고 목록 + 쿠폰 탭 (admin advertisers/_history·_coupon_assets 정본 이식 — light 토큰) ---------- */
/* 상태 탭 (언더라인형) */
.ads-list-tabs { display: flex; gap: 2px; border-bottom: 1px solid var(--ads-line); margin-bottom: 16px; flex-wrap: wrap; }
.ads-list-tabs a {
  padding: 10px 16px; font-size: 13px; font-weight: 500; color: var(--ads-sub); border-bottom: 2px solid transparent;
  margin-bottom: -1px; text-decoration: none; display: inline-flex; align-items: center; gap: 7px; white-space: nowrap;
}
.ads-list-tabs a:hover { color: var(--ads-ink); }
.ads-list-tabs a.is-on { color: var(--ads-ink); border-bottom-color: var(--ads-accent); }
.ads-list-tabs .ct { font-size: 11px; font-variant-numeric: tabular-nums; color: var(--ads-mute); padding: 1px 7px; background: var(--ads-fill); }
.ads-list-tabs a.is-on .ct { color: var(--ads-ink); }
.ads-list-tabs a.is-pending.is-on { border-bottom-color: var(--ads-warn-bd); }
.ads-list-tabs a.is-pending .ct { color: var(--ads-warn); }
.ads-list-tabs .ct.warn { background: transparent; color: var(--ads-warn); }
.ads-list-tab-coupon { margin-left: auto; border-left: 1px solid var(--ads-softline); }

/* 검색 */
.ads-list-search { margin-bottom: 14px; }
.ads-search-field { position: relative; display: inline-flex; align-items: center; width: 100%; max-width: 360px; }
.ads-search-icon { position: absolute; left: 12px; width: 14px; height: 14px; color: var(--ads-mute); pointer-events: none; }
.ads-search-input { width: 100%; padding: 9px 12px 9px 34px; font-size: 12px; border: 1px solid var(--ads-line); background: #fff; color: var(--ads-ink); border-radius: 2px; }
.ads-search-input:focus { outline: none; border-color: var(--ads-ink); }

/* 목록 테이블 */
.ads-list-wrap { background: var(--ads-panel); border: 1px solid var(--ads-line); overflow-x: auto; }
.ads-list-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.ads-list-table th {
  font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--ads-sub);
  text-align: left; padding: 11px 14px; border-bottom: 1px solid var(--ads-line); background: #f5f5f2; white-space: nowrap;
}
.ads-list-table th.ads-lt-right { text-align: right; }
.ads-list-table td { padding: 11px 14px; border-bottom: 1px solid var(--ads-softline); white-space: nowrap; vertical-align: middle; }
.ads-list-row { cursor: pointer; }
.ads-list-row:hover td { background: var(--ads-bg); }
.ads-lt-id { font-variant-numeric: tabular-nums; font-size: 11px; color: var(--ads-sub); }
.ads-lt-title { font-weight: 500; color: var(--ads-ink); }
.ads-lt-num { font-variant-numeric: tabular-nums; }
.ads-lt-right { text-align: right; }
.ads-lt-mute { color: var(--ads-mute); }
.ads-lt-hint { color: var(--ads-mute); font-size: 10px; }
.ads-list-empty { text-align: center; color: var(--ads-sub); padding: 28px; }
.ads-lt-thumb { width: 40px; height: 24px; object-fit: cover; border: 1px solid var(--ads-line); border-radius: 2px; }
.ads-lt-thumb-empty { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 24px; color: var(--ads-mute); background: var(--ads-fill); border: 1px solid var(--ads-line); font-size: 11px; }

/* Zone 칩 + 레벨 칩 */
.ads-zone-chip { display: inline-block; font-size: 10px; font-weight: 500; padding: 1px 7px; background: var(--ads-fill); border: 1px solid var(--ads-line); color: var(--ads-sub); }
.ads-lvl { display: inline-block; padding: 1px 6px; font-size: 10px; font-weight: 600; letter-spacing: .05em; border: 1px solid; }
.ads-lvl-l1 { color: var(--ads-info); background: var(--ads-info-bg); border-color: var(--ads-info-bd); }
.ads-lvl-l2 { color: #9a4a1a; background: #fbf0e8; border-color: #d8a878; }
.ads-lvl-l3, .ads-lvl-l0 { color: var(--ads-sub); background: var(--ads-fill); border-color: var(--ads-line); }

/* 상태 배지 (dot + 라벨) */
.ads-badge { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 500; padding: 2px 7px; border: 1px solid; }
.ads-badge-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.ads-b-warn { color: var(--ads-warn); background: var(--ads-warn-bg); border-color: var(--ads-warn-bd); }
.ads-b-info { color: var(--ads-info); background: var(--ads-info-bg); border-color: var(--ads-info-bd); }
.ads-b-ok { color: var(--ads-ok); background: var(--ads-ok-bg); border-color: var(--ads-ok-bd); }
.ads-b-sub { color: var(--ads-sub); background: var(--ads-fill); border-color: var(--ads-line); }
.ads-b-danger { color: var(--ads-danger); background: var(--ads-danger-bg); border-color: var(--ads-danger-bd); }

/* 진행 바 */
.ads-progress { height: 4px; background: var(--ads-fill); overflow: hidden; margin-top: 5px; max-width: 110px; }
.ads-progress-fill { height: 100%; background: var(--ads-ok); }

/* 쿠폰 탭 */
.ads-cp-row:hover td { background: var(--ads-bg); }
.ads-cp-stage { display: inline-block; font-size: 10px; font-weight: 500; padding: 1px 7px; border: 1px solid; }
.ads-cp-weeks { font-variant-numeric: tabular-nums; }
.ads-cp-rem { color: var(--ads-ok); }
.ads-cp-rem.zero { color: var(--ads-mute); }
.ads-cp-status { display: inline-block; font-size: 10px; font-weight: 600; padding: 2px 7px; border: 1px solid; }
.ads-cp-unused { color: var(--ads-warn); background: var(--ads-warn-bg); border-color: var(--ads-warn-bd); }
.ads-cp-expired, .ads-cp-used { color: var(--ads-sub); background: var(--ads-fill); border-color: var(--ads-line); }
.ads-cp-arrow { color: var(--ads-mute); font-size: 14px; }

@media (max-width: 860px) {
  .ads-list-tab-coupon { margin-left: 0; border-left: 0; }
}

/* ---------- 결과 타임라인 (S11) ---------- */
.ads-result-timeline { width: 100%; text-align: left; }
.ads-result-timeline-title { font-size: 11px; font-weight: 600; margin-bottom: 6px; }
.ads-rt-row { font-size: 11px; color: var(--ads-mute); padding: 2px 0; }
.ads-rt-done { color: var(--ads-ok); }
.ads-rt-now { color: var(--ads-warn); }

/* ---------- 광고 상세 (S11 대기 / S15 라이브) ---------- */
.ads-detail-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding-bottom: 14px; border-bottom: 1px solid var(--ads-softline); margin-bottom: 16px; flex-wrap: wrap; }
.ads-chip-row { display: flex; align-items: center; gap: 6px; margin-top: 8px; flex-wrap: wrap; }
.ads-detail-layout { display: grid; grid-template-columns: 2fr 1fr; gap: 16px; align-items: start; }
.ads-detail-main, .ads-detail-side { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.ads-detail-content { display: flex; flex-direction: column; gap: 14px; }
.ads-detail-image { max-width: 360px; width: 100%; border: 1px solid var(--ads-softline); display: block; }
.ads-summary-list-lg { font-size: 12px; row-gap: 6px; }
.ads-progress-track { background: var(--ads-bg); height: 14px; border: 1px solid var(--ads-softline); border-radius: 2px; overflow: hidden; }
.ads-progress-fill { height: 100%; background: var(--ads-ok); }
.ads-progress-caption { display: flex; justify-content: space-between; font-size: 10px; color: var(--ads-mute); margin-top: 4px; }
.ads-progress-note { font-size: 11px; margin: 8px 0 0; }
/* 진행 상태 — 가로 타임라인 (상세 상단, 진입 즉시 노출). ads-panel-body(16px) 안에 배치. */
.ads-htimeline-panel { margin-bottom: 16px; }
.ads-htimeline { display: flex; list-style: none; margin: 0; padding: 0; }
.ads-ht-step {
  flex: 1; min-width: 0; position: relative;
  display: flex; flex-direction: column; align-items: center; text-align: center; padding: 0 6px;
}
.ads-ht-step::before { content: ""; position: absolute; top: 9px; left: -50%; width: 100%; height: 1px; background: var(--ads-softline); z-index: 0; }
.ads-ht-step:first-child::before { display: none; }
.ads-ht-done + .ads-ht-step::before { background: var(--ads-ok); } /* 완료 단계 뒤로 잇는 선만 초록 (세로판 ads-vt-done::before 동치) */
.ads-ht-dot {
  width: 18px; height: 18px; border-radius: 50%; border: 1px solid var(--ads-line); background: #fff;
  color: #fff; font-size: 9px; font-weight: 700; flex-shrink: 0; position: relative; z-index: 1;
  display: flex; align-items: center; justify-content: center; margin-bottom: 8px;
}
.ads-ht-done .ads-ht-dot { background: var(--ads-ok); border-color: var(--ads-ok); }
.ads-ht-current .ads-ht-dot { background: var(--ads-ink); border-color: var(--ads-ink); }
.ads-ht-label { font-size: 11px; font-weight: 500; line-height: 1.35; word-break: keep-all; }
.ads-ht-current .ads-ht-label { font-weight: 600; }
.ads-ht-pending .ads-ht-label { color: var(--ads-mute); }
.ads-ht-at { font-size: 10px; color: var(--ads-mute); margin-top: 3px; }

/* ---------- 잔금 결제 (S14) ---------- */
.ads-balance-box { display: flex; flex-direction: column; gap: 10px; }
.ads-balance-amount { font-size: 30px; font-weight: 700; color: var(--ads-accent); font-variant-numeric: tabular-nums; line-height: 1.2; }

/* ---------- 새 광고 만들기 (S9) ---------- */
.ads-s9-ctx { font-size: 11px; color: var(--ads-sub); }
.ads-s9-layout { grid-template-columns: 1fr 360px; gap: 16px; }
.ads-s9-fields { display: flex; flex-direction: column; gap: 16px; }
.ads-panel-strong { border: 2px solid var(--ads-ink); }
.ads-step-num {
  width: 22px; height: 22px; background: var(--ads-ink); color: #fff; border-radius: 50%;
  font-size: 11px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center;
  margin-right: 8px; vertical-align: middle;
}
.ads-step-state { font-size: 10px; color: var(--ads-ok); font-weight: 600; }
.ads-upload { border: 1px dashed var(--ads-line); background: var(--ads-bg); padding: 20px; display: flex; gap: 14px; align-items: center; cursor: pointer; }
.ads-upload-thumb { width: 140px; height: 73px; object-fit: cover; border: 1px solid var(--ads-softline); flex-shrink: 0; }
.ads-upload-empty {
  width: 140px; height: 73px; flex-shrink: 0; background: var(--ads-fill);
  display: flex; align-items: center; justify-content: center; text-align: center;
  font-size: 10px; color: var(--ads-mute); line-height: 1.5;
}
.ads-upload-meta { flex: 1; display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ads-upload-meta strong { font-size: 12px; font-weight: 600; }
.ads-lang-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.ads-lang-chip { padding: 5px 10px; font-size: 11px; border: 1px solid var(--ads-line); }
.ads-lang-chip.is-on { border-color: var(--ads-ink); background: var(--ads-bg); }
.ads-lang-chip.is-soon { border-style: dashed; color: var(--ads-sub); }
.ads-zone-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.ads-zone-card {
  padding: 10px 8px; border: 1px solid var(--ads-line); border-radius: 2px; background: #fff;
  text-align: center; display: flex; flex-direction: column; gap: 2px; cursor: pointer; position: relative;
}
.ads-zone-card input { position: absolute; opacity: 0; pointer-events: none; }
.ads-zone-card-name { font-size: 12px; color: var(--ads-sub); }
.ads-zone-card-code { font-size: 9px; color: var(--ads-mute); font-family: ui-monospace, monospace; }
.ads-zone-card:has(input:checked) { border-color: var(--ads-ink); background: var(--ads-bg); }
.ads-zone-card:has(input:checked) .ads-zone-card-name { font-weight: 700; color: var(--ads-ink); }
.ads-level-seg { display: flex; gap: 6px; }
.ads-level-opt {
  flex: 1; text-align: center; padding: 8px 12px; border: 1px solid var(--ads-line); border-radius: 2px;
  background: #fff; color: var(--ads-ink); font-size: 11px; cursor: pointer; position: relative;
}
.ads-level-opt input { position: absolute; opacity: 0; pointer-events: none; }
.ads-level-opt:has(input:checked) { background: var(--ads-ink); border-color: var(--ads-ink); color: #fff; font-weight: 600; }
.ads-region-row { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; }

/* 슬롯 타임라인 (06-2 v3 — 여유 N/마감 · 흰/베이지/회색/검정) */
.ads-timeline-gate { font-size: 11px; color: var(--ads-mute); background: var(--ads-bg); border: 1px dashed var(--ads-line); padding: 14px; margin: 0; }
.ads-slot-legend { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; font-size: 10px; color: var(--ads-sub); margin-bottom: 10px; }
.ads-slot-legend i { display: inline-block; width: 10px; height: 10px; margin-right: 4px; border: 1px solid var(--ads-line); vertical-align: -1px; }
.ads-slot-legend .ads-slot-key-loose { background: #fff; }
.ads-slot-legend .ads-slot-key-tight { background: var(--ads-warn-bg); border-color: var(--ads-warn-bd); }
.ads-slot-legend .ads-slot-key-full { background: var(--ads-fill); border-color: var(--ads-softline); }
.ads-slot-legend .ads-slot-key-sel { background: var(--ads-ink); border-color: var(--ads-ink); }
.ads-slot-legend-note { margin-left: auto; color: var(--ads-mute); }
.ads-slot-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 3px; }
.ads-slot-cell {
  border: 1px solid var(--ads-line); background: #fff; padding: 8px 2px; min-width: 0;
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  font-size: 10px; font-family: inherit; cursor: pointer; color: var(--ads-ink);
}
.ads-slot-wk { font-size: 9px; opacity: .85; }
.ads-slot-av { font-size: 11px; font-weight: 700; }
.ads-slot-dt { font-size: 8px; opacity: .7; }
.ads-slot-cell.is-tight { background: var(--ads-warn-bg); border-color: var(--ads-warn-bd); color: var(--ads-warn); }
.ads-slot-cell.is-full { background: var(--ads-fill); border-color: var(--ads-softline); color: var(--ads-mute); cursor: not-allowed; }
.ads-slot-cell.is-sel { background: var(--ads-ink); border-color: var(--ads-ink); color: #fff; }
.ads-slot-selbar {
  display: flex; gap: 12px; align-items: center; flex-wrap: wrap; font-size: 11px;
  background: var(--ads-bg); border: 1px solid var(--ads-softline); padding: 8px 10px; margin-top: 10px;
}
.ads-slot-warning { margin-top: 10px; }
.ads-slot-foot { display: flex; gap: 20px; align-items: center; flex-wrap: wrap; font-size: 11px; padding-top: 10px; border-top: 1px solid var(--ads-softline); margin-top: 12px; }
.ads-slot-foot-spacer { flex: 1; }

/* 요약·제출 (S9 ④) */
.ads-sum-grid { display: grid; grid-template-columns: 140px 1fr; row-gap: 6px; font-size: 12px; }
.ads-sum-grid > span { color: var(--ads-mute); }
.ads-sum-grid > strong { font-weight: 400; min-width: 0; }
.ads-sum-grid > strong[data-sum="total"] { font-weight: 600; }
.ads-split-box { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 12px; background: var(--ads-bg); border: 1px solid var(--ads-softline); }
.ads-split-amount { font-size: 20px; font-weight: 700; margin-top: 3px; font-variant-numeric: tabular-nums; }

/* ── 위저드 (S9 — 광고1 원 + step1/2/3 + 다음/이전) ── */
.ads-wiz-progress { display: flex; align-items: center; gap: 16px; background: var(--ads-panel); border: 1px solid var(--ads-line); padding: 14px 18px; margin-bottom: 16px; flex-wrap: wrap; }
.ads-wiz-badge { width: 60px; height: 60px; border-radius: 50%; background: var(--ads-ink); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; flex-shrink: 0; line-height: 1.1; }
.ads-wiz-badge-cap { font-size: 9px; opacity: .8; }
.ads-wiz-badge-no { font-size: 20px; font-weight: 700; }
.ads-wiz-track { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ads-wiz-step-pill { display: flex; align-items: center; gap: 8px; padding: 7px 12px; border: 1px solid var(--ads-line); background: var(--ads-bg); color: var(--ads-sub); font: inherit; font-size: 12px; cursor: pointer; }
.ads-wiz-dot { width: 24px; height: 24px; border-radius: 50%; background: var(--ads-fill); color: var(--ads-sub); display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 700; flex-shrink: 0; }
.ads-wiz-step-lbl { white-space: nowrap; }
.ads-wiz-arrow { color: var(--ads-mute); font-size: 13px; }
.ads-wiz-step-pill.is-active { border-color: var(--ads-ink); color: var(--ads-ink); font-weight: 600; background: #fff; }
.ads-wiz-step-pill.is-active .ads-wiz-dot { background: var(--ads-ink); color: #fff; }
.ads-wiz-step-pill.is-done { border-color: var(--ads-accent); color: var(--ads-accent); }
.ads-wiz-step-pill.is-done .ads-wiz-dot { background: var(--ads-accent); color: #fff; }
.ads-wiz-step { display: flex; flex-direction: column; gap: 16px; }
.ads-wiz-step + .ads-wiz-step { margin-top: 18px; } /* JS off — 롱스크롤 시 단계 간 간격 */
.ads-wiz-nav { display: flex; align-items: center; gap: 10px; }
.ads-wiz-nav-spacer { flex: 1; }

/* ── 다중 광고 탭 (⊕ Zone 추가 + 광고N + 요약) ── */
.ads-ad-tabs { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.ads-ad-add { width: 38px; height: 38px; border-radius: 50%; border: 1.5px dashed var(--ads-line); background: var(--ads-bg); color: var(--ads-sub); font-size: 20px; line-height: 1; cursor: pointer; flex-shrink: 0; }
.ads-ad-add:hover { border-color: var(--ads-accent); color: var(--ads-accent); }
.ads-ad-add.is-off { opacity: .35; cursor: not-allowed; }
.ads-ad-tab { display: flex; align-items: center; gap: 8px; padding: 6px 12px; border: 1px solid var(--ads-line); background: var(--ads-bg); color: var(--ads-sub); font: inherit; font-size: 12px; cursor: pointer; }
.ads-ad-no { width: 22px; height: 22px; border-radius: 50%; background: var(--ads-fill); color: var(--ads-sub); display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; flex-shrink: 0; }
.ads-ad-lbl { display: flex; flex-direction: column; line-height: 1.2; white-space: nowrap; text-align: left; }
.ads-ad-lbl em { font-style: normal; font-size: 9px; color: var(--ads-mute); }
.ads-ad-tab.is-active { border-color: var(--ads-ink); color: var(--ads-ink); font-weight: 600; background: #fff; }
.ads-ad-tab.is-active .ads-ad-no { background: var(--ads-ink); color: #fff; }
.ads-ad-tab.is-done { border-color: var(--ads-accent); color: var(--ads-accent); }
.ads-ad-tab.is-done .ads-ad-no { background: var(--ads-accent); color: #fff; }
.ads-ad-tab.is-active.is-done { border-color: var(--ads-ink); color: var(--ads-ink); }
.ads-ad-arrow { color: var(--ads-mute); font-size: 12px; }
.ads-ad-summary .ads-ad-no { background: transparent; border: 1px solid var(--ads-line); }
.ads-ad-tab.ads-ad-summary.is-active .ads-ad-no { background: var(--ads-ink); color: #fff; border-color: var(--ads-ink); }
.ads-zone-card.is-disabled { cursor: not-allowed; }

/* ── 요약 행 (광고별 금액·쿠폰 + 합산·최종결제) ── */
.ads-sum-rows { display: flex; flex-direction: column; gap: 10px; }
.ads-sum-row { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; padding: 12px; border: 1px solid var(--ads-line); background: var(--ads-panel); }
.ads-sum-row-head { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; font-size: 13px; }
.ads-sum-remove { background: transparent; border: 0; color: var(--ads-mute); font-size: 11px; cursor: pointer; }
.ads-sum-remove:hover { color: var(--ads-danger); }
.ads-sum-row-meta { grid-column: 1 / -1; font-size: 11px; color: var(--ads-sub); }
.ads-sum-coupon { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.ads-coupon-input { width: 150px; padding: 6px 8px; font-size: 11px; text-transform: uppercase; }
.ads-coupon-input::placeholder { text-transform: none; }
.ads-sum-coupon .ads-btn { padding: 6px 12px; font-size: 11px; }
.ads-coupon-on { font-size: 11px; color: var(--ads-ok); font-weight: 600; }
.ads-sum-row-amt { align-self: end; text-align: right; font-size: 15px; font-weight: 700; font-variant-numeric: tabular-nums; }
.ads-sum-tot { margin-top: 4px; border-top: 1px solid var(--ads-softline); padding-top: 10px; display: flex; flex-direction: column; gap: 5px; }
.ads-sum-tot-row { display: flex; justify-content: space-between; font-size: 12px; }
.ads-sum-tot-row strong { font-weight: 600; font-variant-numeric: tabular-nums; }
.ads-sum-tot-final { font-size: 14px; border-top: 1px solid var(--ads-softline); padding-top: 8px; margin-top: 3px; }
.ads-sum-tot-final strong { font-size: 18px; font-weight: 800; }
.ads-sum-actions { display: flex; align-items: center; gap: 10px; }

/* ── ① 콘텐츠 — 그룹 라벨 · 2컬럼 · 카운터 · 다국어 · 추가정보 ── */
.ads-group-row { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.ads-group-lbl { font-size: 12px; font-weight: 700; color: var(--ads-ink); }
.ads-group-row .ads-lang-chips { margin-left: auto; }
.ads-opt { font-size: 10px; font-weight: 400; color: var(--ads-mute); border: 1px solid var(--ads-softline); padding: 1px 5px; margin-left: 4px; }
.ads-content-basic { display: grid; grid-template-columns: 240px 1fr; gap: 16px; align-items: start; }
.ads-cb-fields { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.ads-upload-drop { flex-direction: column; align-items: stretch; text-align: center; gap: 10px; padding: 16px; }
.ads-upload-drop .ads-upload-empty { padding: 24px 8px; font-size: 12px; color: var(--ads-sub); }
.ads-upload-drop .ads-upload-thumb { width: 100%; height: auto; aspect-ratio: 1 / 1; }
.ads-upload-drop .ads-upload-meta { align-items: center; text-align: center; }
.ads-label:has(.ads-ct), .ads-label:has(.ads-hint-inline) { display: flex; align-items: center; gap: 6px; }
.ads-ct { margin-left: auto; font-size: 10px; color: var(--ads-mute); font-variant-numeric: tabular-nums; font-weight: 400; }
.ads-hint-inline { font-size: 10px; font-weight: 400; color: var(--ads-mute); }
.ads-mn-tag { font-size: 9px; color: var(--ads-sub); border: 1px solid var(--ads-softline); padding: 0 4px; }
.ads-textarea { resize: vertical; min-height: 64px; line-height: 1.5; }
.ads-field-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
/* 몽골어 필드 — 기본 숨김, "몽골어 추가" 토글 시 노출 (JS off → 숨김 유지, 선택 항목) */
.ads-mn-field { display: none; }
.ads-mn-on .ads-mn-field { display: block; }
.ads-lang-add.is-on { border-color: var(--ads-accent); color: var(--ads-accent); }

/* ── 글자색 세그 (미리보기 헤더) ── */
.ads-tc-seg { display: flex; align-items: center; gap: 6px; }
.ads-tc-cap { font-size: 10px; color: var(--ads-mute); }
.ads-tc-opt { display: inline-flex; align-items: center; gap: 4px; padding: 3px 7px; border: 1px solid var(--ads-line); background: #fff; color: var(--ads-sub); font: inherit; font-size: 10px; cursor: pointer; }
.ads-tc-opt.is-on { border-color: var(--ads-ink); color: var(--ads-ink); font-weight: 600; }
.ads-tc-sw { width: 10px; height: 10px; border: 1px solid var(--ads-line); display: inline-block; }
.ads-tc-sw-light { background: #fff; }
.ads-tc-sw-dark { background: #14181f; }

/* 미리보기 (노마 마켓 앱 톤 — NM_APP cream/coral) */
.ads-preview-head { display: flex; justify-content: space-between; align-items: center; font-size: 12px; font-weight: 600; margin-bottom: 10px; }
.ads-preview-tabs { display: flex; gap: 4px; margin-bottom: 12px; }
.ads-preview-tab { padding: 5px 10px; font-size: 10px; border: 1px solid var(--ads-line); border-radius: 2px; background: #fff; color: var(--ads-sub); cursor: pointer; font-family: inherit; }
.ads-preview-tab.is-on { background: var(--ads-ink); border-color: var(--ads-ink); color: #fff; }
.ads-preview-caption { font-size: 10px; color: var(--ads-mute); text-align: center; margin: 10px 0 0; }
.nm-phone { width: 280px; margin: 0 auto; background: #2a1e12; border-radius: 34px; padding: 8px; box-shadow: 0 10px 40px rgba(0, 0, 0, .18); }
.nm-screen { background: #fbf5ea; border-radius: 26px; overflow: hidden; display: flex; flex-direction: column; min-height: 544px; }
.nm-status { height: 24px; display: flex; align-items: center; justify-content: space-between; padding: 0 14px; font-size: 9px; font-weight: 600; color: #2a1e12; position: relative; }
.nm-notch { position: absolute; left: 50%; top: 5px; transform: translateX(-50%); width: 44px; height: 14px; background: #2a1e12; border-radius: 7px; }
.nm-topbar { display: flex; align-items: center; gap: 8px; padding: 6px 12px; border-bottom: 1px solid #e0d3b8; font-size: 11px; }
.nm-search { flex: 1; height: 24px; background: #fff; border: 1px solid #e0d3b8; border-radius: 12px; padding: 0 8px; font-size: 9px; color: #6b5742; display: flex; align-items: center; gap: 4px; }
.nm-greet { padding: 8px 12px 6px; font-size: 11px; font-weight: 700; color: #2a1e12; }
.nm-mode { display: flex; flex-direction: column; flex: 1; }
.nm-banner { margin: 0 10px; border-radius: 9px; overflow: hidden; position: relative; height: 100px; background: linear-gradient(135deg, #d96a4a 0%, #f2c9b6 100%); border: 1px solid #e0d3b8; flex-shrink: 0; }
.nm-banner-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.nm-banner-copy { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 10px; color: #fff; z-index: 1; }
.nm-banner-copy strong { font-size: 11px; font-weight: 700; text-shadow: 0 1px 2px rgba(0, 0, 0, .25); }
.nm-banner-copy span { font-size: 9px; opacity: .95; text-shadow: 0 1px 2px rgba(0, 0, 0, .25); }
.nm-banner.is-tc-dark .nm-banner-copy strong, .nm-banner.is-tc-dark .nm-banner-copy span { color: #2a1e12; text-shadow: none; }
.nm-ad-badge { position: absolute; top: 6px; right: 6px; background: rgba(255, 255, 255, .92); color: #2a1e12; font-size: 7px; font-weight: 700; padding: 2px 5px; border-radius: 3px; z-index: 2; }
.nm-dots { position: absolute; bottom: 5px; left: 50%; transform: translateX(-50%); display: flex; gap: 3px; z-index: 2; }
.nm-dots i { width: 4px; height: 4px; border-radius: 2px; background: rgba(255, 255, 255, .5); }
.nm-dots i.is-on { width: 10px; background: #fff; }
.nm-cats { display: flex; gap: 10px; padding: 10px 12px 4px; }
.nm-cats span { width: 28px; height: 28px; background: #fff; border: 1px solid #e0d3b8; border-radius: 7px; display: flex; align-items: center; justify-content: center; font-size: 13px; }
.nm-row { display: flex; gap: 8px; padding: 8px 12px; border-bottom: 1px solid #e0d3b8; align-items: flex-start; }
.nm-thumb { width: 44px; height: 44px; background: #f0e5d0; border: 1px solid #e0d3b8; border-radius: 5px; flex-shrink: 0; position: relative; overflow: hidden; }
.nm-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.nm-thumb-ad { background: #f2c9b6; border-color: #d96a4a; }
.nm-row-body { flex: 1; min-width: 0; font-size: 9px; color: #6b5742; }
.nm-row-body strong { display: block; font-size: 10px; color: #2a1e12; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nm-row-body em { display: block; font-style: normal; font-size: 8px; margin-top: 1px; }
.nm-row-body b { display: block; font-size: 10px; color: #2a1e12; margin-top: 1px; }
.nm-ad-chip { display: inline-block; border: 1px solid #d96a4a; color: #d96a4a; background: #fff; font-size: 6px; font-weight: 700; font-style: normal; padding: 0 3px; border-radius: 2px; vertical-align: 1px; }
.nm-detail-hero { height: 80px; background: #f0e5d0; border-bottom: 1px solid #e0d3b8; display: flex; align-items: flex-end; padding: 8px; font-size: 9px; color: #6b5742; flex-shrink: 0; }
.nm-card-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 6px 12px 10px; }
.nm-card { font-size: 8px; color: #6b5742; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.nm-card-img { aspect-ratio: 1 / 1; background: #f0e5d0; border: 1px solid #e0d3b8; border-radius: 5px; display: block; position: relative; overflow: hidden; }
.nm-card-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.nm-card-img-ad { background: #f2c9b6; border-color: #d96a4a; }
.nm-card-img .nm-ad-chip { position: absolute; top: 4px; left: 4px; }
.nm-card strong { font-size: 9px; color: #2a1e12; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nm-card b { font-size: 9px; color: #2a1e12; }
.nm-tabbar { margin-top: auto; border-top: 1px solid #e0d3b8; background: #fff; display: flex; justify-content: space-around; padding: 5px 0 7px; font-size: 7px; color: #6b5742; text-align: center; line-height: 1.4; }
.nm-tabbar .is-on { color: #d96a4a; font-weight: 700; }

/* ---------- 모달 (S17) ---------- */
.ads-modal { position: fixed; inset: 0; background: rgba(26, 26, 26, .45); display: flex; align-items: center; justify-content: center; padding: 20px; z-index: 50; }
.ads-modal[hidden] { display: none; }
.ads-modal-box { width: 480px; max-width: 100%; background: #fff; border: 1px solid var(--ads-line); padding: 28px; display: flex; flex-direction: column; gap: 12px; }
.ads-modal-title { font-size: 16px; font-weight: 700; margin: 0; }
.ads-modal-body { font-size: 12px; color: var(--ads-sub); line-height: 1.7; margin: 0; }
.ads-modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 6px; }

/* ---------- 반응형 ---------- */
@media (max-width: 1024px) {
  .ads-container { padding: 0 32px; }
  .ads-hero-visual { flex: 0 0 380px; }
  .ads-hero-visual img { width: 260px; }
}
@media (max-width: 880px) {
  .ads-hero-visual { display: none; }
  .ads-order-layout { grid-template-columns: 1fr; }
  .ads-order-summary { position: static; }
  .ads-journey { grid-template-columns: 1fr 1fr; }
  .ads-kpi-grid { grid-template-columns: 1fr 1fr; }
  .ads-detail-layout { grid-template-columns: 1fr; }
  .ads-zone-grid { grid-template-columns: 1fr 1fr; }
  .ads-region-row { grid-template-columns: 1fr; }
  .ads-content-basic { grid-template-columns: 1fr; }
  .ads-field-grid-2 { grid-template-columns: 1fr; }
  .ads-slot-grid { grid-template-columns: repeat(6, 1fr); }
  .ads-form-grid { grid-template-columns: 1fr; }
  .ads-tgrid { grid-template-columns: 90px 1.6fr 1fr 1fr 90px; }
  .ads-tgrid > span:nth-child(3), .ads-tgrid > span:nth-child(5) { display: none; }
}
@media (max-width: 640px) {
  .ads-container { padding: 0 20px; }
  .ads-header-inner { padding: 0 20px; gap: 12px; }
  .ads-nav { gap: 12px; }
  .ads-hero { padding-top: 40px; }
  .ads-hero-title { font-size: 32px; }
  .ads-hero-stats { flex-wrap: wrap; }
  .ads-journey { grid-template-columns: 1fr; }
  .ads-auth-card { margin: 32px auto; padding: 28px; }
  .ads-result-card { padding: 24px; }
  .ads-kpi-grid { grid-template-columns: 1fr; }
  .ads-slot-grid { grid-template-columns: repeat(4, 1fr); }
  .ads-sum-grid { grid-template-columns: 110px 1fr; }
  .ads-split-box { grid-template-columns: 1fr; }
}

/* ── 프로필 드로어 (대시보드 우측 슬라이드 — 회사명·담당자명 수정) ── */
[hidden] { display: none !important; } /* HTML hidden 속성이 author display(flex 등)에 덮이지 않도록 보장 */
.ads-nav-account { background: transparent; border: 0; cursor: pointer; display: inline-flex; align-items: center; gap: 7px; font: inherit; color: inherit; }
.ads-drawer-overlay { position: fixed; inset: 0; background: rgba(26, 26, 26, .45); z-index: 60; }
.ads-drawer-overlay[hidden] { display: none; }
.ads-drawer { position: fixed; top: 0; right: 0; bottom: 0; width: 360px; max-width: 90vw; background: #fff; border-left: 1px solid var(--ads-line); z-index: 61; display: flex; flex-direction: column; }
.ads-drawer[hidden] { display: none; }
.ads-drawer-head { display: flex; align-items: center; justify-content: space-between; padding: 20px 24px; border-bottom: 1px solid var(--ads-line); }
.ads-drawer-title { font-size: 16px; font-weight: 700; margin: 0; }
.ads-drawer-close { background: transparent; border: 0; font-size: 16px; line-height: 1; cursor: pointer; color: var(--ads-sub); }
.ads-drawer-body { flex: 1; overflow-y: auto; padding: 24px; display: flex; flex-direction: column; gap: 20px; }
.ads-drawer-foot { padding: 20px 24px; border-top: 1px solid var(--ads-line); }
.ads-field-readonly { font-size: 13px; color: var(--ads-sub); margin: 4px 0 0; }
.ads-field-view { font-size: 14px; color: var(--ads-ink); margin: 4px 0 0; }
.ads-drawer-edit-actions { display: flex; gap: 8px; justify-content: flex-end; }
.ads-profile-actions { margin-top: 18px; }
.ads-text-link { background: transparent; border: 0; padding: 0; margin-top: 6px; color: var(--ads-ink); font-size: 12px; text-decoration: underline; cursor: pointer; }
.ads-email-actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: 8px; }
.ads-email-code { margin-top: 10px; display: flex; flex-direction: column; gap: 8px; }
.ads-field-msg { font-size: 12px; color: var(--ads-danger); margin: 8px 0 0; }
.ads-field-msg.is-ok { color: var(--ads-ok); }
.ads-avatar-field { display: flex; justify-content: center; margin-bottom: 8px; }
.ads-avatar-wrap { position: relative; width: 72px; height: 72px; }
.ads-avatar-edit-btn { position: absolute; right: -2px; bottom: -2px; width: 26px; height: 26px; border-radius: 50%; background: var(--ads-ink); color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; border: 2px solid #fff; }
.ads-avatar-edit-btn svg { width: 14px; height: 14px; }
.ads-avatar-preview { width: 72px; height: 72px; border-radius: 50%; overflow: hidden; background: var(--ads-bg); border: 1px solid var(--ads-line); display: flex; align-items: center; justify-content: center; }
.ads-avatar-preview img { width: 100%; height: 100%; object-fit: cover; }
.ads-avatar-initial { font-size: 26px; font-weight: 700; color: var(--ads-sub); }
.ads-hidden-file { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); }
.ads-email-field { border-top: 1px solid var(--ads-line); padding-top: 12px; margin-top: 20px; }
/* 아이콘 + 라벨/값 정보 행 — 헐렁함 해소 (구분선 + 일정 패딩 + 항목별 아이콘) */
.ads-info-list { display: flex; flex-direction: column; margin-top: 10px; }
.ads-info-row { display: flex; gap: 13px; padding: 15px 2px; border-bottom: 1px solid #ececec; align-items: flex-start; }
.ads-info-row:last-child { border-bottom: 0; }
.ads-info-icon { flex-shrink: 0; width: 18px; height: 18px; color: var(--ads-sub); margin-top: 1px; }
.ads-info-body { flex: 1; min-width: 0; }
.ads-info-label { display: block; font-size: 11px; color: var(--ads-sub); margin-bottom: 4px; }
.ads-info-value { font-size: 14px; color: var(--ads-ink); margin: 0; font-weight: 500; word-break: break-all; }
.ads-info-row .ads-input { margin-top: 5px; }
.ads-info-row .ads-text-link { margin-top: 7px; }

/* ── 새 광고 폼 (멀티존 적층 — 버튼식 zone/level + Zone 블록 간격) ── */
[data-zone-blocks] { display: flex; flex-direction: column; gap: 14px; }
.ads-zone-card { font: inherit; width: 100%; }
.ads-zone-card.is-on { border-color: var(--ads-ink); background: var(--ads-bg); }
.ads-zone-card.is-on .ads-zone-card-name { font-weight: 700; color: var(--ads-ink); }
.ads-zone-card[disabled] { cursor: not-allowed; }
.ads-level-opt { font: inherit; }
.ads-level-opt.is-on { background: var(--ads-ink); border-color: var(--ads-ink); color: #fff; font-weight: 600; }

/* 영업시간 시·분 picker + 휴무일 칩 (admin 정본 이식) */
.ads-hours-row { display: flex; align-items: center; gap: 8px; }
.ads-hours-sep { color: var(--ads-mute); flex: none; }
.ads-timepick { position: relative; }
.ads-tp-trigger { display: inline-flex; align-items: center; justify-content: space-between; gap: 10px; min-width: 96px; padding: 7px 10px; background: #fff; border: 1px solid var(--ads-line); color: var(--ads-ink); font-family: ui-monospace, monospace; font-size: 12px; cursor: pointer; }
.ads-tp-trigger::after { content: "▾"; color: var(--ads-mute); font-size: 10px; }
.ads-tp-trigger.placeholder { color: var(--ads-mute); }
.ads-tp-panel { display: none; position: absolute; top: calc(100% + 4px); left: 0; z-index: 50; background: #fff; border: 1px solid var(--ads-line); box-shadow: 0 8px 24px rgba(0, 0, 0, .18); }
.ads-timepick[aria-expanded="true"] .ads-tp-panel { display: flex; }
.ads-tp-colwrap { display: flex; flex-direction: column; }
.ads-tp-colwrap + .ads-tp-colwrap { border-left: 1px solid var(--ads-line); }
.ads-tp-head { font-size: 9px; color: var(--ads-mute); text-align: center; padding: 5px 0; border-bottom: 1px solid var(--ads-line); position: sticky; top: 0; background: #fff; }
.ads-tp-col { max-height: 168px; overflow-y: auto; width: 54px; scrollbar-width: none; }
.ads-tp-col::-webkit-scrollbar { display: none; }
.ads-tp-item { display: block; width: 100%; font-family: ui-monospace, monospace; font-size: 12px; text-align: center; padding: 6px 0; cursor: pointer; color: var(--ads-sub); background: none; border: 0; }
.ads-tp-item:hover { background: var(--ads-bg); }
.ads-tp-item.on { background: var(--ads-ink); color: #fff; font-weight: 700; }

/* 커스텀 드롭다운 (.ads-dd) — time picker 답습. 쿠폰 선택 등 native select 대체 (우리 스타일) */
.ads-dd { position: relative; flex: 1; min-width: 0; }
.ads-dd-trigger { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; padding: 7px 10px; background: #fff; border: 1px solid var(--ads-line); color: var(--ads-ink); font-size: 12px; cursor: pointer; text-align: left; font-family: inherit; }
.ads-dd-trigger::after { content: "▾"; color: var(--ads-mute); font-size: 10px; flex-shrink: 0; }
.ads-dd-trigger.placeholder { color: var(--ads-mute); }
.ads-dd-trigger:disabled { cursor: default; background: var(--ads-fill); color: var(--ads-ink); }
.ads-dd-trigger:disabled::after { content: ""; }
.ads-dd-panel { display: none; position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 50; background: #fff; border: 1px solid var(--ads-line); box-shadow: 0 8px 24px rgba(0, 0, 0, .18); max-height: 220px; overflow-y: auto; }
.ads-dd[aria-expanded="true"] .ads-dd-panel { display: block; }
.ads-dd-item { display: block; width: 100%; text-align: left; font-size: 12px; padding: 8px 10px; cursor: pointer; color: var(--ads-sub); background: none; border: 0; line-height: 1.4; font-family: inherit; }
.ads-dd-item:hover { background: var(--ads-bg); }
.ads-dd-item.on { background: var(--ads-ink); color: #fff; }
.ads-dayoff-row { display: flex; gap: 5px; flex-wrap: wrap; }
.ads-day-chip { width: 32px; height: 28px; border: 1px solid var(--ads-line); border-radius: 2px; background: #fff; color: var(--ads-sub); font-size: 11px; font-weight: 600; cursor: pointer; font-family: inherit; }
.ads-day-chip:hover { border-color: var(--ads-sub); }
.ads-day-chip.on { background: var(--ads-warn-bg); color: var(--ads-warn); border-color: var(--ads-warn-bd); }

/* 미리보기 모드(앱노출/광고상세) + 언어 토글 */
.ads-pv-mode-row { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 12px; flex-wrap: wrap; }
.ads-pv-mode, .ads-pv-lang { display: inline-flex; border: 1px solid var(--ads-line); border-radius: 2px; overflow: hidden; }
.ads-pvm-opt, .ads-pvl-opt { padding: 4px 11px; font-size: 11px; font-weight: 600; background: #fff; color: var(--ads-sub); border: 0; border-left: 1px solid var(--ads-line); cursor: pointer; font-family: inherit; }
.ads-pvm-opt:first-child, .ads-pvl-opt:first-child { border-left: 0; }
.ads-pvm-opt.is-on, .ads-pvl-opt.is-on { background: var(--ads-ink); color: #fff; }
.ads-pvl-opt:disabled { opacity: .4; cursor: not-allowed; }

/* 광고 상세 미리보기 (ads#show 모사 — 노마앱 cream 톤) */
.nm-phone-detail { display: flex; flex-direction: column; }
.nm-phone-detail > .nm-status { color: #fff; }
.nm-phone-detail .nm-screen.adet { min-height: 0; height: 470px; overflow-y: auto; overflow-x: hidden; padding: 0; gap: 0; }
.adet-img { position: relative; width: 100%; aspect-ratio: 1 / 1; background: #f0e5d0; flex: none; }
.adet-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.adet-img .ph { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #d96a4a, #f2c9b6); color: rgba(255, 255, 255, .75); font-size: 11px; }
.adet-img .back { position: absolute; top: 8px; left: 8px; color: #fff; opacity: .9; font-size: 12px; }
.adet-img .lbl { position: absolute; top: 8px; right: 8px; font-size: 8px; font-weight: 600; color: #fff; background: rgba(0, 0, 0, .4); padding: 2px 7px; border-radius: 10px; }
.adet-sec { padding: 11px 12px; border-bottom: 1px solid #e0d3b8; }
.adet-title { font-size: 14px; font-weight: 700; color: #2a1e12; line-height: 1.3; }
.adet-sub { font-size: 11px; color: #6b5742; margin-top: 3px; }
.adet-desc { font-size: 10px; color: #6b5742; margin-top: 7px; line-height: 1.55; white-space: pre-line; }
.adet-adv { display: flex; align-items: center; gap: 5px; font-size: 9px; color: #9a8a76; margin-top: 9px; }
.adet-row { display: flex; align-items: center; gap: 9px; margin-bottom: 9px; }
.adet-row:last-child { margin-bottom: 0; }
.adet-row .ic { flex: none; width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: rgba(217, 106, 74, .12); font-size: 12px; }
.adet-row .k { font-size: 8px; color: #9a8a76; }
.adet-row .v { font-size: 10px; color: #2a1e12; font-weight: 500; }
.adet-bar { flex: none; display: flex; gap: 7px; padding: 9px 12px; background: #fbf5ea; border-top: 1px solid #e0d3b8; }
.adet-btn { flex: 1; height: 30px; border-radius: 9px; display: flex; align-items: center; justify-content: center; gap: 5px; font-size: 10px; font-weight: 700; text-decoration: none; cursor: pointer; }
.adet-btn.chat { background: rgba(217, 106, 74, .12); color: #d96a4a; opacity: .6; }
.adet-btn.web { background: #d96a4a; color: #fff; }
.adet-btn.web.off { background: #f0e5d0; color: #9a8a76; }

/* 요금 산정 (우측 aside) — Zone별 주문 요약 카드 + 1회용 쿠폰 + pay-hero */
.ads-rate-empty { font-size: 11px; color: var(--ads-mute); padding: 10px 0; text-align: center; }
.ads-rate-zones { margin: 10px 0; display: flex; flex-direction: column; gap: 12px; }
.ads-rz { border: 1px solid var(--ads-line); padding: 12px 13px; }
.ads-rz-head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-bottom: 8px; }
.ads-rz-name { font-weight: 700; font-size: 12.5px; }
.ads-rz-st { font-size: 10px; white-space: nowrap; }
.ads-rz-title { font-weight: 600; font-size: 12px; margin-bottom: 7px; }
.ads-rz-empty { font-size: 11px; color: var(--ads-mute); }
.ads-rz-row { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding: 3px 0; }
.ads-rz-row .k { color: var(--ads-mute); font-size: 11.5px; }
.ads-rz-row .v { font-family: ui-monospace, monospace; font-size: 11.5px; color: var(--ads-sub); text-align: right; }
.ads-rz-row.strong .k { color: var(--ads-ink); font-weight: 600; }
.ads-rz-row.strong .v { color: var(--ads-ink); font-weight: 700; }
.ads-rz-line { border-top: 1px solid var(--ads-line); margin: 7px 0 3px; }
.ads-rz-coupon-lbl { margin-top: 9px; font-size: 11px; color: var(--ads-sub); }
.ads-rz-coupon { display: flex; gap: 6px; align-items: stretch; margin: 4px 0 2px; }
.ads-rz-coupon .ads-input { flex: 1; min-width: 0; height: auto; padding: 6px 8px; font-size: 11px; }
.ads-rz-coupon .ads-btn { padding: 6px 12px; font-size: 11px; }
.ads-rz-coupon-note { margin: 4px 0 2px; font-size: 10.5px; color: var(--ads-mute); }
.ads-rz-msg { margin-top: 5px; font-size: 10px; color: var(--ads-warn); }
.ads-rz-strike { display: block; font-size: 12px; font-weight: 400; line-height: 1.25; }
.ads-rz-strike .ads-rz-eff { color: var(--ads-accent); font-weight: 700; }
.ads-rz-strike s { color: var(--ads-mute); }
.ads-pay-hero { margin-top: 10px; padding: 12px 14px; display: flex; flex-direction: column; gap: 3px; background: var(--ads-bg); border: 1px solid var(--ads-softline); }
.ads-pay-hero.is-free { background: var(--ads-ok-callout); border-color: var(--ads-ok-bd); }
.ads-pay-hero .ph-lbl { font-size: 11px; font-weight: 600; color: var(--ads-sub); }
.ads-pay-hero .ph-amt { font-family: ui-monospace, monospace; font-size: 26px; font-weight: 700; line-height: 1.1; color: var(--ads-accent); text-align: right; }
/* 존별 카드 헤로 — 합계(26px)보다 작게, 일반 텍스트(11.5px)보다 크게 (중간 위계). 존 2개+ 합계가 최상위 */
.ads-pay-hero-zone .ph-amt { font-size: 19px; }
.ads-pay-hero.is-free .ph-amt { color: var(--ads-ok); }
.ads-pay-hero .ph-note { font-size: 10px; color: var(--ads-mute); line-height: 1.5; }
.ads-rate-summary { margin-top: 12px; }
.ads-rate-summary:empty { display: none; }
.ads-rate-tax { display: grid; gap: 5px; padding-top: 10px; border-top: 1px solid var(--ads-line); }
.ads-rate-tax .tx { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; font-size: 11.5px; }
.ads-rate-tax .tx .k { color: var(--ads-mute); }
.ads-rate-tax .tx .v { font-family: ui-monospace, monospace; color: var(--ads-sub); }
.ads-rate-tax .tx.discount .v { color: var(--ads-ok); }
.ads-rate-tax .tx.grand { padding-top: 7px; margin-top: 2px; border-top: 1px solid var(--ads-line); }
.ads-rate-tax .tx.grand .k { color: var(--ads-ink); font-weight: 600; font-size: 12px; }
.ads-rate-tax .tx.grand .v { color: var(--ads-ink); font-weight: 700; font-size: 13.5px; }
.ads-rz-coupon-info { margin: 4px 0 2px; font-size: 10.5px; color: var(--ads-sub); line-height: 1.5; }
.ads-rz-coupon-info strong { color: var(--ads-accent); }

/* ---------- 광고 상세 (show — admin advertisements 정본 이식, light 토큰) ---------- */
.ads-detail-head-main { min-width: 0; }
.ads-detail-back { font-size: 12px; color: var(--ads-sub); text-decoration: none; display: inline-block; margin-bottom: 8px; }
.ads-detail-back:hover { color: var(--ads-ink); }
.ads-detail-titlerow { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 2px 0 6px; }
.ads-detail-titlerow .ads-order-title { margin: 0; }
.ads-detail-meta { font-size: 11px; color: var(--ads-sub); margin: 0; }
.ads-detail-actions { display: flex; gap: 8px; align-items: flex-start; flex-shrink: 0; }

/* mock 배너 */
.ads-mock-banner { background: var(--ads-warn-bg); border: 1px solid var(--ads-warn-bd); color: var(--ads-warn); font-size: 11px; padding: 9px 14px; margin-bottom: 14px; }

/* callout warn + title */
.ads-callout-warn { background: var(--ads-warn-bg); border-color: var(--ads-warn-bd); }
.ads-callout-warn .ads-callout-title { color: var(--ads-warn); }
.ads-callout-title { font-weight: 600; font-size: 12px; margin-bottom: 3px; }

/* 크리에이티브 */
.ads-cre-lang { display: inline-flex; gap: 2px; }
.ads-crl { font-size: 10px; padding: 3px 8px; border: 1px solid var(--ads-line); background: #fff; color: var(--ads-sub); cursor: pointer; }
.ads-crl.is-on { background: var(--ads-ink); border-color: var(--ads-ink); color: #fff; }
.ads-cre-row { display: flex; gap: 16px; align-items: flex-start; }
.ads-cre-img { width: 140px; height: 140px; flex-shrink: 0; border: 1px solid var(--ads-line); background: var(--ads-fill); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.ads-cre-img img { width: 100%; height: 100%; object-fit: cover; }
.ads-cre-img-empty { font-size: 10px; color: var(--ads-mute); text-align: center; line-height: 1.5; }
.ads-cre-txt { min-width: 0; flex: 1; }
.ads-cre-h { font-size: 15px; font-weight: 700; margin-bottom: 8px; }
.ads-cre-field { display: flex; gap: 10px; font-size: 12px; padding: 4px 0; border-top: 1px solid var(--ads-softline); }
.ads-cre-field .fk { width: 52px; flex-shrink: 0; color: var(--ads-mute); }
.ads-cre-field .fv { min-width: 0; word-break: break-word; }
.ads-cre-cta { font-size: 11px; color: var(--ads-sub); margin-top: 8px; }
.ads-cre-link { color: var(--ads-accent); word-break: break-all; }

/* 성과 */
.ads-perf-scope { font-size: 11px; color: var(--ads-sub); margin-bottom: 10px; }
.ads-perf-scope b { color: var(--ads-ink); }
.ads-kpi-perf { grid-template-columns: repeat(4, 1fr); }
.ads-kpi-perf .ads-kpi-value { font-size: 24px; }

/* 일별 차트 (컬럼 + 클릭 polyline) */
.ads-chart { position: relative; height: 160px; }
.ads-chart-bars { display: flex; align-items: flex-end; gap: 2px; height: 100%; }
.ads-chart-bar { flex: 1; min-width: 2px; background: var(--ads-info-bd); align-self: flex-end; }
.ads-chart-bar.is-now { background: var(--ads-accent); }
.ads-chart-bar.is-est { background: var(--ads-softline); }
.ads-chart-line { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.ads-chart-line polyline { fill: none; stroke: var(--ads-accent); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.ads-chart-legend { font-size: 10px; color: var(--ads-mute); margin-top: 8px; }
.ads-chart-legend .lg-imp::before { content: "■ "; color: var(--ads-info-bd); }
.ads-chart-legend .lg-clk::before { content: "— "; color: var(--ads-accent); }

/* 유입 지역 */
.ads-region { display: flex; flex-direction: column; gap: 8px; }
.ads-region-row { display: grid; grid-template-columns: 140px 1fr 40px; align-items: center; gap: 10px; font-size: 11px; }
.ads-region-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ads-region-bar { height: 6px; background: var(--ads-fill); overflow: hidden; }
.ads-region-bar span { display: block; height: 100%; background: var(--ads-info-bd); }
.ads-region-pct { text-align: right; font-variant-numeric: tabular-nums; color: var(--ads-sub); }

/* 존탭 */
.ads-zoneseg { display: flex; gap: 2px; border-bottom: 1px solid var(--ads-line); margin-bottom: 14px; flex-wrap: wrap; }
.ads-zoneseg-btn { font-size: 12px; padding: 8px 12px; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; background: transparent; color: var(--ads-sub); cursor: pointer; white-space: nowrap; }
.ads-zoneseg-btn:hover { color: var(--ads-ink); }
.ads-zoneseg-btn.is-on { color: var(--ads-ink); border-bottom-color: var(--ads-accent); font-weight: 600; }

/* 앱 미리보기 */
.ads-pv-stat { font-size: 11px; }
.ads-pv-stat.is-live { color: var(--ads-ok); }
.ads-pv-stat.is-off { color: var(--ads-mute); }
.ads-pv-stage { position: relative; display: flex; justify-content: center; padding: 8px 0; }
.ads-pv-stage.is-off { opacity: .6; filter: grayscale(.4); }
.ads-pv-overlay { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, .04); font-size: 11px; color: var(--ads-sub); z-index: 2; }
.ads-pv-foot { font-size: 10px; color: var(--ads-mute); text-align: center; margin: 6px 0 0; }

/* 결제·쿠폰 (단일 _pay_coupon + 멀티 _pay_zones) */
/* ── 💳 결제 — "결제 경우의 수" 카드 (admin 목업 이식, 본관 라이트 톤). 다크 목업 색→라이트 토큰 매핑. ── */
.ads-pc-body { display: block; }
.ads-pc-slot { border: 1px solid var(--ads-softline); padding: 10px 12px; margin-bottom: 12px; }
.ads-pc-slot-head { display: flex; align-items: center; gap: 7px; font-size: 12px; }
.ads-pc-slot-head .no { font-weight: 700; }
.ads-pc-slot-head .zn { font-size: 13px; font-weight: 700; }
.ads-pc-slot-head .lvl { font-size: 10px; color: var(--ads-sub); border: 1px solid var(--ads-line); padding: 0 5px; }
.ads-pc-slot-head .tot { margin-left: auto; font-size: 15px; font-weight: 700; font-variant-numeric: tabular-nums; }
.ads-pc-gross-cap { font-size: 10px; color: var(--ads-mute); margin: 3px 0 6px; }

/* 헤더 상태 칩 */
.ads-pc-chip { margin-left: auto; font-size: 10px; font-weight: 600; padding: 2px 8px; border: 1px solid var(--ads-line); }
.ads-pc-chip-coupon { color: var(--ads-ok); border-color: var(--ads-ok-bd); }
.ads-pc-chip-mix { color: var(--ads-warn); border-color: var(--ads-warn-bd); }
.ads-pc-chip-cash { color: var(--ads-info); border-color: var(--ads-info-bd); }
.ads-pc-chip-wait { color: var(--ads-mute); border-color: var(--ads-line); }
.ads-pc-chip-refund { color: var(--ads-danger); border-color: var(--ads-danger-bd); }

/* 단계 (선결제/잔금) — 좌측 보더 액센트 */
.ads-pc-stg { border-left: 2px solid var(--ads-softline); padding: 5px 0 5px 11px; margin: 8px 0; }
.ads-pc-stg.wait { border-left-color: var(--ads-line); opacity: .68; }
.ads-pc-stg-head { display: flex; align-items: center; font-size: 12px; }
.ads-pc-stg-head .k { font-weight: 600; }
.ads-pc-stg-head .v { margin-left: auto; color: var(--ads-sub); font-variant-numeric: tabular-nums; }
.ads-pc-sub { display: flex; align-items: center; font-size: 11px; padding: 3px 0 0; }
.ads-pc-sub .k { color: var(--ads-sub); display: flex; align-items: center; gap: 5px; }
.ads-pc-sub .v { margin-left: auto; font-variant-numeric: tabular-nums; }

/* 칩 — 🎟 쿠폰(빨강) / 💳 PG(파랑·QPay 청록·직접입금 중립) */
.ads-pc-tk { font-size: 9.5px; padding: 1px 5px; border: 1px solid var(--ads-danger); color: var(--ads-danger); white-space: nowrap; }
.ads-pc-pg { font-size: 9.5px; padding: 1px 5px; border: 1px solid var(--ads-info); color: var(--ads-info); white-space: nowrap; }
.ads-pc-pg.qpay { border-color: var(--ads-accent); color: var(--ads-accent); }
.ads-pc-pg.direct { border-color: var(--ads-sub); color: var(--ads-sub); }
.ads-pc-disc { color: var(--ads-ok); }
.ads-pc-net { font-weight: 700; font-size: 14px; }
.ads-pc-net.zero { color: var(--ads-ok); }
.ads-pc-net.cash { color: var(--ads-info); }
.ads-pc-chk { color: var(--ads-ok); margin-left: 5px; font-size: 10px; font-weight: 400; }
.ads-pc-stat { color: var(--ads-mute); margin-left: 5px; font-size: 10px; font-weight: 400; }
.ads-pc-waitlab { margin-left: auto; color: var(--ads-mute); font-size: 10.5px; font-variant-numeric: tabular-nums; }
.ads-pc-paidat { color: var(--ads-sub); font-weight: 400; font-size: 10.5px; }

/* 잔금 쿠폰 picker (승인+미결제, 기능 유지) */
.ads-pc-cpn-pick { display: flex; gap: 6px; margin-top: 6px; }
.ads-pc-cpn-pick .ads-select { flex: 1; }
.ads-pc-cpn-quote { display: block; font-size: 10px; color: var(--ads-ok); margin-top: 4px; }

.ads-pc-divline { border-top: 1px solid var(--ads-softline); margin: 11px 0; }

/* 실 지불(현금) 강조 박스 — 좌측 3px 보더 (₩0=green / 현금=blue / 환불=red) */
.ads-pc-netbox { padding: 11px 13px; border: 1px solid var(--ads-softline); }
.ads-pc-netbox.zero { background: var(--ads-ok-callout); border-color: var(--ads-ok-bd); border-left: 3px solid var(--ads-ok); }
.ads-pc-netbox.pay { background: var(--ads-danger-bg); border-color: var(--ads-danger-bd); border-left: 3px solid var(--ads-danger); }
.ads-pc-netbox.refund { background: var(--ads-danger-bg); border-color: var(--ads-danger-bd); border-left: 3px solid var(--ads-danger); }
.ads-pc-netbox .top { display: flex; align-items: baseline; }
.ads-pc-netbox .top .k { font-size: 12px; font-weight: 600; }
.ads-pc-netbox .top .v { margin-left: auto; font-size: 28px; font-weight: 700; font-variant-numeric: tabular-nums; } /* 단계 실 결제(14px)의 2배 */
.ads-pc-netbox.zero .top .v { color: var(--ads-ok); }   /* ₩0 = 초록 */
.ads-pc-netbox.pay .top .v { color: var(--ads-danger); } /* 현금 결제분 있음 = 빨강 (실 지불 강조) */
.ads-pc-netbox.refund .top .v { color: var(--ads-danger); }
.ads-pc-netbox .cap { font-size: 10.5px; color: var(--ads-sub); margin-top: 4px; line-height: 1.5; }

/* foot — 결제 수단 · 집행 소진 */
.ads-pc-foot { display: flex; align-items: center; font-size: 11.5px; padding: 4px 0; color: var(--ads-sub); }
.ads-pc-foot .v { margin-left: auto; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--ads-ink); }
.ads-pc-foot .v .sub { color: var(--ads-mute); font-weight: 400; }

/* 멀티존 — 이 존 실 결제 */
.ads-pc-zfoot { display: flex; align-items: baseline; margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--ads-softline); }
.ads-pc-zfoot .k { font-size: 11.5px; font-weight: 600; }
.ads-pc-zfoot .v { margin-left: auto; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--ads-ok); }
.ads-pc-zfoot .strike { text-decoration: line-through; color: var(--ads-mute); margin-right: 6px; font-weight: 400; font-size: 11px; }

@media (max-width: 860px) {
  .ads-cre-row { flex-direction: column; }
  .ads-cre-img { width: 100%; height: auto; aspect-ratio: 1 / 1; max-width: 200px; }
  .ads-region-row { grid-template-columns: 90px 1fr 36px; }
}
