/* =============================================================
   VERDICT TOOL — v36.127 neon accents + score-adjacent CTA
   Purpose: lift the cobalt-heavy tool with tightly-restricted
   neon accents (verdict-moment only) and put a CTA next to
   the score. Also adds a mobile/tablet sticky score+CTA strip.
   Loads AFTER verdict-v121-facelift.css.
   ============================================================= */

:root {
  --v127-neon: #A6F04A;
  --v127-neon-glow: rgba(166, 240, 74, 0.35);
  --v127-neon-glow-soft: rgba(166, 240, 74, 0.18);
  --v127-cobalt: #1E4CFF;
  --v127-ink: #0B0D12;
}

/* --------------------------------------------------------
   1. Sidebar wordmark — VERDICT gets neon; sub stays quiet
   -------------------------------------------------------- */
.v2-logo__name {
  color: var(--v127-neon) !important;
  letter-spacing: 0.18em;
  text-shadow:
    0 0 12px var(--v127-neon-glow-soft),
    0 0 1px rgba(166, 240, 74, 0.5);
  transition: text-shadow 200ms ease;
}
.v2-logo:hover .v2-logo__name {
  text-shadow:
    0 0 18px var(--v127-neon-glow),
    0 0 2px rgba(166, 240, 74, 0.7);
}

/* --------------------------------------------------------
   2. Verdict pane — tier-aware neon accents
   The right-rail card scores. When PASS/ELITE tier, add
   neon halo + neon score number; keep cobalt otherwise.
   -------------------------------------------------------- */

/* Score number turns neon on pass tiers */
.v2-verdict-pane[data-tier="pass"] .v2-gauge__score,
.v2-verdict-pane[data-tier="stress-tested"] .v2-gauge__score,
.v2-verdict-pane[data-tier="elite"] .v2-gauge__score {
  color: var(--v127-neon) !important;
  text-shadow:
    0 0 24px var(--v127-neon-glow),
    0 0 2px rgba(166, 240, 74, 0.6);
}

/* Tier label neon on pass */
.v2-verdict-pane[data-tier="pass"] .v2-tier__label,
.v2-verdict-pane[data-tier="stress-tested"] .v2-tier__label,
.v2-verdict-pane[data-tier="elite"] .v2-tier__label {
  color: var(--v127-neon) !important;
  text-shadow: 0 0 12px var(--v127-neon-glow-soft);
}

/* Card outer glow on pass */
.v2-verdict-pane[data-tier="pass"],
.v2-verdict-pane[data-tier="stress-tested"],
.v2-verdict-pane[data-tier="elite"] {
  box-shadow:
    inset 0 0 0 1px rgba(166, 240, 74, 0.22),
    0 0 48px rgba(166, 240, 74, 0.10);
}

/* --------------------------------------------------------
   3. Score-adjacent CTA — inside verdict pane, below KPIs
   Hidden by default; revealed when scored (any tier).
   -------------------------------------------------------- */
.v127-score-cta {
  display: none;
  margin: 8px 20px 12px;
  padding: 12px 16px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--v127-neon) 0%, #7FD030 100%);
  color: var(--v127-ink);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: center;
  border: none;
  cursor: pointer;
  box-shadow:
    0 4px 16px var(--v127-neon-glow),
    inset 0 1px 0 rgba(255, 255, 255, 0.4);
  transition: transform 160ms ease, box-shadow 160ms ease;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.v127-score-cta:hover {
  transform: translateY(-1px);
  box-shadow:
    0 6px 24px var(--v127-neon-glow),
    inset 0 1px 0 rgba(255, 255, 255, 0.5);
}
.v127-score-cta__arrow {
  display: inline-block;
  transition: transform 200ms ease;
}
.v127-score-cta:hover .v127-score-cta__arrow { transform: translateX(3px); }

/* Show only when tier is set (any scored state) */
.v2-verdict-pane[data-tier="pass"] .v127-score-cta,
.v2-verdict-pane[data-tier="stress-tested"] .v127-score-cta,
.v2-verdict-pane[data-tier="elite"] .v127-score-cta,
.v2-verdict-pane[data-tier="caution"] .v127-score-cta,
.v2-verdict-pane[data-tier="reconsider"] .v127-score-cta,
.v2-verdict-pane[data-tier="fail"] .v127-score-cta {
  display: inline-flex;
}

/* Caution/fail variants — cobalt instead of neon */
.v2-verdict-pane[data-tier="caution"] .v127-score-cta {
  background: linear-gradient(135deg, #FFB84A 0%, #FF9010 100%);
  color: var(--v127-ink);
  box-shadow: 0 4px 16px rgba(255, 144, 16, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.4);
}
.v2-verdict-pane[data-tier="reconsider"] .v127-score-cta,
.v2-verdict-pane[data-tier="fail"] .v127-score-cta {
  background: linear-gradient(135deg, #3B65FF 0%, #1E4CFF 100%);
  color: #FFFFFF;
  box-shadow: 0 4px 16px rgba(30, 76, 255, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

/* --------------------------------------------------------
   4. Fixed sticky score+CTA strip (mobile / tablet / desktop)
   Only appears when scored. Bottom-anchored, above cta-bar.
   -------------------------------------------------------- */
.v127-sticky-strip {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 90;
  display: none;
  align-items: center;
  gap: 12px;
  padding: 10px 16px;
  padding-bottom: calc(10px + env(safe-area-inset-bottom, 0));
  background: linear-gradient(180deg,
    rgba(11, 13, 18, 0.86) 0%,
    rgba(11, 13, 18, 0.96) 100%);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  border-top: 1px solid rgba(166, 240, 74, 0.22);
  box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.4);
}

/* Show only when the verdict card has been scored */
body[data-v127-scored="1"] .v127-sticky-strip {
  display: flex;
}

/* Suppress the older bottom cta-bar whenever the sticky strip
   is up — the strip is the primary post-verdict action. */
body[data-v127-scored="1"] .v2-cta-bar {
  display: none !important;
}
/* Add bottom padding so sticky strip doesn't cover VIEW FULL REPORT
   (right rail on desktop, stacked below on mobile). */
body[data-v127-scored="1"] .v2-main {
  padding-bottom: 88px !important;
}
/* Hide the score-adjacent CTA on small screens (strip is enough). */
@media (max-width: 900px) {
  body[data-v127-scored="1"] .v127-score-cta {
    display: none !important;
  }
}

/* Mini score dial (inline circular) */
.v127-strip-score {
  display: flex;
  align-items: baseline;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 10px;
  background: rgba(30, 76, 255, 0.08);
  border: 1px solid rgba(166, 240, 74, 0.22);
  min-width: 76px;
  justify-content: center;
}
.v127-strip-score__num {
  font-family: "JetBrains Mono", "IBM Plex Mono", monospace;
  font-size: 22px;
  font-weight: 700;
  color: var(--v127-neon);
  line-height: 1;
  letter-spacing: -0.02em;
}
.v127-strip-score__of {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
  font-weight: 500;
}

/* Strip status label */
.v127-strip-label {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
  overflow: hidden;
}
.v127-strip-label__eyebrow {
  font-size: 9px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
  font-weight: 600;
}
.v127-strip-label__text {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.92);
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Strip CTA button */
.v127-strip-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--v127-neon) 0%, #7FD030 100%);
  color: var(--v127-ink);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border: none;
  cursor: pointer;
  white-space: nowrap;
  box-shadow: 0 4px 14px var(--v127-neon-glow), inset 0 1px 0 rgba(255, 255, 255, 0.4);
  transition: transform 160ms ease, box-shadow 160ms ease;
  flex-shrink: 0;
}
.v127-strip-cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 18px var(--v127-neon-glow), inset 0 1px 0 rgba(255, 255, 255, 0.5);
}
.v127-strip-cta__arrow {
  transition: transform 200ms ease;
}
.v127-strip-cta:hover .v127-strip-cta__arrow { transform: translateX(3px); }

