/* Tabler-inspired cards and controls, scoped to the existing registration flow. */
.registration-living{--ui-ink:#182433;--ui-muted:#64748b;--ui-blue:#4263eb;--ui-purple:#7c3aed;--ui-teal:#0d9488;background:#f5f7fc!important;color:var(--ui-ink);isolation:isolate}
.registration-living::before,.registration-living::after{content:"";position:fixed;z-index:-1;pointer-events:none;width:580px;height:580px;border-radius:50%;filter:blur(55px);opacity:.38;animation:ambient-drift 20s ease-in-out infinite alternate}
.registration-living::before{top:-200px;left:-160px;background:radial-gradient(circle,#d0bcff 0%,#c5e5ff 45%,transparent 70%)}
.registration-living::after{bottom:-230px;right:-180px;background:radial-gradient(circle,#c7f5e6 0%,#ffddcf 48%,transparent 72%);animation-delay:-9s}
.registration-living #publicTopNav{background:rgba(255,255,255,.88)!important;border-color:#e6eaf4!important;box-shadow:0 2px 16px #18243305}
.registration-living #pageShell{max-width:1120px;padding-top:30px;padding-bottom:32px;margin-top:0}
.registration-surface{background:rgba(255,255,255,.97);border:1px solid #e4e9f3;border-radius:28px;box-shadow:0 12px 60px #1e293b09,0 2px 8px #1e293b03;margin:0!important;padding:32px}
.registration-brand-header{display:flex;align-items:center;gap:25px;padding:14px 4px 30px;position:relative}
.brand-portrait{position:relative;flex:0 0 110px;height:110px;display:grid;place-items:center;background:linear-gradient(145deg,#fff8ec,#fff);border:1px solid #f2e6cf;border-radius:30px;box-shadow:0 8px 28px #eab30815;animation:brand-appear .8s ease both}
.brand-portrait img{width:90px;height:90px;object-fit:contain;position:relative;z-index:1;filter:drop-shadow(0 4px 5px #8b5e1815)}
.brand-orbit{position:absolute;width:12px;height:12px;right:8px;top:10px;border:3px solid white;border-radius:50%;background:#ffb341;box-shadow:0 0 0 6px #ffb34114;animation:gentle-pulse 3s ease-in-out infinite}
.brand-copy{flex:1;min-width:0}
.brand-eyebrow{font:700 11px/1.4 "Noto Sans Devanagari",system-ui;letter-spacing:2px;color:#64748b;margin:0 0 12px;display:flex;align-items:center;gap:8px}
.brand-eyebrow>span{height:7px;width:7px;border-radius:50%;background:#16a085;box-shadow:0 0 0 4px #16a08512}
.registration-brand-header .hero-title{font-size:clamp(23px,3vw,34px);line-height:1.45;font-weight:800;color:#182433;margin:0;letter-spacing:-.5px}
.registration-brand-header .hero-subtitle{color:#7b879a;font-size:13px;line-height:1.8;margin:8px 0 0;max-width:480px}
.brand-break{display:none}
.brand-contact{display:flex;align-items:center;gap:10px;flex-shrink:0;padding:12px 14px;border:1px solid #e5eafa;border-radius:14px;background:#f8faff;color:#526480;font-size:11px;transition:transform .2s,border-color .2s;text-decoration:none}
.brand-contact:hover{transform:translateY(-3px);border-color:#a5b4fc}
.brand-contact small{display:block;color:#3649ad;font:700 14px/1.6 system-ui;letter-spacing:.5px}
.contact-symbol{display:grid;place-items:center;width:32px;height:32px;background:#e9eeff;color:#4263eb;border-radius:10px;font-size:22px}
.registration-journey{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:17px 22px;margin:0 0 28px;background:linear-gradient(100deg,#f4f5ff,#f1fbf9 60%,#fff8f3);border:1px solid #e9edf7;border-radius:16px;font-size:12px;color:#5c6880;font-weight:600}
.registration-journey>span{display:flex;align-items:center;gap:10px}
.registration-journey b{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#e9e7ff;color:#7252d5;font:700 11px system-ui}
.registration-journey>span:nth-of-type(2) b{background:#dff3ee;color:#138e77}
.registration-journey>span:nth-of-type(3) b{background:#ffeddf;color:#ca7736}
.registration-journey i{font-style:normal;color:#acb6c9}
.registration-living .lookup-card{border:1px solid #e7eaf5;background:linear-gradient(115deg,#fbfbff,#f7faff);border-radius:18px;box-shadow:none;padding:22px;margin-bottom:24px}
.registration-living .lookup-shell{padding:13px 16px;border:1px solid #dbe2ee;border-radius:12px;box-shadow:0 2px 4px #1e293b03}
.registration-living .lookup-shell:focus-within{border-color:#8d85f4;box-shadow:0 0 0 4px #7c3aed0b;transform:none}
.registration-living .lookup-icon{color:#7c6fca}
.registration-living .lookup-status{font-size:12px;color:#7f89a1;margin-top:12px;transition:color .2s}
.registration-living .lookup-status.is-error{color:#c2414c}
.registration-living .lookup-results{border-color:#e7eaf5;box-shadow:0 12px 25px #4338ca0a;border-radius:12px;animation:panel-enter .25s ease}
.registration-living .lookup-result-button:hover{background:#f4f3ff}
.registration-living #payForm{display:flex;flex-direction:column;gap:24px}
.registration-living #payForm>*{margin-top:0!important}
.registration-living #payForm .grid{display:grid;gap:18px}
.registration-living #payForm label.font-semibold{color:#3e4b63;font-size:13px;font-weight:700}
.registration-living #payForm input:not([type=hidden]):not([type=radio]):not([type=checkbox]),.registration-living #payForm select,.registration-living #payForm textarea{background:#fff;border:1px solid #dbe2ec;border-radius:11px;min-height:48px;padding:12px 14px;color:#24324a;font-size:14px;line-height:1.5;box-shadow:0 2px 3px #1e293b02;transition:border-color .22s,box-shadow .22s,background .22s;transform:none!important;width:100%;outline:none}
.registration-living #payForm input::placeholder,.registration-living #payForm textarea::placeholder{color:#a0aabc}
.registration-living #payForm textarea{min-height:110px;resize:vertical}
.registration-living #payForm input:focus,.registration-living #payForm select:focus,.registration-living #payForm textarea:focus{border-color:#8e87ed;box-shadow:0 0 0 4px #7c3aed0c;background:#fefeff}
.registration-living #payForm input[readonly]{background:#f6f8fc;color:#5a6680}
.registration-living input[type=radio]{accent-color:#6e59d9;width:16px;height:16px;flex-shrink:0}
.registration-living .chip{background:#fff;border-color:#dde3ef;border-radius:11px;padding:12px 18px;font-size:13px;transition:background .2s,border-color .2s,box-shadow .2s}
.registration-living .chip:hover{transform:none;background:#faf9ff;border-color:#b1a8ee;box-shadow:0 4px 12px #7c3aed08}
.registration-living .chip:has(input:checked){border-color:#a49ae9;background:#f4f2ff;box-shadow:0 0 0 1px #a49ae9}
.registration-living #programRadios>label,.registration-living #subprogramRadios>label{border:1px solid #e1e5f0;border-radius:13px;padding:18px;box-shadow:none;transition:transform .22s,box-shadow .22s,border-color .22s}
.registration-living #programRadios>label:hover,.registration-living #subprogramRadios>label:hover{transform:translateY(-2px);border-color:#aca4ee;box-shadow:0 6px 18px #5b4fc409}
.registration-living #programRadios>label:has(input:checked){background:linear-gradient(120deg,#f6f4ff,#f7fbff);border-color:#8e83de;box-shadow:0 0 0 1px #8e83de}
.registration-living #formModeBanner{border-color:#e6eaf6;background:#f5f7ff;color:#596884;border-radius:12px;font-size:12px;line-height:1.8}
.registration-living #payForm>section{background:linear-gradient(135deg,#fbfaff,#f6fbff 45%,#f3fcf9);border:1px solid #dfe7f1;border-radius:20px;padding:24px;overflow:hidden;position:relative}
.registration-living #payForm>section::before{content:"";position:absolute;right:-25px;top:-25px;width:110px;height:110px;border-radius:50%;background:#c2eff250;pointer-events:none}
.registration-living #registrationAccount{font-size:12px;color:#6c7690}
.registration-living #registrationFallbackQr>div>div{border-color:#e2e7f1!important;border-radius:16px;background:white;box-shadow:0 5px 20px #24324a05}
.registration-living #qr-card-img,.registration-living #registrationAccountQr{border-radius:12px!important;border-color:#e3e8f0!important;max-width:100%;transition:transform .3s}
.registration-living #qr-card-img:hover,.registration-living #registrationAccountQr:hover{transform:translateY(-3px)}
.registration-living #registrationUpi{background:#ebf7f3;border:1px solid #d1eee3;border-radius:13px;color:#2c7362}
.registration-living #registrationUpiId{font-family:system-ui;font-size:14px;overflow-wrap:anywhere}
.registration-living #registrationCopyUpi{font-size:12px;font-weight:700;color:#177d66;text-decoration:none;border:1px solid #b9dfd1;padding:8px 12px;border-radius:9px;background:#fff}
.registration-living .action-btn{background:linear-gradient(110deg,#6558d9,#4277e7);border-radius:11px;padding:13px 21px;font-size:14px;line-height:1.5;box-shadow:0 4px 13px #6558d928;transition:transform .2s,box-shadow .2s,filter .2s;position:relative;overflow:hidden}
.registration-living .action-btn::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent,rgba(255,255,255,.18),transparent);transform:translateX(-120%);transition:transform .6s}
.registration-living .action-btn:hover{background:linear-gradient(110deg,#6558d9,#4277e7);transform:translateY(-2px);box-shadow:0 8px 19px #6558d933;filter:brightness(1.05)}
.registration-living .action-btn:hover::after{transform:translateX(120%)}
.registration-living .action-btn:focus-visible,.registration-living button:focus-visible,.registration-living a:focus-visible{outline:3px solid #b2a7f3;outline-offset:3px}
.registration-living .action-btn:disabled{background:#b8bdcf;box-shadow:none;filter:none}
.registration-living #registrationPaymentWhatsApp,.registration-living #registrationPaymentSms{border-radius:11px;font-size:12px;padding:13px 16px;transition:transform .2s,box-shadow .2s;text-decoration:none;display:inline-flex;align-items:center}
.registration-living #registrationPaymentWhatsApp{background:#188971;box-shadow:0 4px 12px #18897115}
.registration-living #registrationPaymentSms{background:#477acc;box-shadow:0 4px 12px #477acc15}
.registration-living #registrationPaymentWhatsApp:hover,.registration-living #registrationPaymentSms:hover{transform:translateY(-2px)}
.qr-download-button{display:inline-flex;align-items:center;gap:9px;padding:11px 15px;background:#fff;border:1px solid #d9dfed;border-radius:11px;font-size:12px;font-weight:700;color:#6162a3;transition:background .2s,transform .2s}
.qr-download-button svg{width:18px;height:18px}
.qr-download-button:hover{background:#f4f3ff;transform:translateY(-1px)}
.qr-download-button[hidden]{display:none}
.registration-living #registrationPaymentHint{font-size:12px;color:#8090a7;line-height:1.8}
.registration-living #registrationPaymentMessage:not(:empty){padding:12px 16px;border-radius:11px;border:1px solid #f0d5dc;background:#fff5f7;color:#b54560;font-size:13px;animation:panel-enter .3s ease}
.registration-living [role=alert]{border-color:#f2cdd6;background:#fff5f7;animation:panel-enter .3s ease}
.registration-living #successBanner{border-color:#d0eadd;background:linear-gradient(110deg,#f0fbf5,#f3fbff);border-radius:18px;animation:panel-enter .5s ease}
.registration-living .ui-invalid{border-color:#db7294!important;box-shadow:0 0 0 4px #db729411!important;animation:field-shake .3s ease}
.registration-footer{margin:24px 0 0;padding:26px 30px;display:flex;justify-content:space-between;align-items:center;gap:24px;border:1px solid #e1e7f3;border-radius:22px;background:linear-gradient(110deg,#f0f1fe,#eff9f6 60%,#fff6ef);position:relative;overflow:hidden}
.footer-mark{display:flex;align-items:center;gap:12px}
.footer-mark img{height:42px;width:42px;object-fit:contain;filter:drop-shadow(0 2px 3px #1e293b12)}
.footer-mark strong{font-size:12px;color:#4b5871;display:block}
.footer-mark span{font-size:10px;color:#8b96ac;display:block;margin-top:5px}
.footer-credit{text-align:right;font:11px/1.8 system-ui;color:#8a93a5}
.footer-credit strong{font:700 13px/1.8 "Noto Sans Devanagari",system-ui;color:#475777}
.footer-credit a{color:#715acb;font-weight:700;text-decoration:none;border-bottom:1px solid #bdb0ec;padding-bottom:2px}
.footer-credit a:hover{color:#4263eb}
.registration-notifications{position:fixed;right:22px;bottom:22px;z-index:12000;display:flex;flex-direction:column;gap:10px;width:min(350px,calc(100vw - 32px));pointer-events:none}
.registration-toast{pointer-events:auto;display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid #e6eaf4;border-radius:15px;background:#fff;box-shadow:0 10px 40px #24324a16;animation:toast-enter .35s cubic-bezier(.2,.8,.2,1);font-size:12px;color:#4f5e74;line-height:1.7}
.toast-symbol{display:grid;place-items:center;flex:0 0 30px;height:30px;background:#eeecff;color:#6c59ca;border-radius:10px;font:700 16px system-ui}
.registration-toast[data-tone=error] .toast-symbol{background:#fff0f3;color:#c14e6d}
.registration-toast[data-tone=success] .toast-symbol{background:#e9f7f0;color:#208a66}
.registration-toast button{margin-left:auto;background:none;border:0;font-size:19px;color:#9aa4b6;cursor:pointer;padding:0 2px}
.registration-toast.toast-out{opacity:0;transform:translateY(10px);transition:opacity .2s,transform .2s}
.registration-living .form-animate{animation:surface-enter .65s ease both;opacity:1;transform:none}
.registration-living #slotModal>div,.registration-living #entryChoiceModal>div>div{animation:panel-enter .3s ease;border-radius:22px}
@keyframes ambient-drift{to{transform:translate(45px,35px) rotate(12deg)}}
@keyframes brand-appear{from{opacity:0;transform:translateY(8px) rotate(-5deg)}to{opacity:1;transform:none}}
@keyframes gentle-pulse{50%{box-shadow:0 0 0 9px #ffb34108}}
@keyframes surface-enter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes panel-enter{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes toast-enter{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:translateX(0)}}
@keyframes field-shake{25%,75%{transform:translateX(-2px)}50%{transform:translateX(2px)}}
@media(min-width:640px){.registration-living #payForm [class~="sm:grid-cols-2"]{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.brand-contact{display:none}.registration-brand-header{gap:18px}.brand-portrait{flex-basis:88px;height:88px;border-radius:24px}.brand-portrait img{width:72px;height:72px}}
@media(max-width:540px){.registration-living #pageShell{padding:16px 12px}.registration-surface{padding:20px 16px;border-radius:20px}.registration-brand-header{align-items:flex-start;gap:14px;padding:4px 0 24px}.brand-portrait{flex-basis:66px;height:66px;border-radius:18px}.brand-portrait img{width:55px;height:55px}.brand-eyebrow{font-size:9px;letter-spacing:.4px;margin-bottom:7px}.registration-brand-header .hero-title{font-size:20px;line-height:1.5}.brand-break{display:block}.registration-brand-header .hero-subtitle{font-size:11px}.registration-journey{padding:13px 10px;gap:6px;font-size:10px}.registration-journey>span{gap:5px}.registration-journey b{width:22px;height:22px;font-size:9px}.registration-journey i{display:none}.registration-living .lookup-card{padding:16px}.registration-living #payForm>section{padding:18px}.registration-footer{padding:20px;flex-direction:column;gap:15px;align-items:flex-start}.footer-credit{text-align:left}.registration-notifications{right:16px;bottom:16px}}
@media(prefers-reduced-motion:reduce){.registration-living::before,.registration-living::after,.registration-living *{animation:none!important;transition:none!important;scroll-behavior:auto!important}.registration-living .form-animate{opacity:1;transform:none}}
@media print{.registration-living::before,.registration-living::after,.registration-notifications,.registration-footer,.registration-journey{display:none!important}.registration-surface{box-shadow:none;border:0}}
/* Live completion guide; the form keeps its original field order. */
.registration-living #publicTopNav{background:linear-gradient(110deg,#fff9ed,#f8f5ff 45%,#effaf8)!important}
.registration-intro{display:flex;gap:13px;align-items:center;margin-bottom:24px}.registration-intro h1{font-size:23px;font-weight:800;color:#514397;margin:0}.registration-intro p{font-size:12px;color:#7c879b;margin:5px 0 0}.intro-dot{width:13px;height:13px;border-radius:50%;background:linear-gradient(130deg,#a478ef,#21bca1);box-shadow:0 0 0 7px #977ce912;flex-shrink:0}
.lookup-skip{background:none;border:0;color:#7153cd;font-size:12px;font-weight:700;margin-top:15px;cursor:pointer}.lookup-skip:hover{text-decoration:underline}
.registration-progress[hidden]{display:none}.registration-progress{background:linear-gradient(145deg,#faf8ff,#f0faf8);border:1px solid #e5e2f5;border-radius:20px;padding:20px;position:sticky;top:95px;align-self:start;max-height:calc(100vh - 125px);overflow:auto;scrollbar-width:thin}
.progress-heading{display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:700;color:#514397}.progress-heading strong{color:#168b80;font:800 22px system-ui}.progress-track{height:7px;background:#e6e4f4;border-radius:20px;margin-top:15px;overflow:hidden}.progress-track>span{display:block;height:100%;width:0;background:linear-gradient(90deg,#9b68e8,#4a80ec,#20b69b);border-radius:20px;transition:width .5s ease}
#registrationProgressSummary{font-size:11px;color:#8991a6;margin:10px 0 15px}#registrationProgressSteps{list-style:none;padding:0;margin:0;position:relative}.progress-step{position:relative;padding:0 0 16px 40px;min-height:47px}.progress-step:not(:last-child):before{content:'';position:absolute;left:14px;top:29px;bottom:0;width:2px;background:#e1def1}.progress-step.is-complete:before{background:#a8ddc9}.progress-bubble{position:absolute;left:0;top:0;width:29px;height:29px;border:2px solid #ded9f0;border-radius:50%;display:grid;place-items:center;font:700 11px system-ui;color:#a59abb;background:#fff;transition:background .3s,border-color .3s,transform .3s}.progress-step:nth-child(3n+2){--step-accent:#288fb1}.progress-step:nth-child(3n){--step-accent:#ca799d}.progress-step{--step-accent:#8d60cf}.progress-step.is-active .progress-bubble{border-color:var(--step-accent);color:var(--step-accent);box-shadow:0 0 0 5px #9174dd12;animation:step-breathe 2.4s ease infinite}.progress-step.is-complete .progress-bubble{background:#20a480;border-color:#20a480;color:white;animation:step-complete .4s ease}.progress-step button{border:0;background:none;text-align:left;padding:4px 0;color:#8a92a7;font-size:11px;line-height:1.7;cursor:pointer;width:100%}.progress-step.is-active button{color:var(--step-accent);font-weight:800}.progress-step.is-complete button{color:#328b76}.progress-step button:focus-visible{outline:2px solid #a59bdd;border-radius:5px}
#registrationNextStep{width:100%;padding:11px 8px;border:0;border-radius:11px;background:linear-gradient(110deg,#8860d4,#4a7ee1);color:white;font-size:12px;font-weight:700;margin-top:8px;cursor:pointer}.progress-note{font-size:10px;line-height:1.8;color:#9198ac;margin:12px 0 0}.guided-field{animation:field-guide .7s ease}
@media(min-width:1000px){.registration-living #pageShell{max-width:1280px}.registration-surface.has-progress{padding-left:310px;min-height:700px}.registration-progress{float:left;width:245px;margin-left:-280px}}
@media(max-width:999px){.registration-progress{position:relative;top:auto;max-height:none;margin-bottom:22px;padding:17px}#registrationProgressSteps{max-height:190px;overflow:auto;margin-top:12px}.registration-progress .progress-note{margin-bottom:0}.registration-intro h1{font-size:21px}}
@keyframes step-breathe{50%{box-shadow:0 0 0 8px #9174dd08}}@keyframes step-complete{50%{transform:scale(1.2)}}@keyframes field-guide{50%{box-shadow:0 0 0 5px #947be522}}
@media(prefers-reduced-motion:reduce){.progress-bubble,.guided-field,.progress-track>span{animation:none!important;transition:none!important}}
@media print{.registration-progress{display:none!important}.registration-surface.has-progress{padding-left:32px}}
/* Soft corners and a compact mobile rail beside the form. */
.registration-living .registration-surface{border-radius:10px}
.registration-living .lookup-card,.registration-living #payForm>section,.registration-living .registration-footer,.registration-living #formModeBanner,.registration-living .registration-progress{border-radius:8px}
.registration-living .lookup-shell,.registration-living #payForm input:not([type=radio]):not([type=checkbox]),.registration-living #payForm select,.registration-living #payForm textarea,.registration-living #payForm label,.registration-living button,.registration-living .action-btn,.registration-living .qr-download-button,.registration-living #payForm section a{border-radius:5px}
.registration-living #registrationFallbackQr>div>div,.registration-living #qr-card-img,.registration-living #registrationUpi{border-radius:6px!important}
@media(max-width:999px){
 .registration-living #pageShell{padding:16px 10px 24px 58px}
 .registration-living .registration-surface.has-progress{padding:20px 15px;min-height:650px}
 .registration-living .registration-progress{position:fixed;left:5px;top:94px;bottom:20px;width:44px;margin:0;padding:8px 2px;background:transparent;border:0;border-radius:0;max-height:calc(100dvh - 114px);overflow-y:auto;z-index:25;scrollbar-width:none}
 .registration-progress::-webkit-scrollbar{display:none}
 .registration-progress .progress-heading{justify-content:center;font-size:10px}.registration-progress .progress-heading>span{display:none}.registration-progress .progress-heading strong{font-size:12px}
 .registration-progress .progress-track{height:3px;margin:9px 4px 14px}
 #registrationProgressSummary,.registration-progress .progress-note,#registrationNextStep{display:none}
 #registrationProgressSteps{max-height:none;overflow:visible;margin:0}
 .progress-step{padding:0;min-height:40px;margin:0 4px;width:32px}
 .progress-step:not(:last-child):before{left:15px;top:27px;bottom:0}
 .progress-bubble{left:2px;top:1px;width:27px;height:27px;font-size:10px;pointer-events:none}
 .progress-step button{position:relative;width:31px;height:31px;padding:0;font-size:0;border-radius:50%;background:transparent}
 .progress-step button:focus-visible{outline:2px solid #7864ca;outline-offset:3px}
 .registration-intro h1{font-size:20px}.registration-intro{gap:10px}.registration-intro p{font-size:11px}
 .registration-living .lookup-card{padding:15px}.registration-living #payForm>section{padding:14px}
 .registration-living .registration-footer{padding:16px}
}
@media(max-width:360px){.registration-living #pageShell{padding-left:49px}.registration-living .registration-progress{left:0;width:42px}.registration-living .registration-surface.has-progress{padding:18px 11px}.registration-nav-brand{gap:8px;font-size:11px}.registration-nav-brand strong{font-size:14px}.registration-nav-brand img{width:39px;height:39px}}
.registration-living #mainForm [class*="rounded"],.registration-living .registration-toast,.registration-living .lookup-results{border-radius:6px!important}
/* A transform on the animated form must not contain the fixed mobile rail. */
@media(max-width:999px){.registration-living #mainForm{transform:none!important}}
