/* ADS (2026-10-06): only what the shared console styles do not already give.
   Cards, tables, pills, fields, KPI tiles and buttons are console.css's. */
.ad-goal { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--s-3); }
.ad-lbl { display: flex; flex-direction: column; gap: var(--s-1); font-size: var(--t-meta); color: var(--muted); }
.ad-lbl .cn-field { min-width: 220px; }
.ad-inline { margin: 0; align-self: center; }
.ad-flash { margin: 0 0 var(--s-3); }
.ad-filters { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-3); margin-bottom: var(--s-3); }
.ad-filters .cn-field { width: 240px; max-width: 100%; }
.ad-bulk { margin-left: auto; display: flex; align-items: center; gap: var(--s-3); }
.ad-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.ad-scroll .cn-tbl { min-width: 640px; }
.ad-sub { font-size: var(--t-meta); color: var(--muted); margin-top: 2px; }
.ad-pager { display: flex; align-items: center; justify-content: center; gap: var(--s-4); margin-top: var(--s-3); }
.ad-pager .cn-inline-btn[disabled] { opacity: .4; cursor: default; text-decoration: none; }
.ad-conn { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s-3); padding: var(--s-3) 0; border-top: 1px solid var(--hairline); }
.ad-connect { margin-top: var(--s-3); border-top: 1px solid var(--hairline); padding-top: var(--s-3); }
.ad-connect summary { cursor: pointer; font-weight: var(--w-medium); color: var(--ink); }
.ad-connect .ad-lbl { margin: var(--s-3) 0; max-width: 520px; }
.ad-connect .cn-field { width: 100%; }
/* Many accounts (2026-10-10): what stopped and how to fix it, and the performance tables. */

.ad-prob { padding: var(--s-3) 0; border-top: 1px solid var(--hairline); }
.ad-alert > .ad-prob:first-child, .ad-alert .cn-card-h + .ad-prob { border-top: 0; }
.ad-prob-h { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2); }
.ad-prob-h .ad-sub { margin: 0; }
.ad-prob-t { margin: var(--s-2) 0; color: var(--ink); }
.ad-fixsteps { margin: 0 0 var(--s-3); padding-left: 1.4em; list-style: decimal; font-size: var(--t-body); color: var(--ink); }
.ad-fixsteps li { display: list-item; list-style: inherit; margin: 4px 0; }
.ad-prob-go { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-3); }
.ad-link { background: none; border: 0; padding: 0; font: inherit; font-weight: var(--w-medium); color: var(--ink); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; text-align: left; }
.ad-perf { min-width: 900px; }
.ad-perf tfoot th, .ad-perf tfoot td { border-top: 1px solid var(--hairline); font-weight: var(--w-medium); }
.ad-perf th:first-child, .ad-perf td:first-child { position: sticky; left: 0; background: #fff; min-width: 160px; word-break: normal; overflow-wrap: normal; }
.ad-tab.on { color: var(--ink); font-weight: var(--w-medium); text-decoration: none; border-bottom: 2px solid currentColor; }
.cn-seg { display: flex; gap: var(--s-4); margin-bottom: var(--s-3); }
.ad-dates { display: inline-flex; gap: var(--s-2); flex-wrap: wrap; }
.ad-dates .cn-field { width: 160px; }
@media (max-width: 640px) {
  .ad-dates, .ad-dates .cn-field { width: 100%; }
  .ad-bulk { margin-left: 0; width: 100%; }
  .ad-filters .cn-field { width: 100%; }
  .ad-conn { flex-direction: column; }
}
/* Form helpers shared by Ads screens (from campaign drafts, 2026-10-07). */
.ad-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: var(--s-3) var(--s-4); }
.ad-field .cn-field { width: 100%; min-width: 0; }
.ad-field textarea.cn-field { resize: vertical; }
.ad-radio { display: flex; gap: 8px; align-items: center; margin: var(--s-2) 0; font-size: var(--t-body); color: var(--ink); }
.ad-checks { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: var(--s-2); margin-top: var(--s-2); font-size: var(--t-body); }

