/* ══════════════════════════════════════════════════════════════════════════
   THE GATHERING INN · GRANT OS — assets/tgi-ops-grants.css
   Lane @TGI-OPS. Companion to assets/tgi-ops-grants.js. Every selector is
   prefixed `.go-` so it cannot collide with the guest lane, the exec/admin
   console, the viz module or the HMIS console.

   WHY THIS SURFACE IS DARK IN A LIGHT-THEME PLATFORM
   The platform is deliberately light. Grant OS is the intelligence layer, and
   it reads as a different room on purpose: you leave the record and enter the
   place where the money is found. The contrast is the point, and it is the
   single cheapest way to make one surface feel like a product rather than a
   page. Everything else on the platform stays light.
   ══════════════════════════════════════════════════════════════════════════ */

.go-root{
  --go-ink:#07182B; --go-ink-2:#0C2440; --go-ink-3:#12314F;
  --go-line:rgba(148,196,224,.16); --go-line-2:rgba(148,196,224,.30);
  --go-text:#E8F2F8; --go-dim:#93B4C9; --go-faint:#6D8DA3;
  --go-cyan:#3FD0F5; --go-cyan-dk:#0FA6D0;
  --go-gold:#F5C451; --go-green:#43D6A0; --go-rose:#FF7B72; --go-plum:#B07BD4;
  --go-r:14px; --go-r-sm:10px;
  position:relative; margin:-4px 0 0; border-radius:18px; overflow:hidden;
  background:
    radial-gradient(1200px 520px at 12% -12%, rgba(63,208,245,.16), transparent 62%),
    radial-gradient(900px 460px at 92% 6%, rgba(176,123,212,.13), transparent 60%),
    linear-gradient(168deg,var(--go-ink) 0%,var(--go-ink-2) 58%,#0A1E36 100%);
  color:var(--go-text);
  font-variant-numeric:tabular-nums;
  box-shadow:0 30px 90px -40px rgba(4,18,33,.85), 0 0 0 1px rgba(148,196,224,.10) inset;
}
/* A single fine grid, low enough to read as texture rather than decoration. */
.go-root::before{
  content:''; position:absolute; inset:0; pointer-events:none; opacity:.45;
  background-image:linear-gradient(rgba(148,196,224,.05) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(148,196,224,.05) 1px,transparent 1px);
  background-size:56px 56px;
  mask-image:radial-gradient(1100px 560px at 30% 0%,#000 20%,transparent 78%);
}
.go-root *{box-sizing:border-box}
.go-in{position:relative;z-index:1;padding:26px 28px 30px}
/* The demonstration ribbon is pinned to the bottom of the viewport and was
   covering the last row of cards. Reserve the room rather than move the
   ribbon, which belongs to every portal and is not this lane's to move. */
.go-root{padding-bottom:56px}
@media (max-width:640px){.go-root{padding-bottom:74px}}

/* ── Masthead ──────────────────────────────────────────────────────────── */
.go-mast{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;flex-wrap:wrap}
.go-brand{display:flex;align-items:center;gap:13px;min-width:0}
.go-mark{
  width:44px;height:44px;border-radius:12px;display:grid;place-items:center;flex:0 0 auto;
  background:linear-gradient(140deg,var(--go-cyan),var(--go-cyan-dk) 55%,#0B6E92);
  box-shadow:0 8px 26px -10px rgba(63,208,245,.8), 0 0 0 1px rgba(63,208,245,.35) inset;
}
.go-mark svg{width:23px;height:23px;stroke:#04202E;stroke-width:2.2;fill:none}
.go-ttl{font-family:var(--fh,inherit);font-size:23px;font-weight:600;letter-spacing:-.02em;line-height:1.1;margin:0}
.go-ttl em{font-style:italic;color:var(--go-cyan)}
.go-sub{font-size:12.5px;color:var(--go-dim);margin-top:3px;line-height:1.45}
.go-pill{
  display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;
  font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  background:rgba(63,208,245,.13);color:var(--go-cyan);border:1px solid rgba(63,208,245,.34)}
.go-pill.sim{background:rgba(245,196,81,.12);color:var(--go-gold);border-color:rgba(245,196,81,.34)}

/* ── The number band ───────────────────────────────────────────────────── */
.go-band{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:22px 0 6px}
.go-stat{
  position:relative;padding:16px 17px 15px;border-radius:var(--go-r);
  background:linear-gradient(160deg,rgba(255,255,255,.055),rgba(255,255,255,.018));
  border:1px solid var(--go-line);overflow:hidden}
.go-stat::after{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--go-cyan);opacity:.85}
.go-stat.g::after{background:var(--go-gold)} .go-stat.e::after{background:var(--go-green)} .go-stat.p::after{background:var(--go-plum)}
.go-stat-k{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--go-faint);font-weight:700;
  display:flex;align-items:center;gap:0;line-height:1.3}
.go-stat-v{font-family:var(--fh,inherit);font-size:31px;font-weight:600;letter-spacing:-.03em;line-height:1.05;margin-top:7px}
.go-stat-m{font-size:11.5px;color:var(--go-dim);margin-top:4px;line-height:1.4}

/* ── Tabs ──────────────────────────────────────────────────────────────── */
.go-tabs{display:flex;gap:4px;margin:24px 0 20px;border-bottom:1px solid var(--go-line);overflow-x:auto;scrollbar-width:none}
.go-tabs::-webkit-scrollbar{display:none}
.go-tab{
  appearance:none;background:none;border:0;cursor:pointer;position:relative;white-space:nowrap;
  padding:11px 15px 13px;font-size:13.5px;font-weight:600;color:var(--go-faint);
  font-family:inherit;letter-spacing:-.01em;transition:color .18s ease}
.go-tab:hover{color:var(--go-dim)}
.go-tab.on{color:var(--go-text)}
.go-tab.on::after{content:'';position:absolute;left:12px;right:12px;bottom:-1px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--go-cyan),var(--go-plum));box-shadow:0 0 14px rgba(63,208,245,.65)}
.go-tab-n{margin-left:7px;font-size:11px;padding:1px 6px;border-radius:999px;background:rgba(148,196,224,.14);color:var(--go-dim);font-weight:700}
.go-tab.on .go-tab-n{background:rgba(63,208,245,.20);color:var(--go-cyan)}
.go-tab:focus-visible{outline:2px solid var(--go-cyan);outline-offset:2px;border-radius:8px}

