/* Identidade AppNow: extensão dos tokens do Good/Bootstrap. Um único data-bs-theme. */
.vdp-anexo-imagem { display: block; max-width: 100%; max-height: 260px; object-fit: contain; }
.vdp-anexo-audio { display: block; width: 100%; max-width: 100%; }
:root, [data-bs-theme="light"] {
    color-scheme: light;
    --bs-app-bg-color: #f8fafc;
    --bs-body-bg: #ffffff;
    --bs-body-bg-rgb: 255, 255, 255;
    --bs-body-color: #0f172a;
    --bs-body-color-rgb: 15, 23, 42;
    --bs-heading-color: #0f172a;
    --bs-text-gray-900: #0f172a;
    --bs-text-gray-800: #1e293b;
    --bs-text-gray-700: #475569;
    --bs-text-gray-600: #64748b;
    --bs-text-gray-500: #64748b;
    --bs-text-muted: #64748b;
    --bs-secondary-color: #64748b;
    --bs-secondary-bg: #f1f5f9;
    --bs-secondary: #e2e8f0;
    --bs-secondary-inverse: #1e293b;
    --bs-gray-100: #f1f5f9;
    --bs-gray-200: #e2e8f0;
    --bs-gray-300: #cbd5e1;
    --bs-gray-400: #94a3b8;
    --bs-gray-500: #64748b;
    --bs-gray-600: #475569;
    --bs-gray-700: #334155;
    --bs-gray-800: #1e293b;
    --bs-gray-900: #0f172a;
    --bs-info: var(--bs-primary);
    --bs-info-rgb: var(--bs-primary-rgb);
    --bs-info-inverse: var(--appnow-on-accent);
    --bs-info-bg-subtle: var(--bs-primary-bg-subtle);
    --bs-info-border-subtle: var(--bs-primary-border-subtle);
    --bs-info-text-emphasis: var(--bs-link-color);
    --bs-border-color: #e2e8f0;
    --bs-border-color-translucent: rgba(15, 23, 42, .12);
    --bs-primary: #14b8a6;
    --bs-primary-rgb: 20, 184, 166;
    --bs-primary-active: #0d9488;
    --bs-primary-light: #e6f8f5;
    --bs-primary-bg-subtle: #e6f8f5;
    --bs-primary-border-subtle: #99dcd3;
    --bs-primary-text-emphasis: #0f766e;
    --bs-primary-inverse: #041a23;
    --bs-text-primary: #0f766e;
    --bs-link-color: #0f766e;
    --bs-link-color-rgb: 15, 118, 110;
    --bs-link-hover-color: #115e59;
    --bs-link-hover-color-rgb: 17, 94, 89;
    --bs-success: #22c55e;
    --bs-success-rgb: 34, 197, 94;
    --bs-success-inverse: #052e16;
    --bs-success-bg-subtle: #dcfce7;
    --bs-success-border-subtle: #bbf7d0;
    --bs-success-text-emphasis: #166534;
    --bs-warning: #f59e0b;
    --bs-warning-rgb: 245, 158, 11;
    --bs-warning-inverse: #422006;
    --bs-warning-bg-subtle: #fef3c7;
    --bs-warning-border-subtle: #fde68a;
    --bs-warning-text-emphasis: #92400e;
    --bs-danger: #ef4444;
    --bs-danger-rgb: 239, 68, 68;
    --bs-danger-inverse: #350b15;
    --bs-danger-bg-subtle: #fef2f2;
    --bs-danger-border-subtle: #fecaca;
    --bs-danger-text-emphasis: #b91c1c;
    --appnow-input-bg: #ffffff;
    --appnow-surface-elevated: #f1f5f9;
    --appnow-card-radius: 12px;
    --appnow-card-shadow: 0 2px 10px rgb(15 23 42 / 3%);
    --appnow-accent-hover: #0d9488;
    --appnow-on-accent: #041a23;
    --appnow-menu-bg: #0b1628;
    --appnow-menu-text: #cbd5e1;
    --appnow-menu-muted: #a8b5c7;
    --appnow-menu-active: #5eead4;
    --appnow-menu-indicator: #2dd4bf;
    --appnow-menu-active-bg: rgba(20, 184, 166, .16);
    --appnow-menu-hover-bg: rgba(255, 255, 255, .05);
    --appnow-menu-border: #23364c;
    --appnow-header-bg: #ffffff;
    --appnow-brand-navy: #0f172a;
    --appnow-on-navy: #f8fafc;
    --cor-fundo: var(--bs-app-bg-color);
    --cor-superficie: var(--bs-body-bg);
    --cor-texto: var(--bs-body-color);
    --cor-suave: var(--bs-text-gray-600);
    --cor-borda: var(--bs-border-color);
    --cor-destaque: var(--bs-primary);
}
[data-bs-theme="dark"] {
    color-scheme: dark;
    --bs-app-bg-color: #07111f;
    --bs-body-bg: #0f1d2e;
    --bs-body-bg-rgb: 15, 29, 46;
    --bs-body-color: #f8fafc;
    --bs-body-color-rgb: 248, 250, 252;
    --bs-heading-color: #f8fafc;
    --bs-text-gray-900: #f8fafc;
    --bs-text-gray-800: #e2e8f0;
    --bs-text-gray-700: #cbd5e1;
    --bs-text-gray-600: #a8b5c7;
    --bs-text-gray-500: #96a7bc;
    --bs-text-muted: #96a7bc;
    --bs-secondary-color: #a8b5c7;
    --bs-secondary-bg: #132338;
    --bs-secondary: #29405a;
    --bs-secondary-inverse: #e2e8f0;
    --bs-gray-100: #132338;
    --bs-gray-200: #1b3048;
    --bs-gray-300: #29405a;
    --bs-gray-400: #718096;
    --bs-gray-500: #96a7bc;
    --bs-gray-600: #a8b5c7;
    --bs-gray-700: #cbd5e1;
    --bs-gray-800: #e2e8f0;
    --bs-gray-900: #f8fafc;
    --bs-border-color: #29405a;
    --bs-border-color-translucent: rgba(168, 181, 199, .2);
    --bs-primary: #2dd4bf;
    --bs-primary-rgb: 45, 212, 191;
    --bs-primary-active: #14b8a6;
    --bs-primary-light: rgba(20, 184, 166, .12);
    --bs-primary-bg-subtle: rgba(20, 184, 166, .12);
    --bs-primary-border-subtle: #245b60;
    --bs-primary-text-emphasis: #5eead4;
    --bs-primary-inverse: #041a23;
    --bs-text-primary: #5eead4;
    --bs-link-color: #5eead4;
    --bs-link-color-rgb: 94, 234, 212;
    --bs-link-hover-color: #99f6e4;
    --bs-link-hover-color-rgb: 153, 246, 228;
    --bs-success: #4ade80;
    --bs-success-rgb: 74, 222, 128;
    --bs-success-bg-subtle: #0b3424;
    --bs-success-border-subtle: #216344;
    --bs-success-text-emphasis: #86efac;
    --bs-warning: #fbbf24;
    --bs-warning-rgb: 251, 191, 36;
    --bs-warning-bg-subtle: #382b12;
    --bs-warning-border-subtle: #75561b;
    --bs-warning-text-emphasis: #fde68a;
    --bs-danger: #fb7185;
    --bs-danger-rgb: 251, 113, 133;
    --bs-danger-bg-subtle: #3b1d2a;
    --bs-danger-border-subtle: #793349;
    --bs-danger-text-emphasis: #fda4af;
    --appnow-input-bg: #0b1828;
    --appnow-surface-elevated: #132338;
    --appnow-card-shadow: none;
    --appnow-accent-hover: #14b8a6;
    --appnow-menu-bg: #081525;
    --appnow-header-bg: #0b1728;
}

/* Ajustes do tema Good para a identidade e os componentes do AppNow. */
body.appnow-good {
    --cor-fundo: var(--bs-app-bg-color);
    --cor-superficie: var(--bs-body-bg);
    --cor-texto: var(--bs-text-gray-900);
    --cor-suave: var(--bs-text-gray-600);
    --cor-borda: var(--bs-border-color);
    --cor-destaque: var(--bs-primary);
    --cor-menu: var(--bs-body-bg);
    font-family: var(--bs-font-sans-serif);
    color: var(--bs-body-color);
    background: var(--bs-body-bg);
}

body.appnow-good .app-shell {
    grid-template-columns: 260px minmax(0, 1fr);
    background: var(--bs-app-bg-color);
}

body.appnow-good .menu-aplicacao {
    padding: 28px 18px 22px;
    background: var(--bs-body-bg);
    color: var(--bs-text-gray-700);
    border-right: 1px solid var(--bs-border-color);
    box-shadow: 0 0 24px rgb(33 37 41 / 4%);
}

body.appnow-good .marca-menu,
body.appnow-good .marca-menu:hover {
    margin: 0 0 28px 6px;
    color: var(--bs-text-gray-900);
}

body.appnow-good .menu-legenda {
    margin: 18px 12px 12px;
    color: var(--bs-text-muted);
    font-size: .68rem;
    letter-spacing: .08em;
}

body.appnow-good .navegacao-principal { gap: 3px; }
body.appnow-good .menu-legenda { margin: 17px 12px 6px; }
body.appnow-good .menu-legenda:not(:first-child) { margin-top: 19px; }

body.appnow-good .nav-item {
    min-height: 44px;
    padding: 10px 12px;
    border-radius: 8px;
    color: var(--bs-text-gray-700);
    font-size: .9rem;
    font-weight: 600;
}

body.appnow-good .nav-item svg { width: 20px; height: 20px; }
body.appnow-good .nav-item:hover { color: var(--bs-link-color); background: var(--bs-gray-100); }
body.appnow-good .nav-item.ativo { color: var(--bs-link-color); background: var(--bs-primary-bg-subtle); }

/* Tabelas seguem a composição do Good: linhas tracejadas, cabeçalho discreto e conteúdo alinhado ao centro. */
body.appnow-good .conteudo table {
    width: 100%;
    min-width: max-content;
    margin: 0;
    border-collapse: separate;
    border-spacing: 0;
    color: var(--bs-text-gray-700);
    font-size: .875rem;
    text-align: left;
}
body.appnow-good .conteudo .tabela-rolagem {
    overflow-x: auto;
    border: 1px solid var(--bs-border-color);
    border-radius: 10px;
    background: var(--bs-body-bg);
    box-shadow: 0 1px 3px rgb(33 37 41 / 4%);
}
body.appnow-good .conteudo th {
    padding: 14px 18px;
    border-bottom: 1px dashed var(--bs-border-color);
    background: var(--bs-body-bg);
    color: var(--bs-text-muted);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .045em;
    text-transform: uppercase;
    white-space: nowrap;
}
body.appnow-good .conteudo td {
    padding: 15px 18px;
    border-bottom: 1px dashed var(--bs-border-color);
    color: var(--bs-text-gray-700);
    vertical-align: middle;
}
body.appnow-good .conteudo tbody tr:last-child td { border-bottom: 0; }
body.appnow-good .conteudo tbody tr:hover { background: var(--bs-gray-100); }
body.appnow-good .conteudo td a { padding: 5px 4px; color: var(--bs-link-color); font-weight: 600; }
body.appnow-good .conteudo nav[aria-label*="Páginas"] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin: 12px 0 24px;
    color: var(--bs-text-gray-600);
    font-size: .84rem;
}
body.appnow-good .conteudo nav[aria-label*="Páginas"] a {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    padding: 7px 12px;
    border: 1px solid var(--bs-border-color);
    border-radius: 7px;
    color: var(--bs-text-gray-700);
    text-decoration: none;
}
body.appnow-good .conteudo nav[aria-label*="Páginas"] a:hover { color: var(--bs-link-color); border-color: var(--bs-primary-border-subtle); background: var(--bs-gray-100); }

body.appnow-good .menu-empresa {
    border-top-color: var(--bs-border-color);
}

body.appnow-good .menu-empresa small { color: var(--bs-text-muted); }
body.appnow-good .menu-empresa strong { color: var(--bs-text-gray-800); }

body.appnow-good .app-cabecalho {
    min-height: 76px;
    padding: 14px 32px;
    background: var(--bs-body-bg);
    border-bottom-color: var(--bs-border-color);
    box-shadow: 0 1px 2px rgb(33 37 41 / 2%);
}

body.appnow-good .legenda-empresa { color: var(--bs-text-muted); }
body.appnow-good .empresa-cabecalho strong { color: var(--bs-text-gray-900); }
body.appnow-good .avatar { color: var(--bs-link-color); background: var(--bs-primary-bg-subtle); }

body.appnow-good .conta-opcoes {
    border-color: var(--bs-border-color);
    border-radius: 10px;
    box-shadow: 0 8px 24px rgb(33 37 41 / 10%);
}

body.appnow-good .conteudo {
    max-width: none;
    padding: 32px;
}

body.appnow-good .rodape-aplicacao {
    padding: 12px 32px 24px;
    color: var(--bs-text-muted);
}

body.appnow-good .pagina-agenda-titulo {
    margin: 0 0 8px;
    color: var(--bs-text-gray-900);
    font-size: clamp(1.5rem, 2.5vw, 1.9rem);
    font-weight: 700;
    letter-spacing: -.035em;
}

body.appnow-good .pagina-agenda-descricao { margin: 0; color: var(--bs-text-gray-600); }
body.appnow-good .cartao-filtros-agenda { margin: 22px 0; }
body.appnow-good .cartao-filtros-agenda .card-body { padding: 24px; }
body.appnow-good .filtro-agenda { gap: 18px; }
body.appnow-good .filtro-agenda > div { flex: 1 1 190px; }
body.appnow-good .filtro-agenda label:not(.form-check) { margin: 0 0 8px; color: var(--bs-text-gray-800); font-size: .82rem; }
body.appnow-good .filtro-agenda .form-control,
body.appnow-good .filtro-agenda .form-select { min-height: 44px; border-color: var(--bs-border-color); border-radius: 7px; }
body.appnow-good .filtro-agenda .form-check { min-height: 44px; display: flex; align-items: center; gap: 9px; margin: 0; }
body.appnow-good .filtro-agenda .form-check-input { width: 18px; height: 18px; margin: 0; }
body.appnow-good .filtro-agenda .btn { min-height: 44px; margin: 0; border-radius: 7px; }
body.appnow-good .acoes-agenda { display: flex; flex-wrap: wrap; gap: 10px; }
body.appnow-good .acoes-agenda .btn { min-height: 42px; }
body.appnow-good .agenda-semana-resumo { color: var(--bs-text-gray-600); font-size: .86rem; }
body.appnow-good .grade-semana { gap: 16px; }
body.appnow-good .dia-semana { padding: 0; overflow: hidden; border-color: var(--bs-border-color); background: var(--bs-body-bg); box-shadow: 0 1px 3px rgb(33 37 41 / 4%); }
body.appnow-good .dia-semana > h2 { margin: 0; padding: 15px 14px; border-bottom: 1px solid var(--bs-border-color); color: var(--bs-text-gray-800); font-size: .78rem; letter-spacing: .04em; }
body.appnow-good .dia-semana > h2 span { color: var(--bs-text-muted); font-size: .8rem; }
body.appnow-good .dia-semana > .ajuda { padding: 0 14px 14px; }
body.appnow-good .item-semana { padding: 12px; border-color: var(--bs-border-color); box-shadow: 0 1px 2px rgb(33 37 41 / 3%); }
body.appnow-good .item-semana .sobretitulo { color: var(--bs-text-gray-600); font-size: .66rem; font-weight: 700; }
body.appnow-good .item-semana h3 { color: var(--bs-text-gray-800); font-size: .86rem; }
body.appnow-good .item-semana p { color: var(--bs-text-gray-600); font-size: .78rem; }
body.appnow-good .item-semana a { color: var(--bs-link-color); font-weight: 600; }
body.appnow-good .item-semana a:hover { color: var(--bs-link-hover-color); }
body.appnow-good .grade-semana .dia-semana { min-height: 130px; }

