/* ──────────────────────────────────────────────────────────────
   ROL Wealth Snapshot — Private-banking refinement
   Generous vertical rhythm, big input typography, connected-dots
   stepper, card with consistent min-height + nav pinned to bottom.
   Brand-matched to returnonlife.ca: white, navy #1B4A91.

   ISOLATION: every custom rule is prefixed with [data-rolws-isolated]
   so it always beats the defensive reset and any theme bleed.
   ────────────────────────────────────────────────────────────── */

/* ── STAGE ──────────────────────────────────────────────── */
.rol-ws-stage {
  background: radial-gradient(120% 100% at 50% 0%, #F4F7FB 0%, #E9EFF6 60%, #DDE5F0 100%);
  padding: 56px 24px;
  width: 100%;
  box-sizing: border-box;
}
.rol-ws-stage.rol-ws-stage--full {
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 56px 24px;
}

/* ── WRAPPER + RESET ───────────────────────────────────── */
[data-rolws-isolated].rol-ws-wrap {
  all: revert;

  --rolws-white:        #FFFFFF;
  --rolws-bg-soft:      #F9FBFD;
  --rolws-bg-input:     #F5F8FB;
  --rolws-primary:      #1B4A91;
  --rolws-primary-dk:   #0F2C5C;
  --rolws-primary-lt:   #E8F0FB;
  --rolws-accent:       #2B7DBF;
  --rolws-accent-soft:  #DCEAF7;
  --rolws-ink:          #0E1729;
  --rolws-text:         #2D3748;
  --rolws-muted:        #6B7280;
  --rolws-faint:        #B7BDC9;
  --rolws-line:         #E8ECF1;
  --rolws-line-soft:    #F2F4F7;
  --rolws-warn:         #DC2626;
  --rolws-warn-soft:    #FEF2F2;
  --rolws-good:         #059669;
  --rolws-good-soft:    #ECFDF5;

  --rolws-shadow-card:  0 1px 2px rgba(15,23,41,0.04), 0 32px 80px -24px rgba(15,23,41,0.18);
  --rolws-shadow-btn:   0 6px 18px rgba(15,23,41,0.22);
  --rolws-shadow-btn-h: 0 12px 28px rgba(15,23,41,0.32);

  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  font-style: normal !important;
  line-height: 1.55 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  color: var(--rolws-text) !important;
  background: transparent !important;
  border: 0 !important;
  margin: 0 auto !important;
  padding: 0 !important;
  text-align: left !important;
  display: block !important;
  width: 100% !important;
  max-width: 820px !important;
}

/* ── DEFENSIVE RESET ───────────────────────────────────────
   CRITICAL: element-level resets are wrapped in :where() so they
   carry ZERO specificity. That way every component rule below
   (a single .rol-ws-* class = specificity 0,2,0) always wins —
   no !important war, no "the reset ate my margins" bug. */
[data-rolws-isolated].rol-ws-wrap *,
[data-rolws-isolated].rol-ws-wrap *::before,
[data-rolws-isolated].rol-ws-wrap *::after { box-sizing: border-box !important; }

:where([data-rolws-isolated].rol-ws-wrap) h1,
:where([data-rolws-isolated].rol-ws-wrap) h2,
:where([data-rolws-isolated].rol-ws-wrap) h3,
:where([data-rolws-isolated].rol-ws-wrap) h4,
:where([data-rolws-isolated].rol-ws-wrap) h5,
:where([data-rolws-isolated].rol-ws-wrap) h6,
:where([data-rolws-isolated].rol-ws-wrap) p {
  margin: 0; padding: 0; line-height: 1.4; color: inherit;
  font-family: inherit; font-style: normal; font-weight: inherit;
  text-transform: none; letter-spacing: normal; background: transparent;
}
:where([data-rolws-isolated].rol-ws-wrap) a {
  color: inherit; text-decoration: none; background: transparent;
}
:where([data-rolws-isolated].rol-ws-wrap) button {
  margin: 0; padding: 0; border: 0; background: transparent; color: inherit;
  font: inherit; letter-spacing: normal; text-transform: none; cursor: pointer;
  appearance: none; -webkit-appearance: none; text-shadow: none; box-shadow: none;
  line-height: 1.4; width: auto; text-align: center;
}
:where([data-rolws-isolated].rol-ws-wrap) button:focus { outline: none; }
:where([data-rolws-isolated].rol-ws-wrap) input {
  margin: 0; font: inherit; color: inherit; background: transparent;
  appearance: none; -webkit-appearance: none; border: 0; border-radius: 0;
  box-shadow: none; text-shadow: none; line-height: 1.4; letter-spacing: normal; width: auto;
}
:where([data-rolws-isolated].rol-ws-wrap) input:focus { outline: none; }
:where([data-rolws-isolated].rol-ws-wrap) nav,
:where([data-rolws-isolated].rol-ws-wrap) section,
:where([data-rolws-isolated].rol-ws-wrap) header,
:where([data-rolws-isolated].rol-ws-wrap) article,
:where([data-rolws-isolated].rol-ws-wrap) form,
:where([data-rolws-isolated].rol-ws-wrap) div,
:where([data-rolws-isolated].rol-ws-wrap) span,
:where([data-rolws-isolated].rol-ws-wrap) label {
  margin: 0; padding: 0; text-align: left; background: transparent;
  border: 0; text-transform: none; letter-spacing: normal; text-shadow: none;
}
:where([data-rolws-isolated].rol-ws-wrap) ul,
:where([data-rolws-isolated].rol-ws-wrap) ol,
:where([data-rolws-isolated].rol-ws-wrap) li {
  margin: 0; padding: 0; list-style: none;
}
:where([data-rolws-isolated].rol-ws-wrap) img {
  max-width: 100%; height: auto; display: inline-block; border: 0; margin: 0;
}
:where([data-rolws-isolated].rol-ws-wrap) svg {
  display: inline-block; vertical-align: middle; fill: none;
}

/* ── CARD ───────────────────────────────────────────────── */
[data-rolws-isolated].rol-ws-wrap .rol-ws-card-shell {
  background: var(--rolws-white);
  border-radius: 20px;
  box-shadow: var(--rolws-shadow-card);
  padding: 48px 56px 40px;
  border: 1px solid rgba(15,23,41,0.04);
  display: block;
  position: relative;
}
/* accent hairline at top of card for premium feel */
[data-rolws-isolated].rol-ws-wrap .rol-ws-card-shell::before {
  content: "";
  position: absolute;
  top: 0; left: 56px; right: 56px;
  height: 3px;
  background: linear-gradient(90deg, var(--rolws-primary) 0%, var(--rolws-accent) 100%);
  border-radius: 0 0 4px 4px;
}

/* ── BRAND ──────────────────────────────────────────────── */
[data-rolws-isolated] .rol-ws-brand {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 32px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--rolws-line);
}
[data-rolws-isolated] .rol-ws-brand-mark {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  cursor: pointer;
}
[data-rolws-isolated] .rol-ws-brand-img {
  height: 44px;
  width: auto;
  display: block;
}
[data-rolws-isolated] .rol-ws-brand-meta {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  font-size: 0.74rem;
  color: var(--rolws-muted);
}
[data-rolws-isolated] .rol-ws-brand-tag {
  color: var(--rolws-primary);
  font-weight: 600;
  letter-spacing: 0.01em;
}
[data-rolws-isolated] .rol-ws-brand-divider {
  width: 1px;
  height: 14px;
  background: var(--rolws-line);
}

/* ── INTRO ──────────────────────────────────────────────── */
[data-rolws-isolated] .rol-ws-intro { margin-bottom: 32px; }
[data-rolws-isolated] .rol-ws-display {
  font-family: 'Poppins', sans-serif !important;
  font-size: clamp(1.85rem, 3.4vw, 2.4rem) !important;
  font-weight: 700 !important;
  color: var(--rolws-primary-dk) !important;
  letter-spacing: -0.022em !important;
  line-height: 1.12 !important;
  margin: 0 0 12px !important;
}
[data-rolws-isolated] .rol-ws-display em {
  font-style: normal !important;
  color: var(--rolws-accent) !important;
  font-weight: 700 !important;
}
[data-rolws-isolated] .rol-ws-lead {
  font-size: 0.95rem !important;
  color: var(--rolws-muted) !important;
  line-height: 1.6 !important;
  max-width: 56ch !important;
  margin: 0 !important;
}

/* ── STEPPER (connected dots) ───────────────────────────── */
[data-rolws-isolated] .rol-ws-stepper {
  display: grid;
  grid-template-columns: auto 1fr auto 1fr auto 1fr auto;
  align-items: center;
  margin-bottom: 36px;
  padding: 18px 0 4px;
  border-bottom: 1px solid var(--rolws-line);
}
[data-rolws-isolated] .rol-ws-step {
  display: inline-flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  cursor: pointer !important;
  transition: color 0.2s !important;
  color: var(--rolws-muted) !important;
  font-family: 'Poppins', sans-serif !important;
  position: relative;
}
[data-rolws-isolated] .rol-ws-step-dot {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--rolws-white);
  border: 2px solid var(--rolws-line);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.25s cubic-bezier(0.2, 0.7, 0.2, 1);
}
[data-rolws-isolated] .rol-ws-step-num {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--rolws-faint);
  font-style: normal;
  letter-spacing: 0;
  transition: color 0.2s;
}
[data-rolws-isolated] .rol-ws-step-label {
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--rolws-muted);
  letter-spacing: 0.01em;
  white-space: nowrap;
  transition: color 0.2s, font-weight 0.2s;
}
[data-rolws-isolated] .rol-ws-step.active .rol-ws-step-dot {
  background: var(--rolws-ink);
  border-color: var(--rolws-ink);
  box-shadow: 0 0 0 4px rgba(14,23,41,0.08);
}
[data-rolws-isolated] .rol-ws-step.active .rol-ws-step-num { color: var(--rolws-white); }
[data-rolws-isolated] .rol-ws-step.active .rol-ws-step-label {
  color: var(--rolws-ink);
  font-weight: 600;
}
[data-rolws-isolated] .rol-ws-step.complete .rol-ws-step-dot {
  background: var(--rolws-primary);
  border-color: var(--rolws-primary);
}
[data-rolws-isolated] .rol-ws-step.complete .rol-ws-step-num { color: var(--rolws-white); }
[data-rolws-isolated] .rol-ws-step.complete .rol-ws-step-label { color: var(--rolws-primary); }
[data-rolws-isolated] .rol-ws-step:hover:not(.active):not(.complete) .rol-ws-step-dot {
  border-color: var(--rolws-faint);
}
[data-rolws-isolated] .rol-ws-step-line {
  height: 2px;
  background: var(--rolws-line);
  margin: 0 4px;
  border-radius: 2px;
  align-self: flex-start;
  margin-top: 17px; /* center on 36px dot */
}

/* ── FORM (single scrollable page — all sections visible) ── */
[data-rolws-isolated] .rol-ws-form { display: block; }

[data-rolws-isolated] .rol-ws-panel {
  display: block;
  scroll-margin-top: 24px;
}
[data-rolws-isolated] .rol-ws-panel + .rol-ws-panel {
  margin-top: 40px;
  padding-top: 40px;
  border-top: 1px solid var(--rolws-line);
}

