/* =====================================================================
   METHODOLOGY page, Manifest 2.0
   Builds on /redesign/redesign.css (tokens, motifs, chrome, section 23
   inner-page components). Modes used here:
     RECORD  hero line trace, reconciliation, worked example, coverage,
             human review, recovery route
     RADAR   03 Carrier behavior intelligence (the model = Pulse violet)
   ===================================================================== */

/* ---------- Hero: breadcrumb + line trace ---------- */
.m-hero .coords--a{top:18px;right:var(--gutter)}
.m-hero .crumbs{margin-bottom:8px}
.m-hero h1{margin-top:12px}

.trace .stamp{top:auto;bottom:12px;right:18px}
.trace-src{border-top:1px solid var(--paper-200)}
.src{position:relative;display:grid;grid-template-columns:26px minmax(0,1fr) auto;column-gap:14px;row-gap:2px;align-items:center;padding:13px 24px;border-top:1px solid var(--paper-200)}
.src:first-child{border-top:0}
.src::before{content:'';position:absolute;left:0;top:10px;bottom:10px;width:4px;border-radius:0 3px 3px 0;background:var(--src,var(--chart))}
.src--1{--src:var(--signal)}
.src--2{--src:var(--chart)}
.src--3{--src:var(--navy-600)}
.src-n{grid-row:1/3;width:26px;height:26px;display:grid;place-items:center;border-radius:50%;border:1.5px solid var(--paper-300);font-family:var(--mono);font-size:12.5px;font-weight:600;color:var(--ink-900)}
.src-k{font-size:12.5px;font-weight:700;font-stretch:118%;text-transform:uppercase;letter-spacing:.02em;color:var(--ink-500)}
.src-note{grid-column:2;font-size:13.5px;color:var(--ink-500)}
.src-v{grid-column:3;grid-row:1/3;font-family:var(--mono);font-size:15px;font-weight:600;color:var(--ink-900);text-align:right;white-space:nowrap}
.src--1 .src-v{color:var(--flagged)}
.trace-verdict{display:grid;grid-template-columns:1fr auto;gap:6px 16px;align-items:baseline;padding:14px 24px;border-top:2px solid var(--ink-900);background:var(--paper-50)}
.trace-verdict .lbl{font-size:15px;color:var(--ink-700)}
.trace-verdict .mono{font-size:17px;font-weight:600;color:var(--ink-900);text-align:right}
.trace-verdict .bad{color:var(--flagged)}
.trace .ledger-sign{padding-top:12px;padding-right:150px}

/* ---------- 00 Ground rules: one method sheet, three clauses ---------- */
.subnav{margin-top:44px}
.rules-band{padding:clamp(40px,5vw,64px) 0 0}
.rules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--paper-0);border:1px solid var(--paper-200);border-radius:var(--r-3);box-shadow:var(--lift-1)}
.rule{padding:28px 28px 26px}
.rule + .rule{border-left:1.5px dashed var(--paper-300)}
.rule-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.rule-n{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--signal-ink)}
.rule-ico{width:40px;height:40px;display:grid;place-items:center;border-radius:var(--r-1);background:var(--navy-900);color:var(--signal)}
.rule-ico svg{width:20px;height:20px}
.rule h3{font-size:22px;font-stretch:88%;margin-bottom:8px}
.rule p{font-size:15.5px}

/* ---------- 01 Reconciliation schematic ---------- */
.recon{display:grid;grid-template-columns:minmax(0,1fr) 64px minmax(0,.95fr) 64px minmax(0,.85fr);align-items:stretch}
.recon-docs{display:grid;grid-template-rows:repeat(3,1fr);gap:14px}
.recon-doc{display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;align-items:start;padding:16px 18px;background:var(--paper-0);border:1px solid var(--paper-200);border-radius:var(--r-2);box-shadow:var(--lift-1)}
.recon-doc-ico{width:44px;height:44px;display:grid;place-items:center;border-radius:var(--r-1);background:var(--navy-900);color:var(--signal)}
.recon-doc-ico svg{width:20px;height:20px}
.recon-doc-n{font-family:var(--mono);font-size:12.5px;font-weight:600;color:var(--ink-500)}
.recon-doc h3{font-size:19px;font-stretch:90%;margin:2px 0 4px}
.recon-doc p{font-size:14.5px;line-height:1.45}