body.appnow-good .agenda-controles-semana { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px; }
body.appnow-good .agenda-alternador { display: inline-flex; padding: 4px; gap: 4px; border: 1px solid var(--bs-border-color); border-radius: 9px; background: var(--bs-body-bg); }
body.appnow-good .agenda-alternador .btn { min-height: 40px; border-radius: 7px; }
body.appnow-good .kanban-agenda { display: grid; grid-template-columns: repeat(4, minmax(245px, 1fr)); gap: 16px; margin: 20px 0 26px; padding-bottom: 12px; overflow-x: auto; align-items: start; }
body.appnow-good .kanban-coluna { min-height: 300px; overflow: hidden; border: 1px solid var(--bs-border-color); border-radius: 10px; background: var(--bs-gray-100); }
body.appnow-good .kanban-cabecalho { display: flex; justify-content: space-between; align-items: center; padding: 15px 16px; border-bottom: 1px solid var(--bs-border-color); background: var(--bs-body-bg); }
body.appnow-good .kanban-cabecalho h2 { display: flex; align-items: center; gap: 9px; margin: 0; color: var(--bs-text-gray-800); font-size: .88rem; font-weight: 700; }
body.appnow-good .kanban-indicador { width: 9px; height: 9px; border-radius: 50%; background: var(--bs-link-color); }
body.appnow-good .kanban-concluido { background: var(--bs-success); }
body.appnow-good .kanban-falta { background: var(--bs-warning); }
body.appnow-good .kanban-cancelado { background: var(--bs-danger); }
body.appnow-good .kanban-contagem { display: grid; min-width: 26px; height: 26px; place-items: center; border-radius: 7px; color: var(--bs-text-gray-600); background: var(--bs-gray-100); font-size: .75rem; font-weight: 700; }
body.appnow-good .kanban-cartoes { display: grid; gap: 10px; padding: 11px; }
body.appnow-good .kanban-cartao { border: 1px solid var(--bs-border-color); border-radius: 8px; background: var(--bs-body-bg); box-shadow: 0 2px 5px rgb(33 37 41 / 4%); }
body.appnow-good .kanban-cartao-corpo { padding: 14px; }
body.appnow-good .kanban-horario { margin: 0 0 8px; color: var(--bs-text-gray-600); font-size: .72rem; font-weight: 700; text-transform: capitalize; }
body.appnow-good .kanban-cartao h3 { margin: 0 0 6px; color: var(--bs-text-gray-800); font-size: .92rem; font-weight: 700; overflow-wrap: anywhere; }
body.appnow-good .kanban-profissional, body.appnow-good .kanban-servico { margin: 0 0 6px; color: var(--bs-text-gray-600); font-size: .78rem; }
body.appnow-good .kanban-detalhes { margin-top: 12px; }
body.appnow-good .kanban-vazio { margin: 0; padding: 18px 10px; color: var(--bs-text-muted); text-align: center; font-size: .78rem; }
body.appnow-good .agenda-modal { width: min(850px, calc(100vw - 32px)); max-width: 850px; max-height: min(90dvh, 900px); padding: 0; overflow: hidden; border: 1px solid var(--bs-border-color); border-radius: 12px; color: var(--bs-text-gray-900); background: var(--bs-body-bg); box-shadow: 0 24px 80px rgb(15 23 42 / 30%); }
body.appnow-good .agenda-modal::backdrop { background: rgb(15 23 42 / 58%); backdrop-filter: blur(2px); }
body.appnow-good .agenda-modal-cabecalho { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 22px; border-bottom: 1px solid var(--bs-border-color); background: var(--bs-body-bg); }
body.appnow-good .agenda-modal-cabecalho h2 { margin: 0; color: var(--bs-text-gray-900); font-size: 1rem; font-weight: 700; }
body.appnow-good .agenda-modal-fechar { display: grid; width: 36px; height: 36px; place-items: center; border: 0; border-radius: 8px; color: var(--bs-text-gray-600); background: var(--bs-gray-100); font-size: 1.5rem; line-height: 1; }
body.appnow-good .agenda-modal-fechar:hover { color: var(--bs-text-gray-900); background: var(--bs-border-color); }
body.appnow-good .agenda-modal-conteudo { max-height: calc(90dvh - 70px); padding: 24px; overflow-y: auto; overscroll-behavior: contain; }
body.appnow-good .agenda-modal-conteudo > h1 { margin: 0 0 18px; color: var(--bs-text-gray-900); font-size: 1.4rem; }
body.appnow-good .agenda-modal-conteudo .cartao-vazio,
body.appnow-good .agenda-modal-conteudo .historico-cadastro { margin: 14px 0; }
body.appnow-good .agenda-modal-conteudo form { margin: 14px 0; }
body.appnow-good .agenda-modal-carregando { margin: 0; padding: 28px 0; color: var(--bs-text-gray-600); text-align: center; }
body.appnow-good .agenda-modal-acoes { margin: 14px 0 20px; }
body.appnow-good .agenda-modal-ajuda { color: var(--bs-text-gray-600); font-size: .82rem; }

@media (max-width: 1190px) {
    body.appnow-good .app-shell { grid-template-columns: 230px minmax(0, 1fr); }
    body.appnow-good .conteudo { padding: 28px 24px; }
}

@media (max-width: 760px) {
    body.appnow-good .app-shell { display: block; }
    body.appnow-good .menu-aplicacao {
        padding: 7px max(8px, env(safe-area-inset-right)) max(7px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));
        border-top: 1px solid var(--bs-border-color);
        box-shadow: 0 -4px 16px rgb(33 37 41 / 5%);
    }
    body.appnow-good .nav-item { color: var(--bs-text-gray-600); }
    body.appnow-good .nav-item.ativo { color: var(--bs-link-color); background: var(--bs-primary-bg-subtle); }
    body.appnow-good .app-cabecalho { padding-right: max(18px, env(safe-area-inset-right)); padding-left: max(18px, env(safe-area-inset-left)); }
    body.appnow-good .conteudo { padding: 24px 18px; }
    body.appnow-good .cartao-filtros-agenda .card-body { padding: 18px; }
    body.appnow-good .filtro-agenda > div { flex-basis: 100%; }
    body.appnow-good .agenda-controles-semana { align-items: stretch; }
    body.appnow-good .agenda-alternador { align-self: flex-start; }
    body.appnow-good .agenda-controles-semana > .acoes-agenda { justify-content: space-between; }
    body.appnow-good .kanban-agenda { grid-template-columns: repeat(4, minmax(82vw, 1fr)); gap: 12px; }
    body.appnow-good .agenda-modal-conteudo { padding: 18px; }
    body.appnow-good .agenda-modal-cabecalho { padding: 13px 18px; }
}

/* Seletor claro/escuro no padrão do tema Good. */
.tema-menu { position: relative; flex: 0 0 auto; }
.tema-menu > summary {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    list-style: none;
    border: 1px solid var(--cor-borda);
    border-radius: 10px;
    color: var(--cor-texto);
    background: var(--cor-superficie);
    cursor: pointer;
}
.tema-menu > summary::-webkit-details-marker { display: none; }
.tema-menu > summary:hover { color: var(--cor-destaque); border-color: var(--cor-destaque); }
.tema-menu > summary svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.tema-icone-lua { display: none; }
.tema-opcoes {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 30;
    display: grid;
    width: 190px;
    gap: 4px;
    padding: 7px;
    border: 1px solid var(--cor-borda);
    border-radius: 12px;
    background: var(--cor-superficie);
    box-shadow: 0 12px 32px rgb(33 37 41 / 14%);
}
.tema-opcoes button {
    display: flex;
    justify-content: flex-start;
    min-height: 40px;
    margin: 0;
    padding: 8px 10px;
    border: 0;
    border-radius: 8px;
    color: var(--cor-texto);
    background: transparent;
    font-size: .84rem;
    font-weight: 550;
    text-align: left;
}
.tema-opcoes button:hover,
.tema-opcoes button[aria-pressed="true"] { color: var(--cor-destaque); background: var(--cor-fundo); }
.tema-opcoes button span { width: 23px; color: var(--cor-destaque); font-size: 1.15rem; text-align: center; }
.tema-feedback { margin: 3px 8px 4px; color: var(--bs-danger-text-emphasis); font-size: .75rem; line-height: 1.45; }
.tema-feedback:empty { display: none; }
.appnow-good-header { justify-content: flex-end; }
.appnow-good-header .empresa-cabecalho { margin-right: auto; }
.appnow-good-header .conta-menu { margin-left: 2px; }
.tema-menu-entrada { position: absolute; top: 20px; right: 20px; }

html[data-bs-theme="dark"] {
    color-scheme: dark;
    background: var(--bs-app-bg-color);
}
html[data-bs-theme="dark"] body.appnow-good {
    color: var(--bs-body-color);
    background: var(--bs-body-bg);
}
html[data-bs-theme="dark"] body.appnow-good .app-shell { background: var(--bs-app-bg-color); }
html[data-bs-theme="dark"] body.appnow-good .menu-aplicacao { color: var(--bs-text-gray-700); background: var(--bs-body-bg); border-color: var(--bs-border-color); }
html[data-bs-theme="dark"] body.appnow-good .marca-menu,
html[data-bs-theme="dark"] body.appnow-good .marca-menu:hover,
html[data-bs-theme="dark"] body.appnow-good .menu-empresa strong,
html[data-bs-theme="dark"] body.appnow-good .empresa-cabecalho strong,
html[data-bs-theme="dark"] body.appnow-good .pagina-agenda-titulo,
html[data-bs-theme="dark"] body.appnow-good .dia-semana > h2,
html[data-bs-theme="dark"] body.appnow-good .item-semana h3 { color: var(--bs-text-gray-900); }
html[data-bs-theme="dark"] body.appnow-good .menu-legenda,
html[data-bs-theme="dark"] body.appnow-good .menu-empresa small,
html[data-bs-theme="dark"] body.appnow-good .legenda-empresa,
html[data-bs-theme="dark"] body.appnow-good .pagina-agenda-descricao,
html[data-bs-theme="dark"] body.appnow-good .agenda-semana-resumo,
html[data-bs-theme="dark"] body.appnow-good .item-semana p,
html[data-bs-theme="dark"] body.appnow-good .item-semana .sobretitulo,
html[data-bs-theme="dark"] body.appnow-good .dia-semana > h2 span { color: var(--bs-text-muted); }
html[data-bs-theme="dark"] body.appnow-good .nav-item { color: var(--bs-text-gray-700); }
html[data-bs-theme="dark"] body.appnow-good .nav-item:hover,
html[data-bs-theme="dark"] body.appnow-good .nav-item.ativo { color: var(--bs-primary); background: var(--bs-primary-light); }
html[data-bs-theme="dark"] body.appnow-good .conteudo table,
html[data-bs-theme="dark"] body.appnow-good .conteudo td { color: var(--bs-text-gray-700); }
html[data-bs-theme="dark"] body.appnow-good .conteudo th { color: var(--bs-text-muted); background: var(--bs-gray-100); border-color: var(--bs-border-color); }
html[data-bs-theme="dark"] body.appnow-good .conteudo td { border-color: var(--bs-border-color); }
html[data-bs-theme="dark"] body.appnow-good .conteudo .tabela-rolagem { background: var(--bs-body-bg); border-color: var(--bs-border-color); }
html[data-bs-theme="dark"] body.appnow-good .conteudo tbody tr:hover { background: var(--bs-gray-100); }
html[data-bs-theme="dark"] body.appnow-good .conteudo nav[aria-label*="Páginas"] a { color: var(--bs-text-gray-700); border-color: var(--bs-border-color); }
html[data-bs-theme="dark"] body.appnow-good .menu-empresa,
html[data-bs-theme="dark"] body.appnow-good .app-cabecalho,
html[data-bs-theme="dark"] body.appnow-good .conta-opcoes,
html[data-bs-theme="dark"] body.appnow-good .cartao-filtros-agenda,
html[data-bs-theme="dark"] body.appnow-good .dia-semana,
html[data-bs-theme="dark"] body.appnow-good .item-semana,
html[data-bs-theme="dark"] body.appnow-good .tema-menu > summary,
html[data-bs-theme="dark"] body.appnow-good .tema-opcoes { border-color: var(--bs-border-color); background-color: var(--bs-body-bg); }
html[data-bs-theme="dark"] body.appnow-good .app-cabecalho { box-shadow: 0 1px 2px rgb(0 0 0 / 20%); }
html[data-bs-theme="dark"] body.appnow-good .avatar { color: var(--bs-primary); background: var(--bs-primary-bg-subtle); }
html[data-bs-theme="dark"] body.appnow-good .conta-opcoes a,
html[data-bs-theme="dark"] body.appnow-good .botao-sair { color: var(--bs-text-gray-800); }
html[data-bs-theme="dark"] body.appnow-good .conta-opcoes a:hover { background: var(--bs-gray-100); }
html[data-bs-theme="dark"] body.appnow-good .conteudo > form,
html[data-bs-theme="dark"] body.appnow-good .tabela-rolagem,
html[data-bs-theme="dark"] body.appnow-good .cartao-resumo,
html[data-bs-theme="dark"] body.appnow-good .cartao-vazio,
html[data-bs-theme="dark"] body.appnow-good .cartao-compromisso,
html[data-bs-theme="dark"] body.appnow-good .auth-card { color: var(--bs-text-gray-900); border-color: var(--bs-border-color); background: var(--bs-body-bg); }
html[data-bs-theme="dark"] body.appnow-good .cartao-resumo:hover { border-color: var(--bs-primary); }
html[data-bs-theme="dark"] body.appnow-good .cartao-rodape,
html[data-bs-theme="dark"] body.appnow-good th,
html[data-bs-theme="dark"] body.appnow-good td { color: var(--bs-text-gray-700); border-color: var(--bs-border-color); }
html[data-bs-theme="dark"] body.appnow-good th,
html[data-bs-theme="dark"] body.appnow-good .historico-cadastro { background: var(--bs-gray-100); }
html[data-bs-theme="dark"] body.appnow-good .cartao-orientacao { border-color: var(--bs-primary-border-subtle); background: var(--bs-primary-bg-subtle); }
html[data-bs-theme="dark"] body.appnow-good .cartao-orientacao > .icone-cartao { background: var(--bs-body-bg); }
html[data-bs-theme="dark"] body.appnow-good input,
html[data-bs-theme="dark"] body.appnow-good select,
html[data-bs-theme="dark"] body.appnow-good textarea,
html[data-bs-theme="dark"] body.appnow-good .form-control,
html[data-bs-theme="dark"] body.appnow-good .form-select { color: var(--bs-text-gray-700); border-color: var(--bs-border-color); background-color: var(--bs-body-bg); }
html[data-bs-theme="dark"] body.appnow-good input::placeholder,
html[data-bs-theme="dark"] body.appnow-good textarea::placeholder { color: var(--bs-text-muted); }
html[data-bs-theme="dark"] body.appnow-good .filtro-agenda label:not(.form-check) { color: var(--bs-text-gray-800); }
html[data-bs-theme="dark"] body.appnow-good .filtro-agenda .form-control,
html[data-bs-theme="dark"] body.appnow-good .filtro-agenda .form-select { border-color: var(--bs-border-color); }
html[data-bs-theme="dark"] body.appnow-good a,
html[data-bs-theme="dark"] body.appnow-good .item-semana a { color: var(--bs-primary); }
html[data-bs-theme="dark"] body.appnow-good a:hover,
html[data-bs-theme="dark"] body.appnow-good .item-semana a:hover { color: var(--bs-primary); }
html[data-bs-theme="dark"] body.appnow-good .agenda-alternador,
html[data-bs-theme="dark"] body.appnow-good .kanban-cabecalho,
html[data-bs-theme="dark"] body.appnow-good .kanban-cartao { border-color: var(--bs-border-color); background: var(--bs-body-bg); }
html[data-bs-theme="dark"] body.appnow-good .kanban-coluna { border-color: var(--bs-border-color); background: var(--bs-app-bg-color); }
html[data-bs-theme="dark"] body.appnow-good .kanban-cabecalho { border-bottom-color: var(--bs-border-color); }
html[data-bs-theme="dark"] body.appnow-good .kanban-cabecalho h2,
html[data-bs-theme="dark"] body.appnow-good .kanban-cartao h3 { color: var(--bs-text-gray-800); }
html[data-bs-theme="dark"] body.appnow-good .kanban-horario,
html[data-bs-theme="dark"] body.appnow-good .kanban-profissional,
html[data-bs-theme="dark"] body.appnow-good .kanban-servico,
html[data-bs-theme="dark"] body.appnow-good .kanban-vazio { color: var(--bs-text-muted); }
html[data-bs-theme="dark"] body.appnow-good .agenda-modal { color: var(--bs-body-color); border-color: var(--bs-border-color); background: var(--bs-body-bg); }
html[data-bs-theme="dark"] body.appnow-good .agenda-modal-cabecalho { border-color: var(--bs-border-color); background: var(--bs-body-bg); }
html[data-bs-theme="dark"] body.appnow-good .agenda-modal-cabecalho h2,
html[data-bs-theme="dark"] body.appnow-good .agenda-modal-conteudo > h1 { color: var(--bs-text-gray-900); }
html[data-bs-theme="dark"] body.appnow-good .agenda-modal-fechar { color: var(--bs-text-gray-700); background: var(--bs-gray-100); }
html[data-bs-theme="dark"] body.appnow-good .agenda-modal-carregando { color: var(--bs-text-muted); }
html[data-bs-theme="dark"] body.appnow-good .kanban-contagem { color: var(--bs-text-gray-700); background: var(--bs-gray-100); }
html[data-bs-theme="dark"] body.appnow-good .secundario,
html[data-bs-theme="dark"] body.appnow-good .botao.secundario { color: var(--bs-primary); border-color: var(--bs-primary-border-subtle); background: var(--bs-primary-bg-subtle); }
html[data-bs-theme="dark"] body.appnow-good .tema-icone-sol { display: none; }
html[data-bs-theme="dark"] body.appnow-good .tema-icone-lua { display: block; }
html[data-bs-theme="dark"] body.pagina-conta { background: radial-gradient(ellipse at top, var(--appnow-surface-elevated), var(--appnow-input-bg) 65%); }
html[data-bs-theme="dark"] body.pagina-conta .auth-card { color: var(--bs-text-gray-900); border-color: var(--bs-border-color); background: var(--bs-body-bg); }
html[data-bs-theme="dark"] body.pagina-conta .auth-card p,
html[data-bs-theme="dark"] body.pagina-conta .rodape-conta { color: var(--bs-text-muted); }
html[data-bs-theme="dark"] body.pagina-conta input,
html[data-bs-theme="dark"] body.pagina-conta select,
html[data-bs-theme="dark"] body.pagina-conta textarea { color: var(--bs-text-gray-900); border-color: var(--bs-border-color); background: var(--appnow-input-bg); }
html[data-bs-theme="dark"] body.pagina-conta .tema-menu > summary,
html[data-bs-theme="dark"] body.pagina-conta .tema-opcoes { color: var(--bs-text-gray-900); border-color: var(--bs-border-color); background: var(--bs-body-bg); }
html[data-bs-theme="dark"] body.pagina-conta .tema-icone-sol { display: none; }
html[data-bs-theme="dark"] body.pagina-conta .tema-icone-lua { display: block; }
html[data-bs-theme="dark"] .notificacao,
html[data-bs-theme="dark"] .validation-summary-errors {
    --aviso-cor: var(--bs-success-text-emphasis);
    --aviso-fundo: var(--bs-success-bg-subtle);
    --aviso-borda: var(--bs-success-border-subtle);
}
html[data-bs-theme="dark"] .notificacao-atencao { --aviso-cor: var(--bs-warning-text-emphasis); --aviso-fundo: var(--bs-warning-bg-subtle); --aviso-borda: var(--bs-warning-border-subtle); }
html[data-bs-theme="dark"] .notificacao-erro,
html[data-bs-theme="dark"] .validation-summary-errors { --aviso-cor: var(--bs-danger-text-emphasis); --aviso-fundo: var(--bs-danger-bg-subtle); --aviso-borda: var(--bs-danger-border-subtle); }