/* PANEL HEAD (per-section heading) */
[data-rolws-isolated] .rol-ws-panel-head { margin-bottom: 28px; }
[data-rolws-isolated] .rol-ws-panel-eyebrow {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--rolws-accent);
  margin-bottom: 10px;
}
[data-rolws-isolated] .rol-ws-panel-title {
  font-family: 'Poppins', sans-serif !important;
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  color: var(--rolws-ink) !important;
  line-height: 1.2 !important;
  letter-spacing: -0.012em !important;
  margin: 0 0 8px !important;
}
[data-rolws-isolated] .rol-ws-panel-sub {
  font-size: 0.92rem !important;
  color: var(--rolws-muted) !important;
  line-height: 1.55 !important;
  max-width: 56ch !important;
  margin: 0 !important;
}

[data-rolws-isolated] .rol-ws-panel-body {
  display: grid;
  gap: 22px 44px;
}
[data-rolws-isolated] .rol-ws-grid-2 { grid-template-columns: 1fr 1fr; }
[data-rolws-isolated] .rol-ws-grid-3 {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 22px 32px;
}

[data-rolws-isolated] .rol-ws-block-label {
  grid-column: 1 / -1;
  display: block;
  font-size: 0.74rem;
  font-weight: 700;
  color: var(--rolws-primary);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-top: 16px;
  margin-bottom: 0;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--rolws-line);
}
[data-rolws-isolated] .rol-ws-block-label:first-child { margin-top: 0; }

/* ── FIELDS — generous, premium typography ─────────────── */
[data-rolws-isolated] .rol-ws-field {
  display: block !important;
  padding-bottom: 14px !important;
  border-bottom: 1px solid var(--rolws-line) !important;
  transition: border-color 0.2s;
}
[data-rolws-isolated] .rol-ws-field--full { grid-column: 1 / -1; }
[data-rolws-isolated] .rol-ws-field.rol-ws-field--hidden { display: none !important; }
[data-rolws-isolated] .rol-ws-field:focus-within {
  border-bottom-color: var(--rolws-primary);
}
[data-rolws-isolated] .rol-ws-field > label {
  display: block !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  color: var(--rolws-muted) !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  margin: 0 0 12px !important;
}

[data-rolws-isolated] .rol-ws-input-line {
  display: flex !important;
  align-items: baseline !important;
  gap: 8px !important;
}
[data-rolws-isolated] .rol-ws-prefix {
  font-size: 1.25rem;
  font-weight: 400;
  color: var(--rolws-faint);
}
[data-rolws-isolated] .rol-ws-input {
  flex: 1 1 0 !important;
  width: 100% !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  font-family: 'Poppins', sans-serif !important;
  font-size: 1.35rem !important;
  font-weight: 500 !important;
  color: var(--rolws-ink) !important;
  outline: none !important;
  font-variant-numeric: tabular-nums !important;
  box-shadow: none !important;
  line-height: 1.4 !important;
  min-height: 32px !important;
  letter-spacing: -0.005em !important;
}
[data-rolws-isolated] .rol-ws-input::placeholder {
  color: var(--rolws-faint);
  font-weight: 400;
}
[data-rolws-isolated] .rol-ws-input::-webkit-outer-spin-button,
[data-rolws-isolated] .rol-ws-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
[data-rolws-isolated] .rol-ws-input[type="number"] { -moz-appearance: textfield; }

/* Profession visibility toggle — must use !important to beat
   .rol-ws-field { display: block !important } from the field rule. */
[data-rolws-isolated] .rol-ws-hnw-only.rol-ws-hidden,
[data-rolws-isolated] .rol-ws-biz-only.rol-ws-hidden,
[data-rolws-isolated] .rol-ws-prof-only.rol-ws-hidden,
[data-rolws-isolated] .rol-ws-prof-income-field.rol-ws-hidden,
[data-rolws-isolated] .rol-ws-practice-value-field.rol-ws-hidden { display: none !important; }

/* ── PROFESSION SELECT (dropdown styled to match input look) ── */
[data-rolws-isolated] .rol-ws-select-wrap {
  position: relative;
  display: block;
}
[data-rolws-isolated] .rol-ws-select {
  width: 100% !important;
  padding: 12px 44px 12px 16px !important;
  background: var(--rolws-bg-input) !important;
  border: 1px solid var(--rolws-line) !important;
  border-radius: 10px !important;
  font-family: 'Poppins', sans-serif !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
  color: var(--rolws-ink) !important;
  cursor: pointer !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  outline: none !important;
  transition: border-color 0.18s, background 0.18s !important;
}
[data-rolws-isolated] .rol-ws-select:hover { border-color: var(--rolws-faint) !important; }
[data-rolws-isolated] .rol-ws-select:focus { border-color: var(--rolws-primary) !important; background: var(--rolws-white) !important; }
[data-rolws-isolated] .rol-ws-select-caret {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  width: 16px;
  height: 16px;
  color: var(--rolws-muted);
}
[data-rolws-isolated] .rol-ws-select-caret svg { width: 100%; height: 100%; }

/* ── FIELD HINT (inline help text under input/segment) ────── */
[data-rolws-isolated] .rol-ws-field-hint {
  margin: 8px 0 0 !important;
  font-size: 0.78rem !important;
  color: var(--rolws-muted) !important;
  line-height: 1.5 !important;
  font-style: normal !important;
}

/* ── CUSTOM EXPENSES (add/remove rows) ────────────────── */
[data-rolws-isolated] .rol-ws-custom-expenses {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}
[data-rolws-isolated] .rol-ws-custom-row {
  display: grid;
  grid-template-columns: 1fr 180px 40px;
  gap: 10px;
  align-items: center;
}
[data-rolws-isolated] .rol-ws-custom-label {
  padding: 10px 12px !important;
  border: 1px solid var(--rolws-line) !important;
  border-radius: 8px !important;
  font-family: 'Poppins', sans-serif !important;
  font-size: 0.88rem !important;
  font-weight: 500 !important;
  color: var(--rolws-ink) !important;
  background: var(--rolws-bg-input) !important;
  outline: none !important;
  transition: border-color 0.18s, background 0.18s !important;
  width: 100% !important;
}
[data-rolws-isolated] .rol-ws-custom-label:focus {
  border-color: var(--rolws-primary) !important;
  background: var(--rolws-white) !important;
}
[data-rolws-isolated] .rol-ws-custom-val {
  padding: 8px 12px !important;
  border: 1px solid var(--rolws-line) !important;
  border-radius: 8px !important;
  background: var(--rolws-bg-input) !important;
}
[data-rolws-isolated] .rol-ws-custom-val .rol-ws-input { font-size: 1rem !important; min-height: 26px !important; }
[data-rolws-isolated] .rol-ws-custom-val .rol-ws-prefix { font-size: 1rem; }
[data-rolws-isolated] .rol-ws-remove-btn {
  width: 40px !important;
  height: 40px !important;
  border: 1px solid var(--rolws-line) !important;
  border-radius: 8px !important;
  background: var(--rolws-bg-input) !important;
  color: var(--rolws-muted) !important;
  cursor: pointer !important;
  font-size: 1.15rem !important;
  line-height: 1 !important;
  font-family: 'Poppins', sans-serif !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: all 0.15s !important;
}
[data-rolws-isolated] .rol-ws-remove-btn:hover {
  background: var(--rolws-warn-soft) !important;
  border-color: var(--rolws-warn) !important;
  color: var(--rolws-warn) !important;
}
[data-rolws-isolated] .rol-ws-add-expense {
  margin-top: 14px !important;
  width: 100% !important;
  padding: 12px 16px !important;
  background: transparent !important;
  border: 1px dashed var(--rolws-line) !important;
  border-radius: 10px !important;
  color: var(--rolws-muted) !important;
  font-family: 'Poppins', sans-serif !important;
  font-size: 0.86rem !important;
  font-weight: 500 !important;
  text-align: left !important;
  cursor: pointer !important;
  transition: all 0.15s !important;
}
[data-rolws-isolated] .rol-ws-add-expense:hover {
  border-color: var(--rolws-primary) !important;
  color: var(--rolws-primary) !important;
  background: var(--rolws-primary-lt) !important;
}

/* ── SEGMENTED TOGGLE ───────────────────────────────────── */
[data-rolws-isolated] .rol-ws-segment {
  display: flex !important;
  align-items: stretch !important;
  background: var(--rolws-bg-input) !important;
  border: 1px solid var(--rolws-line) !important;
  border-radius: 10px !important;
  padding: 4px !important;
  width: 100% !important;
  gap: 4px !important;
  margin: 0 !important;
}
[data-rolws-isolated] .rol-ws-segment .rol-ws-seg {
  flex: 1 1 0 !important;
  width: auto !important;
  padding: 12px 14px !important;
  background: transparent !important;
  font-family: 'Poppins', sans-serif !important;
  font-size: 0.92rem !important;
  font-weight: 500 !important;
  color: var(--rolws-muted) !important;
  cursor: pointer !important;
  border: 0 !important;
  border-radius: 7px !important;
  transition: all 0.18s !important;
  text-align: center !important;
  white-space: nowrap !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  box-shadow: none !important;
}
[data-rolws-isolated] .rol-ws-segment .rol-ws-seg:hover { color: var(--rolws-primary) !important; }
[data-rolws-isolated] .rol-ws-segment .rol-ws-seg.active {
  background: var(--rolws-ink) !important;
  color: var(--rolws-white) !important;
  font-weight: 600 !important;
  box-shadow: 0 1px 3px rgba(15,23,41,0.18) !important;
}
[data-rolws-isolated] .rol-ws-segment--inline .rol-ws-seg { padding: 12px 8px !important; font-size: 0.85rem !important; }

/* ── SUBMIT ROW (single Generate button at the bottom) ──── */
[data-rolws-isolated] .rol-ws-submit-row {
  margin-top: 40px;
  padding-top: 36px;
  border-top: 2px solid var(--rolws-line);
  text-align: center;
}
[data-rolws-isolated] .rol-ws-generate-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  padding: 16px 40px !important;
  background: var(--rolws-ink) !important;
  color: var(--rolws-white) !important;
  border: 0 !important;
  border-radius: 14px !important;
  font-family: 'Poppins', sans-serif !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  cursor: pointer !important;
  transition: background 0.18s, transform 0.1s, box-shadow 0.22s !important;
  box-shadow: var(--rolws-shadow-btn) !important;
  width: auto !important;
  text-transform: none !important;
}
[data-rolws-isolated] .rol-ws-generate-btn:hover {
  background: var(--rolws-primary) !important;
  box-shadow: var(--rolws-shadow-btn-h) !important;
  transform: translateY(-1px);
}
[data-rolws-isolated] .rol-ws-generate-btn:active { transform: translateY(0); }
[data-rolws-isolated] .rol-ws-gen-icon {
  display: inline-flex;
  width: 16px; height: 16px;
  color: var(--rolws-white);
}
[data-rolws-isolated] .rol-ws-gen-icon svg { width: 100%; height: 100%; }

[data-rolws-isolated] .rol-ws-confidential {
  text-align: center !important;
  font-size: 0.78rem !important;
  color: var(--rolws-faint) !important;
  margin: 18px 0 0 !important;
  letter-spacing: 0 !important;
  font-style: normal !important;
}

