/* Three progress compositions. The visual authority remains Harmonized. */
:is(.cp-preview,.ct-product) { --cp-signal:var(--ct-primary); --cp-fill:var(--ct-progress-fill); --cp-soft:var(--ct-primary-soft,#ecfdf5); padding-bottom:40px; }
:is(.cp-preview,.ct-product) [data-tone=danger] { --cp-signal:var(--ct-danger); --cp-fill:var(--ct-progress-danger); --cp-soft:var(--ct-danger-soft,#fef2f2); }
:is(.cp-preview,.ct-product) [data-tone=warning] { --cp-signal:var(--ct-warning); --cp-fill:var(--ct-progress-warning); --cp-soft:var(--ct-warning-soft,#fefce8); }
:is(.cp-preview,.ct-product) [data-tone=neutral] { --cp-signal:var(--ct-muted); --cp-fill:var(--ct-progress-neutral); --cp-soft:var(--ct-subtle); }
:is(.cp-preview,.ct-product) .cp-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
:is(.cp-preview,.ct-product) .cp-muted { color:var(--ct-muted); }
:is(.cp-preview,.ct-product) .cp-warning-text { color:var(--ct-warning); }
:is(.cp-preview,.ct-product) .cp-danger-text { color:var(--ct-danger); }
:is(.cp-preview,.ct-product) .cp-eyebrow { display:block; color:var(--ct-muted); font-size:11px; line-height:16px; font-weight:500; margin-bottom:6px; }
.cp-demo-caption { color:var(--ct-muted); font-size:11px; line-height:17px; margin-bottom:24px; }
.cp-record-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:24px; }
.cp-record-grid,.cp-upload-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; align-items:start; }
.cp-record-grid[data-layout=b],.cp-upload-grid[data-layout=b] { grid-template-columns:minmax(0,1fr) 304px; }
.cp-track-slot { grid-column:1 / -1; }
.cp-record-main,.cp-upload-main { min-width:0; }
.cp-rail-slot { min-width:0; position:sticky; top:24px; }
.cp-record-summary { margin-bottom:20px; }
.cp-record-lines > div { display:flex; align-items:center; gap:16px; padding:16px 24px; border-top:1px dashed var(--ct-border); font-size:12px; }
.cp-record-lines > div > span:first-child { font-variant-numeric:tabular-nums; color:var(--ct-muted); }
.cp-record-lines strong { font-weight:500; }
.cp-record-lines small { margin-left:auto; color:var(--ct-muted); font-size:11px; }
.cp-child-processes > div { justify-content:space-between; flex-wrap:wrap; }
.cp-process-surface { border:1px solid var(--ct-border); border-radius:var(--ct-radius,12px); background:var(--ct-surface); }
.cp-track { padding:20px 24px 0; }
.cp-track[data-compact="true"] { padding-bottom:20px; }
.cp-heading-actions { display:flex; align-items:center; gap:12px; flex-shrink:0; }
.cp-track-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:14px; }
.cp-position { display:block; font-size:12px; line-height:18px; color:var(--ct-muted); font-variant-numeric:tabular-nums; white-space:nowrap; }
.cp-live-status { display:flex; align-items:center; gap:8px; min-width:0; }
.cp-live-status > strong { font-size:16px; line-height:24px; font-weight:600; letter-spacing:-.15px; color:var(--ct-text); }
.cp-status-symbol { display:inline-flex; flex:none; width:18px; height:18px; align-items:center; justify-content:center; color:var(--cp-signal); }
.cp-status-symbol .ct-icon { width:18px; height:18px; }
.cp-explanation { display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; flex:none; color:var(--ct-muted); border-radius:5px; }
.cp-explanation:hover { color:var(--ct-text); background:var(--ct-subtle); }
.cp-explanation .ct-icon { width:15px; height:15px; }
.cp-working-icon { animation:cp-rotate 2.4s linear infinite; }
.cp-measure-copy { display:flex; align-items:baseline; justify-content:space-between; gap:12px; color:var(--ct-muted); font-size:11px; line-height:17px; }
.cp-measure-copy strong { color:var(--ct-text); font-size:11px; font-weight:500; font-variant-numeric:tabular-nums; white-space:nowrap; }
.cp-measure-track,.cp-phase-fill { position:relative; overflow:hidden; height:4px; border-radius:3px; background:var(--ct-subtle); }
.cp-measure-track { margin-top:8px; background:var(--ct-border); }
.cp-measure-track > span,.cp-phase-fill > span { display:block; height:100%; width:100%; transform:scaleX(0); transform-origin:left center; background:var(--cp-fill); border-radius:inherit; transition:transform 450ms cubic-bezier(0,0,.2,1),background-color 180ms ease; }
.cp-indeterminate::after { content:""; position:absolute; inset:0 auto 0 0; width:30%; border-radius:inherit; background:var(--cp-fill); animation:cp-progress-travel 1.8s ease-in-out infinite; }
.cp-track > .cp-measure .cp-measure-track { display:none; }
.cp-phases { list-style:none; margin:0; padding:0; }
.cp-track .cp-phases { display:grid; grid-template-columns:repeat(var(--cp-phase-count),minmax(0,1fr)); gap:12px; margin:24px 0 20px; }
.cp-track .cp-phases li { min-width:0; display:flex; flex-wrap:wrap; align-content:flex-start; column-gap:7px; row-gap:10px; }
.cp-phase-node { display:flex; align-items:center; justify-content:center; flex:none; width:21px; height:21px; border:1px solid var(--ct-border); color:var(--ct-muted); background:var(--ct-surface); border-radius:50%; font-size:10px; line-height:16px; font-weight:500; transition:color 180ms ease,border-color 180ms ease,background-color 180ms ease; }
.cp-phase-node .ct-icon { width:13px; height:13px; }
.cp-phase-text { flex:1; min-width:0; }
.cp-phase-text strong { display:block; color:var(--ct-muted); font-size:11px; line-height:20px; font-weight:400; }
.cp-phase-text > span { display:block; color:var(--ct-muted); font-size:10px; line-height:16px; }
.cp-track .cp-phase-text > span { display:none; }
.cp-track .cp-phase-fill { width:100%; flex:none; background:var(--ct-border); }
.cp-phases [data-phase-state=done] .cp-phase-node { color:var(--ct-primary); background:var(--ct-primary-soft,#ecfdf5); border-color:transparent; }
.cp-phases [data-phase-state=done] .cp-phase-fill > span { background:var(--ct-progress-fill); }
.cp-phases [data-phase-state=done] .cp-phase-text strong { color:var(--ct-text); }
.cp-phases [data-phase-state=current] .cp-phase-node { color:var(--ct-progress-on-fill); background:var(--ct-progress-fill); border-color:var(--ct-progress-fill); }
.cp-phases [data-phase-state=current] .cp-phase-text strong { color:var(--ct-primary); font-weight:600; }
.cp-phases [data-phase-state=failed] .cp-phase-node,.cp-phases [data-phase-state=waiting] .cp-phase-node { color:var(--cp-signal); border-color:var(--cp-signal); background:var(--cp-soft); }
.cp-phases [data-phase-state=failed] .cp-phase-text strong,.cp-phases [data-phase-state=waiting] .cp-phase-text strong { color:var(--cp-signal); font-weight:600; }
.cp-track-footer { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-bottom:18px; font-size:11px; line-height:18px; color:var(--ct-muted); }
.cp-track-footer > span:last-child { display:flex; align-items:center; gap:6px; }
.cp-track-footer strong { font-weight:500; color:var(--ct-text); }
.cp-track-footer .ct-icon { width:12px; height:12px; }
.cp-copy-dot { margin:0 6px; }
.cp-output-gate { display:flex; align-items:center; gap:10px; border-top:1px dashed var(--ct-border); padding:14px 0; }
.cp-gate-icon { display:flex; flex:none; color:var(--ct-muted); }
.cp-gate-icon .ct-icon { width:17px; height:17px; }
.cp-output-gate > div { flex:1; min-width:0; }
.cp-output-gate strong { display:block; font-size:11px; line-height:17px; font-weight:500; }
.cp-output-gate div > span { display:block; color:var(--ct-muted); font-size:10px; line-height:16px; margin-top:2px; }
.cp-gate-tag { color:var(--ct-muted); font-size:10px; line-height:16px; white-space:nowrap; }
.cp-output-gate[data-health=ready] .cp-gate-icon,.cp-output-gate[data-health=ready] .cp-gate-tag { color:var(--ct-primary); }
.cp-output-gate[data-health=blocked] .cp-gate-icon,.cp-output-gate[data-health=blocked] .cp-gate-tag { color:var(--ct-warning); }
.cp-output-gate[data-health=blocked] div > span { color:var(--ct-warning); }
.cp-status-explanation { border-top:1px dashed var(--ct-border); padding:16px 0 18px; font-size:11px; line-height:18px; }
.cp-status-explanation > strong { color:var(--cp-signal); font-weight:600; }
.cp-status-explanation p { margin-top:5px; color:var(--ct-muted); max-width:85ch; }
.cp-next-action { display:flex; align-items:baseline; gap:6px; margin-top:10px; }
.cp-next-action > span { color:var(--ct-muted); }
.cp-next-action > strong { font-weight:500; }
.cp-next-action .ct-icon { width:12px; height:12px; align-self:center; flex:none; }
.cp-rail { padding:20px 20px 0; }
.cp-rail > header { display:flex; justify-content:space-between; align-items:baseline; gap:10px; margin-bottom:14px; }
.cp-rail > header .cp-eyebrow { margin:0; }
.cp-rail .cp-position { font-size:11px; }
.cp-rail .cp-live-status { gap:6px; }
.cp-rail .cp-live-status > strong { font-size:14px; line-height:20px; }
.cp-rail .cp-explanation { margin-left:auto; }
.cp-rail > .cp-measure { margin:12px 0 20px; }
.cp-rail .cp-measure-copy { flex-wrap:wrap; gap:4px 10px; }
.cp-rail .cp-phases { margin:24px 0 14px; }
.cp-rail .cp-batch-summary { grid-template-columns:repeat(3,1fr); }
.cp-rail .cp-phases li,.cp-header-history .cp-phases li { display:flex; gap:12px; position:relative; padding-bottom:20px; }
.cp-rail .cp-phases li::before,.cp-header-history .cp-phases li::before { content:""; position:absolute; left:10px; top:25px; bottom:4px; width:1px; background:var(--ct-border); }
.cp-rail .cp-phases li:last-child::before,.cp-header-history .cp-phases li:last-child::before { display:none; }
.cp-rail .cp-phases [data-phase-state=next] .cp-phase-text > span { display:none; }
.cp-rail-footer { padding:14px 0 18px; border-top:1px dashed var(--ct-border); display:flex; flex-direction:column; gap:4px; font-size:11px; }
.cp-rail-footer strong { font-weight:500; }
.cp-batch-summary { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; padding:24px 0; }
.cp-batch-summary > span { display:flex; flex-direction:column; gap:4px; color:var(--ct-muted); font-size:10px; }
.cp-batch-summary strong { color:var(--ct-text); font-variant-numeric:tabular-nums; font-size:20px; line-height:26px; font-weight:500; }
.cp-batch-summary > .cp-danger-text,.cp-batch-summary > .cp-danger-text strong { color:var(--ct-danger); }
.cp-step-caption { color:var(--ct-muted); font-size:11px; white-space:nowrap; }
.cp-upload-main > .ct-upload,.cp-upload-track { margin-bottom:24px; }
.cp-population-fields { display:grid; grid-template-columns:1fr 1fr; gap:20px; padding:20px 24px 24px; }
.cp-population-fields label > span { display:block; margin-bottom:8px; font-size:12px; font-weight:500; }
.cp-upload-footer { display:flex; align-items:center; justify-content:space-between; gap:16px; border-top:1px dashed var(--ct-border); padding:16px 24px; font-size:11px; color:var(--ct-muted); }
@keyframes cp-rotate { to { transform:rotate(360deg); } }
@keyframes cp-progress-travel { 0% { transform:translateX(-105%); } 100% { transform:translateX(440%); } }
@media(max-width:1200px) {
    .cp-track .cp-phase-text { flex-basis:100%; }
    .cp-track .cp-phases { gap:10px; }
    .cp-record-grid[data-layout=b],.cp-upload-grid[data-layout=b] { grid-template-columns:minmax(0,1fr) 280px; gap:20px; }
}
@media(max-width:960px) {
    .cp-record-grid[data-layout=b],.cp-upload-grid[data-layout=b] { grid-template-columns:minmax(0,1fr); }
    .cp-rail-slot { order:-1; position:static; }
    .cp-rail .cp-phases { display:grid; grid-template-columns:1fr 1fr; column-gap:20px; }
    .cp-rail .cp-phases li::before { display:none; }
    .cp-track .cp-phases { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
    .cp-track .cp-phase-text { flex:1; }
}
@media(max-width:700px) {
    .cp-next { width:40px; height:40px; }
    .cp-demo-caption { margin-bottom:24px; }
    .cp-record-heading { align-items:flex-start; flex-wrap:wrap; gap:12px; margin-bottom:20px; }
    .cp-track { padding:16px 16px 0; }
    .cp-track[data-compact="true"] { padding-bottom:16px; }
    .cp-track-heading { gap:10px; }
    .cp-live-status { gap:6px; }
    .cp-live-status > strong { font-size:14px; line-height:20px; }
    .cp-position { font-size:10px; }
    .cp-track .cp-phases { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 14px; margin:22px 0; }
    .cp-phase-text strong { font-size:11px; }
    .cp-measure-copy { flex-wrap:wrap; gap:4px 12px; }
    .cp-track-footer { font-size:10px; }
    .cp-output-gate { gap:8px; }
    .cp-gate-tag { align-self:flex-start; margin-top:1px; }
    .cp-record-lines > div { flex-wrap:wrap; gap:6px 12px; padding:14px 16px; }
    .cp-record-lines small { width:100%; margin:0 0 0 29px; }
    .cp-rail { padding:18px 16px 0; }
    .cp-rail .cp-phases { column-gap:12px; }
    .cp-rail .cp-phases li { gap:8px; }
    .cp-population-fields { grid-template-columns:1fr; padding:16px; gap:18px; }
    .cp-upload-footer { padding:16px; flex-wrap:wrap; }
}
@media(prefers-reduced-motion:reduce) {
    :is(.cp-preview,.ct-product) *, :is(.cp-preview,.ct-product) *::before,:is(.cp-preview,.ct-product) *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
    .cp-indeterminate::after { left:35%; opacity:.6; }
}

/* Shared Filament table chrome is inherited; only the progress column has local geometry. */
.cp-native-table { max-width:100%; min-width:0; }
.cp-native-table .fi-ta-content { overflow-x:auto; }
.cp-native-table .cp-progress-heading,.cp-native-table .fi-ta-cell.cp-progress-cell { box-sizing:border-box; width:144px; min-width:144px; max-width:144px; padding-block:8px; }
.cp-native-table .cp-progress-heading { padding-inline:12px; }
.cp-cell { --cp-cell-gap:4px; cursor:pointer; display:grid; grid-template-columns:minmax(0,1fr) max-content; grid-template-areas:"phase position" "meter percent" "status status"; align-items:center; gap:var(--cp-cell-gap); width:120px; max-width:120px; box-sizing:border-box; padding:6px 0; border-radius:5px; text-align:start; }
:is(.ct-prototype,.ct-product) .fi-ta-table > tbody > tr > .fi-ta-cell:is(:has(.cp-cell),.fi-ta-cell-progress) { width:1%; max-width:144px; }
/* The reference column also supplies an inline width through Filament. */
:is(.ct-prototype,.ct-product) .fi-ta-header-cell.cp-progress-heading { width:144px !important; min-width:144px; max-width:144px; }
/* Match the native header/text-column inset without shifting progress to the far edge. */
:is(.ct-prototype,.ct-product) .fi-ta-cell:is(:has(.cp-cell),.fi-ta-cell-progress) > .fi-ta-col { box-sizing:border-box; width:144px; max-width:144px; padding-inline:12px; }
/* Queue Monitor's native progress bar shares the same content limit. */
:is(.ct-prototype,.ct-product) .fi-ta-cell-progress > .fi-ta-col > div:not(.cp-cell) { width:120px; max-width:120px; }
.cp-cell:focus-visible { outline:2px solid var(--ct-primary); outline-offset:3px; }
:is(.ct-prototype,.ct-product) .ct-progress-output { grid-column:1/-1; font-size:var(--ct-progress-description-size); line-height:var(--ct-progress-description-line-height); color:var(--ct-muted); overflow-wrap:anywhere; }
.cp-cell-phase { grid-area:phase; color:var(--ct-text); font-size:11px; line-height:16px; font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cp-cell-position { grid-area:position; color:var(--ct-muted); font-size:var(--ct-progress-description-size); line-height:var(--ct-progress-description-line-height); font-variant-numeric:tabular-nums; white-space:nowrap; text-align:end; }
.cp-cell-status { grid-area:status; display:flex; align-items:center; gap:var(--cp-cell-gap); min-width:0; color:var(--cp-signal); font-size:var(--ct-progress-description-size); line-height:var(--ct-progress-description-line-height); white-space:nowrap; }
.cp-cell-status > span:not(.cp-status-symbol):not(.cp-cell-attempt) { min-width:0; overflow:hidden; text-overflow:ellipsis; }
.cp-cell-status .cp-status-symbol,.cp-cell-status .cp-status-symbol .ct-icon { width:12px; height:12px; }
.cp-cell-attempt { flex-shrink:0; margin-inline-start:auto; font-variant-numeric:tabular-nums; text-align:end; }
.cp-cell-percent { grid-area:percent; color:var(--ct-text); font-size:10px; line-height:16px; font-variant-numeric:tabular-nums; white-space:nowrap; text-align:end; }
.cp-cell-meter { grid-area:meter; display:block; height:4px; position:relative; overflow:hidden; border-radius:2px; background:var(--ct-border); animation:cp-stage-arrive 180ms ease-out; }
.cp-cell-meter > span { display:block; height:100%; width:100%; background:var(--cp-fill); transform-origin:left center; transform:scaleX(0); transition:transform 450ms cubic-bezier(0,0,.2,1),background-color 180ms ease; }
.cp-cell[data-design=b] { grid-template-columns:max-content minmax(0,1fr) max-content; grid-template-areas:"position phase phase" "position status status" "meter meter percent"; }
.cp-cell[data-design=b] .cp-cell-position { align-self:stretch; display:flex; align-items:center; padding-inline-end:var(--cp-cell-gap); border-inline-end:1px solid var(--ct-border); }
.cp-cell[data-design=b][data-batch=true] { grid-template-columns:minmax(0,1fr) max-content; grid-template-areas:"phase phase" "status position" "meter percent"; }
.cp-cell[data-design=b][data-batch=true] .cp-cell-position { padding-inline-end:0; border:0; justify-content:flex-end; }
.cp-cell[data-design=c] { grid-template-areas:"phase percent" "status status" "meter position"; }
.cp-cell[data-design=c] .cp-cell-position { text-align:end; }
.cp-header-slot { flex:1 0 100%; }
.cp-record-heading:has(.cp-header-slot) { flex-wrap:wrap; }
.cp-header-progress { border-block:1px dashed var(--ct-border); }
.cp-header-summary { display:grid; grid-template-columns:minmax(0,1fr) minmax(180px,260px) auto; align-items:center; gap:24px; padding:16px 0; }
.cp-header-summary .cp-live-status > strong { font-size:14px; line-height:20px; }
.cp-header-summary .cp-position { padding-left:26px; font-size:11px; margin-top:2px; }
:is(.ct-prototype,.ct-product) .cp-header-toggle { display:inline-flex; align-items:center; justify-content:center; width:24px; min-width:24px; height:24px; min-height:24px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; color:var(--ct-muted); cursor:pointer; transition:color var(--ct-motion) var(--ct-ease); }
:is(.ct-prototype,.ct-product) .cp-header-toggle:hover { color:var(--ct-text); }
:is(.ct-prototype,.ct-product) .cp-header-toggle:focus-visible { color:var(--ct-text); outline:2px solid var(--ct-primary); outline-offset:2px; }
:is(.ct-prototype,.ct-product) .cp-header-toggle .ct-icon { width:16px; height:16px; color:inherit; transition:transform var(--ct-motion) var(--ct-ease); }
:is(.ct-prototype,.ct-product) .cp-header-toggle .ct-chevron-closed { transform:rotate(-90deg); }
.cp-header-history { border-top:1px dashed var(--ct-border); padding-top:20px; }
.cp-header-history .cp-phases { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 24px; }

/* Readiness reuses the phase track for independent prerequisite checks. */
.ct-readiness { --cp-fill:var(--ct-progress-fill); min-width:0; }
.ct-readiness[data-tone=primary],.ct-readiness [data-tone=primary] { --cp-signal:var(--ct-primary); --cp-fill:var(--ct-progress-fill); }
.ct-readiness[data-tone=warning],.ct-readiness [data-tone=warning] { --cp-signal:var(--ct-warning); --cp-fill:var(--ct-progress-warning); }
.ct-readiness[data-tone=danger],.ct-readiness [data-tone=danger] { --cp-signal:var(--ct-danger); --cp-fill:var(--ct-progress-danger); }
.ct-readiness[data-tone=neutral],.ct-readiness [data-tone=neutral] { --cp-signal:var(--ct-muted); --cp-fill:var(--ct-progress-neutral); }
.ct-readiness .cp-header-summary { grid-template-columns:minmax(0,1fr) minmax(160px,240px) auto; gap:20px; }
.ct-readiness-heading { min-width:0; }
.ct-readiness .cp-live-status { gap:8px; }
.ct-readiness .cp-live-status h2 { color:var(--ct-text); font-size:16px; line-height:24px; font-weight:600; margin:0; }
:is(.ct-prototype,.ct-product) .ct-readiness .ct-readiness-help { width:28px; height:28px; min-height:28px; padding:4px; }
.ct-readiness .ct-readiness-help .fi-icon { width:20px; height:20px; }
.ct-readiness-status { display:block; color:var(--cp-signal,var(--ct-muted)); font-size:14px; line-height:22px; }
.ct-readiness .cp-measure { margin:0; }
.ct-readiness .cp-measure-copy { font-size:14px; line-height:22px; }
.ct-readiness .cp-measure-track { height:5px; }
:is(.ct-prototype,.ct-product) .ct-readiness .cp-header-toggle { width:36px; height:36px; min-width:36px; }
:is(.ct-prototype,.ct-product) .ct-readiness .cp-header-toggle .ct-icon { width:20px; height:20px; }
.ct-readiness-note { color:var(--ct-muted); font-size:14px; line-height:22px; padding-block:0 16px; margin:0; }
.ct-readiness-details { border-top:1px dashed var(--ct-border); padding-block:20px; }
.ct-readiness .ct-readiness-checks { display:grid; grid-template-columns:repeat(var(--ct-readiness-columns,4),minmax(0,1fr)); gap:12px 24px; list-style:none; margin:0; padding:0; }
.ct-readiness-checks > li { display:grid; grid-template-columns:28px minmax(0,1fr); grid-template-rows:subgrid; grid-row:span 3; align-content:start; align-items:start; column-gap:10px; padding-bottom:12px; min-width:0; }
.ct-readiness-checks .cp-phase-node { width:28px; height:28px; color:var(--cp-signal); border-color:transparent; background:transparent; }
.ct-readiness-checks .cp-phase-node > .ct-icon { width:24px; height:24px; }
.ct-readiness-step-label { color:var(--ct-text); font-size:14px; line-height:22px; font-weight:600; overflow-wrap:anywhere; }
.ct-readiness-checks .cp-phase-fill { grid-column:1/-1; height:5px; background:var(--ct-border); }
.ct-readiness-step-state { grid-column:1/-1; font-size:14px; line-height:22px; color:var(--cp-signal); min-width:0; }
.ct-readiness-step-detail > summary { display:flex; align-items:center; gap:8px; list-style:none; cursor:pointer; width:fit-content; }
.ct-readiness-step-detail > summary::-webkit-details-marker { display:none; }
.ct-readiness-step-detail > summary > .ct-icon { width:18px; height:18px; transition:transform var(--ct-motion) var(--ct-ease); }
.ct-readiness-step-detail[open] > summary > .ct-icon { transform:rotate(180deg); }
.ct-readiness-step-detail p { margin:8px 0 0; color:var(--ct-muted); font-size:14px; line-height:22px; overflow-wrap:anywhere; }
.ct-readiness-findings { border-top:1px dashed var(--ct-border); margin-top:20px; padding-top:16px; }
.ct-readiness-findings > summary { color:var(--ct-text); cursor:pointer; font-size:14px; line-height:22px; }
.ct-readiness-findings[open] > summary { margin-bottom:20px; }
.ct-readiness :is(.ct-readiness-findings,.ct-readiness-step-detail) > summary:focus-visible { outline:2px solid var(--ct-primary); outline-offset:4px; }
.ct-readiness-findings > summary > span { font-variant-numeric:tabular-nums; margin-inline-start:4px; }
.ct-readiness-footer { border-top:1px dashed var(--ct-border); padding-top:16px; margin-top:20px; }
.ct-readiness:dir(rtl) :is(.cp-measure-track,.cp-phase-fill) > span { transform-origin:right center; }
@media(max-width:700px) {
    .ct-readiness .cp-header-summary { grid-template-columns:minmax(0,1fr) auto; gap:12px; }
    .ct-readiness .cp-header-toggle { grid-column:2; grid-row:1; }
    .ct-readiness .cp-header-measure { grid-column:1/-1; grid-row:2; }
    .ct-readiness .ct-readiness-checks { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:16px; }
}
.cp-header-history .cp-phases li::before { display:none; }
/* Every phase owns its bar, including the vertical and summary compositions. */
:is(.cp-rail,.cp-header-history) .cp-phases li { flex-wrap:wrap; }
:is(.cp-rail,.cp-header-history) .cp-phase-fill { flex:0 0 100%; width:100%; background:var(--ct-border); }
.cp-upload-header { margin-bottom:24px; }
@keyframes cp-stage-arrive { from { opacity:.45; } to { opacity:1; } }
@media(max-width:700px) {
    .cp-header-summary { grid-template-columns:minmax(0,1fr) auto; gap:12px; }
    .cp-header-measure { grid-row:2; grid-column:1 / -1; }
    .cp-header-history .cp-phases { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 12px; }
}
@media(prefers-reduced-motion:reduce) {
    .cp-cell-meter,.cp-cell-meter > span { animation:none; transition:none; }
}
