.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1.2;
}

.auth-shell {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2.5rem 1rem;
    background: linear-gradient(180deg, #eef5fc 0%, #f4f8fb 55%);
}

.auth-card {
    width: 100%;
    max-width: 440px;
}

.auth-card .card {
    border: 0;
    border-radius: 22px;
    box-shadow: 0 12px 32px rgba(13, 62, 110, .12);
}

.auth-card .form-control {
    min-height: 48px;
    border-radius: 10px;
}

.auth-card .form-label {
    font-weight: 600;
    font-size: .9rem;
    color: #33475b;
}

.btn-auth {
    min-height: 52px;
    font-size: 1.05rem;
    font-weight: 600;
    border-radius: 12px;
}

@media (max-width: 380px) {
    .auth-shell {
        padding: 1.5rem .75rem;
    }
}

.btn-guide {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    background: linear-gradient(135deg, #0ea5a4, #0d8fce);
    color: #fff;
    border: none;
    border-radius: 999px;
    padding: .5rem 1.1rem;
    font-weight: 600;
    font-size: .85rem;
    text-decoration: none;
    box-shadow: 0 3px 10px rgba(13, 143, 206, .3);
    transition: transform .15s ease, box-shadow .15s ease, color .15s ease;
}

.btn-guide:hover,
.btn-guide:focus {
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 5px 16px rgba(13, 143, 206, .4);
}

.btn-guide svg {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
}

.btn-guide-sm {
    padding: .4rem .85rem;
    font-size: .78rem;
}

.btn-guide-sm svg {
    width: 13px;
    height: 13px;
}

.btn:not(.btn-sm):not(.btn-lg):not(.access-button) {
    min-height: 38px;
}

.btn-sm {
    min-height: 31px;
}

.btn-lg {
    min-height: 48px;
}

.app-toolbar,
.app-header-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: .5rem;
}

.app-toolbar {
    justify-content: center;
}

.app-toolbar > form {
    display: flex;
}

.app-toolbar > .btn,
.app-toolbar > form > .btn {
    min-width: 150px;
}

.app-header-actions {
    justify-content: flex-end;
    align-items: center;
}

.app-header-actions form {
    display: flex;
    margin: 0;
}

.table .btn-sm {
    min-width: 72px;
}

.catalog-edit-form .form-control {
    min-width: 180px;
}

.catalog-edit-form .btn {
    flex: 0 0 auto;
}

.app-row-actions,
.app-form-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
}

.app-row-actions form {
    display: flex;
    margin: 0;
}

.app-form-actions {
    justify-content: flex-end;
}

.app-form-actions .btn {
    min-width: 160px;
}

.specialty-inline-form {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.specialty-inline-form .form-control,
.specialty-inline-form .form-select {
    min-width: 180px;
}

@media (max-width: 767.98px) {
    .specialty-inline-form {
        flex-direction: column;
        align-items: stretch;
    }

    .specialty-inline-form .form-control,
    .specialty-inline-form .form-select {
        min-width: 0;
    }

    .specialty-inline-form .btn {
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    .app-page-header {
        flex-direction: column;
        align-items: stretch !important;
        gap: .75rem;
    }

    .app-header-actions {
        justify-content: stretch;
    }

    .app-header-actions > .btn,
    .app-page-header > .btn,
    .app-header-actions > form,
    .app-header-actions > form > .btn,
    .app-toolbar > .btn,
    .app-toolbar > form,
    .app-toolbar > form > .btn {
        width: 100%;
    }

    .app-toolbar > .btn,
    .app-toolbar > form > .btn {
        min-width: 0;
    }

    .catalog-edit-form .form-control {
        min-width: 150px;
    }

    .app-row-actions,
    .app-form-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .app-row-actions > .btn,
    .app-row-actions > form,
    .app-row-actions > form > .btn,
    .app-form-actions > .btn {
        width: 100%;
    }

    .app-form-actions .btn {
        min-width: 0;
    }
}
