/* Klugwerk Praxis · tema (28/10/2026). Identidade: o prontuário de papel em versão clínica moderna.
 * Petróleo profundo no menu e na "capa" do paciente, verde-Praxis nas ações, o amarelo da Klugwerk só na ação principal
 * (Atender). Fundo cinza-sálvia frio (nada de creme). Cada tipo de registro tem a sua cor, a mesma em toda a tela:
 * atendimento verde, exames índigo, documentos ocre, cirurgia ameixa, consultas azul. */
:root {
  --bg: #edf2f0; --sup: #ffffff; --tinta: #13262e; --aco: #56676f; --linha: #d9e3e0;
  --px: #0f7a72; --px-suave: #dcefe9; --px-tinta: #ffffff;
  --petroleo: #0c3a3b; --petroleo-2: #134f4e; --petroleo-t: #cfe5e0;
  --ouro: #f2b705; --ouro-t: #2b2100;
  --c-atend: #0f7a72; --c-exame: #4a5bd4; --c-doc: #b4761a; --c-cir: #8a3a85; --c-cons: #2475b0;
  --c-exame-s: #e9ecfb; --c-doc-s: #f8efe0; --c-cir-s: #f4e7f3; --c-cons-s: #e4f0f9;
  --mal: #b8321f; --mal-s: #fbe6e2; --at: #9a5b00; --at-s: #fdf0d9; --ok: #1d7a43; --ok-s: #e1f3e8;
  --sombra: 0 14px 34px rgb(12 58 59 / .16); --sombra-l: 0 1px 2px rgb(12 58 59 / .06), 0 4px 14px rgb(12 58 59 / .05);
  --raio: 14px; --lat: 232px;
}
body { background: var(--bg); }