/* Mantém a paleta e a tipografia da folha original Good em todas as páginas do AppNow. */
body.appnow-good {
    --cor-fundo: var(--bs-app-bg-color);
    --cor-superficie: var(--bs-body-bg);
    --cor-texto: var(--bs-text-gray-900);
    --cor-suave: var(--bs-text-gray-600);
    --cor-borda: var(--bs-border-color);
    --cor-destaque: var(--bs-primary);
    --cor-menu: var(--bs-body-bg);
    --bs-body-font-family: var(--bs-font-sans-serif);
    font-family: var(--bs-font-sans-serif);
    color: var(--bs-body-color);
    background-color: var(--bs-body-bg);
}
body.pagina-conta {
    --cor-fundo: var(--bs-body-bg);
    --cor-superficie: var(--bs-body-bg);
    --cor-texto: var(--bs-text-gray-900);
    --cor-suave: var(--bs-text-gray-600);
    --cor-borda: var(--bs-border-color);
    --cor-destaque: var(--bs-primary);
    --bs-body-font-family: var(--bs-font-sans-serif);
    font-family: var(--bs-font-sans-serif);
    color: var(--bs-body-color);
    background: var(--bs-body-bg);
}

body.appnow-good .app-shell { background: var(--bs-app-bg-color); }
body.appnow-good .menu-aplicacao {
    color: var(--bs-text-gray-700);
    background: var(--bs-body-bg);
    border-color: var(--bs-border-color);
}
body.appnow-good .marca-menu,
body.appnow-good .marca-menu:hover,
body.appnow-good .empresa-cabecalho strong,
body.appnow-good .menu-empresa strong,
body.appnow-good .pagina-agenda-titulo { color: var(--bs-text-gray-900); }
body.appnow-good .menu-legenda,
body.appnow-good .menu-empresa small,
body.appnow-good .legenda-empresa,
body.appnow-good .pagina-agenda-descricao,
body.appnow-good .agenda-semana-resumo,
body.appnow-good .rodape-aplicacao,
body.appnow-good .conteudo > p { color: var(--bs-text-gray-600); }
body.appnow-good .menu-legenda { color: var(--bs-text-muted); }
body.appnow-good .nav-item { color: var(--bs-text-gray-600); }
body.appnow-good .nav-item:hover,
body.appnow-good .nav-item.ativo { color: var(--bs-primary); background: var(--bs-primary-light); }
body.appnow-good .menu-empresa,
body.appnow-good .app-cabecalho { border-color: var(--bs-border-color); }
body.appnow-good .app-cabecalho,
body.appnow-good .conta-opcoes,
body.appnow-good .tema-menu > summary,
body.appnow-good .tema-opcoes,
body.appnow-good .cartao-filtros-agenda,
body.appnow-good .dia-semana,
body.appnow-good .item-semana,
body.appnow-good .agenda-alternador,
body.appnow-good .kanban-cabecalho,
body.appnow-good .kanban-cartao,
body.appnow-good .agenda-modal,
body.appnow-good .agenda-modal-cabecalho {
    color: var(--bs-body-color);
    border-color: var(--bs-border-color);
    background-color: var(--bs-body-bg);
}
body.appnow-good .avatar { color: var(--bs-primary); background-color: var(--bs-primary-light); }
body.appnow-good .tema-opcoes button span { color: var(--bs-primary); }
body.appnow-good .botao-sair { color: var(--bs-danger); }
body.appnow-good .conta-opcoes a,
body.appnow-good .botao-sair { color: var(--bs-text-gray-700); }
body.appnow-good .conteudo { color: var(--bs-body-color); }
body.appnow-good .conteudo h1,
body.appnow-good .conteudo h2,
body.appnow-good .conteudo h3 { color: var(--bs-text-gray-900); }
body.appnow-good .conteudo .ajuda,
body.appnow-good .conteudo .cartao-rodape,
body.appnow-good .agenda-modal-carregando,
body.appnow-good .agenda-modal-ajuda { color: var(--bs-text-muted); }
body.appnow-good .conteudo label:not(.checkbox):not(.form-check),
body.appnow-good .filtro-agenda label:not(.form-check) { color: var(--bs-text-gray-800); }
body.appnow-good .conteudo input:not([type="checkbox"]):not([type="radio"]),
body.appnow-good .conteudo select,
body.appnow-good .conteudo textarea,
body.appnow-good .conteudo .form-control,
body.appnow-good .conteudo .form-select {
    color: var(--bs-text-gray-700);
    border-color: var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    background-color: var(--bs-body-bg);
}
body.appnow-good .conteudo input::placeholder,
body.appnow-good .conteudo textarea::placeholder { color: var(--bs-text-muted); }
body.appnow-good .filtro-agenda .form-control,
body.appnow-good .filtro-agenda .form-select { border-color: var(--bs-border-color); border-radius: var(--bs-border-radius); }
body.appnow-good .conteudo .tabela-rolagem,
body.appnow-good .conteudo .cartao-resumo,
body.appnow-good .conteudo .cartao-vazio,
body.appnow-good .conteudo .cartao-compromisso,
body.appnow-good .conteudo > form,
body.appnow-good .conteudo .historico-cadastro {
    color: var(--bs-body-color);
    border-color: var(--bs-border-color);
    background-color: var(--bs-body-bg);
}
body.appnow-good .conteudo table { color: var(--bs-text-gray-700); }
body.appnow-good .conteudo th {
    color: var(--bs-text-muted);
    border-color: var(--bs-border-color);
    background-color: var(--bs-gray-100);
}
body.appnow-good .conteudo td { color: var(--bs-text-gray-700); border-color: var(--bs-border-color); }
body.appnow-good .conteudo tbody tr:hover { background-color: var(--bs-gray-100); }
body.appnow-good .conteudo td a,
body.appnow-good .conteudo nav[aria-label*="Páginas"] a,
body.appnow-good .conteudo a:not(.btn):not(.botao) { color: var(--bs-link-color); }
body.appnow-good .conteudo td a:hover,
body.appnow-good .conteudo nav[aria-label*="Páginas"] a:hover,
body.appnow-good .conteudo a:not(.btn):not(.botao):hover { color: var(--bs-link-hover-color); }
body.appnow-good .filtro-agenda .btn,
body.appnow-good .acoes-agenda .btn { border-radius: var(--bs-border-radius); }
body.appnow-good .btn-primary { color: var(--bs-btn-color); }
body.appnow-good .btn-light-primary,
body.appnow-good .agenda-alternador .btn-light-primary { color: var(--bs-primary); }
body.appnow-good .conteudo button:where(:not(.btn):not(.botao-sair):not(.agenda-modal-fechar):not(.secundario)),
body.appnow-good .conteudo .botao:where(:not(.secundario):not(.botao-secundario)) {
    min-height: 46px;
    padding: .7rem 1.25rem;
    border: 1px solid var(--bs-primary);
    border-radius: var(--bs-border-radius);
    color: var(--appnow-on-accent);
    background-color: var(--bs-primary);
    font-family: var(--bs-font-sans-serif);
    font-size: 1rem;
    font-weight: 600;
}
body.appnow-good .conteudo button:where(:not(.btn):not(.botao-sair):not(.agenda-modal-fechar):not(.secundario)):hover,
body.appnow-good .conteudo .botao:where(:not(.secundario):not(.botao-secundario)):hover {
    color: var(--appnow-on-accent);
    border-color: var(--appnow-accent-hover);
    background-color: var(--appnow-accent-hover);
}
body.appnow-good .conteudo button.secundario,
body.appnow-good .conteudo .botao.secundario {
    color: var(--bs-primary);
    border-color: var(--bs-primary-light);
    background-color: var(--bs-primary-light);
}
body.appnow-good .conteudo button.secundario:hover,
body.appnow-good .conteudo .botao.secundario:hover {
    color: var(--bs-primary-text-emphasis);
    border-color: var(--bs-primary-border-subtle);
    background-color: var(--bs-primary-bg-subtle);
}
body.appnow-good .agenda-modal-fechar {
    color: var(--bs-text-gray-700);
    background-color: var(--bs-gray-100);
}
body.appnow-good .agenda-modal-cabecalho h2,
body.appnow-good .agenda-modal-conteudo > h1 { color: var(--bs-text-gray-900); }
body.appnow-good .dia-semana > h2,
body.appnow-good .kanban-cabecalho h2,
body.appnow-good .item-semana h3,
body.appnow-good .kanban-cartao h3 { color: var(--bs-text-gray-800); }
body.appnow-good .dia-semana > h2 span,
body.appnow-good .item-semana p,
body.appnow-good .item-semana .sobretitulo,
body.appnow-good .kanban-horario,
body.appnow-good .kanban-profissional,
body.appnow-good .kanban-servico,
body.appnow-good .kanban-vazio { color: var(--bs-text-gray-600); }
body.appnow-good .kanban-coluna { border-color: var(--bs-border-color); background-color: var(--bs-app-bg-color); }
body.appnow-good .kanban-indicador { background-color: var(--bs-primary); }
body.appnow-good .kanban-concluido { background-color: var(--bs-success); }
body.appnow-good .kanban-falta { background-color: var(--bs-warning); }
body.appnow-good .kanban-cancelado { background-color: var(--bs-danger); }
body.appnow-good .kanban-contagem { color: var(--bs-text-gray-600); background-color: var(--bs-gray-100); }
body.appnow-good .agenda-modal { color: var(--bs-body-color); border-color: var(--bs-border-color); background-color: var(--bs-body-bg); }
body.appnow-good .agenda-modal-cabecalho { border-color: var(--bs-border-color); background-color: var(--bs-body-bg); }
body.appnow-good :focus-visible,
body.pagina-conta :focus-visible { outline-color: var(--bs-primary); }
body.appnow-good .notificacao,
body.appnow-good .validation-summary-errors,
body.pagina-conta .notificacao,
body.pagina-conta .validation-summary-errors {
    --aviso-cor: var(--bs-success-text-emphasis);
    --aviso-fundo: var(--bs-success-bg-subtle);
    --aviso-borda: var(--bs-success-border-subtle);
}
body.appnow-good .notificacao-atencao,
body.pagina-conta .notificacao-atencao {
    --aviso-cor: var(--bs-warning-text-emphasis);
    --aviso-fundo: var(--bs-warning-bg-subtle);
    --aviso-borda: var(--bs-warning-border-subtle);
}
body.appnow-good .notificacao-erro,
body.appnow-good .validation-summary-errors,
body.pagina-conta .notificacao-erro,
body.pagina-conta .validation-summary-errors {
    --aviso-cor: var(--bs-danger-text-emphasis);
    --aviso-fundo: var(--bs-danger-bg-subtle);
    --aviso-borda: var(--bs-danger-border-subtle);
}
body.pagina-conta .entrada-aplicacao { color: var(--bs-body-color); background: var(--bs-body-bg); }
body.pagina-conta .auth-card a:not(.btn) { color: var(--bs-link-color); }
body.pagina-conta .auth-card a:not(.btn):hover { color: var(--bs-link-hover-color); }
body.pagina-conta .auth-card {
    color: var(--bs-body-color);
    border-color: var(--bs-border-color);
    background: var(--bs-body-bg);
}
body.pagina-conta .auth-card p,
body.pagina-conta .rodape-conta { color: var(--bs-text-gray-600); }
body.pagina-conta .marca-destaque { color: var(--bs-primary); }
body.pagina-conta input,
body.pagina-conta select,
body.pagina-conta textarea {
    color: var(--bs-text-gray-700);
    border-color: var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    background: var(--bs-body-bg);
}
body.pagina-conta .auth-card button:not(.btn) {
    color: var(--appnow-on-accent);
    border-color: var(--bs-primary);
    border-radius: var(--bs-border-radius);
    background: var(--bs-primary);
}
body.pagina-conta .auth-card button:not(.btn):hover { color: var(--appnow-on-accent); border-color: var(--appnow-accent-hover); background: var(--appnow-accent-hover); }

html[data-bs-theme="dark"] body.appnow-good .nav-item:hover,
html[data-bs-theme="dark"] body.appnow-good .nav-item.ativo { color: var(--bs-primary); background-color: var(--bs-primary-light); }
html[data-bs-theme="dark"] body.appnow-good .agenda-modal-conteudo > h1,
html[data-bs-theme="dark"] body.appnow-good .agenda-modal-cabecalho h2 { color: var(--bs-text-gray-900); }
html[data-bs-theme="dark"] body.appnow-good a.btn-primary { color: var(--bs-btn-color); }
html[data-bs-theme="dark"] body.appnow-good .conteudo a:not(.btn):not(.botao):hover { color: var(--bs-link-hover-color); }
html[data-bs-theme="dark"] body.appnow-good .filtro-agenda .form-control,
html[data-bs-theme="dark"] body.appnow-good .filtro-agenda .form-select { border-color: var(--bs-border-color); }
html[data-bs-theme="dark"] body.appnow-good .notificacao,
html[data-bs-theme="dark"] body.appnow-good .validation-summary-errors {
    --aviso-cor: var(--bs-success-text-emphasis);
    --aviso-fundo: var(--bs-success-bg-subtle);
    --aviso-borda: var(--bs-success-border-subtle);
}
html[data-bs-theme="dark"] body.appnow-good .notificacao-atencao { --aviso-cor: var(--bs-warning-text-emphasis); --aviso-fundo: var(--bs-warning-bg-subtle); --aviso-borda: var(--bs-warning-border-subtle); }
html[data-bs-theme="dark"] body.appnow-good .notificacao-erro,
html[data-bs-theme="dark"] body.appnow-good .validation-summary-errors { --aviso-cor: var(--bs-danger-text-emphasis); --aviso-fundo: var(--bs-danger-bg-subtle); --aviso-borda: var(--bs-danger-border-subtle); }
html[data-bs-theme="dark"] body.appnow-good .agenda-alternador,
html[data-bs-theme="dark"] body.appnow-good .kanban-cabecalho,
html[data-bs-theme="dark"] body.appnow-good .kanban-cartao,
html[data-bs-theme="dark"] body.appnow-good .agenda-modal,
html[data-bs-theme="dark"] body.appnow-good .agenda-modal-cabecalho,
html[data-bs-theme="dark"] body.appnow-good .cartao-filtros-agenda,
html[data-bs-theme="dark"] body.appnow-good .dia-semana,
html[data-bs-theme="dark"] body.appnow-good .item-semana,
html[data-bs-theme="dark"] body.appnow-good .tema-menu > summary,
html[data-bs-theme="dark"] body.appnow-good .tema-opcoes,
html[data-bs-theme="dark"] body.appnow-good .conta-opcoes,
html[data-bs-theme="dark"] body.appnow-good .conteudo > form,
html[data-bs-theme="dark"] body.appnow-good .conteudo .cartao-resumo,
html[data-bs-theme="dark"] body.appnow-good .conteudo .cartao-vazio,
html[data-bs-theme="dark"] body.appnow-good .conteudo .cartao-compromisso,
html[data-bs-theme="dark"] body.appnow-good .conteudo .tabela-rolagem {
    color: var(--bs-body-color);
    border-color: var(--bs-border-color);
    background-color: var(--bs-body-bg);
}
html[data-bs-theme="dark"] body.appnow-good .agenda-modal-fechar,
html[data-bs-theme="dark"] body.appnow-good .kanban-contagem { color: var(--bs-text-gray-700); background: var(--bs-gray-100); }
html[data-bs-theme="dark"] body.appnow-good .kanban-coluna { background-color: var(--bs-app-bg-color); }
html[data-bs-theme="dark"] body.appnow-good .tema-opcoes button { color: var(--bs-text-gray-700); background: transparent; }
html[data-bs-theme="dark"] body.appnow-good .tema-opcoes button:hover,
html[data-bs-theme="dark"] body.appnow-good .tema-opcoes button[aria-pressed="true"] { color: var(--bs-primary); background: var(--bs-primary-light); }
html[data-bs-theme="dark"] body.appnow-good .conta-opcoes a,
html[data-bs-theme="dark"] body.appnow-good .botao-sair { color: var(--bs-text-gray-700); }
html[data-bs-theme="dark"] body.appnow-good .conta-opcoes a:hover { background: var(--bs-gray-100); }
html[data-bs-theme="dark"] body.pagina-conta { background: var(--bs-body-bg); }
html[data-bs-theme="dark"] body.pagina-conta .auth-card { color: var(--bs-text-gray-900); border-color: var(--bs-border-color); background: var(--bs-body-bg); }
html[data-bs-theme="dark"] body.pagina-conta .auth-card p,
html[data-bs-theme="dark"] body.pagina-conta .rodape-conta { color: var(--bs-text-muted); }
html[data-bs-theme="dark"] body.pagina-conta input,
html[data-bs-theme="dark"] body.pagina-conta select,
html[data-bs-theme="dark"] body.pagina-conta textarea { color: var(--bs-text-gray-700); border-color: var(--bs-border-color); background: var(--bs-body-bg); }
html[data-bs-theme="dark"] body.pagina-conta .tema-menu > summary,
html[data-bs-theme="dark"] body.pagina-conta .tema-opcoes { color: var(--bs-text-gray-900); border-color: var(--bs-border-color); background: var(--bs-body-bg); }
html[data-bs-theme="dark"] body.pagina-conta .auth-card button:not(.btn) { color: var(--appnow-on-accent); border-color: var(--bs-primary); background: var(--bs-primary); }
html[data-bs-theme="dark"] body.appnow-good .conteudo .cartao-orientacao {
    color: var(--bs-primary-text-emphasis);
    border-color: var(--bs-primary-border-subtle);
    background-color: var(--bs-primary-bg-subtle);
}