/* Tier-aware strip colors */
body[data-v127-tier="caution"] .v127-strip-score__num { color: #FFB84A; }
body[data-v127-tier="caution"] .v127-strip-score { border-color: rgba(255, 184, 74, 0.32); }
body[data-v127-tier="caution"] .v127-strip-cta {
  background: linear-gradient(135deg, #FFB84A 0%, #FF9010 100%);
  box-shadow: 0 4px 14px rgba(255, 144, 16, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.4);
}
body[data-v127-tier="reconsider"] .v127-strip-score__num,
body[data-v127-tier="fail"] .v127-strip-score__num { color: #FF6B6B; }
body[data-v127-tier="reconsider"] .v127-strip-score,
body[data-v127-tier="fail"] .v127-strip-score { border-color: rgba(255, 107, 107, 0.32); }
body[data-v127-tier="reconsider"] .v127-strip-cta,
body[data-v127-tier="fail"] .v127-strip-cta {
  background: linear-gradient(135deg, #3B65FF 0%, #1E4CFF 100%);
  color: #FFFFFF;
  box-shadow: 0 4px 14px rgba(30, 76, 255, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

/* Ensure main content has room above sticky strip when scored */
body[data-v127-scored="1"] .v2-body {
  padding-bottom: 96px;
}

/* --------------------------------------------------------
   5. Micro polish — subtle neon dots on active nav lane
   Signals "the picked lane" without competing with cobalt.
   -------------------------------------------------------- */
.v2-lane-item.is-active::after,
.v2-lane-item[aria-pressed="true"]::after {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--v127-neon);
  box-shadow: 0 0 6px var(--v127-neon-glow);
  margin-left: 8px;
  vertical-align: middle;
}

/* Active nav item — neon underline glow */
.v2-nav__item.is-active {
  position: relative;
}
.v2-nav__item.is-active::before {
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 4px;
  height: 1px;
  background: linear-gradient(90deg,
    transparent,
    var(--v127-neon) 20%,
    var(--v127-neon) 80%,
    transparent);
  opacity: 0.6;
}

/* --------------------------------------------------------
   6. Reduced motion + narrow mobile
   -------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .v127-strip-cta,
  .v127-score-cta,
  .v127-score-cta__arrow,
  .v127-strip-cta__arrow { transition: none; }
}

@media (max-width: 420px) {
  .v127-sticky-strip { gap: 8px; padding: 8px 12px; }
  .v127-strip-score { min-width: 62px; padding: 4px 8px; }
  .v127-strip-score__num { font-size: 18px; }
  .v127-strip-cta { padding: 8px 12px; font-size: 11px; }
  .v127-strip-label__text { font-size: 12px; }
}

/* --------------------------------------------------------
   v36.129 — In-terminal persona chip strip + Access Granted neon boost
   -------------------------------------------------------- */
.v2-persona-strip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  margin: 0 12px;
  border-radius: 999px;
  background: rgba(15, 21, 25, 0.6);
  border: 1px solid rgba(166, 240, 74, 0.14);
  backdrop-filter: blur(4px);
}
.v2-persona-strip__lbl {
  font: 600 9.5px/1 var(--v2-mono, ui-monospace, monospace);
  letter-spacing: 0.18em;
  color: rgba(166, 240, 74, 0.6);
  padding: 0 4px 0 2px;
  text-transform: uppercase;
}
.v2-persona-chip {
  appearance: none;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: transparent;
  color: rgba(230, 236, 242, 0.72);
  font: 600 11.5px/1 var(--v2-sans, system-ui, sans-serif);
  letter-spacing: 0.02em;
  padding: 7px 12px;
  border-radius: 999px;
  cursor: pointer;
  transition: color 180ms ease, background 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}
.v2-persona-chip:hover {
  color: #F0F5EC;
  border-color: rgba(166, 240, 74, 0.35);
}
.v2-persona-chip.is-active {
  color: #0A0F12;
  background: #A6F04A;
  border-color: #A6F04A;
  box-shadow: 0 0 0 2px rgba(166, 240, 74, 0.16), 0 0 14px rgba(166, 240, 74, 0.28);
}
@media (max-width: 720px) {
  .v2-persona-strip { margin: 6px 0 0 0; padding: 5px 8px; gap: 6px; flex-wrap: wrap; }
  .v2-persona-chip { padding: 6px 10px; font-size: 11px; }
}

/* ============================================================
   v36.154 — Refined welcome splash
   ------------------------------------------------------------
   Replaces the neon "Access Granted" screen. Institutional and
   operator-appropriate: matte-black backdrop, subtle top hairline,
   compact brandmark w/ pulsing status dot, precise mono metadata
   line. No text-shadow glow, no scanlines.
   ============================================================ */
.v2-welcome {
  background: radial-gradient(circle at 50% 42%,
    rgba(20, 24, 30, 0.96) 0%,
    rgba(10, 12, 16, 0.98) 55%,
    rgba(6, 8, 11, 0.995) 100%) !important;
  overflow: hidden;
}
.v2-welcome__inner {
  position: relative;
  padding: 32px 40px !important;
  text-align: center;
}

/* Brand row: pulsing dot + two-line brandmark (product / presented by) */
.v2-welcome__brand {
  display: inline-flex;
  align-items: center;
  justify-content: center; /* v36.156: center align */
  gap: 14px;
  padding: 14px 22px;
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 14px;
  background: rgba(255,255,255,0.02);
  margin-bottom: 28px;
}
.v2-welcome__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #B6F26A;
  box-shadow: 0 0 0 3px rgba(182,242,106,0.18);
  animation: v154-pulse 1600ms ease-in-out infinite;
  flex: 0 0 auto;
}
.v2-welcome__brandmark {
  display: inline-flex;
  flex-direction: column;
  align-items: center; /* v36.156: center align */
  gap: 6px;
  line-height: 1;
}
.v2-welcome__product {
  font: 700 22px/1 var(--v2-mono, ui-monospace, "SF Mono", monospace); /* v36.156: larger */
  letter-spacing: 0.26em;
  color: #B6F26A;
  text-transform: uppercase;
}
.v2-welcome__by {
  font: 500 10px/1 var(--v2-sans, system-ui, -apple-system, "Inter", sans-serif);
  letter-spacing: 0.06em;
  color: rgba(233,236,242,0.55);
  text-transform: none;
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
}
.v2-welcome__by-mark {
  font-family: var(--v2-mono, ui-monospace, "SF Mono", monospace);
  font-weight: 700;
  letter-spacing: 0.18em;
  color: #FFFFFF; /* v36.156: all white per brand */
  text-transform: uppercase;
}
.v2-welcome__by-usa {
  margin-left: 4px;
  padding: 0;
  background: none;
  border-radius: 0;
  color: #FFFFFF; /* v36.156: match DEALCAP */
  font-size: inherit;
  font-weight: 700;
  letter-spacing: 0.18em;
  vertical-align: baseline;
}

/* Override any earlier eyebrow shadow if the DOM still has one */
.v2-welcome__eyebrow {
  display: none !important;
}

/* Title */
.v2-welcome__title {
  font-family: var(--v2-sans, system-ui, -apple-system, "Inter", "Segoe UI", Roboto, sans-serif) !important;
  font-weight: 600 !important;
  font-size: clamp(28px, 4.2vw, 44px) !important;
  line-height: 1.15 !important;
  color: #F5F7FA !important;
  text-shadow: none !important;
  letter-spacing: -0.015em !important;
  margin: 0 0 18px !important;
}
.v2-welcome__name {
  color: #B6F26A !important;
  text-shadow: none !important;
  font-weight: 700 !important;
}

/* Metadata row (session status + loading state) */
.v2-welcome__meta {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,0.06);
  margin-top: 4px;
}
.v2-welcome__meta-item {
  font: 600 10.5px/1 var(--v2-mono, ui-monospace, "SF Mono", monospace);
  letter-spacing: 0.22em;
  color: #B6F26A;
  text-transform: uppercase;
}
.v2-welcome__meta-item--muted {
  color: rgba(233,236,242,0.45) !important;
  letter-spacing: 0.06em;
  text-transform: none;
  font-weight: 500;
  font-family: var(--v2-sans, system-ui, -apple-system, sans-serif) !important;
  font-size: 12px;
}
.v2-welcome__meta-sep {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: rgba(255,255,255,0.20);
}

/* Suppress legacy sub-line if still emitted */
.v2-welcome__sub {
  display: none !important;
}

/* Kill neon-boost pseudo layers */
.v2-welcome::before, .v2-welcome::after { content: none !important; }

@keyframes v154-pulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(182,242,106,0.10); opacity: 0.85; }
  50%      { box-shadow: 0 0 0 5px rgba(182,242,106,0.22); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .v2-welcome__dot { animation: none; }
}

/* ============================================================
   BACK-TO-HUB LINK — top bar, discreet, left of SESSION
   ============================================================ */
.v2-topbar { align-items: center; }

.v2-topbar__left {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
  min-width: 0;
}
.v2-topbar__left .v2-session { white-space: nowrap; }

.v2-back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px 8px 10px;
  color: rgba(233, 236, 242, 0.62);
  text-decoration: none;
  font-family: 'General Sans', ui-sans-serif, system-ui, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.02);
  transition: color .18s ease, background .18s ease, border-color .18s ease, transform .18s ease;
}
.v2-back svg {
  stroke: currentColor;
  transition: transform .18s ease;
}
.v2-back:hover {
  color: #B6F26A; /* verdict lime */
  background: rgba(182, 242, 106, 0.06);
  border-color: rgba(182, 242, 106, 0.32);
}
.v2-back:hover svg { transform: translateX(-2px); }
.v2-back:focus-visible {
  outline: 2px solid #B6F26A;
  outline-offset: 2px;
}

