h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

.login-input {
    width: 100%;
    box-sizing: border-box;
    padding: 0.6rem 0.75rem;
    border: 1px solid #c4c4c4;
    border-radius: 4px;
    font-size: 1rem;
}

    .login-input:focus {
        outline: none;
        border-color: #594ae2;
        box-shadow: 0 0 0 2px rgba(89, 74, 226, 0.2);
    }



/* Pulso sutil no botão "Ativar notificações" do cabeçalho (MainLayout.razor) —
   chama atenção sem precisar de uma cor fora da paleta da marca; o brilho usa
   a própria cor de destaque do botão (#14B8A6 = Primary/teal). */
@keyframes clara-notify-pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(20, 184, 166, 0.55);
    }

    70% {
        box-shadow: 0 0 0 10px rgba(20, 184, 166, 0);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(20, 184, 166, 0);
    }
}

.notify-button-pulse {
    animation: clara-notify-pulse 2s infinite;
}

/* Cabeçalho (MainLayout.razor) no mobile — corrigido em 2026-09-08: o título
   quebrava em 2 linhas e ficava sobreposto pelos botões do cabeçalho (que não
   tinham nenhuma regra de colapso pra telas estreitas). O título agora nunca
   quebra linha — trunca com reticências se precisar, o que nunca deveria
   acontecer de fato já que os botões ao lado viram ícone sozinho no mobile
   (texto escondido via d-none/d-sm-inline direto no .razor). min-width: 0 é
   necessário aqui porque item de flex por padrão não encolhe abaixo do
   tamanho do próprio conteúdo — sem isso, overflow/text-overflow não fazem
   nada dentro do MudAppBar (que é flex). */
.clara-header-title {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

/* Botões do cabeçalho ficam só com o ícone abaixo de 600px (texto escondido
   no .razor) — sem o texto, a margem que o StartIcon reserva pra separar
   ícone/texto (mud-button-start-icon) sobra como um respiro assimétrico à
   direita do ícone. Zerada só nesse breakpoint; desktop (sm+) não é afetado. */
@media (max-width: 599px) {
    .clara-header-compact-btn .mud-button-start-icon {
        margin-right: 0;
    }
}

/* Cards de métrica do dashboard (Home.razor). Fica em app.css (não em
   .razor.css com escopo) porque o atributo de escopo do Blazor não é
   propagado de forma confiável para o elemento raiz de componentes
   MudBlazor como MudPaper/MudText. */
.metric-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    /* Altura mínima fixa e igual pra todo card, independente do conteúdo —
       não depende só do stretch do grid/flex do container (MudGrid). */
    min-height: 6.25rem;
}

/* Rótulo sempre em 1 linha só, mesmo quando o texto é mais longo (ex.:
   "Médicos (plano Legado)") — trunca com reticências em vez de quebrar
   pra uma 2ª linha, o que descolava o valor numérico entre os cards da
   fileira. O atributo title="" (adicionado em Home.razor, mesmo texto do
   rótulo) mostra o texto completo ao passar o mouse quando ele é cortado. */
.metric-card-label {
    display: block;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    min-height: 2.35rem;
    line-height: 1.18rem;
    font-weight: 600;
}

.metric-card-value {
    margin-top: 0.25rem;
    /* Valores como "3 de 100" nunca podem quebrar linha — quebrar é o que
       tornava esses cards mais altos que os demais da fileira. */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    /* Tamanho fixo (menor que o padrão do MudBlazor pra Typo.h5) — precisa
       caber "0 de 100" numa linha só mesmo na coluna mais estreita da
       fileira (md=2, 6 cards lado a lado). Um valor curto como "0" fica um
       pouco menor do que ficaria em h4/h5 puro, mas todos os cards da
       fileira usam o mesmo tamanho — é isso que mantém a consistência. */
    font-size: 1.375rem;
}

/* ============================================================
   Clara Admin — Design System v2 (estrutura global + dashboard)
   ============================================================ */
:root {
    --clara-ink: #061d22;
    --clara-ink-2: #0a3036;
    --clara-teal: #14b8a6;
    --clara-teal-light: #79e1d3;
    --clara-bg: #f5f9f8;
    --clara-surface: #ffffff;
    --clara-border: #dce8e6;
    --clara-text: #152a2e;
    --clara-muted: #5c7477;
}

.clara-appbar {
    border-bottom: 1px solid rgba(121, 225, 211, .13);
    box-shadow: 0 1px 0 rgba(6, 29, 34, .08) !important;
}

.clara-header-title {
    font-weight: 700 !important;
    letter-spacing: -.015em;
}

.clara-drawer {
    border-right: 1px solid rgba(121, 225, 211, .12) !important;
}

.clara-main-content {
    background: var(--clara-bg);
    min-height: 100vh;
}

.clara-content-container {
    padding: 2rem 2rem 3rem !important;
}

.clara-nav-menu {
    padding: .75rem .55rem 1.5rem;
}

/* Versão do painel no fim do menu lateral (2026-10-06): pequena e apagada de propósito. */
.clara-app-version {
    padding: 0 1.1rem 1rem;
    font-size: .72rem;
    opacity: .5;
    user-select: all;
}

    .clara-nav-menu .mud-nav-link,
    .clara-nav-menu .mud-nav-group > .mud-nav-link {
        min-height: 42px;
        margin: 2px 0;
        border-radius: 10px;
        font-size: .91rem;
    }

        .clara-nav-menu .mud-nav-link:hover {
            background: rgba(121, 225, 211, .08);
        }

        .clara-nav-menu .mud-nav-link.active {
            background: rgba(20, 184, 166, .16);
            color: var(--clara-teal-light);
            font-weight: 600;
        }

            .clara-nav-menu .mud-nav-link.active .mud-nav-link-icon {
                color: var(--clara-teal-light) !important;
            }

    .clara-nav-menu .mud-nav-group > .mud-nav-link {
        margin-top: .45rem;
        color: #eef8f6;
        font-weight: 600;
    }

.clara-page-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.6rem;
}

.clara-page-title {
    color: var(--clara-text);
    font-weight: 750 !important;
    letter-spacing: -.035em !important;
    line-height: 1.08 !important;
}

.clara-page-subtitle {
    margin-top: .45rem !important;
    font-size: .96rem !important;
}

.clara-loading-state {
    display: flex;
    min-height: 240px;
    align-items: center;
    justify-content: center;
}

.clara-dashboard-card {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--clara-border);
    border-radius: 16px !important;
    background: var(--clara-surface);
    box-shadow: 0 6px 20px rgba(6, 29, 34, .035) !important;
    transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.clara-clickable-card {
    cursor: pointer;
}

    .clara-clickable-card:hover {
        transform: translateY(-2px);
        border-color: rgba(20, 184, 166, .45);
        box-shadow: 0 10px 28px rgba(6, 29, 34, .075) !important;
    }

.metric-card {
    min-height: 8rem;
    justify-content: flex-end;
}

.metric-icon {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 2.35rem;
    height: 2.35rem;
    display: grid;
    place-items: center;
    border-radius: 11px;
    color: #087f73;
    background: rgba(20, 184, 166, .11);
}

    .metric-icon .mud-icon-root {
        font-size: 1.25rem;
    }

.metric-icon-alert {
    color: #b42318;
    background: #fff0ee;
}

.metric-card-label {
    height: auto;
    line-height: 1.2rem;
    padding-right: 2.4rem;
    color: var(--clara-muted) !important;
    font-weight: 600 !important;
    letter-spacing: .01em;
}

.metric-card-value {
    margin-top: .4rem;
    color: var(--clara-text);
    font-size: 1.75rem;
    font-weight: 750;
    letter-spacing: -.03em;
    line-height: 1.1;
}

.metric-limit {
    color: var(--clara-muted);
    font-size: .9rem;
    font-weight: 600;
    letter-spacing: 0;
}

.clara-section-card {
    overflow: hidden;
    border: 1px solid var(--clara-border);
    border-radius: 16px !important;
    background: var(--clara-surface);
    box-shadow: 0 6px 20px rgba(6, 29, 34, .035) !important;
}

.clara-section-header {
    min-height: 76px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.15rem 1.3rem;
    border-bottom: 1px solid #e7efed;
}

    .clara-section-header .mud-typography-h6 {
        color: var(--clara-text);
        font-weight: 700;
        letter-spacing: -.02em;
    }

.clara-section-header-actions {
    flex-wrap: wrap;
}

.clara-section-icon {
    width: 2.5rem;
    height: 2.5rem;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border-radius: 12px;
    color: #087f73;
    background: rgba(20, 184, 166, .1);
}

.clara-inline-link {
    font-weight: 650;
    font-size: .88rem;
}

.clara-empty-state {
    padding: 2rem 1.3rem;
    color: var(--clara-muted);
}

.clara-table {
    background: transparent !important;
}

    .clara-table .mud-table-container {
        border-radius: 0 !important;
    }

    .clara-table .mud-table-head .mud-table-cell {
        height: 46px;
        padding: .75rem 1rem;
        border-bottom: 1px solid #e1ebe9;
        background: #f8fbfa;
        color: var(--clara-muted);
        font-size: .76rem;
        font-weight: 700;
        letter-spacing: .035em;
        text-transform: uppercase;
    }

    .clara-table .mud-table-body .mud-table-cell {
        height: 58px;
        padding: .8rem 1rem;
        border-bottom: 1px solid #edf3f2;
        color: var(--clara-text);
    }

    .clara-table .mud-table-body .mud-table-row:last-child .mud-table-cell {
        border-bottom: 0;
    }

    .clara-table .mud-table-body .mud-table-row:hover {
        background: #f5fbfa !important;
    }

.clara-date-cell {
    font-weight: 650;
}

.clara-time-cell {
    display: inline-block;
    margin-left: .4rem;
    padding: .18rem .45rem;
    border-radius: 7px;
    color: #087f73;
    background: rgba(20, 184, 166, .09);
    font-size: .82rem;
    font-weight: 700;
}


/* Dashboard: o número de métricas varia conforme o perfil.
   Administrador da clínica vê 6 cards; recepção vê 4. Em desktop, cada conjunto
   ocupa toda a largura disponível em vez de deixar "espaços vazios". */
@media (min-width: 960px) {
    .clara-metrics-grid-four > .mud-grid-item {
        flex-basis: 25%;
        max-width: 25%;
    }

    .clara-metrics-grid-six > .mud-grid-item {
        flex-basis: 16.666667%;
        max-width: 16.666667%;
    }
}

@media (max-width: 959px) {
    .clara-content-container {
        padding: 1.5rem 1.25rem 2.5rem !important;
    }
}

@media (max-width: 599px) {
    .clara-content-container {
        padding: 1.15rem .85rem 2rem !important;
    }

    .clara-page-heading {
        margin-bottom: 1.15rem;
    }

    .clara-page-title {
        font-size: 1.7rem !important;
    }

    .metric-card {
        min-height: 7.2rem;
    }

    .metric-card-value {
        font-size: 1.55rem;
    }

    .clara-section-header {
        padding: 1rem;
    }
}

/* --------------------------------------------------------------------------
   Agenda dos médicos — padrão visual do Clara Admin v2
   -------------------------------------------------------------------------- */
.doctor-schedules-heading {
    margin-bottom: 1.35rem;
}

.doctor-readonly-alert {
    margin-bottom: 1rem;
    border-radius: 14px !important;
    background: #f4faf9 !important;
}

.doctor-selector-card {
    margin-bottom: 1.15rem;
    padding: 1.15rem 1.25rem;
}

.doctor-selector-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
}

.doctor-selector-copy,
.doctor-section-heading {
    display: flex;
    align-items: center;
    gap: .8rem;
    min-width: 0;
}

.doctor-selector-title {
    color: var(--clara-text) !important;
    font-weight: 700 !important;
}

.doctor-selector-help,
.doctor-section-subtitle {
    color: var(--clara-muted) !important;
    margin-top: .1rem !important;
}

.doctor-selector-input {
    width: min(100%, 430px);
    flex: 0 1 430px;
}

    .doctor-selector-input .mud-input-outlined-border {
        border-color: var(--clara-border) !important;
    }

    .doctor-selector-input .mud-input-control.mud-input-focused .mud-input-outlined-border,
    .doctor-selector-input .mud-input-outlined.mud-input-focused .mud-input-outlined-border {
        border-color: var(--clara-teal) !important;
    }

.doctor-schedule-section {
    margin-bottom: 1.15rem;
    overflow: hidden;
}

    .doctor-schedule-section .clara-section-header {
        border-bottom: 1px solid var(--clara-border);
    }

.doctor-primary-action {
    border-radius: 10px !important;
    box-shadow: none !important;
    font-weight: 700 !important;
    letter-spacing: .01em !important;
}

.doctor-inline-loading {
    min-height: 7rem;
}

.doctor-empty-state {
    display: flex;
    align-items: center;
    gap: .9rem;
    min-height: 6.5rem;
}

    .doctor-empty-state .mud-typography-subtitle2 {
        color: var(--clara-text) !important;
        font-weight: 700 !important;
    }

.doctor-empty-doctors {
    display: grid;
    justify-items: start;
    gap: .45rem;
    min-height: 9rem;
}

.doctor-time-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 3.7rem;
    padding: .28rem .55rem;
    border-radius: 9px;
    background: #e6f7f4;
    color: #087e72;
    font-weight: 750;
    font-variant-numeric: tabular-nums;
}

.doctor-time-badge-muted {
    background: #f1f5f4;
    color: #496467;
}

