/* ==========================================================================
   Results and scheduled reports (owner: WP3)

   templates/campaign/report.html.twig and its partials (campaign/_report_*,
   _verdict_banner), ai/_summary and report_subscription/*. Builds on the
   shared .ts-verdict, .ts-checks, .ts-metrics, .ts-prob and .ts-ci components
   in components.css; everything here is report-only. Tokens only: translucent
   colours are mixed from tokens with color-mix().
   ========================================================================== */

.ts-report-section { margin-bottom: var(--ts-space-6); }
.ts-report-none { color: var(--ts-text-muted); }
.ts-report-pv { display: block; }
.ts-report-total { display: block; font-size: var(--ts-fs-small); color: var(--ts-text-muted); }

/* Controls: "Show results as", filters, freshness ------------------------------ */
.ts-report-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin: 0 0 var(--ts-space-5); }
.ts-report-controls__engine { display: inline-flex; align-items: center; gap: 10px; }
.ts-report-controls__label { font-size: var(--ts-fs-small); font-weight: 600; color: var(--ts-text-secondary); white-space: nowrap; }
.ts-report-controls__count { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; margin-left: 2px; border-radius: var(--ts-radius-pill); background: var(--ts-blue-900); color: var(--ts-white); font-size: 11px; font-weight: 600; }
.ts-report-controls__updated { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; margin: 0 0 0 auto; font-size: var(--ts-fs-small); line-height: var(--ts-lh-small); color: var(--ts-text-muted); }
.ts-report-controls__updated > .bi { font-size: 14px; color: var(--ts-slate-400); }
.ts-report-controls__updated time { color: var(--ts-text-secondary); font-weight: 500; }
.ts-report-filters .offcanvas-title { font-size: var(--ts-fs-section); line-height: var(--ts-lh-section); font-weight: 600; letter-spacing: var(--ts-ls-section); }

@media (min-width: 768px) {
  .ts-report-filters .offcanvas-body { flex-wrap: wrap; gap: 8px; }
  .ts-report-filters__foot { display: none; }
}

/* Phones: the filters live in a bottom sheet, each group shown open */
@media (max-width: 767.98px) {
  .ts-report-controls { gap: 10px 12px; }
  .ts-report-controls__engine { flex: 1 1 auto; }
  .ts-report-controls__engine .ts-segmented { flex: 1 1 auto; }
  .ts-report-controls__engine .ts-segmented > label { flex: 1 1 0; justify-content: center; }
  .ts-report-controls__label { display: none; }
  .ts-report-controls__updated { width: 100%; margin-left: 0; }
  .ts-report-filters { --bs-offcanvas-height: auto; max-height: 88dvh; border-top-left-radius: var(--ts-radius-lg); border-top-right-radius: var(--ts-radius-lg); }
  .ts-report-filters .offcanvas-header { padding: 20px 20px 8px; }
  .ts-report-filters .offcanvas-body { display: flex; flex-direction: column; gap: 20px; padding: 8px 20px 20px; }
  .ts-report-filters .ts-filter-menu { display: block; }
  .ts-report-filters .ts-filter-menu__toggle { display: none; }
  .ts-report-filters .ts-filter-menu__menu { position: static; display: block; float: none; min-width: 0; margin: 0; padding: 0; border: 0; box-shadow: none; transform: none; }
  .ts-report-filters fieldset { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 16px; }
  .ts-report-filters legend { float: none; grid-column: 1 / -1; margin-bottom: 8px; font-size: var(--ts-fs-body); font-weight: 600; color: var(--ts-text); }
  .ts-report-filters .form-check { display: flex; align-items: center; gap: 10px; min-height: 40px; margin: 0; padding-left: 0; }
  .ts-report-filters .form-check-input { float: none; margin: 0; }
  .ts-report-filters__foot { padding: 12px 20px 20px; border-top: 1px solid var(--ts-border-subtle); }
}

