/* ── Globodex Signals app — embedded ────────────────────────────────────────
   The real Signals product UI, ported 1:1 from www.globodex.com (that repo's
   assets/styles.css, the .sg-app → .sg-ctx block). Kept OUT of styles.css for
   the same reason assets/prism-embed.css is: this is another product's
   authored CSS, not this site's design system, and it should be re-ported
   rather than hand-edited when Globodex changes it.

   Everything is scoped under .sg-app, including a local alias of the Globodex
   tokens the block depends on, so nothing leaks into the page. The app is
   authored at 1920x1080 and scaled by its container — see .cx-sgmount.
   ────────────────────────────────────────────────────────────────────────── */

/* ── Globodex canonical-event record (.dv-panel) ───────────────────────────
   The real dv-panel component, ported alongside the Signals app because the
   product cards mount both. Same rule as the app block: re-port, don't edit.
   ────────────────────────────────────────────────────────────────────────── */
  .dv-panel {
    border: 1px solid rgba(255,255,255,0.08); border-radius: var(--r-lg);
    background: var(--carbon-raised, #121715);
  }
  .dv-panel__head {
    padding: 14px 20px; border-bottom: 1px solid rgba(255,255,255,0.07);
    display: flex; align-items: center; justify-content: space-between;
    color: rgba(255,255,255,0.45); font-family: var(--mono); font-size: 10px;
    letter-spacing: 0.12em; text-transform: uppercase;
  }
  .dv-claimline {
    padding: 18px 20px; border-bottom: 1px solid rgba(255,255,255,0.07);
    color: rgba(255,255,255,0.85); font-size: 15px; line-height: 1.5;
  }
  .dv-check { padding: 4px 0; }
  .dv-check__row {
    padding: 14px 20px; display: grid; grid-template-columns: 20px 108px 1fr;
    gap: 12px; align-items: baseline; border-bottom: 1px solid rgba(255,255,255,0.05);
  }
  .dv-check__ok { color: var(--g300); font-size: 12px; }
  .dv-check__k { color: rgba(255,255,255,0.42); font-family: var(--mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; }
  .dv-check__v { color: rgba(255,255,255,0.78); font-size: 13px; }
  .dv-rec__srcs { padding: 14px 20px; border-top: 1px solid rgba(255,255,255,0.06); display: grid; gap: 9px; }
  .dv-rec__srcs > p { margin: 0 0 2px; font-family: var(--mono); font-size: 8px; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.28); }
  .dv-rec__src { display: flex; align-items: center; gap: 10px; }
  .dv-av {
    width: 15px; height: 15px; border-radius: 4px; display: grid; place-items: center;
    font-family: var(--mono); font-size: 7px; font-weight: 700; flex: none;
  }
  .dv-rec__src span:not(.dv-av) { flex: 1; min-width: 0; font-family: var(--mono); font-size: 10px; color: rgba(255,255,255,0.55); }
  .dv-rec__src em { flex-shrink: 0; font-style: normal; font-family: var(--mono); font-size: 8.5px; color: rgba(94,237,184,0.7); }
  .dv-rec__src em.is-sec { color: rgba(255,255,255,0.38); }

  /* ── the REAL Globodex Signals app ──────────────────────────────────────
     Globodex-only tokens → aliased locally (values 1:1 from that repo's
     :root) so the verbatim block below runs unmodified. Scoped to .sg-app —
     nothing leaks into the page. NOTE: globodex's --line/--line-strong are
     .08/.15 vs channel1's .07/.14; the app keeps ITS OWN values. */
  .sg-app {
    --ink:#17181a; --ink-soft:#45484d; --ink-muted:#717378; --ink-faint:#9da1ab;
    --paper:#f7f8fb; --white:#ffffff;
    --line:rgba(23,24,26,0.08); --line-strong:rgba(23,24,26,0.15);
    --gx-950:#061d15; --gx-900:#0a2e20; --gx-700:#087148; --gx-600:#00895e;
    --gx-500:#12a873; --gx-300:#5eedb8; --gx-200:#9af5d4; --gx-100:#d9faec;
  }
  /* ── verbatim from www.globodex.com/assets/styles.css (.sg-app → .sg-ctx) ── */
.sg-app {
  position: absolute; top: 0; left: 0; width: 1920px; height: 1080px;
  transform-origin: top left; transform: scale(calc(100cqw / 1920px));
  display: grid; grid-template-columns: 76px 340px 1fr;
  background: var(--white); color: var(--ink);
  font-family: var(--sans); text-align: left;
}

/* ── rail ───────────────────────────────────────────────────────────────── */
.sg-rail {
  background: var(--gx-950); display: flex; flex-direction: column;
  align-items: center; gap: 8px; padding: 22px 0;
}
.sg-rail__mark {
  width: 34px; height: 34px; margin-bottom: 18px; border-radius: 9px;
  background: var(--gx-300); display: grid; place-items: center;
  color: var(--gx-950); font-size: 17px; font-weight: 600;
}
.sg-rail__mark svg { width: 23px; height: 23px; }
.sg-rail__btn {
  width: 44px; height: 44px; border-radius: 11px; display: grid; place-items: center;
  color: rgba(255,255,255,.4); font-size: 19px;
}
.sg-rail__btn.is-on { background: rgba(94,237,184,.14); color: var(--gx-300); }
.sg-rail__spacer { flex: 1; }
.sg-rail__avatar {
  width: 36px; height: 36px; border-radius: 50%; background: var(--gx-700);
  display: grid; place-items: center; color: white; font-size: 14px; font-weight: 500;
}

/* ── briefings sidebar ──────────────────────────────────────────────────── */
.sg-side { background: var(--paper); border-right: 1px solid var(--line); padding: 22px 0 0; }
.sg-side__head { padding: 0 20px 16px; display: flex; align-items: center; justify-content: space-between; }
.sg-side__head b { font-size: 20px; font-weight: 500; letter-spacing: -.01em; }
.sg-side__head span { color: var(--ink-faint); font-size: 20px; }
.sg-side__search {
  margin: 0 20px 20px; height: 38px; border: 1px solid var(--line-strong);
  border-radius: 9px; background: var(--white); display: flex; align-items: center;
  gap: 9px; padding: 0 12px; color: var(--ink-faint); font-size: 14px;
}
.sg-side__group {
  padding: 0 20px 9px; color: var(--ink-faint); font-family: var(--mono);
  font-size: 11px; letter-spacing: .12em; text-transform: uppercase;
}
.sg-row { padding: 13px 20px; border-left: 2px solid transparent; display: grid; gap: 5px; }
.sg-row.is-on { background: var(--white); border-left-color: var(--gx-600); }
.sg-row__top { display: flex; align-items: center; gap: 8px; }
.sg-row__tag {
  padding: 2px 7px; border-radius: 4px; background: var(--gx-100);
  color: var(--gx-700); font-family: var(--mono); font-size: 10px;
  letter-spacing: .07em; text-transform: uppercase;
}
.sg-row__time { margin-left: auto; color: var(--ink-faint); font-size: 12px; }
.sg-row__title {
  color: var(--ink); font-size: 15px; line-height: 1.35; font-weight: 450;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.sg-row:not(.is-on) .sg-row__title { color: var(--ink-soft); }

/* ── main panel ─────────────────────────────────────────────────────────── */
.sg-main { position: relative; min-width: 0; display: flex; flex-direction: column; }
.sg-topbar {
  height: 68px; flex-shrink: 0; border-bottom: 1px solid var(--line);
  display: flex; align-items: center; gap: 12px; padding: 0 30px;
}
.sg-crumb { color: var(--ink-faint); font-size: 14px; }
.sg-crumb b { color: var(--ink); font-weight: 450; }
.sg-live {
  display: inline-flex; align-items: center; gap: 7px; margin-left: 12px;
  color: var(--gx-700); font-family: var(--mono); font-size: 11px;
  letter-spacing: .08em; text-transform: uppercase;
}
.sg-live i {
  width: 7px; height: 7px; border-radius: 50%; background: var(--gx-500);
  box-shadow: 0 0 0 3px rgba(18,168,115,.18);
}
.sg-topbar__right { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.sg-faces { display: flex; }
.sg-faces i {
  width: 30px; height: 30px; margin-left: -8px; border-radius: 50%;
  border: 2px solid var(--white); display: grid; place-items: center;
  color: white; font-size: 12px; font-style: normal; font-weight: 500;
}
.sg-pill {
  height: 34px; padding: 0 15px; border: 1px solid var(--line-strong);
  border-radius: var(--r-full); display: grid; place-items: center;
  font-size: 13px; color: var(--ink-soft);
}
.sg-pill--go { border-color: transparent; background: var(--gx-950); color: white; }

.sg-body { flex: 1; min-height: 0; overflow: hidden; padding: 34px 30px 0; }
.sg-doc { max-width: 780px; }
.sg-chip {
  display: inline-block; margin-bottom: 20px; padding: 5px 11px; border-radius: 5px;
  background: var(--gx-100); color: var(--gx-700); font-family: var(--mono);
  font-size: 12px; letter-spacing: .08em; text-transform: uppercase;
}
.sg-doc h2 { margin: 0 0 20px; font-size: 42px; font-weight: 500; letter-spacing: -.024em; line-height: 1.16; }
.sg-doc__why { margin: 0 0 26px; color: var(--ink-soft); font-size: 19px; line-height: 1.55; }
.sg-doc__why b { color: var(--ink); font-weight: 500; }
.sg-card {
  margin-bottom: 13px; padding: 18px 20px; border-radius: 10px;
  background: var(--paper); display: flex; gap: 16px; align-items: baseline;
}
.sg-card--watch { background: transparent; border: 1px dashed var(--line-strong); }
.sg-card > span {
  flex-shrink: 0; color: var(--gx-700); font-family: var(--mono); font-size: 11px;
  letter-spacing: .09em; text-transform: uppercase;
}
.sg-card > p { margin: 0; color: var(--ink); font-size: 18px; line-height: 1.45; }
.sg-card--watch > p { color: var(--ink-soft); }
.sg-sep {
  margin: 30px 0 18px; padding-top: 22px; border-top: 1px solid var(--line);
  color: var(--ink-faint); font-family: var(--mono); font-size: 11px;
  letter-spacing: .12em; text-transform: uppercase;
}
.sg-ev { padding: 15px 0; border-bottom: 1px solid var(--line); display: flex; align-items: center; gap: 16px; }
.sg-ev__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--gx-500); flex-shrink: 0; }
.sg-ev__t { font-size: 17px; color: var(--ink); }
.sg-ev__m { margin-left: auto; color: var(--ink-faint); font-family: var(--mono); font-size: 12px; }

/* Context panel — sits beyond the right crop at desktop; visible once stacked. */
.sg-ctx {
  position: absolute; top: 68px; right: 0; bottom: 0; width: 360px;
  border-left: 1px solid var(--line); background: var(--paper); padding: 26px 24px;
}
.sg-ctx h3 {
  margin: 0 0 18px; color: var(--ink-faint); font-family: var(--mono); font-size: 11px;
  letter-spacing: .12em; text-transform: uppercase; font-weight: 400;
}
.sg-ctx__item { padding: 14px 0; border-bottom: 1px solid var(--line); }
.sg-ctx__item b { display: block; font-size: 15px; font-weight: 450; margin-bottom: 4px; }
.sg-ctx__item span { color: var(--ink-muted); font-size: 13px; }
