/* Module 03 v2 — relationship-first Technical View + structural Brief Analogy. */
.m3-tech-shell,.m3-analogy{width:min(1000px,100%);margin:0 auto;display:grid;gap:16px}
.m3-tech-kicker{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:#607487}
.m3-tech-head,.m3-a-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid #d6dee6;background:#fff;border-radius:9px}.m3-tech-head.compact{padding:10px 12px}.m3-tech-head b,.m3-a-head b{display:block;font-size:14px;color:#172b3e}.m3-tech-head span:not(.m3-tech-badge),.m3-a-head span{display:block;margin-top:4px;font-size:11px;line-height:1.4;color:#637181}.m3-tech-badge,.m3-a-head em{flex:0 0 auto;border:1px solid #c7d3df;border-radius:999px;background:#f7fafc;padding:4px 8px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#52687d;font-style:normal}
/* Flow parity rule: process analogies mirror the Technical View direction. */
.m3-tech-path,.m3-a-path,.m3-analogy-path{display:grid;grid-template-columns:minmax(120px,1fr) auto minmax(120px,1fr) auto minmax(120px,1fr) auto minmax(120px,1fr);gap:9px;align-items:center}
.m3-tech-node,.m3-a-node{border:1px solid #ccd7e1;background:#fff;border-radius:10px;padding:13px;text-align:center;min-width:0}.m3-tech-node{cursor:pointer}.m3-tech-node b,.m3-a-node b{display:block;font-size:12px;color:#203448}.m3-tech-node span,.m3-a-node span{display:block;margin-top:5px;font-size:10px;line-height:1.4;color:#647383}.m3-a-node em{display:inline-block;margin-top:7px;border:1px solid #d4dde5;background:#f7fafc;border-radius:999px;padding:3px 7px;font-size:9px;color:#5b7082;font-style:normal}
.m3-tech-node.client,.m3-a-node.person{background:#f3f7fe;border-color:#aec6e8}.m3-tech-node.locator,.m3-a-node.coordinator{background:#f7f2fb;border-color:#c5b1df}.m3-tech-node.dns,.m3-a-node.directory{background:#f3fafb;border-color:#9dcbd5}.m3-tech-node.dc,.m3-a-node.office{background:#f5fbf8;border-color:#a8d5be}.m3-a-node.office.preferred{background:#eef9f3;border-color:#7fc19e}
.m3-tech-arrow,.m3-a-arrow{text-align:center;color:#526d82}.m3-tech-arrow span,.m3-a-arrow span{display:block;font-size:22px;font-weight:800}.m3-tech-arrow small,.m3-a-arrow small{display:block;font-size:9px;line-height:1.3;color:#6d7d8b;max-width:105px}
.m3-tech-callout,.m3-a-note{border-left:4px solid #2f6f8f;background:#f7fafc;border-radius:4px;padding:12px 14px;font-size:11px;line-height:1.5;color:#40566b}.m3-a-note{text-align:center;border-left:0;border:1px dashed #cbd5df;background:#fff}
.m3-tech-dns-zone,.m3-tech-master,.m3-a-directory-book{border:1px solid #cbd6e0;border-radius:12px;background:linear-gradient(180deg,#fbfcfe,#f6f9fc);padding:16px;display:grid;gap:14px}
.m3-tech-srv-grid,.m3-a-record-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.m3-tech-srv,.m3-a-record{border:1px solid #a9cad5;background:#f3fafb;border-radius:9px;padding:12px;text-align:left}.m3-tech-srv{cursor:pointer}.m3-tech-srv.site,.m3-a-record.site{border-color:#b8a9dc;background:#f8f5fc}.m3-tech-srv b,.m3-a-record b{display:block;font-size:12px;color:#1e4050}.m3-tech-srv span,.m3-a-record span{display:block;margin-top:5px;font-size:10px;line-height:1.4;color:#60717d}.m3-tech-srv em,.m3-a-record small{display:block;margin-top:7px;font-size:9px;color:#758391;font-style:normal}
.m3-tech-publish,.m3-a-publish-row{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;border-top:1px dashed #cbd5df;padding-top:12px}
.m3-tech-lifecycle,.m3-a-lifecycle{display:grid;gap:9px}.m3-tech-step,.m3-a-step{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:stretch}.m3-tech-step>span,.m3-a-step>span{display:grid;place-items:center;border-radius:8px;background:#244f73;color:#fff;font-size:11px;font-weight:800}.m3-tech-step button,.m3-a-step>div{border:1px solid #d4dee7;background:#fff;border-radius:8px;padding:10px 12px;text-align:left}.m3-tech-step button{cursor:pointer}.m3-tech-step b,.m3-a-step b{display:block;font-size:12px;color:#203448}.m3-tech-step small,.m3-a-step small{display:block;margin-top:4px;font-size:10px;line-height:1.4;color:#647383}
.m3-tech-boundary,.m3-a-stage-boundary{border:1px dashed #b9c6d2;background:#fff;border-radius:9px;padding:12px;text-align:center}.m3-tech-boundary b,.m3-a-stage-boundary b{display:block;font-size:11px;color:#31536e}.m3-tech-boundary span,.m3-a-stage-boundary span{display:block;margin-top:4px;font-size:10px;line-height:1.45;color:#667785}.m3-tech-boundary.strong,.m3-a-stage-boundary.strong{border-style:solid;border-color:#8fb4c5;background:#f4fafc}
.m3-tech-site-layout,.m3-analogy{display:grid;gap:14px}.m3-tech-site,.m3-a-location{border:1px solid #d2dce5;border-radius:12px;background:#fff;padding:14px;display:grid;gap:12px}.m3-tech-site.local,.m3-a-location.local{border-top:4px solid #69a9b7}.m3-tech-site.remote,.m3-a-location.remote{border-top:4px solid #b99fcf}.m3-tech-subnet{border:1px solid #d9e3eb;background:#f8fafc;border-radius:8px;padding:10px 12px}.m3-tech-subnet b{display:block;font-size:11px;color:#24445d}.m3-tech-subnet span{display:block;margin-top:4px;font-size:10px;color:#667684}.m3-tech-site-row,.m3-a-location-row{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center}.m3-tech-wan,.m3-a-wan{text-align:center;border:1px dashed #d2c4d9;background:#fbf8fc;border-radius:8px;padding:10px}.m3-tech-wan b,.m3-a-wan b{display:block;font-size:10px;color:#6c5475}.m3-tech-wan span,.m3-a-wan span{display:block;margin-top:4px;font-size:9px;line-height:1.4;color:#7b6d7e}
.m3-tech-master-row,.m3-a-master-top{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center}.m3-tech-discovery-core,.m3-a-master-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.m3-tech-discovery-box,.m3-a-master-grid>section{border:1px solid #d5dfe8;background:#fff;border-radius:10px;padding:12px;display:grid;gap:10px}

@media(max-width:980px){.m3-tech-path,.m3-a-path,.m3-analogy-path{grid-template-columns:1fr}.m3-tech-arrow span,.m3-a-arrow span{transform:rotate(90deg)}.m3-tech-arrow small,.m3-a-arrow small{max-width:none}.m3-tech-srv-grid,.m3-a-record-grid,.m3-tech-discovery-core,.m3-a-master-grid{grid-template-columns:1fr}.m3-tech-publish,.m3-a-publish-row,.m3-tech-site-row,.m3-a-location-row,.m3-tech-master-row,.m3-a-master-top{grid-template-columns:1fr}.m3-tech-publish .m3-tech-arrow span,.m3-a-publish-row .m3-a-arrow span,.m3-tech-site-row .m3-tech-arrow span,.m3-a-location-row .m3-a-arrow span,.m3-tech-master-row .m3-tech-arrow span,.m3-a-master-top .m3-a-arrow span{transform:rotate(90deg)}}
