/* ============================================================================
   Smart Residency Renewal Center — renewal.css
   One continuous advisor workspace. The frame is painted once and stays put;
   only the conversation inside it moves. Journey Map = orientation (Full Map,
   One Lamp). Main panel = the advisor's desk. Transitions are conversational,
   never page-like. All colour/type derives from the shared Spain Assistant
   tokens declared in :root (renewal-center.html).
   ============================================================================ */

/* ---------------------------------------------------------------------------
   1. WORKSPACE FRAME  — the room. Painted once, never reflows between nodes.
   --------------------------------------------------------------------------- */
.rc{
  min-height: calc(100vh - 48px);      /* fills viewport below the shared topnav */
  padding: 2.4rem 2.2rem 5rem;         /* Business Center rhythm */
}
/* Single centered column. Everything inside reads as ONE continuous document:
   a journey header threaded by a gold line down into a workspace that flows
   along the same spine — not independent cards stacked under a legend. */
.rc-shell{
  max-width: 760px;
  margin: 0 auto;
  display: block;
}
.rc-stage{
  position: relative;
  min-height: 56vh;
  outline: none;
}
@media (max-width: 600px){
  .rc{ padding: 1.6rem 1.2rem 3.5rem; }
}

/* One consistent breathing unit between narrative beats — the rhythm that
   makes the whole thing read as a single authored flow. */
.rc-view > * + *{ margin-top: 1.5rem; }

/* ---------------------------------------------------------------------------
   3.6 SEQUENTIAL REVEAL  — beats arrive in sequence, like a narration
       unfolding, rather than a page appearing all at once.
   --------------------------------------------------------------------------- */
.rc-view[data-enter] > *{
  opacity: 0;
  transform: translateY(10px);
  animation: rcReveal .5s cubic-bezier(.22,.61,.36,1) forwards;
}
.rc-view[data-enter] > *:nth-child(1){ animation-delay: .02s; }
.rc-view[data-enter] > *:nth-child(2){ animation-delay: .10s; }
.rc-view[data-enter] > *:nth-child(3){ animation-delay: .18s; }
.rc-view[data-enter] > *:nth-child(4){ animation-delay: .26s; }
.rc-view[data-enter] > *:nth-child(5){ animation-delay: .34s; }
.rc-view[data-enter] > *:nth-child(n+6){ animation-delay: .40s; }
@keyframes rcReveal{ to{ opacity: 1; transform: translateY(0); } }

/* ---------------------------------------------------------------------------
   2. JOURNEY MAP  — orientation, not a progress bar. Full Map, One Lamp.
      Composed as a centered horizontal strip above the workspace.
   --------------------------------------------------------------------------- */
.rc-journey{
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0;
  padding: .4rem 1.1rem 1.6rem;
  margin-bottom: 2.4rem;
  background: none;
  border: 0;
  border-bottom: 1px solid var(--border2);
}
/* the spine flows out of the header, down into the content */
.rc-journey::after{
  content: "";
  position: absolute;
  left: 50%; top: 100%;
  width: 2px; height: 1.4rem;
  transform: translateX(-50%);
  background: linear-gradient(to bottom, rgba(201,168,76,0.35), transparent);
}
.rc-journey[hidden]{ display: none; }
.rc-journey-title{
  width: 100%;
  text-align: center;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted2);
  padding: 0 .3rem 1rem;
}

/* A node: marker + label, laid out horizontally along the centered strip. */
.rc-node{
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .4rem;
  padding: .2rem .9rem;
  background: none;
  border: 0;
  min-width: 78px;
  text-align: center;
  cursor: default;
  font-family: inherit;
  color: var(--muted2);
  transition: color .25s ease;
}
/* connector: a quiet horizontal thread linking the path between nodes */
.rc-node::before{
  content: "";
  position: absolute;
  top: calc(.2rem + 9px);              /* centre of the 18px marker */
  left: 50%;
  width: 100%;
  height: 2px;
  background: var(--border2);
}
.rc-node:last-child::before{ display: none; }

.rc-node-marker{
  flex-shrink: 0;
  width: 18px; height: 18px;
  border-radius: 50%;
  border: 2px solid var(--border);
  background: var(--card2);
  display: grid;
  place-items: center;
  font-size: .6rem;
  color: transparent;
  transition: all .3s ease;
  position: relative;
  z-index: 1;
}
.rc-node-label{
  font-size: .72rem;
  line-height: 1.3;
  font-weight: 500;
}

/* -- DONE: quiet, receded, checked. The advisor has handled it. -- */
.rc-node.is-done{ color: var(--muted); cursor: pointer; }
.rc-node.is-done .rc-node-marker{
  background: rgba(76,175,125,0.16);
  border-color: rgba(76,175,125,0.55);
  color: var(--green);
}
.rc-node.is-done::before{ background: rgba(76,175,125,0.35); }
.rc-node.is-done:hover .rc-node-label{ color: var(--text); }