.doctor-date-time {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.doctor-status-badge {
    display: inline-flex;
    align-items: center;
    gap: .42rem;
    padding: .32rem .58rem;
    border-radius: 999px;
    font-size: .76rem;
    line-height: 1;
    font-weight: 750;
    white-space: nowrap;
}

    .doctor-status-badge.is-active {
        background: #e8f8ef;
        color: #18794e;
    }

    .doctor-status-badge.is-inactive {
        background: #f0f3f3;
        color: #64777a;
    }

.doctor-status-dot {
    width: .42rem;
    height: .42rem;
    border-radius: 50%;
    background: currentColor;
}

.doctor-actions-header {
    min-width: 12rem;
}

.doctor-row-actions {
    display: flex;
    align-items: center;
    gap: .15rem;
    flex-wrap: nowrap;
}

    .doctor-row-actions .mud-button-root {
        min-width: auto !important;
        padding-inline: .55rem !important;
        border-radius: 8px !important;
        font-weight: 650 !important;
    }

.doctor-edit-action {
    color: #31585b !important;
}

    .doctor-edit-action:hover {
        background: #edf7f5 !important;
        color: #087e72 !important;
    }

.doctor-delete-action:hover {
    background: #fff1f1 !important;
}

.doctor-schedule-table .mud-table-cell,
.doctor-blocks-table .mud-table-cell {
    vertical-align: middle !important;
}

@media (max-width: 959px) {
    .doctor-selector-content {
        align-items: stretch;
        flex-direction: column;
        gap: 1rem;
    }

    .doctor-selector-input {
        width: 100%;
        flex-basis: auto;
    }
}

@media (max-width: 599px) {
    .doctor-schedule-section .clara-section-header {
        align-items: stretch;
        flex-direction: column;
    }

    .doctor-primary-action {
        width: 100%;
    }

    .doctor-row-actions {
        justify-content: flex-end;
        flex-wrap: wrap;
    }

    .doctor-actions-header {
        min-width: 0;
    }
}


/* --------------------------------------------------------------------------
   Médicos — Clara Admin
   -------------------------------------------------------------------------- */
.doctors-page-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.25rem;
    margin-bottom: 1.25rem;
}

.doctors-new-button {
    flex: 0 0 auto;
}

.doctors-plan-card {
    margin-bottom: 1.15rem;
    padding: 1rem 1.25rem;
}

.doctors-plan-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
}

.doctors-plan-usage {
    display: flex;
    align-items: baseline;
    gap: .4rem;
    flex: 0 0 auto;
    padding: .55rem .8rem;
    border-radius: 12px;
    background: #f2f8f7;
    color: var(--clara-muted);
}

    .doctors-plan-usage strong {
        color: var(--clara-text);
        font-size: 1.35rem;
        line-height: 1;
    }

.doctors-list-card {
    overflow: hidden;
}

    .doctors-list-card .clara-section-header {
        border-bottom: 1px solid var(--clara-border);
    }

.doctors-table .mud-table-cell {
    vertical-align: middle !important;
}

.doctors-name-cell {
    display: flex;
    align-items: center;
    gap: .7rem;
    min-width: 0;
}

.doctors-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.15rem;
    height: 2.15rem;
    flex: 0 0 2.15rem;
    border-radius: 50%;
    background: #e6f7f4;
    color: #087e72;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .02em;
}

.doctors-crm {
    color: #38585b;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

.doctors-actions-header {
    min-width: 7.5rem;
}

.doctors-empty-state {
    display: flex;
    align-items: center;
    gap: .9rem;
    min-height: 7.5rem;
}

    .doctors-empty-state .mud-typography-h6 {
        color: var(--clara-text) !important;
        font-weight: 700 !important;
    }

@media (max-width: 959px) {
    .doctors-page-heading, .doctors-plan-content {
        align-items: stretch;
        flex-direction: column;
    }

    .doctors-new-button, .doctors-plan-usage {
        align-self: flex-start;
    }
}

@media (max-width: 599px) {
    .doctors-new-button {
        width: 100%;
    }

    .doctors-avatar {
        display: none;
    }
}


/* --------------------------------------------------------------------------
   Convênios e planos — Clara Admin
   -------------------------------------------------------------------------- */
.insurance-page-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.25rem;
    margin-bottom: 1.25rem;
}

.insurance-primary-action {
    flex: 0 0 auto;
}

.insurance-provider-card {
    overflow: hidden;
    margin-bottom: 1.25rem;
}

    .insurance-provider-card .clara-section-header,
    .insurance-detail-card .clara-section-header {
        border-bottom: 1px solid var(--clara-border);
    }

.insurance-table .mud-table-cell,
.insurance-subtable .mud-table-cell {
    vertical-align: middle !important;
}

.insurance-provider-name {
    display: flex;
    align-items: center;
    gap: .72rem;
}

.insurance-provider-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    height: 2.1rem;
    flex: 0 0 2.1rem;
    border-radius: 10px;
    background: #e6f7f4;
    color: #087e72;
    font-size: .8rem;
    font-weight: 800;
}

.insurance-type-badge,
.insurance-acceptance-badge {
    display: inline-flex;
    align-items: center;
    min-height: 1.55rem;
    padding: .18rem .58rem;
    border-radius: 999px;
    font-size: .74rem;
    font-weight: 700;
    line-height: 1;
}

    .insurance-type-badge.is-commercial {
        background: #eef2f3;
        color: #3f5659;
    }

    .insurance-type-badge.is-self-managed {
        background: #e8f2ff;
        color: #1f6fb2;
    }

    .insurance-acceptance-badge.is-accepted {
        background: #e9f8ef;
        color: #087e4b;
    }

    .insurance-acceptance-badge.is-denied {
        background: #fff0f0;
        color: #c53030;
    }

.insurance-actions-header {
    min-width: 18rem;
}

.insurance-row-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .15rem .4rem;
}

.insurance-manage-action {
    font-weight: 700 !important;
}

.insurance-selected-context {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 1.3rem 0 1rem;
    padding: .95rem 1.1rem;
    border: 1px solid #bfe7e1;
    border-radius: 16px;
    background: linear-gradient(135deg, #f6fbfa 0%, #edf8f6 100%);
}

.insurance-selected-copy {
    display: flex;
    align-items: center;
    gap: .8rem;
    min-width: 0;
}

.insurance-selected-icon {
    flex: 0 0 auto;
}

.insurance-selected-kicker {
    display: block;
    margin-bottom: .12rem;
    color: #5f7a7d;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.insurance-selected-name {
    color: var(--clara-text) !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
}

.insurance-detail-grid {
    display: grid;
    gap: 1rem;
}

.insurance-detail-card {
    overflow: hidden;
}

.insurance-inline-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 7rem;
}

.insurance-inline-empty {
    display: flex;
    align-items: center;
    gap: .9rem;
    min-height: 7.5rem;
    padding: 1.2rem 1.35rem;
    color: var(--clara-muted);
}

    .insurance-inline-empty .mud-icon-root {
        color: #73aaa3;
    }

    .insurance-inline-empty strong,
    .insurance-inline-empty span {
        display: block;
    }

    .insurance-inline-empty strong {
        margin-bottom: .18rem;
        color: var(--clara-text);
        font-size: .95rem;
    }

    .insurance-inline-empty span {
        font-size: .82rem;
        line-height: 1.45;
    }

.insurance-empty-state {
    display: flex;
    align-items: center;
    gap: .9rem;
    min-height: 7.5rem;
}

@media (max-width: 959px) {
    .insurance-page-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .insurance-primary-action {
        align-self: flex-start;
    }

    .insurance-actions-header {
        min-width: 0;
    }

    .insurance-selected-context {
        align-items: flex-start;
    }
}

@media (max-width: 599px) {
    .insurance-primary-action {
        width: 100%;
    }

    .insurance-provider-mark {
        display: none;
    }

    .insurance-row-actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .insurance-selected-context {
        flex-direction: column;
    }
}


/* --------------------------------------------------------------------------
   Fila de Pendências — Clara Admin
   -------------------------------------------------------------------------- */
.pending-page-heading {
    margin-bottom: 1.25rem;
}

.pending-filters-card {
    margin-bottom: 1.15rem;
    padding: 1rem 1.25rem 1.15rem;
}

.pending-filters-heading {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-bottom: .85rem;
}

.pending-filter-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .85rem 1rem;
}

.pending-list-card {
    overflow: hidden;
}

    .pending-list-card .clara-section-header {
        border-bottom: 1px solid var(--clara-border);
    }

.pending-table .mud-table-cell {
    vertical-align: middle !important;
}

.pending-summary-header {
    min-width: 15rem;
}

.pending-actions-header {
    min-width: 7.5rem;
}

.pending-owner-badge {
    display: inline-flex;
    align-items: center;
    gap: .32rem;
    padding: .3rem .6rem;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 750;
    line-height: 1.1;
    white-space: nowrap;
}

    .pending-owner-badge .mud-icon-root {
        font-size: 1rem !important;
    }

    .pending-owner-badge.is-patient {
        background: #e9f3ff;
        color: #24699b;
    }

    .pending-owner-badge.is-staff {
        background: #fff5dc;
        color: #8a6515;
    }

.pending-type {
    color: #29494d;
    font-weight: 650;
    line-height: 1.35;
}

.pending-summary {
    display: block;
    max-width: 24rem;
    color: #536d70;
    line-height: 1.42;
}

.pending-date,
.pending-time {
    display: block;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.pending-date {
    color: #29494d;
    font-weight: 650;
}

.pending-time {
    margin-top: .08rem;
    color: #789093;
    font-size: .74rem;
}

.pending-no-expiry,
.pending-waiting-action {
    color: #8aa0a2;
    font-size: .78rem;
}

.pending-resolve-action {
    border-radius: 9px !important;
    font-weight: 700 !important;
}

.pending-empty-state {
    display: flex;
    align-items: center;
    gap: .9rem;
    min-height: 7.5rem;
}

    .pending-empty-state .mud-typography-h6 {
        color: var(--clara-text) !important;
        font-weight: 700 !important;
    }

@media (max-width: 1199px) {
    .pending-filter-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 599px) {
    .pending-filter-grid {
        grid-template-columns: 1fr;
    }

    .pending-filters-card {
        padding: .9rem;
    }

    .pending-owner-badge {
        white-space: normal;
    }

    .pending-summary {
        max-width: none;
    }
}


/* --------------------------------------------------------------------------
   Pacientes — Clara Admin
   -------------------------------------------------------------------------- */
.patients-page-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.25rem;
    margin-bottom: 1.25rem;
}

.patients-new-button {
    flex: 0 0 auto;
}

.patients-tools-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    margin-bottom: 1.15rem;
    padding: 1rem 1.25rem;
}

.patients-tools-copy {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-width: 15rem;
}

.patients-tools-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .75rem;
    flex: 1 1 auto;
}

.patients-search {
    width: min(100%, 26rem);
}

    .patients-search .mud-input-control {
        margin-top: 0 !important;
    }

.patients-export-button {
    flex: 0 0 auto;
    border-radius: 10px !important;
    font-weight: 700 !important;
}

.patients-list-card {
    overflow: hidden;
}

    .patients-list-card .clara-section-header {
        border-bottom: 1px solid var(--clara-border);
    }

.patients-table .mud-table-cell {
    vertical-align: middle !important;
}

.patients-actions-header {
    min-width: 12rem;
}

.patients-name-cell {
    display: flex;
    align-items: center;
    gap: .7rem;
    min-width: 0;
}

.patients-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.15rem;
    height: 2.15rem;
    flex: 0 0 2.15rem;
    border-radius: 50%;
    background: #e6f7f4;
    color: #087e72;
    font-size: .73rem;
    font-weight: 800;
    letter-spacing: .02em;
}

.patients-secondary-value,
.patients-document {
    color: #38585b;
    font-variant-numeric: tabular-nums;
}

.patients-document {
    font-weight: 600;
    white-space: nowrap;
}

.patients-insurance {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    gap: .28rem;
}

.patients-insurance-name {
    color: #29494d;
    font-weight: 700;
}

.patients-insurance-status,
.patients-private-badge {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    min-height: 1.45rem;
    padding: .16rem .5rem;
    border-radius: 999px;
    font-size: .7rem;
    font-weight: 750;
    line-height: 1;
}

    .patients-insurance-status.is-unverified {
        background: #fff5dc;
        color: #8a6515;
    }

        .patients-insurance-status.is-unverified .doctor-status-dot {
            background: #d39a18;
        }

.patients-private-badge {
    background: #eef3f4;
    color: #4b6669;
}

.patients-row-actions {
    flex-wrap: wrap;
}

/* Carteirinha sob demanda (2026-10-06): olho que abre o popup e o número no popup. */
.membership-reveal-button {
    padding: 2px !important;
    margin-left: .1rem;
}

.membership-reveal-number {
    margin: .9rem 0 .6rem;
    font-size: 1.6rem;
    font-weight: 750;
    letter-spacing: .06em;
    font-variant-numeric: tabular-nums;
    word-break: break-all;
    user-select: all;
}

.patients-insurance-status.is-ok {
    background: #e3f5f1;
    color: #1f6b5c;
}

.patients-insurance-row {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .25rem;
}

.patients-insurance-action {
    font-weight: 700 !important;
}

.patients-limit-note {
    display: flex;
    align-items: center;
    gap: .45rem;
    padding: .8rem 1rem;
    border-top: 1px solid var(--clara-border);
    background: #f8fbfa;
    color: #647e81;
    font-size: .76rem;
}

.patients-empty-state {
    display: flex;
    align-items: center;
    gap: .9rem;
    min-height: 7.5rem;
}

    .patients-empty-state .mud-typography-h6 {
        color: var(--clara-text) !important;
        font-weight: 700 !important;
    }

@media (max-width: 959px) {
    .patients-page-heading,
    .patients-tools-card {
        align-items: stretch;
        flex-direction: column;
    }

    .patients-tools-actions {
        justify-content: flex-start;
    }

    .patients-search {
        width: 100%;
    }
}

