/* Module 04–08 relationship-first visual layer. Scoped to relv2-* classes. */
.relv2-flow{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;width:100%}
.relv2-wideflow{gap:10px}
.relv2-five{gap:8px}
.relv2-stack,.relv2-parallel,.relv2-master,.relv2-processing,.relv2-decision,.relv2-badchange,.relv2-repl,.relv2-resilience-master,.relv2-orthogonal{display:flex;flex-direction:column;gap:16px;width:100%}
.relv2-node,.relv2-boundary,.relv2-link-card,.relv2-trust-label,.relv2-token{border:1px solid #cbd5e1;background:#fff;border-radius:14px;padding:14px 16px;min-width:150px;text-align:center;color:#0f172a;box-shadow:0 4px 14px rgba(15,23,42,.06)}
button.relv2-node,button.relv2-boundary,button.relv2-link-card,button.relv2-trust-label,button.relv2-token{cursor:pointer;font:inherit}
.relv2-node b,.relv2-boundary b,.relv2-link-card b,.relv2-trust-label b,.relv2-token b{display:block;font-weight:800;margin-bottom:4px}
.relv2-node span,.relv2-boundary span,.relv2-link-card span,.relv2-trust-label span,.relv2-token span{display:block;font-size:12px;line-height:1.4;color:#475569}
.relv2-arrow{font-size:25px;font-weight:800;color:#64748b;flex:0 0 auto}
.relv2-plus{font-size:22px;font-weight:800;color:#64748b}
.relv2-connector{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:130px;color:#334155;text-align:center;position:relative;padding:0 8px}
.relv2-connector::before,.relv2-connector::after{content:"";height:2px;background:#94a3b8;flex:1;width:36px;margin:4px 0}
.relv2-connector b{font-size:12px;color:#0f172a}
.relv2-connector span{font-size:11px;color:#64748b}
.relv2-boundary{position:relative;background:#f8fafc}
.relv2-boundary-title{font-size:10px;font-weight:900;letter-spacing:.08em;color:#64748b;margin-bottom:8px;text-transform:uppercase}
.relv2-dc{border-color:#93c5fd;background:#eff6ff}
.relv2-domain{border-color:#86efac;background:#f0fdf4}
.relv2-forest{border:2px solid #c4b5fd;background:#faf5ff;padding:18px}
.relv2-site{border-color:#fbbf24;background:#fffbeb}
.relv2-ou{border-color:#fdba74;background:#fff7ed}
.relv2-gpo{border-color:#67e8f9;background:#ecfeff}
.relv2-live{border-color:#93c5fd;background:#eff6ff}
.relv2-recovery{border-color:#c4b5fd;background:#faf5ff}
.relv2-auth{border-color:#60a5fa;background:#eff6ff}
.relv2-authz{border-color:#34d399;background:#ecfdf5}
.relv2-choice{border:2px solid #60a5fa;background:#eff6ff}
.relv2-result{border-color:#34d399;background:#ecfdf5}
.relv2-badge{display:inline-block!important;margin-top:8px;padding:5px 9px;border-radius:999px;background:#0f172a;color:#fff!important;font-size:10px!important;font-weight:800}
.relv2-lane{border:1px solid #e2e8f0;background:#f8fafc;border-radius:14px;padding:14px}
.relv2-lane-label{font-size:10px;font-weight:900;letter-spacing:.08em;color:#475569;margin-bottom:10px;text-transform:uppercase}
.relv2-master-client{align-self:center;min-width:260px;background:#0f172a;color:#fff}
.relv2-master-client span{color:#cbd5e1}
.relv2-master-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.relv2-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%}
.relv2-scope-model{display:grid;grid-template-columns:minmax(170px,.8fr) minmax(110px,.5fr) minmax(280px,1.6fr);gap:16px;align-items:center;width:100%}
.relv2-link-column{display:flex;flex-direction:column;gap:9px}
.relv2-link{padding:8px 10px;border-radius:10px;background:#e0f2fe;color:#075985;font-size:12px;font-weight:800;text-align:center}
.relv2-ou-row,.relv2-domain-row,.relv2-site-row,.relv2-shared-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
.relv2-shared-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.relv2-shared,.relv2-trust-strip,.relv2-rulebar,.relv2-cross-note{padding:10px 12px;border-radius:10px;background:#eef2ff;color:#3730a3;font-size:12px;font-weight:700;text-align:center}
.relv2-trust-strip{margin-top:12px;background:#ecfdf5;color:#047857}
.relv2-rulebar{background:#fff7ed;color:#9a3412;margin-top:6px}
.relv2-cross-note{background:#f1f5f9;color:#334155}
.relv2-orthogonal .relv2-layer{border:1px dashed #cbd5e1;border-radius:14px;padding:14px}
.relv2-branches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.relv2-branch{display:flex;align-items:center;justify-content:center;gap:10px;padding:12px;border:1px solid #e2e8f0;border-radius:12px;background:#fff}
.relv2-yes,.relv2-no{font-size:10px;font-weight:900;padding:5px 8px;border-radius:999px}
.relv2-yes{background:#dcfce7;color:#166534}
.relv2-no{background:#fee2e2;color:#991b1b}
.relv2-scope-branches{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.relv2-danger-node,.relv2-danger{border-color:#fca5a5!important;background:#fef2f2!important;color:#991b1b!important}
.relv2-danger span{color:#b91c1c!important}
.relv2-independent{border:1px dashed #8b5cf6;background:#faf5ff;border-radius:14px;padding:14px;display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap}
.relv2-independent>span{font-size:11px;font-weight:800;color:#6d28d9;text-transform:uppercase;letter-spacing:.05em}
.relv2-vertical{align-self:center;min-width:240px}
.relv2-vertical::before,.relv2-vertical::after{width:2px;height:24px}
.relv2-rodc,.relv2-multiforest,.relv2-trust-model{display:grid;grid-template-columns:minmax(190px,1fr) minmax(190px,.9fr) minmax(190px,1fr);gap:16px;align-items:center;width:100%}
.relv2-oneway,.relv2-trust-middle{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;color:#334155}
.relv2-oneway b,.relv2-access-arrow{font-size:12px;font-weight:900;color:#0f172a}
.relv2-trust-label{border-color:#a78bfa;background:#f5f3ff;min-width:180px}
.relv2-authz-box{margin-top:10px;padding:8px;border-radius:8px;background:#dcfce7;color:#166534;font-size:11px;font-weight:800}
.relv2-small{font-size:11px;color:#64748b;text-align:center}
.relv2-down{text-align:center;color:#64748b;font-weight:900}
.relv2-spacer{min-width:150px}
.relv2-analogy-shell{display:flex;flex-direction:column;gap:16px;width:100%}
.relv2-analogy-scene{border:1px solid #fde68a;background:linear-gradient(180deg,#fffbeb 0%,#fff 100%);border-radius:16px;padding:18px}
.relv2-analogy-copy{background:#fff7ed;border-left:4px solid #f59e0b;padding:12px 14px;border-radius:8px;color:#7c2d12;line-height:1.55}
.relv2-analogy-limit{background:#f8fafc;border:1px solid #e2e8f0;padding:12px 14px;border-radius:8px;color:#475569;font-size:12px;line-height:1.5}
.relv2-analogy-scene .relv2-node,.relv2-analogy-scene .relv2-boundary,.relv2-analogy-scene .relv2-link-card,.relv2-analogy-scene .relv2-trust-label{box-shadow:none}
@media (max-width:1100px){.relv2-master-grid,.relv2-split,.relv2-ou-row,.relv2-domain-row,.relv2-site-row,.relv2-shared-grid,.relv2-branches{grid-template-columns:1fr}.relv2-scope-model,.relv2-rodc,.relv2-multiforest,.relv2-trust-model{grid-template-columns:1fr}.relv2-scope-branches{grid-template-columns:repeat(2,minmax(0,1fr))}.relv2-flow{gap:10px}}