/* Active filters as removable chips */
.ts-report-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: calc(-1 * var(--ts-space-2)) 0 var(--ts-space-5); }
.ts-report-chips__label { font-size: var(--ts-fs-small); font-weight: 600; color: var(--ts-text-secondary); }
.ts-report-chips__clear { display: inline-flex; align-items: center; min-height: 24px; margin-left: 4px; font-size: var(--ts-fs-small); font-weight: 600; color: var(--ts-text); text-decoration: underline; text-underline-offset: 3px; }
.ts-report-chips__clear:hover { color: var(--ts-link-hover); }

/* Verdict banner ----------------------------------------------------------------- */
.ts-report-verdict { margin-bottom: var(--ts-space-6); }
.ts-report-verdict__body { min-width: 0; align-self: center; }
.ts-report-verdict .ts-verdict__kicker { gap: 8px 16px; }
.ts-report-verdict__guards { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 0; padding: 0; list-style: none; }
.ts-report-verdict__guards li { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.ts-report-verdict__guards .bi { font-size: 13px; }
.ts-report-verdict__guards .is-met .bi { color: var(--ts-green-500); }
.ts-report-verdict__guards .is-waiting { color: var(--ts-text-inverse-3); }
.ts-report-verdict .ts-verdict__title { overflow-wrap: anywhere; }
.ts-report-verdict .ts-verdict__text + .ts-verdict__text { margin-top: 10px; }
.ts-report-verdict .ts-verdict__muted { max-width: 62ch; }
.ts-report-verdict .ts-verdict__figure { min-width: 0; }
.ts-report-verdict .ts-verdict__caption { display: block; }
.ts-report-verdict__uplift--flat .bi { color: var(--ts-text-inverse-3); }
.ts-report-verdict__uplift--down .bi { color: var(--ts-red-300); }
.ts-report-verdict__prob { margin-top: 10px; }
.ts-report-verdict__p { display: flex; align-items: baseline; gap: 10px; margin-top: 10px; }
.ts-report-verdict__p span { font-size: var(--ts-fs-small); color: var(--ts-text-inverse-3); font-weight: 500; }
.ts-report-verdict__p strong { font-family: var(--ts-font-figures); font-size: 24px; line-height: 30px; color: var(--ts-white); }

/* Visitors so far, and the split on a data problem */
.ts-report-verdict__arms { display: grid; gap: 0; margin: 6px 0 4px; }
.ts-report-verdict__arms > div { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--ts-border-inverse); }
.ts-report-verdict__arms > div:last-child { border-bottom: 0; }
.ts-report-verdict__arms dt { min-width: 0; font-size: var(--ts-fs-small); font-weight: 500; color: var(--ts-text-inverse-2); }
.ts-report-verdict__arms dd { margin: 0; font-family: var(--ts-font-figures); font-size: 20px; line-height: 26px; font-weight: 600; color: var(--ts-white); white-space: nowrap; }
.ts-report-verdict__arms dd span { margin-left: 4px; font-family: var(--ts-font); font-size: 12px; font-weight: 500; color: var(--ts-text-inverse-3); }
.ts-report-split { display: grid; gap: 8px; margin: 8px 0 6px; }
.ts-report-split__row { display: grid; grid-template-columns: 56px minmax(0, 1fr); align-items: center; gap: 10px; }
.ts-report-split__label { font-size: 12px; font-weight: 500; color: var(--ts-text-inverse-3); }
.ts-report-split__bar { display: flex; gap: 2px; height: 10px; border-radius: var(--ts-radius-pill); overflow: hidden; background: color-mix(in srgb, var(--ts-white) 14%, transparent); }
.ts-report-split__seg { width: var(--_v); background: var(--_c); }
@media (forced-colors: active) {
  .ts-report-split__seg { forced-color-adjust: none; background: CanvasText; }
  .ts-report-split__seg + .ts-report-split__seg { background: Highlight; }
}
.ts-verdict--alert.ts-report-verdict .ts-verdict__figure { background: color-mix(in srgb, var(--ts-blue-950) 40%, transparent); border-color: color-mix(in srgb, var(--ts-white) 16%, transparent); }