/* -- ACTIVE: the single lit lamp. The only node that draws the eye. -- */
.rc-node.is-active{ color: var(--text); }
.rc-node.is-active .rc-node-label{ font-weight: 700; color: var(--text); }
.rc-node.is-active .rc-node-marker{
  border-color: var(--gold);
  background: var(--gold);
  box-shadow: 0 0 0 4px rgba(201,168,76,0.18);
  animation: rcLamp 2.6s ease-in-out infinite;
}
@keyframes rcLamp{
  0%,100%{ box-shadow: 0 0 0 4px rgba(201,168,76,0.16); }
  50%    { box-shadow: 0 0 0 6px rgba(201,168,76,0.28); }
}

/* -- WAITING: present, dim — waiting, never "locked". -- */
.rc-node.is-waiting{ color: var(--muted2); opacity: .72; }

/* Small screens: let the centered strip scroll horizontally if space is tight. */
@media (max-width: 600px){
  .rc-journey{
    justify-content: flex-start;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    margin-bottom: 1.5rem;
  }
  .rc-journey::-webkit-scrollbar{ display: none; }
  .rc-journey-title{ display: none; }
  .rc-node{ min-width: 66px; padding: .2rem .6rem; }
  .rc-node-label{ font-size: .62rem; }
}

/* ---------------------------------------------------------------------------
   3. CONVERSATIONAL TRANSITION  — content moves; the room does not.
      The narration is carried by the staggered children (see 3.6), so the
      container itself stays still and lets each beat arrive in sequence.
   --------------------------------------------------------------------------- */
.rc-view{ will-change: opacity, transform; }
@media (prefers-reduced-motion: reduce){
  .rc-view[data-enter] > *{ animation: none; opacity: 1; transform: none; }
  .rc-node.is-active .rc-node-marker{ animation: none; }
  .rc-boot-dot{ animation: none; }
}

/* ---------------------------------------------------------------------------
   4. WORKSPACE TYPOGRAPHY & PRIMITIVES  — one calm register, held constant.
      Reused Spain Assistant feel: dark cards, gold accent, soft borders.
   --------------------------------------------------------------------------- */
.rc-eyebrow{
  font-size: .68rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--gold); margin-bottom: .7rem;
}
.rc-h1{ font-size: clamp(1.7rem, 4vw, 2.3rem); font-weight: 900; line-height: 1.25; letter-spacing: -.01em; }
.rc-h2{ font-size: 1.08rem; font-weight: 800; line-height: 1.3; letter-spacing: -.005em; }
.rc-lead{ font-size: .92rem; color: var(--muted); line-height: 1.75; margin-top: .8rem; }
.rc-p{ font-size: .88rem; color: var(--muted); line-height: 1.7; }
.rc-mut{ color: var(--muted2); }

/* Card — a quiet grouping, not a boxed component. Barely-there surface so
   content reads as a continuation of the flow, never a container competing
   for attention. (Emphatic surfaces are reserved for the total & summaries.) */
.rc-card{
  background: var(--card);
  border: 1px solid var(--border2);
  border-radius: 14px;
  padding: 1.25rem 1.3rem;
  box-shadow: 0 8px 32px rgba(201,168,76,0.05);
}
.rc-card + .rc-card{ margin-top: 1.5rem; }

/* Alert / advisor callout — mirrors the Life-Center Alert component */
.rc-alert{
  display: flex; gap: .7rem; align-items: flex-start;
  border-radius: 12px; padding: .85rem 1rem;
  font-size: .84rem; line-height: 1.65; color: var(--text);
  border: 1px solid;
}
.rc-alert-ico{ font-size: 1.05rem; line-height: 1.4; flex-shrink: 0; }
.rc-alert.tone-gold  { background: rgba(201,168,76,0.08);  border-color: var(--border); }
.rc-alert.tone-green { background: rgba(76,175,125,0.08);  border-color: rgba(76,175,125,0.35); }
.rc-alert.tone-red   { background: rgba(212,90,90,0.10);   border-color: rgba(212,90,90,0.45); }
.rc-alert.tone-blue  { background: rgba(90,159,212,0.08);  border-color: rgba(90,159,212,0.35); }
.rc-alert.tone-orange{ background: rgba(230,126,34,0.08);  border-color: rgba(230,126,34,0.35); }

/* ---------------------------------------------------------------------------
   5. ADVISOR AFFORDANCE  — a single calm "continue", not a Back/Next pair.
   --------------------------------------------------------------------------- */
