/* /security-architecture page-local rules (system gaps are listed in the builder's report) */

/* ── page header: the index carries the source's visible label and its two tools ── */
.index-k{margin-bottom:6px;font:600 14px/1.4 var(--f-sans);letter-spacing:.02em;color:var(--acc)}
.sa-tools{margin-top:14px;font:500 15px/1.4 var(--f-sans);color:var(--label)}
.sa-tb{padding:0;border:0;background:none;cursor:pointer;font:600 15px/1.4 var(--f-sans);color:var(--head);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;text-decoration-color:color-mix(in srgb,currentColor 55%,transparent)}
.sa-tb:hover{text-decoration-color:currentColor}
.sa-strip li::before{display:none}
.sa-strip li{gap:12px}
.vbtn{display:inline-flex;align-items:center;min-height:32px;padding:0 11px;border-radius:4px;border:1px solid color-mix(in srgb,var(--head) 40%,transparent);background:transparent;color:var(--head);font:600 14px/1 var(--f-sans);letter-spacing:.02em;cursor:pointer}
.vbtn:hover{border-color:var(--head)}
.vout{margin-top:10px;font:500 15px/1.45 var(--f-sans);color:var(--label)}
.vout:empty{display:none}
.vout.vout--fail{color:var(--warn)}
.st.wip{color:var(--warn)!important}

/* ── at a glance ── */
.sa-tldr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:44px;border-top:1px solid var(--rule)}
.sa-tldr li{position:relative;padding:18px 0 20px 32px;border-bottom:1px solid var(--rule);font-size:17.5px;line-height:1.6;color:var(--body);text-wrap:pretty}
.sa-tldr li::before{content:"";position:absolute;left:4px;top:25px;width:12px;height:6px;border-left:1.8px solid var(--ok);border-bottom:1.8px solid var(--ok);transform:rotate(-45deg)}
.sa-tldr strong{color:var(--head);font-weight:600}
.sa-tldr a,.sa-meta a{color:var(--head);font-weight:500;text-underline-offset:4px}
.sa-meta{margin-top:28px;display:grid;gap:8px}
.sa-meta p{font:500 16px/1.55 var(--f-sans);color:var(--label)}

/* ── the custody boundary, set in HTML ── */
.sa-cb{--cbc:minmax(0,1fr) 112px minmax(0,1.3fr) 112px minmax(0,1fr)}
.cb-row{display:grid;grid-template-columns:var(--cbc);align-items:center}
.cb-row .cx{padding:0 6px;min-width:0}
.cb-enc{grid-column:3}
.sa-tick{display:inline-block;width:16px;height:16px;margin-right:8px;vertical-align:-3px;fill:none;stroke:currentColor;stroke-width:2}
.cb-mid{display:grid;grid-template-columns:var(--cbc);grid-template-rows:auto 2px auto}
.cb-lbl{grid-column:4/6;grid-row:1;justify-self:end;padding:30px 0 10px;text-align:right}
.cb-rule{grid-column:1/-1;grid-row:2;border-top:2px solid var(--warn)}
.cb-out{grid-column:1/3;grid-row:3;padding:10px 0 34px}
.cb-v{grid-column:3;grid-row:1/4;position:relative;z-index:1}
.cb-v i{position:absolute;left:50%;top:0;bottom:0;width:0;border-left:1.5px dashed var(--line-c)}
.cb-v i::before,.cb-v i::after{content:"";position:absolute;left:-6px;border:5.25px solid transparent}
.cb-v i::before{top:-1px;border-bottom:8px solid var(--line-c);border-top:0}
.cb-v i::after{bottom:-1px;border-top:8px solid var(--line-c);border-bottom:0}
.cb-v b{position:absolute;left:calc(50% + 16px);bottom:14px;white-space:nowrap;font:600 14px/1.3 var(--f-sans);letter-spacing:.02em;color:var(--label)}
.cb-low{align-items:start}
.cb-low .cb-hs{grid-column:3}
/* phone: one column; the scoring line becomes a rail on the right, from the enclave's foot, across the PII line,
   down to HiveSilo, so it never touches the CRM box that the dispatch arrow feeds */