.recon-wire{position:relative}
.recon-wire svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.recon-wire path{fill:none;stroke:rgba(27,95,176,.55);stroke-width:2;stroke-dasharray:5 7;vector-effect:non-scaling-stroke}
.recon-wire path.ok{stroke:var(--cleared)}
.recon-wire path.flag{stroke:var(--signal);stroke-width:2.5}
.recon-wire i{display:none}
@media (prefers-reduced-motion:no-preference){.recon-wire path{animation:wire 1.2s linear infinite}}
@keyframes wire{to{stroke-dashoffset:-24}}

.recon-engine{align-self:center;position:relative;padding:20px;border-radius:var(--r-3);background:radial-gradient(ellipse 80% 60% at 50% 20%,rgba(139,92,246,.28),transparent 70%),var(--radar-bg);border:1px solid rgba(139,92,246,.45);box-shadow:0 30px 60px -30px rgba(139,92,246,.7),0 16px 30px -18px rgba(6,16,30,.6);color:var(--on-navy-2);overflow:hidden}
.recon-engine::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(201,210,224,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(201,210,224,.05) 1px,transparent 1px);background-size:24px 24px;pointer-events:none}
.recon-engine > *{position:relative}
.recon-engine .console-name{font-size:12.5px}
.recon-core{position:relative;width:104px;height:104px;margin:18px auto 8px}
.recon-core .ring{position:absolute;inset:0;border-radius:50%;border:1.5px dashed rgba(180,162,255,.7)}
.recon-core .ring::after{content:'';position:absolute;top:-4px;left:50%;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:#e9d5ff;box-shadow:0 0 10px var(--pulse)}
.recon-core .ring--2{inset:18px;border-style:solid;border-color:rgba(139,92,246,.35)}
.recon-core .ring--2::after{display:none}
.recon-core .core{position:absolute;inset:32px;border-radius:50%;background:radial-gradient(circle,#e9d5ff 0,#a78bfa 45%,#7c3aed 100%);box-shadow:0 0 28px rgba(139,92,246,.8)}
@media (prefers-reduced-motion:no-preference){
  .recon-core .ring{animation:orbit 9s linear infinite}
  .recon-core .core{animation:breathe 3s ease-in-out infinite}
}
@keyframes orbit{to{transform:rotate(360deg)}}
@keyframes breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
.recon-engine-sub{text-align:center;font-family:var(--mono);font-size:12.5px;color:var(--pulse-on-navy)}
.recon-pairs{margin-top:14px;border-top:1px solid var(--glass-line)}
.recon-pairs li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--glass-line);font-size:14px;color:var(--on-navy)}
.recon-pairs li:last-child{border-bottom:0;padding-bottom:0}

.recon-out{display:grid;grid-template-rows:1fr 1fr;gap:14px}
.out{display:flex;flex-direction:column;justify-content:center;gap:6px;padding:18px 20px;border-radius:var(--r-2)}
.out h3{font-size:19px;font-stretch:90%}
.out p{font-size:14.5px;line-height:1.45}
.out--clear{flex-direction:row;justify-content:flex-start;align-items:center;gap:14px;background:var(--paper-0);border:1px solid var(--paper-200);border-left:5px solid var(--cleared);box-shadow:var(--lift-1)}
.out-ico{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:50%;background:#e3f1ea;color:var(--cleared)}
.out-ico svg{width:20px;height:20px}
.out--flag{background:linear-gradient(135deg,#f78b2c,var(--signal) 55%,#ec7414);color:var(--navy-950);box-shadow:var(--glow-signal)}
.out--flag h3,.out--flag p{color:var(--navy-950)}
.out-flag-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.out--flag .tag{background:rgba(6,16,30,.08);border-color:rgba(6,16,30,.35);color:var(--navy-950)}
.out-val{font-size:44px;font-weight:850;font-stretch:66%;line-height:.9;color:var(--navy-950)}
.recon-cap{grid-column:1/-1;margin-top:20px;font-size:14px;color:var(--ink-500);max-width:90ch}

/* ---------- 02 Worked example: the finding as a document ---------- */
.ex{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.62fr);gap:clamp(28px,4vw,56px);align-items:start}
.ex-doc{position:relative;padding-bottom:20px}
.ex-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:32px 28px 16px}
.ex-title{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:6px;font-size:clamp(24px,2.4vw,30px);font-stretch:86%;line-height:1.05}
.ex-title svg{width:22px;height:22px;color:var(--signal-ink)}
.ex-meta{padding-left:28px;padding-right:28px}
.ex-figs{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px 26px;padding:22px 28px 20px}
.ex-fig-k{display:block;margin-bottom:6px;font-size:12.5px;font-weight:700;font-stretch:118%;text-transform:uppercase;letter-spacing:.02em;color:var(--ink-500)}
.ex-fig-v{font-family:var(--mono);font-size:22px;font-weight:600;color:var(--ink-900);line-height:1}
.ex-fig-v--billed{color:var(--flagged);text-decoration-thickness:2px}
.ex-fig-arrow{width:22px;height:22px;color:var(--ink-500);margin-bottom:0}
.ex-fig--rec{margin-left:auto;text-align:right}
.ex-fig-v--rec{display:block;font-family:var(--font);font-size:clamp(48px,4.6vw,64px);font-weight:850;font-stretch:64%;line-height:.85;color:var(--cleared)}
.ex-basis{margin:0 28px;padding:14px 16px;background:var(--paper-100);border-left:4px solid var(--chart);border-radius:0 var(--r-1) var(--r-1) 0}
.ex-basis .label{font-size:12.5px;margin-bottom:6px}
.ex-basis p{font-size:14px;color:var(--ink-700);line-height:1.55}
.ex-basis .ok{color:var(--cleared)}
.ex-table{width:calc(100% - 56px);margin:18px 28px 0;border-collapse:collapse;font-size:14.5px}
.ex-table thead th{padding:10px;text-align:left;font-size:12.5px;font-weight:700;font-stretch:118%;text-transform:uppercase;letter-spacing:.02em;color:var(--ink-500);border-bottom:1.5px solid var(--paper-300)}
.ex-table tbody th,.ex-table td{padding:14px 10px;border-top:1px solid var(--paper-200);vertical-align:top;text-align:left;font-weight:400;color:var(--ink-700)}
.ex-table tbody tr:first-child > *{border-top:0}
.ex-table .r{text-align:right}
.ex-table .n{width:36px}
.ex-table td.n{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--ink-900)}
.ex-table td.n::before{content:'';display:none}
.ex-table .what{display:block;font-size:15.5px;font-weight:700;color:var(--ink-900)}
.rule-chip{display:inline-block;margin-top:6px;padding:2px 9px;border-radius:var(--r-pill);background:rgba(27,95,176,.08);font-size:12.5px;font-weight:700;font-stretch:108%;color:var(--chart);white-space:nowrap}
.ex-table .mono{color:var(--ink-900);white-space:nowrap}
.ex-table td.d{font-family:var(--mono);font-size:15px;font-weight:600;color:var(--cleared);white-space:nowrap}
.ex-total{margin-top:6px;padding-left:28px;padding-right:28px}
.ex-doc > .stamp{position:absolute;left:44%;bottom:34px;background:rgba(255,253,248,.9)}

.ex-read{position:sticky;top:calc(var(--header-h) + 88px)}
.ex-read-list{counter-reset:r;display:grid;gap:18px;margin:16px 0 26px}
.ex-read-list li{counter-increment:r;position:relative;padding-left:44px;font-size:15.5px}
.ex-read-list li::before{content:counter(r);position:absolute;left:0;top:0;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--signal);color:var(--navy-950);font-family:var(--mono);font-size:13.5px;font-weight:600}
.ex-read-list b{display:block;color:var(--ink-900);margin-bottom:2px}
.ex-proof{display:flex;align-items:center;gap:16px;padding:14px;background:var(--paper-0);border:1px solid var(--paper-200);border-radius:var(--r-2);box-shadow:var(--lift-1);text-decoration:none;font-size:15px;color:var(--ink-700);transition:box-shadow .2s,transform .2s}
.ex-proof:hover{box-shadow:var(--lift-2);transform:translateY(-2px)}
.ex-proof img{width:84px;height:auto;flex:none;border:1px solid var(--paper-300);border-radius:var(--r-1);box-shadow:var(--lift-1)}
.ex-proof .link{display:inline-flex;margin-top:8px;font-size:15px}

