/* Module 02 Technical View structural upgrade.
   Same visual standard as the improved Brief Analogy, but with authoritative
   AD DS terminology and technical relationships. */
.m2-tech-shell{width:100%;display:grid;gap:16px}
.m2-tech-kicker{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:#5d7185}
.m2-tech-callout{border-left:4px solid #476f9b;background:#f5f8fb;padding:11px 13px;font-size:12px;line-height:1.5;color:#40566c}

.m2-tech-domain-boundary,.m2-tech-host-boundary,.m2-tech-forest-boundary,.m2-tech-fsmo-forest{border:2px solid #a9bdd1;background:#fbfdff;border-radius:10px;padding:16px;display:grid;gap:14px}
.m2-tech-forest-boundary,.m2-tech-fsmo-forest{border-color:#b4a5d0;background:#fcfbfe}
.m2-tech-fsmo-domain{border:1px solid #9ec2df;background:#f8fbfe;border-radius:9px;padding:13px;display:grid;gap:12px}
.m2-tech-boundary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.m2-tech-boundary-head b{display:block;font-size:15px;color:#17344e}.m2-tech-boundary-head span:not(.m2-tech-badge){display:block;font-size:11px;line-height:1.45;color:#657585;margin-top:3px}
.m2-tech-badge{display:inline-block;padding:4px 8px;border:1px solid #b8c9d8;background:#fff;border-radius:999px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#4d6680;white-space:nowrap}
.m2-tech-badge.forest{border-color:#c2b4da;color:#69508d}

.m2-tech-peer-grid,.m2-tech-repl-layout,.m2-tech-db-grid,.m2-tech-integrated-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,.42fr) minmax(0,1fr);gap:14px;align-items:stretch}
.m2-tech-dc{border:1px solid #9fbde0;background:#f6faff;border-radius:9px;padding:14px;display:grid;gap:12px;min-width:0}
.m2-tech-dc.compact{align-content:start}.m2-tech-dc.gc-host{border-color:#a9c887;background:#fbfdf5}
.m2-tech-node-head{display:flex;align-items:center;gap:10px}.m2-tech-node-head b{display:block;font-size:14px;color:#17344e}.m2-tech-node-head span:not(.m2-tech-icon){display:block;font-size:10px;color:#66788a;margin-top:2px;line-height:1.35}
.m2-tech-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#fff;border:1px solid #c9d6e2;font-size:19px;flex:0 0 auto}

.m2-tech-inner-grid,.m2-tech-core-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.m2-tech-item,.m2-tech-capability,.m2-tech-role,.m2-tech-db,.m2-tech-repl-core,.m2-tech-core-head,.m2-tech-fsmo-strip button{font:inherit;border:1px solid #c6d2de;background:#fff;border-radius:7px;padding:10px;text-align:left;color:#263d52;cursor:pointer;min-width:0}
.m2-tech-item:hover,.m2-tech-capability:hover,.m2-tech-role:hover,.m2-tech-db:hover,.m2-tech-repl-core:hover,.m2-tech-core-head:hover,.m2-tech-fsmo-strip button:hover{border-color:#7fa2c5;background:#f8fbfe}
.m2-tech-item b,.m2-tech-capability b,.m2-tech-role b,.m2-tech-db b,.m2-tech-repl-core b,.m2-tech-core-head b,.m2-tech-fsmo-strip b{display:block;font-size:11px;line-height:1.3}
.m2-tech-item span,.m2-tech-capability span,.m2-tech-role span,.m2-tech-db span,.m2-tech-repl-core small,.m2-tech-core-head span,.m2-tech-fsmo-strip span{display:block;font-size:9.5px;color:#66788a;line-height:1.4;margin-top:4px}
.m2-tech-item.core{border-color:#8fb6dc;background:#f0f7fd}.m2-tech-item.data,.m2-tech-db{border-color:#b4a8d4;background:#faf8fd}.m2-tech-item.optional{border-style:dashed;background:#fbfcfd}.m2-tech-item.gc{border-color:#afc788;background:#fbfdf3}.m2-tech-item.neutral{cursor:default;background:#fbfcfd}
.m2-tech-item.sel,.m2-tech-capability.sel,.m2-tech-role.sel,.m2-tech-db.sel,.m2-tech-repl-core.sel,.m2-tech-core-head.sel,.m2-tech-fsmo-strip button.sel{outline:2px solid var(--accent);outline-offset:1px}

.m2-tech-link{align-self:center;text-align:center;display:grid;gap:4px;color:#4b6d8c;padding:8px}.m2-tech-link span{font-size:28px;line-height:1}.m2-tech-link b{font-size:11px}.m2-tech-link small{font-size:9px;line-height:1.35;color:#748391}.m2-tech-link.strong{border-left:1px dashed #afbdc9;border-right:1px dashed #afbdc9}

.m2-tech-ad-core{border:1px solid #8fb6dc;background:#f5faff;border-radius:9px;padding:12px;display:grid;gap:10px}.m2-tech-core-head{border-color:#7da8d1;background:#edf6fd}.m2-tech-hosted-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.m2-tech-hosted-row.compact-row{margin-top:0}.m2-tech-capability{position:relative;padding-right:64px}.m2-tech-capability.dns{border-color:#93c8d3;background:#f3fbfc}.m2-tech-capability.gc{border-color:#b4c982;background:#fafcf2}.m2-tech-capability em{position:absolute;right:8px;top:8px;font-style:normal;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#6e7d8a;background:#fff;border:1px solid #d3dbe3;border-radius:999px;padding:2px 5px}

.m2-tech-db{padding:13px}.m2-tech-db small{display:block;font-size:9px;color:#788797;margin-top:7px;line-height:1.35}.m2-tech-update{font-size:9px;line-height:1.35;color:#56708a;background:#eef5fb;border-radius:5px;padding:7px 8px;text-align:center}

.m2-tech-gc-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,.4fr) minmax(0,.78fr);gap:14px;align-items:stretch}.m2-tech-domain-pane{border:1px solid #a4c6df;background:#f8fbfe;border-radius:9px;padding:12px;display:grid;gap:10px}.m2-tech-domain-pane.secondary{background:#fbfcfd}.m2-tech-pane-head b{display:block;font-size:13px;color:#17344e}.m2-tech-pane-head span{display:block;font-size:9.5px;color:#687a8b;margin-top:3px}.m2-tech-gc-link{align-self:center;text-align:center;display:grid;gap:4px;color:#65798c}.m2-tech-gc-link>span{font-size:26px}.m2-tech-gc-link b{font-size:10px}.m2-tech-gc-link small{font-size:9px;line-height:1.35}.m2-tech-full-data{border:1px solid #c8d3dd;background:#fff;border-radius:7px;padding:12px}.m2-tech-full-data b{display:block;font-size:11px;color:#2a4258}.m2-tech-full-data span{display:block;font-size:9.5px;color:#6c7c8c;margin-top:4px;line-height:1.4}.m2-tech-query{border-top:1px dashed #bec9d3;padding-top:10px}.m2-tech-query b{display:block;font-size:11px;color:#365b7a}.m2-tech-query span{display:block;font-size:9.5px;color:#697a89;margin-top:3px;line-height:1.4}

.m2-tech-repl-core{align-self:center;text-align:center;display:grid;gap:4px;padding:12px;background:#f3faf7;border-color:#9bc7b6}.m2-tech-repl-arrows{font-size:28px;color:#4f8f75}.m2-tech-repl-core b{font-size:11px;color:#2c5f4c}

.m2-tech-normal-row{border:1px solid #c9d5df;background:#fff;border-radius:8px;padding:11px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.m2-tech-normal-label b{display:block;font-size:11px;color:#2b4357}.m2-tech-normal-label span{display:block;font-size:9.5px;color:#6d7d8c;margin-top:3px}.m2-tech-mini-dcs{display:flex;gap:7px;flex-wrap:wrap}.m2-tech-mini-dcs span{font-size:9.5px;border:1px solid #aec6de;background:#f3f8fd;border-radius:999px;padding:5px 8px;color:#345d82}
.m2-tech-role-scope{display:grid;grid-template-columns:1.1fr repeat(2,minmax(0,1fr));gap:9px;align-items:stretch}.m2-tech-role-scope.domain-roles{grid-template-columns:1.1fr repeat(3,minmax(0,1fr))}.m2-tech-role-title{border:1px dashed #bcc8d3;border-radius:7px;padding:9px;background:#fbfcfd}.m2-tech-role-title b{display:block;font-size:10px;color:#3c5368}.m2-tech-role-title span{display:block;font-size:9px;color:#71808e;margin-top:3px}.m2-tech-role{background:#fff8ef;border-color:#d7bb99}.m2-tech-role span{font-size:9px}

.m2-tech-integrated-grid{margin-top:2px}.m2-tech-fsmo-strip{border-top:1px dashed #aebdca;padding-top:11px}.m2-tech-fsmo-strip button{width:100%;background:#fff8ef;border-color:#d8bea0}.m2-tech-domain-boundary.integrated{gap:15px}

@media(max-width:1100px){
  .m2-tech-peer-grid,.m2-tech-repl-layout,.m2-tech-db-grid,.m2-tech-integrated-grid,.m2-tech-gc-layout{grid-template-columns:1fr}
  .m2-tech-link.strong{border-left:0;border-right:0;border-top:1px dashed #afbdc9;border-bottom:1px dashed #afbdc9}
  .m2-tech-gc-link>span{transform:rotate(90deg)}
  .m2-tech-role-scope,.m2-tech-role-scope.domain-roles{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  .m2-tech-inner-grid,.m2-tech-core-grid,.m2-tech-hosted-row,.m2-tech-role-scope,.m2-tech-role-scope.domain-roles{grid-template-columns:1fr}
  .m2-tech-capability{padding-right:10px}.m2-tech-capability em{position:static;display:inline-block;margin-top:7px}
}