.rc-actions{
  display: flex; align-items: center; gap: 1rem; flex-wrap: wrap;
  margin-top: 1.6rem;
}
.rc-btn{
  font-family: inherit; font-size: .9rem; font-weight: 700;
  padding: .8rem 1.5rem; border-radius: 12px; cursor: pointer;
  border: 1px solid transparent; transition: all .22s ease;
}
.rc-btn-primary{
  background: linear-gradient(135deg, var(--gold-lt), var(--gold));
  color: #14110A; border-color: transparent;
  box-shadow: 0 6px 20px rgba(201,168,76,0.22), inset 0 1px 0 rgba(255,255,255,0.25);
}
.rc-btn-primary:hover{
  transform: translateY(-2px); filter: none;
  box-shadow: 0 12px 30px rgba(201,168,76,0.32), inset 0 1px 0 rgba(255,255,255,0.28);
}
.rc-btn-primary:disabled{
  background: var(--card3); color: var(--muted2); border-color: var(--border2);
  cursor: not-allowed; transform: none; filter: none; box-shadow: none;
}
/* Going back to a handled topic is allowed but quiet — a link, not a button. */
.rc-back{
  background: none; border: 0; font-family: inherit; cursor: pointer;
  font-size: .82rem; color: var(--muted2); padding: .4rem .2rem;
  transition: color .2s ease;
}
.rc-back:hover{ color: var(--text); }
.rc-back::before{ content: "← "; }

/* ---------------------------------------------------------------------------
   6. OVERVIEW  — the calm, premium entrance.
   --------------------------------------------------------------------------- */
.rc-overview{ text-align: center; }

