*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --bg:var(--bg);--s1:var(--s1);--s2:var(--s2);--s3:var(--s3);
  --bd:var(--bd);--bd2:var(--bd2);
  --gold:#c9a84c;--gold2:#e8c96a;--gold3:#f5e4a8;
  --goldfade:rgba(201,168,76,0.08);--goldbdr:rgba(201,168,76,0.22);
  --silver:#b0b8c8;--silver2:#d0d8e8;
  --silverfade:rgba(176,184,200,0.08);--silverbdr:rgba(176,184,200,0.2);
  --green:#6aad7a;--greenfade:rgba(106,173,122,0.08);--greenbdr:rgba(106,173,122,0.22);
  --red:#b06060;--redfade:rgba(176,96,96,0.08);--redbdr:rgba(176,96,96,0.18);
  --amber:#c9a84c;
  --text:var(--text);--muted:var(--muted);--dim:var(--dim);
  --r:10px;--rlg:16px;
}
html{font-size:15px;}
body{font-family:var(--font-body);background:var(--bg);color:var(--text);min-height:100vh;padding:2rem;}
.wrap{max-width:960px;margin:0 auto;}

/* HEADER */
.hdr{text-align:center;margin-bottom:2.5rem;}
.hdr-logo{font-family:var(--font-display);font-size:28px;font-weight:600;color:var(--text);}
.hdr-logo span{color:var(--gold);}
.hdr-title{font-family:var(--font-display);font-size:42px;font-weight:600;color:var(--text);margin-top:.5rem;line-height:1.1;}
.hdr-sub{font-size:14px;color:var(--muted);margin-top:.5rem;line-height:1.6;}

/* STEP INDICATOR */
.steps{display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:2.5rem;}
.step{display:flex;flex-direction:column;align-items:center;gap:.35rem;flex:1;max-width:180px;}
.step-circle{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;border:2px solid var(--bd2);color:var(--muted);transition:all .3s;}
.step-circle.done{background:var(--green);border-color:var(--green);color:#fff;}
.step-circle.active{background:var(--gold);border-color:var(--gold);color:var(--bg);}
.step-label{font-size:10.5px;color:var(--muted);text-align:center;font-weight:500;}
.step-label.active{color:var(--gold);}
.step-line{flex:1;height:1px;background:var(--bd2);margin:0;max-width:60px;align-self:flex-start;margin-top:17px;}
.step-line.done{background:var(--green);}

/* SCREENS */
.screen{display:none;}
.screen.active{display:block;}

/* CARD */
.card{background:var(--s1);border:1px solid var(--bd);border-radius:var(--rlg);overflow:hidden;margin-bottom:1.25rem;}
.card-head{padding:1.1rem 1.5rem;border-bottom:1px solid var(--bd);}
.card-title{font-family:var(--font-display);font-size:18px;font-weight:600;}
.card-body{padding:1.5rem;}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;}

/* BANK LINK */
.bank-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1.5rem;}
.bank-btn{background:var(--s2);border:1.5px solid var(--bd2);border-radius:var(--r);padding:1.1rem;cursor:pointer;transition:all .2s;text-align:center;}
.bank-btn:hover{border-color:var(--gold);background:rgba(201,168,76,0.05);}
.bank-btn.selected{border-color:var(--gold);background:rgba(201,168,76,0.08);}
.bank-icon{font-size:28px;margin-bottom:.4rem;}
.bank-name{font-size:12.5px;font-weight:600;color:var(--text);}
.bank-mask{font-size:11px;color:var(--muted);margin-top:2px;}

/* LOADING */
.loading-wrap{text-align:center;padding:3rem 1rem;}
.loading-spinner{width:48px;height:48px;border:3px solid var(--bd2);border-top-color:var(--gold);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1.5rem;}
@keyframes spin{to{transform:rotate(360deg);}}
.loading-title{font-family:var(--font-display);font-size:22px;font-weight:600;color:var(--text);margin-bottom:.5rem;}
.loading-steps{display:flex;flex-direction:column;gap:.5rem;text-align:left;max-width:320px;margin:1.5rem auto 0;}
.ls-item{display:flex;align-items:center;gap:.65rem;font-size:13px;color:var(--muted);}
.ls-dot{width:8px;height:8px;border-radius:50%;background:var(--bd2);flex-shrink:0;transition:background .3s;}
.ls-dot.done{background:var(--green);}
.ls-dot.active{background:var(--gold);animation:pulse 1s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.4;}}