/* Formulários de clientes: campos agrupados, alinhados e responsivos. */
body.appnow-good .conteudo > form.cliente-formulario {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 18px 22px;
    width: min(100%, 980px);
    max-width: none;
    padding: 24px;
}
body.appnow-good .cliente-formulario > .validation-summary-errors,
body.appnow-good .cliente-formulario > .cliente-campos-principais,
body.appnow-good .cliente-formulario > .cliente-grupo-campos,
body.appnow-good .cliente-formulario > .cliente-campos-contato,
body.appnow-good .cliente-formulario > .checkbox,
body.appnow-good .cliente-formulario > button { grid-column: 1 / -1; }
body.appnow-good .cliente-campos-principais,
body.appnow-good .cliente-campos-contato,
body.appnow-good .cliente-grupo-campos {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 20px;
    min-width: 0;
}
body.appnow-good .cliente-grupo-campos {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0;
    padding: 18px;
    border: 1px solid var(--bs-border-color);
    border-radius: 8px;
}
body.appnow-good .cliente-grupo-campos[hidden] { display: none !important; }
body.appnow-good .cliente-grupo-campos legend {
    float: none;
    width: auto;
    margin: 0;
    padding: 0 8px;
    color: var(--bs-text-gray-800);
    font-size: .9rem;
    font-weight: 700;
}
body.appnow-good .cliente-campo { min-width: 0; }
body.appnow-good .cliente-formulario .cliente-campo label {
    margin: 0 0 6px;
    font-size: .82rem;
}
body.appnow-good .cliente-formulario .cliente-campo input,
body.appnow-good .cliente-formulario .cliente-campo select { min-width: 0; }
body.appnow-good .cliente-campo > span { display: block; margin-top: 4px; font-size: .78rem; }
body.appnow-good .cliente-formulario > .checkbox {
    justify-self: start;
    margin: 0;
}
body.appnow-good .cliente-formulario > button {
    justify-self: start;
    margin: 0;
}

/* A largura fixa distribui as colunas sem deixar o conteúdo esticar a tabela. */
body.appnow-good .conteudo table.tabela-clientes {
    min-width: 0 !important;
    table-layout: fixed;
}
body.appnow-good .tabela-clientes .coluna-cliente-nome { width: 24%; }
body.appnow-good .tabela-clientes .coluna-cliente-email { width: 27%; }
body.appnow-good .tabela-clientes .coluna-cliente-telefone { width: 17%; }
body.appnow-good .tabela-clientes .coluna-cliente-situacao { width: 12%; }
body.appnow-good .tabela-clientes .coluna-cliente-acoes { width: 20%; }
body.appnow-good .tabela-clientes td { overflow-wrap: anywhere; }
body.appnow-good .tabela-clientes .acoes-agenda { gap: 4px 10px; }

@media (max-width: 900px) {
    body.appnow-good .cliente-grupo-campos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    body.appnow-good .conteudo > form.cliente-formulario { gap: 16px; padding: 18px; }
    body.appnow-good .cliente-campos-principais,
    body.appnow-good .cliente-campos-contato,
    body.appnow-good .cliente-grupo-campos { grid-template-columns: minmax(0, 1fr); }
    body.appnow-good .conteudo table.tabela-clientes { min-width: 680px !important; }
}

