/* Compliance convergence V4 — population resilience and hidden-surface law.
   This layer does not alter the Compliance data model or disclosure semantics. */

/* Every potentially dynamic grid child must be allowed to shrink. */
.compliance-convergence-v2 :where(.compliance-snapshot__grid,.editorial-split,.assurance-logic__chain,.sovereign-row,.section-tail,.domain-row,.framework-row,.enterprise-diligence__grid,.atlas-toolbar,.atlas-row,.assurance-grid,.access-row,.request-option,.ask-return,.dialog-meta,.dialog-actions)>*{min-width:0}

/* Prose wraps naturally; identifiers and machine-derived strings may break safely. */
.compliance-convergence-v2 :where(p,h1,h2,h3,strong,span,a,button,label){word-break:normal}
.compliance-convergence-v2 :where(.control-code,.posture,.origin-tag,.row-posture,.framework-version,.framework-state,.domain-count,.snapshot,.mapping-list span,.dialog-kicker,.dialog-meta strong,.request-option strong,.request-option span,.atlas-count,.authority-unavailable){overflow-wrap:anywhere}
.compliance-convergence-v2 :where(input,select,button){max-width:100%}

/* Whole-Act index: text flow, not fixed pills. */
.compliance-convergence-v2 .facet-index button{min-width:0;text-align:left}
.compliance-convergence-v2 .facet-index button b{overflow-wrap:anywhere}

/* Control rows preserve a generous prose measure at large widths and shed columns early. */
.compliance-convergence-v2 .sovereign-row{grid-template-columns:132px minmax(0,1fr) 152px;gap:24px}
.compliance-convergence-v2 .sovereign-row>span:nth-child(2){min-width:0}
.compliance-convergence-v2 .sovereign-row h3{max-width:48ch}
.compliance-convergence-v2 .sovereign-row p{max-width:74ch}
.compliance-convergence-v2 .control-open{white-space:normal}

/* Domain/framework ledgers tolerate long labels and future mapping language. */
.compliance-convergence-v2 .domain-row{grid-template-columns:34px minmax(180px,.62fr) minmax(0,1.22fr) 82px;gap:24px}
.compliance-convergence-v2 .framework-row{grid-template-columns:minmax(230px,.88fr) minmax(100px,.34fr) minmax(0,1.12fr);gap:24px}
.compliance-convergence-v2 .framework-row strong,.compliance-convergence-v2 .framework-state{overflow-wrap:anywhere}

/* Atlas controls: every control is a real interactive state. */
.compliance-convergence-v2 .atlas-toolbar{grid-template-columns:minmax(250px,1.15fr) minmax(190px,.82fr) minmax(160px,.72fr) minmax(200px,.88fr);gap:22px}
.compliance-convergence-v2 .atlas-toolbar label{min-width:0}
.compliance-convergence-v2 .atlas-toolbar input,.compliance-convergence-v2 .atlas-toolbar select{min-height:44px;line-height:1.25;text-overflow:ellipsis}
.compliance-convergence-v2 .atlas-row{grid-template-columns:126px minmax(0,1fr) 150px 190px;gap:22px}
.compliance-convergence-v2 .atlas-row>span:nth-child(2){min-width:0}
.compliance-convergence-v2 .atlas-row h3{max-width:52ch}
.compliance-convergence-v2 .atlas-row p{max-width:78ch}
.compliance-convergence-v2 .atlas-row .row-posture{align-content:start}

