/* The current-state map's canvas, board and inspector pattern, adapted to proposed horizons. */
:root{--font-display:var(--sans);--font-sans:var(--sans);--font-mono:var(--mono)}
body{background:var(--surface)}.project-header,main,footer{max-width:1800px}.project-header{padding-top:24px}.draft{margin:22px 0 10px}.intro{font-size:16px;line-height:1.6;max-width:110ch;margin-top:12px}.scope-note{font-size:12px;max-width:140ch;margin-top:10px}nav{margin-top:16px;gap:6px 24px}nav a{font-size:12px;min-height:32px}#architecture{padding-top:28px}.section-heading h2{font-size:22px}.section-intro{font-size:14px;max-width:110ch}.switcher{margin-top:18px}.switcher button{font-size:13px;padding:9px 18px;min-height:38px}.document-records{margin-top:30px}.doc-block{margin-top:12px;background:var(--paper);border:1px solid var(--rule);scroll-margin-top:16px}.doc-block>summary{display:flex;align-items:center;gap:18px;justify-content:space-between;cursor:pointer;padding:18px 22px;list-style:none}.doc-block>summary::-webkit-details-marker{display:none}.doc-block>summary h2{font-size:18px}.doc-block>summary span{font-size:12px;color:var(--accent);white-space:nowrap}.doc-block>summary span:after{content:' +';font-size:18px}.doc-block[open]>summary span:after{content:' −'}.doc-body{padding:4px 22px 24px}.doc-body>.section-intro{margin-top:0}
.map-workspace{margin-top:18px}.map-summary{display:flex;justify-content:space-between;gap:20px;align-items:start;background:var(--paper);padding:16px 20px}.map-summary h3{font-size:17px}.map-summary p{font-size:12px;line-height:1.6;margin-top:6px;max-width:110ch}.map-stats{display:flex;gap:22px;flex-shrink:0}.map-stat{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--muted)}.map-stat strong{color:var(--ink);font-size:24px;line-height:1.2;font-weight:500}.map-tabs{display:flex;gap:0;margin-top:16px}.map-tabs button{font-size:14px;min-height:38px;padding:9px 24px;background:var(--paper);border:1px solid var(--rule);color:var(--ink)}.map-tabs button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--paper)}.map-toolbar{display:flex;align-items:end;flex-wrap:wrap;gap:10px 16px;background:var(--paper);padding:12px;margin-top:10px}.map-toolbar label{display:grid;gap:5px;font-size:11px;color:var(--muted)}.map-toolbar input,.map-toolbar select{font:12px var(--sans);padding:7px 10px;background:var(--surface);border:1px solid var(--rule);min-height:32px;max-width:100%;color:var(--ink);border-radius:0}.map-toolbar label.search{flex:1 1 220px}.map-toolbar label.search input{width:100%}.map-toolbar select{width:180px}.map-action{min-height:32px;border:1px solid var(--rule);background:var(--surface);font-size:12px;color:var(--ink);padding:6px 12px}.map-action:disabled{opacity:.4;cursor:default}.map-counter{margin:0;font-size:11px;color:var(--muted)}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;margin-top:12px;align-items:start}.map-stage{min-width:0}.map-canvas{height:640px;background:var(--paper);border:1px solid var(--rule);overflow:hidden;position:relative;touch-action:none}.map-canvas svg{width:100%;height:100%;display:block;cursor:grab}.map-canvas svg.is-panning{cursor:grabbing}.map-canvas .map-node{cursor:pointer;outline:none}.map-node rect{fill:var(--paper);stroke:var(--rule);stroke-width:1.5}.map-node text{fill:var(--ink);font-family:var(--sans)}.map-node .node-name{font-size:15px;font-weight:600}.map-node .node-tech{font-size:11px;fill:var(--muted)}.map-node .node-state{font-size:10px;fill:var(--sand-ink)}.map-node.is-input rect{fill:var(--mint)}.map-node.is-compute rect{fill:var(--blue)}.map-node.is-data rect{fill:var(--sand)}.map-node.is-selected rect{stroke:var(--accent);stroke-width:3}.map-node.is-neighbour rect{stroke:var(--accent);stroke-width:2}.map-node.is-muted,.map-edge.is-muted{opacity:.13}.map-node:focus rect{stroke:var(--accent);stroke-width:4}.map-lane rect{fill:var(--surface);stroke:var(--rule);stroke-width:1}.map-lane text{fill:var(--muted);font:12px var(--sans);font-weight:600}.map-edge{cursor:pointer}.map-edge path.edge-line{stroke:var(--ink-faint);stroke-width:1.5;fill:none}.map-edge path.edge-hit{stroke:transparent;stroke-width:15;fill:none}.map-edge.is-active path.edge-line,.map-edge:hover path.edge-line{stroke:var(--accent);stroke-width:3}.map-edge text{font:10px var(--sans);fill:var(--ink);paint-order:stroke;stroke:var(--paper);stroke-width:5px;stroke-linejoin:round}.map-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap;background:var(--surface);padding:9px 10px}.map-tools button{min-height:30px;border:1px solid var(--rule);background:var(--paper);padding:3px 10px;font-size:12px;color:var(--ink)}.map-tools label{font-size:11px;display:inline-flex;align-items:center;gap:6px;margin-left:10px}.map-tools span{font-size:11px;color:var(--muted);margin-left:auto}.map-hint{font-size:11px;color:var(--muted);margin-top:8px}.map-details{background:var(--paper);border:1px solid var(--rule);position:sticky;top:12px;max-height:calc(100svh - 24px);overflow:auto}.map-details-head{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--ink);color:var(--paper);font-size:11px}.map-details-head button{border:1px solid var(--rule);background:transparent;color:var(--paper);font-size:11px;min-height:26px;padding:3px 9px}.map-detail-body{padding:18px}.map-detail-body h3{font-size:20px;line-height:1.3}.map-detail-body h4{font-size:12px;line-height:1.5;color:var(--accent);margin:18px 0 6px}.map-detail-body p,.map-detail-body li{font-size:12px;line-height:1.7}.map-detail-body ul{padding-left:18px}.map-detail-body .detail-host{font-size:11px;color:var(--muted)}.detail-flow{display:block;text-align:left;color:var(--ink);background:var(--surface);border:0;width:100%;padding:9px 11px;font-size:11px;line-height:1.5;margin-top:6px}.detail-flow:hover{background:var(--mint)}.map-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:11px;color:var(--muted);padding:10px 0}.map-legend i{display:inline-block;width:10px;height:10px;background:var(--mint);margin-right:5px}.map-legend i.compute{background:var(--blue)}.map-legend i.data{background:var(--sand)}.map-workspace .tm-panel{padding:0;margin:0}.map-workspace .tm-panel-head b{font-family:var(--sans)}.map-workspace .tm-bt{background:var(--paper);border-left:3px solid var(--amber)}.map-workspace .tm-bt.is-sel{outline:2px solid var(--accent)}.map-workspace .tm-bt.is-linked{background:var(--mint)}.map-workspace .tm-board{padding:0}.map-flow-table{margin-top:20px}.map-flow-table h3{font-size:17px}.map-flow-table .table-scroll{margin-top:10px}.map-flow-table table{min-width:540px;font-size:12px}.map-flow-table td,.map-flow-table th{padding:10px 12px}.map-flow-table tr{cursor:pointer}.map-flow-table tr.is-active{background:var(--mint)}.map-flow-table tbody tr:hover{background:var(--mint)}.map-plan{margin-top:12px;border:1px solid var(--rule);background:var(--paper);padding:12px 16px}.map-plan summary{font-size:13px;color:var(--accent);cursor:pointer}.map-plan .architecture-summary{margin-top:14px}.map-plan .architecture-summary>div{background:var(--surface)}.map-plan .architecture-summary p,.map-plan .architecture-summary li{font-size:13px}.map-plan .flow-end{font-size:13px}
@media(max-width:1100px){.map-layout{grid-template-columns:1fr}.map-details{position:static;max-height:500px}.map-canvas{height:560px}.map-summary{flex-wrap:wrap}.map-stats{gap:28px}}
@media(max-width:560px){.project-header,main,footer{padding-inline:18px}h1{font-size:28px}.intro{font-size:14px}.map-toolbar select{width:150px}.map-summary{padding:14px}.map-canvas{height:440px}.map-tools label{margin-left:0}.map-tools span{display:none}.map-stats{gap:22px}.doc-block>summary{padding:14px}.doc-block>summary h2{font-size:16px}.doc-body{padding:4px 14px 20px}}
/* Show system names and integration labels as primary information. */
.map-canvas{height:820px}.map-edge text{font-size:12px;stroke-width:5px}.map-node .node-name{font-size:17px}.map-node .node-tech{font-size:12px}.map-lane text{font-size:14px}.map-details .detail-host{font-size:12px}#stack{padding-top:32px}.map-flow-table table td:first-child{width:54px}.map-flow-table table td:nth-child(2){width:38%}
@media(max-width:1100px){.map-canvas{height:900px}}
@media(max-width:560px){.map-canvas{height:680px}}