/* ---- HERO : badge → icon → title → subtitle → CTA → helper ---- */
.rc-hero{
  display: flex; flex-direction: column; align-items: center;
  padding: 1.5rem 0 2.6rem;
}
.rc-badge{
  display: inline-flex; align-items: center; gap: .4rem;
  font-size: .64rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--gold);
  background: rgba(201,168,76,0.07);
  border: 1px solid var(--border);
  padding: .4rem 1rem; border-radius: 999px;
}
/* AI elements carry the teal accent (the product stays gold) */
.rc-badge-ai{
  color: var(--teal);
  background: var(--teal-soft);
  border: 1px solid var(--teal-line);
}
.rc-hero-icon{
  position: relative; margin-top: 1.7rem;
  width: 96px; height: 96px; border-radius: 26px;
  display: grid; place-items: center;
  font-size: 2.9rem;
  background: linear-gradient(160deg, rgba(61,214,196,0.14), rgba(255,255,255,0.02));
  border: 1px solid var(--teal-line);
}
.rc-hero-icon::after{           /* soft teal AI glow */
  content: ""; position: absolute; inset: -30%;
  background: radial-gradient(closest-side, rgba(61,214,196,0.28), transparent 70%);
  z-index: -1; filter: blur(6px);
}
.rc-hero-title{
  margin-top: 1.6rem; line-height: 1.14;
  font-size: clamp(1.9rem, 5vw, 2.7rem); font-weight: 800; letter-spacing: -0.01em;
  color: var(--text);
}
.rc-hero-sub{
  margin: 1rem auto 0; max-width: 560px;
  font-size: 1rem; line-height: 1.65; color: var(--muted);
}
.rc-hero-cta{ margin-top: 2.1rem; display: flex; flex-direction: column; align-items: center; gap: .85rem; }
/* The CTA is the focal point — gold, weighty, centered */
.rc-cta{
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 260px; padding: 1rem 2.4rem;
  font-size: 1.02rem; font-weight: 700; text-decoration: none;
  border-radius: 14px;
  color: #14110A;
  background: linear-gradient(135deg, #E7C86A, var(--gold));
  box-shadow: 0 10px 30px rgba(201,168,76,0.28), inset 0 1px 0 rgba(255,255,255,0.3);
  transition: transform .18s ease, box-shadow .18s ease;
}
.rc-cta:hover{ transform: translateY(-2px); box-shadow: 0 16px 40px rgba(201,168,76,0.36), inset 0 1px 0 rgba(255,255,255,0.3); }
.rc-cta-helper{ font-size: .78rem; color: var(--muted2); letter-spacing: .02em; }

/* ---- FEATURE CARDS : the advisor's capabilities ---- */
.rc-features{
  display: grid; grid-template-columns: repeat(2, 1fr); gap: .9rem;
  margin: 0 auto; max-width: 620px;
}
.rc-feature{
  position: relative; overflow: hidden;
  display: flex; flex-direction: column; align-items: flex-start; text-align: left;
  gap: .5rem; padding: 1.25rem 1.1rem; border-radius: 14px;
  background: var(--card); border: 1px solid var(--border2);
  transition: all .28s;
}
.rc-feature::after{           /* dashboard corner accent */
  content: ""; position: absolute; top: 0; right: 0; width: 60px; height: 60px;
  background: radial-gradient(circle at top right, rgba(201,168,76,0.1) 0%, transparent 70%);
  pointer-events: none;
}
.rc-feature:hover{
  border-color: rgba(201,168,76,0.38); background: var(--card2);
  transform: translateY(-3px); box-shadow: 0 8px 32px rgba(201,168,76,0.08);
}
.rc-feature-ico{
  width: 42px; height: 42px; border-radius: 11px; display: grid; place-items: center;
  font-size: 1.25rem; background: var(--gold-dim); border: 1px solid var(--border2);
}
.rc-feature-name{ font-size: .96rem; font-weight: 700; color: var(--text); }
.rc-feature-desc{ font-size: .82rem; line-height: 1.65; color: var(--muted); }
@media (max-width: 560px){ .rc-features{ grid-template-columns: 1fr; } }

/* Picker wrapper — CTA scroll target with header offset */
.rc-choose-wrap{ margin-top: 3rem; scroll-margin-top: 90px; }

.rc-overview .rc-lead{ max-width: 540px; margin: .85rem auto 0; }
.rc-overview .rc-meta{ margin-top: 1.5rem; }

.rc-meta{ display: flex; flex-wrap: wrap; gap: .6rem; justify-content: center; }
.rc-chip{
  display: inline-flex; align-items: center; gap: .45rem;
  background: var(--card2); border: 1px solid var(--border2);
  border-radius: 999px; padding: .5rem .95rem;
  font-size: .77rem; color: var(--muted);
}
.rc-chip b{ color: var(--text); font-weight: 700; }

/* "What you'll want nearby" — an elegant framed panel with an icon grid,
   replacing the flat bulleted box. Left-aligned inside, centered as a block. */
.rc-need-panel{
  margin-top: 2.4rem;
  text-align: left;
  background: linear-gradient(180deg, rgba(201,168,76,0.045), rgba(255,255,255,0.008));
  border: 1px solid var(--border2);
  border-radius: 16px;
  padding: 1.5rem 1.6rem;
}
.rc-need-head{
  display: flex; align-items: center; gap: .6rem;
  font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--muted2);
  margin-bottom: 1.15rem;
}
.rc-need-head-ico{ font-size: 1.05rem; }
.rc-need-grid{ display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.rc-need-item{
  display: flex; align-items: center; gap: .8rem;
  padding: .8rem .85rem; border-radius: 13px;
  background: rgba(255,255,255,0.018);
  border: 1px solid var(--border2);
  transition: border-color .2s ease;
}
.rc-need-item:hover{ border-color: var(--border); }
.rc-need-ico{
  flex-shrink: 0; width: 38px; height: 38px; border-radius: 10px;
  display: grid; place-items: center; font-size: 1.1rem;
  background: rgba(201,168,76,0.08); border: 1px solid var(--border2);
}
.rc-need-label{ font-size: .84rem; color: var(--text); line-height: 1.4; font-weight: 500; }
@media (max-width: 600px){ .rc-need-grid{ grid-template-columns: 1fr; } }

/* Scenario picker — the modular plug-in point (V1: one live, others waiting) */
.rc-choose{ margin-top: 2.6rem; }
.rc-choose .rc-h2{ font-size: 1.14rem; }
.rc-choose-sub{ margin-top: .45rem; max-width: 520px; margin-left: auto; margin-right: auto; }
.rc-scenarios{ display: grid; gap: .7rem; margin-top: 1.4rem; }
.rc-scenario{
  position: relative; overflow: hidden;
  display: flex; align-items: center; gap: .95rem; text-align: left;
  background: var(--card); border: 1px solid var(--border2);
  border-radius: 14px; padding: 1rem 1.15rem; width: 100%;
  font-family: inherit; color: var(--text); cursor: pointer;
  transition: all .28s;
}
.rc-scenario:hover{
  border-color: rgba(201,168,76,0.38); background: var(--card2);
  transform: translateY(-3px); box-shadow: 0 8px 32px rgba(201,168,76,0.08);
}
.rc-scenario-text{ display: flex; flex-direction: column; flex: 1; min-width: 0; }
.rc-scenario-ico{ font-size: 1.5rem; flex-shrink: 0; }
.rc-scenario-name{ font-size: .95rem; font-weight: 700; }
.rc-scenario-sub{ font-size: .77rem; color: var(--muted2); margin-top: .15rem; }

/* the live (available) scenario reads as the premium primary choice */
.rc-scenario.is-live{
  background: linear-gradient(135deg, var(--card) 0%, rgba(201,168,76,0.05) 100%);
  border-color: rgba(201,168,76,0.28);
}
.rc-scenario.is-live::before{          /* dashboard premium top line */
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, rgba(201,168,76,0.6), transparent);
  pointer-events: none;
}
.rc-scenario.is-live .rc-scenario-sub{ color: var(--gold); }
.rc-scenario.is-live:hover{
  transform: translateY(-3px); border-color: rgba(201,168,76,0.55);
  background: linear-gradient(135deg, var(--card2) 0%, rgba(201,168,76,0.07) 100%);
  box-shadow: 0 12px 40px rgba(201,168,76,0.1);
}
.rc-scenario-go{
  flex-shrink: 0; font-size: 1.1rem; color: var(--gold);
  transition: transform .22s ease;
}
.rc-scenario.is-live:hover .rc-scenario-go{ transform: translateX(3px); }