/* ── Cards + grid ──────────────────────────────────────────────────────── */
.go-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:13px}
.go-card{
  position:relative;padding:16px 17px;border-radius:var(--go-r);text-align:left;width:100%;
  background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.015));
  border:1px solid var(--go-line);color:inherit;font-family:inherit;cursor:pointer;
  transition:transform .22s cubic-bezier(.22,.9,.3,1), border-color .22s ease, box-shadow .22s ease;
  appearance:none;display:block}
.go-card:hover{transform:translateY(-3px);border-color:var(--go-line-2);
  box-shadow:0 18px 42px -22px rgba(0,0,0,.75), 0 0 0 1px rgba(63,208,245,.16) inset}
.go-card:focus-visible{outline:2px solid var(--go-cyan);outline-offset:2px}
.go-card-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.go-funder{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--go-faint);font-weight:700}
.go-name{font-size:14.5px;font-weight:600;line-height:1.3;margin:5px 0 0;letter-spacing:-.01em}
.go-amt{font-family:var(--fh,inherit);font-size:19px;font-weight:600;color:var(--go-gold);letter-spacing:-.02em;margin-top:9px}
.go-why{font-size:12px;color:var(--go-dim);line-height:1.5;margin-top:8px}
.go-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}
.go-chip{font-size:10.5px;font-weight:600;padding:3px 8px;border-radius:6px;
  background:rgba(148,196,224,.11);color:var(--go-dim);border:1px solid var(--go-line)}
.go-chip.hot{background:rgba(255,123,114,.14);color:var(--go-rose);border-color:rgba(255,123,114,.32)}
.go-chip.soon{background:rgba(245,196,81,.13);color:var(--go-gold);border-color:rgba(245,196,81,.30)}
.go-chip.fit{background:rgba(67,214,160,.13);color:var(--go-green);border-color:rgba(67,214,160,.30)}

/* Fit is a property of the OPPORTUNITY, never of a person. Four named tiers,
   no number, no bar, no ordering of anybody. */
