/* Écrans publics d’authentification : réutilisent les contrôles ServiCime. */
.auth-page { min-width: 320px; min-height: 100vh; background: var(--app-bg); }
.auth-layout { display: grid; min-height: 100vh; grid-template-columns: minmax(280px, .88fr) minmax(420px, 1.12fr); }
.auth-brand-panel { display: flex; flex-direction: column; justify-content: space-between; min-height: 100%; padding: clamp(30px, 5vw, 68px); background: linear-gradient(145deg, var(--app-sidebar), var(--app-sidebar-deep)); color: #fff; }
.auth-brand-link { display: block; width: min(244px, 100%); }.auth-brand-link img { display: block; width: 100%; height: auto; }.auth-brand-panel p { max-width: 290px; margin: 72px 0 0; color: rgb(228 244 241 / 82%); font-size: 16px; line-height: 1.55; }
.auth-content { display: grid; width: 100%; padding: 32px; place-items: center; }
.auth-card { display: grid; width: min(100%, 460px); gap: 24px; padding: clamp(24px, 4vw, 38px); border: 1px solid var(--app-border); border-radius: 16px; background: var(--app-surface); box-shadow: 0 16px 42px rgb(21 50 47 / 9%); }
.auth-card__header { display: grid; gap: 8px; }.auth-card__header h1 { margin: 0; color: var(--app-text); font-size: clamp(25px, 3vw, 31px); line-height: 1.18; letter-spacing: -.025em; }.auth-card__header p { margin: 0; color: var(--app-muted); font-size: 14px; line-height: 1.55; }
.auth-form { display: grid; gap: 18px; }.auth-form .app-field { gap: 7px; }.auth-form .app-input { font-size: 14px; }.auth-submit { width: 100%; margin-top: 2px; }
.auth-message { margin: 0; padding: 12px 13px; border: 1px solid #c9ddef; border-radius: 10px; background: #eff7ff; color: #294d6a; font-size: 14px; line-height: 1.45; }.auth-message--error { border-color: #efd1ca; background: #fff4f1; color: #7a372d; }
.auth-links { display: grid; gap: 10px; margin: 0; color: var(--app-muted); font-size: 14px; line-height: 1.45; }.auth-links a { width: fit-content; color: #0b7167; font-weight: 700; }.auth-links a:hover { color: #064b48; }.auth-links--separated { padding-top: 20px; border-top: 1px solid var(--app-border); }
.auth-skip-link { position: fixed; z-index: 100; top: 12px; left: 12px; transform: translateY(-160%); padding: 9px 12px; border-radius: 8px; background: var(--app-surface); color: var(--app-text); box-shadow: 0 8px 22px rgb(21 50 47 / 18%); }.auth-skip-link:focus { transform: translateY(0); }
@media (max-width: 760px) { .auth-layout { grid-template-columns: 1fr; grid-template-rows: auto 1fr; }.auth-brand-panel { min-height: auto; padding: 24px; }.auth-brand-link { width: 188px; }.auth-brand-panel p { display: none; }.auth-content { padding: 20px 16px 32px; place-items: start center; }.auth-card { padding: 24px 20px; border-radius: 14px; } }
@media (max-width: 380px) { .auth-content { padding-right: 12px; padding-left: 12px; }.auth-card { padding: 22px 16px; } }

/* Carte publique de présentation : même surface que le reste de l'application. */
.auth-card { background: var(--app-card-background); }