/* ---------- 03 Carrier behavior intelligence (Radar) ---------- */
.intel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.intel-card{display:flex;flex-direction:column;gap:14px}
.intel-card .cap-ico{width:40px;height:40px;margin:0;background:rgba(139,92,246,.16);border:1px solid rgba(139,92,246,.45);color:var(--pulse-on-navy)}
.intel-card .cap-ico svg{width:20px;height:20px}
.intel-card p{font-size:15px;color:var(--on-navy-2)}
.viz{padding:14px;border-radius:var(--r-2);background:rgba(0,0,0,.22);border:1px solid var(--glass-line)}
.viz-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.viz-k{font-size:12.5px;color:var(--on-navy-muted);line-height:1.3}
.viz-svg{display:block;width:100%;height:auto}
.viz-base{fill:none;stroke:var(--d2);stroke-width:2;stroke-dasharray:5 5}
.viz-dots circle{fill:var(--d1);opacity:.9}
.viz-trend{fill:none;stroke:var(--st-alert);stroke-width:2;stroke-linecap:round;filter:drop-shadow(0 0 4px rgba(255,122,102,.7))}
@media (prefers-reduced-motion:no-preference){.viz-trend.is-in,.reveal.is-in .viz-trend{stroke-dasharray:360;animation:draw 1.6s var(--ease) .2s both}}
.viz-axis{display:flex;justify-content:space-between;gap:10px;margin-top:6px;font-family:var(--mono);font-size:12.5px;color:var(--on-navy-muted)}
.strip{position:relative;height:64px;margin:4px 6px 0}
.strip::after{content:'';position:absolute;left:-6px;right:-6px;bottom:0;border-top:1px solid rgba(255,255,255,.14)}
.strip-band{position:absolute;left:27%;width:33%;top:8px;bottom:8px;border-radius:8px;background:rgba(125,180,255,.12);border:1px dashed rgba(125,180,255,.5)}
.strip-mid{position:absolute;left:43.5%;top:4px;bottom:4px;border-left:2px solid var(--d2)}
.strip i{position:absolute;left:var(--x);top:42%;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--d2);opacity:.85}
.strip i:nth-of-type(even){top:60%}
.strip i:nth-of-type(3n){top:32%}
.strip i.is-out{top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;background:var(--st-alert);opacity:1;box-shadow:0 0 0 5px rgba(255,122,102,.2),0 0 16px var(--st-alert)}
@media (prefers-reduced-motion:no-preference){.strip i.is-out{animation:outlier 2s var(--ease) infinite}}
@keyframes outlier{0%{box-shadow:0 0 0 0 rgba(255,122,102,.55),0 0 16px var(--st-alert)}70%,100%{box-shadow:0 0 0 12px rgba(255,122,102,0),0 0 16px var(--st-alert)}}
.loop{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px;border-radius:var(--r-2);background:rgba(0,0,0,.22);border:1px solid var(--glass-line)}
.loop li{padding:10px 12px;border-radius:var(--r-1);background:rgba(139,92,246,.1);border:1px solid rgba(139,92,246,.35);font-size:14px;font-weight:650;line-height:1.3;color:var(--on-navy)}
.loop li:nth-child(3){grid-column:2;grid-row:2}
.loop li:nth-child(4){grid-column:1;grid-row:2}
.loop-n{display:block;margin-bottom:2px;font-family:var(--mono);font-size:12.5px;font-weight:600;color:var(--pulse-on-navy)}
.loop::after{content:'';position:absolute;left:50%;top:50%;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;border:2px dashed var(--pulse);background:var(--radar-bg)}
@media (prefers-reduced-motion:no-preference){.loop::after{animation:orbit 6s linear infinite}}