@media (max-width: 575.98px) {
  .ts-report-verdict { padding: 20px 18px; gap: 18px; border-radius: var(--ts-radius-lg); }
  .ts-report-verdict .ts-verdict__title { font-size: 24px; line-height: 30px; letter-spacing: -0.6px; }
  .ts-report-verdict .ts-verdict__text { font-size: var(--ts-fs-body); line-height: 21px; }
  .ts-report-verdict .ts-verdict__figure { padding: 18px 16px; }
  .ts-report-verdict .ts-verdict__uplift { font-size: 44px; line-height: 48px; }
}

/* AI explanation: secondary to the verdict ------------------------------------ */
.ts-report-ai { background: var(--ts-surface-sunken); box-shadow: none; }
.ts-report-ai .ts-card-head { border-bottom: 0; padding-bottom: 4px; }
.ts-report-ai .ts-card-head h2 { font-size: var(--ts-fs-body); line-height: var(--ts-lh-body); }
.ts-report-ai .ts-card-head h2 > .bi { font-size: 15px; color: var(--ts-slate-500); }
.ts-report-ai__form { margin: 0 0 0 auto; }
.ts-report-ai__body { padding: 0 24px 18px; max-width: 86ch; color: var(--ts-text-secondary); }
.ts-report-ai__body p { margin: 0 0 6px; }
.ts-report-ai__headline { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; color: var(--ts-text); font-weight: 600; }
.ts-report-ai__list { margin: 8px 0; padding: 0; list-style: none; font-size: var(--ts-fs-small); line-height: var(--ts-lh-small); }
.ts-report-ai__list li { display: flex; gap: 8px; margin-top: 4px; }
.ts-report-ai__list .bi { margin-top: 2px; color: var(--ts-slate-500); }
.ts-report-ai__list--warn .bi { color: var(--ts-amber-600); }
.ts-report-ai__source { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; margin: 10px 0 0 !important; font-size: var(--ts-fs-micro); line-height: var(--ts-lh-micro); color: var(--ts-text-muted); }
.ts-report-ai__stale { color: var(--ts-amber-700); }
.ts-report-ai__empty { margin: 0; padding: 0 24px 18px; font-size: var(--ts-fs-small); color: var(--ts-text-secondary); }
@media (max-width: 575.98px) {
  .ts-report-ai__body, .ts-report-ai__empty { padding-left: 16px; padding-right: 16px; }
}

