:root{
  --red:#9b0000;--red-dark:#680000;--red-deep:#700000;--red-bright:#be1800;
  --yellow:#f6c400;--cream:#fff8dc;--ink:#181818;--muted:#66645f;--line:#e7e1d7;
  --green:#147c3e;--surface:#ffffff;--page:#fbfaf7;
  --shadow:0 18px 48px rgba(43,22,0,.14)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;min-width:320px;overflow-x:hidden;font-family:Inter,Arial,sans-serif;color:var(--ink);background:var(--page)}
img{max-width:100%;height:auto}
a{color:inherit}
.wrap{width:min(1180px,calc(100% - 40px));margin-inline:auto}

/* Announcement bar */
.topbar{background:var(--red-dark);color:#fff;text-align:center;padding:7px 12px;font-size:12px;line-height:1.35;font-weight:700;letter-spacing:.1px}

/* Header */
.nav{background:#fff;border-bottom:1px solid #eee;position:sticky;top:0;z-index:50;box-shadow:0 2px 10px rgba(0,0,0,.025)}
.navin{min-height:104px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{min-width:0;display:flex;align-items:center;gap:16px;text-decoration:none}
.brandlogo{display:block;width:220px;max-width:25vw;height:auto;flex:0 0 auto;object-fit:contain}
.brandtext{min-width:0}
.brandtext strong{display:block;color:var(--red);font-size:18px;line-height:1.2;font-weight:900}
.brandtext span{display:block;color:#666;font-size:12px;line-height:1.35;margin-top:3px}
.call{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 15px;border:1px solid #ead0d0;border-radius:999px;background:#fff8f8;color:var(--red);font-weight:900;font-size:15px;text-decoration:none;white-space:nowrap}
.call:hover{background:#fff0f0}

/* Hero */
.hero{position:relative;overflow:hidden;background:linear-gradient(115deg,#710000,#a90000 60%,#c31b00);color:#fff;padding:48px 0 54px}
.hero:after{content:"";position:absolute;width:440px;height:440px;border-radius:50%;background:rgba(246,196,0,.16);right:-90px;top:-145px;pointer-events:none}
.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) minmax(500px,.92fr);gap:48px;align-items:center}
.hero-copy{min-width:0;padding:10px 0}
.eyebrow{font-size:13px;line-height:1.35;font-weight:900;text-transform:uppercase;letter-spacing:1.5px;color:#ffe37a}
.hero h1{font-size:clamp(44px,4.4vw,68px);line-height:.98;margin:13px 0 18px;letter-spacing:-2px}
.hero h1 span{color:var(--yellow)}
.hero p{font-size:17px;line-height:1.62;max-width:610px;margin:0;color:#fff2ef}
.chips{display:flex;gap:9px;flex-wrap:wrap;margin-top:22px}
.chip{border:1px solid rgba(255,255,255,.38);background:rgba(255,255,255,.085);padding:8px 11px;border-radius:999px;font-size:12px;line-height:1.2}

/* Registration card */
.card{justify-self:end;width:100%;max-width:570px;background:#fff;color:var(--ink);padding:24px;border-radius:18px;box-shadow:var(--shadow)}
.form-title{font-size:25px;line-height:1.2;margin:0 0 5px}
.form-sub{color:var(--muted);font-size:13px;line-height:1.5;margin:0 0 18px}
.grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:13px}
.field{min-width:0;margin-bottom:12px}
.field label{display:block;font-size:12px;line-height:1.3;font-weight:800;margin-bottom:6px;color:#3c342e}
.field input,.field select{display:block;width:100%;min-width:0;height:46px;border:1px solid #d8d4cc;border-radius:10px;padding:0 13px;background:#fff;color:#171717;font:inherit;font-size:14px;outline:none}
.field input:focus,.field select:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(155,0,0,.08)}
.centres{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px}
.centre-option{position:relative;display:block;min-width:0}
.centre-option input{position:absolute;opacity:0;pointer-events:none}
.centre-option span{display:flex;align-items:center;min-height:44px;border:1px solid #ddd6ca;padding:9px 11px;border-radius:10px;font-size:12px;line-height:1.3;font-weight:800;cursor:pointer;background:#fff;overflow-wrap:anywhere}
.centre-option input:focus-visible+span{outline:3px solid rgba(155,0,0,.18);outline-offset:1px}
.centre-option input:checked+span{border:2px solid var(--red);background:#fff4ef;color:var(--red);padding:8px 10px}
.fee-row{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:center;gap:14px;background:var(--cream);border:1px solid #f0db82;padding:12px 13px;border-radius:10px;margin:13px 0}
.fee-row>span{font-size:13px;font-weight:800;line-height:1.3}
.fee-row strong{min-width:0;font-size:16px;line-height:1.35;white-space:normal;text-align:right;overflow-wrap:break-word}
.btn{appearance:none;border:0;background:var(--yellow);color:#221800;width:100%;min-height:50px;border-radius:11px;padding:11px 16px;font-weight:900;font-size:15px;line-height:1.25;cursor:pointer}
.btn:hover:not(:disabled){filter:brightness(.98)}
.btn:disabled{opacity:.55;cursor:not-allowed}
.secure{text-align:center;color:#757575;font-size:10.5px;line-height:1.45;margin:9px 0 0}
.msg{display:none;margin:11px 0;padding:10px 12px;border-radius:8px;font-size:13px;line-height:1.45}
.msg.error{display:block;background:#fff0f0;color:#8d0000}
.msg.ok{display:block;background:#edf9f0;color:var(--green)}

/* Supporting sections */
.section{padding:64px 0}
.section h2{font-size:clamp(30px,3vw,36px);line-height:1.15;margin:0 0 12px}
.lead{color:var(--muted);font-size:16px;max-width:790px;line-height:1.6}
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:28px}
.step{background:#fff;border:1px solid var(--line);padding:21px;border-radius:15px}
.num{width:34px;height:34px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font-weight:900;margin-bottom:14px}
.step h3{font-size:16px;line-height:1.35;margin:0 0 7px}
.step p{font-size:13px;line-height:1.55;color:#666;margin:0}
.note{background:#fff7d6;border-left:4px solid var(--yellow);padding:14px 16px;font-size:13px;line-height:1.55;color:#534b34;margin-top:18px;overflow-wrap:anywhere}
.band{background:#201f1d;color:#fff;padding:31px 0}
.bandin{display:flex;align-items:center;justify-content:space-between;gap:25px}
.band h3{font-size:23px;line-height:1.25;margin:0}
.band p{color:#ccc;margin:7px 0 0;line-height:1.5}
.mini-btn{display:inline-flex;align-items:center;justify-content:center;background:var(--yellow);color:#251c00;font-weight:900;text-decoration:none;padding:12px 19px;border-radius:9px;white-space:nowrap}
.footer{padding:26px 16px;text-align:center;color:#777;font-size:12px;line-height:1.6}

/* Success page */
.successbox{max-width:760px;margin:55px auto;background:#fff;border:1px solid var(--line);border-radius:18px;padding:34px;box-shadow:var(--shadow);text-align:center}
.successbox h1{font-size:clamp(28px,4vw,36px);margin:8px 0 10px}
.successbox>p{line-height:1.6;color:#555}
.tick{width:68px;height:68px;border-radius:50%;background:#e8f8ee;color:var(--green);font-size:34px;display:grid;place-items:center;margin:0 auto 18px}
.successbox table{width:100%;table-layout:fixed;text-align:left;border-collapse:collapse;margin-top:22px}
.successbox td{padding:11px;border-bottom:1px solid #eee;overflow-wrap:anywhere;vertical-align:top}
.successbox td:first-child{width:42%}

/* Admin */
.admin-body{background:#f4f4f4}
.admin-head{background:#790000;color:#fff;padding:14px 0}
.admin-head .wrap{display:flex;justify-content:space-between;align-items:center;gap:20px}
.admin-head-brand{display:flex;align-items:center;gap:13px;min-width:0}
.admin-head-brand img{display:block;width:110px;height:auto;background:#fff;border-radius:7px;padding:3px;flex:0 0 auto}
.admin-head a{color:#fff}
.admin-panel{padding:25px 0}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}
.stat{background:#fff;border-radius:12px;padding:17px;border:1px solid #e4e4e4;min-width:0}
.stat span{font-size:12px;color:#777}
.stat strong{display:block;font-size:27px;margin-top:4px;overflow-wrap:anywhere}
.filters{display:flex;gap:9px;flex-wrap:wrap;background:#fff;padding:14px;border-radius:12px;border:1px solid #e4e4e4;margin-bottom:16px}
.filters input,.filters select{height:40px;max-width:100%;border:1px solid #ddd;border-radius:7px;padding:0 10px;background:#fff}
.tablebox{width:100%;overflow:auto;-webkit-overflow-scrolling:touch;background:#fff;border-radius:12px;border:1px solid #e4e4e4}
.tablebox table{width:100%;border-collapse:collapse;min-width:1100px}
.tablebox th,.tablebox td{padding:11px 12px;border-bottom:1px solid #eee;text-align:left;font-size:12px;white-space:nowrap}
.tablebox th{background:#faf7ef}
.paid{color:#0d7738;font-weight:800}.initiated{color:#a86600;font-weight:800}
.login{width:min(420px,calc(100% - 28px));margin:64px auto;background:#fff;padding:28px;border-radius:15px;box-shadow:var(--shadow)}
.admin-login-brand{align-items:center}.admin-login-brand .brandlogo{width:145px;max-width:46%}

/* Tablet / smaller desktop */
@media (max-width:1100px){
  .wrap{width:min(100% - 32px,1040px)}
  .navin{min-height:94px}.brandlogo{width:190px}.brandtext strong{font-size:16px}
  .hero{padding:40px 0 46px}
  .hero-grid{grid-template-columns:minmax(0,.9fr) minmax(470px,1.1fr);gap:30px}
  .hero h1{font-size:clamp(40px,5vw,56px)}
  .hero p{font-size:16px}
  .card{padding:22px}
}

/* Tablet: stack hero cleanly */
@media (max-width:860px){
  .navin{min-height:82px}.brandlogo{width:160px;max-width:34vw}.brandtext span{display:none}.call{font-size:13px;min-height:40px;padding-inline:12px}
  .hero{padding:34px 0 40px}
  .hero-grid{grid-template-columns:1fr;gap:28px;align-items:start}
  .hero-copy{text-align:center;padding:0 18px}.hero p{margin-inline:auto}.chips{justify-content:center}
  .card{justify-self:center;max-width:650px}
  .steps{grid-template-columns:1fr 1fr}
  .stats{grid-template-columns:1fr 1fr}
}

/* Phones */
@media (max-width:640px){
  .wrap{width:calc(100% - 22px)}
  .topbar{padding:6px 8px;font-size:10.5px}
  .navin{min-height:72px;gap:10px}
  .brand{gap:8px}.brandlogo{width:145px;max-width:45vw}.brandtext strong{font-size:12px}.brandtext span{display:none}
  .call{min-height:36px;padding:0 10px;font-size:11.5px}
  .hero{padding:27px 0 32px}.hero:after{width:280px;height:280px;right:-120px;top:-60px}
  .hero-grid{gap:22px}
  .hero-copy{padding:0 4px}.eyebrow{font-size:11px;letter-spacing:1.1px}.hero h1{font-size:38px;letter-spacing:-1.2px;margin:10px 0 13px}.hero p{font-size:14px;line-height:1.55}.chips{gap:7px;margin-top:17px}.chip{font-size:10.5px;padding:7px 9px}
  .card{padding:18px 16px;border-radius:14px}.form-title{font-size:22px}.form-sub{font-size:12px;margin-bottom:16px}
  .grid2,.centres,.steps,.stats{grid-template-columns:1fr}.grid2{gap:0}
  .field{margin-bottom:12px}.field input,.field select{height:50px;font-size:16px} /* 16px prevents iOS zoom */
  .centre-option span{min-height:48px;font-size:12.5px}
  .fee-row{grid-template-columns:1fr;gap:5px;padding:12px;align-items:start}.fee-row strong{font-size:17px;line-height:1.35;text-align:left}
  .btn{min-height:52px;font-size:15px}
  .secure{font-size:10px}
  .section{padding:46px 0}.section h2{font-size:29px}.lead{font-size:15px}.step{padding:18px}
  .band{padding:27px 0}.bandin{align-items:stretch;flex-direction:column;gap:18px}.mini-btn{width:100%}.band h3{font-size:21px}.band p{font-size:14px}
  .successbox{margin:28px auto;padding:22px 16px;border-radius:14px}
  .successbox table,.successbox tbody,.successbox tr,.successbox td{display:block;width:100%}
  .successbox tr{padding:10px 0;border-bottom:1px solid #eee}.successbox td{padding:2px 0;border:0}.successbox td:first-child{width:100%;font-size:12px;color:#666}.successbox td:last-child{font-size:14px;margin-top:3px}
  .admin-head .wrap{align-items:flex-start;flex-direction:column}.admin-head-brand img{width:90px}.admin-panel{padding:16px 0}
  .filters{display:grid;grid-template-columns:1fr}.filters input,.filters select,.filters .mini-btn{width:100%}
  .login{margin:28px auto;padding:22px 18px}
}

/* Very narrow phones */
@media (max-width:420px){
  .brandlogo{width:132px;max-width:47vw}.brandtext{display:none}.call{font-size:11px;padding-inline:9px}
  .hero h1{font-size:34px}.hero-copy{padding:0}.chip{flex:1 1 calc(50% - 7px);text-align:center}
  .card{padding:17px 14px}
  .footer{font-size:11px}
}

/* Keep explanatory/payment text readable inside the white registration card. */
.hero .card .form-sub{color:var(--muted)}
.hero .card .secure{color:#757575}

/* v9: success-page receipt actions */
.receipt-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:24px 0 4px}
.receipt-action{appearance:none;border:1px solid #ddd3c7;background:#fff;color:#2b2118;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border-radius:10px;font:inherit;font-size:14px;font-weight:800;cursor:pointer;text-decoration:none;box-shadow:0 2px 8px rgba(43,22,0,.06)}
.receipt-action:hover{background:#fff8dc;border-color:#e2c55b}
.receipt-action.primary{background:var(--yellow);border-color:var(--yellow);color:#241a00}
.receipt-action svg{width:19px;height:19px;flex:0 0 auto}
.receipt-help{margin:10px auto 0!important;font-size:12px!important;color:#777!important;line-height:1.45!important}

@media (max-width:640px){
  .receipt-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:20px}
  .receipt-action{width:100%;min-height:46px;padding-inline:10px;font-size:13px}
}

@media print{
  @page{margin:14mm}
  body{background:#fff!important;color:#000!important}
  .nav,.topbar,.receipt-actions,.receipt-help{display:none!important}
  .wrap{width:100%!important;margin:0!important}
  .successbox{max-width:none!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:0!important}
  .successbox h1{font-size:28px!important}
  .successbox table{break-inside:avoid}
  .successbox td{padding:8px 6px!important}
  .note{border:1px solid #ddd!important;border-left:4px solid #bbb!important;background:#fff!important;color:#333!important}
}

/* v10: true PDF / PNG receipt downloads */
.receipt-actions{grid-template-columns:repeat(3,minmax(0,auto))}
.receipt-action:disabled{opacity:.62;cursor:wait}
.receipt-action.busy{min-width:132px}
@media (max-width:640px){
  .receipt-actions{display:grid;grid-template-columns:1fr;gap:9px}
}
\n\n/* v11: immediate post-payment transition screen.\n   This completely covers the completed form while server verification runs. */\n.payment-finalizing,.payment-finalizing body{overflow:hidden!important}\n.payment-transition[hidden]{display:none!important}\n.payment-transition{position:fixed;inset:0;z-index:2147483000;background:#f7f5f1;display:grid;place-items:center;padding:24px;overflow:auto}\n.payment-transition:before{content:"";position:fixed;inset:0;background:linear-gradient(135deg,rgba(155,0,0,.045),rgba(246,196,0,.08));pointer-events:none}\n.payment-transition-card{position:relative;width:min(620px,100%);background:#fff;border:1px solid #e8e1d6;border-radius:22px;box-shadow:0 24px 70px rgba(55,28,0,.15);padding:38px 42px;text-align:center}\n.payment-transition-logo{display:block;width:min(280px,65%);height:auto;margin:0 auto 24px}\n.payment-transition-check{width:82px;height:82px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;background:#e8f8ee;color:#12823f;font-size:43px;font-weight:800}\n.payment-transition h1{font-size:clamp(30px,5vw,42px);line-height:1.1;margin:0 0 13px;color:#171717}\n.payment-transition-card>p{margin:0 auto;color:#555;line-height:1.6;font-size:16px;max-width:500px}\n.payment-transition-loader{width:210px;max-width:72%;height:6px;background:#eee7dc;border-radius:999px;overflow:hidden;margin:26px auto 19px}\n.payment-transition-loader span{display:block;width:38%;height:100%;border-radius:inherit;background:#f6c400;animation:bbeFinalizing 1.15s ease-in-out infinite}\n.payment-transition-reg{display:inline-block;background:#fff7d6;border:1px solid #f0db82;border-radius:9px;padding:9px 13px;margin:2px auto 17px;font-size:13px;font-weight:800;color:#4f4214;overflow-wrap:anywhere}\n.payment-transition-note{font-size:12px!important;color:#777!important;line-height:1.5!important}\n@keyframes bbeFinalizing{0%{transform:translateX(-110%)}50%{transform:translateX(85%)}100%{transform:translateX(270%)}}\n@media (prefers-reduced-motion:reduce){.payment-transition-loader span{animation:none;width:100%}}\n@media (max-width:640px){\n  .payment-transition{padding:16px}\n  .payment-transition-card{padding:28px 18px;border-radius:17px}\n  .payment-transition-logo{width:min(235px,72%);margin-bottom:20px}\n  .payment-transition-check{width:70px;height:70px;font-size:37px}\n  .payment-transition-card>p{font-size:14px}\n  .payment-transition-reg{font-size:12px}\n}\n
/* v12: dedicated post-payment page. The browser leaves the registration form
   immediately after Razorpay success and performs verification here. */
.payment-processing-page{margin:0;min-height:100vh;background:#f7f5f1;color:#171717}
.payment-processing-page:before{content:"";position:fixed;inset:0;background:linear-gradient(135deg,rgba(155,0,0,.055),rgba(246,196,0,.1));pointer-events:none}
.processing-shell{position:relative;min-height:100vh;display:grid;place-items:center;padding:24px}
.processing-card{width:min(640px,100%);background:#fff;border:1px solid #e7dfd3;border-radius:22px;box-shadow:0 24px 72px rgba(55,28,0,.15);padding:40px 44px;text-align:center}
.processing-logo{display:block;width:min(290px,68%);height:auto;margin:0 auto 23px}
.processing-check{width:84px;height:84px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;background:#e5f8ec;color:#12823f;font-size:44px;font-weight:800}
.processing-card h1{font-size:clamp(30px,5vw,43px);line-height:1.1;margin:0 0 13px;color:#151515}
.processing-card>p{max-width:510px;margin:0 auto;color:#555;line-height:1.65;font-size:16px}
.processing-progress{width:220px;max-width:74%;height:7px;background:#eee7dc;border-radius:999px;overflow:hidden;margin:27px auto 19px}
.processing-progress span{display:block;width:38%;height:100%;border-radius:inherit;background:#f6c400;animation:bbeProcessing 1.15s ease-in-out infinite}
.processing-reg{display:inline-block;background:#fff7d6;border:1px solid #f0db82;border-radius:9px;padding:9px 13px;margin:2px auto 17px;font-size:13px;font-weight:800;color:#4f4214;overflow-wrap:anywhere}
.processing-note{font-size:12px!important;color:#777!important;line-height:1.5!important}
.processing-retry{margin-top:20px;border:0;border-radius:10px;background:#f6c400;color:#111;font-weight:800;padding:12px 20px;cursor:pointer;font-size:14px}
@keyframes bbeProcessing{0%{transform:translateX(-110%)}50%{transform:translateX(85%)}100%{transform:translateX(270%)}}
@media (prefers-reduced-motion:reduce){.processing-progress span{animation:none;width:100%}}
@media (max-width:640px){.processing-shell{padding:16px}.processing-card{padding:29px 19px;border-radius:18px}.processing-logo{width:min(235px,74%);margin-bottom:20px}.processing-check{width:70px;height:70px;font-size:37px}.processing-card>p{font-size:14px}.processing-reg{font-size:12px}}


/* v13: test-date cutoff / closed-registration states */
.field select:disabled{background:#f4f2ee;color:#777;cursor:not-allowed}

/* v14 security/UX helpers */
.hp-field{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
