.reg { padding-block: clamp(28px, 5vw, 64px) 80px; }
.reg-head .h2 { font-size: clamp(28px, 4vw, 46px); }
.reg-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, 1fr); gap: 24px; margin-top: 32px; align-items: start; }
.form-card { background: #fff; border: 1px solid var(--line); border-radius: 28px; padding: clamp(20px, 3.4vw, 40px); box-shadow: 0 30px 70px -48px rgba(40, 66, 135, .5); }
.step + .step { margin-top: 38px; padding-top: 34px; border-top: 1px solid var(--line); }
.step h2 { display: flex; align-items: center; gap: 12px; font-size: 20px; font-weight: 800; letter-spacing: -.01em; margin-bottom: 20px; color: var(--navy-900); }
.num { width: 32px; height: 32px; border-radius: 50%; background: var(--grad); color: #fff; display: grid; place-items: center; font-family: var(--display); font-size: 15px; flex: none; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.grid2 .full { grid-column: 1 / -1; }
.cats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.cat { position: relative; display: block; cursor: pointer; }
.cat input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.cat .c { display: flex; flex-direction: column; gap: 4px; height: 100%; padding: 16px; border: 1.5px solid var(--line); border-radius: 16px; background: #fff; transition: all .18s; }
.cat .c b { font-size: 15px; font-weight: 800; color: var(--navy-900); }
.cat .c span { font-size: 13px; color: var(--muted); font-weight: 600; line-height: 1.35; }
.cat .c em { font-style: normal; margin-top: 6px; font-family: var(--display); font-weight: 700; font-size: 20px; color: var(--navy); }
.cat:hover .c { border-color: #aab3c9; }
.cat input:checked + .c { border-color: var(--navy); background: var(--sky); box-shadow: 0 0 0 3px rgba(40, 66, 135, .16); }
.cat input:focus-visible + .c { outline: 3px solid var(--navy); outline-offset: 2px; }
.group-box { margin-top: 18px; padding: 18px; border-radius: 16px; background: var(--sky); display: grid; gap: 16px; }
.input.file { padding: 10px; background: #fafbfd; }
.hp { position: absolute; left: -5000px; width: 1px; height: 1px; opacity: 0; }
.form-err { margin-top: 22px; padding: 12px 16px; border-radius: 12px; background: #fdecee; color: var(--red-600); font-weight: 700; font-size: 14.5px; }
.submit-row { margin-top: 28px; display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; }
.btn.is-locked { opacity: .5; cursor: not-allowed; filter: grayscale(.35); box-shadow: none; }
.submit-row .hint { color: var(--muted); font-size: 13.5px; font-weight: 600; }
.closed { padding: 18px; border-radius: 14px; background: #fdecee; color: var(--red-600); font-weight: 800; margin-bottom: 24px; }

.side { position: sticky; top: 92px; }
.sum { padding: 28px; border-radius: 28px; }
.sum h3 { padding-bottom: 12px; }
.sum .total { margin-top: 18px; font-family: var(--display); font-weight: 800; font-size: clamp(38px, 4.4vw, 52px); letter-spacing: -.03em; line-height: 1.05; }
.sum .calc { margin-top: 6px; opacity: .88; font-weight: 600; font-size: 14.5px; }
.qr-wrap { display: flex; align-items: center; gap: 16px; margin-top: 20px; }
.qr { width: 160px; height: 160px; padding: 6px; border-radius: 14px; background: #fff; flex: none; display: grid; place-items: center; }
.qr img, .qr svg { width: 100%; height: 100%; display: block; image-rendering: pixelated; }
.btn-qr { display: inline-block; margin-top: 8px; padding: 7px 14px; border-radius: 999px; background: #fff; color: var(--navy, #284287); font-weight: 800; font-size: 12.5px; text-decoration: none; }
.btn-qr:hover { background: var(--lime); }
.qr-note { font-size: 13px; font-weight: 700; line-height: 1.5; }
.upi-open { color: var(--lime); font-weight: 800; }
.sum .bank { margin-top: 20px; padding-top: 16px; }
@media (max-width: 960px) { .reg-grid { grid-template-columns: 1fr; } .side { position: static; order: -1; } }
@media (max-width: 640px) { .grid2, .cats { grid-template-columns: 1fr; } .qr { width: 132px; height: 132px; } }

.done { display: grid; place-items: center; padding: 20px 0; }
.done-card { width: min(640px, 100%); text-align: center; background: #fff; border: 1px solid var(--line); border-radius: 30px; padding: clamp(28px, 5vw, 56px); box-shadow: 0 40px 80px -50px rgba(40, 66, 135, .6); }
.tick { width: 68px; height: 68px; margin: 0 auto 18px; border-radius: 50%; background: var(--green); color: #fff; display: grid; place-items: center; animation: pop .5s cubic-bezier(.2, 1.4, .4, 1); }
@keyframes pop { from { transform: scale(.4); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.done-card h2 { font-size: clamp(26px, 3.4vw, 36px); font-weight: 800; letter-spacing: -.02em; color: var(--navy-900); }
.ref { margin: 22px auto; display: inline-block; padding: 14px 28px; border-radius: 16px; background: var(--grad); color: #fff; font-family: var(--display); font-weight: 800; font-size: clamp(24px, 4vw, 34px); letter-spacing: .04em; }
.done-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; text-align: left; margin-top: 4px; }
.done-grid div { background: var(--sky); border-radius: 14px; padding: 12px 14px; }
.done-grid span { display: block; font-size: 11.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.done-grid b { font-size: 15px; color: var(--navy-900); }
.done-note { margin-top: 18px; color: var(--muted); font-weight: 600; font-size: 14.5px; }
@media (max-width: 560px) { .done-grid { grid-template-columns: 1fr; } }
.grows { display: grid; gap: 8px; }
.grow { display: grid; grid-template-columns: 28px 1fr 1fr; gap: 8px; align-items: center; }
.grow .gn { font-weight: 800; font-size: 13px; color: var(--muted); text-align: center; }
.grow .input.bad { border-color: #b3202e; background: #fdeff0; }
@media (max-width: 560px) { .grow { grid-template-columns: 24px 1fr; } .grow .input[data-k=m] { grid-column: 2; } }
