/* 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;
    --appnow-action-bg: #087f79;
    --appnow-action-hover: #066b67;
    --appnow-action-color: #ffffff;
    --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 .avatar-foto-conta { display: block; width: 100%; height: 100%; border-radius: inherit; object-fit: cover; }
body.appnow-good .appnow-good-header .conta-opcoes { width: min(330px, calc(100vw - 24px)); padding: 8px; }
body.appnow-good .conta-menu-perfil { display: flex; align-items: center; gap: 12px; padding: 12px; margin-bottom: 6px; border-bottom: 1px solid var(--bs-border-color); }
body.appnow-good .conta-menu-foto, body.appnow-good .conta-menu-avatar { display: grid; width: 46px; height: 46px; flex: 0 0 46px; place-items: center; overflow: hidden; border-radius: 50%; object-fit: cover; color: var(--bs-primary); background: var(--bs-primary-bg-subtle); font-weight: 700; }
body.appnow-good .conta-menu-perfil div { display: grid; min-width: 0; gap: 3px; }
body.appnow-good .conta-menu-perfil strong { color: var(--bs-body-color); font-size: .95rem; }
body.appnow-good .conta-menu-perfil div span { overflow: hidden; color: var(--bs-secondary-color); font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }
body.appnow-good .conta-menu-grupo-titulo { display: block; padding: 8px 12px 4px; color: var(--bs-secondary-color); font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
body.appnow-good .conta-opcoes .saida { margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--bs-border-color); }
body.appnow-good .conta-opcoes .botao-sair { width: 100%; text-align: left; }
body.appnow-good .conta-foto-card { margin-bottom: 16px; }
body.appnow-good .conta-foto-card .cadastro-foto-preview { width: 112px; height: 112px; flex-basis: 112px; border-radius: 50%; }
body.appnow-good .conta-foto-card .cadastro-foto-preview img { border-radius: 50%; }
body.appnow-good .conta-foto-card .cadastro-foto-acoes { display: flex; flex-wrap: wrap; gap: 8px; }
body.appnow-good .conta-foto-card .cadastro-foto-acoes button { width: auto; min-height: 40px; margin: 0; }
body.appnow-good .conta-foto-salvar { padding: 8px 16px; border: 0; border-radius: 8px; color: var(--appnow-action-color); background: var(--appnow-action-bg); font-weight: 600; }
body.appnow-good .conta-alterar-senha-form .senha-linha { display: flex; align-items: center; }
body.appnow-good .conta-alterar-senha-form .senha-linha > input { flex: 1; min-width: 0; }
body.appnow-good .conta-alterar-senha-form .senha-controles { display: flex; }
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(--appnow-action-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):not(.botao-secundario):not(.botao-perigo):not(.acao-perigo)),
body.appnow-good .conteudo .botao:where(:not(.secundario):not(.botao-secundario)) {
    min-height: 46px;
    padding: .7rem 1.25rem;
    border: 1px solid var(--appnow-action-bg);
    border-radius: var(--bs-border-radius);
    color: var(--appnow-action-color);
    background-color: var(--appnow-action-bg);
    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):not(.botao-secundario):not(.botao-perigo):not(.acao-perigo)):hover,
body.appnow-good .conteudo .botao:where(:not(.secundario):not(.botao-secundario)):hover {
    color: var(--appnow-action-color);
    border-color: var(--appnow-action-hover);
    background-color: var(--appnow-action-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 .auth-card .cadastro-login { margin: 16px 0 0; text-align: center; }
body.pagina-conta .auth-card .cadastro-login a { font-weight: 700; }
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-action-color);
    border-color: var(--appnow-action-bg);
    border-radius: var(--bs-border-radius);
    background: var(--appnow-action-bg);
}
body.pagina-conta .auth-card button:not(.btn):hover { color: var(--appnow-action-color); border-color: var(--appnow-action-hover); background: var(--appnow-action-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(--appnow-action-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-action-color); border-color: var(--appnow-action-bg); background: var(--appnow-action-bg); }
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; }
@media (min-width: 761px) {
    body.appnow-good .app-cabecalho { padding-left: 4px; }
    body.appnow-good .botao-menu-lateral {
        position: absolute;
        top: 11px;
        left: 4px;
        flex-shrink: 0;
    }
}
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-logo { width: 24px; height: 24px; flex: 0 0 24px; border-radius: 6px; object-fit: contain; background: var(--bs-body-bg); }
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; }
body.appnow-good .menu-modulo { min-width: 0; width: 100%; }
body.appnow-good .menu-modulo > summary { display: list-item; cursor: pointer; padding: 10px 6px; margin: 0; user-select: none; }
body.appnow-good .menu-modulo > .nav-item { margin-top: 4px; }
body.appnow-good .menu-tela { min-width: 0; }
body.appnow-good .menu-subtelas { padding-left: 12px; }
body.appnow-good .menu-subtelas > summary { cursor: pointer; padding: 6px 8px; color: var(--appnow-menu-muted); font-size: .75rem; }
body.appnow-good .menu-subtelas .nav-item { font-size: .8rem; }
body.appnow-good .menu-editor-lista { display: grid; gap: 14px; }
body.appnow-good .menu-editor-item { display: flex; flex-wrap: wrap; gap: 12px; padding: 16px; border: 1px solid var(--bs-border-color); border-radius: 10px; background: var(--bs-body-bg); }
body.appnow-good .menu-editor-item legend { float: none; width: auto; font-size: 1rem; font-weight: 600; }
body.appnow-good .menu-editor-item label { display: flex; flex: 1 1 180px; flex-direction: column; gap: 6px; }
body.appnow-good .menu-editor-item .menu-editor-visivel { flex-direction: row; align-items: center; }
body.appnow-good .menu-editor-item .menu-editor-visivel input { width: auto; }
body.appnow-good .menu-editor-item small { flex-basis: 100%; }
body.appnow-good .menu-editor-acoes { display: flex; gap: 16px; align-items: center; margin: 20px 0; }
@media (min-width: 761px) {
    html[data-appnow-sidebar="recolhida"] body.appnow-good .menu-modulo > summary { display: list-item; overflow: hidden; font-size: 0; min-height: 24px; }
    html[data-appnow-sidebar="recolhida"] body.appnow-good .menu-modulo > summary::marker { font-size: 14px; }
}

/* 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(--appnow-action-color); border-color: var(--appnow-action-bg); background: var(--appnow-action-bg); box-shadow: 0 3px 8px rgb(8 127 121 / 22%); font-size: .88rem; font-weight: 650; white-space: nowrap; }
body.appnow-good .acao-primaria-pagina:hover { color: var(--appnow-action-color); border-color: var(--appnow-action-hover); background: var(--appnow-action-hover); filter: none; }
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 .badge-situacao-cliente.financeiro-atrasado { color: var(--bs-danger-text-emphasis); background: var(--bs-danger-bg-subtle); }
body.appnow-good .badge-situacao-cliente.financeiro-parcial { color: var(--bs-warning-text-emphasis); background: var(--bs-warning-bg-subtle); }
body.appnow-good .badge-situacao-cliente.financeiro-finalizada { color: var(--bs-success-text-emphasis); background: var(--bs-success-bg-subtle); }
body.appnow-good .badge-situacao-cliente.financeiro-aberta { color: var(--bs-text-gray-700); background: var(--bs-app-bg-color); }
body.appnow-good .financeiro-identidade { display: grid; gap: 3px; min-width: 170px; }
body.appnow-good .financeiro-identidade small { color: var(--bs-text-muted); font-size: .72rem; }
body.appnow-good .financeiro-valor { white-space: nowrap; font-variant-numeric: tabular-nums; }
body.appnow-good .financeiro-detalhe { display: block; }
body.appnow-good .financeiro-detalhe dl { display: grid; grid-template-columns: minmax(130px, .7fr) minmax(0, 1.3fr); gap: 10px 18px; margin: 18px 0 0; }
body.appnow-good .financeiro-detalhe dt { color: var(--bs-secondary-color); font-size: .84rem; }
body.appnow-good .financeiro-detalhe dd { margin: 0; color: var(--bs-body-color); font-size: .88rem; }
body.appnow-good .financeiro-operacao { display: block; max-width: 720px; margin-top: 16px; }
body.appnow-good .financeiro-movimento { display: grid; gap: 6px; padding: 14px 0; border-top: 1px solid var(--bs-border-color); }
body.appnow-good .financeiro-movimento h3,body.appnow-good .financeiro-movimento p { margin: 0; font-size: .84rem; }
body.appnow-good .financeiro-movimento-alerta { color: var(--bs-danger); }
body.appnow-good .financeiro-devolucao-form { margin-top: 8px; }
body.appnow-good .financeiro-devolucao-form summary { color: var(--bs-link-color); cursor: pointer; font-size: .84rem; font-weight: 600; }
body.appnow-good .financeiro-devolucao-form form,body.appnow-good .financeiro-finalizar-devolucao { margin-top: 12px; }
body.appnow-good .financeiro-operacao form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 16px; }
body.appnow-good .campo-financeiro { display: grid; align-content: start; gap: 5px; min-width: 0; }
body.appnow-good .campo-financeiro-largo { grid-column: 1 / -1; }
body.appnow-good .campo-financeiro label { color: var(--bs-body-color); font-size: .82rem; font-weight: 600; }
body.appnow-good .campo-financeiro :is(input,select,textarea) { width: 100%; min-width: 0; min-height: 40px; padding: 8px 11px; border: 1px solid var(--bs-border-color); border-radius: 7px; color: var(--bs-body-color); background: var(--bs-body-bg); font: inherit; font-size: .84rem; }
body.appnow-good .campo-financeiro textarea { min-height: 84px; }
body.appnow-good .campo-financeiro small,body.appnow-good .campo-financeiro span { color: var(--bs-secondary-color); font-size: .76rem; }
body.appnow-good .financeiro-operacao form > button { grid-column: 1 / -1; justify-self: start; }
@media (max-width: 600px) {
    body.appnow-good .financeiro-detalhe dl,
    body.appnow-good .financeiro-operacao form { grid-template-columns: minmax(0, 1fr); }
    body.appnow-good .financeiro-operacao form > button { grid-column: auto; }
}
body.appnow-good .tabela-listagem-financeiro { min-width: 930px; }
html[data-bs-theme="dark"] body.appnow-good .badge-situacao-cliente.financeiro-aberta { color: var(--bs-text-gray-700); background: var(--bs-app-bg-color); }
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(--appnow-action-bg); color: var(--appnow-action-color); background: var(--appnow-action-bg); 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 .menu-modulo > summary { display: list-item; }
    body.appnow-good .menu-aplicacao .navegacao-principal { display: flex; flex-direction: column; flex-wrap: nowrap; overflow-x: hidden; width: 100%; gap: 7px; }
    body.appnow-good .menu-aplicacao .nav-item { flex: 0 0 auto; flex-direction: row; width: 100%; min-width: 0; min-height: 42px; gap: 10px; padding: 10px 12px; font-size: .875rem; text-align: left; }
    body.appnow-good .menu-aplicacao .nav-item .rotulo-mobile { display: none; }
    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; }
    html[data-appnow-sidebar="recolhida"] body.appnow-good .menu-aplicacao .nav-item .rotulo-desktop { display: inline; }
    html[data-appnow-sidebar="recolhida"] body.appnow-good .menu-aplicacao .nav-item { justify-content: flex-start; padding: 10px 12px; }
    html[data-appnow-sidebar="recolhida"] body.appnow-good .menu-aplicacao .menu-subtelas .rotulo-desktop { display: inline; }
}
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:not(.secundario):not(.botao-secundario) { border-color: var(--appnow-action-bg); color: var(--appnow-action-color); background: var(--appnow-action-bg); }
body.appnow-good .appnow-form-rodape button:is(.secundario,.botao-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:not(.secundario):not(.botao-secundario):not(.botao-perigo) { border-color: var(--appnow-action-bg); color: var(--appnow-action-color); background: var(--appnow-action-bg); }
body.appnow-good .cliente-formulario-rodape button:is(.secundario,.botao-secundario) { border-color: var(--bs-border-color); color: var(--bs-text-gray-700); background: var(--bs-body-bg); }
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:not(.secundario):not(.botao-secundario):not(.botao-perigo):hover { color: var(--appnow-action-color); border-color: var(--appnow-action-hover); background: var(--appnow-action-hover); filter: none; }
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-area,
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); }
/* O Good fixa body em 100%; permitir crescimento evita conteúdo fora do fundo. */
html[data-bs-theme] body.appnow-good.pagina-aplicacao { height: auto; min-height: 100dvh; }
/* A estrutura não encolhe ao tamanho da janela quando o conteúdo é mais longo. */
html[data-bs-theme] body.appnow-good .app-shell { flex: 1 0 auto; background-color: var(--appnow-menu-bg); }
html[data-bs-theme] body.appnow-good .app-area { min-height: 100dvh; }
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):not(.botao-perigo):not(.acao-perigo)),button[type="submit"]:where(:not(.secundario):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:where(:not(.secundario):not(.botao-secundario):not(.acao-perigo):not(.botao-perigo)),.appnow-form-rodape button:where(:not(.secundario):not(.botao-secundario):not(.acao-perigo):not(.botao-perigo)),.acao-primaria-pagina,.primeiros-passos-continuar) { color: var(--appnow-action-color); border-color: var(--appnow-action-bg); background: var(--appnow-action-bg); }
html[data-bs-theme] body.appnow-good :is(.btn-primary,.botao:where(:not(.secundario):not(.botao-secundario):not(.botao-perigo):not(.acao-perigo)),button[type="submit"]:where(:not(.secundario):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:where(:not(.secundario):not(.botao-secundario):not(.acao-perigo):not(.botao-perigo)),.appnow-form-rodape button:where(:not(.secundario):not(.botao-secundario):not(.acao-perigo):not(.botao-perigo)),.acao-primaria-pagina,.primeiros-passos-continuar):hover { color: var(--appnow-action-color); border-color: var(--appnow-action-hover); background: var(--appnow-action-hover); filter: none; }
html[data-bs-theme] body.pagina-conta .auth-card :is(button:not(.btn),.btn-primary) { color: var(--appnow-action-color); border-color: var(--appnow-action-bg); background: var(--appnow-action-bg); }
html[data-bs-theme] body.pagina-conta .auth-card :is(button:not(.btn),.btn-primary):hover { color: var(--appnow-action-color); border-color: var(--appnow-action-hover); background: var(--appnow-action-hover); }
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-action-color); border-color: var(--bs-body-bg); background: var(--appnow-action-bg); }
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-action-color); background: var(--appnow-action-bg); border-color: var(--appnow-action-bg); }
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; }