@media (max-width: 599px) {
    .patients-new-button,
    .patients-export-button {
        width: 100%;
    }

    .patients-tools-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .patients-avatar {
        display: none;
    }

    .patients-row-actions {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* --------------------------------------------------------------------------
   Cancelar agendamentos — Clara Admin
   -------------------------------------------------------------------------- */
.cancellations-page-heading {
    margin-bottom: 1rem;
}

.cancellations-info-alert {
    margin-bottom: 1rem;
}

.cancellations-filter-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    margin-bottom: 1.15rem;
    padding: 1rem 1.25rem;
}

.cancellations-filter-copy {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-width: 18rem;
}

.cancellations-filter-fields {
    display: grid;
    grid-template-columns: minmax(17rem, 1.35fr) minmax(12rem, .65fr);
    gap: .85rem;
    width: min(100%, 38rem);
}

.cancellations-section-card {
    overflow: hidden;
    margin-bottom: 1rem;
}

    .cancellations-section-card .clara-section-header {
        border-bottom: 1px solid var(--clara-border);
    }

.cancellations-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.cancellations-count-badge {
    display: inline-flex;
    align-items: center;
    padding: .25rem .55rem;
    border-radius: 999px;
    background: #eef7f5;
    color: #33736d;
    font-size: .72rem;
    font-weight: 750;
    white-space: nowrap;
}

.cancellations-table .mud-table-cell {
    vertical-align: middle !important;
}

.cancellations-time-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 3.25rem;
    padding: .28rem .5rem;
    border-radius: 9px;
    background: #e6f7f4;
    color: #078578;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

    .cancellations-time-badge.is-past {
        background: #eef3f4;
        color: #536d70;
    }

.cancellations-payment-badge,
.cancellations-attendance-badge {
    display: inline-flex;
    align-items: center;
    gap: .28rem;
    min-height: 1.5rem;
    padding: .16rem .5rem;
    border-radius: 999px;
    font-size: .71rem;
    font-weight: 750;
    line-height: 1;
}

    .cancellations-payment-badge.is-insurance {
        background: #e9f3ff;
        color: #24699b;
    }

    .cancellations-payment-badge.is-private {
        background: #eef3f4;
        color: #4b6669;
    }

    .cancellations-attendance-badge.is-attended {
        background: #e9f8ef;
        color: #087e4b;
    }

    .cancellations-attendance-badge.is-noshow {
        background: #fff0f0;
        color: #c53030;
    }

    .cancellations-attendance-badge.is-attended .doctor-status-dot {
        background: #159966;
    }

    .cancellations-attendance-badge.is-noshow .doctor-status-dot {
        background: #e34242;
    }

.cancellations-fee {
    color: #38585b;
    font-weight: 650;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.cancellations-actions-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.15rem;
    border-top: 1px solid var(--clara-border);
    background: #f8fbfa;
}

    .cancellations-actions-bar > div:first-child strong,
    .cancellations-actions-bar > div:first-child span {
        display: block;
    }

    .cancellations-actions-bar > div:first-child strong {
        color: var(--clara-text);
        font-size: .82rem;
    }

    .cancellations-actions-bar > div:first-child span {
        margin-top: .12rem;
        color: var(--clara-muted);
        font-size: .74rem;
    }

.cancellations-actions {
    display: flex;
    align-items: center;
    gap: .55rem;
    flex-wrap: wrap;
}

.cancellations-inline-empty {
    display: flex;
    align-items: center;
    gap: .9rem;
    min-height: 7rem;
    padding: 1.15rem 1.35rem;
    color: var(--clara-muted);
}

    .cancellations-inline-empty .mud-icon-root {
        color: #73aaa3;
    }

    .cancellations-inline-empty strong,
    .cancellations-inline-empty span {
        display: block;
    }

    .cancellations-inline-empty strong {
        color: var(--clara-text);
        font-size: .92rem;
    }

    .cancellations-inline-empty span {
        margin-top: .16rem;
        font-size: .8rem;
    }

.cancellations-empty-state {
    display: flex;
    align-items: center;
    gap: .9rem;
    min-height: 7.5rem;
}

    .cancellations-empty-state .mud-typography-h6 {
        color: var(--clara-text) !important;
        font-weight: 700 !important;
    }

.cancellations-attendance-actions {
    min-width: 10rem;
}

.cancellations-undo-action,
.cancellations-noshow-action {
    font-weight: 700 !important;
}

@media (max-width: 959px) {
    .cancellations-filter-card,
    .cancellations-actions-bar {
        align-items: stretch;
        flex-direction: column;
    }

    .cancellations-filter-fields {
        width: 100%;
    }

    .cancellations-actions {
        justify-content: flex-start;
    }
}

@media (max-width: 599px) {
    .cancellations-filter-fields {
        grid-template-columns: 1fr;
    }

    .cancellations-actions {
        align-items: stretch;
        flex-direction: column;
    }

        .cancellations-actions .mud-button-root {
            width: 100%;
        }

    .cancellations-section-header {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* --------------------------------------------------------------------------
   Relatório de agendamentos — Clara Admin
   -------------------------------------------------------------------------- */
.report-page-heading {
    margin-bottom: 1rem;
}

.report-filter-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    padding: 1rem 1.25rem;
    margin-bottom: .75rem;
}

.report-filter-heading {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-width: 18rem;
}

.report-filter-fields {
    display: grid;
    grid-template-columns: minmax(9rem, .8fr) minmax(9rem, .8fr) minmax(15rem, 1.25fr) auto;
    align-items: center;
    gap: .75rem;
    width: min(100%, 52rem);
}

.report-apply-button {
    min-height: 3.5rem;
    border-radius: 10px !important;
    font-weight: 750 !important;
    white-space: nowrap;
}

.report-export-row {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 1rem;
}

.report-export-button {
    border-radius: 10px !important;
    font-weight: 700 !important;
}

.report-kpi-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .75rem;
    margin-bottom: 1rem;
}

.report-kpi-card {
    position: relative;
    min-height: 7.9rem;
    padding: 1.05rem 1rem;
    border: 1px solid var(--clara-border);
    border-radius: 16px !important;
    background: #fff;
    box-shadow: 0 8px 24px rgba(5, 45, 48, .035);
}

    .report-kpi-card .mud-typography-caption {
        display: block;
        max-width: calc(100% - 2.3rem);
        color: #5f787b !important;
        font-weight: 700 !important;
        line-height: 1.25;
    }

    .report-kpi-card .mud-typography-h5 {
        margin-top: 1.1rem;
        color: var(--clara-text) !important;
        font-weight: 800 !important;
    }

.report-kpi-icon {
    position: absolute;
    top: .85rem;
    right: .85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.15rem;
    height: 2.15rem;
    border-radius: 10px;
    background: #e6f7f4;
    color: #078578;
}

.report-chart-card,
.report-table-card {
    overflow: hidden;
    margin-bottom: 1rem;
}

    .report-chart-card .clara-section-header,
    .report-table-card .clara-section-header {
        border-bottom: 1px solid var(--clara-border);
    }

.report-chart-body {
    padding: 1rem 1.2rem .6rem;
}

.report-inline-empty {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-height: 6rem;
    padding: 1rem 1.25rem;
    color: var(--clara-muted);
    font-size: .82rem;
}

    .report-inline-empty .mud-icon-root {
        color: #73aaa3;
    }

.report-table .mud-table-cell {
    vertical-align: middle !important;
}

.report-table .mud-table-head .mud-table-cell {
    white-space: normal;
}

.report-date-value {
    color: #38585b;
    font-weight: 650;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.report-cell-stack {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .3rem;
}

.report-status-badge {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    min-height: 1.45rem;
    padding: .16rem .5rem;
    border-radius: 999px;
    font-size: .69rem;
    font-weight: 750;
    line-height: 1;
}



    .report-status-badge.is-scheduled {
        background: #e8f7f4;
        color: #087e72;
    }

        .report-status-badge.is-scheduled .doctor-status-dot {
            background: #12a594;
        }

    .report-status-badge.is-completed {
        background: #e9f8ef;
        color: #087e4b;
    }

        .report-status-badge.is-completed .doctor-status-dot {
            background: #159966;
        }

    .report-status-badge.is-canceled {
        background: #fff0f0;
        color: #c53030;
    }

        .report-status-badge.is-canceled .doctor-status-dot {
            background: #e34242;
        }

    .report-status-badge.is-neutral {
        background: #eef3f4;
        color: #536d70;
    }

        .report-status-badge.is-neutral .doctor-status-dot {
            background: #789093;
        }

    .report-status-badge.is-warning {
        background: #fff5dc;
        color: #8a6515;
    }

        .report-status-badge.is-warning .doctor-status-dot {
            background: #d39a18;
        }

.report-limit-note {
    display: flex;
    align-items: center;
    gap: .45rem;
    padding: .8rem 1rem;
    border-top: 1px solid var(--clara-border);
    background: #f8fbfa;
    color: #647e81;
    font-size: .76rem;
}

.report-empty-state {
    display: flex;
    align-items: center;
    gap: .9rem;
    min-height: 7.5rem;
}

    .report-empty-state .mud-typography-h6 {
        color: var(--clara-text) !important;
        font-weight: 700 !important;
    }

@media (max-width: 1180px) {
    .report-filter-card {
        align-items: stretch;
        flex-direction: column;
    }

    .report-filter-fields {
        width: 100%;
    }

    .report-kpi-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .report-filter-fields {
        grid-template-columns: 1fr 1fr;
    }

    .report-kpi-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .report-filter-fields,
    .report-kpi-grid {
        grid-template-columns: 1fr;
    }

    .report-apply-button,
    .report-export-button {
        width: 100%;
    }

    .report-export-row {
        justify-content: stretch;
    }
}


/* --------------------------------------------------------------------------
   Especialidades — Clara Admin
   -------------------------------------------------------------------------- */
.specialties-page-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.25rem;
    margin-bottom: 1rem;
}

.specialties-new-button {
    flex: 0 0 auto;
}

.specialties-context-alert {
    margin-bottom: 1rem;
}

.specialties-list-card {
    overflow: hidden;
}

    .specialties-list-card .clara-section-header {
        border-bottom: 1px solid var(--clara-border);
    }

.specialties-table .mud-table-cell {
    vertical-align: middle !important;
}

.specialties-actions-header {
    min-width: 7rem;
}

.specialties-name-cell {
    display: flex;
    align-items: center;
    gap: .72rem;
    min-width: 0;
}

.specialties-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    height: 2.1rem;
    flex: 0 0 2.1rem;
    border-radius: 10px;
    background: #e6f7f4;
    color: #087e72;
    font-size: .78rem;
    font-weight: 800;
}

.specialties-doctor-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 1.7rem;
    padding: 0 .48rem;
    border-radius: 999px;
    background: #eef3f4;
    color: #38585b;
    font-size: .74rem;
    font-weight: 800;
}

.specialties-empty-state {
    display: flex;
    align-items: center;
    gap: .9rem;
    min-height: 7.5rem;
}

    .specialties-empty-state .mud-typography-h6 {
        color: var(--clara-text) !important;
        font-weight: 700 !important;
    }

@media (max-width: 959px) {
    .specialties-page-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .specialties-new-button {
        align-self: flex-start;
    }
}

@media (max-width: 599px) {
    .specialties-new-button {
        width: 100%;
    }

    .specialties-mark {
        display: none;
    }
}


/* --------------------------------------------------------------------------
   Serviços — Clara Admin
   -------------------------------------------------------------------------- */
.services-page-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.25rem;
    margin-bottom: 1.25rem;
}

.services-new-button {
    flex: 0 0 auto;
}

.services-list-card {
    overflow: hidden;
}

    .services-list-card .clara-section-header {
        border-bottom: 1px solid var(--clara-border);
    }

.services-table .mud-table-cell {
    vertical-align: middle !important;
}

.services-actions-header {
    min-width: 7rem;
}

.services-name-cell {
    display: flex;
    align-items: center;
    gap: .72rem;
    min-width: 0;
}

.services-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    height: 2.1rem;
    flex: 0 0 2.1rem;
    border-radius: 10px;
    background: #e6f7f4;
    color: #087e72;
    font-size: .78rem;
    font-weight: 800;
}

.services-type-badge,
.services-doctor-badge {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    min-height: 1.5rem;
    padding: .18rem .55rem;
    border-radius: 999px;
    font-size: .71rem;
    font-weight: 750;
    line-height: 1;
    white-space: nowrap;
}

    .services-type-badge.is-consultation {
        background: #e8f7f4;
        color: #087e72;
    }

    .services-type-badge.is-exam {
        background: #e9f3ff;
        color: #24699b;
    }

    .services-type-badge.is-procedure {
        background: #f4edff;
        color: #6f42a8;
    }

    .services-type-badge.is-other {
        background: #eef3f4;
        color: #536d70;
    }

    .services-doctor-badge .mud-icon-root {
        font-size: .95rem !important;
    }

    .services-doctor-badge.is-required {
        background: #fff5dc;
        color: #8a6515;
    }

    .services-doctor-badge.is-optional {
        background: #eef3f4;
        color: #536d70;
    }

.services-duration,
.services-price {
    color: #38585b;
    font-weight: 650;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.services-empty-state {
    display: flex;
    align-items: center;
    gap: .9rem;
    min-height: 7.5rem;
}

    .services-empty-state .mud-typography-h6 {
        color: var(--clara-text) !important;
        font-weight: 700 !important;
    }

@media (max-width: 959px) {
    .services-page-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .services-new-button {
        align-self: flex-start;
    }
}

@media (max-width: 599px) {
    .services-new-button {
        width: 100%;
    }

    .services-mark {
        display: none;
    }

    .services-type-badge,
    .services-doctor-badge {
        white-space: normal;
    }
}


/* --------------------------------------------------------------------------
   Horário da clínica — Clara Admin
   -------------------------------------------------------------------------- */
.clinic-hours-page-heading {
    margin-bottom: 1.25rem;
}

.clinic-hours-rules-card,
.clinic-hours-section-card {
    overflow: hidden;
    margin-bottom: 1rem;
}

    .clinic-hours-rules-card .clara-section-header,
    .clinic-hours-section-card .clara-section-header {
        border-bottom: 1px solid var(--clara-border);
    }

.clinic-hours-rules-header,
.clinic-hours-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.clinic-hours-rule-list {
    display: grid;
    gap: 0;
}

.clinic-hours-rule-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid #edf2f1;
}

    .clinic-hours-rule-item:last-child {
        border-bottom: 0;
    }

    .clinic-hours-rule-item strong,
    .clinic-hours-rule-item span {
        display: block;
    }

    .clinic-hours-rule-item strong {
        color: var(--clara-text);
        font-size: .9rem;
    }

    .clinic-hours-rule-item span {
        margin-top: .15rem;
        color: var(--clara-muted);
        font-size: .78rem;
        line-height: 1.4;
    }

