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

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