.vs{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,.55fr);gap:clamp(24px,4vw,48px);align-items:start;margin-top:28px}
.vs-table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--glass-line);border-radius:var(--r-2);overflow:hidden;background:linear-gradient(160deg,rgba(255,255,255,.06),rgba(255,255,255,.015));font-size:15px}
.vs-table th,.vs-table td{padding:14px 18px;text-align:left;vertical-align:top}
.vs-table thead th{border-bottom:1px solid var(--glass-line);background:rgba(0,0,0,.2)}
.vs-table tbody tr + tr > *{border-top:1px solid var(--glass-line)}
.vs-table tbody th{font-size:12.5px;font-weight:700;font-stretch:118%;text-transform:uppercase;letter-spacing:.02em;color:var(--on-navy-muted);white-space:nowrap}
.vs-table td{color:var(--on-navy-2)}
.vs-table td + td{color:var(--on-navy);background:rgba(67,211,154,.05)}
.vs-table td svg{width:16px;height:16px;margin-right:8px;vertical-align:-3px;color:var(--st-alert)}
.vs-table td + td svg{color:var(--st-ok)}
.vs-close > p:first-child{font-size:17px;color:var(--on-navy-2)}
.vs-bridge{display:flex;gap:10px;align-items:flex-start;margin-top:18px;padding:14px 16px;border-radius:var(--r-1);background:rgba(139,92,246,.12);border:1px solid rgba(139,92,246,.4);font-size:15px;color:var(--on-navy-2)}
.vs-bridge .live{margin-top:7px;background:var(--pulse)}
.vs-bridge .link{display:flex;align-items:center;width:fit-content;min-height:44px}

