﻿.implementations-page [id] { scroll-margin-top:115px; }
.implementations-page[id] { scroll-margin-top:115px; }
.implementations-page [data-implementation-stage] { scroll-margin-top:190px; }
.implementation-heading { max-width:820px; }
.survey-implementation { padding-top:48px; }
.model-diagram.implementation-walkthrough { overflow:hidden; margin:32px 0 24px; padding:0; background:var(--diagram-surface,var(--theme-surface,#fff)); }
.implementation-controls { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-bottom:1px solid var(--diagram-line,var(--line)); }
.implementation-controls[hidden],.implementation-stage[hidden] { display:none; }
.implementation-controls button { display:flex; align-items:center; justify-content:center; gap:10px; min-width:0; min-height:58px; padding:12px; border:0; border-bottom:3px solid transparent; background:transparent; color:var(--diagram-ink,var(--ink)); font-weight:600; font-size:.9rem; }
.implementation-controls button+button { border-left:1px solid var(--diagram-line,var(--line)); }
.implementation-controls button>span { color:var(--muted); font-size:.75rem; font-weight:400; }
.implementation-controls button:hover { background:var(--theme-hover,var(--tint)); }
.implementation-controls button[aria-selected="true"] { border-bottom-color:var(--layer-color,var(--diagram-semantic)); background:var(--theme-soft,var(--tint)); }
.implementation-controls button:focus-visible { outline:2px solid var(--theme-focus,var(--forest)); outline-offset:-5px; }
.implementation-stage { display:grid; gap:28px; padding:clamp(20px,3vw,36px); min-width:0; }
.implementation-stage+.implementation-stage { border-top:1px solid var(--diagram-line,var(--line)); }
.implementation-walkthrough.is-enhanced .implementation-stage { border-top:0; }
.implementation-stage:focus-visible { outline:2px solid var(--theme-focus,var(--forest)); outline-offset:-5px; }
.survey-layer-summary { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; align-items:start; }
.implementation-stage-label { margin:0 0 12px; color:var(--layer-color); font-size:.7rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.implementation-stage-copy h3 { margin:0 0 12px; font-size:clamp(1.45rem,2.2vw,1.9rem); line-height:1.2; }
.implementation-stage-copy>p:last-child { max-width:520px; margin:0; font-size:.9rem; line-height:1.65; }
.survey-benefits { display:grid; gap:15px; margin:0; padding-left:24px; border-left:2px solid var(--layer-color); }
.survey-benefits dt { margin:0 0 3px; color:var(--diagram-ink,var(--ink)); font-size:.85rem; font-weight:650; }
.survey-benefits dd { margin:0; color:var(--muted); font-size:.83rem; line-height:1.55; }
.survey-walkthrough .model-node { justify-content:flex-start; gap:4px; padding:13px 15px; }
.survey-walkthrough .model-node-kind { font-size:.64rem; letter-spacing:.05em; }
.survey-walkthrough .model-node>strong { font-size:.95rem; line-height:1.3; }
.survey-walkthrough .survey-fields { list-style:none; padding:0; margin:7px 0 0; font-size:.77rem; line-height:1.5; }
.survey-fields li { padding:5px 0; border-top:1px solid var(--line); }
.survey-fields li:last-child { padding-bottom:0; }
.survey-fields li>span { margin-right:5px; color:var(--layer-color); font-size:.62rem; font-weight:700; text-transform:uppercase; }
.survey-source-model { display:grid; grid-template-columns:minmax(0,1fr) 46px minmax(0,1fr) 46px minmax(0,1fr); align-items:stretch; }
.survey-table-link { position:relative; align-self:center; height:1px; background:var(--diagram-line,var(--line)); }
.survey-table-link>span { position:absolute; bottom:6px; left:0; right:0; color:var(--muted); font-size:.6rem; text-align:center; white-space:nowrap; }
.survey-vault-model { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px 40px; align-items:stretch; }
.survey-vault-survey { grid-area:1 / 1; }
.survey-vault-link { grid-area:1 / 2; align-self:center; }
.survey-vault-question { grid-area:1 / 3; }
.survey-vault-survey-details { grid-area:2 / 1; }
.survey-vault-question-details { grid-area:2 / 3; }
.survey-vault-link::before,.survey-vault-link::after { content:""; position:absolute; top:50%; width:40px; border-top:1px solid var(--diagram-line,var(--line)); }
.survey-vault-link::before { right:100%; }
.survey-vault-link::after { left:100%; }
.survey-vault-survey-details::before,.survey-vault-question-details::before { content:""; position:absolute; bottom:100%; left:50%; height:29px; border-left:1px solid var(--diagram-line,var(--line)); }
.survey-vault-note { grid-area:2 / 2; align-self:center; margin:0; color:var(--muted); font-size:.8rem; line-height:1.65; text-align:center; }
.survey-stars { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.survey-star-group { min-width:0; }
.survey-star-group>h4 { margin:0 0 14px; font-size:.85rem; font-weight:650; }
.survey-star { position:relative; display:grid; grid-template-columns:minmax(0,1fr) minmax(128px,1.3fr) minmax(0,1fr); grid-template-rows:72px 120px 72px; gap:16px 12px; }
.survey-model-lines { position:absolute; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; }
.survey-model-lines path { fill:none; stroke:var(--diagram-line,var(--line)); stroke-width:1.3; vector-effect:non-scaling-stroke; }
.survey-star .model-node { z-index:1; align-self:stretch; justify-content:center; padding:8px 10px; border-radius:7px; }
.survey-star .model-node-kind { font-size:.55rem; letter-spacing:.025em; }
.survey-star .model-node>strong { font-size:.8rem; }
.survey-star .model-node>span { font-size:.67rem; line-height:1.3; }
.survey-star .survey-fields { margin-top:4px; font-size:.7rem; }
.survey-star .survey-fields li { padding:3px 0; }
.survey-fact { border-color:var(--layer-color); }
.star-north-west { grid-area:1 / 1; }
.star-north { grid-area:1 / 2; }
.star-north-east { grid-area:1 / 3; }
.star-west { grid-area:2 / 1; }
.star-center { grid-area:2 / 2; }
.star-east { grid-area:2 / 3; }
.star-south { grid-area:3 / 2; }
.survey-star-grain { grid-area:3 / 1 / 4 / 4; align-self:center; margin:0; color:var(--muted); font-size:.78rem; text-align:center; }
.survey-model-boundary { padding:18px 20px 20px; border:1px solid var(--diagram-line,var(--line)); border-radius:10px; }
.survey-model-title { margin:0 0 16px; color:var(--diagram-ink,var(--ink)); font-size:.85rem; font-weight:650; }
.survey-semantic-tables { position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:80px minmax(110px,auto); gap:30px 24px; }
.survey-semantic-tables>.model-node { z-index:1; justify-content:center; }
.survey-semantic-tables .survey-fields { font-size:.72rem; }
.survey-measures { z-index:1; align-self:center; display:flex; flex-direction:column; gap:5px; padding-left:18px; border-left:2px solid var(--layer-color); background:var(--diagram-surface); font-size:.75rem; line-height:1.45; color:var(--muted); }
.survey-measures>strong { margin-bottom:3px; font-size:.8rem; color:var(--diagram-ink,var(--ink)); }
.survey-consumers { position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; padding-top:28px; }
.survey-consumers::before { content:""; position:absolute; top:0; left:50%; height:14px; border-left:1px solid var(--diagram-line,var(--line)); }
.survey-consumers>span { position:relative; padding:11px 12px; border:1px solid var(--diagram-line,var(--line)); border-radius:7px; color:var(--diagram-ink,var(--ink)); font-size:.78rem; line-height:1.4; text-align:center; }
.survey-consumers>span::before { content:""; position:absolute; left:50%; bottom:100%; height:15px; border-left:1px solid var(--diagram-line,var(--line)); }
.survey-consumers>span:first-child::after { content:""; position:absolute; left:50%; bottom:calc(100% + 14px); width:calc(200% + 33px); border-top:1px solid var(--diagram-line,var(--line)); }
.survey-semantic-mobile-lines { display:none; }
.implementation-walkthrough>.model-caption { margin:0; padding:14px 24px; border-top:1px solid var(--diagram-line,var(--line)); font-weight:400; }
.survey-related-links { display:flex; flex-wrap:wrap; gap:16px 32px; align-items:center; }
@media(max-width:1000px) {
    .survey-stars { grid-template-columns:1fr; gap:28px; }
    .survey-star-group { width:100%; max-width:580px; margin:0 auto; }
    .survey-response-star { grid-template-rows:72px 120px 30px; }
    .survey-response-star .survey-model-lines { height:296px; }
}
@media(max-width:700px) {
    .survey-layer-summary { grid-template-columns:1fr; gap:20px; }
    .survey-benefits { grid-template-columns:1fr 1fr; gap:20px; padding-left:16px; }
    .survey-vault-model { grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 24px; }
    .survey-vault-survey { grid-area:1 / 1; }
    .survey-vault-survey-details { grid-area:1 / 2; }
    .survey-vault-link { grid-area:2 / 1; }
    .survey-vault-note { grid-area:2 / 2; }
    .survey-vault-question { grid-area:3 / 1; }
    .survey-vault-question-details { grid-area:3 / 2; }
    .survey-vault-link::before,.survey-vault-link::after { left:50%; right:auto; width:0; height:29px; border-top:0; border-left:1px solid var(--diagram-line,var(--line)); }
    .survey-vault-link::before { top:auto; bottom:100%; }
    .survey-vault-link::after { top:100%; }
    .survey-vault-survey-details::before,.survey-vault-question-details::before { top:50%; bottom:auto; left:auto; right:100%; height:0; width:24px; border-left:0; border-top:1px solid var(--diagram-line,var(--line)); }
}
@media(max-width:620px) {
    .survey-implementation { padding-top:32px; }
    .implementation-controls button { flex-direction:column; gap:4px; min-height:68px; padding:9px 4px; font-size:.72rem; line-height:1.35; }
    .implementation-controls button>span { font-size:.65rem; }
    .implementation-stage { gap:24px; padding:24px 16px; }
    .survey-source-model { grid-template-columns:1fr; }
    .survey-table-link { width:1px; height:30px; justify-self:center; }
    .survey-table-link>span { bottom:auto; top:8px; left:8px; right:auto; }
    .survey-walkthrough .model-node { padding:11px; }
    .survey-walkthrough .model-node>strong { font-size:.88rem; }
    .survey-benefits { gap:16px; }
    .survey-benefits dt { font-size:.78rem; }
    .survey-benefits dd { font-size:.76rem; }
    .survey-vault-model .model-node-kind { font-size:.58rem; }
    .survey-vault-model .survey-fields { font-size:.72rem; }
    .survey-vault-note { font-size:.72rem; }
    .survey-star { grid-template-columns:minmax(0,1fr) minmax(112px,1.3fr) minmax(0,1fr); column-gap:8px; }
    .survey-star .model-node { padding:7px; }
    .survey-star .model-node>strong { font-size:.76rem; }
    .survey-star .model-node-kind { font-size:.5rem; }
    .survey-star .model-node>span { font-size:.62rem; }
    .survey-star .survey-fields { font-size:.67rem; }
    .survey-model-boundary { padding:15px 12px; }
    .survey-model-title { font-size:.79rem; }
    .survey-semantic-tables { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:80px 110px 130px; gap:30px 20px; }
    .survey-semantic-tables>.model-node:nth-of-type(3) { grid-area:2 / 2; }
    .survey-semantic-tables>.model-node:nth-of-type(4) { grid-area:2 / 1; }
    .survey-semantic-tables>.model-node:nth-of-type(5) { grid-area:3 / 1; }
    .survey-measures { grid-area:3 / 2; padding-left:12px; font-size:.69rem; }
    .survey-measures>strong { font-size:.75rem; }
    .survey-semantic-desktop-lines { display:none; }
    .survey-semantic-mobile-lines { display:block; }
    .survey-consumers { gap:8px; }
    .survey-consumers>span { padding:10px 6px; font-size:.68rem; }
    .survey-consumers>span:first-child::after { width:calc(200% + 17px); }
    .implementation-walkthrough>.model-caption { padding:14px 16px; font-size:.72rem; }
}
@media print {
    .implementation-controls { display:none!important; }
    .implementation-stage[hidden] { display:grid!important; }
    .implementation-stage { break-inside:avoid; }
    .implementation-walkthrough { overflow:visible; }
}
