/* Katabasis Clínica · estilo
   Todas as cores e medidas moram nas variáveis abaixo: mudar o visual é mexer aqui. */

:root {
  --escala: 1;
  --fundo: #060D16;
  --fundo-grad: linear-gradient(180deg, #12243A 0%, #0A1726 45%, #060D16 100%);
  --bloco: linear-gradient(160deg, #16293D 0%, #0F1F30 60%, #0B1826 100%);
  --bloco-liso: #102133;
  --linha: #1A2E44;
  --linha-hover: #1E3650;
  --borda: #20364D;
  --texto: #F4EEE2;
  --apoio: #D3DEE8;
  --suave: #8396AA;
  --ouro: #E0B855;
  --ouro2: #B8902F;
  --ouro-fundo: rgba(224, 184, 85, .12);
  --verde: #7FC29B;
  --verm: #E06A5A;
  --azul: #6FA3D9;
  --lilas: #B79CE8;
  --rosa: #E59BB8;
  --agua: #5CC2B8;
  --btn: linear-gradient(180deg, #2A4059 0%, #1A2C40 100%);
  --relevo: inset 0 1px 0 rgba(255,255,255,.09), inset 0 -1px 0 rgba(0,0,0,.5), 0 2px 4px rgba(0,0,0,.55);
  --afundado: inset 0 2px 4px rgba(0,0,0,.5), inset 0 0 0 1px rgba(0,0,0,.35);
  --sombra-painel: -12px 0 32px rgba(0,0,0,.45);
  --forte: linear-gradient(180deg, #EBC66A 0%, #C99B36 100%); /* botão principal */
  --forte-texto: #1B1405;
  --forte-borda: #C99B36;
  --sombra-palco: inset 0 0 60px rgba(0,0,0,.25);
  --raio: 10px;
  --alvo: 44px; /* tamanho mínimo de toque */
  color-scheme: dark;
}
/* Quatro estilos (pedido de 29/10, inspirados nos humores do Mandala, sem copiar):
   Katabasis (o clássico azul-noite e dourado, acima), Escuro (grafite), Claro (branco limpo) e Zen (sálvia).
   Os três novos são planos: sem relevo, elegância pela calma. */

:root[data-tema="escuro"] {
  --fundo: #101214;
  --fundo-grad: linear-gradient(180deg, #1A1D20 0%, #131517 50%, #0E0F11 100%);
  --bloco: #1A1D21;
  --bloco-liso: #1D2024;
  --linha: #1C1F23;
  --linha-hover: #24282D;
  --borda: #2D3238;
  --texto: #EDEDEC;
  --apoio: #C9CDD2;
  --suave: #8C939B;
  --ouro: #D9BD7A;
  --ouro2: #A58C52;
  --ouro-fundo: rgba(217, 189, 122, .10);
  --verde: #86C59F;
  --verm: #E27D6E;
  --azul: #8DB3DD;
  --lilas: #BBA6E6;
  --rosa: #E5A5BF;
  --agua: #6CC5BB;
  --btn: #23272C;
  --relevo: 0 1px 2px rgba(0,0,0,.4);
  --afundado: inset 0 1px 2px rgba(0,0,0,.45);
  --sombra-painel: -12px 0 32px rgba(0,0,0,.5);
  --forte: #D9BD7A;
  --forte-texto: #16130B;
  --forte-borda: #D9BD7A;
  --sombra-palco: inset 0 0 50px rgba(0,0,0,.3);
}

:root[data-tema="claro"] {
  --fundo: #F6F6F4;
  --fundo-grad: linear-gradient(180deg, #FFFFFF 0%, #F6F6F4 100%);
  --bloco: #FFFFFF;
  --bloco-liso: #FFFFFF;
  --linha: #FFFFFF;
  --linha-hover: #F5F3EE;
  --borda: #E4E2DC;
  --texto: #1F2328;
  --apoio: #3A4047;
  --suave: #6B7178;
  --ouro: #8A6A1F;
  --ouro2: #B8963F;
  --ouro-fundo: rgba(176, 138, 58, .09);
  --verde: #2F7A50;
  --verm: #B3402F;
  --azul: #2E64A0;
  --lilas: #6F52B0;
  --rosa: #A8466F;
  --agua: #1D7F75;
  --btn: #FFFFFF;
  --relevo: 0 1px 2px rgba(20,20,20,.08);
  --afundado: inset 0 1px 2px rgba(20,20,20,.06);
  --sombra-painel: -12px 0 32px rgba(20,20,20,.10);
  --forte: #D9B865;
  --forte-texto: #1B1405;
  --forte-borda: #C8A453;
  --sombra-palco: inset 0 0 40px rgba(0,0,0,.035);
  color-scheme: light;
}

:root[data-tema="zen"] {
  --fundo: #ECF0E8;
  --fundo-grad: linear-gradient(180deg, #F4F7F1 0%, #E9EEE5 100%);
  --bloco: #F8FAF6;
  --bloco-liso: #FBFCF9;
  --linha: #F8FAF6;
  --linha-hover: #EEF3EA;
  --borda: #D4DDCF;
  --texto: #24302A;
  --apoio: #3B4A42;
  --suave: #56645C; /* 01/11: o anterior (#687870) ficava abaixo do contraste mínimo sobre a sálvia */
  --ouro: #4F7D5C;
  --ouro2: #86A98F;
  --ouro-fundo: rgba(79, 125, 92, .10);
  --verde: #3E8A5A;
  --verm: #B5533F;
  --azul: #3F6F95;
  --lilas: #7A62A8;
  --rosa: #B0567D;
  --agua: #2A8378;
  --btn: #FBFCF9;
  --relevo: 0 1px 2px rgba(40,60,45,.08);
  --afundado: inset 0 1px 2px rgba(40,60,45,.07);
  --sombra-painel: -12px 0 32px rgba(40,60,45,.12);
  --forte: #4F7D5C;
  --forte-texto: #FFFFFF;
  --forte-borda: #4F7D5C;
  --sombra-palco: inset 0 0 40px rgba(40,60,45,.04);
  --raio: 14px;
  color-scheme: light;
}

:root[data-contraste="alto"] {
  --suave: #B9C7D6;
  --apoio: #FFFFFF;
  --borda: #4B6A8A;
}
:root[data-tema="escuro"][data-contraste="alto"] { --borda: #5A626C; }
:root[data-tema="claro"][data-contraste="alto"],
:root[data-tema="zen"][data-contraste="alto"] {
  --suave: #3D4A58;
  --apoio: #000000;
  --borda: #8C8C80;
}

* { box-sizing: border-box; }
html { font-size: calc(15px * var(--escala)); }
body {
  margin: 0; min-height: 100vh; color: var(--texto);
  background: var(--fundo); background-image: var(--fundo-grad); background-attachment: fixed;
  font-family: 'IBM Plex Sans', system-ui, sans-serif; line-height: 1.45;
}
h1, h2, h3 { font-family: Spectral, Georgia, serif; font-weight: 600; margin: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
svg.lucide { width: 1.15em; height: 1.15em; stroke-width: 1.8; flex: none; }
.oculto { display: none !important; }

/* faixa do modo teste */
.faixa-teste {
  display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem;
  padding: .4rem 1rem; font-size: .85rem; color: #1B1405; background: var(--ouro);
}
.faixa-teste strong { letter-spacing: .04em; }
.faixa-teste select { background: rgba(255,255,255,.55); border: 0; border-radius: 6px; padding: .2rem .4rem; max-width: 100%; color: #1B1405; }
.faixa-teste .dor { opacity: .85; font-style: italic; }

/* topo */
.topo {
  display: flex; align-items: center; gap: 1rem; padding: .7rem 1.25rem;
  border-bottom: 1px solid var(--borda); position: sticky; top: 0; z-index: 20;
  background: color-mix(in srgb, var(--fundo) 85%, transparent); backdrop-filter: blur(8px);
}
.marca { display: flex; align-items: baseline; gap: .45rem; white-space: nowrap; }
.marca h1 { font-size: 1.35rem; color: var(--ouro); letter-spacing: .02em; }
.marca span { color: var(--suave); font-size: .9rem; }
.nav { display: flex; gap: .25rem; margin: 0 auto; padding: .25rem; border-radius: 999px; background: var(--bloco-liso); box-shadow: var(--afundado); }
.nav button {
  display: flex; align-items: center; gap: .4rem; border: 0; background: none; cursor: pointer;
  padding: .45rem .9rem; border-radius: 999px; color: var(--apoio); min-height: 36px;
}
.nav button:hover { color: var(--texto); }
.nav button[aria-current="page"] { background: var(--btn); color: var(--ouro); box-shadow: var(--relevo); }
.nav button.breve { opacity: .45; }
.ajustes { display: flex; gap: .3rem; }

/* botões */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .45rem;
  min-height: 38px; padding: .4rem .85rem; border-radius: 8px; cursor: pointer;
  border: 1px solid var(--borda); background: var(--btn); box-shadow: var(--relevo); color: var(--texto);
  white-space: nowrap; text-decoration: none;
}
.btn:hover { border-color: var(--ouro2); }
.btn:active { box-shadow: var(--afundado); }
.btn.ouro { color: var(--forte-texto); background: var(--forte); border-color: var(--forte-borda); font-weight: 600; }
.btn.icone { padding: .4rem; min-width: 38px; }
.btn.leve { background: none; box-shadow: none; border-color: transparent; color: var(--apoio); }
.btn.leve:hover { border-color: var(--borda); color: var(--texto); }
.btn[disabled] { opacity: .4; cursor: not-allowed; }
:focus-visible { outline: 2px solid var(--ouro); outline-offset: 2px; }

/* página */
main { max-width: 1180px; margin: 0 auto; padding: 1.25rem; }
.barra { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; margin-bottom: 1rem; }
.busca {
  flex: 1 1 320px; display: flex; align-items: center; gap: .6rem;
  background: var(--bloco-liso); border: 1px solid var(--borda); border-radius: 12px;
  padding: 0 .9rem; min-height: 48px; box-shadow: var(--afundado);
}
.busca input { flex: 1; border: 0; background: none; outline: none; font-size: 1.05rem; min-width: 0; }
.busca kbd { font-size: .75rem; color: var(--suave); border: 1px solid var(--borda); border-radius: 4px; padding: 0 .35rem; }
.chips { display: flex; gap: .35rem; flex-wrap: wrap; }
.chip {
  border: 1px solid var(--borda); background: none; border-radius: 999px; padding: .3rem .8rem;
  cursor: pointer; color: var(--apoio); min-height: 34px;
}
.chip[aria-pressed="true"] { background: var(--ouro-fundo); color: var(--ouro); border-color: var(--ouro2); }
.chip b { font-weight: 600; margin-left: .2rem; }

/* lista de pacientes */
.grupo { margin-bottom: 1.25rem; }
.grupo h2 {
  font-family: 'IBM Plex Sans', sans-serif; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase;
  color: var(--suave); font-weight: 600; margin: 0 0 .4rem .25rem; display: flex; gap: .5rem; align-items: center;
}
.grupo h2 .hoje { color: var(--ouro); letter-spacing: .05em; }
.lista { border: 1px solid var(--borda); border-radius: var(--raio); overflow: hidden; background: var(--bloco); }
.pac {
  display: grid; grid-template-columns: 4.2rem minmax(0, 1fr) 11rem 6rem auto; align-items: center; gap: .9rem;
  padding: .6rem .9rem; border-top: 1px solid var(--borda); cursor: pointer; min-height: 58px;
}
.pac:first-child { border-top: 0; }
.pac:hover, .pac.sel { background: var(--linha-hover); }
.pac.sel { box-shadow: inset 3px 0 0 var(--ouro); }
.pac .hora { font-variant-numeric: tabular-nums; font-size: 1.1rem; color: var(--ouro); font-weight: 500; }
.pac .hora.sem { color: var(--suave); font-size: .85rem; }
.pac .nome { font-size: 1.02rem; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pac .sub { display: flex; gap: .4rem; flex-wrap: wrap; margin-top: .1rem; font-size: .8rem; color: var(--suave); }
.etq { display: inline-flex; align-items: center; gap: .25rem; border: 1px solid var(--borda); border-radius: 5px; padding: 0 .35rem; font-size: .75rem; color: var(--apoio); }
.etq.pausa { color: var(--azul); border-color: color-mix(in srgb, var(--azul) 50%, transparent); }
.etq.encerrado { color: var(--suave); }
.etq.alerta { color: var(--ouro); border-color: var(--ouro2); }
.pac .lugar { display: flex; align-items: center; gap: .4rem; color: var(--apoio); font-size: .9rem; }
.pac .lugar.falta { color: var(--ouro); }
.pac .valor { text-align: right; font-variant-numeric: tabular-nums; color: var(--apoio); }
.pac .acoes { display: flex; gap: .3rem; justify-content: flex-end; }
.pac.inativo .nome, .pac.inativo .hora { opacity: .6; }
.vazio { text-align: center; padding: 3rem 1rem; color: var(--suave); }
.vazio .btn { margin-top: 1rem; }

/* ficha (painel lateral) */
.veu { position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 30; }
.ficha {
  position: fixed; top: 0; right: 0; bottom: 0; width: min(560px, 100vw); z-index: 31;
  background: var(--fundo); background-image: var(--fundo-grad); border-left: 1px solid var(--borda);
  box-shadow: var(--sombra-painel); display: flex; flex-direction: column;
}
.ficha-topo { padding: 1rem 1.25rem .75rem; border-bottom: 1px solid var(--borda); }
.ficha-topo .linha1 { display: flex; align-items: flex-start; gap: .75rem; }
.ficha-topo h2 { font-size: 1.55rem; line-height: 1.2; flex: 1; }
.ficha-topo .resumo { color: var(--suave); margin-top: .25rem; font-size: .9rem; }
.ficha-topo .rapidas { display: flex; gap: .4rem; flex-wrap: wrap; margin-top: .75rem; }
.ficha-corpo { overflow-y: auto; padding: .5rem 1.25rem 2rem; flex: 1; }
.secao { padding: 1rem 0; border-bottom: 1px solid var(--borda); }
.secao:last-child { border-bottom: 0; }
.secao h3 { font-size: 1.05rem; color: var(--ouro); margin-bottom: .7rem; display: flex; align-items: center; gap: .5rem; }
.secao h3 small { font-family: 'IBM Plex Sans', sans-serif; font-weight: 400; font-size: .78rem; color: var(--suave); }
.campos { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem 1rem; }
.campo { display: flex; flex-direction: column; gap: .25rem; min-width: 0; }
.campo.largo { grid-column: 1 / -1; }
.campo label { font-size: .8rem; color: var(--suave); }
.campo input, .campo select, .campo textarea {
  width: 100%; min-height: 40px; padding: .45rem .65rem; border-radius: 8px;
  border: 1px solid var(--borda); background: var(--bloco-liso); box-shadow: var(--afundado);
}
.campo textarea { min-height: 84px; resize: vertical; }
.campo input:focus, .campo select:focus, .campo textarea:focus { outline: none; border-color: var(--ouro2); }
.campo .dica { font-size: .75rem; color: var(--suave); }
.campo .com-botao { display: flex; gap: .4rem; }
.campo .com-botao input { flex: 1; }
.segmento { display: flex; gap: 0; border: 1px solid var(--borda); border-radius: 8px; overflow: hidden; }
.segmento button { flex: 1; border: 0; background: none; padding: .5rem .4rem; cursor: pointer; color: var(--apoio); min-height: 40px; border-left: 1px solid var(--borda); }
.segmento button:first-child { border-left: 0; }
.segmento button[aria-pressed="true"] { background: var(--ouro-fundo); color: var(--ouro); font-weight: 600; }
.acrescentar { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; padding: .9rem 0; border-bottom: 1px solid var(--borda); color: var(--suave); font-size: .85rem; }
.consent { display: flex; align-items: center; gap: .75rem; padding: .5rem 0; border-top: 1px dashed var(--borda); }
.consent:first-of-type { border-top: 0; }
.consent .qual { flex: 1; }
.consent .qual small { display: block; color: var(--suave); font-size: .78rem; }
.consent .estado { font-size: .85rem; }
.consent .estado.ok { color: var(--verde); }
.consent .estado.nao { color: var(--verm); }
.consent.desligado { opacity: .55; }
.historico { font-size: .85rem; color: var(--apoio); }
.historico li { padding: .3rem 0; border-top: 1px dashed var(--borda); list-style: none; }
.historico ul { padding: 0; margin: 0; }
.historico time { color: var(--suave); margin-right: .5rem; font-variant-numeric: tabular-nums; }

/* perfil */
.cartao { background: var(--bloco); border: 1px solid var(--borda); border-radius: var(--raio); padding: 1.25rem; margin-bottom: 1rem; }
.cartao h2 { font-size: 1.25rem; color: var(--ouro); margin-bottom: .25rem; }
.cartao > p { color: var(--suave); margin: 0 0 1rem; font-size: .9rem; }
.modulos { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: .6rem; }
.modulo { display: flex; gap: .7rem; align-items: flex-start; padding: .7rem .8rem; border: 1px solid var(--borda); border-radius: 8px; background: var(--bloco-liso); cursor: pointer; }
.modulo input { margin-top: .25rem; width: 18px; height: 18px; accent-color: var(--ouro2); }
.modulo small { display: block; color: var(--suave); font-size: .78rem; }
.modulo .de { color: var(--ouro); font-size: .72rem; }
.breve-tela { text-align: center; padding: 4rem 1rem; color: var(--suave); }
.breve-tela h2 { color: var(--ouro); margin-bottom: .5rem; }

.cartao h3.sub-titulo { font-size: 1.05rem; color: var(--texto); margin: 0 0 .25rem; }
.dica-cartao { color: var(--suave); font-size: .85rem; margin: .25rem 0 .9rem; }
.proximas { display: flex; align-items: flex-start; gap: .5rem; margin: .9rem 0 0; font-size: .88rem; color: var(--apoio); }
.proximas small { color: var(--suave); }

/* agenda: cores da situação (sempre junto com nome ou ícone, nunca só a cor) */
.sit-pendente { --cor-sit: var(--borda); }
.sit-compareceu { --cor-sit: var(--verde); }
.sit-falta_justificada { --cor-sit: var(--azul); }
.sit-falta_injustificada { --cor-sit: var(--verm); }
.sit-cancelado { --cor-sit: var(--suave); }

/* compromissos: cor por tipo (sempre com ícone e nome do tipo junto) */
.tipo-compromisso { --cor-tipo: var(--azul); }
.tipo-evento { --cor-tipo: var(--ouro); }
.tipo-tarefa { --cor-tipo: var(--verde); }
.tipo-minha_supervisao { --cor-tipo: var(--lilas); }
.tipo-minha_analise { --cor-tipo: var(--rosa); }
.tipo-grupo { --cor-tipo: var(--agua); }
.tipo-sessao { --cor-tipo: var(--apoio); }
.gev { --cor-tipo: var(--suave); }
.bloco.gev { cursor: pointer; border-style: dashed; border-left-style: solid; }
.sess.gev .nome { font-weight: 400; color: var(--apoio); }
.sess.comp { box-shadow: inset 4px 0 0 var(--cor-tipo); background: color-mix(in srgb, var(--cor-tipo) 6%, transparent); }
.sess.comp .lugar-mini svg { color: var(--cor-tipo); }
.sess.comp .hora small { color: var(--suave); }
.sess.comp.feita .nome, .tarefa.feita .tarefa-tit { text-decoration: line-through; opacity: .6; }
.bloco.comp { background: color-mix(in srgb, var(--cor-tipo) 16%, var(--bloco-liso)); border-left-color: var(--cor-tipo); }
.bloco.comp svg { color: var(--cor-tipo); margin: 0; }
.bloco.comp.feita { opacity: .55; text-decoration: line-through; }
.sem-todo { padding: .25rem; border-left: 1px solid var(--borda); border-bottom: 1px solid var(--borda); display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.sem-todo.canto { border-left: 0; text-align: right; color: var(--suave); font-size: .7rem; padding-right: .4rem; }
.chip-comp {
  display: flex; align-items: center; gap: .25rem; width: 100%; min-width: 0; padding: .1rem .35rem; cursor: pointer; text-align: left;
  border: 1px solid color-mix(in srgb, var(--cor-tipo) 50%, transparent); border-radius: 5px; font-size: .74rem; color: var(--texto);
  background: color-mix(in srgb, var(--cor-tipo) 14%, transparent);
}
.chip-comp span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chip-comp svg { width: .9em; height: .9em; color: var(--cor-tipo); }
.chip-comp.feita span { text-decoration: line-through; opacity: .6; }
.tarefas { margin-bottom: 1rem; padding: .8rem 1rem; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--bloco); box-shadow: inset 4px 0 0 var(--verde); }
.tarefas h3 { display: flex; align-items: center; gap: .5rem; font-size: 1.05rem; color: var(--ouro); margin-bottom: .4rem; }
.tarefas h3 small { font-family: 'IBM Plex Sans', sans-serif; font-weight: 400; font-size: .8rem; color: var(--suave); }
.tarefa { display: flex; align-items: center; gap: .6rem; padding: .3rem 0; border-top: 1px dashed var(--borda); min-height: 40px; }
.tarefa:first-of-type { border-top: 0; }
.tarefa input { width: 20px; height: 20px; accent-color: var(--verde); flex: none; cursor: pointer; }
.tarefa-tit { flex: 1; min-width: 0; text-align: left; border: 0; background: none; cursor: pointer; padding: .2rem 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tarefa-tit:hover { color: var(--ouro); }
.tarefa small { color: var(--suave); font-size: .78rem; white-space: nowrap; }
.tarefa.atrasada small { color: var(--verm); }
.tipos { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .5rem; margin-bottom: 1rem; }
.tipo-btn { justify-content: flex-start; min-height: 46px; box-shadow: var(--relevo), inset 4px 0 0 var(--cor-tipo); }
.tipo-btn svg { color: var(--cor-tipo); }
.tipos.pequenos { display: flex; flex-wrap: wrap; gap: .35rem; margin: 0; }
.tipos.pequenos .chip { display: inline-flex; align-items: center; gap: .3rem; }
.tipos.pequenos .chip svg { color: var(--cor-tipo); }
.tipos.pequenos .chip[aria-pressed="true"] { border-color: var(--cor-tipo); background: color-mix(in srgb, var(--cor-tipo) 16%, transparent); color: var(--texto); }
label.marca { display: flex; align-items: center; gap: .4rem; font-size: .85rem; color: var(--apoio); cursor: pointer; margin-top: .3rem; }
label.marca.largo { grid-column: 1 / -1; }
label.marca input { width: 18px; height: 18px; accent-color: var(--ouro2); }
.secao.botoes { display: flex; flex-wrap: wrap; gap: .5rem; border-bottom: 0; }
.legenda .leg-comp::before { background: linear-gradient(90deg, var(--azul), var(--lilas), var(--agua)); }

.navdata { flex-wrap: nowrap; }
.barra.rodape { margin-top: 1rem; flex-wrap: wrap; }
.navdata h2 { font-size: 1.3rem; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.navdata .conta { margin-left: auto; color: var(--suave); font-size: .9rem; white-space: nowrap; }
.etq.hoje-etq { color: var(--ouro); border-color: var(--ouro2); }
.etq.verm { color: var(--verm); border-color: var(--verm); }
.faixa-info { display: flex; align-items: center; gap: .6rem; padding: .6rem .9rem; margin-bottom: 1rem; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--bloco); }
.faixa-info span { flex: 1; }
.faixa-info.feriado { color: var(--azul); }
.faixa-info.lembrete { border-color: var(--ouro2); }
.faixa-info.conflito { border-color: var(--verm); color: var(--apoio); }
.faixa-info.conflito svg { color: var(--verm); }

.proxima {
  display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .3rem 1.25rem; align-items: center;
  padding: 1rem 1.25rem; margin-bottom: 1rem; border: 1px solid var(--ouro2); border-radius: var(--raio);
  background: var(--bloco); box-shadow: var(--relevo);
}
.proxima.agora { box-shadow: var(--relevo), inset 4px 0 0 var(--ouro); }
.proxima .p-rotulo { grid-column: 1 / -1; font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ouro); font-weight: 600; }
.proxima .p-hora { font-size: 2.3rem; line-height: 1; font-variant-numeric: tabular-nums; color: var(--ouro); }
.proxima .p-nome { font-family: Spectral, Georgia, serif; font-size: 1.6rem; line-height: 1.15; }
.proxima .p-sub { display: flex; align-items: center; gap: .35rem; flex-wrap: wrap; color: var(--suave); font-size: .9rem; margin-top: .15rem; }
.proxima .rapidas { grid-column: 1 / -1; display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .6rem; }

.sess > .situacoes { grid-column: 2 / -1; margin-top: 0; }
.sess {
  display: grid; grid-template-columns: 4.6rem minmax(0, 1fr) auto; gap: .35rem .9rem; align-items: center;
  padding: .6rem .9rem; border-top: 1px solid var(--borda); cursor: pointer; box-shadow: inset 4px 0 0 var(--cor-sit);
}
.sess:first-child { border-top: 0; }
.sess:hover { background: var(--linha-hover); }
.sess .hora { font-variant-numeric: tabular-nums; font-size: 1.1rem; color: var(--ouro); font-weight: 500; }
.sess .hora small { display: block; font-size: .72rem; color: var(--suave); font-weight: 400; }
.sess .nome { font-size: 1.02rem; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sess .sub { display: flex; gap: .45rem; flex-wrap: wrap; align-items: center; margin-top: .1rem; font-size: .8rem; color: var(--suave); }
.sess .sub .nota { font-style: italic; color: var(--apoio); }
.sess .acoes { display: flex; gap: .3rem; justify-content: flex-end; }
.sess.sit-cancelado .nome { text-decoration: line-through; opacity: .6; }
.lugar-mini { display: inline-flex; align-items: center; gap: .25rem; }
.situacoes { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .4rem; }
.sit-btn {
  display: inline-flex; align-items: center; gap: .3rem; min-height: 30px; padding: .15rem .6rem; cursor: pointer;
  border: 1px solid var(--borda); border-radius: 999px; background: none; color: var(--apoio); font-size: .8rem;
}
.sit-btn:hover { border-color: var(--cor-sit); }
.sit-btn[aria-pressed="true"] { background: color-mix(in srgb, var(--cor-sit) 20%, transparent); border-color: var(--cor-sit); color: var(--texto); font-weight: 600; }
.sit-btn svg { color: var(--cor-sit); }
.situacoes.grande .sit-btn { min-height: 42px; padding: .35rem .85rem; font-size: .92rem; }

.legenda { display: flex; flex-wrap: wrap; gap: .4rem 1rem; margin-top: .75rem; font-size: .8rem; color: var(--suave); }
.legenda span::before { content: ''; display: inline-block; width: .75rem; height: .75rem; border-radius: 3px; background: var(--cor-sit); margin-right: .35rem; vertical-align: -1px; }
.legenda span.sit-pendente::before { background: none; border: 1px dashed var(--suave); }
.legenda em { flex: 1 1 100%; }

/* semana (computador) */
.semana {
  display: grid; grid-template-columns: 3rem repeat(var(--colunas), minmax(0, 1fr));
  border: 1px solid var(--borda); border-radius: var(--raio); background: var(--bloco); overflow: hidden;
}
.sem-cab { padding: .45rem .4rem; text-align: center; font-size: .85rem; color: var(--apoio); border-left: 1px solid var(--borda); border-bottom: 1px solid var(--borda); }
.sem-cab.canto { border-left: 0; }
.sem-cab.hoje { color: var(--ouro); background: var(--ouro-fundo); }
.sem-cab small { display: block; font-size: .7rem; color: var(--azul); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sem-horas { position: relative; }
.sem-horas span { position: absolute; right: .4rem; margin-top: .15rem; font-size: .72rem; color: var(--suave); font-variant-numeric: tabular-nums; }
.sem-col {
  position: relative; border-left: 1px solid var(--borda); cursor: cell;
  background-image: repeating-linear-gradient(to bottom, var(--borda) 0 1px, transparent 1px var(--h-hora));
}
.sem-col.feriado { background-color: color-mix(in srgb, var(--azul) 8%, transparent); }
.sem-col.hoje { background-color: var(--ouro-fundo); }
.bloco {
  position: absolute; overflow: hidden; padding: .15rem .35rem; border-radius: 6px; cursor: grab;
  font-size: .78rem; line-height: 1.25; background: var(--bloco-liso); border: 1px solid var(--borda);
  border-left: 4px solid var(--cor-sit); box-shadow: var(--relevo);
}
.bloco:hover { border-color: var(--ouro2); border-left-color: var(--cor-sit); z-index: 2; }
.bloco .b-hora { color: var(--ouro); font-variant-numeric: tabular-nums; }
.bloco svg { width: .9em; height: .9em; color: var(--cor-sit); vertical-align: -1px; margin-left: .15rem; }
.bloco.baixo { white-space: nowrap; text-overflow: ellipsis; }
.bloco.sit-cancelado { opacity: .5; text-decoration: line-through; }
.bloco.arrastando { opacity: .35; }
.fantasma { position: absolute; left: 2px; right: 2px; z-index: 3; pointer-events: none; border: 2px dashed var(--ouro); border-radius: 6px; padding: 0 .3rem; font-size: .75rem; color: var(--ouro); background: var(--ouro-fundo); }
.agora-linha { position: absolute; left: 0; right: 0; height: 2px; background: var(--verm); z-index: 1; pointer-events: none; }
.agora-linha::before { content: ''; position: absolute; left: -4px; top: -3px; width: 8px; height: 8px; border-radius: 50%; background: var(--verm); }

/* semana (celular): faixa de dias */
.faixa-dias { display: flex; gap: .3rem; margin-bottom: 1rem; }
.faixa-dias button {
  flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: .05rem; padding: .35rem .1rem;
  border: 1px solid var(--borda); border-radius: 8px; background: none; color: var(--apoio); cursor: pointer;
}
.faixa-dias button b { font-size: 1.05rem; }
.faixa-dias button small { font-size: .68rem; color: var(--suave); }
.faixa-dias button.hoje b { color: var(--ouro); }
.faixa-dias button[aria-pressed="true"] { border-color: var(--ouro2); background: var(--ouro-fundo); color: var(--ouro); }

/* grade de horários */
.grade-rolagem { overflow-x: auto; }
.grade {
  display: grid; grid-template-columns: 3rem repeat(var(--colunas), minmax(0, 1fr));
  border: 1px solid var(--borda); border-radius: var(--raio); background: var(--bloco); overflow: hidden;
}
.g-cab { padding: .5rem .4rem; text-align: center; font-weight: 600; font-size: .88rem; color: var(--apoio); border-left: 1px solid var(--borda); border-bottom: 1px solid var(--borda); }
.g-cab:first-child { border-left: 0; }
.g-cab small { font-weight: 400; color: var(--suave); }
.g-hora { padding: .35rem .4rem 0 0; text-align: right; font-size: .75rem; color: var(--suave); border-top: 1px solid var(--borda); font-variant-numeric: tabular-nums; }
.g-cel { min-height: 2.5rem; padding: .2rem; display: flex; flex-direction: column; gap: .2rem; border-left: 1px solid var(--borda); border-top: 1px solid var(--borda); }
.g-cel.alvo, .g-bandeja.alvo { background: var(--ouro-fundo); outline: 2px dashed var(--ouro2); outline-offset: -2px; }
.g-pac {
  display: flex; flex-wrap: wrap; align-items: center; gap: .25rem; padding: .2rem .4rem; cursor: grab;
  border: 1px solid var(--borda); border-radius: 6px; background: var(--bloco-liso); box-shadow: var(--relevo); font-size: .8rem;
}
.g-pac:hover { border-color: var(--ouro2); }
.g-pac .g-nome { flex: 1 1 auto; min-width: 0; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.g-pac small { font-size: .7rem; color: var(--suave); }
.g-pac .etq { font-size: .66rem; padding: 0 .25rem; }
.g-pac.movido { border: 1px dashed var(--ouro); background: var(--ouro-fundo); }
.g-pac.conflito { border-color: var(--verm); box-shadow: inset 0 0 0 1px var(--verm); }
.g-bandeja { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; min-height: 3rem; padding: .6rem .8rem; margin-bottom: .8rem; border: 1px dashed var(--borda); border-radius: var(--raio); }
.g-bandeja > b { font-size: .85rem; color: var(--apoio); margin-right: .4rem; }
.g-bandeja .dica-cartao { margin: 0; }
.grade, .g-bandeja, .semana { user-select: none; }
.g-mudancas {
  margin-bottom: .8rem; display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; align-items: flex-end;
  padding: .9rem 1rem; border: 1px solid var(--ouro2); border-radius: var(--raio); background: var(--bloco-liso); box-shadow: var(--relevo);
}
.g-mudancas .g-lista { flex: 1 1 280px; }
.g-mudancas ul { margin: .3rem 0 0; padding-left: 1.1rem; max-height: 6.5rem; overflow: auto; font-size: .85rem; color: var(--apoio); }
.g-mudancas .campo input { min-height: 40px; padding: .4rem .6rem; border-radius: 8px; border: 1px solid var(--borda); background: var(--bloco); }
.botoes { display: flex; gap: .5rem; flex-wrap: wrap; }

/* janela de pergunta */
dialog.pergunta {
  width: min(440px, calc(100vw - 2rem)); padding: 1.25rem; color: var(--texto);
  border: 1px solid var(--ouro2); border-radius: 12px; background: var(--bloco-liso); box-shadow: 0 16px 48px rgba(0,0,0,.5);
}
dialog.pergunta.larga { width: min(520px, calc(100vw - 2rem)); }
dialog.pergunta::backdrop { background: rgba(0,0,0,.5); }
dialog.pergunta h3 { color: var(--ouro); margin-bottom: .75rem; font-size: 1.2rem; }
dialog.pergunta > p { margin: 0 0 1rem; }
dialog.pergunta .dica { color: var(--suave); font-size: .85rem; margin-top: -.5rem; }
dialog.pergunta .campos { margin-bottom: 1.1rem; }

/* aviso (salvo, desfazer) */
.aviso {
  position: fixed; left: 50%; bottom: 1.25rem; transform: translateX(-50%); z-index: 50;
  display: flex; align-items: center; gap: .75rem; padding: .55rem .6rem .55rem 1rem; border-radius: 10px;
  background: var(--bloco-liso); border: 1px solid var(--ouro2); box-shadow: 0 8px 24px rgba(0,0,0,.35);
  max-width: calc(100vw - 2rem);
}
.aviso.erro { border-color: var(--verm); }

/* prontuário (módulo 3): janela larga por cima de tudo */
.pront-veu { position: fixed; inset: 0; background: rgba(0,0,0,.55); z-index: 40; }
.pront {
  position: fixed; top: 2vh; bottom: 2vh; left: 50%; transform: translateX(-50%); width: min(1040px, 96vw); z-index: 41;
  background: var(--fundo); background-image: var(--fundo-grad); border: 1px solid var(--borda); border-radius: 14px;
  box-shadow: 0 20px 60px rgba(0,0,0,.5); display: flex; flex-direction: column; overflow: hidden;
}
.pront-topo { padding: 1rem 1.25rem .6rem; border-bottom: 1px solid var(--borda); display: flex; flex-direction: column; gap: .6rem; }
.pront-topo .linha1 { display: flex; align-items: flex-start; gap: .5rem; }
.pront-topo .quem { flex: 1; min-width: 0; }
.pront-topo .quem small { display: block; color: var(--ouro); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; }
.pront-topo h2 { font-size: 1.5rem; line-height: 1.2; }
.pront-topo .resumo { color: var(--suave); font-size: .88rem; }
.pront-ferr { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.pront-ferr .busca { flex: 1 1 260px; }
.pront-ferr .periodo { display: flex; align-items: center; gap: .35rem; font-size: .8rem; color: var(--suave); }
.pront-ferr .periodo input { min-height: 38px; padding: .3rem .5rem; border-radius: 8px; border: 1px solid var(--borda); background: var(--bloco-liso); color: var(--texto); }
.pront-expansao { display: flex; align-items: center; gap: .4rem; font-size: .82rem; color: var(--suave); }
.pront-expansao:empty { display: none; }
.pront-expansao svg { width: 1em; height: 1em; color: var(--ouro); flex: none; }
.pront-corpo { overflow-y: auto; padding: 1rem 1.25rem 2rem; flex: 1; }
.regs { display: flex; flex-direction: column; gap: .75rem; }
.reg { background: var(--bloco); border: 1px solid var(--borda); border-radius: var(--raio); padding: .85rem 1rem; }
.reg.rascunho { border-color: var(--ouro2); border-style: dashed; }
.reg.retirado { opacity: .7; background: none; }
.reg.pisca { animation: pisca 1.6s ease; }
@keyframes pisca { 0%, 60% { box-shadow: 0 0 0 3px var(--ouro); } 100% { box-shadow: none; } }
.reg-cab { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-bottom: .45rem; }
.reg-tipo { display: inline-flex; align-items: center; gap: .3rem; font-weight: 600; font-size: .85rem; color: var(--cor-reg, var(--ouro)); }
.reg-tipo svg { width: 1.05em; height: 1.05em; }
.reg-data { color: var(--suave); font-size: .82rem; }
.reg-titulo { font-family: 'Spectral', serif; font-size: 1.05rem; }
.reg .etq.assinado { color: var(--verde); border-color: color-mix(in srgb, var(--verde) 50%, transparent); }
.reg .etq svg { width: .85em; height: .85em; }
.reg-texto { white-space: pre-wrap; line-height: 1.55; color: var(--apoio); }
.reg-texto.curto { display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.reg-campos { display: flex; flex-direction: column; gap: .3rem; margin-top: .5rem; font-size: .92rem; color: var(--apoio); }
.reg-campos b { color: var(--suave); font-weight: 500; }
.reg-resumo { margin-top: .6rem; padding: .45rem .7rem; border-left: 3px solid var(--ouro2); background: var(--ouro-fundo); border-radius: 0 8px 8px 0; }
.reg-resumo small { display: block; color: var(--ouro); font-size: .72rem; letter-spacing: .05em; text-transform: uppercase; }
.reg-marca { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; margin-top: .55rem; font-size: .8rem; color: var(--suave); }
.reg-marca svg { width: 1em; height: 1em; }
.reg-acoes { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; margin-top: .7rem; }
.reg mark { background: color-mix(in srgb, var(--ouro) 35%, transparent); color: inherit; border-radius: 3px; padding: 0 .1em; }
.btn.mini, .chip.mini { min-height: 30px; padding: .15rem .5rem; font-size: .78rem; }
.btn.perigo { color: #fff; background: var(--verm); border-color: var(--verm); }
.reg-editor .campos { margin-top: .4rem; }
.reg-editor textarea { font-size: 1rem; line-height: 1.5; }
.reg-editor.corrigindo { border-color: var(--azul); }
.rotulo-linha { display: flex; align-items: center; gap: .5rem; justify-content: space-between; }
.editor-estado { font-size: .8rem; color: var(--suave); margin-left: auto; }
.erro-txt { color: var(--verm) !important; }
.tipo-reg-evolucao { --cor-reg: var(--ouro); }
.tipo-reg-sonho { --cor-reg: var(--lilas); }
.tipo-reg-imagem { --cor-reg: var(--rosa); }
.tipo-reg-marco { --cor-reg: var(--agua); }
.tipo-reg-demanda, .tipo-reg-encaminhamento, .tipo-reg-documento, .tipo-reg-anotacao, .tipo-reg-encerramento { --cor-reg: var(--azul); }
.menu-caixa { position: relative; }
.menu-caixa .menu { display: none; position: absolute; right: 0; top: calc(100% + 4px); z-index: 45; min-width: 230px; padding: .3rem;
  background: var(--bloco-liso); border: 1px solid var(--borda); border-radius: 10px; box-shadow: 0 12px 32px rgba(0,0,0,.4); }
.menu-caixa.aberto .menu { display: flex; flex-direction: column; }
.menu button { display: flex; align-items: center; gap: .5rem; text-align: left; padding: .55rem .7rem; border: 0; background: none; color: var(--texto); border-radius: 7px; cursor: pointer; min-height: 40px; }
.menu button:hover { background: var(--ouro-fundo); }
.menu button svg { width: 1.05em; height: 1.05em; color: var(--ouro); }
.linha-tempo { position: relative; padding-left: .25rem; }
.lt-ano { font-family: 'Spectral', serif; font-size: 1.4rem; color: var(--ouro); margin: 1rem 0 .25rem; }
.lt-mes { color: var(--suave); font-size: .85rem; text-transform: capitalize; margin: .6rem 0 .3rem 1.9rem; }
.lt-mes small { text-transform: none; }
.lt-item { display: flex; align-items: flex-start; gap: .7rem; width: 100%; text-align: left; background: none; border: 0; color: var(--texto); padding: .35rem 0; cursor: pointer;
  border-left: 2px solid var(--borda); margin-left: .75rem; padding-left: 1rem; position: relative; }
.lt-item .lt-ponto { position: absolute; left: -.8rem; top: .35rem; width: 1.5rem; height: 1.5rem; border-radius: 50%; display: grid; place-items: center;
  background: var(--bloco-liso); border: 2px solid var(--cor-reg, var(--ouro)); color: var(--cor-reg, var(--ouro)); }
.lt-item .lt-ponto svg { width: .8rem; height: .8rem; }
.lt-item > div { margin-left: .9rem; display: flex; flex-direction: column; }
.lt-item small { color: var(--suave); font-size: .8rem; }
.lt-item:hover strong { color: var(--ouro); }
.lt-item.inicio .lt-ponto { background: var(--ouro); }
.img-sonhos { margin-bottom: 1rem; padding: .8rem 1rem; border: 1px solid var(--borda); border-radius: var(--raio); }
.img-sonhos h3 { font-size: 1rem; color: var(--rosa); margin-bottom: .5rem; }
.img-chip { display: inline-flex; align-items: center; gap: .15rem; }
.dialog-versoes, .versoes { display: flex; flex-direction: column; gap: .75rem; max-height: 55vh; overflow-y: auto; margin-bottom: 1rem; }
.versao { border: 1px solid var(--borda); border-radius: 8px; padding: .6rem .75rem; }
.versao.excluida { opacity: .75; border-style: dashed; }
dialog.pergunta.doc { width: min(860px, calc(100vw - 2rem)); }
.doc-quadro { width: 100%; height: 70vh; border: 1px solid var(--borda); border-radius: 8px; background: #fff; margin-bottom: .75rem; }
.assocs { display: flex; flex-direction: column; gap: .4rem; }
.assoc { display: grid; grid-template-columns: minmax(90px, 160px) auto 1fr auto; gap: .4rem; align-items: center; }
.assoc input { min-height: 38px; padding: .35rem .55rem; border-radius: 8px; border: 1px solid var(--borda); background: var(--bloco-liso); color: var(--texto); min-width: 0; }
.cartao.desligado .modulo { opacity: .6; }
.pend-reg .acoes { display: flex; }
h3.sub-titulo small { font-family: 'IBM Plex Sans', sans-serif; font-weight: 400; color: var(--suave); font-size: .8rem; }

/* texto clínico: letra de leitura, maior (decisão de 29/10) */
.reg-texto, .reg-resumo div, .reg-editor textarea, .t-escrita { font-family: 'Spectral', Georgia, serif; font-size: 1.08rem; line-height: 1.6; }

/* telas que ocupam a altura inteira: Atendimento e Prontuário */
body[data-tela="trabalho"], body[data-tela="prontuario"] { display: flex; flex-direction: column; height: 100dvh; min-height: 0; }
body[data-tela="trabalho"] main, body[data-tela="prontuario"] main { flex: 1; min-height: 0; display: flex; flex-direction: column; width: 100%; }
body[data-tela="trabalho"] main { max-width: none; padding: .6rem .9rem .8rem; }
body[data-tela="prontuario"] main { max-width: 1120px; padding: .8rem 1rem; }
.pront.pagina { position: static; transform: none; width: 100%; flex: 1; min-height: 0; top: auto; bottom: auto; left: auto; box-shadow: none; border-radius: 14px; }
.pront-escolha { font-family: 'Spectral', serif; font-size: 1.45rem; font-weight: 600; color: var(--texto); background: none; border: 0; border-bottom: 1px dashed var(--borda);
  padding: 0 1.4rem 0 0; max-width: 100%; cursor: pointer; appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--ouro) 50%), linear-gradient(135deg, var(--ouro) 50%, transparent 50%);
  background-position: right .4rem center, right .1rem center; background-size: 5px 5px; background-repeat: no-repeat; }
.pront-escolha option { font-family: 'IBM Plex Sans', sans-serif; font-size: 1rem; background: var(--bloco-liso); color: var(--texto); }
.modo-foco .faixa-teste, .modo-foco .topo, .modo-foco .pront-ferr, .modo-foco .pront-abas, .modo-foco .pront-expansao { display: none !important; }
.modo-foco body[data-tela="prontuario"] main { max-width: 860px; }
.modo-foco .reg-texto, .modo-foco .reg-editor textarea { font-size: 1.22rem; }

/* escolha do estilo, com amostra de cor */
.estilos { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .6rem; }
.estilo { display: flex; flex-direction: column; align-items: flex-start; gap: .3rem; padding: .6rem; border: 1px solid var(--borda); border-radius: var(--raio);
  background: var(--bloco-liso); color: var(--texto); cursor: pointer; text-align: left; transition: border-color .2s, box-shadow .2s; }
.estilo:hover { border-color: var(--ouro2); }
.estilo[aria-checked="true"] { border-color: var(--ouro); box-shadow: 0 0 0 2px var(--ouro-fundo); }
.estilo small { color: var(--suave); font-size: .75rem; line-height: 1.3; }
.estilo-nome { font-weight: 600; }
.amostra { position: relative; width: 100%; height: 48px; border-radius: 8px; border: 1px solid rgba(128,128,128,.25); overflow: hidden; }
.amostra i { position: absolute; left: 10%; top: 22%; width: 52%; height: 56%; border-radius: 5px; }
.amostra b { position: absolute; right: 10%; top: 34%; width: 22%; height: 32%; border-radius: 999px; }

/* ir para uma data */
.escolhe-data { position: relative; display: inline-flex; }
.escolhe-data input { position: absolute; inset: 0; opacity: 0; pointer-events: none; width: 100%; }

/* lista suspensa de várias escolhas */
.multi { position: relative; max-width: 520px; }
.multi-botao { width: 100%; display: flex; align-items: center; gap: .5rem; justify-content: space-between; min-height: 44px; padding: .45rem .8rem;
  border: 1px solid var(--borda); border-radius: 10px; background: var(--bloco-liso); color: var(--texto); cursor: pointer; text-align: left; }
.multi-botao:hover { border-color: var(--ouro2); }
.multi-rotulo { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.multi-botao svg { width: 1rem; height: 1rem; color: var(--ouro); flex: none; transition: transform .2s; }
.multi.aberta .multi-botao svg { transform: rotate(180deg); }
.multi-lista { display: none; position: absolute; z-index: 25; left: 0; right: 0; top: calc(100% + 4px); max-height: 300px; overflow-y: auto; padding: .3rem;
  background: var(--bloco-liso); border: 1px solid var(--borda); border-radius: 10px; box-shadow: 0 12px 32px rgba(0,0,0,.35); }
.multi.aberta .multi-lista { display: block; }
.multi-item { display: flex; align-items: center; gap: .6rem; padding: .5rem .6rem; border-radius: 7px; cursor: pointer; min-height: 40px; }
.multi-item:hover { background: var(--ouro-fundo); }
.multi-item input { accent-color: var(--ouro); width: 1.05rem; height: 1.05rem; }

/* busca única (Ctrl+K) */
dialog.paleta { width: min(620px, calc(100vw - 2rem)); padding: .9rem; align-self: start; margin-top: 12vh; }
.paleta .busca { min-height: 50px; }
.paleta-lista { max-height: 52vh; overflow-y: auto; margin: .6rem 0 .3rem; }
.paleta-grupo { font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ouro); margin: .6rem .4rem .25rem; }
.paleta-item { display: flex; align-items: center; gap: .7rem; width: 100%; text-align: left; padding: .5rem .6rem; border: 0; border-radius: 8px; background: none; color: var(--texto); cursor: pointer; }
.paleta-item small { display: block; color: var(--suave); font-size: .8rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 46ch; }
.paleta-item svg { width: 1.05rem; height: 1.05rem; color: var(--suave); flex: none; }
.paleta-item.marcado { background: var(--ouro-fundo); }
.paleta-item.marcado svg { color: var(--ouro); }

/* Tela de Trabalho (Atendimento) */
.trabalho { flex: 1; min-height: 0; display: flex; flex-direction: column; gap: .7rem; }
.t-faixa { display: flex; align-items: center; gap: .8rem; min-height: 46px; }
.t-dia { display: flex; align-items: center; gap: .4rem; white-space: nowrap; font-family: 'Spectral', serif; font-size: 1.1rem; }
/* faixa do dia: linha do tempo proporcional ao relógio, só os nomes, sem caixas (31/10) */
.t-faixa { --hora: 7rem; }
.t-rolo { flex: 1; min-width: 0; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; position: relative;
  mask-image: linear-gradient(90deg, transparent, #000 3%, #000 95%, transparent); }
.t-rolo::-webkit-scrollbar { display: none; }
.t-trilho { position: relative; height: 3.4rem; }
.t-hora { position: absolute; bottom: 0; transform: translateX(-50%); font-size: .74rem; color: var(--suave); pointer-events: none; }
/* cada hora cheia ganha uma linha vertical discreta, de cima a baixo da régua (pedido de 31/10) */
.t-hora::before { content: ''; position: absolute; left: 50%; bottom: 1.05rem; width: 1px; height: 2.35rem; background: var(--suave); opacity: .28; }
.t-meia { position: absolute; bottom: 1.05rem; width: 1px; height: 1.15rem; background: var(--suave); opacity: .2; pointer-events: none; }
.t-item { z-index: 1; }
.t-agora { position: absolute; top: 0; bottom: .9rem; width: 2px; margin-left: -1px; background: var(--ouro); border-radius: 2px; box-shadow: 0 0 8px var(--ouro-fundo); }
.t-agora::before { content: ''; position: absolute; top: -2px; left: -3px; width: 8px; height: 8px; border-radius: 50%; background: var(--ouro); }
.t-item { position: absolute; display: inline-flex; align-items: baseline; gap: .3rem; padding: .1rem .2rem; margin-top: .15rem; border: 0; background: none;
  color: var(--apoio); font: inherit; font-size: .86rem; white-space: nowrap; cursor: pointer; border-radius: 6px; touch-action: pan-x; user-select: none; transition: opacity .3s, color .2s; }
.t-item b { font-weight: 600; color: var(--texto); font-variant-numeric: tabular-nums; }
.t-item:hover { color: var(--texto); }
.t-item.sel { color: var(--ouro); }
.t-item.sel b { color: var(--ouro); }
.t-item.sel::after { content: ''; position: absolute; left: .2rem; right: .2rem; bottom: -.1rem; height: 2px; border-radius: 2px; background: var(--ouro); }
.t-item.passou { opacity: .55; }
.t-item.falta { text-decoration: line-through; text-decoration-color: var(--suave); }
.t-item.falta small { text-decoration: none; color: var(--suave); }
.t-item.sit-compareceu b { color: var(--verde); }
.t-item.comp { cursor: default; font-style: italic; color: var(--suave); }
.t-item.arrasta { cursor: grab; }
.t-item.arrastando { cursor: grabbing; z-index: 3; color: var(--ouro); }
.t-item.arrastando::before { content: attr(data-hora); position: absolute; top: -1.15rem; left: 0; font-size: .72rem; font-weight: 600; color: var(--ouro); font-style: normal; }
/* o sininho vivo */
.t-pend { display: inline-flex; align-items: center; gap: .3rem; border: 0; border-radius: 999px; background: none; color: var(--suave); padding: .35rem .55rem; cursor: pointer; }
.t-pend svg { width: 1.1rem; height: 1.1rem; }
.t-pend b { font-variant-numeric: tabular-nums; }
.t-pend.dorme { opacity: .45; }
.t-pend.calmo { color: var(--ouro); }
.t-pend.novo { color: var(--ouro); background: var(--ouro-fundo); }
.t-pend.novo svg { animation: balanca 1.2s ease-in-out 3; transform-origin: 50% 10%; }
.t-pend.atrasado { color: #1B0A06; background: var(--verm); } /* texto escuro: o branco não passava no contraste */
.t-pend.atrasado svg { animation: agita 4s ease-in-out infinite; transform-origin: 50% 10%; }
@keyframes balanca { 0%, 100% { transform: rotate(0); } 25% { transform: rotate(14deg); } 75% { transform: rotate(-14deg); } }
@keyframes agita { 0%, 86%, 100% { transform: rotate(0); } 88% { transform: rotate(16deg); } 90% { transform: rotate(-16deg); } 92% { transform: rotate(12deg); } 94% { transform: rotate(-12deg); } 96% { transform: rotate(6deg); } }
@media (prefers-reduced-motion: reduce) { .t-pend svg, .t-bloco.aberto .t-corpo { animation: none !important; } }
.t-vazio { color: var(--suave); font-size: .9rem; }
/* as colunas têm largura fixa: os blocos só crescem para baixo e o atendimento nunca se desloca (31/10) */
.t-meio { flex: 1; min-height: 0; display: grid; grid-template-columns: var(--col-esq, 300px) minmax(0, 1fr) var(--col-dir, 330px); gap: .9rem; }
.t-col { min-height: 0; display: flex; flex-direction: column; gap: .6rem; overflow-y: auto; overflow-x: hidden; scrollbar-width: thin; padding-right: 2px; }
.t-col > .t-bloco, .t-col > .t-bloco.aberto { flex: 0 0 auto; }
.t-col > .t-bloco.aberto .t-corpo { overflow: visible; }
.t-bloco { display: flex; flex-direction: column; min-height: 0; border-radius: 12px; background: var(--bloco); border: 1px solid transparent;
  transition: flex-grow .3s ease, border-color .2s, box-shadow .2s; flex: 0 1 auto; overflow: hidden; }
.t-bloco:hover { border-color: var(--borda); }
.t-bloco.aberto { flex: 1 1 auto; border-color: var(--ouro2); box-shadow: 0 10px 30px rgba(0,0,0,.25); }
.t-cab { display: flex; align-items: center; gap: .5rem; padding: .65rem .85rem .35rem; cursor: pointer; color: var(--suave); font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; }
.t-cab svg { width: .95rem; height: .95rem; color: var(--ouro); }
.t-titulo { flex: 1; }
.t-alfinete { border: 0; background: none; color: var(--suave); cursor: pointer; padding: .15rem; border-radius: 6px; opacity: 0; transition: opacity .2s; }
.t-bloco:hover .t-alfinete, .t-bloco.fixado .t-alfinete, .t-alfinete:focus-visible { opacity: 1; }
@media (hover: none) { .t-alfinete { opacity: 1; } } /* tablet sem mouse: sempre à vista (01/11) */
.t-bloco.fixado .t-alfinete { color: var(--ouro); }
.t-resumo { padding: 0 .85rem .75rem; display: flex; flex-direction: column; gap: .2rem; }
.t-corpo { display: none; padding: .2rem .85rem .85rem; overflow-y: auto; overflow-x: hidden; min-height: 0; flex-direction: column; gap: .6rem; }
.t-corpo > *, .t-corpo .campo, .t-corpo input { min-width: 0; }
.t-corpo .sit-btn { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.t-bloco.aberto .t-corpo { display: flex; animation: desliza .25s ease; }
.t-bloco.aberto .t-resumo { display: none; }
.t-bloco.recolhido .t-resumo { display: none; }
.t-bloco.recolhido .t-cab { padding-bottom: .6rem; }
@keyframes desliza { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.t-nome { font-family: 'Spectral', serif; font-size: 1.2rem; line-height: 1.25; }
.t-lembrete { display: flex; gap: .35rem; align-items: flex-start; color: var(--ouro); font-size: .85rem; }
.t-lembrete svg { width: .9rem; height: .9rem; flex: none; margin-top: .15rem; }
.t-linha { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.t-estado { display: inline-flex; align-items: center; gap: .3rem; font-weight: 500; }
.t-estado svg { width: 1rem; height: 1rem; }
.t-estado.sit-compareceu { color: var(--verde); }
.t-estado.sit-falta_injustificada { color: var(--verm); }
.t-estado.sit-falta_justificada, .t-estado.sit-cancelado { color: var(--suave); }
.t-trecho { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: var(--apoio); font-size: .92rem; }
.t-trecho svg { width: .85rem; height: .85rem; color: var(--lilas); vertical-align: -1px; margin-right: .2rem; }
.dica.ok { color: var(--verde); display: inline-flex; align-items: center; gap: .3rem; }
.dica.ok svg { width: .9rem; height: .9rem; }
.t-lista { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: .2rem; color: var(--apoio); font-size: .92rem; }
.t-proximas { font-size: .9rem; font-weight: 600; }
.t-proximas ul { list-style: none; margin: .2rem 0 0; padding: 0; display: flex; flex-direction: column; gap: .1rem; font-variant-numeric: tabular-nums; }
.t-proximas li.fora { color: var(--suave); }
.t-corpo .situacoes.grande { display: grid; grid-template-columns: 1fr 1fr; gap: .35rem; }
.t-corpo .situacoes.grande .sit-btn { justify-content: center; }
/* situação empilhada, botões menores; Compareceu em destaque por ser o mais usado (31/10) */
.t-corpo .situacoes.pilha { display: flex; flex-direction: column; gap: .3rem; }
.t-corpo .situacoes.pilha .sit-btn { justify-content: flex-start; min-height: 34px; padding: .25rem .7rem; font-size: .86rem; border-radius: 9px; }
.t-corpo .situacoes.pilha .sit-compareceu { min-height: 40px; font-weight: 600; font-size: .92rem; }
.t-quem-reg { text-transform: none; letter-spacing: 0; color: var(--texto); font-weight: 600; }
/* lembretes: lista numerada, a letra diminui conforme cresce (com mínimo e máximo) */
.lembrete-lista { margin: 0; padding-left: 1.3rem; display: flex; flex-direction: column; gap: .15rem; font-size: 1rem; line-height: 1.35; }
.lembrete-lista.tam-3 { font-size: .95rem; } .lembrete-lista.tam-4 { font-size: .91rem; } .lembrete-lista.tam-5, .lembrete-lista.tam-6 { font-size: .87rem; }
.lembrete-lista li { position: relative; padding-right: 1.3rem; }
.lembrete-lista li::marker { color: var(--ouro); font-weight: 600; }
.lembrete-lista li.sug { color: var(--suave); font-style: italic; }
.lembrete-lista li.sug::marker { color: var(--suave); }
.lembrete-lista li.vencido { color: var(--verm); }
.lembrete-x { position: absolute; right: 0; top: 0; border: 0; background: none; color: var(--suave); cursor: pointer; font-size: 1rem; line-height: 1; padding: .1rem .25rem; opacity: 0; transition: opacity .2s; border-radius: 4px; }
li:hover > .lembrete-x, .lembrete-x:focus-visible, .tema:hover > .lembrete-x { opacity: 1; }
@media (hover: none) { .lembrete-x { opacity: .6; } }
.lembrete-mais { margin-top: .2rem; padding-left: 0; }
.lembrete-novo, .tema-novo, .t-lembrete-rapido { width: 100%; margin-top: .35rem; border: 0; border-bottom: 1px dashed var(--borda); background: none; color: var(--texto); padding: .3rem .1rem; font: inherit; font-size: .88rem; }
.lembrete-novo:focus, .tema-novo:focus, .t-lembrete-rapido:focus { outline: none; border-bottom-color: var(--ouro); }
/* temas em trabalho */
.temas { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; }
.temas-rot { font-size: .75rem; color: var(--suave); text-transform: uppercase; letter-spacing: .05em; }
.tema { position: relative; display: inline-flex; align-items: center; gap: .2rem; padding: .1rem .55rem; border-radius: 999px; background: color-mix(in srgb, var(--lilas) 16%, transparent); color: var(--lilas); font-size: .85rem; }
.tema .lembrete-x { position: static; opacity: .5; font-size: .9rem; }
.temas .tema-novo { width: auto; flex: 1 1 140px; margin-top: 0; }
.t-temas { display: flex; flex-wrap: wrap; gap: .3rem; margin-bottom: .2rem; }
.pront-vivos { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .5rem 1.5rem; }
/* fuso de quem mora fora */
.t-fuso { display: inline-flex; align-items: center; gap: .3rem; color: var(--azul); font-size: .85rem; }
.t-fuso svg { width: .9rem; height: .9rem; }
.aviso-fuso { display: flex; color: var(--azul); }
.etq.fuso { color: var(--azul); border-color: color-mix(in srgb, var(--azul) 45%, transparent); }
.etq.sino { color: var(--ouro); border-color: var(--ouro2); }
.etq svg { width: .8rem; height: .8rem; }
/* só do analista: velado até um clique */
.reg-reservado { margin-top: .5rem; padding: .45rem .7rem; border-left: 3px solid var(--lilas); border-radius: 0 8px 8px 0; background: color-mix(in srgb, var(--lilas) 8%, transparent); }
.reg-reservado small { display: inline-flex; align-items: center; gap: .3rem; color: var(--lilas); font-size: .72rem; letter-spacing: .05em; text-transform: uppercase; }
.reg-reservado small svg { width: .8rem; height: .8rem; }
.veu-texto { filter: blur(5px); cursor: pointer; transition: filter .2s; white-space: pre-wrap; user-select: none; }
.veu-texto.visivel { filter: none; cursor: auto; user-select: text; }
.t-reservado summary { cursor: pointer; display: inline-flex; align-items: center; gap: .35rem; color: var(--lilas); font-size: .82rem; }
.t-reservado summary svg { width: .85rem; height: .85rem; }
.t-reservado textarea { margin-top: .35rem; }
/* financeiro no bloco */
.t-saldo { display: flex; align-items: baseline; gap: .5rem; flex-wrap: wrap; }
.fin-saldo.grande { font-family: 'Spectral', serif; font-size: 1.5rem; }
.ext.acordo { background: var(--ouro-fundo); }
.ext.clicavel { cursor: pointer; }
.ext.clicavel:hover { background: var(--linha-hover); }
.marca-ext { color: var(--azul) !important; }
/* o prontuário grande, por cima de tudo */
dialog.leitor { width: min(980px, 94vw); height: 90vh; max-height: 90vh; padding: 1rem 1.25rem; color: var(--texto); border: 1px solid var(--ouro2); border-radius: 14px;
  background: var(--fundo); background-image: var(--fundo-grad); box-shadow: 0 24px 70px rgba(0,0,0,.55); display: flex; flex-direction: column; gap: .6rem; }
dialog.leitor:not([open]) { display: none; }
dialog.leitor::backdrop { background: rgba(0,0,0,.55); }
.leitor-topo { display: flex; align-items: center; gap: .6rem; }
.leitor-topo > div { flex: 1; min-width: 0; }
.leitor-topo small { color: var(--ouro); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; }
.leitor-topo h2 { font-size: 1.4rem; }
.leitor-ferr { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.leitor-ferr .busca { flex: 1 1 260px; min-height: 42px; }
.leitor-lista { flex: 1; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: .6rem; padding-right: .3rem; }
.t-corpo textarea, .t-corpo input[type="text"], .t-corpo input[type="date"], .t-corpo input[type="time"], .t-corpo input[type="search"], .t-link input {
  width: 100%; border: 1px solid var(--borda); border-radius: 9px; background: var(--bloco-liso); color: var(--texto); padding: .5rem .65rem; font: inherit; }
.t-corpo textarea { resize: vertical; }
.t-escrita { min-height: 180px; flex: 1; }
.t-corpo .t-busca { flex: none; min-height: 40px; }
.t-corpo .t-busca input { border: 0; background: none; padding: 0; }
.t-corpo h4 { margin: .2rem 0 0; font-size: .78rem; color: var(--suave); text-transform: uppercase; letter-spacing: .06em; font-weight: 500; }
.t-pends { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .35rem; }
.t-pends li { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.t-pends li small { display: block; color: var(--suave); font-size: .78rem; }
.t-remarcar { grid-template-columns: 1fr 1fr; }
.t-ferr { align-items: center; }
.t-sonho { display: flex; flex-direction: column; gap: .4rem; padding: .6rem; border: 1px dashed var(--lilas); border-radius: 10px; }
.t-regs { display: flex; flex-direction: column; gap: .5rem; }
.t-reg { padding: .5rem .6rem; border-radius: 9px; background: var(--bloco-liso); }
.t-reg .reg-texto { font-size: .98rem; -webkit-line-clamp: 4; }
.t-reg .reg-tipo { color: var(--cor-reg, var(--ouro)); }
.t-msg { display: flex; flex-direction: column; gap: .3rem; }
.t-msg label { display: flex; align-items: center; gap: .35rem; font-size: .8rem; color: var(--suave); }
.t-msg label svg { width: .9rem; height: .9rem; }
.t-icones { gap: .35rem; }
.t-palco { min-height: 0; min-width: 0; display: flex; align-items: center; justify-content: center; }
.t-video { width: 100%; max-height: 100%; aspect-ratio: 16 / 9; border-radius: 16px; display: grid; place-items: center; text-align: center; padding: 1.5rem;
  background: radial-gradient(120% 90% at 50% 0%, color-mix(in srgb, var(--ouro) 10%, transparent), transparent 60%), var(--bloco-liso);
  border: 1px solid var(--borda); box-shadow: var(--sombra-palco); transition: width .32s ease; }
/* espelho da sala dentro do quadro (31/10) */
.t-video.com-espelho { padding: 0; background: #000; overflow: hidden; }
.t-espelho { position: relative; width: 100%; height: 100%; }
.t-espelho-video { width: 100%; height: 100%; object-fit: contain; display: block; background: #000; }
.t-espelho-barra { position: absolute; left: .6rem; right: .6rem; bottom: .6rem; display: flex; align-items: center; gap: .4rem; padding: .3rem .5rem;
  border-radius: 10px; background: rgba(0,0,0,.55); color: #fff; opacity: .35; transition: opacity .25s; backdrop-filter: blur(4px); }
.t-espelho:hover .t-espelho-barra, .t-espelho-barra:focus-within { opacity: 1; }
.t-espelho-barra .btn.leve { color: #fff; }
.t-espelho-quem { flex: 1; font-size: .9rem; }
.t-cronometro.mini { font-size: 1.15rem; font-family: 'Spectral', serif; color: #fff; }
.t-cronometro.mini.fim { color: #ff8a7a; }
.t-roda { display: flex; flex-direction: column; align-items: center; gap: .55rem; max-width: 520px; }
.t-roda small { color: var(--suave); letter-spacing: .08em; text-transform: uppercase; font-size: .75rem; }
.t-relogio { font-family: 'Spectral', serif; font-size: clamp(2.2rem, 5vw, 3.6rem); color: var(--ouro); line-height: 1; }
.t-quem { font-family: 'Spectral', serif; font-size: clamp(1.3rem, 2.6vw, 2rem); line-height: 1.2; }
.t-cronometro { font-family: 'Spectral', serif; font-size: clamp(2.8rem, 7vw, 4.6rem); line-height: 1; color: var(--texto); font-variant-numeric: tabular-nums; }
.t-cronometro.fim { color: var(--verm); }
.t-roda .botoes { justify-content: center; margin-top: .4rem; }
.btn.grande { padding: .7rem 1.4rem; font-size: 1.05rem; }
.t-link { width: min(420px, 100%); }
.t-roda .t-estado { font-size: 1.05rem; }

/* financeiro (módulo 4) */
.receber { color: var(--verm); }
.credito { color: var(--verde); }
.emdia { color: var(--apoio); }
.etq.receber { border-color: color-mix(in srgb, var(--verm) 50%, transparent); }
.etq.credito { border-color: color-mix(in srgb, var(--verde) 50%, transparent); }
.fin-kpis { display: flex; gap: .6rem; flex-wrap: wrap; margin-top: .6rem; }
.fin-kpis .kpi { flex: 1 1 110px; padding: .55rem .75rem; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--bloco-liso); }
.fin-kpis .kpi small { display: block; color: var(--suave); font-size: .75rem; }
.fin-kpis .kpi b { font-size: 1.15rem; font-variant-numeric: tabular-nums; }
.fin-kpis.grandes { margin: 0 0 1rem; }
.fin-kpis.grandes .kpi b { font-family: 'Spectral', serif; font-size: 1.5rem; }
.fin-sel { display: inline-flex; align-items: center; gap: .4rem; color: var(--suave); font-size: .85rem; }
.fin-sel select { min-height: 44px; border: 1px solid var(--borda); border-radius: 10px; background: var(--bloco-liso); color: var(--texto); padding: .3rem .6rem; }
.fin-lista { display: flex; flex-direction: column; gap: .5rem; }
.fin-linha { display: grid; grid-template-columns: minmax(200px, 1.6fr) minmax(130px, 1.1fr) repeat(3, minmax(80px, .6fr)) auto auto; gap: .5rem 1rem; align-items: center;
  padding: .65rem .9rem; border-radius: var(--raio); background: var(--bloco); border: 1px solid var(--borda); }
.fin-nome { display: flex; flex-direction: column; align-items: flex-start; gap: .15rem; background: none; border: 0; color: var(--texto); text-align: left; cursor: pointer; padding: 0; min-width: 0; }
.fin-nome b { font-weight: 600; }
.fin-nome:hover b { color: var(--ouro); }
.fin-nome small, .fin-sess small { color: var(--suave); font-size: .8rem; }
.fin-sess b { font-size: 1.05rem; }
.fin-num { display: flex; flex-direction: column; font-variant-numeric: tabular-nums; }
.fin-num small { color: var(--suave); font-size: .72rem; }
.fin-acoes { display: flex; gap: .35rem; align-items: center; }
.passos { display: inline-flex; align-items: center; gap: .15rem; }
.passo { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--borda); background: none; color: var(--suave); cursor: pointer; }
span.passo { cursor: default; }
.passo svg { width: .95rem; height: .95rem; }
.passo.on { background: var(--ouro-fundo); border-color: var(--ouro); color: var(--ouro); }
.passos .seta { width: 10px; height: 1px; background: var(--borda); }
.extrato { list-style: none; margin: 0; padding: 0; }
.ext { display: grid; grid-template-columns: 5.6rem 1fr 6rem 6rem 2rem; gap: .5rem; align-items: center; padding: .45rem 0; border-bottom: 1px solid var(--borda); font-size: .92rem; }
.ext.cab { color: var(--suave); font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; }
.ext-data { color: var(--suave); font-variant-numeric: tabular-nums; }
.ext-desc small { display: block; color: var(--suave); font-size: .78rem; }
.ext-valor, .ext-saldo { text-align: right; font-variant-numeric: tabular-nums; }
.ext-valor.pos { color: var(--verde); }
.ext-valor.neg { color: var(--verm); }
.ext.cancelado .ext-desc, .ext.cancelado .ext-valor { text-decoration: line-through; opacity: .6; }
.t-recebido { display: grid; grid-template-columns: minmax(5.5rem, 1fr) auto auto; gap: .35rem; align-items: stretch; }
.t-recebido input { min-width: 0; font-variant-numeric: tabular-nums; }
.t-recebido select { border: 1px solid var(--borda); border-radius: 9px; background: var(--bloco-liso); color: var(--texto); padding: .3rem .25rem; width: auto; font-size: .85rem; }
.btn.vertical { flex-direction: column; gap: .05rem; padding: .25rem .5rem; min-height: 0; line-height: 1.1; }
.btn.vertical svg { width: 1rem; height: 1rem; }
.btn.vertical span { font-size: .68rem; }
.t-mini-ext { display: grid; grid-template-columns: auto 1fr auto; column-gap: .6rem; row-gap: .15rem; font-size: .88rem; }
.t-mini-ext .linha { display: contents; }
.t-mini-ext .d { color: var(--suave); font-variant-numeric: tabular-nums; }
.t-mini-ext .v { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.t-mini-ext .linha.riscado > span { text-decoration: line-through; opacity: .55; }
.fin-saldo { font-size: 1.1rem; font-variant-numeric: tabular-nums; }
.t-lista li.riscado { text-decoration: line-through; opacity: .6; }
.previa-texto { width: 100%; border: 1px solid var(--borda); border-radius: 10px; background: var(--bloco-liso); color: var(--texto); padding: .7rem; font: inherit; line-height: 1.5; resize: vertical; }

/* telas médias: as abas mostram o nome só da que está aberta */
@media (max-width: 1280px) {
  .nav button span { display: none; }
  .nav button[aria-current="page"] span { display: inline; }
  .t-meio { --col-esq: 270px; --col-dir: 295px; }
}

/* celular e tablet */
@media (max-width: 1100px) {
  .fin-linha { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fin-linha > .fin-nome, .fin-linha > .fin-sess { grid-column: 1 / -1; }
  .fin-linha > .passos { grid-column: 1 / 3; }
  .fin-linha > .fin-acoes { justify-self: end; }
}
@media (max-width: 860px) {
  .ext { grid-template-columns: 4.6rem 1fr 5rem 2rem; }
  .ext .ext-saldo { display: none; }
  .fin-sel span { display: none; }
  body[data-tela="trabalho"] { display: block; height: auto; }
  body[data-tela="trabalho"] main { display: block; padding: .75rem; }
  .t-faixa { flex-wrap: wrap; gap: .5rem; }
  .t-faixa { --hora: 5.5rem; }
  .t-rolo { order: 3; flex-basis: 100%; }
  .pront-vivos { grid-template-columns: 1fr; }
  .t-meio { display: flex; flex-direction: column; gap: .6rem; }
  .t-palco { order: -1; }
  .t-video { aspect-ratio: auto; min-height: 220px; padding: 1.2rem 1rem; }
  .t-col { overflow: visible; }
  .t-alfinete { opacity: 1; }
  body[data-tela="prontuario"] main { padding: 0; }
  .pront.pagina { border-radius: 0; border: 0; }
  .pront-escolha { font-size: 1.15rem; }
  .pront { top: 0; bottom: 0; left: 0; transform: none; width: 100vw; border-radius: 0; border: 0; }
  .pront-topo { padding: .75rem 1rem .5rem; }
  .pront-topo h2 { font-size: 1.2rem; }
  .pront-topo .so-largo-txt { display: none; }
  .pront-ferr .periodo { flex: 1 1 40%; }
  .pront-ferr .periodo input { flex: 1; min-width: 0; }
  .pront-abas { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .pront-corpo { padding: .75rem 1rem 2rem; }
  .menu-caixa .menu { right: auto; left: 0; }
  .menu-caixa:last-of-type .menu { left: auto; right: 0; }
  .assoc { grid-template-columns: 1fr auto; }
  .assoc > span { display: none; }
  .assoc input:nth-of-type(2) { grid-column: 1 / 2; }
  .topo { flex-wrap: wrap; padding: .6rem 1rem; gap: .5rem; }
  .nav { order: 3; width: 100%; margin: 0; justify-content: space-between; overflow-x: auto; }
  .nav button { padding: .45rem .6rem; }
  .nav button span { display: none; }
  .nav button[aria-current="page"] span { display: inline; }
  .ajustes { margin-left: auto; }
  main { padding: 1rem; }
  .faixa-teste label { display: flex; align-items: center; gap: .4rem; min-width: 0; flex: 1 1 100%; }
  .faixa-teste select { flex: 1; min-width: 0; }
  .barra { flex-wrap: nowrap; gap: .5rem; }
  .barra .chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; min-width: 0; }
  .barra .chips + .chips { flex: none; }
  .chip { white-space: nowrap; }
  .busca { flex: 1 1 0; min-width: 0; }
  .busca kbd, .novo-txt { display: none; }
  .pac { grid-template-columns: 3.4rem minmax(0, 1fr) auto; gap: .6rem; padding: .55rem .7rem; }
  .pac .valor, .pac .lugar { display: none; }
  .pac .acoes .so-largo { display: none; }
  .pac .hora { font-size: 1rem; }
  .campos { grid-template-columns: 1fr; }
  .ficha { width: 100vw; }
  .navdata h2 { font-size: 1.05rem; }
  .navdata .btn.leve { padding: .4rem .5rem; }
  .sess { grid-template-columns: 3.4rem minmax(0, 1fr) auto; gap: .35rem .6rem; padding: .55rem .7rem; }
  .sess .acoes .so-largo { display: none; }
  /* celular: os quatro botões numa linha inteira, só com o nome escrito (mais claro que o ícone) */
  .sess > .situacoes { grid-column: 1 / -1; flex-wrap: nowrap; gap: .25rem; }
  .sess > .situacoes .sit-btn { flex: 1 1 0; justify-content: center; min-width: 0; min-height: 36px; padding: .15rem .3rem; font-size: .74rem; }
  .sess > .situacoes .sit-btn svg { display: none; }
  .proxima { padding: .9rem 1rem; gap: .2rem .9rem; }
  .proxima .p-hora { font-size: 1.8rem; }
  .proxima .p-nome { font-size: 1.25rem; }
  .grade { min-width: 640px; }
  dialog.pergunta .campos { grid-template-columns: 1fr 1fr; }
  dialog.pergunta .campo.largo { grid-column: 1 / -1; }
}


/* ============ Lote de 01/11/2026: entrada, Hoje em três colunas, Agenda nova, cadastro pelo link ============ */

/* Cores das CLASSES do atendimento (a cor diz só a classe; público e lugar vão em ícones).
   Blocos cheios com texto escuro, contraste forte nos quatro estilos (lição da agenda do Psicoplanner). */
:root {
  --k-psicoterapia: #B4A3EE; --k-supervisao: #86BBEA; --k-grupo: #6FCDBB; --k-curso: #E6BE68; --k-evento: #EBA397;
  --k-texto: #0F1722; --k-passado: 62%;
  --fora-exp: color-mix(in srgb, var(--fundo) 55%, var(--bloco-liso));
}
:root[data-tema="claro"] { --k-psicoterapia: #D9CFFA; --k-supervisao: #CFE3F7; --k-grupo: #C9EEE6; --k-curso: #F6E3B0; --k-evento: #F8D5CD; --k-texto: #1F2328; --k-passado: 55%; --fora-exp: #EFEEEA; }
:root[data-tema="zen"] { --k-psicoterapia: #DCD4F2; --k-supervisao: #D2E2EE; --k-grupo: #CDE9E2; --k-curso: #EFE2B8; --k-evento: #F1D6CC; --k-texto: #24302A; --k-passado: 55%; --fora-exp: #E4EADF; }
.classe-psicoterapia { --k: var(--k-psicoterapia); }
.classe-supervisao { --k: var(--k-supervisao); }
.classe-grupo { --k: var(--k-grupo); }
.classe-curso { --k: var(--k-curso); }
.classe-evento { --k: var(--k-evento); }

/* ---------- entrada e tela bloqueada ---------- */
body.sem-entrada > header, body.sem-entrada > main, body.sem-entrada > #faixa-teste { display: none; }
.entrada, .bloqueio { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 16px; background: var(--fundo-grad, var(--fundo)); overflow-y: auto; }
.bloqueio { background: color-mix(in srgb, var(--fundo) 82%, transparent); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); }
html.bloqueada body > *:not(.bloqueio):not(dialog) { filter: blur(14px); pointer-events: none; user-select: none; }
.en-cartao { width: min(420px, 100%); display: flex; flex-direction: column; gap: .35rem; padding: 2rem 1.75rem; border: 1px solid var(--borda); border-radius: 16px; background: var(--bloco); box-shadow: var(--relevo); }
.en-cartao .marca { display: flex; align-items: baseline; gap: .4rem; margin-bottom: 1rem; }
.en-cartao .marca h1 { font-size: 1.6rem; color: var(--ouro); }
.en-cartao .marca span { color: var(--suave); }
.en-cartao h2 { font-size: 1.25rem; margin-bottom: .25rem; }
.en-cartao .dica { margin: 0 0 .5rem; }
.en-campos { display: flex; flex-direction: column; gap: .25rem; }
.en-campos label { margin-top: .5rem; font-size: .88rem; color: var(--apoio); }
.en-campos input, .bloqueio input { min-height: 44px; font-size: 1rem; }
.en-erro { color: var(--verm); min-height: 1.2em; margin: .5rem 0 0; font-size: .9rem; }
.en-cartao .botoes { display: flex; flex-direction: column; gap: .5rem; margin-top: .75rem; }
.en-cartao .botoes .btn { justify-content: center; }
.en-teste { margin: 1rem 0 0; padding-top: .75rem; border-top: 1px solid var(--borda); font-size: .8rem; color: var(--suave); }
.bl-icone { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--ouro-fundo); color: var(--ouro); margin-bottom: .5rem; }
.chave-totp { margin: .5rem 0 .25rem; padding: .6rem .8rem; border: 1px dashed var(--ouro2); border-radius: 8px; font: 600 1.05rem/1.3 ui-monospace, Consolas, monospace; letter-spacing: .08em; word-break: break-all; color: var(--texto); }
ol.passos { padding-left: 1.2rem; color: var(--apoio); }
ol.passos li { margin: .4rem 0; }
ul.entradas { list-style: none; padding: 0; margin: .25rem 0 .75rem; font-size: .88rem; }
ul.entradas li { padding: .3rem 0; border-bottom: 1px solid var(--borda); }
ul.entradas small { color: var(--suave); }

/* ---------- Hoje em três colunas ---------- */
.hoje3 { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr) minmax(260px, .85fr); gap: 1rem; align-items: start; }
.hoje3.sem-atrasos { grid-template-columns: minmax(0, 1.6fr) minmax(260px, .9fr); }
@media (max-width: 1180px) { .hoje3 { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); } .hoje3 .h-painel { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: .75rem; } .hoje3 .h-painel > .h-tit { grid-column: 1 / -1; } }
@media (max-width: 760px) { .hoje3, .hoje3.sem-atrasos { grid-template-columns: 1fr; } }
.h-col { min-width: 0; }
.h-tit { display: flex; align-items: center; gap: .45rem; font-size: 1.05rem; color: var(--ouro); margin: 0 0 .6rem; }
.h-dia-todo { display: flex; flex-wrap: wrap; gap: .3rem; margin-bottom: .5rem; }
.h-dia-todo .chip-comp { width: auto; }
.h-lista { border: 1px solid var(--borda); border-radius: var(--raio); background: var(--bloco); overflow: hidden; }
.h-item { display: grid; grid-template-columns: 3.4rem minmax(0, 1fr) auto auto; gap: .5rem; align-items: center; min-height: 48px; padding: .4rem .7rem; border-top: 1px solid var(--borda); cursor: pointer; }
.h-item:first-child { border-top: 0; }
.h-item:hover { background: var(--linha-hover); }
.h-item .h-hora { font-variant-numeric: tabular-nums; color: var(--ouro); font-weight: 600; }
.h-item .h-nome { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; }
.h-item .h-nome .etq { margin-left: .35rem; }
.h-item .h-icones { display: inline-flex; gap: .3rem; align-items: center; color: var(--suave); }
.h-item .h-icones svg { width: 1rem; height: 1rem; }
.h-item .sino { display: inline-flex; align-items: center; gap: .1rem; font-size: .75rem; color: var(--ouro); }
.h-item.sessao { box-shadow: inset 4px 0 0 var(--k); }
.h-item.comp, .h-item.gev { grid-template-columns: 3.4rem minmax(0, 1fr) auto; color: var(--apoio); }
.h-item.comp .h-nome, .h-item.gev .h-nome { font-weight: 400; }
.h-item.foi { opacity: .5; }
.h-item.foi .h-hora { color: var(--suave); }
.h-item.foi:hover, .h-item.foi:focus-within { opacity: .85; }
.h-item.sit-falta_justificada .h-nome, .h-item.sit-falta_injustificada .h-nome, .h-item.sit-cancelado .h-nome { text-decoration: line-through; }
.h-item.alvo, .h-fantasmas.alvo { outline: 2px dashed var(--ouro); outline-offset: -2px; background: var(--ouro-fundo); }
.sit-menu { gap: .3rem; min-height: 34px; }
.sit-menu svg { color: var(--cor-sit); }
.h-agora { display: flex; align-items: center; gap: .45rem; height: 1.2rem; padding: 0 .7rem; }
.h-agora::after { content: ''; flex: 1; height: 2px; border-radius: 1px; background: var(--ouro); }
.h-agora span { font-size: .72rem; font-weight: 600; color: var(--ouro); font-variant-numeric: tabular-nums; }
.h-fantasmas { display: flex; flex-direction: column; gap: .35rem; margin-bottom: .5rem; min-height: 4px; border-radius: var(--raio); }
.h-item.h-tarefa, .h-fantasmas .h-item { grid-template-columns: auto auto minmax(0, 1fr) auto auto; border: 1px dashed color-mix(in srgb, var(--suave) 60%, transparent); border-radius: 10px; background: transparent; cursor: grab; }
.h-lista .h-item.h-tarefa { border-radius: 0; border-width: 1px 0 0; border-style: dashed; }
.h-item.h-tarefa .h-nome { font-style: italic; font-weight: 400; color: var(--apoio); text-align: left; border: 0; background: none; cursor: pointer; padding: 0; }
.h-item.h-tarefa input[type=checkbox] { width: 20px; height: 20px; accent-color: var(--verde); }
.h-item.h-tarefa.feita .h-nome { text-decoration: line-through; opacity: .6; }
body.arrastando-tarefa .h-fantasmas { min-height: 2.6rem; outline: 1px dashed var(--borda); outline-offset: 2px; }

.h-atrasos .h-tit { color: var(--verm); }
.h-atrasos.calmo .h-tit { color: var(--verde); }
.h-calmo { padding: 1.5rem 1rem; text-align: center; color: var(--suave); border: 1px solid var(--borda); border-radius: var(--raio); background: var(--bloco); }
.h-atraso { padding: .7rem .85rem; margin-bottom: .6rem; border: 1px solid color-mix(in srgb, var(--verm) 45%, var(--borda)); border-radius: var(--raio); background: color-mix(in srgb, var(--verm) 7%, var(--bloco)); box-shadow: inset 4px 0 0 var(--verm); }
.h-atraso h4 { display: flex; align-items: center; gap: .4rem; margin: 0 0 .4rem; font-size: .92rem; color: var(--texto); }
.h-atraso h4 svg { color: var(--verm); width: 1.05rem; height: 1.05rem; }
.h-at-item { display: flex; justify-content: space-between; align-items: center; gap: .6rem; padding: .35rem 0; border-top: 1px solid color-mix(in srgb, var(--verm) 18%, transparent); }
.h-at-item:first-of-type { border-top: 0; }
.h-at-item b { display: block; font-weight: 500; }
.h-at-item small { display: block; color: var(--suave); font-size: .8rem; }
.h-at-acoes { display: flex; gap: .3rem; flex: none; }
.h-at-acoes label.btn { display: inline-flex; align-items: center; gap: .3rem; }

.h-painel { display: flex; flex-direction: column; gap: .75rem; }
.h-cartao { padding: .75rem .85rem; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--bloco); }
.h-cartao h4 { display: flex; align-items: center; gap: .4rem; margin: 0 0 .5rem; font-size: .88rem; color: var(--apoio); letter-spacing: .02em; }
.h-cartao h4 svg { color: var(--ouro); width: 1rem; height: 1rem; }
.h-p-item { display: flex; align-items: center; justify-content: space-between; gap: .5rem; min-height: 36px; font-size: .9rem; border-top: 1px solid var(--borda); }
.h-p-item:first-child { border-top: 0; }
.h-p-item small { color: var(--suave); }
.h-p-item .h-quando { min-width: 3.6rem; color: var(--ouro); }
.h-p-item.hoje .h-quando { font-weight: 600; }
.h-p-item > span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.h-mes { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.h-mes small { display: block; color: var(--suave); font-size: .78rem; }
.h-mes b { font-size: 1.1rem; font-variant-numeric: tabular-nums; }
.h-cal h4 { justify-content: space-between; }
.h-cal h4 span { flex: 1; text-align: center; color: var(--texto); }
.h-cal-grade { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center; }
.h-cal-sem { font-size: .7rem; color: var(--suave); padding-bottom: .2rem; }
.h-cal-dia { position: relative; min-height: 34px; border: 0; border-radius: 8px; background: none; color: var(--apoio); font: inherit; font-size: .85rem; cursor: pointer; font-variant-numeric: tabular-nums; }
.h-cal-dia:hover { background: var(--linha-hover); }
.h-cal-dia.tem { color: var(--texto); font-weight: 500; }
.h-cal-dia i { position: absolute; left: 50%; bottom: 3px; width: calc(4px + var(--n) * 1.5px); height: 4px; transform: translateX(-50%); border-radius: 2px; background: var(--k-psicoterapia); }
.h-cal-dia.hoje { box-shadow: inset 0 0 0 1.5px var(--ouro); color: var(--ouro); font-weight: 600; }
.h-cal-dia.sel { background: var(--ouro-fundo); }

/* ---------- Agenda nova ---------- */
.semana .sem-col { background-color: var(--fora-exp); }
.sem-exp { position: absolute; left: 0; right: 0; background: var(--bloco-liso); pointer-events: none; z-index: 0; }
.sem-col.hoje .sem-exp { background: color-mix(in srgb, var(--ouro) 5%, var(--bloco-liso)); }
.semana .bloco { z-index: 1; }
.bloco.sessao, .bloco.classe-grupo, .bloco.classe-curso, .bloco.classe-evento {
  background: var(--k); color: var(--k-texto); border: 0; border-left: 3px solid color-mix(in srgb, var(--k) 55%, #000); box-shadow: none; }
:root[data-tema="claro"] .bloco.sessao, :root[data-tema="zen"] .bloco.sessao,
:root[data-tema="claro"] .bloco.classe-grupo, :root[data-tema="zen"] .bloco.classe-grupo,
:root[data-tema="claro"] .bloco.classe-curso, :root[data-tema="zen"] .bloco.classe-curso,
:root[data-tema="claro"] .bloco.classe-evento, :root[data-tema="zen"] .bloco.classe-evento { border-left-color: color-mix(in srgb, var(--k) 35%, #000); }
.bloco.sessao .b-hora, .bloco.classe-grupo .b-hora, .bloco.classe-curso .b-hora, .bloco.classe-evento .b-hora { color: inherit; opacity: .75; }
.bloco.sessao svg, .bloco.classe-grupo svg, .bloco.classe-curso svg, .bloco.classe-evento svg { color: inherit; opacity: .85; }
.bloco.sessao .b-nome { font-weight: 600; }
.bloco.alto { display: flex; flex-direction: column; gap: .05rem; padding: .25rem .4rem; }
.bloco .b-l1 { display: flex; align-items: center; gap: .3rem; min-width: 0; }
.bloco .b-l1 .b-nome { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bloco .b-l2 { font-size: .72rem; opacity: .8; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; }
.bloco .b-ics { display: inline-flex; gap: .15rem; margin-left: auto; flex: none; }
.bloco .b-ics svg { margin: 0; }
.bloco.passou.sessao, .bloco.passou.classe-grupo, .bloco.passou.classe-curso, .bloco.passou.classe-evento { background: color-mix(in srgb, var(--k) var(--k-passado), var(--bloco-liso)); }
.bloco.passou > * { opacity: .78; }
.bloco.sit-falta_justificada .b-nome, .bloco.sit-falta_injustificada .b-nome { text-decoration: line-through; }
.bloco.sit-cancelado { opacity: .45; }
/* Pessoal e Google: só contorno, não disputam o olhar com o trabalho */
.bloco.classe-pessoal, .bloco.classe-google { background: color-mix(in srgb, var(--bloco-liso) 70%, transparent); color: var(--suave); border: 1px solid var(--borda); box-shadow: none; }
.bloco.classe-pessoal svg, .bloco.classe-google svg { color: var(--suave); }
.bloco.classe-pessoal .b-hora, .bloco.classe-google .b-hora { color: var(--suave); }
.bloco.livre { border-style: dotted; }
.bloco.passou.classe-pessoal > *, .bloco.passou.classe-google > * { opacity: .6; }
.bloco.fant { background: transparent; border: 1px dashed color-mix(in srgb, var(--suave) 60%, transparent); color: var(--suave); font-style: italic; box-shadow: none; z-index: 0; }
.bloco.fant svg { color: var(--suave); }
.bloco.conf { box-shadow: 0 0 0 2px var(--verm); z-index: 2; }
.bloco:hover { z-index: 3; }
.bloco.sessao:hover, .bloco.classe-grupo:hover, .bloco.classe-curso:hover, .bloco.classe-evento:hover { filter: brightness(1.06); }
.conflito-etq { display: inline-flex; align-items: center; gap: .3rem; cursor: pointer; background: none; font: inherit; font-size: .8rem; padding: .15rem .6rem; border-radius: 999px; border: 1px solid var(--verm); color: var(--verm); }
.ag-legenda { align-items: center; margin: 0 0 .6rem; }
.ag-legenda span::before { content: none; }
.leg-cor { display: inline-flex; align-items: center; gap: .35rem; border: 0; background: none; color: var(--apoio); font: inherit; font-size: .8rem; cursor: pointer; padding: .2rem .1rem; }
.leg-cor i { width: 1.3rem; height: .75rem; border-radius: 4px; background: var(--k); }
.leg-cor.apagada { opacity: .4; text-decoration: line-through; }
.leg-sep { width: 1px; height: 1rem; background: var(--borda); }
.leg-ic { display: inline-flex; align-items: center; gap: .2rem; }
.leg-ic svg { width: .9rem; height: .9rem; }
.leg-contorno i, .leg-trac i { display: inline-block; width: 1.3rem; height: .75rem; border-radius: 4px; border: 1px solid var(--suave); margin-right: .35rem; vertical-align: -1px; }
.leg-trac i { border-style: dashed; }
.leg-filtro { display: inline-flex; align-items: center; gap: .4rem; margin-left: auto; }
.ag-legenda em { order: 99; }
.ag-cartao { position: fixed; z-index: 150; width: 260px; padding: .75rem .9rem; border: 1px solid var(--borda); border-radius: 10px; background: var(--bloco-liso); box-shadow: var(--sombra-painel); color: var(--apoio); font-size: .85rem; pointer-events: none; }
.ag-cartao b { display: block; font-family: Spectral, Georgia, serif; font-size: 1.05rem; color: var(--texto); }
.ag-cartao small { display: block; color: var(--suave); }
.ag-cartao p { margin: .35rem 0 0; display: flex; align-items: center; gap: .3rem; }
.ag-cartao p svg { width: .95rem; height: .95rem; }
.ag-cartao ul { margin: .4rem 0 0; padding-left: 1rem; }
.ag-cartao .ag-sit svg { color: var(--cor-sit); }
.ag-cartao .ag-conf { color: var(--verm); }

/* ---------- Atendimento: modo discreto ---------- */
.trabalho.discreto .fin-saldo, .trabalho.discreto .t-mini-ext .v, .trabalho.discreto .t-recebido input { filter: blur(6px); transition: filter .2s; }
.trabalho.discreto .t-bloco:hover .fin-saldo, .trabalho.discreto .t-bloco:hover .t-mini-ext .v, .trabalho.discreto .t-recebido input:focus { filter: none; }
.t-dia .btn[aria-pressed="true"] { color: var(--ouro); }

/* ---------- cadastro pelo link: revisão ---------- */
.rev-tabela { display: grid; grid-template-columns: auto minmax(7rem, .8fr) minmax(0, 1fr) minmax(0, 1.2fr); border: 1px solid var(--borda); border-radius: 8px; overflow: hidden; font-size: .88rem; }
.rev-cab, .rev-linha { display: contents; }
.rev-cab > span { padding: .4rem .5rem; font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: var(--suave); background: var(--bloco-liso); }
.rev-linha > * { padding: .45rem .5rem; border-top: 1px solid var(--borda); min-width: 0; overflow-wrap: anywhere; }
.rev-linha input { width: 18px; height: 18px; accent-color: var(--ouro2); margin: .55rem .5rem; padding: 0; }
.rev-linha.igual > * { color: var(--suave); }
.rev-linha b { font-weight: 600; color: var(--texto); }
.rev-ativar { display: flex; align-items: center; gap: .4rem; margin: .75rem 0 .25rem; font-size: .9rem; }
.revisao .botoes { margin-top: .75rem; }

/* ---------- acessibilidade: foco visível nos menus ---------- */
.menu [role="menuitem"]:focus-visible { outline: 2px solid var(--ouro); outline-offset: -2px; }
@media (hover: none) { .passo { width: 44px; height: 44px; } }

.h-item.pacote { grid-template-columns: 3.4rem minmax(0, 1fr) auto; }
.h-item.pacote .h-nome small { color: var(--suave); font-weight: 400; }
.h-pacote-lista { display: none; grid-column: 2 / -1; font-size: .82rem; color: var(--suave); }
.h-item.pacote[aria-expanded="true"] .h-pacote-lista { display: block; }

/* ---------- Lote 4 (01/11/2026): direitos do paciente, proteção de dados ---------- */
.faixa-info.bloqueio { border-color: var(--verm); margin: .75rem 0 0; }
.faixa-info.bloqueio svg { color: var(--verm); flex: none; }
.secao.falta h3 small { color: var(--verm); }
.etq.ok { color: var(--verde); border-color: var(--verde); }
.pedidos { list-style: none; margin: .5rem 0 .75rem; padding: 0; }
.pedido { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; padding: .5rem 0; border-top: 1px dashed var(--borda); }
.pedido:first-child { border-top: 0; }
.pedido > div:first-child { flex: 1; min-width: 12rem; }
.pedido small { color: var(--suave); }
.pedido.aberto strong { color: var(--texto); }
.botoes-linha { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; }
.direitos .dica { margin: 0 0 .25rem; }
.aviso-reservado { grid-column: 1 / -1; display: flex; gap: .5rem; align-items: flex-start; margin: -.25rem 0 0; font-size: .8rem; color: var(--suave); }
.aviso-reservado svg { width: 16px; height: 16px; flex: none; color: var(--ouro); margin-top: .1rem; }
.cartao .campos + .sub-titulo, .cartao .campos + h3 { margin-top: 1.25rem; }