.clinic-hours-guidance {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    padding: .8rem 1.15rem;
    border-bottom: 1px solid var(--clara-border);
    background: #f8fbfa;
    color: #5f797c;
    font-size: .77rem;
    line-height: 1.45;
}

    .clinic-hours-guidance .mud-icon-root {
        color: #4a9e95;
        margin-top: .05rem;
    }

.clinic-hours-table .mud-table-cell {
    vertical-align: middle !important;
}

.clinic-hours-actions-header {
    min-width: 12rem;
}

.clinic-hours-time {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 3.4rem;
    padding: .25rem .48rem;
    border-radius: 9px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

    .clinic-hours-time.is-open {
        background: #e6f7f4;
        color: #087e72;
    }

    .clinic-hours-time.is-close {
        background: #eef3f4;
        color: #536d70;
    }

.clinic-hours-special-time {
    color: #38585b;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.clinic-hours-mode-badge {
    display: inline-flex;
    align-items: center;
    min-height: 1.5rem;
    padding: .18rem .55rem;
    border-radius: 999px;
    font-size: .71rem;
    font-weight: 750;
    line-height: 1;
    white-space: nowrap;
}

    .clinic-hours-mode-badge.is-closed {
        background: #fff0f0;
        color: #c53030;
    }

    .clinic-hours-mode-badge.is-normal {
        background: #e9f8ef;
        color: #087e4b;
    }

    .clinic-hours-mode-badge.is-special {
        background: #e9f3ff;
        color: #24699b;
    }

    .clinic-hours-mode-badge.is-neutral {
        background: #eef3f4;
        color: #536d70;
    }

.clinic-hours-inline-empty {
    display: flex;
    align-items: center;
    gap: .9rem;
    min-height: 7rem;
    padding: 1.15rem 1.35rem;
    color: var(--clara-muted);
}

    .clinic-hours-inline-empty .mud-icon-root {
        color: #73aaa3;
    }

    .clinic-hours-inline-empty strong,
    .clinic-hours-inline-empty span {
        display: block;
    }

    .clinic-hours-inline-empty strong {
        color: var(--clara-text);
        font-size: .92rem;
    }

    .clinic-hours-inline-empty span {
        margin-top: .16rem;
        font-size: .8rem;
    }

@media (max-width: 759px) {
    .clinic-hours-rules-header,
    .clinic-hours-section-header,
    .clinic-hours-rule-item {
        align-items: flex-start;
        flex-direction: column;
    }

        .clinic-hours-rules-header .mud-button-root,
        .clinic-hours-section-header .mud-button-root {
            width: 100%;
        }

        .clinic-hours-rule-item .mud-switch {
            align-self: flex-start;
        }

    .clinic-hours-mode-badge {
        white-space: normal;
    }
}


/* --------------------------------------------------------------------------
   Usuários — Clara Admin
   -------------------------------------------------------------------------- */
.users-page-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.25rem;
    margin-bottom: 1.25rem;
}

.users-new-button {
    flex: 0 0 auto;
}

.users-plan-card {
    margin-bottom: 1.15rem;
    padding: 1rem 1.25rem;
}

.users-plan-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
}

.users-plan-usage {
    display: flex;
    align-items: baseline;
    gap: .4rem;
    flex: 0 0 auto;
    padding: .55rem .8rem;
    border-radius: 12px;
    background: #f2f8f7;
    color: var(--clara-muted);
}

    .users-plan-usage strong {
        color: var(--clara-text);
        font-size: 1.35rem;
        line-height: 1;
    }

.users-list-card {
    overflow: hidden;
}

    .users-list-card .clara-section-header {
        border-bottom: 1px solid var(--clara-border);
    }

.users-table .mud-table-cell {
    vertical-align: middle !important;
}

/* Distribuição das colunas da tela Usuários em desktop.
   O e-mail ganha espaço e a coluna Ações deixa de comprimir o endereço. */
@media (min-width:960px) {
    .users-table .users-col-user {
        width: 11%;
    }

    .users-table .users-col-email {
        width: 20%;
    }

    .users-table .users-col-role {
        width: 17%;
    }

    .users-table .users-col-status {
        width: 10%;
    }

    .users-table .users-col-created {
        width: 11%;
    }

    .users-table .users-col-login {
        width: 11%;
    }

    .users-table .users-col-actions {
        width: 20%;
    }

    .users-table .users-col-email {
        min-width: 10.5rem;
    }

    .users-table .users-col-actions {
        min-width: 14.5rem;
    }
}

.users-actions-header {
    min-width: 14.5rem;
}

.users-name-cell {
    display: flex;
    align-items: center;
    gap: .7rem;
    min-width: 0;
}

.users-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.15rem;
    height: 2.15rem;
    flex: 0 0 2.15rem;
    border-radius: 50%;
    background: #e6f7f4;
    color: #087e72;
    font-size: .73rem;
    font-weight: 800;
}

.users-secondary-value {
    color: #38585b;
    overflow-wrap: break-word;
    word-break: normal;
}

.users-role-badge {
    display: inline-flex;
    align-items: center;
    min-height: 1.5rem;
    padding: .18rem .55rem;
    border-radius: 999px;
    font-size: .71rem;
    font-weight: 750;
    line-height: 1;
    white-space: nowrap;
}

    .users-role-badge.is-admin {
        background: #e8f7f4;
        color: #087e72;
    }

    .users-role-badge.is-reception {
        background: #eef3f4;
        color: #536d70;
    }

.users-date,
.users-time {
    display: block;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.users-date {
    color: #29494d;
    font-weight: 650;
}

.users-time {
    margin-top: .08rem;
    color: #789093;
    font-size: .74rem;
}

.users-never-login {
    color: #8aa0a2;
    font-size: .78rem;
}

.users-row-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .1rem .35rem;
}

.users-password-action,
.users-toggle-action {
    font-weight: 700 !important;
}

.users-empty-state {
    display: flex;
    align-items: center;
    gap: .9rem;
    min-height: 7.5rem;
}

    .users-empty-state .mud-typography-h6 {
        color: var(--clara-text) !important;
        font-weight: 700 !important;
    }

@media (max-width:959px) {
    .users-page-heading,
    .users-plan-content {
        align-items: stretch;
        flex-direction: column;
    }

    .users-new-button,
    .users-plan-usage {
        align-self: flex-start;
    }

    .users-actions-header {
        min-width: 0;
    }
}

@media (max-width:599px) {
    .users-new-button {
        width: 100%;
    }

    .users-avatar {
        display: none;
    }

    .users-role-badge {
        white-space: normal;
    }

    .users-row-actions {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* --------------------------------------------------------------------------
   Satisfação — Clara Admin
   -------------------------------------------------------------------------- */
.satisfaction-page-heading {
    margin-bottom: 1.25rem;
}

.satisfaction-kpi-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .9rem;
    margin-bottom: 1rem;
}

.satisfaction-kpi-card {
    position: relative;
    min-height: 8.25rem;
    padding: 1.1rem 1.15rem;
    border: 1px solid var(--clara-border);
    border-radius: 16px !important;
    background: #fff;
    box-shadow: 0 6px 20px rgba(6, 29, 34, .035);
}

.satisfaction-kpi-icon {
    position: absolute;
    top: .95rem;
    right: .95rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.2rem;
    height: 2.2rem;
    border-radius: 11px;
    background: #e6f7f4;
    color: #087e72;
}

.satisfaction-kpi-card .mud-typography-caption {
    display: block;
    max-width: calc(100% - 2.5rem);
    color: var(--clara-muted) !important;
    font-weight: 700 !important;
}

.satisfaction-kpi-card .mud-typography-h4 {
    color: var(--clara-text) !important;
    font-weight: 800 !important;
    letter-spacing: -.035em;
}

.satisfaction-kpi-helper {
    margin-top: .35rem !important;
    color: var(--clara-muted) !important;
}

.satisfaction-score-line {
    display: flex;
    align-items: baseline;
    gap: .3rem;
    margin-top: .9rem;
}

.satisfaction-score-scale {
    color: #789093;
    font-size: .78rem;
    font-weight: 650;
}

.satisfaction-section-card {
    overflow: hidden;
    margin-bottom: 1rem;
}

    .satisfaction-section-card .clara-section-header {
        border-bottom: 1px solid var(--clara-border);
    }

.satisfaction-table .mud-table-cell {
    vertical-align: middle !important;
}

.satisfaction-doctor-score {
    display: flex;
    align-items: baseline;
    gap: .3rem;
}

.satisfaction-score-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.35rem;
    min-height: 1.65rem;
    padding: .2rem .5rem;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 800;
    line-height: 1;
}

    .satisfaction-score-badge.is-good {
        background: #e9f8ef;
        color: #087e4b;
    }

    .satisfaction-score-badge.is-neutral {
        background: #fff5dc;
        color: #8a6515;
    }

    .satisfaction-score-badge.is-low {
        background: #fff0f0;
        color: #c53030;
    }

.satisfaction-count-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 1.7rem;
    padding: 0 .48rem;
    border-radius: 999px;
    background: #eef3f4;
    color: #38585b;
    font-size: .74rem;
    font-weight: 800;
}

