/* ── SCREENS ── */
.screen{display:none;min-height:100vh}
.screen.active{display:flex}

/* ── LOGIN ── */
#login-screen{align-items:center;justify-content:center;background:var(--navy);
  background-image:radial-gradient(ellipse at 20% 50%,rgba(59,130,246,.15) 0%,transparent 60%)}
#signup-screen{align-items:flex-start;justify-content:center;background:var(--navy);
  background-image:radial-gradient(ellipse at 20% 50%,rgba(59,130,246,.15) 0%,transparent 60%);
  overflow-y:auto;padding:40px 24px 40px}
.login-card{background:var(--navy-mid);border:1px solid rgba(255,255,255,.07);border-radius:16px;
  padding:48px 44px;width:380px;box-shadow:0 24px 64px rgba(0,0,0,.4);animation:fadeUp .4s ease}
.login-logo{font-family:'Fraunces',serif;font-size:26px;font-weight:600;color:var(--white);margin-bottom:6px}
.login-logo span{color:var(--accent)}
.login-sub{font-size:13px;color:var(--gray-400);margin-bottom:32px}
.field{margin-bottom:16px}
.field label{display:block;font-size:11px;font-weight:600;color:var(--gray-400);letter-spacing:.05em;text-transform:uppercase;margin-bottom:6px}
.field input{width:100%;padding:11px 14px;background:var(--navy-light);border:1px solid rgba(255,255,255,.08);
  border-radius:8px;color:var(--white);font-size:14px;transition:border-color .2s}
.field input:focus{border-color:var(--accent)}
.field input::placeholder{color:rgba(255,255,255,.25)}
.btn-primary{width:100%;padding:12px;background:var(--accent);color:var(--white);border-radius:8px;
  font-size:14px;font-weight:600;transition:background .2s;margin-top:8px}
.btn-primary:hover{background:var(--accent-dim)}
.btn-primary:disabled{opacity:.5;cursor:not-allowed}
.btn-primary:active{transform:scale(.97)}
.login-error{background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.3);color:#FCA5A5;
  font-size:13px;padding:10px 12px;border-radius:7px;margin-top:14px;display:none}
.login-error.show{display:block}

/* ── ONBOARDING WIZARD ── */
#onboard-screen{align-items:center;justify-content:center;background:var(--navy);min-height:100vh;
  background-image:radial-gradient(ellipse at 20% 50%,rgba(59,130,246,.15) 0%,transparent 60%);
  padding:24px;overflow-y:auto}
.ob-card{background:var(--navy-mid);border:1px solid rgba(255,255,255,.07);border-radius:20px;
  padding:40px 44px;width:100%;max-width:520px;box-shadow:0 24px 64px rgba(0,0,0,.4);animation:fadeUp .4s ease}
.ob-logo{font-family:'Fraunces',serif;font-size:22px;font-weight:600;color:var(--white);margin-bottom:4px}
.ob-logo span{color:var(--accent)}
.ob-progress{display:flex;align-items:center;gap:6px;margin:18px 0 28px}
.ob-progress-step{flex:1;height:3px;border-radius:2px;background:rgba(255,255,255,.1);transition:background .3s}
.ob-progress-step.done{background:var(--accent)}
.ob-progress-step.active{background:rgba(59,130,246,.5)}
.ob-coach{font-size:19px;font-weight:600;color:var(--white);line-height:1.35;margin-bottom:6px}
.ob-sub{font-size:13px;color:var(--gray-400);margin-bottom:28px;line-height:1.5}
.ob-hint{font-size:11px;color:var(--gray-400);margin-top:18px;text-align:center}
.ob-field{margin-bottom:16px}
.ob-field label{display:block;font-size:11px;font-weight:600;color:var(--gray-400);
  letter-spacing:.05em;text-transform:uppercase;margin-bottom:6px}
.ob-field input,.ob-field select,.ob-field textarea{width:100%;padding:11px 14px;
  background:var(--navy-light);border:1px solid rgba(255,255,255,.08);border-radius:8px;
  color:var(--white);font-size:14px;transition:border-color .2s}
