.campaign-page { display: grid; gap: 20px; padding-bottom: 28px; min-width: 0; }
.campaign-page > *, .campaign-detail-columns > * { min-width: 0; }
.campaign-page .campaign-heading { align-items: center; gap: 20px; margin-bottom: 0; }
.campaign-heading-actions { display: flex; flex-wrap: wrap; justify-content: end; gap: 10px; flex-shrink: 0; }
.campaign-page h1 { font-size: clamp(28px, 3vw, 38px); line-height: 1.15; }
.campaign-eyebrow { color: var(--gold); font-size: 10px; letter-spacing: .12em; font-weight: 600; margin: 0 0 9px; }
.campaign-heading .campaign-eyebrow { color: var(--gold); font-size: 10px; }
.campaign-page [data-slot="card"] { box-shadow: none; border: 1px solid var(--border); }
.campaign-page [data-slot="card-title"], .campaign-page h3 { font-size: 15px; font-weight: 600; }
.campaign-page h2 { font-size: 20px; line-height: 1.35; margin: 0; }
.campaign-page h3 { margin: 0 0 8px; }
.campaign-page [data-slot="card-description"], .campaign-muted { color: var(--muted); font-size: 12px; line-height: 1.6; margin: 0; }
.campaign-filters, .campaign-table-tools { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; }
.campaign-filters { border-bottom: 1px solid var(--border); padding-bottom: 20px; }
.campaign-page label { display: grid; gap: 6px; font-size: 12px; color: var(--muted); }
.campaign-page input, .campaign-page select, .campaign-page textarea { min-height: 42px; min-width: 0; border: 1px solid var(--border); border-radius: 8px; background: var(--surface); color: var(--text); padding: 9px 11px; font: inherit; font-size: 13px; }
.campaign-page input[type="date"] { width: 144px; }
.campaign-page input[readonly] { color: var(--muted); background: var(--surface-2); }
.campaign-page textarea { resize: vertical; }
.campaign-page label small { font-size: 11px; line-height: 1.5; }
.campaign-page button[data-slot="button"] { min-height: 42px; }
.campaign-section-heading { display: flex; justify-content: space-between; gap: 20px; align-items: center; }
.campaign-section-heading > div { min-width: 0; max-width: 100%; }
.campaign-section-heading h2, .campaign-section-heading [data-slot="card-title"], .campaign-section-heading [data-slot="card-description"] { overflow-wrap: anywhere; }
.campaign-section-heading [data-slot="card-description"] { margin-top: 5px; }
.campaign-table-tools input { width: 205px; }
.campaign-table-tools select { max-width: 230px; }
.campaign-table-scroll { overflow-x: auto; scrollbar-width: thin; margin-top: 6px; }
.campaign-table { border-collapse: collapse; width: 100%; font-size: 12px; font-variant-numeric: tabular-nums; }
.campaign-table td { color: var(--text); }
.campaign-table th, .campaign-table td { text-align: right; border-bottom: 1px solid var(--border); padding: 14px 16px; white-space: nowrap; }
.campaign-table thead th { color: var(--muted); font-size: 11px; font-weight: 500; }
.campaign-table th:first-child { text-align: left; padding-left: 8px; }
.campaign-table td:last-child, .campaign-table th:last-child { padding-right: 8px; }
.campaign-table tbody th { font-weight: 500; min-width: 220px; max-width: 320px; white-space: normal; }
.campaign-table tbody th > button { display: flex; gap: 7px; align-items: center; text-align: left; min-height: 30px; color: var(--text); font-weight: 600; cursor: pointer; }
.campaign-table tbody th > button svg { width: 14px; height: 14px; flex-shrink: 0; color: var(--muted); }
.campaign-table small { display: block; font-size: 11px; color: var(--muted); font-weight: 400; line-height: 1.5; margin-top: 4px; }
.campaign-table .is-selected { background: var(--surface-2); }
.campaign-table .is-selected th { box-shadow: inset 2px 0 var(--gold); }
.campaign-footnote { margin-top: 16px; max-width: 110ch; }
.campaign-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.campaign-meta { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr) auto; gap: 20px; padding-bottom: 22px; border-bottom: 1px solid var(--border); }
.campaign-meta p { font-size: 12px; line-height: 1.6; color: var(--muted); margin: 0; overflow-wrap: anywhere; }
.campaign-meta strong { display: block; color: var(--text); font-weight: 500; margin-bottom: 4px; }
.campaign-meta a { display: flex; align-items: center; gap: 5px; color: var(--gold); font-size: 12px; align-self: center; }
.campaign-meta a svg { width: 14px; height: 14px; }
.campaign-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; gap: 0; padding: 12px 0; }
.campaign-metrics > div { padding: 16px 12px 16px 0; min-width: 0; }
.campaign-metrics dt { color: var(--muted); font-size: 11px; line-height: 1.5; }
.campaign-metrics dd { margin: 6px 0 0; font-size: 24px; font-weight: 500; line-height: 1.3; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.campaign-detail-columns { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 28px; border-top: 1px solid var(--border); padding: 24px 0; }
.campaign-coupons { margin-top: 12px; }
.campaign-coupons tbody th { min-width: 120px; }
.campaign-coupons th, .campaign-coupons td { padding-left: 9px; padding-right: 9px; }
.campaign-learning { border-left: 1px solid var(--border); padding-left: 28px; }
.campaign-learning p { color: var(--muted); font-size: 13px; line-height: 1.7; margin: 0 0 20px; white-space: pre-wrap; overflow-wrap: anywhere; }
.campaign-closing { border: 1px solid var(--border); border-radius: 8px; background: var(--surface-2); padding: 20px; margin-bottom: 24px; min-width: 0; }
.campaign-closing > .campaign-muted + .campaign-muted { margin-top: 4px; }
.campaign-closing-heading { display: flex; align-items: start; justify-content: space-between; flex-wrap: wrap; gap: 8px 16px; margin-bottom: 8px; }
.campaign-closing-heading h3 { margin: 0; }
.campaign-closing .campaign-closing-retention { color: var(--text); margin-top: 10px; }
.campaign-closing h4 { color: var(--text); font-size: 12px; font-weight: 600; margin: 0 0 8px; }
.campaign-closing-metrics { padding: 6px 0; }
.campaign-closing-metrics dd { font-size: 21px; }
.campaign-closing-coupons, .campaign-closing-sources { border-top: 1px solid var(--border); padding-top: 16px; margin-top: 12px; }
.campaign-closing .campaign-source summary { align-items: start; }
.campaign-closing .campaign-source summary > span { min-width: 0; overflow-wrap: anywhere; }
.campaign-closing .campaign-source summary > [data-slot="badge"] { white-space: normal; text-align: center; flex-shrink: 0; max-width: 45%; height: auto; min-height: 20px; line-height: 1.35; }
.campaign-source-section { border-top: 1px solid var(--border); padding-top: 24px; }
.campaign-source-list { margin-top: 12px; }
.campaign-source { border-bottom: 1px solid var(--border); padding: 14px 0; }
.campaign-source:last-child { border-bottom: 0; padding-bottom: 0; }
.campaign-source summary { display: flex; gap: 14px; align-items: center; justify-content: space-between; cursor: pointer; font-size: 13px; }
.campaign-source summary > span:first-child { min-width: 0; overflow-wrap: anywhere; }
.campaign-source summary > span:first-child::before { content: "+"; color: var(--gold); margin-right: 10px; }
.campaign-source[open] summary > span:first-child::before { content: "−"; }
.campaign-source summary small { display: block; color: var(--muted); font-size: 11px; line-height: 1.5; margin: 5px 0 0 20px; }
.campaign-source-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 20px; margin: 18px 0 0; }
.campaign-source-metrics div { display: flex; justify-content: space-between; gap: 12px; font-size: 12px; }
.campaign-source-metrics dt { color: var(--muted); }
.campaign-source-metrics dd { margin: 0; font-variant-numeric: tabular-nums; }
.campaign-source > p { margin-top: 14px; }
.campaign-coverage { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 28px; }
.campaign-coverage > div > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.campaign-coverage strong { font-size: 12px; font-weight: 500; }
.campaign-coverage p { margin-top: 6px; }
.campaign-pending-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px; margin: 18px 0; }
.campaign-pending-metrics > div { min-width: 0; }
.campaign-pending-metrics dt { color: var(--muted); font-size: 12px; line-height: 1.5; }
.campaign-pending-metrics dd { font-size: 21px; font-variant-numeric: tabular-nums; margin: 5px 0 0; overflow-wrap: anywhere; }
.campaign-pending-counts { padding-bottom: 20px; border-bottom: 1px solid var(--border); }
.campaign-pending-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; margin-top: 22px; }
.campaign-pending-groups > section { min-width: 0; }
.campaign-pending-groups > section + section { border-left: 1px solid var(--border); padding-left: 28px; }
.campaign-pending-groups .campaign-closing-heading [data-slot="badge"] { height: auto; white-space: normal; }
.campaign-commercial-links { border-top: 1px solid var(--border); padding: 22px 0; }
.campaign-commercial-links > summary { cursor: pointer; color: var(--text); font-size: 15px; font-weight: 600; min-height: 24px; line-height: 1.5; }
.campaign-commercial-content { display: grid; gap: 16px; padding-top: 16px; min-width: 0; }
.campaign-link-toolbar { display: flex; align-items: end; flex-wrap: wrap; gap: 12px; }
.campaign-link-toolbar label { flex: 1 1 250px; min-width: 0; }
.campaign-link-toolbar select { width: 100%; }
.campaign-link-forms { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.campaign-link-forms form { display: grid; align-content: start; gap: 14px; min-width: 0; }
.campaign-link-forms form + form { border-left: 1px solid var(--border); padding-left: 28px; }
.campaign-link-forms h3 { margin: 0; }
.campaign-link-forms fieldset { display: grid; gap: 14px; min-width: 0; padding: 0; margin: 0; border: 0; }
.campaign-link-forms input, .campaign-link-forms select { width: 100%; }
.campaign-link-forms button { justify-self: start; }
.campaign-link-notice { padding: 14px; border: 1px solid var(--border); border-radius: 8px; color: var(--text); font-size: 12px; line-height: 1.6; margin: 0; background: var(--surface-2); }
.campaign-commercial-content [role="alert"] { overflow-wrap: anywhere; }
.campaign-tracking { border-top: 1px solid var(--border); padding: 22px 0; }
.campaign-tracking > summary { cursor: pointer; color: var(--text); font-size: 15px; font-weight: 600; min-height: 24px; line-height: 1.5; }
.campaign-tracking-content { display: grid; gap: 16px; padding-top: 16px; min-width: 0; }
.campaign-tracking-content h3 { margin: 0; overflow-wrap: anywhere; }
.campaign-tracking-content form { display: grid; gap: 14px; }
.campaign-tracking-submit { justify-self: start; }
.campaign-tracking-list { list-style: none; display: grid; gap: 20px; padding: 0; margin: 4px 0 0; }
.campaign-tracking-list li { display: grid; gap: 12px; min-width: 0; border-top: 1px solid var(--border); padding-top: 20px; }
.campaign-tracking-list h4 { font-size: 13px; font-weight: 600; margin: 0 0 5px; overflow-wrap: anywhere; }
.campaign-tracking-copy { display: flex; align-items: end; gap: 12px; min-width: 0; }
.campaign-tracking-copy label { flex: 1; min-width: 0; }
.campaign-tracking-copy input { width: 100%; }
.campaign-tracking-coupon { max-width: 420px; }
.campaign-tracking-destination, .campaign-tracking-content [role="alert"] { overflow-wrap: anywhere; }
.campaign-empty { display: grid; justify-items: center; gap: 12px; padding: 36px 12px; text-align: center; color: var(--muted); font-size: 13px; }
.campaign-empty svg { width: 28px; height: 28px; }
.campaign-empty p { margin: 0; }
.campaign-empty-note { color: var(--muted); padding: 20px 0; font-size: 12px; }
.campaign-error { display: flex; justify-content: space-between; align-items: center; gap: 15px; padding: 16px; border: 1px solid var(--danger); border-radius: 8px; color: var(--danger); background: var(--danger-soft); font-size: 13px; }
.campaign-feedback { color: var(--gold); font-size: 13px; margin: 0; }
.campaign-sync-result { padding: 16px; border: 1px solid var(--border); border-radius: 8px; font-size: 13px; }
.campaign-sync-result > p { margin: 0 0 12px; }
.campaign-sync-result ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; list-style: none; padding: 0; margin: 0; }
.campaign-sync-result li { min-width: 0; overflow-wrap: anywhere; }
.campaign-sync-result li > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.campaign-sync-result strong { font-size: 12px; font-weight: 500; }
.campaign-sync-result li > p { margin-top: 6px; }
.campaign-spin { animation: campaign-spin 1s linear infinite; }
@keyframes campaign-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .campaign-spin { animation: none; } }
.campaign-loading { display: grid; gap: 16px; }
.campaign-page :focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
.campaign-dialog { color: var(--text); background: var(--surface); border: 1px solid var(--border-strong); border-radius: 14px; padding: 24px; width: min(660px, calc(100vw - 32px)); max-height: calc(100dvh - 40px); margin: auto; box-shadow: 0 20px 70px #0006; }
.campaign-dialog::backdrop { background: #0009; }
.campaign-dialog form { display: grid; gap: 22px; }
.campaign-dialog h2 { font-size: 20px; margin: 0 0 6px; }
.campaign-form-grid { border: 0; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.campaign-form-grid input, .campaign-form-grid select, .campaign-form-grid textarea { width: 100%; }
.campaign-form-grid .campaign-full { grid-column: 1 / -1; }
.campaign-form-error { color: var(--danger); font-size: 13px; margin: 0; }
.campaign-dialog-footer { display: flex; gap: 10px; justify-content: end; }
@media (max-width: 1200px) { .campaign-section-heading { align-items: start; flex-direction: column; gap: 16px; } .campaign-meta { grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr); } .campaign-meta a { grid-column: 1 / -1; } .campaign-source-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 800px) { .campaign-detail-columns { grid-template-columns: 1fr; gap: 22px; } .campaign-learning { border-left: 0; border-top: 1px solid var(--border); padding: 22px 0 0; } .campaign-coverage { grid-template-columns: 1fr; } .campaign-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 800px) { .campaign-pending-groups, .campaign-link-forms { grid-template-columns: 1fr; gap: 22px; } .campaign-pending-groups > section + section, .campaign-link-forms form + form { border-left: 0; border-top: 1px solid var(--border); padding: 22px 0 0; } }
@media (max-width: 600px) { .campaign-commercial-links input, .campaign-commercial-links select, .campaign-page .campaign-commercial-links button[data-slot="button"], .campaign-commercial-links > summary { min-height: 44px; } .campaign-link-toolbar > button, .campaign-link-forms button { width: 100%; } .campaign-pending-metrics { gap: 14px; } .campaign-pending-metrics dd { font-size: 19px; } }
@media (max-width: 600px) { .campaign-tracking .campaign-form-grid { grid-template-columns: 1fr; } .campaign-tracking input, .campaign-page .campaign-tracking button[data-slot="button"], .campaign-tracking > summary { min-height: 44px; } .campaign-tracking .campaign-section-heading > button, .campaign-tracking-submit { width: 100%; } .campaign-tracking-copy { align-items: stretch; flex-direction: column; gap: 8px; } .campaign-tracking-copy label { flex: auto; } .campaign-tracking-coupon { max-width: none; } }
@media (max-width: 600px) { .campaign-page { gap: 16px; } .campaign-page .campaign-heading { align-items: start; flex-direction: column; } .campaign-heading-actions, .campaign-heading-actions > button { width: 100%; } .campaign-sync-result ul { grid-template-columns: 1fr; } .campaign-filters { gap: 10px; } .campaign-filters label { width: calc(50% - 5px); } .campaign-filters input[type="date"], .campaign-filters select { width: 100%; } .campaign-filters > button { width: 100%; } .campaign-table-tools { width: 100%; gap: 10px; } .campaign-table-tools label { width: 100%; } .campaign-table-tools input, .campaign-table-tools select { width: 100%; max-width: none; } .campaign-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); } .campaign-metrics dd { font-size: 22px; } .campaign-meta { grid-template-columns: 1fr; gap: 14px; } .campaign-actions { width: 100%; } .campaign-actions > button { width: 100%; white-space: normal; } .campaign-source-metrics { grid-template-columns: 1fr; } .campaign-error { align-items: start; flex-direction: column; } .campaign-table th, .campaign-table td { padding: 13px 10px; } .campaign-dialog { padding: 20px 16px; } .campaign-dialog .campaign-section-heading { flex-direction: row; gap: 10px; } .campaign-form-grid { gap: 14px 10px; } .campaign-dialog-footer > button { flex: 1; } }