.satisfaction-date,
.satisfaction-time {
    display: block;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.satisfaction-date {
    color: #29494d;
    font-weight: 650;
}

.satisfaction-time {
    margin-top: .08rem;
    color: #789093;
    font-size: .74rem;
}

.satisfaction-comment-header {
    min-width: 18rem;
}

.satisfaction-comment {
    display: block;
    max-width: 32rem;
    color: #536d70;
    line-height: 1.45;
}

.satisfaction-muted {
    color: #8aa0a2;
}

.satisfaction-empty-state {
    display: flex;
    align-items: center;
    gap: .9rem;
    min-height: 7.5rem;
}

    .satisfaction-empty-state .mud-typography-h6 {
        color: var(--clara-text) !important;
        font-weight: 700 !important;
    }

@media (max-width: 900px) {
    .satisfaction-kpi-grid {
        grid-template-columns: 1fr;
    }

    .satisfaction-comment-header {
        min-width: 0;
    }

    .satisfaction-comment {
        max-width: none;
    }
}


/* --------------------------------------------------------------------------
   Diálogos — Clara Admin
   -------------------------------------------------------------------------- */
.clara-dialog-intro {
    margin-bottom: 1rem !important;
    color: var(--clara-muted) !important;
    line-height: 1.5 !important;
}

.clara-dialog-section-title {
    margin-bottom: .65rem !important;
    color: var(--clara-text) !important;
    font-weight: 750 !important;
}

.clara-dialog-section-help {
    margin: -.35rem 0 .9rem !important;
    color: var(--clara-muted) !important;
    font-size: .8rem !important;
    line-height: 1.45 !important;
}

.clara-dialog-divider {
    margin: .35rem 0 1rem !important;
    border-color: var(--clara-border) !important;
}

.clara-dialog-primary-action {
    border-radius: 10px !important;
    box-shadow: none !important;
    font-weight: 700 !important;
}


/* --------------------------------------------------------------------------
   Autenticação — Clara Admin
   -------------------------------------------------------------------------- */
.login-background {
    position: relative;
    min-height: 100vh;
    min-height: 100svh;
    display: grid;
    place-items: center;
    overflow: auto;
    background: radial-gradient(circle at 18% 18%, rgba(20,184,166,.12), transparent 28%), radial-gradient(circle at 82% 76%, rgba(121,225,211,.08), transparent 26%), linear-gradient(160deg, #061d22 0%, #0a3036 100%);
}

.login-watermark {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 660px;
    height: 660px;
    max-width: 88vw;
    max-height: 88vw;
    opacity: .045;
    pointer-events: none;
    user-select: none;
    z-index: 0;
}

.auth-shell {
    position: relative;
    z-index: 1;
    width: min(100% - 2rem, 29rem);
    margin: 0 auto;
    padding: 2rem 0;
    box-sizing: border-box;
}

.auth-brand {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .7rem;
    margin-bottom: 1rem;
    color: #effaf8;
}

.auth-brand-mark {
    width: 2.6rem;
    height: 2.6rem;
    object-fit: contain;
}

.auth-brand-name {
    font-size: 1.05rem;
    line-height: 1.05;
    font-weight: 800;
    letter-spacing: -.02em;
}

.auth-brand-product {
    margin-top: .12rem;
    color: #9fc5c0;
    font-size: .72rem;
    font-weight: 650;
    letter-spacing: .04em;
}

.auth-card {
    padding: 2rem !important;
    border: 1px solid rgba(220,232,230,.9);
    border-radius: 20px !important;
    background: rgba(255,255,255,.985) !important;
    box-shadow: 0 24px 70px rgba(0,0,0,.22) !important;
}

.auth-card-header {
    margin-bottom: 1.35rem;
}

.auth-title {
    color: var(--clara-text) !important;
    font-weight: 800 !important;
    letter-spacing: -.035em !important;
    line-height: 1.1 !important;
}

.auth-subtitle {
    margin-top: .45rem !important;
    color: var(--clara-muted) !important;
    line-height: 1.5 !important;
}

.auth-alert {
    margin-bottom: 1rem;
    border-radius: 12px !important;
}

.auth-form {
    display: grid;
    gap: 0;
}

.auth-label {
    display: block;
    margin: 0 0 .35rem;
    color: #29494d;
    font-size: .82rem;
    font-weight: 700;
}

.login-input.auth-input {
    width: 100%;
    min-height: 3.05rem;
    margin-bottom: 1rem;
    padding: .72rem .85rem;
    border: 1px solid #cddbd9;
    border-radius: 11px;
    background: #fbfdfd;
    color: var(--clara-text);
    font-size: .95rem;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

    .login-input.auth-input::placeholder {
        color: #93a6a8;
    }

    .login-input.auth-input:hover {
        border-color: #aacbc6;
        background: #fff;
    }

    .login-input.auth-input:focus {
        outline: none;
        border-color: var(--clara-teal);
        background: #fff;
        box-shadow: 0 0 0 3px rgba(20,184,166,.11);
    }

.auth-primary-button {
    min-height: 3rem;
    margin-top: .2rem !important;
    border-radius: 11px !important;
    box-shadow: none !important;
    font-weight: 750 !important;
    letter-spacing: .005em !important;
}

.auth-footer {
    display: flex;
    justify-content: center;
    margin-top: 1rem;
}

.auth-link {
    color: #087e72 !important;
    font-size: .84rem;
    font-weight: 700;
}

.auth-security-note {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    margin-top: .95rem;
    color: #8eb2ad;
    font-size: .72rem;
    text-align: center;
}

    .auth-security-note .mud-icon-root {
        font-size: .95rem !important;
    }

@media (max-width: 599px) {
    .auth-shell {
        width: min(100% - 1.25rem, 29rem);
        padding: 1rem 0;
    }

    .auth-brand {
        margin-bottom: .8rem;
    }

    .auth-card {
        padding: 1.35rem !important;
        border-radius: 16px !important;
    }

    .auth-title {
        font-size: 1.65rem !important;
    }

    .auth-security-note {
        padding-inline: .5rem;
    }
}


@media (max-height: 620px) {
    .login-background {
        place-items: start center;
    }

    .auth-shell {
        padding-top: 1rem;
        padding-bottom: 1rem;
    }
}


/* --------------------------------------------------------------------------
   Gestão da Plataforma — Clara Admin
   -------------------------------------------------------------------------- */
.platform-page-heading {
    align-items: flex-start;
    margin-bottom: 1.15rem;
}

.platform-context-card {
    margin-bottom: 1.15rem;
    padding: 1rem 1.25rem;
}

.platform-context-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
}

.platform-secondary-action {
    flex: 0 0 auto;
    border-radius: 10px !important;
    font-weight: 700 !important;
}

.platform-list-card {
    overflow: hidden;
}

    .platform-list-card .clara-section-header {
        border-bottom: 1px solid var(--clara-border);
    }

.platform-table .mud-table-cell {
    vertical-align: middle !important;
}

.platform-actions-header {
    min-width: 14rem;
}

.platform-secondary-value {
    color: #536d70;
    overflow-wrap: anywhere;
}

.platform-plan-badge {
    display: inline-flex;
    align-items: center;
    min-height: 1.5rem;
    padding: .18rem .55rem;
    border-radius: 999px;
    background: #e8f7f4;
    color: #087e72;
    font-size: .72rem;
    font-weight: 800;
    line-height: 1;
}

.platform-old-plan {
    color: #64777a;
    font-weight: 650;
}

.platform-usage {
    color: #5a7376;
    white-space: nowrap;
}

    .platform-usage strong {
        color: var(--clara-text);
        font-size: .95rem;
    }

.platform-limit {
    display: inline-flex;
    min-width: 2.2rem;
    justify-content: center;
    padding: .2rem .5rem;
    border-radius: 8px;
    background: #eef3f4;
    color: #38585b;
    font-weight: 800;
}

.platform-count-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 1.7rem;
    padding: 0 .48rem;
    border-radius: 999px;
    background: #eef3f4;
    color: #38585b;
    font-size: .74rem;
    font-weight: 800;
}

.platform-feature-badge {
    display: inline-flex;
    align-items: center;
    padding: .2rem .55rem;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 750;
    line-height: 1;
    white-space: nowrap;
}

    .platform-feature-badge.is-enabled {
        background: #e9f8ef;
        color: #087e4b;
    }

    .platform-feature-badge.is-disabled {
        background: #eef3f4;
        color: #64777a;
    }

.platform-row-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .15rem .35rem;
}

    .platform-row-actions .mud-button-root {
        min-width: auto !important;
        padding-inline: .5rem !important;
        border-radius: 8px !important;
        font-weight: 700 !important;
    }

.platform-password-action {
    color: #31585b !important;
}

.platform-user-cell {
    display: flex;
    align-items: center;
    gap: .65rem;
    min-width: 0;
}

.platform-user-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.05rem;
    height: 2.05rem;
    flex: 0 0 2.05rem;
    border-radius: 50%;
    background: #e6f7f4;
    color: #087e72;
    font-size: .72rem;
    font-weight: 800;
}

.platform-you-badge {
    display: inline-flex;
    align-items: center;
    min-height: 1.35rem;
    padding: .14rem .45rem;
    border-radius: 999px;
    background: #e9f3ff;
    color: #24699b;
    font-size: .67rem;
    font-weight: 800;
}

.platform-date,
.platform-time {
    display: block;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.platform-date {
    color: #29494d;
    font-weight: 650;
}

.platform-time {
    margin-top: .08rem;
    color: #789093;
    font-size: .74rem;
}

.platform-muted {
    color: #8aa0a2;
    font-size: .78rem;
}

.platform-empty-state {
    display: flex;
    align-items: center;
    gap: .9rem;
    min-height: 7.5rem;
}

    .platform-empty-state .mud-typography-h6 {
        color: var(--clara-text) !important;
        font-weight: 700 !important;
    }

@media (max-width: 959px) {
    .platform-page-heading,
    .platform-context-content {
        align-items: stretch;
        flex-direction: column;
    }

        .platform-page-heading .mud-button-root,
        .platform-secondary-action {
            align-self: flex-start;
        }

    .platform-actions-header {
        min-width: 0;
    }
}

@media (max-width: 599px) {
    .platform-page-heading .mud-button-root,
    .platform-secondary-action {
        width: 100%;
    }

    .platform-row-actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .platform-user-avatar {
        display: none;
    }

    .platform-feature-badge {
        white-space: normal;
    }
}


/* ==========================================================================
   Diálogos e modais — Clara Admin
   ========================================================================== */
.clara-dialog {
    border: 1px solid var(--clara-border) !important;
    border-radius: 18px !important;
    background: var(--clara-surface) !important;
    box-shadow: 0 24px 70px rgba(6, 29, 34, .18) !important;
    overflow: hidden;
}

    .clara-dialog .mud-dialog-title {
        padding: 1.25rem 1.4rem .85rem !important;
        color: var(--clara-text) !important;
        font-size: 1.18rem !important;
        font-weight: 800 !important;
        letter-spacing: -.02em;
        line-height: 1.25;
    }

    .clara-dialog .mud-dialog-content {
        padding: .8rem 1.4rem 1.2rem !important;
        color: var(--clara-text);
    }

    .clara-dialog .mud-dialog-actions {
        gap: .55rem;
        padding: .9rem 1.4rem 1.2rem !important;
        border-top: 1px solid #edf2f1;
        background: #fbfdfc;
    }

        .clara-dialog .mud-dialog-actions .mud-button-root {
            min-height: 2.55rem;
            border-radius: 10px !important;
            font-weight: 700 !important;
            box-shadow: none !important;
        }

        .clara-dialog .mud-dialog-actions .mud-button-text {
            color: #496467;
        }

    .clara-dialog .mud-input-control {
        margin-bottom: .35rem;
    }

    .clara-dialog .mud-input-outlined-border {
        border-color: #cddbd9 !important;
    }

    .clara-dialog .mud-input-control.mud-input-focused .mud-input-outlined-border,
    .clara-dialog .mud-input-outlined.mud-input-focused .mud-input-outlined-border {
        border-color: var(--clara-teal) !important;
    }

    .clara-dialog .mud-input-label {
        color: #536d70;
    }

    .clara-dialog .mud-input-control.mud-input-focused .mud-input-label {
        color: #087e72 !important;
    }

    .clara-dialog .mud-select,
    .clara-dialog .mud-picker {
        border-radius: 10px;
    }

    .clara-dialog .mud-alert {
        border-radius: 11px !important;
        margin-bottom: .85rem;
    }

    .clara-dialog .mud-divider {
        border-color: var(--clara-border) !important;
    }

    .clara-dialog .mud-typography-subtitle2 {
        color: var(--clara-text) !important;
        font-weight: 750 !important;
    }

    .clara-dialog .mud-typography-body2.mud-typography-color-secondary {
        color: var(--clara-muted) !important;
        line-height: 1.5;
    }

.clara-dialog-primary-action {
    border-radius: 10px !important;
    box-shadow: none !important;
    font-weight: 750 !important;
}

@media (max-width: 599px) {
    .clara-dialog {
        margin: .65rem !important;
        max-width: calc(100vw - 1.3rem) !important;
        border-radius: 15px !important;
    }

        .clara-dialog .mud-dialog-title {
            padding: 1rem 1rem .65rem !important;
            font-size: 1.08rem !important;
        }

        .clara-dialog .mud-dialog-content {
            padding: .7rem 1rem 1rem !important;
        }

        .clara-dialog .mud-dialog-actions {
            padding: .8rem 1rem 1rem !important;
            flex-wrap: wrap;
        }
}


/* ==========================================================================
   Responsividade global — Clara Admin
   ========================================================================== */

/* Evita que o cabeçalho force overflow em larguras estreitas. */
.clara-appbar .mud-toolbar {
    min-width: 0;
}

.clara-header-title {
    flex: 1 1 auto;
    min-width: 0;
}

.clara-header-badge,
.clara-header-logout-form {
    flex: 0 0 auto;
}

@media (max-width: 599px) {
    .clara-appbar .mud-toolbar {
        gap: .25rem;
        padding-left: .65rem !important;
        padding-right: .65rem !important;
    }

    .clara-appbar .mud-icon-button-root {
        flex: 0 0 auto;
    }

    .clara-header-title {
        margin-left: .15rem !important;
        font-size: 1rem !important;
        line-height: 1 !important;
        max-width: none;
    }

    .clara-header-product {
        display: none;
    }

    .clara-header-brand {
        display: inline;
    }

    .clara-header-compact-btn {
        width: 2.65rem !important;
        min-width: 2.65rem !important;
        height: 2.45rem !important;
        min-height: 2.45rem !important;
        padding: 0 !important;
        border-radius: 9px !important;
    }

        .clara-header-compact-btn .mud-button-label {
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .clara-header-compact-btn .mud-button-start-icon {
            margin: 0 !important;
        }

        .clara-header-compact-btn .mud-icon-root {
            font-size: 1.15rem !important;
        }

    .clara-header-badge {
        margin-right: .2rem !important;
    }

    .clara-header-notify-btn {
        margin-right: .2rem !important;
    }

    .clara-header-logout-form {
        margin: 0;
    }

    .clara-main-content {
        min-width: 0;
    }

    .clara-content-container {
        width: 100%;
        max-width: 100% !important;
        padding: 1rem .75rem 1.5rem !important;
        overflow-x: hidden;
    }

    .clara-page-heading {
        align-items: stretch;
        flex-direction: column;
        gap: .8rem;
    }

        .clara-page-heading > .mud-button-root {
            align-self: flex-start;
        }

    .clara-section-card {
        border-radius: 14px !important;
    }

    .clara-section-header {
        min-height: auto;
        align-items: flex-start;
        padding: .9rem;
    }

    .clara-nav-menu {
        padding: .6rem .45rem 1rem;
    }

        .clara-nav-menu .mud-nav-link,
        .clara-nav-menu .mud-nav-group > .mud-nav-link {
            min-height: 40px;
            font-size: .9rem;
        }
}

/* Celulares realmente estreitos: preserva a marca e as três ações por ícone. */
@media (max-width: 380px) {
    .clara-appbar .mud-toolbar {
        padding-left: .45rem !important;
        padding-right: .45rem !important;
    }

    .clara-header-title {
        font-size: .95rem !important;
    }

    .clara-header-compact-btn {
        width: 2.45rem !important;
        min-width: 2.45rem !important;
        height: 2.3rem !important;
        min-height: 2.3rem !important;
    }

    .clara-header-badge,
    .clara-header-notify-btn {
        margin-right: .1rem !important;
    }
}


/* ==========================================================================
   Fila de Pendências — cards mobile
   ========================================================================== */
.pending-mobile-list {
    display: none;
}

@media (max-width: 599px) {
    .pending-desktop-table {
        display: none;
    }

    .pending-mobile-list {
        display: grid;
        gap: .8rem;
        padding: .75rem;
    }

    .pending-mobile-card {
        overflow: hidden;
        border: 1px solid var(--clara-border);
        border-radius: 14px;
        background: #fff;
        box-shadow: 0 4px 14px rgba(6,29,34,.035);
    }

        .pending-mobile-card.is-staff {
            border-left: 3px solid #d7a127;
        }

        .pending-mobile-card.is-patient {
            border-left: 3px solid #4c92c7;
        }

    .pending-mobile-card-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: .65rem;
        padding: .75rem .8rem;
        border-bottom: 1px solid #edf3f2;
        background: #fbfdfc;
    }

        .pending-mobile-card-head .pending-owner-badge {
            white-space: normal;
            flex: 0 1 auto;
        }

    .pending-mobile-expiry {
        flex: 0 0 auto;
        color: #8a6515;
        font-size: .66rem;
        font-weight: 700;
        white-space: nowrap;
    }

    .pending-mobile-main {
        padding: .85rem;
    }

    .pending-mobile-type {
        color: var(--clara-text);
        font-size: .92rem;
        font-weight: 800;
        line-height: 1.3;
    }

    .pending-mobile-person {
        display: grid;
        gap: .14rem;
        margin-top: .7rem;
    }

        .pending-mobile-person strong {
            color: #29494d;
            font-size: .85rem;
            line-height: 1.35;
        }

        .pending-mobile-person span {
            color: #6c8386;
            font-size: .76rem;
            line-height: 1.35;
        }

    .pending-mobile-summary {
        margin-top: .75rem;
        padding: .65rem .7rem;
        border-radius: 10px;
        background: #f6faf9;
        color: #536d70;
        font-size: .78rem;
        line-height: 1.45;
        overflow-wrap: anywhere;
    }

    .pending-mobile-meta-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        border-top: 1px solid #edf3f2;
        border-bottom: 1px solid #edf3f2;
    }

    .pending-mobile-meta {
        min-width: 0;
        padding: .7rem .85rem;
    }

        .pending-mobile-meta:first-child {
            border-right: 1px solid #edf3f2;
        }

        .pending-mobile-meta span,
        .pending-mobile-meta strong,
        .pending-mobile-meta small {
            display: block;
        }

        .pending-mobile-meta span {
            margin-bottom: .18rem;
            color: #789093;
            font-size: .66rem;
            font-weight: 700;
            letter-spacing: .035em;
            text-transform: uppercase;
        }

        .pending-mobile-meta strong {
            color: #29494d;
            font-size: .8rem;
            font-variant-numeric: tabular-nums;
        }

        .pending-mobile-meta small {
            margin-top: .08rem;
            color: #789093;
            font-size: .68rem;
            font-variant-numeric: tabular-nums;
        }

    .pending-mobile-actions {
        padding: .65rem .75rem;
        background: #fff;
    }

    .pending-mobile-resolve {
        width: 100%;
        min-height: 2.6rem;
        border-radius: 9px !important;
        box-shadow: none !important;
        font-weight: 800 !important;
    }

    .pending-mobile-waiting {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: .4rem;
        min-height: 2.5rem;
        border-radius: 9px;
        background: #f2f7f7;
        color: #607779;
        font-size: .75rem;
        font-weight: 700;
    }

        .pending-mobile-waiting .mud-icon-root {
            font-size: 1rem !important;
        }
}

