/* Financial Horoscope™ Quick Scan — V4.0 "Ivory Heritage" UI (presentation only) */
:root{
  --ivory:#F6F1E6;--paper:#FFFDF8;--line:#E6DCC6;--line2:#EFE7D6;
  --navy:#10213A;--navy2:#1B3358;--navy3:#24426E;--ink:#1A2433;--muted:#5D6676;
  --gold:#C7A04C;--gold2:#EAD19A;--goldDeep:#8A6514;--goldSoft:#FBF4E3;
  --good:#1F7A4D;--goodBg:#E9F5EE;--warn:#A8650A;--warnBg:#FFF4E0;--alert:#B42318;--alertBg:#FDECEA;
  --danger:#C2412F;--caution:#D99A2B;--stable:#C7A04C;--growth:#1D8655;
  --serif:"Playfair Display",Georgia,"Times New Roman",serif;--sans:"DM Sans",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --r:22px;--shadow:0 22px 50px -24px rgba(16,33,58,.35),0 2px 8px rgba(16,33,58,.05);--ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:16.5px;line-height:1.55;min-height:100vh;
  background-image:radial-gradient(circle at 50% -10%,rgba(234,209,154,.35),transparent 55%)}
html:not(.ui-ready) #app{opacity:0}
#app{min-height:60vh;padding:22px 14px 28px;transition:opacity .25s}
h1,h2,h3{font-family:var(--serif);font-weight:700;color:var(--navy);margin:0;letter-spacing:-.01em}
h1{font-size:clamp(28px,5vw,36px);line-height:1.12}
h2{font-size:clamp(23px,4.2vw,29px);line-height:1.18;margin:6px 0 10px}
h3{font-size:20px}
p{margin:0}
a{color:var(--goldDeep)}
button{font:inherit}
.ic{width:1.25em;height:1.25em;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:-.25em}
.center{text-align:center}
.srOnly{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:6px}

/* ---------- top bar ---------- */
.qbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;
  background:rgba(251,248,241,.95);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.qbarLogo{height:44px;width:auto}
.qbarRight{display:flex;align-items:center;gap:8px}
.qbarChip{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--navy);background:var(--paper);border:1px solid var(--line);border-radius:99px;padding:7px 12px;white-space:nowrap}
.qbarChip .ic{color:var(--goldDeep)}
.qbarBack{font-size:13px;font-weight:600;color:var(--muted);text-decoration:none;white-space:nowrap}
.qbarBack:hover{color:var(--goldDeep)}
@media (max-width:480px){.qbarBack{display:none}.qbarLogo{height:38px}}

