/* Koovira Founders Network — glossary explainer, Funding Dictionary view, passport-with-PNR.
   Loaded on founders_network.php. Prefixed .fn-* so it never clashes with Keen/Bootstrap. */

:root{ --fnq-accent:#6d4bf0; --fnq-ink:#0b1020; --fnq-muted:#5a6379; --fnq-line:#e9e7f7; }

/* ---------- inline term explainer chip ---------- */
.fn-term{ display:inline; cursor:help; border-bottom:1px dashed rgba(109,75,240,.55);
  color:inherit; font-weight:600; white-space:nowrap; }
.fn-term:hover,.fn-term:focus{ color:var(--fnq-accent); outline:none; }
.fn-term-q{ display:inline-flex; align-items:center; justify-content:center; width:14px; height:14px;
  margin-left:3px; font-size:9px; font-style:normal; font-weight:800; line-height:1; vertical-align:super;
  color:#fff; background:var(--fnq-accent); border-radius:50%; }

/* popover */
.fn-pop{ position:absolute; z-index:2000; max-width:320px; width:max-content; background:#fff;
  border:1px solid var(--fnq-line); border-radius:12px; box-shadow:0 16px 40px -12px rgba(30,20,80,.35);
  padding:12px 14px; opacity:0; transform:translateY(4px); transition:opacity .12s ease, transform .12s ease;
  pointer-events:none; }
.fn-pop.show{ opacity:1; transform:translateY(0); pointer-events:auto; }
.fn-pop h6{ margin:0 0 4px; font-size:13px; font-weight:800; color:var(--fnq-accent); }
.fn-pop p{ margin:0; font-size:13px; line-height:1.5; color:var(--fnq-ink); }
.fn-pop .fn-pop-ex{ margin-top:7px; padding-top:7px; border-top:1px dashed var(--fnq-line);
  font-size:12px; color:var(--fnq-muted); }
.fn-pop .fn-pop-ex b{ color:var(--fnq-ink); }
.fn-pop .fn-pop-more{ display:inline-block; margin-top:8px; font-size:11.5px; font-weight:700; color:var(--fnq-accent); text-decoration:none; }

/* ---------- Funding Dictionary view ---------- */
.fn-dict-head{ margin-bottom:18px; }
.fn-dict-head h3{ font-weight:800; margin-bottom:4px; }
.fn-dict-head p{ color:var(--fnq-muted); margin:0; max-width:640px; }
.fn-dict-search{ position:relative; margin:16px 0 10px; }
.fn-dict-search input{ width:100%; border:1.5px solid var(--fnq-line); border-radius:12px;
  padding:12px 14px 12px 40px; font-size:15px; }
.fn-dict-search input:focus{ outline:none; border-color:var(--fnq-accent); }
.fn-dict-search svg{ position:absolute; left:13px; top:50%; transform:translateY(-50%); color:var(--fnq-muted); }
.fn-dict-cats{ display:flex; flex-wrap:wrap; gap:7px; margin-bottom:16px; }
.fn-dict-cat{ font-size:12.5px; font-weight:700; color:var(--fnq-muted); background:#f4f2fe;
  border:1px solid var(--fnq-line); border-radius:20px; padding:6px 12px; cursor:pointer; }
.fn-dict-cat.active,.fn-dict-cat:hover{ color:#fff; background:var(--fnq-accent); border-color:var(--fnq-accent); }

.fn-dict-essentials{ background:linear-gradient(135deg,#f3f0ff,#eef4ff); border:1px solid var(--fnq-line);
  border-radius:14px; padding:16px 18px; margin-bottom:20px; }
.fn-dict-essentials h5{ font-weight:800; font-size:15px; margin-bottom:8px; }
.fn-dict-essentials .fn-ess-chips{ display:flex; flex-wrap:wrap; gap:8px; }

.fn-dict-group{ margin-bottom:22px; }
.fn-dict-group > h4{ font-size:12px; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  color:var(--fnq-accent); margin:0 0 10px; }
.fn-dict-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:12px; }
.fn-dict-item{ border:1px solid var(--fnq-line); border-radius:12px; padding:13px 15px; background:#fff; }
.fn-dict-item h6{ font-size:14px; font-weight:800; margin:0 0 4px; color:var(--fnq-ink); }
.fn-dict-item p{ font-size:13px; line-height:1.5; color:var(--fnq-muted); margin:0; }
.fn-dict-item .fn-dict-ex{ margin-top:6px; font-size:12px; color:var(--fnq-accent); }
.fn-dict-item[hidden]{ display:none; }

.fn-dict-flags{ background:#fff7f7; border:1px solid #f4d4d4; border-radius:14px; padding:16px 18px; margin-top:8px; }
.fn-dict-flags h5{ font-weight:800; font-size:15px; color:#c0392b; margin-bottom:8px; }
.fn-dict-flags ul{ margin:0; padding-left:18px; }
.fn-dict-flags li{ font-size:13px; color:#7a3a34; margin-bottom:4px; }

/* ---------- Startup Passport card (with unique PNR) ---------- */
.fn-passport{ position:relative; border-radius:18px; overflow:hidden; color:#fff; padding:22px 24px;
  background:linear-gradient(135deg,#3a2b7a 0%,#6d4bf0 60%,#8b5cf6 100%);
  box-shadow:0 20px 46px -16px rgba(60,40,140,.6); max-width:520px; }
.fn-passport::after{ content:""; position:absolute; inset:0; opacity:.14; pointer-events:none;
  background:radial-gradient(circle at 85% 15%, #fff 0, transparent 42%),
             repeating-linear-gradient(135deg, rgba(255,255,255,.10) 0 2px, transparent 2px 9px); }
.fn-passport > *{ position:relative; z-index:1; }
.fn-pp-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.fn-pp-brand{ display:flex; align-items:center; gap:9px; font-weight:800; letter-spacing:.04em; }
.fn-pp-brand .fn-pp-seal{ width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.16);
  border:1.5px solid rgba(255,255,255,.5); display:flex; align-items:center; justify-content:center; font-size:16px; }
.fn-pp-kind{ font-size:10.5px; text-transform:uppercase; letter-spacing:.18em; opacity:.85; }
.fn-pp-name{ font-size:22px; font-weight:800; line-height:1.15; margin:2px 0 2px; }
.fn-pp-role{ font-size:13px; opacity:.9; margin-bottom:16px; }
.fn-pp-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:10px 18px; margin-bottom:16px; }
.fn-pp-field .k{ font-size:9.5px; text-transform:uppercase; letter-spacing:.14em; opacity:.72; }
.fn-pp-field .v{ font-size:14px; font-weight:700; }
.fn-pp-mrz{ margin-top:6px; padding-top:12px; border-top:1px dashed rgba(255,255,255,.35);
  font-family:"SFMono-Regular",ui-monospace,Menlo,Consolas,monospace; font-size:12.5px; letter-spacing:.14em;
  opacity:.92; word-break:break-all; }
.fn-pp-pnr{ display:flex; align-items:baseline; gap:8px; margin-bottom:14px; }
.fn-pp-pnr .lbl{ font-size:9.5px; text-transform:uppercase; letter-spacing:.16em; opacity:.72; }
.fn-pp-pnr .num{ font-family:ui-monospace,Menlo,Consolas,monospace; font-size:17px; font-weight:800; letter-spacing:.12em; }
.fn-pp-bar{ height:7px; border-radius:6px; background:rgba(255,255,255,.22); overflow:hidden; }
.fn-pp-bar > span{ display:block; height:100%; background:#fff; border-radius:6px; }
.fn-pp-complete{ font-size:11.5px; opacity:.9; margin-top:6px; }

@media (max-width:560px){
  .fn-dict-grid{ grid-template-columns:1fr; }
  .fn-passport{ padding:18px; }
  .fn-pp-name{ font-size:19px; }
}
