/* EasyGEO design tokens + shared base. Used ONLY by app.html (the panel).
   Same control-room language as landing.html: Geist + Geist Mono, teal #0f766e signal,
   calibrated cool-white canvas, soft tinted depth. */
:root{
  --font-sans:"Geist",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --font-mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

  /* canvas: calibrated cool off-white, not cream */
  --bg:#f4f7f9; --bg-soft:#eef2f5; --bg-2:#eef2f5; --bg-3:#e7edf1; --paper:#ffffff; --surface:#ffffff;
  --ink:#091c22; --ink-2:#33454c; --ink-3:#516068; --muted:#5d6f79;
  --line:#e3e9ed; --line-2:#d4dde2; --line-3:#c4d0d6;

  /* control-room dark (the masthead band where the signal reads) */
  --dark:#062028; --dark-2:#0a2b34; --dark-3:#0e3640;
  --dark-line:rgba(110,200,190,.16); --dark-line-2:rgba(110,200,190,.28);
  --dark-ink:#ecf6f4; --dark-ink-2:#a6c2bd; --dark-ink-3:#7c9893;

  /* signal: brand teal + bright variant for the dark surface */
  --teal:#0f766e; --teal-d:#0a5750; --teal-dd:#0a4a44; --teal-l:#14b8a6; --teal-br:#0d9488; --teal-ink:#0a4f49;
  --signal:#17c4a9; --signal-br:#56e8cd; --mint:#5eead4; --cyan:#22d3ee;

  --surface-tint:#eafaf6; --tint:#eafaf6; --tint-2:#dcf6ef; --tint-bd:#b7e8df;

  --shadow-xs:0 1px 2px rgba(8,30,32,.05);
  --shadow-sm:0 1px 2px rgba(8,30,32,.05), 0 2px 6px -2px rgba(8,30,32,.07);
  --shadow:0 18px 42px -20px rgba(8,42,44,.20), 0 4px 12px -6px rgba(8,30,32,.10);
  --shadow-lg:0 48px 96px -32px rgba(5,38,40,.42), 0 20px 42px -26px rgba(8,30,32,.22);
  --shadow-glow:0 0 0 1px rgba(15,118,110,.18), 0 22px 56px -22px rgba(15,118,110,.40);
  --shadow-dark:0 28px 70px -30px rgba(2,16,20,.78), 0 8px 22px -12px rgba(2,16,20,.55);

  --r-surface:18px; --r-lg:20px; --r-control:11px; --r-pill:99px;
  --maxw:1180px; --maxw-app:1340px;

  --bad:#b91c1c; --bad-bg:#fdecec; --bad-ink:#7f1d1d; --rose:#e0584a;
  --warn:#b45309; --warn-bg:#fdf2e3; --warn-ink:#7c3d05;
  --ok-bg:#e3f8f3;

  --row-h:60px; --sidebar-w:252px;

  /* z-scale (semantic, never arbitrary) */
  --z-base:0; --z-raise:2; --z-sticky:30; --z-sidebar:40; --z-dropdown:55; --z-scrim:70; --z-modal:80;

  /* back-compat aliases */
  --card:var(--surface); --ok:#0a5750; --radius:var(--r-surface);

  /* ── SOFT FINTECH layer (DESIGN_SYSTEM.md, 26/06; softened in review pass).
     Used by BOTH the agency and the individual panel views (`.bzshell`). Token NAMES are
     stable; VALUES were softened — hard offset shadows + 2px ink borders retired in favour of
     a faint hairline + very subtle soft shadow (often pure flat fill). ── */
  --font-display:"General Sans",var(--font-sans);
  --font-ui:"Satoshi",var(--font-sans);

  --bz-canvas:#f3f4ee; --bz-raised:#ffffff; --bz-sunken:#eceee6;
  --bz-anchor:#0a2b22; --bz-anchor-2:#0d362b; --bz-on-anchor:#eafaf6;
  --bz-ink:#0e1311; --bz-muted:#55615b; --bz-inverse:#eafaf6;
  --bz-primary:#0a5750; --bz-signal:#17c4a9;
  --bz-marker:#d4fb4f; --bz-mint:#b7f5c8; --bz-mint-2:#86efac;
  /* readable ink for sub-text ON the lime / mint blocks (darkened block hue, passes AA) */
  --bz-on-marker:#3a4a18; --bz-on-mint:#0a3a2c;
  --bz-warning:#b45309; --bz-warning-bg:#fef3e2; --bz-warning-ink:#7c3d05;
  --bz-danger:#b91c1c; --bz-danger-bg:#fdecec; --bz-danger-ink:#7f1414;
  /* soft rose chip fill (lost/fail states) + the on-anchor rose for dark surfaces */
  --bz-danger-soft:#ffd9d2; --bz-danger-soft-2:#ffd2cc; --bz-danger-on-dark:#ff8a7a;
  --bz-grade-bad:#e0584a; --bz-grade-mid:#e8a33d; --bz-grade-good:#17c4a9;

  /* SOFTENED separation: hairline is the default edge; --bz-edge is the 1px border the cards use.
     --bz-border kept as an alias (now resolves to the hairline, not the 2px ink line). */
  --bz-hairline:rgba(14,19,17,.10); --bz-hairline-2:rgba(14,19,17,.16);
  --bz-edge:1px solid var(--bz-hairline-2);
  --bz-on-anchor-line:rgba(234,250,246,.14);
  --bz-border:var(--bz-hairline-2);

  --bz-r-sm:10px; --bz-r-md:18px; --bz-r-lg:24px;
  /* default soft lift + faint variant. Hard 4px-offset retired. */
  --bz-sh:0 1px 2px rgba(14,19,17,.05), 0 4px 16px -8px rgba(14,19,17,.08);
  --bz-sh-lg:0 2px 4px rgba(14,19,17,.05), 0 14px 36px -16px rgba(14,19,17,.14);
  --bz-sh-sm:0 1px 2px rgba(14,19,17,.05);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font-sans);color:var(--ink-2);background:var(--bg);
  line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4{margin:0;color:var(--ink);font-weight:600;letter-spacing:-.02em}