.ob-field input:focus,.ob-field select:focus,.ob-field textarea:focus{border-color:var(--accent);outline:none}
.ob-field input::placeholder,.ob-field textarea::placeholder{color:rgba(255,255,255,.25)}
.ob-field select option{background:var(--navy-mid)}
.ob-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ob-section-label{font-size:10px;font-weight:700;color:var(--accent);letter-spacing:.08em;
  text-transform:uppercase;margin:20px 0 10px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.07)}
.ob-btns{display:flex;gap:10px;margin-top:24px}
.ob-btns .ob-back{flex:0 0 auto;padding:12px 20px;background:transparent;border:1px solid rgba(255,255,255,.12);
  color:var(--gray-400);border-radius:8px;font-size:14px;font-weight:500;transition:.2s;cursor:pointer}
.ob-btns .ob-back:hover{border-color:rgba(255,255,255,.25);color:var(--white)}
.ob-btns .ob-next{flex:1;padding:12px;background:var(--accent);color:var(--white);border-radius:8px;
  font-size:14px;font-weight:600;transition:background .2s}
.ob-btns .ob-next:hover{background:var(--accent-dim)}
.ob-btns .ob-next:disabled{opacity:.5;cursor:not-allowed}
.ob-error{background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.3);color:#FCA5A5;
  font-size:13px;padding:10px 12px;border-radius:7px;margin-top:12px;display:none}
.ob-error.show{display:block}
/* Progressive reveal */
.ob-toggle-row{display:flex;align-items:center;gap:10px;margin-bottom:4px}
.ob-toggle-label{font-size:13px;color:rgba(255,255,255,.7);flex:1}
.ob-toggle-btns{display:flex;gap:4px;flex-shrink:0}
.ob-toggle-btn{padding:5px 14px;border-radius:20px;border:1px solid rgba(255,255,255,.15);
  background:transparent;color:var(--gray-400);font-size:12px;font-weight:500;cursor:pointer;transition:.15s}
.ob-toggle-btn.yes.active{background:#10B981;border-color:#10B981;color:#fff}
.ob-toggle-btn.no.active{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);color:var(--gray-400)}
.ob-reveal{display:none}
.ob-reveal.show{display:block;animation:fadeUp .2s ease}
.ob-hint-text{font-size:11px;color:rgba(255,255,255,.32);margin-top:3px;line-height:1.4}
.ob-insight{background:rgba(59,130,246,.07);border-left:2px solid rgba(59,130,246,.5);
  border-radius:0 8px 8px 0;padding:10px 14px;font-size:12.5px;color:rgba(255,255,255,.6);
  margin-bottom:20px;line-height:1.55}
.ob-achieve{display:flex;align-items:center;justify-content:center;gap:8px;
  padding:13px 16px;border-radius:8px;width:100%;
  background:rgba(16,185,129,.12);border:1px solid rgba(16,185,129,.25);
  color:#10B981;font-size:14px;font-weight:600;animation:fadeUp .25s ease}
.ob-achieve-icon{font-size:16px}
.ob-assets-bar{display:flex;justify-content:space-between;align-items:center;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);
  border-radius:10px;padding:10px 16px;margin-bottom:20px}
.ob-ab-label{font-size:10px;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.06em}
.ob-ab-val{font-size:22px;font-weight:700;color:var(--white)}
.ob-debt-panel{display:grid;grid-template-columns:1fr 1fr 1fr;background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.07);border-radius:12px;overflow:hidden;margin-bottom:20px}
.ob-dp-item{padding:10px 14px;border-right:1px solid rgba(255,255,255,.06)}
.ob-dp-item:last-child{border-right:none}
.ob-dp-label{font-size:9px;font-weight:700;color:rgba(255,255,255,.35);text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}
.ob-dp-val{font-size:16px;font-weight:700;color:var(--white)}
.ob-debt-intel{font-size:12px;padding:10px 14px;border-left:3px solid #10B981;
  border-radius:0 8px 8px 0;margin:10px 0 16px;line-height:1.55;display:none;
  background:rgba(16,185,129,.07);color:rgba(255,255,255,.65)}
.ob-debt-intel.show{display:block;animation:fadeUp .3s ease}
.ob-emi-strip{display:flex;justify-content:space-between;align-items:center;
  background:rgba(99,102,241,.09);border:1px solid rgba(99,102,241,.2);
  border-radius:10px;padding:10px 16px;margin-bottom:20px}
