/* ============================================================
   OrgKit Shared — design tokens + common components
   POC v0.1 — restrained dark theme
   Load AFTER any page-local <style> block: the token overrides
   and glow-kill rules below win by source order, so legacy pages
   are re-themed without editing 1,600 lines of page CSS.
   ============================================================ */

/* ── 1. TOKENS ─────────────────────────────────────────────── */
:root {
  /* surfaces — neutral dark, no purple tint */
  --bg:#0b0c10; --s1:#12131a; --s2:#181a23; --s3:#20222e;
  /* borders — neutral, three steps */
  --b1:rgba(255,255,255,0.06); --b2:rgba(255,255,255,0.11); --b3:rgba(255,255,255,0.20);
  /* text */
  --tx:#e7e8ec; --tx2:#9da1ac; --tx3:#686c78;
  /* ONE primary accent (amber, desaturated) */
  --acc:#e8a33d; --acc-hi:#f2b355; --acc-dim:rgba(232,163,61,0.14); --acc-faint:rgba(232,163,61,0.07);
  /* semantic set */
  --ok:#3ecf8e;     --ok-dim:rgba(62,207,142,0.14);   --ok-faint:rgba(62,207,142,0.07);
  --danger:#e5646e; --danger-dim:rgba(229,100,110,0.14); --danger-faint:rgba(229,100,110,0.07);
  --info:#6ea8fe;   --info-dim:rgba(110,168,254,0.14);  --info-faint:rgba(110,168,254,0.07);

  /* legacy aliases — old page CSS keeps working, values are re-themed */
  --amber:var(--acc);   --amber2:var(--acc-dim);   --amber3:var(--acc-faint);
  --green:var(--ok);    --green2:var(--ok-dim);    --green3:var(--ok-faint);
  --red:var(--danger);  --red2:var(--danger-dim);  --red3:var(--danger-faint);
  --blue:var(--info);   --blue2:var(--info-dim);   --blue3:var(--info-faint);
  --purple:#8f85e0;     --purple2:rgba(143,133,224,0.14); --purple3:rgba(143,133,224,0.07);
  --teal:var(--info);   --teal2:var(--info-dim);   --teal3:var(--info-faint);
  /* Automation Switch per-type data colors — kept distinct, desaturated */
  --vr:#8f85e0; --fl:#5eadf2; --pb:#e0788a; --tr:#e8a33d; --wf:#3ecf8e;

  /* Schema Atlas + Profile Drift legacy aliases (generic names) */
  --panel:var(--s1); --panel2:var(--s2); --panel-2:var(--s2); --raised:var(--s3);
  --line:rgba(255,255,255,0.12); --line-s:rgba(255,255,255,0.06); --line-soft:rgba(255,255,255,0.06);
  --text:var(--tx); --muted:var(--tx2); --faint:var(--tx3);
  --warn:var(--acc); --miss:var(--info); --risk:var(--danger);
  --accent:var(--acc);
  --disp:var(--display);
  /* Profile Drift org-slot colors — distinct, desaturated */
  --dev:#3ecf8e;  --dev-dim:rgba(62,207,142,0.10);
  --uat:#8f85e0;  --uat-dim:rgba(143,133,224,0.10);
  --prod:#e5646e; --prod-dim:rgba(229,100,110,0.10);

  /* type — one display, one body, one mono, sitewide */
  --mono:'JetBrains Mono',monospace; --display:'Space Grotesk',sans-serif; --body:'Geist',sans-serif;
  --r:8px; --rl:12px;
}

/* ── 2. BASE ───────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
body{font-family:var(--body);background:var(--bg);color:var(--tx);-webkit-font-smoothing:antialiased}

/* glow-kill: neutralize legacy neon rules on pages not yet refactored */
body{background-image:none !important}
.logo-mark,.org-dot,.btn-amber,.btn-primary,.btn-green,.btn-red,
.card,.panel,.tool-card,.connect-box,.section,.top,.sb-live,
.live-dot,.dot-live,[class*="dot"][class*="live"],.brand .dot.live,.btn.primary{box-shadow:none !important}
.btn-amber:hover,.btn-primary:hover,.card:hover,.tool-card:hover,.btn:hover{box-shadow:none !important}
.tool-card:hover,.card:hover{border-color:var(--b2) !important}
.badge,.tag,.chip,.stbadge,.risk-flag,.badge.md,.badge.lookup,.badge.junction,
.dev .tag,.uat .tag,.prod .tag{text-shadow:none !important}
.ring{filter:none !important}
.landing-title,.hero-title,.auth-hero h1{background:none !important;-webkit-text-fill-color:var(--tx) !important;color:var(--tx)}
/* Schema Atlas purple-gradient connect button → flat primary */
#authScreen .connect-btn{background:var(--acc) !important;border-color:var(--acc) !important;color:#141312 !important;box-shadow:none !important}
#authScreen .connect-btn:hover{background:var(--acc-hi) !important}