/* ── REPORT ─────────────────────────────────────────────── */
[data-rolws-isolated] .rol-ws-result { margin-top: 32px; }
[data-rolws-isolated] .rol-ws-result:empty { display: none; }
[data-rolws-isolated] .rol-ws-report { animation: rolws-rise 0.5s cubic-bezier(0.2, 0.7, 0.2, 1); }
@keyframes rolws-rise {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: none; }
}

[data-rolws-isolated] .rol-ws-report-cover {
  text-align: center;
  padding: 32px 24px;
  background: linear-gradient(135deg, var(--rolws-primary) 0%, var(--rolws-primary-dk) 100%);
  color: var(--rolws-white);
  border-radius: 16px;
  margin-bottom: 24px;
}
[data-rolws-isolated] .rol-ws-cover-eyebrow {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.78);
  margin-bottom: 12px;
}
[data-rolws-isolated] .rol-ws-cover-title {
  font-family: 'Poppins', sans-serif !important;
  font-size: clamp(1.5rem, 3vw, 1.9rem) !important;
  font-weight: 700 !important;
  color: var(--rolws-white) !important;
  margin: 0 !important;
  line-height: 1.25 !important;
  letter-spacing: -0.01em !important;
}
[data-rolws-isolated] .rol-ws-cover-title em { font-style: normal !important; color: var(--rolws-white) !important; }
[data-rolws-isolated] .rol-ws-cover-sub {
  margin-top: 12px !important;
  font-size: 0.82rem !important;
  color: rgba(255,255,255,0.72) !important;
  font-style: normal !important;
}

/* Bottom-line analysis callout */
[data-rolws-isolated] .rol-ws-bottom-line {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 18px;
  align-items: start;
  padding: 24px 26px;
  margin-top: 18px;
  background: var(--rolws-accent-soft);
  border: 1px solid rgba(43,125,191,0.2);
  border-radius: 16px;
}
[data-rolws-isolated] .rol-ws-bl-icon {
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: var(--rolws-white);
  color: var(--rolws-accent);
  flex-shrink: 0;
}
[data-rolws-isolated] .rol-ws-bl-icon svg { width: 20px; height: 20px; }
[data-rolws-isolated] .rol-ws-bl-label {
  display: block;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--rolws-accent);
  margin-bottom: 8px;
}
[data-rolws-isolated] .rol-ws-bl-text {
  font-size: 0.98rem !important;
  font-weight: 500 !important;
  color: var(--rolws-primary-dk) !important;
  line-height: 1.6 !important;
  margin: 0 !important;
}
[data-rolws-isolated] .rol-ws-bl-text strong { color: var(--rolws-primary); font-weight: 700; }

/* Hero stats */
[data-rolws-isolated] .rol-ws-hero-stats {
  display: grid;
  grid-template-columns: 1fr 1px 1fr;
  background: var(--rolws-white);
  border: 1px solid var(--rolws-line);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: var(--rolws-shadow-card);
}
[data-rolws-isolated] .rol-ws-hero-stat { padding: 32px 32px; }
[data-rolws-isolated] .rol-ws-hs-eyebrow {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--rolws-muted);
  margin-bottom: 14px;
}
[data-rolws-isolated] .rol-ws-hs-eyebrow svg { width: 14px; height: 14px; }
[data-rolws-isolated] .rol-ws-hs-value {
  font-family: 'Poppins', sans-serif;
  font-size: clamp(1.8rem, 3.6vw, 2.4rem);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  color: var(--rolws-primary-dk);
}
[data-rolws-isolated] .rol-ws-hs-caption {
  margin-top: 10px;
  font-size: 0.82rem;
  color: var(--rolws-muted);
  line-height: 1.5;
}
[data-rolws-isolated] .rol-ws-hero-stat.warn .rol-ws-hs-eyebrow,
[data-rolws-isolated] .rol-ws-hero-stat.warn .rol-ws-hs-value { color: var(--rolws-warn); }
[data-rolws-isolated] .rol-ws-hero-stat.good .rol-ws-hs-eyebrow,
[data-rolws-isolated] .rol-ws-hero-stat.good .rol-ws-hs-value { color: var(--rolws-good); }
[data-rolws-isolated] .rol-ws-hero-divider { background: var(--rolws-line); }

/* ── COLLAPSIBLE SECTIONS (accordion — all start collapsed) ── */
[data-rolws-isolated] .rol-ws-acc-intro {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-top: 28px;
  margin-bottom: 12px;
}
[data-rolws-isolated] .rol-ws-acc-intro > span {
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--rolws-muted);
}
[data-rolws-isolated] .rol-ws-acc-toggle-all {
  font-family: 'Poppins', sans-serif !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  color: var(--rolws-primary) !important;
  background: transparent !important;
  border: 0 !important;
  cursor: pointer !important;
  padding: 4px 6px !important;
  border-radius: 6px !important;
}
[data-rolws-isolated] .rol-ws-acc-toggle-all:hover { background: var(--rolws-primary-lt) !important; }

[data-rolws-isolated] .rol-ws-report-section { margin-top: 40px; }
[data-rolws-isolated] .rol-ws-acc.rol-ws-report-section { margin-top: 10px; }

[data-rolws-isolated] .rol-ws-acc {
  background: var(--rolws-white);
  border: 1px solid var(--rolws-line);
  border-radius: 14px;
  overflow: hidden;
  transition: border-color 0.18s, box-shadow 0.18s;
}
[data-rolws-isolated] .rol-ws-acc.open {
  border-color: rgba(27,74,145,0.2);
  box-shadow: 0 4px 16px rgba(15,44,92,0.06);
}
[data-rolws-isolated] .rol-ws-acc-trigger {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  width: 100% !important;
  padding: 18px 22px !important;
  background: var(--rolws-white) !important;
  border: 0 !important;
  cursor: pointer !important;
  text-align: left !important;
  font-family: 'Poppins', sans-serif !important;
  transition: background 0.15s !important;
}
[data-rolws-isolated] .rol-ws-acc-trigger:hover { background: var(--rolws-bg-soft) !important; }
[data-rolws-isolated] .rol-ws-section-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  background: var(--rolws-primary-lt);
  color: var(--rolws-primary);
  font-size: 0.78rem;
  font-weight: 700;
  border-radius: 8px;
  font-family: 'Poppins', sans-serif;
}
[data-rolws-isolated] .rol-ws-acc.open .rol-ws-section-num {
  background: var(--rolws-primary);
  color: var(--rolws-white);
}
[data-rolws-isolated] .rol-ws-section-title {
  font-family: 'Poppins', sans-serif !important;
  font-size: 1.05rem !important;
  font-weight: 600 !important;
  color: var(--rolws-primary-dk) !important;
  line-height: 1.2 !important;
  margin: 0 !important;
  white-space: nowrap;
}
[data-rolws-isolated] .rol-ws-section-rule { flex: 1; height: 1px; background: var(--rolws-line); min-width: 12px; }
[data-rolws-isolated] .rol-ws-section-meta { font-size: 0.74rem; color: var(--rolws-muted); font-weight: 500; white-space: nowrap; flex-shrink: 0; }
[data-rolws-isolated] .rol-ws-acc-chevron {
  display: inline-flex;
  width: 18px; height: 18px;
  color: var(--rolws-muted);
  flex-shrink: 0;
  transition: transform 0.28s cubic-bezier(0.2, 0.7, 0.2, 1), color 0.18s;
}
[data-rolws-isolated] .rol-ws-acc-chevron svg { width: 100%; height: 100%; }
[data-rolws-isolated] .rol-ws-acc.open .rol-ws-acc-chevron { transform: rotate(180deg); color: var(--rolws-primary); }

[data-rolws-isolated] .rol-ws-acc-body {
  display: grid;
  grid-template-rows: 0fr;
  overflow: hidden;            /* safety net — clips anything that escapes */
  transition: grid-template-rows 0.32s cubic-bezier(0.2, 0.7, 0.2, 1);
}
[data-rolws-isolated] .rol-ws-acc.open .rol-ws-acc-body { grid-template-rows: 1fr; }
/* The grid item itself stays BARE (no padding/border) so it can shrink to a
   true 0 height — box-sizing:border-box won't let padding squish past 0. */
[data-rolws-isolated] .rol-ws-acc-body-inner {
  overflow: hidden;
  min-height: 0;
}
/* Padding/divider live on a nested child, clipped by the bare grid item. */
[data-rolws-isolated] .rol-ws-acc-content {
  padding: 18px 22px 22px;
  border-top: 1px solid var(--rolws-line-soft);
}
/* Old browsers with no animatable fr-rows: fall back to a plain show/hide. */
@supports not (grid-template-rows: 0fr) {
  [data-rolws-isolated] .rol-ws-acc-body { display: none; }
  [data-rolws-isolated] .rol-ws-acc.open .rol-ws-acc-body { display: block; }
}

/* Income flow */
[data-rolws-isolated] .rol-ws-flow {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
[data-rolws-isolated] .rol-ws-flow-card {
  background: var(--rolws-white);
  border: 1px solid var(--rolws-line);
  border-radius: 14px;
  padding: 26px;
}
[data-rolws-isolated] .rol-ws-flow-card.coral { border-top: 3px solid var(--rolws-warn); }
[data-rolws-isolated] .rol-ws-flow-card.sage  { border-top: 3px solid var(--rolws-good); }
[data-rolws-isolated] .rol-ws-flow-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 14px;
}
[data-rolws-isolated] .rol-ws-flow-card.coral .rol-ws-flow-tag { color: var(--rolws-warn); }
[data-rolws-isolated] .rol-ws-flow-card.sage  .rol-ws-flow-tag { color: var(--rolws-good); }
[data-rolws-isolated] .rol-ws-flow-tag svg { width: 14px; height: 14px; }
[data-rolws-isolated] .rol-ws-flow-title {
  font-family: 'Poppins', sans-serif !important;
  font-size: 1.02rem !important;
  font-weight: 600 !important;
  margin: 0 0 14px !important;
  color: var(--rolws-primary-dk) !important;
}
[data-rolws-isolated] .rol-ws-flow-list { display: grid; gap: 8px; padding-bottom: 14px; border-bottom: 1px solid var(--rolws-line-soft); }
[data-rolws-isolated] .rol-ws-flow-row { display: flex; justify-content: space-between; align-items: baseline; font-size: 0.86rem; }
[data-rolws-isolated] .rol-ws-flow-row .l { color: var(--rolws-muted); }
[data-rolws-isolated] .rol-ws-flow-row .v { font-variant-numeric: tabular-nums; color: var(--rolws-text); font-weight: 500; }
[data-rolws-isolated] .rol-ws-flow-row .v.neg { color: var(--rolws-warn); }
[data-rolws-isolated] .rol-ws-flow-row .v.pos { color: var(--rolws-good); }
[data-rolws-isolated] .rol-ws-flow-final {
  display: flex; justify-content: space-between; align-items: baseline; margin-top: 14px;
}
[data-rolws-isolated] .rol-ws-flow-final .l {
  font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--rolws-muted); font-weight: 600;
}
[data-rolws-isolated] .rol-ws-flow-final .v {
  font-family: 'Poppins', sans-serif;
  font-size: 1.45rem; font-weight: 700;
  font-variant-numeric: tabular-nums; letter-spacing: -0.012em;
}
[data-rolws-isolated] .rol-ws-flow-card.coral .rol-ws-flow-final .v { color: var(--rolws-warn); }
[data-rolws-isolated] .rol-ws-flow-card.sage  .rol-ws-flow-final .v { color: var(--rolws-good); }
[data-rolws-isolated] .rol-ws-flow-hint {
  margin-top: 16px;
  background: var(--rolws-primary-lt);
  border-left: 3px solid var(--rolws-primary);
  padding: 14px 18px;
  border-radius: 0 10px 10px 0;
  font-size: 0.86rem;
  color: var(--rolws-text);
  line-height: 1.55;
}
[data-rolws-isolated] .rol-ws-flow-hint strong { color: var(--rolws-primary); font-weight: 600; }

