/* DeNTeeth unified portal authentication scale — R17
   One visual scale for Clinic, Dentist, Clinic Owner/Admin,
   Dental Clinic Association, and Healthcard Provider logins.
   Component sizing only: no page-level zoom. */

body.dt-portal-auth {
    min-height: 100vh !important;
}

body.dt-portal-auth.dt-public-page {
    background:
        radial-gradient(circle at 80% 10%, rgba(73, 182, 216, .17), transparent 28%),
        linear-gradient(180deg, #e8f7fc 0%, #f4f8fb 100%) !important;
}

/* Center custom login pages that do not use .ca-login. */
body.dt-portal-auth > .container {
    margin: 0 !important;
}

body.dt-portal-auth:not(:has(.ca-login)) {
    display: grid !important;
    place-items: center !important;
    padding: 20px !important;
}

body.dt-portal-auth .ca-login {
    min-height: 100vh !important;
    padding: 20px !important;
}

/* The single desktop card scale used by every portal role. */
body.dt-portal-auth .container,
body.dt-portal-auth .ca-login-card {
    width: min(390px, 100%) !important;
    max-width: 390px !important;
    padding: 24px !important;
    border-radius: 16px !important;
    box-shadow: 0 12px 34px rgba(20, 45, 90, .11) !important;
}

body.dt-portal-auth h1,
body.dt-portal-auth h2,
body.dt-portal-auth .ca-login-card h1 {
    font-size: 25px !important;
    line-height: 1.16 !important;
    margin-top: 0 !important;
    margin-bottom: 8px !important;
    letter-spacing: -.02em !important;
}

body.dt-portal-auth .brand,
body.dt-portal-auth .ca-kicker {
    font-size: 12px !important;
    line-height: 1.3 !important;
}

body.dt-portal-auth .subtitle,
body.dt-portal-auth .ca-muted {
    font-size: 13px !important;
    line-height: 1.5 !important;
}

body.dt-portal-auth label,
body.dt-portal-auth .ca-field label {
    font-size: 13px !important;
    line-height: 1.35 !important;
}

body.dt-portal-auth input:not([type="checkbox"]):not([type="radio"]),
body.dt-portal-auth select,
body.dt-portal-auth textarea,
body.dt-portal-auth .ca-field input,
body.dt-portal-auth .ca-field select {
    min-height: 43px !important;
    padding: 10px 11px !important;
    font-size: 13px !important;
    border-radius: 9px !important;
}

body.dt-portal-auth button,
body.dt-portal-auth .login-btn,
body.dt-portal-auth .register-button,
body.dt-portal-auth .ca-btn {
    min-height: 42px !important;
    padding: 10px 12px !important;
    font-size: 14px !important;
    border-radius: 9px !important;
}

body.dt-portal-auth .notice,
body.dt-portal-auth .error,
body.dt-portal-auth .success,
body.dt-portal-auth .clinic-box,
body.dt-portal-auth .ca-flash {
    padding: 11px 12px !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
}

body.dt-portal-auth .ca-login-card .ca-field {
    margin-top: 13px !important;
}

body.dt-portal-auth .ca-login-card .ca-btn {
    margin-top: 15px !important;
}

body.dt-portal-auth .back-nav {
    margin-bottom: 14px !important;
    padding: 8px 10px !important;
    font-size: 13px !important;
}

body.dt-portal-auth .row-buttons {
    gap: 8px !important;
    margin-bottom: 14px !important;
}

body.dt-portal-auth .row-buttons button {
    font-size: 13px !important;
}

body.dt-portal-auth .register-text,
body.dt-portal-auth .footer {
    font-size: 12px !important;
}

/* Keep suspension/restoration information readable without widening the card. */
body.dt-portal-auth .suspension-card,
body.dt-portal-auth .restored-card {
    padding: 13px !important;
    margin-bottom: 14px !important;
}

@media (max-width: 480px) {
    body.dt-portal-auth:not(:has(.ca-login)),
    body.dt-portal-auth .ca-login {
        padding: 14px !important;
    }

    body.dt-portal-auth .container,
    body.dt-portal-auth .ca-login-card {
        width: 100% !important;
        max-width: 100% !important;
        padding: 21px !important;
        border-radius: 15px !important;
    }

    body.dt-portal-auth h1,
    body.dt-portal-auth h2,
    body.dt-portal-auth .ca-login-card h1 {
        font-size: 23px !important;
    }
}
