/* Jayu Capital Labs v11 - Global Market Session Engine + Trustpilot shell.
   Scoped, additive styles: the rest of the v remains unchanged. */
:root {
  --gsm-green: #59e6a9;
  --gsm-green-soft: rgba(89, 230, 169, .13);
  --gsm-cyan: #66e8f1;
  --gsm-line: rgba(93, 228, 190, .24);
  --gsm-panel: #06140f;
  --gsm-panel-2: #081b15;
}

.gsm-shell {
  position: relative;
  isolation: isolate;
  background:
    radial-gradient(circle at 20% 21%, rgba(46, 210, 154, .12), transparent 32%),
    radial-gradient(circle at 78% 0, rgba(76, 219, 235, .08), transparent 30%),
    linear-gradient(155deg, #07150f 0%, #04100d 52%, #061019 100%);
  border-color: rgba(73, 205, 158, .28);
  box-shadow: inset 0 1px 0 rgba(173, 255, 224, .025), 0 24px 70px rgba(0, 0, 0, .27);
}

.gsm-shell::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .32;
  background-image: linear-gradient(rgba(91, 214, 175, .025) 1px, transparent 1px), linear-gradient(90deg, rgba(91, 214, 175, .025) 1px, transparent 1px);
  background-size: 34px 34px;
  mask-image: linear-gradient(to bottom, #000, transparent 72%);
}

.gsm-shell .section-title { margin-bottom: 12px; }
.gsm-shell .section-title h2 { letter-spacing: -.02em; }
.gsm-shell .section-title p { color: #8fb1a4; }
.gsm-shell .badge.live {
  color: var(--gsm-green);
  border-color: rgba(89, 230, 169, .34);
  background: rgba(24, 106, 76, .12);
}

.gsm-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  margin-bottom: 10px;
}

.gsm-search {
  position: relative;
  min-width: 0;
}

.gsm-search::before {
  content: "⌕";
  position: absolute;
  left: 12px;
  top: 50%;
  translate: 0 -50%;
  color: var(--gsm-green);
  font-size: 15px;
  pointer-events: none;
}

.gsm-search input {
  width: 100%;
  height: 40px;
  min-width: 0;
  padding: 0 12px 0 35px;
  border: 1px solid var(--gsm-line);
  border-radius: 10px;
  outline: 0;
  background: rgba(3, 14, 11, .88);
  color: #e5f7ef;
  font: 750 10px/1 Inter, ui-sans-serif, system-ui, sans-serif;
}

.gsm-search input::placeholder { color: #739284; }
.gsm-search input:focus-visible {
  border-color: rgba(89, 230, 169, .72);
  box-shadow: 0 0 0 3px rgba(89, 230, 169, .1);
}

.gsm-utc-chip {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  padding: 0 11px;
  border: 1px solid rgba(102, 232, 241, .18);
  border-radius: 10px;
  color: #8eb7b4;
  background: rgba(4, 15, 14, .78);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .12em;
  white-space: nowrap;
}

.gsm-engine {
  display: grid;
  grid-template-columns: minmax(230px, .88fr) minmax(250px, 1.12fr);
  gap: 11px;
  align-items: stretch;
}

.gsm-globe-column,
.gsm-session-data,
.gsm-skyline,
.gsm-center { min-width: 0; }

.gsm-globe-stage {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 292px;
  overflow: hidden;
  border: 1px solid rgba(89, 230, 169, .2);
  border-radius: 16px;
  background:
    radial-gradient(circle at 50% 47%, rgba(21, 92, 69, .22), transparent 36%),
    radial-gradient(circle at 50% 51%, #061713 0, #020906 59%, #010604 100%);
  cursor: crosshair;
  touch-action: pan-y;
}

.gsm-globe-stage::before,
.gsm-globe-stage::after {
  content: "";
  position: absolute;
  inset: 8% 5%;
  border: 1px solid rgba(104, 232, 198, .09);
  border-radius: 50%;
  pointer-events: none;
  transform: rotate(-13deg) scaleY(.47);
}

.gsm-globe-stage::after {
  inset: 14% 9%;
  border-color: rgba(102, 232, 241, .08);
  transform: rotate(24deg) scaleY(.4);
}

#gsm-globe {
  display: block;
  width: 100%;
  height: 292px;
  position: relative;
  z-index: 2;
}

.gsm-globe-fallback {
  position: absolute;
  left: 50%;
  top: 50%;
  width: min(72%, 220px);
  aspect-ratio: 1;
  translate: -50% -50%;
  z-index: 1;
  overflow: hidden;
  border: 1px solid rgba(102, 232, 241, .52);
  border-radius: 50%;
  background:
    repeating-radial-gradient(ellipse at 50% 50%, transparent 0 17px, rgba(102, 232, 241, .11) 18px 19px),
    repeating-linear-gradient(90deg, transparent 0 22px, rgba(102, 232, 241, .08) 23px 24px),
    radial-gradient(circle at 34% 29%, rgba(89, 230, 169, .18), transparent 29%),
    #020b09;
  box-shadow: 0 0 28px rgba(69, 220, 223, .16), inset -30px -8px 40px rgba(0, 0, 0, .72);
}

.gsm-canvas-ready .gsm-globe-fallback { opacity: 0; }
.gsm-globe-caption {
  position: absolute;
  z-index: 3;
  left: 12px;
  right: 12px;
  bottom: 10px;
  display: flex;
  justify-content: space-between;
  gap: 8px;
  color: #729589;
  font-size: 7px;
  font-weight: 850;
  letter-spacing: .11em;
  text-transform: uppercase;
  pointer-events: none;
}

.gsm-session-data {
  display: flex;
  flex-direction: column;
  padding: 18px;
  border: 1px solid rgba(89, 230, 169, .2);
  border-radius: 16px;
  background: linear-gradient(150deg, rgba(9, 32, 24, .93), rgba(4, 15, 13, .96));
}

.gsm-kicker {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0 0 8px;
  color: var(--gsm-green);
  font-size: 8px;
  font-weight: 950;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.gsm-kicker::before {
  content: "";
  width: 6px;
  height: 6px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 12px currentColor;
  animation: gsm-pulse 2.2s ease-in-out infinite;
}

.gsm-session-data h3 {
  margin: 0;
  color: #f0faf5;
  font-size: clamp(20px, 2.1vw, 30px);
  line-height: 1.04;
  letter-spacing: -.035em;
}

.gsm-session-copy {
  margin: 9px 0 12px;
  color: #a5beb4;
  font-size: 10px;
  line-height: 1.55;
}

.gsm-countdown {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 2px 10px;
  align-items: center;
  padding: 11px 12px;
  border: 1px solid rgba(102, 232, 241, .16);
  border-radius: 11px;
  background: rgba(2, 11, 10, .72);
}

.gsm-countdown span {
  grid-row: 1 / 3;
  color: var(--gsm-cyan);
  font: 950 19px/1 Inter, ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: -.04em;
}

.gsm-countdown strong,
.gsm-countdown small { display: block; min-width: 0; }
.gsm-countdown strong { color: #d9eae3; font-size: 9px; }
.gsm-countdown small { color: #6f9185; font-size: 8px; }

.gsm-focus {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
  margin: 12px 0;
}

.gsm-focus span {
  padding: 6px 7px;
  border: 1px solid rgba(89, 230, 169, .2);
  border-radius: 999px;
  color: #b9ded0;
  background: rgba(89, 230, 169, .045);
  font-size: 7px;
  font-weight: 900;
  letter-spacing: .06em;
}

.gsm-selected {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: end;
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid rgba(89, 230, 169, .14);
}

.gsm-selected label,
.gsm-selected small,
.gsm-selected strong,
.gsm-selected time { display: block; }
.gsm-selected label { color: #6e9184; font-size: 7px; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.gsm-selected strong { margin-top: 4px; color: #dcece5; font-size: 12px; }
.gsm-selected small { margin-top: 2px; color: #78998d; font-size: 8px; }
.gsm-selected time { color: #f3fff9; font: 900 25px/1 ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: -.04em; }
.gsm-selected-status { text-align: right; }
.gsm-selected-status b {
  display: inline-flex;
  margin-top: 7px;
  padding: 5px 7px;
  border: 1px solid rgba(143, 167, 158, .2);
  border-radius: 999px;
  color: #93aa9f;
  font-size: 7px;
  letter-spacing: .09em;
}
.gsm-selected-status b.open,
.gsm-selected-status b.soon { color: var(--gsm-green); border-color: rgba(89, 230, 169, .34); background: rgba(89, 230, 169, .06); }
.gsm-selected-status b.soon { color: #f4d37c; border-color: rgba(244, 211, 124, .3); background: rgba(244, 211, 124, .05); }

.gsm-skyline {
  position: relative;
  height: 145px;
  margin-top: 11px;
  overflow: hidden;
  border: 1px solid rgba(89, 230, 169, .18);
  border-radius: 14px;
  background: #03100c;
}

.gsm-skyline img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.8) contrast(1.07) brightness(.68) hue-rotate(42deg);
  transition: opacity .28s ease;
}

.gsm-skyline::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(2, 11, 9, .84), rgba(3, 15, 11, .2) 55%, rgba(3, 10, 9, .36)), linear-gradient(to top, rgba(1, 8, 6, .82), transparent 72%);
}

.gsm-skyline-copy {
  position: absolute;
  z-index: 2;
  left: 14px;
  right: 14px;
  bottom: 13px;
}
.gsm-skyline-copy span,
.gsm-skyline-copy strong { display: block; }
.gsm-skyline-copy span { color: var(--gsm-green); font-size: 7px; font-weight: 950; letter-spacing: .13em; text-transform: uppercase; }
.gsm-skyline-copy strong { margin-top: 4px; color: #edf9f4; font-size: 15px; letter-spacing: -.02em; }

.gsm-centers {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  margin-top: 10px;
}

.gsm-center {
  min-height: 62px;
  padding: 9px 10px;
  border: 1px solid rgba(91, 142, 123, .24);
  border-radius: 10px;
  outline: 0;
  text-align: left;
  background: rgba(4, 16, 13, .82);
  color: #dbeae4;
  cursor: pointer;
  transition: border-color .18s ease, background-color .18s ease, transform .18s ease;
}
.gsm-center:hover { border-color: rgba(102, 232, 241, .38); transform: translateY(-1px); }
.gsm-center:focus-visible { outline: 2px solid rgba(89, 230, 169, .82); outline-offset: 2px; }
.gsm-center.selected { border-color: rgba(102, 232, 241, .5); background: rgba(17, 62, 49, .44); }
.gsm-center.open { border-color: rgba(89, 230, 169, .43); box-shadow: inset 0 0 18px rgba(89, 230, 169, .035); }
.gsm-center.soon { border-color: rgba(244, 211, 124, .34); }
.gsm-center-head { display: flex; justify-content: space-between; gap: 6px; font-size: 8px; font-weight: 900; }
.gsm-center-head span:last-child { color: #66877b; }
.gsm-center-time { display: block; margin-top: 4px; color: #eefaf5; font: 850 15px/1 ui-monospace, SFMono-Regular, Consolas, monospace; }
.gsm-center-state { display: block; margin-top: 4px; color: #759388; font-size: 6px; font-weight: 950; letter-spacing: .12em; }
.gsm-center.open .gsm-center-state { color: var(--gsm-green); }
.gsm-center.soon .gsm-center-state { color: #f4d37c; }

.gsm-shell .macro-strip { margin-top: 9px; }
.gsm-shell .macro-pill { border-color: rgba(89, 230, 169, .18); background: rgba(4, 17, 13, .78); }
.gsm-shell .macro-pill span { color: #719488; }
.gsm-shell .macro-pill strong { color: #dff1e9; }
.gsm-method-note { margin: 8px 2px 0; color: #67857a; font-size: 7px; line-height: 1.45; }

.jayu-trustpilot-shell {
  margin-top: 18px;
  padding: 18px;
  border: 1px solid rgba(81, 178, 144, .23);
  border-radius: 15px;
  background: linear-gradient(140deg, rgba(8, 28, 21, .9), rgba(6, 17, 18, .96));
}
.jayu-trustpilot-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .72fr); gap: 18px; align-items: center; }
.jayu-trustpilot-kicker { color: var(--gsm-green); font-size: 8px; font-weight: 950; letter-spacing: .12em; text-transform: uppercase; }
.jayu-trustpilot-shell h2 { margin: 6px 0 5px; font-size: 18px; }
.jayu-trustpilot-shell p { margin: 0; color: #91aaa1; font-size: 10px; line-height: 1.55; }
.jayu-trustpilot-host { min-height: 64px; display: grid; place-items: center; padding: 10px; border: 1px solid rgba(89, 230, 169, .15); border-radius: 11px; background: rgba(3, 13, 11, .72); }
.jayu-trustpilot-pending { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #adc4bb; }
.jayu-trustpilot-pending strong { display: block; color: #e6f3ee; font-size: 11px; }
.jayu-trustpilot-pending span { display: block; margin-top: 3px; color: #78968b; font-size: 8px; }
.jayu-trustpilot-pending a { flex: 0 0 auto; color: var(--gsm-green); font-size: 9px; font-weight: 900; text-decoration: none; }
.jayu-trustpilot-activate { flex: 0 0 auto; border: 1px solid rgba(89, 230, 169, .42); border-radius: 8px; padding: 8px 10px; background: rgba(89, 230, 169, .08); color: var(--gsm-green); font: 800 9px/1 Inter, sans-serif; cursor: pointer; }
.jayu-trustpilot-activate:hover { background: rgba(89, 230, 169, .16); }
.jayu-trustpilot-activate:focus-visible { outline: 2px solid var(--gsm-cyan); outline-offset: 2px; }
.jayu-trustpilot-pending a:focus-visible { outline: 2px solid var(--gsm-green); outline-offset: 3px; }

.gsm-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@keyframes gsm-pulse {
  0%, 100% { opacity: .5; scale: .86; }
  50% { opacity: 1; scale: 1; }
}

@media (max-width: 1500px) {
  .gsm-engine { grid-template-columns: minmax(210px, .9fr) minmax(230px, 1.1fr); }
  .gsm-globe-stage, #gsm-globe { min-height: 260px; height: 260px; }
  .gsm-session-data { padding: 15px; }
  .gsm-centers { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 1250px) {
  .gsm-engine { grid-template-columns: minmax(280px, .9fr) minmax(330px, 1.1fr); }
  .gsm-globe-stage, #gsm-globe { min-height: 310px; height: 310px; }
  .gsm-session-data h3 { font-size: 28px; }
}

@media (max-width: 760px) {
  .gsm-shell { padding: 12px; }
  .gsm-toolbar { grid-template-columns: 1fr; }
  .gsm-utc-chip { display: none; }
  .gsm-search input { min-height: 44px; font-size: 11px; }
  .gsm-engine { grid-template-columns: 1fr; }
  .gsm-globe-column { order: 1; }
  .gsm-session-data { order: 2; min-height: 265px; }
  .gsm-globe-stage, #gsm-globe { min-height: 285px; height: 285px; }
  .gsm-session-data h3 { font-size: 25px; }
  .gsm-countdown { min-height: 52px; }
  .gsm-selected time { font-size: 23px; }
  .gsm-skyline { height: 138px; }
  .gsm-centers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gsm-center { min-height: 66px; padding: 10px; }
  .jayu-trustpilot-grid { grid-template-columns: 1fr; }
}

@media (max-width: 430px) {
  .gsm-shell .section-title { align-items: flex-start; }
  .gsm-shell .section-title h2 { font-size: 20px; }
  .gsm-globe-stage, #gsm-globe { min-height: 260px; height: 260px; }
  .gsm-session-data { padding: 14px; }
  .gsm-session-data h3 { font-size: 22px; }
  .gsm-selected { align-items: center; }
  .gsm-selected time { font-size: 21px; }
  .gsm-skyline { height: 126px; }
  .jayu-trustpilot-pending { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  .gsm-kicker::before { animation: none; }
  .gsm-center, .gsm-skyline img { transition: none; }
  .gsm-center:hover { transform: none; }
}

/* v11.1 stability: keep the hero panels content-sized instead of stretching the page. */
.hero { align-items: start; }
.hero-copy, .hero-side { align-self: start; height: fit-content; min-height: 0; }
.gsm-shell, .gsm-engine, .gsm-session-data { min-height: 0; }
.gsm-engine { align-items: start; }
.gsm-globe-column { height: 320px; max-height: 320px; }
.gsm-globe-stage, #gsm-globe { height: 320px !important; min-height: 320px !important; max-height: 320px !important; }
.gsm-globe-stage { contain: layout paint; }
.gsm-session-data { align-self: start; height: auto !important; max-height: none; }
.gsm-selected { margin-top: 12px; }

.history-controls {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px;
  border: 1px solid rgba(94, 231, 240, .2);
  border-radius: 10px;
  background: rgba(8, 19, 28, .82);
}
.history-btn {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border: 1px solid transparent;
  border-radius: 7px;
  background: transparent;
  color: #b8d1db;
  font: 800 18px/1 ui-sans-serif, system-ui, sans-serif;
  cursor: pointer;
}
.history-btn:hover:not(:disabled) { color: var(--cyan); border-color: rgba(94, 231, 240, .34); background: rgba(94, 231, 240, .08); }
.history-btn:focus-visible { outline: 2px solid var(--cyan); outline-offset: 2px; }
.history-btn:disabled { opacity: .35; cursor: not-allowed; }
@media (max-width: 680px) {
  .gsm-globe-column { height: 285px; max-height: 285px; }
  .gsm-globe-stage, #gsm-globe { height: 285px !important; min-height: 285px !important; max-height: 285px !important; }
  .history-controls { gap: 2px; }
  .history-btn { width: 27px; height: 27px; font-size: 16px; }
}