/* Income flow — single-column variant (used when no comparison shown) */
[data-rolws-isolated] .rol-ws-flow.rol-ws-flow--single { grid-template-columns: 1fr; }
/* Flow-hint can also live inside a flow-card */
[data-rolws-isolated] .rol-ws-flow-card .rol-ws-flow-hint { margin-top: 14px; }
/* Combined-total bar (HNW only) */
[data-rolws-isolated] .rol-ws-flow-total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 22px;
  margin-top: 14px;
  background: var(--rolws-primary-dk);
  color: var(--rolws-white);
  border-radius: 12px;
}
[data-rolws-isolated] .rol-ws-flow-total .l {
  font-size: 0.74rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.78);
  font-weight: 600;
}
[data-rolws-isolated] .rol-ws-flow-total .v {
  font-family: 'Poppins', sans-serif;
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--rolws-white);
  font-variant-numeric: tabular-nums;
}

/* Passive income panel (corp limit bar + HNW HoldCo path) */
[data-rolws-isolated] .rol-ws-passive {
  background: var(--rolws-white);
  border: 1px solid var(--rolws-line);
  border-radius: 14px;
  padding: 18px 22px;
}
[data-rolws-isolated] .rol-ws-passive.over {
  background: var(--rolws-warn-soft);
  border-color: rgba(220,38,38,0.3);
}
[data-rolws-isolated] .rol-ws-passive-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
[data-rolws-isolated] .rol-ws-passive-title {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--rolws-primary-dk);
}
[data-rolws-isolated] .rol-ws-passive-val {
  font-size: 0.84rem;
  font-weight: 600;
  color: var(--rolws-text);
  font-variant-numeric: tabular-nums;
}
[data-rolws-isolated] .rol-ws-passive-val.warn { color: var(--rolws-warn); }
[data-rolws-isolated] .rol-ws-passive-val.good { color: var(--rolws-good); }
[data-rolws-isolated] .rol-ws-passive-list { display: grid; gap: 6px; padding: 4px 0 8px; }
[data-rolws-isolated] .rol-ws-passive-list .rol-ws-flow-row.total {
  border-top: 1px solid var(--rolws-line);
  padding-top: 8px;
  margin-top: 4px;
  font-weight: 600;
}
[data-rolws-isolated] .rol-ws-passive-list .rol-ws-flow-row.total .v {
  font-family: 'Poppins', sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--rolws-good);
}
[data-rolws-isolated] .rol-ws-passive-bar {
  position: relative;
  background: var(--rolws-primary-lt);
  border-radius: 4px;
  height: 10px;
  margin: 6px 0 4px;
}
[data-rolws-isolated] .rol-ws-passive-fill {
  position: absolute; left: 0; top: 0; height: 100%; border-radius: 4px;
  transition: width 0.4s ease;
}
[data-rolws-isolated] .rol-ws-passive-fill.safe   { background: var(--rolws-primary); }
[data-rolws-isolated] .rol-ws-passive-fill.danger { background: var(--rolws-warn); }
[data-rolws-isolated] .rol-ws-passive-mark {
  position: absolute; top: -3px; width: 2px; height: 16px; background: var(--rolws-accent);
}
[data-rolws-isolated] .rol-ws-passive-labels {
  display: flex; justify-content: space-between;
  font-size: 0.68rem; color: var(--rolws-muted);
  margin-top: 4px;
}
[data-rolws-isolated] .rol-ws-passive-labels .lim { color: var(--rolws-accent); font-weight: 600; }
[data-rolws-isolated] .rol-ws-passive-note {
  margin-top: 12px !important;
  font-size: 0.82rem !important;
  color: var(--rolws-muted) !important;
  line-height: 1.55 !important;
}
[data-rolws-isolated] .rol-ws-passive-note.warn { color: var(--rolws-warn) !important; }
[data-rolws-isolated] .rol-ws-passive-note.good { color: var(--rolws-good) !important; }
[data-rolws-isolated] .rol-ws-passive-note strong { color: var(--rolws-warn); font-weight: 600; }

/* HNW estate-at-death split */
[data-rolws-isolated] .rol-ws-estate {
  background: var(--rolws-white);
  border: 1px solid var(--rolws-line);
  border-radius: 14px;
  padding: 22px 24px;
}
[data-rolws-isolated] .rol-ws-estate-stats {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 12px;
  margin-bottom: 16px;
}
[data-rolws-isolated] .rol-ws-estate-stat {
  padding: 14px 12px;
  text-align: center;
  border-radius: 10px;
}
[data-rolws-isolated] .rol-ws-estate-stat.total { background: var(--rolws-primary-lt); }
[data-rolws-isolated] .rol-ws-estate-stat.tax   { background: var(--rolws-warn-soft); }
[data-rolws-isolated] .rol-ws-estate-stat.fam   { background: var(--rolws-good-soft); }
[data-rolws-isolated] .rol-ws-estate-stat .lbl {
  display: block;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 6px;
}
[data-rolws-isolated] .rol-ws-estate-stat.total .lbl { color: var(--rolws-primary); }
[data-rolws-isolated] .rol-ws-estate-stat.tax   .lbl { color: var(--rolws-warn); }
[data-rolws-isolated] .rol-ws-estate-stat.fam   .lbl { color: var(--rolws-good); }
[data-rolws-isolated] .rol-ws-estate-stat .val {
  display: block;
  font-family: 'Poppins', sans-serif;
  font-size: 1.32rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.012em;
}
[data-rolws-isolated] .rol-ws-estate-stat.total .val { color: var(--rolws-primary-dk); }
[data-rolws-isolated] .rol-ws-estate-stat.tax   .val { color: var(--rolws-warn); }
[data-rolws-isolated] .rol-ws-estate-stat.fam   .val { color: var(--rolws-good); }
[data-rolws-isolated] .rol-ws-estate-bar {
  display: flex;
  height: 14px;
  border-radius: 6px;
  overflow: hidden;
  background: var(--rolws-line);
}
[data-rolws-isolated] .rol-ws-estate-fam { background: var(--rolws-good); }
[data-rolws-isolated] .rol-ws-estate-tax { background: var(--rolws-warn); }
[data-rolws-isolated] .rol-ws-estate-labels {
  display: flex;
  justify-content: space-between;
  margin-top: 8px;
  font-size: 0.74rem;
  font-weight: 600;
}
[data-rolws-isolated] .rol-ws-estate-labels .good { color: var(--rolws-good); }
[data-rolws-isolated] .rol-ws-estate-labels .warn { color: var(--rolws-warn); }
[data-rolws-isolated] .rol-ws-estate-note {
  margin-top: 12px !important;
  font-size: 0.82rem !important;
  color: var(--rolws-muted) !important;
  line-height: 1.6 !important;
}
[data-rolws-isolated] .rol-ws-estate-note strong { color: var(--rolws-text); font-weight: 600; }

/* Asset row — exempt variant (TFSA, primary residence) */
[data-rolws-isolated] .rol-ws-asset.exempt {
  background: var(--rolws-good-soft);
  border-color: rgba(5,150,105,0.22);
}

/* Charitable giving card */
[data-rolws-isolated] .rol-ws-charity {
  margin-top: 10px;
  display: grid;
  grid-template-columns: 38px 1fr;
  gap: 16px;
  padding: 18px 22px;
  background: var(--rolws-good-soft);
  border: 1px solid rgba(5,150,105,0.2);
  border-radius: 12px;
}
[data-rolws-isolated] .rol-ws-charity-icon {
  width: 38px; height: 38px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 12px;
  background: var(--rolws-white);
  color: var(--rolws-good);
}
[data-rolws-isolated] .rol-ws-charity-icon svg { width: 16px; height: 16px; }
[data-rolws-isolated] .rol-ws-charity-title {
  font-size: 0.94rem !important;
  font-weight: 600 !important;
  color: var(--rolws-good) !important;
  margin: 0 0 4px !important;
  line-height: 1.4 !important;
}
[data-rolws-isolated] .rol-ws-charity-detail {
  font-size: 0.86rem !important;
  color: var(--rolws-text) !important;
  line-height: 1.6 !important;
  margin: 0 !important;
}

