/* ============================================================
   BRIDGE INDEXING GUIDE — shared stylesheet (single source of truth)
   Every guide page links this file; design-system.html is its
   live showcase and documentation. Local (page-specific) rules
   stay in the <style> of the corresponding page.
   ============================================================ */
:root{
  --bg:#0e1014; --bg-2:#121419; --panel:#16181e;
  --line:#262932; --line-soft:#1e212a;
  --ink:#eef0f3; --ink-soft:#b6bcc6; --muted:#7c828e; --faint:#565c67;
  /* HUE = runtime */
  --l1:#e8836b; --evm:#5aa6e0; --mich:#6fbf73; --alias:#b08ad6; --feed:#d9a83c; --sys:#8b919c;
  --l1-bg:rgba(232,131,107,.12); --evm-bg:rgba(90,166,224,.12); --mich-bg:rgba(111,191,115,.12);
  --alias-bg:rgba(176,138,214,.12); --feed-bg:rgba(217,168,60,.13); --sys-bg:rgba(139,145,156,.12);
  /* ACCENT = indexed */
  --idx:#3ed6c0; --idx-dim:rgba(62,214,192,.13); --planned:#d9a83c;
  --radius:10px; --radius-s:8px; --maxw:1080px;
  --mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  --sans:"Golos Text",-apple-system,BlinkMacSystemFont,sans-serif;
  --display:"Onest",var(--sans);
}
*{box-sizing:border-box} html,body{margin:0;padding:0}
body{
  background:
    radial-gradient(1200px 600px at 80% -10%, rgba(90,166,224,.06), transparent 60%),
    radial-gradient(900px 500px at -10% 8%, rgba(232,131,107,.05), transparent 55%), var(--bg);
  color:var(--ink); font-family:var(--sans); font-size:15.5px; line-height:1.6; -webkit-font-smoothing:antialiased;
}
.topbar{position:sticky;top:0;z-index:50;background:rgba(14,16,20,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding:7px 0}
.topbar .wrap{max-width:var(--maxw);margin:0 auto;padding:0 26px;font-family:var(--mono);font-size:12px;color:var(--muted);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.topbar a{color:var(--idx);text-decoration:none} .topbar a:hover{text-decoration:underline}
.topbar b{color:var(--ink)} .topbar .sep{color:var(--faint)}
main{max-width:var(--maxw);margin:0 auto;padding:24px 26px 90px}
.ds-eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--idx);font-weight:500}
h1{font-family:var(--display);font-weight:800;font-size:clamp(26px,4.4vw,40px);line-height:1.06;letter-spacing:-.02em;margin:8px 0 12px}
h2{font-family:var(--display);font-weight:700;font-size:23px;letter-spacing:-.01em;margin:62px 0 8px;padding-top:22px;border-top:1px solid var(--line)}
h3{font-family:var(--display);font-weight:600;font-size:16px;margin:28px 0 10px}
p{color:var(--ink-soft);max-width:800px}
.section-note{color:var(--muted);font-size:13.5px;max-width:840px;margin-top:-2px}
code,.mono{font-family:var(--mono);font-size:.86em}

.callout{border-left:3px solid var(--idx);background:var(--idx-dim);padding:11px 15px;border-radius:0 var(--radius-s) var(--radius-s) 0;margin:16px 0;font-size:14px;color:var(--ink-soft)}
/* wrapper for diagrams and inline demos.
   full-bleed: escape main's centered --maxw column so a wide diagram can use the whole
   viewport width before it needs to scroll (text/headings stay in the narrow column).
   Gutter = 24px each side. width is left auto so the negative margins, not 100vw, set
   the box — that keeps the page free of a scrollbar-width horizontal overflow. */
.mapwrap{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin:20px 0;
  margin-left:calc(50% - 50vw + 24px);margin-right:calc(50% - 50vw + 24px)}

/* legendbox — compact legend from the diagram header (chip rows per axis) */
.legendbox{border:1px solid var(--line);border-radius:var(--radius-s);background:var(--panel);padding:12px 14px;margin-top:14px;max-width:var(--maxw)}
.legendbox .lhead{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:10px}
.legendbox .lrow{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:7px 0}
.legendbox .lk{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);width:64px;flex:none}
.legendbox .chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;color:var(--ink-soft);padding:3px 9px;border:1.5px solid var(--c,var(--line));border-radius:6px;background:var(--cbg,transparent)}
.legendbox .chip.l1{--c:var(--l1);--cbg:var(--l1-bg)} .legendbox .chip.evm{--c:var(--evm);--cbg:var(--evm-bg)}
.legendbox .chip.mich{--c:var(--mich);--cbg:var(--mich-bg)} .legendbox .chip.ker{--c:var(--feed);--cbg:var(--feed-bg)}
.legendbox .chip .g{font-weight:700;font-size:13px}
.legendbox .chip.ix{--c:var(--idx)} .legendbox .chip.ix .g{color:var(--idx)}
.legendbox .chip.pl{--c:var(--planned)} .legendbox .chip.pl .g{color:var(--planned)}
.legendbox .chip.faded{opacity:.5}
.legendbox .chip.legacy{border-style:dashed;--c:var(--sys);color:var(--muted)}

/* mermaid host — native 1:1 scale (mermaid-init: flowchart.useMaxWidth=false).
   overflow-x:auto → wide diagrams overflow with a horizontal scrollbar instead of
   shrinking to fit. Block + margin:auto on the svg centers narrow diagrams yet still
   scrolls correctly when wide (flex + justify-center would clip the left edge). */
.mermaid{overflow-x:auto;overflow-y:hidden;line-height:1.45;margin:6px 0}
.mermaid svg{display:block;margin:0 auto;max-width:none;height:auto}