/* Assurance Room: no fixed-height data boxes; fields and second-step rows grow with content. */
.compliance-convergence-v2 .assurance-panel{min-width:0;min-height:0;padding:36px clamp(26px,3vw,40px)}
.compliance-convergence-v2 .assurance-panel form{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.compliance-convergence-v2 .assurance-panel input{width:100%;min-width:0}
.compliance-convergence-v2 .access-row{grid-template-columns:minmax(150px,180px) minmax(0,1fr)}
.compliance-convergence-v2 .request-option{grid-template-columns:minmax(0,1fr) minmax(130px,170px) 24px;align-items:start}
.compliance-convergence-v2 .request-option strong,.compliance-convergence-v2 .request-option span{line-height:1.42}

/* Dialog: viewport-bounded shell, content-owned height, resilient metadata and mappings. */
.compliance-convergence-v2 .control-dialog{width:min(820px,calc(100% - 32px));max-height:min(88dvh,900px);overflow:auto;overscroll-behavior:contain;border-radius:0}
.compliance-convergence-v2 .control-dialog article{min-width:0;padding:clamp(28px,4vw,46px)}
.compliance-convergence-v2 .control-dialog h2{max-width:18ch;padding-right:24px;text-wrap:balance}
.compliance-convergence-v2 .dialog-objective{max-width:72ch;overflow-wrap:anywhere}
.compliance-convergence-v2 .dialog-meta{grid-template-columns:repeat(2,minmax(0,1fr))}
.compliance-convergence-v2 .dialog-meta div{padding:15px 16px 15px 0;border-top:1px solid var(--line-light)}
.compliance-convergence-v2 .dialog-meta div+div{border-left:0;padding-left:0}
.compliance-convergence-v2 .dialog-meta div:nth-child(even){padding-left:18px;border-left:1px solid var(--line-light)}
.compliance-convergence-v2 .dialog-meta div:nth-child(-n+2){border-top:0}
.compliance-convergence-v2 .mapping-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}
.compliance-convergence-v2 .mapping-list span{display:block;padding:8px 0;border-bottom:1px solid var(--line-light)}
.compliance-convergence-v2 .dialog-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px}
.compliance-convergence-v2 .dialog-actions a{overflow-wrap:anywhere}

/* Fail-closed is a full public state, not an error fragment. */
.compliance-convergence-v2 .authority-unavailable{width:100%;max-width:780px}
.compliance-convergence-v2 .authority-unavailable h3{max-width:18ch}

/* Diligence cards and action labels have no fixed heights. */
.compliance-convergence-v2 .enterprise-diligence__grid article{min-width:0}
.compliance-convergence-v2 .enterprise-diligence__grid :where(h3,p){overflow-wrap:anywhere}
.compliance-convergence-v2 .enterprise-diligence__actions a{max-width:100%}