/* ---------- card ---------- */
.card{position:relative;max-width:640px;margin:0 auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:clamp(22px,4vw,32px);box-shadow:var(--shadow)}
.card.in{animation:cardIn .45s var(--ease) both}
@keyframes cardIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.brand{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:800;letter-spacing:.14em;color:var(--goldDeep);background:var(--goldSoft);border:1px solid var(--gold2);border-radius:99px;padding:6px 12px;margin-bottom:12px}
.hero{font-size:clamp(30px,5.6vw,40px);line-height:1.1;text-align:center;margin:14px 0 12px;text-wrap:balance}
.sub{color:var(--muted);line-height:1.6}
.sub.center{text-align:center;max-width:52ch;margin:0 auto}
.small{font-size:12.5px;color:#7A8190;line-height:1.55;margin-top:14px}
.small .ic{color:var(--goldDeep)}
.mini{font-size:12px;color:#7A8190;margin-top:10px;text-align:center}
.identity{text-align:center;color:var(--muted);font-size:12.5px;margin-top:16px}

/* ---------- buttons ---------- */
.btn{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;border:0;border-radius:14px;background:linear-gradient(180deg,var(--navy2),var(--navy));color:#fff;padding:16px 20px;font-size:16px;font-weight:700;cursor:pointer;margin-top:14px;text-decoration:none;box-shadow:0 12px 24px -14px rgba(16,33,58,.8);transition:transform .15s,box-shadow .2s,filter .2s}
.btn:hover{transform:translateY(-1px);filter:brightness(1.05)}
.btn:active{transform:translateY(0)}
.btn.gold{background:linear-gradient(135deg,#F1D68E,var(--gold) 70%);color:#0B1626;box-shadow:0 12px 28px -12px rgba(199,160,76,.8)}
.btn.ghost{background:#fff;color:var(--navy);border:1.5px solid var(--line);box-shadow:none;font-weight:600}
.btn.ghost:hover{border-color:var(--gold)}
.btn .ic{width:20px;height:20px}
.navrow{display:flex;gap:10px}
.navrow .btn{margin-top:10px}
.pulse{animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 12px 24px -14px rgba(16,33,58,.8),0 0 0 0 rgba(199,160,76,.5)}50%{box-shadow:0 12px 24px -14px rgba(16,33,58,.8),0 0 0 12px rgba(199,160,76,0)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- welcome ---------- */
.welcome .brand{display:flex;width:max-content;margin:0 auto 6px}
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:22px 0 4px}
.pillars div{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 6px;border-radius:14px;background:var(--ivory);border:1px solid var(--line);font-size:13px;font-weight:700;color:var(--navy)}
.pillars .ic{width:30px;height:30px;color:var(--goldDeep);stroke-width:1.4}
.how{list-style:none;margin:18px 0 4px;padding:0;display:grid;gap:10px}
.how li{display:flex;gap:12px;align-items:center;font-size:15px;color:var(--muted)}
.how li b{color:var(--ink)}
.how .ic{width:36px;height:36px;padding:8px;border-radius:50%;background:var(--navy);color:var(--gold2)}
.complimentary{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--goldSoft);border:1px solid var(--gold2);padding:12px;border-radius:14px;text-align:center;margin-top:12px;font-weight:700;color:var(--goldDeep);font-size:14px}
.trust{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 0;margin-top:14px;font-size:13px;color:var(--muted);font-weight:600}
.trust span{padding:0 12px}.trust span+span{border-left:1px solid var(--line)}
@media (max-width:420px){.pillars{grid-template-columns:repeat(2,1fr)}}

/* ---------- journey + progress ---------- */
.journey{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:0 0 18px}
.journey span{position:relative;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#A7AEBB;text-align:center;padding-top:10px}
.journey i{position:absolute;left:0;right:0;top:0;height:4px;border-radius:99px;background:var(--line2)}
.journey .done{color:var(--goldDeep)}.journey .done i{background:var(--gold)}
.journey .on{color:var(--navy)}.journey .on i{background:linear-gradient(90deg,var(--gold),var(--navy))}
.progress{height:8px;background:var(--line2);border-radius:99px;overflow:hidden;margin:4px 0 18px}
.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--gold2),var(--gold));border-radius:99px;transition:width .5s var(--ease)}

/* ---------- questions ---------- */
.qhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:2px 0 14px}
.pill{display:inline-flex;align-items:center;gap:6px;background:var(--goldSoft);color:var(--goldDeep);border:1px solid var(--gold2);border-radius:99px;padding:5px 11px;font-size:12.5px;font-weight:800;letter-spacing:.02em}
.pillar{font-size:12px;font-weight:800;color:var(--navy);letter-spacing:.08em;text-transform:uppercase}
.qicon{width:60px;height:60px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(145deg,var(--navy3),var(--navy));box-shadow:0 12px 22px -12px rgba(16,33,58,.8);margin:4px 0 14px}
.qicon .ic{width:30px;height:30px;color:var(--gold2);stroke-width:1.5}
.options{display:grid;gap:10px;margin-top:16px}
.option{position:relative;display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:14px 16px;color:var(--ink);font-size:16px;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s,transform .15s,box-shadow .2s;min-height:54px}
.option:hover{border-color:var(--gold);transform:translateY(-1px);box-shadow:0 10px 20px -14px rgba(16,33,58,.5)}
.option .num{flex:none;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:var(--ivory);border:1px solid var(--line);font-size:12.5px;font-weight:800;color:var(--goldDeep)}
.option .tick{margin-left:auto;opacity:0;color:var(--goldDeep);width:22px;height:22px;transition:opacity .15s}
.option.sel{border:2px solid var(--gold);background:var(--goldSoft)}
.option.sel .tick{opacity:1}.option.sel .num{background:var(--navy);color:var(--gold2);border-color:var(--navy)}
.why{display:flex;gap:8px;align-items:flex-start;font-size:13.5px;color:var(--muted);background:#FBF8F0;border:1px dashed var(--line);border-radius:12px;padding:10px 12px;margin:14px 0 2px}
.why .ic{color:var(--goldDeep);margin-top:2px}
.kbdHint{margin-top:10px;font-size:12px;color:#A7AEBB;text-align:center}
@media (max-width:600px){.kbdHint{display:none}}

/* ---------- goals ---------- */
.goalCount{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--goldDeep)}
.goalGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:14px 0 4px}
.goal{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:14px;border:1.5px solid var(--line);border-radius:16px;background:#fff;text-align:left;font-size:14.5px;font-weight:700;color:var(--ink);cursor:pointer;transition:all .15s;min-height:96px}
.goal .ic{width:30px;height:30px;color:var(--goldDeep);stroke-width:1.4}
.goal .tick{position:absolute;top:10px;right:10px;width:22px;height:22px;opacity:0;color:var(--goldDeep)}
.goal:hover{border-color:var(--gold)}
.goal.sel{border:2px solid var(--gold);background:var(--goldSoft)}
.goal.sel .tick{opacity:1}

/* ---------- fields ---------- */
.label{display:block;font-size:13.5px;font-weight:700;color:var(--navy);margin-top:4px}
.field{width:100%;padding:13px 14px;border:1.5px solid var(--line);border-radius:12px;margin:6px 0 14px;font-size:16px;background:#fff;color:var(--ink);transition:border-color .15s,box-shadow .15s;min-height:50px;font-family:inherit}
.field:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(199,160,76,.18);outline:none}
.fieldHelp{font-size:12.5px;color:var(--muted);margin:-9px 0 12px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 16px}
.chip{border:1.5px solid var(--line);background:#fff;color:var(--ink);border-radius:99px;padding:9px 14px;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s}
.chip.sel{background:var(--navy);border-color:var(--navy);color:var(--gold2)}
.consent{display:flex!important;gap:12px;align-items:flex-start;font-weight:500;font-size:14.5px;line-height:1.5;margin:8px 0 2px}
.consent input{width:20px;height:20px;margin-top:2px;accent-color:var(--navy);flex:none}
.error{color:var(--alert);margin-top:10px;font-size:14px;font-weight:600}
.error:empty{display:none}

/* ---------- detailed form ---------- */
.stepper{display:flex;gap:6px;margin:0 0 12px}
.stepper span{flex:1;height:30px;display:grid;place-items:center;border-radius:8px;font-size:12px;font-weight:800;background:var(--line2);color:#8A93A3}
.stepper .done{background:var(--gold2);color:var(--goldDeep)}
.stepper .on{background:var(--navy);color:var(--gold2)}
.sectionHead{display:flex;align-items:center;gap:12px;margin:4px 0 6px;flex-wrap:wrap}
.sectionHead h2{margin:0}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 14px;margin-top:14px}
.fld{min-width:0}
.inWrap{position:relative}
.inWrap.rupee::before{content:"₹";position:absolute;left:14px;top:50%;transform:translateY(-50%);margin-top:-4px;font-weight:700;color:var(--muted);pointer-events:none}
.inWrap.rupee .field{padding-left:30px}
.amt{min-height:16px;font-size:12px;color:var(--goldDeep);font-weight:600;margin:-10px 0 10px 2px}
.repeatRow{display:grid;gap:6px}
.repeatRow .btn{margin-top:8px;padding:12px 16px;font-size:14px}
.savebar{display:flex;gap:10px;position:sticky;bottom:0;z-index:5;background:linear-gradient(180deg,rgba(255,253,248,0),var(--paper) 30%);padding:12px 0 6px;margin-top:8px}
.savebar .btn{margin-top:0}
@media (max-width:560px){.grid{grid-template-columns:1fr}}

/* ---------- results ---------- */
.dialWrap{display:flex;align-items:center;gap:22px;margin:18px 0 12px;padding:20px;border-radius:18px;background:linear-gradient(145deg,var(--navy3),var(--navy));color:#fff}
.dial{flex:0 0 150px;width:150px;height:150px;position:relative}
.dial svg{width:100%;height:100%;transform:rotate(-90deg)}
.dial .track{fill:none;stroke:rgba(255,255,255,.12);stroke-width:12}
.dial .arc{fill:none;stroke-width:12;stroke-linecap:round;transition:stroke-dashoffset 1.3s var(--ease)}
.arc.danger{stroke:#E86A58}.arc.caution{stroke:#F0B44A}.arc.stable{stroke:var(--gold2)}.arc.growth{stroke:#4FCB8E}
.dialMid{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.dialMid b{font-family:var(--serif);font-size:44px;line-height:1;color:#fff}
.dialMid small{font-size:11.5px;color:#C9D2E0;margin-top:4px}
.dialText p{font-size:13.5px;color:#C9D2E0;margin:10px 0 0}
.zone{display:inline-block;font-weight:800;font-size:14px;padding:6px 14px;border-radius:99px}
.zone.danger{background:#E86A58;color:#fff}.zone.caution{background:#F0B44A;color:#1A2433}.zone.stable{background:var(--gold2);color:#1A2433}.zone.growth{background:#4FCB8E;color:#0B2A1A}
.legend{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:10px;font-size:11.5px;color:#C9D2E0}
.legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}
.legend .danger{background:#E86A58}.legend .caution{background:#F0B44A}.legend .stable{background:var(--gold2)}.legend .growth{background:#4FCB8E}
.stickyCta{position:sticky;bottom:10px;z-index:6}
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}
.pc{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff}
.pcTop{display:flex;align-items:center;gap:8px;font-size:15px}
.pcTop .ic{color:var(--goldDeep)}
.meter{height:8px;border-radius:99px;background:var(--line2);margin:10px 0 8px;overflow:hidden}
.meter i{display:block;height:100%;border-radius:99px;background:var(--gold);transition:width 1s var(--ease)}
.pc.good .meter i{background:var(--good)}.pc.warn .meter i{background:#D99A2B}.pc.alert .meter i{background:var(--alert)}
.tag{font-weight:800;font-size:13px}
.tag.good{color:var(--good)}.tag.warn{color:var(--warn)}.tag.alert{color:var(--alert)}
.insight{background:linear-gradient(180deg,#FFFCF4,#FBF5E6);border:1px solid var(--gold2);border-left:5px solid var(--gold);padding:16px 18px;border-radius:14px;margin:16px 0}
.insight>b{display:flex;align-items:center;gap:8px;color:var(--goldDeep);font-size:13px;letter-spacing:.06em;text-transform:uppercase}
.insight p{margin-top:8px;color:var(--ink)}
.goalsLine{font-size:14px;color:var(--muted);margin:0 0 12px}
.unlock{border:1px solid var(--line);background:#fff;border-radius:18px;padding:20px;margin:16px 0}
.unlock ul{list-style:none;padding:0;margin:12px 0}
.unlock li{display:flex;gap:10px;align-items:flex-start;margin:8px 0;font-size:15px}
.unlock li .ic{color:var(--good);margin-top:2px}
.unlockTag{display:block;text-align:center;color:var(--goldDeep);font-size:13px;letter-spacing:.08em;margin-top:6px}
.idPill{display:inline-flex;align-items:center;gap:6px;font-weight:800;font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:.5px;color:var(--navy);background:var(--goldSoft);border:1px solid var(--gold2);border-radius:8px;padding:2px 8px}
.result{border:1px solid var(--line);border-radius:14px;padding:13px 16px;margin:10px 0;display:flex;justify-content:space-between;gap:12px;align-items:center;background:#fff}
@media (max-width:520px){.dialWrap{flex-direction:column;text-align:center}.dialText .legend{justify-content:center}.pgrid{grid-template-columns:1fr}}

/* ---------- intro / success / contact ---------- */
.secList{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0 6px}
.secList span{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--ink);background:var(--ivory);border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.secList b{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:var(--gold2);font-size:11px}
@media (max-width:480px){.secList{grid-template-columns:1fr 1fr}}
.success{width:64px;height:64px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;background:var(--goodBg);color:var(--good)}
.success .ic{width:34px;height:34px}
.contact{display:flex;align-items:center;gap:14px;text-align:left;background:linear-gradient(145deg,var(--navy3),var(--navy));color:#E9EEF6;padding:16px 18px;border-radius:16px;margin-top:18px;font-size:14px;line-height:1.6}
.contact .ic{width:38px;height:38px;padding:8px;border-radius:50%;background:rgba(255,255,255,.08);color:var(--gold2)}
.contact a{color:var(--gold2);text-decoration:none;font-weight:700}

/* ---------- scheduler ---------- */
.slotgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}
.slot{margin:0!important;justify-content:center;text-align:center;padding:13px 8px!important;font-size:14.5px;min-height:0}
.slot.disabled{opacity:.45;cursor:not-allowed}
#slotArea h3{margin-top:18px}

/* ---------- footer ---------- */
.qfoot{max-width:640px;margin:6px auto 0;padding:6px 20px 34px;text-align:center;font-size:12px;line-height:1.6;color:#7A8190}
.qfoot p{margin:6px 0}
.qfootBrand{color:var(--navy);font-size:13px}
.qfootNew button{background:none;border:0;color:#A7AEBB;text-decoration:underline;cursor:pointer;font-size:12px}
.savebar .ghost{flex:0 0 36%}.savebar .gold{flex:1}
@media (max-width:420px){.savebar .btn{padding:14px 12px;font-size:15px}}
