/* Five reference layers. The drawing conveys scope, never operational topology. */
.assurance-network{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4);margin-top:var(--space-8);padding-top:var(--space-4);border-top:1px solid var(--line-strong);isolation:isolate}
.assurance-network-heading{display:flex;align-items:start;justify-content:space-between;gap:var(--space-3);min-width:0}
.assurance-network-heading .eyebrow{margin-bottom:var(--space-2)}
.assurance-network-heading h3{font-size:clamp(28px,3.2vw,40px);line-height:1.12;max-width:18ch}
.assurance-network-designation{font-size:11px;line-height:1.7;color:var(--muted);text-align:right;max-width:19ch;margin:0;flex-shrink:0}
.assurance-network-visual{min-width:0;align-self:center;margin:0}
.assurance-network-svg{display:block;width:100%;height:auto;overflow:visible;color:var(--text);aspect-ratio:740/520}
.assurance-network-svg :is(path,line,polygon,circle){vector-effect:non-scaling-stroke;stroke-width:1px}
.assurance-depth-line{stroke:var(--line-strong);fill:none}
.assurance-plane{fill:none;stroke:var(--line-strong)}
.assurance-plane-contour{fill:none}
.assurance-plane-mesh{opacity:0;fill:none;stroke:var(--text)}
.assurance-plane-mesh circle{fill:var(--background)}
.assurance-plane[data-selected="true"]{stroke:var(--text)}
.assurance-plane[data-selected="true"] .assurance-plane-mesh{opacity:1}
.assurance-graphic-node{color:var(--muted);cursor:pointer;outline:none}
.assurance-graphic-node .assurance-node-hit{fill:transparent;stroke:none}
.assurance-graphic-node line{stroke:var(--line-strong)}
.assurance-graphic-node .assurance-node-point{fill:var(--background);stroke:var(--muted)}
.assurance-graphic-node text{fill:currentColor;font:400 21px/1 var(--font-body);font-variant-numeric:tabular-nums}
.assurance-graphic-node[data-selected="true"]{color:var(--text)}
.assurance-graphic-node[data-selected="true"] line{stroke:var(--text)}
.assurance-graphic-node[data-selected="true"] .assurance-node-point{fill:var(--text);stroke:var(--text)}
.assurance-network-visual figcaption{display:flex;align-items:start;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-1);padding-top:var(--space-2);border-top:1px solid var(--line);font-size:11px;line-height:1.7;color:var(--muted);max-width:none}
.assurance-network-visual figcaption span:last-child{text-align:right;flex-shrink:0}
.assurance-layer-controls{display:grid;grid-template-columns:minmax(0,1fr);min-width:0;border-top:1px solid var(--line-strong)}
.assurance-layer-button{appearance:none;display:grid;grid-template-columns:24px minmax(0,1fr) 8px;align-items:center;gap:var(--space-2);min-width:0;min-height:58px;padding:var(--space-2) 0;background:none;border:0;border-bottom:1px solid var(--line);text-align:left;color:var(--muted);font:400 14px/1.4 var(--font-body);cursor:pointer}
.assurance-layer-button>span:first-child{font-size:11px;font-variant-numeric:tabular-nums;color:var(--muted)}
.assurance-layer-button:after{content:"";width:6px;height:6px;border:1px solid currentColor;border-radius:50%;justify-self:end}
.assurance-layer-button[aria-pressed="true"],.assurance-layer-button:hover{color:var(--text)}
.assurance-layer-button[aria-pressed="true"]{border-bottom-color:var(--text)}
.assurance-layer-button[aria-pressed="true"]:after{background:currentColor}
.assurance-layer-button:focus-visible{outline:2px solid var(--focus);outline-offset:-3px}
.assurance-layer-detail{min-width:0;align-self:center}
.assurance-layer-top{display:flex;flex-direction:column;gap:var(--space-1);font-size:12px;line-height:1.6;color:var(--muted);padding-bottom:var(--space-3);border-bottom:1px solid var(--line);margin-bottom:var(--space-3)}
.assurance-layer-state{display:flex;align-items:center;gap:var(--space-1);color:var(--text)}
.assurance-layer-state:before{content:"";display:block;width:6px;height:6px;flex-shrink:0;border:1px solid currentColor}
[data-active-layer="public"] .assurance-layer-state:before{background:currentColor}
.assurance-layer-detail h4{font-size:clamp(26px,2.7vw,34px);line-height:1.15;max-width:23ch;margin:0 0 var(--space-3)}
.assurance-layer-detail>p{font-size:15px;line-height:1.8;color:var(--text);margin:0 0 var(--space-3);max-width:56ch}
.assurance-layer-review,.assurance-layer-limit{margin-top:var(--space-3)}
.assurance-layer-review>span,.assurance-layer-limit>span{display:block;font-size:11px;line-height:1.6;color:var(--muted);margin-bottom:var(--space-1)}
.assurance-layer-review p,.assurance-layer-limit p{font-size:13px;line-height:1.8;color:var(--muted);margin:0;max-width:60ch}
.assurance-layer-limit{border-top:1px solid var(--line);padding-top:var(--space-3)}
.assurance-network-scope{font-size:12px;line-height:1.8;color:var(--muted);max-width:85ch;margin:0;padding-top:var(--space-2)}
.assurance-network:not([data-assurance-enhanced="true"]) .assurance-layer-button{cursor:default}
@media(min-width:600px){
  .assurance-layer-controls{grid-template-columns:repeat(5,minmax(0,1fr));column-gap:var(--space-3)}
  .assurance-layer-button{grid-template-columns:minmax(0,1fr) 8px;align-content:start;gap:var(--space-2);min-height:112px;padding-block:var(--space-2);font-size:13px}
  .assurance-layer-button>span:first-child{grid-column:1/-1}
  .assurance-layer-button>span:nth-child(2){grid-column:1}
  .assurance-layer-button:after{align-self:center}
}
@media(min-width:900px){
  .assurance-network{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:var(--space-4) var(--space-6)}
  .assurance-network-heading,.assurance-layer-controls,.assurance-network-scope{grid-column:1/-1}
  .assurance-network-visual{grid-column:1;grid-row:2;margin:0}
  .assurance-layer-detail{grid-column:2;grid-row:2}
  .assurance-layer-controls{grid-row:3}
  .assurance-layer-button{min-height:96px;font-size:14px}
}
@media(min-width:1200px){.assurance-network{column-gap:var(--space-8)}}
@media(max-width:599px){
  .assurance-network-heading{display:block}
  .assurance-network-designation{text-align:left;max-width:none;margin-top:var(--space-2)}
  .assurance-network-visual{margin:0}
  .assurance-network-svg{margin-block:var(--space-1);min-height:230px}
  .assurance-network-visual figcaption{font-size:10px;gap:var(--space-2)}
}
@media(prefers-reduced-motion:reduce){.assurance-network *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{
  .assurance-network{break-inside:avoid;display:block}
  .assurance-network-visual{max-width:500px;margin-block:24px}
  .assurance-layer-controls{display:none}
  .assurance-layer-detail{margin-top:24px}
}