.go-fit{display:flex;align-items:center;gap:4px;flex:0 0 auto}
.go-fit i{width:6px;height:6px;border-radius:50%;background:rgba(148,196,224,.22);display:block}
.go-fit i.on{background:var(--go-green);box-shadow:0 0 8px rgba(67,214,160,.6)}

/* ── Filter bar ────────────────────────────────────────────────────────── */
.go-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:15px}
.go-sel,.go-inp{
  appearance:none;font-family:inherit;font-size:12.5px;color:var(--go-text);
  background:rgba(255,255,255,.05);border:1px solid var(--go-line);border-radius:9px;
  padding:8px 11px;cursor:pointer;transition:border-color .18s ease}
.go-sel:hover,.go-inp:hover{border-color:var(--go-line-2)}
.go-sel:focus,.go-inp:focus{outline:none;border-color:var(--go-cyan);box-shadow:0 0 0 3px rgba(63,208,245,.14)}
.go-sel option{background:#0C2440;color:#E8F2F8}
.go-inp{cursor:text;min-width:190px;flex:1 1 190px}
.go-inp::placeholder{color:var(--go-faint)}
.go-spacer{flex:1 1 auto}

/* ── Buttons ───────────────────────────────────────────────────────────── */
.go-btn{
  appearance:none;font-family:inherit;font-size:12.5px;font-weight:600;cursor:pointer;
  padding:9px 15px;border-radius:9px;border:1px solid var(--go-line-2);
  background:rgba(255,255,255,.06);color:var(--go-text);
  display:inline-flex;align-items:center;gap:7px;transition:all .18s ease}
.go-btn:hover{background:rgba(255,255,255,.11);border-color:var(--go-cyan)}
.go-btn:focus-visible{outline:2px solid var(--go-cyan);outline-offset:2px}
.go-btn.prim{
  background:linear-gradient(135deg,var(--go-cyan),var(--go-cyan-dk));color:#03202D;border-color:transparent;
  box-shadow:0 10px 30px -12px rgba(63,208,245,.85)}
.go-btn.prim:hover{filter:brightness(1.09)}
.go-btn.gold{background:linear-gradient(135deg,var(--go-gold),#D99B1F);color:#2A1A02;border-color:transparent;
  box-shadow:0 10px 30px -12px rgba(245,196,81,.8)}
.go-btn.sm{padding:6px 11px;font-size:11.5px}
.go-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}

/* The learning CTA earns its own treatment: it is the moment of the surface. */
.go-cta{
  position:relative;overflow:hidden;margin:2px 0 0;padding:19px 21px;border-radius:var(--go-r);
  background:linear-gradient(120deg,rgba(63,208,245,.14),rgba(176,123,212,.13) 60%,rgba(245,196,81,.10));
  border:1px solid rgba(63,208,245,.30);
  display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.go-cta::after{
  content:'';position:absolute;top:-60%;left:-30%;width:45%;height:220%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.16),transparent);
  transform:rotate(14deg);animation:go-sheen 5.5s ease-in-out infinite}
@keyframes go-sheen{0%,72%{left:-35%}100%{left:125%}}
.go-cta-t{font-size:15px;font-weight:600;letter-spacing:-.015em}
.go-cta-s{font-size:12.5px;color:var(--go-dim);margin-top:4px;line-height:1.45;max-width:56ch}

/* ── The hover eye. One or two sentences, on demand, never in the layout. ─ */
.go-eye{
  position:relative;display:inline-grid;place-items:center;width:19px;height:19px;flex:0 0 auto;
  border-radius:50%;border:1px solid var(--go-line-2);background:rgba(148,196,224,.10);
  cursor:help;margin-left:7px;vertical-align:middle;transition:all .2s ease}