.cost-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:18px}.cost-summary>div{background:var(--mint);padding:22px;display:flex;flex-direction:column;gap:9px}.cost-summary span{font-size:13px}.cost-summary strong{font-size:30px;font-weight:500}.cost-summary small,.cost-note{font-size:12px;line-height:1.7;color:var(--muted)}.cost-note{margin-top:16px;max-width:120ch}.cost-notes{margin-top:20px;background:var(--paper);padding:18px 22px}.cost-notes summary{cursor:pointer;color:var(--accent);font-size:14px}.cost-notes p{font-size:13px;max-width:110ch}#cost-controls input{width:150px}#cost-breakdown td:nth-child(2){white-space:nowrap}#costs{padding-top:36px}@media(max-width:700px){.cost-summary{grid-template-columns:1fr}.cost-summary>div{padding:18px}}
.phase-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:20px}.phase-overview article{background:var(--paper);padding:20px}.phase-overview .phase{font-size:13px;margin-bottom:10px}.phase-overview h3{font-size:17px}.phase-overview article>p:not(.phase){font-size:13px;line-height:1.7}.scenario-scope,.cost-change{margin-top:20px;background:var(--paper);padding:20px}.scenario-scope h3,.cost-change h3{font-size:18px}.scenario-scope p,.cost-change p{font-size:13px}.cost-change .table-scroll{margin-top:14px}.cost-change table td{white-space:nowrap}#stack-content table{min-width:850px}#stack-content td{font-size:13px}@media(max-width:800px){.phase-overview{grid-template-columns:1fr}}

#architecture>.phase-overview{margin-top:20px}#architecture>.phase-overview article{background:var(--paper)}#architecture>.phase-overview article.is-current{background:var(--mint)}#architecture>.phase-overview article>p:not(.phase){font-size:12px}#architecture>.phase-overview article>p:last-child{color:var(--muted)}
.detail-mode{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;margin-top:18px}.detail-mode label{font-size:13px;display:flex;align-items:center;gap:10px}.detail-mode select{font:13px var(--sans);background:var(--paper);border:1px solid var(--rule);color:var(--ink);padding:8px 12px}.detail-mode>span{font-size:12px;color:var(--muted)}.contract-fields{display:grid;grid-template-columns:70px minmax(0,1fr);gap:8px;font-size:12px;line-height:1.6}.contract-fields dt{color:var(--muted)}.contract-fields dd{margin:0;overflow-wrap:anywhere}.map-workspace:fullscreen{background:var(--surface);padding:20px;overflow:auto}.map-workspace:fullscreen .map-layout{grid-template-columns:minmax(0,1fr) 320px}.map-workspace:fullscreen .map-canvas{height:calc(100svh - 290px);min-height:440px}

.map-detail-note{font-size:12px;color:var(--muted);margin-top:16px}
