/* P19.25 bounded CSS segment: 09-hcsa-spec.css */
/* R20 - Four external integration contexts in the MEMM home architecture.
   The underlying component is HTML/CSS, not a flattened illustration.
   Keep HCSA app and all other product pages unchanged. */
.r49-home .console-stage--four-contexts { min-height:444px; }
.r49-home .console-stage--four-contexts .console-column-target { gap:9px; }
.r49-home .console-stage--four-contexts .console-column-target .console-node { padding-block:11px; }
.r49-home .console-stage--four-contexts .console-column-target .console-label { margin-bottom:2px; }
@media(min-width:761px) {
  .r49-home .console-stage--four-contexts .console-rail-right {
    display:grid;
    grid-template-rows:repeat(4,minmax(0,1fr));
    align-items:center;
    align-self:stretch;
    height:auto;
    gap:0;
    padding-top:26px;
  }
}
/* At the medium two-column breakpoint, rails are intentionally hidden and
   the cards reflow instead of shrinking below a readable size. */
@media(min-width:1001px) and (max-width:1180px) {
  .r49-home .console-stage--four-contexts .console-rail-right { display:none; }
}
@media(max-width:760px) {
  .r49-home .console-stage--four-contexts { min-height:0; }
  .r49-home .console-stage--four-contexts .console-column-target {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
  }
  .r49-home .console-stage--four-contexts .console-column-target .console-label { grid-column:1/-1; }
}
/* Preserve panel bounds at the desktop transition where the right hero rail
   is 525px wide but the five-column minimum was previously about 550px. */
@media(min-width:1181px) and (max-width:1279px) {
  .r49-home .console-stage--four-contexts {
    grid-template-columns:minmax(100px,.78fr) 18px minmax(168px,1.26fr) 18px minmax(100px,.78fr);
    gap:7px;
    padding-inline:11px;
  }
}
@media(min-width:761px) {
  .r49-home .console-stage--four-contexts .console-rail-right span {
    background:linear-gradient(90deg,rgba(108,226,213,.70),rgba(108,226,213,.16));
  }
}
/* Node-owned connectors keep each arrow aligned with its corresponding
   external context regardless of content height or available hero width. */
@media(min-width:761px) {
  .r49-home .console-stage--four-contexts .console-rail-right { visibility:hidden; }
  .r49-home .console-stage--four-contexts .console-column-target .console-node { position:relative; }
  .r49-home .console-stage--four-contexts .console-column-target .console-node::before {
    content:"";
    position:absolute;
    top:50%;left:-32px;
    width:25px;height:1px;
    background:linear-gradient(90deg,rgba(108,226,213,.75),rgba(108,226,213,.14));
  }
  .r49-home .console-stage--four-contexts .console-column-target .console-node::after {
    content:"";
    position:absolute;
    top:calc(50% - 3px);left:-32px;
    width:7px;height:7px;
    border-top:1px solid #6ce2d5;
    border-right:1px solid #6ce2d5;
    transform:rotate(225deg);
  }
}
@media(min-width:1001px) and (max-width:1180px) {
  .r49-home .console-stage--four-contexts .console-column-target .console-node::before,
  .r49-home .console-stage--four-contexts .console-column-target .console-node::after { display:none; }
}