.go-eye svg{width:11px;height:11px;stroke:var(--go-dim);fill:none;stroke-width:2}
.go-eye:hover,.go-eye:focus-visible{border-color:var(--go-cyan);background:rgba(63,208,245,.16);outline:none}
.go-eye:hover svg,.go-eye:focus-visible svg{stroke:var(--go-cyan)}
.go-eye.glow{border-color:rgba(63,208,245,.55);animation:go-pulse 2.6s ease-in-out infinite}
.go-eye.glow svg{stroke:var(--go-cyan)}
@keyframes go-pulse{0%,100%{box-shadow:0 0 0 0 rgba(63,208,245,.42)}50%{box-shadow:0 0 0 6px rgba(63,208,245,0)}}
.go-eye-tip{
  position:absolute;bottom:calc(100% + 9px);left:50%;transform:translateX(-50%) translateY(4px);
  width:max-content;max-width:270px;padding:9px 12px;border-radius:9px;z-index:40;
  background:#04121F;border:1px solid var(--go-line-2);color:var(--go-text);
  font-size:11.5px;line-height:1.5;font-weight:400;text-transform:none;letter-spacing:0;
  opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease;
  box-shadow:0 16px 40px -18px rgba(0,0,0,.9)}
.go-eye:hover .go-eye-tip,.go-eye:focus-visible .go-eye-tip{opacity:1;transform:translateX(-50%) translateY(0)}

/* ── Section furniture ─────────────────────────────────────────────────── */
.go-sec{margin-top:26px}
.go-sec-h{display:flex;align-items:center;gap:2px;margin-bottom:13px;flex-wrap:wrap}
.go-sec-t{font-size:15px;font-weight:600;letter-spacing:-.015em;margin:0}
.go-sec-s{font-size:12px;color:var(--go-faint);margin-left:10px}
.go-panel{padding:18px 19px;border-radius:var(--go-r);border:1px solid var(--go-line);
  background:linear-gradient(160deg,rgba(255,255,255,.045),rgba(255,255,255,.012))}

/* ── Table ─────────────────────────────────────────────────────────────── */
.go-tw{overflow-x:auto;border-radius:var(--go-r);border:1px solid var(--go-line)}
.go-tbl{width:100%;border-collapse:collapse;font-size:12.5px;min-width:660px}
.go-tbl th{
  text-align:left;padding:11px 14px;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--go-faint);font-weight:700;background:rgba(255,255,255,.04);
  border-bottom:1px solid var(--go-line);white-space:nowrap}
.go-tbl td{padding:12px 14px;border-bottom:1px solid rgba(148,196,224,.09);vertical-align:top;line-height:1.45}
.go-tbl tr:last-child td{border-bottom:0}
.go-tbl tbody tr{transition:background .16s ease}
.go-tbl tbody tr:hover{background:rgba(63,208,245,.055)}
.go-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}

/* ── Pipeline stages ───────────────────────────────────────────────────── */
.go-stages{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin-bottom:16px}
.go-stage{padding:13px 14px;border-radius:var(--go-r-sm);border:1px solid var(--go-line);
  background:linear-gradient(165deg,rgba(255,255,255,.05),rgba(255,255,255,.014));position:relative;overflow:hidden}
.go-stage-k{font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--go-faint);font-weight:700}
.go-stage-v{font-family:var(--fh,inherit);font-size:24px;font-weight:600;margin-top:6px;letter-spacing:-.025em}
.go-stage-m{font-size:11px;color:var(--go-dim);margin-top:3px}
.go-stage.won .go-stage-v{color:var(--go-green)} .go-stage.lost .go-stage-v{color:var(--go-faint)}

/* ── The swarm cinematic ───────────────────────────────────────────────── */
.go-swarm{position:fixed;inset:0;z-index:9200;display:none;place-items:center;padding:22px;
  background:radial-gradient(900px 520px at 50% 34%,rgba(12,36,64,.97),rgba(4,14,26,.985));
  backdrop-filter:blur(11px)}
.go-swarm.on{display:grid}
.go-swarm-in{width:100%;max-width:560px;text-align:center}
.go-orbit{position:relative;width:190px;height:190px;margin:0 auto 26px}
.go-orbit i{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(63,208,245,.22)}
.go-orbit i:nth-child(1){animation:go-spin 7s linear infinite}
.go-orbit i:nth-child(2){inset:20px;border-color:rgba(176,123,212,.22);animation:go-spin 5s linear infinite reverse}
.go-orbit i:nth-child(3){inset:40px;border-color:rgba(245,196,81,.22);animation:go-spin 9s linear infinite}
.go-orbit i::after{content:'';position:absolute;top:-3px;left:50%;width:6px;height:6px;border-radius:50%;
  background:var(--go-cyan);box-shadow:0 0 14px var(--go-cyan)}
