/* Login presentation, scoped to preserve other legacy pages. */
body.avc-login-view { background: #f5f7f4; }
.avc-login { --login-green: #23564b; --login-ink: #263c36; --login-muted: #697a71; box-sizing: border-box; max-width: 1060px; padding: 0 28px; margin: 42px auto 64px; color: var(--login-ink); font: 15px/1.55 -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; text-align: left; }
.avc-login *, .avc-login *::before, .avc-login *::after { box-sizing: border-box; }
.avc-login h1, .avc-login h2, .avc-login h3, .avc-login p { margin: 0; }
.avc-login a { color: var(--login-green); text-decoration: none; }
.avc-login a:hover { text-decoration: underline; text-underline-offset: 4px; }
.avc-login :is(a, button, input, select):focus-visible { outline: 3px solid #83b6a5; outline-offset: 3px; }
.login-eyebrow { color: var(--login-green); font-size: 10px; font-weight: 750; letter-spacing: .16em; }
.avc-login h1 { font-size: 36px; font-weight: 720; line-height: 1.23; letter-spacing: -.035em; margin: 8px 0 12px; }
.login-intro { margin-bottom: 30px; }
.login-intro > p:last-child { color: var(--login-muted); font-size: 14px; }
.login-layout { display: grid; grid-template-columns: 1fr 1.15fr; align-items: stretch; border: 1px solid #dce5de; border-radius: 18px; background: #fff; box-shadow: 0 8px 28px #234b3b06; overflow: hidden; }
.login-welcome { display: flex; flex-direction: column; background: var(--login-green); color: #fff; padding: 32px; }
.login-agency { color: #c5dacf; font-size: 10px; letter-spacing: .1em; font-weight: 650; }
.login-agency > span { padding: 0 5px; }
.login-document-icon { display: grid; place-items: center; width: 68px; height: 78px; border: 1px solid #ffffff26; border-radius: 12px; background: #ffffff09; color: #d1e6d7; margin: 28px 0 23px; }
.login-welcome h2 { font-size: 29px; letter-spacing: -.025em; line-height: 1.25; margin-bottom: 16px; font-weight: 620; }
.login-welcome > p { color: #d4e3db; font-size: 13px; line-height: 1.8; max-width: 310px; }
.login-benefits { padding: 0; list-style: none; margin: 24px 0 29px; display: grid; gap: 13px; }
.login-benefits li { display: flex; align-items: center; gap: 10px; font-size: 12px; color: #e0ebe3; }
.login-benefits li > span { display: grid; place-items: center; width: 18px; height: 18px; flex-shrink: 0; border-radius: 50%; background: #ffffff14; color: #d4e7d6; font-size: 10px; }
.login-help { margin-top: auto; padding-top: 23px; border-top: 1px solid #ffffff29; }
.login-help h3 { font-size: 12px; font-weight: 650; }
.login-help p { font-size: 12px; color: #c7dccf; margin-top: 6px; }
.login-help a { display: inline-flex; align-items: center; gap: 14px; color: #fff; font-size: 12px; margin-top: 12px; text-decoration: underline; text-underline-offset: 4px; }
.login-panel { padding: 40px 38px; min-width: 0; align-self: center; }
.login-lock-icon { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 12px; background: #edf4ee; color: var(--login-green); margin-bottom: 20px; }
.login-panel h2 { font-size: 24px; letter-spacing: -.025em; line-height: 1.3; font-weight: 700; }
.login-description { color: var(--login-muted); font-size: 13px; margin-top: 10px !important; }
.login-form { margin: 26px 0 0; }
.login-field + .login-field { margin-top: 20px; }
.login-form label { display: block; color: #3a5145; font-size: 12px; font-weight: 600; margin-bottom: 7px; }
.avc-login input, .avc-login select, .avc-login button { font: inherit; }
.login-form input:not([type="hidden"]), .login-form select { display: block; width: 100%; min-width: 0; min-height: 46px; border: 1px solid #d7e1d9; border-radius: 7px; padding: 11px 12px; color: var(--login-ink); background: #fdfefd; font-size: 14px; }
.login-form input::placeholder { color: #819087; opacity: 1; }
.login-form input:focus, .login-form select:focus { border-color: #719b84; box-shadow: 0 0 0 3px #edf4ed; }
.login-form select { white-space: normal; }
.login-password-label { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.login-password-label a { font-size: 11px; text-decoration: underline; text-underline-offset: 3px; }
.login-password-field { position: relative; }
.login-password-field input { padding-right: 83px !important; }
.login-password-toggle { position: absolute; top: 4px; right: 5px; min-height: 38px; border: 0; border-radius: 4px; color: #526c5c; background: transparent; padding: 0 10px; font-size: 11px !important; cursor: pointer; }
.login-password-toggle:hover { background: #edf4ee; }
.login-primary { width: 100%; min-height: 47px; display: flex; justify-content: center; align-items: center; gap: 22px; border: 0; border-radius: 7px; background: var(--login-green); color: #fff !important; padding: 12px 16px; margin-top: 24px; font-size: 13px !important; font-weight: 600 !important; cursor: pointer; text-align: center; }
.login-primary:hover { background: #173f36; text-decoration: none !important; }
.login-account-note { margin-top: 22px !important; padding-top: 18px; border-top: 1px solid #e7ece7; color: #748276; font-size: 11px; line-height: 1.8; }
.login-error { margin-top: 20px; padding: 12px 14px; border: 1px solid #e7c9c4; border-radius: 7px; background: #fff7f5; color: #873c33; font-size: 12px; }
.login-error strong { font-size: 12px; }
.login-error p { margin-top: 3px; line-height: 1.6; }
@media (min-width: 761px) and (max-width: 1200px) {
    body.avc-login-view .head { width: 100%; }
    body.avc-login-view .head .logo { width: 16%; }
    body.avc-login-view .head .logo img { max-width: 100%; max-height: 60px; height: auto; }
    body.avc-login-view .bouton_head { width: 16.5%; font-size: 18px; }
    .login-panel { padding: 32px 25px; }
    .login-welcome { padding: 30px 25px; }
    .login-password-label { flex-wrap: wrap; gap: 0 10px; margin-bottom: 7px; }
    .login-password-label label { margin-bottom: 0; }
}
@media (max-width: 760px) {
    body.avc-login-view .head { width: 100%; max-width: 100%; height: auto; display: flex; flex-wrap: wrap; align-items: center; }
    body.avc-login-view .head .logo { float: none; width: 100%; height: auto; margin: 0; padding: 9px; border: 0; border-radius: 0; box-shadow: none; }
    body.avc-login-view .bouton_head { width: auto; float: none; flex: 1 1 auto; height: 40px; font-size: 14px; }
    body.avc-login-view .deco { height: 8px; background-image: none; }
    .avc-login { padding: 0 16px; margin: 29px auto 36px; }
    .avc-login h1 { font-size: 30px; }
    .login-eyebrow { font-size: 9px; }
    .login-intro { margin-bottom: 24px; }
    .login-intro > p:last-child { font-size: 13px; }
    .login-layout { grid-template-columns: 1fr; border-radius: 13px; }
    .login-panel { grid-row: 1; padding: 27px 22px; }
    .login-panel h2 { font-size: 23px; }
    .login-lock-icon { margin-bottom: 17px; }
    .login-form input:not([type="hidden"]), .login-form select { font-size: 16px; min-height: 48px; }
    .login-password-toggle { min-height: 40px; }
    .login-password-label { flex-wrap: wrap; gap: 0 10px; margin-bottom: 7px; }
    .login-password-label label { margin-bottom: 0; }
    .login-welcome { padding: 29px 24px; }
    .login-document-icon { display: none; }
    .login-welcome h2 { margin-top: 23px; font-size: 27px; }
    .login-benefits { margin-bottom: 25px; }
    .login-help a { min-height: 32px; margin-top: 7px; }
}