/* Ad creative (2026-10-08). */
.ad-cr-meters { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--s-3); }
.ad-cr-meters b { font-size: 22px; font-weight: var(--w-medium); color: var(--ink); }
.ad-cr-meters span { display: block; font-size: var(--t-meta); color: var(--muted); }
.ad-cr-h4 { margin: var(--s-4) 0 var(--s-1); font-size: var(--t-meta); text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.ad-cr-more { margin-top: var(--s-3); font-size: var(--t-body); }
.ad-cr-more textarea { width: 100%; margin-top: var(--s-2); box-sizing: border-box; }
.ad-cr-go { margin: var(--s-4) 0 var(--s-2); display: flex; flex-wrap: wrap; gap: var(--s-2); align-items: center; }
.ad-cr-job { border-top: 1px solid var(--hairline); padding: var(--s-4) 0; }
.ad-cr-job:first-of-type { border-top: 0; }
.ad-cr-job-h { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.ad-cr-job-h > span:not(.cn-pill):not(.ad-sub) { color: var(--muted); }
.ad-cr-imgs { display: flex; flex-wrap: wrap; gap: var(--s-3); margin-top: var(--s-3); }
.ad-cr-imgs figure { margin: 0; width: 180px; max-width: calc(50% - var(--s-3)); }
.ad-cr-imgs img { width: 100%; height: auto; border-radius: 8px; border: 1px solid var(--hairline); display: block; background: #F4F5F7; }
.ad-cr-imgs figcaption { font-size: var(--t-micro); color: var(--muted); margin-top: 4px; }
.ad-cr-video video { width: 100%; max-width: 320px; border-radius: 8px; background: #000; display: block; margin-top: var(--s-3); }
.ad-cr-copy { border: 1px solid var(--hairline); border-radius: var(--r-surface); padding: var(--s-3); margin-top: var(--s-2); }
.ad-cr-copy p { margin: 0 0 6px; }
.ad-cr-hl { font-weight: var(--w-medium); color: var(--ink); }
.ad-cr-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: var(--s-2) !important; }
.ad-cr-pick { width: auto; max-width: 100%; padding: 4px 8px; font-size: var(--t-meta); }
.ad-cr-sends { display: inline-flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.ad-cr-price b { font-size: 20px; color: var(--ink); }
.ad-cr-buyrow { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-3); align-items: center; }
.ad-cr-buyrow > span { color: var(--ink); margin-right: auto; }
.ad-cr-subject { border: 0; padding: 0; margin: var(--s-3) 0 0; }
.ad-cr-subject legend { font-size: var(--t-meta); text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin-bottom: var(--s-1); }
/* Review before use (claim checker, 2026-10-09) */
.ad-cr-review { margin-top: var(--s-2); border: 1px solid var(--cn-warn-ink, #8a5a00); border-radius: 8px; padding: var(--s-2) var(--s-3); background: var(--cn-warn-bg, #fff7e6); }
.ad-cr-review-h { margin: 0 0 4px; font-weight: var(--w-medium); color: var(--cn-warn-ink, #8a5a00); }
.ad-cr-review-k { margin: 6px 0 2px; font-size: var(--t-micro); text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.ad-cr-review ul { margin: 0; padding-left: 18px; }
.ad-cr-review li { margin: 2px 0; font-size: var(--t-meta); color: var(--ink); }
.ad-cr-review q { font-weight: var(--w-medium); }
.ad-cr-ck-f { color: var(--muted); }

/* Review tiers (2026-10-09): fix, verify, regulatory, worth a look. Pastel, never amber. */
.ad-cr-reviewbox { margin-top: var(--s-2); display: grid; gap: 8px; }
.ad-cr-tier { border: 1px solid; border-radius: 8px; padding: var(--s-2) var(--s-3); }
.ad-cr-tier ul { margin: 4px 0 0; padding-left: 18px; }
.ad-cr-tier li { margin: 3px 0; font-size: var(--t-meta); color: var(--ink); }
.ad-cr-tier q { font-weight: var(--w-medium); }
.ad-cr-tier-h { margin: 0 0 2px; font-weight: var(--w-medium); }
.ad-cr-fix { background: #fdf1f2; border-color: #d9a3aa; } .ad-cr-fix .ad-cr-tier-h { color: #9b2c3a; }
.ad-cr-verify { background: #f5f2fc; border-color: #c4b8e6; } .ad-cr-verify .ad-cr-tier-h { color: #4f3f8f; }
.ad-cr-reg { background: #eef5fb; border-color: #a9c6df; } .ad-cr-reg .ad-cr-tier-h { color: #24557c; }
.ad-cr-note { background: #f7f8f6; border-color: #dfe3da; } .ad-cr-note summary { cursor: pointer; font-size: var(--t-meta); color: var(--muted); }
.ad-cr-verify ul { list-style: none; padding-left: 0; }
.ad-cr-confirm-l { display: flex; gap: 8px; align-items: flex-start; font-size: var(--t-meta); min-height: 32px; }
.ad-cr-confirm-l input { margin-top: 3px; flex: none; width: 18px; height: 18px; }
.ad-cr-why { display: block; margin: 0 0 0 26px; }
.ad-cr-reg .ad-cr-confirm-l { margin-top: 6px; }
.ad-cr-fine { margin: 0; }
.ad-cr-edit { margin-top: 8px; }
.ad-cr-editform { display: grid; gap: 8px; margin-top: 8px; }
.ad-cr-editl { display: grid; gap: 4px; font-size: var(--t-meta); }
.ad-cr-editl textarea { width: 100%; box-sizing: border-box; font: inherit; }
.ad-cr-send:disabled { opacity: .45; cursor: not-allowed; }
/* Closed, the panel is just its label. Phones keep the site's 44 px touch
   target on summary (styles.css), so the label is centred in it and the panel
   adds no padding of its own. */
.ad-cr-note:not([open]) { padding-top: 0; padding-bottom: 0; }
.ad-cr-note summary { display: flex; align-items: center; min-height: 32px; }
.ad-cr-focus { margin: 8px 0; display: grid; gap: 2px; } .ad-cr-focus p { margin: 0; }