.go-orbit i:nth-child(2)::after{background:var(--go-plum);box-shadow:0 0 14px var(--go-plum)}
.go-orbit i:nth-child(3)::after{background:var(--go-gold);box-shadow:0 0 14px var(--go-gold)}
@keyframes go-spin{to{transform:rotate(360deg)}}
.go-core{position:absolute;inset:66px;border-radius:50%;display:grid;place-items:center;
  background:radial-gradient(circle,rgba(63,208,245,.30),transparent 70%);
  font-family:var(--fh,inherit);font-size:20px;font-weight:600;color:var(--go-text)}
.go-swarm-t{font-family:var(--fh,inherit);font-size:21px;font-weight:600;letter-spacing:-.02em;margin:0 0 8px;
  color:#F2F8FC}
.go-swarm-s{font-size:13.5px;color:#B9D2E2;line-height:1.55;min-height:42px;margin:0 auto;max-width:44ch}
.go-swarm-bar{height:3px;border-radius:3px;background:rgba(148,196,224,.16);margin:22px auto 0;max-width:330px;overflow:hidden}
.go-swarm-fill{height:100%;width:0;border-radius:3px;
  background:linear-gradient(90deg,var(--go-cyan),var(--go-plum),var(--go-gold));
  transition:width .5s cubic-bezier(.3,.9,.4,1)}
.go-swarm-log{margin-top:20px;font-size:11.5px;color:var(--go-faint);line-height:1.7;text-align:left;
  max-width:400px;margin-left:auto;margin-right:auto;min-height:74px}
.go-swarm-log b{color:var(--go-cyan);font-weight:600}

/* ── AI loader, reusable across the seat ───────────────────────────────── */
.go-ai{padding:22px;border-radius:var(--go-r);border:1px solid rgba(63,208,245,.26);
  background:linear-gradient(140deg,rgba(63,208,245,.10),rgba(176,123,212,.07));text-align:center}
.go-ai-t{font-size:14px;font-weight:600;margin-bottom:6px}
.go-ai-s{font-size:12.5px;color:var(--go-dim);line-height:1.5}
.go-dots{display:inline-flex;gap:5px;margin-top:13px}
.go-dots i{width:7px;height:7px;border-radius:50%;background:var(--go-cyan);animation:go-bounce 1.25s ease-in-out infinite}
.go-dots i:nth-child(2){animation-delay:.16s;background:var(--go-plum)}
.go-dots i:nth-child(3){animation-delay:.32s;background:var(--go-gold)}
@keyframes go-bounce{0%,80%,100%{transform:translateY(0);opacity:.45}40%{transform:translateY(-7px);opacity:1}}

/* ── Reveal ────────────────────────────────────────────────────────────── */
.go-rv{opacity:0;transform:translateY(9px);animation:go-rise .5s cubic-bezier(.22,.9,.3,1) forwards}
@keyframes go-rise{to{opacity:1;transform:none}}

.go-note{font-size:11.5px;color:var(--go-faint);line-height:1.6;margin-top:20px;
  padding-top:15px;border-top:1px solid var(--go-line)}
.go-note b{color:var(--go-dim);font-weight:600}
.go-empty{padding:34px 20px;text-align:center;color:var(--go-faint);font-size:13px;line-height:1.6}

/* ── Responsive ────────────────────────────────────────────────────────── */
@media (max-width:1100px){ .go-band{grid-template-columns:repeat(2,1fr)} .go-stages{grid-template-columns:repeat(3,1fr)} }
@media (max-width:640px){
  .go-in{padding:19px 15px 24px}
  .go-band{grid-template-columns:1fr 1fr;gap:9px}
  .go-stat-v{font-size:25px}
  .go-stages{grid-template-columns:1fr 1fr}
  .go-grid{grid-template-columns:1fr}
  .go-ttl{font-size:19px}
  .go-cta{padding:16px}
  .go-orbit{width:150px;height:150px} .go-core{inset:50px;font-size:17px}
}
@media (prefers-reduced-motion:reduce){
  .go-root *,.go-root *::after,.go-root *::before{animation:none!important;transition:none!important}
  .go-rv{opacity:1;transform:none}
  .go-card:hover{transform:none}
}