.v2-topbar__sep {
  display: inline-block;
  width: 1px;
  height: 20px;
  margin: 0 12px 0 6px;
  background: rgba(255, 255, 255, 0.08);
}

@media (max-width: 680px) {
  .v2-back__lbl { display: none; }
  .v2-back { padding: 8px; }
  .v2-topbar__sep { margin: 0 8px 0 4px; }
}

/* ============================================================
   v36.143 — sidebar relocations + bottom-strip score chip
   ============================================================ */

/* --- Slim top bar (only back link) --- */
.v2-topbar--slim { justify-content: flex-start; }

/* --- Generic sidebar section block --- */
.v2-side-block {
  padding: 14px 14px 10px;
  border-top: 1px solid rgba(255,255,255,0.05);
}
.v2-side-block__lbl {
  font: 600 10px/1 var(--v2-mono, "JetBrains Mono", ui-monospace, monospace);
  letter-spacing: 0.18em;
  color: rgba(255,255,255,0.42);
  margin-bottom: 10px;
  text-transform: uppercase;
}

/* --- LENS chips stacked vertically in sidebar --- */
.v2-persona-strip--stack {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 0;
  background: transparent;
  border: 0;
}
.v2-persona-strip--stack .v2-persona-chip {
  width: 100%;
  text-align: left;
  padding: 8px 12px;
  border-radius: 8px;
  background: rgba(255,255,255,0.02);
  border: 1px solid rgba(255,255,255,0.06);
  color: rgba(255,255,255,0.68);
  font: 500 12px/1.2 var(--v2-sans, "Inter", system-ui, sans-serif);
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: background .18s ease, color .18s ease, border-color .18s ease;
}
.v2-persona-strip--stack .v2-persona-chip:hover {
  background: rgba(255,255,255,0.05);
  color: #fff;
  border-color: rgba(255,255,255,0.14);
}
.v2-persona-strip--stack .v2-persona-chip[aria-selected="true"] {
  background: rgba(182,242,106,0.10);
  color: #B6F26A;
  border-color: rgba(182,242,106,0.32);
}

