/* Shared phone safeguards for the public site. Page-specific layouts keep
   their own visual treatment; these rules only prevent fixed legacy pieces
   from widening the viewport or becoming unusable at phone widths. */
html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

img,
svg,
video,
canvas,
iframe {
    max-width: 100%;
}

input,
select,
textarea,
button {
    max-width: 100%;
}

.public-navigation-standard,
.public-navigation-container,
.public-navigation-brand,
.public-navigation-links,
.public-navigation-actions {
    min-width: 0;
}

.public-navigation-brand img {
    display: block;
    max-width: 100%;
}

.partner-auth-page .group-container,
.partner-auth-page .group-container > .container,
.account-page.client-auth-page .group-container,
.account-page.client-auth-page .group-container > .container,
.partner-auth-shell,
.client-auth-shell,
.partner-auth-story,
.partner-auth-card,
.client-auth-story,
.client-auth-card {
    min-width: 0;
    max-width: 100%;
}

.partner-auth-proof > div,
.client-auth-proof > div {
    min-width: 0;
    overflow-wrap: anywhere;
}

.assessify-captcha,
.assessify-captcha > div,
.cf-turnstile,
.cf-turnstile > div,
.cf-turnstile iframe {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}

.assessify-captcha {
    overflow: hidden;
}

.terms-page .terms-document,
.terms-page .terms-document > .row,
.terms-page .terms-document > .row > .col-12 {
    width: 100%;
    min-width: 0;
    max-width: 100%;
}

.terms-page .terms-document table {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto;
    overflow-y: hidden;
}

.terms-page .terms-document table tbody {
    display: table;
    width: 100%;
}

.terms-page .terms-document table td,
.terms-page .terms-document table th {
    overflow-wrap: anywhere;
}

@media (max-width: 640px) {
    .public-navigation-standard {
        width: 100%;
        padding-right: .75rem;
        padding-left: .75rem;
        gap: .35rem;
    }

    .public-navigation-actions {
        gap: .2rem;
    }

    .public-navigation-trial {
        max-width: 10rem;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .partner-auth-story h1,
    .client-auth-story h1 {
        max-width: 100%;
        overflow-wrap: normal;
        word-break: normal;
    }

    .partner-auth-card,
    .client-auth-card {
        width: 100%;
    }
}

@media (max-width: 360px) {
    .public-navigation-standard {
        padding-right: .5rem;
        padding-left: .5rem;
        gap: .25rem;
    }

    .public-navigation-brand img {
        width: 94px;
    }

    .public-navigation-login-toggle {
        padding-right: .1rem;
        padding-left: .1rem;
        font-size: .68rem;
    }

    .public-navigation-trial {
        max-width: 6.6rem;
        padding: .55rem .45rem;
        font-size: .62rem;
    }

    .public-nav-toggle {
        width: 28px;
        height: 28px;
        padding: .2rem;
        font-size: 1rem;
    }

    .partner-auth-proof,
    .client-auth-proof {
        grid-template-columns: 1fr;
    }

    .partner-auth-proof > div,
    .client-auth-proof > div {
        min-height: 0;
    }
}