/* Agenda unificada: calendário e Kanban, preservando filtros e tema do host. */
body.appnow-good .agenda-pagina-cabecalho { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin:0 0 18px; }
body.appnow-good .agenda-sobretitulo { margin:0 0 5px; color:var(--bs-primary); font-size:.68rem; font-weight:800; letter-spacing:.08em; }
body.appnow-good .agenda-pagina-cabecalho .pagina-agenda-titulo { margin:0 0 5px; }
body.appnow-good .agenda-indicadores { display:flex; flex-wrap:wrap; gap:9px; margin:0 0 14px; }
body.appnow-good .agenda-indicador { display:flex; min-width:132px; min-height:52px; align-items:center; gap:8px; padding:8px 12px; border:1px solid var(--bs-border-color); border-radius:10px; color:var(--bs-body-color); background:var(--bs-body-bg); text-decoration:none; transition:border-color .15s,background-color .15s; }
body.appnow-good .agenda-indicador:hover,body.appnow-good .agenda-indicador.ativo { border-color:var(--bs-primary-border-subtle); background:var(--bs-primary-bg-subtle); }
body.appnow-good .agenda-indicador strong { margin-left:auto; color:var(--bs-body-color); font-size:1rem; }
body.appnow-good .agenda-indicador-icone { display:grid; width:27px; height:27px; flex:0 0 27px; place-items:center; border-radius:8px; color:var(--bs-primary); background:var(--bs-primary-bg-subtle); font-size:.78rem; }
body.appnow-good .agenda-indicador-confirmado .agenda-indicador-icone,body.appnow-good .situacao-confirmado { --agenda-cor:var(--bs-success); --agenda-fundo:color-mix(in srgb,var(--bs-success) 9%,var(--bs-body-bg)); }
body.appnow-good .agenda-indicador-concluido .agenda-indicador-icone,body.appnow-good .situacao-concluido { --agenda-cor:var(--bs-info); --agenda-fundo:color-mix(in srgb,var(--bs-info) 9%,var(--bs-body-bg)); }
body.appnow-good .agenda-indicador-falta .agenda-indicador-icone,body.appnow-good .situacao-falta { --agenda-cor:var(--bs-warning); --agenda-fundo:color-mix(in srgb,var(--bs-warning) 12%,var(--bs-body-bg)); }
body.appnow-good .agenda-indicador-cancelado .agenda-indicador-icone,body.appnow-good .situacao-cancelado { --agenda-cor:var(--bs-danger); --agenda-fundo:color-mix(in srgb,var(--bs-danger) 8%,var(--bs-body-bg)); }
body.appnow-good .agenda-indicador-bloqueio .agenda-indicador-icone,body.appnow-good .situacao-bloqueio { --agenda-cor:var(--bs-gray-600); --agenda-fundo:color-mix(in srgb,var(--bs-gray-500) 10%,var(--bs-body-bg)); }
body.appnow-good .agenda-indicador-confirmado .agenda-indicador-icone,body.appnow-good .agenda-indicador-concluido .agenda-indicador-icone,body.appnow-good .agenda-indicador-falta .agenda-indicador-icone,body.appnow-good .agenda-indicador-cancelado .agenda-indicador-icone,body.appnow-good .agenda-indicador-bloqueio .agenda-indicador-icone { color:var(--agenda-cor); background:var(--agenda-fundo); }
body.appnow-good .agenda-controles { margin:0 0 15px; overflow:visible; }
body.appnow-good .agenda-filtros { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:10px; padding:13px 15px; }
body.appnow-good .agenda-filtros-form { display:grid; width:100%; grid-template-columns:minmax(210px,1.5fr) minmax(165px,1fr) minmax(145px,.8fr) auto auto; align-items:center; gap:9px; }
body.appnow-good .agenda-filtros-form label { min-width:0; margin:0; }
body.appnow-good .agenda-filtros-form .form-select { min-height:40px; border-radius:8px; }
body.appnow-good .agenda-busca { display:flex; min-width:0; height:40px; align-items:center; gap:9px; padding:0 11px; border:1px solid var(--bs-border-color); border-radius:8px; background:var(--appnow-input-bg,var(--bs-body-bg)); }
body.appnow-good .agenda-busca:focus-within { border-color:var(--bs-primary); outline:2px solid color-mix(in srgb,var(--bs-primary) 20%,transparent); }
body.appnow-good .agenda-busca > span { color:var(--bs-text-gray-600); font-size:1.25rem; line-height:1; }
body.appnow-good .agenda-busca input { width:100%; min-width:0; height:100%; padding:0; border:0!important; outline:0!important; background:transparent!important; box-shadow:none!important; color:var(--bs-body-color); }
body.appnow-good .agenda-incluir-cancelados { display:flex; min-height:40px; align-items:center; gap:7px; white-space:nowrap; color:var(--bs-text-gray-700); font-size:.78rem; }
body.appnow-good .agenda-incluir-cancelados input { width:17px; height:17px; accent-color:var(--bs-primary); }
body.appnow-good .agenda-filtros-form > .btn { min-height:40px; }
body.appnow-good .agenda-limpar-filtros { flex:0 0 auto; min-height:40px; display:inline-flex; align-items:center; padding:0 7px; font-size:.78rem; }
body.appnow-good .agenda-navegacao-periodo { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 9px; padding:2px 0 8px; }
body.appnow-good .agenda-periodos,body.appnow-good .agenda-visualizacoes,body.appnow-good .agenda-data-navegacao { display:flex; align-items:center; gap:6px; }
body.appnow-good .agenda-periodos .btn,body.appnow-good .agenda-visualizacoes .btn,body.appnow-good .agenda-data-navegacao .btn { min-height:38px; border-radius:8px; }
body.appnow-good .agenda-periodos { gap:0; flex:0 0 auto; }
body.appnow-good .agenda-periodos .btn { min-width:66px; border-radius:0; }
body.appnow-good .agenda-periodos .btn:first-child { border-radius:8px 0 0 8px; }
body.appnow-good .agenda-periodos .btn:last-child { border-radius:0 8px 8px 0; }
body.appnow-good .agenda-periodos .btn + .btn { margin-left:-1px; }
body.appnow-good .agenda-data-navegacao { min-width:0; flex-wrap:nowrap; }
body.appnow-good .agenda-data-navegacao .agenda-seta { width:38px; justify-content:center; padding:0; font-size:1.15rem; }
body.appnow-good .agenda-data-icone { width:19px; height:19px; flex:0 0 19px; margin-left:12px; color:var(--bs-text-gray-700); }
body.appnow-good .agenda-periodo-titulo { margin-left:3px; color:var(--bs-text-gray-800); font-size:.88rem; text-transform:capitalize; white-space:nowrap; }
body.appnow-good .agenda-fuso { color:var(--bs-text-gray-600); font-size:.72rem; white-space:nowrap; }
body.appnow-good .agenda-alerta { display:flex; align-items:flex-start; gap:12px; margin:0 0 14px; padding:14px 16px; border:1px solid var(--bs-danger-border-subtle); border-radius:10px; color:var(--bs-danger-text-emphasis); background:var(--bs-danger-bg-subtle); overflow-wrap:anywhere; }
body.appnow-good .agenda-alerta > span { display:grid; width:24px; height:24px; flex:0 0 24px; place-items:center; border-radius:50%; color:var(--bs-danger-inverse); background:var(--bs-danger); font-weight:800; }
body.appnow-good .agenda-alerta .validation-summary-errors ul { margin:4px 0 0; padding-left:18px; }
body.appnow-good .agenda-periodo-ajuda { margin:8px 0 12px; color:var(--bs-text-gray-600); font-size:.78rem; }
body.appnow-good .agenda-dia-rolagem { max-width:100%; margin:0 0 16px; overflow-x:auto; border:1px solid var(--bs-border-color); border-radius:10px; background:var(--bs-body-bg); box-shadow:var(--appnow-card-shadow); overscroll-behavior-inline:contain; }
body.appnow-good .agenda-dia-rolagem:focus-visible { outline:2px solid var(--bs-primary); outline-offset:2px; }
body.appnow-good .agenda-dia-grade { display:grid; width:100%; min-width:max-content; grid-template-columns:64px repeat(var(--agenda-profissionais),minmax(220px,1fr)); grid-template-rows:56px var(--agenda-altura); }
body.appnow-good .agenda-dia-canto,body.appnow-good .agenda-dia-cabecalho { display:flex; align-items:center; gap:8px; padding:9px 11px; border-bottom:1px solid var(--bs-border-color); background:var(--bs-body-bg); }
body.appnow-good .agenda-dia-canto { justify-content:center; color:var(--bs-text-gray-600); font-size:.69rem; font-weight:700; }
body.appnow-good .agenda-dia-cabecalho { min-width:0; border-left:1px solid var(--bs-border-color); }
body.appnow-good .agenda-dia-profissional-info { display:flex; min-width:0; flex-direction:column; gap:2px; }
body.appnow-good .agenda-dia-profissional-info strong { overflow:hidden; color:var(--bs-text-gray-800); font-size:.82rem; text-overflow:ellipsis; white-space:nowrap; }
body.appnow-good .agenda-dia-profissional-info small { color:var(--bs-text-gray-600); font-size:.68rem; }
body.appnow-good .agenda-dia-eixo,body.appnow-good .agenda-dia-profissional { position:relative; min-width:0; height:var(--agenda-altura); background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 71px,var(--bs-border-color) 71px,var(--bs-border-color) 72px); }
body.appnow-good .agenda-dia-eixo { color:var(--bs-text-gray-600); }
body.appnow-good .agenda-dia-eixo time { position:absolute; right:8px; transform:translateY(-50%); background:var(--bs-body-bg); font-size:.68rem; font-weight:700; }
body.appnow-good .agenda-dia-eixo time:first-child { transform:none; }
body.appnow-good .agenda-dia-eixo time:last-of-type { transform:translateY(-100%); }
body.appnow-good .agenda-dia-profissional { border-left:1px solid var(--bs-border-color); }
body.appnow-good .agenda-dia-evento { position:absolute; z-index:1; top:var(--agenda-top); left:calc(var(--agenda-faixa) * 100% / var(--agenda-faixas) + 3px); width:calc(100% / var(--agenda-faixas) - 6px); height:var(--agenda-duracao); min-width:0; padding:4px 6px; overflow:hidden; border:1px solid var(--bs-border-color); border-left:3px solid var(--agenda-cor,var(--bs-primary)); border-radius:6px; color:var(--bs-body-color); background:var(--agenda-fundo,var(--bs-primary-bg-subtle)); }
body.appnow-good .agenda-dia-evento:focus-within { z-index:3; min-height:76px; overflow:visible; outline:2px solid var(--bs-primary); outline-offset:1px; }
body.appnow-good .agenda-dia-evento-horario,body.appnow-good .agenda-dia-evento-cliente { display:flex; min-width:0; align-items:center; gap:4px; }
body.appnow-good .agenda-dia-evento-horario { justify-content:space-between; }
body.appnow-good .agenda-dia-evento-horario time { color:var(--bs-text-gray-700); font-size:.64rem; font-weight:750; white-space:nowrap; }
body.appnow-good .agenda-dia-evento .agenda-situacao { overflow:hidden; font-size:.58rem; text-overflow:ellipsis; }
body.appnow-good .agenda-dia-evento .agenda-situacao > span { width:6px; height:6px; flex-basis:6px; }
body.appnow-good .agenda-dia-evento-cliente .agenda-cliente-link,body.appnow-good .agenda-dia-evento-cliente > strong { min-width:0; min-height:24px; overflow:hidden; color:var(--bs-text-gray-900); font-size:.69rem; font-weight:750; text-overflow:ellipsis; white-space:nowrap; }
body.appnow-good .agenda-dia-evento-servico { display:block; overflow:hidden; color:var(--bs-text-gray-600); font-size:.62rem; text-overflow:ellipsis; white-space:nowrap; }
body.appnow-good .agenda-dia-evento-detalhes { position:absolute; right:4px; bottom:2px; display:inline-flex; min-height:16px; align-items:center; padding:0 2px; color:var(--bs-link-color); background:var(--agenda-fundo,var(--bs-body-bg)); font-size:.58rem; font-weight:700; text-decoration:none; }
body.appnow-good .agenda-dia-evento-detalhes:hover { text-decoration:underline; }
body.appnow-good .agenda-dia-agora-linha { position:absolute; z-index:2; right:0; left:0; height:1px; background:var(--bs-danger); pointer-events:none; }
body.appnow-good .agenda-dia-agora-linha::before { position:absolute; top:-3px; left:-3px; width:7px; height:7px; border-radius:50%; background:var(--bs-danger); content:""; }
body.appnow-good .agenda-dia-agora-hora { position:absolute; z-index:2; right:4px; transform:translateY(-50%); padding:2px 3px; border-radius:3px; color:#fff; background:var(--bs-danger); font-size:.61rem; font-weight:800; }
body.appnow-good .agenda-avatar { display:grid; width:31px; height:31px; flex:0 0 31px; place-items:center; border-radius:50%; color:var(--bs-primary); background:var(--bs-primary-bg-subtle); font-size:.72rem; font-weight:800; }
body.appnow-good .agenda-avatar-imagem { display:block; object-fit:cover; }
body.appnow-good .agenda-avatar-foto { border-radius:50%; }
body.appnow-good .agenda-avatar-mini { width:23px; height:23px; flex-basis:23px; font-size:.59rem; }
body.appnow-good .agenda-compromisso-cliente,body.appnow-good .kanban-cliente { display:flex; min-width:0; align-items:center; gap:7px; }
body.appnow-good .agenda-compromisso-cliente > span:last-child,body.appnow-good .kanban-cliente > span:last-child { min-width:0; overflow-wrap:anywhere; }
body.appnow-good .agenda-cliente-link { display:inline-flex; min-width:0; min-height:32px; align-items:center; color:var(--bs-text-gray-900); font-weight:700; text-decoration:none; overflow-wrap:anywhere; }
body.appnow-good .agenda-cliente-link:hover { color:var(--bs-primary); text-decoration:underline; }
body.appnow-good .agenda-cliente-link:focus-visible,body.appnow-good .agenda-mes-detalhes:focus-visible { border-radius:4px; outline:2px solid var(--bs-primary); outline-offset:2px; }
body.appnow-good .agenda-dia-total { display:grid; min-width:25px; height:25px; place-items:center; border-radius:7px; background:var(--bs-gray-100); font-size:.72rem; font-weight:700; }
body.appnow-good .agenda-vazio-coluna { margin:10px 0 2px; padding:12px 6px; color:var(--bs-text-muted); font-size:.76rem; text-align:center; }
body.appnow-good .agenda-compromisso { min-width:0; margin:9px 0 0; padding:10px 11px; border:1px solid var(--bs-border-color); border-left:3px solid var(--agenda-cor,var(--bs-primary)); border-radius:8px; color:var(--bs-body-color); background:var(--agenda-fundo,var(--bs-body-bg)); }
body.appnow-good .agenda-compromisso-faixa { display:flex; align-items:center; justify-content:space-between; gap:7px; }
body.appnow-good .agenda-compromisso time { color:var(--bs-text-gray-700); font-size:.72rem; font-weight:750; white-space:nowrap; }
body.appnow-good .agenda-compromisso h3 { margin:6px 0 3px; overflow-wrap:anywhere; color:var(--bs-text-gray-900); font-size:.83rem; font-weight:700; }
body.appnow-good .agenda-compromisso p { margin:0 0 3px; color:var(--bs-text-gray-600); font-size:.74rem; overflow-wrap:anywhere; }
body.appnow-good .agenda-compromisso-profissional { display:flex; align-items:center; gap:6px; font-size:.68rem!important; }
body.appnow-good .agenda-situacao { display:inline-flex; align-items:center; gap:5px; color:var(--agenda-cor,var(--bs-text-gray-600)); font-size:.68rem; font-weight:700; white-space:nowrap; }
body.appnow-good .agenda-situacao > span { width:7px; height:7px; flex:0 0 7px; border-radius:50%; background:var(--agenda-cor,var(--bs-text-gray-600)); }
body.appnow-good .agenda-valor { color:var(--bs-primary); font-size:.74rem; font-weight:750; }
body.appnow-good .agenda-tipo-bloqueio { display:inline-flex; padding:3px 7px; border-radius:999px; color:var(--agenda-cor,var(--bs-text-gray-600)); background:var(--agenda-fundo,var(--bs-gray-100)); font-size:.66rem; font-weight:700; }
body.appnow-good .agenda-compromisso-detalhes { display:inline-flex; min-height:36px; align-items:center; margin:4px 0 -4px; color:var(--bs-link-color); font-size:.72rem; font-weight:700; }
body.appnow-good .agenda-semana-grade { display:grid; grid-template-columns:repeat(7,minmax(175px,1fr)); gap:9px; margin:0 0 16px; padding-bottom:8px; overflow-x:auto; overscroll-behavior-inline:contain; }
body.appnow-good .agenda-dia-coluna { min-width:0; min-height:180px; padding:8px; border:1px solid var(--bs-border-color); border-radius:9px; background:var(--bs-body-bg); }
body.appnow-good .agenda-dia-coluna > header { display:flex; align-items:center; gap:7px; padding:4px 4px 8px; border-bottom:1px solid var(--bs-border-color); }
body.appnow-good .agenda-dia-coluna > header span { color:var(--bs-text-gray-700); font-size:.73rem; text-transform:capitalize; }
body.appnow-good .agenda-dia-coluna > header strong { color:var(--bs-text-gray-900); font-size:.78rem; }
body.appnow-good .agenda-dia-coluna > header small { margin-left:auto; color:var(--bs-text-muted); }
body.appnow-good .agenda-dia-coluna .agenda-compromisso { padding:8px; }
body.appnow-good .agenda-dia-coluna .agenda-compromisso-faixa { align-items:flex-start; flex-direction:column; gap:3px; }
body.appnow-good .agenda-dia-coluna .agenda-compromisso-profissional { display:none; }
body.appnow-good .agenda-mes-grade { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:1px; margin:0 0 16px; overflow:hidden; border:1px solid var(--bs-border-color); border-radius:10px; background:var(--bs-border-color); }
body.appnow-good .agenda-mes-cabecalho { padding:9px 6px; color:var(--bs-text-gray-600); background:var(--bs-app-bg-color); font-size:.72rem; font-weight:700; text-align:center; }
body.appnow-good .agenda-mes-dia { min-width:0; min-height:112px; padding:6px; overflow:hidden; background:var(--bs-body-bg); }
body.appnow-good .agenda-mes-dia.fora-mes { color:var(--bs-text-muted); background:var(--bs-app-bg-color); }
body.appnow-good .agenda-mes-dia > header { display:flex; align-items:center; justify-content:space-between; margin-bottom:4px; }
body.appnow-good .agenda-mes-dia > header time { display:grid; width:25px; height:25px; place-items:center; border-radius:50%; color:var(--bs-text-gray-800); font-size:.72rem; font-weight:700; }
body.appnow-good .agenda-mes-dia > header span { color:var(--bs-text-muted); font-size:.65rem; }
body.appnow-good .agenda-mes-item { display:flex; min-width:0; align-items:center; gap:4px; margin-top:3px; padding:3px 4px; overflow:hidden; border-left:2px solid var(--agenda-cor,var(--bs-primary)); border-radius:3px; color:var(--bs-text-gray-800); background:var(--agenda-fundo,var(--bs-primary-bg-subtle)); font-size:.63rem; line-height:1.25; text-decoration:none; }
body.appnow-good .agenda-mes-item time { flex:0 0 auto; font-weight:800; }
body.appnow-good .agenda-mes-item > span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
body.appnow-good .agenda-mes-item .agenda-avatar-mini { width:19px; height:19px; flex-basis:19px; font-size:.51rem; }
body.appnow-good .agenda-mes-item .appnow-image-preview__open { display:none; }
body.appnow-good .agenda-mes-cliente { min-width:0; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
body.appnow-good .agenda-mes-item .agenda-cliente-link { min-height:20px; color:inherit; font-size:inherit; }
body.appnow-good .agenda-mes-detalhes { display:grid; min-width:22px; height:22px; flex:0 0 22px; place-items:center; border-radius:4px; color:var(--bs-primary); font-size:.86rem; font-weight:800; text-decoration:none; }
body.appnow-good .agenda-mes-detalhes:hover { background:var(--bs-primary-bg-subtle); }
body.appnow-good .agenda-mes-item:focus-visible,body.appnow-good .agenda-compromisso-detalhes:focus-visible { outline:2px solid var(--bs-primary); outline-offset:2px; }
body.appnow-good .agenda-paginacao { display:flex; min-height:48px; align-items:center; justify-content:space-between; gap:12px; margin:8px 0 20px; padding:8px 12px; border:1px solid var(--bs-border-color); border-radius:9px; background:var(--bs-body-bg); }
body.appnow-good .agenda-paginacao p { margin:0; color:var(--bs-text-gray-600); font-size:.78rem; }
body.appnow-good .agenda-pagina-atual { align-self:center; color:var(--bs-text-gray-600); font-size:.75rem; }
body.appnow-good .agenda-alerta,body.appnow-good .agenda-indicador,body.appnow-good .agenda-controles,body.appnow-good .agenda-dia-coluna,body.appnow-good .agenda-paginacao { box-shadow:var(--appnow-card-shadow); }
body.appnow-good .kanban-bloqueio { background:var(--bs-gray-600); }
body.appnow-good .kanban-agenda { grid-template-columns:repeat(5,minmax(220px,1fr)); overflow-x:auto; overscroll-behavior-inline:contain; }
body.appnow-good .kanban-cartao-rodape { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:7px; }
body.appnow-good .kanban-cartao-rodape .kanban-profissional { display:inline-flex; min-width:0; align-items:center; gap:6px; margin:0; }
body.appnow-good .kanban-cartao .kanban-valor { margin:4px 0; color:var(--bs-primary); font-size:.76rem; font-weight:750; }
body.appnow-good .kanban-cartao.situacao-confirmado { border-left:3px solid var(--bs-success); background:color-mix(in srgb,var(--bs-success) 5%,var(--bs-body-bg)); }
body.appnow-good .kanban-cartao.situacao-concluido { border-left:3px solid var(--bs-info); background:color-mix(in srgb,var(--bs-info) 5%,var(--bs-body-bg)); }
body.appnow-good .kanban-cartao.situacao-falta { border-left:3px solid var(--bs-warning); background:color-mix(in srgb,var(--bs-warning) 6%,var(--bs-body-bg)); }
body.appnow-good .kanban-cartao.situacao-cancelado { border-left:3px solid var(--bs-danger); background:color-mix(in srgb,var(--bs-danger) 4%,var(--bs-body-bg)); }

@media (max-width:1100px) {
    body.appnow-good .agenda-filtros { grid-template-columns:minmax(0,1fr); }
    body.appnow-good .agenda-visualizacoes { justify-content:flex-end; }
    body.appnow-good .agenda-filtros-form { grid-template-columns:minmax(190px,1.5fr) minmax(155px,1fr) minmax(140px,1fr) auto; }
    body.appnow-good .agenda-incluir-cancelados { grid-column:1/-1; }
    body.appnow-good .agenda-dia-grade { grid-template-columns:64px repeat(var(--agenda-profissionais),minmax(215px,1fr)); }
}
@media (max-width:760px) {
    body.appnow-good .agenda-pagina-cabecalho { align-items:flex-start; flex-direction:column; gap:12px; }
    body.appnow-good .agenda-pagina-cabecalho .acoes-agenda { width:100%; }
    body.appnow-good .agenda-pagina-cabecalho .acoes-agenda .btn { flex:1; justify-content:center; }
    body.appnow-good .agenda-indicadores { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
    body.appnow-good .agenda-indicador { min-width:0; min-height:48px; gap:6px; padding:7px 8px; font-size:.7rem; }
    body.appnow-good .agenda-indicador-icone { width:23px; height:23px; flex-basis:23px; }
    body.appnow-good .agenda-indicador strong { font-size:.9rem; }
    body.appnow-good .agenda-filtros { grid-template-columns:minmax(0,1fr); align-items:stretch; padding:11px; }
    body.appnow-good .agenda-filtros-form { grid-template-columns:minmax(0,1fr); gap:8px; }
    body.appnow-good .agenda-filtros-form .form-select,body.appnow-good .agenda-filtros-form .btn { min-height:44px; }
    body.appnow-good .agenda-incluir-cancelados { grid-column:auto; min-height:44px; }
    body.appnow-good .agenda-navegacao-periodo { align-items:stretch; flex-direction:column; gap:10px; padding:2px 0 8px; }
    body.appnow-good .agenda-periodos { width:100%; }
    body.appnow-good .agenda-periodos .btn { flex:1; }
    body.appnow-good .agenda-data-navegacao { flex-wrap:wrap; }
    body.appnow-good .agenda-periodo-titulo { white-space:normal; }
    body.appnow-good .agenda-fuso { width:100%; }
    body.appnow-good .agenda-visualizacoes { justify-content:stretch; }
    body.appnow-good .agenda-visualizacoes .btn { flex:1; justify-content:center; min-height:44px; }
    body.appnow-good .agenda-dia-rolagem { overflow:visible; border:0; background:transparent; box-shadow:none; }
    body.appnow-good .agenda-dia-grade { display:flex; min-width:0; flex-direction:column; gap:10px; }
    body.appnow-good .agenda-dia-canto,body.appnow-good .agenda-dia-eixo { display:none; }
    body.appnow-good .agenda-dia-cabecalho { order:var(--agenda-ordem); min-height:48px; border:1px solid var(--bs-border-color); border-radius:9px 9px 0 0; }
    body.appnow-good .agenda-dia-profissional { order:var(--agenda-ordem); height:auto; min-height:52px; margin-top:-10px; padding:7px; border:1px solid var(--bs-border-color); border-top:0; border-radius:0 0 9px 9px; background:var(--bs-body-bg); box-shadow:var(--appnow-card-shadow); }
    body.appnow-good .agenda-dia-evento { position:relative; top:auto; left:auto; width:auto; height:auto; min-height:74px; margin:0 0 7px; padding:8px; }
    body.appnow-good .agenda-dia-evento:last-of-type { margin-bottom:0; }
    body.appnow-good .agenda-dia-evento-detalhes { position:static; min-height:28px; margin-top:3px; font-size:.7rem; }
    body.appnow-good .agenda-dia-agora-linha { display:none; }
    body.appnow-good .agenda-semana-grade { grid-template-columns:minmax(0,1fr); overflow:visible; }
    body.appnow-good .agenda-dia-coluna { min-height:0; }
    body.appnow-good .agenda-dia-coluna .agenda-compromisso-faixa { align-items:center; flex-direction:row; }
    body.appnow-good .agenda-dia-coluna .agenda-compromisso-profissional { display:block; }
    body.appnow-good .agenda-mes-grade { grid-template-columns:minmax(0,1fr); gap:4px; overflow:visible; border:0; background:transparent; }
    body.appnow-good .agenda-mes-cabecalho { display:none; }
    body.appnow-good .agenda-mes-dia,body.appnow-good .agenda-mes-dia.fora-mes { display:flex; min-height:44px; align-items:flex-start; gap:7px; padding:5px 0; border-bottom:1px solid var(--bs-border-color); background:transparent; }
    body.appnow-good .agenda-mes-dia.fora-mes { display:none; }
    body.appnow-good .agenda-mes-dia > header { flex:0 0 43px; justify-content:flex-start; margin:0; }
    body.appnow-good .agenda-mes-dia > header span { display:none; }
    body.appnow-good .agenda-mes-item { flex:1 1 100px; min-height:30px; font-size:.67rem; }
    body.appnow-good .agenda-avatar,body.appnow-good .agenda-avatar-mini,body.appnow-good .agenda-mes-item .agenda-avatar-mini { width:44px; height:44px; flex-basis:44px; }
    body.appnow-good .agenda-mes-item .appnow-image-preview__open { display:grid; }
    body.appnow-good .agenda-cliente-link { min-height:44px; }
    body.appnow-good .agenda-mes-item .agenda-cliente-link { min-height:44px; }
    body.appnow-good .agenda-mes-detalhes { min-width:44px; height:44px; flex-basis:44px; }
    body.appnow-good .agenda-paginacao { align-items:flex-start; flex-direction:column; }
    body.appnow-good .agenda-paginacao .acoes-agenda { width:100%; justify-content:space-between; }
    body.appnow-good .kanban-agenda { grid-template-columns:repeat(5,minmax(82vw,1fr)); gap:10px; }
}

/* Navegação em acordeão no padrão do menu lateral Good. */
html[data-bs-theme] body.appnow-good .menu-aplicacao {
    padding: 26px 16px 20px;
    color: var(--bs-text-gray-700);
    background: var(--bs-body-bg);
    color-scheme: normal;
    scrollbar-color: var(--bs-gray-300) transparent;
}
html[data-bs-theme] body.appnow-good .menu-aplicacao .marca-menu { color: var(--bs-text-gray-900); }
html[data-bs-theme] body.appnow-good .menu-empresa { border-color: var(--bs-border-color); }
html[data-bs-theme] body.appnow-good .menu-empresa strong { color: var(--bs-text-gray-800); }
html[data-bs-theme] body.appnow-good .menu-empresa small { color: var(--bs-text-gray-500); }
body.appnow-good .navegacao-principal { gap: 4px; }
body.appnow-good .menu-modulo,
body.appnow-good .menu-subtelas { width: 100%; padding: 0; margin: 0; }
body.appnow-good .menu-aplicacao .menu-linha {
    display: flex; align-items: center; gap: 10px;
    width: 100%; min-height: 40px; padding: 9px 12px; margin: 0;
    border: 0; border-radius: 7px; list-style: none;
    color: var(--bs-text-gray-700); background: transparent;
    font-size: 1rem; font-weight: 500; line-height: 1.45;
    text-align: left; text-decoration: none; cursor: pointer;
}
body.appnow-good .menu-linha::-webkit-details-marker { display: none; }
body.appnow-good .menu-aplicacao .menu-modulo > .menu-modulo-titulo { display: flex; }
body.appnow-good .menu-linha::marker { content: ""; }
body.appnow-good .menu-aplicacao .menu-linha:hover { color: var(--bs-primary); background: var(--bs-gray-100); }
body.appnow-good .menu-aplicacao .menu-linha:focus-visible { outline: 2px solid var(--bs-primary); outline-offset: -2px; }
body.appnow-good .menu-aplicacao .menu-linha.ativo { color: var(--bs-primary); background: var(--bs-primary-bg-subtle); font-weight: 600; }
body.appnow-good .menu-aplicacao details[open] > .menu-linha { color: var(--bs-text-gray-900); }
body.appnow-good .menu-texto { flex: 1; min-width: 0; overflow-wrap: anywhere; }
body.appnow-good .menu-icone { display: grid; flex: 0 0 22px; place-items: center; color: var(--bs-text-gray-500); }
body.appnow-good .menu-icone svg { width: 21px; height: 21px; }
body.appnow-good .menu-seta { flex: 0 0 6px; width: 6px; height: 6px; margin-right: 3px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; opacity: .6; transform: rotate(-45deg); transition: transform .15s ease; }
body.appnow-good details[open] > .menu-linha > .menu-seta { transform: rotate(45deg); }
body.appnow-good .menu-ponto { flex: 0 0 5px; width: 5px; height: 5px; border-radius: 50%; background: currentColor; opacity: .45; }
body.appnow-good .menu-ramo { margin: 2px 0 5px 22px; padding-left: 9px; border-left: 1px solid var(--bs-border-color); }
body.appnow-good .menu-ramo .menu-ramo { margin-left: 14px; }
body.appnow-good .menu-ramo .menu-linha { min-height: 35px; padding: 7px 10px; font-size: .95rem; }
@media (min-width: 761px) {
    html[data-appnow-sidebar="recolhida"] body.appnow-good .menu-aplicacao .menu-texto,
    html[data-appnow-sidebar="recolhida"] body.appnow-good .menu-aplicacao .menu-seta,
    html[data-appnow-sidebar="recolhida"] body.appnow-good .menu-aplicacao .menu-ramo { display: none; }
    html[data-appnow-sidebar="recolhida"] body.appnow-good .menu-aplicacao .menu-modulo-titulo { display: flex; justify-content: center; padding: 10px 6px; font-size: .875rem; }
}
@media (max-width: 760px) {
    body.appnow-good .menu-aplicacao { padding: 22px 14px max(18px, env(safe-area-inset-bottom)); }
    body.appnow-good .menu-aplicacao .navegacao-principal { flex-direction: column; gap: 4px; }
}
@media (prefers-reduced-motion: reduce) {
    body.appnow-good .menu-seta { transition: none; }
}

/* Primeiros passos reaproveita a composição e os painéis do cadastro de clientes. */
body.appnow-good .primeiros-passos-principal { display: grid; gap: 14px; }
body.appnow-good .primeiros-passos-layout .cliente-secao-cabecalho { flex-wrap: wrap; }
body.appnow-good .primeiros-passos-layout .cliente-secao-cabecalho > div { flex-basis: 180px; }
body.appnow-good .primeiros-passos-orientacao { margin: 0 0 14px; color: var(--bs-text-gray-600); font-size: .8rem; line-height: 1.6; }
body.appnow-good .primeiros-passos-acao { width: fit-content; max-width: 100%; }
body.appnow-good .primeiros-passos-progresso { display: block; width: 100%; height: 7px; margin: 12px 0; overflow: hidden; border: 0; border-radius: 10px; accent-color: var(--bs-primary); background: var(--bs-border-color); }
body.appnow-good .primeiros-passos-progresso::-webkit-progress-bar { background: var(--bs-border-color); border-radius: 10px; }
body.appnow-good .primeiros-passos-progresso::-webkit-progress-value { background: var(--bs-primary); border-radius: 10px; }
body.appnow-good .primeiros-passos-progresso::-moz-progress-bar { background: var(--bs-primary); border-radius: 10px; }
body.appnow-good .primeiros-passos-retorno { margin: 12px 0 0; padding-top: 12px; border-top: 1px solid var(--bs-border-color); color: var(--bs-text-gray-600); font-size: .74rem; line-height: 1.6; }
body.appnow-good .primeiros-passos-layout .primeiros-passos-principal .cliente-formulario-rodape a.primeiros-passos-continuar { border-color: var(--appnow-action-bg); color: var(--appnow-action-color); background: var(--appnow-action-bg); }
@media (max-width: 560px) {
    body.appnow-good .primeiros-passos-acao { width: 100%; }
    body.appnow-good .primeiros-passos-layout .cliente-formulario-rodape { flex-wrap: wrap; }
    body.appnow-good .primeiros-passos-layout .cliente-formulario-rodape a { flex: 1 1 auto; }
}

body.appnow-good .cliente-cadastro-layout.primeiros-passos-layout .cliente-painel-acao::after { content: none; }

/* Links e convites: mesma composição de cadastro, sem duplicar as telas antigas. */
body.appnow-good .links-convites-principal { display: grid; gap: 14px; }
body.appnow-good .links-convites-layout .cliente-secao-cabecalho { flex-wrap: wrap; }
body.appnow-good .links-convites-layout .cliente-secao-cabecalho > div { flex-basis: 170px; }
body.appnow-good .links-convites-layout input[readonly] { width: 100%; min-width: 0; }
body.appnow-good .appnow-convite-link { margin-bottom: 14px; }
@media (max-width: 560px) { body.appnow-good .links-convites-layout .cliente-formulario-rodape { flex-wrap: wrap; } }
body.appnow-good .links-convites-papeis { min-width: 0; margin: 0; padding: 12px; border: 1px solid var(--bs-border-color); border-radius: 8px; }
body.appnow-good .links-convites-papeis legend { float: none; width: auto; max-width: 100%; padding: 0 5px; margin: 0 0 8px; color: var(--bs-text-gray-800); font-size: .8rem; font-weight: 600; line-height: 1.5; }
body.appnow-good .appnow-convites-recentes { margin-top: 18px; }
body.appnow-good .links-convites-layout .cliente-formulario-rodape { position: static; }

.perfis-modelos { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:14px 0; }
body.appnow-good .perfis-modelos button { display:flex; flex-direction:column; gap:8px; text-align:left; padding:14px; min-width:0; white-space:normal; }
.perfis-modelos span { font-size:.8rem; font-weight:400; line-height:1.5; }
@media(max-width:900px) { .perfis-modelos { grid-template-columns:minmax(0,1fr); } }
html[data-bs-theme] body.appnow-good .cliente-formulario .perfis-modelos button.botao-secundario { border:1px solid var(--bs-border-color); color:var(--bs-text-gray-800); background:var(--bs-body-bg); box-shadow:none; border-radius:9px; }
html[data-bs-theme] body.appnow-good .cliente-formulario .perfis-modelos button.botao-secundario:hover { color:var(--bs-link-color); border-color:var(--bs-primary); background:var(--bs-primary-light); }
html[data-bs-theme] body.appnow-good .conteudo:has(.perfil-acesso-formulario) .acao-primaria-pagina.botao-secundario { border-color:var(--bs-border-color); color:var(--bs-text-gray-800); background:var(--bs-body-bg); }

/* Planos: composição compartilhada com Clientes/Cadastro. */
.plano-consumo{display:grid;gap:.45rem;padding:1rem 0;border-bottom:1px solid var(--bs-border-color,#e2e8f0)}
.plano-consumo progress{width:100%;height:.65rem;accent-color:#0bb5a5}
.plano-campos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.plano-campos label{min-width:0}.plano-campos input{width:100%}
.plano-formulario fieldset{border:0;padding:0;margin:0;min-width:0}
@media(max-width:767px){.plano-campos{grid-template-columns:1fr}}

.plano-formulario fieldset{display:grid;gap:14px}
.plano-formulario .opcao-checkbox{display:flex;align-items:center;gap:.65rem;margin:.8rem 0}
.plano-formulario .opcao-checkbox input{flex:0 0 auto;width:20px;height:20px;margin:0}

.plano-resumo .cliente-cadastro-principal{display:grid;gap:14px;align-content:start}
.plano-resumo{margin-top:16px}
/* Filtros da plataforma ocupam linhas previsíveis e preservam rótulos legíveis. */
body.appnow-good .ferramentas-lista-saas{display:grid;grid-template-columns:minmax(190px,1.5fr) minmax(145px,1fr) minmax(270px,2fr) minmax(135px,1fr) minmax(130px,1fr) minmax(100px,.7fr) auto auto;align-items:end;gap:10px;padding:14px}
body.appnow-good .ferramentas-lista-saas .busca-clientes{width:100%;min-width:0}
body.appnow-good .ferramentas-lista-saas .filtro-lista-clientes{display:grid;grid-template-rows:auto 40px;align-content:end;gap:5px;width:100%;min-width:0;color:var(--bs-text-gray-600);font-size:.7rem;font-weight:600}
body.appnow-good .ferramentas-lista-saas .filtro-lista-clientes select{width:100%;min-width:0;height:40px}
body.appnow-good .ferramentas-lista-saas .periodo-clientes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:8px;width:100%}
body.appnow-good .ferramentas-lista-saas .periodo-clientes label{display:grid;grid-template-rows:auto 40px;gap:5px;color:var(--bs-text-gray-600);font-size:.7rem;font-weight:600}
body.appnow-good .ferramentas-lista-saas .periodo-clientes input{width:100%;height:40px;min-height:40px;font-size:.78rem}
body.appnow-good .ferramentas-lista-saas .busca-clientes input{width:100%}
body.appnow-good .ferramentas-lista-saas .limpar-filtros-clientes{padding:0 4px}
@media(max-width:1500px){
 body.appnow-good .ferramentas-lista-saas{grid-template-columns:minmax(210px,2fr) minmax(150px,1fr) minmax(280px,2fr) minmax(140px,1fr);}
 body.appnow-good .ferramentas-lista-saas .busca-clientes{grid-column:span 2}
 body.appnow-good .ferramentas-lista-saas .periodo-clientes{grid-column:span 2}
}
@media(max-width:1100px){body.appnow-good .ferramentas-lista-saas{grid-template-columns:repeat(3,minmax(0,1fr))}body.appnow-good .ferramentas-lista-saas .busca-clientes,body.appnow-good .ferramentas-lista-saas .periodo-clientes{grid-column:span 2}}
@media(max-width:760px){
 body.appnow-good .ferramentas-lista-saas{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
 body.appnow-good .ferramentas-lista-saas .busca-clientes,body.appnow-good .ferramentas-lista-saas .periodo-clientes{grid-column:1/-1}
 body.appnow-good .ferramentas-lista-saas .filtro-lista-clientes{grid-template-rows:auto 40px}
 body.appnow-good .ferramentas-lista-saas .botao-aplicar-filtros,body.appnow-good .ferramentas-lista-saas .limpar-filtros-clientes{justify-content:center}
}
@media(max-width:430px){body.appnow-good .ferramentas-lista-saas{grid-template-columns:minmax(0,1fr)}body.appnow-good .ferramentas-lista-saas .busca-clientes,body.appnow-good .ferramentas-lista-saas .periodo-clientes{grid-column:auto}}

/* Busca global e seletor de empresa responsivos do cabeçalho. */
body.appnow-good .app-cabecalho { --appnow-header-control-height: 44px; --appnow-header-radius: 10px; }
body.appnow-good .empresa-seletor-menu { position: relative; flex: 0 1 auto; min-width: 0; }
body.appnow-good .empresa-seletor-menu > summary { min-height: var(--appnow-header-control-height); cursor: pointer; list-style: none; }
body.appnow-good .empresa-seletor-menu > summary::-webkit-details-marker { display: none; }
body.appnow-good .empresa-seletor-menu[open] > summary { border-color: var(--bs-primary); }
body.appnow-good .empresa-seletor-painel {
    position: absolute; top: calc(100% + 10px); right: 0; z-index: 120;
    width: min(360px, calc(100vw - 24px)); max-height: min(70dvh, 520px); overflow: hidden;
    padding: 12px; border: 1px solid var(--bs-border-color); border-radius: 14px;
    color: var(--bs-body-color); background: var(--bs-body-bg); box-shadow: 0 16px 44px rgb(15 23 42 / 16%);
}
body.appnow-good .empresa-busca,
body.appnow-good .busca-global-campo {
    display: flex; align-items: center; gap: 10px; height: var(--appnow-header-control-height); min-width: 0;
    padding: 0 12px; border: 1px solid var(--bs-border-color); border-radius: var(--appnow-header-radius);
    color: var(--bs-text-gray-600); background: var(--bs-body-bg);
}
body.appnow-good .empresa-busca:focus-within,
body.appnow-good .busca-global-campo:focus-within { border-color: var(--bs-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--bs-primary) 14%, transparent); }
body.appnow-good .empresa-busca svg,
body.appnow-good .busca-global-campo svg { width: 20px; height: 20px; flex: 0 0 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
body.appnow-good .empresa-busca input,
body.appnow-good .busca-global-campo input { width: 100%; min-width: 0; height: 100%; padding: 0; border: 0; outline: 0; color: var(--bs-body-color); background: transparent; box-shadow: none; }
body.appnow-good .empresa-lista { max-height: min(48dvh, 350px); margin: 8px -4px; overflow-y: auto; overscroll-behavior: contain; }
body.appnow-good .empresa-opcao[hidden] { display: none; }
body.appnow-good .empresa-opcao { display: flex; width: 100%; min-height: 44px; align-items: center; gap: 12px; padding: 8px 10px; border: 0; border-radius: 9px; color: var(--bs-body-color); background: transparent; text-align: left; }
body.appnow-good .empresa-opcao:hover, body.appnow-good .empresa-opcao:focus-visible { background: var(--bs-primary-bg-subtle); outline: none; }
body.appnow-good .empresa-opcao.ativa { color: var(--bs-primary-text-emphasis); background: var(--bs-primary-bg-subtle); }
body.appnow-good .empresa-opcao svg { width: 20px; height: 20px; flex: 0 0 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
body.appnow-good .empresa-opcao-logo { width: 28px; height: 28px; flex: 0 0 28px; border-radius: 7px; object-fit: contain; background: var(--bs-body-bg); }
body.appnow-good .empresa-opcao > span:first-of-type { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.appnow-good .empresa-check { display: grid; width: 22px; height: 22px; flex: 0 0 22px; place-items: center; margin-left: auto; border-radius: 50%; color: #fff; background: var(--bs-primary); }
body.appnow-good .empresa-gerenciar { display: flex; min-height: 44px; align-items: center; gap: 10px; padding: 8px 10px 0; border-top: 1px solid var(--bs-border-color); color: var(--bs-body-color); text-decoration: none; }
body.appnow-good .busca-global { position: relative; display: flex; flex: 1 1 300px; min-width: 0; max-width: 720px; }
body.appnow-good .busca-global-campo { width: 100%; background: var(--bs-gray-100); }
body.appnow-good .busca-global-campo input { font: inherit; font-size: .875rem; }
body.appnow-good .busca-global-campo kbd { flex: 0 0 auto; padding: 4px 7px; border: 1px solid var(--bs-border-color); border-radius: 6px; color: var(--bs-text-gray-600); background: var(--bs-body-bg); font: inherit; font-size: .72rem; white-space: nowrap; }
body.appnow-good .busca-global-abrir { display: none; }
body.appnow-good .busca-global-painel[hidden] { display: none; }
body.appnow-good .busca-global-painel:not([hidden]) {
    position: absolute; top: calc(100% + 9px); left: 0; z-index: 125;
    width: min(560px, calc(100vw - 32px)); max-height: min(70dvh, 560px); overflow: auto;
    padding: 12px; border: 1px solid var(--bs-border-color); border-radius: 14px;
    color: var(--bs-body-color); background: var(--bs-body-bg); box-shadow: 0 18px 48px rgb(15 23 42 / 18%);
}
body.appnow-good .busca-global-mobile-campo { display: none; }
body.appnow-good .busca-global-ajuda, body.appnow-good .busca-global-vazio { margin: 8px 6px 4px; color: var(--bs-text-gray-600); font-size: .8rem; }
body.appnow-good .busca-global-resultados { display: grid; gap: 3px; }
body.appnow-good .busca-global-resultado { display: flex; min-height: 52px; align-items: center; gap: 11px; padding: 7px 9px; border-radius: 9px; color: var(--bs-body-color); text-decoration: none; }
body.appnow-good .busca-global-resultado:hover, body.appnow-good .busca-global-resultado:focus-visible, body.appnow-good .busca-global-resultado.selecionado { outline: none; background: var(--bs-primary-bg-subtle); }
body.appnow-good .busca-global-resultado-icone { display: grid; width: 36px; height: 36px; flex: 0 0 36px; place-items: center; border-radius: 9px; color: var(--bs-primary); background: var(--bs-primary-bg-subtle); }
body.appnow-good .busca-global-resultado-icone svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
body.appnow-good .busca-global-resultado-texto { display: grid; min-width: 0; gap: 2px; }
body.appnow-good .busca-global-resultado-texto strong { overflow: hidden; font-size: .86rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
body.appnow-good .busca-global-resultado-texto small { overflow: hidden; color: var(--bs-text-gray-600); font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
body.appnow-good .busca-global-resultado-seta { margin-left: auto; color: var(--bs-text-gray-600); }
body.appnow-good .busca-global-mobile-campo, body.appnow-good .busca-global-voltar { min-height: 44px; }
body.appnow-good .busca-global-voltar { display: none; }
@media (max-width: 1100px) {
    body.appnow-good .busca-global { flex: 0 0 44px; max-width: 44px; }
    body.appnow-good .busca-global > .busca-global-campo { display: none; }
    body.appnow-good .busca-global-abrir { display: grid; width: 44px; height: 44px; flex: 0 0 44px; place-items: center; border: 1px solid var(--bs-border-color); border-radius: 10px; color: var(--bs-text-gray-700); background: var(--bs-body-bg); }
    body.appnow-good .busca-global-abrir svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
    body.appnow-good .busca-global-painel:not([hidden]) { position: fixed; top: calc(60px + env(safe-area-inset-top)); left: 50%; width: min(560px, calc(100vw - 24px)); transform: translateX(-50%); }
}
@media (max-width: 760px) {
    body.appnow-good .app-cabecalho { gap: 6px; }
    body.appnow-good .cabecalho-contexto { flex: 0 1 auto; min-width: 0; }
    body.appnow-good .empresa-seletor-menu { max-width: min(38vw, 154px); }
    body.appnow-good .empresa-seletor { max-width: 100%; }
    body.appnow-good .empresa-seletor-valor strong { max-width: 28vw; }
    body.appnow-good .busca-global { flex: 0 0 44px; }
    body.appnow-good .tema-menu > summary, body.appnow-good .conta-menu > summary { min-width: 44px; min-height: 44px; justify-content: center; }
    body.appnow-good .empresa-seletor-menu[open]::before { position: fixed; inset: 0; z-index: 140; display: block; background: rgb(15 23 42 / 42%); content: ''; }
    body.appnow-good .empresa-seletor-painel { position: fixed; z-index: 141; top: auto; right: 8px; bottom: max(8px, env(safe-area-inset-bottom)); left: 8px; width: auto; max-height: min(78dvh, 620px); padding: 16px; border-radius: 18px; box-shadow: 0 20px 64px rgb(15 23 42 / 28%); }
    body.appnow-good .empresa-lista { max-height: min(55dvh, 440px); }
    body.appnow-good .busca-global-painel:not([hidden]) { position: fixed; inset: 0; z-index: 1500; display: flex; width: auto; max-width: none; height: 100vh; height: 100dvh; max-height: none; flex-direction: column; gap: 10px; padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); overflow: hidden; border: 0; border-radius: 0; transform: none; overscroll-behavior: contain; }
    body.appnow-good .busca-global-mobile-campo { display: flex; flex: 0 0 auto; align-items: center; gap: 8px; }
    body.appnow-good .busca-global-voltar { display: grid; width: 44px; flex: 0 0 44px; place-items: center; padding: 0; border: 0; border-radius: 10px; color: var(--bs-body-color); background: transparent; font-size: 1.5rem; }
    body.appnow-good .busca-global-mobile-campo .busca-global-campo { flex: 1; }
    body.appnow-good .busca-global-ajuda, body.appnow-good .busca-global-vazio { flex: 0 0 auto; margin: 4px 2px; }
    body.appnow-good .busca-global-resultados { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding-bottom: max(12px, env(safe-area-inset-bottom)); overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
    body.appnow-good .busca-global-resultado { min-height: 56px; }
    body.appnow-good.busca-global-bloqueio { overflow: hidden; }
}
@media (max-width: 380px) {
    body.appnow-good .app-cabecalho { gap: 4px; }
    body.appnow-good .empresa-seletor-menu { max-width: 32vw; }
    body.appnow-good .empresa-seletor { padding-right: 5px; padding-left: 5px; }
    body.appnow-good .empresa-seletor-valor { gap: 4px; }
    body.appnow-good .empresa-seletor-valor strong { max-width: 20vw; font-size: .7rem; }
    body.appnow-good .empresa-seletor-valor svg { width: 14px; height: 14px; }
    body.appnow-good .tema-menu > summary, body.appnow-good .conta-menu > summary { min-width: 40px; }
    body.appnow-good .busca-global, body.appnow-good .busca-global-abrir { width: 40px; flex-basis: 40px; }
}
@media (prefers-reduced-motion: reduce) { body.appnow-good .busca-global-painel { scroll-behavior: auto; } }

/* Controles compostos exibem o foco no contêiner; evitam o segundo contorno no input interno. */
html[data-bs-theme] body.appnow-good :is(.busca-global-campo,.empresa-busca,.menu-busca):focus-within > input:focus,
html[data-bs-theme] body.appnow-good :is(.busca-global-campo,.empresa-busca,.menu-busca):focus-within > input:focus-visible {
    border-color: transparent;
    outline: none;
    outline-offset: 0;
    box-shadow: none;
}
@media (max-width: 1100px) {
    body.appnow-good .busca-global-mobile-campo { display: flex; align-items: center; gap: 8px; }
    body.appnow-good .busca-global-voltar { display: grid; width: 44px; flex: 0 0 44px; place-items: center; padding: 0; border: 0; border-radius: 10px; color: var(--bs-body-color); background: transparent; font-size: 1.35rem; }
    body.appnow-good .busca-global-mobile-campo .busca-global-campo { flex: 1; }
}

/* Listagem de empresas da conta no padrão das tabelas do sistema. */
body.appnow-good .lista-empresas-conta { margin-top: 18px; }
body.appnow-good .lista-empresas-conta .ferramentas-lista-clientes { flex-wrap: wrap; }
body.appnow-good .lista-empresas-conta .busca-clientes { flex: 1 1 260px; }
body.appnow-good .lista-empresas-conta .periodo-clientes { flex: 0 1 auto; }
body.appnow-good .lista-empresas-conta .limpar-filtros-clientes { align-self: center; }
body.appnow-good .lista-empresas-conta .perfil-empresas-link { min-height: 38px; display: inline-flex; align-items: center; padding: 8px 12px; border-radius: 7px; font-size: .8rem; text-decoration: none; }
body.appnow-good .tabela-empresas-conta { min-width: 760px; }
body.appnow-good .tabela-empresas-conta th:first-child { width: 34%; }
body.appnow-good .tabela-empresas-conta th:nth-child(2) { width: 16%; }
body.appnow-good .tabela-empresas-conta th:nth-child(3) { width: 17%; }
body.appnow-good .tabela-empresas-conta th:nth-child(4) { width: 18%; }
body.appnow-good .tabela-empresas-conta th:last-child { width: 15%; text-align: right; }
body.appnow-good .tabela-empresas-conta td:last-child { text-align: right; }
body.appnow-good .tabela-empresas-conta .identidade-cliente { min-width: 0; }
body.appnow-good .tabela-empresas-conta .identidade-cliente strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.appnow-good .avatar-empresa-conta { color: var(--bs-primary-text-emphasis); background: var(--bs-primary-bg-subtle); }
body.appnow-good .avatar-empresa-conta svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
body.appnow-good .empresa-atual-tag { display: inline-flex; min-height: 26px; align-items: center; padding: 4px 9px; border-radius: 999px; color: var(--bs-primary-text-emphasis); background: var(--bs-primary-bg-subtle); font-size: .72rem; font-weight: 600; white-space: nowrap; }
body.appnow-good .texto-empresa-disponivel { color: var(--bs-text-gray-600); font-size: .78rem; }
body.appnow-good .empresa-acessar-form { display: inline-flex; justify-content: flex-end; margin: 0; }
body.appnow-good .empresa-acessar-form button { min-height: 36px; width: auto; margin: 0; padding: 7px 12px; border-radius: 7px; font-size: .78rem; white-space: nowrap; }
body.appnow-good .empresa-acessar-form button span { margin-left: 5px; }
body.appnow-good .empresa-linha-atual { background: color-mix(in srgb, var(--bs-primary-bg-subtle) 35%, var(--bs-body-bg)); }
body.appnow-good .empresa-sair-form { display: flex; justify-content: flex-end; margin: 14px 0 0; }
body.appnow-good .empresa-sair-form button { display: inline-flex; width: auto; min-height: 38px; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 8px; }
@media (max-width: 760px) {
    body.appnow-good .lista-empresas-conta .ferramentas-lista-clientes { align-items: stretch; }
    body.appnow-good .lista-empresas-conta .busca-clientes { flex-basis: 100%; }
    body.appnow-good .lista-empresas-conta .filtro-lista-clientes { flex: 1 1 100%; }
    body.appnow-good .lista-empresas-conta .filtro-lista-clientes select { width: 100%; }
    body.appnow-good .lista-empresas-conta .periodo-clientes { flex: 1 1 100%; }
    body.appnow-good .lista-empresas-conta .periodo-clientes label { flex: 1 1 0; }
    body.appnow-good .lista-empresas-conta .periodo-clientes input { width: 100%; }
    body.appnow-good .lista-empresas-conta .botao-aplicar-filtros { flex: 1 1 120px; }
    body.appnow-good .lista-empresas-conta .limpar-filtros-clientes { flex: 1 1 120px; text-align: center; }
    body.appnow-good .lista-empresas-conta .cabecalho-lista-clientes { align-items: flex-start; flex-direction: column; }
    body.appnow-good .tabela-empresas-conta { min-width: 700px; }
}

/* Cabeçalho compartilhado: controles alinhados e espaço reservado ao menu. */
body.appnow-good .app-cabecalho.appnow-good-header { justify-content: flex-start; align-items: center; }
body.appnow-good .appnow-good-header .cabecalho-contexto { flex: 0 0 44px; width: 44px; height: 44px; }
body.appnow-good .appnow-good-header .busca-global { align-items: center; }
body.appnow-good .appnow-good-header .busca-global-campo, body.appnow-good .appnow-good-header .empresa-busca { margin: 0; }
body.appnow-good .appnow-good-header .empresa-seletor-menu { margin-left: auto; }
body.appnow-good .appnow-good-header .empresa-seletor, body.appnow-good .appnow-good-header .tema-menu > summary, body.appnow-good .appnow-good-header .conta-menu > summary { height: 44px; min-height: 44px; box-sizing: border-box; }
body.appnow-good .busca-global-painel:not([hidden]) { width: 100%; }
@media (max-width: 1100px) and (min-width: 761px) { body.appnow-good .busca-global-painel:not([hidden]) { width: min(560px, calc(100vw - 24px)); } }
@media (max-width: 760px) { body.appnow-good .busca-global-painel:not([hidden]) { width: auto; } }

/* Aulas recorrentes: campos numéricos e horários compactos sem reduzir os alvos de toque no celular. */
body.appnow-good .turma-cadastro-layout .turma-form-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 13px 12px; }
body.appnow-good .turma-cadastro-layout .turma-matricula-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 13px 12px; }
body.appnow-good .turma-cadastro-layout .turma-campo-formato { grid-column: span 4; }
body.appnow-good .turma-cadastro-layout .turma-campo-nome { grid-column: span 8; }
body.appnow-good .turma-cadastro-layout .turma-campo-profissional { grid-column: span 8; }
body.appnow-good .turma-cadastro-layout .turma-campo-capacidade { grid-column: span 4; }
body.appnow-good .turma-cadastro-layout .turma-campo-dias { grid-column: 1 / -1; }
body.appnow-good .turma-cadastro-layout .turma-campo-curto:not(.turma-campo-capacidade) { grid-column: span 3; }
body.appnow-good .turma-cadastro-layout .turma-campo-data,
body.appnow-good .turma-cadastro-layout .turma-matricula-data { grid-column: span 3; }
body.appnow-good .turma-cadastro-layout .turma-form-grid .appnow-checkbox { grid-column: 1 / -1; }
body.appnow-good .turma-cadastro-layout .turma-campo-dias.appnow-opcoes-servicos { grid-template-columns: repeat(7, minmax(0, 1fr)); }
body.appnow-good .turma-cadastro-layout .turma-campo-dias > legend,
body.appnow-good .turma-cadastro-layout .turma-campo-dias > .appnow-form-ajuda { grid-column: 1 / -1; }
body.appnow-good .turma-cadastro-layout .turma-campo-dias .appnow-opcao-servico { min-height: 52px; flex-direction: column; align-items: center; justify-content: center; gap: 4px; padding: 6px 4px; text-align: center; }
body.appnow-good .turma-cadastro-layout .turma-campo-curto input { min-height: 44px; }
@media (max-width: 1050px) and (min-width: 721px) {
    body.appnow-good .turma-cadastro-layout .turma-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.appnow-good .turma-cadastro-layout .turma-campo-formato,
    body.appnow-good .turma-cadastro-layout .turma-campo-nome,
    body.appnow-good .turma-cadastro-layout .turma-campo-profissional,
    body.appnow-good .turma-cadastro-layout .turma-campo-capacidade,
    body.appnow-good .turma-cadastro-layout .turma-campo-curto:not(.turma-campo-capacidade),
    body.appnow-good .turma-cadastro-layout .turma-campo-data { grid-column: span 1; }
}
@media (max-width: 900px) and (min-width: 721px) {
    body.appnow-good .turma-cadastro-layout .turma-campo-dias.appnow-opcoes-servicos { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
    body.appnow-good .turma-cadastro-layout .turma-form-grid,
    body.appnow-good .turma-cadastro-layout .turma-matricula-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    body.appnow-good .turma-cadastro-layout .turma-campo-formato,
    body.appnow-good .turma-cadastro-layout .turma-campo-nome,
    body.appnow-good .turma-cadastro-layout .turma-campo-profissional,
    body.appnow-good .turma-cadastro-layout .turma-campo-dias,
    body.appnow-good .turma-cadastro-layout .turma-campo-capacidade,
    body.appnow-good .turma-cadastro-layout .turma-campo-data,
    body.appnow-good .turma-cadastro-layout .turma-matricula-grid .campo-largo,
    body.appnow-good .turma-cadastro-layout .turma-matricula-data,
    body.appnow-good .turma-cadastro-layout .turma-form-grid .appnow-checkbox { grid-column: 1 / -1; }
    body.appnow-good .turma-cadastro-layout .turma-campo-curto:not(.turma-campo-capacidade) { grid-column: span 1; }
    body.appnow-good .turma-cadastro-layout .turma-campo-dias.appnow-opcoes-servicos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 380px) {
    body.appnow-good .turma-cadastro-layout .turma-form-grid,
    body.appnow-good .turma-cadastro-layout .turma-matricula-grid { grid-template-columns: minmax(0, 1fr); }
    body.appnow-good .turma-cadastro-layout .turma-campo-curto:not(.turma-campo-capacidade) { grid-column: 1 / -1; }
    body.appnow-good .turma-cadastro-layout .turma-campo-dias.appnow-opcoes-servicos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Menu de conta: compacto, acessível e compatível com os temas sem alterar os demais popovers. */
html[data-bs-theme] body.appnow-good .appnow-good-header .conta-menu { position: relative; z-index: 160; flex: 0 0 auto; }
html[data-bs-theme] body.appnow-good .appnow-good-header .conta-menu > summary { display: flex; min-width: 0; align-items: center; gap: 9px; padding: 3px 7px 3px 3px; border: 1px solid transparent; border-radius: 12px; color: var(--bs-body-color); background: transparent; cursor: pointer; list-style: none; transition: background-color .16s ease, border-color .16s ease; }
html[data-bs-theme] body.appnow-good .appnow-good-header .conta-menu > summary::-webkit-details-marker { display: none; }
html[data-bs-theme] body.appnow-good .appnow-good-header .conta-menu > summary:hover,
html[data-bs-theme] body.appnow-good .appnow-good-header .conta-menu[open] > summary { border-color: var(--bs-border-color); background: var(--bs-body-bg); }
html[data-bs-theme] body.appnow-good .appnow-good-header .conta-menu > summary .avatar { width: 40px; height: 40px; flex: 0 0 40px; overflow: hidden; border: 2px solid var(--bs-body-bg); box-shadow: 0 0 0 1px var(--bs-border-color); font-size: .82rem; }
html[data-bs-theme] body.appnow-good .conta-menu-seta { width: 16px; height: 16px; flex: 0 0 16px; fill: none; stroke: var(--bs-text-gray-600); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: transform .16s ease; }
html[data-bs-theme] body.appnow-good .conta-menu[open] .conta-menu-seta { transform: rotate(180deg); }

/* Sino e central de notificações compartilhados entre desktop e mobile. */
body.appnow-good .appnow-notificacoes-botao {
    position: relative; display: grid; width: 44px; height: 44px; flex: 0 0 44px; place-items: center;
    border: 1px solid var(--bs-border-color); border-radius: 12px; color: var(--bs-body-color); background: var(--bs-body-bg);
    text-decoration: none; transition: border-color .16s ease, color .16s ease, background-color .16s ease;
}
body.appnow-good .appnow-notificacoes-botao:hover,
body.appnow-good .appnow-notificacoes-botao:focus-visible { color: var(--bs-primary); border-color: var(--bs-primary); }
body.appnow-good .appnow-notificacoes-botao > svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
body.appnow-good .appnow-notificacoes-contagem:not([hidden]) {
    position: absolute; top: -3px; right: -3px; display: grid; min-width: 18px; height: 18px; padding: 0 4px;
    place-items: center; border: 2px solid var(--bs-body-bg); border-radius: 999px; color: #fff; background: #dc3545;
    font-size: .65rem; font-weight: 750; line-height: 1;
}
body.appnow-good .notificacoes-entrada { position: absolute; top: 20px; right: 76px; z-index: 2; }
body.appnow-good .notificacoes-pagina { display: grid; gap: 18px; width: min(100%, 1120px); margin: 0 auto; }
body.appnow-good .notificacoes-preferencias,
body.appnow-good .notificacoes-lista { min-width: 0; padding: clamp(16px, 2.2vw, 24px); border: 1px solid var(--bs-border-color); border-radius: 16px; background: var(--bs-body-bg); box-shadow: 0 6px 20px rgb(20 40 70 / 5%); }
body.appnow-good .notificacoes-preferencias { display: flex; align-items: flex-start; gap: 14px; }
body.appnow-good .notificacoes-preferencias-icone { display: grid; width: 44px; height: 44px; flex: 0 0 44px; place-items: center; border-radius: 13px; color: var(--bs-primary); background: var(--bs-primary-bg-subtle); }
body.appnow-good .notificacoes-preferencias-icone svg,
body.appnow-good .notificacoes-vazio svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
body.appnow-good .notificacoes-preferencias-texto { min-width: 0; }
body.appnow-good .notificacoes-preferencias h2,
body.appnow-good .notificacoes-lista-cabecalho h2 { margin: 0; color: var(--bs-body-color); font-size: 1.05rem; font-weight: 700; }
body.appnow-good .notificacoes-preferencias p,
body.appnow-good .notificacoes-lista-cabecalho p { margin: 5px 0 0; color: var(--bs-secondary-color); font-size: .88rem; line-height: 1.5; }
body.appnow-good .notificacoes-preferencias .botao { margin-top: 12px; }
body.appnow-good .notificacoes-push-status:empty { display: none; }
body.appnow-good .notificacoes-lista-cabecalho { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
body.appnow-good .notificacoes-itens { display: grid; gap: 10px; }
body.appnow-good .notificacao-item { display: flex; min-width: 0; align-items: flex-start; gap: 13px; padding: 15px; border: 1px solid var(--bs-border-color); border-radius: 13px; background: var(--bs-body-bg); }
body.appnow-good .notificacao-item.nao-lida { border-color: color-mix(in srgb, var(--bs-primary) 30%, var(--bs-border-color)); background: color-mix(in srgb, var(--bs-primary-bg-subtle) 52%, var(--bs-body-bg)); }
body.appnow-good .notificacao-item-icone { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; border-radius: 11px; color: var(--bs-primary); background: var(--bs-primary-bg-subtle); }
body.appnow-good .notificacao-item-icone svg,
body.appnow-good .notificacao-marcar-lida svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
body.appnow-good .notificacao-item-conteudo { flex: 1 1 auto; min-width: 0; }
body.appnow-good .notificacao-item-topo { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
body.appnow-good .notificacao-item-topo h3 { margin: 0; color: var(--bs-body-color); font-size: .95rem; font-weight: 700; }
body.appnow-good .notificacao-item time { flex: 0 0 auto; color: var(--bs-secondary-color); font-size: .76rem; }
body.appnow-good .notificacao-item-conteudo p { margin: 5px 0 7px; color: var(--bs-secondary-color); font-size: .88rem; line-height: 1.45; }
body.appnow-good .notificacao-item-conteudo > a { color: var(--bs-link-color); font-size: .84rem; font-weight: 650; text-decoration: none; }
body.appnow-good .notificacao-item-conteudo > a:hover { text-decoration: underline; }
body.appnow-good .notificacao-marcar-lida { display: grid; width: 36px; height: 36px; flex: 0 0 36px; place-items: center; border: 1px solid var(--bs-border-color); border-radius: 10px; color: var(--bs-secondary-color); background: var(--bs-body-bg); }
body.appnow-good .notificacao-marcar-lida:hover { color: var(--bs-primary); border-color: var(--bs-primary); }
body.appnow-good .notificacoes-vazio { display: grid; min-height: 180px; place-content: center; justify-items: center; padding: 24px; text-align: center; }
body.appnow-good .notificacoes-vazio > span { display: grid; width: 48px; height: 48px; place-items: center; margin-bottom: 10px; border-radius: 50%; color: var(--bs-primary); background: var(--bs-primary-bg-subtle); }
body.appnow-good .notificacoes-vazio strong { color: var(--bs-body-color); }
body.appnow-good .notificacoes-vazio p { margin: 5px 0 0; color: var(--bs-secondary-color); font-size: .88rem; }
@media (max-width: 600px) {
    body.appnow-good .notificacoes-lista-cabecalho,
    body.appnow-good .notificacao-item-topo { align-items: flex-start; flex-direction: column; gap: 4px; }
    body.appnow-good .notificacoes-lista-cabecalho { align-items: stretch; }
    body.appnow-good .notificacoes-lista-cabecalho form .botao { width: 100%; }
    body.appnow-good .notificacao-item { gap: 9px; padding: 12px; }
    body.appnow-good .notificacao-item-icone { width: 34px; height: 34px; flex-basis: 34px; }
    body.appnow-good .notificacao-marcar-lida { width: 32px; height: 32px; flex-basis: 32px; }
    body.appnow-good .notificacoes-entrada { right: 68px; }
}
html[data-bs-theme] body.appnow-good .appnow-good-header .conta-opcoes { position: absolute; top: calc(100% + 8px); right: 0; z-index: 170; display: block; width: min(360px, calc(100vw - 24px)); max-height: min(78dvh, 640px); padding: 8px; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; border: 1px solid var(--bs-border-color); border-radius: 14px; color: var(--bs-body-color); background: var(--bs-body-bg); box-shadow: 0 18px 48px rgb(15 23 42 / 16%); scrollbar-gutter: stable; -webkit-overflow-scrolling: touch; }
html[data-bs-theme] body.appnow-good .conta-menu-perfil { display: flex; min-width: 0; align-items: center; gap: 12px; margin: 0 2px 7px; padding: 9px 9px 13px; border-bottom: 1px solid var(--bs-border-color); }
html[data-bs-theme] body.appnow-good .conta-menu-foto,
html[data-bs-theme] body.appnow-good .conta-menu-avatar { display: grid; width: 48px; height: 48px; flex: 0 0 48px; place-items: center; overflow: hidden; border: 1px solid var(--bs-border-color); border-radius: 50%; color: var(--bs-link-color); background: var(--bs-primary-bg-subtle); font-size: 1rem; font-weight: 700; object-fit: cover; }
html[data-bs-theme] body.appnow-good .conta-menu-perfil > div { display: grid; min-width: 0; gap: 3px; }
html[data-bs-theme] body.appnow-good .conta-menu-perfil strong { overflow: hidden; color: var(--bs-body-color); font-size: .96rem; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
html[data-bs-theme] body.appnow-good .conta-menu-perfil div span { overflow: hidden; color: var(--bs-secondary-color); font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }
html[data-bs-theme] body.appnow-good .conta-menu-grupo { display: grid; gap: 2px; padding: 4px 0 8px; }
html[data-bs-theme] body.appnow-good .conta-menu-grupo + .conta-menu-grupo { padding-top: 9px; border-top: 1px solid var(--bs-border-color); }
html[data-bs-theme] body.appnow-good .conta-menu-grupo-titulo { margin: 0 11px 4px; padding: 3px 0; color: var(--bs-secondary-color); font-size: .69rem; font-weight: 700; letter-spacing: .075em; line-height: 1.3; text-transform: uppercase; }
html[data-bs-theme] body.appnow-good .conta-opcao { display: flex; min-width: 0; min-height: 42px; align-items: center; gap: 12px; padding: 0 11px; border: 0; border-radius: 9px; color: var(--bs-body-color); background: transparent; font-size: .86rem; font-weight: 500; line-height: 1.25; text-decoration: none; transition: color .16s ease, background-color .16s ease; }
html[data-bs-theme] body.appnow-good .conta-opcao > svg:first-child { width: 19px; height: 19px; flex: 0 0 19px; fill: none; stroke: var(--bs-secondary-color); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: color .16s ease; }
html[data-bs-theme] body.appnow-good .conta-opcao > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html[data-bs-theme] body.appnow-good .conta-opcao .conta-opcao-seta { width: 16px; height: 16px; flex: 0 0 16px; margin-left: auto; fill: none; stroke: var(--bs-secondary-color); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
html[data-bs-theme] body.appnow-good .conta-opcao:hover,
html[data-bs-theme] body.appnow-good .conta-opcao.ativo { color: var(--bs-link-color); background: var(--bs-primary-bg-subtle); }
html[data-bs-theme] body.appnow-good .conta-opcao:hover > svg:first-child,
html[data-bs-theme] body.appnow-good .conta-opcao.ativo > svg:first-child { stroke: var(--bs-link-color); }
html[data-bs-theme] body.appnow-good .conta-opcao:focus-visible { outline: 2px solid var(--bs-link-color); outline-offset: 1px; }
html[data-bs-theme] body.appnow-good .conta-opcoes .saida { margin: 2px 2px 0; padding: 8px 0 0; border-top: 1px solid var(--bs-border-color); }
html[data-bs-theme] body.appnow-good .conta-opcoes .botao-sair { display: flex; min-height: 42px; align-items: center; gap: 12px; padding: 0 11px; border: 0; border-radius: 9px; color: var(--bs-danger); background: transparent; font-size: .86rem; font-weight: 550; text-align: left; transition: background-color .16s ease; }
html[data-bs-theme] body.appnow-good .conta-opcoes .botao-sair:hover { color: var(--bs-danger); background: color-mix(in srgb, var(--bs-danger) 9%, var(--bs-body-bg)); }
html[data-bs-theme] body.appnow-good .conta-opcoes .botao-sair svg { width: 19px; height: 19px; flex: 0 0 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 760px) {
    html[data-bs-theme] body.appnow-good .appnow-good-header .conta-opcoes { top: calc(100% + 6px); right: max(4px, env(safe-area-inset-right)); width: min(360px, calc(100vw - 16px)); max-height: calc(100dvh - 88px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
    html[data-bs-theme] body.appnow-good .appnow-good-header .conta-menu > summary,
    html[data-bs-theme] body.appnow-good .conta-menu-seta,
    html[data-bs-theme] body.appnow-good .conta-opcao,
    html[data-bs-theme] body.appnow-good .conta-opcoes .botao-sair { transition: none; }
}