.rc-scenario.is-soon{ cursor: not-allowed; opacity: .5; }
.rc-scenario.is-soon:hover{ transform: none; border-color: var(--border2); box-shadow: none; }
.rc-soon-tag{
  flex-shrink: 0; font-size: .6rem; font-weight: 600; letter-spacing: .04em;
  text-transform: uppercase; color: var(--gold);
  background: rgba(201,168,76,0.1); border: 1px solid rgba(201,168,76,0.25);
  border-radius: 5px; padding: .2rem .55rem;
}

/* Pathway module — a full premium module identity for a scenario whose Smart
   Workflow is not yet interactive. Same card language as the live scenario,
   but presentation-only (no button, no affordance to start). */
.rc-module{
  position: relative; overflow: hidden;
  display: block; text-align: left;
  background: var(--card);
  border: 1px solid rgba(201,168,76,0.28);
  border-radius: 16px;
  padding: 1.4rem 1.4rem;
  transition: all .28s;
}
.rc-module::before{           /* dashboard premium top line */
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, rgba(201,168,76,0.6), transparent);
  pointer-events: none;
}
.rc-module::after{            /* dashboard corner accent */
  content: ""; position: absolute; top: 0; right: 0; width: 60px; height: 60px;
  background: radial-gradient(circle at top right, rgba(201,168,76,0.1) 0%, transparent 70%);
  pointer-events: none;
}
.rc-module-head{ display: flex; align-items: flex-start; gap: .9rem; }
.rc-module-titles{ display: flex; flex-direction: column; flex: 1; min-width: 0; }
.rc-module-titles .rc-scenario-sub{ line-height: 1.5; }
.rc-module-status{
  flex-shrink: 0; align-self: center;
  font-size: .6rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase;
  color: var(--gold);
  background: rgba(201,168,76,0.1); border: 1px solid rgba(201,168,76,0.25);
  border-radius: 5px; padding: .22rem .55rem;
}
.rc-module-features{
  list-style: none; margin-top: 1rem; padding-top: 1rem;
  border-top: 1px solid var(--border2);
  display: grid; grid-template-columns: 1fr 1fr; gap: .55rem .95rem;
}
.rc-module-features li{
  display: flex; align-items: flex-start; gap: .5rem;
  font-size: .78rem; color: var(--muted); line-height: 1.45;
}
.rc-module-features li::before{
  content: "✓"; color: var(--gold); font-weight: 700; flex-shrink: 0;
}
@media (max-width: 600px){
  .rc-module-features{ grid-template-columns: 1fr; }
  .rc-module-status{ align-self: flex-start; }
}

/* Official Sources — subtle but always present; reinforces credibility. */
.rc-module-sources{
  margin-top: 1rem; padding-top: .85rem;
  border-top: 1px solid var(--border2);
}
.rc-module-sources-label{
  display: block; font-size: .58rem; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: var(--muted2); margin-bottom: .45rem;
}
.rc-module-sources-list{ list-style: none; display: flex; flex-direction: column; gap: .2rem; }
.rc-module-sources-list li{
  font-size: .68rem; color: var(--muted2); line-height: 1.45;
  padding-left: .8rem; position: relative;
}
.rc-module-sources-list li::before{
  content: "›"; position: absolute; left: 0; color: var(--gold); opacity: .55;
}
/* Official Sources shown at the foot of an advisor's review screen. */
.rc-review-sources{ margin-top: 1.4rem; }

/* Professional report header — overall readiness + risk level. */
.rc-report{
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  flex-wrap: wrap;
  margin: 1.4rem 0 .4rem;
  padding: 1rem 1.2rem; border-radius: 14px;
  background: var(--card2); border: 1px solid var(--border2);
  border-left: 3px solid var(--muted2);
}
.rc-report.v-low{  border-left-color: var(--green); }
.rc-report.v-moderate{ border-left-color: var(--gold); }
.rc-report.v-high{ border-left-color: var(--red); }
.rc-report-main{ display: flex; flex-direction: column; gap: .15rem; }
.rc-report-label{
  font-size: .6rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--muted2);
}
.rc-report-value{ font-size: 1.02rem; font-weight: 700; color: var(--text); }
.rc-report-risk{
  display: flex; flex-direction: column; align-items: flex-end; gap: .15rem;
  font-size: .6rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--muted2);
}
.rc-report-risk b{ font-size: .95rem; letter-spacing: 0; text-transform: none; }
.rc-report.v-low .rc-report-risk b{ color: var(--green); }
.rc-report.v-moderate .rc-report-risk b{ color: var(--gold); }
.rc-report.v-high .rc-report-risk b{ color: var(--red); }
@media (max-width: 520px){
  .rc-report-risk{ align-items: flex-start; }
}

/* ---------------------------------------------------------------------------
   REASONING LAYER  —  the advisor's live analysis and consultation report.
   --------------------------------------------------------------------------- */
