/* Module 07: scoped counterpart of the Module 01–03 relationship language. */
.m7-model{width:100%;min-width:0;display:grid;gap:16px;color:#203448;container-type:inline-size}
.m7-model *{box-sizing:border-box}
.m7-kicker{font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#607487}
.m7-scene{display:grid;gap:14px;padding:16px;border:1px solid #ccd8e2;border-radius:12px;background:linear-gradient(180deg,#fbfcfe,#f4f8fb);min-width:0}
.m7-model.analogy .m7-kicker{text-align:center}
.m7-boundary{min-width:0;display:grid;gap:12px;border:1px solid #a8c4db;background:#f4f9fe;border-radius:11px;padding:14px}
.m7-boundary.forest{border:2px solid #b6a7cf;background:#faf7fe}
.m7-boundary.host{border-color:#a8c9b9;background:#f5fbf8}
.m7-boundary.service{border-color:#bba9d6;background:#f8f4fc}
.m7-boundary.resource{border-color:#b4c7d4;background:#f6fafc}
.m7-head{display:flex;align-items:center;gap:10px;min-width:0}
.m7-head>div{flex:1;min-width:0}
.m7-head b{display:block;font-size:14px;line-height:1.35;color:#203448}
.m7-head small{display:block;font-size:11px;line-height:1.45;color:#637181;margin-top:3px}
.m7-tag{flex:0 0 auto;border:1px solid #c7d3df;border-radius:999px;background:#fff;padding:4px 7px;font-size:9px;font-weight:800;color:#52687d;text-transform:uppercase}
.m7-icon{width:29px;height:29px;object-fit:contain;flex:0 0 auto}
.m7-emoji{font-size:24px;line-height:29px;flex:0 0 auto}
.m7-node{width:100%;min-width:0;border:1px solid #ccd7e1;border-radius:9px;padding:12px;background:#fff;text-align:left;color:inherit;font:inherit;display:block}
button.m7-node{cursor:pointer}
.m7-node b{display:block;font-size:12px;line-height:1.4}
.m7-node small{display:block;font-size:11px;line-height:1.45;color:#647383;margin-top:4px}
.m7-node em{display:inline-block;font-style:normal;font-size:9px;border:1px solid #d4dde5;border-radius:999px;padding:3px 6px;margin-top:7px;color:#52687d;background:#fff}
.m7-node.identity{background:#f2f7fe;border-color:#afc9e5}.m7-node.ticket{background:#f8f3fc;border-color:#c7b5df}.m7-node.directory{background:#f1fafb;border-color:#a8cdd4}.m7-node.allow{background:#f0faf5;border-color:#a5ccb7}.m7-node.deny{background:#fff5f4;border-color:#e2b5b0}.m7-node.policy{background:#fffaf1;border-color:#ddc99f}
.m7-node.sel{outline:2px solid #2f6f8f;outline-offset:2px}
.m7-node:focus-visible{outline:3px solid #2f6f8f;outline-offset:3px}
.m7-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0}
.m7-row{display:grid;grid-template-columns:minmax(0,1fr) 106px minmax(0,1fr);gap:10px;align-items:center;min-width:0}
.m7-row.host-row{grid-template-columns:minmax(0,.75fr) 106px minmax(0,1.3fr)}
.m7-link{display:grid;gap:3px;text-align:center;align-content:center;font-size:10px;line-height:1.35;color:#526d82}
.m7-link strong{font-size:23px;font-weight:700;line-height:1;color:#527a91}
.m7-link small{font-size:10px;line-height:1.4}
.m7-down{display:grid;justify-items:center;gap:4px;text-align:center;font-size:10px;color:#637181}.m7-down strong{font-size:24px;color:#527a91;line-height:1}
.m7-lane{display:grid;gap:10px;border:1px solid #d4dee7;border-radius:10px;background:#fff;padding:12px;min-width:0}
.m7-label{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#52687d}
.m7-callout,.m7-summary{border-left:4px solid #2f6f8f;background:#f4f9fc;border-radius:4px;padding:12px 14px;font-size:12px;line-height:1.6;color:#40566b}
.m7-limit{border:1px dashed #cbd5df;border-radius:6px;padding:12px 14px;font-size:11px;line-height:1.5;color:#637181}
.m7-sequence{display:grid;gap:10px}.m7-step{display:grid;grid-template-columns:26px minmax(0,1fr);gap:9px;align-items:start}.m7-step>span{display:grid;place-items:center;background:#244f73;color:#fff;border-radius:7px;font-size:11px;font-weight:800;min-height:28px}.m7-step .m7-row{grid-template-columns:minmax(0,1fr) 110px minmax(0,1fr)}
.m7-branch{display:grid;gap:9px;align-content:start}.m7-branch>small{font-size:10px;color:#637181;text-align:center;line-height:1.4}
.m7-order{display:flex;flex-wrap:wrap;gap:7px;align-items:center;font-size:11px;color:#52687d}.m7-order b{background:#fff;border:1px solid #ddc99f;border-radius:6px;padding:6px 9px}
.m7-relation-note{font-size:11px;line-height:1.5;color:#637181;border-top:1px dashed #cbd5df;padding-top:10px}
.m7-sources{font-size:10px;line-height:1.5;color:#637181}.m7-sources a{color:#2f6f8f;text-decoration:underline}
@container(max-width:520px){.m7-row,.m7-row.host-row,.m7-step .m7-row{grid-template-columns:1fr}.m7-link strong{transform:rotate(90deg)}.m7-link{padding:3px}.m7-head{flex-wrap:wrap}.m7-grid{grid-template-columns:1fr}.m7-scene{padding:12px}.m7-boundary{padding:12px}}

.m7-head{flex-wrap:wrap}.m7-head>div{flex:1 1 130px}.m7-order-list{display:grid;gap:8px}.m7-order-list .m7-step:not(:last-child){padding-bottom:8px;border-bottom:1px dashed #ccd8e2}