/* inline SVG icons — stroke style, inherit currentColor */
.ok-ico{width:1.1em;height:1.1em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;display:inline-block;vertical-align:-0.15em;flex-shrink:0}
.ok-brand-mark .ok-ico{width:14px;height:14px;color:var(--acc)}
.ok-switch-ico .ok-ico{width:13px;height:13px;color:var(--tx2)}
.card-icon .ok-ico,.persona-icon .ok-ico,.landing-icon .ok-ico{width:19px;height:19px;color:var(--tx2)}
.landing-icon .ok-ico{width:26px;height:26px}

::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--s3);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:var(--b3)}

/* ── 3. SHARED NAV ─────────────────────────────────────────── */
.ok-topbar{position:sticky;top:0;z-index:200;background:rgba(11,12,16,0.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--b1);padding:0 20px;height:52px;display:flex;align-items:center;gap:14px}
.ok-topbar *{margin:0;padding:0}
.ok-brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--tx);flex-shrink:0}
.ok-brand-mark{width:26px;height:26px;background:var(--s3);border:1px solid var(--b2);border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:13px}
.ok-brand-name{font-family:var(--display);font-size:14px;font-weight:700;letter-spacing:-0.2px}

/* tool switcher */
.ok-switch{position:relative}
.ok-switch-btn{display:flex;align-items:center;gap:7px;background:transparent;border:1px solid transparent;border-radius:var(--r);padding:6px 10px;color:var(--tx2);font-family:var(--body);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}
.ok-switch-btn:hover,.ok-switch.open .ok-switch-btn{background:var(--s2);border-color:var(--b1);color:var(--tx)}
.ok-switch-cur{color:var(--tx);font-weight:600}
.ok-switch-chev{font-size:9px;color:var(--tx3);transition:transform .15s}
.ok-switch.open .ok-switch-chev{transform:rotate(180deg)}
.ok-switch-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:250px;background:var(--s1);border:1px solid var(--b2);border-radius:var(--rl);padding:5px;display:none;box-shadow:0 12px 32px rgba(0,0,0,0.45);z-index:300}
.ok-switch.open .ok-switch-menu{display:block}
.ok-switch-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r);text-decoration:none;color:var(--tx2);font-size:13px;transition:background .12s}
.ok-switch-item:hover{background:var(--s2);color:var(--tx)}
.ok-switch-item.current{color:var(--tx);background:var(--s2)}
.ok-switch-item.soon{opacity:.45;pointer-events:none}
.ok-switch-ico{width:24px;height:24px;border-radius:6px;background:var(--s3);display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}
.ok-switch-item small{margin-left:auto;font-family:var(--mono);font-size:9px;color:var(--tx3);letter-spacing:.5px}
.ok-switch-item.current small{color:var(--acc)}

.ok-nav-right{margin-left:auto;display:flex;align-items:center;gap:8px}

/* org pill */
.ok-org-pill{display:none;align-items:center;gap:8px;padding:5px 11px;border-radius:20px;border:1px solid var(--b2);background:var(--s2);font-size:12px;font-family:var(--mono)}
.ok-org-pill.visible{display:flex}
.ok-org-dot{width:6px;height:6px;border-radius:50%;background:var(--ok);flex-shrink:0}
.ok-org-name{color:var(--tx);font-weight:500}
.ok-org-env{color:var(--tx3);font-size:10px}
.ok-disconnect{background:transparent;border:none;color:var(--tx3);font-size:10px;font-family:var(--body);cursor:pointer;padding:2px 4px;border-radius:4px}
.ok-disconnect:hover{color:var(--danger)}
/* Feedback link — quiet by design. It sits beside the primary CTA but must not
   compete with it, so: no fill, muted text, accent only on hover/focus.
   min-height 44px keeps it a comfortable tap target on touch devices. */
.ok-feedback{display:inline-flex;align-items:center;min-height:44px;padding:0 10px;font-size:12.5px;
  color:var(--tx2);text-decoration:none;font-family:var(--body);white-space:nowrap;transition:color .15s}