@media (max-width: 380px) {
    .pending-mobile-card-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .pending-mobile-expiry {
        white-space: normal;
    }

    .pending-mobile-meta-grid {
        grid-template-columns: 1fr;
    }

    .pending-mobile-meta:first-child {
        border-right: 0;
        border-bottom: 1px solid #edf3f2;
    }
}

/* ==========================================================================
   Agenda dos médicos — cards compactos no mobile v2
   ========================================================================== */

/* Desktop/tablet: tabela visível, cards ocultos. */
.doctor-desktop-table {
    display: block;
}

.doctor-mobile-list {
    display: none;
}

@media (max-width: 599px) {
    /* No celular, os dois modos são mutuamente exclusivos. */
    .doctor-desktop-table {
        display: none !important;
    }

    .doctor-mobile-list {
        display: grid !important;
        gap: .7rem;
        padding: .75rem;
    }

    .doctor-mobile-card {
        overflow: hidden;
        border: 1px solid var(--clara-border);
        border-radius: 13px;
        background: #fff;
        box-shadow: 0 3px 12px rgba(6,29,34,.03);
    }

    .doctor-mobile-card-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: .65rem;
        padding: .7rem .8rem;
        border-bottom: 1px solid #edf3f2;
        background: #fbfdfc;
    }

        .doctor-mobile-card-head > strong {
            color: var(--clara-text);
            font-size: .88rem;
            line-height: 1.25;
        }

    .doctor-mobile-card-main {
        padding: .8rem;
    }

    .doctor-mobile-time-range {
        display: flex;
        align-items: center;
        gap: .45rem;
    }

    .doctor-mobile-time-separator {
        color: #789093;
        font-weight: 700;
    }

    .doctor-mobile-duration {
        display: block;
        margin-top: .5rem;
        color: #647e81;
        font-size: .74rem;
        font-weight: 650;
    }

    .doctor-mobile-actions {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: .15rem;
        padding: .48rem .62rem;
        border-top: 1px solid #edf3f2;
        background: #fff;
    }

        .doctor-mobile-actions .mud-button-root {
            min-width: auto !important;
            padding-inline: .48rem !important;
            border-radius: 8px !important;
            font-size: .71rem !important;
            font-weight: 700 !important;
        }

    .doctor-mobile-block-period {
        display: grid;
        grid-template-columns: 1fr 1fr;
        border: 1px solid #edf3f2;
        border-radius: 10px;
        overflow: hidden;
    }

        .doctor-mobile-block-period > div {
            min-width: 0;
            padding: .6rem .7rem;
        }

            .doctor-mobile-block-period > div:first-child {
                border-right: 1px solid #edf3f2;
            }

        .doctor-mobile-block-period span,
        .doctor-mobile-block-period strong,
        .doctor-mobile-block-period small {
            display: block;
        }

        .doctor-mobile-block-period span,
        .doctor-mobile-reason span {
            margin-bottom: .16rem;
            color: #789093;
            font-size: .64rem;
            font-weight: 750;
            letter-spacing: .035em;
            text-transform: uppercase;
        }

        .doctor-mobile-block-period strong {
            color: #29494d;
            font-size: .78rem;
            font-variant-numeric: tabular-nums;
        }

        .doctor-mobile-block-period small {
            margin-top: .06rem;
            color: #087e72;
            font-size: .72rem;
            font-weight: 750;
            font-variant-numeric: tabular-nums;
        }

    .doctor-mobile-reason {
        margin-top: .65rem;
        padding: .58rem .68rem;
        border-radius: 10px;
        background: #f6faf9;
    }

        .doctor-mobile-reason span,
        .doctor-mobile-reason strong {
            display: block;
        }

        .doctor-mobile-reason strong {
            color: #405e61;
            font-size: .77rem;
            line-height: 1.4;
            overflow-wrap: anywhere;
        }
}

@media (max-width: 380px) {
    .doctor-mobile-block-period {
        grid-template-columns: 1fr;
    }

        .doctor-mobile-block-period > div:first-child {
            border-right: 0;
            border-bottom: 1px solid #edf3f2;
        }
}



/* ==========================================================================
   Médicos — cards compactos no mobile
   ========================================================================== */

.doctors-desktop-table {
    display: block;
}

.doctors-mobile-list {
    display: none;
}

@media (max-width: 599px) {
    .doctors-desktop-table {
        display: none !important;
    }

    .doctors-mobile-list {
        display: grid !important;
        gap: .7rem;
        padding: .75rem;
    }

    .doctors-mobile-card {
        overflow: hidden;
        border: 1px solid var(--clara-border);
        border-radius: 13px;
        background: #fff;
        box-shadow: 0 3px 12px rgba(6,29,34,.03);
    }

    .doctors-mobile-head {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: .65rem;
        padding: .78rem .8rem;
    }

    .doctors-mobile-identity {
        display: flex;
        align-items: center;
        gap: .62rem;
        min-width: 0;
    }

        .doctors-mobile-identity > div {
            min-width: 0;
        }

        .doctors-mobile-identity strong,
        .doctors-mobile-identity span {
            display: block;
        }

        .doctors-mobile-identity strong {
            color: var(--clara-text);
            font-size: .84rem;
            line-height: 1.25;
            overflow-wrap: anywhere;
        }

        .doctors-mobile-identity span:not(.doctors-avatar) {
            margin-top: .15rem;
            color: #6d8588;
            font-size: .7rem;
            line-height: 1.3;
        }

    .doctors-mobile-head .doctor-status-badge {
        flex: 0 0 auto;
        margin-top: .05rem;
    }

    .doctors-mobile-details {
        display: grid;
        grid-template-columns: 1fr;
        margin: 0 .8rem;
        border-top: 1px solid #edf3f2;
        border-bottom: 1px solid #edf3f2;
    }

        .doctors-mobile-details > div {
            padding: .62rem 0;
        }

        .doctors-mobile-details span,
        .doctors-mobile-details strong {
            display: block;
        }

        .doctors-mobile-details span {
            margin-bottom: .16rem;
            color: #789093;
            font-size: .62rem;
            font-weight: 750;
            letter-spacing: .035em;
            text-transform: uppercase;
        }

        .doctors-mobile-details strong {
            color: #35565a;
            font-size: .76rem;
            font-weight: 750;
            overflow-wrap: anywhere;
        }

    .doctors-mobile-actions {
        display: flex;
        justify-content: flex-end;
        padding: .38rem .55rem .46rem;
    }

        .doctors-mobile-actions .mud-button-root {
            min-width: auto !important;
            padding-inline: .5rem !important;
            border-radius: 8px !important;
            font-size: .71rem !important;
            font-weight: 700 !important;
        }
}

/* ==========================================================================
   Serviços da clínica — cards compactos no mobile
   ========================================================================== */

.services-desktop-table {
    display: block;
}

.services-mobile-list {
    display: none;
}

@media (max-width: 599px) {
    .services-desktop-table {
        display: none !important;
    }

    .services-mobile-list {
        display: grid !important;
        gap: .7rem;
        padding: .75rem;
    }

    .services-mobile-card {
        overflow: hidden;
        border: 1px solid var(--clara-border);
        border-radius: 13px;
        background: #fff;
        box-shadow: 0 3px 12px rgba(6,29,34,.03);
    }

    .services-mobile-head {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: .55rem;
        padding: .78rem .8rem;
    }

    .services-mobile-identity {
        display: flex;
        align-items: flex-start;
        gap: .62rem;
        min-width: 0;
    }

        .services-mobile-identity > div {
            min-width: 0;
        }

            .services-mobile-identity > div > strong {
                display: block;
                color: var(--clara-text);
                font-size: .84rem;
                line-height: 1.25;
                overflow-wrap: anywhere;
            }

    .services-mobile-badges {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: .35rem;
        margin-top: .38rem;
    }

    .services-mobile-head .services-type-badge,
    .services-mobile-head .services-doctor-badge {
        font-size: .62rem;
    }

        .services-mobile-head .services-doctor-badge .mud-icon-root {
            font-size: .8rem !important;
        }

    .services-mobile-head .doctor-status-badge {
        flex: 0 0 auto;
        margin-top: .02rem;
    }

    .services-mobile-metrics {
        display: grid;
        grid-template-columns: 1fr 1fr;
        margin: 0 .8rem;
        border-top: 1px solid #edf3f2;
        border-bottom: 1px solid #edf3f2;
    }

        .services-mobile-metrics > div {
            min-width: 0;
            padding: .62rem 0;
        }

            .services-mobile-metrics > div + div {
                padding-left: .72rem;
                border-left: 1px solid #edf3f2;
            }

        .services-mobile-metrics span,
        .services-mobile-metrics strong {
            display: block;
        }

        .services-mobile-metrics span {
            margin-bottom: .18rem;
            color: #789093;
            font-size: .61rem;
            font-weight: 750;
            letter-spacing: .035em;
            text-transform: uppercase;
        }

        .services-mobile-metrics strong {
            color: #35565a;
            font-size: .76rem;
            font-weight: 750;
            overflow-wrap: anywhere;
        }

    .services-mobile-actions {
        display: flex;
        justify-content: flex-end;
        padding: .38rem .55rem .46rem;
    }

        .services-mobile-actions .mud-button-root {
            min-width: auto !important;
            padding-inline: .5rem !important;
            border-radius: 8px !important;
            font-size: .71rem !important;
            font-weight: 700 !important;
        }
}

@media (max-width: 360px) {
    .services-mobile-head {
        flex-wrap: wrap;
    }

        .services-mobile-head .doctor-status-badge {
            margin-left: 2.55rem;
        }
}



/* ==========================================================================
   Horário da clínica — cards compactos no mobile
   ========================================================================== */

.clinic-hours-desktop-table {
    display: block;
}

.clinic-hours-mobile-list {
    display: none;
}

@media (max-width: 599px) {
    .clinic-hours-desktop-table {
        display: none !important;
    }

    .clinic-hours-mobile-list {
        display: grid !important;
        gap: .65rem;
        padding: .72rem;
    }

    .clinic-hours-mobile-card {
        overflow: hidden;
        border: 1px solid var(--clara-border);
        border-radius: 12px;
        background: #fff;
        box-shadow: 0 3px 12px rgba(6,29,34,.03);
    }

    .clinic-hours-mobile-card-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: .6rem;
        padding: .7rem .75rem .48rem;
    }

        .clinic-hours-mobile-card-head strong {
            display: block;
            color: var(--clara-text);
            font-size: .78rem;
            line-height: 1.25;
        }

    .clinic-hours-mobile-kicker {
        display: block;
        margin-bottom: .13rem;
        color: #789093;
        font-size: .58rem;
        font-weight: 750;
        letter-spacing: .04em;
        text-transform: uppercase;
    }

    .clinic-hours-mobile-time-row {
        display: flex;
        align-items: center;
        gap: .42rem;
        padding: .08rem .75rem .65rem;
    }

    .clinic-hours-mobile-arrow {
        color: #82989a;
        font-size: .76rem;
        font-weight: 700;
    }

    .clinic-hours-mobile-actions {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: .1rem;
        padding: .34rem .42rem .4rem;
        border-top: 1px solid #edf3f2;
    }

        .clinic-hours-mobile-actions .mud-button-root {
            min-width: auto !important;
            padding-inline: .42rem !important;
            border-radius: 8px !important;
            font-size: .68rem !important;
            font-weight: 700 !important;
        }

    .clinic-hours-mobile-override-details {
        display: grid;
        grid-template-columns: .8fr 1.2fr;
        margin: 0 .75rem .62rem;
        overflow: hidden;
        border: 1px solid #edf3f2;
        border-radius: 9px;
        background: #f8fbfa;
    }

        .clinic-hours-mobile-override-details > div {
            min-width: 0;
            padding: .55rem .62rem;
        }

            .clinic-hours-mobile-override-details > div + div {
                border-left: 1px solid #e7efee;
            }

        .clinic-hours-mobile-override-details span,
        .clinic-hours-mobile-override-details strong {
            display: block;
        }

        .clinic-hours-mobile-override-details span {
            margin-bottom: .15rem;
            color: #789093;
            font-size: .57rem;
            font-weight: 750;
            letter-spacing: .035em;
            text-transform: uppercase;
        }

        .clinic-hours-mobile-override-details strong {
            color: #35565a;
            font-size: .69rem;
            line-height: 1.35;
            overflow-wrap: anywhere;
        }

    .clinic-hours-override-card .clinic-hours-mode-badge {
        max-width: 58%;
        text-align: center;
        white-space: normal;
        line-height: 1.2;
    }
}

