/*
 * Design novo do Clube Fácil (versão do servidor novo): o mesmo visual dos apps Financeiro e Repasses Convênios.
 * Carregado POR ÚLTIMO no painel (dashboard/base.html), no admin (admin/base_site.html) e no portal do cliente:
 * troca só a aparência — cores, fonte, espaçamentos, botões, campos, tabelas, cartões e selos — sem mexer em
 * nenhuma lógica. Os tokens abaixo são os mesmos de theme.css (formato "R G B"), então tudo que já usa
 * rgb(var(--brand-600)) etc. muda junto.
 */

:root {
    --brand-50: 232 240 254;
    --brand-100: 214 228 253;
    --brand-200: 179 204 250;
    --brand-500: 59 120 232;
    --brand-600: 31 95 209;
    --brand-700: 23 74 168;

    --surface: 255 255 255;
    --surface-soft: 249 250 251;
    --surface-strong: 243 244 246;
    --text: 31 41 55;
    --text-soft: 55 65 81;
    --muted: 107 114 128;
    --border: 229 231 235;
    --ring: 191 212 250;
    --success: 20 97 61;
    --warning: 138 75 6;
    --danger: 161 44 31;
    --info: 30 70 163;

    --radius-sm: 10px;
    --radius-md: 8px;
    --radius-lg: 8px;
    --shadow-sm: none;
    --shadow-md: 0 8px 24px rgba(19, 35, 43, 0.08);

    --dn-fonte: "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;
    --dn-fundo: #F9FAFB;
    --dn-campo-borda: #D1D5DB;
    --dn-altura: 36px;
    --dn-espaco: 24px;
    --dn-seta: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");

    /* Bootstrap 5 */
    --bs-primary: #1F5FD1;
    --bs-primary-rgb: 31, 95, 209;
    --bs-link-color: #1F5FD1;
    --bs-link-color-rgb: 31, 95, 209;
    --bs-link-hover-color: #174AA8;
    --bs-body-font-family: var(--dn-fonte);
    --bs-body-color: #1F2937;
    --bs-body-bg: #F9FAFB;
    --bs-border-color: #E5E7EB;
    --bs-border-radius: 6px;
    --bs-border-radius-lg: 8px;

    /* Admin do Django */
    --primary: #1F5FD1;
    --secondary: #174AA8;
    --accent: #E8F0FE;
    --primary-fg: #FFFFFF;
    --header-bg: #FFFFFF;
    --header-color: #1F2937;
    --header-link-color: #1F2937;
    --breadcrumbs-bg: #FFFFFF;
    --breadcrumbs-fg: #6B7280;
    --breadcrumbs-link-fg: #1F5FD1;
    --link-fg: #1F5FD1;
    --link-hover-color: #174AA8;
    --link-selected-fg: #174AA8;
    --button-bg: #1F5FD1;
    --button-hover-bg: #174AA8;
    --default-button-bg: #1F5FD1;
    --default-button-hover-bg: #174AA8;
    --hairline-color: #F3F4F6;
    --border-color: #E5E7EB;
    --darkened-bg: #F9FAFB;
    --selected-bg: #E8F0FE;
    --selected-row: #F3F7FE;
    --font-family-primary: var(--dn-fonte);
}

html[data-theme="dark"] {
    --brand-50: 26 43 77;
    --brand-100: 31 52 92;
    --brand-200: 52 84 150;
    --brand-500: 92 143 228;
    --brand-600: 64 125 232;
    --brand-700: 141 180 255;
    --surface: 24 24 27;
    --surface-soft: 28 28 32;
    --surface-strong: 39 39 42;
    --text: 228 228 231;
    --text-soft: 200 200 206;
    --muted: 139 139 148;
    --border: 39 39 42;
    --ring: 52 84 150;
    --dn-fundo: #111113;
    --dn-campo-borda: #3F3F46;
    --bs-primary: #407DE8;
    --bs-primary-rgb: 64, 125, 232;
    --bs-link-color: #8DB4FF;
    --bs-link-hover-color: #B3CCFF;
    --bs-body-color: #E4E4E7;
    --bs-body-bg: #111113;
    --bs-border-color: #27272A;
    --primary: #407DE8;
    --header-bg: #0A0A0B;
    --header-color: #E4E4E7;
    --link-fg: #8DB4FF;
}

/* ---------- base ---------- */
html, body {
    font-family: var(--dn-fonte) !important;
    background: var(--dn-fundo) !important;
    color: rgb(var(--text));
    -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5 { font-family: var(--dn-fonte); font-weight: 600; letter-spacing: -0.01em; color: rgb(var(--text)); }
a { color: rgb(var(--brand-600)); }
a:hover { color: rgb(var(--brand-700)); }
:focus-visible { outline: 2px solid rgb(var(--brand-600)) !important; outline-offset: 2px; }

/* ---------- botões ---------- */
.btn, .button, input[type="submit"], input[type="button"], .submit-row input, .submit-row a.deletelink, a.button {
    font-family: var(--dn-fonte) !important;
    font-weight: 600 !important;
    border-radius: 6px !important;
    min-height: var(--dn-altura);
    padding: 0 14px !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    line-height: 1.2 !important;
}
.btn-sm { min-height: 36px; padding: 0 12px !important; font-size: 14px; }
.ui-btn { font-family: var(--dn-fonte) !important; font-weight: 600 !important; border-radius: 6px !important; min-height: var(--dn-altura); padding: 0 18px !important; }
.btn-primary, .ui-btn-primary, input[type="submit"].default, .submit-row input.default {
    background: rgb(var(--brand-600)) !important;
    border-color: rgb(var(--brand-600)) !important;
    color: #FFFFFF !important;
}
.btn-primary:hover, .btn-primary:focus { background: rgb(var(--brand-700)) !important; border-color: rgb(var(--brand-700)) !important; }
.btn-outline-primary { color: rgb(var(--brand-600)) !important; border-color: var(--dn-campo-borda) !important; background: rgb(var(--surface)) !important; }
.btn-outline-primary:hover { background: rgb(var(--brand-50)) !important; color: rgb(var(--brand-700)) !important; }
.btn-secondary, .btn-light, .btn-outline-secondary {
    background: rgb(var(--surface)) !important;
    border: 1px solid var(--dn-campo-borda) !important;
    color: rgb(var(--text)) !important;
}
.btn-danger, .btn-outline-danger, .submit-row a.deletelink {
    background: rgb(var(--surface)) !important;
    border: 1px solid #F1C9C4 !important;
    color: rgb(var(--danger)) !important;
}
.btn-danger:hover, .btn-outline-danger:hover { background: #FBECEA !important; }

/* ---------- campos ---------- */
.form-control, .form-select,
input[type="text"], input[type="email"], input[type="number"], input[type="password"], input[type="search"],
input[type="date"], input[type="tel"], input[type="url"], textarea, select {
    font-family: var(--dn-fonte) !important;
    font-size: 14px !important;
    border: 1px solid var(--dn-campo-borda) !important;
    border-radius: 6px !important;
    background-color: rgb(var(--surface)) !important;
    color: rgb(var(--text)) !important;
    box-shadow: none !important;
}
.form-control, .form-select, select,
input[type="text"], input[type="email"], input[type="number"], input[type="password"], input[type="search"],
input[type="date"], input[type="tel"], input[type="url"] {
    min-height: var(--dn-altura);
    padding-left: 14px !important;
}
textarea { padding: 12px 14px !important; }
.form-control:focus, .form-select:focus, input:focus, textarea:focus, select:focus {
    border-color: rgb(var(--brand-600)) !important;
    box-shadow: 0 0 0 3px rgb(var(--ring) / 0.6) !important;
}
/* Setinha dos selects: própria, a 16px da borda, com o texto sem encostar nela */
html body select, html body .form-select {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    background-image: var(--dn-seta) !important;
    background-repeat: no-repeat !important;
    background-position: right 16px center !important;
    background-size: 16px 16px !important;
    padding-right: 44px !important;
}
html body select[multiple], html body select[size]:not([size="1"]) {
    background-image: none !important;
    padding-right: 14px !important;
}
label, .form-label { font-weight: 600; font-size: 14px; color: rgb(var(--text)); }
.form-text, .help, .helptext { color: rgb(var(--muted)) !important; font-size: 13px; }

/* ---------- cartões e blocos (mesmo espaçamento) ---------- */
.card, .module, .ui-card, .app-card {
    background: rgb(var(--surface)) !important;
    border: 1px solid rgb(var(--border)) !important;
    border-radius: 8px !important;
    box-shadow: none !important;
}
.card { margin-bottom: var(--dn-espaco); }
.card-header, .module h2, .module caption, .inline-group h2 {
    background: transparent !important;
    color: rgb(var(--text)) !important;
    border-bottom: 1px solid rgb(var(--border)) !important;
    font-family: var(--dn-fonte) !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    padding: 16px 24px !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}
.card-body { padding: var(--dn-espaco) !important; }

/* ---------- tabelas ---------- */
.table, #result_list, table {
    font-size: 14px;
    border-color: rgb(var(--border));
}
.table > thead th, #result_list thead th, table thead th {
    background: rgb(var(--surface-soft)) !important;
    color: rgb(var(--text-soft)) !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    border-bottom: 1px solid rgb(var(--border)) !important;
    padding: 10px 16px !important;
}
.table > tbody td, #result_list tbody td, #result_list tbody th, table tbody td {
    padding: 10px 16px !important;
    border-bottom: 1px solid rgb(var(--surface-strong)) !important;
    vertical-align: middle;
}
.table-hover > tbody > tr:hover > *, #result_list tbody tr:hover td, #result_list tbody tr:hover th { background: rgb(var(--surface-soft)) !important; }
.table-responsive { border-radius: 8px; }