/* Cabeçalho global compacto e navegação recolhível. */
body.appnow-good .app-cabecalho {
    position: sticky;
    top: 0;
    z-index: 100;
    min-height: 60px;
    height: 60px;
    padding: 8px 24px;
    gap: 16px;
}
body.appnow-good .cabecalho-contexto { display: flex; min-width: 0; align-items: center; gap: 14px; }
body.appnow-good .botao-menu-lateral {
    display: grid;
    width: 38px;
    height: 38px;
    min-height: 38px;
    padding: 8px;
    place-items: center;
    border: 1px solid transparent;
    border-radius: 8px;
    color: var(--bs-text-gray-700);
    background: transparent;
}
body.appnow-good .botao-menu-lateral:hover { border-color: var(--bs-border-color); color: var(--bs-primary); background: var(--bs-gray-100); }
body.appnow-good .botao-menu-lateral svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
body.appnow-good .empresa-seletor {
    display: grid;
    min-width: 0;
    gap: 1px;
    padding: 3px 10px;
    border: 1px solid var(--bs-border-color);
    border-radius: 8px;
    color: var(--bs-text-gray-800);
    background: var(--bs-body-bg);
    text-decoration: none;
}
body.appnow-good .empresa-seletor:hover { border-color: var(--bs-primary); color: var(--bs-text-gray-900); }
body.appnow-good .empresa-seletor .legenda-empresa { margin: 0; font-size: .58rem; line-height: 1.2; }
body.appnow-good .empresa-seletor-valor { display: flex; min-width: 0; align-items: center; gap: 8px; }
body.appnow-good .empresa-seletor-valor svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
body.appnow-good .empresa-seletor-valor strong { max-width: min(28vw, 250px); overflow: hidden; color: var(--bs-text-gray-800); font-size: .78rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
body.appnow-good .empresa-seletor-valor > span { margin-left: auto; color: var(--bs-text-muted); }
body.appnow-good .menu-aplicacao { top: 0; overflow-x: hidden; overflow-y: auto; }
html[data-appnow-sidebar="recolhida"] body.appnow-good .app-shell { grid-template-columns: 76px minmax(0, 1fr); }
html[data-appnow-sidebar="recolhida"] body.appnow-good .menu-aplicacao { align-items: center; padding-right: 10px; padding-left: 10px; }
html[data-appnow-sidebar="recolhida"] body.appnow-good .marca-menu { justify-content: center; width: 46px; margin: 0 auto 24px; overflow: hidden; font-size: 0; }
html[data-appnow-sidebar="recolhida"] body.appnow-good .marca-menu .marca-simbolo { margin: 0; }
html[data-appnow-sidebar="recolhida"] body.appnow-good .menu-legenda,
html[data-appnow-sidebar="recolhida"] body.appnow-good .menu-empresa > div,
html[data-appnow-sidebar="recolhida"] body.appnow-good .nav-item .rotulo-desktop { display: none; }
html[data-appnow-sidebar="recolhida"] body.appnow-good .menu-empresa { justify-content: center; padding-right: 0; padding-left: 0; }
html[data-appnow-sidebar="recolhida"] body.appnow-good .navegacao-principal,
html[data-appnow-sidebar="recolhida"] body.appnow-good .nav-item { width: 100%; }
html[data-appnow-sidebar="recolhida"] body.appnow-good .nav-item { justify-content: center; padding: 10px 6px; }
html[data-appnow-sidebar="recolhida"] body.appnow-good .nav-item svg { width: 22px; height: 22px; }
body.appnow-good .sidebar-sobreposicao { display: none; }

/* Cabeçalho de página e resumo da listagem de clientes. */
body.appnow-good .cabecalho-pagina { margin: 0 0 18px; }
body.appnow-good .trilha-pagina { display: flex; align-items: center; gap: 9px; margin: 0 0 14px; color: var(--bs-text-gray-600); font-size: .8rem; }
body.appnow-good .trilha-pagina span:last-child { color: var(--bs-text-gray-800); }
body.appnow-good .trilha-separador { color: var(--bs-text-muted) !important; font-size: 1rem; }
body.appnow-good .cabecalho-pagina-corpo { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
body.appnow-good .cabecalho-pagina-corpo h1 { margin: 0 0 4px; color: var(--bs-text-gray-900); font-size: clamp(1.55rem, 2.2vw, 1.9rem); font-weight: 700; letter-spacing: -.035em; }
body.appnow-good .cabecalho-pagina-corpo p { margin: 0; color: var(--bs-text-gray-600); font-size: .9rem; }
body.appnow-good .acao-primaria-pagina { min-height: 42px; padding: 8px 16px; border-radius: 8px; color: var(--bs-btn-color); background: var(--bs-primary); box-shadow: 0 3px 8px rgb(var(--bs-primary-rgb) / 22%); font-size: .88rem; font-weight: 650; white-space: nowrap; }
body.appnow-good .acao-primaria-pagina:hover { color: var(--bs-btn-color); filter: brightness(.96); }
body.appnow-good .acao-primaria-pagina > span { font-size: 1.35rem; line-height: .8; }
body.appnow-good .resumo-clientes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 18px 0 16px; }
body.appnow-good .indicador-cliente { display: flex; min-width: 0; min-height: 72px; align-items: center; gap: 14px; padding: 12px 15px; border: 1px solid var(--bs-border-color); border-radius: 9px; background: var(--bs-body-bg); }
body.appnow-good .indicador-cliente-icone { display: grid; width: 44px; height: 44px; flex: 0 0 44px; place-items: center; border-radius: 50%; color: var(--bs-link-color); background: var(--bs-primary-bg-subtle); }
body.appnow-good .indicador-cliente-icone svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
body.appnow-good .indicador-cliente > div { display: grid; min-width: 0; gap: 1px; }
body.appnow-good .indicador-cliente strong { color: var(--bs-text-gray-900); font-size: 1.35rem; line-height: 1.15; font-weight: 700; }
body.appnow-good .indicador-cliente > div > span { color: var(--bs-text-gray-600); font-size: .78rem; }
body.appnow-good .indicador-clientes-ativos { border-color: var(--bs-success-border-subtle); background: var(--bs-success-bg-subtle); }
body.appnow-good .indicador-clientes-ativos .indicador-cliente-icone { color: var(--bs-success-text-emphasis); background: var(--bs-success-bg-subtle); }
body.appnow-good .indicador-clientes-inativos { border-color: var(--bs-warning-border-subtle); background: var(--bs-warning-bg-subtle); }
body.appnow-good .indicador-clientes-inativos .indicador-cliente-icone { color: var(--bs-warning-text-emphasis); background: var(--bs-warning-bg-subtle); }
body.appnow-good .indicador-clientes-novos { border-color: var(--bs-primary-border-subtle); background: var(--bs-primary-bg-subtle); }
body.appnow-good .indicador-clientes-novos .indicador-cliente-icone { color: var(--bs-link-color); background: var(--bs-primary-bg-subtle); }

/* Barra de filtros, tabela e paginação no padrão compacto da referência. */
body.appnow-good .lista-clientes { overflow: visible; border: 1px solid var(--bs-border-color); border-radius: 10px; background: var(--bs-body-bg); box-shadow: 0 1px 3px rgb(33 37 41 / 4%); }
body.appnow-good .ferramentas-lista-clientes { display: flex; align-items: center; gap: 10px; margin: 0; padding: 12px; border-bottom: 1px solid var(--bs-border-color); }
body.appnow-good .busca-clientes { position: relative; display: flex; min-width: 190px; flex: 1 1 320px; align-items: center; }
body.appnow-good .busca-clientes > svg { position: absolute; left: 12px; width: 19px; height: 19px; fill: none; stroke: var(--bs-text-muted); stroke-width: 1.8; stroke-linecap: round; }
body.appnow-good .busca-clientes input { min-height: 40px; padding: 8px 12px 8px 38px; border-radius: 7px; font-size: .84rem; }
body.appnow-good .filtro-lista-clientes,
body.appnow-good .seletor-tamanho-clientes { display: flex; min-width: 0; align-items: center; margin: 0; }
body.appnow-good .filtro-lista-clientes select { min-width: 150px; min-height: 40px; padding: 7px 28px 7px 10px; border-radius: 7px; font-size: .82rem; }
body.appnow-good .periodo-clientes { display: flex; min-width: 0; align-items: center; gap: 6px; color: var(--bs-text-muted); }
body.appnow-good .periodo-clientes label { min-width: 0; margin: 0; }
body.appnow-good .periodo-clientes input { width: 145px; min-width: 0; min-height: 40px; padding: 6px 8px; border-radius: 7px; font-size: .76rem; }
body.appnow-good .botao-aplicar-filtros { min-height: 40px !important; margin: 0 !important; padding: 7px 12px !important; border-radius: 7px !important; font-size: .82rem !important; }
body.appnow-good .limpar-filtros-clientes { display: inline-flex; min-height: 40px; align-items: center; padding: 0 4px; color: var(--bs-link-color); font-size: .8rem; text-decoration: none; white-space: nowrap; }
body.appnow-good .limpar-filtros-clientes:hover { text-decoration: underline; }
body.appnow-good .grade-clientes-rolagem { margin: 0; overflow-x: auto; border: 0; border-radius: 0; box-shadow: none; }
body.appnow-good .conteudo table.tabela-clientes { width: 100%; min-width: 980px !important; table-layout: fixed; border-collapse: separate; border-spacing: 0; font-size: .82rem; }
body.appnow-good .tabela-clientes .coluna-cliente-nome { width: 22%; }
body.appnow-good .tabela-clientes .coluna-cliente-email { width: 25%; }
body.appnow-good .tabela-clientes .coluna-cliente-telefone { width: 15%; }
body.appnow-good .tabela-clientes .coluna-cliente-situacao { width: 11%; }
body.appnow-good .tabela-clientes .coluna-cliente-cadastro { width: 14%; }
body.appnow-good .tabela-clientes .coluna-cliente-acoes { width: 13%; }
body.appnow-good .tabela-clientes th { height: 40px; padding: 7px 12px; border-bottom: 1px solid var(--bs-border-color); font-size: .68rem; letter-spacing: .035em; }
body.appnow-good .tabela-clientes td { height: 44px; padding: 6px 12px; border-bottom: 1px solid var(--bs-border-color); }
body.appnow-good .tabela-clientes .ordenacao-cliente { display: inline-flex; align-items: center; gap: 6px; color: inherit; text-decoration: none; }
body.appnow-good .tabela-clientes .ordenacao-cliente:hover { color: var(--bs-link-color); }
body.appnow-good .tabela-clientes .ordenacao-cliente span { color: var(--bs-text-muted); font-size: .9rem; }
body.appnow-good .identidade-cliente { display: flex; min-width: 0; align-items: center; gap: 9px; }
body.appnow-good .identidade-cliente strong { overflow: hidden; color: var(--bs-text-gray-900); font-size: .82rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
body.appnow-good .avatar-cliente { display: grid; width: 30px; height: 30px; flex: 0 0 30px; place-items: center; border-radius: 50%; color: var(--bs-link-color); background: var(--bs-primary-bg-subtle); font-size: .67rem; font-weight: 700; }
body.appnow-good .avatar-cliente-imagem { display: block; object-fit: cover; overflow: hidden; }
body.appnow-good .dado-contato-cliente { overflow: hidden; color: var(--bs-text-gray-600); text-overflow: ellipsis; white-space: nowrap; }
body.appnow-good .data-cadastro-cliente { color: var(--bs-text-gray-600); font-size: .77rem; white-space: nowrap; }
body.appnow-good .badge-situacao-cliente { display: inline-flex; min-width: 76px; min-height: 23px; align-items: center; justify-content: center; gap: 6px; padding: 3px 9px; border-radius: 30px; font-size: .72rem; font-weight: 650; white-space: nowrap; }
body.appnow-good .badge-situacao-cliente > span { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
body.appnow-good .badge-situacao-cliente.cliente-ativo { color: var(--bs-success-text-emphasis); background: var(--bs-success-bg-subtle); }
body.appnow-good .badge-situacao-cliente.cliente-inativo { color: var(--bs-warning-text-emphasis); background: var(--bs-warning-bg-subtle); }
body.appnow-good .acoes-linha-cliente { display: flex; align-items: center; gap: 6px; }
body.appnow-good .acao-icone-cliente { display: grid; width: 33px; height: 33px; flex: 0 0 33px; place-items: center; padding: 0 !important; border: 1px solid var(--bs-border-color); border-radius: 7px; color: var(--bs-text-gray-700); background: var(--bs-body-bg); text-decoration: none; cursor: pointer; }
body.appnow-good .acao-icone-cliente:hover { border-color: var(--bs-primary); color: var(--bs-link-color); background: var(--bs-primary-light); }
body.appnow-good .acao-icone-cliente svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
body.appnow-good .mais-acoes-cliente { position: relative; }
body.appnow-good .mais-acoes-cliente > summary { list-style: none; }
body.appnow-good .mais-acoes-cliente > summary::-webkit-details-marker { display: none; }
body.appnow-good .menu-mais-acoes-cliente { position: absolute; top: calc(100% + 5px); right: 0; z-index: 30; display: grid; min-width: 180px; padding: 5px; border: 1px solid var(--bs-border-color); border-radius: 8px; background: var(--bs-body-bg); box-shadow: 0 8px 25px rgb(33 37 41 / 12%); }
body.appnow-good .menu-mais-acoes-cliente a { padding: 9px 10px !important; border-radius: 5px; color: var(--bs-text-gray-700); font-size: .78rem; text-decoration: none; white-space: nowrap; }
body.appnow-good .menu-mais-acoes-cliente a:hover { background: var(--bs-gray-100); }
body.appnow-good .rodape-lista-clientes { display: flex; min-height: 56px; align-items: center; justify-content: space-between; gap: 16px; padding: 8px 14px; color: var(--bs-text-gray-600); font-size: .78rem; }
body.appnow-good .controles-paginacao-clientes { display: flex; align-items: center; gap: 18px; }
body.appnow-good .seletor-tamanho-clientes { gap: 8px; white-space: nowrap; }
body.appnow-good .rotulo-itens-pagina { margin: 0; color: var(--bs-text-gray-600); font-size: .77rem; font-weight: 400; }
body.appnow-good .seletor-tamanho-clientes select { width: 62px; min-height: 34px; padding: 5px 7px; border-radius: 6px; font-size: .78rem; }
body.appnow-good .paginacao-clientes { display: flex; align-items: center; gap: 5px; }
body.appnow-good .paginacao-clientes a,
body.appnow-good .paginacao-clientes .pagina-atual { display: grid; width: 35px; height: 35px; place-items: center; padding: 0 !important; border: 1px solid var(--bs-border-color); border-radius: 7px; color: var(--bs-text-gray-700); background: var(--bs-body-bg); font-size: .8rem; text-decoration: none; }
body.appnow-good .paginacao-clientes .pagina-atual { border-color: var(--bs-primary); color: var(--bs-btn-color); background: var(--bs-primary); font-weight: 700; }
body.appnow-good .paginacao-clientes a:hover { border-color: var(--bs-primary); color: var(--bs-link-color); }
body.appnow-good .estado-vazio-clientes { display: grid; justify-items: center; margin: 0; padding: 48px 20px; border: 0; text-align: center; }
body.appnow-good .estado-vazio-clientes > span { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 50%; color: var(--bs-text-muted); background: var(--bs-gray-100); }
body.appnow-good .estado-vazio-clientes svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.7; }
body.appnow-good .estado-vazio-clientes h2 { margin: 12px 0 4px; color: var(--bs-text-gray-800); font-size: 1rem; }
body.appnow-good .estado-vazio-clientes p { margin: 0 0 15px; color: var(--bs-text-gray-600); font-size: .84rem; }

/* Mesma tabela compacta de Clientes nos cadastros e na administração de acessos. */
body.appnow-good .conteudo table.tabela-listagem-profissionais { min-width: 1120px !important; }
body.appnow-good .conteudo table.tabela-listagem-acessos { min-width: 1050px !important; }
body.appnow-good .tabela-listagem-servicos .coluna-servico-nome { width: 32%; }
body.appnow-good .tabela-listagem-servicos .coluna-servico-duracao { width: 12%; }
body.appnow-good .tabela-listagem-servicos .coluna-servico-valor { width: 18%; }
body.appnow-good .tabela-listagem-servicos .coluna-servico-situacao { width: 13%; }
body.appnow-good .tabela-listagem-servicos .coluna-servico-cadastro { width: 17%; }
body.appnow-good .tabela-listagem-servicos .coluna-servico-acoes { width: 8%; }
body.appnow-good .tabela-listagem-profissionais .coluna-profissional-nome { width: 23%; }
body.appnow-good .tabela-listagem-profissionais .coluna-profissional-email { width: 20%; }
body.appnow-good .tabela-listagem-profissionais .coluna-profissional-telefone { width: 13%; }
body.appnow-good .tabela-listagem-profissionais .coluna-profissional-servicos { width: 10%; }
body.appnow-good .tabela-listagem-profissionais .coluna-profissional-situacao { width: 11%; }
body.appnow-good .tabela-listagem-profissionais .coluna-profissional-cadastro { width: 16%; }
body.appnow-good .tabela-listagem-profissionais .coluna-profissional-acoes { width: 7%; }
body.appnow-good .tabela-listagem-acessos .coluna-acesso-usuario { width: 26%; }
body.appnow-good .tabela-listagem-acessos .coluna-acesso-conta { width: 14%; }
body.appnow-good .tabela-listagem-acessos .coluna-acesso-situacao { width: 20%; }
body.appnow-good .tabela-listagem-acessos .coluna-acesso-papeis { width: 10%; }
body.appnow-good .tabela-listagem-acessos .coluna-acesso-cadastro { width: 20%; }
body.appnow-good .tabela-listagem-acessos .coluna-acesso-acoes { width: 10%; }
body.appnow-good .tabela-listagem-papeis .coluna-papel-nome { width: 35%; }
body.appnow-good .tabela-listagem-papeis .coluna-papel-situacao { width: 17%; }
body.appnow-good .tabela-listagem-papeis .coluna-papel-permissoes { width: 17%; }
body.appnow-good .tabela-listagem-papeis .coluna-papel-cadastro { width: 21%; }
body.appnow-good .tabela-listagem-papeis .coluna-papel-acoes { width: 10%; }
body.appnow-good .avatar-cliente-servico,
body.appnow-good .avatar-cliente-papel { border-radius: 9px; }
body.appnow-good .avatar-cliente-servico svg,
body.appnow-good .avatar-cliente-papel svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
body.appnow-good .identidade-cliente > span:not(.avatar-cliente) { display: grid; min-width: 0; }
body.appnow-good .identidade-cliente > span > small:not(.profissional-usuario-vinculado) { display: block; overflow: hidden; margin-top: 2px; color: var(--bs-text-gray-600); font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
body.appnow-good .cabecalho-lista-clientes { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 16px; border-bottom: 1px solid var(--bs-border-color); }
body.appnow-good .cabecalho-lista-clientes h2 { margin: 0 0 3px; color: var(--bs-text-gray-900); font-size: .95rem; font-weight: 650; }
body.appnow-good .cabecalho-lista-clientes p { margin: 0; color: var(--bs-text-gray-600); font-size: .78rem; }
body.appnow-good .cabecalho-lista-clientes > .botao { min-height: 38px; padding: 8px 13px; border-radius: 7px; font-size: .8rem; white-space: nowrap; }
body.appnow-good .abas-clientes { margin-top: 4px; }
@media (max-width: 560px) {
    body.appnow-good .cabecalho-lista-clientes { align-items: flex-start; flex-direction: column; }
    body.appnow-good .cabecalho-lista-clientes > .botao { width: 100%; text-align: center; }
}

@media (max-width: 1100px) {
    body.appnow-good .resumo-clientes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.appnow-good .ferramentas-lista-clientes { flex-wrap: wrap; }
    body.appnow-good .busca-clientes { flex-basis: 100%; }
    body.appnow-good .periodo-clientes { flex: 1 1 290px; }
}
@media (max-width: 760px) {
    body.appnow-good .app-shell { display: block; }
    body.appnow-good .menu-aplicacao {
        position: fixed;
        top: 0;
        bottom: 0;
        left: 0;
        z-index: 131;
        display: flex;
        width: min(290px, 86vw);
        height: 100dvh;
        align-items: stretch;
        padding: 22px 16px max(18px, env(safe-area-inset-bottom));
        border: 0;
        border-right: 1px solid var(--bs-border-color);
        border-radius: 0 12px 12px 0;
        box-shadow: 8px 0 30px rgb(33 37 41 / 14%);
        transform: translateX(-110%);
        transition: transform .2s ease;
    }
    body.appnow-good .menu-aplicacao .marca-menu { display: flex; align-self: flex-start; margin: 0 0 20px 6px; }
    body.appnow-good .menu-aplicacao .menu-legenda { display: block; }
    body.appnow-good .menu-aplicacao .nav-item { justify-content: flex-start; color: var(--bs-text-gray-600); }
    body.appnow-good .menu-aplicacao .nav-item.ativo { color: var(--bs-primary-text-emphasis); background: var(--bs-primary-bg-subtle); }
    body.appnow-good .menu-aplicacao .nav-item .rotulo-desktop { display: inline; }
    body.appnow-good .menu-aplicacao .menu-empresa { justify-content: flex-start; padding: 18px 8px 0; }
    body.appnow-good .menu-aplicacao .menu-empresa > div { display: block; }
    body.appnow-good.appnow-sidebar-aberta .menu-aplicacao { transform: translateX(0); }
    body.appnow-good .sidebar-sobreposicao:not([hidden]) { position: fixed; inset: 0; z-index: 130; display: block; width: 100%; height: 100%; padding: 0; border: 0; border-radius: 0; background: rgb(20 27 45 / 38%); }
    body.appnow-good .app-cabecalho { height: 60px; min-height: 60px; padding: 7px 12px; }
    body.appnow-good .cabecalho-contexto { gap: 8px; }
    body.appnow-good .empresa-seletor { max-width: 52vw; padding: 3px 7px; }
    body.appnow-good .empresa-seletor-valor strong { max-width: 41vw; }
    body.appnow-good .app-cabecalho .rotulo-conta { display: none; }
    body.appnow-good .conteudo { padding: 20px 14px; }
    body.appnow-good .cabecalho-pagina-corpo { align-items: flex-start; }
    body.appnow-good .resumo-clientes { gap: 9px; }
    body.appnow-good .indicador-cliente { min-height: 66px; gap: 9px; padding: 9px; }
    body.appnow-good .indicador-cliente-icone { width: 36px; height: 36px; flex-basis: 36px; }
    body.appnow-good .indicador-cliente strong { font-size: 1.15rem; }
    body.appnow-good .indicador-cliente > div > span { font-size: .7rem; }
    body.appnow-good .filtro-lista-clientes { flex: 1 1 150px; }
    body.appnow-good .filtro-lista-clientes select { width: 100%; }
    body.appnow-good .periodo-clientes { flex: 1 1 100%; }
    body.appnow-good .periodo-clientes label { flex: 1 1 0; }
    body.appnow-good .periodo-clientes input { width: 100%; }
    body.appnow-good .botao-aplicar-filtros { flex: 1 0 100px; }
    body.appnow-good .rodape-lista-clientes { flex-wrap: wrap; }
    body.appnow-good .controles-paginacao-clientes { width: 100%; justify-content: space-between; gap: 8px; }
    body.appnow-good .seletor-tamanho-clientes { gap: 5px; }
}
@media (max-width: 430px) {
    body.appnow-good .cabecalho-pagina-corpo { flex-wrap: wrap; }
    body.appnow-good .acao-primaria-pagina { min-height: 38px; }
    body.appnow-good .indicador-cliente { align-items: flex-start; flex-direction: column; }
    body.appnow-good .indicador-cliente-icone { width: 30px; height: 30px; flex-basis: 30px; }
    body.appnow-good .resumo-clientes { gap: 7px; }
    body.appnow-good .controles-paginacao-clientes { flex-wrap: wrap; }
}
@media (max-width: 380px) {
    body.appnow-good .app-cabecalho { padding-right: 8px; padding-left: 8px; gap: 8px; }
    body.appnow-good .cabecalho-contexto { gap: 5px; }
    body.appnow-good .empresa-seletor { max-width: 45vw; }
    body.appnow-good .empresa-seletor-valor strong { max-width: 34vw; }
}
@media (max-width: 760px) {
    html[data-appnow-sidebar="recolhida"] body.appnow-good .menu-aplicacao { align-items: stretch; }
    html[data-appnow-sidebar="recolhida"] body.appnow-good .marca-menu { justify-content: flex-start; width: auto; margin: 0 0 20px 6px; overflow: visible; font-size: 1.6rem; }
}
body.appnow-good .lista-clientes[aria-busy="true"] { cursor: progress; opacity: .72; }

html[data-bs-theme="dark"] body.appnow-good .indicador-clientes-ativos,
html[data-bs-theme="dark"] body.appnow-good .indicador-clientes-inativos,
html[data-bs-theme="dark"] body.appnow-good .indicador-clientes-novos { border-color: var(--bs-border-color); background: var(--bs-body-bg); }
html[data-bs-theme="dark"] body.appnow-good .badge-situacao-cliente.cliente-ativo { color: var(--bs-success-text-emphasis); background: var(--bs-success-bg-subtle); }
html[data-bs-theme="dark"] body.appnow-good .badge-situacao-cliente.cliente-inativo { color: var(--bs-warning-text-emphasis); background: var(--bs-warning-bg-subtle); }
html[data-bs-theme="dark"] body.appnow-good .avatar-cliente { color: var(--bs-primary); background: var(--bs-primary-bg-subtle); }

/* Drawer reutilizável, ancorado à altura real do cabeçalho global. */
body.appnow-good.appnow-drawer-aberto { overflow: hidden; }
body.appnow-good .app-cabecalho.appnow-header-drawer-aberto {
    position: sticky;
    top: 0;
    z-index: 1502;
}
body.appnow-good .appnow-drawer-overlay:not([hidden]) {
    position: fixed;
    z-index: 1500;
    top: var(--appnow-drawer-topo, 60px);
    right: 0;
    bottom: 0;
    left: 0;
    display: block;
    background: rgb(17 24 39 / 45%);
    animation: appnow-drawer-overlay-abrir .18s ease-out both;
}
body.appnow-good .appnow-drawer[hidden],
body.appnow-good .appnow-drawer-overlay[hidden] { display: none !important; }
body.appnow-good .appnow-drawer {
    position: fixed;
    z-index: 1501;
    top: var(--appnow-drawer-topo, 60px);
    right: 0;
    bottom: 0;
    display: flex;
    width: min(540px, 100vw);
    max-height: calc(100dvh - var(--appnow-drawer-topo, 60px));
    flex-direction: column;
    overflow: hidden;
    border-left: 1px solid var(--bs-border-color);
    color: var(--bs-body-color);
    background: var(--bs-body-bg);
    box-shadow: -12px 0 34px rgb(19 44 59 / 16%);
    animation: appnow-drawer-deslizar .22s ease-out both;
}
body.appnow-good .appnow-drawer-cabecalho {
    position: relative;
    z-index: 1;
    display: flex;
    min-height: 88px;
    flex: 0 0 auto;
    align-items: center;
    gap: 14px;
    padding: 14px 18px;
    border-bottom: 1px solid var(--bs-border-color);
    background: var(--bs-body-bg);
}
body.appnow-good .appnow-drawer-icone {
    display: grid;
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    place-items: center;
    border-radius: 12px;
    color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
}
body.appnow-good .appnow-drawer-icone svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
body.appnow-good .appnow-drawer-titulos { min-width: 0; flex: 1; }
body.appnow-good .appnow-drawer-titulos > span { display: block; margin-bottom: 2px; color: var(--bs-text-gray-600); font-size: .66rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
body.appnow-good .appnow-drawer-titulos h2 { margin: 0; color: var(--bs-text-gray-900); font-size: 1.12rem; font-weight: 700; }
body.appnow-good .appnow-drawer-titulos p { margin: 2px 0 0; color: var(--bs-text-gray-600); font-size: .82rem; }
body.appnow-good .appnow-drawer-fechar {
    display: grid;
    width: 38px;
    min-height: 38px;
    flex: 0 0 38px;
    place-items: center;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 8px;
    color: var(--bs-text-gray-700);
    background: transparent;
    font-size: 1.7rem;
    line-height: 1;
}
body.appnow-good .appnow-drawer-fechar:hover { border-color: var(--bs-border-color); color: var(--bs-text-gray-900); background: var(--bs-gray-100); }
body.appnow-good .appnow-drawer-corpo { min-height: 0; flex: 1 1 auto; overflow: auto; overscroll-behavior: contain; padding: 0 16px 18px; }
body.appnow-good .appnow-drawer-abas { position: sticky; z-index: 1; top: 0; display: flex; gap: 8px; border-bottom: 1px solid var(--bs-border-color); background: var(--bs-body-bg); }
body.appnow-good .appnow-drawer-abas button { position: relative; min-height: 48px; padding: 9px 15px; border: 0; border-radius: 0; color: var(--bs-text-gray-600); background: transparent; font-size: .78rem; font-weight: 600; }
body.appnow-good .appnow-drawer-abas button[aria-selected="true"] { color: var(--bs-primary); }
body.appnow-good .appnow-drawer-abas button[aria-selected="true"]::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 3px; border-radius: 3px 3px 0 0; background: var(--bs-primary); content: ""; }
body.appnow-good .appnow-drawer-lista-acoes { display: flex; justify-content: flex-end; padding: 10px 0; }
body.appnow-good .appnow-drawer-novo { min-height: 38px; padding: 8px 13px; border-radius: 8px; font-size: .8rem; }
body.appnow-good .appnow-drawer-novo span { font-size: 1.15rem; line-height: 1; }
body.appnow-good .appnow-drawer-lista { display: grid; gap: 8px; }
body.appnow-good .appnow-endereco-card { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: start; gap: 10px; padding: 12px; border: 1px solid var(--bs-border-color); border-radius: 10px; background: var(--bs-body-bg); }
body.appnow-good .appnow-endereco-card-icone { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 7px; color: var(--bs-primary); background: var(--bs-primary-bg-subtle); }
body.appnow-good .appnow-endereco-card-icone svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
body.appnow-good .appnow-endereco-card-detalhes { min-width: 0; }
body.appnow-good .appnow-endereco-card-detalhes h3 { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 5px; color: var(--bs-text-gray-900); font-size: .8rem; font-weight: 700; }
body.appnow-good .appnow-endereco-card-detalhes p { margin: 2px 0 0; color: var(--bs-text-gray-600); font-size: .74rem; line-height: 1.45; overflow-wrap: anywhere; }
body.appnow-good .appnow-endereco-principal-badge,
body.appnow-good .appnow-endereco-inativo-badge { display: inline-flex; align-items: center; padding: 3px 7px; border-radius: 999px; color: var(--bs-success-text-emphasis); background: var(--bs-success-bg-subtle); font-size: .63rem; font-weight: 700; }
body.appnow-good .appnow-endereco-inativo-badge { color: var(--bs-text-gray-700); background: var(--bs-gray-200); }
body.appnow-good .appnow-endereco-card-acoes { display: flex; align-items: center; gap: 5px; }
body.appnow-good .appnow-endereco-acao { display: grid; width: 34px; min-height: 34px; place-items: center; padding: 6px; border: 1px solid var(--bs-border-color); border-radius: 7px; color: var(--bs-text-gray-700); background: var(--bs-body-bg); }
body.appnow-good .appnow-endereco-acao:hover { border-color: var(--bs-primary); color: var(--bs-primary); background: var(--bs-primary-bg-subtle); }
body.appnow-good .appnow-endereco-acao svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
body.appnow-good .appnow-endereco-acao-perigo:hover { border-color: var(--bs-danger); color: var(--bs-danger); background: var(--bs-danger-bg-subtle); }
body.appnow-good .appnow-drawer-informacao { display: flex; gap: 9px; margin: 9px 0 14px; padding: 11px; border-radius: 8px; color: var(--bs-primary-text-emphasis); background: var(--bs-primary-bg-subtle); }
body.appnow-good .appnow-drawer-informacao > span { flex: 0 0 auto; font-size: 1rem; }
body.appnow-good .appnow-drawer-informacao p { margin: 0; font-size: .7rem; line-height: 1.5; }
body.appnow-good .appnow-drawer-vazio { display: grid; justify-items: center; gap: 7px; padding: 30px 14px; text-align: center; }
body.appnow-good .appnow-drawer-vazio[hidden] { display: none !important; }
body.appnow-good .appnow-drawer-vazio > span { display: grid; width: 44px; height: 44px; place-items: center; border-radius: 12px; color: var(--bs-primary); background: var(--bs-primary-bg-subtle); }
body.appnow-good .appnow-drawer-vazio svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; }
body.appnow-good .appnow-drawer-vazio h3 { margin: 0; color: var(--bs-text-gray-900); font-size: .9rem; }
body.appnow-good .appnow-drawer-vazio p { margin: 0 0 6px; color: var(--bs-text-gray-600); font-size: .75rem; }
body.appnow-good .appnow-drawer-status { margin: 2px 0 8px; color: var(--bs-text-gray-600); font-size: .75rem; }
body.appnow-good .appnow-drawer-status[data-tipo="erro"] { color: var(--bs-danger); }
body.appnow-good .appnow-drawer-status[data-tipo="sucesso"] { color: var(--bs-success); }
body.appnow-good .appnow-drawer-status[hidden] { display: none !important; }
body.appnow-good .appnow-drawer-corpo [data-painel-enderecos="formulario"] { padding: 14px 0 0; }
body.appnow-good .appnow-drawer-corpo [data-painel-enderecos="formulario"][hidden] { display: none !important; }
body.appnow-good .appnow-drawer-corpo [data-endereco-form-titulo] { margin: 0 0 12px; color: var(--bs-text-gray-900); font-size: 1rem; }
body.appnow-good .appnow-drawer-erro { margin-bottom: 10px; padding: 10px 12px; border: 1px solid var(--bs-danger-border-subtle); border-radius: 8px; color: var(--bs-danger-text-emphasis); background: var(--bs-danger-bg-subtle); font-size: .76rem; }
body.appnow-good .appnow-drawer-erro[hidden] { display: none !important; }
body.appnow-good .appnow-endereco-formulario { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(110px, .8fr); grid-template-areas: "final-label cep-label" "final-control cep-control" "cep-status cep-status" "logradouro-label numero-label" "logradouro numero" "complemento-label bairro-label" "complemento bairro" "cidade-label uf-label" "cidade uf" "principal principal"; gap: 5px 12px; margin: 0; padding: 12px; border-radius: 9px; background: var(--bs-app-bg-color); }
body.appnow-good .appnow-endereco-formulario label { margin: 0; align-self: end; color: var(--bs-text-gray-800); font-size: .72rem; font-weight: 600; }
body.appnow-good .appnow-endereco-formulario label span { color: var(--bs-danger); }
body.appnow-good .appnow-endereco-formulario input:not([type="checkbox"]),
body.appnow-good .appnow-endereco-formulario select { width: 100%; min-width: 0; min-height: 38px; padding: 7px 10px; border-radius: 7px; font-size: .77rem; }
body.appnow-good .appnow-endereco-formulario [data-endereco-campo="finalidade"] { grid-area: final-control; }
body.appnow-good .campo-endereco-finalidade { grid-area: final-label; }
body.appnow-good .campo-endereco-cep { grid-area: cep-label; }
body.appnow-good .appnow-endereco-busca-cep { position: relative; grid-area: cep-control; }
body.appnow-good .appnow-endereco-busca-cep input { padding-right: 34px !important; }
body.appnow-good .appnow-endereco-busca-cep > span { position: absolute; top: 6px; right: 9px; color: var(--bs-text-gray-600); font-size: 1.15rem; pointer-events: none; }
body.appnow-good .appnow-endereco-status-cep { grid-area: cep-status; min-height: 0; margin: 0 0 3px; color: var(--bs-text-gray-600); font-size: .67rem; }
body.appnow-good .appnow-endereco-status-cep:empty { display: none; }
body.appnow-good .appnow-endereco-status-cep[data-tipo="erro"] { color: var(--bs-danger); }
body.appnow-good .appnow-endereco-status-cep[data-tipo="sucesso"] { color: var(--bs-success); }
body.appnow-good .campo-endereco-logradouro { grid-area: logradouro-label; }
body.appnow-good .appnow-endereco-formulario [data-endereco-campo="logradouro"] { grid-area: logradouro; }
body.appnow-good .campo-endereco-numero { grid-area: numero-label; }
body.appnow-good .appnow-endereco-formulario [data-endereco-campo="numero"] { grid-area: numero; }
body.appnow-good .campo-endereco-complemento { grid-area: complemento-label; }
body.appnow-good .appnow-endereco-formulario [data-endereco-campo="complemento"] { grid-area: complemento; }
body.appnow-good .campo-endereco-bairro { grid-area: bairro-label; }
body.appnow-good .appnow-endereco-formulario [data-endereco-campo="bairro"] { grid-area: bairro; }
body.appnow-good .campo-endereco-cidade { grid-area: cidade-label; }
body.appnow-good .appnow-endereco-formulario [data-endereco-campo="municipio"] { grid-area: cidade; }
body.appnow-good .campo-endereco-uf { grid-area: uf-label; }
body.appnow-good .appnow-endereco-formulario [data-endereco-campo="estado_regiao"] { grid-area: uf; }
body.appnow-good .appnow-endereco-principal { grid-area: principal; display: flex; align-items: center; gap: 8px; margin-top: 3px !important; }
body.appnow-good .appnow-endereco-principal input { width: 18px !important; min-height: 18px !important; height: 18px; accent-color: var(--bs-primary); }
body.appnow-good .appnow-contato-formulario {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.2fr);
    grid-template-areas: "tipo-label valor-label" "tipo valor" "rotulo-label rotulo-label" "rotulo rotulo" "principal principal" "ativo ativo";
    gap: 5px 12px;
    margin: 0;
    padding: 12px;
    border-radius: 9px;
    background: var(--bs-app-bg-color);
}
body.appnow-good .appnow-contato-formulario > label:not(.appnow-contato-principal):not(.appnow-contato-ativo) { align-self: end; margin: 0; color: var(--bs-text-gray-800); font-size: .72rem; font-weight: 600; }
body.appnow-good .appnow-contato-formulario > label span { color: var(--bs-danger); }
body.appnow-good .appnow-contato-formulario > label small { color: var(--bs-text-muted); font-size: .68rem; font-weight: 400; }
body.appnow-good .appnow-contato-formulario .campo-contato-tipo-label { grid-area: tipo-label; }
body.appnow-good .appnow-contato-formulario .campo-contato-tipo { grid-area: tipo; }
body.appnow-good .appnow-contato-formulario .campo-contato-valor-label { grid-area: valor-label; }
body.appnow-good .appnow-contato-formulario .campo-contato-valor { grid-area: valor; }
body.appnow-good .appnow-contato-formulario .campo-contato-rotulo-label { grid-area: rotulo-label; }
body.appnow-good .appnow-contato-formulario .campo-contato-rotulo { grid-area: rotulo; }
body.appnow-good .appnow-contato-formulario input:not([type="checkbox"]),
body.appnow-good .appnow-contato-formulario select { width: 100%; min-width: 0; min-height: 38px; margin: 0; padding: 7px 10px; border-radius: 7px; font-size: .77rem; }
body.appnow-good .appnow-contato-formulario .appnow-contato-principal,
body.appnow-good .appnow-contato-formulario .appnow-contato-ativo { display: flex; grid-column: 1 / -1; align-items: center; gap: 8px; margin: 5px 0 0; color: var(--bs-text-gray-800); font-size: .74rem; font-weight: 500; }
body.appnow-good .appnow-contato-formulario .appnow-contato-principal input,
body.appnow-good .appnow-contato-formulario .appnow-contato-ativo input { width: 17px; min-height: 17px; height: 17px; flex: 0 0 17px; margin: 0; accent-color: var(--bs-primary); }
body.appnow-good .appnow-contato-formulario .appnow-contato-principal input:disabled { opacity: .55; }
body.appnow-good .appnow-contato-valor { font-weight: 600; }
body.appnow-good .appnow-drawer-rodape { display: flex; min-height: 70px; flex: 0 0 auto; align-items: center; justify-content: flex-end; gap: 10px; padding: 12px 16px max(12px, env(safe-area-inset-bottom)); border-top: 1px solid var(--bs-border-color); background: var(--bs-body-bg); }
body.appnow-good .appnow-drawer-rodape button { min-height: 38px; padding: 8px 13px; border-radius: 8px; font-size: .78rem; }
body.appnow-good .appnow-drawer-rodape button[hidden] { display: none !important; }
body.appnow-good .appnow-drawer-salvar[aria-busy="true"] { opacity: .7; cursor: progress; }
@keyframes appnow-drawer-deslizar { from { transform: translateX(24px); opacity: .9; } to { transform: translateX(0); opacity: 1; } }
@keyframes appnow-drawer-overlay-abrir { from { opacity: 0; } to { opacity: 1; } }
@media (max-width: 700px) {
    body.appnow-good .appnow-drawer { width: 100vw; border-left: 0; }
    body.appnow-good .appnow-endereco-formulario { grid-template-columns: minmax(0, 1fr); grid-template-areas: "final-label" "final-control" "cep-label" "cep-control" "cep-status" "logradouro-label" "logradouro" "numero-label" "numero" "complemento-label" "complemento" "bairro-label" "bairro" "cidade-label" "cidade" "uf-label" "uf" "principal"; }
    body.appnow-good .appnow-endereco-card { grid-template-columns: 30px minmax(0, 1fr); }
    body.appnow-good .appnow-endereco-card-acoes { grid-column: 2; justify-content: flex-start; }
    body.appnow-good .appnow-drawer-rodape { padding-right: max(14px, env(safe-area-inset-right)); padding-left: max(14px, env(safe-area-inset-left)); }
    body.appnow-good .appnow-contato-formulario { grid-template-columns: minmax(0, 1fr); grid-template-areas: "tipo-label" "tipo" "valor-label" "valor" "rotulo-label" "rotulo" "principal" "ativo"; }
}
@media (prefers-reduced-motion: reduce) {
    body.appnow-good .appnow-drawer,
    body.appnow-good .appnow-drawer-overlay { animation-duration: .01ms; }
}

/* Estrutura compartilhada de listas e formulários dos demais módulos. */
body.appnow-good .conteudo:has(.appnow-cadastro-layout),
body.appnow-good .conteudo:has(.appnow-lista) { width: 100%; max-width: none; }
body.appnow-good .conteudo:has(.appnow-cadastro-layout) > .cabecalho-pagina,
body.appnow-good .conteudo:has(.appnow-cadastro-layout) > .notificacao,
body.appnow-good .conteudo:has(.appnow-lista) > .cabecalho-pagina,
body.appnow-good .conteudo:has(.appnow-lista) > .notificacao { width: 100%; max-width: none; }
body.appnow-good .appnow-cadastro-layout { display: grid; grid-template-columns: minmax(0, 1.86fr) minmax(285px, 1fr); align-items: start; gap: 18px; width: 100%; }
body.appnow-good .appnow-cadastro-principal,
body.appnow-good .appnow-cadastro-lateral { display: grid; min-width: 0; gap: 14px; }
body.appnow-good .appnow-formulario { display: grid; width: 100%; max-width: none; gap: 14px; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
body.appnow-good .appnow-form-card { min-width: 0; padding: 17px; border: 1px solid var(--bs-border-color); border-radius: 10px; background: var(--bs-body-bg); box-shadow: 0 1px 3px rgb(33 37 41 / 4%); }
body.appnow-good .appnow-form-cabecalho { display: flex; min-width: 0; align-items: center; gap: 12px; margin: 0 0 15px; }
body.appnow-good .appnow-form-icone { display: inline-flex; width: 40px; height: 40px; flex: 0 0 40px; align-items: center; justify-content: center; border-radius: 9px; color: var(--bs-primary-text-emphasis); background: var(--bs-primary-light); font-size: 1.15rem; font-weight: 700; }
body.appnow-good .appnow-form-icone svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
body.appnow-good .appnow-form-cabecalho > div { min-width: 0; flex: 1; }
body.appnow-good .appnow-form-cabecalho h2 { margin: 0 0 3px; color: var(--bs-text-gray-900); font-size: .98rem; font-weight: 650; }
body.appnow-good .appnow-form-cabecalho p,
body.appnow-good .appnow-form-ajuda { margin: 0; color: var(--bs-text-gray-600); font-size: .78rem; }
body.appnow-good .appnow-logo-empresa { display: block; width: min(100%, 220px); height: 128px; margin: 0 auto 1rem; object-fit: contain; border: 1px solid var(--bs-border-color); border-radius: .8rem; background: var(--bs-body-bg); }
body.appnow-good .appnow-logo-empresa-temporario { padding: .5rem; border-style: dashed; }
body.appnow-good .appnow-logo-empresa-vazio { display: grid; place-items: center; width: min(100%, 220px); height: 128px; margin: 0 auto 1rem; color: var(--bs-text-gray-600); border: 1px dashed var(--bs-border-color); border-radius: .8rem; }
body.appnow-good .appnow-form-logo { gap: .75rem; }
body.appnow-good .profissional-usuario-vinculado { display: block; margin-top: .15rem; color: var(--bs-text-gray-600); font-size: .75rem; font-weight: 400; }
body.appnow-good .appnow-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 15px; }
body.appnow-good .appnow-campo { display: grid; min-width: 0; align-content: start; gap: 5px; }
body.appnow-good .appnow-campo.campo-largo { grid-column: 1 / -1; }
body.appnow-good .appnow-campo > label { margin: 0; color: var(--bs-text-gray-800); font-size: .76rem; font-weight: 550; }
body.appnow-good .appnow-campo input:not([type="checkbox"]),
body.appnow-good .appnow-campo select,
body.appnow-good .appnow-campo textarea { width: 100%; min-width: 0; min-height: 39px; margin: 0; padding: 8px 10px; border: 1px solid var(--bs-border-color); border-radius: 7px; color: var(--bs-text-gray-800); background: var(--bs-body-bg); font: inherit; font-size: .8rem; }
body.appnow-good .appnow-campo textarea { min-height: 82px; resize: vertical; }
body.appnow-good .appnow-campo > span.field-validation-error { color: var(--bs-danger); font-size: .74rem; }
body.appnow-good .appnow-campo .ajuda { margin: 0; color: var(--bs-text-gray-600); font-size: .7rem; }
body.appnow-good .appnow-status-cep { grid-column: 1 / -1; min-height: 0; margin: -7px 0 0; color: var(--bs-text-gray-600); font-size: .72rem; }
body.appnow-good .appnow-checkbox { display: flex; grid-column: 1 / -1; align-items: flex-start; gap: 9px; margin: 3px 0 0; color: var(--bs-text-gray-800); font-size: .78rem; cursor: pointer; }
body.appnow-good .appnow-checkbox input,
body.appnow-good .appnow-opcao-servico input { width: 17px; min-width: 17px; height: 17px; margin: 1px 0 0; accent-color: var(--bs-primary); }
body.appnow-good .appnow-checkbox span,
body.appnow-good .appnow-opcao-servico span { display: grid; gap: 2px; }
body.appnow-good .appnow-checkbox small,
body.appnow-good .appnow-opcao-servico small { color: var(--bs-text-gray-600); font-size: .71rem; }
body.appnow-good .appnow-opcoes-servicos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; border: 0; }
body.appnow-good .appnow-opcao-servico { display: flex; min-width: 0; min-height: 45px; align-items: flex-start; gap: 9px; margin: 0; padding: 10px; border: 1px solid var(--bs-border-color); border-radius: 7px; color: var(--bs-text-gray-800); background: var(--bs-body-bg); font-size: .77rem; cursor: pointer; }
body.appnow-good .appnow-form-rodape { position: sticky; bottom: 10px; z-index: 2; display: flex; min-height: 62px; align-items: center; justify-content: flex-end; gap: 9px; padding: 10px 12px; border: 1px solid var(--bs-border-color); border-radius: 10px; background: var(--bs-body-bg); box-shadow: 0 3px 14px rgb(33 37 41 / 9%); }
body.appnow-good .appnow-form-rodape a,
body.appnow-good .appnow-form-rodape button { display: inline-flex; min-height: 38px; align-items: center; justify-content: center; margin: 0; padding: 8px 13px; border: 1px solid var(--bs-border-color); border-radius: 7px; font-size: .79rem; font-weight: 600; text-decoration: none; }
body.appnow-good .appnow-form-rodape a { color: var(--bs-text-gray-700); background: var(--bs-body-bg); }
body.appnow-good .appnow-form-rodape button { border-color: var(--bs-primary); color: var(--bs-primary-text-emphasis); background: var(--bs-primary); }
body.appnow-good .appnow-form-rodape button.secundario { border-color: var(--bs-border-color); color: var(--bs-text-gray-700); background: var(--bs-body-bg); }
body.appnow-good .appnow-tabela-form td select,
body.appnow-good .appnow-tabela-form td input { width: 100%; min-width: 110px; min-height: 36px; margin: 0; padding: 6px 8px; border: 1px solid var(--bs-border-color); border-radius: 6px; color: var(--bs-text-gray-800); background: var(--bs-body-bg); font: inherit; font-size: .78rem; }
body.appnow-good .appnow-tabela-form td button { min-height: 34px; margin: 0; padding: 6px 9px; border: 1px solid var(--bs-border-color); border-radius: 6px; color: var(--bs-text-gray-700); background: var(--bs-body-bg); font-size: .75rem; }
body.appnow-good .secao-organizacao .linha-organizacao { display: flex; min-height: 54px; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--bs-border-color); }
body.appnow-good .secao-organizacao .linha-organizacao > div { display: grid; gap: 2px; }
body.appnow-good .secao-organizacao .acesso-grupo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 10px; margin: 10px 0 0; padding: 12px; border: 1px solid var(--bs-border-color); border-radius: 8px; background: var(--bs-body-bg); }
body.appnow-good .secao-organizacao .acesso-grupo h3 { grid-column: 1 / -1; margin: 0; font-size: .84rem; }
body.appnow-good .secao-organizacao .acesso-grupo button { grid-column: 1 / -1; justify-self: start; }
body.appnow-good .appnow-auditoria { display: grid; gap: 10px; margin: 0; }
body.appnow-good .appnow-auditoria > div { display: grid; gap: 2px; }
body.appnow-good .appnow-auditoria dt { color: var(--bs-text-gray-600); font-size: .7rem; font-weight: 500; }
body.appnow-good .appnow-auditoria dd { margin: 0; color: var(--bs-text-gray-800); font-size: .78rem; overflow-wrap: anywhere; }
body.appnow-good .appnow-lista { overflow: hidden; border: 1px solid var(--bs-border-color); border-radius: 10px; background: var(--bs-body-bg); box-shadow: 0 1px 3px rgb(33 37 41 / 4%); }
body.appnow-good .appnow-lista-filtros { display: flex; align-items: center; gap: 10px; margin: 0; padding: 12px; border-bottom: 1px solid var(--bs-border-color); }
body.appnow-good .appnow-lista-intro { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 14px; border-bottom: 1px solid var(--bs-border-color); }
body.appnow-good .appnow-lista-intro h2 { margin: 0 0 3px; color: var(--bs-text-gray-900); font-size: .95rem; font-weight: 650; }
body.appnow-good .appnow-lista-intro p { margin: 0; color: var(--bs-text-gray-600); font-size: .78rem; }
body.appnow-good .appnow-abas-lista { display: flex; flex-wrap: wrap; gap: 18px; margin: 0 0 14px; border-bottom: 1px solid var(--bs-border-color); }
body.appnow-good .appnow-abas-lista a { display: inline-flex; min-height: 40px; align-items: center; padding: 0 3px; border-bottom: 2px solid transparent; color: var(--bs-text-gray-600); font-size: .82rem; font-weight: 550; text-decoration: none; }
body.appnow-good .appnow-abas-lista a:hover,
body.appnow-good .appnow-abas-lista a.ativa { border-bottom-color: var(--bs-primary); color: var(--bs-primary-text-emphasis); }
body.appnow-good .appnow-lista-busca { position: relative; display: flex; min-width: 180px; flex: 1 1 320px; align-items: center; margin: 0; }
body.appnow-good .appnow-lista-busca svg { position: absolute; left: 12px; width: 19px; height: 19px; fill: none; stroke: var(--bs-text-muted); stroke-width: 1.8; stroke-linecap: round; }
body.appnow-good .appnow-lista-busca input { width: 100%; min-height: 40px; margin: 0; padding: 8px 12px 8px 38px; border-radius: 7px; font-size: .84rem; }
body.appnow-good .appnow-lista-filtros > button { min-height: 40px; margin: 0; padding: 7px 13px; border-radius: 7px; font-size: .82rem; }
body.appnow-good .appnow-lista-rolagem { overflow-x: auto; }
body.appnow-good .appnow-tabela { width: 100%; min-width: 800px; border-collapse: separate; border-spacing: 0; font-size: .82rem; }
body.appnow-good .appnow-tabela th { height: 40px; padding: 7px 12px; border-bottom: 1px solid var(--bs-border-color); color: var(--bs-text-gray-600); background: var(--bs-gray-100); font-size: .68rem; font-weight: 600; letter-spacing: .035em; text-align: left; text-transform: uppercase; white-space: nowrap; }
body.appnow-good .appnow-tabela td { min-height: 44px; padding: 8px 12px; border-bottom: 1px solid var(--bs-border-color); color: var(--bs-text-gray-700); vertical-align: middle; }
body.appnow-good .appnow-tabela tbody tr:last-child td { border-bottom: 0; }
body.appnow-good .appnow-tabela td > strong { color: var(--bs-text-gray-900); font-weight: 600; }
body.appnow-good .appnow-tabela td > small { display: block; overflow: hidden; max-width: 360px; margin-top: 2px; color: var(--bs-text-gray-600); text-overflow: ellipsis; white-space: nowrap; }
body.appnow-good .appnow-lista-rodape { display: flex; min-height: 56px; align-items: center; justify-content: space-between; gap: 14px; padding: 8px 14px; border-top: 1px solid var(--bs-border-color); color: var(--bs-text-gray-600); font-size: .78rem; }
body.appnow-good .appnow-lista-vazio { margin: 0; padding: 35px 18px; border: 0; border-radius: 0; box-shadow: none; }
html[data-bs-theme="dark"] body.appnow-good .appnow-form-card,
html[data-bs-theme="dark"] body.appnow-good .appnow-form-rodape,
html[data-bs-theme="dark"] body.appnow-good .appnow-lista { box-shadow: 0 2px 8px rgb(0 0 0 / 18%); }
@media (max-width: 1050px) {
    body.appnow-good .appnow-cadastro-layout { grid-template-columns: minmax(0, 1.5fr) minmax(245px, 1fr); gap: 14px; }
}
@media (max-width: 720px) {
    body.appnow-good .appnow-cadastro-layout { grid-template-columns: minmax(0, 1fr); }
    body.appnow-good .appnow-lista-filtros { flex-wrap: wrap; }
    body.appnow-good .appnow-lista-intro { align-items: flex-start; flex-direction: column; }
    body.appnow-good .appnow-lista-busca { flex-basis: 100%; }
    body.appnow-good .appnow-form-grid,
    body.appnow-good .appnow-opcoes-servicos { grid-template-columns: minmax(0, 1fr); }
    body.appnow-good .appnow-campo.campo-largo { grid-column: auto; }
    body.appnow-good .appnow-form-rodape { position: static; flex-direction: column-reverse; align-items: stretch; }
    body.appnow-good .appnow-form-rodape a,
    body.appnow-good .appnow-form-rodape button { width: 100%; }
    body.appnow-good .secao-organizacao .linha-organizacao,
    body.appnow-good .secao-organizacao .acesso-grupo { grid-template-columns: minmax(0, 1fr); align-items: stretch; }
    body.appnow-good .secao-organizacao .linha-organizacao { flex-direction: column; align-items: stretch; }
    body.appnow-good .secao-organizacao .acesso-grupo h3,
    body.appnow-good .secao-organizacao .acesso-grupo button { grid-column: auto; }
}

