/* Investor Portal – secure login / register (v2.1) */
.ipa-body{margin:0;font-family:'Hanken Grotesk','Hind Siliguri','Noto Sans Bengali',-apple-system,'Segoe UI',Roboto,Arial,sans-serif;color:#0b0b0d;background:#f6f6f7;-webkit-font-smoothing:antialiased}
.ipa-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}
.ipa-brand{position:relative;overflow:hidden;color:#fff;padding:48px 60px;display:flex;flex-direction:column;justify-content:space-between;
  background:radial-gradient(900px 500px at 0% -10%,rgba(217,30,42,.75) 0,transparent 60%),radial-gradient(800px 600px at 110% 110%,rgba(232,34,47,.6) 0,transparent 55%),linear-gradient(160deg,#0b0b0d 0%,#3a0c10 100%)}
.ipa-orb{position:absolute;border-radius:50%;background:#fff;opacity:.08;animation:ipaf 9s ease-in-out infinite}
.ipa-orb.o1{width:360px;height:360px;right:-100px;top:16%}.ipa-orb.o2{width:220px;height:220px;left:-70px;bottom:10%;animation-delay:-4s}
@keyframes ipaf{50%{transform:translateY(-18px)}}
.ipa-logo{position:relative;display:inline-flex;align-items:center;gap:12px;font-weight:800;font-size:20px;color:#fff;text-decoration:none}
.ipa-logo .mark{width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,#e8222f,#d91e2a);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px rgba(232,34,47,.55)}
.ipa-hero{position:relative;max-width:500px}
.ipa-hero h2{font-size:40px;line-height:1.12;margin:0 0 14px;font-weight:800;letter-spacing:-.5px}
.ipa-hero h2 em{font-style:normal;background:linear-gradient(90deg,#ff9aa1,#ffd0d3);-webkit-background-clip:text;background-clip:text;color:transparent}
.ipa-hero p{opacity:.8;font-size:16px;margin:0 0 28px}
.ipa-hero ul{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.ipa-hero li{display:flex;gap:12px;align-items:center;font-size:15px;opacity:.95;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);padding:11px 14px;border-radius:14px;backdrop-filter:blur(6px)}
.ipa-hero li b{flex:0 0 28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#10b981,#ff6b73);display:flex;align-items:center;justify-content:center;font-size:13px}
.ipa-foot{position:relative;font-size:13px;opacity:.6}
.ipa-main{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px}
.ipa-back{position:absolute;top:26px;right:32px;font-size:14px;color:#5b5b63;text-decoration:none;font-weight:600}.ipa-back:hover{color:#e8222f}
.ipa-card{width:100%;max-width:450px;background:#fff;border-radius:26px;padding:36px;box-shadow:0 1px 2px rgba(11,11,13,.04),0 30px 70px -20px rgba(120,12,20,.35);box-sizing:border-box;margin:24px auto;border:1px solid #efeff1;animation:ipar .4s ease both}
@keyframes ipar{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.ipa-card.wide{max-width:660px}.ipa-card *{box-sizing:border-box}
.ipa-card h1{font-size:26px;line-height:1.2;margin:0 0 6px;font-weight:800;color:#0b0b0d;letter-spacing:-.3px}
.ipa-sub{margin:0 0 22px;color:#5b5b63;font-size:14.5px}
.ipa-badge{width:56px;height:56px;border-radius:17px;background:linear-gradient(135deg,#fde9eb,#fde9eb);color:#e8222f;display:flex;align-items:center;justify-content:center;margin-bottom:16px}.ipa-badge .ipa-i{width:27px;height:27px}
.ipa-i{width:19px;height:19px;flex:0 0 auto}
.ipa-alert{padding:12px 14px;border-radius:12px;font-size:14px;margin:0 0 18px;line-height:1.45;font-weight:600}
.ipa-alert.err{background:#ffe5ec;color:#b3121d;border:1px solid #f5b9be}.ipa-alert.ok{background:#dcfaf0;color:#0b7a52;border:1px solid #a8ecd2}
/* sign-in progress */
.ipa-steps{list-style:none;display:flex;gap:6px;margin:0 0 22px;padding:0}
.ipa-steps li{flex:1;display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;color:#9a9aa3}
.ipa-steps li i{width:24px;height:24px;border-radius:50%;background:#efeff1;display:flex;align-items:center;justify-content:center;font-style:normal;font-size:12px;flex:0 0 auto}
.ipa-steps li.on{color:#e8222f}.ipa-steps li.on i{background:linear-gradient(135deg,#e8222f,#d91e2a);color:#fff;box-shadow:0 6px 14px rgba(232,34,47,.45)}
.ipa-steps li.done{color:#0f9d6a}.ipa-steps li.done i{background:#10b981;color:#fff}
.ipa-steps li+li:before{content:"";flex:1;height:2px;background:#e7e7ea;margin-right:2px;order:-1;min-width:8px}
/* role switch */
.ipa-seg{display:grid;grid-template-columns:1fr 1fr;background:#efeff1;border-radius:14px;padding:4px;margin:0 0 20px}
.ipa-seg label{margin:0;cursor:pointer}.ipa-seg input{position:absolute;opacity:0;pointer-events:none}
.ipa-seg span{display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 8px;border-radius:11px;font-size:14px;font-weight:700;color:#5b5b63;transition:.18s}
.ipa-seg input:checked+span{background:#fff;color:#e8222f;box-shadow:0 4px 14px rgba(11,11,13,.12)}
/* fields */
.ipa-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.ipa-f{display:block;margin-bottom:16px}.ipa-l{display:block;font-size:13px;font-weight:700;color:#2a2a30;margin-bottom:6px}
.ipa-w{display:flex;align-items:center;gap:10px;background:#f7f7f8;border:1.5px solid #e7e7ea;border-radius:14px;padding:0 14px;transition:.15s;color:#9a9aa3}
.ipa-w:focus-within{border-color:#d91e2a;background:#fff;box-shadow:0 0 0 4px rgba(217,30,42,.15);color:#e8222f}
.ipa-w input{flex:1;border:0;background:transparent;outline:0;font:inherit;font-size:15px;color:#0b0b0d;padding:14px 0;min-width:0}
.ipa-eye{border:0;background:none;cursor:pointer;color:#9a9aa3;padding:4px;display:flex}.ipa-eye.on{color:#e8222f}
.ipa-row{display:flex;justify-content:space-between;align-items:center;margin:-4px 0 18px;font-size:13.5px}.ipa-row a{color:#e8222f;font-weight:700;text-decoration:none}
.ipa-trust{display:flex;gap:8px;align-items:center;font-size:12.5px;color:#0f9d6a;font-weight:700;margin:0 0 14px;background:#e9fbf4;padding:9px 12px;border-radius:11px}
.ipa-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:14px;padding:15px;font:inherit;font-size:15.5px;font-weight:800;color:#fff;cursor:pointer;background:linear-gradient(135deg,#e8222f,#d91e2a);box-shadow:0 14px 30px -10px rgba(232,34,47,.7);transition:.18s}
.ipa-btn:hover{transform:translateY(-1px);filter:brightness(1.06)}.ipa-btn.busy{opacity:.7;pointer-events:none}.ipa-btn.busy span:after{content:"…"}
.ipa-alt{text-align:center;margin:18px 0 0;font-size:14px;color:#5b5b63}.ipa-alt a{color:#e8222f;font-weight:700;text-decoration:none}
.ipa-link{background:none;border:0;color:#e8222f;font:inherit;font-weight:700;font-size:13.5px;cursor:pointer;padding:4px 2px}.ipa-link:disabled{color:#a8a8b0;cursor:not-allowed}
form.ipa-alt{margin-top:14px}
/* OTP / PIN */
.ipa-otpbox{background:#f7f7f8;border:1.5px solid #e7e7ea;border-radius:16px;padding:14px;margin-bottom:14px}
.ipa-otph{display:flex;gap:12px;align-items:center;margin-bottom:10px}.ipa-otph .ico{width:38px;height:38px;border-radius:11px;background:#fde9eb;color:#e8222f;display:flex;align-items:center;justify-content:center}
.ipa-otph b{display:block;font-size:14px}.ipa-otph small{color:#5b5b63;font-size:12.5px}
.ipa-otp{width:100%;text-align:center;font:inherit;font-size:26px;font-weight:800;letter-spacing:.5em;padding:12px 8px 12px 18px;border:1.5px solid #e1e1e5;border-radius:13px;background:#fff;color:#0b0b0d;outline:0}
.ipa-otp:focus{border-color:#d91e2a;box-shadow:0 0 0 4px rgba(217,30,42,.15)}.ipa-pin{margin-bottom:16px}
.ipa-rsrow{display:flex;justify-content:space-between;gap:10px;margin-top:10px}.ipa-rs{margin:0}
.ipa-meter{display:flex;gap:6px;margin:-4px 0 18px}.ipa-meter i{flex:1;height:5px;border-radius:5px;background:#e7e7ea;transition:.2s}
.ipa-meter[data-s="1"] i:nth-child(-n+1){background:#e8222f}.ipa-meter[data-s="2"] i:nth-child(-n+2){background:#f59e0b}.ipa-meter[data-s="3"] i:nth-child(-n+3){background:#10b981}.ipa-meter[data-s="4"] i{background:#059669}
@media(max-width:900px){.ipa-page{grid-template-columns:1fr}.ipa-brand{display:none}.ipa-main{padding:24px 14px;min-height:100vh;background:radial-gradient(600px 300px at 50% -10%,#fde9eb,transparent 70%),#f6f6f7}.ipa-back{position:static;align-self:flex-end;margin-bottom:6px}.ipa-card{padding:26px 20px;border-radius:22px}.ipa-grid{grid-template-columns:1fr}}
@media(max-width:420px){.ipa-steps li span{display:none}}

/* Forgot-password popup */
.ipa-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(10,14,28,.55);backdrop-filter:blur(4px)}
.ipa-modal[hidden]{display:none}
.ipa-modal-box{position:relative;width:100%;max-width:400px;background:#fff;border-radius:22px;padding:30px 26px 24px;text-align:center;box-shadow:0 30px 70px -20px rgba(10,14,28,.6);animation:ipaPop .18s ease-out}
@keyframes ipaPop{from{transform:translateY(10px) scale(.97);opacity:0}to{transform:none;opacity:1}}
.ipa-modal-box h3{margin:0 0 8px;font-size:20px;font-weight:800;color:#1a1a1f}
.ipa-modal-box p{margin:0 0 16px;font-size:14.5px;line-height:1.55;color:#5b5b63}
.ipa-modal-x{position:absolute;right:12px;top:8px;border:0;background:none;font-size:28px;line-height:1;color:#8a90a6;cursor:pointer}
.ipa-wa{display:flex;align-items:center;justify-content:center;gap:10px;background:#25d366;color:#fff!important;font-weight:800;font-size:15px;text-decoration:none;border-radius:14px;padding:14px 16px;box-shadow:0 12px 26px -10px rgba(37,211,102,.8)}
.ipa-wa:hover{filter:brightness(.95)}
.ipa-modal .ipa-modal-num{margin:14px 0 0;font-weight:700;color:#1a1a1f}
.ipa-modal .ipa-modal-hours{margin:6px 0 0;font-size:13px}

/* Brand logo */
.ipa-logo .mark.has-logo{background:#fff;padding:5px;box-shadow:none}.ipa-logo .mark img{width:100%;height:100%;object-fit:contain;display:block}
.ipa-card h1,.ipa-hero h2,.ipa-logo{font-family:'Bricolage Grotesque','Hanken Grotesk','Hind Siliguri',sans-serif}
.ipa-logo{text-transform:uppercase;letter-spacing:.02em}
.ipa-logo .mark.has-logo{width:60px;height:60px;border-radius:14px}

/* Role labels */
.ipa-role{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:6px 12px;border-radius:999px;margin:0 0 12px}
.ipa-role.is-admin{background:#0b0b0d;color:#fff}.ipa-role.is-inv{background:#fde9eb;color:#d91e2a}
.ipa-herotag{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#fff;background:rgba(232,34,47,.9);padding:7px 14px;border-radius:999px;margin:0 0 16px}
/* Certificate (desktop only) */
.ipa-cert,.ipa-cert-lb{display:none}
@media(min-width:1025px){
 .ipa-brand.has-cert .ipa-hero{max-width:56%}
 .ipa-brand.has-cert .ipa-hero li{font-size:13.5px;padding:10px 12px}
 .ipa-cert:not([hidden]){display:block;position:absolute;right:48px;bottom:92px;width:min(34%,300px);z-index:3;cursor:zoom-in}
 .ipa-cert-in,.ipa-cert-lbin{position:relative;background:#fff;border-radius:12px;padding:6px;box-shadow:0 20px 50px -10px rgba(0,0,0,.6);line-height:0}
 .ipa-cert canvas,.ipa-cert-lb canvas{display:block;max-width:100%;border-radius:8px;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
 .ipa-cert-shield{position:absolute;inset:0;z-index:2}
 .ipa-cert small{display:block;margin-top:8px;font-size:11.5px;color:rgba(255,255,255,.7);text-align:center;line-height:1.3}
 .ipa-cert-lb:not([hidden]){display:flex;position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.82);align-items:center;justify-content:center}
 .ipa-cert-lbin{padding:8px;border-radius:14px}
 #ipa-cert-x{position:absolute;top:18px;right:28px;background:none;border:0;color:#fff;font-size:42px;line-height:1;cursor:pointer}
}
@media print{.ipa-cert,.ipa-cert-lb{display:none!important}}