@media (max-width: 360px) {
    .clinic-hours-mobile-override-details {
        grid-template-columns: 1fr;
    }

        .clinic-hours-mobile-override-details > div + div {
            border-top: 1px solid #e7efee;
            border-left: 0;
        }
}


/* ==========================================================================
   Convênios e planos — cards compactos no mobile
   ========================================================================== */

.insurance-desktop-table {
    display: block;
}

.insurance-mobile-list {
    display: none;
}

@media (max-width: 599px) {
    .insurance-desktop-table {
        display: none !important;
    }

    .insurance-mobile-list {
        display: grid !important;
        gap: .65rem;
        padding: .7rem;
    }

    .insurance-mobile-card {
        overflow: hidden;
        border: 1px solid var(--clara-border);
        border-radius: 12px;
        background: #fff;
        box-shadow: 0 3px 12px rgba(6,29,34,.03);
    }

    .insurance-mobile-card-head {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: .65rem;
        padding: .72rem .72rem .58rem;
    }

    .insurance-mobile-title {
        display: flex;
        align-items: center;
        min-width: 0;
        gap: .55rem;
    }

        .insurance-mobile-title > div {
            min-width: 0;
        }

        .insurance-mobile-title strong {
            display: block;
            margin-bottom: .18rem;
            color: var(--clara-text);
            font-size: .78rem;
            line-height: 1.2;
            overflow-wrap: anywhere;
        }

    .insurance-provider-mobile-card .insurance-provider-mark,
    .insurance-mobile-round-mark {
        display: grid;
        flex: 0 0 30px;
        width: 30px;
        height: 30px;
        place-items: center;
        border-radius: 50%;
        background: #e6f7f4;
        color: #079889;
        font-size: .62rem;
        font-weight: 800;
    }

    .insurance-provider-mobile-card .insurance-type-badge {
        display: inline-flex;
        font-size: .57rem;
    }

    .insurance-mobile-actions {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: .08rem;
        padding: .34rem .38rem .4rem;
        border-top: 1px solid #edf3f2;
    }

        .insurance-mobile-actions .mud-button-root {
            min-width: auto !important;
            padding-inline: .4rem !important;
            border-radius: 8px !important;
            font-size: .66rem !important;
            font-weight: 700 !important;
        }

    .insurance-plan-title > div > span {
        display: block;
        color: #71878a;
        font-size: .62rem;
        line-height: 1.25;
    }

    .insurance-mobile-kicker {
        display: block;
        margin-bottom: .16rem;
        color: #789093;
        font-size: .56rem;
        font-weight: 800;
        letter-spacing: .04em;
        text-transform: uppercase;
    }

    .insurance-rule-statuses {
        display: flex;
        flex: 0 0 auto;
        align-items: flex-end;
        flex-direction: column;
        gap: .28rem;
    }

        .insurance-rule-statuses .insurance-acceptance-badge {
            font-size: .57rem;
        }

    .insurance-rule-mobile-details {
        display: grid;
        grid-template-columns: 1fr 1fr;
        margin: 0 .72rem .62rem;
        overflow: hidden;
        border: 1px solid #edf3f2;
        border-radius: 9px;
        background: #f8fbfa;
    }

        .insurance-rule-mobile-details > div {
            min-width: 0;
            padding: .5rem .58rem;
        }

            .insurance-rule-mobile-details > div + div {
                border-left: 1px solid #e7efee;
            }

        .insurance-rule-mobile-details span,
        .insurance-rule-mobile-details strong {
            display: block;
        }

        .insurance-rule-mobile-details span {
            margin-bottom: .13rem;
            color: #789093;
            font-size: .55rem;
            font-weight: 800;
            letter-spacing: .035em;
            text-transform: uppercase;
        }

        .insurance-rule-mobile-details strong {
            color: #35565a;
            font-size: .67rem;
            line-height: 1.3;
            overflow-wrap: anywhere;
        }

    /* O contexto da operadora já estava bom; apenas melhora a densidade. */
    .insurance-selected-context {
        margin-top: .75rem !important;
    }
}

@media (max-width: 360px) {
    .insurance-mobile-card-head {
        gap: .4rem;
    }

    .insurance-rule-mobile-details {
        grid-template-columns: 1fr;
    }

        .insurance-rule-mobile-details > div + div {
            border-top: 1px solid #e7efee;
            border-left: 0;
        }

    .insurance-mobile-actions {
        flex-wrap: wrap;
    }
}


/* ==========================================================================
   Convênios e planos — refinamento do cabeçalho de Regras de cobertura
   ========================================================================== */
@media (max-width: 599px) {
    .insurance-rules-header {
        align-items: stretch !important;
        flex-direction: column !important;
        gap: .72rem !important;
    }

        .insurance-rules-header .doctor-section-heading {
            width: 100%;
            align-items: flex-start;
        }

            .insurance-rules-header .doctor-section-heading > div {
                min-width: 0;
                flex: 1 1 auto;
            }

        .insurance-rules-header .doctor-section-subtitle {
            max-width: none;
        }

        .insurance-rules-header > .mud-button-root {
            width: 100%;
            align-self: stretch;
            min-height: 2.45rem;
            justify-content: center;
        }
}


/* ==========================================================================
   Satisfação — listas compactas no mobile
   ========================================================================== */

.satisfaction-desktop-table {
    display: block;
}

.satisfaction-mobile-list {
    display: none;
}

@media (max-width: 599px) {
    .satisfaction-desktop-table {
        display: none !important;
    }

    .satisfaction-mobile-list {
        display: grid !important;
        gap: .62rem;
        padding: .68rem;
    }

    .satisfaction-mobile-card {
        overflow: hidden;
        border: 1px solid var(--clara-border);
        border-radius: 12px;
        background: #fff;
        box-shadow: 0 3px 12px rgba(6,29,34,.03);
    }

    .satisfaction-mobile-card-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: .7rem;
        padding: .72rem;
    }

    .satisfaction-mobile-person {
        display: flex;
        align-items: center;
        min-width: 0;
        gap: .55rem;
    }

        .satisfaction-mobile-person > div {
            min-width: 0;
        }

    .satisfaction-mobile-avatar {
        display: grid;
        flex: 0 0 31px;
        width: 31px;
        height: 31px;
        place-items: center;
        border-radius: 50%;
        background: #e5f7f4;
        color: #078f82;
        font-size: .58rem;
        font-weight: 800;
    }

    .satisfaction-mobile-person strong {
        display: block;
        color: var(--clara-text);
        font-size: .75rem;
        line-height: 1.22;
        overflow-wrap: anywhere;
    }

    .satisfaction-mobile-person > div > span {
        display: block;
        margin-top: .13rem;
        color: #708689;
        font-size: .6rem;
        line-height: 1.25;
        overflow-wrap: anywhere;
    }

    .satisfaction-mobile-score-wrap {
        display: flex;
        flex: 0 0 auto;
        align-items: center;
        gap: .24rem;
    }

    .satisfaction-doctor-mobile-card .satisfaction-score-badge,
    .satisfaction-response-mobile-card .satisfaction-score-badge {
        flex: 0 0 auto;
        min-width: 31px;
        text-align: center;
    }

    .satisfaction-response-meta {
        display: flex;
        align-items: center;
        gap: .8rem;
        padding: .42rem .72rem;
        border-top: 1px solid #edf3f2;
        border-bottom: 1px solid #edf3f2;
        background: #f8fbfa;
        color: #607a7e;
        font-size: .59rem;
    }

        .satisfaction-response-meta > span {
            display: inline-flex;
            align-items: center;
            gap: .26rem;
            white-space: nowrap;
        }

        .satisfaction-response-meta .mud-icon-root {
            width: 13px !important;
            height: 13px !important;
            font-size: 13px !important;
            color: #0a9d8f;
        }

    .satisfaction-response-comment {
        padding: .58rem .72rem .68rem;
    }

    .satisfaction-mobile-kicker {
        display: block;
        margin-bottom: .18rem;
        color: #789093;
        font-size: .54rem;
        font-weight: 800;
        letter-spacing: .04em;
        text-transform: uppercase;
    }

    .satisfaction-response-comment p {
        margin: 0;
        color: #405f63;
        font-size: .67rem;
        line-height: 1.42;
        overflow-wrap: anywhere;
    }

    /* Mantém os KPIs atuais: já funcionam bem empilhados no telefone. */
    .satisfaction-kpi-grid {
        margin-bottom: .75rem;
    }
}

@media (max-width: 360px) {
    .satisfaction-mobile-card-head {
        gap: .45rem;
    }

    .satisfaction-response-meta {
        gap: .5rem;
        flex-wrap: wrap;
    }
}


/* ==========================================================================
   Usuários — cards compactos no mobile
   ========================================================================== */

.users-desktop-table {
    display: block;
}

.users-mobile-list {
    display: none;
}

@media (max-width: 599px) {
    .users-desktop-table {
        display: none !important;
    }

    .users-mobile-list {
        display: grid !important;
        gap: .65rem;
        padding: .7rem;
    }

    .users-mobile-card {
        overflow: hidden;
        border: 1px solid var(--clara-border);
        border-radius: 12px;
        background: #fff;
        box-shadow: 0 3px 12px rgba(6,29,34,.03);
    }

    .users-mobile-card-head {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: .65rem;
        padding: .72rem;
    }

    .users-mobile-identity {
        display: flex;
        align-items: center;
        min-width: 0;
        gap: .55rem;
    }

        .users-mobile-identity > div {
            min-width: 0;
        }

        .users-mobile-identity strong {
            display: block;
            margin-bottom: .22rem;
            color: var(--clara-text);
            font-size: .78rem;
            line-height: 1.2;
            overflow-wrap: anywhere;
        }

        .users-mobile-identity .users-role-badge {
            display: inline-flex;
            max-width: 100%;
            font-size: .56rem;
            line-height: 1.2;
        }

    .users-mobile-email {
        display: grid;
        grid-template-columns: 58px minmax(0, 1fr);
        align-items: start;
        gap: .5rem;
        padding: .48rem .72rem;
        border-top: 1px solid #edf3f2;
        border-bottom: 1px solid #edf3f2;
        background: #f8fbfa;
    }

        .users-mobile-email span,
        .users-mobile-meta span {
            color: #789093;
            font-size: .55rem;
            font-weight: 800;
            letter-spacing: .035em;
            text-transform: uppercase;
        }

        .users-mobile-email strong {
            color: #35565a;
            font-size: .66rem;
            font-weight: 600;
            line-height: 1.35;
            overflow-wrap: anywhere;
        }

    .users-mobile-meta {
        display: grid;
        grid-template-columns: 1fr 1fr;
        margin: .62rem .72rem;
        overflow: hidden;
        border: 1px solid #edf3f2;
        border-radius: 9px;
        background: #fff;
    }

        .users-mobile-meta > div {
            min-width: 0;
            padding: .5rem .58rem;
        }

            .users-mobile-meta > div + div {
                border-left: 1px solid #e7efee;
            }

        .users-mobile-meta strong,
        .users-mobile-meta small {
            display: block;
        }

        .users-mobile-meta strong {
            margin-top: .14rem;
            color: #35565a;
            font-size: .67rem;
            line-height: 1.25;
        }

        .users-mobile-meta small {
            margin-top: .08rem;
            color: #789093;
            font-size: .57rem;
        }

    .users-mobile-never {
        color: #789093 !important;
        font-weight: 500 !important;
    }

    .users-mobile-actions {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: .05rem;
        padding: .34rem .38rem .4rem;
        border-top: 1px solid #edf3f2;
    }

        .users-mobile-actions .mud-button-root {
            min-width: auto !important;
            padding-inline: .38rem !important;
            border-radius: 8px !important;
            font-size: .64rem !important;
            font-weight: 700 !important;
        }

            .users-mobile-actions .mud-button-root:disabled {
                opacity: .42;
            }
}

@media (max-width: 360px) {
    .users-mobile-card-head {
        gap: .4rem;
    }

    .users-mobile-actions {
        justify-content: flex-start;
        flex-wrap: wrap;
    }
}


/* ==========================================================================
   Políticas da clínica — navegação e Base de conhecimento no mobile
   ========================================================================== */

.policies-mobile-selector,
.policies-knowledge-mobile {
    display: none;
}

.policies-knowledge-desktop {
    display: block;
}

.policies-knowledge-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.policies-knowledge-intro {
    min-width: 0;
    flex: 1 1 auto;
}

.policies-knowledge-add {
    flex: 0 0 auto;
}