/* ---------- selos ---------- */
.badge {
    border-radius: 999px !important;
    padding: 5px 10px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
}
.badge.bg-success, .badge.text-bg-success { background: #E3F4EC !important; color: #14613D !important; }
.badge.bg-warning, .badge.text-bg-warning { background: #FDF0DC !important; color: #8A4B06 !important; }
.badge.bg-danger, .badge.text-bg-danger { background: #FBE7E4 !important; color: #A12C1F !important; }
.badge.bg-secondary, .badge.text-bg-secondary, .badge.bg-light { background: #EEF1F3 !important; color: #4A5B65 !important; }
.badge.bg-primary, .badge.text-bg-primary, .badge.bg-info { background: #E7EEFB !important; color: #1E46A3 !important; }

/* ---------- avisos, abas, paginação, janelas ---------- */
.alert, ul.messagelist li { border-radius: 6px !important; border: 1px solid rgb(var(--border)) !important; font-size: 14px; }
.nav-tabs .nav-link, .nav-pills .nav-link { border-radius: 6px !important; font-weight: 600; color: rgb(var(--text-soft)); }
.nav-pills .nav-link.active, .nav-tabs .nav-link.active { background: rgb(var(--brand-50)) !important; color: rgb(var(--brand-700)) !important; border-color: transparent !important; }
.page-link, .paginator a { border-radius: 8px !important; border: 1px solid var(--dn-campo-borda) !important; color: rgb(var(--text-soft)) !important; font-weight: 600; margin: 0 2px; }
.page-item.active .page-link, .paginator .this-page { background: rgb(var(--brand-600)) !important; color: #FFFFFF !important; border-color: rgb(var(--brand-600)) !important; }
.modal-content, .dropdown-menu { border-radius: 8px !important; border: 1px solid rgb(var(--border)) !important; box-shadow: var(--shadow-md) !important; }
.modal-header, .modal-footer { padding: 16px 24px !important; border-color: rgb(var(--border)) !important; }
.modal-body { padding: var(--dn-espaco) !important; }

/* ---------- cabeçalho do painel ---------- */
header.navbar {
    background: rgb(var(--surface)) !important;
    border-bottom: 1px solid rgb(var(--border));
    box-shadow: none !important;
    min-height: 64px;
}
header.navbar .nav-link { height: 40px; padding: 0 12px !important; border-radius: 8px; color: rgb(var(--text-soft)) !important; font-weight: 500; font-size: 14px; }
header.navbar .nav-link:hover { background: rgb(var(--brand-50)); color: rgb(var(--brand-700)) !important; }
header.navbar .navbar-brand img { height: 44px !important; }

/* ---------- admin do Django ---------- */
#header { background: rgb(var(--surface)) !important; border-bottom: 1px solid rgb(var(--border)); min-height: 64px; }
#header, #header a { color: rgb(var(--text)) !important; }
div.breadcrumbs { background: transparent !important; color: rgb(var(--muted)) !important; padding: 16px 40px !important; font-size: 14px; }
div.breadcrumbs a { color: rgb(var(--brand-600)) !important; font-weight: 600; }
#content { padding: 8px 40px 40px !important; }
#content h1 { font-size: 24px; font-weight: 600; margin: 0 0 var(--dn-espaco); }
#nav-sidebar { background: rgb(var(--surface)) !important; border-right: 1px solid rgb(var(--border)) !important; }
#nav-sidebar .module th a, #nav-sidebar .module caption a { font-size: 14px; font-weight: 500; color: rgb(var(--text-soft)) !important; }
#nav-sidebar .current-model { background: rgb(var(--brand-50)) !important; }
#nav-sidebar .current-model a { color: rgb(var(--brand-700)) !important; font-weight: 600; }
#changelist-filter { background: rgb(var(--surface)) !important; border: 1px solid rgb(var(--border)) !important; border-radius: 8px !important; }
#changelist-filter h2 { background: transparent !important; color: rgb(var(--text)) !important; font-size: 17px !important; text-transform: none !important; }
#changelist #toolbar { background: rgb(var(--surface)) !important; border: 1px solid rgb(var(--border)); border-radius: 8px; padding: 16px !important; margin-bottom: var(--dn-espaco); }
.object-tools a { border-radius: 6px !important; background: rgb(var(--brand-600)) !important; font-weight: 600; text-transform: none !important; letter-spacing: 0 !important; padding: 10px 16px !important; }
.submit-row { background: transparent !important; border: 0 !important; padding: 16px 0 !important; gap: 10px; display: flex; flex-wrap: wrap; }
fieldset.module { padding-bottom: 8px; margin-bottom: var(--dn-espaco) !important; }
.form-row { padding: 14px 24px !important; border-bottom: 1px solid rgb(var(--surface-strong)) !important; }

/* ---------- moldura: menu lateral + página (dashboard/base.html) ---------- */
html body .dn-menu.mobile-sidebar {
    background: rgb(var(--surface)); border-right: 1px solid rgb(var(--border)); box-shadow: none;
    display: flex; flex-direction: column; gap: 24px; padding: 24px 16px; box-sizing: border-box;
    width: 260px; height: 100vh; overflow-y: auto; z-index: 1055; font-family: var(--dn-fonte);
}
.dn-menu-topo { display: flex; align-items: center; justify-content: space-between; padding: 0 8px; }
.dn-marca { display: inline-flex; align-items: center; gap: 10px; font-size: 17px; font-weight: 700; color: rgb(var(--text)) !important; text-decoration: none; }
.dn-marca-icone { width: 32px; height: 32px; border-radius: 8px; background: rgb(var(--brand-600)); color: #FFFFFF; display: inline-flex; align-items: center; justify-content: center; }
.dn-menu-links { display: flex; flex-direction: column; gap: 2px; }
.dn-menu-link {
    display: flex; align-items: center; gap: 12px; height: 40px; padding: 0 12px; border-radius: 8px; border: 0;
    background: transparent; color: rgb(var(--text-soft)) !important; font: inherit; font-size: 14px; font-weight: 500;
    text-decoration: none !important; cursor: pointer; width: 100%; text-align: left;
}
.dn-menu-link i { font-size: 16px; width: 18px; text-align: center; color: rgb(var(--muted)); }
.dn-menu-link:hover { background: rgb(var(--surface-soft)); color: rgb(var(--text)) !important; }
.dn-menu-link.is-ativo { background: rgb(var(--brand-50)); color: rgb(var(--brand-700)) !important; font-weight: 600; }
.dn-menu-link.is-ativo i { color: rgb(var(--brand-600)); }
.dn-menu-rodape { margin-top: auto; display: flex; flex-direction: column; gap: 4px; border-top: 1px solid rgb(var(--border)); padding-top: 16px; }
.dn-usuario { display: flex; align-items: center; gap: 10px; padding: 8px 12px; min-width: 0; }
.dn-usuario-inicial { flex: 0 0 auto; width: 32px; height: 32px; border-radius: 999px; background: rgb(var(--brand-50)); color: rgb(var(--brand-700)); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 14px; }
.dn-usuario-nome { font-size: 14px; font-weight: 600; color: rgb(var(--text)); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dn-menu-sair, .dn-menu-sair i { color: rgb(var(--danger)) !important; }
.dn-menu-fechar, .dn-botao-icone { width: 44px; height: 44px; border-radius: 6px; border: 1px solid var(--dn-campo-borda); background: rgb(var(--surface)); color: rgb(var(--text)); display: inline-flex; align-items: center; justify-content: center; font-size: 20px; cursor: pointer; }
.dn-topo-celular { display: none; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; background: rgb(var(--surface)); border-bottom: 1px solid rgb(var(--border)); position: sticky; top: 0; z-index: 1040; }
.dn-pagina { display: block; min-width: 0; padding: 32px 40px 48px; box-sizing: border-box; }
.dn-pagina > .container, .dn-pagina > .container-fluid, .dn-pagina .ui-page-shell { max-width: 1280px; margin: 0 auto; padding-left: 0 !important; padding-right: 0 !important; }
@media (min-width: 992px) {
    html body .dn-menu.mobile-sidebar { position: fixed; top: 0; left: 0; right: auto; transition: none; }
    /* Espaço do menu sempre que ele estiver na tela (algumas telas marcam "sem topo" mas incluem o cabeçalho) */
    .dn-com-menu .dn-pagina { margin-left: 0; }
    body:has(#appSidebar) .dn-pagina, body:has(.dn-menu) .dn-pagina { margin-left: 260px; }
    .dn-menu-fechar { display: none; }
    html body .sidebar-overlay { display: none !important; }
}
@media (max-width: 991px) {
    html body .dn-menu.mobile-sidebar { position: fixed; top: 0; left: auto; right: -100%; width: 280px; transition: right .25s ease; }
    html body .dn-menu.mobile-sidebar.show { right: 0; box-shadow: var(--shadow-md); }
    .dn-topo-celular { display: flex; }
    .dn-pagina { padding: 20px 16px 40px; }
}

/* Telas com o cabeçalho próprio (includes/header.html): o menu lateral dele (#appSidebar), que antes só abria no
   celular, fica sempre à esquerda no computador; a barra de cima fica só com alertas e usuário. */
html body #appSidebar {
    background: rgb(var(--surface)) !important; border-right: 1px solid rgb(var(--border)); font-family: var(--dn-fonte);
}
html body #appSidebar .hd-lateral-topo { padding: 24px 24px 8px; border: 0; }
html body #appSidebar .hd-lateral-corpo { padding: 8px 16px; }
html body #appSidebar .hd-item {
    min-height: 40px; padding: 0 12px; border-radius: 8px; gap: 12px; font-size: 14px; color: rgb(var(--text-soft)) !important;
}
html body #appSidebar .hd-item strong { font-weight: 500; }
html body #appSidebar .hd-item:hover { background: rgb(var(--surface-soft)); }
html body #appSidebar .hd-item.is-active { background: rgb(var(--brand-50)) !important; color: rgb(var(--brand-700)) !important; }
html body #appSidebar .hd-item.is-active strong { font-weight: 600; }
html body #appSidebar .hd-item-icone { background: transparent !important; color: rgb(var(--muted)); width: 18px; }
html body #appSidebar .hd-item.is-active .hd-item-icone { color: rgb(var(--brand-600)); }
html body #appSidebar .hd-lateral-titulo { font-size: 12px; font-weight: 700; color: rgb(var(--muted)); text-transform: uppercase; letter-spacing: .04em; padding: 16px 12px 6px; }
html body #appSidebar .hd-lateral-rodape { border-top: 1px solid rgb(var(--border)); padding: 12px 16px 20px; }
html body #app-header { background: rgb(var(--surface)) !important; border-bottom: 1px solid rgb(var(--border)); box-shadow: none !important; }
@media (min-width: 992px) {
    html body #appSidebar {
        left: 0 !important; right: auto !important; transform: none !important; width: 260px !important; max-width: none !important;
        box-shadow: none !important; z-index: 1030 !important;
    }
    html body #appSidebar .hd-lateral-topo .hd-icone { display: none; }
    html body #appSidebarOverlay { display: none !important; }
    html body #app-header { margin-left: 260px; width: auto !important; }
    html body #app-header nav[aria-label="Menu principal"], html body #app-header .hd-icone--menu,
    html body #app-header .hd-conteudo > a:first-child { display: none !important; }
    html body #app-header .hd-conteudo { display: flex !important; justify-content: flex-end !important; max-width: none !important; padding: 0 40px !important; }
}

/* Cabeçalho de página padrão (título + descrição + botão principal), usado nas telas refeitas */
.dn-cabecalho { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: var(--dn-espaco); }
.dn-cabecalho h1 { margin: 0; font-size: 24px; font-weight: 600; }
.dn-cabecalho p { margin: 2px 0 0; color: rgb(var(--muted)); font-size: 13px; }
.dn-cabecalho-acoes { display: flex; flex-wrap: wrap; gap: 10px; }
.dn-cartao { background: rgb(var(--surface)); border: 1px solid rgb(var(--border)); border-radius: 8px; padding: 16px; margin-bottom: var(--dn-espaco); }
.dn-cartao-tabela { background: rgb(var(--surface)); border: 1px solid rgb(var(--border)); border-radius: 8px; overflow-x: auto; margin-bottom: var(--dn-espaco); }
.dn-cartao-tabela table { width: 100%; border-collapse: collapse; margin: 0; }
.dn-filtros { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; }
.dn-filtros > * { flex: 1 1 180px; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.dn-filtros > .dn-filtro-largo { flex: 3 1 280px; }
.dn-filtros > .dn-filtro-botao { flex: 0 0 auto; }
.dn-cartao-lista > :first-child:not(.ui-table-wrap) { padding: 12px 16px 0; }
.dn-cartao-tabela .ui-table-wrap { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; }
/* Letras miúdas das tabelas antigas (text-[10px]/[11px]) ficam legíveis em todas as telas */
html body [class*="text-[10px]"], html body [class*="text-[11px]"], html body .text-xs { font-size: 13px !important; line-height: 1.45 !important; }
html body .ui-table, html body .ui-table td, html body .ui-table th { font-size: 14px !important; }
html body .ui-table th, html body .ui-table td { white-space: nowrap; }
html body .ui-table td .truncate, html body .ui-table td [class*="max-w-"] { max-width: 18rem; }
html body .ui-badge { border-radius: 999px !important; height: 26px; padding: 0 10px !important; display: inline-flex; align-items: center; font-size: 13px !important; font-weight: 600 !important; }
html body .ui-badge-active { background: #E3F4EC !important; color: #14613D !important; }
.dn-selo { display: inline-flex; align-items: center; height: 26px; padding: 0 10px; border-radius: 999px; font-size: 13px; font-weight: 600; white-space: nowrap; }
.dn-selo-ok { background: #E3F4EC; color: #14613D; }
.dn-selo-atencao { background: #FDF0DC; color: #8A4B06; }
.dn-selo-neutro { background: #EEF1F3; color: #4A5B65; }
.dn-selo-info { background: #E7EEFB; color: #1E46A3; }
.dn-selo-erro { background: #FBE7E4; color: #A12C1F; }

/* ---------- ficha do cliente: cartões um embaixo do outro, mesmo espaçamento, em ordem ---------- */
html body .ficha-grid { display: flex !important; flex-direction: column; align-items: stretch !important; gap: var(--dn-espaco) !important; }
html body .ficha-grid > .ficha-coluna > * { width: 100%; box-sizing: border-box; }
html body .ficha-coluna { display: contents !important; }
html body .ficha-grid .cad-card { margin: 0 !important; }
html body .ficha-grid [aria-labelledby="ficha-dados-titulo"] { order: 1; }
html body .ficha-grid [aria-labelledby="ficha-contrato-titulo"] { order: 2; }
html body .ficha-grid [aria-labelledby="ficha-historico-titulo"] { order: 3; }
html body .ficha-grid [aria-labelledby="ficha-cobrancas-titulo"] { order: 4; }
html body .ficha-grid [aria-labelledby="ficha-deps-titulo"] { order: 5; }
html body .ficha-grid [aria-labelledby="ficha-docusign-titulo"] { order: 6; }
html body .ficha-grid [aria-labelledby="ficha-checkins-titulo"] { order: 7; }
html body .ficha-grid [aria-labelledby="ficha-obs-titulo"] { order: 8; }
html body .cad-card { background: rgb(var(--surface)) !important; border: 1px solid rgb(var(--border)) !important; border-radius: 8px !important; box-shadow: none !important; }
html body .cad-grid { gap: var(--dn-espaco) !important; }

/* ---------- tela de entrar (auth/login.html) ---------- */
.dn-login-body { margin: 0; }
.dn-login { min-height: 100vh; display: flex; flex-wrap: wrap; }
.dn-login-marca {
    flex: 1 1 520px; min-width: 0; box-sizing: border-box; padding: 56px 64px;
    background: rgb(var(--brand-600)); color: #FFFFFF;
    display: flex; flex-direction: column; justify-content: space-between; gap: 48px;
}
.dn-login-logo { display: flex; align-items: center; gap: 12px; font-size: 20px; font-weight: 700; }
.dn-login-logo-icone { width: 40px; height: 40px; border-radius: 6px; background: #FFFFFF; color: rgb(var(--brand-600)); display: inline-flex; align-items: center; justify-content: center; }
.dn-login-chamada { max-width: 460px; display: flex; flex-direction: column; gap: 20px; }
.dn-login-chamada h1 { margin: 0; color: #FFFFFF; font-size: 44px; line-height: 1.1; letter-spacing: -0.02em; }
.dn-login-chamada p { margin: 0; font-size: 17px; line-height: 1.6; color: #D3ECE9; }
.dn-login-rodape { margin: 0; font-size: 13px; color: #BFE3DF; }
.dn-login-form { flex: 1 1 440px; min-width: 0; box-sizing: border-box; padding: 48px 24px; display: flex; align-items: center; justify-content: center; }
.dn-login-form form { width: 100%; max-width: 400px; display: flex; flex-direction: column; gap: var(--dn-espaco); }
.dn-login-titulo h2 { margin: 0 0 8px; font-size: 28px; }
.dn-login-titulo p, .dn-login-nota { margin: 0; color: rgb(var(--muted)); font-size: 15px; }
.dn-login-nota { font-size: 13px; text-align: center; }
.dn-login-mensagens { display: flex; flex-direction: column; gap: 10px; }
.dn-aviso { border-radius: 6px; padding: 12px 14px; font-size: 14px; border: 1px solid; }
.dn-aviso-ok { background: #E3F4EC; border-color: #B9E2CC; color: #14613D; }
.dn-aviso-atencao { background: #FDF0DC; border-color: #F3D3A2; color: #8A4B06; }
.dn-aviso-erro { background: #FBE7E4; border-color: #F1C9C4; color: #A12C1F; }
.dn-campo { display: flex; flex-direction: column; gap: 8px; }
.dn-campo input { width: 100%; box-sizing: border-box; min-height: 48px !important; }
.dn-campo-linha { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.dn-campo-linha a { font-size: 14px; font-weight: 600; }
.dn-senha { position: relative; }
.dn-senha input { padding-right: 48px !important; }
.dn-senha button { position: absolute; top: 0; right: 0; width: 48px; height: 48px; border: 0; background: transparent; color: rgb(var(--muted)); cursor: pointer; }
.dn-botao-principal { min-height: 48px; border: 0; border-radius: 6px; background: rgb(var(--brand-600)); color: #FFFFFF; font: inherit; font-size: 16px; font-weight: 600; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.dn-botao-principal:hover { background: rgb(var(--brand-700)); }
.dn-botao-principal:disabled { opacity: .7; cursor: wait; }
.dn-spinner { width: 16px; height: 16px; border-radius: 999px; border: 2px solid #FFFFFF; border-top-color: transparent; animation: dn-gira 0.8s linear infinite; }
.dn-spinner.hidden { display: none; }
@keyframes dn-gira { to { transform: rotate(360deg); } }
@media (max-width: 767px) {
    .dn-login-marca { padding: 32px 24px; gap: 24px; }
    .dn-login-chamada h1 { font-size: 30px; }
}

/* ---------- celular ---------- */
@media (max-width: 767px) {
    #content { padding: 8px 16px 32px !important; }
    div.breadcrumbs { padding: 12px 16px !important; }
    .card-body { padding: 16px !important; }
}

/* ---------- admin do Django: cabeçalho com a marca e links claros ---------- */
#header #site-name { margin: 0; }
#header #site-name a.dn-marca { color: rgb(var(--text)) !important; }
#user-tools p { display: flex; align-items: center; gap: 16px; margin: 0; font-size: 14px; text-transform: none; letter-spacing: 0; }
#user-tools .dn-admin-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: rgb(var(--brand-600)) !important; text-decoration: none; border: 0 !important; }
#user-tools .dn-admin-sair { color: rgb(var(--danger)) !important; }
#user-tools .dn-admin-usuario { font-weight: 600; color: rgb(var(--text)); }

/* =====================================================================================================
   Menu lateral igual ao dos apps Financeiro e Repasses Convênios (MainWindow.xaml + Estilos.xaml):
   248px, branco (preto no escuro), logo da Cia do Médico + nome do sistema, seções com título pequeno,
   item selecionado azul-claro com marcador à esquerda, cartão do usuário no rodapé. Sem barra no topo.
   ===================================================================================================== */
:root {
    --dn-menu-largura: 248px;
    --dn-lat-fundo: #FFFFFF; --dn-lat-borda: #E5E7EB; --dn-lat-texto: #1F2937; --dn-lat-fraco: #6B7280;
    --dn-lat-hover: #F3F4F6; --dn-lat-sel-fundo: #E8F0FE; --dn-lat-sel-texto: #1F5FD1;
}
html[data-theme="dark"] {
    --dn-lat-fundo: #0A0A0B; --dn-lat-borda: #1F1F23; --dn-lat-texto: #E4E4E7; --dn-lat-fraco: #8B8B94;
    --dn-lat-hover: #18181B; --dn-lat-sel-fundo: #1A2B4D; --dn-lat-sel-texto: #8DB4FF;
}
html body #appSidebar, html body .dn-menu.mobile-sidebar {
    background: var(--dn-lat-fundo) !important; border-right: 1px solid var(--dn-lat-borda) !important;
    font-family: var(--dn-fonte); color: var(--dn-lat-texto);
}
html body #appSidebar .hd-lateral-topo { padding: 24px 22px 18px !important; border-bottom: 1px solid var(--dn-lat-borda) !important; display: flex; align-items: flex-start; justify-content: space-between; }
.hd-lateral-marca { display: flex; flex-direction: column; gap: 8px; text-decoration: none !important; }
.hd-lateral-marca .hd-logo { max-height: 40px; max-width: 190px; width: auto; height: auto; }
.hd-lateral-marca .hd-logo--escuro { display: none; }
html[data-theme="dark"] .hd-lateral-marca .hd-logo--claro { display: none; }
html[data-theme="dark"] .hd-lateral-marca .hd-logo--escuro { display: block; }
.hd-lateral-sistema { margin-left: 2px; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #1F5FD1; }
html[data-theme="dark"] .hd-lateral-sistema { color: #8DB4FF; }
html body #appSidebar .hd-lateral-corpo { padding: 8px 0 !important; overflow-y: auto; }
html body #appSidebar .hd-menu-lista { display: flex; flex-direction: column; gap: 2px; padding: 0 !important; }
html body #appSidebar .hd-lateral-titulo, html body .dn-menu-titulo {
    margin: 14px 0 6px 26px !important; padding: 0 !important; font-size: 11px !important; font-weight: 600 !important;
    letter-spacing: .05em !important; text-transform: uppercase !important; color: var(--dn-lat-fraco) !important; border: 0 !important;
}
html body #appSidebar .hd-item, html body .dn-menu-link {
    position: relative; display: flex !important; align-items: center; gap: 12px; min-height: 0 !important; height: auto !important;
    margin: 1px 12px !important; padding: 9px 14px !important; width: auto !important; border-radius: 7px !important;
    background: transparent !important; color: var(--dn-lat-texto) !important; font-size: 14px !important; font-weight: 400 !important;
    text-decoration: none !important; box-shadow: none !important; border: 0 !important;
}
html body #appSidebar .hd-item strong, html body #appSidebar .hd-item span:not(.hd-item-icone):not(.hd-contador):not(.hd-chave) { font-weight: inherit !important; font-size: 14px !important; color: inherit !important; }
html body #appSidebar .hd-item small { display: none; }
html body #appSidebar .hd-item-icone, html body .dn-menu-link i {
    width: 18px !important; height: 18px !important; min-width: 18px; background: transparent !important; border: 0 !important;
    color: inherit !important; font-size: 17px; display: inline-flex; align-items: center; justify-content: center;
}
html body #appSidebar .hd-item:hover, html body .dn-menu-link:hover { background: var(--dn-lat-hover) !important; }
html body #appSidebar .hd-item.is-active, html body .dn-menu-link.is-ativo {
    background: var(--dn-lat-sel-fundo) !important; color: var(--dn-lat-sel-texto) !important; font-weight: 600 !important;
}
html body #appSidebar .hd-item.is-active::before, html body .dn-menu-link.is-ativo::before {
    content: ""; position: absolute; left: 2px; top: 50%; width: 3px; height: 18px; margin-top: -9px; border-radius: 2px; background: var(--dn-lat-sel-texto);
}
html body #appSidebar .hd-contador { margin-left: auto; position: static !important; min-width: 22px; height: 20px; padding: 0 6px; border-radius: 999px; font-size: 11px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
html body #appSidebar .hd-alerta-grupo { position: relative; }
html body #appSidebar .hd-lateral-rodape { margin-top: auto; padding: 8px 0 14px !important; border-top: 1px solid var(--dn-lat-borda) !important; display: flex; flex-direction: column; gap: 2px; }
.hd-usuario-rodape { margin: 8px 12px 0; padding: 10px; border-radius: 9px; background: var(--dn-lat-hover); display: flex; align-items: center; gap: 10px; min-width: 0; }
.hd-avatar-rodape { flex: 0 0 36px; width: 36px; height: 36px; border-radius: 18px; background: #1F5FD1; color: #FFFFFF; display: inline-flex; align-items: center; justify-content: center; font-weight: 600; font-size: 15px; }
.hd-usuario-rodape-texto { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.hd-usuario-rodape-texto strong { font-size: 13px; font-weight: 600; color: var(--dn-lat-texto); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hd-usuario-rodape-texto small { font-size: 11px; color: var(--dn-lat-fraco); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hd-usuario-sair { flex: 0 0 auto; width: 32px; height: 32px; border: 0; border-radius: 6px; background: transparent; color: var(--dn-lat-fraco); font-size: 17px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.hd-usuario-sair:hover { background: var(--dn-lat-borda); color: #DC2626; }
@media (min-width: 992px) {
    html body #appSidebar { width: var(--dn-menu-largura) !important; }
    html body .dn-menu.mobile-sidebar { width: var(--dn-menu-largura); }
    body:has(#appSidebar) .dn-pagina, body:has(.dn-menu) .dn-pagina { margin-left: var(--dn-menu-largura) !important; }
    /* Sem barra no topo no computador: tudo está no menu lateral */
    html body #app-header { display: none !important; }
    .dn-pagina { padding: 28px 32px 32px; }
}
/* Celular: barra mínima só com o logo e o botão do menu */
@media (max-width: 991px) {
    html body #app-header .hd-acoes { display: none !important; }
    html body #app-header .hd-conteudo > a:first-child .dn-marca { font-size: 16px; }
}
html body .dn-menu.mobile-sidebar { padding: 0 !important; gap: 0 !important; }
html body .dn-menu .dn-menu-topo { padding: 24px 22px 18px; border-bottom: 1px solid var(--dn-lat-borda); align-items: flex-start; }
html body .dn-menu .dn-menu-links { padding: 8px 0; }
html body .dn-menu .dn-menu-rodape { padding: 8px 0 14px; border-top: 1px solid var(--dn-lat-borda); gap: 2px; }
html body #appSidebar .hd-lateral-topo { height: auto !important; min-height: 0 !important; flex: 0 0 auto; overflow: visible !important; }
html body #appSidebar .hd-grupo-titulo {
    margin: 10px 0 4px 26px !important; padding: 0 !important; font-size: 11px !important; font-weight: 600 !important;
    letter-spacing: .04em; text-transform: uppercase; color: var(--dn-lat-fraco) !important; opacity: .85;
}
/* Listas dos alertas abrem ao lado do menu, por cima dele */
html body .hd-menu { z-index: 1060 !important; }
.hd-marca-celular .hd-logo { max-height: 30px; }
/* Seções sem linha entre elas, como no Convênios/Financeiro (só o título pequeno separa) */
html body #appSidebar .hd-lateral-secao { border: 0 !important; padding: 0 !important; margin: 0 !important; }
html body #appSidebar .hd-lateral-rodape { border-top: 0 !important; padding-top: 0 !important; }

/* =====================================================================================================
   Tela de Configurações no desenho do Repasses Convênios (ConfiguracoesView / ConfiguracoesSistemaView):
   cartões (Painel: borda 1px, canto 8px, 24x22 de respiro) com ícone 38px em fundo colorido claro,
   título 15px e descrição 12px; grade de 2 colunas com 16px; "Aparência" com miniaturas Claro/Escuro.
   ===================================================================================================== */
.cfg-pagina .dn-cabecalho { align-items: flex-end; }
.cfg-busca { position: relative; width: min(100%, 22rem); }
.cfg-busca > i { position: absolute; top: 50%; left: 12px; transform: translateY(-50%); color: rgb(var(--muted)); pointer-events: none; }
.cfg-busca input { width: 100%; padding-left: 36px !important; padding-right: 36px !important; }
.cfg-busca a { position: absolute; top: 50%; right: 10px; transform: translateY(-50%); color: rgb(var(--muted)); }
.cfg-grade-paineis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; margin-bottom: 16px; }
@media (max-width: 1100px) { .cfg-grade-paineis { grid-template-columns: minmax(0, 1fr); } }
.cfg-painel { background: rgb(var(--surface)); border: 1px solid rgb(var(--border)); border-radius: 8px; padding: 22px 24px; min-width: 0; }
.cfg-painel-topo { display: flex; align-items: flex-start; gap: 12px; }
.cfg-painel-topo h2 { margin: 0; font-size: 15px; font-weight: 600; color: rgb(var(--text)); }
.cfg-painel-topo p { margin: 2px 0 0; font-size: 12px; line-height: 1.45; color: rgb(var(--muted)); }
.cfg-painel-icone { flex: 0 0 38px; width: 38px; height: 38px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; font-size: 19px; }
.cfg-cor-0 { background: rgba(31, 95, 209, .10); color: #1F5FD1; }
.cfg-cor-1 { background: rgba(217, 119, 6, .10); color: #D97706; }
.cfg-cor-2 { background: rgba(124, 58, 237, .10); color: #7C3AED; }
.cfg-cor-3 { background: rgba(22, 163, 74, .10); color: #16A34A; }
.cfg-cor-4 { background: rgba(8, 145, 178, .10); color: #0891B2; }
.cfg-cor-5 { background: rgba(219, 39, 119, .10); color: #DB2777; }

/* Minha conta */
.cfg-conta { margin-top: 18px; padding: 14px; border-radius: 8px; background: rgb(var(--surface-strong)); display: flex; align-items: center; gap: 14px; }
.cfg-conta-avatar { flex: 0 0 46px; width: 46px; height: 46px; border-radius: 23px; background: #1F5FD1; color: #FFFFFF; font-size: 16px; font-weight: 600; display: inline-flex; align-items: center; justify-content: center; }
.cfg-conta dl { margin: 0; flex: 1; min-width: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.cfg-conta dt { font-size: 12px; font-weight: 400; color: rgb(var(--muted)); margin-bottom: 4px; }
.cfg-conta dd { margin: 0; font-size: 14px; font-weight: 600; color: rgb(var(--text)); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Aparência: miniaturas clicáveis, a escolhida com borda azul e ✓ */
.cfg-temas { margin-top: 16px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.cfg-tema { display: flex; flex-direction: column; gap: 10px; padding: 10px; border: 2px solid rgb(var(--border)); border-radius: 10px; background: transparent; color: rgb(var(--text)); cursor: pointer; text-align: left; font: inherit; }
.cfg-tema:hover { background: rgb(var(--surface-soft)); }
.cfg-tema.is-ativo { border-color: #1F5FD1; }
.cfg-tema-rotulo { display: flex; align-items: center; gap: 8px; padding: 0 2px; font-size: 14px; font-weight: 600; }
.cfg-tema-ok { margin-left: auto; color: #1F5FD1; visibility: hidden; font-size: 18px; }
.cfg-tema.is-ativo .cfg-tema-ok { visibility: visible; }
.cfg-miniatura { display: grid; grid-template-columns: 34px 1fr; min-height: 110px; border-radius: 6px; border: 1px solid #E5E7EB; background: #F7F8FA; overflow: hidden; }
.cfg-miniatura .m-lat { display: flex; flex-direction: column; gap: 6px; padding: 10px 6px; background: #FFFFFF; border-right: 1px solid #E5E7EB; }
.cfg-miniatura .m-lat i { display: block; height: 5px; border-radius: 2px; background: #D1D5DB; }
.cfg-miniatura .m-lat i:first-child { height: 6px; border-radius: 3px; background: #1F5FD1; margin-bottom: 2px; }
.cfg-miniatura .m-corpo { display: flex; flex-direction: column; gap: 8px; padding: 10px; }
.cfg-miniatura .m-corpo b { display: block; width: 60px; height: 7px; border-radius: 3px; background: #9CA3AF; }
.cfg-miniatura .m-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; }
.cfg-miniatura .m-cards i { display: block; height: 22px; border-radius: 4px; background: #FFFFFF; }
.cfg-miniatura .m-grafico { flex: 1; min-height: 30px; border-radius: 4px; background: #FFFFFF linear-gradient(#1F5FD1, #1F5FD1) no-repeat 8px 60% / calc(100% - 16px) 2px; }
.cfg-miniatura--escuro { background: #1C1C1F; border-color: #2A2A2E; }
.cfg-miniatura--escuro .m-lat { background: #0A0A0B; border-color: #2A2A2E; }
.cfg-miniatura--escuro .m-lat i { background: #3F3F46; }
.cfg-miniatura--escuro .m-corpo b { background: #71717A; }
.cfg-miniatura--escuro .m-cards i, .cfg-miniatura--escuro .m-grafico { background-color: #27272A; }

/* Linhas "texto à esquerda, controle à direita" de cada área */
.cfg-linhas { list-style: none; margin: 14px 0 0; padding: 0; }
.cfg-linha { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 0; border-top: 1px solid rgb(var(--surface-strong)); }
.cfg-linha:first-child { border-top: 0; }
.cfg-linha-texto { display: flex; align-items: flex-start; gap: 10px; min-width: 0; }
.cfg-linha-icone { flex: 0 0 auto; width: 20px; color: rgb(var(--muted)); font-size: 16px; line-height: 20px; text-align: center; }
.cfg-linha-texto a, .cfg-linha-texto strong { font-size: 14px; font-weight: 600; color: rgb(var(--text)) !important; text-decoration: none; }
.cfg-linha-texto a:hover { color: #1F5FD1 !important; }
.cfg-linha-texto p { margin: 2px 0 0; font-size: 12px; line-height: 1.4; color: rgb(var(--muted)); }
.cfg-linha-acoes { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; }
.cfg-total { min-width: 28px; height: 22px; padding: 0 8px; border-radius: 999px; background: rgb(var(--surface-strong)); color: rgb(var(--text-soft)); font-size: 12px; font-weight: 600; display: inline-flex; align-items: center; justify-content: center; }
html body .cfg-botao { min-height: 32px !important; padding: 0 12px !important; font-size: 13px !important; }
.cfg-avancado { display: inline-flex; align-items: center; gap: 4px; margin-left: 8px; padding: 1px 8px; border-radius: 999px; background: rgba(217, 119, 6, .12); color: #B45309; font-size: 11px; font-weight: 600; vertical-align: middle; }
.cfg-vazio { padding: 32px 16px; border: 1px dashed rgb(var(--border)); border-radius: 8px; color: rgb(var(--muted)); font-size: 14px; text-align: center; }
@media (max-width: 767px) {
    .cfg-linha { flex-direction: column; align-items: stretch; }
    .cfg-linha-acoes { justify-content: flex-start; flex-wrap: wrap; }
    .cfg-conta dl { grid-template-columns: minmax(0, 1fr); }
    .cfg-temas { grid-template-columns: minmax(0, 1fr); }
}
/* Como no Convênios: Minha conta e Aparência em largura total; cartões das áreas com a mesma altura na linha */
.cfg-pagina > .cfg-grade-paineis:first-of-type:not(:last-of-type) { grid-template-columns: minmax(0, 1fr); }
.cfg-grade-paineis { align-items: stretch; }
.cfg-temas { grid-template-columns: repeat(2, minmax(0, 260px)); }
/* O tema agora fica em Configurações › Aparência (e no menu para quem não acessa Configurações): sem botão flutuante */
html body .app-theme-floating-toggle { display: none !important; }
html body .ui-btn-outline { background: rgb(var(--surface)) !important; border: 1px solid var(--dn-campo-borda) !important; color: rgb(var(--text)) !important; }
html body .ui-btn-outline:hover { background: rgb(var(--surface-soft)) !important; }
/* Grupos dos relatórios (Financeiro, Clientes, Operação) com o mesmo título das outras seções, sem título duplicado */
html body #appSidebar .hd-grupo-titulo { margin: 14px 0 6px 26px !important; opacity: 1 !important; letter-spacing: .05em !important; }

/* Alertas num só sininho, no cartão do usuário ao lado do sair (lista única: Duplicidades + Alertas de adesões) */
.hd-usuario-alertas { position: relative; flex: 0 0 auto; width: 32px; height: 32px; border: 0; border-radius: 6px; background: transparent; color: var(--dn-lat-fraco); font-size: 17px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.hd-usuario-alertas:hover { background: var(--dn-lat-borda); color: var(--dn-lat-texto); }
.hd-usuario-alertas-qtd { position: absolute; top: -3px; right: -4px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; font-size: 10px; font-weight: 700; line-height: 18px; color: #FFFFFF; text-align: center; box-shadow: 0 0 0 2px var(--dn-lat-hover); }
.hd-usuario-alertas-qtd.is-perigo { background: #DC2626; }
.hd-usuario-alertas-qtd.is-aviso { background: #D97706; }
.hd-usuario-rodape { gap: 6px; }
.hd-usuario-rodape .hd-avatar-rodape { margin-right: 4px; }
.hd-menu--unico { width: 360px; max-width: calc(100vw - 24px); }
.hd-menu--unico .hd-alertas-parte + .hd-alertas-parte { border-top: 1px solid rgb(var(--border)); }
.hd-menu--unico .hd-menu-rolagem { max-height: 260px; overflow-y: auto; }

/* Conteúdo ocupa a largura toda (como nos apps: só 32px de margem); antes ficava preso no centro em 1280px */
html body .dn-pagina > .container, html body .dn-pagina > .container-fluid, html body .dn-pagina .ui-page-shell,
html body .dn-pagina .max-w-screen-2xl, html body .dn-pagina .max-w-7xl, html body .dn-pagina .max-w-6xl {
    max-width: none !important; width: 100% !important; margin-left: 0 !important; margin-right: 0 !important;
}

/* Configurações: todos os cartões em largura total, um embaixo do outro; Aparência com as miniaturas grandes,
   cada uma ocupando metade do cartão (UniformGrid Columns=2 do Convênios) */
html body .cfg-grade-paineis { grid-template-columns: minmax(0, 1fr) !important; gap: 16px; }
html body .cfg-temas { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 16px; }
html body .cfg-miniatura { min-height: 220px; grid-template-columns: 64px 1fr; border-radius: 8px; }
html body .cfg-miniatura .m-lat { gap: 10px; padding: 18px 12px; }
html body .cfg-miniatura .m-lat i { height: 8px; border-radius: 4px; }
html body .cfg-miniatura .m-lat i:first-child { height: 9px; }
html body .cfg-miniatura .m-corpo { gap: 16px; padding: 20px; }
html body .cfg-miniatura .m-corpo b { width: 120px; height: 11px; border-radius: 5px; }
html body .cfg-miniatura .m-cards { gap: 10px; }
html body .cfg-miniatura .m-cards i { height: 44px; border-radius: 6px; }
html body .cfg-miniatura .m-grafico { min-height: 70px; border-radius: 6px; background-position: 16px 60%; background-size: calc(100% - 32px) 3px; }
html body .cfg-tema { padding: 12px; gap: 12px; border-radius: 10px; }
html body .cfg-tema-rotulo { font-size: 15px; }
@media (max-width: 767px) { html body .cfg-temas { grid-template-columns: minmax(0, 1fr) !important; } html body .cfg-miniatura { min-height: 150px; } }

/* Espaço só uma vez em volta do conteúdo (antes somava o da página + o do contêiner antigo e sobrava em cima e embaixo) */
html body .dn-pagina .ui-page-shell, html body .dn-pagina > .container, html body .dn-pagina > .container-fluid { padding-top: 0 !important; padding-bottom: 0 !important; }
@media (min-width: 992px) { html body .dn-pagina { padding: 24px 32px 24px !important; } }
html body .dn-pagina > *:last-child, html body .dn-pagina .ui-page-shell > *:last-child { margin-bottom: 0 !important; }
html body .cfg-grade-paineis:last-of-type { margin-bottom: 0; }

/* Dashboard (painel do Clube Fácil): a moldura ocupa toda a área ao lado do menu, sem margens */
body:has(.dn-painel-moldura) .dn-pagina { padding: 0 !important; }
.dn-painel-moldura { display: block; width: 100%; height: 100vh; border: 0; background: #F7F8FA; }
@media (max-width: 991px) { .dn-painel-moldura { height: calc(100vh - 64px); } }
/* Tela de entrar: logo da Cia do Médico (branco) no lugar de "+ Clube Fácil" */
.dn-login-logo-img { display: block; max-height: 52px; max-width: 280px; width: auto; height: auto; }

/* =====================================================================================================
   Listas no padrão do Convênios (ConveniosView/LancamentosView): um cartão só, com a linha de filtros em cima
   (busca larga com lupa, seleções, "Limpar filtros" e o botão), a tabela no meio (cabeçalhos e células
   centralizados, linhas de 44px, 14px) e a faixa "Resumo" embaixo. Paginação: dn-paginador.js.
   ===================================================================================================== */
.dn-painel-lista { background: rgb(var(--surface)); border: 1px solid rgb(var(--border)); border-radius: 8px; padding: 16px 18px; display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.dn-lista-filtros { display: flex !important; flex-wrap: wrap; align-items: center !important; gap: 8px !important; }
.dn-lista-filtros > * { flex: 0 0 auto; min-width: 0; }
.dn-lista-filtros > .dn-filtro-largo { flex: 1 1 320px; }
.dn-lista-filtros > div:not(.dn-filtro-largo):not(.dn-filtro-botao) { flex: 0 0 200px; }
.dn-lista-filtros .dn-filtro-botao { display: flex; gap: 8px; }
.dn-busca { position: relative; display: block; width: 100%; }
.dn-busca > i { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: rgb(var(--muted)); pointer-events: none; }
.dn-busca input { width: 100%; padding-left: 36px !important; }
html body .dn-botao-limpo { background: transparent !important; border: 0 !important; color: rgb(var(--text-soft)) !important; }
html body .dn-botao-limpo:hover { background: rgb(var(--surface-strong)) !important; }
.dn-lista-corpo { min-width: 0; }
.dn-lista-corpo .ui-table-wrap { border: 0 !important; margin: 0 !important; box-shadow: none !important; overflow-x: auto; }
.dn-resumo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px; padding: 10px 16px; border-radius: 6px; background: rgb(var(--surface-strong)); font-size: 13px; color: rgb(var(--text)); }
.dn-resumo > strong { font-weight: 600; }
.dn-resumo-rotulo { color: rgb(var(--muted)); }

/* Tabelas no padrão da grade do Convênios (GradeCentralizada) em todo o sistema */
html body .ui-table thead th, html body .dn-lista-corpo table thead th { text-align: center !important; font-weight: 600 !important; font-size: 14px !important; }
html body .ui-table tbody td, html body .dn-lista-corpo table tbody td { text-align: center; height: 44px; font-size: 14px !important; }
html body .ui-table tbody td:has(a.truncate), html body .ui-table tbody td:has(p.truncate) { text-align: left; }

/* Paginação igual à do Financeiro/Convênios: "1–15 de 120   ‹  Página 1 de 8  ›" */
.dn-paginador { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; font-size: 13px; }
.dn-paginador-resumo { color: rgb(var(--muted)); }
.dn-paginador-botoes { display: inline-flex; align-items: center; gap: 10px; }
.dn-paginador button { width: 34px; height: 32px; border-radius: 6px; border: 1px solid var(--dn-campo-borda); background: rgb(var(--surface)); color: rgb(var(--text)); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.dn-paginador button:hover:not(:disabled) { background: rgb(var(--surface-soft)); }
.dn-paginador button:disabled { opacity: .45; cursor: default; }
.dn-paginador-pagina { color: rgb(var(--text)); }
html body .dn-lista-filtros > .dn-filtro-botao, html body .dn-lista-filtros > .dn-filtro-largo { flex-direction: row !important; align-items: center; }
html body .dn-lista-filtros > div:not(.dn-filtro-largo):not(.dn-filtro-botao) { flex-direction: row !important; }
/* Paginação do servidor (relatórios) com a cara do paginador dos apps */
html body .ui-pagination { display: flex; justify-content: flex-end; }
html body .ui-pagination .step-links { display: inline-flex !important; align-items: center; gap: 8px !important; }
html body .ui-pagination .ui-page-link { min-width: 34px; height: 32px; padding: 0 8px !important; border-radius: 6px !important; border: 1px solid var(--dn-campo-borda) !important; background: rgb(var(--surface)) !important; color: rgb(var(--text)) !important; display: inline-flex; align-items: center; justify-content: center; font-size: 13px !important; box-shadow: none !important; }
html body .ui-pagination .ui-page-link:hover { background: rgb(var(--surface-soft)) !important; }
html body .ui-pagination .ui-page-current { background: transparent !important; border: 0 !important; color: rgb(var(--text)) !important; font-size: 13px !important; font-weight: 400 !important; padding: 0 6px !important; box-shadow: none !important; }

/* Cartão da lista vai até o fim da tela (como no Convênios), com o Resumo sempre embaixo */
@media (min-width: 992px) {
    html body .dn-pagina:has(.dn-painel-lista) { display: flex; flex-direction: column; min-height: 100vh; box-sizing: border-box; }
    html body .dn-pagina:has(.dn-painel-lista) > .ui-page-shell { flex: 1 1 auto; display: flex; flex-direction: column; }
    html body .dn-painel-lista { flex: 1 1 auto; }
    html body .dn-painel-lista > .dn-lista-corpo { flex: 1 1 auto; }
    html body .dn-painel-lista > .dn-resumo, html body .dn-painel-lista .dn-resumo-relatorio { margin-top: auto; }
}
/* Relatórios no cartão único */
.dn-cabecalho-relatorio h2 { margin: 0; font-size: 24px !important; font-weight: 600 !important; color: rgb(var(--text)) !important; }
.dn-cabecalho-relatorio p { margin: 2px 0 0; font-size: 13px !important; color: rgb(var(--muted)) !important; }
.dn-cabecalho-relatorio { margin-bottom: 16px !important; }
html body .dn-relatorio .ui-table-wrap { border: 0 !important; margin: 0 !important; box-shadow: none !important; }
html body .dn-relatorio > form, html body .dn-relatorio > div { margin-top: 0 !important; }
.dn-resumo-relatorio { display: flex !important; flex-wrap: wrap; align-items: center; justify-content: space-between !important; gap: 8px 16px; }

/* Totais do filtro espalhados pela largura (Lançamentos do Convênios) */
.dn-totais { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
.dn-total { padding: 12px 14px; border-radius: 6px; background: rgb(var(--surface-strong)); min-width: 0; }
.dn-total-rotulo { display: block; font-size: 12px; color: rgb(var(--muted)); margin-bottom: 4px; }
.dn-total-valor { font-size: 18px; font-weight: 600; color: rgb(var(--text)); }
.dn-total-nota { margin-top: 4px; font-size: 11px; line-height: 1.4; color: rgb(var(--muted)); }
.dn-relatorio-nota { margin: 0; font-size: 12px; color: rgb(var(--muted)); }
.dn-lista-filtros > div:not(.dn-filtro-largo):not(.dn-filtro-botao):has(> label:not(.visually-hidden)) { flex-direction: column !important; align-items: stretch; gap: 6px; flex: 0 0 200px; }
.dn-lista-filtros:has(> div > label:not(.visually-hidden)) { align-items: flex-end !important; }

/* Janela "Diário de caixa" no padrão das janelas do Convênios (o comprovante impresso não muda) */
html body .caixa-modal-card { border-radius: 10px !important; border: 1px solid rgb(var(--border)); box-shadow: 0 18px 48px rgba(17, 24, 39, .18) !important; background: rgb(var(--surface)) !important; font-family: var(--dn-fonte); }
html body .caixa-modal-cabecalho { padding: 22px 28px 16px !important; border-bottom: 1px solid rgb(var(--border)) !important; }
html body .caixa-modal-icone { width: 38px !important; height: 38px !important; border-radius: 9px !important; background: rgba(31, 95, 209, .10) !important; color: #1F5FD1 !important; font-size: 19px !important; }
html body .caixa-modal-titulo h2, html body .caixa-modal-titulo h3, html body #diario-caixa-titulo { font-size: 17px !important; font-weight: 600 !important; color: rgb(var(--text)) !important; }
html body .caixa-modal-corpo { padding: 18px 28px !important; }
html body .caixa-legenda { font-size: 14px !important; font-weight: 600 !important; color: rgb(var(--text)) !important; }
html body .caixa-passo { background: #1F5FD1 !important; color: #FFFFFF !important; }
html body .caixa-opcao-box { border: 2px solid rgb(var(--border)) !important; border-radius: 10px !important; background: transparent !important; box-shadow: none !important; }
html body .caixa-opcao:hover .caixa-opcao-box { background: rgb(var(--surface-soft)) !important; }
html body .caixa-opcao input:checked + .caixa-opcao-box { border-color: #1F5FD1 !important; background: rgba(31, 95, 209, .05) !important; }
html body .caixa-opcao-icone { border-radius: 9px !important; background: rgb(var(--surface-strong)) !important; color: rgb(var(--text-soft)) !important; }
html body .caixa-opcao input:checked + .caixa-opcao-box .caixa-opcao-icone { background: rgba(31, 95, 209, .10) !important; color: #1F5FD1 !important; }
html body .caixa-modal-card input[type="date"], html body .caixa-modal-card select { min-height: 36px !important; }
html body .caixa-modal-card .caixa-modal-rodape, html body .caixa-modal-card .caixa-modal-acoes { padding: 14px 28px !important; border-top: 1px solid rgb(var(--border)) !important; background: rgb(var(--surface-soft)) !important; border-radius: 0 0 10px 10px; }
html body .caixa-modal-rodape .ui-btn { min-height: 36px !important; min-width: 120px; }

/* Clientes e Particulares juntos (filtro "Mostrar: Todos"): título de cada lista */
.dn-lista-titulo { margin: 4px 0 10px; font-size: 15px; font-weight: 600; color: rgb(var(--text)); display: flex; align-items: center; gap: 8px; }
.dn-lista-titulo-total { min-width: 26px; height: 22px; padding: 0 8px; border-radius: 999px; background: rgb(var(--surface-strong)); color: rgb(var(--text-soft)); font-size: 12px; font-weight: 600; display: inline-flex; align-items: center; justify-content: center; }
[data-clientes-panel="particulares"]:not([hidden]) { margin-top: 0; }
[data-clientes-panel="clientes"]:not([hidden]) + [data-clientes-panel="particulares"]:not([hidden]) { margin-top: 24px; padding-top: 18px; border-top: 1px solid rgb(var(--border)); }
/* Paginação no rodapé do cartão, abaixo do Resumo */
.dn-painel-lista > .dn-paginador { margin-top: 0; }
.dn-painel-lista > .dn-resumo + .dn-paginador, .dn-painel-lista > .dn-paginador + .dn-paginador { margin-top: -4px; }
.dn-pag-painel-oculto { display: none !important; }
.dn-paginador-nome { display: none; font-weight: 600; color: rgb(var(--text)); margin-right: 8px; }
.dn-pag-com-nome .dn-paginador-nome { display: inline; }
.dn-paginador { justify-content: flex-start; }
.dn-paginador .dn-paginador-botoes { margin-left: auto; }
/* Resumo não fica mais preso no fim: o fim é a paginação */
@media (min-width: 992px) { html body .dn-painel-lista > .dn-lista-corpo { flex: 1 1 auto; } }
/* Particulares na mesma tabela dos clientes */
html body .dn-badge-particular { background: #FEF3C7 !important; color: #92400E !important; }
/* Seletores da linha de pesquisa de Clientes com largura para "Situação: ..." e "Tipo: ..." */
html body .dn-lista-filtros > div:has(> #busca-status), html body .dn-lista-filtros > div:has(> #mostrar-tipo) { flex: 0 0 240px !important; }
/* Célula sem dado: texto claro em vez de "-" */
.dn-sem-info { color: rgb(var(--muted)); font-size: 12px; font-style: italic; white-space: nowrap; }

/* Paginação da lista de Clientes vinda do servidor: links com a mesma cara dos botões do paginador */
.dn-paginador a.dn-pag-botao { width: 34px; height: 32px; border-radius: 6px; border: 1px solid var(--dn-campo-borda); background: rgb(var(--surface)); color: rgb(var(--text)); display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.dn-paginador a.dn-pag-botao:hover { background: rgb(var(--surface-soft)); }

/* Cadastro do cliente (create_update_cliente.html): cartões, campos e cabeçalho no padrão do Convênios.
   A página tem estilos próprios no <style> do template; aqui eles são sobrescritos só para #cliente-page. */
#cliente-page { max-width: none; padding: 0; }
.dn-cabecalho-cliente .dn-cabecalho-titulo { display: flex; align-items: center; gap: 16px; min-width: 0; }
.dn-cabecalho-cliente h1 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dn-cabecalho-cliente p strong { color: rgb(var(--text)); font-weight: 600; }
.dn-botao-voltar { flex: none; }
#cliente-page .card { border: 1px solid rgb(var(--border)); border-radius: 8px; background: rgb(var(--surface)); box-shadow: none; }
#cliente-page .card-header { background: rgb(var(--surface)); border-bottom: 1px solid rgb(var(--border)); padding: 14px 20px; }
#cliente-page .card-header h5, #cliente-page .card-header h4, #cliente-page .card-header h3 { font-size: 15px; font-weight: 600; color: rgb(var(--text)); margin: 0; }
#cliente-page .card-header-collapse { position: relative; padding-right: 44px; }
#cliente-page .card-header-collapse::after { content: ""; position: absolute; right: 18px; top: 50%; width: 16px; height: 16px; margin-top: -8px; background: var(--dn-seta) center / 16px no-repeat; }
#cliente-page .card-body { padding: 18px 20px; }
#cliente-page .row > [class*="col-lg-8"] > .card:last-child, #cliente-page .row > [class*="col-lg-4"] > .card:last-child { margin-bottom: 16px !important; }
#cliente-page .card.mb-4 { margin-bottom: 16px !important; }
#cliente-page label { font-size: 13px; font-weight: 500; color: rgb(var(--muted)); margin-bottom: 4px; }
#cliente-page .form-control, #cliente-page .form-select,
#cliente-page input:not([type="checkbox"]):not([type="radio"]), #cliente-page select, #cliente-page textarea {
  border-radius: 6px; border-color: var(--dn-campo-borda); min-height: var(--dn-altura); font-size: 14px;
  background-color: rgb(var(--surface)); color: rgb(var(--text));
}
#cliente-page select, #cliente-page .form-select {
  background-color: rgb(var(--surface)) !important; border: 1px solid var(--dn-campo-borda) !important;
  background-image: var(--dn-seta) !important; background-size: 16px 16px !important; background-position: right 12px center !important; padding-right: 40px !important;
}
#cliente-page input:focus, #cliente-page select:focus, #cliente-page textarea:focus { border-color: var(--primary) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 18%, transparent) !important; outline: none; }
#cliente-page input[readonly], #cliente-page input:disabled, #cliente-page select:disabled { background-color: rgb(var(--surface-soft)) !important; color: rgb(var(--muted)); }
#cliente-page .form-text, #cliente-page small.text-muted { font-size: 12px; color: rgb(var(--muted)) !important; }
#cliente-page .btn { border-radius: 6px; font-weight: 500; min-height: var(--dn-altura); }
#cliente-page .btn-primary { background: var(--primary); border-color: var(--primary); }
#cliente-page .btn-primary:hover { filter: brightness(.92); }
#cliente-page .table { font-size: 13px; color: rgb(var(--text)); }
#cliente-page .table thead th { font-size: 12px; font-weight: 600; color: rgb(var(--muted)); background: rgb(var(--surface-soft)); border-bottom: 1px solid rgb(var(--border)); white-space: nowrap; }
#cliente-page .table td { border-color: rgb(var(--border)); }
#cliente-page #div_id_resposavelFinanceiro, #cliente-page #div_id_responsavelFinanceiro { border-color: rgb(var(--border)); background: rgb(var(--surface-soft)); border-radius: 8px; }
#cliente-page .modal-header, #cliente-page .modal-footer { background: rgb(var(--surface)); }
#cliente-page .modal-content { border-radius: 8px; border-color: rgb(var(--border)); }
@media (max-width: 640px) {
  .dn-cabecalho-cliente .dn-cabecalho-titulo { flex-direction: column; align-items: flex-start; gap: 10px; }
  .dn-cabecalho-cliente h1 { white-space: normal; }
}
#cliente-page .card-header-collapse::after { transition: transform .15s; }
#cliente-page .card-header-collapse.collapsed::after { transform: rotate(-90deg); }
#cliente-page input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),
#cliente-page select:not([multiple]):not([size]) { height: var(--dn-altura); min-height: var(--dn-altura); padding-top: 0; padding-bottom: 0; line-height: normal; }
#cliente-page .search-cep { min-height: var(--dn-altura); height: var(--dn-altura); }

/* Cadastro do cliente: seções uma embaixo da outra, na largura toda; no fim, Total à esquerda e Atualizar à direita */
#cliente-page #frmCliente > .row > [class*="col-"] { flex: 0 0 100%; max-width: 100%; }
.dn-cad-rodape { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 4px; }
.dn-cad-total { margin: 0; font-size: 15px; color: rgb(var(--muted)); }
.dn-cad-total b { color: rgb(var(--text)); font-size: 18px; font-weight: 600; margin-left: 4px; }
.dn-cad-rodape .btn { width: auto !important; min-width: 200px; }

/* Seções do cadastro: título à esquerda e ações da seção à direita (dn-cadastro-secoes.js); mesmo botão em todas */
#cliente-page .card > .card-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; min-height: 60px; padding-top: 12px !important; padding-bottom: 12px !important; }
#cliente-page .dn-secao-acoes, #cliente-page .card-header .d-flex { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-left: auto; }
#cliente-page .card .btn, #cliente-page .card-header .btn-sm {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 34px; min-height: 34px;
  padding: 0 14px; font-size: 13.5px; font-weight: 500; border-radius: 6px; line-height: 1; white-space: nowrap; box-shadow: none;
}
#cliente-page .card .btn i { font-size: 14px; }
#cliente-page .btn-success, #cliente-page .btn-add, #cliente-page .card .btn-primary { background: var(--primary) !important; border: 1px solid var(--primary) !important; color: #fff !important; }
#cliente-page .btn-success:hover:not(:disabled), #cliente-page .btn-add:hover:not(:disabled) { filter: brightness(.92); }
#cliente-page .btn-outline-success, #cliente-page .btn-outline-primary, #cliente-page .btn-outline-secondary {
  background: rgb(var(--surface)) !important; border: 1px solid var(--dn-campo-borda) !important; color: rgb(var(--text)) !important;
}
#cliente-page .btn-outline-success:hover, #cliente-page .btn-outline-primary:hover, #cliente-page .btn-outline-secondary:hover { background: rgb(var(--surface-soft)) !important; }
#cliente-page .btn-outline-danger { background: rgb(var(--surface)) !important; border: 1px solid color-mix(in srgb, #DC2626 45%, transparent) !important; color: #DC2626 !important; }
#cliente-page .btn-outline-danger:hover { background: color-mix(in srgb, #DC2626 8%, transparent) !important; }
#cliente-page .dn-secao-acoes #btnExcluirClienteCascata { margin-left: 8px; }
#cliente-page .card .btn:disabled, #cliente-page .card .btn.disabled { opacity: .5; cursor: not-allowed; }
#cliente-page .card-body .search-cep { height: var(--dn-altura); }
/* Conteúdo das seções: tabelas encostadas nas bordas do cartão, vazio centralizado, totais à direita */
#cliente-page .card-body > .row.mb-4:last-child, #cliente-page .card-body .row.mb-4:only-child { margin-bottom: 0 !important; }
#cliente-page .card-body .table { margin-top: 0 !important; border: 1px solid rgb(var(--border)); border-radius: 8px; overflow: hidden; border-collapse: separate; border-spacing: 0; }
#cliente-page .card-body .table thead th { padding: 10px 12px; border-bottom: 1px solid rgb(var(--border)); }
#cliente-page .card-body .table td { padding: 10px 12px; border-top: 0; border-bottom: 1px solid rgb(var(--border)); background: transparent; }
#cliente-page .card-body .table tbody tr:last-child td { border-bottom: 0; }
#cliente-page .card-body .table tbody tr:hover td { background: rgb(var(--surface-soft)); }
#cliente-page .card-body .table td[colspan] { text-align: center; color: rgb(var(--muted)); padding: 22px 12px; }
#cliente-page .dn-secao-total { margin: 12px 0 0; text-align: right; font-size: 13px; color: rgb(var(--muted)); }
#cliente-page .dn-secao-total b { color: rgb(var(--text)); font-size: 15px; font-weight: 600; margin-left: 4px; }
#cliente-page .dn-secao-total-nota { margin-top: 2px; font-size: 12px; }
#cliente-page .dn-secao-total-nota b { font-size: 12px; }
#cliente-page .card-body p.fw-light { color: rgb(var(--muted)); margin-bottom: 0; }
@media (max-width: 640px) { #cliente-page .dn-secao-acoes { margin-left: 0; width: 100%; } }
/* Setinha de recolher entra na linha do título, depois dos botões (não fica mais por baixo deles) */
#cliente-page .card > .card-header-collapse { padding-right: 20px !important; }
#cliente-page .card > .card-header-collapse > h5, #cliente-page .card > .card-header-collapse > h4 { margin-right: auto !important; }
#cliente-page .card > .card-header-collapse .dn-secao-acoes { margin-left: 0; }
#cliente-page .card > .card-header-collapse::after { position: static; flex: none; margin: 0 0 0 4px; order: 99; }
/* Botão desativado: cinza claro em vez de azul apagado */
#cliente-page .card .btn:disabled, #cliente-page .card .btn.disabled {
  opacity: 1; background: rgb(var(--surface-soft)) !important; border: 1px solid rgb(var(--border)) !important; color: rgb(var(--muted)) !important; filter: none;
}

/* ===== Cadastro do cliente em layout de perfil (dn-cadastro-secoes.js) =====
   Esquerda: resumo do cliente, menu das seções e salvar (parados ao rolar). Direita: as seções. */
#cliente-page.dn-perfil { display: grid; grid-template-columns: 288px minmax(0, 1fr); column-gap: 24px; align-items: start; }
#cliente-page.dn-perfil > * { grid-column: 2; }
#cliente-page.dn-perfil > .dn-cabecalho-cliente { grid-column: 1 / -1; }
#cliente-page.dn-perfil > .dn-perfil-lado { grid-column: 1; grid-row: 2 / span 30; position: sticky; top: 20px; display: flex; flex-direction: column; gap: 16px; max-height: calc(100vh - 40px); overflow-y: auto; scrollbar-width: thin; }
.dn-perfil .dn-cabecalho-cliente { margin-bottom: 20px; }

.dn-perfil-cartao, .dn-perfil-menu, .dn-perfil-acoes { background: rgb(var(--surface)); border: 1px solid rgb(var(--border)); border-radius: 12px; }
.dn-perfil-cartao { padding: 22px 20px 18px; text-align: center; }
.dn-perfil-avatar { width: 64px; height: 64px; margin: 0 auto 12px; border-radius: 999px; display: flex; align-items: center; justify-content: center; font-size: 22px; font-weight: 600; letter-spacing: .5px; color: var(--primary); background: color-mix(in srgb, var(--primary) 12%, transparent); }
.dn-perfil-nome { font-size: 16px; font-weight: 600; color: rgb(var(--text)); line-height: 1.3; overflow-wrap: anywhere; }
.dn-perfil-selos { display: flex; justify-content: center; gap: 6px; margin-top: 8px; }
.dn-perfil-selo { font-size: 11.5px; font-weight: 600; padding: 3px 10px; border-radius: 999px; background: rgb(var(--surface-soft)); color: rgb(var(--muted)); border: 1px solid rgb(var(--border)); }
.dn-perfil-selo-particular { background: color-mix(in srgb, #D97706 12%, transparent); color: #B45309; border-color: color-mix(in srgb, #D97706 30%, transparent); }
.dn-perfil-dados { margin: 16px 0 0; padding-top: 14px; border-top: 1px solid rgb(var(--border)); display: grid; gap: 10px; text-align: left; }
.dn-perfil-dados > div { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; }
.dn-perfil-dados dt { font-weight: 400; color: rgb(var(--muted)); }
.dn-perfil-dados dd { margin: 0; font-weight: 600; color: rgb(var(--text)); text-align: right; overflow-wrap: anywhere; }

.dn-perfil-menu { padding: 8px; display: flex; flex-direction: column; gap: 2px; }
.dn-perfil-link { display: flex; align-items: center; gap: 10px; height: 38px; padding: 0 12px; border-radius: 8px; font-size: 13.5px; font-weight: 500; color: rgb(var(--muted)); text-decoration: none; transition: background .15s, color .15s; }
.dn-perfil-link i { font-size: 15px; width: 18px; text-align: center; }
.dn-perfil-link:hover { background: rgb(var(--surface-soft)); color: rgb(var(--text)); }
.dn-perfil-link.ativo { background: color-mix(in srgb, var(--primary) 10%, transparent); color: var(--primary); font-weight: 600; }

.dn-perfil-acoes { padding: 16px; display: flex; flex-direction: column; gap: 12px; }
.dn-perfil-total { display: flex; justify-content: space-between; align-items: baseline; font-size: 13px; color: rgb(var(--muted)); }
.dn-perfil-total strong { font-size: 18px; font-weight: 600; color: rgb(var(--text)); }
.dn-perfil-salvar { width: 100%; height: 40px; justify-content: center; gap: 8px; font-weight: 600; }

/* Seções com ícone no título, cartões mais leves e com mais respiro */
#cliente-page.dn-perfil .card.dn-secao { border-radius: 12px; border-color: rgb(var(--border)); margin-bottom: 20px !important; scroll-margin-top: 20px; box-shadow: 0 1px 2px rgba(16, 24, 40, .04); }
#cliente-page.dn-perfil .card.dn-secao > .card-header { padding-left: 20px; padding-right: 20px !important; border-bottom-color: rgb(var(--border)); }
#cliente-page.dn-perfil .card.dn-secao > .card-header h5 { display: flex; align-items: center; gap: 12px; font-size: 15px; font-weight: 600; }
.dn-secao-icone { width: 32px; height: 32px; flex: none; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; color: var(--primary); background: color-mix(in srgb, var(--primary) 10%, transparent); font-size: 15px; }
#cliente-page.dn-perfil .card.dn-secao > .card-body { padding: 20px 24px 24px; }
#cliente-page.dn-perfil .card.dn-secao > .card-header.collapsed { border-bottom-color: transparent; }
/* O rodapé antigo (Total + Atualizar) fica no lado; embaixo só aparece em tela estreita */
#cliente-page.dn-perfil .dn-cad-rodape { display: none; }

@media (max-width: 1099.98px) {
  #cliente-page.dn-perfil { display: block; }
  #cliente-page.dn-perfil > .dn-perfil-lado { position: static; max-height: none; margin-bottom: 20px; display: grid; grid-template-columns: 1fr 1fr; }
  .dn-perfil-menu { grid-column: 1 / -1; flex-direction: row; overflow-x: auto; scrollbar-width: none; order: 3; }
  .dn-perfil-link { flex: none; }
  #cliente-page.dn-perfil .dn-cad-rodape { display: flex; }
}
@media (max-width: 640px) {
  #cliente-page.dn-perfil > .dn-perfil-lado { grid-template-columns: 1fr; }
  .dn-perfil-acoes { display: none; }
}

/* Ficha do cliente · Dados do cliente: 3 colunas ocupando o cartão todo, cada dado num quadro leve; o endereço
   ocupa a linha inteira e o que sobrar preenche os buracos (dense) */
section[aria-labelledby="ficha-dados-titulo"] .ficha-dl { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-flow: row dense; gap: 12px; margin-top: 4px; }
section[aria-labelledby="ficha-dados-titulo"] .ficha-dl > div { background: rgb(var(--surface-soft)); border: 1px solid rgb(var(--border)); border-radius: 8px; padding: 12px 14px; min-width: 0; }
section[aria-labelledby="ficha-dados-titulo"] .ficha-dl dt { font-size: 11px; letter-spacing: .04em; margin-bottom: 4px; }
section[aria-labelledby="ficha-dados-titulo"] .ficha-dl dd { font-size: 14px; }
@media (max-width: 900px) { section[aria-labelledby="ficha-dados-titulo"] .ficha-dl { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { section[aria-labelledby="ficha-dados-titulo"] .ficha-dl { grid-template-columns: 1fr; } }

/* Cadastro em etapas: Voltar / Salvar (Continuar) logo abaixo do cartão, no fluxo da página, em vez de uma barra
   presa no fim da tela */
html body #cadastro-wizard .cad-nav { position: static; width: auto !important; margin: 20px 0 0; padding: 0; border: 0; background: none; box-shadow: none; backdrop-filter: none; }
html body .is-etapa-final #cadastro-wizard .cad-nav, html body #cadastro-wizard.is-etapa-final .cad-nav { padding: 0; }
/* Cadastro em etapas: passo a passo com o mesmo respiro em cima e embaixo (20px, igual ao de dentro do cartão).
   O resumo das etapas já feitas (.cad-pilha) vem logo abaixo; vazio (etapa 1), ele some para não somar espaço. */
html body #cadastro-wizard .cad-stepper { margin-bottom: 20px; }
html body #cadastro-wizard .cad-pilha:not(:has(> *)) { display: none; }

/* ===== Padrão de proporção do sistema =====
   O conteúdo das telas (tudo dentro de main.dn-pagina) fica 12% menor, na mesma proporção do Dashboard: fontes,
   espaços, campos, tabelas e cartões juntos. O menu lateral fica como está. Só em telas largas; em tela pequena
   fica no tamanho normal. O que mede "altura da tela" dentro do conteúdo usa --dn-vh, que desconta a escala para
   continuar chegando até o fim da tela. Balões de dica e calendário ficam fora do conteúdo e não mudam. */
:root { --dn-escala: 1; --dn-vh: 1vh; }
@media (min-width: 1100px) {
  :root { --dn-escala: 0.88; --dn-vh: calc(1vh / 0.88); }
  html body main.dn-pagina { zoom: var(--dn-escala); }
  /* O espaço do menu lateral (margem da página) também passa pela escala: divide para continuar com 248px na tela */
  html body:has(#appSidebar) main.dn-pagina, html body:has(.dn-menu) main.dn-pagina { margin-left: calc(var(--dn-menu-largura) / var(--dn-escala)) !important; }
}
html body .dn-painel-moldura { height: calc(var(--dn-vh) * 100); }
@media (min-width: 992px) {
  html body .dn-pagina:has(.dn-painel-lista) { min-height: calc(var(--dn-vh) * 100) !important; }
}
html body .dn-pagina .cad-page { min-height: calc(var(--dn-vh) * 100 - 64px); }
html body .dn-pagina .cad-modal { max-height: calc(var(--dn-vh) * 100 - 2rem); }
#cliente-page.dn-perfil > .dn-perfil-lado { max-height: calc(var(--dn-vh) * 100 - 40px); }

/* Dados do cliente na ficha: só o essencial, em 4 colunas; e-mail ocupa 2 e endereço a linha inteira */
section[aria-labelledby="ficha-dados-titulo"] .ficha-dl.ficha-dl-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
section[aria-labelledby="ficha-dados-titulo"] .ficha-dl > .ficha-dl-2 { grid-column: span 2; }
@media (max-width: 1100px) { section[aria-labelledby="ficha-dados-titulo"] .ficha-dl.ficha-dl-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { section[aria-labelledby="ficha-dados-titulo"] .ficha-dl.ficha-dl-4 { grid-template-columns: 1fr; } section[aria-labelledby="ficha-dados-titulo"] .ficha-dl > .ficha-dl-2 { grid-column: auto; } }

/* Cadastro em etapas · Adicionais: no quadro aberto pelo botão do título, Beneficiário, Adicional (e Especialidade,
   quando aparece) dividem a linha de ponta a ponta; Cancelar / Incluir ficam no rodapé do quadro, como em Dependentes */
@media (min-width: 768px) {
  html body [data-cad-form-adicional].cad-grid { display: flex; align-items: flex-end; gap: 16px; }
  html body [data-cad-form-adicional] > .cad-campo { flex: 1 1 0; min-width: 0; grid-column: auto; }
  html body [data-cad-form-adicional] > [hidden] { display: none !important; }
}
/* Ficha: botões dos títulos dos cartões (Gerenciar, Realizar check-in, Nova observação) com o mesmo tamanho */
html body .ficha-btn-secao { min-width: 184px; height: 36px; justify-content: center; gap: 8px; white-space: nowrap; }
/* Cadastro em etapas: todo botão no título de um cartão (Adicionar dependente/adicional/cartão, Nova observação,
   Editar contrato, Editar dos resumos) com o mesmo tamanho */
html body #cadastro-wizard .cad-card-head > .ui-btn.cad-card-head-acao,
html body #cadastro-wizard [data-cad-contrato-acoes] > .ui-btn { min-width: 200px; height: 36px; justify-content: center; gap: 8px; white-space: nowrap; }
html body #cadastro-wizard [data-cad-contrato-acoes] { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
html body #cadastro-wizard [data-cad-contrato-acoes]:empty { display: none; }
/* Cadastro em etapas: Contrato e Resumo do contrato num cartão só; o resumo fecha o cartão, separado por uma linha */
html body #cadastro-wizard .cad-contrato { grid-template-columns: minmax(0, 1fr); }
html body #cadastro-wizard .cad-contrato-resumo { margin-top: 20px; padding-top: 16px; border-top: 1px solid rgb(var(--border)); }
html body #cadastro-wizard .cad-contrato-resumo .cad-secao { margin: 0 0 8px; }
/* Cadastro em etapas · Resumo final (etapa 4): dados em quadros, até 4 por linha, esticando até a borda */
html body #cadastro-wizard .cad-revisao .cad-revisao-dl { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 4px; }
html body #cadastro-wizard .cad-revisao .cad-revisao-dl > div { flex: 1 1 calc(25% - 12px); background: rgb(var(--surface-soft)); border: 1px solid rgb(var(--border)); border-radius: 8px; padding: 12px 14px; min-width: 0; box-sizing: border-box; }
html body #cadastro-wizard .cad-revisao .cad-revisao-dl > .is-largo { flex-basis: 100%; }
@media (max-width: 1100px) { html body #cadastro-wizard .cad-revisao .cad-revisao-dl > div { flex-basis: calc(50% - 12px); } }
@media (max-width: 560px) { html body #cadastro-wizard .cad-revisao .cad-revisao-dl > div { flex-basis: 100%; } }
/* Cadastro em etapas: a etapa da vez ocupa a altura que sobra e os cartões dela crescem por igual até o fim da
   tela (mesmo vazios); Voltar / Salvar ficam logo abaixo, no rodapé. Com muito conteúdo, a página rola normal. */
html body #cadastro-wizard > section[data-cad-etapa]:not([hidden]) { flex: 1 1 auto; display: flex; flex-direction: column; gap: 20px; }
html body #cadastro-wizard > section[data-cad-etapa]:not([hidden]) > .cad-card,
html body #cadastro-wizard > section[data-cad-etapa]:not([hidden]) > .cad-contrato { flex: 1 1 auto; margin: 0 !important; }
html body #cadastro-wizard > section[data-cad-etapa]:not([hidden]) > .cad-contrato { display: flex; flex-direction: column; align-items: stretch; }
html body #cadastro-wizard > section[data-cad-etapa]:not([hidden]) > .cad-contrato > .cad-card { flex: 1 1 auto; }
/* Cadastro em etapas: dentro de cada cartão, o aviso de vazio ("Nenhum dependente", "Nenhum adicional",
   "Nenhum cartão", "Nenhuma observação") cresce até o fim do cartão; no Contrato, o Resumo fica encostado no fim */
html body #cadastro-wizard > section[data-cad-etapa]:not([hidden]) .cad-card { display: flex; flex-direction: column; }
html body #cadastro-wizard > section[data-cad-etapa]:not([hidden]) .cad-card > :is(.cad-lista, [data-cad-cartoes], [data-cad-bloco-dependentes]):has(.cad-vazio) { flex: 1 1 auto; display: flex; flex-direction: column; }
html body #cadastro-wizard > section[data-cad-etapa]:not([hidden]) [data-cad-bloco-dependentes]:has(.cad-vazio) > .cad-lista { flex: 1 1 auto; display: flex; flex-direction: column; }
html body #cadastro-wizard > section[data-cad-etapa]:not([hidden]) .cad-card .cad-vazio { flex: 1 1 auto; display: flex; align-items: center; justify-content: center; min-height: 64px; margin: 0; }
html body #cadastro-wizard .cad-contrato-resumo { margin-top: auto; }
/* Cadastro em etapas · Resumo final: blocos (Cliente, Contrato, Dependentes…) um embaixo do outro, na largura toda;
   fundo branco no bloco para os quadros de dados (cinza claro) aparecerem */
html body #cadastro-wizard .cad-revisao-grade { grid-template-columns: minmax(0, 1fr) !important; gap: 16px; }
html body #cadastro-wizard .cad-revisao { background: rgb(var(--surface)); padding: 16px 20px 20px; }

/* Pagamentos do cliente: mesmo padrão da ficha (cabeçalho com selos, cartões com ícone, dados em quadros) */
html body #pagamentos-page { max-width: none !important; }
#pagamentos-page .pg-cabecalho { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; margin-bottom: var(--dn-espaco); }
#pagamentos-page .pg-titulo { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
#pagamentos-page .pg-titulo h1 { margin: 0; font-size: 24px; font-weight: 600; color: rgb(var(--text)); }
#pagamentos-page .pg-cliente-meta { display: block; margin: 4px 0 0; font-size: 13px; color: rgb(var(--muted)); }
#pagamentos-page .pg-cartao, #pagamentos-page > .ui-card { padding: 20px !important; border-radius: 8px; margin-bottom: var(--dn-espaco) !important; }
#pagamentos-page .pg-cartao-cab, #pagamentos-page .pg-secao-topo { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
#pagamentos-page .pg-cartao-cab h2, #pagamentos-page .pg-secao-topo h2 { margin: 0; font-size: 16px; font-weight: 600; color: rgb(var(--text)); display: flex; align-items: center; gap: 12px; }
#pagamentos-page .pg-cartao-cab p { margin: 2px 0 0; font-size: 13px; color: rgb(var(--muted)); }
#pagamentos-page .pg-cartao-icone, #pagamentos-page .pg-secao-topo h2 > i { width: 40px; height: 40px; flex: none; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; font-size: 17px; color: var(--primary); background: color-mix(in srgb, var(--primary) 10%, transparent); }
#pagamentos-page .pg-secao-topo p { margin: 0; font-size: 13px; color: rgb(var(--muted)); }
#pagamentos-page .pg-quadros { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
#pagamentos-page .pg-quadros > div { flex: 1 1 calc(20% - 12px); min-width: 160px; background: rgb(var(--surface-soft)); border: 1px solid rgb(var(--border)); border-radius: 8px; padding: 12px 14px; box-sizing: border-box; }
#pagamentos-page .pg-quadros > .is-largo { flex-basis: 100%; }
#pagamentos-page .pg-quadros dt { font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: rgb(var(--muted)); margin-bottom: 4px; display: flex; align-items: center; gap: 6px; }
#pagamentos-page .pg-quadros dd { margin: 0; font-size: 14px; font-weight: 600; color: rgb(var(--text)); overflow-wrap: anywhere; }
#pagamentos-page .pg-quadros > .is-destaque dd { color: var(--primary); font-size: 16px; }
#pagamentos-page .pg-quadros--indicadores > div { flex-basis: calc(25% - 12px); }
#pagamentos-page .pg-quadros--indicadores dd { font-size: 20px; }
#pagamentos-page .pg-quadros--indicadores small { display: block; margin-top: 2px; font-size: 12px; color: rgb(var(--muted)); }
#pagamentos-page .pg-quadros > .is-alerta { border-color: color-mix(in srgb, #DC2626 40%, transparent); background: color-mix(in srgb, #DC2626 6%, transparent); }
#pagamentos-page .pg-quadros > .is-alerta dd, #pagamentos-page .pg-quadros > .is-alerta dt { color: #B91C1C; }
#pagamentos-page .pg-dependentes { display: flex; flex-wrap: wrap; gap: 6px; }
#pagamentos-page .pg-dependentes > span { padding: 2px 10px; border-radius: 999px; background: rgb(var(--surface)); border: 1px solid rgb(var(--border)); font-size: 13px; }
#pagamentos-page #content-page > .p-3 { padding: 0 !important; }
@media (max-width: 760px) { #pagamentos-page .pg-quadros > div, #pagamentos-page .pg-quadros--indicadores > div { flex-basis: calc(50% - 12px); } }
/* Lista de Clientes (e resultado da busca): todas as colunas centralizadas, inclusive o nome */
html body .ui-table-clientes th, html body .ui-table-clientes td { text-align: center !important; }
html body .ui-table-clientes td a.block, html body .ui-table-clientes td p { text-align: center; }
html body .ui-table-clientes .ui-acoes-tabela { justify-content: center; }
/* Ficha · Próximas cobranças: selo de situação antes do valor, todos da mesma largura */
html body .ficha-cob-situacao { min-width: 92px; justify-content: center; margin-left: auto; }
html body .cad-item .ficha-cob-situacao + .cad-item-valor { margin-left: 12px; min-width: 96px; text-align: right; }

/* Configurações · listas (Feriados, Clínicas, Planos…): mesmo padrão da lista de Clientes */
#config-page.cfg-lista-pagina .cfg-intervalo { display: inline-flex; align-items: center; gap: 8px; height: var(--dn-altura); }
#config-page.cfg-lista-pagina .cfg-intervalo-rotulo { font-size: 13px; color: rgb(var(--muted)); white-space: nowrap; }
#config-page.cfg-lista-pagina .cfg-intervalo-ate { font-size: 13px; color: rgb(var(--muted)); }
#config-page.cfg-lista-pagina .cfg-intervalo input { width: 150px; }
#config-page.cfg-lista-pagina .cfg-lista-form { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; }
#config-page.cfg-lista-pagina .cfg-acoes-massa { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 0 0 12px; }
#config-page.cfg-lista-pagina .cfg-acoes-massa select { max-width: 320px; }
#config-page.cfg-lista-pagina .cfg-selecionados { font-size: 13px; color: rgb(var(--muted)); }
#config-page.cfg-lista-pagina .cfg-tabela th, #config-page.cfg-lista-pagina .cfg-tabela td { text-align: center; vertical-align: middle; }
#config-page.cfg-lista-pagina .cfg-tabela .cfg-col-check { width: 44px; }
#config-page.cfg-lista-pagina .cfg-ordenar { display: inline-flex; align-items: center; gap: 6px; color: inherit; text-decoration: none; }
#config-page.cfg-lista-pagina .cfg-ordenar i { font-size: 11px; }
#config-page.cfg-lista-pagina .cfg-ordenar i.is-neutro { opacity: .45; }
#config-page.cfg-lista-pagina .cfg-link { font-weight: 600; color: var(--primary); text-decoration: none; }
#config-page.cfg-lista-pagina .cfg-vazio { padding: 32px 12px !important; color: rgb(var(--muted)); }
#config-page.cfg-lista-pagina .ui-acoes-tabela { justify-content: center; }
#config-page.cfg-lista-pagina .cfg-acao-perigo { color: #DC2626 !important; }
#config-page.cfg-lista-pagina .dn-resumo .cfg-salvar { margin-left: auto; }
/* Filtro de intervalo de datas: o bloco ocupa a largura que precisa (o padrão dos filtros é 200px) */
html body .dn-lista-filtros > div:has(> .cfg-intervalo) { flex: 0 0 auto !important; }
/* Pagamentos do cliente · Cobranças: botões da coluna Ação centralizados */
#pagamentos-page #user-list-table td.pg-col-acao { text-align: center; }
#pagamentos-page #user-list-table td.pg-col-acao > div, #pagamentos-page #user-list-table td.pg-col-acao .flex { justify-content: center; }

/* Check-in · etapa 1: lupa sem cobrir o texto (a regra geral dos campos zerava o espaço dela) e lista paginada */
html body .cw-search input#cw-busca { padding-left: 40px !important; }
html body .cw-lista { margin-top: 16px; border: 1px solid rgb(var(--border)); border-radius: 8px; overflow: hidden; }
html body .cw-lista-topo { display: flex; justify-content: space-between; align-items: center; padding: 10px 14px; background: rgb(var(--surface-soft)); border-bottom: 1px solid rgb(var(--border)); font-size: 13px; }
html body .cw-lista-topo strong { font-weight: 600; color: rgb(var(--text)); }
html body .cw-lista-itens { display: flex; flex-direction: column; }
html body .cw-lista-item { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 14px; border: 0; border-bottom: 1px solid rgb(var(--border)); background: rgb(var(--surface)); color: rgb(var(--text)); font-size: 14px; text-align: left; cursor: pointer; }
html body .cw-lista-item:last-child { border-bottom: 0; }
html body .cw-lista-item:hover, html body .cw-lista-item:focus-visible { background: color-mix(in srgb, var(--primary) 6%, transparent); outline: 0; }
html body .cw-lista-item > span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html body .cw-lista-item i { color: rgb(var(--muted)); }
html body .cw-lista-ir { opacity: .6; }
html body .cw-lista-paginas { display: flex; justify-content: flex-end; align-items: center; gap: 10px; padding: 10px 14px; border-top: 1px solid rgb(var(--border)); font-size: 13px; color: rgb(var(--text)); }
html body .cw-lista-seta { width: 34px; height: 32px; border-radius: 6px; border: 1px solid var(--dn-campo-borda); background: rgb(var(--surface)); color: rgb(var(--text)); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
html body .cw-lista-seta:disabled { opacity: .45; cursor: default; }
/* Pagamentos do cliente: Ações dentro do cartão Cobranças, abaixo dos filtros; botões dividem a linha toda */
#pagamentos-page .pg-acoes-bloco { margin: 4px 0 16px; padding-top: 12px; border-top: 1px solid rgb(var(--border)); }
#pagamentos-page .pg-acoes-aviso { margin: 0 0 10px; font-size: 13px; color: rgb(var(--muted)); }
#pagamentos-page .pg-acoes-linha { display: flex; flex-wrap: wrap; gap: 8px; }
#pagamentos-page .pg-acoes-linha > :not(.modal):not(form):not(script) { flex: 1 1 0; min-width: 150px; justify-content: center; white-space: nowrap; }

/* Check-in em janela (aberto pela lista de Clientes) */
dialog.dn-janela-checkin { width: min(1320px, 96vw); height: 92vh; max-height: none; padding: 0; border: 1px solid rgb(var(--border)); border-radius: 12px; background: rgb(var(--surface)); box-shadow: 0 24px 60px rgba(15, 23, 42, .25); overflow: hidden; }
dialog.dn-janela-checkin[open] { display: flex; flex-direction: column; }
dialog.dn-janela-checkin::backdrop { background: rgb(15 23 42 / .5); }
dialog.dn-janela-checkin .dn-janela-checkin-carregando { flex: 1 1 auto; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; color: rgb(var(--muted)); font-size: 14px; }
dialog.dn-janela-checkin .dn-janela-checkin-carregando[hidden] { display: none; }
.dn-janela-checkin-giro { width: 32px; height: 32px; border-radius: 999px; border: 3px solid color-mix(in srgb, var(--primary) 18%, transparent); border-top-color: var(--primary); animation: dn-giro .8s linear infinite; }
@keyframes dn-giro { to { transform: rotate(360deg); } }
dialog.dn-janela-checkin iframe.is-carregando { flex: 0 0 0; height: 0; visibility: hidden; }
.dn-janela-checkin-topo { display: flex; align-items: center; gap: 12px; padding: 14px 20px; border-bottom: 1px solid rgb(var(--border)); flex: none; }
.dn-janela-checkin-topo h2 { margin: 0; font-size: 16px; font-weight: 600; color: rgb(var(--text)); }
.dn-janela-checkin-topo p { margin: 2px 0 0; font-size: 13px; color: rgb(var(--muted)); }
.dn-janela-checkin-icone { width: 40px; height: 40px; flex: none; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; font-size: 17px; color: var(--primary); background: color-mix(in srgb, var(--primary) 10%, transparent); }
.dn-janela-checkin-fechar { margin-left: auto; width: 36px; height: 36px; border: 0; border-radius: 999px; background: transparent; color: rgb(var(--muted)); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.dn-janela-checkin-fechar:hover { background: rgb(var(--surface-soft)); color: rgb(var(--text)); }
dialog.dn-janela-checkin iframe { flex: 1 1 auto; width: 100%; border: 0; background: rgb(var(--surface)); }
/* Dentro da janela: a tela de check-in sem menu, sem o título da página e sem as margens da página */
html.dn-janela-checkin body main.dn-pagina { margin-left: 0 !important; padding: 16px 20px 20px !important; }
html.dn-janela-checkin [data-cw-head] { display: none !important; }
/* Lista de Clientes sem barra de rolagem: linhas mais baixas (respiro e botões de ação menores) para as 15 linhas,
   o Resumo e a paginação caberem na tela */
html body .ui-table-clientes tbody td { padding-top: 4px !important; padding-bottom: 4px !important; }
html body .ui-table-clientes .ui-acao-icone { width: 32px; height: 32px; min-height: 32px; }
html body .ui-table-clientes thead th { padding-top: 8px !important; padding-bottom: 8px !important; }
/* Lista de Clientes: com a página cheia (15 linhas), as linhas crescem por igual até o Resumo, sem sobrar espaço
   vazio em telas mais altas. Página com poucas linhas fica no tamanho normal. */
@media (min-width: 992px) {
  html body .dn-painel-lista:has(.ui-table-clientes tbody tr:nth-child(15)) > .dn-lista-corpo { display: flex; flex-direction: column; }
  html body .dn-painel-lista:has(.ui-table-clientes tbody tr:nth-child(15)) .dn-lista-corpo > div,
  html body .dn-painel-lista:has(.ui-table-clientes tbody tr:nth-child(15)) .dn-lista-corpo .ui-table-wrap { flex: 1 1 auto; display: flex; flex-direction: column; }
  html body .dn-painel-lista:has(.ui-table-clientes tbody tr:nth-child(15)) .ui-table-clientes { flex: 1 1 auto; height: 100%; }
}
/* Check-in em janela: duas etapas no passo a passo, sem "Trocar cliente", botões presos no rodapé da janela e
   cartões de unidade maiores */
html.dn-janela-checkin body { background: rgb(var(--surface)); }
html.dn-janela-checkin main.dn-pagina > * { width: 100%; }
html.dn-janela-checkin .cw-stepper { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; max-width: 520px; margin-bottom: 18px !important; }
html.dn-janela-checkin .cw-cp-trocar { display: none !important; }
html.dn-janela-checkin .cw-nav.is-fixa { margin: auto 0 0 !important; padding: 14px 0 16px !important; background: rgb(var(--surface)) !important; box-shadow: 0 -10px 18px -12px rgba(15, 23, 42, .18); }
html.dn-janela-checkin .cw-unidades-grade { grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)) !important; gap: 12px !important; }
html.dn-janela-checkin .cw-unidade-box { min-height: 84px !important; border-radius: 10px !important; padding: 14px 16px !important; font-size: 14px !important; }
html.dn-janela-checkin .cw-unidade input:checked + .cw-unidade-box, html.dn-janela-checkin .cw-unidade-box:has(input:checked) { border-color: var(--primary) !important; background: color-mix(in srgb, var(--primary) 6%, transparent) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 14%, transparent) !important; }

/* Check-in em janela · layout: a página tem exatamente a altura da janela e rola por dentro; os botões ficam
   presos no rodapé (com pouco conteúdo, descem até o fim; com muito, ficam colados embaixo) */
html.dn-janela-checkin, html.dn-janela-checkin body { height: 100%; overflow: hidden; }
html.dn-janela-checkin body main.dn-pagina { height: calc(var(--dn-vh) * 100); min-height: 0 !important; overflow-y: auto; display: flex; flex-direction: column; padding-bottom: 0 !important; box-sizing: border-box; }
html.dn-janela-checkin main.dn-pagina > #checkin-wizard { flex: 1 0 auto; display: flex; flex-direction: column; }
html.dn-janela-checkin .cw-nav, html.dn-janela-checkin .cw-nav.is-fixa { position: sticky !important; bottom: 0; margin: auto 0 0 !important; padding: 14px 0 16px !important; background: rgb(var(--surface)) !important; z-index: 30; }
html.dn-janela-checkin .cw-stepper-item[hidden] + .cw-stepper-item::before { display: none !important; }

/* Check-in em janela · etapa Unidade: tela de escolha rápida, sem moldura; cliente numa faixa em cima e as
   unidades como opções grandes em duas colunas ocupando a altura da janela (clicar já avança) */
html.dn-janela-checkin body, html.dn-janela-checkin body main.dn-pagina { background: rgb(var(--surface)) !important; }
html.dn-janela-checkin .cw-stepper { max-width: 360px !important; margin: 0 auto 14px !important; }
html.dn-janela-checkin .cw-step-dot { width: 32px !important; height: 32px !important; font-size: 13px !important; }
html.dn-janela-checkin .cw-stepper-item + .cw-stepper-item::before { top: 15px !important; }
html.dn-janela-checkin section[data-cw-etapa="2"]:not([hidden]) { flex: 1 1 auto; display: flex; flex-direction: column; }
html.dn-janela-checkin section[data-cw-etapa="2"] .cw-card-grande { flex: 1 1 auto; display: flex; flex-direction: column; gap: 16px; padding: 0 !important; border: 0 !important; box-shadow: none !important; background: none !important; }
html.dn-janela-checkin section[data-cw-etapa="2"] .cw-card-head { margin: 0 !important; }
html.dn-janela-checkin section[data-cw-etapa="2"] .cw-card-head h2 { font-size: 20px !important; }
html.dn-janela-checkin [data-cw-faixa-cliente] { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 0 !important; padding: 0 !important; border: 1px solid rgb(var(--border)); border-radius: 12px; background: rgb(var(--surface-soft)); overflow: hidden; }
html.dn-janela-checkin [data-cw-faixa-cliente] .cw-cp-item { display: flex !important; align-items: center; padding: 14px 18px !important; border: 0 !important; }
html.dn-janela-checkin [data-cw-faixa-cliente] .cw-cp-item + .cw-cp-item { border-left: 1px solid rgb(var(--border)) !important; }
html.dn-janela-checkin .cw-unidades-legenda { font-size: 12px !important; font-weight: 600; color: rgb(var(--muted)); text-transform: uppercase; letter-spacing: .05em; margin-bottom: 10px !important; }
html.dn-janela-checkin .cw-unidade-box { position: relative; flex-direction: row; align-items: center !important; justify-content: flex-start; gap: 14px !important; height: 100%; min-height: 68px !important; padding: 12px 52px 12px 16px !important; border-radius: 12px !important; font-size: 15px !important; }
html.dn-janela-checkin .cw-unidade-icone { width: 44px !important; height: 44px !important; border-radius: 12px !important; font-size: 19px; flex: none; }
html.dn-janela-checkin .cw-unidade-nome { font-weight: 600; line-height: 1.3; }
html.dn-janela-checkin .cw-unidade-radio { display: none !important; }
html.dn-janela-checkin .cw-unidade-box::after { content: ""; position: absolute; right: 18px; top: 50%; width: 18px; height: 18px; margin-top: -9px; background: currentColor; opacity: .35;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E") center / 16px no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E") center / 16px no-repeat; }
html.dn-janela-checkin .cw-unidade:hover .cw-unidade-box { border-color: var(--primary) !important; }
html.dn-janela-checkin .cw-unidade:hover .cw-unidade-box::after { opacity: .8; color: var(--primary); }
html.dn-janela-checkin .cw-unidade input:checked + .cw-unidade-box { border-color: var(--primary) !important; background: color-mix(in srgb, var(--primary) 6%, transparent) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 14%, transparent) !important; }
html.dn-janela-checkin .cw-unidade-selo { margin-left: auto; padding: 3px 10px; border-radius: 999px; font-size: 11.5px; font-weight: 600; white-space: nowrap; color: var(--primary); background: color-mix(in srgb, var(--primary) 10%, transparent); }
@media (max-width: 760px) { html.dn-janela-checkin .cw-unidades-grade { grid-template-columns: 1fr !important; } html.dn-janela-checkin [data-cw-faixa-cliente] { grid-template-columns: 1fr !important; } html.dn-janela-checkin [data-cw-faixa-cliente] .cw-cp-item + .cw-cp-item { border-left: 0 !important; border-top: 1px solid rgb(var(--border)) !important; } }

/* Check-in em janela · etapa Unidade (versão compacta): sugestão da unidade do cliente em destaque e unidades
   agrupadas por tipo, em cartões da mesma altura com ícone colorido por tipo */
html.dn-janela-checkin .cw-unidades-legenda { margin-bottom: 12px !important; }
html.dn-janela-checkin .cw-janela-grupos { display: flex; flex-direction: column; gap: 18px; }
html.dn-janela-checkin .cw-janela-sugestao { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border: 1px solid color-mix(in srgb, var(--primary) 30%, transparent); border-radius: 12px; background: color-mix(in srgb, var(--primary) 6%, transparent); }
html.dn-janela-checkin .cw-janela-sugestao[hidden] { display: none; }
html.dn-janela-checkin .cw-janela-sugestao-icone { width: 44px; height: 44px; flex: none; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; color: #fff; background: var(--primary); font-size: 17px; }
html.dn-janela-checkin .cw-janela-sugestao small { display: block; font-size: 11.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--primary); }
html.dn-janela-checkin .cw-janela-sugestao strong { display: block; font-size: 16px; font-weight: 600; color: rgb(var(--text)); }
html.dn-janela-checkin .cw-janela-sugestao .ui-btn { margin-left: auto; height: 40px; padding: 0 18px; gap: 8px; white-space: nowrap; }
html.dn-janela-checkin .cw-janela-grupo h3 { margin: 0 0 10px; font-size: 13px; font-weight: 600; color: rgb(var(--text)); }
html.dn-janela-checkin .cw-janela-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 10px; }
html.dn-janela-checkin .cw-janela-grade .cw-unidade-box { height: 64px; min-height: 64px !important; padding: 10px 44px 10px 12px !important; gap: 12px !important; border-radius: 10px !important; font-size: 14px !important; }
html.dn-janela-checkin .cw-janela-grade .cw-unidade-box::after { right: 14px; }
html.dn-janela-checkin .cw-janela-grade .cw-unidade-icone { width: 40px !important; height: 40px !important; border-radius: 10px !important; font-size: 18px; }
html.dn-janela-checkin .cw-unidade.is-clinica .cw-unidade-icone { color: var(--primary); background: color-mix(in srgb, var(--primary) 10%, transparent); }
html.dn-janela-checkin .cw-unidade.is-laboratorio .cw-unidade-icone { color: #B45309; background: color-mix(in srgb, #D97706 12%, transparent); }
html.dn-janela-checkin .cw-unidade.is-especialidade .cw-unidade-icone { color: #047857; background: color-mix(in srgb, #059669 12%, transparent); }
html.dn-janela-checkin .cw-janela-grade .cw-unidade-nome { font-size: 14px; font-weight: 600; text-transform: none; }
@media (max-width: 760px) { html.dn-janela-checkin .cw-janela-sugestao { flex-wrap: wrap; } html.dn-janela-checkin .cw-janela-sugestao .ui-btn { margin-left: 0; width: 100%; justify-content: center; } }
/* Check-in em janela: sem o passo a passo no topo (a etapa já aparece no título de cada tela) */
html.dn-janela-checkin [data-cw-stepper-wrap] { display: none !important; }
/* Check-in em janela: tamanho normal (sem a redução de 12% das telas com menu, a janela já é menor que a tela) */
html.dn-janela-checkin { --dn-escala: 1; --dn-vh: 1vh; }
/* Tudo numa tela, uma coisa embaixo da outra: unidades, formulário do check-in e, no final, o resumo do atendimento */
html.dn-janela-checkin section[data-cw-etapa="2"]:not([hidden]) + section[data-cw-etapa="3"]:not([hidden]) { margin-top: 20px; padding-top: 20px; border-top: 1px solid rgb(var(--border)); }
html.dn-janela-checkin section[data-cw-etapa="2"]:not([hidden]):has(+ section[data-cw-etapa="3"]:not([hidden])) { flex: 0 0 auto; }
html.dn-janela-checkin .cw-step3 { display: flex !important; flex-direction: column; gap: 20px; }
html.dn-janela-checkin .cw-step3 > .cw-step3-main { width: 100%; min-width: 0; }
html.dn-janela-checkin .cw-step3 > .cw-resumo { position: static !important; width: 100% !important; max-width: none !important; }
html.dn-janela-checkin .cw-resumo-card { position: static !important; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 24px; align-items: start; padding: 18px 20px !important; }
html.dn-janela-checkin .cw-resumo-card > .cw-card-title { grid-column: 1 / -1; margin: 0 !important; }
html.dn-janela-checkin .cw-resumo-card > .cw-dl { margin: 0 !important; }
html.dn-janela-checkin .cw-resumo-card > .cw-resumo-itens, html.dn-janela-checkin .cw-resumo-card > .cw-total { margin: 0 !important; }
html.dn-janela-checkin .cw-resumo-card > div:empty { display: none; }
html.dn-janela-checkin .cw-resumo-card > div:not([class]) { grid-column: 1 / -1; }
html.dn-janela-checkin .cw-resumo-card > div:not([class]) > .cw-alert { margin: 0 !important; }
@media (max-width: 900px) { html.dn-janela-checkin .cw-resumo-card { grid-template-columns: 1fr; } }
/* Faixa do cliente e unidades na mesma grade de 3 colunas, com o mesmo espaçamento: as bordas batem */
html.dn-janela-checkin [data-cw-faixa-cliente] { gap: 12px !important; border: 0 !important; border-radius: 0 !important; background: none !important; overflow: visible !important; }
html.dn-janela-checkin [data-cw-faixa-cliente] .cw-cp-item, html.dn-janela-checkin [data-cw-faixa-cliente] .cw-cp-item + .cw-cp-item { min-width: 0; padding: 12px 14px !important; gap: 12px; border: 1px solid rgb(var(--border)) !important; border-radius: 12px !important; background: rgb(var(--surface-soft)); }
html.dn-janela-checkin [data-cw-faixa-cliente] .cw-cp-texto { min-width: 0; }
html.dn-janela-checkin [data-cw-faixa-cliente] .cw-cp-texto > * { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html.dn-janela-checkin .cw-janela-grade { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
html.dn-janela-checkin .cw-janela-grade .cw-unidade-nome { overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
@media (max-width: 1000px) { html.dn-janela-checkin .cw-janela-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Janela de check-in no padrão da ficha do cliente: fundo cinza, cada parte num cartão branco com ícone azul de 44px e
   título em negrito, dados em quadros cinza com rótulo pequeno em maiúsculas; cabeçalho igual ao das janelas da ficha */
.dn-janela-checkin-topo { gap: .85rem; padding: 1.25rem 1.4rem 1rem; }
.dn-janela-checkin-topo h2 { font-size: 1.1rem; font-weight: 700; }
.dn-janela-checkin-topo p { margin-top: .15rem; font-size: .84rem; }
.dn-janela-checkin-icone { width: 44px; height: 44px; border-radius: var(--radius-md); background: rgb(var(--brand-50)); color: rgb(var(--brand-600)); font-size: 1.3rem; }
.dn-janela-checkin-fechar { width: 38px; height: 38px; }
dialog.dn-janela-checkin { border-radius: var(--radius-lg); }
html.dn-janela-checkin body, html.dn-janela-checkin body main.dn-pagina { background: var(--dn-fundo) !important; }
html.dn-janela-checkin .cw-nav, html.dn-janela-checkin .cw-nav.is-fixa { background: var(--dn-fundo) !important; }
/* Cartões */
html.dn-janela-checkin section[data-cw-etapa="2"] .cw-card-grande,
html.dn-janela-checkin .cw-step3-main .cw-section,
html.dn-janela-checkin .cw-resumo-card { padding: 1.25rem !important; border: 1px solid rgb(var(--border)) !important; border-radius: var(--radius-lg) !important; background: rgb(var(--surface)) !important; box-shadow: none !important; }
html.dn-janela-checkin section[data-cw-etapa="2"]:not([hidden]) + section[data-cw-etapa="3"]:not([hidden]) { margin-top: 1rem; padding-top: 0; border-top: 0; }
html.dn-janela-checkin .cw-step3 { gap: 1rem; }
html.dn-janela-checkin .cw-step3-main form { display: flex; flex-direction: column; gap: 1rem; }
html.dn-janela-checkin .cw-step3-main .cw-section { margin: 0 !important; }
/* Cabeçalho dos cartões: ícone de 44px e título */
html.dn-janela-checkin section[data-cw-etapa="2"] .cw-card-head { display: flex; align-items: flex-start; gap: .85rem; margin: 0 !important; }
html.dn-janela-checkin .cw-card-icone, html.dn-janela-checkin .cw-section-title > i, html.dn-janela-checkin .cw-resumo-icone { display: inline-flex !important; flex: none; align-items: center; justify-content: center; width: 44px !important; height: 44px !important; border-radius: var(--radius-md) !important; background: rgb(var(--brand-50)) !important; color: rgb(var(--brand-600)) !important; font-size: 1.3rem !important; }
html.dn-janela-checkin section[data-cw-etapa="2"] .cw-card-head h2, html.dn-janela-checkin .cw-section-title, html.dn-janela-checkin .cw-resumo-card > .cw-card-title { margin: 0; font-size: 1.1rem !important; font-weight: 700 !important; color: rgb(var(--text)); line-height: 1.2; }
html.dn-janela-checkin section[data-cw-etapa="2"] .cw-card-head p { margin: .15rem 0 0; font-size: .86rem; color: rgb(var(--muted)); }
html.dn-janela-checkin .cw-section-title, html.dn-janela-checkin .cw-resumo-card > .cw-card-title { display: flex !important; align-items: center; gap: .85rem; height: auto !important; margin-bottom: 1rem !important; }
html.dn-janela-checkin .cw-resumo-card > .cw-card-title { margin-bottom: 0 !important; }
html.dn-janela-checkin .cw-cliente-linha h3 { font-size: 1.1rem; font-weight: 700; }
/* Quadros de dados (faixa do cliente e resumo) */
html.dn-janela-checkin [data-cw-faixa-cliente] .cw-cp-item, html.dn-janela-checkin [data-cw-faixa-cliente] .cw-cp-item + .cw-cp-item,
html.dn-janela-checkin .cw-resumo-card .cw-dl > div, html.dn-janela-checkin .cw-resumo-card > .cw-resumo-itens, html.dn-janela-checkin .cw-resumo-card > .cw-total { padding: 12px 14px !important; border: 1px solid rgb(var(--border)) !important; border-radius: var(--radius-md) !important; background: rgb(var(--surface-soft)) !important; }
html.dn-janela-checkin [data-cw-faixa-cliente] .cw-cp-icone { display: none !important; }
html.dn-janela-checkin [data-cw-faixa-cliente] .cw-info-label, html.dn-janela-checkin .cw-resumo-card .cw-dl dt, html.dn-janela-checkin .cw-resumo-itens-head { font-size: 11px !important; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: rgb(var(--muted)); margin-bottom: 4px; }
html.dn-janela-checkin [data-cw-faixa-cliente] strong, html.dn-janela-checkin .cw-resumo-card .cw-dl dd { font-size: 14px !important; font-weight: 600; color: rgb(var(--text)); }
html.dn-janela-checkin [data-cw-faixa-cliente] small { font-size: 12px !important; color: rgb(var(--muted)); }
html.dn-janela-checkin [data-cw-faixa-cliente] .cw-cp-item.is-success { border-color: rgb(var(--success, 22 163 74) / .35) !important; }
html.dn-janela-checkin .cw-resumo-card .cw-dl { display: flex; flex-direction: column; gap: 8px; }
html.dn-janela-checkin .cw-resumo-card .cw-dl > div { margin: 0 !important; }
html.dn-janela-checkin .cw-resumo-card > .cw-total { align-self: stretch; display: flex; align-items: center; justify-content: space-between; border-color: color-mix(in srgb, var(--primary) 30%, transparent) !important; background: color-mix(in srgb, var(--primary) 6%, transparent) !important; }
/* Títulos de grupo como as seções da ficha; unidades, sugestão e opções do formulário com o mesmo arredondado */
html.dn-janela-checkin .cw-unidades-legenda, html.dn-janela-checkin .cw-janela-grupo h3 { font-size: 11px !important; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: rgb(var(--muted)); }
html.dn-janela-checkin .cw-janela-grade .cw-unidade-box, html.dn-janela-checkin .cw-janela-sugestao, html.dn-janela-checkin .attendance-type, html.dn-janela-checkin .cw-beneficio, html.dn-janela-checkin .exam-box, html.dn-janela-checkin .laboratory-option, html.dn-janela-checkin .cw-step3-main .alert, html.dn-janela-checkin .cw-resumo-card .cw-alert { border-radius: var(--radius-md) !important; }
html.dn-janela-checkin .cw-janela-grade .cw-unidade-icone, html.dn-janela-checkin .cw-janela-sugestao-icone { border-radius: var(--radius-md) !important; }
html.dn-janela-checkin .cw-step3-main .form-select, html.dn-janela-checkin .cw-step3-main .form-control { min-height: var(--dn-altura); border-radius: 6px; font-size: 14px; }
/* Janela de check-in, alinhamento: o cartão do cliente/plano ganha o mesmo cabeçalho com ícone dos outros cartões,
   campos do formulário em duas colunas (lado a lado, mesma largura), resumo com quadros da mesma altura */
html.dn-janela-checkin .cw-unidades-legenda { display: none !important; }
html.dn-janela-checkin .cw-cliente-linha { position: relative; display: flex; align-items: center; gap: .6rem; min-height: 44px; padding-left: calc(44px + .85rem); margin-bottom: 0; }
html.dn-janela-checkin .cw-cliente-linha::before { content: "\f8c9"; font-family: "bootstrap-icons"; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--radius-md); background: rgb(var(--brand-50)); color: rgb(var(--brand-600)); font-size: 1.3rem; }
html.dn-janela-checkin .cw-cliente-linha h3 { margin: 0; }
html.dn-janela-checkin .cw-cliente-linha + p { margin: -14px 0 1rem calc(44px + .85rem) !important; font-size: .86rem !important; }
html.dn-janela-checkin .cw-step3-main .cw-section { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; align-content: start; }
html.dn-janela-checkin .cw-step3-main .cw-section > * { grid-column: 1 / -1; min-width: 0; }
html.dn-janela-checkin .cw-step3-main .cw-section > :is(.form-group, .mb-3):has(> select, > input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"])) { grid-column: auto; margin-bottom: 1rem !important; }
html.dn-janela-checkin .cw-step3-main .cw-section > :is(.form-group, .mb-3) > .form-label { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 600; color: rgb(var(--text)); }
html.dn-janela-checkin .cw-step3-main .cw-section > :is(.form-group, .mb-3) > small { display: block; margin-top: 6px; font-size: 12px; line-height: 1.4; color: rgb(var(--muted)); }
html.dn-janela-checkin .cw-step3-main .cw-section > .cw-beneficio + .cw-beneficio, html.dn-janela-checkin .cw-step3-main .cw-section > .cw-beneficio { margin-top: 10px; }
html.dn-janela-checkin .cw-resumo-card { align-items: stretch !important; }
html.dn-janela-checkin .cw-resumo-card > .cw-dl { justify-content: space-between; }
html.dn-janela-checkin .cw-resumo-card > .cw-dl > div { flex: 1 1 auto; }
html.dn-janela-checkin .cw-resumo-card > .cw-total { flex-direction: column; align-items: flex-start !important; justify-content: center !important; gap: 4px; }
html.dn-janela-checkin .cw-resumo-card > .cw-total > span { font-size: 11px !important; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: rgb(var(--muted)); }
html.dn-janela-checkin .cw-resumo-card > .cw-total > strong { font-size: 28px !important; color: var(--primary); }
@media (max-width: 760px) { html.dn-janela-checkin .cw-step3-main .cw-section { grid-template-columns: 1fr; } }
/* Janela de check-in refeita no padrão da ficha de clientes: o nome aparece uma vez só, no cabeçalho, com os selos e
   "Matrícula · Unidade do cliente" embaixo; nada de texto cortado com reticências */
.dn-janela-checkin-id { min-width: 0; }
.dn-janela-checkin-id > small { display: block; font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: rgb(var(--muted)); }
.dn-janela-checkin-titulo { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.dn-janela-checkin-topo .dn-janela-checkin-titulo h2 { font-size: 1.25rem; font-weight: 700; line-height: 1.25; }
.dn-janela-checkin-selos { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.dn-janela-checkin-selos:empty, .dn-janela-checkin-topo p:empty { display: none; }
html.dn-janela-checkin [data-cw-faixa-cliente] { display: none !important; }
html.dn-janela-checkin .cw-secao-cliente > .cw-cliente-linha, html.dn-janela-checkin .cw-secao-cliente > .cw-cliente-linha + p { display: none !important; }
html.dn-janela-checkin .cw-resumo-card .cw-dl > div:has(> [data-cw-resumo-cliente]), html.dn-janela-checkin [data-cw-resumo-unidade-cliente-wrap] { display: none !important; }
html.dn-janela-checkin .cw-janela-grade .cw-unidade-nome { display: block; overflow: visible; -webkit-line-clamp: unset; white-space: normal; }
html.dn-janela-checkin .cw-janela-grade .cw-unidade-box { height: auto; }
/* Cartão "Programa do cliente": título do plano, dados da adesão em quadros e benefícios lado a lado */
html.dn-janela-checkin .cw-secao-cliente > .cw-section-title ~ .cw-section-title { margin-top: .5rem !important; }
html.dn-janela-checkin .cw-plano { padding: 14px 16px !important; border-radius: var(--radius-md) !important; margin-bottom: 12px !important; }
html.dn-janela-checkin .cw-plano .form-check-label { font-size: 15px; }
html.dn-janela-checkin .cw-plano-meta { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important; gap: 10px !important; margin-top: 12px !important; font-size: 13px !important; }
html.dn-janela-checkin .cw-plano-meta > span { padding: 10px 12px; border: 1px solid rgb(var(--border)); border-radius: var(--radius-md); background: rgb(var(--surface-soft)); color: rgb(var(--muted)); }
html.dn-janela-checkin .cw-plano-meta > span strong { display: block; margin-top: 2px; font-size: 14px; color: rgb(var(--text)); }
html.dn-janela-checkin .cw-secao-cliente > .cw-beneficio { grid-column: auto !important; margin: 0 0 12px !important; padding: 12px 14px !important; font-size: 13px; line-height: 1.5; }
html.dn-janela-checkin .cw-secao-cliente > .cw-beneficio h4 { margin-bottom: 6px; font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: rgb(var(--muted)); }
html.dn-janela-checkin .cw-secao-cliente > .cw-beneficio p:last-child { margin-bottom: 0 !important; }
html.dn-janela-checkin .cw-secao-cliente > .cw-details { grid-column: 1 / -1; }
/* Resumo: Unidade do check-in, procedimentos e total, cada um num quadro da mesma altura */
html.dn-janela-checkin .cw-resumo-card .cw-dl dd { word-break: break-word; }
/* ===== Janela de check-in = janelas da ficha (Contrato #, Nova observação): fundo branco, cabeçalho com ícone de 44px,
   seções separadas por uma linha com título pequeno em maiúsculas (.cad-secao), dados soltos como .ficha-dl (rótulo
   pequeno em cima, valor em negrito), itens como .cad-item e botões no rodapé como .cad-modal-acoes ===== */
dialog.dn-janela-checkin { box-shadow: var(--shadow-md, 0 12px 32px rgba(15, 23, 42, .18)); }
dialog.dn-janela-checkin::backdrop { background: rgb(15 23 42 / .45); }
.dn-janela-checkin-topo { align-items: flex-start; padding: 1.25rem 1.4rem .75rem; border-bottom: 0; }
.dn-janela-checkin-id > small { display: none; }
.dn-janela-checkin-topo .dn-janela-checkin-titulo h2 { font-size: 1.1rem; }
.dn-janela-checkin-topo p { font-size: .84rem; }
.dn-janela-checkin-fechar:hover { background: rgb(var(--surface-strong)); color: rgb(var(--text)); }
html.dn-janela-checkin body, html.dn-janela-checkin body main.dn-pagina { background: rgb(var(--surface)) !important; }
html.dn-janela-checkin body main.dn-pagina { padding: 0 1.4rem !important; }
/* Sem cartões: cada parte é uma seção, separada da anterior por uma linha */
html.dn-janela-checkin body section[data-cw-etapa="2"] .cw-card-grande,
html.dn-janela-checkin body .cw-step3-main .cw-section,
html.dn-janela-checkin body .cw-resumo-card { padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: none !important; box-shadow: none !important; }
html.dn-janela-checkin body .cw-step3-main form, html.dn-janela-checkin body .cw-step3 { gap: 0 !important; }
html.dn-janela-checkin body .cw-step3-main .cw-section, html.dn-janela-checkin body .cw-step3 > .cw-resumo { margin-top: 1.1rem !important; padding-top: 1rem !important; border-top: 1px solid rgb(var(--border)) !important; }
html.dn-janela-checkin body section[data-cw-etapa="2"]:not([hidden]) + section[data-cw-etapa="3"]:not([hidden]) { margin-top: 0; }
/* Títulos das seções como .cad-secao: sem ícone, pequenos, em maiúsculas */
html.dn-janela-checkin body .cw-card-icone, html.dn-janela-checkin body .cw-section-title > i, html.dn-janela-checkin body .cw-resumo-icone, html.dn-janela-checkin body section[data-cw-etapa="2"] .cw-card-head p { display: none !important; }
html.dn-janela-checkin body section[data-cw-etapa="2"] .cw-card-head h2, html.dn-janela-checkin body .cw-section-title, html.dn-janela-checkin body .cw-resumo-card > .cw-card-title { display: block !important; margin: 0 0 .6rem !important; font-size: .8rem !important; font-weight: 700 !important; letter-spacing: .04em; text-transform: uppercase; color: rgb(var(--muted)) !important; line-height: 1.3; }
html.dn-janela-checkin body section[data-cw-etapa="2"] .cw-card-grande { gap: .6rem; }
html.dn-janela-checkin body .cw-janela-grupos { gap: .9rem; }
html.dn-janela-checkin body .cw-janela-grupo h3 { margin: 0 0 .45rem; font-size: .7rem !important; font-weight: 700; letter-spacing: .03em; color: rgb(var(--muted)); }
/* Unidades, opções e benefícios como .cad-item: linha com borda, ícone redondo de 36px */
html.dn-janela-checkin body .cw-janela-grade { gap: .6rem; }
html.dn-janela-checkin body .cw-janela-grade .cw-unidade-box { min-height: 0 !important; padding: .7rem 2.4rem .7rem .9rem !important; gap: .85rem !important; border: 1px solid rgb(var(--border)) !important; border-radius: var(--radius-md) !important; background: rgb(var(--surface)) !important; box-shadow: none !important; font-size: .9rem !important; }
html.dn-janela-checkin body .cw-janela-grade .cw-unidade-icone { width: 36px !important; height: 36px !important; border-radius: 999px !important; font-size: 1rem !important; }
html.dn-janela-checkin body .cw-janela-grade .cw-unidade-nome { font-size: .9rem; font-weight: 700; }
html.dn-janela-checkin body .cw-unidade input:checked + .cw-unidade-box { border-color: rgb(var(--brand-600)) !important; background: rgb(var(--brand-50)) !important; box-shadow: none !important; }
html.dn-janela-checkin body .cw-janela-sugestao { padding: .7rem .9rem; border-radius: var(--radius-md); }
html.dn-janela-checkin body .attendance-type { padding: .7rem .9rem !important; border: 1px solid rgb(var(--border)) !important; border-radius: var(--radius-md) !important; box-shadow: none !important; }
html.dn-janela-checkin body .attendance-type strong { font-size: .9rem; }
html.dn-janela-checkin body .attendance-type small { font-size: .76rem !important; color: rgb(var(--muted)) !important; }
html.dn-janela-checkin body .attendance-type.is-selected { border-color: rgb(var(--brand-600)) !important; background: rgb(var(--brand-50)) !important; }
html.dn-janela-checkin body .cw-secao-cliente > .cw-beneficio { padding: .7rem .9rem !important; border: 1px solid rgb(var(--border)) !important; border-radius: var(--radius-md) !important; background: rgb(var(--surface)) !important; font-size: .76rem; color: rgb(var(--muted)); }
html.dn-janela-checkin body .cw-secao-cliente > .cw-beneficio h4 { margin: 0 0 .15rem; font-size: .9rem; font-weight: 700; letter-spacing: 0; text-transform: none; color: rgb(var(--text)); }
html.dn-janela-checkin body .cw-secao-cliente > .cw-beneficio strong { color: rgb(var(--text)); }
html.dn-janela-checkin body .cw-secao-cliente > .cw-beneficio-warning { border-color: rgb(var(--warning) / .45) !important; }
/* Plano: nome do plano e dados da adesão como .ficha-dl (sem caixinhas) */
html.dn-janela-checkin body .cw-plano { padding: .7rem .9rem !important; border-radius: var(--radius-md) !important; background: rgb(var(--surface)) !important; }
html.dn-janela-checkin body .cw-plano .form-check-label { font-size: .9rem; font-weight: 700; }
html.dn-janela-checkin body .cw-plano-meta { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)) !important; gap: .75rem 1.25rem !important; margin-top: .75rem !important; }
html.dn-janela-checkin body .cw-plano-meta > span { padding: 0; border: 0; border-radius: 0; background: none; font-size: .7rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; color: rgb(var(--muted)); }
html.dn-janela-checkin body .cw-plano-meta > span strong { margin-top: .1rem; font-size: .9rem; font-weight: 600; letter-spacing: 0; text-transform: none; color: rgb(var(--text)); }
/* Campos */
html.dn-janela-checkin body .cw-step3-main .form-label { font-size: .8rem; font-weight: 600; }
/* Resumo como .ficha-dl: Unidade do check-in, procedimentos e total soltos, sem caixinhas */
html.dn-janela-checkin body .cw-resumo-card { gap: .75rem 1.25rem !important; }
html.dn-janela-checkin body .cw-resumo-card .cw-dl > div, html.dn-janela-checkin body .cw-resumo-card > .cw-resumo-itens, html.dn-janela-checkin body .cw-resumo-card > .cw-total { padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: none !important; }
html.dn-janela-checkin body .cw-resumo-card .cw-dl dt, html.dn-janela-checkin body .cw-resumo-itens-head, html.dn-janela-checkin body .cw-resumo-card > .cw-total > span { font-size: .7rem !important; font-weight: 700 !important; letter-spacing: .03em; text-transform: uppercase; color: rgb(var(--muted)) !important; margin: 0 0 .1rem; }
html.dn-janela-checkin body .cw-resumo-card .cw-dl dd { font-size: .9rem !important; font-weight: 600; color: rgb(var(--text)); }
html.dn-janela-checkin body .cw-itens-vazio { padding: 0 !important; border: 0 !important; background: none !important; font-size: .9rem !important; color: rgb(var(--muted)); }
html.dn-janela-checkin body .cw-resumo-card > .cw-total > strong { font-size: 1.25rem !important; color: rgb(var(--text)) !important; }
html.dn-janela-checkin body .cw-resumo-card > .cw-total { gap: .1rem; justify-content: flex-start !important; }
/* Rodapé como .cad-modal-acoes: linha em cima, botões de 44px à direita */
html.dn-janela-checkin body .cw-nav, html.dn-janela-checkin body .cw-nav.is-fixa { margin: auto -1.4rem 0 !important; padding: 1rem 1.4rem 1.1rem !important; border-top: 1px solid rgb(var(--border)) !important; background: rgb(var(--surface)) !important; box-shadow: none !important; backdrop-filter: none !important; }
html.dn-janela-checkin body .cw-nav .ui-btn { min-height: 44px; height: 44px; padding: 0 1.1rem; font-size: .9rem; border-radius: 6px; }
html.dn-janela-checkin body .cw-nav-acoes { gap: 1rem !important; }
html.dn-janela-checkin body .cw-nav-total { font-size: .7rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; }
html.dn-janela-checkin body .cw-nav-total strong { font-size: 1.1rem; letter-spacing: 0; }
html.dn-janela-checkin body .cw-nav-motivo { font-size: .76rem; }
/* Janela de check-in: a última unidade de uma linha incompleta estica até o fim; benefícios na largura toda */
html.dn-janela-checkin body .cw-janela-grade > .cw-unidade:last-child:nth-child(3n+1) { grid-column: 1 / -1; }
html.dn-janela-checkin body .cw-janela-grade > .cw-unidade:last-child:nth-child(3n+2) { grid-column: span 2; }
html.dn-janela-checkin body .cw-secao-cliente > .cw-beneficio { grid-column: 1 / -1 !important; }
@media (max-width: 1000px) {
  html.dn-janela-checkin body .cw-janela-grade > .cw-unidade:last-child:nth-child(3n+1), html.dn-janela-checkin body .cw-janela-grade > .cw-unidade:last-child:nth-child(3n+2) { grid-column: auto; }
  html.dn-janela-checkin body .cw-janela-grade > .cw-unidade:last-child:nth-child(2n+1) { grid-column: 1 / -1; }
}
/* Janela de check-in mais simples: sem ícones coloridos nas unidades, sem fundos coloridos (só a borda azul no que está
   escolhido), caixas neutras e campos sozinhos ocupando a largura toda */
html.dn-janela-checkin body .cw-janela-grade .cw-unidade-icone, html.dn-janela-checkin body .cw-janela-grade .cw-unidade-box::after, html.dn-janela-checkin body .cw-janela-sugestao-icone { display: none !important; }
html.dn-janela-checkin body .cw-janela-grade .cw-unidade-box { padding: .75rem .9rem !important; justify-content: flex-start; }
html.dn-janela-checkin body .cw-janela-grade .cw-unidade-nome { font-weight: 600; }
html.dn-janela-checkin body .cw-unidade:hover .cw-unidade-box { border-color: rgb(var(--brand-600)) !important; }
html.dn-janela-checkin body .cw-unidade input:checked + .cw-unidade-box, html.dn-janela-checkin body .attendance-type.is-selected { border-color: rgb(var(--brand-600)) !important; background: rgb(var(--surface)) !important; box-shadow: inset 0 0 0 1px rgb(var(--brand-600)) !important; }
html.dn-janela-checkin body .cw-unidade input:checked + .cw-unidade-box .cw-unidade-nome { color: rgb(var(--brand-600)); }
html.dn-janela-checkin body .cw-janela-sugestao { border-color: rgb(var(--border)) !important; background: rgb(var(--surface-soft)) !important; }
html.dn-janela-checkin body .cw-janela-sugestao small { color: rgb(var(--muted)) !important; }
/* Caixas neutras: benefícios, plano, exames, laboratório, total a receber e avisos */
html.dn-janela-checkin body .cw-secao-cliente > .cw-beneficio, html.dn-janela-checkin body .cw-secao-cliente > .cw-beneficio-warning, html.dn-janela-checkin body .cw-plano, html.dn-janela-checkin body .cw-plano.plano-selecionado { border: 1px solid rgb(var(--border)) !important; background: rgb(var(--surface)) !important; }
html.dn-janela-checkin body .cw-chip { border-color: rgb(var(--border)) !important; background: rgb(var(--surface-soft)) !important; color: rgb(var(--text-soft, var(--muted))) !important; }
html.dn-janela-checkin body .exam-box { border: 1px solid rgb(var(--border)) !important; border-radius: var(--radius-md) !important; background: rgb(var(--surface)) !important; }
html.dn-janela-checkin body .exam-box-header { border-bottom: 1px solid rgb(var(--border)) !important; background: rgb(var(--surface-soft)) !important; }
html.dn-janela-checkin body .exam-box-title { color: rgb(var(--text)) !important; }
html.dn-janela-checkin body .laboratory-option { border: 1px solid rgb(var(--border)) !important; border-style: solid !important; background: rgb(var(--surface)) !important; }
html.dn-janela-checkin body .exam-list > .rounded-lg { border: 1px dashed rgb(var(--border)) !important; background: none !important; text-align: center; color: rgb(var(--muted)) !important; }
html.dn-janela-checkin body .cw-step3-main .alert, html.dn-janela-checkin body .cw-resumo-card .cw-alert { border: 1px solid rgb(var(--border)) !important; background: rgb(var(--surface-soft)) !important; color: rgb(var(--text)) !important; }
html.dn-janela-checkin body .cw-step3-main .alert strong { color: rgb(var(--text)) !important; }
html.dn-janela-checkin body .cw-resumo-card .cw-alert-title i, html.dn-janela-checkin body .cw-step3-main .alert i { color: rgb(var(--muted)) !important; }
html.dn-janela-checkin body .cw-resumo-card .cw-alert-danger .cw-alert-title, html.dn-janela-checkin body .cw-resumo-card .cw-alert-warning .cw-alert-title { color: rgb(var(--danger)) !important; }
/* Campo sozinho na linha ocupa a largura toda (os que vêm em par continuam lado a lado) */
html.dn-janela-checkin body .cw-step3-main .cw-section > .cw-campo-inteiro { grid-column: 1 / -1 !important; }
/* Janela de check-in: resumo sem o "Alterar" (as unidades estão logo acima) e aviso de pendências com o título e o
   botão "Atualizar situação" na mesma linha */
html.dn-janela-checkin body .cw-resumo-card [data-cw-ir="2"] { display: none !important; }
html.dn-janela-checkin body .cw-resumo-card .cw-alert:has(> .cw-alert-actions) { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 16px; }
html.dn-janela-checkin body .cw-resumo-card .cw-alert:has(> .cw-alert-actions) > .cw-alert-title { grid-column: 1; grid-row: 1; margin: 0 !important; }
html.dn-janela-checkin body .cw-resumo-card .cw-alert:has(> .cw-alert-actions) > .cw-alert-actions { grid-column: 2; grid-row: 1; margin: 0 !important; }
html.dn-janela-checkin body .cw-resumo-card .cw-alert:has(> .cw-alert-actions) > ul { grid-column: 1 / -1; margin: 10px 0 0 !important; }
html.dn-janela-checkin body .cw-resumo-card .cw-alert-actions .ui-btn { height: 36px; min-height: 36px; padding: 0 14px; font-size: .84rem; white-space: nowrap; }
/* Rodapé numa linha só: Voltar | motivo do bloqueio | total | Finalizar */
html.dn-janela-checkin body .cw-nav, html.dn-janela-checkin body .cw-nav.is-fixa { flex-wrap: nowrap; align-items: center; gap: 16px !important; padding: .9rem 1.4rem !important; }
html.dn-janela-checkin body .cw-nav > [data-cw-voltar] { order: 0; flex: none; }
html.dn-janela-checkin body .cw-nav > .cw-nav-motivo { order: 1; flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 8px; width: auto; padding: 0; text-align: left; font-size: .84rem !important; font-weight: 600; line-height: 1.35; color: rgb(var(--warning)); }
html.dn-janela-checkin body .cw-nav > .cw-nav-motivo[hidden] { display: none; }
html.dn-janela-checkin body .cw-nav > .cw-nav-motivo::before { content: "\f33a"; font-family: "bootstrap-icons"; font-weight: 400; font-size: 1rem; flex: none; }
html.dn-janela-checkin body .cw-nav > .cw-nav-acoes { order: 2; flex: none; margin-left: auto; gap: 20px !important; }
html.dn-janela-checkin body .cw-nav-total { flex-direction: row !important; align-items: baseline !important; gap: 8px; }
html.dn-janela-checkin body .cw-nav-total span { font-size: .76rem; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; color: rgb(var(--muted)); }
html.dn-janela-checkin body .cw-nav-total strong { font-size: 1.25rem !important; font-weight: 700; color: rgb(var(--text)); }
html.dn-janela-checkin body .cw-nav .cw-btn-finalizar { min-width: 190px; border-color: rgb(var(--brand-600)) !important; background: rgb(var(--brand-600)) !important; color: #fff !important; }
html.dn-janela-checkin body .cw-nav .cw-btn-finalizar:disabled { opacity: .45; }
html.dn-janela-checkin body .cw-nav [data-cw-voltar] { min-width: 0 !important; color: rgb(var(--text)); }
@media (max-width: 760px) { html.dn-janela-checkin body .cw-nav, html.dn-janela-checkin body .cw-nav.is-fixa { flex-wrap: wrap; } html.dn-janela-checkin body .cw-nav > .cw-nav-motivo { order: 3; flex-basis: 100%; } }
/* Janela de check-in: campo obrigatório que falta fica em vermelho, com a mensagem logo embaixo */
html.dn-janela-checkin body .cw-falta > .form-label, html.dn-janela-checkin body .cw-falta > label.form-label { color: rgb(var(--danger)) !important; }
html.dn-janela-checkin body .cw-falta > select, html.dn-janela-checkin body .cw-falta > input, html.dn-janela-checkin body .cw-falta .ui-combo-input, html.dn-janela-checkin body .cw-falta > .form-select, html.dn-janela-checkin body .cw-falta > .form-control { border-color: rgb(var(--danger)) !important; box-shadow: 0 0 0 1px rgb(var(--danger) / .35) !important; }
html.dn-janela-checkin body .exam-box.cw-falta, html.dn-janela-checkin body .cw-plano.cw-falta, html.dn-janela-checkin body .attendance-types.cw-falta .attendance-type { border-color: rgb(var(--danger)) !important; }
html.dn-janela-checkin body .exam-box.cw-falta .exam-box-title { color: rgb(var(--danger)) !important; }
html.dn-janela-checkin body .cw-falta-msg { grid-column: 1 / -1; display: flex; align-items: flex-start; gap: 6px; margin-top: 6px; font-size: .78rem; font-weight: 600; line-height: 1.35; color: rgb(var(--danger)); }
html.dn-janela-checkin body .cw-falta-msg::before { content: "\f333"; font-family: "bootstrap-icons"; font-weight: 400; }
html.dn-janela-checkin body .cw-falta > small { display: none !important; }
/* Janela de check-in: pendências só com a frase e um "i" ao lado (o detalhe aparece ao passar o mouse); sem o motivo
   do bloqueio no rodapé (o que falta já fica marcado em vermelho nos campos) */
html.dn-janela-checkin body .cw-resumo-card .cw-alert:has(.cw-pend-info) > ul { display: none !important; }
html.dn-janela-checkin body .cw-nav > .cw-nav-motivo { display: none !important; }
html.dn-janela-checkin body .cw-resumo-card .cw-alert, html.dn-janela-checkin body .cw-resumo-card { overflow: visible !important; }
.cw-pend-info { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; margin-left: 4px; vertical-align: -3px; border-radius: 999px; color: rgb(var(--muted)); cursor: help; outline: 0; }
.cw-pend-info:hover, .cw-pend-info:focus-visible { color: rgb(var(--text)); background: rgb(var(--surface-strong)); }
.cw-pend-info::after { content: attr(data-dica); position: absolute; z-index: 50; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%); width: max-content; max-width: min(420px, 80vw); padding: 10px 12px; border-radius: 6px; background: rgb(15 23 42); color: #fff; font-size: .78rem; font-weight: 500; line-height: 1.45; text-align: left; white-space: pre-line; box-shadow: 0 8px 24px rgba(15, 23, 42, .25); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .12s; }
.cw-pend-info:hover::after, .cw-pend-info:focus-visible::after, .cw-pend-info.is-aberta::after { opacity: 1; visibility: visible; }
/* O aviso embaixo do campo que falta é só "* Obrigatório" em vermelho (a frase completa fica ao passar o mouse) */
html.dn-janela-checkin body .cw-falta-msg::before { content: "*"; font-family: inherit; font-weight: 700; }
/* Janela de check-in, quadro de exames: lista em duas colunas de linhas compactas (caixa, nome com o detalhe embaixo,
   valor à direita), Laboratório e Odontologia lado a lado e Centro Cirúrgico na largura toda, tudo com o mesmo espaçamento */
html.dn-janela-checkin body .exam-box { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding-bottom: 12px; overflow: visible !important; }
html.dn-janela-checkin body .exam-box > * { grid-column: 1 / -1; min-width: 0; }
html.dn-janela-checkin body .exam-box-header { padding: 10px 14px !important; border-radius: var(--radius-md) var(--radius-md) 0 0; }
html.dn-janela-checkin body .exam-box-title { font-size: .8rem !important; letter-spacing: .04em; }
html.dn-janela-checkin body .exam-box-summary { font-size: .76rem !important; color: rgb(var(--muted)) !important; }
html.dn-janela-checkin body .exam-box > .exam-search { padding: 0 12px !important; }
html.dn-janela-checkin body .exam-box > [id$="search-empty"] { margin: 0 12px !important; }
html.dn-janela-checkin body .exam-search .form-control { height: var(--dn-altura); min-height: var(--dn-altura); }
html.dn-janela-checkin body .exam-list { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px !important; max-height: 420px; padding: 0 12px !important; align-content: start; }
html.dn-janela-checkin body .exam-list > * { margin: 0 !important; }
html.dn-janela-checkin body .exam-list > .rounded-lg { grid-column: 1 / -1; }
html.dn-janela-checkin body .exam-option { display: block; padding: 10px 12px !important; border: 1px solid rgb(var(--border)) !important; border-radius: var(--radius-md) !important; background: rgb(var(--surface)) !important; box-shadow: none !important; }
html.dn-janela-checkin body .exam-option:hover { border-color: rgb(var(--brand-600)) !important; background: rgb(var(--surface)) !important; }
html.dn-janela-checkin body .exam-option.is-selected { border-color: rgb(var(--brand-600)) !important; background: rgb(var(--brand-50)) !important; box-shadow: inset 0 0 0 1px rgb(var(--brand-600)) !important; }
html.dn-janela-checkin body .exam-option-row { align-items: center !important; gap: 12px !important; }
html.dn-janela-checkin body .exam-option input[type="checkbox"] { margin: 0 !important; }
html.dn-janela-checkin body .exam-name { font-size: .84rem !important; font-weight: 600 !important; line-height: 1.3 !important; color: rgb(var(--text)); }
html.dn-janela-checkin body .exam-option-sub { margin-top: 2px !important; font-size: .72rem !important; line-height: 1.35 !important; color: rgb(var(--muted)) !important; }
html.dn-janela-checkin body .exam-option-price { min-width: 84px; font-size: .9rem !important; font-weight: 700; text-align: right; color: rgb(var(--text)) !important; }
html.dn-janela-checkin body .exam-option-price small { margin-top: 1px; font-size: .68rem !important; font-weight: 500; color: rgb(var(--muted)) !important; }
/* Laboratório, Odontologia e Centro Cirúrgico */
html.dn-janela-checkin body .exam-box > .laboratory-option { grid-column: auto; margin: 0 !important; padding: 12px 14px !important; border: 1px solid rgb(var(--border)) !important; border-radius: var(--radius-md) !important; }
html.dn-janela-checkin body .exam-box > .laboratory-option:nth-of-type(odd), html.dn-janela-checkin body .exam-box > .laboratory-option { margin: 0 !important; }
html.dn-janela-checkin body .exam-box > .laboratory-option:first-of-type { margin-left: 12px !important; }
html.dn-janela-checkin body .exam-box > .laboratory-option:has(+ .laboratory-option:has(.exam-box-title)) { margin-right: 12px !important; }
html.dn-janela-checkin body .exam-box > .laboratory-option:has(.exam-box-title) { grid-column: 1 / -1; margin: 0 12px !important; }
html.dn-janela-checkin body .laboratory-option strong { font-size: .86rem; }
html.dn-janela-checkin body .laboratory-option small { font-size: .74rem !important; }
html.dn-janela-checkin body .laboratory-option .exam-list { padding: 0 !important; max-height: 300px; }
html.dn-janela-checkin body .laboratory-option .exam-search { margin-bottom: 10px !important; }
@media (max-width: 900px) { html.dn-janela-checkin body .exam-list { grid-template-columns: 1fr; } html.dn-janela-checkin body .exam-box > .laboratory-option { grid-column: 1 / -1; margin: 0 12px !important; } }
html.dn-janela-checkin body .exam-box > [id$="cortesia-container"] .courtesy-option, html.dn-janela-checkin body .exam-box .courtesy-option { margin: 0 12px !important; padding: 10px 12px !important; border: 1px solid rgb(var(--border)) !important; border-radius: var(--radius-md) !important; background: rgb(var(--surface)) !important; }
html.dn-janela-checkin body .laboratory-option .courtesy-option { margin: 10px 0 0 !important; }
/* Quadro de exames: o espaço lateral fica no quadro (12px), e tudo dentro dele começa e termina na mesma borda */
html.dn-janela-checkin body .exam-box { padding: 0 12px 12px !important; }
html.dn-janela-checkin body .exam-box > .exam-box-header { margin: 0 -12px !important; }
html.dn-janela-checkin body .exam-box > .exam-search, html.dn-janela-checkin body .exam-box > .exam-list { padding-left: 0 !important; padding-right: 0 !important; }
html.dn-janela-checkin body .exam-box > [id$="search-empty"], html.dn-janela-checkin body .exam-box > .laboratory-option, html.dn-janela-checkin body .exam-box > .laboratory-option:has(.exam-box-title), html.dn-janela-checkin body .exam-box > .laboratory-option:first-of-type, html.dn-janela-checkin body .exam-box .courtesy-option { margin-left: 0 !important; margin-right: 0 !important; }
html.dn-janela-checkin body .exam-box > [id$="cortesia-container"] .courtesy-option { margin-left: 0 !important; margin-right: 0 !important; }
/* Quadro de exames separado em partes: uma linha com título antes de Laboratório e odontologia e antes do Centro
   Cirúrgico (que deixa de ser uma caixa dentro do quadro) */
html.dn-janela-checkin body .exam-box > .cw-exam-divisor, html.dn-janela-checkin body .exam-box > .cw-centro-cirurgico .exam-box-title { grid-column: 1 / -1; margin: 4px 0 0 !important; padding-top: 14px; border-top: 1px solid rgb(var(--border)); font-size: .8rem !important; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: rgb(var(--text)) !important; }
html.dn-janela-checkin body .exam-box > .cw-centro-cirurgico { grid-column: 1 / -1; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: none !important; }
html.dn-janela-checkin body .exam-box > .cw-centro-cirurgico .exam-box-title { margin-bottom: 4px !important; }
html.dn-janela-checkin body .exam-box > .cw-centro-cirurgico > small { margin-bottom: 10px !important; font-size: .76rem !important; }
html.dn-janela-checkin body .exam-box.cw-falta > .cw-exam-divisor, html.dn-janela-checkin body .exam-box.cw-falta > .cw-centro-cirurgico .exam-box-title { color: rgb(var(--danger)) !important; }
/* Janela de check-in: rodapé sem o total (fica só no resumo); no resumo, total do mesmo tamanho dos outros dados e sem
   a contagem de procedimentos */
html.dn-janela-checkin body .cw-nav-total { display: none !important; }
html.dn-janela-checkin body .cw-resumo-itens-head [data-cw-resumo-qtd] { display: none !important; }
html.dn-janela-checkin body .cw-resumo-card > .cw-total > strong { font-size: .9rem !important; font-weight: 600 !important; }
/* Janela de check-in: linha separando o cabeçalho (nome, selos, matrícula) do conteúdo */
.dn-janela-checkin-topo { padding-bottom: 1rem; border-bottom: 1px solid rgb(var(--border)) !important; }
html.dn-janela-checkin body main.dn-pagina { padding-top: 1.1rem !important; }
/* Janela de check-in: rodapé só com "Finalizar check-in" (sem Voltar)  */
html.dn-janela-checkin body .cw-nav > [data-cw-voltar] { display: none !important; }
/* Filtros com ícone dentro do campo (relatórios de Pagamentos, eNotas, Reajustes...): o texto começa depois do ícone */
html body .ui-form-icon { position: relative; }
html body .ui-form-icon > i { left: 12px !important; z-index: 1; }
html body .ui-form-icon > input, html body .ui-form-icon > select, html body .ui-form-icon > .form-control, html body .ui-form-icon > .form-select { padding-left: 38px !important; }
/* Janelas do menu (Aniversariantes, Diário de caixa e relatórios): o fundo escuro cobre também o menu lateral */
html body #modal-aniversariantes, html body #modal-diario-caixa, html body #app-modal { z-index: 1070 !important; }
/* Relatórios: botões Filtrar/Exportar dentro da grade dos filtros, com a largura e a altura de um campo */
html body .dn-filtro-acao { display: flex; flex-direction: column; justify-content: flex-end; min-width: 0; }
html body .dn-filtro-acao > .ui-filter-label { visibility: hidden; }
html body .dn-filtro-acao > .ui-btn, html body .dn-filtro-acao > button, html body .dn-filtro-acao > a { width: 100% !important; min-width: 0 !important; height: 38px; min-height: 38px !important; margin: 0 !important; justify-content: center; }
@media (min-width: 1100px) { html body .dn-filtros-grade { grid-template-columns: repeat(var(--dn-filtro-colunas, 6), minmax(0, 1fr)) !important; } }
@media (max-width: 1099px) { html body .dn-filtros-grade > .dn-filtro-acao { grid-column-start: auto !important; } }
/* Botões dos filtros com a mesma altura dos campos e na mesma linha (alinhados pela base) */
html body .dn-filtros-grade { align-items: end !important; }
html body .dn-filtro-acao > .ui-btn, html body .dn-filtro-acao > button, html body .dn-filtro-acao > a, html body .dn-filtro-acao-botoes > * { height: 39px !important; min-height: 39px !important; max-height: none !important; padding-top: 0 !important; padding-bottom: 0 !important; white-space: nowrap; }
html body .dn-filtro-acao-botoes { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
html body .dn-filtro-acao-botoes > * { width: 100% !important; min-width: 0 !important; margin: 0 !important; padding-left: 6px !important; padding-right: 6px !important; justify-content: center; overflow: hidden; }
html body .dn-filtro-acao--juntos #exportar-texto { font-size: 0; }
html body .dn-filtro-acao--juntos #exportar-texto::after { content: "Excel"; font-size: .8rem; }
/* Filtros dos relatórios: campos e botões com a mesma altura na tela (40px, já descontada a redução da página) */
html body .dn-filtros-grade .ui-form-icon > input, html body .dn-filtros-grade .ui-form-icon > select,
html body .dn-filtro-acao > .ui-btn, html body .dn-filtro-acao > button, html body .dn-filtro-acao > a, html body .dn-filtro-acao-botoes > * { height: calc(40px / var(--dn-escala, 1)) !important; min-height: calc(40px / var(--dn-escala, 1)) !important; box-sizing: border-box !important; }
html body .dn-filtro-acao-botoes > * { display: inline-flex !important; align-items: center !important; line-height: 1 !important; }
@media (min-width: 1100px) { html body .dn-filtros-grade > .dn-filtro-esticado { grid-column: span var(--dn-filtro-span, 1) / span var(--dn-filtro-span, 1) !important; } }
/* Janela do Diário de caixa no mesmo visual da janela de check-in: cabeçalho com ícone de 44px e linha embaixo,
   seções com título pequeno em maiúsculas (sem os números), opções como linhas com borda e sem ícones (a escolhida fica
   com a borda e o nome em azul) e rodapé com linha em cima e botões de 44px */
html body #modal-diario-caixa .caixa-modal-card { max-width: 860px !important; border-radius: var(--radius-lg) !important; border: 1px solid rgb(var(--border)) !important; box-shadow: var(--shadow-md, 0 12px 32px rgba(15, 23, 42, .18)) !important; }
html body #modal-diario-caixa .caixa-modal-cabecalho { display: flex; align-items: flex-start; gap: .85rem; padding: 1.25rem 1.4rem 1rem !important; border-bottom: 1px solid rgb(var(--border)) !important; }
html body #modal-diario-caixa .caixa-modal-titulo { display: flex; align-items: flex-start; gap: .85rem; flex: 1; }
html body #modal-diario-caixa .caixa-modal-icone { width: 44px !important; height: 44px !important; border-radius: var(--radius-md) !important; background: rgb(var(--brand-50)) !important; color: rgb(var(--brand-600)) !important; font-size: 1.3rem !important; display: inline-flex; align-items: center; justify-content: center; flex: none; }
html body #modal-diario-caixa #diario-caixa-titulo { margin: 0 !important; font-size: 1.1rem !important; font-weight: 700 !important; color: rgb(var(--text)) !important; }
html body #modal-diario-caixa .caixa-modal-titulo p { margin: .15rem 0 0 !important; font-size: .84rem !important; color: rgb(var(--muted)) !important; }
html body #modal-diario-caixa .caixa-modal-cabecalho > button { width: 38px !important; height: 38px !important; border-radius: 999px !important; }
html body #modal-diario-caixa .caixa-modal-cabecalho > button:hover { background: rgb(var(--surface-strong)) !important; color: rgb(var(--text)) !important; }
html body #modal-diario-caixa .caixa-modal-corpo { display: flex; flex-direction: column; gap: 0 !important; padding: 0 1.4rem !important; }
html body #modal-diario-caixa .caixa-modal-corpo > * { margin: 0 !important; padding: 1.1rem 0 !important; border: 0 !important; }
html body #modal-diario-caixa .caixa-modal-corpo > * + * { border-top: 1px solid rgb(var(--border)) !important; }
html body #modal-diario-caixa .caixa-passo { display: none !important; }
html body #modal-diario-caixa .caixa-legenda { display: block !important; float: none; width: 100%; margin: 0 0 .6rem !important; padding: 0 !important; font-size: .8rem !important; font-weight: 700 !important; letter-spacing: .04em; text-transform: uppercase; color: rgb(var(--muted)) !important; }
html body #modal-diario-caixa .caixa-legenda-dica { margin-left: 6px; font-size: .74rem; font-weight: 500; letter-spacing: 0; text-transform: none; color: rgb(var(--muted)); }
html body #modal-diario-caixa .caixa-grade { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: .6rem !important; }
html body #modal-diario-caixa .caixa-opcao input { position: absolute; opacity: 0; pointer-events: none; }
html body #modal-diario-caixa .caixa-opcao-box { display: flex !important; align-items: center; gap: .6rem; height: 100%; min-height: 0 !important; padding: .75rem .9rem !important; border: 1px solid rgb(var(--border)) !important; border-radius: var(--radius-md) !important; background: rgb(var(--surface)) !important; box-shadow: none !important; cursor: pointer; }
html body #modal-diario-caixa .caixa-opcao-icone, html body #modal-diario-caixa .caixa-opcao-check { display: none !important; }
html body #modal-diario-caixa .caixa-opcao-texto strong { display: block; font-size: .9rem !important; font-weight: 600 !important; color: rgb(var(--text)) !important; }
html body #modal-diario-caixa .caixa-opcao-texto small { display: block; margin-top: 2px; font-size: .76rem !important; color: rgb(var(--muted)) !important; }
html body #modal-diario-caixa .caixa-opcao:hover .caixa-opcao-box { border-color: rgb(var(--brand-600)) !important; background: rgb(var(--surface)) !important; }
html body #modal-diario-caixa .caixa-opcao input:checked + .caixa-opcao-box { border-color: rgb(var(--brand-600)) !important; background: rgb(var(--surface)) !important; box-shadow: inset 0 0 0 1px rgb(var(--brand-600)) !important; }
html body #modal-diario-caixa .caixa-opcao input:checked + .caixa-opcao-box strong { color: rgb(var(--brand-600)) !important; }
html body #modal-diario-caixa .caixa-opcao input:focus-visible + .caixa-opcao-box { outline: 2px solid rgb(var(--brand-600)); outline-offset: 2px; }
html body #modal-diario-caixa .caixa-divisor { margin: .9rem 0 .5rem !important; font-size: .7rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; color: rgb(var(--muted)); }
html body #modal-diario-caixa .caixa-data { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
html body #modal-diario-caixa .caixa-data input[type="date"] { width: 220px; height: 40px !important; min-height: 40px !important; padding: 0 12px !important; border: 1px solid rgb(var(--border)) !important; border-radius: 6px !important; background: rgb(var(--surface)) !important; font-size: .9rem; }
html body #modal-diario-caixa .caixa-data input[type="date"]:disabled { background: rgb(var(--surface-soft)) !important; color: rgb(var(--muted)); }
html body #modal-diario-caixa [data-caixa-ajuda] { margin: 0 !important; font-size: .78rem !important; color: rgb(var(--muted)) !important; }
html body #modal-diario-caixa .caixa-modal-rodape, html body #modal-diario-caixa .caixa-modal-acoes { display: flex; justify-content: flex-end; gap: .5rem; margin: 0 !important; padding: 1rem 1.4rem !important; border-top: 1px solid rgb(var(--border)) !important; background: rgb(var(--surface)) !important; border-radius: 0 0 var(--radius-lg) var(--radius-lg); }
html body #modal-diario-caixa .caixa-modal-rodape .ui-btn, html body #modal-diario-caixa .caixa-modal-acoes .ui-btn, html body #modal-diario-caixa #diarioCaixaBtn { min-height: 44px !important; height: 44px; min-width: 130px; padding: 0 1.1rem; font-size: .9rem; border-radius: 6px !important; }
@media (max-width: 760px) { html body #modal-diario-caixa .caixa-grade { grid-template-columns: 1fr !important; } }
/* Diário de caixa: título da seção dentro do espaço da seção (legend solto), com a linha separando as seções */
html body #modal-diario-caixa fieldset.caixa-grupo > legend.caixa-legenda { float: left !important; }
html body #modal-diario-caixa fieldset.caixa-grupo > legend.caixa-legenda + * { clear: both; }
html body #modal-diario-caixa .caixa-modal-corpo > fieldset[hidden] { display: none !important; }
/* Diário de caixa: a última opção de uma linha incompleta estica até o fim (na grade com "Todas as unidades", que
   ocupa a primeira linha inteira, a contagem começa depois dela) */
html body #modal-diario-caixa .caixa-grade:not(:has(> .caixa-opcao-destaque)) > .caixa-opcao:last-child:nth-child(3n+1) { grid-column: 1 / -1; }
html body #modal-diario-caixa .caixa-grade:not(:has(> .caixa-opcao-destaque)) > .caixa-opcao:last-child:nth-child(3n+2) { grid-column: span 2; }
html body #modal-diario-caixa .caixa-grade:has(> .caixa-opcao-destaque) > .caixa-opcao-destaque { grid-column: 1 / -1; }
html body #modal-diario-caixa .caixa-grade:has(> .caixa-opcao-destaque) > .caixa-opcao:last-child:nth-child(3n+2) { grid-column: 1 / -1; }
html body #modal-diario-caixa .caixa-grade:has(> .caixa-opcao-destaque) > .caixa-opcao:last-child:nth-child(3n) { grid-column: span 2; }
@media (max-width: 760px) { html body #modal-diario-caixa .caixa-grade > .caixa-opcao { grid-column: auto !important; } }
/* Diário de caixa: data na largura toda, com a explicação embaixo */
html body #modal-diario-caixa .caixa-data { display: block !important; }
html body #modal-diario-caixa .caixa-data input[type="date"] { display: block; width: 100% !important; }
html body #modal-diario-caixa .caixa-data [data-caixa-ajuda] { margin-top: 6px !important; }
/* Diário de caixa: unidades todas do mesmo tamanho, alinhadas nas três colunas (sem esticar a última) */
html body #modal-diario-caixa .caixa-grade > .caixa-opcao:not(.caixa-opcao-destaque) { grid-column: auto !important; }
html body #modal-diario-caixa .caixa-grade > .caixa-opcao:not(.caixa-opcao-destaque) .caixa-opcao-box { height: 48px !important; min-height: 48px !important; padding-top: 0 !important; padding-bottom: 0 !important; }
html body #modal-diario-caixa .caixa-grade-tipos > .caixa-opcao .caixa-opcao-box { height: auto !important; min-height: 0 !important; padding: .75rem .9rem !important; }
html body #modal-diario-caixa .caixa-grade { grid-auto-rows: auto !important; align-items: stretch !important; }
html body #modal-diario-caixa .caixa-grade > .caixa-opcao { display: block; margin: 0 !important; padding: 0 !important; height: auto !important; min-height: 0 !important; }
/* Relatórios: lista com a altura da tela (calculada no header), rolando por dentro com o cabeçalho da tabela fixo */
html body section.dn-relatorio .ui-table-wrap.dn-lista-altura { overflow: auto !important; max-height: none !important; }
html body section.dn-relatorio .ui-table-wrap.dn-lista-altura thead th { position: sticky; top: 0; z-index: 2; background: rgb(var(--surface-soft)); }
/* Relatórios sem barra de rolagem: só as linhas que cabem aparecem (o resto fica nas próximas partes da paginação) */
html body section.dn-relatorio tr.dn-parte-oculta { display: none !important; }
html body section.dn-relatorio .ui-table-wrap.dn-lista-altura { overflow-x: auto !important; overflow-y: hidden !important; }
html body section.dn-relatorio .dn-parte-original { display: none !important; }
html body section.dn-relatorio .dn-partes { display: inline-flex; align-items: center; gap: 6px; }
html body section.dn-relatorio .dn-partes .ui-page-link { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 0; border: 1px solid rgb(var(--border)); border-radius: 6px; background: rgb(var(--surface)); color: rgb(var(--text)); cursor: pointer; }
html body section.dn-relatorio .dn-partes .ui-page-link:disabled { opacity: .4; cursor: default; }
html body section.dn-relatorio .dn-partes .ui-page-current { padding: 0 8px; font-size: .8rem; color: rgb(var(--text)); }
/* Ações das listas dos relatórios iguais às de Clientes: ícones de 32px lado a lado, também em <button> */
html body section.dn-relatorio .ui-acoes-tabela { display: inline-flex; align-items: center; justify-content: center; gap: 6px; flex-wrap: nowrap; }
html body section.dn-relatorio .ui-acoes-tabela form { display: inline-flex; margin: 0; }
html body section.dn-relatorio .ui-acao-icone { width: 32px; height: 32px; min-height: 32px; padding: 0; cursor: pointer; }
html body button.ui-acao-icone:hover { border-color: rgb(var(--brand-500)); background: rgb(var(--brand-50)); color: rgb(var(--brand-700)); transform: translateY(-1px); }
html body .ui-acao-icone.dn-acao-perigo { color: rgb(var(--danger)); }
html body .ui-acao-icone.dn-acao-perigo:hover { border-color: rgb(var(--danger)); background: rgb(var(--danger) / .08); color: rgb(var(--danger)); }
/* Listas dos relatórios cabem na largura da tela (sem barra horizontal): o texto quebra linha e as células ficam
   com o mesmo espaçamento da lista de Clientes */
html body section.dn-relatorio .ui-table-wrap.dn-lista-altura { overflow: hidden !important; }
html body section.dn-relatorio .ui-table-wrap.dn-lista-altura > table { width: 100% !important; min-width: 0 !important; table-layout: auto; }
html body section.dn-relatorio .ui-table-wrap.dn-lista-altura th, html body section.dn-relatorio .ui-table-wrap.dn-lista-altura td { padding: 6px 8px !important; white-space: normal !important; overflow-wrap: anywhere; word-break: normal; }
/* Comissões: resumo por vendedor e lista de vendas lado a lado no mesmo cartão */
html body .dn-comissoes-listas { display: grid; grid-template-columns: minmax(0, 380px) minmax(0, 1fr); gap: 16px; align-items: start; }
html body .dn-comissoes-listas .dn-lista-bloco { min-width: 0; }
html body .dn-comissoes-listas .dn-lista-titulo { margin: 0 0 8px; font-size: .8rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: rgb(var(--muted)); }
@media (max-width: 1100px) { html body .dn-comissoes-listas { grid-template-columns: 1fr; } }
/* Comissões: só a lista escolhida em "Visualização", na largura toda */
html body .dn-comissoes-listas.is-uma-lista { grid-template-columns: 1fr; }
html body .dn-comissoes-listas .dn-lista-bloco[hidden] { display: none !important; }
/* Configurações: a área da lista vai até o fim da tela mesmo sem registros (o aviso "Nenhum registro" fica no meio) */
#config-page.cfg-lista-pagina .cfg-lista-form > .dn-lista-corpo { flex: 1 1 auto; display: flex; flex-direction: column; min-height: 0; }
#config-page.cfg-lista-pagina .cfg-lista-form > .dn-lista-corpo > .ui-table-wrap { flex: 1 1 auto; display: flex; flex-direction: column; min-height: 0; }
#config-page.cfg-lista-pagina .cfg-tabela:has(td.cfg-vazio) { flex: 1 1 auto; height: 100%; }
#config-page.cfg-lista-pagina .cfg-tabela:has(td.cfg-vazio) tbody tr:has(> td.cfg-vazio) { height: 100%; }
#config-page.cfg-lista-pagina td.cfg-vazio { vertical-align: middle; }
/* Configurações: ícone de cada item centralizado na altura do título + descrição */
html body .cfg-linha-texto { align-items: center !important; }
html body .cfg-linha-icone { display: inline-flex; align-items: center; justify-content: center; align-self: center; }
/* Configurações: listas que cabem na tela, como nos relatórios (só as linhas que cabem; o resto nas setas de baixo) */
#config-page tr.dn-parte-oculta { display: none !important; }
#config-page .dn-parte-original { display: none !important; }
#config-page .cfg-lista-form .ui-table-wrap.dn-lista-altura { flex: 0 0 auto !important; overflow: hidden !important; }
#config-page .dn-partes { display: inline-flex; align-items: center; gap: 6px; }
#config-page .dn-partes .ui-page-link { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 0; border: 1px solid rgb(var(--border)); border-radius: 6px; background: rgb(var(--surface)); color: rgb(var(--text)); cursor: pointer; }
#config-page .dn-partes .ui-page-link:disabled { opacity: .4; cursor: default; }
#config-page .dn-partes .ui-page-current { padding: 0 8px; font-size: .8rem; color: rgb(var(--text)); }
#config-page .dn-resumo .dn-partes-casa { margin-left: auto; display: inline-flex; align-items: center; }
#config-page .dn-resumo .dn-partes-casa > .ui-page-current.dn-parte-original { display: none !important; }
/* Lista vazia: o aviso "Nenhum registro" ocupa a altura toda da lista */
#config-page .ui-table-wrap.dn-lista-altura td.cfg-vazio { height: calc(var(--dn-lista-h, 400px) - 44px); }
