@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap);
html {
    min-height: 100%;
}

body {
    min-height: 100vh;
    margin: 0;
    background-color: #f7f9fc;
    color: #1f2937;
    font-family: 'Inter', sans-serif;
}

/* =========================================================
   PAGE DE CONNEXION
   ========================================================= */

.login-page {
    min-height: 100vh;
    padding: 40px 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
}

.login-container {
    width: 100%;
    max-width: 460px;
}

.login-return {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 18px;
    color: #6d28d9;
    font-size: 0.95rem;
    font-weight: 600;
    text-decoration: none;
    transition:
        color 0.2s ease,
        transform 0.2s ease;
}

.login-return:hover {
    color: #4c1d95;
    transform: translateX(-3px);
}

/* Carte */

.login-card {
    padding: 38px;
    background-color: #ffffff;
    border: 1px solid #e5e7eb;
    border-top: 5px solid #7c3aed;
    border-radius: 18px;
    box-shadow: 0 18px 45px rgba(31, 41, 55, 0.12);
}

/* En-tête */

.login-header {
    margin-bottom: 30px;
    text-align: center;
}

.login-icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 18px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 18px;
    background-color: #ede9fe;
    color: #7c3aed;
    font-size: 1.65rem;
}

.login-header h1 {
    margin: 0 0 9px;
    color: #1f2937;
    font-size: 1.8rem;
    font-weight: 700;
}

.login-header p {
    margin: 0;
    color: #6b7280;
    font-size: 0.95rem;
}

/* Formulaire */