/* Atalhos mantêm os formulários de clientes alinhados à nova listagem. */
body.appnow-good .atalhos-cadastro-cliente,
body.appnow-good .navegacao-formulario-cliente {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    width: min(100%, 980px);
    margin: 0 0 14px;
}
body.appnow-good .atalhos-cadastro-cliente .botao-secundario,
body.appnow-good .navegacao-formulario-cliente a {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    padding: 8px 12px;
    border: 1px solid var(--bs-border-color);
    border-radius: 7px;
    color: var(--bs-text-gray-700);
    background: var(--bs-body-bg);
    font-size: .8rem;
    font-weight: 600;
    text-decoration: none;
}
body.appnow-good .atalhos-cadastro-cliente .botao-secundario:hover,
body.appnow-good .navegacao-formulario-cliente a:hover {
    border-color: var(--bs-primary);
    color: var(--bs-link-color);
    background: var(--bs-primary-light);
}
body.appnow-good .cabecalho-pagina-corpo .acao-primaria-pagina span { margin-right: 7px; }

/* Cadastro e edição compartilham a mesma composição, com painel lateral contextual. */
body.appnow-good .conteudo:has(.cliente-cadastro-layout) { width: 100%; max-width: none; }
body.appnow-good .conteudo:has(.cliente-cadastro-layout) > .cabecalho-pagina,
body.appnow-good .conteudo:has(.cliente-cadastro-layout) > .notificacao { width: 100%; max-width: none; }
body.appnow-good .cliente-cadastro-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.86fr) minmax(285px, 1fr);
    align-items: start;
    gap: 18px;
    width: 100%;
}
body.appnow-good .cliente-cadastro-principal,
body.appnow-good .cliente-cadastro-lateral { min-width: 0; }
body.appnow-good .cliente-cadastro-principal > form.cliente-formulario {
    display: flex;
    width: 100%;
    max-width: none;
    flex-direction: column;
    gap: 14px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
body.appnow-good .cliente-secao-card,
body.appnow-good .cliente-painel-card {
    min-width: 0;
    padding: 17px;
    border: 1px solid var(--bs-border-color);
    border-radius: 10px;
    background: var(--bs-body-bg);
    box-shadow: 0 1px 3px rgb(33 37 41 / 4%);
}
body.appnow-good .cliente-secao-cabecalho,
body.appnow-good .cliente-painel-cabecalho {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 12px;
    margin: 0 0 15px;
}
body.appnow-good .cliente-secao-icone,
body.appnow-good .cliente-painel-icone {
    display: inline-flex;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    color: var(--bs-primary);
    background: var(--bs-primary-light);
    font-size: 1.25rem;
}
body.appnow-good .cliente-secao-icone svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
body.appnow-good .cliente-secao-cabecalho > div,
body.appnow-good .cliente-painel-cabecalho > div { min-width: 0; flex: 1; }
body.appnow-good .cliente-secao-cabecalho h2,
body.appnow-good .cliente-painel-cabecalho h2 { margin: 0 0 3px; color: var(--bs-text-gray-900); font-size: 1rem; font-weight: 700; }
body.appnow-good .cliente-secao-cabecalho p,
body.appnow-good .cliente-painel-cabecalho p { margin: 0; color: var(--bs-text-gray-600); font-size: .78rem; line-height: 1.4; }
body.appnow-good .cliente-campos-principais,
body.appnow-good .cliente-campos-pessoa,
body.appnow-good .cliente-campos-contato {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px 14px;
    min-width: 0;
}
body.appnow-good .cliente-campos-pessoa { margin-top: 11px; }
body.appnow-good .cliente-campos-pessoa[hidden] { display: none !important; }
body.appnow-good .cliente-campo { min-width: 0; }
body.appnow-good .cliente-campo-largo { grid-column: 1 / -1; }
body.appnow-good .cliente-formulario .cliente-campo label {
    display: block;
    margin: 0 0 5px;
    color: var(--bs-text-gray-800);
    font-size: .78rem;
    font-weight: 600;
}
body.appnow-good .cliente-campo label > span { color: var(--bs-danger); }
body.appnow-good .cliente-campo label small { color: var(--bs-text-muted); font-size: .72rem; font-weight: 400; }
body.appnow-good .cliente-formulario .cliente-campo input,
body.appnow-good .cliente-formulario .cliente-campo select {
    width: 100%;
    min-width: 0;
    min-height: 40px;
    margin: 0;
    padding: 8px 11px;
    border: 1px solid var(--bs-border-color);
    border-radius: 7px;
    color: var(--bs-body-color);
    background: var(--bs-body-bg);
    font-size: .82rem;
}
body.appnow-good .cliente-formulario .cliente-campo input:focus,
body.appnow-good .cliente-formulario .cliente-campo select:focus { border-color: var(--bs-primary); box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--bs-primary) 15%, transparent); }
body.appnow-good .cliente-formulario .cliente-campo input::placeholder { color: var(--bs-text-muted); }
body.appnow-good .cliente-formulario .cliente-campo > span { display: block; margin-top: 4px; color: var(--bs-danger); font-size: .75rem; }
body.appnow-good .cliente-situacao-badge {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 6px;
    padding: 5px 9px;
    border-radius: 999px;
    font-size: .7rem;
    font-weight: 700;
}
body.appnow-good .cliente-situacao-badge i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
body.appnow-good .cliente-situacao-badge.ativo { color: var(--bs-success-text-emphasis); background: var(--bs-success-bg-subtle); }
body.appnow-good .cliente-situacao-badge.inativo { color: var(--bs-secondary-color); background: var(--bs-secondary-bg); }
body.appnow-good .cliente-secao-situacao { padding-top: 14px; padding-bottom: 14px; }
body.appnow-good .cliente-secao-situacao .cliente-secao-cabecalho { margin-bottom: 11px; }
body.appnow-good .cliente-ativo-controle { display: flex; min-height: 42px; align-items: center; gap: 10px; margin: 0; cursor: pointer; }
body.appnow-good .cliente-ativo-controle input { width: 18px; height: 18px; flex: 0 0 18px; accent-color: var(--bs-primary); }
body.appnow-good .cliente-ativo-controle span,
body.appnow-good .cliente-ativo-controle strong,
body.appnow-good .cliente-ativo-controle small { display: block; }
body.appnow-good .cliente-ativo-controle strong { color: var(--bs-text-gray-900); font-size: .8rem; }
body.appnow-good .cliente-ativo-controle small { margin-top: 2px; color: var(--bs-text-gray-600); font-size: .75rem; }
body.appnow-good .cliente-formulario > [asp-validation-summary],
body.appnow-good .cliente-formulario > .validation-summary-errors { margin: 0; }
body.appnow-good .cliente-formulario-rodape {
    position: sticky;
    bottom: 0;
    z-index: 2;
    display: flex;
    min-height: 62px;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 2px;
    padding: 10px 12px;
    border: 1px solid var(--bs-border-color);
    border-radius: 10px;
    background: color-mix(in srgb, var(--bs-body-bg) 94%, transparent);
    box-shadow: 0 -5px 18px rgb(33 37 41 / 5%);
    backdrop-filter: blur(8px);
}
body.appnow-good .cliente-formulario-rodape a,
body.appnow-good .cliente-formulario-rodape button,
body.appnow-good .cliente-vinculo-formulario button {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 8px 14px;
    border: 1px solid var(--bs-border-color);
    border-radius: 7px;
    font-size: .8rem;
    font-weight: 650;
    text-decoration: none;
    cursor: pointer;
}
body.appnow-good .cliente-formulario-rodape a,
body.appnow-good .cliente-vinculo-formulario button { color: var(--bs-text-gray-800); background: var(--bs-body-bg); }
body.appnow-good .cliente-formulario-rodape button { border-color: var(--bs-primary); color: var(--bs-primary-text-emphasis); background: var(--bs-primary); }
body.appnow-good .cliente-formulario-rodape a:hover,
body.appnow-good .cliente-vinculo-formulario button:hover { border-color: var(--bs-primary); color: var(--bs-link-color); }
body.appnow-good .cliente-formulario-rodape button:hover { filter: brightness(.96); }
body.appnow-good .cliente-cadastro-lateral { display: grid; gap: 14px; }
body.appnow-good .cliente-painel-card { padding: 15px; }
body.appnow-good .cliente-painel-cabecalho { align-items: flex-start; gap: 10px; margin-bottom: 13px; }
body.appnow-good .cliente-painel-icone { width: 34px; height: 34px; flex-basis: 34px; border-radius: 8px; font-size: 1.05rem; }
body.appnow-good .cliente-painel-cabecalho h2 { font-size: .9rem; }
body.appnow-good .cliente-painel-icone svg,
body.appnow-good .cliente-painel-acao svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
body.appnow-good .cliente-painel-cabecalho p,
body.appnow-good .cliente-painel-ajuda { color: var(--bs-text-gray-600); font-size: .74rem; line-height: 1.5; }
body.appnow-good .cliente-painel-ajuda { margin: 0; }
body.appnow-good .cliente-vinculo-status { margin: 0 0 5px; color: var(--bs-text-gray-800); font-size: .8rem; font-weight: 700; }
body.appnow-good .cliente-vinculo-status.vinculado { color: var(--bs-success-text-emphasis); }
body.appnow-good .cliente-vinculo-status span { margin-right: 5px; font-size: .7rem; }
body.appnow-good .cliente-vinculo-formulario { margin-top: 12px; }
body.appnow-good .cliente-painel-acao {
    display: flex;
    width: 100%;
    min-height: 40px;
    align-items: center;
    gap: 9px;
    margin: 0;
    padding: 8px 9px;
    border: 1px solid var(--bs-border-color);
    border-radius: 7px;
    color: var(--bs-text-gray-800);
    background: var(--bs-body-bg);
    font-size: .77rem;
    font-weight: 600;
    text-align: left;
    text-decoration: none;
}
body.appnow-good .cliente-painel-acao + .cliente-painel-acao { margin-top: 8px; }
body.appnow-good .cliente-painel-acao span:first-child { display: inline-flex; color: var(--bs-primary); }
body.appnow-good .cliente-painel-acao span:last-child { margin-left: auto; color: var(--bs-text-muted); }
body.appnow-good .cliente-painel-acao:hover { border-color: var(--bs-primary); color: var(--bs-link-color); background: var(--bs-primary-bg-subtle); }
body.appnow-good .cliente-auditoria-lista { display: grid; gap: 9px; margin: 0; }
body.appnow-good .cliente-auditoria-lista > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; }
body.appnow-good .cliente-auditoria-lista dt { color: var(--bs-text-gray-600); font-size: .73rem; font-weight: 500; }
body.appnow-good .cliente-auditoria-lista dd { margin: 0; color: var(--bs-text-gray-900); font-size: .74rem; font-weight: 650; text-align: right; overflow-wrap: anywhere; }
body.appnow-good .cliente-painel-link { display: flex; justify-content: space-between; gap: 8px; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--bs-border-color); color: var(--bs-link-color); font-size: .76rem; font-weight: 650; text-decoration: none; }
body.appnow-good .cliente-painel-link:hover { color: var(--bs-link-hover-color); }
html[data-bs-theme="dark"] body.appnow-good .cliente-secao-card,
html[data-bs-theme="dark"] body.appnow-good .cliente-painel-card { background: var(--bs-body-bg); box-shadow: none; }
html[data-bs-theme="dark"] body.appnow-good .cliente-formulario-rodape { box-shadow: 0 -5px 18px rgb(0 0 0 / 20%); }
@media (max-width: 1050px) {
    body.appnow-good .cliente-cadastro-layout { grid-template-columns: minmax(0, 1.55fr) minmax(255px, 1fr); gap: 14px; }
    body.appnow-good .cliente-secao-card { padding: 14px; }
}
@media (max-width: 820px) {
    body.appnow-good .cliente-cadastro-layout { grid-template-columns: minmax(0, 1fr); }
    body.appnow-good .cliente-cadastro-lateral { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
    body.appnow-good .cliente-cadastro-lateral > .cliente-painel-card:last-of-type { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
    body.appnow-good .cliente-cadastro-lateral { grid-template-columns: minmax(0, 1fr); }
    body.appnow-good .cliente-cadastro-lateral > .cliente-painel-card:last-of-type { grid-column: auto; }
    body.appnow-good .cliente-secao-card,
    body.appnow-good .cliente-painel-card { padding: 13px; }
    body.appnow-good .cliente-campos-principais,
    body.appnow-good .cliente-campos-pessoa,
    body.appnow-good .cliente-campos-contato { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    body.appnow-good .cliente-campo-largo { grid-column: auto; }
    body.appnow-good .cliente-secao-cabecalho { gap: 9px; }
    body.appnow-good .cliente-secao-icone { width: 36px; height: 36px; flex-basis: 36px; }
    body.appnow-good .cliente-situacao-badge { padding: 4px 7px; font-size: .66rem; }
    body.appnow-good .cliente-formulario-rodape { position: static; flex-direction: column-reverse; align-items: stretch; }
    body.appnow-good .cliente-formulario-rodape a,
    body.appnow-good .cliente-formulario-rodape button { width: 100%; }
}
.cliente-foto-avatar{position:relative;overflow:visible!important;background:var(--bs-primary-bg-subtle);color:var(--bs-primary)}
.cliente-foto-avatar .cliente-foto-placeholder,.cliente-foto-avatar [data-foto-preview]{position:absolute;inset:0;width:100%;height:100%;border-radius:inherit}
.cliente-foto-avatar .cliente-foto-placeholder{display:grid;place-items:center}
.cliente-foto-avatar .cliente-foto-placeholder svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cliente-foto-avatar [data-foto-preview]{object-fit:cover;background:var(--bs-body-bg)}
.cliente-foto-avatar [data-foto-preview][hidden]{display:none}
.cliente-foto-editar,.cliente-foto-remover{position:absolute;z-index:2;display:grid;place-items:center;width:23px;height:23px;padding:3px;border:2px solid var(--bs-body-bg);border-radius:50%;background:var(--bs-primary);color:var(--bs-body-bg);cursor:pointer}
.cliente-foto-editar{right:-5px;bottom:-5px}
.cliente-foto-remover{right:-8px;top:-8px;background:var(--bs-danger)}
.cliente-foto-editar svg,.cliente-foto-remover svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cliente-foto-arquivo{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap}
.cliente-foto-avatar:focus-within .cliente-foto-editar,.cliente-foto-avatar:hover .cliente-foto-editar{outline:2px solid var(--bs-body-bg);box-shadow:0 0 0 3px var(--bs-primary)}
@media(prefers-reduced-motion:no-preference){.cliente-foto-editar,.cliente-foto-remover{transition:transform .15s ease,background-color .15s ease}.cliente-foto-editar:hover,.cliente-foto-remover:hover{transform:scale(1.08)}}
.appnow-disponibilidade-formulario{display:grid;gap:12px}
.appnow-disponibilidade-formulario>label,.appnow-disponibilidade-faixa label{display:grid;gap:5px;color:var(--bs-text-gray-800);font-size:.76rem;font-weight:600}
.appnow-disponibilidade-formulario select,.appnow-disponibilidade-faixa select,.appnow-disponibilidade-faixa input{width:100%;min-width:0;min-height:38px;padding:7px 9px;border:1px solid var(--bs-border-color);border-radius:7px;color:var(--bs-body-color);background:var(--bs-body-bg);font-size:.78rem}
.appnow-disponibilidade-ajuda{margin:0;color:var(--bs-text-gray-600);font-size:.74rem;line-height:1.45}
.appnow-disponibilidade-lista{display:grid;gap:8px}
.appnow-disponibilidade-faixa{display:grid;grid-template-columns:minmax(130px,1.2fr) minmax(90px,.8fr) minmax(90px,.8fr) auto;align-items:end;gap:8px;margin:0;padding:10px;border:1px solid var(--bs-border-color);border-radius:9px}
.appnow-disponibilidade-remover{min-height:36px;padding:6px 8px;border:1px solid var(--bs-border-color);border-radius:7px;color:var(--bs-danger);background:var(--bs-body-bg);font-size:.74rem;cursor:pointer}
.appnow-disponibilidade-adicionar{justify-self:start;min-height:38px}
@media(max-width:560px){.appnow-disponibilidade-faixa{grid-template-columns:repeat(2,minmax(0,1fr))}.appnow-disponibilidade-remover{grid-column:1/-1;justify-self:start}}

/* Galeria usa as superfícies e temas existentes. */
.galeria-servico-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 16px; }
.galeria-servico-item img, .galeria-servico-item video { display: block; width: 100%; max-height: 320px; object-fit: contain; border-radius: 8px; }
.galeria-servico-item form, [data-galeria-corpo] form { display: grid; gap: 10px; margin-top: 12px; }
.galeria-servico-item label, [data-galeria-corpo] label { display: grid; gap: 4px; }
.galeria-servico-item input[type=checkbox], [data-galeria-corpo] input[type=checkbox] { width: auto; }

/* Patrimônio reutiliza a grade de Clientes; apenas dimensões das colunas. */
body.appnow-good .lista-bens .ferramentas-lista-clientes { flex-wrap: wrap; }
body.appnow-good .lista-bens .coluna-bem-nome { width: 30%; }
body.appnow-good .lista-bens .coluna-bem-codigo { width: 14%; }
body.appnow-good .lista-bens .coluna-bem-categoria { width: 16%; }
body.appnow-good .lista-bens .coluna-bem-situacao { width: 14%; }
body.appnow-good .lista-bens .coluna-bem-cadastro { width: 18%; }
body.appnow-good .lista-bens .coluna-bem-acoes { width: 8%; }

body.appnow-good .cliente-formulario > .bem-formulario-campos { display: flex; flex-direction: column; gap: 14px; }

/* Aplicação global da paleta. Sem alterações na composição ou nas medidas das telas. */
html[data-bs-theme], html[data-bs-theme] body.appnow-good,
html[data-bs-theme] body.appnow-good .app-shell,
html[data-bs-theme] body.appnow-good .area-principal,
html[data-bs-theme] body.appnow-good .conteudo { color: var(--bs-body-color); background-color: var(--bs-app-bg-color); }
html[data-bs-theme] body.appnow-good .menu-aplicacao { color-scheme: dark; scrollbar-color: var(--appnow-menu-border) var(--appnow-menu-bg); color: var(--appnow-menu-text); border-color: var(--appnow-menu-border); background: var(--appnow-menu-bg); box-shadow: none; }
html[data-bs-theme] body.appnow-good .menu-aplicacao .marca-menu { color: var(--appnow-on-navy); }
html[data-bs-theme] body.appnow-good .menu-aplicacao .marca-destaque { color: var(--appnow-menu-indicator); }
html[data-bs-theme] body.appnow-good .menu-legenda,
html[data-bs-theme] body.appnow-good .menu-empresa small { color: var(--appnow-menu-muted); }
html[data-bs-theme] body.appnow-good .menu-empresa { border-color: var(--appnow-menu-border); background: transparent; }
html[data-bs-theme] body.appnow-good .menu-empresa strong { color: var(--appnow-menu-text); }
html[data-bs-theme] body.appnow-good .nav-item { position: relative; color: var(--appnow-menu-text); }
html[data-bs-theme] body.appnow-good .nav-item:hover { color: var(--appnow-on-navy); background: var(--appnow-menu-hover-bg); }
html[data-bs-theme] body.appnow-good .nav-item.ativo { color: var(--appnow-menu-active); background: var(--appnow-menu-active-bg); }
html[data-bs-theme] body.appnow-good .nav-item.ativo::before { content: ""; position: absolute; inset-block: 8px; left: 0; width: 3px; border-radius: 3px; background: var(--appnow-menu-indicator); }
html[data-bs-theme] body.appnow-good .app-cabecalho { color: var(--bs-body-color); border-color: var(--bs-border-color); background: var(--appnow-header-bg); box-shadow: 0 1px 3px rgb(15 23 42 / 3%); }
html[data-bs-theme] body.appnow-good .empresa-seletor,
html[data-bs-theme] body.appnow-good .empresa-seletor-valor,
html[data-bs-theme] body.appnow-good .conta-opcoes,
html[data-bs-theme] body.appnow-good .tema-opcoes { color: var(--bs-body-color); border-color: var(--bs-border-color); background: var(--bs-body-bg); }
html[data-bs-theme] body.appnow-good .empresa-seletor-valor strong,
html[data-bs-theme] body.appnow-good .empresa-cabecalho strong { color: var(--bs-body-color); }
html[data-bs-theme] body.appnow-good .marca-simbolo { color: var(--appnow-on-accent); background: var(--bs-primary); }
html[data-bs-theme] body.appnow-good .avatar { color: var(--bs-link-color); background: var(--bs-primary-bg-subtle); }
html[data-bs-theme] body.appnow-good :is(.cliente-secao-card,.cliente-painel-card,.appnow-form-card,.cartao-resumo,.cartao-vazio,.cartao-compromisso,.cartao-filtros-agenda,.dia-semana,.item-semana,.kanban-coluna,.kanban-cartao,.lista-clientes,.historico-cadastro),
html[data-bs-theme] body.appnow-good .conteudo > form { color: var(--bs-body-color); border-color: var(--bs-border-color); border-radius: var(--appnow-card-radius); background-color: var(--bs-body-bg); box-shadow: var(--appnow-card-shadow); }
html[data-bs-theme] body.appnow-good :is(.cliente-secao-icone,.cliente-painel-icone,.appnow-form-icone,.appnow-drawer-icone) { color: var(--bs-link-color); background: var(--bs-primary-bg-subtle); }
html[data-bs-theme] body.appnow-good .conteudo :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),select,textarea,.form-control,.form-select),
html[data-bs-theme] body.appnow-good .appnow-drawer :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea) { color: var(--bs-body-color); border-color: var(--bs-border-color); background-color: var(--appnow-input-bg); }
html[data-bs-theme] body.appnow-good :is(input,textarea)::placeholder { color: var(--bs-text-muted); opacity: 1; }
html[data-bs-theme] body.appnow-good :is(input,select,textarea):focus-visible { border-color: var(--bs-primary); outline: 2px solid var(--bs-primary); outline-offset: 1px; box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--bs-primary) 16%, transparent); }
html[data-bs-theme] body.appnow-good :is(a,button,summary):focus-visible { outline: 2px solid var(--bs-link-color); outline-offset: 3px; }
html[data-bs-theme] body.appnow-good .menu-aplicacao a:focus-visible { outline-color: var(--appnow-menu-indicator); }
html[data-bs-theme] body.appnow-good :is(.btn-primary,.botao:where(:not(.secundario):not(.botao-secundario)),button[type="submit"]:where(:not(.botao-secundario):not(.botao-sair):not(.acao-perigo):not(.btn-danger):not(.btn-light-danger):not(.botao-perigo):not(.btn-warning):not(.btn-success)),.cliente-formulario-rodape button,.appnow-form-rodape button) { color: var(--appnow-on-accent); border-color: var(--bs-primary); background: var(--bs-primary); }
html[data-bs-theme] body.appnow-good :is(.btn-primary,.botao:where(:not(.secundario):not(.botao-secundario)),button[type="submit"]:where(:not(.botao-secundario):not(.botao-sair):not(.acao-perigo):not(.btn-danger):not(.btn-light-danger):not(.botao-perigo):not(.btn-warning):not(.btn-success)),.cliente-formulario-rodape button,.appnow-form-rodape button):hover { color: var(--appnow-on-accent); border-color: var(--appnow-accent-hover); background: var(--appnow-accent-hover); filter: none; }
html[data-bs-theme] body.appnow-good :is(.botao-secundario,.appnow-drawer-fechar,.appnow-drawer-fechar-lista,.btn-secondary,.btn-outline-primary,.secundario,.botao.secundario,.cliente-painel-acao,.cliente-formulario-rodape a,.cliente-vinculo-formulario button,.appnow-form-rodape a,.acao-primaria-pagina.botao-secundario,.acao-icone-cliente) { color: var(--bs-text-gray-800); border-color: var(--bs-border-color); background: var(--bs-body-bg); box-shadow: none; }
html[data-bs-theme] body.appnow-good :is(.botao-secundario,.appnow-drawer-fechar,.appnow-drawer-fechar-lista,.btn-secondary,.btn-outline-primary,.secundario,.botao.secundario,.cliente-painel-acao,.cliente-formulario-rodape a,.cliente-vinculo-formulario button,.appnow-form-rodape a,.acao-icone-cliente):hover { color: var(--bs-link-color); border-color: var(--bs-primary-border-subtle); background: var(--bs-primary-bg-subtle); }
html[data-bs-theme] body.appnow-good .cliente-painel-acao { justify-content: flex-start; }
html[data-bs-theme] body.appnow-good .cliente-painel-acao > span { color: var(--bs-link-color); }
html[data-bs-theme] body.appnow-good .cliente-painel-acao::after { content: "›"; margin-left: auto; color: var(--bs-text-gray-600); }
html[data-bs-theme] body.appnow-good .cliente-vinculo-formulario .botao-secundario { color: var(--bs-link-color); border-color: var(--bs-primary-border-subtle); background: var(--bs-primary-bg-subtle); }
html[data-bs-theme] body.appnow-good .cliente-formulario-rodape,
html[data-bs-theme] body.appnow-good .appnow-form-rodape { border-color: var(--bs-border-color); background: var(--appnow-header-bg); box-shadow: var(--appnow-card-shadow); }
html[data-bs-theme] body.appnow-good :is(.appnow-drawer,.appnow-drawer-cabecalho,.agenda-modal,.agenda-modal-cabecalho) { color: var(--bs-body-color); border-color: var(--bs-border-color); background: var(--bs-body-bg); }
html[data-bs-theme] body.appnow-good .cliente-foto-editar { color: var(--appnow-on-accent); border-color: var(--bs-body-bg); background: var(--bs-primary); }
html[data-bs-theme] body.appnow-good .cliente-foto-remover { color: var(--bs-danger-inverse); border-color: var(--bs-body-bg); background: var(--bs-danger); }
html[data-bs-theme] body.appnow-good :is(.cliente-situacao-badge.ativo,.badge-situacao-cliente.cliente-ativo) { color: var(--bs-success-text-emphasis); background: var(--bs-success-bg-subtle); }
html[data-bs-theme] body.appnow-good :is(.validation-summary-errors,.field-validation-error,.tema-feedback,.appnow-drawer-erro) { color: var(--bs-danger-text-emphasis); }
html[data-bs-theme] body.appnow-good :is(.paginacao-clientes .pagina-atual,.agenda-alternador .ativo) { color: var(--appnow-on-accent); background: var(--bs-primary); border-color: var(--bs-primary); }
html[data-bs-theme] body.appnow-good :is(.text-muted,.form-text) { color: var(--bs-text-muted) !important; }
html[data-bs-theme] body.pagina-conta { background: var(--bs-app-bg-color); color: var(--bs-body-color); }
html[data-bs-theme] body.pagina-conta .auth-card { color: var(--bs-body-color); border-color: var(--bs-border-color); background: var(--bs-body-bg); }
html[data-bs-theme] body.pagina-conta :is(input,select,textarea) { color: var(--bs-body-color); border-color: var(--bs-border-color); background: var(--appnow-input-bg); }