@container (max-width:699px){
  .cb-grid{display:grid;grid-template-columns:minmax(0,1fr) 34px}
  .cb-row,.cb-mid{display:contents}
  .cb-br{grid-column:1/-1;grid-row:1}
  .cb-sig{grid-column:1;grid-row:2}
  .cb-enc{grid-column:1/-1;grid-row:3}
  .cb-disp{grid-column:1;grid-row:4}
  .cb-crm{grid-column:1;grid-row:5}
  .sa-cb .cb-x{flex-direction:row;justify-content:flex-start;align-items:center;gap:12px;min-height:56px;padding:6px 0 6px 22px;text-align:left}
  .sa-cb .cb-x i{width:1.5px;min-width:0;height:44px;order:-1}
  .sa-cb .cb-x i::after{right:auto;top:auto;bottom:-1px;left:-4.5px;border:5.25px solid transparent;border-top:8px solid var(--line-c);border-bottom:0}
  .sa-cb .cb-x b{max-width:none}
  .cb-lbl{grid-column:1;grid-row:6;justify-self:start;padding:26px 0 8px;text-align:left}
  .cb-rule{grid-column:1/-1;grid-row:7}
  .cb-out{grid-column:1;grid-row:8;padding:8px 0 58px}
  .cb-v{grid-column:2;grid-row:4/9}
  .cb-v b{left:auto;right:calc(50% + 12px);bottom:14px;width:max-content;max-width:calc(100cqw - 48px);white-space:normal;text-align:right}
  .cb-low .cb-hs{grid-column:1/-1;grid-row:9}
}

/* ── reading ── */
.sa-list{margin-top:12px}
.sa-list li{position:relative;padding:6px 0 6px 24px;font-size:18px;line-height:1.6;color:var(--body)}
.sa-list li::before{content:"";position:absolute;left:4px;top:1.05em;width:9px;height:1.6px;background:var(--warn)}
.prose .sa-list + p{margin-top:18px}
.split>.aside{margin-top:0}
.aside .items{margin-top:16px}
.aside .items li{font-size:16.5px;font-weight:500}
.sa-vl{max-width:46em;margin-top:32px;padding:4px 0 4px 18px;border-left:2px solid var(--ok);font-size:16.5px;line-height:1.6;color:var(--body)}
.sa-vl a{color:var(--head);font-weight:500;text-underline-offset:4px}
.sa-vl .vbtn{margin:0 4px;vertical-align:1px;font-style:normal}
.sa-pair p{font-size:18px!important;line-height:1.62}
.sa-verdict{margin-top:44px;max-width:30em}
.sa-crypto .ledger.one .t{font-size:18px}

/* ── the collapsible control sets ("Full detail, N controls") ── */
.sa-x{margin-top:40px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.sa-x>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:62px;padding:16px 0;cursor:pointer;list-style:none;font:600 17.5px/1.35 var(--f-sans);color:var(--head)}
.sa-x>summary::-webkit-details-marker{display:none}
.sa-x>summary svg{width:16px;height:16px;flex:none;stroke:var(--acc);stroke-width:1.7;fill:none;transition:transform .3s var(--ease)}
.sa-x[open]>summary svg{transform:rotate(45deg)}
.sa-x>summary:hover{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.sa-x>.ledger>li:last-child{border-bottom:0}
.sa-x>.cols{padding-bottom:8px}

/* ── the layer stack ── */
.sa-layers{display:flex;flex-direction:column-reverse;gap:8px}
.sa-layers a{display:block;padding:14px 18px;border:1px solid var(--nd-bd);border-radius:8px;background:var(--nd-bg);font:500 16.5px/1.4 var(--f-sans);color:var(--head);text-align:center;text-decoration:none;transition:border-color .2s}
.sa-layers a:hover{border-color:var(--ok);text-decoration:underline;text-underline-offset:4px}
.sa-layers .hw a{border-color:var(--ok);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ok) 35%,transparent)}
.sa-stamp a{color:var(--head);text-underline-offset:4px}
.sa-tbl td:last-child{white-space:nowrap}

/* ── document of record ── */
.sa-doc{max-width:52em;margin-top:56px;padding-top:20px;border-top:1px solid var(--rule)}
.sa-doc>p{font:500 15.5px/1.55 var(--f-sans);color:var(--label)}
.sa-doc a{color:var(--head);text-underline-offset:4px}
.sa-doc details{margin-top:12px}
.sa-doc summary{display:inline-flex;align-items:center;gap:10px;min-height:44px;cursor:pointer;list-style:none;font:600 16px/1.3 var(--f-sans);color:var(--head)}
.sa-doc summary::-webkit-details-marker{display:none}
.sa-doc summary svg{width:14px;height:14px;stroke:var(--acc);stroke-width:1.7;fill:none;transition:transform .3s var(--ease)}
.sa-doc details[open] summary svg{transform:rotate(45deg)}
.sa-doc ul{display:grid;gap:10px;margin-top:6px}
.sa-doc li{font-size:15.5px;line-height:1.6;color:var(--body)}
.sa-doc li strong{color:var(--head);font-weight:600}

@media (max-width:1199px){ .sa-tldr{grid-template-columns:minmax(0,1fr)} }
@media (max-width:699px){
  .sa-list li,.sa-pair p{font-size:17px!important}
  .sa-tldr li{font-size:16.5px}
  /* a stacked table keeps its caption full width on a phone */
  .tbl.stack caption{display:block;width:auto}
  .sa-tbl td:last-child{white-space:normal}
}