@media(max-width:1180px){
  .compliance-convergence-v2 .atlas-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}
  .compliance-convergence-v2 .atlas-toolbar .search-field{grid-column:1/-1}
  .compliance-convergence-v2 .atlas-row{grid-template-columns:112px minmax(0,1fr) 150px}
  .compliance-convergence-v2 .atlas-row .row-posture{grid-column:2/4;padding-top:1px}
  .compliance-convergence-v2 .framework-row{grid-template-columns:minmax(0,1fr) minmax(110px,.32fr)}
  .compliance-convergence-v2 .framework-state{grid-column:1/-1;margin-top:-4px}
}
@media(max-width:920px){
  .compliance-convergence-v2 .sovereign-row{grid-template-columns:112px minmax(0,1fr)}
  .compliance-convergence-v2 .control-open{grid-column:2;text-align:left;padding-top:3px}
  .compliance-convergence-v2 .section-tail{grid-template-columns:1fr;gap:16px}
  .compliance-convergence-v2 .domain-row{grid-template-columns:32px minmax(0,1fr) 72px;row-gap:8px}
  .compliance-convergence-v2 .domain-row p{grid-column:2/4}
  .compliance-convergence-v2 .assurance-panel form{grid-template-columns:1fr}
  .compliance-convergence-v2 .assurance-panel form button{grid-column:1}
}
@media(max-width:760px){
  .compliance-convergence-v2 .facet-index{display:flex!important;flex-wrap:wrap!important;gap:0 18px!important}
  .compliance-convergence-v2 .facet-index button{padding:8px 0!important}
  .compliance-convergence-v2 .sovereign-row{grid-template-columns:1fr;gap:7px;padding:20px 0}
  .compliance-convergence-v2 .control-open{grid-column:1;padding-top:4px;text-align:left}
  .compliance-convergence-v2 .domain-row{grid-template-columns:27px minmax(0,1fr) auto;column-gap:12px;row-gap:9px}
  .compliance-convergence-v2 .domain-row p{grid-column:2/4}
  .compliance-convergence-v2 .framework-row{grid-template-columns:1fr;gap:5px;padding:18px 0}
  .compliance-convergence-v2 .framework-version,.compliance-convergence-v2 .framework-state{grid-column:1;margin:0}
  .compliance-convergence-v2 .atlas-toolbar{grid-template-columns:1fr;gap:15px}
  .compliance-convergence-v2 .atlas-toolbar .search-field{grid-column:auto}
  .compliance-convergence-v2 .atlas-row{grid-template-columns:minmax(0,1fr) auto;gap:7px 16px;padding:20px 0}
  .compliance-convergence-v2 .atlas-row>.control-code{grid-column:1;grid-row:1}
  .compliance-convergence-v2 .atlas-row>.origin-tag{grid-column:2;grid-row:1;text-align:right;max-width:150px}
  .compliance-convergence-v2 .atlas-row>span:nth-child(2){grid-column:1/-1;grid-row:2}
  .compliance-convergence-v2 .atlas-row .row-posture{grid-column:1/-1;grid-row:3;padding-top:4px}
  .compliance-convergence-v2 .access-row{grid-template-columns:1fr;gap:5px}
  .compliance-convergence-v2 .request-option{grid-template-columns:minmax(0,1fr) 22px;gap:5px 12px}
  .compliance-convergence-v2 .request-option strong{grid-column:1;grid-row:1}
  .compliance-convergence-v2 .request-option span{grid-column:1;grid-row:2}
  .compliance-convergence-v2 .request-option i{grid-column:2;grid-row:1/3;align-self:center}
  .compliance-convergence-v2 .dialog-meta{grid-template-columns:1fr}
  .compliance-convergence-v2 .dialog-meta div,.compliance-convergence-v2 .dialog-meta div:nth-child(even){padding:13px 0;border-left:0;border-top:1px solid var(--line-light)}
  .compliance-convergence-v2 .dialog-meta div:first-child{border-top:0}
  .compliance-convergence-v2 .mapping-list{grid-template-columns:1fr}
  .compliance-convergence-v2 .dialog-actions{display:grid;gap:10px}
  .compliance-convergence-v2 .dialog-actions a:first-child{display:block}
  .compliance-convergence-v2 .enterprise-diligence__grid{grid-template-columns:1fr}
}
@media(max-width:520px){
  .compliance-convergence-v2 .assurance-panel{padding:28px 20px}
  .compliance-convergence-v2 .control-dialog{width:calc(100% - 20px);max-height:92dvh}
  .compliance-convergence-v2 .control-dialog article{padding:28px 20px 24px}
  .compliance-convergence-v2 .control-dialog h2{padding-right:30px;font-size:29px}
  .compliance-convergence-v2 .ask-form{display:grid;grid-template-columns:minmax(0,1fr) auto}
  .compliance-convergence-v2 .ask-form input{width:100%;min-width:0}
  .compliance-convergence-v2 .ask-form button{white-space:nowrap;padding-left:12px}
}
@media(max-width:340px){
  .compliance-convergence-v2 .atlas-row>.origin-tag{max-width:116px}
  .compliance-convergence-v2 .control-dialog{width:calc(100% - 12px)}
  .compliance-convergence-v2 .control-dialog article{padding-inline:16px}
  .compliance-convergence-v2 .assurance-panel{padding-inline:16px}
}

/* Empty search/filter state remains part of the Atlas rather than becoming dead space. */
.compliance-convergence-v2 .atlas-empty{display:grid;gap:7px;padding:32px 0 36px;border-bottom:1px solid var(--line-dark);max-width:680px}
.compliance-convergence-v2 .atlas-empty strong{font-size:var(--type-body);font-weight:580;color:#f7f4ec}
.compliance-convergence-v2 .atlas-empty span{font-size:var(--type-body);line-height:1.52;color:rgba(239,235,224,.62);max-width:58ch}

/* Short-height and landscape resilience: preserve the dialog as a usable working surface. */
@media(max-height:680px){
  .compliance-convergence-v2 .control-dialog{max-height:94dvh}
  .compliance-convergence-v2 .control-dialog article{padding-block:26px}
  .compliance-convergence-v2 .control-dialog h2{font-size:clamp(28px,4.2vw,40px);margin-top:8px;margin-bottom:14px}
  .compliance-convergence-v2 .dialog-objective{line-height:1.5}
  .compliance-convergence-v2 .dialog-meta{margin-block:22px}
  .compliance-convergence-v2 .dialog-section{margin-top:22px}
  .compliance-convergence-v2 .dialog-actions{margin-top:22px}
}
@media(max-height:520px){
  .compliance-convergence-v2 .control-dialog{width:min(860px,calc(100% - 20px));max-height:96dvh}
  .compliance-convergence-v2 .control-dialog article{padding-block:20px}
  .compliance-convergence-v2 .dialog-close{top:4px;right:6px}
}

/* On narrow stacked assurance flows, numbering already carries sequence; remove decorative arrows. */
@media(max-width:760px){
  .compliance-convergence-v3 .assurance-logic__chain>*+*::before{display:none}
}