.rc-report-say{ margin: .7rem 0 .2rem; font-size: .92rem; color: var(--muted); line-height: 1.6; }

/* Live panel on the question screens */
.rc-live{
  margin-top: 1.6rem; padding: 1rem 1.15rem; border-radius: 14px;
  background: var(--card2); border: 1px solid var(--border2);
  border-left: 3px solid var(--muted2);
}
.rc-live.v-clean{ border-left-color: var(--green); }
.rc-live.v-moderate{ border-left-color: var(--gold); }
.rc-live.v-high{ border-left-color: var(--red); }
.rc-live-say{ font-size: .9rem; color: var(--text); line-height: 1.55; }
.rc-live .rc-an-group:first-of-type{ margin-top: 1rem; }

/* Strengths / attention groups (shared: live panel + report) */
.rc-an-group{ margin-top: 1.3rem; }
.rc-an-h{
  font-size: .62rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--muted2); margin-bottom: .7rem;
}
.rc-an-list{ list-style: none; display: flex; flex-direction: column; gap: .5rem; }
.rc-an-list li{ display: flex; gap: .6rem; align-items: flex-start; font-size: .86rem; color: var(--muted); line-height: 1.55; }
.rc-an-ico{ color: var(--gold); flex-shrink: 0; font-weight: 700; }
.rc-an-good .rc-an-ico{ color: var(--green); }

/* Each attention item: issue → fix → consequence */
.rc-an-issue{
  padding: .85rem .95rem; border-radius: 12px; margin-bottom: .6rem;
  background: rgba(255,255,255,0.015); border: 1px solid var(--border2);
  border-left: 3px solid var(--gold);
}
.rc-an-issue:last-child{ margin-bottom: 0; }
.rc-an-issue.sev-high{ border-left-color: var(--red); background: rgba(212,90,90,0.05); }
.rc-an-issue.sev-moderate{ border-left-color: var(--gold); }
.rc-an-issue-text{ font-size: .9rem; font-weight: 600; color: var(--text); line-height: 1.5; }
.rc-an-fix{ font-size: .84rem; color: var(--muted); line-height: 1.55; margin-top: .45rem; }
.rc-an-cons{ font-size: .82rem; color: var(--muted2); line-height: 1.55; margin-top: .35rem; }
.rc-an-fix b, .rc-an-cons b{ color: var(--text); font-weight: 700; }

/* Action plan */
.rc-plan-list{ margin: 0; padding-left: 1.2rem; display: flex; flex-direction: column; gap: .5rem; }
.rc-plan-list li{ font-size: .87rem; color: var(--text); line-height: 1.55; padding-left: .3rem; }
.rc-plan-list li::marker{ color: var(--gold); font-weight: 700; }

/* Document readiness (report) */
.rc-docsready .rc-progress-line{ margin: 0 0 .7rem; }
.rc-missing{ font-size: .84rem; color: var(--muted); line-height: 1.55; }
.rc-missing-label{ color: var(--gold); font-weight: 700; }
.rc-missing-none{ color: var(--green); }

/* Notes */
.rc-notes .rc-an-ico{ color: var(--gold); }

/* ---------------------------------------------------------------------------
   7. ELIGIBILITY  — interactive questions with immediate green/yellow/red feel.
   --------------------------------------------------------------------------- */
.rc-q{ margin-top: 1rem; }
.rc-q + .rc-q{ margin-top: .8rem; }
.rc-q-text{ font-size: .9rem; font-weight: 600; margin-bottom: .65rem; line-height: 1.5; }
.rc-choices{ display: flex; flex-wrap: wrap; gap: .55rem; }
.rc-choice{
  font-family: inherit; font-size: .84rem; font-weight: 500;
  padding: .6rem 1.05rem; border-radius: 10px; cursor: pointer;
  background: var(--card2); color: var(--muted);
  border: 1px solid var(--border2); transition: all .2s ease;
}
.rc-choice:hover{ border-color: rgba(201,168,76,0.4); color: var(--text); background: var(--card3); }
.rc-choice.is-picked{
  background: linear-gradient(135deg, rgba(201,168,76,0.18), rgba(201,168,76,0.07));
  border-color: var(--gold); color: var(--text);
  box-shadow: 0 0 0 3px rgba(201,168,76,0.08);
}

/* Live verdict banner — the immediate visual feedback (no backend) */
.rc-verdict{
  margin-top: 1.3rem; border-radius: 14px; padding: 1rem 1.15rem;
  display: flex; gap: .8rem; align-items: flex-start;
  border: 1px solid; transition: all .3s ease;
}
.rc-verdict-ico{ font-size: 1.3rem; flex-shrink: 0; }
.rc-verdict-title{ font-weight: 700; font-size: .95rem; margin-bottom: .2rem; }
.rc-verdict-note{ font-size: .82rem; line-height: 1.6; }
.rc-verdict.v-green { background: rgba(76,175,125,0.10); border-color: rgba(76,175,125,0.5); }
.rc-verdict.v-green  .rc-verdict-title{ color: var(--green); }
.rc-verdict.v-yellow{ background: rgba(201,168,76,0.10); border-color: var(--gold); }
.rc-verdict.v-yellow .rc-verdict-title{ color: var(--gold); }
.rc-verdict.v-red   { background: rgba(212,90,90,0.10); border-color: var(--red); }
.rc-verdict.v-red    .rc-verdict-title{ color: var(--red); }
.rc-verdict-note{ color: var(--muted); }