/* ---------- 04 Coverage layers ---------- */
.cov-sum{display:flex;flex-wrap:wrap;gap:16px 56px;margin-bottom:36px;padding-bottom:24px;border-bottom:2px solid var(--ink-900)}
.cov-sum div{display:flex;flex-direction:column-reverse;gap:8px}
.cov-sum dd{font-size:clamp(52px,5vw,72px);font-weight:850;font-stretch:64%;line-height:.85;color:var(--ink-900)}
.cov-sum dt{font-size:15px;color:var(--ink-500)}
.cov-sum .is-latam dd{color:var(--signal-display)}
.layers{display:grid;gap:24px}
.layer{position:relative;display:grid;grid-template-columns:minmax(260px,.36fr) minmax(0,1fr);background:var(--paper-0);border:1px solid var(--paper-200);border-radius:var(--r-3);box-shadow:var(--lift-1);overflow:hidden}
.layer-id{position:relative;display:flex;flex-direction:column;background:radial-gradient(ellipse 80% 50% at 100% 100%,rgba(30,109,181,.28),transparent 70%),var(--navy-900)}
.layer-id .duo{position:relative;height:150px;flex:none}
.layer-id-body{display:flex;flex-direction:column;gap:10px;flex:1;width:100%;padding:34px 24px 22px}
.layer-id-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.layer-n{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--signal)}
.layer-id .tag{background:var(--glass);border-color:var(--glass-line);color:var(--on-navy-2)}
.layer-id .tag--signal{border-color:rgba(245,130,31,.6);color:var(--signal)}
.layer-ico{position:absolute;z-index:2;left:24px;top:128px;width:44px;height:44px;display:grid;place-items:center;border-radius:var(--r-1);background:var(--navy-900);border:1.5px solid var(--signal);color:var(--signal);box-shadow:0 0 0 4px var(--navy-900)}
.layer-ico svg{width:20px;height:20px}
.layer-id h3{margin-top:4px;font-size:26px;font-stretch:86%;color:var(--on-navy)}
.layer-count{margin-top:auto}
.layer-id p{font-size:14.5px;line-height:1.45;color:var(--on-navy-2)}
.layer-count{font-size:14px;color:var(--on-navy-muted)}
.layer-count b{font-family:var(--mono);font-size:16px;color:var(--on-navy)}
.layer-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 28px;align-content:start;padding:26px 28px}
.layer-items li{display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px}
.layer-items .code{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--signal-ink);padding-top:2px}
.layer-items b{display:block;font-size:16px;font-weight:700;color:var(--ink-900);line-height:1.3}
.layer-items li span:not(.code){display:block;margin-top:3px;font-size:14.5px;line-height:1.45;color:var(--ink-500)}
.layer--latam{border:2px solid var(--signal);box-shadow:var(--lift-signal)}
.layer--latam .layer-id{background:radial-gradient(ellipse 90% 60% at 0% 100%,rgba(245,130,31,.3),transparent 70%),var(--navy-900)}
.layer-stamp{position:absolute;right:26px;bottom:22px;background:var(--paper-0)}

