

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

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

        body {
            background: var(--bg);
            font-family: 'DM Sans', sans-serif;
            color: var(--text);
            min-height: 100vh;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 40px 16px;
        }

        /* ── Card ── */
        .reg-card {
            max-width: 500px;
            width: 100%;
            background: var(--surface);
            border-radius: 20px;
            overflow: hidden;
            box-shadow: var(--shadow);
            border: 1px solid var(--border);
            animation: riseIn 0.5s cubic-bezier(0.22,1,0.36,1) both;
        }

        @keyframes riseIn {
            from { opacity: 0; transform: translateY(24px); }
            to   { opacity: 1; transform: translateY(0); }
        }

        /* ── Header ── */
        .reg-header {
            background: linear-gradient(135deg, #1a3faa 0%, #0d2475 100%);
            padding: 30px 36px 24px;
            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);
            pointer-events: none;
        }

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

        /* ── Rectangular Logo ── */
        .logo-wrap {
            display: inline-block;
            margin-bottom: 16px;
            position: relative;
            z-index: 1;
        }

        .logo-wrap img {
            height: 58px;
            width: auto;
            max-width: 200px;
            object-fit: contain;
            border-radius: 10px;
            background: rgba(255,255,255,0.12);
            border: 1.5px solid rgba(255,255,255,0.28);
            padding: 8px 14px;
            display: block;
            filter: drop-shadow(0 2px 8px rgba(0,0,0,0.18));
        }

        .reg-header h2 {
            font-family: 'Playfair Display', serif;
            font-size: 1.35rem;
            color: #fff;
            margin: 0 0 5px;
            line-height: 1.25;
            position: relative;
            z-index: 1;
        }

        .reg-header h4 {
            font-size: 0.78rem;
            font-weight: 400;
            color: rgba(255,255,255,0.72);
            margin: 0 0 14px;
            line-height: 1.5;
            position: relative;
            z-index: 1;
        }

        .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.72rem;
            font-weight: 500;
            padding: 5px 14px;
            letter-spacing: 0.03em;
            position: relative;
            z-index: 1;
        }

        /* ── Search Strip ── */
        .search-strip {
            background: var(--primary-light);
            border-bottom: 1px solid #c5d3f0;
            padding: 10px 20px;
            display: flex;
            align-items: center;
            gap: 8px;
            font-size: 0.76rem;
            font-weight: 500;
            color: var(--primary);
            letter-spacing: 0.02em;
        }

        /* ── Body ── */
        .form-body {
            padding: 28px 32px 32px;
        }

        /* ── Error Box ── */
        .error-box {
            background: var(--danger-light);
            border: 1px solid var(--danger-border);
            border-radius: var(--radius-sm);
            padding: 11px 14px;
            margin-bottom: 20px;
            display: flex;
            align-items: flex-start;
            gap: 9px;
            animation: fadeUp 0.3s ease both;
        }

        .error-box svg { flex-shrink: 0; color: var(--danger); margin-top: 1px; }

        .error-box-inner .error-label {
            font-size: 0.7rem;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.07em;
            color: var(--danger);
            margin-bottom: 2px;
        }

        .error-box-inner span {
            font-size: 0.8rem;
            color: #7a1f1a;
            line-height: 1.5;
        }

        @keyframes fadeUp {
            from { opacity: 0; transform: translateY(6px); }
            to   { opacity: 1; transform: translateY(0); }
        }

        /* ── Section Header ── */
        .section-head {
            display: flex;
            align-items: center;
            gap: 10px;
            margin-bottom: 16px;
        }

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

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

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

        /* ── Fields ── */
        .field {
            display: flex;
            flex-direction: column;
            gap: 6px;
            margin-bottom: 16px;
        }

        .field label {
            font-size: 0.8rem;
            font-weight: 500;
            color: var(--muted);
            letter-spacing: 0.01em;
        }

        .input-wrap {
            position: relative;
        }

        .input-wrap svg {
            position: absolute;
            left: 12px;
            top: 50%;
            transform: translateY(-50%);
            color: var(--muted);
            pointer-events: none;
        }

        .input-wrap input {
            width: 100%;
            height: 42px;
            padding: 0 14px 0 38px;
            font-family: 'DM Sans', sans-serif;
            font-size: 0.9rem;
            color: var(--text);
            background: var(--surface);
            border: 1.5px solid var(--border);
            border-radius: var(--radius-sm);
            outline: none;
            transition: border-color .18s, box-shadow .18s;
        }

        .input-wrap input::placeholder { color: #b0b8cc; font-size: 0.85rem; }

        .input-wrap input:focus {
            border-color: var(--primary);
            box-shadow: 0 0 0 3px rgba(26,63,170,0.10);
        }

        /* ── OR Divider ── */
        .or-divider {
            display: flex;
            align-items: center;
            gap: 12px;
            margin: 6px 0 16px;
        }

        .or-divider::before,
        .or-divider::after {
            content: '';
            flex: 1;
            height: 1px;
            background: var(--border);
        }

        .or-divider span {
            font-size: 0.7rem;
            font-weight: 600;
            color: var(--muted);
            letter-spacing: 0.1em;
            text-transform: uppercase;
            background: var(--surface);
            padding: 0 4px;
        }

        /* ── Submit Button ── */
        .btn-search {
            width: 100%;
            height: 46px;
            background: var(--primary);
            color: #fff;
            font-family: 'DM Sans', sans-serif;
            font-size: 0.95rem;
            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: 8px;
        }

        .btn-search:hover { background: var(--primary-dark); }
        .btn-search:active { transform: scale(0.99); }

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

        /* ── Tip Cards ── */
        .tip-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 8px;
            margin-top: 20px;
        }

        .tip-card {
            background: var(--primary-light);
            border: 1px solid #c5d3f0;
            border-radius: var(--radius-sm);
            padding: 10px 12px;
            display: flex;
            align-items: flex-start;
            gap: 8px;
        }

        .tip-card svg { flex-shrink: 0; color: var(--primary); margin-top: 1px; }

        .tip-card-text {
            font-size: 0.72rem;
            color: var(--primary);
            line-height: 1.45;
        }

        .tip-card-text strong {
            display: block;
            font-weight: 600;
            margin-bottom: 1px;
        }

        /* ── Responsive ── */
        @media (max-width: 480px) {
            body { padding: 20px 10px 40px; align-items: flex-start; }
            .form-body { padding: 20px 18px 24px; }
            .reg-header { padding: 24px 18px 20px; }
            .reg-header h2 { font-size: 1.15rem; }
            .tip-grid { grid-template-columns: 1fr; }
        }