/* RESULT HERO */
.result-hero{background:linear-gradient(135deg,var(--s1) 0%,var(--s3) 100%);border:1px solid rgba(201,168,76,0.3);border-radius:var(--rlg);padding:2.5rem;text-align:center;margin-bottom:1.5rem;position:relative;overflow:hidden;}
.result-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at top,rgba(201,168,76,0.06) 0%,transparent 70%);pointer-events:none;}
.rh-eyebrow{font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:.75rem;}
.rh-amount{font-family:var(--font-display);font-size:80px;font-weight:600;color:var(--gold);line-height:1;letter-spacing:-.02em;}
.rh-sub{font-size:14px;color:var(--muted);margin-top:.5rem;}
.rh-badges{display:flex;justify-content:center;gap:.75rem;margin-top:1.25rem;flex-wrap:wrap;}
.rh-badge{background:rgba(201,168,76,0.1);border:1px solid rgba(201,168,76,0.25);border-radius:20px;padding:4px 14px;font-size:11.5px;font-weight:700;color:var(--gold);}
.rh-badge.silver{background:var(--silverfade);border-color:var(--silverbdr);color:var(--silver2);}
.rh-badge.green{background:var(--greenfade);border-color:var(--greenbdr);color:var(--green);}

/* SIGNAL CARDS */
.signal-card{background:var(--s2);border-radius:var(--r);padding:1.1rem 1.25rem;margin-bottom:.75rem;border-left:3px solid var(--bd2);transition:all .2s;}
.sc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.65rem;}
.sc-title{font-size:13.5px;font-weight:600;color:var(--text);}
.sc-weight{font-size:10.5px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em;}
.sc-score{font-family:var(--font-display);font-size:26px;font-weight:600;}
.sc-grade{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;}
.pb{height:5px;border-radius:3px;background:var(--bd);overflow:hidden;margin-bottom:.6rem;}
.pbf{height:100%;border-radius:3px;transition:width 1.2s cubic-bezier(.4,0,.2,1);}
.pf-gold{background:var(--gold);}
.pf-green{background:var(--green);}
.pf-silver{background:var(--silver);}
.pf-red{background:var(--red);}
.sc-detail{font-size:12px;color:var(--muted);line-height:1.6;}
.sc-highlight{color:var(--text);font-weight:600;}

/* DATA CHIPS */
.chip-row{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.65rem;}
.chip{background:var(--s1);border:1px solid var(--bd2);border-radius:6px;padding:.3rem .65rem;font-size:11.5px;}
.chip-label{color:var(--muted);font-size:10px;display:block;margin-bottom:1px;}
.chip-val{color:var(--text);font-weight:600;}

/* BILL TABLE */
.bill-table{width:100%;border-collapse:collapse;font-size:12.5px;}
.bill-table th{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:left;padding:.5rem .75rem;border-bottom:1px solid var(--bd);}
.bill-table td{padding:.6rem .75rem;border-bottom:1px solid var(--s3);vertical-align:middle;}
.bill-table tr:last-child td{border-bottom:none;}
.bill-table tr:hover td{background:var(--s2);}

/* FORMULA BOX */
.formula{background:var(--s1);border:1px solid var(--bd);border-radius:var(--r);padding:1.1rem 1.25rem;margin-top:1rem;}
.formula-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.65rem;}
.formula-row{display:flex;justify-content:space-between;align-items:center;padding:.4rem 0;font-size:13px;border-bottom:1px solid var(--s3);}
.formula-row:last-child{border-bottom:none;padding-top:.6rem;font-weight:700;font-size:14px;}
.formula-row .label{color:var(--muted);}
.formula-row .val{font-family:var(--font-display);font-size:16px;font-weight:600;}

/* PLAN PICKER */
.plan-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-bottom:1.25rem;}
.pp-btn{background:var(--s2);border:1.5px solid var(--bd2);border-radius:var(--r);padding:.75rem .4rem;cursor:pointer;text-align:center;transition:all .15s;font-family:var(--font-body);}
.pp-btn:hover{border-color:var(--gold);}
.pp-btn.active{background:rgba(201,168,76,0.1);border-color:var(--gold);}
.pp-num{font-family:var(--font-display);font-size:22px;font-weight:600;color:var(--text);}
.pp-label{font-size:10px;color:var(--muted);margin-top:1px;}
.pp-fee{font-size:10.5px;font-weight:700;color:var(--gold);margin-top:3px;}
.pp-req{font-size:9.5px;color:var(--dim);margin-top:2px;}

