* { box-sizing: border-box; margin: 0; padding: 0; }
body {
    font-family: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    background: #f4f2ee; color: #1a1a2e; min-height: 100vh;
}

/* cores da marca (Dra. Maria Claudia): dourado, azul escuro, bege */
:root {
    --ouro: #C9A96E;
    --azul: #1a1a2e;
    --bege: #E8D5B0;
}

.conteudo { max-width: 1100px; margin: 0 auto; padding: 28px 32px; }
h1 { font-size: 24px; margin-bottom: 4px; }
.subtitulo { color: #667; margin-bottom: 20px; }
.secao { font-size: 16px; margin: 22px 0 12px; color: var(--azul); }

/* ---------- Flash ---------- */
.flash { padding: 10px 14px; border-radius: 8px; margin-bottom: 14px; font-size: 14px; }
.flash.ok { background: #e4f7ee; color: #1b6b47; }
.flash.erro { background: #fdeaea; color: #a12; }

/* ---------- Login ---------- */
.login-caixa {
    max-width: 360px; margin: 60px auto; background: #fff;
    padding: 36px 32px; border-radius: 14px; box-shadow: 0 6px 30px rgba(0,0,0,.08);
    text-align: center;
}
.login-logo { width: 240px; max-width: 80%; height: auto; display: block; margin: 0 auto 28px; }
.form-login { display: flex; flex-direction: column; text-align: left; gap: 4px; }
.form-login label { font-size: 12px; color: #667; margin-top: 10px; }
.form-login input {
    border: 1px solid #ddd; border-radius: 8px; padding: 11px; font-size: 14px; outline: none;
}
.form-login input:focus { border-color: var(--ouro); }
.form-login button {
    margin-top: 20px; background: var(--azul); color: #fff; border: none;
    border-radius: 8px; padding: 12px; font-size: 15px; font-weight: 600; cursor: pointer;
}
.form-login button:hover { background: #2a2a44; }

/* ---------- Cards de modulos ---------- */
.cards-modulos { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; }
.card-modulo { background: #fff; border-radius: 12px; padding: 16px; border: 1px solid #eee; }
.card-modulo.ativo { border-left: 4px solid var(--ouro); }
.card-modulo.inativo { opacity: .6; }
.card-topo { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
.card-nome { font-weight: 600; }
.card-status { font-size: 11px; padding: 2px 8px; border-radius: 10px; background: #eee; color: #667; }
.card-modulo.ativo .card-status { background: var(--ouro); color: #fff; }
.card-desc { font-size: 13px; color: #778; }

/* ---------- Bloco e tabela ---------- */
.bloco { background: #fff; border-radius: 12px; padding: 20px; margin-bottom: 18px; border: 1px solid #eee; }
.form-inline { display: flex; gap: 10px; flex-wrap: wrap; }
.form-inline input { flex: 1; min-width: 180px; border: 1px solid #ddd; border-radius: 8px; padding: 10px; font-size: 14px; }
.form-inline button, .bloco button {
    background: var(--azul); color: #fff; border: none; border-radius: 8px;
    padding: 10px 20px; font-weight: 600; cursor: pointer;
}
.tabela { width: 100%; border-collapse: collapse; font-size: 14px; }
.tabela th, .tabela td { text-align: left; padding: 10px 8px; border-bottom: 1px solid #eee; }
.tabela th { color: #667; font-weight: 600; font-size: 12px; }

/* ---------- Modulo Pacientes ---------- */
.cabecalho-lista { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.btn-novo { background: var(--ouro); color: #fff; text-decoration: none; padding: 10px 18px; border-radius: 8px; font-weight: 600; font-size: 14px; }
.btn-novo:hover { background: #b8975d; }
.btn-voltar { color: var(--azul); text-decoration: none; font-size: 14px; }

.barra-busca { display: flex; gap: 10px; margin-bottom: 16px; }
.barra-busca input { flex: 1; border: 1px solid #ddd; border-radius: 8px; padding: 10px 14px; font-size: 14px; }
.barra-busca button { background: var(--azul); color: #fff; border: none; border-radius: 8px; padding: 10px 20px; cursor: pointer; }

.linha-click { cursor: pointer; }
.linha-click:hover { background: #faf7f0; }
.vazio-tabela { text-align: center; color: #999; padding: 24px; }

/* Formulario de ficha */
.form-ficha { display: flex; flex-direction: column; gap: 16px; }
.grupo { background: #fff; border-radius: 12px; padding: 20px; border: 1px solid #eee; }
.grupo .secao { margin: 0 0 14px; border-bottom: 1px solid #f0f0f0; padding-bottom: 8px; }
.linha-info { display: flex; gap: 24px; font-size: 13px; color: #778; margin-bottom: 14px; }
.campos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.campo { display: flex; flex-direction: column; gap: 4px; }
.campo label { font-size: 12px; color: #667; }
.campo input, .campo select, .campo textarea {
    border: 1px solid #ddd; border-radius: 8px; padding: 9px 11px; font-size: 14px;
    font-family: inherit; outline: none;
}
.campo input:focus, .campo select:focus, .campo textarea:focus { border-color: var(--ouro); }
.campo.grande { grid-column: span 2; }
.campo.pequeno { grid-column: span 1; }
.campo.total { grid-column: 1 / -1; }

.acoes-form { display: flex; gap: 12px; }
.btn-salvar { background: var(--azul); color: #fff; border: none; border-radius: 8px; padding: 12px 28px; font-weight: 600; font-size: 15px; cursor: pointer; }
.btn-salvar:hover { background: #2a2a44; }
.btn-excluir { background: transparent; color: #c0392b; border: 1px solid #c0392b; border-radius: 8px; padding: 12px 20px; font-size: 14px; cursor: pointer; }
.btn-excluir:hover { background: #c0392b; color: #fff; }

@media (max-width: 800px) {
    .campos { grid-template-columns: repeat(2, 1fr); }
    .campo.grande, .campo.pequeno { grid-column: span 2; }
}

.card-link { text-decoration: none; color: inherit; display: block; }
.card-link:hover { box-shadow: 0 3px 12px rgba(0,0,0,.1); }

/* ---------- Config de origens ---------- */
.acoes-cabecalho { display: flex; gap: 10px; align-items: center; }
.btn-config { color: var(--azul); text-decoration: none; font-size: 14px; border: 1px solid var(--azul); padding: 9px 14px; border-radius: 8px; }
.btn-config:hover { background: var(--azul); color: #fff; }
.lista-opcoes { list-style: none; }
.lista-opcoes li { display: flex; justify-content: space-between; align-items: center; padding: 10px 4px; border-bottom: 1px solid #f0f0f0; }
.btn-remover-mini { background: transparent; color: #c0392b; border: none; cursor: pointer; font-size: 13px; }
.btn-remover-mini:hover { text-decoration: underline; }

/* ---------- Perfis e permissoes ---------- */
.perfil-cabecalho { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.perfil-nome { font-size: 16px; font-weight: 600; border: 1px solid #ddd; border-radius: 8px; padding: 8px 12px; }
.perfil-nome[readonly] { background: #f7f7f7; border-color: #eee; }
.tag-protegido { font-size: 11px; background: var(--bege); color: #6b5628; padding: 2px 10px; border-radius: 10px; }
.matriz-perms { width: 100%; border-collapse: collapse; font-size: 13px; }
.matriz-perms th { text-align: center; padding: 8px; color: #667; font-weight: 600; border-bottom: 2px solid #eee; }
.matriz-perms th:first-child { text-align: left; }
.matriz-perms td { padding: 7px 8px; border-bottom: 1px solid #f2f2f2; }
.mod-nome { font-weight: 500; color: var(--azul); }
.cel-check { text-align: center; }
.cel-check input { width: 18px; height: 18px; cursor: pointer; accent-color: var(--ouro); }
.perfil-acoes { display: flex; gap: 10px; margin-top: 14px; }
.btn-salvar-mini { background: var(--azul); color: #fff; border: none; border-radius: 8px; padding: 9px 18px; font-weight: 600; cursor: pointer; }
.btn-salvar-mini:hover { background: #2a2a44; }
.nota-protegido { font-size: 12px; color: #889; margin-top: 12px; }

/* ---------- Em construcao ---------- */
.construcao-caixa {
    background: #fff; border-radius: 14px; padding: 48px; text-align: center;
    border: 1px solid #eee; max-width: 480px; margin: 20px auto;
}
.construcao-icone { font-size: 42px; margin-bottom: 12px; }
.construcao-sub { color: #889; font-size: 14px; margin: 8px 0 20px; }


/* ============================================================
   LAYOUT COM SIDEBAR (fixa) + conteudo deslocado
   ============================================================ */
.sidebar {
    width: 240px; background: var(--azul); color: #fff;
    position: fixed; top: 0; left: 0; height: 100vh; overflow-y: auto; z-index: 40;
    display: flex; flex-direction: column;
}
.sidebar-topo { display: flex; align-items: center; justify-content: center; padding: 18px 20px 14px; border-bottom: 1px solid rgba(255,255,255,.07); margin-bottom: 4px; }
.sidebar-marca { display: flex; flex-direction: column; align-items: center; gap: 5px; text-decoration: none; }
.logo-img { width: 74px; height: auto; display: block; }
.logo-tagline { color: #8a8ba0; font-size: 8px; text-transform: uppercase; letter-spacing: 1.2px; text-align: center; }
.sidebar-toggle { display: none; background: transparent; border: none; color: #fff; font-size: 18px; cursor: pointer; }
.sidebar-nav { display: flex; flex-direction: column; padding: 8px 0 24px; }
.side-secao { font-size: 11px; text-transform: uppercase; letter-spacing: .5px; color: #8a8ba0; padding: 16px 20px 6px; font-weight: 600; }
.side-item { display: flex; align-items: center; gap: 12px; padding: 10px 20px; color: #cfd0d8; text-decoration: none; font-size: 14px; border-left: 3px solid transparent; }
.side-item:hover { background: rgba(255,255,255,.06); color: #fff; }
.side-item.ativo { background: rgba(201,169,110,.15); color: var(--ouro); border-left-color: var(--ouro); }
.side-item .ico { width: 20px; text-align: center; font-size: 15px; opacity: .9; }
.side-item .txt { white-space: nowrap; }

/* topo de contexto (barra fina no topo da area principal) */
.topo-contexto {
    height: 56px; background: #fff; border-bottom: 1px solid #eaeaea;
    display: flex; align-items: center; padding: 0 24px;
    position: fixed; top: 0; left: 240px; right: 0; z-index: 30;
}
.topo-user { margin-left: auto; display: flex; align-items: center; gap: 14px; font-size: 14px; }
.user-nome { color: var(--azul); font-weight: 500; }
.topo-user .sair { color: var(--ouro); text-decoration: none; }
.topo-user .sair:hover { text-decoration: underline; }
.sidebar-toggle-mobile { display: none; background: transparent; border: none; font-size: 20px; cursor: pointer; color: var(--azul); }

/* quando logado (com sidebar), empurra o conteudo pra direita e pra baixo do topo */
body.com-sidebar .conteudo { margin-left: 240px; padding-top: 84px; max-width: none; }
body.com-sidebar .conteudo > * { max-width: 1100px; }

/* sidebar recolhida (desktop) */
body.sidebar-recolhida .sidebar { width: 64px; }
body.sidebar-recolhida .sidebar .txt,
body.sidebar-recolhida .sidebar .side-secao,
body.sidebar-recolhida .sidebar-marca { display: none; }
body.sidebar-recolhida .side-item { justify-content: center; padding: 12px 0; }
body.sidebar-recolhida .topo-contexto { left: 64px; }
body.sidebar-recolhida .conteudo { margin-left: 64px; }

/* responsivo */
@media (max-width: 768px) {
    .sidebar { left: -240px; transition: left .25s; }
    body.sidebar-aberta .sidebar { left: 0; }
    .topo-contexto { left: 0; }
    body.com-sidebar .conteudo { margin-left: 0; }
    .sidebar-toggle-mobile { display: block; }
}

/* ---------- Grupos accordion na sidebar ---------- */
.grupo-menu { display: flex; flex-direction: column; }
.grupo-cab {
    display: flex; align-items: center; justify-content: space-between;
    background: transparent; border: none; color: #cfd0d8; cursor: pointer;
    padding: 11px 20px; font-size: 14px; font-family: inherit; width: 100%; text-align: left;
}
.grupo-cab:hover { background: rgba(255,255,255,.06); color: #fff; }
.grupo-cab > span:first-child { display: flex; align-items: center; gap: 12px; }
.grupo-cab .seta { font-size: 11px; transition: transform .2s; opacity: .7; }
.grupo-menu.aberto .grupo-cab .seta { transform: rotate(180deg); }
.grupo-itens { display: none; flex-direction: column; padding-bottom: 4px; }
.grupo-menu.aberto .grupo-itens { display: flex; }
.grupo-itens .side-item { padding-left: 52px; font-size: 13.5px; }

/* item solo (Painel) mantem o icone alinhado com os grupos */
.side-item.solo { padding: 11px 20px; }
.side-item.solo .ico { width: 20px; text-align: center; }

.nota-campo { font-size: 12px; color: #889; margin: -6px 0 12px; }

/* ---------- Tabela de horarios por dia ---------- */
.tabela-horarios { width: 100%; border-collapse: collapse; max-width: 560px; }
.tabela-horarios th { text-align: left; font-size: 12px; color: #667; font-weight: 600; padding: 6px 10px; border-bottom: 2px solid #eee; }
.tabela-horarios td { padding: 8px 10px; border-bottom: 1px solid #f2f2f2; }
.tabela-horarios .dia-nome { font-weight: 500; color: var(--azul); }
.tabela-horarios .col-fechado { text-align: center; }
.tabela-horarios .col-fechado input { width: 17px; height: 17px; cursor: pointer; accent-color: var(--ouro); }
.tabela-horarios select { border: 1px solid #ddd; border-radius: 6px; padding: 6px 8px; font-size: 13px; }
.tabela-horarios tr.linha-fechada select { opacity: .4; pointer-events: none; }

/* ---------- Seletor de clinica (topo) ---------- */
.seletor-clinica { position: relative; margin-left: 8px; }
.seletor-btn {
    display: flex; align-items: center; gap: 8px; background: #f4f2ee; border: 1px solid #e0dcd3;
    border-radius: 8px; padding: 7px 14px; cursor: pointer; font-size: 14px; color: var(--azul); font-family: inherit;
}
.seletor-btn:hover { border-color: var(--ouro); }
.seletor-label { font-weight: 600; }
.seletor-seta { font-size: 10px; opacity: .6; }
.badge-papel { font-size: 10px; background: var(--bege); color: #6b5628; padding: 1px 7px; border-radius: 8px; text-transform: capitalize; }
.seletor-lista {
    display: none; position: absolute; top: 110%; left: 0; background: #fff;
    min-width: 240px; box-shadow: 0 8px 24px rgba(0,0,0,.15); border-radius: 8px; padding: 6px 0; z-index: 60;
}
.seletor-lista.aberto { display: block; }
.seletor-item { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 16px; color: var(--azul); text-decoration: none; font-size: 14px; }
.seletor-item:hover { background: #faf7f0; }
.seletor-item.ativo { background: rgba(201,169,110,.12); font-weight: 600; }

/* ---------- Gestao de usuarios ---------- */
.pill-ok { font-size: 11px; background: #e4f7ee; color: #1b6b47; padding: 2px 10px; border-radius: 10px; }
.pill-off { font-size: 11px; background: #f0f0f0; color: #888; padding: 2px 10px; border-radius: 10px; }
.tabela-acesso { width: 100%; max-width: 520px; border-collapse: collapse; }
.tabela-acesso th { text-align: left; font-size: 12px; color: #667; font-weight: 600; padding: 8px 10px; border-bottom: 2px solid #eee; }
.tabela-acesso td { padding: 10px; border-bottom: 1px solid #f2f2f2; }
.tabela-acesso .col-check { text-align: center; }
.tabela-acesso .col-check input { width: 18px; height: 18px; cursor: pointer; accent-color: var(--ouro); }
.check-inline { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--azul); cursor: pointer; margin-bottom: 4px; }
.check-inline input { width: 17px; height: 17px; accent-color: var(--ouro); }

/* ---------- Cadastros: procedimento, convenio, profissional ---------- */
.tag-tipo { font-size: 11px; padding: 2px 10px; border-radius: 10px; font-weight: 600; }
.tipo-odontologico { background: #e3f0ff; color: #1a5fa8; }
.tipo-harmonizacao_facial { background: #f7efd8; color: #9a7d2e; }
.tipo-harmonizacao_corporal { background: #fbe4ef; color: #b02f72; }
.tipo-clinica_medica { background: #dcf3e3; color: #17803f; }
.tipo-hof { background: rgba(201,169,110,.18); color: #8a6d1f; }
.tipo-estetico { background: #fce8f3; color: #a8195f; }
.tipo-clinico { background: #eef0f2; color: #556; }

.checks-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.check-card { display: flex; align-items: center; gap: 9px; padding: 11px 14px; border: 1px solid #e0dcd3; border-radius: 8px; cursor: pointer; font-size: 13.5px; color: var(--azul); }
.check-card:hover { border-color: var(--ouro); }
.check-card input { width: 17px; height: 17px; accent-color: var(--ouro); }

.tabela-precos, .tabela-excecoes { width: 100%; max-width: 560px; border-collapse: collapse; }
.tabela-precos th, .tabela-excecoes th { text-align: left; font-size: 12px; color: #667; font-weight: 600; padding: 8px 10px; border-bottom: 2px solid #eee; }
.tabela-precos td, .tabela-excecoes td { padding: 8px 10px; border-bottom: 1px solid #f2f2f2; }
.input-preco { width: 120px; text-align: right; }
.sub-secao { font-size: 13px; color: var(--azul); margin: 16px 0 8px; font-weight: 600; }
.btn-add-linha { margin-top: 10px; background: none; border: 1px dashed var(--ouro); color: #8a6d1f; padding: 8px 16px; border-radius: 8px; cursor: pointer; font-size: 13px; font-family: inherit; }
.btn-add-linha:hover { background: rgba(201,169,110,.08); }
.btn-remove-linha { background: none; border: none; color: #c0392b; font-size: 20px; cursor: pointer; line-height: 1; padding: 0 6px; }

/* ============================================================
   REFINAMENTO VISUAL v2 (padrao do mockup aprovado)
   fundo quente, cards com sombra suave, acabamento premium
   ============================================================ */
:root {
    --ouro-claro: #E8D5B0;
    --fundo: #f5f1ea;        /* bege quente do mockup */
    --card-sombra: 0 2px 12px rgba(26,26,46,.06);
    --card-sombra-hover: 0 4px 18px rgba(26,26,46,.10);
}
body { background: var(--fundo); }

/* cards: sombra suave em vez de borda cinza */
.bloco, .grupo, .card-modulo {
    border: none !important;
    box-shadow: var(--card-sombra);
    border-radius: 14px;
}
.bloco { padding: 24px; }

/* topo de contexto com leve sombra e fundo alinhado */
.topo-contexto { border-bottom: none; box-shadow: 0 1px 8px rgba(26,26,46,.04); }

/* cabecalho de lista: titulo mais forte */
.cabecalho-lista h1 { font-size: 24px; color: var(--azul); font-weight: 700; letter-spacing: -.3px; }

/* botoes com leve profundidade */
.btn-novo, .btn-salvar { box-shadow: 0 2px 8px rgba(201,169,110,.25); transition: transform .08s, box-shadow .15s; }
.btn-novo:hover, .btn-salvar:hover { transform: translateY(-1px); box-shadow: 0 4px 14px rgba(201,169,110,.35); }

/* linhas de tabela com hover mais suave */
.tabela th { color: #8a8394; font-size: 11px; text-transform: uppercase; letter-spacing: .5px; border-bottom: 2px solid #efe9de; }
.linha-click { transition: background .12s; }
.linha-click:hover { background: #faf6ee; }

/* sidebar: item ativo com leve gradiente dourado */
.side-item.ativo { background: linear-gradient(90deg, rgba(201,169,110,.20), rgba(201,169,110,.06)); }

/* inputs mais suaves */
.form-ficha input, .form-ficha select, .barra-busca input {
    border: 1px solid #e6e0d4; border-radius: 9px; transition: border-color .15s, box-shadow .15s;
}
.form-ficha input:focus, .form-ficha select:focus, .barra-busca input:focus {
    border-color: var(--ouro); box-shadow: 0 0 0 3px rgba(201,169,110,.12); outline: none;
}

/* cabecalho de secao no form com fundo bege sutil */
.secao { color: var(--azul); font-weight: 700; }

/* ============================================================
   DASHBOARD (padrao do mockup)
   ============================================================ */
.dash-cabecalho { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 22px; gap: 16px; flex-wrap: wrap; }
.dash-cabecalho h1 { font-size: 26px; color: var(--azul); font-weight: 700; letter-spacing: -.3px; }
.dash-sub { color: #8a8394; font-size: 14px; margin-top: 3px; }
.dash-acoes { display: flex; gap: 10px; }
.btn-dash-outline { background: #fff; color: var(--azul); border: 1px solid #e6e0d4; padding: 10px 18px; border-radius: 10px; text-decoration: none; font-size: 14px; font-weight: 500; box-shadow: var(--card-sombra); }
.btn-dash-outline:hover { border-color: var(--ouro); }
.btn-dash-cheio { background: var(--ouro); color: #fff; padding: 10px 20px; border-radius: 10px; text-decoration: none; font-size: 14px; font-weight: 600; box-shadow: 0 2px 8px rgba(201,169,110,.3); }
.btn-dash-cheio:hover { background: #b8975d; }

/* mini cards de resumo */
.dash-resumo { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 16px; margin-bottom: 20px; }
.mini-card { background: #fff; border-radius: 14px; padding: 20px 22px; box-shadow: var(--card-sombra); display: flex; flex-direction: column; gap: 4px; }
.mini-card .mini-num { font-size: 30px; font-weight: 700; color: var(--azul); line-height: 1; }
.mini-card .mini-rot { font-size: 12px; color: #9a94a5; text-transform: uppercase; letter-spacing: .5px; }
.mini-card.destaque { background: linear-gradient(135deg, #1a1a2e, #2a2a48); }
.mini-card.destaque .mini-num { color: var(--ouro); font-size: 22px; }
.mini-card.destaque .mini-rot { color: #a8a8c0; }
.mini-card.destaque .nome-unidade { font-size: 15px; font-weight: 600; line-height: 1.25; }

/* grid de blocos */
.dash-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.dash-bloco { background: #fff; border-radius: 16px; padding: 22px; box-shadow: var(--card-sombra); }
.dash-bloco-topo { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
.dash-bloco-topo h2 { font-size: 16px; color: var(--azul); font-weight: 700; }
.ver-todos { font-size: 13px; color: var(--ouro); text-decoration: none; }
.ver-todos:hover { text-decoration: underline; }

/* estado "em breve" dentro de um bloco */
.em-breve-inline { display: flex; align-items: center; gap: 14px; padding: 18px; background: #faf7f0; border-radius: 12px; color: #9a8f7a; }
.em-breve-inline .eb-ico { font-size: 26px; color: var(--ouro); opacity: .7; }
.em-breve-inline p { font-size: 13px; line-height: 1.5; }

/* tabela do dashboard (pacientes recentes) */
.tabela-dash { width: 100%; border-collapse: collapse; }
.tabela-dash td { padding: 11px 8px; border-bottom: 1px solid #f4f0e8; font-size: 14px; color: var(--azul); }
.tabela-dash tr:last-child td { border-bottom: none; }
.td-data { color: #9a94a5; font-size: 13px; text-align: right; white-space: nowrap; }
.td-seta { width: 20px; text-align: right; color: #ccc; font-size: 18px; }
.avatar-mini { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: var(--ouro-claro); color: #6b5628; font-size: 13px; font-weight: 700; margin-right: 10px; vertical-align: middle; }
.avatar-mini-img { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; margin-right: 10px; vertical-align: middle; border: 1.5px solid #eee; }
.td-com-avatar { display: inline-flex; align-items: center; }
.avatar-mini-md { width: 44px !important; height: 44px !important; font-size: 18px !important; margin-right: 13px; }

@media (max-width: 800px) {
    .dash-grid { grid-template-columns: 1fr; }
}

/* agrupamento de clinicas por rede na tela de usuario */
.rede-grupo { margin-bottom: 16px; border: 1px solid #efe9de; border-radius: 10px; overflow: hidden; }
.rede-grupo-topo { display: flex; justify-content: space-between; align-items: center; background: #faf6ee; padding: 10px 14px; border-bottom: 1px solid #efe9de; }
.rede-grupo-nome { font-weight: 600; color: var(--azul); font-size: 13.5px; }
.btn-marcar-rede { background: none; border: 1px solid var(--ouro); color: #8a6d1f; padding: 4px 12px; border-radius: 7px; font-size: 12px; cursor: pointer; font-family: inherit; }
.btn-marcar-rede:hover { background: rgba(201,169,110,.1); }
.rede-grupo .tabela-acesso { width: 100%; margin: 0; }
.rede-grupo .tabela-acesso td { padding: 10px 14px; border-bottom: 1px solid #f4f0e8; }
.rede-grupo .tabela-acesso tr:last-child td { border-bottom: none; }
.col-check { text-align: right; width: 60px; }
.col-check input { width: 18px; height: 18px; accent-color: var(--ouro); }

/* ---------- Orçamentos ---------- */
.tag-status { font-size: 11px; padding: 3px 11px; border-radius: 10px; font-weight: 600; }
.st-aberto { background: #fdf3dd; color: #a9791a; }
.st-parcial { background: #e3f0ff; color: #1a5fa8; }
.st-fechado { background: #d6f0dd; color: #1f7a42; }
.st-cancelado { background: #f2f2f2; color: #999; }
.st-item-orcado { background: #fff4e0; color: #b8860b; }
.st-item-fechado { background: #e6f4ea; color: #2e7d32; }

.item-fechado { background: #fafdfb; }
.col-acao-multi { text-align: right; white-space: nowrap; }
.btn-mini-neutro { background: none; border: 1px solid #ccc; color: #666; padding: 5px 12px; border-radius: 7px; font-size: 12px; cursor: pointer; font-family: inherit; }
.btn-remover-mini { background: none; border: none; color: #c0392b; font-size: 18px; cursor: pointer; padding: 0 8px; }

.form-add-item { display: flex; gap: 8px; margin-top: 14px; flex-wrap: wrap; align-items: center; }
.form-add-item select { flex: 1; min-width: 180px; }
.inp-qtd { width: 60px; text-align: center; }
.inp-preco2 { width: 110px; }
.inp-desc { width: 100px; }
.cel-oport { font-size: 13px; color: #2e7d32; }

/* ---------- Prontuário ---------- */
.form-marcacao { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; align-items: center; }
.form-marcacao input { flex: 1; min-width: 110px; }
.form-marcacao .inp-qtd { flex: 0 0 60px; min-width: 60px; }
.variante-mapa { font-size: 13px; font-weight: 400; color: var(--ouro); text-transform: capitalize; }
.campo-idade { max-width: 120px; }
.campo-idade input { background: #f5f1ea; color: #555; cursor: default; }
.cep-status { font-size: 12px; margin-left: 4px; display: inline-block; margin-top: 3px; }
.cep-status.buscando { color: #999; }
.cep-status.ok { color: #2e7d32; }
.cep-status.erro { color: #c0392b; }

/* ---------- Agenda ---------- */
.agenda-nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.agenda-data-atual { font-size: 18px; font-weight: 600; color: var(--azul, #1a1a2e); }
.link-hoje { font-size: 12px; font-weight: 400; margin-left: 8px; }
.btn-dia { padding: 8px 14px; border: 1px solid #ddd; border-radius: 8px; background: #fff; color: #555; text-decoration: none; font-size: 13px; }
.btn-dia:hover { background: #f5f1ea; }

.agenda-filtros { display: flex; gap: 16px; align-items: flex-end; flex-wrap: wrap; }
.filtro-campo { display: flex; flex-direction: column; gap: 4px; }
.filtro-campo label { font-size: 12px; color: #888; }
.filtro-campo select { min-width: 150px; }
.link-limpar { font-size: 13px; color: #c0392b; align-self: center; }

.agenda-resumo { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.resumo-item { font-size: 12px; padding: 4px 10px; border-radius: 8px; background: #f2f2f2; }

.ag-hora { font-weight: 600; font-variant-numeric: tabular-nums; }
.sel-status { font-size: 12px; padding: 3px 6px; border-radius: 6px; border: 1px solid #ddd; }

/* cores por status */
.st-ag-agendado { background: #eef2ff; color: #3949ab; }
.st-ag-confirmado { background: #e6f4ea; color: #2e7d32; }
.st-ag-atendido { background: #e0f2f1; color: #00695c; }
.st-ag-faltou { background: #fbe9e7; color: #c62828; }
.st-ag-cancelado { background: #f2f2f2; color: #999; }
.st-ag-remarcado { background: #fff8e1; color: #f9a825; }
.st-ag-encaixe { background: #f3e5f5; color: #8e24aa; }
.st-ag-retorno { background: #e1f5fe; color: #0277bd; }
.st-linha-cancelado td { opacity: 0.55; }
.st-linha-faltou td { opacity: 0.7; }
.linha-proc { display: flex; gap: 8px; margin-bottom: 8px; align-items: center; }
.linha-proc select { flex: 1; }
.badge-1a { font-size: 10px; background: #e1f5fe; color: #0277bd; padding: 2px 7px; border-radius: 8px; margin-left: 4px; }
.td-procs { font-size: 13px; color: #555; }

/* ---------- Agenda: barra de modos ---------- */
.agenda-barra { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; flex-wrap: wrap; }
.agenda-modos { display: inline-flex; border: 1px solid #ddd; border-radius: 8px; overflow: hidden; }
.modo-btn { padding: 8px 18px; text-decoration: none; color: #666; background: #fff; font-size: 14px; border-right: 1px solid #eee; }
.modo-btn:last-child { border-right: none; }
.modo-btn.ativo { background: var(--dourado, #c9a961); color: #fff; font-weight: 600; }
.nota-inline { font-size: 11px; color: #999; display: block; margin-top: 2px; }

/* ---------- Grade DIA ---------- */
.grade-dia { border: 1px solid #eee; border-radius: 10px; overflow: hidden; background: #fff; }
.linha-slot { display: flex; border-bottom: 1px solid #f2f2f2; min-height: 46px; }
.linha-slot:last-child { border-bottom: none; }
.slot-hora { width: 60px; flex-shrink: 0; padding: 6px 8px; font-size: 12px; color: #999; background: #faf8f4; border-right: 1px solid #f0f0f0; font-variant-numeric: tabular-nums; }
.slot-conteudo { flex: 1; padding: 4px; display: flex; flex-direction: column; gap: 4px; }
.slot-vazio { display: block; color: #ddd; font-size: 18px; text-align: center; line-height: 38px; text-decoration: none; border-radius: 6px; }
.slot-vazio:hover { background: #f5f1ea; color: var(--dourado, #c9a961); }
.bloco-ag { display: block; padding: 8px 10px; border-radius: 8px; text-decoration: none; border-left: 4px solid rgba(0,0,0,0.15); }
.bloco-ag-hora { font-size: 11px; opacity: 0.75; font-weight: 600; }
.bloco-ag-pac { font-size: 14px; font-weight: 600; margin: 1px 0; }
.bloco-ag-proc { font-size: 12px; opacity: 0.85; }
.bloco-ag-prof { font-size: 11px; opacity: 0.65; margin-top: 2px; }
.aviso-fechado { color: #888; text-align: center; }

/* ---------- Grade SEMANA ---------- */
.grade-semana-wrap { overflow-x: auto; }
.grade-semana { border-collapse: collapse; width: 100%; min-width: 780px; background: #fff; }
.grade-semana th, .grade-semana td { border: 1px solid #f0f0f0; vertical-align: top; }
.grade-semana thead th { background: #faf8f4; padding: 8px 4px; text-align: center; position: sticky; top: 0; }
.sem-dia-nome { font-size: 11px; color: #999; text-transform: uppercase; }
.sem-dia-num { font-size: 14px; font-weight: 600; }
.grade-semana .col-hora { width: 52px; font-size: 11px; color: #999; padding: 4px 6px; background: #faf8f4; text-align: right; }
.cel-sem { height: 40px; padding: 2px; position: relative; }
.col-hoje { background: #fffdf5; }
.mini-ag { display: block; font-size: 11px; padding: 3px 5px; border-radius: 5px; text-decoration: none; margin-bottom: 2px; border-left: 3px solid rgba(0,0,0,0.15); line-height: 1.3; }
.mini-proc { display: block; opacity: 0.7; font-size: 10px; }
.cel-vazia { display: block; height: 100%; min-height: 34px; }
.cel-vazia:hover { background: #f9f5ec; }

/* ---------- Grade MÊS ---------- */
.grade-mes { border-collapse: collapse; width: 100%; background: #fff; table-layout: fixed; }
.grade-mes th { background: #faf8f4; padding: 8px; font-size: 12px; color: #888; border: 1px solid #f0f0f0; }
.cel-mes { border: 1px solid #f0f0f0; height: 96px; vertical-align: top; padding: 4px 5px; }
.cel-mes.fora-mes { background: #fafafa; color: #ccc; }
.cel-mes.dia-hoje { background: #fffdf5; }
.mes-dia-num { font-size: 13px; font-weight: 600; color: #555; display: flex; justify-content: space-between; align-items: center; }
.fora-mes .mes-dia-num { color: #ccc; }
.mes-add, .mes-vazio { color: #ddd; text-decoration: none; font-size: 14px; }
.mes-add:hover, .mes-vazio:hover { color: var(--dourado, #c9a961); }
.mes-vazio { display: block; text-align: center; margin-top: 20px; }
.mes-cont { display: inline-block; font-size: 10px; color: #999; margin: 2px 0; text-decoration: none; }
.mes-lista { display: flex; flex-direction: column; gap: 2px; }
.mes-item { font-size: 10px; padding: 2px 4px; border-radius: 4px; text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; border-left: 2px solid rgba(0,0,0,0.15); }
.mes-mais { font-size: 10px; color: #999; }

/* ---------- Autocomplete ---------- */
.autocomplete { position: relative; }
.autocomplete .ac-input { width: 100%; }
.ac-lista { display: none; position: absolute; top: 100%; left: 0; right: 0; z-index: 30;
            background: #fff; border: 1px solid #ddd; border-top: none; border-radius: 0 0 8px 8px;
            max-height: 240px; overflow-y: auto; box-shadow: 0 6px 16px rgba(0,0,0,0.08); }
.ac-item { padding: 9px 12px; cursor: pointer; font-size: 14px; border-bottom: 1px solid #f4f4f4; }
.ac-item:last-child { border-bottom: none; }
.ac-item:hover { background: #f5f1ea; color: var(--dourado, #c9a961); }
.linha-proc .autocomplete { flex: 1; }

/* ---------- Ações do agendamento (iniciar atendimento) ---------- */
.acoes-agendamento { display: flex; gap: 10px; margin-top: 16px; flex-wrap: wrap; align-items: center; }
.btn-iniciar-atend { background: #2e7d32; color: #fff; border: none; padding: 11px 20px; border-radius: 8px; font-size: 14px; font-weight: 600; cursor: pointer; }
.btn-iniciar-atend:hover { background: #256628; }
.btn-secundario { background: #eef2ff; color: #3949ab; border: none; padding: 11px 18px; border-radius: 8px; font-size: 14px; text-decoration: none; display: inline-block; }
.btn-secundario:hover { background: #e0e7ff; }

/* ---------- Orçamento no atendimento ---------- */
.sub-secao { font-size: 13px; color: #888; text-transform: uppercase; letter-spacing: 0.5px; margin: 14px 0 8px; }
.orc-ligado-topo { display: flex; justify-content: space-between; align-items: center; padding: 8px 12px; background: #f5f1ea; border-radius: 8px; font-size: 14px; margin-bottom: 8px; }
.btn-mini-neutro:hover { background: #f5f5f5; }
.linha-executada td { background: #f2f9f3; color: #2e7d32; }
.link-desfazer { background: none; border: none; color: #c0392b; font-size: 12px; cursor: pointer; text-decoration: underline; }
.linha-inline { display: flex; gap: 8px; align-items: center; }
.linha-inline select { flex: 1; }

/* ---------- Zona de risco (excluir atendimento) ---------- */
.zona-risco { border: 1px solid #f3d6d6; }
.zona-risco .dash-bloco-topo h2 { color: #c0392b; }
.aviso-exclusao { background: #fff8e1; padding: 10px 12px; border-radius: 8px; color: #8a6d00; }
.tag-individual { font-size: 11px; background: #f3e5f5; color: #8e24aa; padding: 2px 8px; border-radius: 8px; }

/* ========== Orçamento profissional ========== */
.orc-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 18px; }
.orc-card { background: #fff; border: 1px solid #ececec; border-radius: 12px; padding: 16px 18px; display: flex; flex-direction: column; gap: 3px; }
.orc-card-principal { background: linear-gradient(135deg, #1a1a2e 0%, #2d2d44 100%); border: none; box-shadow: 0 4px 14px rgba(26,26,46,0.18); }
.orc-card-principal .orc-card-rot, .orc-card-principal .orc-card-num { color: #fff; }
.orc-card-principal .orc-card-rot { color: #b8b8cc; }
.orc-card-aprovado { border: 1.5px solid #cfe9d6; background: #fbfefc; }
.orc-card-rot { font-size: 12px; color: #999; text-transform: uppercase; letter-spacing: 0.5px; }
.orc-card-num { font-size: 24px; font-weight: 700; color: #1a1a2e; font-variant-numeric: tabular-nums; }
.orc-card-num.verde { color: #2e9e5b; }
.orc-card-num.ambar { color: #b8860b; }
.orc-card-hint { font-size: 11px; color: #aaa; }

.tabela-orc .num { text-align: right; font-variant-numeric: tabular-nums; }
.tabela-orc .item-nome { font-weight: 600; }
.tabela-orc .item-subtotal { font-weight: 600; }
.tabela-orc tbody tr { transition: background .12s; }
.item-linha.item-orcado { box-shadow: inset 3px 0 0 #e0b34d; }
.item-linha.item-fechado { background: #f4faf5; box-shadow: inset 3px 0 0 #2e9e5b; }
.item-linha.item-executado { background: #eef7f6; box-shadow: inset 3px 0 0 #00897b; }

.pill { display: inline-block; font-size: 11px; font-weight: 700; padding: 4px 12px; border-radius: 20px; letter-spacing: .2px; }
.pill-orcado { background: #fdf3dd; color: #a9791a; }
.pill-aprovado { background: #d6f0dd; color: #1f7a42; }
.pill-executado { background: #d3ecea; color: #00695c; }
.pill-data { display: block; font-size: 10px; color: #aaa; margin-top: 3px; }
.cadeado { font-size: 14px; opacity: 0.5; }

/* Botão Aprovar: destaque forte, chama a ação */
.btn-mini-ok {
    background: linear-gradient(180deg, #34b866 0%, #2e9e5b 100%);
    color: #fff; border: none; padding: 7px 18px; border-radius: 8px;
    font-size: 13px; font-weight: 700; cursor: pointer; font-family: inherit;
    box-shadow: 0 2px 6px rgba(46,158,91,0.35); transition: transform .1s, box-shadow .15s;
    letter-spacing: .2px;
}
.btn-mini-ok::before { content: "\2713  "; font-weight: 800; }
.btn-mini-ok:hover { box-shadow: 0 4px 12px rgba(46,158,91,0.45); transform: translateY(-1px); }
.btn-mini-ok:active { transform: translateY(0); }

.btn-mini-del { background: #fbe9e7; color: #c62828; border: none; width: 28px; height: 28px; border-radius: 7px; cursor: pointer; font-size: 15px; margin-left: 4px; vertical-align: middle; }
.btn-mini-del:hover { background: #ffcdd2; }

@media (max-width: 760px) { .orc-cards { grid-template-columns: repeat(2, 1fr); } }
.inp-area { max-width: 180px; }

/* ========== Dashboard renovado ========== */
.dash-destaques { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 12px; margin-bottom: 20px; }
.dash-dest { background: #fff; border: 1px solid #eee; border-radius: 12px; padding: 16px 18px; display: flex; flex-direction: column; gap: 3px; }
.dash-dest-valor { background: linear-gradient(135deg, #1a1a2e 0%, #2d2d44 100%); border: none; }
.dash-dest-valor .dd-rot, .dash-dest-valor .dd-num { color: #fff; }
.dash-dest-valor .dd-hint { color: #b0b0c0; }
.dd-rot { font-size: 12px; color: #999; text-transform: uppercase; letter-spacing: 0.5px; }
.dd-num { font-size: 26px; font-weight: 700; color: #1a1a2e; font-variant-numeric: tabular-nums; }
.dd-hint { font-size: 11px; color: #aaa; }
.td-hora { font-weight: 600; font-variant-numeric: tabular-nums; color: #555; width: 54px; }
.avatar-hoje { background: #ffd54f !important; color: #7a5900 !important; }
.badge-hoje { font-size: 11px; color: #b8860b; font-weight: 600; }
@media (max-width: 860px) { .dash-destaques { grid-template-columns: repeat(2, 1fr); } }

/* ---------- Orçamento: modo visualização ---------- */
.orc-resumo-topo { display: flex; flex-direction: column; gap: 8px; }
.orc-resumo-linha { display: flex; gap: 12px; }
.orc-resumo-rot { font-size: 12px; color: #999; text-transform: uppercase; letter-spacing: 0.5px; min-width: 110px; padding-top: 2px; }
.orc-resumo-val { font-size: 15px; color: #1a1a2e; font-weight: 600; }
.barra-edicao { display: flex; align-items: center; gap: 12px; }

/* ---------- Ficha do paciente: modo visualização ---------- */
.ficha-fieldset { border: none; padding: 0; margin: 0; min-width: 0; }
.ficha-fieldset:disabled input, .ficha-fieldset:disabled select, .ficha-fieldset:disabled textarea {
    background: #f7f7f9; color: #333; cursor: default; opacity: 1; -webkit-text-fill-color: #333;
}
.ficha-fieldset:disabled .check-card { opacity: 0.7; }

/* ---------- Campo WhatsApp (dropdown de país com bandeira) ---------- */
.wa-campo { display: flex; gap: 6px; align-items: stretch; }
.wa-numero { flex: 1; }
.wa-pais-seletor { position: relative; flex: 0 0 auto; }
.wa-pais-botao { display: flex; align-items: center; gap: 6px; height: 100%; padding: 0 10px;
    border: 1px solid #ccc; border-radius: 8px; background: #fff; cursor: pointer; font-size: 14px; white-space: nowrap; }
.wa-pais-botao .fi { width: 20px; height: 15px; border-radius: 2px; }
.wa-seta { color: #999; font-size: 10px; }
.wa-pais-painel { display: none; position: absolute; top: calc(100% + 4px); left: 0; z-index: 50;
    width: 280px; background: #fff; border: 1px solid #ddd; border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,0.12); overflow: hidden; }
.wa-pais-painel.aberto { display: block; }
.wa-busca { width: 100%; border: none; border-bottom: 1px solid #eee; padding: 10px 12px; font-size: 14px; outline: none; box-sizing: border-box; }
.wa-pais-lista { max-height: 260px; overflow-y: auto; }
.wa-pais-item { display: flex; align-items: center; gap: 10px; padding: 8px 12px; cursor: pointer; font-size: 14px; }
.wa-pais-item:hover { background: #f5f1ea; }
.wa-pais-item .fi { width: 22px; height: 16px; border-radius: 2px; flex: 0 0 auto; }
.wa-item-nome { flex: 1; }
.wa-item-ddi { color: #999; font-size: 13px; }
.ficha-fieldset:disabled .wa-pais-botao { background: #f7f7f9; cursor: default; }

/* ---------- Campos obrigatórios (config) ---------- */
.seletor-entidade { display: flex; gap: 8px; margin-bottom: 16px; }
.ent-btn { padding: 8px 18px; border-radius: 8px; border: 1px solid #ddd; background: #fff; color: #555; text-decoration: none; font-size: 14px; }
.ent-btn.ativo { background: #1a1a2e; color: #fff; border-color: #1a1a2e; }
.tabela-campos .col-check { text-align: center; width: 120px; }
.obrig-asterisco { color: #c0392b; font-weight: 700; }
/* switch toggle */
.switch { position: relative; display: inline-block; width: 44px; height: 24px; }
.switch input { opacity: 0; width: 0; height: 0; }
.switch-slider { position: absolute; cursor: pointer; inset: 0; background: #ccc; border-radius: 24px; transition: .2s; }
.switch-slider:before { content: ""; position: absolute; height: 18px; width: 18px; left: 3px; bottom: 3px; background: #fff; border-radius: 50%; transition: .2s; }
.switch input:checked + .switch-slider { background: #2e7d32; }
.switch input:checked + .switch-slider:before { transform: translateX(20px); }

/* ---------- Ações da ficha (botões organizados) ---------- */
.acoes-ficha { display: flex; justify-content: space-between; align-items: center; }
.acoes-esq { display: flex; gap: 12px; align-items: center; }
.btn-secundario { display: inline-flex; align-items: center; justify-content: center;
    background: #fff; color: #555; border: 1px solid #ccc; border-radius: 8px;
    padding: 12px 24px; font-weight: 600; font-size: 15px; cursor: pointer; text-decoration: none; }
.btn-secundario:hover { background: #f5f5f7; border-color: #999; }
.acoes-ficha .btn-excluir { padding: 12px 24px; font-size: 15px; }

/* ---------- Zona de risco (excluir paciente) ---------- */
.zona-risco { border: 1px solid #f0c9c4; background: #fdf6f5; margin-top: 20px; }
.zona-risco .dash-bloco-topo h2 { color: #c0392b; }
.aviso-exclusao { color: #8a3327; }
.form-excluir { display: flex; gap: 10px; align-items: center; margin-top: 6px; }
.inp-confirma { flex: 0 0 260px; border: 1px solid #d9a49c; border-radius: 8px; padding: 11px 14px; font-size: 14px; }
.inp-confirma:focus { outline: none; border-color: #c0392b; }

/* ==================== Modal da agenda ==================== */
.modal-ag-overlay { display: none; position: fixed; inset: 0; background: rgba(20,20,35,0.5);
    z-index: 1000; align-items: flex-start; justify-content: center; padding: 40px 16px; overflow-y: auto; }
.modal-ag-overlay.aberto { display: flex; }
.modal-ag-janela { background: #fff; border-radius: 16px; width: 100%; max-width: 560px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.3); position: relative; animation: modalSobe .18s ease; }
@keyframes modalSobe { from { transform: translateY(12px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.modal-ag-fechar { position: absolute; top: 14px; right: 16px; background: none; border: none;
    font-size: 26px; line-height: 1; color: #999; cursor: pointer; padding: 0; width: 30px; height: 30px; }
.modal-ag-fechar:hover { color: #333; }
.modal-ag-titulo { font-size: 18px; font-weight: 700; color: var(--azul); padding: 20px 24px 12px; border-bottom: 1px solid #f0f0f0; }
.modal-ag-corpo { padding: 20px 24px 24px; }
.modal-ag-carregando { text-align: center; color: #999; padding: 40px 0; }

/* ==================== Form de agendamento reorganizado ==================== */
.form-agendamento .ag-label { display: block; font-size: 13px; font-weight: 600; color: #555; margin-bottom: 5px; }
.form-agendamento input, .form-agendamento select { width: 100%; box-sizing: border-box;
    border: 1px solid #ccc; border-radius: 8px; padding: 10px 12px; font-size: 14px; font-family: inherit; }
.form-agendamento input:focus, .form-agendamento select:focus { outline: none; border-color: var(--dourado); }

.ag-bloco-paciente { background: #faf8f4; border: 1px solid #ece6da; border-radius: 12px; padding: 14px 16px; margin-bottom: 16px; }
.ag-input-paciente { font-size: 15px !important; }
.ag-linha-secundaria { display: flex; justify-content: space-between; align-items: center; margin-top: 10px; flex-wrap: wrap; gap: 8px; }
.ag-check { font-size: 13px; color: #555; display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.ag-check input { width: auto; }
.ag-dica { font-size: 12px; color: #999; }
.ag-dica a { color: var(--dourado); text-decoration: none; font-weight: 600; }

.ag-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; margin-bottom: 16px; }
.ag-grid:has(.sel-duracao) { grid-template-columns: 1fr 1fr 1.4fr; }
.ag-campo { min-width: 0; }
.ag-campo-full { margin-bottom: 16px; }

.ag-secao-procs { margin-bottom: 16px; }
.ag-opcional { font-weight: 400; color: #aaa; font-size: 12px; }
.linha-proc { display: flex; gap: 8px; margin-bottom: 8px; align-items: center; }
.linha-proc .autocomplete { flex: 1; }
.btn-add-linha { background: none; border: 1px dashed #ccc; border-radius: 8px; padding: 8px 14px;
    color: #666; cursor: pointer; font-size: 13px; font-family: inherit; width: 100%; }
.btn-add-linha:hover { border-color: var(--dourado); color: var(--dourado); }
.btn-remover-mini { background: none; border: none; color: #c0392b; font-size: 20px; cursor: pointer; padding: 0 6px; }

.ag-acoes { border-top: 1px solid #f0f0f0; padding-top: 16px; margin-top: 4px; }
.ag-acoes-principais { display: flex; gap: 10px; }
.ag-acoes-principais .btn-salvar { flex: 1; }
.btn-excluir-ag { background: #fff; color: #c0392b; border: 1px solid #e5b8b2; border-radius: 8px;
    padding: 11px 18px; font-size: 14px; cursor: pointer; font-family: inherit; }
.btn-excluir-ag:hover { background: #fdf2f0; border-color: #c0392b; }
.ag-acoes-extras { display: flex; gap: 12px; align-items: center; margin-top: 12px; padding-top: 12px; border-top: 1px dashed #eee; flex-wrap: wrap; }

@media (max-width: 560px) {
    .ag-grid, .ag-grid:has(.sel-duracao) { grid-template-columns: 1fr; }
}

/* ---------- Bandeiras de cartão ---------- */
.bandeira-card { margin-bottom: 14px; }
.bandeira-topo { display: flex; align-items: center; gap: 16px; margin-bottom: 14px; }
.bandeira-nome { font-size: 16px; font-weight: 700; border: 1px solid transparent; border-radius: 8px;
    padding: 6px 10px; max-width: 240px; }
.bandeira-nome:hover, .bandeira-nome:focus { border-color: #ccc; outline: none; }
.bandeira-taxas { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 14px; }
.taxa-campo label { display: block; font-size: 12px; color: #777; margin-bottom: 5px; }
.taxa-input { display: flex; align-items: center; gap: 5px; }
.taxa-input input { width: 100%; border: 1px solid #ccc; border-radius: 8px; padding: 9px 10px; font-size: 14px; text-align: right; }
.taxa-input input:focus { outline: none; border-color: var(--dourado); }
.bandeira-acoes { display: flex; align-items: center; gap: 16px; }
.btn-sm { padding: 8px 18px; font-size: 14px; }
@media (max-width: 640px) { .bandeira-taxas { grid-template-columns: 1fr 1fr; } }

/* ---------- Recebimento no orçamento ---------- */
.secao-receb { margin-top: 16px; }
.receb-resumo { display: flex; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
.receb-card { flex: 1; min-width: 140px; background: #faf8f4; border: 1px solid #ece6da; border-radius: 10px; padding: 12px 16px; }
.receb-rot { display: block; font-size: 12px; color: #888; margin-bottom: 4px; }
.receb-num { font-size: 20px; font-weight: 700; color: #1a1a2e; }
.receb-num.verde { color: #2e7d32; }
.receb-num.ambar { color: #b8860b; }
.receb-forma-tag { display: inline-block; background: #f0ece4; border-radius: 6px; padding: 2px 8px; font-size: 12px; margin: 2px; }
.linha-forma-receb { display: flex; gap: 8px; margin-bottom: 8px; align-items: center; flex-wrap: wrap; }
.rec-forma { flex: 1.5; min-width: 130px; }
.rec-valor { flex: 1; min-width: 90px; }
.rec-bandeira { flex: 1; min-width: 100px; }
.rec-parcelas { width: 70px; }
.linha-forma-receb select, .linha-forma-receb input { border: 1px solid #ccc; border-radius: 8px; padding: 9px 10px; font-size: 14px; }
.receb-rodape { margin-top: 14px; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.receb-total-linha { font-size: 14px; color: #555; }
.receb-obs { flex: 1; min-width: 160px; border: 1px solid #ccc; border-radius: 8px; padding: 9px 12px; }
.receb-alerta { color: #c0392b; font-size: 13px; margin-left: 6px; }

/* ---------- Contas a receber ---------- */
.receb-num.vermelho { color: #c0392b; }
.filtro-status { display: flex; gap: 8px; margin-bottom: 16px; }
.linha-vencida { background: #fdf6f5; }
.tag-vencida { background: #c0392b; color: #fff; font-size: 11px; padding: 1px 7px; border-radius: 5px; margin-left: 4px; }
.pill-aberto { background: #fff3e0; color: #b8860b; }

/* ---------- Contas a receber: agrupado por paciente ---------- */
.grupo-paciente { margin-bottom: 16px; }
.grupo-pac-topo { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 10px; padding-bottom: 10px; border-bottom: 1px solid #f0f0f0; flex-wrap: wrap; gap: 8px; }
.grupo-pac-topo h2 { font-size: 16px; margin: 0; color: #1a1a2e; }
.grupo-pac-totais { font-size: 14px; color: #555; display: flex; gap: 16px; }
.grupo-liq { color: #888; }
.tabela-contas td { vertical-align: top; }
.tag-bandeira { background: #eef2f7; color: #4a5568; font-size: 11px; padding: 1px 6px; border-radius: 4px; }
.link-origem { font-size: 12px; color: var(--dourado); text-decoration: none; }
.link-origem:hover { text-decoration: underline; }
.link-origem-avulso { font-size: 12px; color: #aaa; }
.col-liquido { color: #2e7d32; }

/* ---------- Registrar pagamento: form de uma forma por vez ---------- */
.receb-registrar { margin-top: 12px; }
.form-pagamento-unico { background: #faf8f4; border: 1px solid #ece6da; border-radius: 12px; padding: 16px; margin: 12px 0; }
.form-pagamento-unico .pag-linha { display: flex; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
.form-pagamento-unico .pag-campo { flex: 1; min-width: 140px; }
.form-pagamento-unico .pag-forma { flex: 2; }
.form-pagamento-unico label { display: block; font-size: 12px; color: #777; margin-bottom: 4px; }
.form-pagamento-unico select, .form-pagamento-unico input { width: 100%; box-sizing: border-box; border: 1px solid #ccc; border-radius: 8px; padding: 9px 12px; font-size: 14px; }
.form-pagamento-unico .receb-obs { width: 100%; }
.pag-acoes { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.pag-saldo-info { margin-left: auto; font-size: 13px; color: #888; }
.receb-nota-saldo { font-size: 12px; color: #999; margin-top: 8px; line-height: 1.5; }
.btn-fechar-receb { display: none; }

/* Agendamento: profissional maior, situação menor */
.ag-grid-prof { grid-template-columns: 2.5fr 1fr; }
@media (max-width: 560px) { .ag-grid-prof { grid-template-columns: 1fr; } }

/* Procedimentos de interesse: seleção por área + checkboxes */
.ag-area-select { width: 100%; box-sizing: border-box; border: 1px solid #ccc; border-radius: 8px; padding: 10px 12px; font-size: 14px; margin-bottom: 10px; }
.ag-procs-checkboxes { }
.ag-procs-grupo { background: #faf9f6; border: 1px solid #eee; border-radius: 8px; padding: 10px 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 6px 14px; }
.ag-proc-check { display: flex; align-items: center; gap: 7px; font-size: 13px; color: #444; cursor: pointer; padding: 3px 0; }
.ag-proc-check input { width: auto; margin: 0; flex-shrink: 0; }
.ag-procs-vazio { grid-column: 1 / -1; font-size: 13px; color: #999; margin: 4px 0; }
.ag-procs-nota { font-size: 12px; color: #999; margin-top: 6px; }
@media (max-width: 560px) { .ag-procs-grupo { grid-template-columns: 1fr; } }

/* Base de cálculo da comissão do profissional */
.base-comissao { background: #faf9f6; border: 1px solid #eee; border-radius: 8px; padding: 12px 14px; margin: 10px 0; }
.chk-base { display: flex; align-items: center; gap: 8px; font-size: 14px; color: #444; padding: 5px 0; cursor: pointer; }
.chk-base input { width: auto; margin: 0; }

/* ---------- Comissão ---------- */
.comissao-filtro { display: flex; gap: 14px; align-items: flex-end; flex-wrap: wrap; }
.comissao-filtro .campo label { display: block; font-size: 12px; color: #777; margin-bottom: 4px; }
.comissao-filtro select, .comissao-filtro input { border: 1px solid #ccc; border-radius: 8px; padding: 9px 12px; font-size: 14px; }
.comissao-cabecalho { margin: 18px 0 8px; }
.comissao-cabecalho h2 { margin: 0 0 4px; color: var(--azul); }
.comissao-base-info { font-size: 13px; color: #888; margin: 0; }
.col-neg { color: #c0392b; }
.col-comissao { color: #2e7d32; font-weight: 600; }
.tfoot-label { text-align: right; font-weight: 600; color: #555; }
table tfoot td { border-top: 2px solid #eee; padding-top: 8px; }
.lancar-details { margin-top: 12px; }
.lancar-details summary { cursor: pointer; color: var(--dourado); font-size: 14px; font-weight: 600; padding: 6px 0; }
.form-lancar { margin-top: 10px; padding: 12px; background: #faf9f6; border-radius: 8px; }
.lancar-grid { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.lancar-grid input, .lancar-grid select { border: 1px solid #ccc; border-radius: 8px; padding: 8px 10px; font-size: 14px; flex: 1; min-width: 130px; }
.comissao-resumo { background: #faf8f4; }
.resumo-linha { display: flex; justify-content: space-between; padding: 8px 0; font-size: 15px; border-bottom: 1px solid #f0ece4; }
.resumo-total { font-size: 18px; font-weight: 700; color: var(--azul); border-bottom: none; border-top: 2px solid #e0d8c8; margin-top: 4px; padding-top: 12px; }

/* Recebimento: data, selo pago, modo edição */
.pag-data { max-width: 170px; }
.pag-data-nota { font-size: 12px; color: #999; margin-top: 8px; }
.receb-titulo-linha { display: flex; align-items: center; gap: 12px; }
.selo-pago { background: #e6f4ea; color: #2e7d32; font-size: 13px; font-weight: 600; padding: 3px 12px; border-radius: 20px; }
.receb-edit-nota { font-size: 13px; color: #888; margin-top: 8px; }
.receb-edit-nota a { color: var(--dourado); }

/* Barra de ações perigosas do orçamento */
.barra-acoes-perigo { margin-left: auto; display: flex; gap: 10px; align-items: center; }
.btn-travado { opacity: 0.5; cursor: not-allowed; }

/* Autocomplete de procedimentos (agendamento): busca + checkbox + chips */
.ac-procs { position: relative; }
.ac-procs-busca { width: 100%; box-sizing: border-box; border: 1px solid #ccc; border-radius: 8px; padding: 10px 12px; font-size: 14px; }
.ac-procs-lista { display: none; position: absolute; z-index: 30; left: 0; right: 0; top: 100%; margin-top: 4px; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 6px 20px rgba(0,0,0,0.12); max-height: 260px; overflow-y: auto; }
.ac-procs-item { display: flex; align-items: center; gap: 10px; padding: 9px 12px; cursor: pointer; font-size: 14px; }
.ac-procs-item:hover { background: #faf7f2; }
.ac-procs-item:has(input:checked) { background: #f3ede2; font-weight: 600; }
.ac-procs-item input { width: auto; margin: 0; flex-shrink: 0; }
.ac-procs-area { color: #b08d57; font-style: normal; font-size: 12px; margin-left: 4px; }
.ac-procs-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.ac-chip { display: inline-flex; align-items: center; gap: 6px; background: #f2ece2; color: #6b5a3e; border-radius: 16px; padding: 4px 6px 4px 12px; font-size: 13px; }
.ac-chip-x { border: none; background: rgba(0,0,0,0.08); color: #6b5a3e; width: 18px; height: 18px; border-radius: 50%; cursor: pointer; font-size: 14px; line-height: 1; display: flex; align-items: center; justify-content: center; padding: 0; }
.ac-chip-x:hover { background: rgba(0,0,0,0.18); }

/* ==========================================================
   RESPONSIVIDADE (mobile / app) - reforço geral
   ========================================================== */
.sidebar-overlay { display: none; }
@media (max-width: 768px) {
    /* overlay escuro quando o menu abre */
    .sidebar-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.4); z-index: 90; opacity: 0; pointer-events: none; transition: opacity .25s; }
    body.sidebar-aberta .sidebar-overlay { opacity: 1; pointer-events: auto; }
    .sidebar { z-index: 100; }

    /* conteúdo ocupa tudo, com respiro */
    body.com-sidebar .conteudo { padding: 76px 16px 24px; }
    body.com-sidebar .conteudo > * { max-width: none; }

    /* topo fixo com o hambúrguer */
    .topo-contexto { padding: 0 12px; height: 56px; }
    .user-nome { display: none; }

    /* títulos e cabeçalhos de lista quebram bem */
    .cabecalho-lista { flex-wrap: wrap; gap: 10px; }
    .cabecalho-lista h1 { font-size: 22px; }

    /* tabelas: scroll horizontal sem quebrar o layout */
    .tabela, table.tabela { display: block; overflow-x: auto; white-space: nowrap; -webkit-overflow-scrolling: touch; }

    /* formulários e grids viram coluna única */
    .campos { grid-template-columns: 1fr !important; }
    .form-ficha .grupo { padding: 14px; }
    .lancar-grid { flex-direction: column; }
    .lancar-grid input, .lancar-grid select { min-width: 0; width: 100%; }
    .comissao-filtro { flex-direction: column; align-items: stretch; }
    .comissao-filtro .campo { width: 100%; }
    .comissao-filtro select, .comissao-filtro input { width: 100%; box-sizing: border-box; }

    /* pagamento: linhas em coluna */
    .pag-linha { flex-direction: column; gap: 10px; }
    .pag-campo { width: 100%; }
    .pag-data { max-width: none; }

    /* botões com alvo de toque maior */
    .btn-salvar, .btn-novo, .btn-dash-outline, .btn-voltar, .btn-mini, .btn-excluir { padding: 11px 16px; font-size: 15px; }
    .btn-salvar, .btn-novo { width: 100%; box-sizing: border-box; text-align: center; }

    /* barra de ações do orçamento empilha */
    .barra-edicao { flex-wrap: wrap; gap: 10px; }
    .barra-acoes-perigo { margin-left: 0; width: 100%; flex-wrap: wrap; }

    /* cards de resumo em coluna */
    .receb-card, .dash-card { width: 100%; box-sizing: border-box; }
    .resumo-linha { font-size: 14px; }

    /* modal ocupa quase a tela toda, com o corpo rolando por dentro */
    .modal-ag-overlay { padding: 16px 10px; align-items: flex-start; }
    .modal-ag-janela { width: 96vw; max-width: 96vw; max-height: 92vh; display: flex; flex-direction: column; }
    .modal-ag-titulo { padding: 16px 18px 10px; flex-shrink: 0; }
    .modal-ag-corpo { padding: 16px 18px 20px; overflow-y: auto; -webkit-overflow-scrolling: touch; }
    /* seletor de procedimentos: chips e busca sem apertar */
    .ac-procs-chips { gap: 5px; }
    .ac-chip { font-size: 12px; padding: 4px 5px 4px 10px; }
    /* a lista de sugestões entra no fluxo (não flutua) pra não ser cortada pelo scroll do modal */
    .ac-procs-lista { position: static; max-height: 220px; margin-top: 6px; box-shadow: none; border-color: #ccc; }
    .ac-procs-item { padding: 11px 12px; }
    /* form do agendamento: campos maiores pro toque */
    .form-agendamento input, .form-agendamento select { font-size: 16px; padding: 11px 12px; }
    .ag-acoes-principais { flex-direction: column; }
    .ag-acoes-principais .btn-salvar, .ag-acoes-principais .btn-secundario, .ag-acoes-principais .btn-excluir-ag { width: 100%; }
}

@media (max-width: 480px) {
    body.com-sidebar .conteudo { padding: 70px 12px 20px; }
    .cabecalho-lista h1 { font-size: 20px; }
    .bloco { padding: 14px; }
    .orc-cards { grid-template-columns: 1fr !important; }
    .dash-destaques { grid-template-columns: 1fr !important; }
}

/* Bandeiras: máximo de parcelas + grid de taxas por parcela */
.max-parcelas-campo { font-size: 13px; color: #666; display: flex; align-items: center; gap: 6px; }
.inp-max-parcelas { width: 60px; border: 1px solid #ccc; border-radius: 6px; padding: 6px 8px; font-size: 14px; }
.bandeira-taxas { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px 14px; margin: 12px 0; }
@media (max-width: 640px) { .bandeira-taxas { grid-template-columns: repeat(2, 1fr); } }

/* Seletor de área no autocomplete de procedimentos */
.ac-procs-area { width: 100%; box-sizing: border-box; border: 1px solid #ccc; border-radius: 8px; padding: 10px 12px; font-size: 14px; margin-bottom: 8px; background: #fff; }
.ac-procs-busca:disabled { background: #f4f4f4; color: #999; cursor: not-allowed; }
.ac-procs-vazio-item { padding: 12px; color: #999; font-size: 13px; text-align: center; }

/* Contas a receber: controles + filtro de paciente por autocomplete */
.cr-controles { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 14px; flex-wrap: wrap; }
.cr-filtro-paciente { display: flex; align-items: center; gap: 8px; }
.ac-pac { position: relative; }
.cr-pac-busca { border: 1px solid #ccc; border-radius: 8px; padding: 9px 12px; font-size: 14px; width: 240px; box-sizing: border-box; }
.cr-pac-lista { display: none; position: absolute; z-index: 30; left: 0; right: 0; top: 100%; margin-top: 4px; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 6px 20px rgba(0,0,0,0.12); max-height: 240px; overflow-y: auto; }
.cr-pac-item { padding: 9px 12px; cursor: pointer; font-size: 14px; }
.cr-pac-item:hover { background: #faf7f2; }
.cr-limpar-filtro { color: #c0392b; font-size: 20px; text-decoration: none; width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: #fbeae7; }
.cr-limpar-filtro:hover { background: #f5d5cf; }
.cr-venc b { color: var(--azul); }
.cr-paciente { font-weight: 600; color: #444; }
@media (max-width: 768px) {
    .cr-controles { flex-direction: column; align-items: stretch; }
    .cr-pac-busca { width: 100%; }
    .cr-filtro-paciente { width: 100%; }
    .ac-pac { flex: 1; }
}

/* Contas a pagar: tags */
.tag-recorrente { font-size: 11px; color: #6b5a8e; background: #efeaf7; padding: 2px 8px; border-radius: 10px; }

/* Plano de contas */
.conta-cod { font-family: ui-monospace, monospace; font-size: 12px; color: #8a7a5c; background: #f4efe6; padding: 1px 6px; border-radius: 4px; }
.cab-acoes { display: flex; gap: 8px; }
.pc-conta { margin-bottom: 18px; }
.pc-conta-titulo { font-weight: 700; color: var(--azul); font-size: 15px; margin-bottom: 6px; padding-bottom: 4px; border-bottom: 1px solid #eee; }
.pc-subcontas { list-style: none; padding: 0; margin: 0 0 8px; }
.pc-subcontas li { display: flex; justify-content: space-between; align-items: center; padding: 6px 0 6px 16px; font-size: 14px; color: #444; border-bottom: 1px solid #f6f3ec; }
.pc-sistema { color: #2e7d32; font-size: 11px; }
.pc-add-sub { display: flex; gap: 8px; padding-left: 16px; margin-top: 6px; }
.pc-add-sub input { flex: 1; border: 1px solid #ddd; border-radius: 6px; padding: 7px 10px; font-size: 13px; }

/* Relatórios */
.rel-filtro { display: flex; gap: 14px; align-items: flex-end; flex-wrap: wrap; }
.rel-grupos { display: flex; flex-direction: column; gap: 24px; }
.rel-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.rel-card { display: flex; flex-direction: column; gap: 4px; padding: 16px; background: #fff; border: 1px solid #eee; border-radius: 12px; text-decoration: none; transition: border-color .15s, box-shadow .15s; }
.rel-card:hover { border-color: var(--dourado, #c9a961); box-shadow: 0 4px 14px rgba(0,0,0,0.06); }
.rel-card-nome { font-weight: 700; color: var(--azul); font-size: 15px; }
.rel-card-desc { font-size: 12.5px; color: #888; line-height: 1.4; }
.col-money { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tfoot-label { text-align: right; font-weight: 600; color: #666; }
/* DRE */
.tabela-dre td { padding: 9px 12px; }
.dre-grupo-titulo td { font-weight: 700; color: var(--azul); background: #faf7f2; font-size: 13px; letter-spacing: .3px; padding-top: 14px; }
.dre-subtotal td { font-weight: 600; border-top: 1px solid #eee; }
.dre-resultado td { font-weight: 800; font-size: 15px; border-top: 2px solid var(--azul); background: #f4efe6; }
/* Balancete */
.bal-sintetica td { background: #faf7f2; padding-top: 10px; }
.bal-sub td { padding-left: 24px; color: #555; font-size: 13.5px; }
@media (max-width: 768px) { .rel-filtro { flex-direction: column; align-items: stretch; } }

/* Estoque */
.est-alertas { display: flex; flex-direction: column; gap: 10px; }
.est-alerta { padding: 10px 12px; border-radius: 8px; font-size: 13px; }
.est-alerta b { display: block; margin-bottom: 6px; }
.est-alerta-min { background: #fdf2e9; border-left: 3px solid #e67e22; }
.est-alerta-venc { background: #fef5f4; border-left: 3px solid #c0392b; }
.est-alerta-diluido { background: #f4f0fb; border-left: 3px solid #8e44ad; }
.est-chip { display: inline-flex; align-items: center; gap: 4px; background: #fff; border: 1px solid #e2ddd3; border-radius: 12px; padding: 3px 10px; margin: 2px 4px 2px 0; font-size: 12px; }
.est-chip-x { background: none; border: none; color: #c0392b; cursor: pointer; font-size: 15px; padding: 0; line-height: 1; }
.est-cats { margin-top: 8px; }
.est-tag-frac { font-size: 11px; color: #6b5a8e; background: #efeaf7; padding: 1px 7px; border-radius: 10px; margin-left: 6px; }
.est-abrir-form { display: flex; gap: 8px; align-items: center; margin-top: 12px; flex-wrap: wrap; }
.est-abrir-form select { flex: 1; min-width: 200px; }
.linha-inativa { opacity: 0.5; }
@media (max-width: 768px) { .est-abrir-form { flex-direction: column; align-items: stretch; } .est-abrir-form select, .est-abrir-form input { min-width: 0; max-width: none; width: 100%; } }

/* Estoque: pedidos e movimentações */
.pedido-item-linha { display: flex; gap: 8px; margin-bottom: 6px; }
.pedido-item-linha select { flex: 1; }
.status-badge { font-size: 11px; padding: 2px 9px; border-radius: 10px; text-transform: capitalize; }
.status-pendente { background: #fdf2e9; color: #b9770e; }
.status-recebido { background: #eafaf1; color: #1e8449; }
.status-cancelado { background: #f2f3f4; color: #888; }
.linha-recebida { opacity: 0.6; }
.tag-recebido { font-size: 11px; color: #1e8449; background: #eafaf1; padding: 2px 8px; border-radius: 10px; }
.form-receber, .form-lancar { margin-top: 8px; }
.mov-tipo { font-size: 11px; padding: 2px 8px; border-radius: 10px; text-transform: capitalize; }
.mov-entrada { background: #eafaf1; color: #1e8449; }
.mov-aplicacao { background: #eaf2fb; color: #2471a3; }
.mov-perda { background: #fdedec; color: #c0392b; }
.mov-abertura { background: #f4ecf7; color: #7d3c98; }
.mov-ajuste { background: #fef9e7; color: #9a7d0a; }
.btn-mini-outline { background: #fff; border: 1px solid #d8cfc0; border-radius: 8px; padding: 5px 12px; font-size: 13px; cursor: pointer; margin-bottom: 8px; }

/* Campos com rótulo visível (entrada de estoque, receber pedido) */
.campo-rot { display: flex; flex-direction: column; gap: 3px; }
.campo-rot > span { font-size: 11px; color: #8a7f70; font-weight: 600; }
.campo-rot input, .campo-rot select { margin: 0; }

.tag-descontinuado { font-size: 11px; color: #888; background: #f2f3f4; padding: 1px 8px; border-radius: 10px; margin-left: 6px; }

/* Título do orçamento (apelido) */
.orc-titulo { font-size: 0.7em; font-weight: 500; color: #8a7f70; background: #f7f3ec; padding: 2px 10px; border-radius: 10px; vertical-align: middle; margin-left: 8px; }
.orc-titulo-mini { font-size: 12px; color: #8a7f70; font-style: italic; margin-left: 4px; }

/* ============================================================
   ORÇAMENTO v2 - reestilização profissional
   (as regras .bloco .classe vencem a genérica .bloco button,
   que estava sobrescrevendo e apagando os botões próprios)
   ============================================================ */

/* --- APROVAR: o botão-herói da tela. Verde vivo, presença, convite ao clique --- */
.bloco .btn-aprovar {
    background: linear-gradient(180deg, #2fbf6b 0%, #1fa457 100%);
    color: #fff; border: none; border-radius: 9px;
    padding: 8px 20px; font-size: 13.5px; font-weight: 800;
    letter-spacing: .3px; cursor: pointer; font-family: inherit;
    box-shadow: 0 3px 10px rgba(31, 164, 87, 0.38), inset 0 1px 0 rgba(255,255,255,0.25);
    transition: transform .12s ease, box-shadow .18s ease, filter .12s ease;
    white-space: nowrap;
}
.bloco .btn-aprovar::before { content: "\2713"; font-weight: 900; margin-right: 7px; }
.bloco .btn-aprovar:hover {
    box-shadow: 0 6px 18px rgba(31, 164, 87, 0.5), inset 0 1px 0 rgba(255,255,255,0.25);
    transform: translateY(-1px); filter: brightness(1.04);
}
.bloco .btn-aprovar:active { transform: translateY(0); box-shadow: 0 2px 6px rgba(31,164,87,0.4); }

/* --- APROVADO: verde de verdade, inconfundível --- */
.pill.pill-aprovado {
    background: linear-gradient(180deg, #27ae60 0%, #1f9a52 100%);
    color: #fff; box-shadow: 0 1px 4px rgba(31,154,82,0.35);
}
.item-linha.item-fechado { background: #f2fbf5; box-shadow: inset 4px 0 0 #27ae60; }
.item-linha.item-fechado .item-subtotal { color: #1f7a42; }

/* --- demais botões da tela: restaura a hierarquia (a genérica pintava tudo de azul) --- */
.bloco .btn-mini-neutro {
    background: #fff; color: #666; border: 1px solid #d5d0c6;
    padding: 7px 14px; border-radius: 8px; font-size: 12.5px; cursor: pointer;
}
.bloco .btn-mini-neutro:hover { background: #f6f4ef; border-color: #b9b2a4; color: #444; }
.bloco .btn-mini-del {
    background: #fdf0ee; color: #c0392b; border: 1px solid #f2d4cf;
    width: 30px; height: 30px; border-radius: 8px; cursor: pointer;
    font-size: 15px; line-height: 1; padding: 0; margin-left: 6px; vertical-align: middle;
}
.bloco .btn-mini-del:hover { background: #c0392b; color: #fff; border-color: #c0392b; }
.bloco .btn-mini-outline { background: #fff; border: 1px solid #d8cfc0; color: #555; border-radius: 8px; padding: 6px 13px; font-size: 13px; cursor: pointer; }
.bloco .btn-mini-outline:hover { border-color: var(--dourado, #c9a961); }
.bloco .btn-excluir { background: transparent; color: #c0392b; border: 1px solid #dcaba3; border-radius: 8px; padding: 10px 18px; font-size: 13.5px; cursor: pointer; }
.bloco .btn-excluir:hover { background: #c0392b; border-color: #c0392b; color: #fff; }

/* --- células e tabela de itens: respiro e leitura --- */
.tabela-orc td { padding: 11px 12px; vertical-align: middle; }
.tabela-orc tbody tr { transition: background .12s ease; }
.tabela-orc tbody tr:hover { background: #fbfaf7; }
.item-linha.item-fechado:hover { background: #ecf8f0; }
.tabela-orc .item-nome { font-weight: 600; color: #2c2c3a; }
.tabela-orc .item-subtotal { font-weight: 700; font-variant-numeric: tabular-nums; }
.cel-situacao { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.pill-data { font-size: 11px; color: #9a917f; }

/* --- cards de totais: o Aprovado ganha presença --- */
.orc-card { transition: box-shadow .15s ease; }
.orc-card-aprovado {
    border: 1.5px solid #a7dcb9; background: linear-gradient(180deg, #f6fdf8 0%, #eefaf2 100%);
}
.orc-card-aprovado .orc-card-rot { color: #1f7a42; font-weight: 700; }
.orc-card-aprovado .orc-card-num.verde { color: #1f9a52; }
.orc-card-aprovado .orc-card-hint { color: #6dab84; }

/* card "Em aberto" - laranja clarinho, mesma lógica do aprovado */
.orc-card-aberto {
    border: 1.5px solid #f0d199; background: linear-gradient(180deg, #fffcf5 0%, #fdf4e3 100%);
}
.orc-card-aberto .orc-card-rot { color: #9a6a12; font-weight: 700; }
.orc-card-aberto .orc-card-num.ambar { color: #c8880f; }
.orc-card-aberto .orc-card-hint { color: #c2a05a; }

/* card "Descontos" - vermelho clarinho, mesma lógica */
.orc-card-desconto {
    border: 1.5px solid #f0b8b2; background: linear-gradient(180deg, #fffafa 0%, #fdeceb 100%);
}
.orc-card-desconto .orc-card-rot { color: #b03a2e; font-weight: 700; }
.orc-card-desconto .orc-card-num { color: #d0392b; }
.orc-card-desconto .orc-card-hint { color: #d09a94; }

/* --- barra do modo edição: hierarquia clara, perigo separado à direita --- */
.barra-edicao { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.barra-acoes-perigo { margin-left: auto; display: flex; gap: 10px; }

/* --- financeiro: selo de pago e números --- */
.selo-pago {
    background: linear-gradient(180deg, #27ae60 0%, #1f9a52 100%); color: #fff;
    font-size: 12.5px; font-weight: 700; padding: 5px 14px; border-radius: 20px;
    box-shadow: 0 1px 4px rgba(31,154,82,0.3);
}
.receb-num { font-variant-numeric: tabular-nums; }

/* --- mobile --- */
@media (max-width: 768px) {
    .orc-cards { grid-template-columns: 1fr 1fr; }
    .cel-situacao { gap: 8px; }
    .bloco .btn-aprovar { padding: 9px 18px; font-size: 14px; }
    .barra-acoes-perigo { margin-left: 0; width: 100%; }
}

/* Saída de produtos no atendimento */
.linha-produtos-proc td { background: #fbfaf7; border-bottom: 2px solid #eee; padding: 8px 12px 10px 24px; }
.prod-proc { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 13px; }
.prod-proc-rot { font-size: 11px; font-weight: 700; color: #8a7f70; text-transform: uppercase; letter-spacing: .4px; }
.prod-proc-vazio { color: #b5ac9c; font-size: 12.5px; font-style: italic; }
.prod-proc-form { display: inline-block; }
.prod-proc-form summary { cursor: pointer; list-style: none; }
.form-aplicar { margin-top: 8px; display: flex; flex-direction: column; gap: 8px; }
.aplicar-linha { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.aplicar-linha select { flex: 1; min-width: 180px; }
.aplicar-previa { font-size: 12.5px; }
.previa-ok { color: #1f7a42; }
.previa-falta { color: #b9770e; }
.previa-erro { color: #c0392b; }
.aplicar-abrir { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; background: #fdf6e9; border: 1px dashed #e3c98f; border-radius: 8px; padding: 8px 10px; }
.aplicar-abrir-rot { font-size: 12px; font-weight: 700; color: #9a7d0a; }
.aplicar-abrir select { flex: 1; min-width: 160px; }
@media (max-width: 768px) {
    .aplicar-linha, .aplicar-abrir { flex-direction: column; align-items: stretch; }
    .aplicar-linha input, .aplicar-linha select { max-width: none !important; width: 100%; }
}

/* ============================================================
   ORÇAMENTO v3 - layout unificado
   cards no topo centralizados + container único (dados+itens)
   ============================================================ */
.orc-cards-topo { margin: 16px 0 20px; }
.orc-cards-topo .orc-card { text-align: center; align-items: center; }
.orc-cards-topo .orc-card-rot,
.orc-cards-topo .orc-card-num,
.orc-cards-topo .orc-card-hint { text-align: center; width: 100%; }

/* container único: sem a sensação de vários formulários soltos */
.orc-corpo { padding: 0; overflow: hidden; }
.orc-secao { padding: 22px 24px; }
.orc-secao-titulo { font-size: 15px; color: var(--azul); margin: 0 0 16px; font-weight: 700; letter-spacing: .2px; }
.orc-divisor { height: 1px; background: #eee; margin: 0; }

/* dados em modo leitura: grid limpo, sem cartõezinhos */
.orc-dados-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px 32px; }
.orc-dado { display: flex; flex-direction: column; gap: 2px; }
.orc-dado-full { grid-column: 1 / -1; }
.orc-dado-rot { font-size: 11px; text-transform: uppercase; letter-spacing: .5px; color: #a99; color: #a89d8b; font-weight: 600; }
.orc-dado-val { font-size: 14.5px; color: #2c2c3a; }
.orc-secao .tabela-orc { margin-top: 4px; }

/* autocomplete de procedimento */
.ac-wrap { position: relative; flex: 1; min-width: 200px; }
.ac-input { width: 100%; box-sizing: border-box; }
.ac-lista { position: absolute; top: 100%; left: 0; right: 0; z-index: 30; background: #fff;
    border: 1px solid #e0d9cc; border-radius: 0 0 8px 8px; box-shadow: 0 8px 20px rgba(0,0,0,0.1);
    max-height: 260px; overflow-y: auto; }
.ac-item { padding: 9px 13px; cursor: pointer; font-size: 14px; border-bottom: 1px solid #f4f0e8; }
.ac-item:last-child { border-bottom: none; }
.ac-item:hover { background: #faf6ee; color: var(--azul); }

@media (max-width: 768px) {
    .orc-secao { padding: 18px 16px; }
    .ac-wrap { min-width: 100%; }
}

/* ============================================================
   ORÇAMENTO v3.1 - form de item padronizado + filtro de área
   ============================================================ */
.orc-secao .form-add-item {
    display: flex; gap: 10px; margin-top: 16px; flex-wrap: nowrap; align-items: stretch;
}
/* todos os campos do form de item: mesma altura, mesma fonte */
.orc-inp {
    height: 42px; box-sizing: border-box; font-size: 14.5px; font-family: inherit;
    border: 1px solid #d8d1c4; border-radius: 9px; padding: 0 13px; background: #fff; color: #2c2c3a;
}
.orc-inp:focus { outline: none; border-color: var(--dourado, #c9a961); box-shadow: 0 0 0 3px rgba(201,169,97,0.12); }
.orc-inp-area { flex: 0 0 150px; }
.orc-secao .ac-wrap { flex: 1 1 auto; min-width: 160px; }
.orc-secao .ac-input { width: 100%; height: 42px; }
.orc-inp-qtd { flex: 0 0 56px; text-align: center; padding: 0 6px; }
.orc-inp-valor { flex: 0 0 108px; text-align: right; }
/* botão adicionar: quadradinho verde só com o visto, igual ao aprovar */
.btn-add-check {
    flex: 0 0 42px; width: 42px; height: 42px; border: none; border-radius: 9px; cursor: pointer;
    background: linear-gradient(180deg, #2fbf6b 0%, #1fa457 100%);
    box-shadow: 0 3px 10px rgba(31,164,87,0.38), inset 0 1px 0 rgba(255,255,255,0.25);
    transition: transform .12s ease, box-shadow .18s ease, filter .12s ease;
    display: flex; align-items: center; justify-content: center; padding: 0;
}
.btn-add-check::before { content: "\2713"; color: #fff; font-size: 19px; font-weight: 900; }
.btn-add-check:hover { transform: translateY(-1px); filter: brightness(1.04); box-shadow: 0 6px 18px rgba(31,164,87,0.5); }
.btn-add-check:active { transform: translateY(0); }
/* itens da lista do autocomplete: fonte alinhada ao input */
.orc-secao .ac-lista { top: 42px; }
.orc-secao .ac-item { font-size: 14.5px; padding: 10px 13px; }

/* desconto no total, lá embaixo depois dos itens */
.orc-secao-desconto { padding-top: 18px; padding-bottom: 18px; }
.orc-desconto-linha { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.orc-desconto-linha label { font-size: 14px; font-weight: 600; color: #4a4a5a; }
.orc-secao-desconto .orc-inp { flex: 0 0 160px; height: 42px; }
.orc-secao-desconto .dica-campo { margin-top: 6px; }

@media (max-width: 768px) {
    .orc-secao .form-add-item { flex-wrap: wrap; }
    .orc-inp-area { flex: 1 1 100%; }
    .orc-secao .ac-wrap { flex: 1 1 100%; min-width: 0; }
    .orc-inp-qtd { flex: 1 1 56px; }
    .orc-inp-valor { flex: 1 1 calc(50% - 32px); }
    .btn-add-check { flex: 0 0 42px; }
    .orc-desconto-linha { flex-direction: column; align-items: stretch; }
    .orc-secao-desconto .orc-inp { flex: 1 1 auto; }
}

/* ============================================================
   DASHBOARD v2 - clínica de alto padrão
   ============================================================ */

/* hero */
.dv2-hero { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px;
    margin-bottom: 22px; flex-wrap: wrap; }
.dv2-data { font-size: 13px; color: #a89d8b; text-transform: capitalize; letter-spacing: .3px; margin: 0 0 2px; }
.dv2-saudacao { font-size: 26px; color: var(--azul); margin: 0; letter-spacing: -0.3px; }
.dv2-nota-festa { font-size: 13.5px; color: #b8934a; margin: 6px 0 0; font-weight: 600; }
.dv2-hero-acoes { display: flex; gap: 10px; }

/* KPIs */
.dv2-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 18px; }
.dv2-kpi { background: #fff; border: 1px solid #eee7da; border-radius: 14px; padding: 18px 20px;
    display: flex; flex-direction: column; gap: 4px; box-shadow: 0 1px 3px rgba(26,26,46,0.04);
    transition: transform .15s ease, box-shadow .15s ease; text-align: center; align-items: center; }
.dv2-kpi:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(26,26,46,0.08); }
.dv2-kpi-rot { font-size: 11.5px; text-transform: uppercase; letter-spacing: .6px; color: #a89d8b; font-weight: 700; }
.dv2-kpi-num { font-size: 25px; font-weight: 800; color: var(--azul); font-variant-numeric: tabular-nums; letter-spacing: -0.4px; }
.dv2-kpi-hint { font-size: 12px; color: #b0a795; }
.dv2-kpi-var { font-size: 12.5px; font-weight: 700; }
.dv2-kpi-var.sobe { color: #1f9a52; }
.dv2-kpi-var.desce { color: #c0392b; }

/* kpi receita: o cartão premium escuro */
.dv2-kpi-vendas { background: linear-gradient(135deg, #1a1a2e 0%, #2b2b45 100%); border: none;
    box-shadow: 0 6px 20px rgba(26,26,46,0.22); }
.dv2-kpi-vendas .dv2-kpi-rot { color: #b8ac92; }
.dv2-kpi-vendas .dv2-kpi-num { color: #fff; }
.dv2-kpi-vendas .dv2-kpi-hint { color: #8f8fa8; }
.dv2-kpi-vendas .dv2-kpi-var.sobe { color: #5fd68f; }
.dv2-kpi-vendas .dv2-kpi-var.desce { color: #ff9d8f; }

/* kpi oportunidade: toque dourado */
.dv2-kpi-oportunidade { border: 1.5px solid #e8d9b8; background: linear-gradient(180deg, #fffdf8 0%, #fdf8ec 100%); }
.dv2-kpi-oportunidade .dv2-kpi-num { color: #a07f3c; }

/* kpi atenção: vencidos */
.dv2-kpi-atencao { border: 1.5px solid #f0cdc6; background: linear-gradient(180deg, #fffafa 0%, #fdf1ef 100%); }
.dv2-kpi-atencao .dv2-kpi-num { color: #c0392b; }

/* grid principal */
.dv2-grid { display: grid; grid-template-columns: 1.55fr 1fr; gap: 16px; align-items: start; }
.dv2-col-principal, .dv2-col-lateral { display: flex; flex-direction: column; gap: 16px; }
.dv2-bloco { background: #fff; border: 1px solid #eee7da; border-radius: 14px; padding: 20px 22px;
    box-shadow: 0 1px 3px rgba(26,26,46,0.04); }
.dv2-bloco-topo { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 14px; }
.dv2-bloco-topo h2 { font-size: 15px; color: var(--azul); margin: 0; font-weight: 700; }

/* gráfico de barras */
.dv2-grafico { width: 100%; height: auto; display: block; }
.dv2-barra { transition: opacity .15s ease; cursor: default; }
.dv2-barra-g:hover .dv2-barra { opacity: 1 !important; filter: brightness(1.06); }
.dv2-barra-valor { font-size: 12.5px; font-weight: 700; fill: #6b6252; font-variant-numeric: tabular-nums; }
.dv2-barra-mes { font-size: 12px; fill: #b0a795; font-weight: 600; }
.dv2-barra-mes.atual { fill: #a07f3c; font-weight: 800; }

/* agenda timeline */
.dv2-timeline { display: flex; flex-direction: column; }
.dv2-tl-item { display: flex; align-items: center; gap: 12px; padding: 10px 6px; cursor: pointer;
    border-bottom: 1px solid #f6f2ea; transition: background .12s ease; }
.dv2-tl-item:last-child { border-bottom: none; }
.dv2-tl-item:hover { background: #fbf8f2; }
.dv2-tl-hora { font-size: 13.5px; font-weight: 800; color: var(--azul); min-width: 46px; font-variant-numeric: tabular-nums; }
.dv2-tl-ponto { width: 9px; height: 9px; border-radius: 50%; background: #d8d1c4; flex: 0 0 9px; }
.dv2-tl-ponto.st-confirmado { background: #27ae60; }
.dv2-tl-ponto.st-agendado { background: #d8b96c; }
.dv2-tl-ponto.st-cancelado { background: #d0d0d0; }
.dv2-tl-nome { flex: 1; font-size: 14px; color: #2c2c3a; }

/* alertas */
.dv2-bloco-alertas { border-left: 3px solid #e3b23c; }
.dv2-alertas { display: flex; flex-direction: column; gap: 8px; }
.dv2-alerta { display: flex; align-items: center; gap: 9px; font-size: 13px; color: #5a5348;
    padding: 8px 10px; border-radius: 9px; background: #fdf9f0; }
.dv2-al-dot { width: 8px; height: 8px; border-radius: 50%; flex: 0 0 8px; }
.dv2-al-ambar .dv2-al-dot { background: #e3b23c; }
.dv2-al-vermelho { background: #fdf3f1; }
.dv2-al-vermelho .dv2-al-dot { background: #c0392b; }

/* mobile */
@media (max-width: 1024px) {
    .dv2-kpis { grid-template-columns: 1fr 1fr; }
    .dv2-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .dv2-kpis { grid-template-columns: 1fr; }
    .dv2-saudacao { font-size: 22px; }
    .dv2-hero-acoes { width: 100%; }
    .dv2-hero-acoes a { flex: 1; text-align: center; }
}

/* ============================================================
   MENU LATERAL v2 - mesma linguagem premium do dashboard
   ============================================================ */
.sidebar {
    background: linear-gradient(180deg, #1e1e34 0%, #16162a 100%);
    box-shadow: 2px 0 20px rgba(0,0,0,0.12);
    border-right: 1px solid rgba(201,169,110,0.08);
}
.sidebar-topo {
    padding: 22px 20px 16px;
    border-bottom: 1px solid rgba(201,169,110,0.12);
    margin-bottom: 8px;
}
.logo-tagline { color: #9a8f7a; font-size: 8px; letter-spacing: 1.4px; }
.sidebar-nav { padding: 6px 10px 24px; }

/* itens: mais respiro, cantos arredondados, transição suave */
.sidebar .side-item {
    border-radius: 10px; margin: 1px 0; padding: 10px 14px;
    border-left: none; color: #c4c5d2; gap: 12px;
    transition: background .15s ease, color .15s ease, transform .1s ease;
}
.sidebar .side-item:hover { background: rgba(255,255,255,.06); color: #fff; transform: translateX(2px); }
.sidebar .side-item.ativo {
    background: linear-gradient(90deg, rgba(201,169,110,.22) 0%, rgba(201,169,110,.06) 100%);
    color: var(--ouro); border-left: none;
    box-shadow: inset 0 0 0 1px rgba(201,169,110,0.18);
}
.sidebar .side-item.ativo .ico { opacity: 1; }

/* ícones em cápsula sutil */
.sidebar .side-item .ico, .sidebar .grupo-cab .ico {
    width: 26px; height: 26px; display: inline-flex; align-items: center; justify-content: center;
    font-size: 14px; opacity: .85; border-radius: 7px; flex: 0 0 26px;
}
.sidebar .side-item.ativo .ico { background: rgba(201,169,110,0.16); }

/* item solo (Painel): destaque leve */
.sidebar .side-item.solo { padding: 11px 14px; margin-bottom: 4px; font-weight: 600; }

/* cabeçalho de grupo */
.sidebar .grupo-cab {
    border-radius: 10px; margin: 1px 0; padding: 11px 14px; color: #c4c5d2;
    transition: background .15s ease, color .15s ease;
}
.sidebar .grupo-cab:hover { background: rgba(255,255,255,.06); color: #fff; }
.sidebar .grupo-menu.aberto > .grupo-cab { color: #fff; }
.sidebar .grupo-cab > span:first-child { gap: 12px; font-weight: 500; }
.sidebar .grupo-cab .seta { font-size: 10px; opacity: .55; }
.sidebar .grupo-menu.aberto > .grupo-cab .seta { color: var(--ouro); opacity: 1; }

/* subitens: recuo elegante com uma guia vertical */
.sidebar .grupo-itens { padding: 2px 0 6px; position: relative; }
.sidebar .grupo-itens .side-item {
    padding-left: 40px; font-size: 13px; margin-left: 12px;
    border-left: 1.5px solid rgba(255,255,255,0.06); border-radius: 0 8px 8px 0;
}
.sidebar .grupo-itens .side-item:hover { border-left-color: rgba(201,169,110,0.35); transform: none; }
.sidebar .grupo-itens .side-item.ativo {
    border-left: 1.5px solid var(--ouro); background: rgba(201,169,110,.14);
    box-shadow: none;
}

/* animação de abertura do grupo */
.sidebar .grupo-menu.aberto .grupo-itens { animation: menuAbre .18s ease; }
@keyframes menuAbre { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }

/* scrollbar discreta */
.sidebar::-webkit-scrollbar { width: 6px; }
.sidebar::-webkit-scrollbar-thumb { background: rgba(201,169,110,0.2); border-radius: 3px; }
.sidebar::-webkit-scrollbar-track { background: transparent; }

/* ============================================================
   PROFISSIONAL v2 - visualização e form (linguagem premium)
   ============================================================ */
.pv-card-txt { font-size: 14px; font-weight: 600; color: #2c2c3a; line-height: 1.3; }
.orc-card-principal .pv-card-txt { color: #fff; }

/* WhatsApp clicável */
.pv-zap { color: #1f9a52; text-decoration: none; font-weight: 600; display: inline-flex; align-items: center; gap: 5px; }
.pv-zap:hover { text-decoration: underline; }
.pv-zap-ico { font-size: 11px; opacity: .7; }

/* regras de comissão (checklist visual) */
.pv-regras { display: flex; flex-direction: column; gap: 10px; margin-bottom: 8px; }
.pv-regra { display: flex; align-items: center; gap: 12px; font-size: 14px; color: #4a4a5a; }
.pv-regra-ico { width: 24px; height: 24px; border-radius: 7px; display: inline-flex; align-items: center;
    justify-content: center; font-weight: 800; flex: 0 0 24px; font-size: 14px; }
.pv-regra-ico.ativa { background: rgba(31,154,82,.14); color: #1f9a52; }
.pv-regra-ico.inativa { background: #f2f3f4; color: #c4bbaa; }

.pv-sub { font-size: 14px; color: var(--azul); margin: 20px 0 12px; font-weight: 700; }
.pv-tabela-exc { max-width: 480px; }
.pv-tabela-exc .num { text-align: right; }

/* chips de clínicas */
.pv-clinicas { display: flex; gap: 10px; flex-wrap: wrap; }
.pv-clinica-chip { background: #f7f3ec; color: #8a7f70; border: 1px solid #ece3d3; border-radius: 20px;
    padding: 6px 16px; font-size: 13.5px; font-weight: 600; }


/* ============================================================
   ESTOQUE v2 - banho profissional (clínica de primeiro mundo)
   ============================================================ */
.tabela-estoque .num, .tabela-mov .num { text-align: right; font-variant-numeric: tabular-nums; }
.est-un { color: #a89d8b; font-size: 12px; font-weight: 400; }
.est-tag-frac { font-size: 10.5px; background: rgba(201,169,110,.16); color: #a07f3c; padding: 2px 9px; border-radius: 10px; margin-left: 6px; font-weight: 600; }
.est-tag-min { font-size: 10.5px; background: #fdeceb; color: #c0392b; padding: 2px 9px; border-radius: 10px; margin-left: 6px; font-weight: 600; }
.tabela-estoque .item-abaixo-min { background: #fefaf9; box-shadow: inset 3px 0 0 #e3564a; }
.tabela-estoque .item-abaixo-min:hover { background: #fdf3f1; }

/* card de alerta no painel */
.est-card-alerta { border: 1.5px solid #f0cdc6; background: linear-gradient(180deg, #fffafa 0%, #fdf1ef 100%); }

/* bloco de alertas detalhados */
.est-alertas-bloco { border-left: 3px solid #e3b23c; }
.est-alertas-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; }
.est-alerta-col { display: flex; flex-direction: column; gap: 6px; }
.est-alerta-rot { font-size: 11px; text-transform: uppercase; letter-spacing: .5px; font-weight: 700; margin-bottom: 4px; }
.est-rot-min { color: #c0392b; }
.est-rot-venc { color: #b9770e; }
.est-rot-diluido { color: #9a2fb0; }
.est-alerta-item { display: flex; align-items: center; gap: 9px; font-size: 13px; color: #4a4a5a;
    text-decoration: none; padding: 7px 10px; border-radius: 8px; background: #fbfaf7; transition: background .12s; }
.est-alerta-item:hover { background: #f4f0e8; }
.est-al-dot { width: 8px; height: 8px; border-radius: 50%; flex: 0 0 8px; }
.est-dot-min { background: #e3564a; }
.est-dot-venc { background: #e3b23c; }
.est-dot-diluido { background: #9a2fb0; }
.est-alerta-val { margin-left: auto; font-size: 12px; color: #a89d8b; font-weight: 500; }

/* badges de tipo de movimentação (traduzidos e coloridos) */
.mov-badge { display: inline-block; font-size: 11px; font-weight: 700; padding: 4px 11px; border-radius: 20px; letter-spacing: .2px; white-space: nowrap; }
.mov-entrada { background: #d6f0dd; color: #1f7a42; }
.mov-abertura { background: #e0ecfb; color: #2a5fa8; }
.mov-aplicacao { background: #d3ecea; color: #00695c; }
.mov-perda { background: #fdeceb; color: #c0392b; }
.mov-ajuste { background: #eef0f2; color: #5a6570; }
.mov-transferencia_saida { background: #fdf0e3; color: #b9770e; }
.mov-transferencia_entrada { background: #ede3fb; color: #7a3fb0; }
.mov-mais { color: #1f9a52; font-weight: 700; }
.mov-menos { color: #c0392b; font-weight: 700; }

/* status de pedido */
.est-status-pendente { background: #fdf3dd; color: #a9791a; }
.est-status-recebido { background: #d6f0dd; color: #1f7a42; }
.est-status-cancelado { background: #eef0f2; color: #889; }

/* trajeto da transferência */
.est-trajeto { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; }
.est-seta { color: var(--ouro); font-weight: 700; }

/* barra de progresso do pedido */
.est-progresso { display: flex; align-items: center; gap: 10px; }
.est-progresso-barra { flex: 1; max-width: 120px; height: 7px; background: #eee7da; border-radius: 4px; overflow: hidden; }
.est-progresso-fill { height: 100%; background: linear-gradient(90deg, #2fbf6b, #1fa457); border-radius: 4px; transition: width .3s; }
.est-progresso-txt { font-size: 12px; color: #8a7f70; font-weight: 600; font-variant-numeric: tabular-nums; }

/* painel de lançamento (transferência, pedido, produto) */
.est-lancar { border-radius: 10px; }
.est-lancar-sum { cursor: pointer; list-style: none; font-size: 15px; font-weight: 600; color: var(--azul);
    padding: 6px 0; display: flex; align-items: center; gap: 10px; }
.est-lancar-sum::-webkit-details-marker { display: none; }
.est-lancar-ico { width: 30px; height: 30px; border-radius: 9px; background: rgba(201,169,110,.15); color: #a07f3c;
    display: inline-flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 700; }
.est-lancar[open] .est-lancar-sum { margin-bottom: 14px; }
.est-lancar-corpo { animation: menuAbre .18s ease; }
.est-form-transf, .est-cat-form { display: flex; flex-direction: column; gap: 12px; }
.est-cat-form { flex-direction: row; align-items: center; }
.est-cat-form .orc-inp { max-width: 280px; }
.est-transf-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; }
.est-campo { display: flex; flex-direction: column; gap: 5px; }
.est-campo label { font-size: 12px; font-weight: 600; color: #8a7f70; }
.est-campo-qtd { max-width: 130px; }
.est-campo-nome { grid-column: span 2; }
.est-mini-label { font-size: 12px; font-weight: 600; color: #8a7f70; margin-top: 4px; }
.est-pedido-linha { display: flex; gap: 10px; margin-bottom: 8px; }
.est-pedido-linha .orc-inp { flex: 1; }
.est-inp-qtd { max-width: 120px; flex: 0 0 120px !important; }
.est-obs { width: 100%; box-sizing: border-box; }
.est-btn-transf { align-self: flex-start; }
.est-chk { margin: 4px 0; }

/* categorias */
.est-cats { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.est-cat-chip { display: inline-flex; align-items: center; gap: 6px; }
.est-chip-x { background: none; border: none; color: #b5ac9c; cursor: pointer; font-size: 15px; padding: 0; line-height: 1; }
.est-chip-x:hover { color: #c0392b; }

@media (max-width: 768px) {
    .est-transf-grid { grid-template-columns: 1fr; }
    .est-campo-nome { grid-column: span 1; }
    .est-cat-form { flex-direction: column; align-items: stretch; }
    .est-cat-form .orc-inp { max-width: none; }
    .est-alertas-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   FICHA DE ATENDIMENTO v2 (av-*) - visualização + edição
   ============================================================ */
/* evolução clínica em leitura: respeita quebras de linha */
.av-evolucao { white-space: pre-wrap; line-height: 1.55; color: #3a3a48; }

/* orçamento vinculado */
.av-orc-ligado { display: flex; align-items: center; gap: 14px; background: #f7f3ec; border: 1px solid #ece3d3;
    border-radius: 10px; padding: 12px 16px; font-size: 14px; color: #4a4a5a; margin-bottom: 8px; }
.av-orc-ligado b { color: var(--azul); }

/* cards de procedimento realizado */
.av-procs { display: flex; flex-direction: column; gap: 14px; }
.av-proc-card { border: 1px solid #ece7dd; border-radius: 12px; padding: 16px 18px; background: #fdfcfa;
    transition: box-shadow .15s ease; }
.av-proc-card:hover { box-shadow: 0 2px 10px rgba(26,26,46,.05); }
.av-proc-topo { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.av-proc-info { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.av-proc-nome { font-size: 15px; font-weight: 700; color: var(--azul); }
.av-proc-qtd { font-size: 12px; color: #8a7f70; background: #f2ede4; padding: 2px 10px; border-radius: 10px; font-weight: 600; }
.av-proc-obs { margin: 8px 0 0; font-size: 13.5px; color: #6a6a78; font-style: italic; }

/* produtos utilizados dentro do card */
.av-proc-produtos { margin-top: 14px; padding-top: 12px; border-top: 1px dashed #ece3d3; }
.av-prod-rot { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .5px;
    color: #a89d8b; font-weight: 700; margin-bottom: 8px; }
.av-prod-chips { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; }

/* formulários inline no modo edição */
.av-linha-inline { display: flex; gap: 10px; align-items: center; }
.av-add-proc { display: flex; gap: 10px; align-items: center; margin-top: 14px; flex-wrap: wrap; }
.av-add-proc .orc-inp-qtd { max-width: 70px; flex: 0 0 70px; text-align: center; }
.av-marcacao { display: flex; gap: 8px; align-items: center; margin-top: 12px; flex-wrap: wrap; }
.av-marcacao .orc-inp { flex: 1; min-width: 120px; }
.av-marcacao .orc-inp-qtd { max-width: 70px; flex: 0 0 70px; min-width: 70px; text-align: center; }

/* barra de ações da sessão */
.av-acoes { display: flex; align-items: center; gap: 12px; }
.av-nota-excluir { margin: 0; }

@media (max-width: 768px) {
    .av-proc-topo { flex-direction: column; }
    .av-add-proc, .av-marcacao { flex-direction: column; align-items: stretch; }
    .av-add-proc .orc-inp-qtd, .av-marcacao .orc-inp-qtd { max-width: none; flex: 1; }
}

/* ============================================================
   INICIAR ATENDIMENTO - mini form estilo orçamento
   ============================================================ */
.at-iniciar-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 14px; align-items: end; }
.at-campo { display: flex; flex-direction: column; gap: 6px; }
.at-campo label { font-size: 12px; font-weight: 600; color: #8a7f70; }
.at-campo .autocomplete { position: relative; }
.at-campo .orc-inp, .at-campo select.orc-inp { width: 100%; box-sizing: border-box; }
.at-motivo-outro { margin-top: 14px; max-width: 420px; }
.at-iniciar-grid .ac-lista { position: absolute; top: 100%; left: 0; right: 0; z-index: 30; }

/* ============================================================
   RESPONSIVIDADE MOBILE - telas novas (v2)
   ============================================================ */
@media (max-width: 768px) {
    /* cabeçalho com ações (Editar/Voltar) empilha e ações ocupam largura */
    .cabecalho-lista { flex-direction: column; align-items: stretch; }
    .dash-acoes { width: 100%; flex-wrap: wrap; }
    .dash-acoes .btn-dash-cheio, .dash-acoes .btn-dash-outline, .dash-acoes .btn-voltar { flex: 1; text-align: center; box-sizing: border-box; }

    /* cards de topo (orçamento/profissional/atendimento/estoque): 2 colunas */
    .orc-cards-topo { grid-template-columns: 1fr 1fr !important; }

    /* iniciar atendimento vira coluna única */
    .at-iniciar-grid { grid-template-columns: 1fr; }
    .at-motivo-outro { max-width: none; }

    /* container único de seções: menos padding lateral */
    .orc-corpo .orc-secao { padding-left: 16px; padding-right: 16px; }

    /* cards de procedimento da ficha */
    .av-proc-topo { flex-direction: row; align-items: flex-start; }
    .av-proc-info { gap: 7px; }
    .aplicar-linha { flex-direction: column; align-items: stretch; }
    .aplicar-linha .orc-inp, .aplicar-linha select, .aplicar-linha input { width: 100% !important; max-width: none !important; box-sizing: border-box; }
    .aplicar-abrir { flex-direction: column; align-items: stretch; }
    .aplicar-abrir .orc-inp { max-width: none !important; width: 100% !important; }

    /* formulários inline de adicionar (procedimento, marcação) empilham */
    .av-add-proc, .av-marcacao, .av-linha-inline { flex-direction: column; align-items: stretch; }
    .av-add-proc .orc-inp, .av-marcacao .orc-inp, .av-linha-inline .orc-inp { width: 100% !important; max-width: none !important; box-sizing: border-box; }
    .av-add-proc .btn-add-check, .av-marcacao .btn-add-check { width: 100%; }

    /* estoque: formulários em painel viram coluna */
    .est-transf-grid { grid-template-columns: 1fr; }
    .est-campo-nome, .est-campo-qtd { max-width: none; }
    .est-pedido-linha { flex-direction: column; }
    .est-inp-qtd { max-width: none !important; flex: 1 !important; }
    .est-btn-transf { width: 100%; box-sizing: border-box; text-align: center; }
    .est-alertas-grid { grid-template-columns: 1fr; }

    /* profissional: dados e regras em coluna */
    .orc-dados-grid { grid-template-columns: 1fr !important; }
    .checks-clinicas { grid-template-columns: 1fr; }

    /* botão aprovar (verde) ocupa largura no mobile */
    .btn-aprovar { width: 100%; box-sizing: border-box; text-align: center; }
    /* mas não dentro de linhas de tabela (executar item) */
    .tabela .btn-aprovar { width: auto; display: inline-block; }

    /* menu lateral v2: subitens com recuo menor */
    .sidebar .grupo-itens .side-item { padding-left: 46px; }
}

@media (max-width: 480px) {
    /* cards de topo em coluna única no celular pequeno */
    .orc-cards-topo { grid-template-columns: 1fr !important; }
    .orc-card-principal .orc-card-num, .orc-card .orc-card-num { font-size: 26px; }
    /* seções com respiro reduzido */
    .orc-secao-titulo { font-size: 15px; }
    .av-proc-card { padding: 14px; }
}

/* ============================================================
   MAPA VISUAL CLICÁVEL (face / corpo / odontograma)
   ============================================================ */
.mapa-wrap { position: relative; max-width: 340px; margin: 8px auto 4px; border: 1px solid #eee7da;
    border-radius: 14px; background: linear-gradient(180deg, #fdfcfa, #f8f4ee); padding: 12px; }
.mapa-wrap.mapa-odo { max-width: 640px; }
.mapa-wrap[data-editavel="1"] { cursor: crosshair; }
.mapa-svg { display: block; width: 100%; height: auto; }
.mapa-img { display: block; width: 100%; height: auto; border-radius: 8px; user-select: none; -webkit-user-drag: none; }

/* odontograma: dentes clicáveis */
.odontograma-svg .dente-forma { fill: #fff; stroke: #cbb79a; stroke-width: 1.5; transition: fill .12s, stroke .12s; }
.odontograma-svg .dente { cursor: pointer; }
.mapa-wrap[data-editavel="1"] .odontograma-svg .dente:hover .dente-forma { fill: #f5ecd8; stroke: var(--ouro); }
.odontograma-svg .dente-num { font-size: 11px; fill: #7a6f5c; font-weight: 600; pointer-events: none; }
.odo-arcada-lbl { font-size: 11px; fill: #a89d8b; font-weight: 600; letter-spacing: .3px; }

/* marcadores por cima do mapa */
.mapa-pontos { position: absolute; inset: 12px; pointer-events: none; }
.mapa-ponto { position: absolute; transform: translate(-50%, -50%); pointer-events: auto; }
.mapa-ponto-dot { display: block; width: 15px; height: 15px; border-radius: 50%;
    background: radial-gradient(circle at 35% 35%, #ff6b6b, #d1352f); border: 2px solid #fff;
    box-shadow: 0 1px 4px rgba(0,0,0,.3); cursor: pointer; transition: transform .12s; }
.mapa-ponto:hover .mapa-ponto-dot { transform: scale(1.25); }
.mapa-ponto-info { position: absolute; bottom: 130%; left: 50%; transform: translateX(-50%);
    background: #2b2b45; color: #fff; padding: 9px 12px; border-radius: 10px; font-size: 12px;
    white-space: nowrap; display: none; flex-direction: column; gap: 3px; z-index: 20;
    box-shadow: 0 6px 20px rgba(0,0,0,.25); }
.mapa-ponto-info b { font-size: 12.5px; }
.mapa-ponto-info span { opacity: .85; }
.mapa-ponto:hover .mapa-ponto-info { display: flex; }
.mapa-ponto-info::after { content: ''; position: absolute; top: 100%; left: 50%; transform: translateX(-50%);
    border: 6px solid transparent; border-top-color: #2b2b45; }
.mapa-ponto-del { background: none; border: none; color: #ff9b9b; cursor: pointer; font-size: 11px;
    padding: 2px 0 0; text-decoration: underline; }

/* marcações legado (sem coordenada) */
.mapa-legado { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

/* modal de marcação */
.mapa-modal-overlay { position: fixed; inset: 0; background: rgba(20,20,35,.55); z-index: 200;
    display: flex; align-items: center; justify-content: center; padding: 16px; }
.mapa-modal { background: #fff; border-radius: 16px; padding: 22px 24px; width: 100%; max-width: 400px;
    box-shadow: 0 20px 60px rgba(0,0,0,.3); animation: menuAbre .18s ease; }
.mapa-modal-titulo { font-size: 17px; color: var(--azul); margin: 0 0 16px; font-weight: 700; }
.mapa-modal .campo { margin-bottom: 12px; }
.mapa-modal .campo label { font-size: 12px; font-weight: 600; color: #8a7f70; display: block; margin-bottom: 5px; }
.mapa-modal-grid { display: grid; grid-template-columns: 1fr 90px; gap: 10px; }
.mapa-modal-acoes { display: flex; gap: 10px; justify-content: flex-end; margin-top: 18px; }
.mapa-modal-acoes .btn-aprovar { width: auto; }

@media (max-width: 768px) {
    .mapa-wrap.mapa-odo { max-width: 100%; overflow-x: auto; }
    .mapa-modal { max-width: none; }
}

/* ============================================================
   PROCEDIMENTOS v2 - cores por área, tabela de valores
   ============================================================ */
/* pills de resumo por área */
.proc-areas-resumo { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
.proc-area-pill { display: inline-flex; align-items: center; gap: 8px; padding: 8px 15px; border-radius: 22px;
    background: #fff; border: 1.5px solid var(--cor); color: #444; text-decoration: none; font-size: 13.5px;
    font-weight: 500; transition: background .12s; }
.proc-area-pill:hover { background: color-mix(in srgb, var(--cor) 8%, #fff); }
.proc-area-pill b { color: var(--cor); }
.proc-area-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--cor); flex: 0 0 10px; }

/* bloco de cada área com faixa colorida */
.proc-bloco-area { border-top: 3px solid var(--cor); padding-top: 0; overflow: hidden; }
.proc-area-cab { display: flex; align-items: center; gap: 11px; padding: 16px 4px 14px; }
.proc-area-cab h2 { margin: 0; font-size: 16px; color: var(--azul); }
.proc-area-count { margin-left: auto; font-size: 12px; color: #a89d8b; font-weight: 500; }

.tabela-proc .num { text-align: right; font-variant-numeric: tabular-nums; }
.tabela-proc .col-cashback, .tabela-proc .col-status { width: 100px; text-align: center; }
.proc-nome-link { color: #2c2c3a; font-weight: 600; text-decoration: none; }
.proc-nome-link:hover { color: var(--cor); text-decoration: underline; }
.proc-tag-lab { font-size: 10.5px; background: #eef0f2; color: #667; padding: 2px 8px; border-radius: 9px; margin-left: 6px; }
.proc-mini-sim { font-size: 12px; color: #1f9a52; font-weight: 600; }

/* célula de preço editável */
.proc-preco-cel { white-space: nowrap; }
.proc-preco-view { font-weight: 600; color: #2c2c3a; }
.proc-preco-edit { align-items: center; gap: 4px; justify-content: flex-end; }
.proc-rs { color: #a89d8b; font-size: 13px; }
.proc-preco-inp { max-width: 110px; text-align: right; height: 36px; font-size: 14px; }

/* barra fixa de salvar preços */
.proc-barra-precos { display: flex; align-items: center; gap: 14px; position: sticky; bottom: 12px;
    box-shadow: 0 4px 20px rgba(26,26,46,.12); }
.proc-barra-precos .dica-campo { margin: 0; margin-right: auto; }

@media (max-width: 768px) {
    .tabela-proc .col-cashback { display: none; }
    .proc-preco-inp { max-width: 90px; }
    .proc-barra-precos { flex-wrap: wrap; }
}

/* ============================================================
   AVATAR DE PERFIL (foto no cofre S3)
   ============================================================ */
.cab-com-avatar { display: flex; align-items: center; gap: 16px; }
.avatar-perfil { position: relative; flex: 0 0 auto; border-radius: 50%; overflow: visible; }
.avatar-perfil-img, .avatar-perfil-inicial { display: block; border-radius: 50%; object-fit: cover;
    background: linear-gradient(135deg, #c9a961, #a07f3c); color: #fff; font-weight: 700;
    text-align: center; }
.avatar-perfil-inicial { display: flex; align-items: center; justify-content: center; }
/* tamanhos */
.avatar-g .avatar-perfil-img, .avatar-g .avatar-perfil-inicial { width: 72px; height: 72px; font-size: 28px; }
.avatar-m .avatar-perfil-img, .avatar-m .avatar-perfil-inicial { width: 48px; height: 48px; font-size: 20px; }
.avatar-perfil-img { border: 3px solid #fff; box-shadow: 0 2px 8px rgba(26,26,46,.15); }

/* botão de câmera (trocar foto) */
.avatar-form { position: absolute; bottom: -2px; right: -2px; margin: 0; }
.avatar-btn-cam { display: flex; align-items: center; justify-content: center; width: 26px; height: 26px;
    background: var(--azul); border-radius: 50%; cursor: pointer; border: 2px solid #fff;
    box-shadow: 0 1px 4px rgba(0,0,0,.2); transition: transform .12s; }
.avatar-btn-cam:hover { transform: scale(1.1); }
.avatar-cam-ico { font-size: 12px; line-height: 1; }
/* botão remover */
.avatar-form-del { position: absolute; top: -2px; right: -2px; margin: 0; }
.avatar-btn-del { width: 20px; height: 20px; border-radius: 50%; background: #e3564a; color: #fff;
    border: 2px solid #fff; cursor: pointer; font-size: 12px; line-height: 1; padding: 0;
    display: flex; align-items: center; justify-content: center; box-shadow: 0 1px 3px rgba(0,0,0,.2); }
.avatar-btn-del:hover { background: #c0392b; }

/* campo de paciente travado no modal (quando vem da ficha do paciente) */
.ag-paciente-fixo { padding: 11px 14px; background: #f5f1e8; border: 1px solid #e6dcc5; border-radius: 8px;
    font-weight: 600; color: #2c2c3a; font-size: 15px; }

/* ============================================================
   PROGRESSO DO ORÇAMENTO (painel + linha do tempo)
   ============================================================ */
.prog-orc { }
.prog-orc-cab { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 12px; }
.prog-orc-cab h2 { margin: 0; font-size: 17px; color: var(--azul); }
.prog-orc-pct { font-size: 26px; font-weight: 800; color: var(--dourado, #c9a961); }
.prog-orc-barra { height: 10px; background: #eee7da; border-radius: 6px; overflow: hidden; margin-bottom: 10px; }
.prog-orc-barra-fill { height: 100%; background: linear-gradient(90deg, #c9a961, #a07f3c); border-radius: 6px; transition: width .4s ease; }
.prog-orc-resumo { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 6px; font-size: 13.5px; color: #6b6357; margin-bottom: 18px; }
.prog-orc-resumo b { color: #2c2c3a; }
.prog-orc-pend { color: #b58a2e; font-weight: 600; }

.prog-orc-itens { display: flex; flex-direction: column; gap: 7px; }
.prog-item { display: flex; align-items: center; gap: 11px; padding: 10px 13px; border-radius: 9px; background: #faf8f4; border: 1px solid #f0ebe0; }
.prog-item-executado { background: #f0f9f2; border-color: #cfe9d6; }
.prog-item-ico { flex: 0 0 22px; width: 22px; height: 22px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; }
.prog-item-executado .prog-item-ico { background: #1f9a52; color: #fff; }
.prog-item-fechado .prog-item-ico { background: #f3e2b8; color: #8a6d1e; }
.prog-item-orcado .prog-item-ico { background: #e6e2d8; color: #9a917f; }
.prog-item-desc { flex: 1; font-weight: 600; color: #2c2c3a; font-size: 14px; }
.prog-item-qtd { color: #9a917f; font-weight: 500; }
.prog-item-info { font-size: 12.5px; }
.prog-item-feito { color: #1f9a52; font-weight: 600; }
.prog-item-pend { color: #b58a2e; }
.prog-item-orc { color: #9a917f; }

.prog-orc-timeline { margin-top: 22px; border-top: 1px solid #f0ebe0; padding-top: 16px; }
.prog-timeline-titulo { font-size: 13px; text-transform: uppercase; letter-spacing: .4px; color: #a89d8b; margin: 0 0 12px; }
.prog-timeline-lista { display: flex; flex-direction: column; gap: 8px; }
.prog-timeline-item { display: flex; align-items: center; gap: 14px; padding: 11px 14px; border-radius: 9px;
    background: #fff; border: 1px solid #eee7da; text-decoration: none; color: inherit; transition: border-color .12s, transform .12s; }
.prog-timeline-item:hover { border-color: var(--dourado, #c9a961); transform: translateX(2px); }
.prog-timeline-data { font-weight: 700; color: var(--azul); font-size: 14px; flex: 0 0 auto; }
.prog-timeline-info { flex: 1; font-size: 13px; color: #6b6357; }
.prog-timeline-status { font-size: 11.5px; padding: 3px 10px; border-radius: 10px; font-weight: 600; }

@media (max-width: 768px) {
    .prog-orc-resumo { flex-direction: column; gap: 2px; }
    .prog-timeline-item { flex-wrap: wrap; gap: 6px; }
}

/* desconto em vermelho (lista de itens e campo do total) */
.txt-desconto { color: #d0392b; font-weight: 600; }
.txt-desconto-inp { color: #d0392b; font-weight: 600; }
.orc-desconto-campo { display: flex; gap: 8px; align-items: center; }
.btn-aplicar-desc { background: var(--azul, #1a1a2e); color: #fff; border: none; border-radius: 8px;
    padding: 0 18px; height: 40px; font-weight: 600; cursor: pointer; white-space: nowrap; transition: filter .12s; }
.btn-aplicar-desc:hover { filter: brightness(1.15); }

/* form de adicionar item com rótulos em cima de cada campo */
.form-add-item-rotulado { align-items: flex-end; }
.form-add-item-rotulado .add-campo { display: flex; flex-direction: column; gap: 4px; flex: 0 0 auto; }
.form-add-item-rotulado .add-campo > label { font-size: 11px; font-weight: 600; color: #8a7f70;
    text-transform: uppercase; letter-spacing: .3px; white-space: nowrap; }
.form-add-item-rotulado .add-campo > label.label-desconto { color: #c0392b; }
.form-add-item-rotulado .add-campo-proc { flex: 1 1 auto; min-width: 180px; }
.form-add-item-rotulado .add-campo-proc .ac-wrap { width: 100%; }
.form-add-item-rotulado .add-campo-area { flex: 0 0 130px; }
.form-add-item-rotulado .add-campo-area select { width: 100%; min-width: 0; }
.form-add-item-rotulado .add-campo-qtd { flex: 0 0 64px; }
.form-add-item-rotulado .add-campo-qtd input { width: 100%; }
.form-add-item-rotulado .add-campo-preco { flex: 0 0 128px; }
.form-add-item-rotulado .add-campo-desc { flex: 0 0 120px; }
.form-add-item-rotulado .add-campo-preco input,
.form-add-item-rotulado .add-campo-desc input { width: 100%; }
.form-add-item-rotulado .btn-add-check { margin-bottom: 1px; flex: 0 0 auto; }
/* neutraliza o flex/largura das classes antigas quando dentro do form rotulado
   (a largura agora é controlada pelo .add-campo pai) */
.form-add-item-rotulado .orc-inp-area,
.form-add-item-rotulado .orc-inp-qtd,
.form-add-item-rotulado .orc-inp-valor { flex: 1 1 auto; width: 100%; }

/* ============================================================
   MODAL DE CAIXA (registrar pagamento com múltiplas formas)
   ============================================================ */
.caixa-modal-overlay { display: none; position: fixed; inset: 0; background: rgba(20,18,30,.55);
    z-index: 1000; align-items: flex-start; justify-content: center; padding: 40px 16px; overflow-y: auto; }
.caixa-modal-overlay.aberto { display: flex; }
.caixa-modal { background: #fff; border-radius: 16px; width: 100%; max-width: 520px; padding: 28px;
    box-shadow: 0 20px 60px rgba(0,0,0,.3); position: relative; }
.caixa-fechar { position: absolute; top: 16px; right: 18px; background: none; border: none; font-size: 26px;
    color: #aaa; cursor: pointer; line-height: 1; }
.caixa-fechar:hover { color: #666; }
.caixa-titulo { margin: 0 0 3px; font-size: 20px; color: var(--azul, #1a1a2e); }
.caixa-paciente { font-size: 13px; color: #8a7f70; margin-bottom: 18px; }

.caixa-saldo-box { display: flex; align-items: center; justify-content: space-between;
    background: linear-gradient(135deg, #1a1a2e, #2c2c44); color: #fff; border-radius: 12px;
    padding: 16px 20px; margin-bottom: 20px; }
.caixa-saldo-rot { font-size: 13px; color: #b8b8cc; text-transform: uppercase; letter-spacing: .5px; }
.caixa-saldo-val { font-size: 26px; font-weight: 800; color: #f0d9a0; }

.caixa-formas { display: flex; flex-direction: column; gap: 12px; margin-bottom: 12px; }
.caixa-forma-linha { background: #faf8f4; border: 1px solid #eee7da; border-radius: 10px; padding: 12px; }
.caixa-forma-topo { display: flex; gap: 8px; align-items: center; }
.caixa-forma-topo .cx-forma { flex: 1 1 auto; }
.caixa-forma-topo .cx-valor { flex: 0 0 120px; text-align: right; font-weight: 600; }
.cx-remover { flex: 0 0 auto; background: #f4e6e4; color: #c0392b; border: none; border-radius: 7px;
    width: 34px; height: 34px; font-size: 18px; cursor: pointer; line-height: 1; }
.cx-remover:hover { background: #ecd0cc; }
.caixa-forma-cartao { display: flex; gap: 8px; margin-top: 10px; align-items: center; }
.caixa-forma-cartao .cx-bandeira { flex: 1 1 auto; }
.cx-parcelas-campo { display: flex; align-items: center; gap: 6px; font-size: 12px; color: #8a7f70; }
.cx-parcelas-campo input { width: 60px; }

.caixa-add-forma { width: 100%; background: #fff; border: 1.5px dashed #d8cdb8; color: #8a6d1e;
    border-radius: 10px; padding: 11px; font-weight: 600; cursor: pointer; margin-bottom: 18px; transition: background .12s; }
.caixa-add-forma:hover { background: #fdf9f0; }

.caixa-resumo { background: #f7f5f0; border-radius: 10px; padding: 14px 16px; margin-bottom: 18px; }
.caixa-resumo-linha { display: flex; justify-content: space-between; font-size: 14px; padding: 3px 0; color: #5a5348; }
.caixa-resumo-linha span:last-child { font-weight: 700; font-variant-numeric: tabular-nums; }
.caixa-resumo-falta span:last-child { color: #b58a2e; }
.caixa-resumo-troco { color: #1f9a52; border-top: 1px dashed #ddd; margin-top: 4px; padding-top: 7px; }
.caixa-resumo-troco span:last-child { color: #1f9a52; }

.caixa-data-obs { display: flex; gap: 12px; margin-bottom: 16px; }
.caixa-campo { display: flex; flex-direction: column; gap: 4px; }
.caixa-campo label { font-size: 11px; font-weight: 600; color: #8a7f70; text-transform: uppercase; letter-spacing: .3px; }
.caixa-campo-obs { flex: 1; }

.caixa-acoes { display: flex; justify-content: flex-end; gap: 10px; }

@media (max-width: 560px) {
    .caixa-modal { padding: 20px; }
    .caixa-data-obs { flex-direction: column; gap: 10px; }
    .caixa-forma-topo .cx-valor { flex: 0 0 100px; }
}

/* botão iniciar atendimento a partir do orçamento */
.btn-iniciar-atend { background: #1f9a52 !important; border-color: #1f9a52 !important; }
.btn-iniciar-atend:hover { filter: brightness(1.08); }

/* ============================================================
   HISTÓRICO DE ATENDIMENTOS EM CARDS (prontuário)
   ============================================================ */
.hist-atend-lista { display: flex; flex-direction: column; gap: 12px; }
.hist-atend-card { display: block; text-decoration: none; color: inherit; background: #fff;
    border: 1px solid #eee7da; border-left: 4px solid #c9a961; border-radius: 11px; padding: 15px 18px;
    transition: border-color .12s, box-shadow .12s, transform .12s; }
.hist-atend-card:hover { border-color: #c9a961; box-shadow: 0 3px 14px rgba(201,169,97,.16); transform: translateY(-1px); }
.hist-atend-aberto { border-left-color: #d99a2b; }
.hist-atend-concluido { border-left-color: #1f9a52; }

.hist-atend-topo { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.hist-atend-data-bloco { display: flex; align-items: center; gap: 10px; }
.hist-atend-data { font-size: 16px; font-weight: 700; color: var(--azul, #1a1a2e); }
.hist-atend-orc { font-size: 12px; color: #8a6d1e; background: #f7f0dd; padding: 3px 10px; border-radius: 8px; font-weight: 600; }

.hist-atend-meta { font-size: 13px; color: #6b6357; margin-bottom: 10px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.hist-atend-prof { font-weight: 600; color: #2c2c3a; }
.hist-atend-sep { color: #ccc; }
.hist-atend-motivo { color: #8a6d1e; font-weight: 600; }

.hist-atend-linha { font-size: 13.5px; color: #4a4438; line-height: 1.5; margin-top: 5px; }
.hist-atend-rot { font-size: 11px; font-weight: 700; color: #a89d8b; text-transform: uppercase;
    letter-spacing: .3px; margin-right: 6px; }
.hist-atend-procs { color: #1f7a42; font-weight: 500; }
.hist-atend-evol { color: #6b6357; }
.hist-atend-vazio { font-size: 13px; color: #b0a999; font-style: italic; margin-top: 4px; }

@media (max-width: 560px) {
    .hist-atend-topo { flex-direction: column; align-items: flex-start; gap: 6px; }
}

/* resumo do orçamento vinculado dentro do atendimento */
.av-orc-resumo { background: linear-gradient(180deg, #fbf8f1 0%, #f7f1e3 100%); border: 1px solid #ece2c9;
    border-radius: 11px; padding: 15px 18px; margin-bottom: 16px; }
.av-orc-resumo-topo { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.av-orc-resumo-rot { font-size: 12px; color: #a89d8b; text-transform: uppercase; letter-spacing: .4px; }
.av-orc-resumo-num { font-size: 17px; font-weight: 700; color: var(--azul, #1a1a2e); text-decoration: none; margin-left: 6px; }
.av-orc-resumo-num:hover { color: #c9a961; }
.av-orc-barra { height: 8px; background: #eadfc4; border-radius: 5px; overflow: hidden; margin-bottom: 9px; }
.av-orc-barra-fill { height: 100%; background: linear-gradient(90deg, #c9a961, #a07f3c); border-radius: 5px; transition: width .4s ease; }
.av-orc-numeros { font-size: 13px; color: #6b6357; display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.av-orc-numeros b { color: #8a6d1e; }
.av-orc-sep { color: #ccbf9f; }
.av-orc-falta { color: #b58a2e; font-weight: 600; }

.pv-sub-historico { color: #a89d8b; margin-top: 22px; }
.tabela-hist-exec { opacity: .85; }
.item-executado-antes td { color: #7a7266; }
.hist-exec-quando a { color: var(--azul, #1a1a2e); font-weight: 600; text-decoration: none; }
.hist-exec-quando a:hover { color: #c9a961; }
.hist-exec-prof { color: #9a917f; font-size: 12.5px; }

/* totalização do orçamento (rodapé da tabela de itens) */
.orc-totalizacao { margin-top: 16px; margin-left: auto; max-width: 380px; }
.orc-tot-linha { display: flex; justify-content: space-between; align-items: baseline; padding: 6px 0; font-size: 14px; color: #5a5348; }
.orc-tot-rot { color: #6b6357; }
.orc-tot-val { font-weight: 600; font-variant-numeric: tabular-nums; color: #2c2c3a; }
.orc-tot-final { border-top: 2px solid #ece2c9; margin-top: 6px; padding-top: 12px; }
.orc-tot-final .orc-tot-rot { font-weight: 700; color: var(--azul, #1a1a2e); font-size: 15px; }
.orc-tot-final .orc-tot-val { font-weight: 800; font-size: 20px; color: var(--azul, #1a1a2e); }

/* ============================================================
   CARDS RICOS DE ORÇAMENTO (listagens geral e do paciente)
   ============================================================ */
.orc-cards-lista { display: flex; flex-direction: column; gap: 12px; }
.orc-card-lista { display: block; text-decoration: none; color: inherit; background: #fff;
    border: 1px solid #eee7da; border-left: 4px solid #c9a961; border-radius: 11px; padding: 15px 18px;
    transition: border-color .12s, box-shadow .12s, transform .12s; }
.orc-card-lista:hover { border-color: #c9a961; box-shadow: 0 3px 14px rgba(201,169,97,.16); transform: translateY(-1px); }
/* cor da faixa lateral por status */
.orc-card-st-aberto { border-left-color: #d99a2b; }
.orc-card-st-aprovado { border-left-color: #1f9a52; }
.orc-card-st-parcial { border-left-color: #2a6fb0; }
.orc-card-st-cancelado { border-left-color: #b0392b; opacity: .7; }

.orc-card-topo { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; gap: 10px; }
.orc-card-titulo-bloco { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.orc-card-numero { font-size: 16px; font-weight: 700; color: var(--azul, #1a1a2e); }
.orc-card-titulo { font-size: 14px; color: #8a6d1e; font-weight: 600; }

.orc-card-meta { font-size: 13px; color: #6b6357; margin-bottom: 10px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.orc-card-paciente { font-weight: 600; color: #2c2c3a; }
.orc-card-sep { color: #ccc; }

.orc-card-procs { font-size: 13px; color: #4a4438; line-height: 1.5; margin-bottom: 12px;
    padding: 8px 12px; background: #faf8f4; border-radius: 8px; }

.orc-card-valores { display: flex; gap: 22px; flex-wrap: wrap; margin-bottom: 4px; }
.orc-card-valor { display: flex; flex-direction: column; gap: 1px; }
.orc-card-valor-rot { font-size: 10.5px; font-weight: 600; color: #a89d8b; text-transform: uppercase; letter-spacing: .3px; }
.orc-card-valor-num { font-size: 16px; font-weight: 700; color: #2c2c3a; }
.orc-card-valor-num.verde { color: #1f9a52; }

.orc-card-progresso { margin-top: 12px; }
.orc-card-barra { height: 6px; background: #eadfc4; border-radius: 4px; overflow: hidden; margin-bottom: 5px; }
.orc-card-barra-fill { height: 100%; background: linear-gradient(90deg, #c9a961, #a07f3c); border-radius: 4px; }
.orc-card-pct { font-size: 12px; color: #8a6d1e; font-weight: 600; }

@media (max-width: 560px) {
    .orc-card-topo { flex-direction: column; align-items: flex-start; }
    .orc-card-valores { gap: 16px; }
}

/* desconto global: toggle R$/%, preview e notas */
.orc-desconto-label { display: block; font-weight: 600; color: #2c2c3a; margin-bottom: 10px; }
.orc-desconto-sub { font-weight: 400; font-size: 12px; color: #8a7f70; }
.orc-desconto-form { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.orc-desconto-toggle { display: flex; gap: 4px; background: #f2ede3; border-radius: 8px; padding: 3px; }
.orc-desc-opt { display: flex; align-items: center; gap: 5px; padding: 6px 14px; border-radius: 6px; cursor: pointer; font-weight: 600; font-size: 14px; color: #6b6357; }
.orc-desc-opt:has(input:checked) { background: #fff; color: var(--azul, #1a1a2e); box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.orc-desc-opt input { accent-color: #c9a961; }
.orc-desconto-campo { display: flex; align-items: center; gap: 8px; position: relative; }
.orc-desc-unidade { font-weight: 700; color: #8a7f70; min-width: 26px; }
.orc-desconto-preview { flex: 1 1 100%; font-size: 13px; color: #8a6d1e; }
.orc-desconto-preview b { color: #b58a2e; }
.orc-tot-condic { display: inline-block; font-size: 11px; font-weight: 500; color: #b58a2e; background: #fbf3df;
    padding: 1px 8px; border-radius: 8px; margin-left: 6px; }
.orc-tot-nota { font-size: 12px; color: #8a7f70; margin-top: 10px; line-height: 1.5; font-style: italic; }

/* ============================================================
   CARDS FINANCEIROS reestilizados (centralizados, coloridos)
   ============================================================ */
.fin-cards { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-bottom: 22px; }
.fin-card { flex: 1 1 0; min-width: 150px; max-width: 220px; text-align: center;
    padding: 18px 16px; border-radius: 13px; border: 1.5px solid #ece2c9;
    background: linear-gradient(180deg, #fdfbf6 0%, #f8f3e8 100%); display: flex; flex-direction: column; gap: 4px; }
.fin-card-rot { font-size: 12px; font-weight: 600; color: #a89d8b; text-transform: uppercase; letter-spacing: .4px; }
.fin-card-num { font-size: 24px; font-weight: 800; color: #2c2c3a; font-variant-numeric: tabular-nums; }
.fin-card-hint { font-size: 11.5px; color: #b0a999; }

/* Recebido: verde */
.fin-card-recebido { border-color: #a7dcb9; background: linear-gradient(180deg, #f6fdf8 0%, #eefaf2 100%); }
.fin-card-recebido .fin-card-rot { color: #1f7a42; }
.fin-card-recebido .fin-card-num { color: #1f9a52; }
.fin-card-recebido .fin-card-hint { color: #6dab84; }

/* Saldo a receber (em aberto): vermelho */
.fin-card-saldo { border-color: #f0b8b2; background: linear-gradient(180deg, #fffafa 0%, #fdeceb 100%); }
.fin-card-saldo .fin-card-rot { color: #b03a2e; }
.fin-card-saldo .fin-card-num { color: #d0392b; }
.fin-card-saldo .fin-card-hint { color: #d09a94; }

/* Saldo quitado: verde suave */
.fin-card-quitado { border-color: #a7dcb9; background: linear-gradient(180deg, #f6fdf8 0%, #eefaf2 100%); }
.fin-card-quitado .fin-card-rot { color: #1f7a42; }
.fin-card-quitado .fin-card-num { color: #1f9a52; }
.fin-card-quitado .fin-card-hint { color: #6dab84; }

@media (max-width: 560px) {
    .fin-cards { gap: 10px; }
    .fin-card { min-width: 0; padding: 14px 10px; }
    .fin-card-num { font-size: 19px; }
}

/* ============================================================
   MODAL DE CAIXA - refinamento visual
   ============================================================ */
.caixa-secao-titulo { font-size: 12px; font-weight: 700; color: #a89d8b; text-transform: uppercase;
    letter-spacing: .4px; margin-bottom: 10px; }
/* linha de forma com visual de "cartão de pagamento" */
.caixa-forma-linha { background: #fff; border: 1.5px solid #eee7da; border-radius: 12px; padding: 14px;
    box-shadow: 0 1px 3px rgba(0,0,0,.03); transition: border-color .12s; }
.caixa-forma-linha:focus-within { border-color: #c9a961; }
.caixa-forma-topo .cx-forma { border-radius: 9px; font-weight: 500; }
.caixa-forma-topo .cx-valor { border-radius: 9px; font-size: 16px; }
.caixa-add-forma { border-radius: 11px; }

/* botão registrar pagamento na seção financeira: mais destaque */
.receb-registrar { text-align: center; margin-top: 8px; }
.receb-registrar .btn-novo { background: linear-gradient(135deg, #1f9a52, #17803f); border: none;
    padding: 13px 30px; font-size: 15px; border-radius: 11px; box-shadow: 0 3px 10px rgba(31,154,82,.25); }
.receb-registrar .btn-novo:hover { filter: brightness(1.08); }
.receb-nota-saldo { max-width: 480px; margin: 12px auto 0; text-align: center; }

/* saldo box do modal com brilho */
.caixa-saldo-box { box-shadow: 0 4px 16px rgba(26,26,46,.18); }
.caixa-resumo { border: 1px solid #f0ebe0; }
.caixa-resumo-falta span:last-child { font-size: 16px; }

/* tag de forma de pagamento nos recebimentos: pill mais bonita */
.receb-forma-tag { display: inline-block; background: #f2ede3; color: #6b5d3e; padding: 4px 11px;
    border-radius: 8px; font-size: 12.5px; font-weight: 500; margin: 2px 4px 2px 0; }

/* ============================================================
   MODAL DE CAIXA - correções de layout e cores (final)
   ============================================================ */
/* garante que nada estoure o modal */
.caixa-modal, .caixa-modal * { box-sizing: border-box; }
.caixa-formas { width: 100%; }

/* linha de forma: layout que cabe no modal */
.caixa-forma-topo { display: flex; gap: 8px; align-items: center; width: 100%; }
.caixa-forma-topo .cx-forma { flex: 1 1 auto; min-width: 0; }        /* min-width 0 deixa encolher */
.caixa-forma-topo .cx-valor { flex: 0 0 100px; min-width: 0; width: 100px; text-align: right; font-weight: 600; }
.cx-remover { flex: 0 0 32px; width: 32px; height: 32px; padding: 0; display: flex; align-items: center;
    justify-content: center; }
.caixa-forma-cartao { width: 100%; }
.caixa-forma-cartao .cx-bandeira { flex: 1 1 auto; min-width: 0; }

/* saldo a pagar: VERMELHO (letra vermelha, fundo vermelho clarinho) */
.caixa-saldo-box { background: linear-gradient(135deg, #fdeceb, #fbdedb) !important;
    box-shadow: 0 2px 10px rgba(208,57,43,.12) !important; border: 1.5px solid #f0b8b2; }
.caixa-saldo-rot { color: #b03a2e !important; }
.caixa-saldo-val { color: #d0392b !important; }

/* Falta: vermelho */
.caixa-resumo-falta span:last-child { color: #d0392b !important; font-weight: 700; }

/* ============================================================
   CARDS RICOS DE ATENDIMENTO (listagem de atendimentos)
   ============================================================ */
.atend-cards-lista { display: flex; flex-direction: column; gap: 12px; }
.atend-card { display: block; text-decoration: none; color: inherit; background: #fff;
    border: 1px solid #eee7da; border-left: 4px solid #c9a961; border-radius: 11px; padding: 15px 18px;
    transition: border-color .12s, box-shadow .12s, transform .12s; }
.atend-card:hover { border-color: #c9a961; box-shadow: 0 3px 14px rgba(201,169,97,.16); transform: translateY(-1px); }
.atend-card-aberto { border-left-color: #d99a2b; }
.atend-card-concluido { border-left-color: #1f9a52; }

.atend-card-topo { display: flex; align-items: center; justify-content: space-between; margin-bottom: 11px; }
.atend-card-data-bloco { display: flex; align-items: center; gap: 10px; }
.atend-card-data { font-size: 15px; font-weight: 700; color: var(--azul, #1a1a2e); }
.atend-card-orc { font-size: 12px; color: #8a6d1e; background: #f7f0dd; padding: 3px 10px; border-radius: 8px; font-weight: 600; }

.atend-card-paciente { display: flex; align-items: center; gap: 10px; margin-bottom: 9px; }
.atend-card-pac-nome { font-size: 16px; font-weight: 700; color: #2c2c3a; }

.atend-card-meta { font-size: 13px; color: #6b6357; margin-bottom: 8px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.atend-card-prof { font-weight: 600; color: #4a4438; }
.atend-card-sep { color: #ccc; }
.atend-card-motivo { color: #8a6d1e; font-weight: 600; }

.atend-card-linha { font-size: 13.5px; color: #4a4438; line-height: 1.5; margin-top: 4px; }
.atend-card-rot { font-size: 11px; font-weight: 700; color: #a89d8b; text-transform: uppercase; letter-spacing: .3px; margin-right: 6px; }
.atend-card-procs { color: #1f7a42; font-weight: 500; }

.atend-card-acao { margin-top: 12px; text-align: right; }
.atend-card-btn { font-size: 13px; font-weight: 600; color: #c9a961; }
.atend-card:hover .atend-card-btn { color: #a07f3c; }

@media (max-width: 560px) {
    .atend-card-topo { flex-direction: column; align-items: flex-start; gap: 6px; }
}

/* ============================================================
   CARDS DE CONTA (a receber / a pagar) - nível profissional
   ============================================================ */
/* card Vencido no resumo financeiro (fin-cards) */
.fin-card-vencido { border-color: #f0b8b2; background: linear-gradient(180deg, #fffafa 0%, #fdeceb 100%); }
.fin-card-vencido .fin-card-rot { color: #b03a2e; }
.fin-card-vencido .fin-card-num { color: #d0392b; }
.fin-card-vencido .fin-card-hint { color: #d09a94; }

.conta-cards-lista { display: flex; flex-direction: column; gap: 11px; margin-top: 4px; }
.conta-card { display: flex; align-items: stretch; justify-content: space-between; gap: 16px;
    background: #fff; border: 1px solid #eee7da; border-left: 4px solid #c9a961; border-radius: 11px;
    padding: 14px 18px; transition: border-color .12s, box-shadow .12s; }
.conta-card:hover { box-shadow: 0 2px 12px rgba(0,0,0,.06); }
/* faixa lateral por situação */
.conta-card-aberta { border-left-color: #d99a2b; }
.conta-card-quitada { border-left-color: #1f9a52; }
.conta-card-vencida { border-left-color: #d0392b; background: linear-gradient(90deg, #fffafa 0%, #fff 60%); }
.conta-card-cancelada { border-left-color: #b0a999; opacity: .65; }

.conta-card-main { flex: 1 1 auto; min-width: 0; }
.conta-card-topo { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 7px; }
.conta-card-paciente { font-size: 15.5px; font-weight: 700; color: #2c2c3a; }
.conta-card-meta { font-size: 13px; color: #6b6357; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 5px; }
.conta-card-sep { color: #ccc; }
.conta-card-origem { font-size: 12.5px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.conta-card-forn { color: #4a4438; font-weight: 600; }

.conta-card-lado { display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between; gap: 8px; flex: 0 0 auto; }
.conta-card-valores { text-align: right; display: flex; flex-direction: column; }
.conta-card-valor { font-size: 18px; font-weight: 800; color: #2c2c3a; font-variant-numeric: tabular-nums; }
.conta-card-liquido { font-size: 11.5px; color: #9a917f; }
.conta-card-acao { display: flex; gap: 8px; align-items: center; }
.btn-receber-conta { background: linear-gradient(135deg, #1f9a52, #17803f); color: #fff; border: none;
    padding: 8px 20px; border-radius: 9px; font-weight: 600; font-size: 13.5px; cursor: pointer;
    box-shadow: 0 2px 6px rgba(31,154,82,.2); }
.btn-receber-conta:hover { filter: brightness(1.08); }

@media (max-width: 640px) {
    .conta-card { flex-direction: column; }
    .conta-card-lado { flex-direction: row; align-items: center; justify-content: space-between; width: 100%;
        border-top: 1px solid #f0ebe0; padding-top: 10px; }
    .conta-card-valores { text-align: left; }
}

/* A receber / A pagar: âmbar (neutro, aguardando) - NÃO vermelho */
.fin-card-aguardando { border-color: #ecd9a8; background: linear-gradient(180deg, #fdfaf0 0%, #f9f1dc 100%); }
.fin-card-aguardando .fin-card-rot { color: #a07f3c; }
.fin-card-aguardando .fin-card-num { color: #b58a2e; }
.fin-card-aguardando .fin-card-hint { color: #c2ab72; }

/* ============================================================
   BAIXA COM DATA + LOTE (contas a receber, modo ações)
   ============================================================ */
/* barra de lote no topo */
.lote-barra { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
    background: linear-gradient(180deg, #fdfaf0 0%, #f7efd9 100%); border: 1px solid #ecd9a8;
    border-radius: 11px; padding: 12px 18px; margin-bottom: 14px; }
.lote-barra-esq { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.lote-barra-dir { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.lote-chk-todos { font-size: 13.5px; font-weight: 600; color: #4a4438; display: flex; align-items: center; gap: 7px; cursor: pointer; }
.lote-chk-todos input { width: 17px; height: 17px; accent-color: #c9a961; cursor: pointer; }
.lote-contador { font-size: 12.5px; color: #a07f3c; font-weight: 600; }
.lote-data-lbl { font-size: 12px; color: #6b6357; font-weight: 600; display: flex; flex-direction: column; gap: 3px; }
.lote-data-inp, .conta-data-inp { border: 1px solid #d8cfbb; border-radius: 8px; padding: 7px 10px;
    font-size: 13px; font-family: inherit; color: #2c2c3a; background: #fff; }
.lote-data-inp:focus, .conta-data-inp:focus { outline: none; border-color: #c9a961; }
#lote-btn:disabled { opacity: .45; cursor: not-allowed; box-shadow: none; }

/* checkbox no card */
.conta-card-chk { display: flex; align-items: center; padding-right: 4px; flex: 0 0 auto; }
.conta-card-chk input { width: 20px; height: 20px; accent-color: #1f9a52; cursor: pointer; }

/* mini campo de data no receber individual */
.form-receber-ind { display: flex; align-items: center; gap: 8px; }
.conta-data-inp { padding: 6px 8px; font-size: 12.5px; max-width: 140px; }

/* linha "recebido em" e procedimentos no card */
.conta-card-recebido-em { font-size: 12.5px; color: #1f7a42; font-weight: 600; margin: 4px 0; }
.conta-card-procs { font-size: 13px; color: #5a5346; line-height: 1.45; margin: 5px 0; padding: 6px 10px;
    background: #faf7f0; border-radius: 7px; border-left: 2px solid #e5d9bd; }

@media (max-width: 640px) {
    .lote-barra { flex-direction: column; align-items: stretch; }
    .lote-barra-dir { justify-content: space-between; }
    .form-receber-ind { flex-direction: column; align-items: stretch; }
    .conta-data-inp { max-width: none; }
}

/* ============================================================
   FILTROS AVANÇADOS (contas a receber): data + forma
   ============================================================ */
.cr-filtros-av { display: flex; align-items: flex-end; gap: 14px; flex-wrap: wrap;
    background: #faf8f2; border: 1px solid #eee7da; border-radius: 10px; padding: 12px 16px; margin-bottom: 14px; }
.cr-filtro-grupo { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.cr-filtro-rot { font-size: 12px; color: #6b6357; font-weight: 600; display: inline-flex; align-items: center; gap: 5px; }
.cr-filtro-inp { border: 1px solid #d8cfbb; border-radius: 8px; padding: 7px 10px; font-size: 13px;
    font-family: inherit; color: #2c2c3a; background: #fff; }
.cr-filtro-inp:focus { outline: none; border-color: #c9a961; }
.cr-atalhos { display: flex; gap: 6px; }
.cr-atalho { background: #fff; border: 1px solid #d8cfbb; border-radius: 8px; padding: 7px 12px;
    font-size: 12.5px; color: #4a4438; cursor: pointer; font-weight: 500; transition: all .12s; }
.cr-atalho:hover { border-color: #c9a961; background: #f7f0dd; color: #a07f3c; }
.cr-filtro-btn { background: var(--azul, #1a1a2e); color: #fff; border: none; border-radius: 8px;
    padding: 8px 18px; font-size: 13px; font-weight: 600; cursor: pointer; }
.cr-filtro-btn:hover { filter: brightness(1.15); }
.cr-filtro-limpar { font-size: 12.5px; color: #a89d8b; text-decoration: underline; align-self: center; }
.cr-filtro-limpar:hover { color: #d0392b; }

/* soma dos selecionados na barra de lote */
.lote-soma { font-size: 13.5px; color: #1f7a42; font-weight: 700; font-variant-numeric: tabular-nums; }

@media (max-width: 640px) {
    .cr-filtros-av { flex-direction: column; align-items: stretch; }
    .cr-atalhos { flex-wrap: wrap; }
}


/* ============================================================
   ETIQUETAS DE MOTIVO NA AGENDA (tipo de sessão, colorido)
   ============================================================ */
/* cores base por motivo (mesmas do atendimento: consulta, avaliacao, procedimento, retorno, revisao, outro) */
.etq-motivo { display: inline-block; font-size: 10.5px; font-weight: 700; padding: 1px 7px;
    border-radius: 6px; text-transform: uppercase; letter-spacing: .3px; vertical-align: middle; }
.etq-motivo-consulta      { background: #e3f2fd; color: #1565c0; }   /* azul */
.etq-motivo-avaliacao     { background: #f3e5f5; color: #7b1fa2; }   /* roxo */
.etq-motivo-procedimento  { background: #f7f0dd; color: #a07f1e; }   /* dourado */
.etq-motivo-retorno       { background: #e0f7fa; color: #00838f; }   /* ciano */
.etq-motivo-revisao       { background: #e8f5e9; color: #2e7d32; }   /* verde */
.etq-motivo-outro         { background: #eceff1; color: #546e7a; }   /* cinza */

/* mini etiqueta (agenda semana) */
.mini-motivo { display: inline-block; font-size: 9.5px; font-weight: 700; padding: 0 5px; border-radius: 5px;
    text-transform: uppercase; letter-spacing: .2px; margin-left: 3px; }

/* faixa lateral colorida no mini-ag da semana (reforço visual) */
.mini-ag-motivo-consulta     { border-left: 3px solid #1565c0; }
.mini-ag-motivo-avaliacao    { border-left: 3px solid #7b1fa2; }
.mini-ag-motivo-procedimento { border-left: 3px solid #c9a961; }
.mini-ag-motivo-retorno      { border-left: 3px solid #00838f; }
.mini-ag-motivo-revisao      { border-left: 3px solid #2e7d32; }
.mini-ag-motivo-outro        { border-left: 3px solid #90a4ae; }

/* bolinha (agenda mês) */
.dot-motivo { display: inline-block; width: 7px; height: 7px; border-radius: 50%; margin-right: 3px; vertical-align: middle; }
.dot-motivo.etq-motivo-consulta     { background: #1565c0; }
.dot-motivo.etq-motivo-avaliacao    { background: #7b1fa2; }
.dot-motivo.etq-motivo-procedimento { background: #c9a961; }
.dot-motivo.etq-motivo-retorno      { background: #00838f; }
.dot-motivo.etq-motivo-revisao      { background: #2e7d32; }
.dot-motivo.etq-motivo-outro        { background: #90a4ae; }
/* a bolinha usa a mesma classe etq-motivo-X mas só a cor de fundo interessa */
.dot-motivo.etq-motivo-consulta, .dot-motivo.etq-motivo-avaliacao, .dot-motivo.etq-motivo-procedimento,
.dot-motivo.etq-motivo-retorno, .dot-motivo.etq-motivo-revisao, .dot-motivo.etq-motivo-outro { color: transparent; }

/* ============================================================
   COMISSÃO reestilizada (cards no topo + tabelas refinadas)
   ============================================================ */
.tabela-comissao { font-size: 13.5px; }
.tabela-comissao th { font-size: 11.5px; text-transform: uppercase; letter-spacing: .3px; color: #a89d8b; font-weight: 700; }
.tabela-comissao .col-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tabela-comissao tbody tr:hover { background: #faf8f2; }
.cm-paciente { font-weight: 600; color: #2c2c3a; }
.cm-origem { max-width: 280px; }
.cm-origem-link { color: #8a6d1e; font-weight: 600; text-decoration: none; }
.cm-origem-link:hover { text-decoration: underline; }
.cm-procs { display: block; font-size: 11.5px; color: #6b6357; margin-top: 2px; line-height: 1.35; }
.cm-data { white-space: nowrap; color: #6b6357; font-size: 12.5px; }
.tabela-comissao .col-comissao { font-weight: 800; color: #1f7a42; }
.tabela-comissao .col-neg { color: #c0392b; }
.tabela-comissao tfoot .tfoot-label { text-align: right; font-weight: 700; color: #4a4438; text-transform: uppercase; font-size: 11.5px; letter-spacing: .3px; }

/* ============================================================
   DASHBOARD DE REDE (comparativo entre clínicas) - admin only
   ============================================================ */
.rede-sub { font-size: 13px; color: #a89d8b; margin-left: 10px; }

/* filtros */
.rede-filtros { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px;
    flex-wrap: wrap; background: #faf8f2; border: 1px solid #eee7da; border-radius: 11px; padding: 14px 18px; margin-bottom: 18px; }
.rede-filtro-rot { display: block; font-size: 11.5px; font-weight: 700; color: #a89d8b; text-transform: uppercase; letter-spacing: .3px; margin-bottom: 7px; }
.rede-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.rede-chip { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 20px;
    border: 1.5px solid #d8cfbb; background: #fff; font-size: 13px; color: #6b6357; cursor: pointer; transition: all .12s; }
.rede-chip input { display: none; }
.rede-chip-on { border-color: #c9a961; background: #f7f0dd; color: #a07f1e; font-weight: 600; }
.rede-filtro-periodo { display: flex; align-items: center; gap: 8px; }
.rede-sel, .rede-ano { border: 1px solid #d8cfbb; border-radius: 8px; padding: 8px 10px; font-size: 13px; font-family: inherit; }
.rede-ano { width: 80px; }

/* legenda de cores por clínica */
.rede-legenda { display: flex; gap: 18px; flex-wrap: wrap; justify-content: center; margin-bottom: 18px; }
.rede-leg-item { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; color: #4a4438; font-weight: 500; }
.rede-leg-cor { width: 14px; height: 14px; border-radius: 4px; display: inline-block; }

/* grupo consolidado em cards centralizados */
.rede-grupo-titulo-linha { display: flex; align-items: baseline; justify-content: center; gap: 12px; margin-bottom: 14px; }
.rede-grupo-rot { font-size: 15px; font-weight: 700; color: var(--azul, #1a1a2e); }
.rede-grupo-sub { font-size: 12.5px; color: #a89d8b; }
.rede-grupo-cards { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-bottom: 26px; }
.rede-gcard { flex: 1 1 0; min-width: 140px; max-width: 190px; text-align: center; padding: 16px 14px;
    border-radius: 13px; border: 1.5px solid #e6e6e6;
    display: flex; flex-direction: column; gap: 5px; }
.rede-gcard-rot { font-size: 11.5px; font-weight: 600; color: #8a8378; text-transform: uppercase; letter-spacing: .4px; }
.rede-gcard-val { font-size: 21px; font-weight: 800; font-variant-numeric: tabular-nums; }
/* variações por tipo de número (fundo suave + número na cor temática) */
.rede-gcard-verde { background: linear-gradient(180deg, #f2faf5 0%, #e8f5ee 100%); border-color: #cfe9db; }
.rede-gcard-verde .rede-gcard-val { color: #17803f; }
.rede-gcard-dourado { background: linear-gradient(180deg, #fdfbf3 0%, #f8f1de 100%); border-color: #ecdcb4; }
.rede-gcard-dourado .rede-gcard-val { color: #a07f1e; }
.rede-gcard-azul { background: linear-gradient(180deg, #f3f8fd 0%, #e7f1fb 100%); border-color: #cadef3; }
.rede-gcard-azul .rede-gcard-val { color: #1565c0; }
.rede-gcard-roxo { background: linear-gradient(180deg, #f9f5fc 0%, #f1e8f8 100%); border-color: #e0cdee; }
.rede-gcard-roxo .rede-gcard-val { color: #7b1fa2; }

/* seção */
.rede-secao { font-size: 15px; font-weight: 700; color: var(--azul, #1a1a2e); margin: 22px 0 12px; padding-bottom: 6px; border-bottom: 2px solid #f0e8d5; }

/* métricas comparativas */
.rede-metricas-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.rede-metrica { background: #fff; border: 1px solid #eee7da; border-radius: 12px; padding: 16px 18px; }
.rede-metrica-topo { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 14px; }
.rede-metrica-titulo { font-size: 14px; font-weight: 700; color: #2c2c3a; }
.rede-metrica-dica { font-size: 11.5px; color: #a89d8b; }
.rede-metrica-barras { display: flex; flex-direction: column; gap: 14px; }
.rede-barra-linha { display: flex; flex-direction: column; gap: 5px; padding: 4px 6px; border-radius: 8px; }
.rede-barra-vencedor { background: #fdfaf0; box-shadow: inset 0 0 0 1.5px #e5cf94; }
.rede-barra-topo { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.rede-barra-nome { font-size: 13px; color: #4a4438; font-weight: 500; }
.rede-barra-vencedor .rede-barra-nome { font-weight: 700; color: #a07f1e; }
.rede-estrela { color: #c9a961; font-size: 13px; }
.rede-barra-trilho { height: 20px; background: #f2ede2; border-radius: 6px; overflow: hidden; }
.rede-barra-fill { height: 100%; border-radius: 6px; transition: width .4s ease; min-width: 2px; }
.rede-barra-vencedor .rede-barra-fill { box-shadow: inset 0 0 0 2px rgba(201,169,97,.55); }
.rede-barra-valor { font-size: 14px; font-weight: 700; color: #2c2c3a; font-variant-numeric: tabular-nums; white-space: nowrap; }

@media (max-width: 720px) {
    .rede-metricas-grid { grid-template-columns: 1fr; }
    .rede-grupo-nums { gap: 20px; }
    .rgn-val { font-size: 20px; }
    .rede-barra-linha { grid-template-columns: 90px 1fr auto; }
}

/* barra "menor é melhor" (vencido, taxa de falta): vencedor verde, mas fill vermelho */
.rede-barra-fill-neg { background: linear-gradient(90deg, #e88b82, #d0392b); }
.rede-barra-vencedor .rede-barra-fill-neg { background: linear-gradient(90deg, #1f9a52, #17803f); }

/* gráfico de evolução */
.rede-grafico-bloco { background: #fff; border: 1px solid #eee7da; border-radius: 12px; padding: 18px 20px; margin-bottom: 20px; }

/* célula não aplicável na tela de perfis (ação que não existe pro módulo) */
.cel-na { color: #ccc; font-weight: 600; }

/* ============================================================
   MODAL DE CONSUMO DE ESTOQUE (ao executar procedimento)
   ============================================================ */
.consumo-modal-overlay { position: fixed; inset: 0; background: rgba(20,20,35,.55); z-index: 1000;
    display: flex; align-items: center; justify-content: center; padding: 20px; }
.consumo-modal { background: #fff; border-radius: 16px; padding: 24px; max-width: 560px; width: 100%;
    max-height: 90vh; overflow-y: auto; box-shadow: 0 20px 60px rgba(0,0,0,.3); }
.consumo-modal-titulo { font-size: 17px; font-weight: 700; color: #1a1a2e; margin: 0 0 4px; }
.consumo-modal-sub { font-size: 12.5px; color: #a89d8b; margin: 0 0 16px; }
.consumo-campo-data { margin-bottom: 14px; }
.consumo-campo-data label { display: block; font-size: 12px; font-weight: 600; color: #6b6357; margin-bottom: 4px; }
.consumo-campo-data input { max-width: 200px; }
.consumo-linha { background: #faf8f2; border: 1px solid #eee7da; border-radius: 11px; padding: 12px; margin-bottom: 10px; }
.consumo-linha-topo { display: flex; gap: 8px; align-items: center; }
.cl-produto { flex: 1; }
.cl-remover { background: #f2ede2; border: none; border-radius: 8px; width: 32px; height: 32px; font-size: 18px;
    color: #b0392b; cursor: pointer; flex-shrink: 0; }
.cl-remover:hover { background: #f5d5d0; }
.cl-origem { margin-top: 8px; }
.cl-frac { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.cl-frac select { flex: 1; min-width: 180px; }
.cl-ou { font-size: 12px; color: #a89d8b; }
.btn-add-produto { background: #f7f0dd; border: 1px dashed #c9a961; color: #a07f1e; border-radius: 9px;
    padding: 9px 16px; font-size: 13px; font-weight: 600; cursor: pointer; width: 100%; margin-bottom: 16px; }
.btn-add-produto:hover { background: #f2e8cd; }
.consumo-modal-acoes { display: flex; gap: 10px; justify-content: flex-end; }
.consumo-modal-acoes .btn-cancelar { background: #f2ede2; border: none; color: #6b6357; border-radius: 9px; padding: 10px 20px; font-size: 13px; font-weight: 600; cursor: pointer; }

/* ============================================================
   CENTRAL DO PACIENTE (perfil rico)
   ============================================================ */
.pac-central-cab { display: flex; gap: 20px; align-items: flex-start; background: #fff; border: 1px solid #eee7da; border-radius: 14px; padding: 22px; margin-bottom: 18px; }
.pac-central-foto { flex-shrink: 0; }
.pac-central-foto img { width: 90px; height: 90px; border-radius: 14px; object-fit: cover; }
.pac-foto-vazia { width: 90px; height: 90px; border-radius: 14px; background: linear-gradient(135deg, #c9a961, #a07f1e); color: #fff; font-size: 38px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.pac-central-info { flex: 1; min-width: 0; }
.pac-central-nome-linha { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.pac-central-nome-linha h1 { margin: 0; font-size: 24px; }
.pac-central-dados { display: flex; gap: 18px; flex-wrap: wrap; color: #6b6357; font-size: 13.5px; }
.pac-central-acoes { flex-shrink: 0; }

/* etiquetas */
.pac-etq { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border-radius: 20px; font-size: 12px; font-weight: 700; border: 1.5px solid; letter-spacing: .2px; }
.pac-etq-alerta { background: #fdecea; color: #c0392b; border-color: #f0b4ad; }
.pac-etq-saude { background: #fff4e0; color: #b58a2e; border-color: #ecd9a8; }
.pac-etq-x { background: none; border: none; color: inherit; cursor: pointer; font-size: 15px; line-height: 1; padding: 0; opacity: .6; }
.pac-etq-x:hover { opacity: 1; }
.pac-etq-add { background: #f7f0dd; border: 1px dashed #c9a961; color: #a07f1e; border-radius: 20px; padding: 3px 12px; font-size: 12px; font-weight: 600; cursor: pointer; }

/* abas */
.pac-central-abas { display: flex; gap: 3px; border-bottom: 2px solid #e6dcc4; margin-bottom: 0; flex-wrap: wrap; padding: 0 4px; }
.pac-aba { padding: 11px 22px; font-size: 14px; font-weight: 600; border-radius: 10px 10px 0 0; text-decoration: none; color: #8a8072; background: #f3ecdc; border: 1px solid #e6dcc4; border-bottom: none; margin-bottom: -2px; transition: background .12s, color .12s; }
.pac-aba:hover { background: #ede4d0; color: #5a5346; text-decoration: none; }
.pac-aba-ativa { background: #fff; color: var(--azul, #1a1a2e); border-color: #e6dcc4; border-bottom: 2px solid #fff; position: relative; z-index: 1; }
.pac-aba-ativa:hover { background: #fff; color: var(--azul, #1a1a2e); }
.pac-aba-off { color: #c0b8a8; }
.pac-aba-off:hover { background: #f3ecdc; color: #c0b8a8; }
/* corpo colado nas abas, formando a "pasta" */
.pac-central-corpo { background: #fff; border: 1px solid #e6dcc4; border-top: none; border-radius: 0 0 14px 14px; padding: 22px; }

/* corpo */
.pac-obs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 14px; }
.pac-obs-card { background: #fff; border: 1px solid #eee7da; border-radius: 12px; padding: 16px 18px; }
.pac-obs-privada { background: #fbf7f0; border-color: #ece0c9; }
.pac-obs-rot { font-size: 11.5px; font-weight: 700; color: #a89d8b; text-transform: uppercase; letter-spacing: .4px; }
.pac-obs-texto { margin: 8px 0 0; color: #4a4438; font-size: 14px; line-height: 1.5; }
.pac-saude-card { background: #fdfaf3; border: 1px solid #ecdcb4; border-radius: 12px; padding: 16px 18px; }
.pac-saude-linha { margin-top: 6px; color: #4a4438; font-size: 14px; }

/* modal etiqueta */
.pac-modal-overlay { position: fixed; inset: 0; background: rgba(20,20,35,.55); z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 20px; }
.pac-modal { background: #fff; border-radius: 16px; padding: 24px; max-width: 460px; width: 100%; }
.pac-modal h3 { margin: 0 0 12px; font-size: 17px; }
.pac-modal-sub { font-size: 12.5px; color: #a89d8b; margin: 14px 0 8px; }
.pac-etq-lista { display: flex; gap: 6px; flex-wrap: wrap; }
.pac-cores { display: flex; gap: 8px; margin: 10px 0; flex-wrap: wrap; }
.pac-cor-opt input { display: none; }
.pac-cor-opt span { width: 26px; height: 26px; border-radius: 50%; display: block; cursor: pointer; border: 2px solid transparent; }
.pac-cor-opt input:checked + span { border-color: #2c2c3a; transform: scale(1.15); }
.pac-modal-acoes { display: flex; gap: 10px; justify-content: flex-end; margin-top: 16px; }
.pac-modal-acoes .btn-cancelar { background: #f2ede2; border: none; color: #6b6357; border-radius: 9px; padding: 10px 20px; font-size: 13px; font-weight: 600; cursor: pointer; }

@media (max-width: 680px) {
    .pac-obs-grid { grid-template-columns: 1fr; }
    .pac-central-cab { flex-direction: column; }
}

/* central do paciente - Entrega 2: futuros agendamentos e observações editáveis */
.pac-futuros-card { background: #fff; border: 1px solid #eee7da; border-radius: 12px; padding: 16px 18px; margin-bottom: 14px; }
.pac-futuros-lista { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.pac-futuro-item { display: flex; align-items: baseline; gap: 12px; padding: 9px 12px; background: #faf8f2; border-radius: 9px; text-decoration: none; border-left: 3px solid #c9a961; transition: background .12s; }
.pac-futuro-item:hover { background: #f5efe0; }
.pac-futuro-data { font-weight: 700; color: #a07f1e; font-size: 13.5px; white-space: nowrap; }
.pac-futuro-info { color: #4a4438; font-size: 13.5px; }
.pac-futuro-motivo { font-weight: 600; }
.pac-vazio { color: #a89d8b; }
.pac-obs-input { width: 100%; margin-top: 8px; border: 1px solid #e6ddc9; border-radius: 8px; padding: 9px 11px; font-family: inherit; font-size: 14px; resize: vertical; box-sizing: border-box; background: #fffdf8; }
.pac-obs-input:focus { outline: none; border-color: #c9a961; }
.pac-obs-salvar { display: flex; justify-content: flex-end; margin-top: 10px; }

/* central do paciente - Entrega 3: contadores de histórico */
.pac-contadores { display: flex; gap: 12px; margin-bottom: 18px; flex-wrap: wrap; }
.pac-contador { flex: 1 1 0; min-width: 110px; background: #fff; border: 1px solid #eee7da; border-radius: 12px; padding: 16px; text-align: center; display: flex; flex-direction: column; gap: 3px; }
.pac-cont-num { font-size: 28px; font-weight: 800; color: var(--azul, #1a1a2e); font-variant-numeric: tabular-nums; }
.pac-cont-rot { font-size: 11.5px; font-weight: 600; color: #a89d8b; text-transform: uppercase; letter-spacing: .4px; }
.pac-contador-alerta { background: #fdecea; border-color: #f0b4ad; }
.pac-contador-alerta .pac-cont-num { color: #c0392b; }

/* central do paciente - Entrega 4: abas de orçamentos e financeiro */
.pac-orc-lista { display: flex; flex-direction: column; gap: 10px; }
.pac-orc-item { display: block; background: #fff; border: 1px solid #eee7da; border-radius: 11px; padding: 14px 16px; text-decoration: none; border-left: 3px solid #c9a961; transition: background .12s; }
.pac-orc-item:hover { background: #faf8f2; }
.pac-orc-topo { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.pac-orc-num { font-weight: 700; color: #2c2c3a; font-size: 14px; }
.pac-orc-meta { color: #6b6357; font-size: 12.5px; margin-top: 4px; }
.pac-orc-status { font-size: 11px; font-weight: 700; text-transform: uppercase; padding: 2px 9px; border-radius: 6px; letter-spacing: .3px; }
.pac-orc-aberto, .pac-orc-a_receber { background: #fff4e0; color: #b58a2e; }
.pac-orc-parcial { background: #e7f1fb; color: #1565c0; }
.pac-orc-fechado, .pac-orc-recebida { background: #e8f5ee; color: #17803f; }
.pac-orc-cancelado, .pac-orc-cancelada { background: #f0eeea; color: #8a8378; }

/* central do paciente - cards de conta no financeiro (faixa lateral por situação) */
.pac-fin-lista { display: flex; flex-direction: column; gap: 9px; }
.pac-fin-conta { display: flex; align-items: center; justify-content: space-between; gap: 12px; background: #fff; border: 1px solid #eee7da; border-left: 4px solid #ccc2b0; border-radius: 10px; padding: 13px 16px; }
.pac-fin-conta.pac-fin-pago { border-left-color: #1f9a52; }
.pac-fin-conta.pac-fin-pago_cartao { border-left-color: #1565c0; }
.pac-fin-conta.pac-fin-a_receber { border-left-color: #d99a2b; }
.pac-fin-conta.pac-fin-vencido { border-left-color: #c0392b; background: #fdfaf9; }
.pac-fin-esq { display: flex; flex-direction: column; gap: 2px; }
.pac-fin-desc { font-weight: 600; color: #2c2c3a; font-size: 14px; }
.pac-fin-venc { font-size: 12px; color: #a89d8b; }
.pac-fin-dir { display: flex; align-items: center; gap: 14px; }
.pac-fin-valor { font-weight: 700; color: #2c2c3a; font-size: 15px; font-variant-numeric: tabular-nums; }
.pac-fin-tag { font-size: 11px; font-weight: 700; text-transform: uppercase; padding: 3px 10px; border-radius: 6px; letter-spacing: .3px; white-space: nowrap; }
.pac-fin-tag-pago { background: #e8f5ee; color: #17803f; }
.pac-fin-tag-pago_cartao { background: #e7f1fb; color: #1565c0; }
.pac-fin-tag-a_receber { background: #fff4e0; color: #b58a2e; }
.pac-fin-tag-vencido { background: #fdecea; color: #c0392b; }

/* contas a receber - seletor de visão (pacientes vs operadoras) */
.cr-visao { display: flex; gap: 10px; margin-bottom: 18px; flex-wrap: wrap; }
.cr-visao-btn { flex: 1 1 0; min-width: 160px; display: flex; flex-direction: column; gap: 2px; padding: 13px 16px; background: #fff; border: 1px solid #e6dcc4; border-radius: 11px; text-decoration: none; border-left: 4px solid #ddd3c0; transition: background .12s; }
.cr-visao-btn:hover { background: #faf8f2; text-decoration: none; }
.cr-visao-btn.ativo { border-left-color: #c9a961; background: #fdfaf0; box-shadow: inset 0 0 0 1px #e6d3a3; }
.cr-visao-tit { font-weight: 700; color: #2c2c3a; font-size: 14px; }
.cr-visao-sub { font-size: 12px; color: #a89d8b; }

/* central do paciente - financeiro agrupado por orçamento */
.pac-fin-grupo { border: 1px solid #e6dcc4; border-radius: 12px; margin-bottom: 14px; overflow: hidden; }
.pac-fin-grupo-cab { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 16px; background: #faf6ec; border-bottom: 1px solid #eee2cb; flex-wrap: wrap; }
.pac-fin-grupo-tit { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pac-fin-grupo-num { font-weight: 700; color: #2c2c3a; font-size: 14.5px; text-decoration: none; }
a.pac-fin-grupo-num:hover { color: #a07f1e; text-decoration: underline; }
.pac-fin-grupo-procs { font-size: 12.5px; color: #8a8072; }
.pac-fin-grupo-resumo { display: flex; gap: 8px; flex-wrap: wrap; }
.pac-fin-mini { font-size: 11.5px; font-weight: 700; padding: 3px 9px; border-radius: 6px; white-space: nowrap; }
.pac-fin-mini-pago { background: #e8f5ee; color: #17803f; }
.pac-fin-mini-receber { background: #fff4e0; color: #b58a2e; }
.pac-fin-parcelas { display: flex; flex-direction: column; }
.pac-fin-parcela { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 16px; border-left: 4px solid #ccc2b0; border-bottom: 1px solid #f4eede; }
.pac-fin-parcela:last-child { border-bottom: none; }
.pac-fin-parcela.pac-fin-pago { border-left-color: #1f9a52; }
.pac-fin-parcela.pac-fin-pago_cartao { border-left-color: #1565c0; }
.pac-fin-parcela.pac-fin-a_receber { border-left-color: #d99a2b; }
.pac-fin-parcela.pac-fin-vencido { border-left-color: #c0392b; background: #fdfaf9; }

/* central do paciente - cards de financeiro clicáveis (filtro) */
.fin-card-link { text-decoration: none; transition: transform .1s, box-shadow .1s; cursor: pointer; }
.fin-card-link:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,.08); text-decoration: none; }
.fin-card-ativo { box-shadow: inset 0 0 0 2px #2c2c3a; }
.pac-fin-filtro-aviso { font-size: 13px; color: #6b6357; margin-bottom: 14px; padding: 8px 12px; background: #faf6ec; border-radius: 8px; }
.pac-fin-filtro-aviso a { color: #a07f1e; }
.pac-fin-mini-vencido { background: #fdecea; color: #c0392b; }

/* ============================================================
   ESTOQUE: cards de produto (lista) e ficha do produto
   ============================================================ */
.prod-foto { background: linear-gradient(135deg, #5a6b7a, #3a4a58) !important; }
.prod-saldo-destaque { font-weight: 700; color: #1f9a52; }
.prod-saldo-baixo { color: #c0392b; }

/* lista de produtos em cards */
.prod-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.prod-card { display: block; background: #fff; border: 1px solid #eee7da; border-radius: 12px; padding: 15px 16px; text-decoration: none; border-left: 4px solid #5a6b7a; transition: transform .1s, box-shadow .1s; }
.prod-card:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,.08); text-decoration: none; }
.prod-card-alerta { border-left-color: #c0392b; }
.prod-card-topo { display: flex; flex-direction: column; gap: 1px; margin-bottom: 8px; }
.prod-card-nome { font-weight: 700; color: #2c2c3a; font-size: 15px; }
.prod-card-cat { font-size: 12px; color: #a89d8b; }
.prod-card-saldo-linha { display: flex; align-items: baseline; gap: 5px; margin-bottom: 8px; }
.prod-card-saldo { font-size: 26px; font-weight: 800; color: #1f9a52; font-variant-numeric: tabular-nums; }
.prod-card-saldo.baixo { color: #c0392b; }
.prod-card-un { font-size: 12px; color: #a89d8b; }
.prod-card-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.prod-mini-tag { font-size: 10.5px; font-weight: 700; padding: 2px 7px; border-radius: 5px; text-transform: uppercase; letter-spacing: .2px; }
.prod-mini-min { background: #fdecea; color: #c0392b; }
.prod-mini-frac { background: #fff4e0; color: #b58a2e; }
.prod-mini-rastr { background: #e7f1fb; color: #1565c0; }
.prod-mini-aberto { background: #eef2f5; color: #5a6b7a; }

/* ficha do produto: form */
.prod-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 16px; }
.prod-form-grid .campo label { display: block; font-size: 12.5px; font-weight: 600; color: #6b6357; margin-bottom: 4px; }
.prod-form-grid .campo input, .prod-form-grid .campo select { width: 100%; box-sizing: border-box; }
.prod-form-checks { display: flex; flex-direction: column; gap: 10px; margin-bottom: 16px; padding: 14px; background: #faf8f2; border-radius: 10px; }
.prod-sub { font-size: 14px; color: #6b6357; margin: 20px 0 10px; }

/* ficha do produto: lotes */
.prod-lotes-lista { display: flex; flex-direction: column; gap: 9px; }
.prod-lote { display: flex; align-items: center; justify-content: space-between; gap: 12px; background: #fff; border: 1px solid #eee7da; border-left: 4px solid #1f9a52; border-radius: 10px; padding: 13px 16px; }
.prod-lote-vencido { border-left-color: #c0392b; background: #fdfaf9; }
.prod-lote-zerado { border-left-color: #ccc2b0; opacity: .7; }
.prod-lote-frasco { border-left-color: #d99a2b; }
.prod-lote-esq { display: flex; flex-direction: column; gap: 2px; }
.prod-lote-num { font-weight: 600; color: #2c2c3a; font-size: 14px; }
.prod-lote-val { font-size: 12px; color: #a89d8b; }
.prod-lote-saldo { font-weight: 700; color: #1f9a52; font-size: 15px; font-variant-numeric: tabular-nums; }
.prod-lote-saldo.zero { color: #a89d8b; }
.prod-entrada-bloco { margin-bottom: 18px; }
.prod-entrada-form { margin-top: 12px; padding: 16px; background: #faf8f2; border-radius: 11px; }

/* ficha do produto: movimentações */
.prod-mov-lista { display: flex; flex-direction: column; gap: 7px; }
.prod-mov { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 15px; background: #fff; border: 1px solid #eee7da; border-radius: 9px; }
.prod-mov-esq { display: flex; flex-direction: column; gap: 2px; }
.prod-mov-tipo { font-weight: 600; color: #2c2c3a; font-size: 13.5px; }
.prod-mov-det { font-size: 12px; color: #a89d8b; }
.prod-mov-qtd { font-weight: 700; font-size: 14px; font-variant-numeric: tabular-nums; }
.prod-mov-qtd.pos { color: #17803f; }
.prod-mov-qtd.neg { color: #c0392b; }

@media (max-width: 680px) { .prod-form-grid { grid-template-columns: 1fr; } }