/* Can we trust it? ------------------------------------------------------------- */
.ts-report-checks { overflow: hidden; }
.ts-report-checks .ts-check--na > .bi { color: var(--ts-slate-400); }
.ts-report-checks .ts-check--fail { background: var(--ts-red-50); }
.ts-report-checks .ts-card-head__note { margin-left: auto; }
/* All passed: one line that opens */
.ts-report-checks__summary { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 12px; padding: 16px 24px; list-style: none; }
.ts-report-checks__summary::-webkit-details-marker { display: none; }
.ts-report-checks__summary > .bi { font-size: 20px; line-height: 20px; color: var(--ts-green-600); }
.ts-report-checks__title { font-size: var(--ts-fs-card); line-height: var(--ts-lh-card); font-weight: 600; letter-spacing: var(--ts-ls-card); }
.ts-report-checks__note { font-size: var(--ts-fs-small); color: var(--ts-text-secondary); }
.ts-report-checks__toggle { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; font-size: var(--ts-fs-small); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.ts-report-checks__toggle .bi { font-size: 12px; transition: transform var(--ts-dur-2) var(--ts-ease); }
.ts-report-checks__summary:hover .ts-report-checks__toggle { color: var(--ts-link-hover); }
.ts-report-checks__more { padding: 6px 16px 12px; border-top: 1px solid var(--ts-border-subtle); }
.ts-report-checks__more .bi { font-size: 12px; transition: transform var(--ts-dur-2) var(--ts-ease); }
.ts-report-checks__more [aria-expanded="true"] .bi { transform: rotate(180deg); }
@media (min-width: 768px) {
  .ts-report-checks__passed.collapse:not(.show), .ts-report-checks__passed.collapsing { display: grid; height: auto; transition: none; }
}
.ts-report-checks__hide, details[open] .ts-report-checks__show { display: none; }
details[open] .ts-report-checks__hide { display: inline; }
details[open] .ts-report-checks__toggle .bi { transform: rotate(180deg); }
details[open] > .ts-report-checks__list { border-top: 1px solid var(--ts-border-subtle); }

/* Goal strip (two-arm tests) ---------------------------------------------------- */
.ts-report-goals .ts-metric { padding-left: 20px; padding-right: 20px; }
.ts-report-goals .ts-metric__delta .ts-delta { font-size: inherit; letter-spacing: inherit; }
.ts-report-goal__none { font-size: 18px; line-height: 32px; font-weight: 600; letter-spacing: 0; color: var(--ts-text-muted); }
.ts-report-goal__p { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-size: var(--ts-fs-small); color: var(--ts-text-secondary); }
.ts-report-goal__p strong { font-family: var(--ts-font-figures); color: var(--ts-text); }
.ts-report-goal__icon--ok { color: var(--ts-green-600); }
.ts-report-goal__icon--warn { color: var(--ts-amber-600); }
@media (min-width: 1200px) {
  .ts-report-goals--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ts-report-goals--cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ts-report-goals--cols-4 .ts-metric:nth-child(4n+1) { border-left: 0; }
  .ts-report-goals--cols-4 .ts-metric:nth-child(n+5) { border-top: 1px solid var(--ts-border-subtle); }
}
@media (min-width: 768px) and (max-width: 1199.98px) {
  .ts-report-goals .ts-metric:nth-child(2n+1) { border-left: 0; }
}
@media (max-width: 767.98px) {
  .ts-report-goals-wrap { display: none; }
}

/* Results by goal ---------------------------------------------------------------- */
.ts-report-results { overflow: hidden; }
.ts-results { table-layout: fixed; }
.ts-results > thead > tr > th:nth-child(1) { width: 22%; }
.ts-results > thead > tr > th:nth-child(2) { width: 9%; }
.ts-results > thead > tr > th:nth-child(3) { width: 11%; }
.ts-results > thead > tr > th:nth-child(4) { width: 11%; }
.ts-results > thead > tr > th:nth-child(5) { width: 9%; }
.ts-results > thead > tr > th:nth-child(7) { width: 12%; }
.ts-results th[scope="row"] { font-weight: 500; color: var(--ts-text); }
.ts-results__name .ts-var { max-width: 100%; }
.ts-results__group > th, .ts-results__group > td { background: var(--ts-white); padding-top: 22px !important; padding-bottom: 8px !important; border-bottom-color: var(--ts-border-subtle); vertical-align: bottom; }
.ts-results__group > th { font-size: var(--ts-fs-body); font-weight: 600; color: var(--ts-text); }
.ts-results__goal-name { margin-right: 8px; }
.ts-results__goal-note { margin-left: 8px; font-size: var(--ts-fs-micro); font-weight: 500; color: var(--ts-text-muted); }
.ts-results__ticks { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); font-family: var(--ts-font-figures); font-size: var(--ts-fs-micro); line-height: var(--ts-lh-micro); font-weight: 500; color: var(--ts-text-muted); }
.ts-results__ticks > :first-child { text-align: left; }
.ts-results__ticks > :last-child { text-align: right; }
.ts-results__range-head .ts-results__ticks { margin-top: 4px; }
.ts-results tbody tr:not(.ts-results__group):hover > * { background: var(--ts-hover-row); }
.ts-results__baseline { color: var(--ts-text-muted); }
.ts-results__nodata { color: var(--ts-text-muted); font-style: italic; }
.ts-results__range .ts-ci { min-width: 0; }
.ts-results__range-text, .ts-results__ticks--cell { display: none; }
.ts-results__row--focus .ts-results__chance { font-weight: 600; }
.ts-results__holm { margin-left: 4px; font-family: var(--ts-font); font-size: var(--ts-fs-micro); color: var(--ts-text-muted); }
.ts-results__caption { caption-side: top; padding: 18px 24px 8px; font-size: var(--ts-fs-body); font-weight: 600; color: var(--ts-text); }
.ts-results__goal--secondary.collapse:not(.show) { display: none; }
@media (min-width: 768px) {
  .ts-results__goal--secondary.collapse:not(.show), .ts-results__goal--secondary.collapsing { display: table-row-group; height: auto; transition: none; }
}
.ts-report-toggle__hide, [aria-expanded="true"] > .ts-report-toggle__show { display: none; }
[aria-expanded="true"] > .ts-report-toggle__hide { display: inline; }
.ts-results__more { padding: 0 16px 16px; }

