        :root {
            --rose: #e8a0a0;
            --gold: #c9a96e;
            --green: #7daa6e;
            --ink:  #2c2c2c;
        }
        * { box-sizing: border-box; margin: 0; padding: 0; }
        body {
            min-height: 100vh;
            background: linear-gradient(135deg, #fdf6f0 0%, #f9eef5 50%, #f5f0fd 100%);
            font-family: 'Lato', sans-serif;
            display: flex; align-items: center; justify-content: center;
            padding: 30px 20px;
        }
        .insc-wrap { width: 100%; max-width: 520px; }

        /* Header */
        .insc-header { text-align: center; margin-bottom: 24px; }
        .insc-logo {
            width: 70px; height: 70px; border-radius: 50%;
            background: linear-gradient(135deg, #fdf0e8, #f9eaf0);
            display: flex; align-items: center; justify-content: center;
            font-size: 1.8rem; margin: 0 auto 14px;
            box-shadow: 0 4px 20px rgba(201,169,110,.25);
            border: 2px solid #f0dece;
        }
        .insc-header h1 { font-family: 'Playfair Display', serif; font-size: 1.8rem; color: var(--ink); margin-bottom: 5px; }
        .insc-header h1 span { color: var(--gold); font-style: italic; }
        .insc-header p { color: #999; font-size: .9rem; }

        /* Badge parrainage */
        .parrain-badge {
            background: linear-gradient(135deg, #fdf6f0, #fef9f0);
            border: 1.5px solid var(--gold); border-radius: 12px;
            padding: 12px 18px; margin-bottom: 18px;
            display: flex; align-items: center; gap: 12px;
            font-size: .875rem; color: #7a5a2a;
        }
        .parrain-badge .parrain-icon { font-size: 1.4rem; flex-shrink: 0; }
        .parrain-badge strong { color: var(--gold); }

        /* Card */
        .insc-card {
            background: #fff; border-radius: 20px;
            box-shadow: 0 12px 50px rgba(201,169,110,.15);
            border: 1px solid #f0e8de; overflow: hidden;
        }
        .insc-card-header {
            background: linear-gradient(135deg, #fdf6f0, #fdf0f5);
            padding: 20px 28px 14px; border-bottom: 1px solid #f0e8e0; text-align: center;
        }
        .insc-card-header h4 { font-family: 'Playfair Display', serif; font-size: 1.1rem; color: var(--ink); margin-bottom: 3px; }
        .insc-card-header p  { font-size: .8rem; color: #aaa; }
        .insc-card-body { padding: 24px 28px; }

        /* Séparateur de section */
        .section-sep {
            display: flex; align-items: center; gap: 12px;
            margin: 20px 0 16px;
        }
        .section-sep span {
            font-size: .72rem; font-weight: 700; color: var(--gold);
            text-transform: uppercase; letter-spacing: .08em; white-space: nowrap;
        }
        .section-sep hr { flex: 1; border: none; border-top: 1px solid #f0e8de; }

        /* Form */
        .form-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
        .field-group { margin-bottom: 14px; }
        .field-group label {
            display: block; font-size: .73rem; font-weight: 700;
            color: var(--gold); margin-bottom: 5px;
            text-transform: uppercase; letter-spacing: .06em;
        }
        .field-group label .opt { font-weight: 400; text-transform: none; letter-spacing: 0; color: #bbb; font-size: .72rem; }
        .field-group input {
            width: 100%; border: 1.5px solid #e8ddd0; border-radius: 10px;
            padding: 10px 13px; font-size: .88rem; font-family: 'Lato', sans-serif;
            color: var(--ink); background: #fdfaf8;
            transition: border-color .15s, box-shadow .15s;
        }
        .field-group input:focus {
            outline: none; border-color: var(--gold);
            box-shadow: 0 0 0 3px rgba(201,169,110,.12); background: #fff;
        }
        .field-group .field-hint { font-size: .7rem; color: #ccc; margin-top: 3px; }

        /* Password toggle */
        .pass-wrap { position: relative; }
        .pass-wrap input { padding-right: 42px; }
        .pass-toggle {
            position: absolute; right: 11px; top: 50%; transform: translateY(-50%);
            background: none; border: none; cursor: pointer; color: #ccc; font-size: .82rem;
        }
        .pass-toggle:hover { color: var(--gold); }

        /* Strength bar */
        .strength-bar { height: 3px; border-radius: 3px; background: #f0e8e0; overflow: hidden; margin-top: 5px; }
        .strength-fill { height: 100%; border-radius: 3px; transition: width .3s, background .3s; width: 0; }

        /* Submit */
        .btn-insc {
            width: 100%; padding: 13px; border: none; border-radius: 12px;
            background: linear-gradient(135deg, var(--gold), #b8935a);
            color: #fff; font-size: 1rem; font-weight: 700;
            font-family: 'Lato', sans-serif; cursor: pointer;
            box-shadow: 0 4px 18px rgba(201,169,110,.4);
            transition: all .2s; letter-spacing: .02em;
        }
        .btn-insc:hover {
            background: linear-gradient(135deg, #b8935a, #a07840);
            box-shadow: 0 6px 22px rgba(201,169,110,.5);
            transform: translateY(-1px);
        }
        .btn-insc:active { transform: translateY(0); }

        .gratuit-badge { text-align: center; margin-top: 10px; font-size: .76rem; color: #bbb; }
        .gratuit-badge span { background: #f5f5f5; border-radius: 20px; padding: 3px 12px; }

        .login-link { text-align: center; margin-top: 16px; font-size: .82rem; color: #bbb; }
        .login-link a { color: var(--gold); text-decoration: none; font-weight: 700; }
        .login-link a:hover { color: #b8935a; text-decoration: underline; }

        /* Erreurs */
        .error-box {
            background: #fdecea; border: 1px solid #f5c0c0;
            border-radius: 10px; padding: 12px 16px; margin-bottom: 16px;
        }
        .error-box ul { margin: 0; padding-left: 16px; }
        .error-box li { font-size: .82rem; color: #c0392b; }

        @media (max-width: 500px) {
            .form-row-2 { grid-template-columns: 1fr; gap: 0; }
            .insc-card-body { padding: 18px; }
        }