a{color:var(--teal-d);text-decoration:none}
a:hover{color:var(--teal);text-decoration:underline}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
::selection{background:#bff3ea;color:var(--ink)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;
  font-size:14px;font-weight:600;letter-spacing:-.01em;border:1px solid transparent;cursor:pointer;
  background:var(--teal);color:#fff;border-radius:var(--r-control);padding:10px 16px;white-space:nowrap;
  transition:transform .15s cubic-bezier(.2,.7,.2,1),background .16s,box-shadow .16s;
  box-shadow:0 1px 0 rgba(255,255,255,.16) inset,0 4px 12px -5px rgba(15,118,110,.5)}
.btn:hover{background:var(--teal-d);color:#fff;text-decoration:none;transform:translateY(-1px);
  box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 12px 24px -10px rgba(15,118,110,.55)}
.btn:active{transform:translateY(0)}
.btn.ghost{background:var(--paper);color:var(--teal-d);border-color:var(--line-2);box-shadow:var(--shadow-xs)}
.btn.ghost:hover{background:var(--bg-soft);border-color:var(--teal-l);transform:translateY(-1px)}
.btn.danger{background:var(--bad);border-color:var(--bad);color:#fff;box-shadow:none}
.btn.danger:hover{background:#a01717}
.btn.danger:disabled{background:var(--bg-soft);color:var(--muted);border-color:var(--line);cursor:not-allowed;transform:none}
.btn.sm{padding:7px 12px;font-size:13px}
.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}

.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-surface);box-shadow:var(--shadow-sm)}

@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  html{scroll-behavior:auto}
}

a.btn:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible,[role=tab]:focus-visible,[role=menuitem]:focus-visible{
  outline:2px solid var(--teal-l);outline-offset:2px;border-radius:6px}