.ts-report-results__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 12px 24px; }
.ts-report-results__foot p { margin: 0; max-width: 80ch; }
.ts-report-results__details-toggle { margin-left: auto; }
.ts-report-results__details-toggle .bi { font-size: 12px; transition: transform var(--ts-dur-2) var(--ts-ease); }
.ts-report-results__details-toggle[aria-expanded="true"] .bi { transform: rotate(180deg); }
.ts-report-results .card-footer:not(:last-child) { border-bottom: 0; }

/* Statistical details */
.ts-report-details { padding: 4px 0 8px; background: var(--ts-surface-sunken); border-top: 1px solid var(--ts-border-subtle); }
.ts-report-details__title { margin: 16px 24px 8px; font-size: var(--ts-fs-body); line-height: var(--ts-lh-body); font-weight: 600; letter-spacing: 0; }
.ts-report-details__facts { display: grid; gap: 4px; margin: 0 24px 12px; font-size: var(--ts-fs-small); line-height: var(--ts-lh-small); color: var(--ts-text-secondary); }
.ts-report-details__facts > div { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 12px; }
.ts-report-details__facts dt { font-weight: 600; color: var(--ts-text); }
.ts-report-details__facts dd { margin: 0; }
.ts-results--details { font-size: var(--ts-fs-small); }
.ts-results--details > thead > tr > th { width: auto !important; background: transparent; }
.ts-results--details > :not(caption) > * > * { padding-top: 10px; padding-bottom: 10px; background: transparent !important; }

/* MVT factor tables and personalisation experiences */
.ts-report-mvt__best { padding: 16px 24px 4px; }
.ts-report-mvt__lead { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin: 0 0 8px; font-size: 15px; }
.ts-report-mvt__label { font-size: var(--ts-fs-small); font-weight: 600; color: var(--ts-text-secondary); }
.ts-report-mvt__chance { font-size: var(--ts-fs-small); color: var(--ts-text-secondary); }
.ts-report-mvt__note { display: flex; gap: 8px; margin: 0 0 8px; padding: 10px 12px; border-radius: var(--ts-radius-md); background: var(--ts-warning-bg); font-size: var(--ts-fs-small); }
.ts-report-mvt__note .bi { color: var(--ts-warning-icon); margin-top: 1px; }
.ts-results--mvt > thead > tr > th:nth-child(1) { width: 26%; }
.ts-results--mvt > thead > tr > th:nth-child(2), .ts-results--mvt > thead > tr > th:nth-child(3) { width: 12%; }
.ts-results--mvt > thead > tr > th:nth-child(4) { width: 11%; }
.ts-results--mvt > thead > tr > th:nth-child(5) { width: 27%; }
.ts-results--mvt > thead > tr > th:nth-child(6) { width: 12%; }
.ts-results--mvt + .ts-results--mvt { border-top: 1px solid var(--ts-border); }
.ts-report-note { display: flex; gap: 8px; align-items: flex-start; margin: 0 0 var(--ts-space-5); padding: 12px 16px; border-radius: var(--ts-radius-md); background: var(--ts-info-bg); color: var(--ts-info-fg); font-size: var(--ts-fs-small); }
.ts-report-note .bi { color: var(--ts-info-icon); margin-top: 1px; }
.ts-report-experience__tag { margin-left: auto; }
.ts-report-experience__headline { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px 24px; padding: 16px 24px; border-bottom: 1px solid var(--ts-border-subtle); }
.ts-report-experience__visitors { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 0; font-size: var(--ts-fs-small); color: var(--ts-text-secondary); }
.ts-results--experience > thead > tr > th { width: auto !important; }
.ts-results--experience .ts-results__name .ts-tag { margin-left: 6px; }
.ts-results--experience > thead > tr > th:first-child { width: 40% !important; }