/* Write-offs */
[data-rolws-isolated] .rol-ws-wo-strip { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
[data-rolws-isolated] .rol-ws-wo-chip {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 14px 8px 12px;
  background: var(--rolws-good-soft); color: var(--rolws-good);
  border-radius: 999px; font-size: 0.84rem; font-weight: 500;
}
[data-rolws-isolated] .rol-ws-wo-chip svg { width: 14px; height: 14px; }
[data-rolws-isolated] .rol-ws-wo-chip strong { font-weight: 700; font-variant-numeric: tabular-nums; }
[data-rolws-isolated] .rol-ws-wo-total {
  margin-left: auto;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 16px; background: var(--rolws-good); color: var(--rolws-white);
  border-radius: 999px; font-size: 0.78rem; font-weight: 600;
}
[data-rolws-isolated] .rol-ws-wo-total .v { font-weight: 700; }

/* Asset list */
[data-rolws-isolated] .rol-ws-asset-list { display: grid; gap: 10px; }
[data-rolws-isolated] .rol-ws-asset {
  display: grid; grid-template-columns: 44px 1fr auto;
  align-items: center; gap: 18px;
  padding: 18px 22px;
  background: var(--rolws-white);
  border: 1px solid var(--rolws-line);
  border-radius: 12px;
  transition: border-color 0.15s, box-shadow 0.15s;
}
[data-rolws-isolated] .rol-ws-asset:hover {
  border-color: var(--rolws-accent);
  box-shadow: 0 4px 14px rgba(15,44,92,0.08);
}
[data-rolws-isolated] .rol-ws-asset.flagged {
  border-color: rgba(220,38,38,0.3);
  background: var(--rolws-warn-soft);
}
[data-rolws-isolated] .rol-ws-asset-icon {
  width: 44px; height: 44px;
  border-radius: 12px;
  background: var(--rolws-primary-lt);
  display: flex; align-items: center; justify-content: center;
  color: var(--rolws-primary);
}
[data-rolws-isolated] .rol-ws-asset-icon svg { width: 20px; height: 20px; }
[data-rolws-isolated] .rol-ws-asset-body .name {
  font-size: 0.94rem !important; font-weight: 600 !important;
  color: var(--rolws-primary-dk) !important; margin: 0 0 3px !important;
}
[data-rolws-isolated] .rol-ws-asset-body .sub {
  font-size: 0.78rem !important; color: var(--rolws-muted) !important; margin: 0 !important;
}
[data-rolws-isolated] .rol-ws-asset-figures { text-align: right; display: grid; gap: 5px; }
[data-rolws-isolated] .rol-ws-asset-figures .val {
  font-family: 'Poppins', sans-serif;
  font-size: 1.18rem; font-weight: 700;
  color: var(--rolws-primary-dk);
  font-variant-numeric: tabular-nums; letter-spacing: -0.005em;
}
[data-rolws-isolated] .rol-ws-asset-figures .status {
  font-size: 0.66rem; font-weight: 600;
  letter-spacing: 0.08em; text-transform: uppercase;
}
[data-rolws-isolated] .rol-ws-asset-figures .status.warn  { color: var(--rolws-warn); }
[data-rolws-isolated] .rol-ws-asset-figures .status.good  { color: var(--rolws-good); }
[data-rolws-isolated] .rol-ws-asset-figures .status.muted { color: var(--rolws-muted); }

/* Capital gains */
[data-rolws-isolated] .rol-ws-cg {
  background: var(--rolws-white); border: 1px solid var(--rolws-line);
  border-radius: 14px; overflow: hidden;
}
[data-rolws-isolated] .rol-ws-cg-head {
  padding: 20px 24px;
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  background: var(--rolws-warn-soft);
  border-bottom: 1px solid rgba(220,38,38,0.15);
}
[data-rolws-isolated] .rol-ws-cg-head .lbl { display: flex; align-items: center; gap: 12px; color: var(--rolws-warn); }
[data-rolws-isolated] .rol-ws-cg-head .lbl svg { width: 18px; height: 18px; }
[data-rolws-isolated] .rol-ws-cg-head .lbl-text {
  font-size: 0.78rem; font-weight: 600;
  letter-spacing: 0.08em; text-transform: uppercase;
}
[data-rolws-isolated] .rol-ws-cg-head .amt {
  font-family: 'Poppins', sans-serif;
  font-size: 1.5rem; font-weight: 700;
  color: var(--rolws-warn); font-variant-numeric: tabular-nums;
}
[data-rolws-isolated] .rol-ws-cg-body { padding: 20px 24px; display: grid; gap: 14px; }
[data-rolws-isolated] .rol-ws-cg-note { font-size: 0.86rem; color: var(--rolws-muted); margin: 0 !important; line-height: 1.55; }
[data-rolws-isolated] .rol-ws-cg-grid { display: grid; gap: 10px; }
[data-rolws-isolated] .rol-ws-cg-grid.two { grid-template-columns: 1fr 1fr; }
[data-rolws-isolated] .rol-ws-cg-card {
  border: 1px solid var(--rolws-line); border-radius: 10px;
  padding: 14px 16px; background: var(--rolws-bg-soft);
}
[data-rolws-isolated] .rol-ws-cg-card .label {
  font-size: 0.72rem; font-weight: 600;
  letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--rolws-muted); margin-bottom: 6px;
}
[data-rolws-isolated] .rol-ws-cg-card .gain {
  font-size: 0.86rem; font-weight: 600;
  color: var(--rolws-text); margin-bottom: 4px;
  font-variant-numeric: tabular-nums;
}
[data-rolws-isolated] .rol-ws-cg-card .tax { font-size: 0.8rem; color: var(--rolws-warn); font-variant-numeric: tabular-nums; }

/* Gaps */
[data-rolws-isolated] .rol-ws-gaps-list { display: grid; gap: 10px; }
[data-rolws-isolated] .rol-ws-gap {
  display: grid; grid-template-columns: 38px 1fr;
  gap: 16px; padding: 18px 22px;
  background: var(--rolws-white); border: 1px solid var(--rolws-line);
  border-radius: 12px; transition: border-color 0.15s;
}
[data-rolws-isolated] .rol-ws-gap:hover { border-color: rgba(220,38,38,0.32); }
[data-rolws-isolated] .rol-ws-gap-icon {
  width: 38px; height: 38px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 12px;
  background: var(--rolws-warn-soft); color: var(--rolws-warn);
}
[data-rolws-isolated] .rol-ws-gap-icon svg { width: 16px; height: 16px; }
[data-rolws-isolated] .rol-ws-gap-title {
  font-size: 0.94rem !important; font-weight: 600 !important;
  color: var(--rolws-primary-dk) !important;
  margin: 0 0 5px !important; line-height: 1.4 !important;
}
[data-rolws-isolated] .rol-ws-gap-detail {
  font-size: 0.86rem !important; color: var(--rolws-muted) !important;
  line-height: 1.6 !important; margin: 0 !important;
}
[data-rolws-isolated] .rol-ws-gap-detail strong { color: var(--rolws-warn); font-weight: 600; }

[data-rolws-isolated] .rol-ws-no-gaps {
  display: flex; align-items: center; gap: 12px;
  padding: 20px 24px;
  background: var(--rolws-good-soft); border: 1px solid rgba(5,150,105,0.2);
  border-radius: 12px; color: var(--rolws-good);
}
[data-rolws-isolated] .rol-ws-no-gaps svg { width: 22px; height: 22px; flex-shrink: 0; }
[data-rolws-isolated] .rol-ws-no-gaps p { margin: 0 !important; font-size: 0.92rem !important; font-weight: 500 !important; line-height: 1.5 !important; }

/* AI summary */
[data-rolws-isolated] .rol-ws-ai {
  background: linear-gradient(135deg, var(--rolws-primary) 0%, var(--rolws-primary-dk) 100%);
  color: var(--rolws-white);
  padding: 32px 36px; border-radius: 16px;
}
[data-rolws-isolated] .rol-ws-ai-eyebrow {
  display: flex; align-items: center; gap: 10px;
  font-size: 0.72rem; font-weight: 600;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: rgba(255,255,255,0.85); margin-bottom: 16px;
}
[data-rolws-isolated] .rol-ws-ai-eyebrow svg { width: 14px; height: 14px; }
[data-rolws-isolated] .rol-ws-ai-loading { font-size: 0.9rem; color: rgba(255,255,255,0.7); }
[data-rolws-isolated] .rol-ws-ai-headline {
  font-family: 'Poppins', sans-serif !important;
  font-size: clamp(1.1rem, 2.2vw, 1.3rem) !important;
  font-weight: 600 !important; line-height: 1.4 !important;
  margin: 0 0 18px !important; color: var(--rolws-white) !important;
}
[data-rolws-isolated] .rol-ws-ai-finding {
  display: grid; grid-template-columns: 24px 1fr; gap: 12px;
  padding: 14px 0; border-top: 1px solid rgba(255,255,255,0.16);
}
[data-rolws-isolated] .rol-ws-ai-finding:last-of-type { border-bottom: 1px solid rgba(255,255,255,0.16); }
[data-rolws-isolated] .rol-ws-ai-finding .marker {
  display: inline-flex; align-items: center; justify-content: center;
  width: 24px; height: 24px;
  background: rgba(255,255,255,0.18); border-radius: 50%;
  color: var(--rolws-white); font-size: 0.72rem; font-weight: 700;
}
[data-rolws-isolated] .rol-ws-ai-finding .label {
  font-size: 0.9rem; font-weight: 600;
  color: var(--rolws-white); display: block; margin-bottom: 3px;
}
[data-rolws-isolated] .rol-ws-ai-finding .detail { font-size: 0.84rem; color: rgba(255,255,255,0.78); line-height: 1.5; }
[data-rolws-isolated] .rol-ws-ai-urgency {
  margin-top: 16px !important;
  font-size: 0.86rem !important;
  color: rgba(255,255,255,0.92) !important;
  line-height: 1.55 !important;
  padding: 12px 18px !important;
  background: rgba(255,255,255,0.08);
  border-radius: 8px;
  border-left: 3px solid var(--rolws-accent);
}

/* Action row (Print / Email) */
[data-rolws-isolated] .rol-ws-actions {
  margin-top: 24px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
[data-rolws-isolated] .rol-ws-action-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 18px;
  background: var(--rolws-white);
  color: var(--rolws-primary);
  border: 1px solid rgba(27,74,145,0.25);
  border-radius: 10px;
  font-family: 'Poppins', sans-serif;
  font-size: 0.84rem; font-weight: 600;
  cursor: pointer;
  transition: background 0.18s, border-color 0.18s, transform 0.08s;
}
[data-rolws-isolated] .rol-ws-action-btn:hover {
  background: var(--rolws-primary-lt);
  border-color: var(--rolws-primary);
}
[data-rolws-isolated] .rol-ws-action-btn:active { transform: translateY(1px); }
[data-rolws-isolated] .rol-ws-action-btn svg {
  width: 16px; height: 16px; color: var(--rolws-primary);
}

