/* The Freedom Blueprint — colour tokens.
   Source of truth: 03-color/design-tokens.ts (the live app theme file). */
:root {
  /* Canvas & surfaces */
  --fb-canvas:      #F9FAFB;
  --fb-canvas-soft: #F1F2F9;
  --fb-wash-1:      #E9ECFB;
  --fb-wash-2:      #E3E6FA;
  --fb-wash-3:      #DFE1F5;

  /* Brand spectrum */
  --fb-periwinkle:  #7584D6;   /* primary */
  --fb-violet:      #7C5CE6;
  --fb-indigo:      #545C9E;
  --fb-lavender:    #A5A4FA;
  --fb-cyan:        #80E5FF;
  --fb-pink:        #FF9FD7;   /* high intent / DFY */
  --fb-slate:       #465478;

  /* Ink */
  --fb-ink:         #2A3358;   /* headlines */
  --fb-ink-soft:    #465478;   /* body */
  --fb-muted:       #7C84A8;   /* captions */

  /* Semantic */
  --fb-success:     #34C79A;
  --fb-warning:     #F6A623;
  --fb-danger:      #F0608A;

  /* Gradients */
  --fb-grad-brand:    linear-gradient(135deg, #7584D6, #7C5CE6);
  --fb-grad-accent:   linear-gradient(135deg, #80E5FF, #7584D6);
  --fb-grad-meter:    linear-gradient(135deg, #80E5FF, #A5A4FA);
  --fb-grad-hot:      linear-gradient(135deg, #FF9FD7, #A5A4FA);
  --fb-grad-backdrop: linear-gradient(135deg, #FDFDFF, #F4F4FD, #ECEFFB);

  /* Frosted glass */
  --fb-glass-card:   rgba(255,255,255,0.62);
  --fb-glass-strong: rgba(255,255,255,0.72);
  --fb-hairline:     rgba(117,132,214,0.18);
  --fb-highlight:    rgba(255,255,255,0.95);
  --fb-shadow-card:  0 18px 36px rgba(117,132,214,0.18);
}

@font-face{font-family:Manrope;src:url("assets/manrope-variable.ttf") format("truetype");font-weight:400 800;font-style:normal;font-display:swap}
:root:root{--ink:var(--fb-ink);--slate:var(--fb-slate);--muted:var(--fb-slate);--blue:var(--fb-periwinkle);--violet:var(--fb-violet);--pink:var(--fb-pink);--line:var(--fb-hairline);--shadow:var(--fb-shadow-card)}
html body,html body.apply-page{background:var(--fb-grad-backdrop);color:var(--fb-ink);font-family:Manrope,system-ui,sans-serif}
body .shell,body .auth-loading,body .login{background:var(--fb-grad-backdrop)}
body :is(.card,.profile,.login-card,.apply-card,.partner-content-panel,.partner-business-card,.partner-link-card,.partner-hub-grid article,.media-kit-card){background:var(--fb-glass-strong);border-color:var(--fb-hairline);box-shadow:var(--fb-shadow-card)}
body :is(.rail,.mobile-nav-bar){border-color:var(--fb-hairline);box-shadow:0 8px 24px rgba(117,132,214,.18)}
body :is(h1,h2,h3,h4,.brand,.nav button.active,.login-card h2){color:var(--fb-ink);font-family:Manrope,system-ui,sans-serif;font-weight:600;letter-spacing:-.05em}
body :is(p,.sub,.offer p,.metric-label,.metric-note,.reporting-period,.muted){color:var(--fb-slate)}
body :is(button,.cta,.copy,label,.eyebrow,.offer-tag){font-weight:700}
body :is(.cta,#applicationSubmit){background:var(--fb-grad-brand);color:white;box-shadow:0 8px 18px rgba(117,132,214,.18)}
body :is(.cta:hover,#applicationSubmit:hover){box-shadow:0 12px 24px rgba(117,132,214,.24)}
body :is(.hero,.activation){background:linear-gradient(135deg,var(--fb-wash-1),var(--fb-canvas-soft));border-color:var(--fb-hairline)}
body :is(.nav button.active,.nav button:hover,.copy,.offer-tag,.calc-result){background:var(--fb-wash-1);color:var(--fb-indigo)}
body :is(.link,.offer .go,.eyebrow,.login-apply a,.action){color:var(--fb-indigo)}
body :is(.brand img,.login-brand img,.mobile-nav-brand img,.auth-loading img,.apply-brand img){box-sizing:content-box;padding:16px;object-fit:contain;filter:none;background:none;box-shadow:none}
body .login-card input:focus{border-color:var(--fb-violet);box-shadow:0 0 0 4px rgba(117,132,214,.18)}
body :is(a,button,input,select,textarea):focus-visible{outline:3px solid var(--fb-indigo);outline-offset:3px}

/* White labels use large bold text on the supplied periwinkle gradient. */
body :is(.cta,#applicationSubmit){font-size:18px;font-weight:700}
body .login-stage{padding-top:28px;padding-bottom:28px}
body .login{overflow-y:auto}
