
        :root {
            --primary: #1a3faa;
            --primary-dark: #122d80;
            --primary-light: #e8eef9;
            --accent: #f0a500;
            --surface: #ffffff;
            --bg: #f0f3fa;
            --border: #dde3ef;
            --text: #1a1f36;
            --muted: #6b7494;
            --success: #0d9e6e;
            --radius: 14px;
            --radius-sm: 8px;
            --shadow: 0 2px 24px rgba(26,63,170,0.10);
        }

        *, *::before, *::after { box-sizing: border-box; }

        body {
            background: var(--bg);
            font-family: 'DM Sans', sans-serif;
            color: var(--text);
            min-height: 100vh;
            padding: 40px 16px 60px;
        }

        /* ── Card ── */
        .reg-card {
            max-width: 760px;
            margin: 0 auto;
            background: var(--surface);
            border-radius: 20px;
            overflow: hidden;
            box-shadow: var(--shadow);
            border: 1px solid var(--border);
        }

        /* ── Header ── */
        .reg-header {
            background: linear-gradient(135deg, #1a3faa 0%, #0d2475 100%);
            padding: 36px 40px 28px;
            text-align: center;
            position: relative;
            overflow: hidden;
        }

        .reg-header::before {
            content: '';
            position: absolute;
            top: -60px; right: -60px;
            width: 200px; height: 200px;
            border-radius: 50%;
            background: rgba(255,255,255,0.05);
        }

        .reg-header::after {
            content: '';
            position: absolute;
            bottom: -40px; left: -40px;
            width: 150px; height: 150px;
            border-radius: 50%;
            background: rgba(255,255,255,0.04);
        }

        .reg-header img {
            height: 70px;
            margin-bottom: 16px;
            filter: drop-shadow(0 2px 8px rgba(0,0,0,0.2));
        }

        .reg-header h2 {
            font-family: 'Playfair Display', serif;
            font-size: 1.7rem;
            color: #fff;
            margin-bottom: 6px;
            line-height: 1.25;
        }

        .reg-header h4 {
            font-size: 0.92rem;
            font-weight: 400;
            color: rgba(255,255,255,0.78);
            margin-bottom: 14px;
            letter-spacing: 0.02em;
        }

        .header-badge {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            background: rgba(255,255,255,0.13);
            border: 1px solid rgba(255,255,255,0.22);
            border-radius: 20px;
            color: #fff;
            font-size: 0.78rem;
            font-weight: 500;
            padding: 5px 14px;
            letter-spacing: 0.03em;
        }

        .header-badge svg {
            opacity: 0.8;
        }

        /* ── Progress Bar ── */
        .progress-strip {
            display: flex;
            background: var(--primary-light);
            padding: 0;
        }

        .progress-step {
            flex: 1;
            text-align: center;
            padding: 10px 8px;
            font-size: 0.72rem;
            font-weight: 500;
            color: var(--muted);
            border-bottom: 3px solid transparent;
            transition: all .2s;
            letter-spacing: 0.03em;
        }

        .progress-step.active {
            color: var(--primary);
            border-bottom-color: var(--primary);
            background: #dce5f8;
        }

        /* ── Form Body ── */
        .form-body {
            padding: 32px 40px 36px;
        }

        /* ── Section Headers ── */
        .section-head {
            display: flex;
            align-items: center;
            gap: 10px;
            margin-bottom: 18px;
            margin-top: 28px;
        }

        .section-head:first-child {
            margin-top: 0;
        }

        .section-icon {
            width: 32px; height: 32px;
            border-radius: var(--radius-sm);
            background: var(--primary-light);
            display: flex; align-items: center; justify-content: center;
            flex-shrink: 0;
        }

        .section-icon svg {
            color: var(--primary);
        }

        .section-head h6 {
            font-size: 0.8rem;
            font-weight: 600;
            color: var(--primary);
            text-transform: uppercase;
            letter-spacing: 0.08em;
            margin: 0;
        }

        .section-divider {
            flex: 1;
            height: 1px;
            background: var(--border);
        }

        /* ── Form Fields ── */
        .form-label {
            font-size: 0.82rem;
            font-weight: 500;
            color: var(--muted);
            margin-bottom: 6px;
            letter-spacing: 0.01em;
        }

        .form-control, .form-select {
            border: 1.5px solid var(--border);
            border-radius: var(--radius-sm);
            font-family: 'DM Sans', sans-serif;
            font-size: 0.92rem;
            color: var(--text);
            background: var(--surface);
            padding: 10px 14px;
            height: auto;
            transition: border-color .18s, box-shadow .18s;
        }

        .form-control:focus, .form-select:focus {
            border-color: var(--primary);
            box-shadow: 0 0 0 3px rgba(26,63,170,0.10);
            outline: none;
        }

        .form-control::placeholder {
            color: #b0b8cc;
        }

        /* ── Fee Summary ── */
        .fee-reference {
            background: var(--primary-light);
            border: 1px solid #c5d3f0;
            border-radius: var(--radius-sm);
            padding: 14px 16px;
            margin-bottom: 16px;
        }

        .fee-reference-title {
            font-size: 0.75rem;
            font-weight: 600;
            color: var(--primary);
            text-transform: uppercase;
            letter-spacing: 0.07em;
            margin-bottom: 10px;
        }

        .fee-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 6px;
        }

        .fee-item {
            background: var(--surface);
            border: 1px solid var(--border);
            border-radius: 6px;
            padding: 8px 12px;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .fee-item-label {
            font-size: 0.75rem;
            color: var(--muted);
        }

        .fee-item-amount {
            font-size: 0.85rem;
            font-weight: 600;
            color: var(--primary-dark);
        }

        /* ── Amount Display ── */
        .amount-display {
            background: var(--primary-light);
            border: 1.5px solid #c5d3f0;
            border-radius: var(--radius-sm);
            padding: 16px 20px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
        }

        .amount-display-left {
            font-size: 0.82rem;
            color: var(--muted);
            font-weight: 500;
        }

        .amount-display-left span {
            display: block;
            font-size: 0.75rem;
            color: #a0aabb;
            margin-top: 2px;
        }

        .amount-display-right {
            font-size: 1.7rem;
            font-weight: 600;
            color: var(--primary);
            white-space: nowrap;
        }

        .amount-display-right.empty {
            font-size: 0.85rem;
            font-weight: 400;
            color: #a0aabb;
        }

        /* ── Pay Button ── */
        .btn-pay {
            width: 100%;
            padding: 14px 20px;
            background: var(--primary);
            color: #fff;
            font-family: 'DM Sans', sans-serif;
            font-size: 1rem;
            font-weight: 600;
            border: none;
            border-radius: var(--radius-sm);
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            transition: background .18s, transform .12s;
            letter-spacing: 0.02em;
            margin-top: 24px;
        }

        .btn-pay:hover {
            background: var(--primary-dark);
        }

        .btn-pay:active {
            transform: scale(0.99);
        }

        .btn-pay svg {
            opacity: 0.85;
        }

        /* ── Footer Note ── */
        .reg-footer-note {
            text-align: center;
            margin-top: 14px;
            font-size: 0.76rem;
            color: var(--muted);
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 5px;
        }

        /* ── Error List ── */
        .errorlist {
            color: #d93025;
            list-style: none;
            padding: 0;
            margin-top: 4px;
            font-size: 0.78rem;
        }

        /* ── Responsive ── */
        @media (max-width: 600px) {
            .form-body { padding: 22px 18px 28px; }
            .reg-header { padding: 28px 20px 22px; }
            .reg-header h2 { font-size: 1.3rem; }
            .fee-grid { grid-template-columns: 1fr; }
            .progress-step { font-size: 0.65rem; padding: 9px 4px; }
        }

    