/* Print fallback: hide the form + nav + actions, keep only the result */
@media print {
  [data-rolws-isolated] .rol-ws-brand,
  [data-rolws-isolated] .rol-ws-intro,
  [data-rolws-isolated] .rol-ws-stepper,
  [data-rolws-isolated] .rol-ws-form,
  [data-rolws-isolated] .rol-ws-actions,
  [data-rolws-isolated] .rol-ws-final-cta a { display: none !important; }
  [data-rolws-isolated] .rol-ws-acc .rol-ws-acc-body { display: block !important; }
  [data-rolws-isolated] { background: #fff !important; }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* Final CTA */
[data-rolws-isolated] .rol-ws-final-cta {
  margin-top: 28px;
  padding: 32px 36px;
  background: var(--rolws-primary-lt);
  border: 1px solid rgba(27,74,145,0.18);
  border-radius: 16px;
  display: grid; grid-template-columns: 1fr auto; gap: 28px; align-items: center;
}
[data-rolws-isolated] .rol-ws-final-cta-text {
  font-family: 'Poppins', sans-serif !important;
  font-size: 1.05rem !important; font-weight: 500 !important;
  color: var(--rolws-primary-dk) !important;
  line-height: 1.5 !important; margin: 0 !important;
}
[data-rolws-isolated] .rol-ws-final-cta-text strong { font-weight: 700; color: var(--rolws-primary); }
[data-rolws-isolated] .rol-ws-final-cta a {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 13px 24px;
  background: var(--rolws-primary); color: var(--rolws-white) !important;
  text-decoration: none !important; border-radius: 12px;
  font-size: 0.9rem; font-weight: 600; letter-spacing: 0;
  transition: background 0.18s, box-shadow 0.22s, transform 0.1s;
  box-shadow: var(--rolws-shadow-btn); white-space: nowrap;
}
[data-rolws-isolated] .rol-ws-final-cta a:hover {
  background: var(--rolws-primary-dk);
  box-shadow: var(--rolws-shadow-btn-h);
  transform: translateY(-1px);
}
[data-rolws-isolated] .rol-ws-final-cta a:active { transform: translateY(0); }
[data-rolws-isolated] .rol-ws-final-cta a svg { width: 14px; height: 14px; color: var(--rolws-white); }

[data-rolws-isolated] .rol-ws-disclaimer {
  margin-top: 18px !important;
  font-size: 0.74rem !important; color: var(--rolws-muted) !important;
  text-align: center !important; font-style: normal !important;
}

/* ── TWO-COLUMN LAYOUT (form left, report right) ─────────
   Activates on ≥1024px viewports AND only AFTER a report has been
   generated — that's when the JS adds `rol-ws-has-result` to the wrap.
   Until then, the original single-column centered flow is preserved.
   Below 1024px the layout always stays single-column. */
@media (min-width: 1024px) {
  [data-rolws-isolated].rol-ws-wrap.rol-ws-has-result {
    max-width: 1280px !important;
  }
  [data-rolws-isolated].rol-ws-wrap.rol-ws-has-result .rol-ws-card-shell {
    display: grid;
    grid-template-columns: 420px minmax(0, 1fr);
    column-gap: 36px;
    row-gap: 0;
    align-items: start;
  }
  [data-rolws-isolated].rol-ws-wrap.rol-ws-has-result .rol-ws-brand,
  [data-rolws-isolated].rol-ws-wrap.rol-ws-has-result .rol-ws-intro,
  [data-rolws-isolated].rol-ws-wrap.rol-ws-has-result .rol-ws-stepper {
    grid-column: 1 / -1;
  }
  [data-rolws-isolated].rol-ws-wrap.rol-ws-has-result .rol-ws-form {
    grid-column: 1;
    position: sticky;
    top: 24px;
    max-height: calc(100vh - 48px);
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 6px;
    scrollbar-width: thin;
    scrollbar-color: var(--rolws-line) transparent;
  }
  [data-rolws-isolated].rol-ws-wrap.rol-ws-has-result .rol-ws-form::-webkit-scrollbar { width: 6px; }
  [data-rolws-isolated].rol-ws-wrap.rol-ws-has-result .rol-ws-form::-webkit-scrollbar-thumb { background: var(--rolws-line); border-radius: 3px; }
  [data-rolws-isolated].rol-ws-wrap.rol-ws-has-result .rol-ws-result {
    grid-column: 2;
    margin-top: 0 !important;
    min-width: 0;
  }
  /* The form's section panels can be tight at 420px — pair fields stack */
  [data-rolws-isolated].rol-ws-wrap.rol-ws-has-result .rol-ws-grid-2 { grid-template-columns: 1fr; }
}

/* ── RESPONSIVE ─────────────────────────────────────────── */
@media (max-width: 820px) {
  .rol-ws-stage,
  .rol-ws-stage.rol-ws-stage--full { padding: 24px 14px; }
  [data-rolws-isolated].rol-ws-wrap .rol-ws-card-shell {
    padding: 32px 24px 32px;
    border-radius: 16px;
  }
  [data-rolws-isolated].rol-ws-wrap .rol-ws-card-shell::before { left: 24px; right: 24px; }
  [data-rolws-isolated] .rol-ws-brand { flex-direction: column; align-items: flex-start; gap: 10px; margin-bottom: 28px; }
  [data-rolws-isolated] .rol-ws-brand-img { height: 38px; }
  [data-rolws-isolated] .rol-ws-intro { margin-bottom: 32px; }
  [data-rolws-isolated] .rol-ws-stepper { margin-bottom: 36px; }
  [data-rolws-isolated] .rol-ws-step-label { display: none; }
  [data-rolws-isolated] .rol-ws-step.active .rol-ws-step-label { display: inline; }
  [data-rolws-isolated] .rol-ws-step-line { margin-top: 17px; }
  [data-rolws-isolated] .rol-ws-panel + .rol-ws-panel { margin-top: 36px; padding-top: 36px; }
  [data-rolws-isolated] .rol-ws-panel-head { margin-bottom: 28px; }
  [data-rolws-isolated] .rol-ws-panel-title { font-size: 1.3rem !important; }
  [data-rolws-isolated] .rol-ws-grid-2,
  [data-rolws-isolated] .rol-ws-grid-3 { grid-template-columns: 1fr; gap: 24px; }
  [data-rolws-isolated] .rol-ws-input { font-size: 1.2rem !important; }
  [data-rolws-isolated] .rol-ws-prefix { font-size: 1.15rem; }
  [data-rolws-isolated] .rol-ws-submit-row { margin-top: 36px; padding-top: 32px; }
  [data-rolws-isolated] .rol-ws-generate-btn { padding: 14px 28px !important; font-size: 0.95rem !important; width: 100%; }
  [data-rolws-isolated] .rol-ws-hero-stats { grid-template-columns: 1fr; }
  [data-rolws-isolated] .rol-ws-hero-divider { display: none; }
  [data-rolws-isolated] .rol-ws-hero-stat + .rol-ws-hero-stat { border-top: 1px solid var(--rolws-line); }
  [data-rolws-isolated] .rol-ws-flow { grid-template-columns: 1fr; }
  [data-rolws-isolated] .rol-ws-cg-grid.two { grid-template-columns: 1fr; }
  [data-rolws-isolated] .rol-ws-final-cta { grid-template-columns: 1fr; padding: 22px; }
  [data-rolws-isolated] .rol-ws-final-cta a { width: 100%; justify-content: center; }
  [data-rolws-isolated] .rol-ws-cg-head { flex-direction: column; align-items: flex-start; }
  [data-rolws-isolated] .rol-ws-cg-head .amt { font-size: 1.3rem; }
  [data-rolws-isolated] .rol-ws-acc-trigger { padding: 16px 16px !important; gap: 10px !important; }
  [data-rolws-isolated] .rol-ws-section-rule { display: none; }
  [data-rolws-isolated] .rol-ws-section-title { white-space: normal; flex: 1; }
  [data-rolws-isolated] .rol-ws-acc-content { padding: 16px 16px 18px; }
  [data-rolws-isolated] .rol-ws-acc-intro { margin-top: 24px; }
}
@media (max-width: 820px) {
  [data-rolws-isolated] .rol-ws-estate-stats { grid-template-columns: 1fr; }
  [data-rolws-isolated] .rol-ws-custom-row {
    grid-template-columns: 1fr 40px;
    grid-template-areas: "label remove" "val val";
    gap: 8px;
  }
  [data-rolws-isolated] .rol-ws-custom-label  { grid-area: label; }
  [data-rolws-isolated] .rol-ws-custom-val    { grid-area: val; }
  [data-rolws-isolated] .rol-ws-remove-btn    { grid-area: remove; }
  [data-rolws-isolated] .rol-ws-flow-total {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }
}
@media (max-width: 480px) {
  [data-rolws-isolated] .rol-ws-asset { grid-template-columns: 38px 1fr; }
  [data-rolws-isolated] .rol-ws-asset-figures { grid-column: 1 / -1; text-align: left; }
  [data-rolws-isolated] .rol-ws-wo-total { margin-left: 0; }
  [data-rolws-isolated] .rol-ws-section-meta { display: none; }
}

/* ──────────────────────────────────────────────────────────────
   V8 REPORT — ported verbatim from wealth-snapshot-incorporated (8).html
   All rules scoped under .rol-ws-v8-report so styles never bleed
   into the form above. Brand variables are re-defined at the wrapper
   so v8's `var(--navy)` etc. resolve correctly even inside the plugin.
   ────────────────────────────────────────────────────────────── */

.rol-ws-v8-report {
  --navy:     #18509A;
  --navy-dk:  #0F3570;
  --navy-lt:  #E8EFF8;
  --bg:       #F7F9FC;
  --text:     #1A2640;
  --muted:    #6B7A90;
  --border:   #DDE5EF;
  --gold:     #C8A96E;
  --red:      #b03030;
  --red-lt:   #fdf2f2;
  --green:    #1e7a47;
  --green-lt: #f0faf4;

  font-family: 'DM Sans', 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  color: var(--text);
  line-height: 1.55;
}
.rol-ws-v8-report *,
.rol-ws-v8-report *::before,
.rol-ws-v8-report *::after { box-sizing: border-box; }
.rol-ws-v8-report button {
  font-family: inherit;
  border: 0;
  background: transparent;
  cursor: pointer;
  color: inherit;
}
.rol-ws-v8-report p { margin: 0; }
.rol-ws-v8-report strong { font-weight: 700; }
.rol-ws-v8-report em { font-style: italic; }
.rol-ws-v8-report a { color: inherit; }

.rol-ws-v8-report .chart {
  background: white;
  border: 1px solid var(--border);
  border-radius: 6px;
  overflow: hidden;
  animation: rolws-v8-fadeIn 0.3s ease;
}
@keyframes rolws-v8-fadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

.rol-ws-v8-report .clabel {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
  padding: 6px 16px;
  background: var(--bg);
  border-bottom: 1px solid var(--border);
  display: block;
}

.rol-ws-v8-report .income-tag {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 8px;
  display: block;
}

.rol-ws-v8-report .iline {
  display: flex;
  justify-content: space-between;
  padding: 3px 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  font-size: 0.77rem;
}
.rol-ws-v8-report .iline:last-child { border-bottom: none; }
.rol-ws-v8-report .iline.total {
  border-top: 1px solid var(--border);
  margin-top: 3px;
  padding-top: 5px;
  font-weight: 600;
  border-bottom: none;
}
.rol-ws-v8-report .il { color: var(--muted); }
.rol-ws-v8-report .iv.r    { color: var(--red); }
.rol-ws-v8-report .iv.g    { color: var(--green); }
.rol-ws-v8-report .iv.gold { color: #7a5c20; }
.rol-ws-v8-report .iv.big-r {
  color: var(--red);
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem;
  font-weight: 700;
}
.rol-ws-v8-report .iv.big-g {
  color: var(--green);
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem;
  font-weight: 700;
}

.rol-ws-v8-report .arow {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  padding: 10px 14px;
  border-bottom: 1px solid var(--border);
  align-items: center;
}
.rol-ws-v8-report .arow:last-child { border-bottom: none; }
.rol-ws-v8-report .arow.flagged { background: var(--red-lt); }
.rol-ws-v8-report .arow.exempt  { background: var(--green-lt); }
.rol-ws-v8-report .aname {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--text);
}
.rol-ws-v8-report .asub {
  font-size: 0.67rem;
  color: var(--muted);
  margin-top: 1px;
}
.rol-ws-v8-report .aval {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1rem;
  font-weight: 700;
  color: var(--navy);
  text-align: right;
}
.rol-ws-v8-report .apill { text-align: right; }
.rol-ws-v8-report .pill {
  display: inline-block;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 2px 6px;
  border-radius: 2px;
}
.rol-ws-v8-report .pill.r { background: rgba(176, 48, 48, 0.1); color: var(--red); }
.rol-ws-v8-report .pill.y { background: rgba(200, 169, 110, 0.15); color: #7a5c20; }
.rol-ws-v8-report .pill.g { background: var(--green-lt); color: var(--green); }
.rol-ws-v8-report .pill.m { background: var(--navy-lt); color: var(--muted); }

.rol-ws-v8-report .pass-row {
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
}
.rol-ws-v8-report .pass-row.over { background: var(--red-lt); }
.rol-ws-v8-report .pass-header {
  display: flex;
  justify-content: space-between;
  margin-bottom: 8px;
}
.rol-ws-v8-report .ph { font-size: 0.74rem; font-weight: 600; color: var(--text); }
.rol-ws-v8-report .pt { font-size: 0.74rem; font-weight: 700; }
.rol-ws-v8-report .pt.red { color: var(--red); }
.rol-ws-v8-report .pt.ok  { color: var(--green); }

.rol-ws-v8-report .bar {
  background: var(--navy-lt);
  border-radius: 3px;
  height: 8px;
  position: relative;
}
.rol-ws-v8-report .bfill {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  border-radius: 3px;
}
.rol-ws-v8-report .bfill.safe   { background: var(--navy); }
.rol-ws-v8-report .bfill.danger { background: var(--red); }
.rol-ws-v8-report .bmark {
  position: absolute;
  top: -3px;
  width: 2px;
  height: 14px;
  background: var(--gold);
}
.rol-ws-v8-report .blabels {
  display: flex;
  justify-content: space-between;
  margin-top: 5px;
  font-size: 0.64rem;
  color: var(--muted);
}
.rol-ws-v8-report .blabels .lim { color: #7a5c20; font-weight: 600; }
.rol-ws-v8-report .pass-note    { font-size: 0.7rem; margin-top: 6px; }
.rol-ws-v8-report .pass-note.r  { color: var(--red); }
.rol-ws-v8-report .pass-note.g  { color: var(--green); }

.rol-ws-v8-report .acc-list { border-top: 1px solid var(--border); }
.rol-ws-v8-report .acc-item { border-bottom: 1px solid var(--border); }
.rol-ws-v8-report .acc-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  background: white;
  border: none;
  cursor: pointer;
  text-align: left;
  font-family: 'DM Sans', sans-serif;
  transition: background 0.12s;
}
.rol-ws-v8-report .acc-trigger:hover { background: var(--bg); }
.rol-ws-v8-report .acc-dot { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; }
.rol-ws-v8-report .acc-dot.red { background: var(--red); }
.rol-ws-v8-report .acc-title {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text);
  flex: 1;
}
.rol-ws-v8-report .acc-chevron {
  font-size: 0.7rem;
  color: var(--muted);
  transition: transform 0.2s;
  flex-shrink: 0;
}
.rol-ws-v8-report .acc-item.open .acc-chevron { transform: rotate(180deg); }
.rol-ws-v8-report .acc-body {
  display: none;
  padding: 0 14px 14px 30px;
  font-size: 0.76rem;
  color: var(--muted);
  line-height: 1.65;
}
.rol-ws-v8-report .acc-body strong { color: var(--red); font-weight: 600; }
.rol-ws-v8-report .acc-item.open .acc-body { display: block; }

/* HNW estate bar */
.rol-ws-v8-report .estate-bar-wrap {
  padding: 16px;
  border-bottom: 1px solid var(--border);
}
.rol-ws-v8-report .estate-stats {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 10px;
  margin-bottom: 14px;
}
.rol-ws-v8-report .estate-stat {
  text-align: center;
  padding: 12px 8px;
  border-radius: 4px;
}
.rol-ws-v8-report .estate-stat.total { background: var(--navy-lt); }
.rol-ws-v8-report .estate-stat.tax   { background: var(--red-lt); }
.rol-ws-v8-report .estate-stat.fam   { background: var(--green-lt); }
.rol-ws-v8-report .estate-stat-lbl {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  display: block;
  margin-bottom: 4px;
}
.rol-ws-v8-report .estate-stat.total .estate-stat-lbl { color: var(--navy); }
.rol-ws-v8-report .estate-stat.tax   .estate-stat-lbl { color: var(--red); }
.rol-ws-v8-report .estate-stat.fam   .estate-stat-lbl { color: var(--green); }
.rol-ws-v8-report .estate-stat-val {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.3rem;
  font-weight: 700;
  display: block;
}
.rol-ws-v8-report .estate-stat.total .estate-stat-val { color: var(--navy-dk); }
.rol-ws-v8-report .estate-stat.tax   .estate-stat-val { color: var(--red); }
.rol-ws-v8-report .estate-stat.fam   .estate-stat-val { color: var(--green); }
.rol-ws-v8-report .estate-split-bar {
  height: 12px;
  border-radius: 4px;
  overflow: hidden;
  display: flex;
}
.rol-ws-v8-report .esb-fam { background: var(--green); }
.rol-ws-v8-report .esb-tax { background: var(--red); }
.rol-ws-v8-report .estate-split-labels {
  display: flex;
  justify-content: space-between;
  margin-top: 5px;
  font-size: 0.68rem;
  font-weight: 600;
}
.rol-ws-v8-report .esl-g { color: var(--green); }
.rol-ws-v8-report .esl-r { color: var(--red); }

/* Hero snapshot header */
.rol-ws-v8-report .snap-hero {
  background: var(--navy-dk);
  border-radius: 6px 6px 0 0;
  padding: 24px 24px 20px;
  margin-bottom: 0;
}
.rol-ws-v8-report .snap-hero-eyebrow {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
  display: block;
  margin-bottom: 10px;
}
.rol-ws-v8-report .snap-hero-income {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  font-weight: 700;
  color: white;
  line-height: 1.1;
  margin-bottom: 6px;
}
.rol-ws-v8-report .snap-hero-income em {
  font-style: italic;
  color: rgba(255, 255, 255, 0.65);
  font-size: 0.7em;
}
.rol-ws-v8-report .snap-hero-date {
  font-size: 0.72rem;
  color: rgba(255, 255, 255, 0.4);
}

.rol-ws-v8-report .snap-bl-label {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--navy);
  display: block;
  margin-bottom: 6px;
}
.rol-ws-v8-report .snap-bl-text {
  font-size: 0.84rem;
  color: var(--text);
  line-height: 1.6;
}
.rol-ws-v8-report .snap-bl-text strong { color: var(--navy-dk); }

.rol-ws-v8-report .inc-panel { border-bottom: 1px solid var(--border); }
.rol-ws-v8-report .inc-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border: none;
  cursor: pointer;
  font-family: 'DM Sans', sans-serif;
  text-align: left;
  transition: background 0.12s;
}
.rol-ws-v8-report .inc-trigger:hover { opacity: 0.9; }
.rol-ws-v8-report .inc-trigger-left {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.rol-ws-v8-report .inc-trigger-label {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.rol-ws-v8-report .inc-trigger-val {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem;
  font-weight: 700;
}
.rol-ws-v8-report .inc-chevron {
  font-size: 0.7rem;
  transition: transform 0.2s;
  flex-shrink: 0;
  margin-left: 12px;
}
.rol-ws-v8-report .inc-panel.open .inc-chevron { transform: rotate(180deg); }
.rol-ws-v8-report .inc-body {
  display: none;
  padding: 14px 16px;
}
.rol-ws-v8-report .inc-panel.open .inc-body { display: block; }

/* Print + email button strip inside the report */
.rol-ws-v8-report .rol-ws-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 14px 16px;
  background: white;
  border-bottom: 1px solid var(--border);
  justify-content: flex-end;
}
.rol-ws-v8-report .rol-ws-actions .rol-ws-action-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 16px;
  background: var(--navy);
  color: #fff;
  font-size: 0.78rem;
  font-weight: 600;
  border-radius: 4px;
  cursor: pointer;
  border: 0;
  transition: background 0.15s ease;
}
.rol-ws-v8-report .rol-ws-actions .rol-ws-action-btn:hover { background: var(--navy-dk); }
.rol-ws-v8-report .rol-ws-actions .rol-ws-action-btn svg { width: 16px; height: 16px; }