/* R24.18 specification reference components: restrained, scannable and source-first. */
.spec-source-section,.spec-matrix-section,.spec-families-section,.hcsa-draft-contracts{scroll-margin-top:100px}
.spec-document-grid,.spec-contract-grid,.spec-scenario-grid,.spec-ig-grid,.spec-families-grid{align-items:stretch}
.spec-document-card,.spec-ig-card,.spec-contract-grid .card,.spec-scenario-grid .card,.spec-families-grid .card{min-width:0;display:flex;flex-direction:column;gap:8px}
.spec-document-card h3,.spec-ig-card h3,.spec-families-grid h3{overflow-wrap:anywhere;word-break:normal;font-size:1rem;line-height:1.45;margin:8px 0 0}
.spec-document-card h3 a{color:var(--ink);text-decoration:none;text-decoration-thickness:1px;text-underline-offset:3px}
.spec-document-card h3 a:hover,.spec-document-card h3 a:focus-visible{color:var(--accent);text-decoration:underline}
.spec-document-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}
.spec-document-top small,.spec-document-meta,.spec-assessment-note,.spec-ig-card>span{font-size:.74rem;color:var(--muted)}
.spec-kind{font-size:.67rem;font-weight:800;letter-spacing:.045em;text-transform:uppercase;border:1px solid #cadfe4;background:#f1f8fa;color:#30536a;border-radius:99px;padding:5px 9px}
.spec-kind--draft{background:#fff7e8;border-color:#ead6b7;color:#80551c}
.spec-document-meta{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:auto}
.spec-assessment-note{margin:3px 0 0;padding-top:12px;border-top:1px solid var(--line);line-height:1.45}
.spec-table-scroll{width:100%;overflow-x:auto;overscroll-behavior-inline:contain;border:1px solid var(--line);border-radius:17px;background:#fff}
.spec-matrix-table{width:100%;min-width:750px;border-collapse:collapse;text-align:left;font-size:.83rem;line-height:1.55}
.spec-matrix-table th,.spec-matrix-table td{padding:15px 16px;border-bottom:1px solid #e4ebef;vertical-align:top}
.spec-matrix-table thead th{background:#eef5f8;color:#315267;font-weight:800;font-size:.73rem;letter-spacing:.025em}
.spec-matrix-table tbody tr:last-child th,.spec-matrix-table tbody tr:last-child td{border-bottom:0}
.spec-matrix-table tbody tr:nth-child(2n){background:#fafcfd}
.spec-matrix-table th[scope=row]{font-weight:700;max-width:370px;overflow-wrap:anywhere}
.spec-matrix-table th a{color:#0b5568;text-decoration:underline;text-underline-offset:3px}
.spec-matrix-table small{display:block;margin-top:4px;color:var(--muted);font-size:.72rem;font-weight:400}
.spec-responsibility-flow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}
.spec-responsibility-node{position:relative;min-width:0;border:1px solid #d6e5ea;border-radius:16px;background:linear-gradient(170deg,#fff,#f4f9fa);padding:20px 14px}
.spec-responsibility-node>span{color:#087f8c;font-size:.68rem;font-weight:800;letter-spacing:.08em}
.spec-responsibility-node h3{font-size:.95rem;line-height:1.45;margin:10px 0 7px;overflow-wrap:break-word}
.spec-responsibility-node p{font-size:.81rem;line-height:1.55;color:var(--muted);margin:0}
.spec-responsibility-node:nth-child(3){background:linear-gradient(145deg,#eaf7f5,#fff);border-color:#9fcfce}
.spec-ig-card .text-link,.spec-contract-grid .text-link,.spec-families-grid .text-link{margin-top:auto;overflow-wrap:anywhere}
.spec-ig-card>span{font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.spec-ig-card>p,.spec-families-grid p{font-size:.85rem;color:var(--muted)}
.spec-scenario-grid h3{font-size:1rem;margin:0}.spec-scenario-grid p{font-size:.87rem;line-height:1.58;color:var(--muted)}
.spec-source-section .section-head p,.spec-matrix-section .section-head p,.spec-families-section .section-head p{max-width:850px}
.spec-source-section .technical-proof-note,.spec-matrix-section .technical-proof-note,.spec-families-section .technical-proof-note{margin-top:20px;font-size:.8rem}
@media(max-width:1050px){.spec-responsibility-flow{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:660px){.spec-responsibility-flow{grid-template-columns:1fr}.spec-document-grid,.spec-ig-grid,.spec-contract-grid,.spec-scenario-grid,.spec-families-grid{grid-template-columns:1fr}.spec-document-card h3{font-size:.9rem}.spec-matrix-table th,.spec-matrix-table td{padding:11px}}

.spec-companion-links{display:flex;flex-wrap:wrap;gap:9px 15px;align-items:center;margin-top:18px;padding:13px 16px;border:1px solid var(--line);border-radius:12px;font-size:.78rem}
.spec-companion-links strong{color:var(--ink)}.spec-companion-links a{color:#0b5568;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}

/* R24.19: Secondary evidence/status details remain accessible without dominating the product story. */
.headless-evidence-details,.status-disclosure{border:1px solid var(--line,#d8e0e9);border-radius:12px;margin:1.25rem 0;padding:.75rem 1rem}.headless-evidence-details>summary,.status-disclosure>summary{cursor:pointer;font-weight:600;line-height:1.5}.headless-evidence-details[open]>summary,.status-disclosure[open]>summary{margin-bottom:1rem}.headless-evidence-details .headless-status-grid{margin-top:1rem}

/* R24.20: discoverable horizontal tables while retaining semantic table markup and keyboard access. */
.spec-table-hint{margin:0 0 10px;color:#385e73;font-size:.77rem;line-height:1.45}
.spec-table-scroll:focus-visible{outline:3px solid #0b8792;outline-offset:3px}
@media(min-width:751px){.spec-table-hint{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}}
@media(max-width:750px){.spec-table-scroll{box-shadow:inset -15px 0 16px -17px rgba(5,43,63,.42)}.spec-table-hint{display:flex;align-items:center;gap:8px}}

/* R24.21: selected normative requirements, native disclosure and source links. */
.normative-contracts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.normative-contract{min-width:0;border:1px solid var(--line,#dbe3ed);border-radius:14px;background:var(--card,#fff);overflow-wrap:anywhere}
.normative-contract summary{padding:20px 22px;font-weight:650;line-height:1.5;cursor:pointer;color:var(--ink,#152838)}
.normative-contract summary:focus-visible{outline:3px solid #167f88;outline-offset:-4px;border-radius:12px}
.normative-contract[open] summary{border-bottom:1px solid var(--line,#dbe3ed)}
.normative-contract-body{padding:0 22px 18px;line-height:1.7}
.normative-contract-sources{padding-left:20px;margin:14px 0 0;font-size:.84rem;line-height:1.65}
.normative-contract-sources li+li{margin-top:6px}
.technical-source-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 32px;padding-left:20px;line-height:1.65;font-size:.9rem}
.technical-source-list li{min-width:0;overflow-wrap:anywhere}
@media(max-width:720px){.normative-contracts-grid,.technical-source-list{grid-template-columns:1fr}.normative-contract summary{padding:17px 18px}.normative-contract-body{padding:0 18px 16px}}

.hcsa-module-visual .hcsa-dipag-vector{display:block;width:min(100%,280px);margin-inline:auto;padding:0;border:0;background:transparent;box-shadow:none}.hcsa-dipag-vector svg{display:block;width:100%;height:auto}.hcsa-dipag-vector:focus-visible{outline:3px solid var(--teal,#087e75);outline-offset:5px;border-radius:40px}


/* R24.23: source binding and native Calling topology. */
.zeta-binding-table-scroll{overflow-x:auto;margin:1.5rem 0;border:1px solid var(--line,#d6e0e8);border-radius:14px}
.zeta-binding-table{width:100%;min-width:680px;border-collapse:collapse;text-align:left;background:#fff}
.zeta-binding-table th,.zeta-binding-table td{padding:1rem 1.2rem;vertical-align:top;border-bottom:1px solid #dce5ec;line-height:1.6}
.zeta-binding-table thead th{background:#edf5fa;color:#173a52}
.zeta-binding-table th[scope=row]{width:20%}
.zeta-binding-table td:nth-child(2){width:35%}
.zeta-binding-links{display:flex;flex-wrap:wrap;gap:.8rem 1.5rem;margin-top:1rem}
.zeta-binding-links a{font-weight:650;overflow-wrap:anywhere}
.calling-topologies{margin:1.5rem 0 2rem}
.calling-topology{margin:1.2rem 0 2rem}
.calling-topology-scroll{overflow-x:auto;border-radius:16px;border:1px solid #d6e2ea;background:#f5f8fc}
.calling-topology img{display:block;width:100%;min-width:850px;height:auto;max-width:none}
.calling-topology figcaption{margin-top:.65rem;line-height:1.6;color:#435c6e}
.calling-topology-scroll:focus-visible,.zeta-binding-table-scroll:focus-visible{outline:3px solid #167da0;outline-offset:4px}
.calling-architecture-section .headless-evidence-details{margin-top:1.1rem}
.calling-source-list li{overflow-wrap:anywhere;line-height:1.6;margin-bottom:.55rem}