/* Phones: each variation row becomes a card ------------------------------------ */
@media (max-width: 767.98px) {
  .ts-results, .ts-results > tbody, .ts-results > tbody > tr, .ts-results > tbody > tr > th, .ts-results > tbody > tr > td { display: block; width: auto; }
  .ts-results > thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
  .ts-results > tbody > tr > * { padding: 0 !important; border: 0; background: transparent !important; }
  .ts-results__group { padding: 18px 16px 10px; }
  .ts-results__group > td { display: none !important; }
  .ts-results__row { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0 16px 10px; padding: 14px; border: 1px solid var(--ts-border-subtle); border-radius: var(--ts-radius-md); background: var(--ts-white); }
  .ts-results__row--control { background: var(--ts-surface-sunken); }
  .ts-results__row > .ts-results__name { grid-column: 1 / -1; order: 0; font-weight: 600; }
  .ts-results__row > td { min-width: 0; order: 3; text-align: left !important; white-space: normal; font-family: var(--ts-font-figures); font-weight: 500; }
  .ts-results__row > td[data-label]::before { content: attr(data-label); display: block; margin-bottom: 2px; font-family: var(--ts-font); font-size: var(--ts-fs-micro); line-height: var(--ts-lh-micro); font-weight: 500; color: var(--ts-text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .ts-results__row > .ts-results__chance { order: 4; }
  .ts-results__row > .ts-results__range { grid-column: 1 / -1; order: 5; }
  .ts-results__row > .ts-results__na { display: none !important; }
  .ts-results__row > .ts-results__nodata { grid-column: 1 / -1; order: 5; font-family: var(--ts-font); }
  .ts-results__range .ts-ci { margin: 8px 0 4px; }
  .ts-results__range-text { display: block; font-weight: 600; }
  .ts-results__ticks--cell { display: grid; }
  .ts-results__caption { display: block; padding: 16px 16px 4px; }
  .ts-results--details .ts-results__row { background: var(--ts-white); }
  .ts-results--details .ts-results__goal-cell { grid-column: 1 / -1; order: 1; font-family: var(--ts-font); }
  .ts-report-details__title, .ts-report-details__facts { margin-left: 16px; margin-right: 16px; }
  .ts-report-details__facts > div { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .ts-report-results__foot { padding: 12px 16px; }
  .ts-report-mvt__best { padding: 14px 16px 4px; }
  .ts-report-experience__headline { padding: 14px 16px; }
}

/* Schedule report form (modal and Scheduled reports page) ---------------------------- */
.ts-report-schedule .modal-dialog { max-width: 560px; }
.ts-report-schedule__lede { margin: 0 0 16px; color: var(--ts-text-secondary); }
.ts-sub-form { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 16px; }
.ts-sub-form .form-label { margin-bottom: 6px; }
.ts-sub-form__field { min-width: 0; }
.ts-sub-form__field--wide, .ts-sub-form__note, .ts-sub-form__actions { grid-column: 1 / -1; }
.ts-sub-form__note { display: flex; align-items: flex-start; gap: 8px; margin: 0; padding: 10px 12px; border-radius: var(--ts-radius-md); background: var(--ts-surface-muted); font-size: var(--ts-fs-small); line-height: var(--ts-lh-small); color: var(--ts-text); }
.ts-sub-form__note .bi { margin-top: 1px; color: var(--ts-slate-500); }
.ts-sub-form__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
@media (max-width: 575.98px) {
  .ts-sub-form { grid-template-columns: minmax(0, 1fr); }
  .ts-sub-form__actions > .btn { flex: 1 1 auto; justify-content: center; }
}

/* Scheduled reports page --------------------------------------------------------- */
.ts-subs { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--ts-space-6); align-items: start; }
@media (min-width: 1200px) {
  .ts-subs { grid-template-columns: minmax(0, 1fr) 360px; }
}
.ts-subs__new .ts-sub-form { grid-template-columns: minmax(0, 1fr); }
.ts-subs__list { overflow: hidden; }
.ts-subs__table > thead > tr > th:nth-child(1) { width: 42%; }
.ts-subs__report { font-weight: 400 !important; }
.ts-subs__name { display: block; font-weight: 600; color: var(--ts-text); overflow-wrap: anywhere; }
.ts-subs__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; margin-top: 4px; font-size: var(--ts-fs-small); color: var(--ts-text-secondary); }
.ts-subs__target > span { display: inline-flex; align-items: center; gap: 8px; }
.ts-subs__target .bi { color: var(--ts-slate-500); }
.ts-subs__sent { color: var(--ts-text-secondary); white-space: nowrap; }
.ts-subs__actions { text-align: right; white-space: nowrap; }
@media (max-width: 767.98px) {
  .ts-subs__table, .ts-subs__table > tbody, .ts-subs__table > tbody > tr, .ts-subs__table > tbody > tr > * { display: block; width: auto; }
  .ts-subs__table > thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
  .ts-subs__table > tbody > tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 12px; padding: 14px 16px; border-top: 1px solid var(--ts-border-subtle); }
  .ts-subs__table > tbody > tr:first-child { border-top: 0; }
  .ts-subs__table > tbody > tr > * { padding: 0 !important; border: 0; }
  .ts-subs__table .ts-subs__report, .ts-subs__table .ts-subs__target, .ts-subs__table .ts-subs__sent { grid-column: 1; }
  .ts-subs__table .ts-subs__actions { grid-column: 2; grid-row: 1; align-self: start; }
  .ts-subs__table td[data-label]::before { content: attr(data-label) ": "; color: var(--ts-text-muted); font-size: var(--ts-fs-micro); }
  .ts-subs__table .ts-subs__sent { white-space: normal; font-size: var(--ts-fs-small); }
  .ts-subs__table .ts-subs__target > span { display: inline; }
  .ts-subs__table .ts-subs__target .bi { margin-right: 6px; }
}

