@charset "utf-8";
/* =====================================================================
   PAGES D'AUTHENTIFICATION
   =====================================================================
   Reprise de l'ancien connect.css. Les valeurs codées en dur sont
   remplacées par des variables CSS, définies dans theme.css et
   surchargeables par client.

   Le rouge de la bordure (rgba(217,0,27,.8)) devient --connect-border :
   c'est typiquement ce qu'un client voudra changer.
   ===================================================================== */

:root {
    --connect-border:      var(--client-accent, rgba(217, 0, 27, .8));
    --connect-box-bg:      rgba(100, 100, 100, .7);
    --connect-footer-bg:   rgba(150, 150, 150, .5);
    --connect-text:        #fff;
    --connect-label:       #dedede;
    --connect-link:        #ccc;
    --connect-link-hover:  #caa;
    --connect-radius:      15px;
}

/* --- Polices -------------------------------------------------------- */
/* font-display: swap — le texte s'affiche immédiatement avec une police
   de repli plutôt que de rester invisible pendant le téléchargement.  */

@font-face {
    font-family: 'robotoregular';
    src: url('/assets/fonts/roboto/Roboto-Regular.woff2') format('woff2'),
         url('/assets/fonts/roboto/Roboto-Regular.woff') format('woff'),
         url('/assets/fonts/roboto/Roboto-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'robotothin';
    src: url('/assets/fonts/roboto/Roboto-Thin.woff2') format('woff2'),
         url('/assets/fonts/roboto/Roboto-Thin.woff') format('woff'),
         url('/assets/fonts/roboto/Roboto-Thin.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

/* --- Base ----------------------------------------------------------- */

body {
    margin: 0;
    padding: 0;
    font-size: 12px;
    line-height: 20px;
    text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
    font-family: 'robotoregular', system-ui, -apple-system, sans-serif;
}

a         { text-decoration: none; color: inherit; }
a:hover   { text-decoration: underline; }
a:focus-visible { outline: 2px solid var(--connect-text); outline-offset: 2px; }

/* --- Fond aléatoire -------------------------------------------------- */
/* L'image est injectée par le layout via --bg-connect.
   L'ancienne version générait un bloc <style> par page avec un chemin
   relatif ../images/ : cassé dès qu'on changeait de profondeur d'URL. */

.background_connect {
    background-image: var(--bg-connect, none);
    background-color: #1c2c42;      /* visible pendant le chargement */
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    min-height: 100vh;
    width: 100%;
}

/* --- Conteneur ------------------------------------------------------- */

.container_connect {
    margin: 0 auto;
    padding: 40px 0;
    width: 90%;
    max-width: 550px;
    color: var(--connect-text);
    text-align: center;
}

.container_connect a        { color: var(--connect-link); }
.container_connect a:hover  { color: var(--connect-link-hover); }

.container_connect .titre       { font-size: 22px; }
.container_connect .titre img   { max-width: 100%; height: auto;
                                  padding-bottom: 15px; vertical-align: middle; }

.container_connect .soustitre {
    padding: 25px 0 20px;
    border-top: thin var(--connect-text) solid;
    border-bottom: thin var(--connect-text) solid;
    font-size: 20px;
    text-transform: uppercase;
}

.container_connect .box {
    border: var(--connect-border) solid 6px;
    border-radius: var(--connect-radius);
    background-color: var(--connect-box-bg);
    margin-top: 35px;
    text-align: left;
    padding: 10px 50px 0;
    display: block;
}

/* --- Champs ---------------------------------------------------------- */

.control-label {
    color: var(--connect-label);
    font-size: 14px;
    margin: 15px 0 5px;
    display: block;
    width: 85%;
}

.input-group {
    color: #555;
    padding: 4px 8px;
    margin-bottom: 0;
    width: 90%;
}

input[type="text"],
input[type="password"] {
    background-color: #fff;
    border: 1px solid #ccc;
    border-radius: 6px;
    box-shadow: 0 1px 1px rgba(0, 0, 0, .075) inset;
    color: #555;
    display: block;
    height: 27px;
    line-height: 1.42857;
    padding: 4px 8px;
    transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
    width: 100%;
}

input[type="text"]:focus,
input[type="password"]:focus {
    border-color: var(--connect-border);
    outline: none;
}

/* --- Afficher / masquer le mot de passe ------------------------------ */
/* Remplace le <table> + case à cocher déportée hors écran.
   Un vrai <button> : accessible au clavier et aux lecteurs d'écran. */

.input-group--password {
    display: flex;
    align-items: center;
    gap: 8px;
}

.input-group--password .form-control { flex: 1; }

.toggle-password {
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px;
    color: rgba(255, 255, 255, .6);
    display: flex;
    align-items: center;
    transition: color .15s;
}

.toggle-password:hover,
.toggle-password[aria-pressed="true"] { color: #fff; }
.toggle-password .material-icons      { font-size: 22px; }

/* --- Messages -------------------------------------------------------- */

.message {
    background-color: rgba(217, 0, 27, .25);
    border-left: 4px solid var(--connect-border);
    padding: 10px 14px;
    margin: 10px 0;
    border-radius: 4px;
    color: var(--connect-text);
    font-size: 13px;
}

.message--warning {
    background-color: rgba(251, 188, 6, .25);
    border-left-color: #fbbc06;
}

.message h3 { margin: 0 0 8px; font-size: 15px; }
.message p  { margin: 6px 0; }

.hint { color: var(--connect-label); font-size: 12px; margin: 4px 0 0; }
.align-right { text-align: right; }

/* --- Pied de bloc ---------------------------------------------------- */

.panel-footer {
    margin: 30px -50px 0;
    background-color: var(--connect-footer-bg);
    border-top: #fff solid 1px;
    border-bottom-left-radius: 12px;
    border-bottom-right-radius: 12px;
    padding: 10px 15px;
}

.btn-connect {
    margin: 0 auto;
    display: block;
    width: 80%;
    padding: 10px;
    border-radius: 6px;
    font-size: 15px;
    box-shadow: 0 -2px 0 #e6e6e6 inset;
    background-color: #fff;
    border: 1px solid #ccc;
    color: #555;
    cursor: pointer;
    transition: background-color .15s;
}

.btn-connect:hover  { background-color: #f4f4f4; }
.btn-connect:active { box-shadow: 0 1px 2px rgba(0,0,0,.2) inset; }

/* --- Mobile ---------------------------------------------------------- */
/* L'ancienne version listait .background_connect1 à .background_connect11
   pour forcer une image dédiée. Une seule règle suffit maintenant. */

@media (max-width: 768px) {
    .background_connect {
        background-image: var(--bg-connect-mobile, var(--bg-connect, none));
        background-attachment: scroll;
    }
    .container_connect .box  { padding: 10px 20px 0; }
    .panel-footer            { margin: 30px -20px 0; }
    .control-label,
    .input-group             { width: 100%; }
}
