/* Origination Map (Research/mockups/map.html), scoped under .mapwrap. Layout and rules as published. */
.mapwrap{max-width:1240px;margin:0 auto;padding-inline:0;padding-block:6px 30px;display:grid;gap:22px;width:100%}
.mapwrap h1{font-family:var(--f-display);font-weight:700;font-size:clamp(28px,4vw,42px);line-height:1.08;margin:4px 0 6px;text-wrap:balance}
.mapwrap .lede{margin:0;color:var(--muted);max-width:78ch;font-size:15px}
.mapwrap .funnel{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:var(--paper);border:1px solid var(--rule)}
@media (max-width:900px){.mapwrap .funnel{grid-template-columns:repeat(2,minmax(0,1fr))}}
.mapwrap .step{padding:14px 16px;border-right:1px solid var(--rule);display:grid;gap:4px;min-width:0}
.mapwrap .step:last-child{border-right:0}
.mapwrap .step b{font:500 clamp(20px,2.4vw,28px) var(--f-data);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.mapwrap .step span{font-size:12.5px;color:var(--muted)}
.mapwrap .step em{font-style:normal;font:500 10.5px var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.mapwrap .step.key{background:var(--soft)} .mapwrap .step.key b{color:var(--accent)}
.mapwrap .cover{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:12.5px;color:var(--muted)}
.mapwrap .meter{width:180px;max-width:100%;height:6px;background:var(--soft);position:relative}
.mapwrap .meter i{position:absolute;inset:0 auto 0 0;background:var(--accent)}
.mapwrap .controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.mapwrap .seg{display:flex;flex-wrap:wrap;border:1px solid var(--rule);background:var(--paper)}
.mapwrap .seg button{font:500 12.5px var(--f-body);color:var(--muted);background:transparent;border:0;border-right:1px solid var(--rule);padding:8px 12px;cursor:pointer}
.mapwrap .seg button:last-child{border-right:0}
.mapwrap .seg button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.mapwrap path:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mapwrap .tag{font:500 11px var(--f-body);color:var(--muted)}
.mapwrap .main{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:18px;align-items:start}
@media (max-width:960px){.mapwrap .main{grid-template-columns:1fr}}
.mapwrap .maps{background:var(--paper);border:1px solid var(--rule);padding:14px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:14px}
@media (max-width:620px){.mapwrap .maps{grid-template-columns:1fr}}
.mapwrap .mapbox{display:grid;gap:6px;min-width:0;align-content:start}
.mapwrap .mapbox h2{font:600 11px var(--f-body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0}
.mapwrap svg{width:100%;height:auto;display:block}
.mapwrap path.d{stroke:var(--edge);stroke-width:.25;cursor:pointer}
.mapwrap #ldn path.d{stroke-width:.6}
.mapwrap path.d:hover{stroke:var(--ink);stroke-width:.8}
.mapwrap path.d.sel{stroke:var(--brg);stroke-width:1.4}
.mapwrap .q0{fill:var(--q0)}.mapwrap .q1{fill:var(--q1)}.mapwrap .q2{fill:var(--q2)}.mapwrap .q3{fill:var(--q3)}.mapwrap .q4{fill:var(--q4)}.mapwrap .q5{fill:var(--q5)}.mapwrap .q6{fill:var(--q6)}.mapwrap .qn{fill:var(--nodata)}
.mapwrap .legend{display:flex;align-items:center;gap:0;font:11px var(--f-data);color:var(--muted);flex-wrap:wrap}
.mapwrap .legend .sw{width:26px;height:9px;display:inline-block}
.mapwrap .legend .lab{margin:0 8px 0 4px}
.mapwrap .dossier{background:var(--paper);border:1px solid var(--rule);padding:18px;display:grid;gap:14px;min-width:0}
.mapwrap .dossier h3{font-family:var(--f-display);font-size:26px;margin:0;line-height:1.1;font-weight:700}
.mapwrap .sub{color:var(--muted);font-size:12.5px}
.mapwrap .stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px}
.mapwrap .stat span{display:block;font:500 10.5px var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.mapwrap .stat b{font:500 21px var(--f-data);font-variant-numeric:tabular-nums}
.mapwrap .mix{display:flex;height:10px;width:auto;background:var(--soft)} .mapwrap .mix i{height:100%}
.mapwrap .keyrow{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--muted)}
.mapwrap .keyrow em{display:inline-block;width:9px;height:9px;margin-right:5px;vertical-align:-1px}
.mapwrap h4{font:600 11px var(--f-body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0}
.mapwrap .rows{display:grid;gap:7px}
.mapwrap .row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;align-items:center;font-size:13px}
.mapwrap .row .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mapwrap .row .n{font-family:var(--f-data);font-variant-numeric:tabular-nums;text-align:right}
.mapwrap .row .tr{grid-column:1/-1;height:5px;background:var(--soft)} .mapwrap .row .tr i{display:block;height:100%}
.mapwrap .chip{display:inline-block;font:600 9.5px var(--f-body);letter-spacing:.06em;text-transform:uppercase;padding:1px 6px;border:1px solid currentColor;margin-left:6px;vertical-align:1px}
.mapwrap .c-btl{color:var(--btl)} .mapwrap .c-bridging{color:var(--brg)} .mapwrap .c-bank{color:var(--bnk)}
.mapwrap .lower{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:18px;align-items:start}
@media (max-width:960px){.mapwrap .lower{grid-template-columns:1fr}}
.mapwrap .panel{background:var(--paper);border:1px solid var(--rule);padding:18px;display:grid;gap:12px;min-width:0}
.mapwrap .panel h2{font-family:var(--f-display);font-size:22px;margin:0;font-weight:700}
.mapwrap .league{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 22px}
@media (max-width:620px){.mapwrap .league{grid-template-columns:1fr}}
.mapwrap .bars{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;align-items:end;height:170px}
.mapwrap .bar{display:grid;grid-template-rows:auto 1fr auto;height:100%;text-align:center;font:11px var(--f-data);color:var(--muted);min-width:0}
.mapwrap .bar .col{align-self:end;background:var(--accent);width:100%}
.mapwrap .bar .v{color:var(--ink);font-variant-numeric:tabular-nums}
.mapwrap .method{display:grid;gap:8px;max-width:95ch}
.mapwrap .method ul{margin:0;padding-left:18px;display:grid;gap:5px}
.mapwrap .method p{margin:0;color:var(--muted)}
/* app-only addition: step 1 -> step 2 link from the dossier */
.mapwrap .openq{display:inline-block;justify-self:start;background:var(--accent);color:#fff;text-decoration:none;padding:8px 14px;font:600 13px var(--f-body)}
.mapwrap .openq:hover{filter:brightness(1.08)}

/* ---- additions beyond map.html: tools, tooltip, deltas, overlays, call list, lender layer ---- */
.mapwrap .maphead{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:end}
@media (max-width:900px){.mapwrap .maphead{grid-template-columns:1fr}}
.mapwrap .tools{display:grid;gap:8px;justify-items:end}
.mapwrap .search{display:flex;gap:0}
.mapwrap .search input{width:260px;max-width:60vw;padding:8px 10px;border:1px solid var(--rule);border-right:0;background:var(--paper);color:var(--ink);font:13px var(--f-body)}
.mapwrap .toolrow{display:flex;gap:8px}
.mapwrap .btn{background:var(--accent);color:#fff;border:0;padding:8px 12px;font:600 12.5px var(--f-body);cursor:pointer}
.mapwrap .btn.ghost{background:var(--paper);color:var(--accent);border:1px solid var(--rule)}
.mapwrap .delta{display:block;font:500 11px var(--f-data);color:var(--muted);font-style:normal}
.mapwrap .delta.up{color:var(--ok)} .mapwrap .delta.down{color:var(--bad)}
.mapwrap .seg.ov button em{display:inline-block;width:9px;height:9px;margin-right:6px;vertical-align:-1px;opacity:.9}
.mapwrap .chip.lender{font:600 11px var(--f-body);letter-spacing:.04em;text-transform:none;padding:4px 10px;border:1px solid var(--accent);color:var(--accent);margin:0}
.mapwrap .chip.lender button{background:none;border:0;color:inherit;cursor:pointer;font-size:14px;padding:0 0 0 6px}
.mapwrap path.d{transition:fill .45s ease}
.mapwrap .ovl path{pointer-events:none}
.mapwrap .maps.big{grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr)}
.mapwrap .mini{background:none;border:1px solid var(--rule);color:var(--muted);font:500 10px var(--f-body);letter-spacing:.06em;text-transform:uppercase;padding:1px 7px;margin-left:8px;cursor:pointer;vertical-align:1px}
.mapwrap .tip{position:absolute;z-index:20;width:290px;background:var(--paper);color:var(--ink);border:1px solid var(--rule);box-shadow:0 10px 30px rgba(0,0,0,.18);padding:10px 12px;font-size:12px;pointer-events:none;display:grid;gap:6px}
.mapwrap .tip b{font:700 15px var(--f-display)} .mapwrap .tip > span{color:var(--muted);margin-left:6px}
.mapwrap .tip .tv{font:500 20px var(--f-data);font-variant-numeric:tabular-nums;line-height:1.1} .mapwrap .tip .tv small{font:11px var(--f-body);color:var(--muted);margin-left:6px}
.mapwrap .tip .tt{color:var(--muted)}
.mapwrap .dhead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.mapwrap .flags{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--muted)}
.mapwrap .flags em{display:inline-block;width:9px;height:9px;margin-right:5px;vertical-align:-1px}
.mapwrap .stat small{display:block;color:var(--muted);font-size:11px}
.mapwrap .detail{border-top:1px solid var(--rule);padding-top:12px;display:grid;gap:10px}
.mapwrap table.calls{width:100%;border-collapse:collapse;font-size:12.5px;background:transparent;border:0}
.mapwrap table.calls th{font:600 10px var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:left;padding:4px 6px;border-bottom:1px solid var(--rule);background:transparent;position:static}
.mapwrap table.calls td{padding:6px;border-bottom:1px solid var(--soft);vertical-align:top;white-space:normal;font-size:12.5px}
.mapwrap table.calls td.num,.mapwrap table.calls th.num{text-align:right;font-family:var(--f-data);font-variant-numeric:tabular-nums;white-space:nowrap}
.mapwrap table.calls tbody tr{cursor:pointer} .mapwrap table.calls tbody tr:hover td{background:var(--soft)}
.mapwrap .nm.lk{cursor:pointer;text-decoration:underline dotted var(--muted);text-underline-offset:3px}
.mapwrap .row.lrow{cursor:pointer;padding:2px 4px;margin:0 -4px}
.mapwrap .row.lrow:hover{background:var(--soft)}
.mapwrap .row.lrow.on{background:var(--soft);outline:1px solid var(--accent)}
.mapwrap{position:relative}
@media (prefers-reduced-motion: reduce){.mapwrap path.d{transition:none}}

/* ---- market context, lender behaviour, borrower behaviour ---- */
.mapwrap .stats.four{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.mapwrap .stat b.neg{color:var(--bad)} .mapwrap .stat b.pos{color:var(--ok)}
.mapwrap .market{display:grid;gap:8px;border-top:1px solid var(--rule);padding-top:12px}
.mapwrap .lprof{gap:14px}
.mapwrap .lprof h2 .chip{vertical-align:middle;font-size:10px}
.mapwrap .three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
@media (max-width:900px){.mapwrap .three{grid-template-columns:1fr}}
.mapwrap .mini-bars{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px;align-items:end;height:110px;margin-top:6px}
.mapwrap .mb{display:grid;grid-template-rows:auto 1fr auto;height:100%;text-align:center;font:10.5px var(--f-data);color:var(--muted);min-width:0}
.mapwrap .mb .col{align-self:end;background:var(--accent);width:100%;opacity:.85}
.mapwrap .mb .v{color:var(--ink);font-variant-numeric:tabular-nums} .mapwrap .mb .k{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mapwrap .spark{display:flex;align-items:end;gap:2px;height:56px;margin-top:6px}
.mapwrap .spark i{flex:1;background:var(--btl);min-height:1px;opacity:.9}
.mapwrap .stat b.chips{font:inherit;display:flex;flex-wrap:wrap;gap:4px}
.mapwrap .dchip{background:var(--soft);border:1px solid var(--rule);color:var(--ink);font:500 11px var(--f-data);padding:2px 7px;cursor:pointer}
.mapwrap .dchip:hover{border-color:var(--accent);color:var(--accent)}