.login-form {
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.login-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.login-field label {
    color: #374151;
    font-size: 0.92rem;
    font-weight: 600;
}

.login-input-wrapper {
    position: relative;
}

.login-input-wrapper i {
    position: absolute;
    top: 50%;
    left: 15px;
    color: #9ca3af;
    transform: translateY(-50%);
    pointer-events: none;
}

.login-input-wrapper input {
    width: 100%;
    height: 50px;
    padding: 0 15px 0 44px;
    box-sizing: border-box;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    background-color: #ffffff;
    color: #1f2937;
    font-family: inherit;
    font-size: 1rem;
    outline: none;
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        background-color 0.2s ease;
}

.login-input-wrapper input::placeholder {
    color: #9ca3af;
}

.login-input-wrapper input:focus {
    border-color: #7c3aed;
    background-color: #ffffff;
    box-shadow: 0 0 0 4px rgba(124, 58, 237, 0.13);
}

.login-input-wrapper:focus-within i {
    color: #7c3aed;
}

/* Mot de passe oublié */

.login-options {
    margin-top: -7px;
    display: flex;
    justify-content: flex-end;
}

.login-forgot-password {
    color: #7c3aed;
    font-size: 0.9rem;
    font-weight: 600;
    text-decoration: none;
    transition: color 0.2s ease;
}

.login-forgot-password:hover {
    color: #4c1d95;
    text-decoration: underline;
}

/* Bouton principal */

.login-submit {
    width: 100%;
    min-height: 50px;
    padding: 13px 20px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 9px;
    box-sizing: border-box;
    border: none;
    border-radius: 11px;
    background-color: #7c3aed;
    color: #ffffff;
    font-family: inherit;
    font-size: 1rem;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 7px 16px rgba(124, 58, 237, 0.28);
    transition:
        background-color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;
}

.login-submit:hover {
    background-color: #6d28d9;
    color: #ffffff;
    box-shadow: 0 10px 22px rgba(109, 40, 217, 0.36);
    transform: translateY(-2px);
}

/* Messages d’erreur */

.login-alert {
    margin-bottom: 24px;
    padding: 13px 15px;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    border-radius: 10px;
    font-size: 0.9rem;
    font-weight: 600;
}

.login-alert-danger {
    border: 1px solid #fecaca;
    background-color: #fee2e2;
    color: #991b1b;
}

.login-alert i {
    margin-top: 2px;
}

/* Utilisateur déjà connecté */

.login-connected {
    text-align: center;
}

.login-connected p {
    margin: 0 0 20px;
    color: #4b5563;
}

/* Responsive */

@media (max-width: 576px) {
    .login-page {
        padding: 25px 15px;
    }

    .login-card {
        padding: 28px 22px;
        border-radius: 15px;
    }

    .login-header h1 {
        font-size: 1.55rem;
    }

    .login-icon {
        width: 56px;
        height: 56px;
        font-size: 1.45rem;
    }
}

/* =========================================================
   RÉINITIALISATION DU MOT DE PASSE
   ========================================================= */

.reset-password-help {
    margin: -6px 0 0;
    color: #6b7280;
    font-size: 0.9rem;
    line-height: 1.5;
}

.login-field .form-error-message,
.login-field ul {
    margin: 7px 0 0;
    padding: 0;
    color: #b91c1c;
    font-size: 0.85rem;
    font-weight: 600;
    list-style: none;
}

.reset-password-fields {
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.reset-password-fields > ul {
    margin: 0;
    padding: 12px 15px;
    border: 1px solid #fecaca;
    border-radius: 10px;
    background-color: #fee2e2;
    color: #991b1b;
    font-size: 0.9rem;
    font-weight: 600;
    list-style: none;
}

.reset-password-fields .login-field ul {
    margin: 7px 0 0;
    padding: 0;
    color: #b91c1c;
    font-size: 0.85rem;
    font-weight: 600;
    list-style: none;
}

/* Succès */

.login-alert-success {
    background: #dcfce7;
    border: 1px solid #bbf7d0;
    color: #15803d;
}

.login-alert-success i {
    color: #16a34a;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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Iiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2Nzcy9hZG1pbi5jc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9SW50ZXI6d2dodEA0MDA7NTAwOzYwMDs3MDAmZGlzcGxheT1zd2FwJyk7XHJcblxyXG5odG1sIHtcclxuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcbmJvZHkge1xyXG4gICAgbWluLWhlaWdodDogMTAwdmg7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmOWZjO1xyXG4gICAgY29sb3I6ICMxZjI5Mzc7XHJcbiAgICBmb250LWZhbWlseTogJ0ludGVyJywgc2Fucy1zZXJpZjtcclxufVxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFBBR0UgREUgQ09OTkVYSU9OXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLmxvZ2luLXBhZ2Uge1xyXG4gICAgbWluLWhlaWdodDogMTAwdmg7XHJcbiAgICBwYWRkaW5nOiA0MHB4IDIwcHg7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxufVxyXG5cclxuLmxvZ2luLWNvbnRhaW5lciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogNDYwcHg7XHJcbn1cclxuXHJcbi5sb2dpbi1yZXR1cm4ge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZ2FwOiA4cHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4O1xyXG4gICAgY29sb3I6ICM2ZDI4ZDk7XHJcbiAgICBmb250LXNpemU6IDAuOTVyZW07XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgdHJhbnNpdGlvbjpcclxuICAgICAgICBjb2xvciAwLjJzIGVhc2UsXHJcbiAgICAgICAgdHJhbnNmb3JtIDAuMnMgZWFzZTtcclxufVxyXG5cclxuLmxvZ2luLXJldHVybjpob3ZlciB7XHJcbiAgICBjb2xvcjogIzRjMWQ5NTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtM3B4KTtcclxufVxyXG5cclxuLyogQ2FydGUgKi9cclxuXHJcbi5sb2dpbi1jYXJkIHtcclxuICAgIHBhZGRpbmc6IDM4cHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTdlYjtcclxuICAgIGJvcmRlci10b3A6IDVweCBzb2xpZCAjN2MzYWVkO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMThweDtcclxuICAgIGJveC1zaGFkb3c6IDAgMThweCA0NXB4IHJnYmEoMzEsIDQxLCA1NSwgMC4xMik7XHJcbn1cclxuXHJcbi8qIEVuLXTDqnRlICovXHJcblxyXG4ubG9naW4taGVhZGVyIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5sb2dpbi1pY29uIHtcclxuICAgIHdpZHRoOiA2NHB4O1xyXG4gICAgaGVpZ2h0OiA2NHB4O1xyXG4gICAgbWFyZ2luOiAwIGF1dG8gMThweDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VkZTlmZTtcclxuICAgIGNvbG9yOiAjN2MzYWVkO1xyXG4gICAgZm9udC1zaXplOiAxLjY1cmVtO1xyXG59XHJcblxyXG4ubG9naW4taGVhZGVyIGgxIHtcclxuICAgIG1hcmdpbjogMCAwIDlweDtcclxuICAgIGNvbG9yOiAjMWYyOTM3O1xyXG4gICAgZm9udC1zaXplOiAxLjhyZW07XHJcbiAgICBmb250LXdlaWdodDogNzAwO1xyXG59XHJcblxyXG4ubG9naW4taGVhZGVyIHAge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgY29sb3I6ICM2YjcyODA7XHJcbiAgICBmb250LXNpemU6IDAuOTVyZW07XHJcbn1cclxuXHJcbi8qIEZvcm11bGFpcmUgKi9cclxuXHJcbi5sb2dpbi1mb3JtIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgZ2FwOiAyMnB4O1xyXG59XHJcblxyXG4ubG9naW4tZmllbGQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBnYXA6IDhweDtcclxufVxyXG5cclxuLmxvZ2luLWZpZWxkIGxhYmVsIHtcclxuICAgIGNvbG9yOiAjMzc0MTUxO1xyXG4gICAgZm9udC1zaXplOiAwLjkycmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxufVxyXG5cclxuLmxvZ2luLWlucHV0LXdyYXBwZXIge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4ubG9naW4taW5wdXQtd3JhcHBlciBpIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgbGVmdDogMTVweDtcclxuICAgIGNvbG9yOiAjOWNhM2FmO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbn1cclxuXHJcbi5sb2dpbi1pbnB1dC13cmFwcGVyIGlucHV0IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiA1MHB4O1xyXG4gICAgcGFkZGluZzogMCAxNXB4IDAgNDRweDtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDFkNWRiO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XHJcbiAgICBjb2xvcjogIzFmMjkzNztcclxuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xyXG4gICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIHRyYW5zaXRpb246XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yIDAuMnMgZWFzZSxcclxuICAgICAgICBib3gtc2hhZG93IDAuMnMgZWFzZSxcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZTtcclxufVxyXG5cclxuLmxvZ2luLWlucHV0LXdyYXBwZXIgaW5wdXQ6OnBsYWNlaG9sZGVyIHtcclxuICAgIGNvbG9yOiAjOWNhM2FmO1xyXG59XHJcblxyXG4ubG9naW4taW5wdXQtd3JhcHBlciBpbnB1dDpmb2N1cyB7XHJcbiAgICBib3JkZXItY29sb3I6ICM3YzNhZWQ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xyXG4gICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoMTI0LCA1OCwgMjM3LCAwLjEzKTtcclxufVxyXG5cclxuLmxvZ2luLWlucHV0LXdyYXBwZXI6Zm9jdXMtd2l0aGluIGkge1xyXG4gICAgY29sb3I6ICM3YzNhZWQ7XHJcbn1cclxuXHJcbi8qIE1vdCBkZSBwYXNzZSBvdWJsacOpICovXHJcblxyXG4ubG9naW4tb3B0aW9ucyB7XHJcbiAgICBtYXJnaW4tdG9wOiAtN3B4O1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbn1cclxuXHJcbi5sb2dpbi1mb3Jnb3QtcGFzc3dvcmQge1xyXG4gICAgY29sb3I6ICM3YzNhZWQ7XHJcbiAgICBmb250LXNpemU6IDAuOXJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2U7XHJcbn1cclxuXHJcbi5sb2dpbi1mb3Jnb3QtcGFzc3dvcmQ6aG92ZXIge1xyXG4gICAgY29sb3I6ICM0YzFkOTU7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxufVxyXG5cclxuLyogQm91dG9uIHByaW5jaXBhbCAqL1xyXG5cclxuLmxvZ2luLXN1Ym1pdCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XHJcbiAgICBwYWRkaW5nOiAxM3B4IDIwcHg7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGdhcDogOXB4O1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDExcHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2MzYWVkO1xyXG4gICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcclxuICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBib3gtc2hhZG93OiAwIDdweCAxNnB4IHJnYmEoMTI0LCA1OCwgMjM3LCAwLjI4KTtcclxuICAgIHRyYW5zaXRpb246XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2UsXHJcbiAgICAgICAgYm94LXNoYWRvdyAwLjJzIGVhc2UsXHJcbiAgICAgICAgdHJhbnNmb3JtIDAuMnMgZWFzZTtcclxufVxyXG5cclxuLmxvZ2luLXN1Ym1pdDpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNmQyOGQ5O1xyXG4gICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMjJweCByZ2JhKDEwOSwgNDAsIDIxNywgMC4zNik7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XHJcbn1cclxuXHJcbi8qIE1lc3NhZ2VzIGTigJllcnJldXIgKi9cclxuXHJcbi5sb2dpbi1hbGVydCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xyXG4gICAgcGFkZGluZzogMTNweCAxNXB4O1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgZ2FwOiAxMHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxufVxyXG5cclxuLmxvZ2luLWFsZXJ0LWRhbmdlciB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmVjYWNhO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZTJlMjtcclxuICAgIGNvbG9yOiAjOTkxYjFiO1xyXG59XHJcblxyXG4ubG9naW4tYWxlcnQgaSB7XHJcbiAgICBtYXJnaW4tdG9wOiAycHg7XHJcbn1cclxuXHJcbi8qIFV0aWxpc2F0ZXVyIGTDqWrDoCBjb25uZWN0w6kgKi9cclxuXHJcbi5sb2dpbi1jb25uZWN0ZWQge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4ubG9naW4tY29ubmVjdGVkIHAge1xyXG4gICAgbWFyZ2luOiAwIDAgMjBweDtcclxuICAgIGNvbG9yOiAjNGI1NTYzO1xyXG59XHJcblxyXG4vKiBSZXNwb25zaXZlICovXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNTc2cHgpIHtcclxuICAgIC5sb2dpbi1wYWdlIHtcclxuICAgICAgICBwYWRkaW5nOiAyNXB4IDE1cHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmxvZ2luLWNhcmQge1xyXG4gICAgICAgIHBhZGRpbmc6IDI4cHggMjJweDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5sb2dpbi1oZWFkZXIgaDEge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS41NXJlbTtcclxuICAgIH1cclxuXHJcbiAgICAubG9naW4taWNvbiB7XHJcbiAgICAgICAgd2lkdGg6IDU2cHg7XHJcbiAgICAgICAgaGVpZ2h0OiA1NnB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS40NXJlbTtcclxuICAgIH1cclxufVxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFLDiUlOSVRJQUxJU0FUSU9OIERVIE1PVCBERSBQQVNTRVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi5yZXNldC1wYXNzd29yZC1oZWxwIHtcclxuICAgIG1hcmdpbjogLTZweCAwIDA7XHJcbiAgICBjb2xvcjogIzZiNzI4MDtcclxuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcclxufVxyXG5cclxuLmxvZ2luLWZpZWxkIC5mb3JtLWVycm9yLW1lc3NhZ2UsXHJcbi5sb2dpbi1maWVsZCB1bCB7XHJcbiAgICBtYXJnaW46IDdweCAwIDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgY29sb3I6ICNiOTFjMWM7XHJcbiAgICBmb250LXNpemU6IDAuODVyZW07XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxufVxyXG5cclxuLnJlc2V0LXBhc3N3b3JkLWZpZWxkcyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGdhcDogMjJweDtcclxufVxyXG5cclxuLnJlc2V0LXBhc3N3b3JkLWZpZWxkcyA+IHVsIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDEycHggMTVweDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZWNhY2E7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZTJlMjtcclxuICAgIGNvbG9yOiAjOTkxYjFiO1xyXG4gICAgZm9udC1zaXplOiAwLjlyZW07XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxufVxyXG5cclxuLnJlc2V0LXBhc3N3b3JkLWZpZWxkcyAubG9naW4tZmllbGQgdWwge1xyXG4gICAgbWFyZ2luOiA3cHggMCAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGNvbG9yOiAjYjkxYzFjO1xyXG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbn1cclxuXHJcbi8qIFN1Y2PDqHMgKi9cclxuXHJcbi5sb2dpbi1hbGVydC1zdWNjZXNzIHtcclxuICAgIGJhY2tncm91bmQ6ICNkY2ZjZTc7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYmJmN2QwO1xyXG4gICAgY29sb3I6ICMxNTgwM2Q7XHJcbn1cclxuXHJcbi5sb2dpbi1hbGVydC1zdWNjZXNzIGkge1xyXG4gICAgY29sb3I6ICMxNmEzNGE7XHJcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/