.ob-emi-strip-label{font-size:11px;color:rgba(255,255,255,.5)}
.ob-emi-strip-val{font-size:17px;font-weight:700;color:#a5b4fc;text-align:right}
.ob-emi-strip-sub{font-size:10px;color:rgba(255,255,255,.3);margin-top:2px}
.ob-surplus-bar{display:flex;justify-content:space-between;align-items:center;
  padding:10px 0;border-top:1px solid rgba(255,255,255,.07);margin-top:16px}
.ob-surplus-label{font-size:11px;color:rgba(255,255,255,.45);text-transform:uppercase;letter-spacing:.05em}
.ob-surplus-val{font-size:16px;font-weight:700}
.ob-summary-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);
  border-radius:12px;padding:16px 18px;margin-bottom:12px}
.ob-summary-row{display:flex;justify-content:space-between;align-items:center;
  padding:7px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.ob-summary-row:last-child{border-bottom:none}
.ob-summary-key{font-size:12px;color:rgba(255,255,255,.5)}
.ob-summary-val{font-size:13px;font-weight:600;color:var(--white)}
.ob-summary-section{font-size:9px;font-weight:700;color:var(--accent);letter-spacing:.1em;
  text-transform:uppercase;margin:14px 0 6px}
.ob-goal-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
  border-radius:10px;padding:14px 16px;margin-bottom:10px}
.ob-goal-card .ob-row{margin-bottom:0}
.ob-done-icon{font-size:56px;text-align:center;margin-bottom:16px}
.ob-done-title{font-size:22px;font-weight:700;color:var(--white);text-align:center;margin-bottom:8px}
.ob-done-sub{font-size:14px;color:var(--gray-400);text-align:center;line-height:1.6;margin-bottom:28px}
@media(max-width:600px){
  .ob-card{padding:28px 20px;border-radius:16px}
  .ob-row{grid-template-columns:1fr}
  .ob-coach{font-size:17px}
}

/* Live summary bar */
.ob-live-summary{display:grid;grid-template-columns:1fr 1fr 1fr;background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.07);border-radius:12px;overflow:hidden;margin-bottom:20px}
.ob-ls-item{padding:10px 14px;border-right:1px solid rgba(255,255,255,.06)}
.ob-ls-item:last-child{border-right:none}
.ob-ls-label{font-size:9px;font-weight:700;color:rgba(255,255,255,.35);
  text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}