/* --- Session block in sidebar footer --- */
.v2-side-session {
  padding: 12px 14px;
  border-top: 1px solid rgba(255,255,255,0.05);
  border-bottom: 1px solid rgba(255,255,255,0.05);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.v2-side-session .v2-session__label {
  font: 600 10px/1 var(--v2-mono, "JetBrains Mono", ui-monospace, monospace);
  letter-spacing: 0.18em;
  color: rgba(255,255,255,0.42);
  text-transform: uppercase;
}
.v2-side-session__row {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.v2-side-session .v2-session__id {
  color: #fff;
  font: 600 12.5px/1 var(--v2-mono, "JetBrains Mono", ui-monospace, monospace);
  letter-spacing: 0.04em;
}
.v2-side-session .v2-session__id::before {
  content: '';
  display: inline-block;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #3B65FF;
  box-shadow: 0 0 8px rgba(59,101,255,0.7);
  margin-right: 8px;
  transform: translateY(-1px);
}
.v2-side-session .v2-session__check { color: #B6F26A; display: inline-flex; }
.v2-side-session .v2-session__saved {
  color: rgba(255,255,255,0.5);
  font: 500 11px/1 var(--v2-mono, "JetBrains Mono", ui-monospace, monospace);
  letter-spacing: 0.06em;
}

/* --- Sidebar action buttons --- */
.v2-side-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px 14px;
}
.v2-side-btn {
  width: 100%;
  justify-content: center;
  padding: 10px 14px !important;
  font-size: 12.5px !important;
}

/* ============================================================
   Bottom strip — score chip + fourth (gold) state
   ============================================================ */

.v2-cta-bar__score {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 88px;
  padding: 10px 14px;
  border-radius: 12px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  margin-right: 4px;
  flex: 0 0 auto;
  transition: color .18s ease, background .18s ease, border-color .18s ease;
}
.v2-cta-bar__score-lbl {
  font: 600 9.5px/1 var(--v2-mono, "JetBrains Mono", ui-monospace, monospace);
  letter-spacing: 0.18em;
  color: rgba(255,255,255,0.48);
  margin-bottom: 6px;
}
.v2-cta-bar__score-num {
  font: 700 26px/1 var(--v2-sans, "Inter", system-ui, sans-serif);
  color: #fff;
  letter-spacing: -0.01em;
  font-feature-settings: "tnum" 1;
}
.v2-cta-bar__score-max {
  font: 500 10.5px/1 var(--v2-mono, "JetBrains Mono", ui-monospace, monospace);
  color: rgba(255,255,255,0.42);
  margin-top: 4px;
  letter-spacing: 0.06em;
}

/* Per-state score chip tinting */
.v2-cta-bar[data-state="fail"]    .v2-cta-bar__score-num { color: #F87171; }
.v2-cta-bar[data-state="fail"]    .v2-cta-bar__score     { background: rgba(248,113,113,0.08); border-color: rgba(248,113,113,0.24); }
.v2-cta-bar[data-state="caution"] .v2-cta-bar__score-num { color: rgba(255,255,255,0.92); }
.v2-cta-bar[data-state="pass"]    .v2-cta-bar__score-num,
.v2-cta-bar[data-state="elite"]   .v2-cta-bar__score-num { color: #A6F04A; }
.v2-cta-bar[data-state="pass"]    .v2-cta-bar__score,
.v2-cta-bar[data-state="elite"]   .v2-cta-bar__score     { background: rgba(166,240,74,0.08); border-color: rgba(166,240,74,0.24); }
.v2-cta-bar[data-state="gold"]    .v2-cta-bar__score-num { color: #E7C066; }
.v2-cta-bar[data-state="gold"]    .v2-cta-bar__score     { background: rgba(231,192,102,0.08); border-color: rgba(231,192,102,0.30); }

/* --- Gold state (deal passes AND lane is fundable at DealCap) --- */
.v2-cta-bar[data-state="gold"] {
  border-color: rgba(231,192,102,0.30);
  background: linear-gradient(180deg, rgba(231,192,102,0.04), rgba(231,192,102,0) 60%),
              rgba(255,255,255,0.02);
}
.v2-cta-bar[data-state="gold"] .v2-cta-bar__icon {
  color: #E7C066;
  background: rgba(231,192,102,0.10);
  border-color: rgba(231,192,102,0.32);
}
.v2-cta-bar[data-state="gold"] .v2-cta-bar__eyebrow  { color: #E7C066; }
.v2-cta-bar[data-state="gold"] .v2-cta-bar__learn    { color: #E7C066; }
.v2-cta-bar[data-state="gold"] .v2-btn--filled       {
  background: linear-gradient(180deg, #EFCF7C, #C9A34E) !important;
  color: #221704 !important;
  border-color: rgba(231,192,102,0.65) !important;
  box-shadow: 0 0 0 1px rgba(231,192,102,0.20) inset, 0 8px 24px rgba(201,163,78,0.25) !important;
}
.v2-cta-bar[data-state="gold"] .v2-btn--filled:hover {
  filter: brightness(1.05);
}

/* Pass state — green filled button */
.v2-cta-bar[data-state="pass"] .v2-btn--filled,
.v2-cta-bar[data-state="elite"] .v2-btn--filled {
  background: linear-gradient(180deg, #B6F26A, #86D63E) !important;
  color: #0E1A02 !important;
  border-color: rgba(166,240,74,0.55) !important;
  box-shadow: 0 0 0 1px rgba(166,240,74,0.20) inset, 0 8px 24px rgba(134,214,62,0.22) !important;
}

/* Fail state — red filled button */
.v2-cta-bar[data-state="fail"] .v2-btn--filled {
  background: linear-gradient(180deg, #F87171, #DC2626) !important;
  color: #FFFFFF !important;
  border-color: rgba(248,113,113,0.55) !important;
  box-shadow: 0 0 0 1px rgba(248,113,113,0.20) inset, 0 8px 24px rgba(220,38,38,0.22) !important;
}

/* Caution state — neutral white/muted filled button */
.v2-cta-bar[data-state="caution"] .v2-btn--filled {
  background: linear-gradient(180deg, rgba(255,255,255,0.12), rgba(255,255,255,0.06)) !important;
  color: rgba(255,255,255,0.92) !important;
  border-color: rgba(255,255,255,0.18) !important;
  box-shadow: 0 0 0 1px rgba(255,255,255,0.10) inset !important;
}

/* Caution reads "plain neutral" per spec — override the amber tint on the strip only */
.v2-cta-bar[data-state="caution"] {
  border-color: rgba(255,255,255,0.10);
}
.v2-cta-bar[data-state="caution"] .v2-cta-bar__icon {
  color: rgba(255,255,255,0.75);
  background: rgba(255,255,255,0.04);
  border-color: rgba(255,255,255,0.10);
}
.v2-cta-bar[data-state="caution"] .v2-cta-bar__eyebrow { color: rgba(255,255,255,0.75); }
.v2-cta-bar[data-state="caution"] .v2-cta-bar__learn   { color: rgba(255,255,255,0.75); }

/* ============================================================
   v36.145 — Bottom strip clean: three columns end above strip,
   strip fully visible with a fixed reserved height.
   ============================================================ */
@media (min-width: 1200px) {
  :root { --v2-cta-h: 128px; }

  /* Shell is a two-row grid: row 1 = columns, row 2 = strip.
     Trim shell padding so all three columns + strip fit inside viewport. */
  .v2-shell {
    grid-template-rows: minmax(0, 1fr) var(--v2-cta-h) !important;
    height: 100vh !important;
    overflow: hidden !important;
    padding: 18px 32px 0 !important;
    row-gap: 12px !important;
  }

  /* Sidebar and main occupy row 1 only. */
  .v2-shell > .v2-sidebar {
    grid-row: 1 !important;
    min-height: 0 !important;
    height: 100% !important;
    max-height: 100% !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
  }
  /* Compact sidebar sections so everything fits row 1 without scroll on 900h. */
  .v2-shell > .v2-sidebar { padding: 14px 10px !important; gap: 10px !important; }
  .v2-shell > .v2-sidebar .v2-nav { margin-bottom: 4px !important; }
  .v2-shell > .v2-sidebar .v2-persona-label,
  .v2-shell > .v2-sidebar .v2-side-block__lbl,
  .v2-shell > .v2-sidebar .v2-session__label {
    padding: 0 8px 6px !important;
    font-size: 9px !important;
    letter-spacing: 0.22em !important;
  }
  .v2-shell > .v2-sidebar .v2-persona-tree .v2-lane-item { padding: 8px 10px !important; font-size: 12px !important; }
  .v2-shell > .v2-sidebar .v2-persona-chip { padding: 6px 10px !important; font-size: 11px !important; }
  .v2-shell > .v2-sidebar .v2-side-btn { padding: 8px 10px !important; font-size: 11px !important; }
  .v2-shell > .v2-sidebar .v2-sidebar-foot { gap: 6px !important; margin-top: auto !important; padding-top: 6px !important; }
  .v2-shell > .v2-sidebar .v2-version { display: none !important; }
  .v2-shell > .v2-sidebar .v2-side-session { padding: 6px 10px !important; }
  .v2-shell > .v2-sidebar .v2-side-actions { gap: 6px !important; }
  .v2-shell > .v2-sidebar .v2-logo { padding: 0 8px 4px !important; }
  .v2-shell > .v2-main {
    grid-row: 1 !important;
    min-height: 0 !important;
    /* Override v132's fixed 100vh so main fits inside row 1. */
    height: 100% !important;
  }

  /* Right pane sits inside .v2-main's inner grid — cap it to row 1's height. */
  .v2-shell > .v2-main .v2-verdict-pane {
    max-height: 100% !important;
    align-self: stretch !important;
  }

  /* Strip: fixed row height, own compact padding, full width. */
  .v2-shell > .v2-cta-bar {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    position: relative;
    height: var(--v2-cta-h) !important;
    min-height: var(--v2-cta-h) !important;
    max-height: var(--v2-cta-h) !important;
    /* Extend flush to viewport edges (top border keeps the visual divide) */
    margin: 0 -32px !important;
    padding: 12px 32px !important;
    align-items: center !important;
    overflow: hidden !important;
    border-top: 1px solid rgba(255,255,255,0.08);
  }
  .v2-shell > .v2-cta-bar .v2-cta-bar__perks {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 4px 10px !important;
    max-height: 48px;
    overflow: hidden;
  }
  .v2-shell > .v2-cta-bar .v2-cta-bar__actions {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    justify-content: center !important;
    gap: 2px !important;
  }
  .v2-shell > .v2-cta-bar .v2-cta-bar__learn {
    font-size: 11px !important;
    line-height: 1.2 !important;
  }
}

/* ============================================================
   v36.145 — Deal Types accordion in sidebar
   Each lane becomes a parent row; sub-items expand on select.
   ============================================================ */
.v2-persona-tree .v2-lane-group {
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.v2-persona-tree .v2-lane-group:last-child { border-bottom: 0; }

.v2-persona-tree .v2-lane-item {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 10px !important;
  background: transparent;
  border: 0;
  color: rgba(255,255,255,0.86);
  text-align: left;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.01em;
  cursor: pointer;
  transition: background 120ms ease, color 120ms ease;
  border-radius: 8px;
}
.v2-persona-tree .v2-lane-item:hover {
  background: rgba(255,255,255,0.04);
  color: #fff;
}
.v2-persona-tree .v2-lane-item.is-active {
  background: rgba(30,76,255,0.14);
  color: #fff;
}
.v2-persona-tree .v2-lane-caret {
  width: 12px;
  height: 12px;
  flex-shrink: 0;
  opacity: 0.55;
  transition: transform 180ms ease, opacity 180ms ease;
}
.v2-persona-tree .v2-lane-item.is-active .v2-lane-caret {
  transform: rotate(90deg);
  opacity: 1;
}

.v2-persona-tree .v2-lane-sub {
  max-height: 0;
  overflow: hidden;
  transition: max-height 220ms ease;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 0 6px 0 22px;
}
.v2-persona-tree .v2-lane-group.is-open .v2-lane-sub {
  max-height: 220px;
  padding-top: 2px;
  padding-bottom: 8px;
}
.v2-persona-tree .v2-lane-sub__item {
  display: block;
  width: 100%;
  text-align: left;
  padding: 6px 10px;
  background: transparent;
  border: 0;
  color: rgba(255,255,255,0.62);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.01em;
  cursor: pointer;
  border-radius: 6px;
  transition: background 120ms ease, color 120ms ease;
}
.v2-persona-tree .v2-lane-sub__item:hover {
  background: rgba(255,255,255,0.04);
  color: #fff;
}
.v2-persona-tree .v2-lane-sub__item.is-active {
  color: #B6F26A;
  background: rgba(182,242,106,0.06);
}

.v2-cta-bar {
  /* v36.146: 4 slots — [score] [icon] [verdict copy] [action] */
  grid-column: 1 / -1 !important;
  grid-template-columns: auto auto minmax(0, 1fr) auto !important;
  gap: 20px !important;
  align-items: center !important;
}

/* Score chip stays compact */
.v2-cta-bar__score {
  display: flex !important;
  align-items: baseline !important;
  gap: 4px !important;
}
.v2-cta-bar__icon { display: flex !important; align-items: center !important; justify-content: center !important; }

/* Ensure children can shrink and don't force overflow */
.v2-cta-bar__lead,
.v2-cta-bar__step,
.v2-cta-bar__perks { min-width: 0; }

/* v36.146: hide the perks, step column, and learn-more link in the strip */
.v2-cta-bar__perks,
.v2-cta-bar__step,
.v2-cta-bar__learn { display: none !important; }

/* On narrower rendering (below 1100px) stack cleanly instead of overflowing */
@media (max-width: 1100px) {
  .v2-cta-bar {
    grid-template-columns: auto 1fr auto !important;
    row-gap: 12px !important;
  }
  .v2-cta-bar__icon { display: none; }
}

/* ============================================================
   v36.146 — Right pane calm empty state before RUN.
   Uses :has() on shell to key off the strip's data-state.
   ============================================================ */
.v2-shell:has(.v2-cta-bar[data-state="ready"]) .v2-verdict-pane .v2-tier__label {
  color: rgba(255,255,255,0.55) !important;
  text-shadow: none !important;
  font-weight: 500 !important;
  letter-spacing: 0.18em !important;
  font-size: 11px !important;
}
.v2-shell:has(.v2-cta-bar[data-state="ready"]) .v2-verdict-pane .v2-tier__sub {
  color: rgba(255,255,255,0.52) !important;
  font-size: 13px !important;
}
/* Calm the score number in the bottom strip pre-run */
.v2-cta-bar[data-state="ready"] .v2-cta-bar__score-num,
.v2-cta-bar[data-state="ready"] .v2-cta-bar__score-max,
.v2-cta-bar[data-state="ready"] .v2-cta-bar__score-lbl {
  color: rgba(255,255,255,0.42) !important;
}
/* Hide the SCORE chip entirely pre-run — empty score adds no signal */
.v2-cta-bar[data-state="ready"] .v2-cta-bar__score { visibility: hidden !important; width: 0 !important; }

/* Calm the risk pill and empty metric tiles pre-run */
.v2-shell:has(.v2-cta-bar[data-state="ready"]) .v2-risk__label,
.v2-shell:has(.v2-cta-bar[data-state="ready"]) .v2-risk__hint,
.v2-shell:has(.v2-cta-bar[data-state="ready"]) .v2-metric__label,
.v2-shell:has(.v2-cta-bar[data-state="ready"]) .v2-metric__value {
  color: rgba(255,255,255,0.36) !important;
}

/* v36.146 sidebar: no more session card, no LENS chips, keep it airy */
@media (min-width: 1200px) {
  .v2-shell > .v2-sidebar { padding: 18px 12px !important; gap: 14px !important; }
  .v2-shell > .v2-sidebar .v2-persona-tree .v2-lane-item {
    padding: 10px 12px !important;
    font-size: 13px !important;
    border-radius: 8px !important;
  }
  .v2-shell > .v2-sidebar .v2-persona-tree .v2-lane-item + .v2-lane-item { margin-top: 2px !important; }
  .v2-shell > .v2-sidebar .v2-sidebar-foot { border-top: 1px solid rgba(255,255,255,0.06) !important; padding-top: 12px !important; }
}

/* ============================================================
   v36.146 — Conditional Strategy field (top of intake).
   Appears only for lanes where math changes.
   ============================================================ */
.v2-strategy {
  display: grid;
  grid-template-columns: auto minmax(0, 260px) 1fr;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  margin: 0 0 14px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 10px;
}
.v2-strategy[hidden] { display: none !important; }
.v2-strategy__lbl {
  color: rgba(255,255,255,0.72);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.v2-strategy__sel {
  background: #0F1218;
  color: #fff;
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 8px;
  padding: 8px 10px;
  font-size: 13px;
  font-weight: 500;
  min-width: 0;
  width: 100%;
  cursor: pointer;
}
.v2-strategy__sel:focus {
  outline: none;
  border-color: #B6F26A;
  box-shadow: 0 0 0 3px rgba(182,242,106,0.18);
}
.v2-strategy__hint {
  color: rgba(255,255,255,0.55);
  font-size: 12px;
  font-weight: 400;
}
@media (max-width: 720px) {
  .v2-strategy { grid-template-columns: 1fr; gap: 6px; }
  .v2-strategy__hint { font-size: 11px; }
}

/* ============================================================
   v36.146 — Firm [hidden] override.
   Legacy display rules (inline-flex, flex, grid) on .v2-persona-strip,
   .v2-sidebar-foot, #v2-export, and legacy nodes beat [hidden] alone.
   ============================================================ */
.v2-persona-strip[hidden],
.v2-sidebar-foot[hidden],
.v2-cta-bar__step[hidden],
#v2-export[hidden],
#v2-new[hidden],
[hidden] { display: none !important; }

/* ============================================================
   v36.147 — Sidebar back-to-DealCap chip
   Lives at the very top of the sidebar so the sidebar, intake card,
   and verdict card all start at the same top row (no more topbar row).
   ============================================================ */
.v2-back--sidebar {
  display: inline-flex;
  align-self: flex-start;
  margin: 0 4px 12px;
  padding: 6px 12px 6px 10px;
  font-size: 11px;
  border-radius: 999px;
  color: rgba(233, 236, 242, 0.55);
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
}
.v2-back--sidebar:hover {
  color: #B6F26A;
  background: rgba(182, 242, 106, 0.06);
  border-color: rgba(182, 242, 106, 0.28);
}

/* v36.147 — remove main-column top gap now that the topbar is gone */
.v2-main > .v2-columns { margin-top: 0; }

/* ============================================================
   v36.148 — Desktop: drop both bottom strips, three equal columns
   ------------------------------------------------------------
   At >= 1024px the desktop view no longer shows either
   .v2-cta-bar or .v127-sticky-strip. The sidebar, intake card,
   and verdict card fill the viewport height together, giving
   a clean three-section layout. The strips are still available
   at tablet / phone widths as before.
   ============================================================ */
@media (min-width: 1024px) {
  /* Hide both bottom strips on desktop */
  .v2-cta-bar,
  body[data-v127-scored="1"] .v2-cta-bar,
  .v127-sticky-strip,
  body[data-v127-scored="1"] .v127-sticky-strip {
    display: none !important;
  }
  /* Reclaim the padding the sticky strip was reserving */
  body[data-v127-scored="1"] .v2-main { padding-bottom: 0 !important; }

  /* Fill the viewport so all three sections meet the same bottom edge */
  .v2-shell {
    min-height: 100vh;
    align-items: stretch;
  }
  .v2-sidebar,
  .v2-main {
    min-height: 0;
  }
  /* .v2-main only holds .v2-columns now — let columns fill its height */
  .v2-main > .v2-columns {
    height: 100%;
    align-items: stretch;
  }
  /* Cards stretch to fill their grid cell */
  .v2-intake-pane,
  .v2-verdict-pane {
    height: 100%;
    display: flex;
    flex-direction: column;
    min-height: 0;
  }
  /* Let the scroll live inside the intake body, so the RUN button stays pinned */
  .v2-intake-pane .v2-intake__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
  }
  .v2-intake-pane .v2-btn--run { flex: 0 0 auto; margin-top: 12px; }

  /* Verdict pane: header pinned, contents scroll if needed */
  .v2-verdict-pane .v2-card__head { flex: 0 0 auto; }
  .v2-verdict-pane .v2-gauge-wrap,
  .v2-verdict-pane .v2-tier,
  .v2-verdict-pane .v2-risk,
  .v2-verdict-pane .v2-metrics { flex: 0 0 auto; }
}

/* ============================================================
   v36.149 — Persona avatars, neon DealCap-funded lanes,
   and the divider between operator lanes and funded lanes.
   ============================================================ */

/* ---- Persona avatars (Operator, Lender-soon) ---- */
.v2-persona-avatars {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 4px 4px 12px;
  margin: 0 0 12px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.v2-avatar {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 10px 6px 8px;
  background: rgba(255,255,255,0.02);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 12px;
  color: rgba(233,236,242,0.72);
  font-family: 'General Sans', ui-sans-serif, system-ui, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: color .18s ease, background .18s ease, border-color .18s ease, transform .18s ease;
}
.v2-avatar__ring {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  background: rgba(30,76,255,0.10);
  border: 1px solid rgba(30,76,255,0.28);
  color: rgba(233,236,242,0.85);
  transition: color .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.v2-avatar__lbl { color: inherit; }
.v2-avatar:hover:not(.is-disabled) {
  color: #E9ECF2;
  border-color: rgba(30,76,255,0.36);
  background: rgba(30,76,255,0.06);
}
.v2-avatar:hover:not(.is-disabled) .v2-avatar__ring {
  background: rgba(30,76,255,0.16);
  border-color: rgba(30,76,255,0.50);
}
.v2-avatar.is-active {
  color: #E9ECF2;
  border-color: rgba(30,76,255,0.48);
  background: linear-gradient(180deg, rgba(30,76,255,0.16), rgba(30,76,255,0.06));
  box-shadow: 0 0 0 1px rgba(30,76,255,0.20), 0 8px 24px rgba(30,76,255,0.16);
}
.v2-avatar.is-active .v2-avatar__ring {
  background: rgba(30,76,255,0.24);
  border-color: rgba(30,76,255,0.65);
  color: #FFFFFF;
  box-shadow: 0 0 12px rgba(30,76,255,0.35);
}
.v2-avatar.is-disabled {
  color: rgba(233,236,242,0.38);
  cursor: not-allowed;
  opacity: 0.85;
}
.v2-avatar.is-disabled .v2-avatar__ring {
  background: rgba(255,255,255,0.02);
  border-color: rgba(255,255,255,0.08);
  color: rgba(233,236,242,0.38);
}
.v2-avatar__pill {
  position: absolute;
  top: 6px;
  right: 6px;
  padding: 2px 6px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.10em;
  color: rgba(255,255,255,0.72);
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.12);
  text-transform: uppercase;
}

/* ---- Divider between operator lanes and DealCap-funded lanes ---- */
.v2-lane-divider {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 12px 4px 8px;
  color: rgba(182,242,106,0.62);
  font-family: 'General Sans', ui-sans-serif, system-ui, sans-serif;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.20em;
  text-transform: uppercase;
}
.v2-lane-divider::before,
.v2-lane-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(182,242,106,0.24), transparent);
}

/* ---- Neon DealCap-funded lane rows ---- */
.v2-lane-item.v2-lane-item--neon {
  color: rgba(233,236,242,0.90) !important;
  background: rgba(182,242,106,0.04) !important;
  box-shadow: inset 2px 0 0 rgba(182,242,106,0.55) !important;
  position: relative;
}
.v2-lane-item.v2-lane-item--neon::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 12px;
  transform: translateY(-50%);
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: #B6F26A;
  box-shadow: 0 0 8px rgba(182,242,106,0.85), 0 0 2px rgba(182,242,106,0.65);
}
.v2-lane-item.v2-lane-item--neon:hover {
  background: rgba(182,242,106,0.10) !important;
  color: #E9ECF2 !important;
  box-shadow: inset 2px 0 0 rgba(182,242,106,0.85) !important;
}
/* When a neon lane is the active one, keep the lime accent instead of the cobalt one */
.v2-lane-item.v2-lane-item--neon.is-active,
.v2-lane-item.v2-lane-item--neon[aria-current="true"] {
  background: linear-gradient(90deg, rgba(182,242,106,0.16), rgba(182,242,106,0.04)) !important;
  box-shadow: inset 2px 0 0 #B6F26A !important;
  color: #E9ECF2 !important;
}
.v2-lane-item.v2-lane-item--neon.is-active::before,
.v2-lane-item.v2-lane-item--neon[aria-current="true"]::before {
  background: #B6F26A !important;
  box-shadow: 0 0 8px rgba(182,242,106,0.85), 0 0 2px rgba(182,242,106,0.65) !important;
}

/* ============================================================
   v36.150 — iPad portrait + mobile: wrap the collapsed sidebar
   Fixes the 820-wide clip where DEALCAP FUNDING lanes ran off
   the right edge. The sidebar becomes a wrapping flex row: logo,
   avatars, and every lane pill sit inline and flow onto a
   second row when they don't fit. The divider label is hidden
   in this layout — the neon dot on the funded lanes signals them.
   ============================================================ */
@media (max-width: 960px) {
  .v2-sidebar {
    flex-wrap: wrap !important;
    overflow-x: visible !important;
    row-gap: 8px !important;
  }
  /* Back-to-DealCap chip stays inline, tightened */
  .v2-back--sidebar {
    margin: 0 !important;
    padding: 5px 10px 5px 8px !important;
    align-self: center !important;
    flex-shrink: 0;
  }
  /* Persona avatars: side-by-side compact pills, not full-width grid */
  .v2-persona-avatars {
    display: flex !important;
    grid-template-columns: none !important;
    gap: 6px !important;
    padding: 0 !important;
    margin: 0 !important;
    border-bottom: none !important;
    flex-shrink: 0;
  }
  .v2-avatar {
    flex-direction: row !important;
    gap: 6px !important;
    padding: 6px 10px 6px 8px !important;
    border-radius: 999px !important;
    font-size: 11px !important;
  }
  .v2-avatar__ring {
    width: 20px !important;
    height: 20px !important;
  }
  .v2-avatar__ring svg { width: 12px; height: 12px; }
  .v2-avatar__pill {
    position: static !important;
    padding: 2px 5px !important;
    font-size: 8px !important;
  }
  /* Hide the "DEALCAP FUNDING" divider — its horizontal ::before/::after
     rails were breaking the flex-wrap flow. Funded lanes still glow lime. */
  .v2-lane-divider { display: none !important; }
  /* Force wrap on the lane tree so every lane fits, no more horizontal clip */
  .v2-persona-tree,
  .v2-persona-group__wrap,
  .v2-persona-children {
    flex-wrap: wrap !important;
    row-gap: 6px !important;
  }
  /* Lane pills stay pill-shaped in this layout */
  .v2-lane-item {
    border-radius: 999px !important;
    box-shadow: none !important;
  }
  .v2-lane-item.v2-lane-item--neon {
    padding-right: 26px !important; /* space for the dot */
    box-shadow: none !important;
    border: 1px solid rgba(182, 242, 106, 0.42) !important;
    background: rgba(182, 242, 106, 0.06) !important;
  }
  .v2-lane-item.v2-lane-item--neon::after {
    right: 8px !important;
    width: 5px !important;
    height: 5px !important;
  }
}

/* v36.150.1 — Constrain the wrapping lane container so it can't
   push the sidebar wider than its parent (fixes the 748px pill
   container overflowing 390px phone / 768 / 820 viewports). */
@media (max-width: 960px) {
  .v2-sidebar,
  .v2-persona-block,
  .v2-persona-block--tree,
  .v2-persona-tree,
  .v2-persona-group__wrap,
  .v2-persona-children {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }
  /* Let lane pills shrink/wrap freely instead of pushing the container wide */
  .v2-lane-item {
    max-width: 100% !important;
    min-width: 0 !important;
  }
  .v2-lane-item > span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

/* Phone: tighten paddings + make lanes wrap two-per-row where they fit */
@media (max-width: 480px) {
  .v2-sidebar { padding: 8px 10px !important; }
  .v2-back--sidebar { font-size: 10px !important; }
  .v2-persona-children {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 6px !important;
  }
  .v2-lane-item {
    padding: 8px 10px !important;
    font-size: 11px !important;
    text-align: left !important;
  }
  .v2-lane-item.v2-lane-item--neon { padding-right: 22px !important; }
}

/* ============================================================
   v36.151 — iPad layout: verdict pane embeds into intake,
              intake scrolls, sticky strip pinned to bottom.
   ------------------------------------------------------------
   At <=960px (iPad portrait, small tablet):
    - Top sidebar strip stays as v150 (wrapping row)
    - Main area fills viewport between sidebar strip and sticky strip
    - Intake + Verdict stack; the whole main area scrolls
    - Sticky bottom strip shows always (pre-run + post-run)
    - v2-cta-bar footer is suppressed; sticky strip is the CTA
   ============================================================ */
@media (max-width: 960px) {
  /* Sticky strip: show always, not just when scored */
  .v127-sticky-strip {
    display: flex !important;
  }
  /* Suppress the old intake-footer strip; the sticky strip owns the CTA */
  .v2-cta-bar { display: none !important; }

  /* Reserve room at the bottom for the sticky strip so nothing hides behind it */
  .v2-main {
    padding-bottom: 88px !important;
  }
  body[data-v127-scored="1"] .v2-main {
    padding-bottom: 88px !important;
  }

  /* Intake + Verdict fuse into ONE scrolling panel:
     - remove gap between them
     - drop bottom rounding on intake, top rounding on verdict
     - drop verdict's own border-top so the seam looks internal, not stacked
     - drop verdict card background/shadow so it reads as a section inside intake */
  .v2-columns {
    gap: 0 !important;
  }
  .v2-intake-pane {
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
    border-bottom: none !important;
    margin-bottom: 0 !important;
    flex: 0 0 auto !important; /* don't let intake stretch to fill; verdict pane sits right below it */
    min-height: 0 !important;
  }
  /* Kill the desktop-only 100vh shell height so the merged card is content-sized */
  .v2-shell {
    min-height: 0 !important;
  }
  .v2-verdict-pane {
    margin-top: 0 !important;
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
    border-top: 1px dashed rgba(255,255,255,0.10) !important;
    background: rgba(255,255,255,0.01) !important;
    box-shadow: none !important;
  }
  /* Give the merged block a single outer container feel — real element so
     it doesn't collide with v121's ::before glow overlay */
  .v2-verdict-eyebrow {
    display: block !important;
    padding: 14px 18px 6px;
    font-family: 'General Sans', ui-sans-serif, system-ui, sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.18em;
    color: rgba(233,236,242,0.48);
    text-transform: uppercase;
    position: relative;
    z-index: 2;
  }
  /* Hide the verdict pane's own "VERDICT (DEAL SCORE)" header since we added our own eyebrow */
  .v2-verdict-pane .v2-card__head { display: none !important; }
}

/* Tighten the strip's small-screen chrome a touch on iPad portrait */
@media (max-width: 960px) {
  .v127-sticky-strip {
    padding: 10px 14px;
    padding-bottom: calc(10px + env(safe-area-inset-bottom, 0));
    gap: 10px;
  }
  .v127-strip-score { padding: 6px 10px; }
  .v127-strip-cta { padding: 10px 14px; }
}

/* v36.151: default-hide the iPad-only eyebrow; iPad media query re-enables */
.v2-verdict-eyebrow { display: none; }

/* ============================================================
   v36.152 — iPad proper 2-column layout
   ------------------------------------------------------------
   Trigger: 701px..1180px  (iPad portrait 820, iPad landscape 1180,
                             iPad mini 768). Below 700 we fall
                             through to the mobile horizontal strip.
   Layout:
     - LEFT: sidebar becomes a sticky rail (avatars + lanes) that
             stays put while the right column scrolls
     - RIGHT: intake and verdict pane merge into ONE scrolling column
             (intake fields -> RUN -> gauge -> tiles -> math trail)
     - BOTTOM: fixed sticky CTA strip (already present)
   ============================================================ */
@media (min-width: 701px) and (max-width: 1180px) {
  /* Shell: two columns, sidebar left / one merged content column right */
  .v2-shell {
    grid-template-columns: 240px 1fr !important;
    padding: 16px 16px 16px 16px !important;
    min-height: 100vh !important;
    gap: 16px !important;
  }

  /* Sidebar sticky, full-height rail (NOT the mobile horizontal strip) */
  .v2-sidebar {
    position: sticky !important;
    top: 16px !important;
    align-self: start !important;
    max-height: calc(100vh - 32px) !important;
    overflow-y: auto !important;
    flex-direction: column !important;
    height: auto !important;
    min-height: 0 !important;
    border-right: 1px solid var(--v121-line) !important;
    border-bottom: none !important;
    padding: 14px 12px !important;
    background: rgba(8,11,20,0.4) !important;
    border-radius: 16px !important;
    margin-bottom: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  /* Restore vertical layout inside the sidebar (undo the ≤960 flatten) */
  .v2-logo, .v2-logo__text, .v2-nav,
  .v2-persona-tree, .v2-persona-group__wrap, .v2-persona-children {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 6px !important;
    padding: 0 !important;
  }
  .v2-nav { margin: 10px 0 !important; }
  .v2-logo__sub { font-size: 10px !important; margin-top: 2px !important; }
  .v2-persona-label { display: block !important; margin: 10px 0 6px !important; }
  .v2-lane-item { padding: 8px 12px !important; font-size: 12.5px !important; white-space: normal !important; text-align: left !important; }
  .v2-persona-avatars { display: flex !important; flex-direction: row !important; gap: 8px !important; margin: 10px 0 !important; }
  .v2-lane-divider { display: block !important; }

  /* Right side: intake and verdict share ONE column and scroll together */
  .v2-columns {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
  }
  .v2-verdict-pane { order: 2; grid-column: 1 !important; }
  .v2-intake-pane  { order: 1; grid-column: 1 !important; }
  .v2-notes-pane   { display: none !important; }

  /* Merge intake + verdict visually */
  .v2-intake-pane {
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
    border-bottom: none !important;
    margin-bottom: 0 !important;
    flex: 0 0 auto !important;
    min-height: 0 !important;
  }
  .v2-verdict-pane {
    margin-top: 0 !important;
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
    border-top: 1px dashed rgba(255,255,255,0.10) !important;
    background: rgba(255,255,255,0.01) !important;
    box-shadow: none !important;
  }
  /* Verdict eyebrow ("VERDICT PREVIEW") visible in this iPad range */
  .v2-verdict-eyebrow {
    display: block !important;
    padding: 14px 18px 6px !important;
    font-family: 'General Sans', ui-sans-serif, system-ui, sans-serif !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.18em !important;
    color: rgba(233,236,242,0.48) !important;
    text-transform: uppercase !important;
    position: relative !important;
    z-index: 2 !important;
  }
  /* Hide the pane's own "VERDICT (DEAL SCORE)" header on iPad since eyebrow replaces it */
  .v2-verdict-pane .v2-card__head { display: none !important; }

  /* Sticky bottom strip: show always (pre and post run), suppress old intake footer */
  .v127-sticky-strip { display: flex !important; }
  .v2-cta-bar { display: none !important; }

  /* Reserve room so nothing hides behind the strip */
  .v2-main { padding-bottom: 92px !important; }
  body[data-v127-scored="1"] .v2-main { padding-bottom: 92px !important; }
}

/* Below 700: keep the mobile horizontal top-strip look (already in place from v150) */

/* ============================================================
   v36.152 — Sidebar collapse toggle (iPad only, 701..1180)
   ------------------------------------------------------------
   Default: hidden. Only appears in the iPad range. Sits at the
   sidebar/content seam, click flips shell data-sidebar attribute.
   ============================================================ */
.v2-sidebar-toggle {
  display: none;
  position: fixed;
  top: 20px;
  left: 244px; /* 240 sidebar + 4 nudge */
  z-index: 95;
  width: 26px;
  height: 40px;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid var(--v121-line, rgba(255,255,255,0.12));
  border-radius: 8px;
  background: rgba(8,11,20,0.85);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: rgba(233,236,242,0.72);
  cursor: pointer;
  transition: left 200ms cubic-bezier(0.4,0,0.2,1), color 160ms ease, background 160ms ease;
}
.v2-sidebar-toggle:hover {
  color: rgba(233,236,242,1);
  background: rgba(30,76,255,0.14);
  border-color: rgba(30,76,255,0.35);
}
.v2-sidebar-toggle svg {
  transition: transform 200ms cubic-bezier(0.4,0,0.2,1);
}

/* Show the toggle only in the iPad range */
@media (min-width: 701px) and (max-width: 1180px) {
  .v2-sidebar-toggle { display: flex; }

  /* Animate the shell's grid template + sidebar contents on toggle */
  .v2-shell {
    transition: grid-template-columns 200ms cubic-bezier(0.4,0,0.2,1);
  }
  .v2-sidebar {
    transition: width 200ms cubic-bezier(0.4,0,0.2,1),
                padding 200ms cubic-bezier(0.4,0,0.2,1),
                opacity 200ms ease;
    overflow-x: hidden !important;
  }

  /* Collapsed state: sidebar becomes a 56px rail */
  .v2-shell[data-sidebar="collapsed"] {
    grid-template-columns: 56px 1fr !important;
  }
  .v2-shell[data-sidebar="collapsed"] .v2-sidebar {
    padding: 14px 6px !important;
  }
  /* Hide text-heavy sidebar bits when collapsed */
  .v2-shell[data-sidebar="collapsed"] .v2-back__lbl,
  .v2-shell[data-sidebar="collapsed"] .v2-logo__text,
  .v2-shell[data-sidebar="collapsed"] .v2-nav,
  .v2-shell[data-sidebar="collapsed"] .v2-persona-label,
  .v2-shell[data-sidebar="collapsed"] .v2-lane-divider,
  .v2-shell[data-sidebar="collapsed"] .v2-lane-item__lbl,
  .v2-shell[data-sidebar="collapsed"] .v2-lane-item {
    display: none !important;
  }
  /* Keep avatars visible in collapsed rail, centered */
  .v2-shell[data-sidebar="collapsed"] .v2-persona-avatars {
    flex-direction: column !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 8px 0 !important;
  }
  .v2-shell[data-sidebar="collapsed"] .v2-avatar {
    width: 40px !important;
    height: 40px !important;
    padding: 0 !important;
    min-width: 0 !important;
  }
  .v2-shell[data-sidebar="collapsed"] .v2-avatar__lbl,
  .v2-shell[data-sidebar="collapsed"] .v2-avatar__pill {
    display: none !important;
  }
  /* Keep the back-arrow chip visible (icon only) */
  .v2-shell[data-sidebar="collapsed"] .v2-back--sidebar {
    padding: 8px !important;
    justify-content: center !important;
  }

  /* Toggle button repositioning + chevron flip when sidebar collapsed */
  .v2-shell[data-sidebar="collapsed"] .v2-sidebar-toggle {
    left: 44px; /* sits on the 56px seam, not inside the intake pane */
  }
  .v2-shell[data-sidebar="collapsed"] .v2-sidebar-toggle svg {
    transform: rotate(180deg);
  }

  /* v36.153: clean up collapsed rail — hide back-chip so the toggle chevron
     is the sole top-of-rail control, then reserve room so the avatars sit
     clearly below it without overlap. */
  .v2-shell[data-sidebar="collapsed"] .v2-back--sidebar {
    display: none !important;
  }
  .v2-shell[data-sidebar="collapsed"] .v2-logo {
    display: none !important;
  }
  .v2-shell[data-sidebar="collapsed"] .v2-sidebar {
    padding-top: 64px !important; /* leave clearance below the fixed toggle */
  }
  .v2-shell[data-sidebar="collapsed"] .v2-persona-avatars {
    margin-top: 0 !important;
  }
}

/* ============================================================
   v36.153 — Money input '$' adornment polish
   ------------------------------------------------------------
   Prevent the leading '$' from clashing with typed digits: give
   the prefix its own left column with a subtle divider, then push
   the input text further right so the caret has real clearance.
   ============================================================ */
.v2-input-wrap .v2-input.v2-input--money {
  padding-left: 32px !important;
}
.v2-input-wrap .v2-input-pre {
  left: 10px !important;
  font-weight: 600;
  color: rgba(182,242,106,0.85); /* verdict lime — makes the $ read as a label */
  font-size: 13px;
  line-height: 1;
  letter-spacing: 0.02em;
}
.v2-input-wrap .v2-input.v2-input--money::before,
.v2-input-wrap .v2-input.v2-input--money::after { content: none; }
/* subtle vertical divider between the $ and the value */
.v2-input-wrap:has(.v2-input--money) .v2-input-pre::after {
  content: "";
  position: absolute;
  right: -6px;
  top: -3px;
  bottom: -3px;
  width: 1px;
  background: rgba(255,255,255,0.10);
}

/* ============================================================
   v36.153 — Amplify "Advanced Options" so users see it
   ------------------------------------------------------------
   The prior treatment was a thin monospace line that visually
   read like a footer. Reshape it into a proper action-card so
   it registers as a real, tappable disclosure.
   ============================================================ */
.v119-advanced {
  margin-top: 20px !important;
  border-top: none !important;
  padding-top: 0 !important;
  border-radius: 10px;
  background: linear-gradient(180deg, rgba(30,76,255,0.05), rgba(30,76,255,0.02));
  border: 1px dashed rgba(30,76,255,0.35);
  padding: 4px 12px !important;
  transition: border-color 160ms ease, background 160ms ease;
}
.v119-advanced:hover {
  border-color: rgba(30,76,255,0.6);
  background: linear-gradient(180deg, rgba(30,76,255,0.09), rgba(30,76,255,0.03));
}
.v119-advanced[open] {
  border-style: solid;
  border-color: rgba(30,76,255,0.5);
  background: linear-gradient(180deg, rgba(30,76,255,0.08), rgba(30,76,255,0.02));
}
.v119-advanced__summary {
  padding: 12px 4px !important;
  font: 700 11px/1 var(--v2-mono, ui-monospace, "SF Mono", monospace) !important;
  letter-spacing: 0.18em !important;
  color: #6E8DFF !important; /* brighter cobalt so it pops */
  gap: 10px !important;
}
.v119-advanced__summary::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #1E4CFF;
  box-shadow: 0 0 0 3px rgba(30,76,255,0.20);
  flex: 0 0 auto;
}
.v119-advanced__caret {
  width: 12px !important;
  height: 12px !important;
  color: #6E8DFF;
}
.v119-advanced__label {
  color: #E9ECF2 !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
}
.v119-advanced__label::after {
  content: " — optional inputs";
  color: rgba(233,236,242,0.45);
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: none;
  font-size: 11px;
}
.v119-advanced__count {
  color: #E9ECF2 !important;
  background: rgba(30,76,255,0.18);
  border: 1px solid rgba(30,76,255,0.4);
  border-radius: 999px;
  padding: 3px 8px;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
}
.v119-advanced__body {
  padding: 4px 4px 12px !important;
  border-top: 1px dashed rgba(30,76,255,0.20);
  margin-top: 8px !important;
}

/* v36.157 — Stack lane "aka Seller Carry-Back" hint sub-label */
.v2-lane-item .v2-lane-aka {
  display: block;
  margin-top: 3px;
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: rgba(182, 242, 106, 0.62); /* lime, subdued */
  text-transform: none;
  line-height: 1.2;
}
.v2-lane-item.is-active .v2-lane-aka {
  color: rgba(182, 242, 106, 0.9);
}

/* ============================================================
   v36.184 — iPad EXPANDED state cleanup
   ------------------------------------------------------------
   The collapsed rail already read well. Expanded did not: the
   sidebar carried `overflow-x: hidden` (added for the collapse
   animation), which silently CLIPPED content that was wider than
   the 240px rail instead of revealing the problem. Two things
   were overflowing:

     1. .v2-persona-avatars — a 2-up grid whose items could not
        shrink below their min-content ("Lender" + SOON pill),
        so the row measured 242px inside a 216px content box and
        the SOON pill was sliced in half.
     2. .v2-persona-children — width:100% of its parent PLUS a
        12px left margin, so every funding lane pill (Earnest
        Money Deposit, Double Close, Stack, Echo) hung 12px past
        the rail and lost its status dot.

   Fixing the widths (rather than leaning on the clip) also frees
   real estate, so the rail narrows to 212px on iPad and hands the
   difference to the intake column.
   ============================================================ */
@media (min-width: 701px) and (max-width: 1180px) {
  /* Narrower rail — the content column is the scarce resource here */
  .v2-shell {
    grid-template-columns: 212px minmax(0, 1fr) !important;
  }
  /* Sit centered in the seam between rail and intake, touching neither */
  .v2-sidebar-toggle { left: 230px; }

  /* Nothing inside the rail may exceed the rail */
  .v2-sidebar,
  .v2-sidebar * {
    box-sizing: border-box;
  }

  /* 1. Persona chips: side by side, each chip is ~98px wide, which is
        not enough for "Lender" plus its SOON pill — squeezing them
        produced "Le… S…". Stack them full-rail-width instead. Costs a
        little height, reads correctly. */
  .v2-shell > .v2-sidebar .v2-persona-avatars {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    gap: 8px !important;
    padding: 4px 0 12px !important;
    margin: 0 0 12px !important;
  }
  .v2-shell > .v2-sidebar .v2-avatar {
    min-width: 0 !important;
    flex-direction: row !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    padding: 9px 12px !important;
  }
  .v2-shell > .v2-sidebar .v2-avatar__ring {
    flex: 0 0 auto;
  }
  .v2-shell > .v2-sidebar .v2-avatar__lbl {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  /* SOON pill rides at the right end of its own chip, in flow */
  .v2-shell > .v2-sidebar .v2-avatar__pill {
    position: static !important;
    margin-left: auto !important;
    flex: 0 0 auto;
    white-space: nowrap;
  }

  /* 2. Lane list: indent with padding, never width:100% + margin. */
  .v2-shell > .v2-sidebar .v2-persona-children {
    width: auto !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 10px !important;
    padding-right: 0 !important;
    border-left: 1px solid var(--v121-line, rgba(255,255,255,0.10));
  }
  .v2-shell > .v2-sidebar .v2-persona-tree .v2-lane-item {
    width: 100% !important;
    min-width: 0 !important;
    padding: 9px 20px 9px 10px !important;
  }
  .v2-shell > .v2-sidebar .v2-lane-item.v2-lane-item--neon::after {
    right: 8px;
  }
  /* Long lane names wrap rather than getting cut mid-word */
  .v2-shell > .v2-sidebar .v2-lane-item__lbl,
  .v2-shell > .v2-sidebar .v2-persona-tree .v2-lane-item {
    overflow-wrap: anywhere;
  }

  /* The rail now fits, so the clip is a safety net, not the layout */
  .v2-shell > .v2-sidebar { overflow-x: clip !important; }
}

/* ============================================================
   v36.184 — iPad: clearance for the fixed bottom verdict strip
   ------------------------------------------------------------
   The strip is 57px tall and position:fixed, so it floated over
   the last row of KPI tiles (PROJECTED PROFIT / AFTER THE STORM
   were half covered). Reserve room at the end of the scrolling
   content instead of letting the strip sit on top of it.
   Also let the rail fill the viewport so it reads as a column
   rather than a card that stops two-thirds of the way down.
   ============================================================ */
@media (min-width: 701px) and (max-width: 1180px) {
  #v2-results { padding-bottom: 96px !important; }
  .v2-intake-pane { margin-bottom: 0 !important; }

  .v2-shell > .v2-sidebar {
    min-height: calc(100vh - 32px) !important;
  }
}

/* v36.184 — phone: same fixed-strip clearance as iPad */
@media (max-width: 700px) {
  #v2-results { padding-bottom: 92px !important; }
}