/* ---------------------------------------------------------------------------
   8. DOCUMENTS  — interactive checklist with quiet progress (no % bar chrome).
   --------------------------------------------------------------------------- */
.rc-progress-line{
  display: flex; align-items: center; gap: .7rem;
  font-size: .8rem; color: var(--muted2); margin: .3rem 0 1.1rem;
}
.rc-progress-track{
  flex: 1; height: 5px; border-radius: 999px; background: var(--card3);
  overflow: hidden;
}
.rc-progress-fill{
  height: 100%; background: linear-gradient(90deg, rgba(201,168,76,.7), var(--gold));
  border-radius: 999px; transition: width .4s cubic-bezier(.22,.61,.36,1);
  box-shadow: 0 0 8px rgba(201,168,76,0.45);
}
.rc-check{
  display: flex; gap: .8rem; align-items: flex-start;
  padding: .85rem .3rem; border-bottom: 1px solid var(--border2);
  cursor: pointer; transition: background .15s ease;
}
.rc-check:hover{ background: rgba(201,168,76,0.03); }
.rc-check-box{
  flex-shrink: 0; width: 20px; height: 20px; margin-top: .1rem;
  border-radius: 6px; border: 2px solid var(--border);
  display: grid; place-items: center; color: transparent;
  font-size: .7rem; transition: all .2s ease;
}
.rc-check.is-on .rc-check-box{
  background: var(--green); border-color: var(--green); color: #0a0f0c;
}
.rc-check-name{ font-size: .87rem; font-weight: 600; }
.rc-check.is-on .rc-check-name{ color: var(--muted); }
.rc-check-note{ font-size: .78rem; color: var(--muted2); margin-top: .15rem; line-height: 1.55; }
.rc-check-req{
  margin-left: .5rem; font-size: .6rem; font-weight: 700; letter-spacing: .05em;
  color: var(--red); text-transform: uppercase; vertical-align: middle;
}

/* ---------------------------------------------------------------------------
   9. FINANCIAL MEANS  — configurable calculator (values come from JS rules).
   --------------------------------------------------------------------------- */
.rc-calc-row{
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: .8rem .2rem; border-bottom: 1px solid var(--border2);
}
.rc-calc-label{ font-size: .87rem; color: var(--muted); }
.rc-calc-sub{ font-size: .74rem; color: var(--muted2); margin-top: .1rem; }
.rc-stepperctl{ display: inline-flex; align-items: center; gap: .2rem; }
.rc-stepbtn{
  width: 32px; height: 32px; border-radius: 8px; cursor: pointer;
  background: var(--card2); border: 1px solid var(--border2); color: var(--text);
  font-size: 1.1rem; font-family: inherit; line-height: 1;
  display: grid; place-items: center; transition: all .15s ease;
}
.rc-stepbtn:hover{ border-color: var(--gold); background: var(--card3); color: var(--gold); }
.rc-stepbtn:disabled{ opacity: .4; cursor: not-allowed; border-color: var(--border2); }
.rc-stepval{ min-width: 40px; text-align: center; font-weight: 700; font-size: .95rem; }

.rc-total{
  margin-top: 1.2rem;
  background: linear-gradient(135deg, var(--card2) 0%, rgba(201,168,76,0.06) 100%);
  border: 1px solid var(--border); border-radius: 14px; padding: 1.1rem 1.2rem;
  box-shadow: 0 8px 32px rgba(201,168,76,0.08);
}
.rc-total-label{ font-size: .78rem; color: var(--muted2); letter-spacing: .04em; }
.rc-total-value{
  font-size: 1.9rem; font-weight: 900; color: var(--gold); margin-top: .2rem; letter-spacing: -.01em;
  text-shadow: 0 0 30px rgba(201,168,76,0.25);
}
.rc-total-foot{ font-size: .76rem; color: var(--muted2); margin-top: .5rem; line-height: 1.6; }

/* ---------------------------------------------------------------------------
   10. REVIEW  — summary cards drawn from journey state.
   --------------------------------------------------------------------------- */