.ob-ls-val{font-size:15px;font-weight:700;color:var(--white);transition:color .3s}
.ob-ls-nw .ob-ls-val{color:#10B981}
.ob-ls-item.negative .ob-ls-val{color:#ef4444}
.ob-li-insight{font-size:12px;color:rgba(255,255,255,.65);padding:10px 14px;
  background:rgba(245,158,11,.07);border-left:2px solid rgba(245,158,11,.5);
  border-radius:0 8px 8px 0;margin:10px 0 16px;line-height:1.55;display:none}
.ob-li-insight.show{display:block;animation:fadeUp .3s ease}
.ob-nw-reveal{text-align:center;padding:16px 0 8px}
.ob-nw-reveal-label{font-size:11px;font-weight:700;color:rgba(255,255,255,.4);
  text-transform:uppercase;letter-spacing:.1em;margin-bottom:14px}
.ob-nw-amount{font-size:52px;font-weight:800;letter-spacing:-1px;
  animation:nwPop .65s cubic-bezier(.34,1.56,.64,1) both}
.ob-nw-positive{color:#10B981}
.ob-nw-negative{color:#ef4444}
.ob-nw-sub{font-size:13px;color:rgba(255,255,255,.5);margin-top:8px;line-height:1.5}
.ob-nw-intel{margin-top:18px;padding:12px 16px;background:rgba(59,130,246,.08);
  border:1px solid rgba(59,130,246,.14);border-radius:10px;font-size:12.5px;
  color:rgba(255,255,255,.65);line-height:1.6;text-align:left}
.ob-nw-next{font-size:11px;color:rgba(255,255,255,.25);margin-top:22px;letter-spacing:.03em}
@keyframes nwPop{from{opacity:0;transform:scale(.75)}to{opacity:1;transform:scale(1)}}

.ob-employ-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:6px}
.ob-employ-btn{padding:12px 8px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:rgba(255,255,255,.03);color:var(--gray-400);font-size:12px;cursor:pointer;text-align:center;transition:.2s;line-height:1.3;width:100%}
.ob-employ-btn.active{border-color:var(--accent);background:rgba(59,130,246,.12);color:var(--white)}
.ob-nw-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:12px 8px;background:rgba(255,255,255,.04);cursor:pointer;width:100%;min-height:76px;transition:border-color .15s,background .15s;text-align:center}
.ob-nw-card.ob-nw-sel{border-color:var(--accent);background:rgba(30,99,255,.1)}
.ob-nwc-icon{font-size:22px;line-height:1}
.ob-nwc-label{font-size:11px;font-weight:500;color:rgba(255,255,255,.7)}
.ob-nwc-sub{font-size:11px;color:rgba(255,255,255,.3)}
.ob-nw-card.ob-nw-sel .ob-nwc-sub{color:#10B981}
.ob-nw-sec{font-size:11px;font-weight:600;color:rgba(255,255,255,.45);letter-spacing:.06em;text-transform:uppercase;margin:20px 0 10px}
.ob-ins-rec{background:rgba(59,130,246,.06);border:1px solid rgba(59,130,246,.2);border-radius:10px;padding:14px 16px;margin-bottom:16px}
.ob-ins-rec-title{font-size:10px;font-weight:700;color:var(--accent);letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px}
.ob-ins-rec-row{display:flex;justify-content:space-between;align-items:center;padding:3px 0}
.ob-ins-rec-label{font-size:12px;color:var(--gray-400)}
.ob-ins-rec-val{font-size:13px;font-weight:600;color:var(--white)}
.ob-ins-gap{font-size:12px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.07);line-height:1.4}
.ob-sug-goals{margin-bottom:16px}
.ob-sug-goal{border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:14px 16px;margin-bottom:10px;transition:.2s}
.ob-sug-goal.included{border-color:rgba(16,185,129,.35);background:rgba(16,185,129,.05)}
.ob-sug-goal.skipped{opacity:.4}
.ob-sug-goal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px}
.ob-sug-goal-info{flex:1;min-width:0}
.ob-sug-goal-name{font-size:13px;font-weight:600;color:var(--white)}
.ob-sug-goal-sub{font-size:11px;color:var(--gray-400);margin-top:3px;line-height:1.4}
.ob-sug-goal-btns{display:flex;gap:6px;flex-shrink:0;align-items:flex-start}
.ob-sug-inc-btn,.ob-sug-skip-btn{padding:5px 12px;border-radius:6px;font-size:11px;cursor:pointer;border:1px solid;transition:.2s;white-space:nowrap}
.ob-sug-inc-btn{border-color:rgba(16,185,129,.4);background:rgba(16,185,129,.08);color:#10B981}
.ob-sug-inc-btn.active{background:rgba(16,185,129,.2);border-color:#10B981}
.ob-sug-skip-btn{border-color:rgba(255,255,255,.1);background:none;color:var(--gray-400)}
.ob-sug-skip-btn.active{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.15)}
.ob-sug-goal-fields{display:none;margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.06)}
.ob-sug-goal.included .ob-sug-goal-fields{display:block}
.ob-sug-fields-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ob-goals-divider{font-size:11px;font-weight:600;color:var(--gray-400);letter-spacing:.05em;text-transform:uppercase;margin:18px 0 10px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.07)}
.ob-snap-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}
.ob-snap-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:14px 16px;position:relative;overflow:hidden}
.ob-snap-card::before{content:'';position:absolute;inset:0;border-radius:12px;opacity:0;transition:.2s}
.ob-snap-label{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--gray-400);margin-bottom:10px}
.ob-snap-val{font-size:21px;font-weight:700;line-height:1.1;margin-bottom:7px;word-break:break-all}
.ob-snap-badge{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:600;padding:3px 8px;border-radius:5px}
.ob-snap-sub{font-size:11px;color:var(--gray-400);margin-top:6px;line-height:1.4}
.ob-snap-full{grid-column:1/-1}
.ob-snap-divider{font-size:12px;font-weight:600;color:var(--gray-400);margin:20px 0 14px;display:flex;align-items:center;gap:8px}
.ob-snap-divider::before,.ob-snap-divider::after{content:'';flex:1;height:1px;background:rgba(255,255,255,.08)}
