
/* V51 — visual containment + single event-driven completion authority */

/* Kill every older progress representation. V51 is the only visible state. */
.workflow .progress,#progress,.stage-progress{display:none!important}
.tab .stage-mini-status,.tab .v44-status,.tab .v38-label,.tab .v47-tab-status,.tab .v47-tab-track,.tab .v47-check{display:none!important}
.tab:before,.tab:after{display:none!important}
.tab,.tab.tab-done,.tab.tab-partial,.tab.tab-empty,
.tab.v34-done,.tab.v34-partial,.tab.v34-empty,
.tab.v37-done,.tab.v37-empty,
.tab.v38-done,.tab.v38-partial,.tab.v38-empty,
.tab.v44-done,.tab.v44-partial,.tab.v44-empty,
.tab[data-v47-state],.tab[data-v50-done]{
 background:#fff!important;border-color:#e8e8e4!important;color:#555!important;box-shadow:none!important
}
.tab.on{background:#fff7eb!important;border-color:#efbd73!important;color:#975a0c!important}
.tab[data-v51-done="1"]{
 background:#f1faf4!important;border-color:#a9d7b9!important;color:#176d43!important;
 padding-left:27px!important
}
.tab[data-v51-done="1"]::before{
 content:"✓"!important;display:grid!important;place-items:center!important;
 position:absolute!important;left:6px!important;top:50%!important;transform:translateY(-50%)!important;
 width:18px!important;height:18px!important;border-radius:50%!important;
 background:#27935b!important;color:#fff!important;font-size:10px!important;z-index:20!important
}
/* Hero score is no longer a fake percent. */
.hero-score #qualityScore{font-size:20px!important}
.hero-score #qualityScore + i{display:none!important}

/* Hard containment for every generated block seen in screenshot. */
html,body{width:100%!important;max-width:100%!important;overflow-x:hidden!important}
main,.panel,.card,#climate47,.knowledge48,.iw49,
.c47-charts,.c47-chart,.c47-section,.c47-insights,.c47-insight,.c47-summary,.c47-source,
.k48-section,.k48-list,.k48-item,.k48-two,.k48-chart,
.iw49-two,.iw49-chart,.iw49-analysis,.iw49-note,.iw49-controls,.iw49-table,.v50-disclosure,.v50-body{
 min-width:0!important;max-width:100%!important;box-sizing:border-box!important
}
#climate47 *, .knowledge48 *, .iw49 *{box-sizing:border-box!important}

/* Text must wrap inside its own card. */
.c47-insight,.c47-summary,.c47-source,.c47-season-card,.c47-day,
.k48-item,.k48-card,.k48-source,.k48-section,
.iw49-note,.iw49-method,.iw49-source,.iw49-kpi,.iw49-head,.c47-head,.k48-head{
 overflow:hidden!important
}
.c47-insight b,.c47-insight p,.c47-summary,.c47-source,
.k48-item b,.k48-item p,.k48-card b,.k48-card span,.k48-source,.k48-section p,
.iw49-note b,.iw49-note p,.iw49-method,.iw49-source,.iw49-kpi b,.iw49-kpi span,
.c47-head h3,.c47-head p,.k48-head h3,.k48-head p,.iw49-head h3,.iw49-head p{
 white-space:normal!important;
 overflow-wrap:anywhere!important;
 word-break:normal!important;
 max-width:100%!important
}

/* Grid children are explicitly shrinkable on iPhone. */
.c47-insights,.k48-list,.k48-two,.iw49-analysis,.iw49-two,.c47-charts{
 grid-template-columns:repeat(2,minmax(0,1fr))!important
}
.c47-kpis,.k48-grid,.iw49-kpis{grid-template-columns:repeat(4,minmax(0,1fr))!important}

/* Charts: make a little inner breathing room so first/last labels don't clip. */
.c47-chart,.k48-chart,.iw49-chart{overflow:hidden!important;padding-inline:12px!important}
.c47-chart svg,.k48-chart svg,.iw49-chart svg{
 display:block!important;width:calc(100% - 12px)!important;max-width:100%!important;
 height:auto!important;margin-inline:auto!important;overflow:visible!important
}

/* Tables can be wide, page cannot. */
.v50-table-scroll,.k48-table,.iw49-table,.tablewrap,.scroll{
 display:block!important;width:100%!important;max-width:100%!important;
 overflow-x:auto!important;overflow-y:hidden!important;-webkit-overflow-scrolling:touch!important;
 contain:inline-size!important
}
.v50-table-scroll table,.k48-table table,.iw49-table table,.tablewrap table,.scroll table{
 width:max-content!important;min-width:100%!important;max-width:none!important
}

/* Disclosure body must never establish a wider formatting context. */
.v50-disclosure{width:100%!important;max-width:100%!important}
.v50-disclosure>.v50-body{width:100%!important;max-width:100%!important;overflow:hidden!important}
.v50-disclosure>summary{white-space:normal!important;overflow-wrap:anywhere!important}

/* Mobile = one column for narrative blocks. */
@media(max-width:700px){
 .c47-insights,.k48-list,.k48-two,.iw49-analysis,.iw49-two,.c47-charts{grid-template-columns:minmax(0,1fr)!important}
 .c47-kpis,.k48-grid,.iw49-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .c47-season{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .c47-chart,.k48-chart,.iw49-chart{padding-inline:10px!important}
}