/* Print isolation */
@media print {
  .rol-ws-v8-report .rol-ws-actions { display: none !important; }
  .rol-ws-v8-report .inc-panel,
  .rol-ws-v8-report .acc-item       { break-inside: avoid; }
  .rol-ws-v8-report .chart          { border: none !important; box-shadow: none !important; }
  .rol-ws-v8-report .snap-hero {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .rol-ws-v8-report * {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}

@media (max-width: 760px) {
  .rol-ws-v8-report .estate-stats { grid-template-columns: 1fr; }
}

/* ─────────────────────────────────────────────────────────────
   V8 REPORT — VERBATIM CSS (scoped to .v8-report-scope)
   Copied from wealth-snapshot-incorporated (8).html lines 13–1196.
   Every selector is prefixed with `.v8-report-scope ` so the v8
   classnames .chart / .snap-hero / .acc-item etc. do not bleed
   into the plugin form or theme styles.
   ───────────────────────────────────────────────────────────── */
.v8-report-scope {
  --navy: #18509A;
  --navy-dk: #0F3570;
  --navy-lt: #E8EFF8;
  --bg: #F7F9FC;
  --text: #1A2640;
  --muted: #6B7A90;
  --border: #DDE5EF;
  --gold: #C8A96E;
  --red: #b03030;
  --red-lt: #fdf2f2;
  --green: #1e7a47;
  --green-lt: #f0faf4;
  font-family: 'DM Sans', 'Poppins', sans-serif;
  color: var(--text);
  line-height: 1.5;
  display: block;
}
.v8-report-scope * { box-sizing: border-box; }

.v8-report-scope .chart {
  background: white;
  border: 1px solid var(--border);
  border-radius: 6px;
  overflow: hidden;
  animation: rolwsV8FadeIn 0.3s ease;
}
@keyframes rolwsV8FadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

.v8-report-scope .clabel {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
  padding: 6px 16px;
  background: var(--bg);
  border-bottom: 1px solid var(--border);
  display: block;
}

.v8-report-scope .income-tag {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 8px;
  display: block;
}

.v8-report-scope .iline {
  display: flex;
  justify-content: space-between;
  padding: 3px 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  font-size: 0.77rem;
}
.v8-report-scope .iline:last-child { border-bottom: none; }
.v8-report-scope .iline.total {
  border-top: 1px solid var(--border);
  margin-top: 3px;
  padding-top: 5px;
  font-weight: 600;
  border-bottom: none;
}
.v8-report-scope .il { color: var(--muted); }
.v8-report-scope .iv.r { color: var(--red); }
.v8-report-scope .iv.g { color: var(--green); }
.v8-report-scope .iv.gold { color: #7a5c20; }
.v8-report-scope .iv.big-r {
  color: var(--red);
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem;
  font-weight: 700;
}
.v8-report-scope .iv.big-g {
  color: var(--green);
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem;
  font-weight: 700;
}

.v8-report-scope .arow {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  padding: 10px 14px;
  border-bottom: 1px solid var(--border);
  align-items: center;
}
.v8-report-scope .arow:last-child { border-bottom: none; }
.v8-report-scope .arow.flagged { background: var(--red-lt); }
.v8-report-scope .arow.exempt { background: var(--green-lt); }

.v8-report-scope .aname {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--text);
}
.v8-report-scope .asub {
  font-size: 0.67rem;
  color: var(--muted);
  margin-top: 1px;
}
.v8-report-scope .aval {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1rem;
  font-weight: 700;
  color: var(--navy);
  text-align: right;
}
.v8-report-scope .apill { text-align: right; }

.v8-report-scope .pill {
  display: inline-block;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 2px 6px;
  border-radius: 2px;
}
.v8-report-scope .pill.r { background: rgba(176, 48, 48, 0.1); color: var(--red); }
.v8-report-scope .pill.y { background: rgba(200, 169, 110, 0.15); color: #7a5c20; }
.v8-report-scope .pill.g { background: var(--green-lt); color: var(--green); }
.v8-report-scope .pill.m { background: var(--navy-lt); color: var(--muted); }

.v8-report-scope .pass-row {
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
}
.v8-report-scope .pass-row.over { background: var(--red-lt); }
.v8-report-scope .pass-header {
  display: flex;
  justify-content: space-between;
  margin-bottom: 8px;
}
.v8-report-scope .ph { font-size: 0.74rem; font-weight: 600; color: var(--text); }
.v8-report-scope .pt { font-size: 0.74rem; font-weight: 700; }
.v8-report-scope .pt.red { color: var(--red); }
.v8-report-scope .pt.ok  { color: var(--green); }

.v8-report-scope .bar {
  background: var(--navy-lt);
  border-radius: 3px;
  height: 8px;
  position: relative;
}
.v8-report-scope .bfill {
  position: absolute;
  left: 0; top: 0;
  height: 100%;
  border-radius: 3px;
}
.v8-report-scope .bfill.safe { background: var(--navy); }
.v8-report-scope .bfill.danger { background: var(--red); }
.v8-report-scope .bmark {
  position: absolute;
  top: -3px;
  width: 2px;
  height: 14px;
  background: var(--gold);
}
.v8-report-scope .blabels {
  display: flex;
  justify-content: space-between;
  margin-top: 5px;
  font-size: 0.64rem;
  color: var(--muted);
}
.v8-report-scope .blabels .lim { color: #7a5c20; font-weight: 600; }

.v8-report-scope .pass-note { font-size: 0.7rem; margin-top: 6px; }
.v8-report-scope .pass-note.r { color: var(--red); }
.v8-report-scope .pass-note.g { color: var(--green); }

.v8-report-scope .acc-list {
  border-top: 1px solid var(--border);
}
.v8-report-scope .acc-item {
  border-bottom: 1px solid var(--border);
}
.v8-report-scope .acc-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  background: white;
  border: none;
  cursor: pointer;
  text-align: left;
  font-family: 'DM Sans', sans-serif;
  transition: background 0.12s;
}
.v8-report-scope .acc-trigger:hover { background: var(--bg); }
.v8-report-scope .acc-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
}
.v8-report-scope .acc-dot.red { background: var(--red); }
.v8-report-scope .acc-title {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text);
  flex: 1;
}
.v8-report-scope .acc-chevron {
  font-size: 0.7rem;
  color: var(--muted);
  transition: transform 0.2s;
  flex-shrink: 0;
}
.v8-report-scope .acc-item.open .acc-chevron { transform: rotate(180deg); }
.v8-report-scope .acc-body {
  display: none;
  padding: 0 14px 14px 30px;
  font-size: 0.76rem;
  color: var(--muted);
  line-height: 1.65;
}
.v8-report-scope .acc-body strong { color: var(--red); font-weight: 600; }
.v8-report-scope .acc-item.open .acc-body { display: block; }

.v8-report-scope .ai-summary {
  border-top: 1px solid var(--border);
  padding: 14px 16px;
  background: var(--navy-lt);
}

/* HNW estate split bar */
.v8-report-scope .estate-bar-wrap {
  padding: 16px;
  border-bottom: 1px solid var(--border);
}
.v8-report-scope .estate-stats {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 10px;
  margin-bottom: 14px;
}
.v8-report-scope .estate-stat {
  text-align: center;
  padding: 12px 8px;
  border-radius: 4px;
}
.v8-report-scope .estate-stat.total { background: var(--navy-lt); }
.v8-report-scope .estate-stat.tax   { background: var(--red-lt); }
.v8-report-scope .estate-stat.fam   { background: var(--green-lt); }
.v8-report-scope .estate-stat-lbl {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  display: block;
  margin-bottom: 4px;
}
.v8-report-scope .estate-stat.total .estate-stat-lbl { color: var(--navy); }
.v8-report-scope .estate-stat.tax   .estate-stat-lbl { color: var(--red); }
.v8-report-scope .estate-stat.fam   .estate-stat-lbl { color: var(--green); }
.v8-report-scope .estate-stat-val {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.3rem;
  font-weight: 700;
  display: block;
}
.v8-report-scope .estate-stat.total .estate-stat-val { color: var(--navy-dk); }
.v8-report-scope .estate-stat.tax   .estate-stat-val { color: var(--red); }
.v8-report-scope .estate-stat.fam   .estate-stat-val { color: var(--green); }
.v8-report-scope .estate-split-bar {
  height: 12px;
  border-radius: 4px;
  overflow: hidden;
  display: flex;
}
.v8-report-scope .esb-fam { background: var(--green); }
.v8-report-scope .esb-tax { background: var(--red); }
.v8-report-scope .estate-split-labels {
  display: flex;
  justify-content: space-between;
  margin-top: 5px;
  font-size: 0.68rem;
  font-weight: 600;
}
.v8-report-scope .esl-g { color: var(--green); }
.v8-report-scope .esl-r { color: var(--red); }

/* Hero snapshot header */
.v8-report-scope .snap-hero {
  background: var(--navy-dk);
  border-radius: 6px 6px 0 0;
  padding: 24px 24px 20px;
  margin-bottom: 0;
}
.v8-report-scope .snap-hero-eyebrow {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
  display: block;
  margin-bottom: 10px;
}
.v8-report-scope .snap-hero-income {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  font-weight: 700;
  color: white;
  line-height: 1.1;
  margin-bottom: 6px;
}
.v8-report-scope .snap-hero-income em {
  font-style: italic;
  color: rgba(255, 255, 255, 0.65);
  font-size: 0.7em;
}
.v8-report-scope .snap-hero-date {
  font-size: 0.72rem;
  color: rgba(255, 255, 255, 0.4);
}

.v8-report-scope .snap-bl-text {
  font-size: 0.84rem;
  color: var(--text);
  line-height: 1.6;
}
.v8-report-scope .snap-bl-text strong { color: var(--navy-dk); }

.v8-report-scope .inc-panel {
  border-bottom: 1px solid var(--border);
}
.v8-report-scope .inc-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border: none;
  cursor: pointer;
  font-family: 'DM Sans', sans-serif;
  text-align: left;
  transition: background 0.12s;
}
.v8-report-scope .inc-trigger:hover { opacity: 0.9; }
.v8-report-scope .inc-trigger-left {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.v8-report-scope .inc-trigger-label {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.v8-report-scope .inc-trigger-val {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem;
  font-weight: 700;
}
.v8-report-scope .inc-chevron {
  font-size: 0.7rem;
  transition: transform 0.2s;
  flex-shrink: 0;
  margin-left: 12px;
}
.v8-report-scope .inc-panel.open .inc-chevron { transform: rotate(180deg); }
.v8-report-scope .inc-body {
  display: none;
  padding: 14px 16px;
}
.v8-report-scope .inc-panel.open .inc-body { display: block; }

@media print {
  .v8-report-scope .rol-ws-v8-actions { display: none !important; }
  .v8-report-scope .inc-panel,
  .v8-report-scope .acc-item { break-inside: avoid; }
  .v8-report-scope .chart { border: none !important; box-shadow: none !important; }
  .v8-report-scope .snap-hero {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .v8-report-scope * {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}

@media (max-width: 760px) {
  .v8-report-scope .estate-stats { grid-template-columns: 1fr; }
}

/* ─────────────────────────────────────────────
   OPT-IN MODAL (shown before Print / Email)
   ───────────────────────────────────────────── */
.rol-ws-optin-overlay {
  position: fixed; inset: 0;
  background: rgba(15, 27, 51, 0.62);
  backdrop-filter: blur(4px);
  display: flex; align-items: center; justify-content: center;
  z-index: 100000;
  padding: 20px;
  font-family: 'Poppins', sans-serif;
  animation: rolws-optin-fade 180ms ease-out;
}
.rol-ws-optin-overlay[hidden] { display: none; }
@keyframes rolws-optin-fade {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.rol-ws-optin-modal {
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 20px 60px rgba(15, 27, 51, 0.35);
  max-width: 460px; width: 100%;
  padding: 32px 30px 26px;
  position: relative;
  animation: rolws-optin-pop 200ms cubic-bezier(0.34, 1.56, 0.64, 1);
}
@keyframes rolws-optin-pop {
  from { opacity: 0; transform: translateY(12px) scale(0.96); }
  to   { opacity: 1; transform: translateY(0)    scale(1);    }
}
.rol-ws-optin-close {
  position: absolute; top: 10px; right: 14px;
  background: transparent; border: 0;
  font-size: 26px; line-height: 1;
  color: #6B7A90; cursor: pointer;
  padding: 4px 8px;
  border-radius: 6px;
  transition: background 120ms, color 120ms;
}
.rol-ws-optin-close:hover { background: #F0F4F9; color: #1A2640; }
.rol-ws-optin-title {
  margin: 0 0 6px;
  font-family: 'Poppins', sans-serif;
  font-size: 1.35rem; font-weight: 700;
  color: #0F1B33;
  letter-spacing: -0.01em;
}
.rol-ws-optin-sub {
  margin: 0 0 22px;
  font-size: 0.86rem; line-height: 1.5;
  color: #6B7A90;
}
.rol-ws-optin-form {
  display: flex; flex-direction: column; gap: 14px;
}
.rol-ws-optin-field {
  display: flex; flex-direction: column; gap: 5px;
}
.rol-ws-optin-field label {
  font-size: 0.74rem; font-weight: 600;
  color: #1A2640;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.rol-ws-optin-opt {
  font-weight: 400;
  text-transform: none;
  color: #9BA8BC;
  letter-spacing: 0;
}
.rol-ws-optin-field input {
  font-family: 'Poppins', sans-serif;
  font-size: 0.92rem;
  padding: 11px 14px;
  border: 1px solid #DDE5EF;
  border-radius: 8px;
  background: #F7F9FC;
  color: #1A2640;
  transition: border-color 150ms, background 150ms, box-shadow 150ms;
  width: 100%; box-sizing: border-box;
}
.rol-ws-optin-field input:focus {
  outline: none;
  border-color: #18509A;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(24, 80, 154, 0.12);
}
.rol-ws-optin-error {
  margin: 0;
  font-size: 0.78rem;
  color: #b03030;
  background: rgba(176, 48, 48, 0.06);
  padding: 8px 12px;
  border-radius: 6px;
  border-left: 3px solid #b03030;
}
.rol-ws-optin-actions {
  display: flex; justify-content: flex-end;
  margin-top: 6px;
}
.rol-ws-optin-submit {
  font-family: 'Poppins', sans-serif;
  font-size: 0.92rem; font-weight: 600;
  padding: 12px 28px;
  background: #18509A;
  color: #fff;
  border: 0;
  border-radius: 8px;
  cursor: pointer;
  transition: background 150ms, transform 80ms;
}
.rol-ws-optin-submit:hover:not(:disabled) { background: #0F3570; }
.rol-ws-optin-submit:active:not(:disabled) { transform: translateY(1px); }
.rol-ws-optin-submit:disabled {
  background: #9BA8BC;
  cursor: not-allowed;
}