/* ---------- casca: menu lateral ---------- */
.lateral { background: var(--petroleo); color: var(--petroleo-t); display: flex; flex-direction: column; z-index: 6; }
.lateral .brand { padding: 20px 18px 18px; color: #fff; align-items: center; }
.lateral .brand svg { width: 38px; height: 38px; }
.lateral .brand b { display: block; font-size: .7rem; letter-spacing: .02em; font-weight: 700; opacity: .7; line-height: 1; }
.lateral .brand em { display: block; font-size: 1.75rem; line-height: 1.05; }
.lateral .brand b { color: #fff; }
.lateral .brand em { color: #7fd6c6; }
.lateral .brand small { color: #9cc2bb; }
.lateral nav.abas { background: none; border: 0; position: static; }
#abas { display: flex; flex-direction: column; gap: 2px; padding: 6px 10px; }
#abas button { display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; background: none; border: 0; border-radius: 10px; padding: 10px 12px; color: var(--petroleo-t); font-weight: 600; font-size: .95rem; cursor: pointer; white-space: nowrap; }
#abas button svg { width: 21px; height: 21px; flex: none; opacity: .85; }
#abas button:hover { background: var(--petroleo-2); color: #fff; }
#abas button[aria-selected="true"] { background: #fff; color: var(--petroleo); box-shadow: 0 4px 14px rgb(0 0 0 / .18); }
#abas button[aria-selected="true"] svg { opacity: 1; color: var(--px); }
#abas button[data-aba="config"], #abas button[data-aba="mais"] { margin-top: 14px; position: relative; }
#abas button[data-aba="config"]::before, #abas button[data-aba="mais"]::before { content: ""; position: absolute; left: 12px; right: 12px; top: -8px; border-top: 1px solid rgb(255 255 255 / .12); }
#abas button:focus-visible { outline: 3px solid var(--ouro); outline-offset: 1px; }

header.top { background: var(--bg); border: 0; }
header.top .wrap { padding-block: 14px 4px; justify-content: space-between; }
header.top .usuario { margin-left: auto; }
.busca-glob { margin: 0; max-width: 520px; }
.busca-glob input { background: var(--sup); border-color: var(--linha); padding: 10px 16px 10px 40px; box-shadow: var(--sombra-l); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2356676f' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6'/%3E%3Cpath d='m20 20-4.2-4.2'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-size: 18px; background-position: 14px center; }
.busca-glob input:focus { outline: none; border-color: var(--px); box-shadow: 0 0 0 4px var(--px-suave); }
.usuario { color: var(--aco); }
footer.rodape-px { background: transparent; border-top: 1px solid var(--linha); }

@media (min-width: 1000px) {
  body { padding-left: var(--lat); }
  .lateral { position: fixed; left: 0; top: 0; bottom: 0; width: var(--lat); overflow-y: auto; }
  .wrap { max-width: 1320px; }
}
@media (max-width: 999.98px) {
  body { padding-bottom: calc(66px + env(safe-area-inset-bottom, 0px)); }
  .lateral { position: fixed; left: 0; right: 0; bottom: 0; padding-bottom: env(safe-area-inset-bottom, 0px); box-shadow: 0 -6px 20px rgb(0 0 0 / .12); }
  .lateral .brand { display: none; }
  #abas { flex-direction: row; padding: 6px 6px; gap: 2px; overflow-x: auto; }
  #abas { overflow: visible; }
  #abas button { flex: 1 1 0; min-width: 0; flex-direction: column; gap: 3px; padding: 7px 2px; font-size: .66rem; justify-content: center; text-align: center; }
  #abas button[data-aba="config"] span { font-size: 0; }
  #abas button[data-aba="config"] span::after { content: "Ajustes"; font-size: .66rem; }
  #abas button[aria-selected="true"] { box-shadow: none; }
  #abas button[data-aba="config"], #abas button[data-aba="mais"] { margin-top: 0; }
  #abas button[data-aba="config"]::before, #abas button[data-aba="mais"]::before { display: none; }
  #abas button span { overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
  .klug-btn { bottom: calc(80px + env(safe-area-inset-bottom, 0px)); }
  header.top::before { content: "Praxis"; font-family: var(--f-nome); font-style: italic; font-weight: 600; color: var(--px); font-size: 1.35rem; display: block; padding: 12px 16px 0; }
}

/* ---------- peças comuns ---------- */
.cab h1 { font-family: var(--f-nome); font-style: italic; font-weight: 600; font-size: 2rem; letter-spacing: -.01em; color: var(--petroleo); }
.cx { border-radius: var(--raio); border-color: var(--linha); box-shadow: var(--sombra-l); }
.btn { border-radius: 10px; }
.btn.pri { background: var(--px); border-color: var(--px); }
.btn.pri:hover { background: #0b625c; }
.pill { border-radius: 999px; }
.volta-ferr { background: none; border: 0; color: var(--px); font-weight: 700; padding: 4px 0 10px; cursor: pointer; }

/* ---------- Configurações: ferramentas ---------- */
.hub { display: block !important; width: 100%; margin: 6px 0 26px; }
.hub h2 { font-size: 1rem; margin-bottom: 10px; color: var(--petroleo); }
.hub-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 10px; }
.hub-t { display: flex; gap: 14px; align-items: flex-start; text-align: left; background: var(--sup); border: 1px solid var(--linha); border-radius: var(--raio); padding: 14px; cursor: pointer; color: var(--tinta); transition: border-color .15s, transform .15s; }
.hub-t:hover { border-color: var(--px); transform: translateY(-1px); }
.hub-t b { display: block; font-family: var(--f-tit); font-size: 1rem; }
.hub-t small { color: var(--aco); line-height: 1.35; display: block; margin-top: 2px; }
.hub-i { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; flex: none; background: var(--px-suave); color: var(--px); }
.hub-i svg { width: 22px; height: 22px; }
.hub-i.i-relatorios, .hub-i.i-conciliacao { background: var(--c-exame-s); color: var(--c-exame); }
.hub-i.i-documentos, .hub-i.i-arquivos { background: var(--c-doc-s); color: var(--c-doc); }
.hub-i.i-busca, .hub-i.i-relacionamento { background: var(--c-cons-s); color: var(--c-cons); }
.hub-i.i-atendente, .hub-i.i-convites { background: var(--c-cir-s); color: var(--c-cir); }
.conf-tit { font-size: 1rem; margin: 0 0 10px; color: var(--petroleo); }

/* ---------- agenda ---------- */
.dia-nav { margin: 4px 0 12px; }
.dia-nav input[type="date"] { width: auto !important; border-radius: 10px; }
.gr-wrap { padding: 0; overflow: hidden; }
.gr .hr { font-family: var(--f-tit); font-weight: 700; color: var(--petroleo); font-variant-numeric: tabular-nums; }
.gr .cc b { font-family: var(--f-tit); color: var(--petroleo); }
.slot { border-radius: 10px; border-left-width: 5px; padding: 8px 12px; }
.slot b { font-size: .95rem; }
.slot.livre { border-radius: 10px; color: #8a9a99; }
.slot.livre:hover { border-color: var(--px); color: var(--px); background: var(--px-suave); }
.legenda i { border-radius: 50%; }
.conf-menu { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)) !important; gap: 16px !important; align-items: start; }
.conf-g { display: flex; flex-direction: column; gap: 6px; }
.conf-g h3 { font-size: .9rem; color: var(--petroleo); margin: 0 0 2px; }
.conf-g button { width: 100%; }
.fx-conf section { border-top: 1px solid var(--linha); padding-top: 12px; display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.fx-tag { display: inline-block; background: var(--px-suave); color: var(--petroleo); border-radius: 999px; padding: 3px 10px; font-size: .84rem; font-weight: 600; margin: 0 4px 4px 0; }
.fx-conf-l { list-style: none; margin: 0; padding: 0; width: 100%; display: flex; flex-direction: column; gap: 6px; }
.fx-conf-l li { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; }
.ag-vista { display: inline-flex; background: var(--sup); border: 1px solid var(--linha); border-radius: 10px; padding: 3px; margin-right: 8px; }
.ag-vista button { border: 0; background: none; border-radius: 7px; padding: 5px 14px; font-weight: 700; color: var(--aco); cursor: pointer; }
.ag-vista button[aria-selected="true"] { background: var(--petroleo); color: #fff; }
.sem-wrap { overflow-x: auto; }
.sem-dia { background: none; border: 0; border-bottom: 1px solid var(--linha); padding: 8px 4px; cursor: pointer; display: flex; flex-direction: column; align-items: center; color: var(--aco); }
.sem-dia b { font-family: var(--f-tit); font-size: 1.3rem; color: var(--petroleo); }
.sem-dia.hoje b { background: var(--px); color: #fff; border-radius: 50%; width: 36px; height: 36px; display: grid; place-items: center; }
.sem-cel { padding: 3px; border-left: 1px solid var(--linha); border-bottom: 1px solid #edf1f0; min-height: 46px; display: flex; flex-direction: column; gap: 3px; }
.sem-ag { --cor-med: var(--ok); text-align: left; border: 0; border-left: 4px solid var(--cor-med); background: var(--ok-s); border-radius: 8px; padding: 4px 7px; cursor: pointer; }
.sem-ag.at { border-left-color: var(--at); background: var(--at-s); } .sem-ag.mal { border-left-color: var(--mal); background: var(--mal-s); } .sem-ag.tele { border-left-color: var(--tele); background: var(--tele-s); }
.sem-ag b { display: block; font-size: .8rem; line-height: 1.25; overflow-wrap: anywhere; } .sem-ag small { color: var(--aco); font-size: .72rem; }
.mes { padding: 10px; }
.mes-cab, .mes-grade { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.mes-cab span { text-align: center; font-weight: 700; color: var(--aco); font-size: .82rem; padding: 4px; }
.mes-d { min-height: 96px; background: var(--sup); border: 1px solid var(--linha); border-radius: 10px; padding: 6px 7px; text-align: left; display: flex; flex-direction: column; gap: 1px; cursor: pointer; color: var(--tinta); }
.mes-d:hover { border-color: var(--px); }
.mes-d.fora { opacity: .4; }
.mes-d.hoje { border: 2px solid var(--px); }
.mes-d b { font-family: var(--f-tit); }
.mes-n { font-size: .74rem; font-weight: 700; color: var(--px); }
.mes-d small { font-size: .72rem; color: var(--aco); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.espera-l { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.espera-l li { display: flex; flex-wrap: wrap; gap: 4px 10px; padding: 8px 10px; background: var(--bg); border-radius: 10px; }
.espera-l span { color: var(--aco); }
@media (max-width: 640px) { .mes-d { min-height: 64px; padding: 4px; } .mes-d small { display: none; } .ag-vista { margin-bottom: 6px; } }
.ok-txt{color:#0f7a72;font-weight:600;margin:6px 0}

/* ---- modo avaliação (dono vê como médico de clínica grande / dono de clínica com vários médicos) ---- */
.avaliar { display: flex; align-items: center; gap: 8px; font-size: .82rem; font-weight: 600; color: #0c3a3b; }
.avaliar select { font: inherit; font-weight: 600; border: 1.5px solid #f2b705; background: #fff8dc; border-radius: 999px; padding: 5px 10px; max-width: 290px; }
.aval-faixa { position: sticky; top: 0; z-index: 30; display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap; background: repeating-linear-gradient(135deg, #fff3c4 0 14px, #ffeaa0 14px 28px); color: #4a3a00; font-weight: 600; font-size: .86rem; padding: 8px 16px; border-bottom: 1px solid #e5c55a; }
@media (max-width: 720px) { .avaliar { font-size: .74rem; } .avaliar select { max-width: 180px; } }

/* ---- timbre lido do arquivo da clínica ---- */
.papel-doc.pd-timbre .pd-cab { align-items: center; }
.papel-doc.pd-timbre .pd-al-centro { flex-direction: column; text-align: center; }
.papel-doc.pd-timbre .pd-al-direita { flex-direction: row-reverse; text-align: right; }
.papel-doc .pd-logo2 { flex: none; max-width: 170px; max-height: 76px; display: grid; place-items: center; }
.papel-doc .pd-logo2 img { max-width: 170px; max-height: 76px; object-fit: contain; }
.papel-doc .pd-cab-l b { display: block; font-size: 1.05rem; color: var(--cor-doc); }
.papel-doc .pd-cab-l small { display: block; color: #4b5563; line-height: 1.35; }
.papel-doc.pd-serif, .papel-doc.pd-serif * { font-family: Georgia, "Times New Roman", serif; font-style: normal; } .papel-doc.pd-serif { font-size: .98rem; }
.papel-doc.pd-timbre h4 { color: var(--cor-doc); }
.papel-doc .pd-ass-direita { text-align: right; } .papel-doc .pd-ass-direita .linha-ass { margin: 0 0 4px auto; }
.papel-doc .pd-ass-esquerda { text-align: left; } .papel-doc .pd-ass-esquerda .linha-ass { margin: 0 auto 4px 0; }
.papel-doc.pd-timbre .pd-rod { border-top-color: var(--cor-doc2); }
/* leitor de modelo */
.ml-lado { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 16px; margin: 12px 0; align-items: start; }
.ml-orig { margin: 0; border: 1px solid #dde3ea; border-radius: 8px; padding: 8px; background: #f8faf9; }
.ml-orig img { width: 100%; display: block; border-radius: 4px; }
.ml-orig figcaption, .ml-rot { display: block; font-size: .78rem; font-weight: 700; color: #5b6879; text-transform: uppercase; letter-spacing: .05em; margin-bottom: 6px; }
.ml-cores { display: flex; align-items: center; gap: 8px; } .ml-cores span { width: 26px; height: 26px; border-radius: 6px; border: 1px solid #0002; }
.ml-cores img { max-height: 40px; max-width: 120px; border: 1px solid #dde3ea; border-radius: 4px; background: #fff; }
.passos-klug .erro { color: #b42318; font-weight: 600; } .passos-klug .erro::before { content: "✕ "; }
.chk { display: flex; gap: 8px; align-items: flex-start; margin: 10px 0; font-size: .9rem; } .chk input { width: auto !important; margin-top: 3px; }
@media (max-width: 720px) { .ml-lado { grid-template-columns: 1fr; } }

/* ---- frases rápidas ---- */
.fr-pop { position: fixed; z-index: 90; background: #fff; border: 1px solid #cfdcd8; border-radius: 10px; box-shadow: 0 12px 30px #0c3a3b2e; padding: 4px; max-width: 460px; display: flex; flex-direction: column; }
.fr-pop button { display: flex; gap: 8px; align-items: baseline; text-align: left; border: 0; background: none; padding: 6px 8px; border-radius: 6px; font: inherit; cursor: pointer; }
.fr-pop button[aria-selected="true"], .fr-pop button:hover { background: #e3f2f0; }
.fr-pop b { color: #0f7a72; font-family: "IBM Plex Mono", monospace; } .fr-pop span { color: #374151; font-size: .86rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fr-pop small { color: #6b7280; padding: 4px 8px 2px; font-size: .74rem; }
.fr-lista { display: flex; flex-direction: column; gap: 8px; margin: 10px 0; }
.fr-it { display: grid; grid-template-columns: auto 140px minmax(0, 1fr) auto; gap: 6px; align-items: start; }
.fr-ponto { font: 700 1.1rem "IBM Plex Mono", monospace; color: #0f7a72; padding-top: 6px; }
@media (max-width: 720px) { .fr-it { grid-template-columns: auto 1fr auto; } .fr-it textarea { grid-column: 1 / -1; } }

/* ---- finanças ---- */
.fin-abas { display: flex; gap: 4px; flex-wrap: wrap; border-bottom: 1px solid #d5e1dd; margin: 4px 0 14px; }
.fin-abas button { border: 0; background: none; padding: 9px 14px; font: 600 .92rem "Archivo", sans-serif; color: #4b5b58; border-bottom: 3px solid transparent; cursor: pointer; }
.fin-abas button[aria-selected="true"] { color: #0c3a3b; border-bottom-color: #0f7a72; }
.fin-bolinha { background: #c2410c; color: #fff; border-radius: 999px; font-size: .72rem; padding: 1px 7px; margin-left: 4px; }
.fin-mes { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; } .fin-mes > b { font: 600 1.15rem "Newsreader", serif; font-style: italic; min-width: 170px; text-align: center; }
.fin-med { margin-left: auto; display: flex; gap: 6px; align-items: center; font-size: .86rem; }
.fin-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; margin: 10px 0 14px; }
.fin-card { padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; } .fin-card > span { font-size: .8rem; color: #5b6879; font-weight: 600; } .fin-card > b { font: 700 1.6rem "Archivo", sans-serif; color: #0c3a3b; }
.fin-din .fin-card > b { font-size: 1.3rem; } .fin-card.fin-alerta { border-left: 4px solid #c2410c; } .fin-card.fin-ok { border-left: 4px solid #0f7a72; }
.fin-var { font-weight: 700; font-size: .78rem; } .fin-bom { color: #0f7a72; } .fin-ruim { color: #c2410c; } .fin-up { color: #4a5bd4; }
.fin-ori { padding: 12px 14px; display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
.fin-barra { display: grid; grid-template-columns: 150px 1fr 40px; gap: 8px; align-items: center; font-size: .86rem; } .fin-barra i { height: 10px; border-radius: 6px; background: linear-gradient(90deg, #0f7a72 var(--p), #e6eeeb var(--p)); }
.fin-resumo { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-bottom: 10px; font-size: .9rem; } .fin-resumo b { color: #0c3a3b; }
.fin-sem { margin-bottom: 10px; padding: 0; } .fin-sem > summary { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 12px 14px; cursor: pointer; } .fin-sem .tab { overflow-x: auto; }
.fin-dia td { background: #f1f6f4; font-size: .84rem; } .fin-obs { max-width: 220px; font-size: .8rem; color: #4b5563; } .fin-ac { white-space: nowrap; } .fin-cob { display: block; font-size: .74rem; }
.lk { border: 0; background: none; padding: 0; color: #0f5f59; font: inherit; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; text-align: left; }
.fin-nf-filtros { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; } .fin-nf-filtros button { border: 1px solid #cfdcd8; background: #fff; border-radius: 999px; padding: 6px 12px; font: inherit; cursor: pointer; } .fin-nf-filtros button[aria-pressed="true"] { background: #0c3a3b; color: #fff; border-color: #0c3a3b; }
.fin-nf { padding: 12px 14px; margin-bottom: 8px; display: grid; gap: 4px; } .fin-nf.atrasada { border-left: 4px solid #c2410c; } .fin-nf-t { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; } .fin-nf-v { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.aviso-mini { font-size: .76rem; color: #92400e; background: #fef3c7; border-radius: 6px; padding: 1px 6px; }
.fin-copia { display: grid; grid-template-columns: 170px minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 6px 0; border-bottom: 1px dashed #e2e8e6; } .fin-copia code { overflow-wrap: anywhere; font-size: .84rem; }
.fin-formas { display: flex; gap: 8px; flex-wrap: wrap; margin: 10px 0; }
.fin-cir { margin-bottom: 8px; padding: 0; } .fin-cir > summary { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; padding: 12px 14px; cursor: pointer; }
.fin-dl { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 4px 12px; padding: 0 14px 14px; margin: 0; font-size: .88rem; } .fin-dl dt { color: #5b6879; font-weight: 600; } .fin-dl dd { margin: 0; }
@media (max-width: 720px) { .fin-copia { grid-template-columns: 1fr auto; } .fin-copia span { grid-column: 1 / -1; font-weight: 600; } .fin-dl { grid-template-columns: 1fr; } .fin-med { margin-left: 0; } .fin-barra { grid-template-columns: 110px 1fr 34px; } }
.fx-qed-tr{display:inline-flex;align-items:center;gap:4px;font-size:.8rem;color:#4b5563;white-space:nowrap}.fx-qed-tr input{width:auto!important}

/* ---- produção e repasse ---- */
.fin-per { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.fin-per-rot { font: 600 1.1rem "Newsreader", serif; font-style: italic; min-width: 200px; text-align: center; }
.fin-graf { padding: 12px 14px; margin: 0 0 14px; } .fin-graf figcaption { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; font-size: .84rem; color: #4b5563; margin-bottom: 6px; }
.fin-graf figcaption i { display: inline-block; width: 12px; height: 10px; border-radius: 2px; margin: 0 4px 0 10px; vertical-align: -1px; }
.lg-b { background: #9fd3cc; } .lg-l { background: #0f7a72; } .lg-n { background: #b4761a; height: 3px !important; vertical-align: 3px !important; }
.fin-graf svg { width: 100%; height: auto; display: block; }
.g-grade { stroke: #e2e8e6; } .g-eixo { font: 11px "IBM Plex Sans", sans-serif; fill: #6b7280; } .g-eixo-n { fill: #b4761a; }
.g-bruto { fill: #9fd3cc; } .g-liq { fill: #0f7a72; } .g-linha { fill: none; stroke: #b4761a; stroke-width: 2.2; } .g-ponto { fill: #fff; stroke: #b4761a; stroke-width: 2; }
.fin-tot td { background: #f1f6f4; font-weight: 600; }
.fin-como { padding: 12px 14px; margin-top: 12px; } .fin-como summary { cursor: pointer; } .fin-como ol { margin: 10px 0; padding-left: 20px; line-height: 1.6; font-size: .9rem; }
/* agenda: horário de outro médico, sem o nome do paciente */
.slot.ocup, .sem-ag.ocup { background: repeating-linear-gradient(135deg, #f1f4f3 0 8px, #e9eeec 8px 16px); color: #5b6879; border: 1px solid #dde3ea; border-radius: 8px; padding: 6px 10px; display: flex; flex-direction: column; }
.slot.livre-out { color: #9aa5a2; font-size: .82rem; padding: 8px 10px; background: transparent !important; border: 1px dashed #e2e8e6 !important; box-shadow: none !important; }
.fin-neutro .fin-var { color: #6b7280 !important; }

/* ---- minha conta ---- */
.ct-sec { border-top: 1px solid #e2e8e6; padding-top: 12px; margin-top: 14px; } .ct-sec h3 { margin: 0 0 8px; font-size: 1rem; }
.ct-lista { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; } .ct-lista li { display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: baseline; } .ct-lista small { color: #6b7280; width: 100%; }
.ct-ac { white-space: nowrap; } @media (max-width: 720px) { .ct-ac { white-space: normal; } #minha-conta { padding: 4px 8px; } }

/* ---- barra lateral com tudo à vista + Flink ---- */
.ab-sep { margin: 12px 12px 4px; padding-top: 10px; border-top: 1px solid rgb(255 255 255 / .12); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: rgb(255 255 255 / .5); font-weight: 700; }
.ab-sep:empty { padding-top: 0; margin-bottom: 0; }
#abas .ab-flink { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 10px; color: #fff; font-weight: 700; font-size: .95rem; text-decoration: none; background: linear-gradient(90deg, rgb(242 183 5 / .22), rgb(242 183 5 / .08)); border: 1px solid rgb(242 183 5 / .45); margin-top: 6px; white-space: nowrap; }
#abas .ab-flink em { font-style: normal; font-weight: 500; opacity: .8; font-size: .82rem; }
#abas .ab-flink svg { width: 21px; height: 21px; color: #f2b705; flex: none; }
#abas .ab-flink:hover { background: rgb(242 183 5 / .3); }
#abas button[data-aba="config"] { margin-top: 0; } #abas button[data-aba="config"]::before { display: none; }
@media (min-width: 1000px) { .lateral { overflow-y: auto; } #abas button { padding: 8px 12px; } }
@media (max-width: 999.98px) {
  #abas { overflow-x: auto !important; scrollbar-width: none; }
  #abas button, #abas .ab-flink { flex: 0 0 74px !important; }
  #abas .ab-flink { flex-direction: column; gap: 3px; padding: 7px 2px; font-size: .66rem; justify-content: center; text-align: center; margin-top: 0; }
  #abas .ab-flink em { display: none; }
  .ab-sep { display: none; }
}

/* ---- procedimentos ---- */
.slot.proc { border-left-color: #8a3a85 !important; background: #f6ecf5 !important; }
.cc-proc { display: block; font-style: normal; font-size: .72rem; font-weight: 700; color: #8a3a85; margin-top: 2px; }
.sv-tab table input { width: 100%; font: inherit; padding: 6px 8px; border: 1px solid #d5e1dd; border-radius: 6px; }
.sv-meds { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: .8rem; } .sv-meds input { width: auto !important; }
.sv-grade { margin: 12px 0 18px; overflow-x: auto; } .sv-grade > b { display: block; margin-bottom: 6px; }
.sv-grade table { border-collapse: collapse; } .sv-grade th { font-size: .78rem; color: #5b6879; padding: 4px 6px; text-align: left; } .sv-grade td { padding: 3px; }
.sv-grade select { font: inherit; font-size: .82rem; padding: 5px 6px; border-radius: 6px; border: 1px solid #d5e1dd; min-width: 112px; }
.sv-grade select.sv-procedimento { background: #f6ecf5; border-color: #c48dbf; } .sv-grade select.sv-consulta { background: #e3f2f0; border-color: #8cc7bf; } .sv-grade select.sv-ambos { background: #fff8dc; border-color: #e5c55a; }

/* ---- mapa cirúrgico (agenda por sala) ---- */
.ms-wrap { overflow-x: auto; padding: 0; }
.ms { display: grid; position: relative; min-width: 100%; }
.ms-c { grid-row: 1; padding: 10px 12px; border-bottom: 1px solid #dde3ea; background: #fff; position: sticky; top: 0; z-index: 2; } .ms-c b { display: block; } .ms-c span { font-size: .76rem; color: #5b6879; }
.ms-h { grid-column: 1; font-size: .74rem; color: #6b7280; padding: 2px 6px; border-top: 1px solid #edf1ef; }
.ms-col { border-left: 1px solid #edf1ef; background: repeating-linear-gradient(180deg, transparent 0 87px, #f2f5f4 87px 88px); }
.ms-ag { margin: 1px 4px; border: 0; border-left: 4px solid #8a3a85; background: #f6ecf5; border-radius: 8px; text-align: left; padding: 4px 8px; font: inherit; cursor: pointer; overflow: hidden; z-index: 1; display: flex; flex-direction: column; }
.ms-ag b { font-size: .82rem; } .ms-ag small { font-size: .72rem; color: #5b4458; } .ms-ag.mal { border-left-color: #b42318; background: #fde8e7; } .ms-ag[disabled] { cursor: default; background: repeating-linear-gradient(135deg, #f1f4f3 0 8px, #e9eeec 8px 16px); border-left-color: #9aa5a2; }
.sv-mais summary { cursor: pointer; font-size: .8rem; color: #0f5f59; white-space: nowrap; } .sv-dias { display: grid; grid-template-columns: repeat(3, auto); gap: 2px 10px; font-size: .78rem; margin: 6px 0; } .sv-dias input { width: auto !important; }
.sv-salas { display: flex; flex-direction: column; gap: 6px; margin: 8px 0; } .sv-sala { display: flex; gap: 6px; } .sv-sala input { flex: 1; font: inherit; padding: 7px 10px; border: 1px solid #d5e1dd; border-radius: 8px; } .sv-sala select { font: inherit; border: 1px solid #d5e1dd; border-radius: 8px; padding: 6px; }

/* ---- Klug com IA ---- */
.klug-clipe { flex: none; font-size: 1rem; padding: 6px 10px; cursor: pointer; }
.kl-conf ul { margin: 6px 0; padding-left: 18px; font-size: .86rem; max-height: 240px; overflow: auto; } .kl-conf .acoes { margin-top: 6px; }
.kl-pensa { opacity: .7; font-style: italic; }

/* ---------- Modelo fiel (28/10/2026): o arquivo da clínica do jeito que é, com as áreas que o Praxis preenche ---------- */
.kwf-doc { display: flex; flex-direction: column; gap: 14px; width: 100%; min-width: 0; }
.kwf-pag { position: relative; width: 100%; container-type: inline-size; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.12); overflow: hidden; touch-action: none; }
.kwf-pag > img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; user-select: none; pointer-events: none; }
.kwf-c { position: absolute; line-height: 1.15; color: #111; font-family: Arial, Helvetica, sans-serif; overflow: hidden; padding: 0 .2cqw; display: flex; align-items: flex-end; white-space: normal; word-break: break-word; }
.kwf-c.cobre { background: #fff; }
.kwf-c.ed { overflow: visible; border: 1.5px solid #0f7a72; background: rgba(15,122,114,.10); cursor: move; align-items: center; }
.kwf-c.ed.cobre { background: rgba(255,255,255,.88); }
.kwf-c.ed.apaga { border-color: #b42318; background: repeating-linear-gradient(135deg, rgba(255,255,255,.92) 0 6px, rgba(180,35,24,.14) 6px 9px); }
.kwf-c.ed.sel { border-color: #f2b705; box-shadow: 0 0 0 3px rgba(242,183,5,.45); z-index: 2; }
.kwf-c.ed i { display: none; position: absolute; left: 0; top: -1px; transform: translateY(-100%); font: 600 11px/1.3 "IBM Plex Sans", sans-serif; font-style: normal; background: #0f7a72; color: #fff; padding: 1px 6px; border-radius: 4px 4px 0 0; white-space: nowrap; max-width: 260px; overflow: hidden; text-overflow: ellipsis; pointer-events: none; }
.kwf-c.ed:hover i, .kwf-c.ed.sel i { display: block; z-index: 3; }
.kwf-c.ed.apaga i { background: #b42318; } .kwf-c.ed.sel i { background: #8a6400; }
.kwf-c.ed span { pointer-events: none; overflow: hidden; display: block; width: 100%; max-height: 100%; }
.kwf-alca { position: absolute; right: -1px; bottom: -1px; width: 12px; height: 12px; background: #0f7a72; cursor: nwse-resize; border-radius: 2px 0 0 0; }
.kwf-novo { position: absolute; border: 2px dashed #f2b705; background: rgba(242,183,5,.15); pointer-events: none; }
.kwf-html { background: #fff; padding: 8px; overflow-x: auto; }
.kwf-html section.kwdocx { margin: 0 auto 14px !important; box-shadow: 0 1px 4px rgba(0,0,0,.12); }
.kwf-html.editor [data-kwf] { background: rgba(15,122,114,.14); outline: 1.5px solid #0f7a72; border-radius: 2px; cursor: pointer; }
.kwf-html.editor [data-kwf].sel { outline-color: #f2b705; box-shadow: 0 0 0 3px rgba(242,183,5,.45); }
.kwf-html.editor:focus { outline: 2px solid #f2b705; outline-offset: 2px; }
.kwf-ed { margin-top: 12px; }
.kwf-barra { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; position: sticky; top: 0; z-index: 5; background: #fff; padding: 8px 0; border-bottom: 1px solid #e6ebe9; }
.kwf-barra [aria-pressed="true"] { background: #13233a; color: #fff; border-color: #13233a; }
.kwf-prev { margin-left: auto; } .kwf-dica { font-size: .82rem; }
.kwf-ajuda { margin: 8px 0 0; font-size: .86rem; color: #8a6400; background: #fff7dd; padding: 6px 10px; border-radius: 6px; }
.kwf-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(300px, 1fr); gap: 18px; margin-top: 12px; align-items: start; }
.kwf-folhas { background: #e9eeec; padding: 14px; border-radius: 10px; max-height: 78vh; overflow: auto; }
.kwf-painel { position: sticky; top: 56px; max-height: 82vh; overflow: auto; display: flex; flex-direction: column; gap: 10px; }
.kwf-painel > * { flex-shrink: 0; }
.kwf-painel h3 { margin: 4px 0 0; font-size: .95rem; }
.kwf-lista { display: flex; flex-direction: column; gap: 8px; max-height: 46vh; overflow: auto; padding-right: 4px; }
.kwf-lin { border: 1px solid #dde3ea; border-radius: 8px; padding: 8px 10px; display: flex; flex-direction: column; gap: 6px; background: #fff; }
.kwf-lin.sel { border-color: #f2b705; box-shadow: 0 0 0 2px rgba(242,183,5,.35); }
.kwf-lin-cab { display: flex; gap: 6px; } .kwf-lin-cab input { flex: 1; font-weight: 600; }
.kwf-rot { display: flex; flex-direction: column; gap: 3px; font-size: .78rem; color: #5b6879; }
.kwf-ops { display: flex; flex-direction: column; gap: 4px; } .kwf-ops > div { display: grid; grid-template-columns: 1fr 1fr auto; gap: 4px; }
.kwf-sem { margin: 0; font-size: .8rem; } .kwf-chk { font-size: .8rem; } .kwf-obs { font-size: .8rem; }
.kwf-klug { border: 1px solid #dde3ea; border-radius: 8px; padding: 10px; display: flex; flex-direction: column; gap: 6px; background: #f7faf9; }
.kwf-klug > span { font-size: .78rem; }
.kwf-klug summary { cursor: pointer; list-style: none; } .kwf-klug summary::-webkit-details-marker { display: none; } .kwf-klug summary::before { content: "▸ "; } .kwf-klug[open] summary::before { content: "▾ "; }
.kwf-conv { max-height: 150px; overflow: auto; display: flex; flex-direction: column; gap: 6px; }
.kwf-conv p { margin: 0; padding: 6px 9px; border-radius: 8px; font-size: .85rem; max-width: 92%; }
.kwf-conv .eu { align-self: flex-end; background: #0f7a72; color: #fff; } .kwf-conv .kl { background: #fff; border: 1px solid #e3e8e6; }
.kwf-klug form { display: flex; gap: 6px; align-items: flex-end; } .kwf-klug textarea { flex: 1; resize: vertical; }
.em-folha { margin-top: 12px; } .em-auto summary { cursor: pointer; font-size: .88rem; color: #3d4a5c; margin: 6px 0; }
@media (max-width: 900px) { .kwf-grid { grid-template-columns: 1fr; } .kwf-painel { position: static; max-height: none; } .kwf-folhas { max-height: none; } }
@media print {
  body.imp-doc #doc-imprimir .kwf-doc { gap: 0; }
  body.imp-doc #doc-imprimir .kwf-pag { box-shadow: none; break-after: page; page-break-after: always; }
  body.imp-doc #doc-imprimir .kwf-pag:last-child { break-after: auto; page-break-after: auto; }
  body.imp-doc #doc-imprimir .kwf-html { padding: 0; } body.imp-doc #doc-imprimir .kwf-html section.kwdocx { box-shadow: none; margin: 0 !important; }
}
.dica-mod { background: #eef7f5; border-left: 4px solid #0f7a72; padding: 8px 12px; border-radius: 6px; font-size: .9rem; margin: 8px 0; }
/* Selos do cartão da agenda e ficha do agendamento/cirurgia (28/10/2026) */
.selo-ag { display: inline-grid; place-items: center; width: 1.3em; height: 1.3em; border-radius: 50%; font-size: .8em; line-height: 1; font-weight: 700; vertical-align: .1em; margin-left: .2em; color: #fff; }
.selo-ag.ok { background: #2e7d4f; } .selo-ag.pg { background: #2e7d4f; }
.selo-ag.pend { background: #fff; color: #2e7d4f; box-shadow: inset 0 0 0 1.5px #2e7d4f; }
.legenda .selo-ag { font-size: .95em; margin: 0 2px 0 0; }
.ag-cir h3 { margin: 0 0 6px; } .ag-cir h4 { margin: 12px 0 4px; font-size: .9rem; color: #2a3a8f; } .ag-cir-eq { margin: 0; padding-left: 18px; font-size: .9rem; }
.ag-cir { background: #f2f4fd; border-color: #c9cff0; }
.cv-acesso { border: 1px solid #dde3ea; border-radius: 10px; padding: 10px 14px; margin: 10px 0; } .cv-acesso legend { font-weight: 700; padding: 0 6px; }
.cv-ac-perms { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 6px 14px; margin: 6px 0; }
.cv-ac-perms label, .cv-ac-ags label { display: flex; gap: 8px; align-items: flex-start; font-size: .9rem; } .cv-ac-perms small { display: block; color: #5b6879; font-size: .76rem; }
.cv-ac-ags { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-bottom: 6px; }
.cv-modo { border: 1px solid #dde3ea; border-radius: 10px; padding: 10px 14px; margin: 10px 0; display: flex; flex-direction: column; gap: 6px; } .cv-modo legend { font-weight: 700; padding: 0 6px; }
.cv-modo > label { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; } .cv-modo small { color: #5b6879; }
.cv-modo > label { display: grid; grid-template-columns: auto 1fr; column-gap: 8px; align-items: start; font-weight: 600; } .cv-modo > label small { grid-column: 2; font-weight: 400; display: block; }
.cv-modo input[type="radio"], .cv-acesso input[type="checkbox"] { width: auto; margin: 3px 0 0; }
.modelo .btn-exc { margin-left: 6px; color: #b42318; border-color: #f1c7c3; } .btn-perigo { background: #b42318; color: #fff; border-color: #b42318; }
.fin-aviso-nf { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; background: #fff7dd; border: 1px solid #f0d98a; border-radius: 10px; padding: 8px 12px; margin: 0 0 12px; font-size: .92rem; }
.fin-aviso-nf .btn { margin-left: auto; }
/* Papel timbrado da clínica (28/10/2026): o arquivo da clínica é o fundo de todos os documentos */
.pdp-edfolha { max-width: 640px; margin: 0 auto; }
.pdp-caixa { position: absolute; border: 2px dashed #0f7a72; background: rgba(15,122,114,.06); cursor: move; touch-action: none; z-index: 2; }
.pdp-caixa i { position: absolute; left: -2px; top: -2px; transform: translateY(-100%); font: 600 11px/1.3 "IBM Plex Sans", sans-serif; font-style: normal; background: #0f7a72; color: #fff; padding: 1px 6px; border-radius: 4px 4px 0 0; white-space: nowrap; pointer-events: none; }
.pd-papel .pdp-pag { box-shadow: 0 1px 4px rgba(0,0,0,.12); }
.pd-papel .campo-var { background: none; color: inherit; padding: 0; font-weight: inherit; }
@page papel { margin: 0; }
@media print {
  body.imp-doc .pd-papel { gap: 0 !important; }
  body.imp-doc .pd-papel .pdp-pag { box-shadow: none; page: papel; break-after: page; page-break-after: always; break-inside: avoid; width: 99.6% !important; }
  body.imp-doc .pd-papel .pdp-pag:last-child { break-after: auto; page-break-after: auto; }
}
/* Agenda da clínica e cirurgias configuráveis (28/10/2026) */
.ac-turnos { display: flex; flex-direction: column; gap: 6px; margin: 6px 0 10px; }
.ac-t { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; } .ac-t .chk { min-width: 110px; margin: 0; }
.ac-t input[type="time"] { width: auto !important; flex: 0 0 auto; font: inherit; padding: 5px 8px; border: 1px solid #d5e1dd; border-radius: 8px; }
.ac-dias td, .ac-dias th { text-align: center; } .ac-dias th[scope="row"] { text-align: left; }
.btn-x { border: 0; background: none; cursor: pointer; color: #b42318; padding: 0 2px; font: inherit; }
.cc-eq { margin: 8px 0; background: #fbfcfc; }
.ci-mais { display: flex; gap: 6px; margin: 6px 0 10px; flex-wrap: wrap; } .ci-mais input { flex: 1 1 200px; font: inherit; padding: 6px 10px; border: 1px solid #d5e1dd; border-radius: 8px; }
#esqueci-txt { margin-top: 10px; }
.ct-grupo { margin: 18px 0 6px; font-size: 1rem; display: flex; gap: 8px; align-items: center; }

/* Pedido de troca de horário (troca-horario.js) */
.selo-ag.troca { background: #b25e09; }
.tr-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 12px; }
.tr-chip { display: grid; gap: 2px; min-width: 92px; padding: 8px 12px; border: 1.5px solid var(--borda, #c9d3d1); border-radius: 10px; background: #fff; color: inherit; font: inherit; font-size: .85rem; cursor: pointer; text-align: left; }
.tr-chip b { font-size: 1.05rem; }
.tr-chip.on { border-color: #0f7a72; background: #e3f2ef; box-shadow: inset 0 0 0 1px #0f7a72; }
.tr-previa pre { white-space: pre-wrap; font: inherit; font-size: .9rem; background: #f4f7f6; border-radius: 8px; padding: 10px 12px; margin: 6px 0 0; }
/* Bloqueio fácil, horário extra e busca do paciente ao marcar (28/10/2026) */
.slot.bloq { cursor: pointer; text-align: left; width: 100%; font: inherit; }
button.slot.bloq:hover { outline: 2px solid var(--aco); outline-offset: -2px; }
.slot.livre.extra { border-style: solid; border-color: var(--px); color: var(--px); background: var(--px-suave); }
.sem-ag.bloq { background: repeating-linear-gradient(135deg, #f1f4f3 0 6px, #e6ebea 6px 12px); border-left-color: var(--aco); color: #5b6879; cursor: default; }
.sem-ag.extra { background: var(--px-suave); border-left-color: var(--px); color: var(--px); cursor: default; }
.bq-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 6px; }
.chip-bt { font: inherit; font-size: .85rem; border: 1px solid var(--linha); background: #fff; color: var(--tinta); border-radius: 999px; padding: 5px 12px; cursor: pointer; min-height: 32px; }
.chip-bt[aria-pressed="true"] { background: var(--px); border-color: var(--px); color: #fff; }
.bq-mot { width: 100%; }
.bq-aqui { margin-top: 14px; }
.campo .lbl { display: block; font-weight: 600; font-size: .85rem; margin-bottom: 2px; }
.m-sug { display: flex; flex-direction: column; gap: 4px; max-height: 340px; overflow-y: auto; margin-bottom: 6px; }
.m-sug .res.ativo, .m-sug .res:focus-visible { outline: 2px solid var(--px); outline-offset: -2px; background: var(--px-suave); }
.m-sug .res { width: 100%; box-sizing: border-box; }

/* Klug que opera (28/10/2026): cartão de confirmação no chat */
.kl-op p { margin: 4px 0; } .kl-op .aviso { margin: 6px 0; }
.kl-op-bts { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.kl-op-bts .btn { white-space: normal; text-align: left; }