.ok-feedback:hover{color:var(--acc)}
.ok-feedback:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:4px;color:var(--acc)}
/* Below 560px the nav is tight (brand + switcher + CTA + org pill); drop the
   feedback link there rather than let the bar wrap or the CTA get squeezed. */
@media (max-width:560px){ .ok-feedback{display:none} }

.ok-connect-link{padding:7px 15px;border-radius:var(--r);background:var(--acc);color:#141312;font-weight:600;font-size:12.5px;text-decoration:none;font-family:var(--body);transition:background .15s}
.ok-connect-link:hover{background:var(--acc-hi)}
.ok-connect-link.hidden{display:none}

/* ── 4. SHARED COMPONENTS ──────────────────────────────────── */
.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--r);border:1px solid var(--b2);background:var(--s2);color:var(--tx);font-size:12px;font-weight:500;font-family:var(--body);cursor:pointer;transition:all .15s;white-space:nowrap;text-decoration:none}
.btn:hover{background:var(--s3)}
.btn:active{transform:scale(0.98)}
.btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}
.btn-amber,.btn-primary{background:var(--acc);border-color:var(--acc);color:#141312;font-weight:600}
.btn-amber:hover,.btn-primary:hover,.btn.amber:hover,.btn.primary:hover{background:var(--acc-hi)}
.btn-green{background:var(--ok-faint);border-color:var(--ok-dim);color:var(--ok)}
.btn-red{background:var(--danger-faint);border-color:var(--danger-dim);color:var(--danger)}
.btn-ghost{background:transparent;border-color:transparent;color:var(--tx2)}
.btn-ghost:hover{background:var(--s2);color:var(--tx)}
.btn-full{width:100%;justify-content:center;padding:12px}

.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.field-label{font-family:var(--mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--tx3)}
.field-input,.field-select{background:var(--s2);border:1px solid var(--b2);border-radius:var(--r);padding:10px 12px;color:var(--tx);font-size:13px;font-family:var(--body);outline:none;width:100%;transition:border-color .15s}
.field-input:focus,.field-select:focus{border-color:var(--acc)}
.field-input::placeholder{color:var(--tx3)}

.connect-box{background:var(--s1);border:1px solid var(--b2);border-radius:var(--rl);padding:28px;width:100%;max-width:420px;text-align:left}
.connect-box h3{font-family:var(--display);font-size:15px;font-weight:600;margin-bottom:4px}
.connect-box p{font-size:13px;color:var(--tx2);margin-bottom:20px;line-height:1.6}

.badge{font-family:var(--mono);font-size:9px;letter-spacing:.5px;padding:3px 8px;border-radius:20px;font-weight:500}
.badge-live{background:var(--ok-faint);color:var(--ok);border:1px solid var(--ok-dim)}
.badge-soon{background:var(--s2);color:var(--tx3);border:1px solid var(--b1)}

.spinner{width:14px;height:14px;border:2px solid rgba(0,0,0,0.25);border-top-color:#141312;border-radius:50%;animation:ok-spin .7s linear infinite;flex-shrink:0;display:inline-block}
@keyframes ok-spin{to{transform:rotate(360deg)}}

/* CORS banner (shared markup rendered by orgkit-shared.js or page) */
.cors-banner{background:var(--s1);border:1px solid var(--acc-dim);border-radius:var(--rl);padding:20px;max-width:860px;margin:0 auto 32px;display:none}
.cors-banner.visible{display:block}
.cors-banner-title{font-family:var(--display);font-size:14px;font-weight:600;color:var(--acc);margin-bottom:8px}
.cors-banner-body{font-size:13px;color:var(--tx2);line-height:1.6;margin-bottom:14px}
.cors-apex{font-family:var(--mono);font-size:11px;background:var(--s2);border:1px solid var(--b2);border-radius:var(--r);padding:12px 14px;white-space:pre;overflow-x:auto;line-height:1.7;color:var(--tx);position:relative;margin:0}
.cors-actions{display:flex;align-items:center;gap:8px;margin-top:10px}

footer.ok-footer{border-top:1px solid var(--b1);padding:32px 24px;text-align:center}
footer.ok-footer p{font-size:12px;color:var(--tx3);line-height:1.8}
footer.ok-footer a{color:var(--tx3);text-decoration:none}
footer.ok-footer a:hover{color:var(--tx2)}