/* Card head notes sit under the title on phones, left aligned */
@media (max-width: 575.98px) {
  .ts-report-section .ts-card-head__note { flex-basis: 100%; margin-left: 0 !important; }
}

/* Page header actions on phones: Schedule report, CSV and More share one row */
@media (max-width: 575.98px) {
  .ts-page--report .ts-page-actions > .ts-more { flex: none; }
  .ts-page--report .ts-page-actions > .ts-more > .btn { width: 40px; }
}

/* Uplift over time (campaign/_report_chart.html.twig). Lines take the variation colours; text stays in ink. */
.ts-chart__body { padding: 16px 24px; }
@media (max-width: 575.98px) { .ts-chart__body { padding: 12px 16px; } }
.ts-chart__legend { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; margin-bottom: 8px; font-size: var(--ts-fs-small); }
.ts-chart__legend-band { color: var(--ts-text-secondary); }
.ts-chart__scroll { overflow-x: auto; }
.ts-chart__svg { display: block; width: 100%; min-width: 600px; height: auto; overflow: visible; }
.ts-chart__grid { stroke: var(--ts-border-subtle); stroke-width: 1; }
.ts-chart__grid--zero { stroke: var(--ts-text-muted); stroke-width: 1.5; }
.ts-chart__tick { fill: var(--ts-text-muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.ts-chart__label { fill: var(--ts-text-strong); font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; }
.ts-chart--0 { --_c: var(--ts-var-0); } .ts-chart--1 { --_c: var(--ts-var-1); } .ts-chart--2 { --_c: var(--ts-var-2); } .ts-chart--3 { --_c: var(--ts-var-3); }
.ts-chart--4 { --_c: var(--ts-var-4); } .ts-chart--5 { --_c: var(--ts-var-5); } .ts-chart--6 { --_c: var(--ts-var-6); } .ts-chart--7 { --_c: var(--ts-var-7); }
.ts-chart__line { fill: none; stroke: var(--_c); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.ts-chart__band { fill: var(--_c); fill-opacity: .12; stroke: none; }
.ts-chart__end { fill: var(--_c); stroke: var(--ts-surface); stroke-width: 2; }
.ts-chart__hit { fill: transparent; cursor: default; }
.ts-chart__hit:hover { fill: var(--_c); fill-opacity: .25; }
.ts-chart__note { margin: 8px 0 0; font-size: var(--ts-fs-small); color: var(--ts-text-secondary); }
.ts-chart__table { margin-top: 8px; font-size: var(--ts-fs-small); }
.ts-chart__table summary { cursor: pointer; color: var(--ts-text-secondary); }
.ts-chart__range { color: var(--ts-text-muted); }

.ts-report-experience__detail { margin: 0; padding: 0 24px 12px; color: var(--ts-text-secondary); }
.ts-report-experience__detail--problem { color: var(--ts-text-strong); }
.ts-report-experience__detail--problem .bi { color: var(--ts-danger-fg); margin-right: 6px; }

/* Planned sample size (campaign/_report_plan.html.twig) */
.ts-report-plan__stats { border: 0; border-top: 1px solid var(--ts-border-subtle); border-radius: 0; box-shadow: none; }
.ts-report-plan__bar { padding: 0 24px; }
.ts-report-plan__note { margin: 12px 24px 16px; color: var(--ts-text-secondary); }
.ts-report-plan__body { padding: 0 0 8px; }
.ts-report-plan__form { padding: 0 24px 16px; }
@media (max-width: 575.98px) {
  .ts-report-plan__bar { padding: 0 16px; }
  .ts-report-plan__note { margin: 12px 16px 16px; }
  .ts-report-plan__form { padding: 0 16px 16px; }
}

/* Overview or Breakdown (campaign/_report_views.html.twig) */
.ts-report-views { margin: 0 0 var(--ts-space-4); }

/* Dates menu (campaign/_report_controls.html.twig) */
.ts-date-menu { display: inline-block; }
.ts-date-menu__toggle strong { font-weight: 600; }
.ts-date-menu__toggle .bi-chevron-down { font-size: 12px; }
.ts-date-menu__menu { width: 280px; max-width: calc(100vw - 32px); padding: 12px; }
.ts-date-menu__menu legend { font-size: var(--ts-fs-micro); font-weight: 600; color: var(--ts-text-muted); margin-bottom: 8px; }
.ts-date-menu__fields { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 8px 12px; }
.ts-date-menu__fields .form-label { margin: 0; font-size: var(--ts-fs-small); font-weight: 600; color: var(--ts-text-secondary); }
.ts-date-menu__hint { margin: 8px 0 0; font-size: var(--ts-fs-small); line-height: var(--ts-lh-small); color: var(--ts-text-muted); }
.ts-date-menu__reset { display: inline-flex; align-items: center; min-height: 24px; margin-top: 8px; font-size: var(--ts-fs-small); font-weight: 600; color: var(--ts-link); }

/* Download menu (campaign/_report_downloads.html.twig) */
.ts-report-downloads .bi-chevron-down { font-size: 12px; }
.ts-report-downloads .dropdown-item { display: flex; flex-direction: column; gap: 2px; white-space: normal; max-width: 320px; }
.ts-report-downloads__name { font-weight: 600; }
.ts-report-downloads__note { font-size: var(--ts-fs-small); line-height: var(--ts-lh-small); color: var(--ts-text-muted); }

/* Breakdown by segment (campaign/report_breakdown.html.twig and its partials) */
.ts-breakdown-pick { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin: 0 0 var(--ts-space-5); }
.ts-breakdown-pick__by, .ts-breakdown-pick__goal { display: inline-flex; align-items: center; gap: 10px; min-width: 0; }
.ts-breakdown-pick__by .ts-segmented { flex-wrap: wrap; }
.ts-breakdown-pick__goal .form-select { width: auto; max-width: 100%; }
.ts-report-small { background: var(--ts-amber-100); color: var(--ts-amber-700); margin-left: 6px; }
.ts-breakdown__segment.is-small .ts-results__row { color: var(--ts-text-muted); }
@media (max-width: 767.98px) {
  .ts-breakdown-pick__by, .ts-breakdown-pick__goal { width: 100%; }
  .ts-breakdown-pick__goal .form-select { flex: 1 1 auto; width: 100%; }
}