/* AMOUNT SLIDER */
.amount-display{font-family:var(--font-display);font-size:64px;font-weight:600;color:var(--gold);text-align:center;line-height:1;margin-bottom:.5rem;}
.ap-slider{width:100%;-webkit-appearance:none;appearance:none;height:5px;border-radius:3px;background:var(--bd);outline:none;cursor:pointer;margin-bottom:.5rem;}
.ap-slider::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--gold);cursor:pointer;box-shadow:0 0 0 3px rgba(201,168,76,0.2);}
.ap-labels{display:flex;justify-content:space-between;font-size:10.5px;color:var(--muted);margin-bottom:1.25rem;}

/* OFFER BOX */
.offer-box{display:grid;grid-template-columns:repeat(3,1fr);gap:.1rem;background:var(--bd);border-radius:var(--r);overflow:hidden;margin-bottom:1rem;}
.ob-item{background:var(--s2);padding:.9rem .75rem;text-align:center;}
.ob-label{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:.3rem;}
.ob-val{font-family:var(--font-display);font-size:20px;font-weight:600;color:var(--text);}
.ob-sub{font-size:10px;color:var(--muted);margin-top:.2rem;}

/* SCHEDULE */
.schedule-row{display:flex;align-items:center;gap:.75rem;padding:.6rem 0;border-bottom:1px solid var(--s3);}
.schedule-row:last-child{border-bottom:none;}
.sched-num{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;}

/* BTN */
.btn{padding:9px 20px;border-radius:var(--r);font-size:13px;font-weight:600;cursor:pointer;border:none;transition:all .15s;font-family:var(--font-body);}
.btn-primary{background:var(--gold);color:var(--bg);width:100%;padding:14px;font-size:15px;}
.btn-primary:hover{background:var(--gold2);}
.btn-ghost{background:transparent;color:var(--silver);border:1px solid var(--bd2);}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold2);}
.btn-sm{padding:6px 14px;font-size:12px;}

/* ALERT */
.alert{border-radius:var(--r);padding:.85rem 1.1rem;font-size:13px;margin-bottom:.85rem;display:flex;align-items:flex-start;gap:.65rem;line-height:1.55;}
.ai{font-size:15px;flex-shrink:0;}
.al-gold{background:var(--goldfade);border:1px solid var(--goldbdr);color:var(--gold3);}
.al-green{background:var(--greenfade);border:1px solid var(--greenbdr);color:#9ee0ae;}
.al-red{background:var(--redfade);border:1px solid var(--redbdr);color:#e0a0a0;}
.al-silver{background:var(--silverfade);border:1px solid var(--silverbdr);color:var(--silver2);}

/* SCORE RING */
.score-wrap{display:flex;flex-direction:column;align-items:center;padding:1.5rem 0;}
.score-ring{position:relative;width:140px;height:140px;}
.score-ring svg{transform:rotate(-90deg);}
.score-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.score-num{font-family:var(--font-display);font-size:44px;font-weight:600;color:var(--gold);line-height:1;}
.score-lbl{font-size:10px;color:var(--muted);}
.score-grade-text{font-family:var(--font-display);font-size:16px;font-weight:600;color:var(--gold);margin-top:.4rem;}

/* MICRO BARS */
.mini-bars{display:flex;gap:3px;align-items:flex-end;height:32px;margin-top:.65rem;}
.mb{flex:1;border-radius:2px 2px 0 0;min-width:5px;}

/* BADGE */
.badge{display:inline-flex;align-items:center;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:600;}
.b-gold{background:var(--goldfade);color:var(--gold2);border:1px solid var(--goldbdr);}
.b-green{background:var(--greenfade);color:var(--green);border:1px solid var(--greenbdr);}
.b-red{background:var(--redfade);color:var(--red);border:1px solid var(--redbdr);}
.b-silver{background:var(--silverfade);color:var(--silver2);border:1px solid var(--silverbdr);}

@media(max-width:600px){
  .g2{grid-template-columns:1fr;}
  .bank-grid{grid-template-columns:repeat(2,1fr);}
  .plan-picker{grid-template-columns:repeat(2,1fr);}
  .rh-amount{font-size:60px;}
}