@media (max-width: 599px) {
    /* A navegação desktop de duas linhas não deve aparecer no telefone. */
    .policies-nav {
        display: none !important;
    }

    /*
       O MudTabs continua controlando/renderizando o conteúdo e o índice ativo,
       mas o tabbar visual desktop é escondido. A navegação mobile abaixo assume
       exclusivamente essa função.
    */
    .policies-tabs > .mud-tabs-tabbar,
    .policies-tabs .mud-tabs-tabbar {
        display: none !important;
    }

    .policies-mobile-selector {
        display: grid !important;
        grid-template-columns: 34px minmax(0, 1fr) 34px;
        align-items: stretch;
        gap: .35rem;
        margin: .55rem 0 .72rem;
        padding: .28rem;
        border: 1px solid var(--clara-border);
        border-radius: 11px;
        background: #fff;
        box-shadow: 0 3px 12px rgba(6,29,34,.025);
    }

    .policies-mobile-selector-arrow {
        display: grid;
        width: 34px;
        min-width: 34px;
        height: 38px;
        padding: 0;
        place-items: center;
        border: 0;
        border-radius: 8px;
        background: #f1f7f6;
        color: #35565a;
        cursor: pointer;
    }

        .policies-mobile-selector-arrow:disabled {
            opacity: .28;
            cursor: default;
        }

        .policies-mobile-selector-arrow:not(:disabled):active {
            background: #e2f3f0;
        }

    .policies-mobile-selector-current {
        display: flex;
        min-width: 0;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: .2rem .45rem;
        text-align: center;
    }

        .policies-mobile-selector-current span {
            margin-bottom: .05rem;
            color: #789093;
            font-size: .5rem;
            font-weight: 800;
            letter-spacing: .055em;
            line-height: 1.1;
            text-transform: uppercase;
        }

        .policies-mobile-selector-current strong {
            max-width: 100%;
            color: #07998b;
            font-size: .69rem;
            line-height: 1.2;
            overflow-wrap: anywhere;
        }

    /* Remove o aspecto de container/tab desktop que sobra ao esconder o tabbar. */
    .policies-tabs,
    .policies-tabs-content,
    .policies-tabs .mud-tabs-panels,
    .policies-tabs .mud-tab-panels {
        margin-top: 0 !important;
        border-top: 0 !important;
    }

        .policies-tabs .mud-tabs-panels,
        .policies-tabs .mud-tab-panels {
            padding-top: 0 !important;
        }

    /* Formulários: mantêm largura e legibilidade, sem compactação agressiva. */
    .policies-tab-body {
        padding-top: .15rem !important;
    }

    .policies-scope-card {
        border-radius: 11px !important;
    }

    /* Base de conhecimento */
    .policies-knowledge-header {
        display: flex !important;
        flex-direction: column;
        align-items: stretch !important;
        gap: .65rem !important;
    }

    .policies-knowledge-intro {
        width: 100%;
        font-size: .66rem !important;
        line-height: 1.4 !important;
    }

    .policies-knowledge-add {
        width: 100% !important;
        align-self: stretch;
        min-height: 2.35rem;
        justify-content: center;
    }

    .policies-knowledge-desktop {
        display: none !important;
    }

    .policies-knowledge-mobile {
        display: grid !important;
        gap: .62rem;
    }

    .policies-knowledge-card {
        overflow: hidden;
        border: 1px solid var(--clara-border);
        border-radius: 11px;
        background: #fff;
        box-shadow: 0 3px 12px rgba(6,29,34,.025);
    }

    .policies-knowledge-card-head {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: .6rem;
        padding: .68rem .72rem .55rem;
    }

        .policies-knowledge-card-head > div {
            min-width: 0;
        }

        .policies-knowledge-card-head strong {
            display: block;
            color: var(--clara-text);
            font-size: .74rem;
            line-height: 1.25;
            overflow-wrap: anywhere;
        }

    .policies-knowledge-kicker {
        display: block;
        margin-bottom: .14rem;
        color: #789093;
        font-size: .5rem;
        font-weight: 800;
        letter-spacing: .045em;
        line-height: 1.1;
        text-transform: uppercase;
    }

    .policies-knowledge-status {
        display: inline-flex;
        flex: 0 0 auto;
        align-items: center;
        gap: .25rem;
        padding: .18rem .42rem;
        border-radius: 999px;
        font-size: .55rem;
        font-weight: 800;
        line-height: 1.15;
    }

        .policies-knowledge-status > span {
            width: 5px;
            height: 5px;
            border-radius: 50%;
        }

        .policies-knowledge-status.is-active {
            background: #e6f7ed;
            color: #14844c;
        }

            .policies-knowledge-status.is-active > span {
                background: #16a05b;
            }

        .policies-knowledge-status.is-inactive {
            background: #edf2f2;
            color: #667c7f;
        }

            .policies-knowledge-status.is-inactive > span {
                background: #7d9093;
            }

    .policies-knowledge-answer {
        margin: 0 .72rem;
        padding: .52rem .58rem;
        border-radius: 8px;
        background: #f5f9f8;
    }

        .policies-knowledge-answer p {
            margin: 0;
            color: #405f63;
            font-size: .65rem;
            line-height: 1.42;
            overflow-wrap: anywhere;
        }

    .policies-knowledge-actions {
        display: flex;
        justify-content: flex-end;
        padding: .25rem .38rem .34rem;
    }

        .policies-knowledge-actions .mud-button-root {
            min-width: auto !important;
            padding-inline: .4rem !important;
            font-size: .61rem !important;
            font-weight: 700 !important;
        }
}


/* ==========================================================================
   Especialidades — cards compactos no mobile
   ========================================================================== */

.specialties-desktop-table {
    display: block;
}

.specialties-mobile-list {
    display: none;
}

@media (max-width: 599px) {
    .specialties-desktop-table {
        display: none !important;
    }

    .specialties-mobile-list {
        display: grid !important;
        gap: .62rem;
        padding: .68rem;
    }

    .specialties-mobile-card {
        overflow: hidden;
        border: 1px solid var(--clara-border);
        border-radius: 11px;
        background: #fff;
        box-shadow: 0 3px 12px rgba(6,29,34,.025);
    }

    .specialties-mobile-card-head {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: .6rem;
        padding: .68rem .72rem .56rem;
    }

    .specialties-mobile-identity {
        display: flex;
        align-items: center;
        min-width: 0;
        gap: .52rem;
    }

        .specialties-mobile-identity > div {
            min-width: 0;
        }

    .specialties-mobile-avatar {
        display: grid;
        flex: 0 0 30px;
        width: 30px;
        height: 30px;
        place-items: center;
        border-radius: 50%;
        background: #e5f7f4;
        color: #078f82;
        font-size: .56rem;
        font-weight: 800;
    }

    .specialties-mobile-identity strong {
        display: block;
        color: var(--clara-text);
        font-size: .74rem;
        line-height: 1.22;
        overflow-wrap: anywhere;
    }

    .specialties-mobile-identity > div > span {
        display: block;
        margin-top: .14rem;
        color: #708689;
        font-size: .58rem;
        line-height: 1.22;
    }

    .specialties-mobile-status {
        display: inline-flex;
        flex: 0 0 auto;
        align-items: center;
        gap: .25rem;
        padding: .18rem .42rem;
        border-radius: 999px;
        font-size: .55rem;
        font-weight: 800;
        line-height: 1.15;
    }

        .specialties-mobile-status > span {
            width: 5px;
            height: 5px;
            border-radius: 50%;
        }

        .specialties-mobile-status.is-active {
            background: #e6f7ed;
            color: #14844c;
        }

            .specialties-mobile-status.is-active > span {
                background: #16a05b;
            }

        .specialties-mobile-status.is-inactive {
            background: #edf2f2;
            color: #667c7f;
        }

            .specialties-mobile-status.is-inactive > span {
                background: #7d9093;
            }

    .specialties-mobile-actions {
        display: flex;
        justify-content: flex-end;
        padding: .26rem .36rem .34rem;
        border-top: 1px solid #edf3f2;
    }

        .specialties-mobile-actions .mud-button-root {
            min-width: auto !important;
            padding-inline: .4rem !important;
            border-radius: 8px !important;
            font-size: .61rem !important;
            font-weight: 700 !important;
        }
}


/* ==========================================================================
   Cancelar agendamentos — cards selecionáveis para consultas futuras no mobile
   ========================================================================== */

.cancellations-future-desktop {
    display: block;
}

.cancellations-future-mobile {
    display: none;
}

@media (max-width: 599px) {
    .cancellations-future-desktop {
        display: none !important;
    }

    .cancellations-future-mobile {
        display: grid !important;
        gap: .55rem;
        padding: .65rem;
    }

    .cancellations-mobile-appointment {
        display: grid;
        grid-template-columns: 24px minmax(0, 1fr);
        gap: .55rem;
        width: 100%;
        padding: .62rem;
        border: 1px solid var(--clara-border);
        border-radius: 11px;
        background: #fff;
        color: inherit;
        font: inherit;
        text-align: left;
        cursor: pointer;
        box-shadow: 0 3px 12px rgba(6,29,34,.02);
    }

        .cancellations-mobile-appointment.is-selected {
            border-color: #16b8a8;
            background: #f1fbf9;
            box-shadow: 0 0 0 1px rgba(22,184,168,.10);
        }

    .cancellations-mobile-check {
        display: grid;
        width: 22px;
        height: 22px;
        margin-top: .02rem;
        place-items: center;
        border: 1.5px solid #9fb2b4;
        border-radius: 6px;
        background: #fff;
        color: #fff;
    }

    .cancellations-mobile-appointment.is-selected .cancellations-mobile-check {
        border-color: #12aa9b;
        background: #12aa9b;
    }

    .cancellations-mobile-check .mud-icon-root {
        font-size: .88rem !important;
    }

    .cancellations-mobile-main {
        display: block;
        min-width: 0;
    }

    .cancellations-mobile-topline {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: .5rem;
        margin-bottom: .34rem;
    }

    .cancellations-mobile-main > strong {
        display: block;
        color: var(--clara-text);
        font-size: .73rem;
        line-height: 1.25;
        overflow-wrap: anywhere;
    }

    .cancellations-mobile-service {
        display: block;
        margin-top: .12rem;
        color: #708689;
        font-size: .59rem;
        line-height: 1.25;
    }

    .cancellations-future-mobile .cancellations-time-badge,
    .cancellations-future-mobile .cancellations-payment-badge {
        font-size: .56rem !important;
    }

    .cancellations-actions-bar {
        gap: .6rem !important;
        padding: .65rem !important;
    }

    .cancellations-actions {
        display: grid !important;
        grid-template-columns: 1fr !important;
        width: 100%;
        gap: .45rem !important;
    }

        .cancellations-actions .mud-button-root {
            width: 100% !important;
            min-height: 2.3rem;
            font-size: .62rem !important;
        }
}


/* ==========================================================================
   Pacientes — restaura cards mobile já existentes no Patients.razor
   ========================================================================== */

.patients-desktop-table {
    display: block;
}

.patients-mobile-list {
    display: none;
}

@media (max-width: 599px) {
    .patients-desktop-table {
        display: none !important;
    }

    .patients-mobile-list {
        display: grid !important;
        gap: .62rem;
        padding: .68rem;
    }

    .patients-mobile-card {
        overflow: hidden;
        border: 1px solid var(--clara-border);
        border-radius: 11px;
        background: #fff;
        box-shadow: 0 3px 12px rgba(6,29,34,.025);
    }

    .patients-mobile-card-head {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: .6rem;
        padding: .68rem .72rem .55rem;
        border-bottom: 1px solid #edf3f2;
    }

    .patients-mobile-identity {
        display: flex;
        align-items: center;
        min-width: 0;
        gap: .5rem;
    }

        .patients-mobile-identity > div {
            min-width: 0;
        }

    .patients-mobile-avatar {
        flex: 0 0 30px;
        width: 30px;
        height: 30px;
    }

    .patients-mobile-name {
        display: block;
        color: var(--clara-text);
        font-size: .72rem;
        line-height: 1.22;
        overflow-wrap: anywhere;
    }

    .patients-mobile-meta {
        display: block;
        margin-top: .12rem;
        color: #7a9093;
        font-size: .54rem;
        line-height: 1.2;
    }

    .patients-mobile-card-head .patients-private-badge,
    .patients-mobile-card-head .patients-insurance {
        flex: 0 0 auto;
    }

    .patients-mobile-card-head .patients-insurance {
        align-items: flex-end;
    }

    .patients-mobile-card-head .patients-insurance-name,
    .patients-mobile-card-head .patients-private-badge,
    .patients-mobile-card-head .patients-insurance-status {
        font-size: .53rem !important;
    }

    .patients-mobile-fields {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: .15rem .72rem 0;
    }

    .patients-mobile-field {
        min-width: 0;
        padding: .5rem .25rem .48rem 0;
        border-bottom: 1px solid #edf3f2;
    }

        .patients-mobile-field:nth-child(odd) {
            padding-right: .55rem;
            border-right: 1px solid #edf3f2;
        }

        .patients-mobile-field:nth-child(even) {
            padding-left: .55rem;
        }

        .patients-mobile-field span {
            display: block;
            margin-bottom: .15rem;
            color: #789093;
            font-size: .49rem;
            font-weight: 800;
            letter-spacing: .035em;
            line-height: 1.1;
            text-transform: uppercase;
        }

        .patients-mobile-field strong {
            display: block;
            color: #29494d;
            font-size: .63rem;
            font-weight: 700;
            line-height: 1.25;
            overflow-wrap: anywhere;
        }

    .patients-mobile-actions {
        display: flex;
        justify-content: flex-end;
        align-items: center;
        gap: .2rem;
        padding: .27rem .36rem .34rem;
    }

        .patients-mobile-actions .mud-button-root {
            min-width: auto !important;
            padding-inline: .38rem !important;
            font-size: .59rem !important;
            font-weight: 700 !important;
        }

        .patients-mobile-actions .mud-button-start-icon {
            margin-right: .2rem !important;
        }
}