/* ---------- 05 Human review gate ---------- */
.gate{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:start}
.funnel{position:relative;padding:28px 28px 30px;background:var(--paper-0);border:1px solid var(--paper-200);border-radius:var(--r-3);box-shadow:var(--lift-2)}
.funnel ol{display:grid;gap:14px}
.fn-step{position:relative;display:flex;justify-content:center}
.fn-step + .fn-step::before{content:'';position:absolute;left:50%;top:-14px;height:14px;border-left:2px dashed var(--paper-300)}
.fn-bar{width:var(--w);display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:58px;padding:0 16px;border-radius:var(--r-1);background:var(--paper-100);border:1px solid var(--paper-300);font-size:15.5px;font-weight:700;color:var(--ink-900)}
.fn-step:first-child .fn-bar{background:repeating-linear-gradient(90deg,var(--paper-100) 0 7px,var(--paper-50) 7px 10px)}
.fn-t{display:inline-flex;align-items:center;gap:8px}
.fn-t svg{width:18px;height:18px}
.fn-step--gate .fn-bar{background:var(--navy-900);border-color:var(--navy-900);color:var(--on-navy);box-shadow:0 14px 30px -16px rgba(6,16,30,.7)}
.fn-step--gate .fn-t svg{color:var(--signal)}
.fn-step--gate .who--analyst{color:var(--signal)}
.fn-step--out .fn-bar{background:#e3f1ea;border-color:rgba(10,114,71,.4)}
.fn-side{display:flex;gap:10px;align-items:flex-start;margin-top:20px;padding-top:16px;border-top:1.5px dashed var(--paper-300);font-size:15px;color:var(--ink-700);max-width:52ch}
.fn-side svg{width:18px;height:18px;flex:none;margin-top:3px;color:var(--signal-ink)}
.funnel > .stamp{position:absolute;right:20px;bottom:-20px;background:var(--paper-0)}
.gate-points{display:grid;gap:14px}
.gate-points li{display:grid;grid-template-columns:46px minmax(0,1fr);gap:16px;padding:22px;background:var(--paper-0);border:1px solid var(--paper-200);border-radius:var(--r-2);box-shadow:var(--lift-1)}
.gate-ico{width:46px;height:46px;display:grid;place-items:center;border-radius:var(--r-1);background:var(--navy-900);color:var(--signal)}
.gate-ico svg{width:22px;height:22px}
.gate-points h3{font-size:20px;font-stretch:90%;margin-bottom:6px}
.gate-points p{font-size:15.5px}

/* ---------- 06 Recovery route, two phases ---------- */
.phase + .phase{margin-top:var(--s7)}
.phase-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:22px}
.phase-code{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--navy-950);background:var(--signal);padding:3px 8px;border-radius:var(--r-1)}
.phase-head h3{font-size:28px;font-stretch:86%}
.phase-head .stop-time{background:var(--paper-0);color:var(--ink-900);border:1.5px solid var(--ink-900)}
.phase--recovery .phase-code{background:var(--cleared);color:#fff}
.m-sec:not(.paper-alt) .node{box-shadow:0 0 0 4px var(--paper-50)}
.m-sec:not(.paper-alt) .stop.is-reached .node{box-shadow:0 0 0 4px var(--paper-50),0 0 14px rgba(245,130,31,.7)}
.phase--recovery .node{border-color:var(--cleared)}
.phase--recovery .route::after{background:var(--cleared);box-shadow:0 0 10px rgba(10,114,71,.45)}
.m-sec .phase--recovery .stop.is-reached .node{background:var(--cleared);box-shadow:0 0 0 4px var(--paper-50),0 0 14px rgba(10,114,71,.55)}
.route--3 .stop-top{margin:18px 0 12px}
.route--3 .stop h3{font-size:22px}
.route--3 .stop p{font-size:15.5px;max-width:38ch}

/* ---------- Responsive ---------- */
@media (max-width:1180px){
  .intel{grid-template-columns:1fr 1fr}
  .intel-card:last-child{grid-column:1/-1}
  .vs{grid-template-columns:1fr}
}
@media (max-width:1024px){
  .ex{grid-template-columns:1fr}
  .ex-read{position:static;max-width:640px}
  .gate{grid-template-columns:1fr}
  .funnel{max-width:640px}
  .layer{grid-template-columns:minmax(220px,.4fr) minmax(0,1fr)}
  .layer-items{grid-template-columns:1fr}
}
@media (max-width:900px){
  .recon{grid-template-columns:1fr}
  .recon-docs{grid-template-rows:none}
  .recon-wire{height:44px}
  .recon-wire svg{display:none}
  .recon-wire::before{content:'';position:absolute;left:50%;top:4px;bottom:4px;border-left:2px dashed rgba(27,95,176,.55)}
  .recon-wire--out::before{border-left-color:var(--signal)}
  .recon-wire i{display:block;position:absolute;left:50%;top:4px;width:10px;height:10px;margin-left:-4px;border-radius:50%;background:var(--chart)}
  .recon-wire--out i{background:var(--signal)}
  .recon-engine{align-self:stretch}
  .recon-out{grid-template-rows:none}
  .rules{grid-template-columns:1fr}
  .rule + .rule{border-left:0;border-top:1.5px dashed var(--paper-300)}
}
@media (prefers-reduced-motion:no-preference) and (max-width:900px){
  .recon-wire i{animation:drop 1.4s var(--ease) infinite}
}
@keyframes drop{0%{top:0;opacity:0}20%{opacity:1}80%{opacity:1}100%{top:calc(100% - 10px);opacity:0}}
@media (max-width:768px){
  .subnav{margin-top:32px}
  .trace .ledger-sign{padding-right:150px}
  .src{padding-left:18px;padding-right:16px;column-gap:10px}
  .src-v{font-size:14px}
  .trace-verdict{padding-left:16px;padding-right:16px}
  .rule{padding:22px 20px}
  .intel{grid-template-columns:1fr}
  .ex-top,.ex-figs{padding-left:16px;padding-right:16px}
  .ex-meta{padding-left:16px;padding-right:16px}
  .ex-basis{margin:0 16px}
  .ex-figs{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;align-items:end}
  .ex-fig-arrow{display:none}
  .ex-fig--rec{grid-column:1/-1;margin-left:0;text-align:left;padding-top:14px;border-top:1.5px dashed var(--paper-300)}
  .ex-table{width:calc(100% - 32px);margin:14px 16px 0}
  .ex-table thead{display:none}
  .ex-table tr{display:grid;grid-template-columns:30px minmax(0,1fr) minmax(0,1fr);column-gap:10px;row-gap:8px;padding:16px 0;border-top:1px solid var(--paper-200)}
  .ex-table tbody tr:first-child{border-top:0}
  .ex-table tbody th,.ex-table td{padding:0;border:0!important}
  .ex-table td.n{grid-row:1;padding-top:2px}
  .ex-table tbody th{grid-column:2/-1}
  .ex-table td[data-k]{grid-column:auto;font-size:14px}
  .ex-table td[data-k]::before{content:attr(data-k);display:block;margin-bottom:2px;font-family:var(--font);font-size:12.5px;font-weight:700;font-stretch:118%;text-transform:uppercase;letter-spacing:.02em;color:var(--ink-500)}
  .ex-table td:nth-child(3){grid-column:2}
  .ex-table td:nth-child(4){grid-column:3}
  .ex-table td.d{grid-column:2/-1;text-align:left}
  .ex-table .mono{white-space:normal}
  .ex-total{padding-left:16px;padding-right:16px}
  .ex-doc > .stamp{position:relative;left:auto;bottom:auto;margin:10px 0 4px 16px}
  .vs-table thead th:first-child{display:none}
  .vs-table{table-layout:fixed}
  .vs-table tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .vs-table thead .status{white-space:normal;align-items:flex-start;padding:5px 10px;line-height:1.25}
  .vs-table thead .status::before{margin-top:4px;flex:none}
  .vs-table thead th{padding:12px}
  .vs-table tbody th{grid-column:1/-1;padding:12px 12px 0}
  .vs-table td{padding:8px 12px 12px;font-size:14px}
  .vs-table tbody tr + tr > *{border-top:0}
  .vs-table tbody tr + tr{border-top:1px solid var(--glass-line)}
  .vs-table td + td{background:transparent}
  .layer{grid-template-columns:1fr}
  .layer-id .duo{height:130px}
  .layer-ico{top:108px}
  .layer-items{padding:20px 18px}
  .layer--latam .layer-items{padding-bottom:92px}
  .layer-stamp{right:18px;bottom:22px}
  .cov-sum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
  .funnel{padding:20px 18px 26px}
  .fn-bar{width:100%;min-height:52px;padding:0 12px;font-size:15px}
  .gate-points li{grid-template-columns:40px minmax(0,1fr);gap:12px;padding:18px}
  .gate-ico{width:40px;height:40px}
}
@media (max-width:560px){
  /* Long source names (ES/PT) need the full row: value drops under the label */
  .src{grid-template-columns:26px minmax(0,1fr);row-gap:3px}
  .src-n{grid-row:1/4}
  .src-v{grid-column:2;grid-row:auto;text-align:left;white-space:normal}
}
@media (max-width:400px){
  .ex-figs{gap:12px 16px}
  .ex-fig-v:not(.ex-fig-v--rec){font-size:19px}
  .ex-table tr{grid-template-columns:26px minmax(0,1fr) minmax(0,1fr)}
}
.ex-table .nowrap{white-space:nowrap}

/* ---------- 02b Source check: the same method on a public tariff ---------- */
.sc{margin-top:var(--s9);padding-top:var(--s8);border-top:1.5px dashed var(--paper-300)}
.sc-head{display:grid;gap:14px;max-width:880px;margin-bottom:var(--s6)}
.sc-head p{font-size:17px;max-width:70ch}
.sc-total{grid-template-columns:1fr auto;row-gap:6px}
.sc-total .sc-v{font-family:var(--mono);font-size:16px;font-weight:600;color:var(--ink-900);text-align:right}
.sc-total .big{color:var(--cleared)}
.sc-src{align-items:flex-start}
.sc-src-ico{width:48px;height:48px;flex:none;display:grid;place-items:center;border-radius:var(--r-1);background:var(--navy-900);color:var(--signal)}
.sc-src-ico svg{width:22px;height:22px}
.sc-assume{margin-top:16px;font-size:14px;line-height:1.5;color:var(--ink-500)}
@media (max-width:768px){
  .sc{margin-top:var(--s8);padding-top:var(--s7)}
  .sc-head p{font-size:16px}
}