.rc-summary{ display: grid; gap: .9rem; margin-top: 1rem; }
.rc-sum{
  background: var(--card); border: 1px solid var(--border2);
  border-radius: 14px; padding: 1.05rem 1.15rem;
}
.rc-sum-head{
  display: flex; align-items: center; gap: .6rem; margin-bottom: .6rem;
}
.rc-sum-ico{ font-size: 1.1rem; }
.rc-sum-title{ font-size: .9rem; font-weight: 700; }
.rc-sum-pill{
  margin-left: auto; font-size: .66rem; font-weight: 700; letter-spacing: .05em;
  text-transform: uppercase; padding: .22rem .6rem; border-radius: 999px;
  border: 1px solid;
}
.pill-green{ color: var(--green); border-color: rgba(76,175,125,0.5); background: rgba(76,175,125,0.1); }
.pill-yellow{ color: var(--gold); border-color: var(--border); background: rgba(201,168,76,0.1); }
.pill-red{ color: var(--red); border-color: rgba(212,90,90,0.5); background: rgba(212,90,90,0.1); }
.rc-sum-body{ font-size: .84rem; color: var(--muted); line-height: 1.7; }
.rc-sum-body b{ color: var(--text); }
.rc-sum-list{ list-style: none; display: flex; flex-direction: column; gap: .35rem; }
.rc-sum-list li{ display: flex; gap: .5rem; }
.rc-sum-list .ico{ flex-shrink: 0; }

/* ---------------------------------------------------------------------------
   11. READY  — the completion screen.
   --------------------------------------------------------------------------- */
.rc-ready{ text-align: center; max-width: 560px; margin: 0 auto; padding-top: 1rem; }
.rc-ready-mark{
  width: 68px; height: 68px; margin: 0 auto 1.2rem;
  border-radius: 50%; display: grid; place-items: center; font-size: 2rem;
  background: rgba(76,175,125,0.14); border: 2px solid rgba(76,175,125,0.5);
  box-shadow: 0 0 34px rgba(76,175,125,0.22);
}
.rc-ready .rc-actions{ justify-content: center; margin-top: 2rem; }
.rc-btn-ghost{
  background: none; border: 1px solid var(--border); color: var(--muted);
}
.rc-btn-ghost:hover{ color: var(--text); border-color: var(--gold); }

/* ---------------------------------------------------------------------------
   12. CONNECTED LINKS  — "the advisor hands you a document" (deep-links out).
   --------------------------------------------------------------------------- */
.rc-handover{
  display: inline-flex; align-items: center; gap: .5rem;
  font-size: .82rem; font-weight: 600; color: var(--gold);
  text-decoration: none; border-bottom: 1px solid transparent;
  transition: border-color .2s ease;
}
.rc-handover:hover{ border-color: var(--gold); }
.rc-handover::after{ content: "↗"; font-size: .85em; }

/* ---------------------------------------------------------------------------
   13. PRINT  — a clean, chrome-free checklist. Hide the app, show print sheet.
   --------------------------------------------------------------------------- */
.rc-print-only{ display: none; }
@media print{
  .sa-topnav, .sa-footer, .rc-journey, .rc-actions, .rc-back,
  .rc-boot, .rc-skip{ display: none !important; }
  body{ background: #fff; color: #111; font-size: 12px; }
  .rc, .rc-shell{ display: block; max-width: 100%; padding: 0; margin: 0; }
  .rc-stage{ min-height: 0; }
  .rc-view[data-enter]{ animation: none; }
  .rc-print-only{ display: block; }
  .rc-print-only h1{ font-size: 18px; margin-bottom: 4px; color: #111; }
  .rc-print-only .rc-print-sub{ font-size: 11px; color: #555; margin-bottom: 14px; }
  .rc-print-only h2{ font-size: 13px; margin: 14px 0 6px; border-bottom: 1px solid #ccc; padding-bottom: 3px; color:#111; }
  .rc-print-only .p-item{ display: flex; gap: 8px; padding: 3px 0; font-size: 12px; }
  .rc-print-only .p-box{ width: 12px; height: 12px; border: 1px solid #333; flex-shrink: 0; margin-top: 1px; }
  .rc-print-only .p-total{ font-weight: 700; margin-top: 6px; }
  .rc-print-only .p-foot{ margin-top: 18px; font-size: 10px; color: #777; border-top: 1px solid #ccc; padding-top: 8px; }
}

/* ---------------------------------------------------------------------------
   PREMIUM GLOBAL TOUCHES  — text selection + slim scrollbar (polish only)
   --------------------------------------------------------------------------- */
::selection{ background: rgba(201,168,76,0.28); color: var(--text); }
.rc-root ::-webkit-scrollbar,
body::-webkit-scrollbar{ width: 10px; height: 10px; }
.rc-root ::-webkit-scrollbar-track,
body::-webkit-scrollbar-track{ background: transparent; }
.rc-root ::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb{
  background: rgba(201,168,76,0.18); border-radius: 999px;
  border: 2px solid transparent; background-clip: padding-box;
}
.rc-root ::-webkit-scrollbar-thumb:hover,
body::-webkit-scrollbar-thumb:hover{ background: rgba(201,168,76,0.32); background-clip: padding-box; }