html[data-bs-theme] .tema-opcoes button[aria-pressed="true"], html[data-bs-theme] .tema-opcoes button:hover, html[data-bs-theme] .tema-opcoes button span { color: var(--bs-link-color); }

html[data-bs-theme] body.appnow-good :is(.text-primary,.text-info) { color: var(--bs-link-color) !important; }
html[data-bs-theme] body.appnow-good .text-success { color: var(--bs-success-text-emphasis) !important; }
html[data-bs-theme] body.appnow-good .text-warning { color: var(--bs-warning-text-emphasis) !important; }
html[data-bs-theme] body.appnow-good :is(.text-danger,.acao-perigo,.botao-perigo) { color: var(--bs-danger-text-emphasis) !important; }

html[data-bs-theme] body.appnow-good .appnow-drawer-abas button[aria-selected="true"] { color: var(--bs-link-color); }

html[data-bs-theme] body.appnow-good .conteudo th a { color: var(--bs-text-gray-600); }
html[data-bs-theme] body.appnow-good .conteudo th a:hover { color: var(--bs-link-color); }

body.portal-cliente .entrada-aplicacao { width: 100%; max-width: 1100px; margin: 24px auto; }
body.portal-cliente .pagina-publica-agendamento > .cliente-secao-card { margin-top: 16px; }
body.portal-cliente .texto-demanda-orcamento { white-space: pre-wrap; overflow-wrap: anywhere; }

body.portal-cliente .cliente-cadastro-layout { margin-top: 16px; }
body.portal-cliente .pagina-publica-agendamento { overflow-wrap: anywhere; }
