/* Jaleco Pronto — estilos. Cores = tokens de Tema.java (js/tema.js grava as variáveis no :root).
   Os valores abaixo são o tema Rosa (claro/escuro) para o primeiro quadro, antes do JavaScript. */

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url('../fonts/inter-latin-wght-normal.woff2') format('woff2-variations'), url('../fonts/inter-latin-wght-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url('../fonts/inter-latin-ext-wght-normal.woff2') format('woff2-variations'), url('../fonts/inter-latin-ext-wght-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
  --primary: #DB2777; --on-primary: #FFFFFF; --primary-c: #FCE7F3; --on-primary-c: #831843; --link: #BE185D;
  --bg: #FFF7FA; --surface: #FFFFFF; --surface2: #FCEFF5; --text: #2B1520; --text2: #6E5562; --border: #F0DCE6;
  --inverse: #3A1F2C; --on-inverse: #FFEFF6; --sombra: #831843;
  --success: #15803D; --success-c: #DCFCE7; --warning: #B45309; --warning-c: #FEF3C7; --error: #B91C1C; --error-c: #FEE2E2;
  --raio: 20px;
  --sombra-cartao: 0 1px 2px color-mix(in srgb, var(--sombra) 10%, transparent), 0 2px 8px color-mix(in srgb, var(--sombra) 8%, transparent);
  --seg-topo: env(safe-area-inset-top, 0px);
  --seg-base: env(safe-area-inset-bottom, 0px);
  --seg-esq: env(safe-area-inset-left, 0px);
  --seg-dir: env(safe-area-inset-right, 0px);
  color-scheme: light dark;
}
@media (prefers-color-scheme: dark) {
  :root { --sombra-cartao: none; }
  :root {
    --primary: #F472B6; --on-primary: #4A0A2B; --primary-c: #5A1838; --on-primary-c: #FBD0E6; --link: #F9A8D4;
    --bg: #170C12; --surface: #24141D; --surface2: #311B28; --text: #F9E9F0; --text2: #C9A8B8; --border: #45293A;
    --inverse: #F9E9F0; --on-inverse: #2B1520; --sombra: #000000;
    --success: #4ADE80; --success-c: #12341F; --warning: #FBBF24; --warning-c: #3A2A0B; --error: #F87171; --error-c: #3D1418;
  }
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
html, body { margin: 0; height: 100%; }
body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.45;
  background: var(--bg);
  color: var(--text);
  -webkit-tap-highlight-color: transparent;
  overscroll-behavior-y: none;
}
button, input, textarea, select { font: inherit; color: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid var(--primary); outline-offset: 2px; }
.oculto { display: none !important; }

/* ---------- abertura ---------- */
.abertura {
  position: fixed; inset: 0; z-index: 100;
  background: #FFFFFF;
  display: flex; align-items: center; justify-content: center;
}
@media (prefers-color-scheme: dark) { .abertura { background: #0F141B; } }
.abertura-canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.abertura:has(canvas) .abertura-coracao { display: none; }
/* coração em CSS: aparece só antes do canvas (ou se o JS falhar) */
.abertura-coracao {
  width: 72px; height: 72px; position: relative; transform: rotate(-45deg) translateY(-30%);
  background: #E11D48; animation: bater 1s ease-in-out infinite;
}
.abertura-coracao::before, .abertura-coracao::after {
  content: ''; position: absolute; width: 72px; height: 72px; border-radius: 50%; background: #E11D48;
}
.abertura-coracao::before { top: -36px; left: 0; }
.abertura-coracao::after { left: 36px; top: 0; }
@keyframes bater { 0%, 100% { scale: 1; } 15% { scale: 1.12; } 30% { scale: 1; } 45% { scale: 1.06; } }
@media (prefers-reduced-motion: reduce) { .abertura-coracao { animation: none; } }

/* ---------- estrutura ---------- */
.app {
  min-height: 100%;
  display: flex; flex-direction: column;
  padding-left: var(--seg-esq); padding-right: var(--seg-dir);
}
.topo {
  position: sticky; top: 0; z-index: 10;
  display: flex; align-items: center; gap: 4px;
  padding: calc(var(--seg-topo) + 10px) 16px 10px;
  background: color-mix(in srgb, var(--bg) 92%, transparent);
  -webkit-backdrop-filter: saturate(1.4) blur(12px); backdrop-filter: saturate(1.4) blur(12px);
}
.topo h1 { font-size: 22px; font-weight: 800; letter-spacing: -0.02em; margin: 0; }
.voltar {
  border: 0; background: transparent; color: var(--text); width: 44px; height: 44px; margin-left: -10px;
  display: grid; place-items: center; border-radius: 22px;
}
.conteudo {
  flex: 1;
  padding: 4px 16px calc(96px + var(--seg-base));
  width: 100%; max-width: 720px; margin: 0 auto;
}
.conteudo:focus { outline: none; }
.abas {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 20;
  display: grid; grid-template-columns: repeat(5, 1fr);
  padding: 6px calc(8px + var(--seg-dir)) calc(6px + var(--seg-base)) calc(8px + var(--seg-esq));
  background: var(--surface);
  border-top: 1px solid var(--border);
}
.aba {
  border: 0; background: transparent; color: var(--text2);
  display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 4px 0; min-height: 52px;
  font-size: 12px; font-weight: 600;
}
.aba-pilula { width: 56px; height: 30px; border-radius: 15px; display: grid; place-items: center; transition: background .2s; }
.aba.ativa { color: var(--on-primary-c); }
.aba.ativa .aba-pilula { background: var(--primary-c); color: var(--on-primary-c); }

/* ---------- componentes ---------- */
.tela { display: flex; flex-direction: column; gap: 12px; padding-bottom: 8px; }
.cartao {
  background: var(--surface); border-radius: var(--raio); box-shadow: var(--sombra-cartao);
  padding: 18px; display: flex; flex-direction: column; gap: 10px;
}
.cartao h2 { font-size: 17px; font-weight: 700; margin: 0; }
.cartao-topo { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.cartao-topo small, .nota, .campo-ajuda { color: var(--text2); font-size: 13px; }
.nota { margin: 0; }
.subtitulo { font-size: 13px; color: var(--text2); margin: 12px 0 2px; }

.botao {
  min-height: 48px; padding: 0 18px; border-radius: 16px; border: 0;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-weight: 700; font-size: 15px; background: var(--primary-c); color: var(--on-primary-c);
}
.botao.primario { background: var(--primary); color: var(--on-primary); }
.botao.perigo { background: var(--error-c); color: var(--error); }
.botao.largo { width: 100%; min-height: 54px; }
.botao:active { transform: scale(.98); }
.linha-botoes { display: flex; gap: 8px; flex-wrap: wrap; }
.linha-botoes .botao { flex: 1 1 140px; }
.link, .link-centro, .link-perigo {
  border: 0; background: transparent; color: var(--link); font-weight: 700; padding: 10px 4px; font-size: 14px;
}
.link-perigo { color: var(--error); }
.centro, .link-centro { align-self: center; }

.campo { display: flex; flex-direction: column; gap: 4px; }
.campo-rotulo { font-size: 13px; font-weight: 600; color: var(--text2); }
input, textarea, select {
  width: 100%; border: 1px solid var(--border); background: var(--surface); color: var(--text);
  border-radius: 12px; padding: 12px 14px; font-size: 16px; /* 16px evita o zoom do iOS */
}
textarea { resize: vertical; line-height: 1.4; }
input[type="file"] { padding: 10px; }
.duas-colunas { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

.interruptor { display: flex; align-items: center; gap: 12px; padding: 6px 0; position: relative; }
.interruptor-textos { flex: 1; display: flex; flex-direction: column; }
.interruptor-textos small { color: var(--text2); font-size: 12px; }
.interruptor input { position: absolute; opacity: 0; width: 52px; height: 32px; right: 0; margin: 0; }
.interruptor-trilho { width: 52px; height: 32px; border-radius: 16px; background: var(--border); position: relative; flex: none; transition: background .2s; }
.interruptor-trilho::after { content: ''; position: absolute; top: 3px; left: 3px; width: 26px; height: 26px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.3); transition: transform .2s; }
.interruptor input:checked + .interruptor-trilho { background: var(--primary); }
.interruptor input:checked + .interruptor-trilho::after { transform: translateX(20px); }
.interruptor input:focus-visible + .interruptor-trilho { outline: 3px solid var(--primary); outline-offset: 2px; }

.aviso { border-radius: 14px; padding: 12px 14px; font-size: 14px; display: flex; gap: 10px; align-items: flex-start; flex-wrap: wrap; }
.aviso.alerta { background: var(--warning-c); color: var(--warning); }
.aviso.erro { background: var(--error-c); color: var(--error); }
.aviso.info { background: var(--primary-c); color: var(--on-primary-c); }
.aviso .icone { flex: none; }
.aviso span { flex: 1; }
.aviso .link { padding: 0; color: inherit; text-decoration: underline; }

.saudacao h1 { font-size: 26px; font-weight: 800; letter-spacing: -0.02em; margin: 4px 0 0; }
.saudacao p { margin: 0; color: var(--text2); }
.grade-atalhos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.atalho {
  display: flex; gap: 12px; align-items: center; text-align: left;
  background: var(--surface); border: 0; box-shadow: var(--sombra-cartao); border-radius: var(--raio); padding: 14px; color: var(--text);
}
.atalho .icone { color: var(--primary); flex: none; }
.atalho span { display: flex; flex-direction: column; }
.atalho small { color: var(--text2); font-size: 12px; }

.linha-busca { display: flex; align-items: center; gap: 8px; background: var(--surface2); border: 0; border-radius: 14px; padding: 0 12px; color: var(--text2); }
.linha-busca .busca { border: 0; padding: 12px 0; background: transparent; }
.linha-busca .busca:focus { outline: none; }

.item-consulta, .item-paciente, .item-ajuste, .item-lista {
  width: 100%; text-align: left; border: 0; border-bottom: 1px solid var(--border); background: transparent; color: var(--text);
  padding: 12px 2px; display: flex; gap: 12px; align-items: center;
}
.item-consulta { flex-direction: column; align-items: stretch; gap: 2px; }
.item-consulta:last-child, .item-ajuste:last-child, .item-lista:last-child, .item-paciente:last-child { border-bottom: 0; }
.item-consulta small, .item-textos small { color: var(--text2); font-size: 13px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.item-topo { display: flex; justify-content: space-between; gap: 8px; }
.item-topo .nome { color: var(--primary); font-weight: 700; font-size: 13px; }
.item-textos { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.item-lista.ativo { color: var(--primary); font-weight: 700; }
.item-ajuste .icone, .item-paciente .icone { color: var(--text2); flex: none; }
.lista-pacientes { background: var(--surface); box-shadow: var(--sombra-cartao); border-radius: var(--raio); padding: 0 14px; }
.avatar { width: 40px; height: 40px; border-radius: 20px; background: var(--primary-c); color: var(--on-primary-c); display: grid; place-items: center; font-weight: 800; flex: none; }
.lista-opcoes { display: flex; flex-direction: column; }
mark { background: var(--primary-c); color: var(--on-primary-c); font-weight: 700; border-radius: 3px; }
.vazio-centro { text-align: center; color: var(--text2); padding: 24px 0; }
.contagem { color: var(--text2); }
.exame { border: 1px dashed var(--border); border-radius: 14px; padding: 10px; display: flex; flex-direction: column; gap: 8px; }
.exames { display: flex; flex-direction: column; gap: 10px; }
.idade { color: var(--text2); margin-top: -4px; }
.limite strong { display: block; margin-top: 6px; }
.limite p { margin: 2px 0 0; color: var(--text2); font-size: 14px; }

/* ---------- consulta ---------- */
.consulta-topo { display: flex; flex-direction: column; gap: 10px; margin-bottom: 12px; }
.chip-paciente {
  align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; max-width: 100%;
  border: 0; box-shadow: var(--sombra-cartao); background: var(--surface); color: var(--text); border-radius: 20px; padding: 8px 14px; font-weight: 600; font-size: 14px;
}
.chip-paciente span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.segmentos { display: grid; grid-template-columns: repeat(3, 1fr); background: var(--surface2); border-radius: 14px; padding: 4px; gap: 4px; }
.segmento { border: 0; background: transparent; border-radius: 10px; padding: 9px 4px; font-weight: 700; font-size: 14px; color: var(--text2); }
.segmento.ativo { background: var(--surface); color: var(--primary); box-shadow: 0 1px 3px color-mix(in srgb, var(--sombra) 15%, transparent); }
.consulta-area > div { display: flex; flex-direction: column; gap: 12px; }
.gravador { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 8px 0; }
.mic {
  position: relative; width: 120px; height: 120px; border-radius: 60px; border: 0; margin: 10px;
  background: var(--primary); color: var(--on-primary); display: grid; place-items: center;
  box-shadow: 0 8px 24px color-mix(in srgb, var(--primary) 35%, transparent);
}
.mic .icone { position: relative; }
.mic.gravando { background: var(--error); color: #fff; }
.mic-halo { position: absolute; inset: 0; border-radius: 60px; background: var(--error); opacity: 0; }
.mic.gravando .mic-halo { animation: halo 1.3s ease-out infinite; }
@keyframes halo { from { transform: scale(1); opacity: .35; } to { transform: scale(1.4); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .mic.gravando .mic-halo { animation: none; } }
.timer { font-size: 34px; font-weight: 800; font-variant-numeric: tabular-nums; }
.status-voz { color: var(--text2); font-size: 14px; }
.dica { display: flex; gap: 10px; background: var(--bg); border-radius: 12px; padding: 10px 12px; margin: 0; color: var(--text2); font-size: 13px; }
.dica .icone { flex: none; }
.transcricao { min-height: 200px; border: 0; padding: 4px 0; background: transparent; }
.transcricao:focus { outline: none; }
.parcial { color: var(--text2); font-style: italic; font-size: 14px; min-height: 0; }
.texto-gerado { white-space: pre-wrap; overflow-wrap: anywhere; -webkit-user-select: text; user-select: text; font-size: 15px; line-height: 1.5; }
.texto-gerado.vazio { color: var(--text2); }
.faixa-acoes { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 8px; }
.acao {
  border: 0; box-shadow: var(--sombra-cartao); background: var(--surface); color: var(--text); border-radius: 14px;
  display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 10px 4px; font-size: 12px; font-weight: 600;
}
.acao .icone { color: var(--primary); }
.item-receita { background: var(--surface2); border: 1px solid var(--border); border-radius: 14px; padding: 10px 12px; display: flex; flex-direction: column; gap: 6px; }
.item-receita p { margin: 0; color: var(--text2); font-size: 14px; }
.via { color: var(--primary); font-weight: 700; font-size: 12px; margin-top: 8px; }
.progresso { text-align: center; padding: 16px 0; }

/* ---------- diálogos e avisos ---------- */
.dialogo-fundo {
  position: fixed; inset: 0; z-index: 50; background: rgba(0, 0, 0, .4);
  display: flex; align-items: flex-end; justify-content: center; animation: aparecer .18s ease-out;
}
.dialogo-fundo.saindo { opacity: 0; transition: opacity .18s; }
.dialogo {
  background: var(--surface); color: var(--text); width: 100%; max-width: 560px; max-height: 92dvh;
  border-radius: 22px 22px 0 0; padding: 20px 16px calc(16px + var(--seg-base));
  display: flex; flex-direction: column; gap: 12px; animation: subir .22s ease-out;
}
@media (min-width: 600px) { .dialogo-fundo { align-items: center; } .dialogo { border-radius: 22px; } }
.dialogo-titulo { margin: 0; font-size: 19px; font-weight: 800; }
.dialogo-corpo { overflow-y: auto; display: flex; flex-direction: column; gap: 10px; -webkit-overflow-scrolling: touch; }
.dialogo-corpo p { margin: 0; }
.dialogo-botoes { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.dialogo-botoes .botao { flex: 1 1 auto; }
@keyframes aparecer { from { opacity: 0; } }
@keyframes subir { from { transform: translateY(30px); opacity: .5; } }
.toast {
  position: fixed; left: 50%; bottom: calc(84px + var(--seg-base)); z-index: 60; transform: translate(-50%, 20px);
  background: var(--inverse); color: var(--on-inverse); padding: 10px 16px; border-radius: 14px; font-size: 14px; font-weight: 600;
  max-width: calc(100% - 32px); opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s;
}
.toast.visivel { opacity: 1; transform: translate(-50%, 0); }

/* ---------- bloqueio ---------- */
.bloqueio {
  position: fixed; inset: 0; z-index: 90; background: var(--bg);
  display: flex; align-items: center; justify-content: center; padding: calc(var(--seg-topo) + 16px) 24px calc(var(--seg-base) + 16px);
}
.bloqueio[hidden] { display: none; }
.bloqueio-caixa { width: 100%; max-width: 360px; display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; }
.bloqueio-caixa .icone { color: var(--primary); }
.bloqueio-caixa h1 { margin: 0; font-size: 24px; font-weight: 800; }
.bloqueio-caixa p { margin: 0; color: var(--text2); }
.bloqueio-form { width: 100%; display: flex; flex-direction: column; gap: 10px; }
.bloqueio-erro { color: var(--error) !important; min-height: 1.4em; }

/* ---------- cobertura em segundo plano (snapshot do multitarefa do iOS) ---------- */
.coberto #app, .coberto .dialogo-fundo, .coberto .toast { visibility: hidden; }
.coberto body { background: var(--bg); }

/* ---------- Início (como o renderInicio do Android) ---------- */
.inicio-topo { display: flex; align-items: center; gap: 4px; padding-top: 4px; }
.inicio-topo .saudacao { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.inicio-topo .saudacao span { color: var(--text2); font-size: 15px; }
.inicio-topo .saudacao strong { font-size: 22px; font-weight: 700; letter-spacing: -0.01em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.botao-icone { width: 44px; height: 44px; border: 0; border-radius: 22px; background: transparent; color: var(--text); display: grid; place-items: center; }
.avatar.grande { width: 44px; height: 44px; border-radius: 22px; border: 0; font-size: 16px; font-weight: 800; margin-left: 4px; }
.relogio-caixa { padding: 18px 0 8px; }
.relogio { font-size: 68px; font-weight: 300; letter-spacing: -0.045em; line-height: 1; font-variant-numeric: tabular-nums; }
.data-hoje { color: var(--text2); font-size: 16px; margin-top: 6px; }
.cta {
  min-height: 60px; border: 0; border-radius: 20px; background: var(--primary); color: var(--on-primary);
  display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 17px; font-weight: 700;
  box-shadow: var(--sombra-cartao);
}
.cta:active { transform: scale(.99); }
.inicio .cartao .item-ajuste { padding: 4px 0; }
.inicio .cartao .item-ajuste > .icone:first-child { color: var(--primary); }
.escolher-arquivo { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.arquivo-nome { color: var(--text2); font-size: 14px; overflow-wrap: anywhere; }
/* modo escolhido em Ajustes (vale mais que o do sistema): sombra só no claro, como sombra() do Android */
:root[data-escuro="1"] { --sombra-cartao: none; }
:root[data-escuro="0"] { --sombra-cartao: 0 1px 2px color-mix(in srgb, var(--sombra) 10%, transparent), 0 2px 8px color-mix(in srgb, var(--sombra) 8%, transparent); }

/* ---------- Fase 2: plantões, finanças, interações ---------- */
.topo-ajustes { margin-left: auto; margin-right: -8px; }
.segmentos.dois { grid-template-columns: repeat(2, 1fr); }
.botao.pequeno { min-height: 38px; padding: 0 14px; font-size: 14px; border-radius: 12px; }
.mes-topo { display: flex; align-items: center; gap: 4px; }
.mes-nome { border: 0; background: transparent; color: var(--text); font-size: 16px; font-weight: 700; white-space: nowrap; padding: 6px 2px; }
.botao-icone.girado .icone { transform: rotate(180deg); }
.botao-filtro { border: 0; border-radius: 16px; padding: 6px 12px; display: inline-flex; gap: 6px; align-items: center; background: var(--surface2); color: var(--text); font-weight: 700; font-size: 13px; }
.botao-filtro.ativo { background: var(--primary); color: var(--on-primary); }
.calendario { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center; }
.cal-semana { font-size: 12px; font-weight: 700; color: var(--text2); padding: 4px 0; }
.cal-dia { border: 0; background: transparent; color: var(--text); border-radius: 12px; min-height: 46px; padding: 4px 0;
  display: flex; flex-direction: column; align-items: center; gap: 3px; font-size: 15px; font-variant-numeric: tabular-nums; }
.cal-dia.com { font-weight: 700; }
.cal-num { width: 34px; height: 34px; border-radius: 17px; display: grid; place-items: center; }
.cal-dia:not(.com) { color: var(--text2); font-weight: 500; }
.cal-dia.hoje .cal-num { background: var(--primary); color: var(--on-primary); font-weight: 800; }
.cal-dia.sel:not(.hoje) .cal-num { background: var(--primary-c); box-shadow: inset 0 0 0 2px var(--primary); }
.cal-pontos { display: flex; gap: 3px; min-height: 6px; }
.cal-ponto { width: 6px; height: 6px; border-radius: 3px; }
.mes-resumo { display: flex; justify-content: space-between; color: var(--text2); font-size: 13px; border-top: 1px solid var(--border); padding-top: 10px; }
.grade-atalhos.tres { grid-template-columns: repeat(3, 1fr); }
.atalho.compacto { flex-direction: column; text-align: center; gap: 6px; padding: 12px 6px; }
.atalho.compacto strong { font-size: 13px; }
.cartao-topo.solto { padding: 4px 2px 0; align-items: center; }
.cartao-topo.solto h2 { font-size: 17px; margin: 0; }
.lista-plantoes, .lista-lotes { display: flex; flex-direction: column; gap: 10px; }
.plantao { display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; border: 0; background: var(--surface); color: var(--text);
  border-radius: 18px; padding: 12px 14px 12px 0; box-shadow: var(--sombra-cartao); overflow: hidden; }
.plantao-cor { align-self: stretch; width: 6px; border-radius: 0 4px 4px 0; flex: none; }
.plantao-textos { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.plantao-topo { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.plantao small { color: var(--text2); font-size: 13px; }
.etiqueta { font-size: 11px; font-weight: 700; background: var(--surface2); color: var(--text2); border-radius: 8px; padding: 2px 8px; }
.chip-status { font-size: 11px; font-weight: 800; border-radius: 8px; padding: 3px 8px; white-space: nowrap; flex: none; }
.chip-status.ok { background: var(--success-c); color: var(--success); }
.chip-status.erro { background: var(--error-c); color: var(--error); }
.chip-status.alerta { background: var(--warning-c); color: var(--warning); }
.chip-status.neutro { background: var(--surface2); color: var(--text2); }
.cores { display: flex; gap: 10px; flex-wrap: wrap; }
.cor { width: 34px; height: 34px; border-radius: 17px; border: 3px solid transparent; }
.cor.ativa { border-color: var(--text); }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { border: 0; border-radius: 16px; padding: 8px 12px; background: var(--surface2); color: var(--text); font-size: 14px; font-weight: 600; }
.chip.ativo { background: var(--primary); color: var(--on-primary); }
.lista-importar { display: flex; flex-direction: column; }
.item-importar { display: flex; gap: 12px; align-items: center; padding: 10px 2px; border-bottom: 1px solid var(--border); }
.item-importar input { width: 22px; height: 22px; flex: none; }
.item-importar span { display: flex; flex-direction: column; }
.item-importar small { color: var(--text2); }
.numero-grande small, .numero small { color: var(--text2); font-size: 13px; display: block; }
.numero-grande strong { font-size: 32px; font-weight: 800; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.grade-numeros { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 14px; }
.numero strong { font-size: 17px; font-variant-numeric: tabular-nums; }
.numero.ok strong { color: var(--success); }
.numero.alerta strong { color: var(--warning); }
.numero.erro strong { color: var(--error); }
.lote-topo { display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.lote-valores { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 14px; font-variant-numeric: tabular-nums; }
.tres-colunas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.renal { white-space: pre-wrap; background: var(--bg); border-radius: 12px; padding: 10px 12px; font-size: 14px; }
.resultado-interacoes { display: flex; flex-direction: column; gap: 12px; }
.interacao { border-top: 1px solid var(--border); padding-top: 10px; display: flex; flex-direction: column; gap: 4px; }
.interacao p { margin: 0; }
.item-passagem { display: flex; align-items: center; gap: 4px; border-bottom: 1px solid var(--border); }
.item-passagem:last-child { border-bottom: 0; }
.item-passagem .item-consulta { border-bottom: 0; flex: 1; }
.subtitulo-secao { font-size: 15px; margin: 8px 4px 0; }
@media (max-width: 360px) { .aba { font-size: 11px; } .aba-pilula { width: 48px; } .tres-colunas { grid-template-columns: 1fr 1fr; } }
.cartao-botao { border: 0; text-align: left; color: var(--text); width: 100%; font: inherit; gap: 6px; }
.rotulo-plantao { font-size: 12px; font-weight: 800; letter-spacing: .06em; color: var(--link); }
.rotulo-plantao.andamento { color: var(--success); }
.nome-plantao { font-size: 17px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.progresso-plantao { display: block; height: 8px; border-radius: 4px; background: var(--surface2); overflow: hidden; margin-top: 4px; }
.progresso-plantao span { display: block; height: 100%; background: var(--success); border-radius: 4px; }
.miniaturas { display: flex; gap: 8px; overflow-x: auto; }
.miniatura { height: 120px; width: auto; max-width: 160px; object-fit: cover; border-radius: 10px; border: 1px solid var(--border); }

/* ---------- Fase 2b: como o Android (cabeçalho do mês, destaque, gráfico) ---------- */
.espaco { flex: 1; }
.botao-mais { width: 44px; height: 44px; border-radius: 22px; border: 0; background: var(--primary); color: var(--on-primary); display: grid; place-items: center; margin-left: 8px; flex: none; }
.botao-filtro { height: 44px; border-radius: 22px; padding: 0 16px 0 12px; background: var(--surface); box-shadow: inset 0 0 0 1.5px var(--border); }
.botao-filtro.ativo { box-shadow: none; }
.chips-aplicados { display: flex; gap: 8px; overflow-x: auto; padding: 8px 0 2px; align-items: center; scrollbar-width: none; }
.chip-aplicado { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 2px 0 12px; border-radius: 18px; background: var(--primary-c); color: var(--on-primary-c); font-size: 13px; font-weight: 700; white-space: nowrap; flex: none; }
.chip-x { width: 32px; height: 32px; border-radius: 16px; border: 0; background: transparent; color: inherit; display: grid; place-items: center; }
.vazio-filtros { display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; padding: 12px 0; color: var(--on-primary-c); }
.vazio-filtros strong { color: var(--text); font-size: 18px; }
.cal-ponto { width: 7px; height: 7px; border-radius: 4px; display: inline-block; flex: none; }
.cal-ponto.anel { background: transparent; box-shadow: inset 0 0 0 2px var(--warning); }
.cal-ponto.apagado { opacity: .22; }
.legenda { display: flex; flex-wrap: wrap; gap: 6px 14px; border-top: 1px solid var(--border); padding-top: 10px; margin-top: 4px; }
.item-legenda { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text2); }
.destaque { background: var(--primary-c); color: var(--on-primary-c); border-radius: 24px; padding: 18px; display: flex; flex-direction: column; gap: 4px; }
.destaque-titulo { font-size: 13px; font-weight: 700; }
.destaque-valor { font-size: 28px; font-weight: 800; letter-spacing: -0.02em; margin-top: 8px; font-variant-numeric: tabular-nums; }
.destaque-sub { font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; }
.destaque-linha { font-size: 13px; }
.destaque-linha.forte { font-weight: 700; }
.barra-fixos { display: block; height: 10px; border-radius: 5px; background: var(--surface); overflow: hidden; margin-top: 12px; }
.barra-fixos span { display: block; height: 100%; background: var(--primary); }
.destaque-legenda { display: flex; justify-content: space-between; font-size: 13px; font-weight: 700; }
.turnos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 10px; }
.turno { background: var(--surface); color: var(--text); border-radius: 16px; padding: 10px 6px; display: flex; flex-direction: column; align-items: center; }
.turno strong { font-size: 18px; font-weight: 800; }
.turno small { color: var(--text2); font-size: 12px; }
.caixa-situacao { background: var(--surface); color: var(--text); border-radius: 16px; padding: 14px; margin-top: 12px; display: flex; flex-direction: column; gap: 8px; }
.barra-situacao { display: flex; height: 12px; border-radius: 6px; overflow: hidden; background: var(--surface2); }
.barra-situacao span { display: block; height: 100%; }
.legenda-situacao { display: grid; grid-template-columns: auto 1fr; column-gap: 8px; align-items: center; font-size: 14px; font-variant-numeric: tabular-nums; }
.legenda-situacao small { grid-column: 2; color: var(--text2); font-size: 12px; }
.grafico { width: 100%; height: auto; }
.grafico-base { stroke: var(--border); stroke-width: 1; }
.grafico-mes { cursor: pointer; }
.grafico-mes text { fill: var(--text2); font-size: 12px; font-family: inherit; }
.grafico-mes.sel text { fill: var(--text); font-weight: 800; }
.secao-plantoes { display: flex; flex-direction: column; gap: 10px; }
.secao-plantoes .cartao-topo small { color: var(--text2); font-size: 13px; }
.lista-plantoes.apagada .plantao { opacity: .6; }
.plantao.a-definir { box-shadow: inset 0 0 0 1.5px var(--warning); }
.plantao-topo { width: 100%; }
.plantao-valor { font-variant-numeric: tabular-nums; }
.plantao-hosp { font-weight: 700; font-size: 14px; }
.chip-hoje { font-size: 11px; font-weight: 800; letter-spacing: .06em; background: var(--primary); color: var(--on-primary); border-radius: 10px; padding: 3px 8px; }
.item-lista .icone { color: var(--primary); flex: none; }
.botao-filtro { white-space: nowrap; flex: none; }
.chip { display: inline-flex; align-items: center; gap: 6px; }
@media (max-width: 380px) { .mes-nome { font-size: 15px; } .botao-filtro { padding: 0 12px 0 10px; } }

/* ---------- mascote e assistente (Fase 4) ---------- */
.mascote-vista { display: block; image-rendering: pixelated; image-rendering: crisp-edges; }
/* faixa do rodapé onde o cachorrinho vive (Mascote.Cena, Android 10.x): só o cachorro e o balão recebem toques */
.mascote-cena {
  position: fixed; z-index: 25; left: var(--seg-esq); right: var(--seg-dir); bottom: calc(72px + var(--seg-base));
  pointer-events: none; overflow: visible;
}
.mascote-cena canvas { display: block; image-rendering: pixelated; image-rendering: crisp-edges; }
.mascote-toque {
  position: absolute; pointer-events: auto; border: 0; padding: 0; margin: 0; background: transparent; border-radius: 10px;
  touch-action: manipulation; -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; -webkit-tap-highlight-color: transparent;
}
.mascote-toque:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.mascote-toque[hidden], .mascote-cena[hidden], html.teclado .mascote-cena, html.coberto .mascote-cena { display: none; }
.assist-pet { display: block; font-size: 11px; }
.assist-som { font-size: 18px; }
.mascote-icone { width: 40px; height: 40px; border-radius: 20px; background: var(--primary-c); display: grid; place-items: center; flex: none; }

.assist-fundo {
  position: fixed; inset: 0; z-index: 40; background: rgba(0, 0, 0, .4);
  display: flex; align-items: flex-end; justify-content: center;
  padding: calc(56px + var(--seg-topo)) calc(8px + var(--seg-dir)) calc(8px + var(--seg-base)) calc(8px + var(--seg-esq));
  animation: aparecer .2s ease-out;
}
@keyframes aparecer { from { opacity: 0; } }
.assist-fundo.saindo { opacity: 0; transition: opacity .2s; }
.assist-fundo.saindo .assist-painel { transform: scale(.06); opacity: 0; transition: transform .22s ease-in, opacity .22s; }
.assist-painel {
  width: 100%; max-width: 560px; height: 100%; max-height: 760px; min-height: 0;
  background: var(--surface); color: var(--text); border-radius: 28px; box-shadow: 0 10px 30px rgba(0, 0, 0, .25);
  display: flex; flex-direction: column; overflow: hidden;
  transform-origin: 100% 100%; animation: expandir .3s cubic-bezier(.2, 1.2, .4, 1);
}
@keyframes expandir { from { transform: scale(.06); opacity: 0; } }
.assist-topo { display: flex; align-items: center; gap: 10px; padding: 12px 6px 4px 16px; }
.assist-nomes { flex: 1; display: flex; flex-direction: column; }
.assist-nomes strong { font-size: 19px; font-weight: 800; }
.assist-nomes small { color: var(--text2); font-size: 13px; }
.assist-chat { flex: 1; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 0 16px 8px; display: flex; flex-direction: column; gap: 8px; }
.assist-linha { display: flex; gap: 6px; align-items: flex-start; margin-right: 24px; }
.assist-linha .mascote-vista { flex: none; margin-top: 4px; }
.assist-bolha {
  margin: 0; padding: 10px 14px; border-radius: 16px; font-size: 15px; line-height: 1.4;
  white-space: pre-line; overflow-wrap: anywhere; -webkit-user-select: text; user-select: text;
  background: var(--surface2); border: 1px solid var(--border);
}
.assist-bolha.usuario { align-self: flex-end; margin-left: 40px; background: var(--primary-c); color: var(--on-primary-c); border: 0; }
.assist-cartao { border: 1.5px solid var(--primary); border-radius: 16px; padding: 12px 14px; display: flex; flex-direction: column; gap: 4px; }
.assist-cartao.perigo { border-color: var(--error); }
.assist-detalhe { margin: 0 0 6px; color: var(--text2); font-size: 14px; white-space: pre-line; }
.assist-botoes { display: flex; gap: 6px; }
.assist-botoes .botao { flex: 1; min-width: 0; }
.assist-botoes.usado { opacity: .4; }
.assist-acao { align-self: flex-start; }
.assist-entrada { display: flex; gap: 8px; align-items: center; padding: 8px 16px 4px; }
.assist-campo {
  flex: 1; min-width: 0; font: inherit; font-size: 16px; padding: 11px 14px; border-radius: 22px;
  border: 1px solid var(--border); background: var(--surface); color: var(--text);
}
.assist-mic, .assist-enviar { width: 44px; height: 44px; border-radius: 22px; border: 0; display: grid; place-items: center; flex: none; }
.assist-mic { background: var(--primary); color: var(--on-primary); }
.assist-mic.gravando { background: var(--error); color: #fff; }
.assist-enviar { background: var(--primary-c); color: var(--on-primary-c); }
.assist-rodape { padding: 2px 16px 10px; }
.assist-seletor { border: 0; border-radius: 14px; padding: 6px 12px; font: inherit; font-size: 13px; font-weight: 700; background: var(--primary-c); color: var(--on-primary-c); }
.assist-opcoes { margin: 0 16px 12px; border: 1px solid var(--border); border-radius: 16px; overflow: hidden; }
.assist-opcoes[hidden] { display: none; }
.assist-opcao { display: flex; align-items: center; gap: 8px; width: 100%; padding: 10px 14px; border: 0; background: transparent; color: var(--text); text-align: left; font: inherit; }
.assist-opcao.ativa { color: var(--primary); }
.assist-opcao .item-textos small { color: var(--text2); }
@media (prefers-reduced-motion: reduce) {
  .assist-fundo, .assist-painel { animation: none; }
  .assist-fundo.saindo, .assist-fundo.saindo .assist-painel { transition: none; }
}

/* ---------- plantões 10.x: horário no dia, animação, seleção, ano, formulário temático ---------- */
.atalhos-cal { display: flex; gap: 8px; margin-top: 10px; }
.atalhos-cal .botao:first-child { flex: 1; }
.botao.contorno { background: transparent; color: var(--text); box-shadow: inset 0 0 0 1.5px var(--border); gap: 6px; }
.botao.contorno .icone { color: var(--primary); }
.cal-dia { display: flex; flex-direction: column; align-items: center; gap: 2px; min-height: 52px; }
.cal-horas { display: flex; flex-direction: column; gap: 2px; width: 100%; padding: 0 2px; }
.cal-hora { --cor: var(--text2); font-size: 9px; font-weight: 700; line-height: 1.15; border-radius: 5px; padding: 2px 1px; white-space: nowrap;
  overflow: hidden; text-overflow: clip; color: var(--cor); background: color-mix(in srgb, var(--cor) 14%, transparent); font-variant-numeric: tabular-nums; }
:root[data-escuro="1"] .cal-hora { color: color-mix(in srgb, var(--cor) 34%, #fff); background: color-mix(in srgb, var(--cor) 25%, transparent); }
.cal-hora.apagado { opacity: .3; }
.cal-mais { font-size: 9px; font-weight: 700; color: var(--text2); }
.cal-num.girar { animation: girar-num .48s cubic-bezier(.4, 0, .2, 1); }
@keyframes girar-num { from { transform: perspective(300px) rotateY(0); } to { transform: perspective(300px) rotateY(360deg); } }
.plantao.entrar-girando { transform-origin: top center; animation: entrar-girando .52s cubic-bezier(.34, 1.4, .64, 1) var(--atraso, 0ms) both; }
@keyframes entrar-girando { from { transform: perspective(800px) rotateX(-85deg); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .cal-num.girar, .plantao.entrar-girando { animation: none; } }
.plantao.selecionado { box-shadow: inset 0 0 0 2px var(--primary); background: var(--primary-c); }
.plantao { -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; }
.barra-selecao { position: sticky; top: calc(4px + var(--seg-topo)); z-index: 15; background: var(--primary); color: var(--on-primary);
  border-radius: 20px; padding: 6px 10px 10px 6px; box-shadow: 0 6px 18px rgba(0, 0, 0, .2); margin-bottom: 10px; }
.barra-sel-topo { display: flex; align-items: center; gap: 6px; }
.barra-sel-topo strong { flex: 1; font-variant-numeric: tabular-nums; }
.barra-sel-topo .botao-icone { color: var(--on-primary); }
.botao.contorno-claro { background: transparent; color: var(--on-primary); box-shadow: inset 0 0 0 1.5px var(--on-primary); min-height: 40px; padding: 0 12px; }
.barra-sel-acoes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 6px; margin-left: 4px; }
.barra-sel-acoes button { min-height: 44px; border: 0; border-radius: 14px; background: var(--on-primary); color: var(--primary);
  font: inherit; font-weight: 700; font-size: 14px; display: flex; align-items: center; justify-content: center; gap: 6px; }
.barra-sel-acoes button.perigo { color: var(--error); }
.resumo-massa { margin: 0; padding: 10px 14px; border-radius: 12px; background: var(--primary-c); color: var(--on-primary-c); font-weight: 700; }

.mes-grade { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; gap: 2px; }
.mg-semana { font-size: 12px; font-weight: 700; color: var(--text2); padding: 4px 0; }
.mg-dia { border: 0; background: transparent; color: var(--text2); display: flex; flex-direction: column; align-items: center; padding: 2px 0; min-height: 44px; font: inherit; }
.mg-dia.com { color: var(--text); font-weight: 700; }
.mg-num { width: 32px; height: 32px; border-radius: 16px; display: grid; place-items: center; font-variant-numeric: tabular-nums; }
.mg-dia.hoje .mg-num { box-shadow: inset 0 0 0 1.5px var(--primary); color: var(--primary); font-weight: 700; }
.mg-dia.sel .mg-num { background: var(--primary); color: var(--on-primary); }
.mg-pontos { display: flex; gap: 3px; min-height: 5px; }
.mg-ponto { width: 5px; height: 5px; border-radius: 3px; }
.mes-grade.mini { gap: 0; }
.mes-grade.mini .mg-semana { font-size: 8px; padding: 1px 0; }
.mes-grade.mini .mg-dia { min-height: 0; padding: 0; font-size: 9px; }
.mes-grade.mini .mg-num { width: 16px; height: 16px; border-radius: 8px; }
.mes-grade.mini .mg-ponto { width: 3px; height: 3px; }
.mes-grade.mini .mg-pontos { gap: 1px; min-height: 3px; }
.grade-ano { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px 8px; }
@media (min-width: 600px) { .grade-ano { grid-template-columns: repeat(4, 1fr); } }
.mes-do-ano { background: var(--surface); border-radius: 14px; padding: 6px 4px; box-shadow: var(--sombra-cartao); min-width: 0; }
.mes-do-ano-titulo { border: 0; background: transparent; color: var(--text); font: inherit; font-weight: 800; font-size: 13px; padding: 2px 4px 4px; text-transform: capitalize; }
.nav-ano { display: flex; align-items: center; justify-content: center; gap: 16px; margin: 4px 0 12px; }
.nav-ano strong { font-size: 20px; font-variant-numeric: tabular-nums; }
.seletor-meses { max-height: 58dvh; overflow-y: auto; }
.seletor-mes { margin: 14px 4px 2px; font-size: 16px; }

.dialogo-form-plantao { padding-top: 0; overflow: hidden; }
.dialogo-form-plantao .dialogo-corpo { margin: 0 -16px; padding: 0 0 8px; }
.form-plantao { display: flex; flex-direction: column; }
.form-cab { padding: 18px 20px 16px; border-radius: 22px 22px 0 0; display: flex; flex-direction: column; gap: 4px; }
.form-topo { display: flex; align-items: center; gap: 6px; }
.form-titulo { flex: 1; font-size: 22px; font-weight: 800; }
.form-topo-bt { border: 0; color: inherit; font: inherit; font-weight: 700; font-size: 13px; min-height: 44px; padding: 0 12px; border-radius: 22px;
  display: inline-flex; align-items: center; gap: 6px; }
.form-resumo { font-size: 14px; font-variant-numeric: tabular-nums; padding-bottom: 10px; }
.segmentos-form { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; padding: 3px; border-radius: 16px; }
.segmento-form { border: 0; background: transparent; min-height: 44px; border-radius: 13px; font: inherit; font-weight: 800; font-size: 15px; }
.secao-form { padding: 14px 16px 4px; }
.secao-form[hidden] { display: none; }
.secao-form-titulo { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; font-size: 16px; }
.secao-form-corpo { display: flex; flex-direction: column; gap: 8px; }
.fluxo-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip-form { min-height: 44px; min-width: 44px; padding: 6px 12px; border-radius: 14px; border: 1.5px solid var(--border); background: var(--surface);
  color: var(--text); font: inherit; font-weight: 700; font-size: 14px; }
.chip-form.marcado { background: var(--primary); color: var(--on-primary); border-color: var(--primary); }
.chip-duas-linhas { display: flex; flex-direction: column; line-height: 1.2; }
.chip-duas-linhas small { font-size: 11px; font-weight: 600; opacity: .85; font-variant-numeric: tabular-nums; }
.campo-data { display: flex; align-items: center; justify-content: space-between; min-height: 48px; padding: 0 14px; border-radius: 12px;
  border: 1px solid var(--border); background: var(--surface); color: var(--text); font: inherit; font-size: 16px; text-align: left; }
.campo-data .icone { color: var(--text2); }
.linha-cada { display: flex; align-items: center; gap: 10px; }
.linha-cada[hidden], .caixa-previa[hidden], .pergunta-regime[hidden] { display: none; }
.bt-redondo { width: 44px; height: 44px; border-radius: 22px; border: 1.5px solid var(--border); background: var(--surface); color: var(--text); font-size: 20px; font-weight: 700; }
.num-cada { min-width: 28px; text-align: center; font-size: 18px; font-variant-numeric: tabular-nums; }
.caixa-previa, .caixa-calculo, .caixa-recebimento { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; border-radius: 14px;
  border: 1px solid var(--border); background: var(--surface2); }
.prev-datas { font-size: 13px; font-variant-numeric: tabular-nums; }
.caixa-recebimento .ok { color: var(--success); }
.caixa-calculo small { color: var(--text2); font-size: 12px; margin-bottom: 4px; }
.linha-valor { display: flex; justify-content: space-between; gap: 10px; font-size: 14px; color: var(--text2); font-variant-numeric: tabular-nums; }
.linha-valor.forte { color: var(--text); font-weight: 800; }
.pergunta-regime { display: flex; flex-direction: column; gap: 6px; }
.opcoes-radio { display: flex; flex-direction: column; }
.opcoes-radio.lado { flex-direction: row; flex-wrap: wrap; gap: 4px 14px; }
.linha-radio, .linha-check { display: flex; align-items: center; gap: 10px; min-height: 44px; font-size: 15px; }
.linha-radio input, .linha-check input { width: 20px; height: 20px; accent-color: var(--primary); }
input.com-erro, textarea.com-erro { box-shadow: 0 0 0 2px var(--error); }
[hidden] { display: none !important; }
.cal-ponto.grande { width: 16px; height: 16px; border-radius: 8px; }
.segmentos.quatro { grid-template-columns: repeat(4, 1fr); margin-bottom: 10px; }
.linha-item { display: flex; align-items: center; gap: 4px; }
.linha-item .item-ajuste { flex: 1; min-width: 0; }
.destaque-link { border: 0; background: transparent; color: inherit; font: inherit; font-size: 13px; font-weight: 700; display: inline-flex; align-items: center; gap: 6px; padding: 6px 0 2px; text-align: left; }
.aviso-forte { color: var(--warning); font-weight: 700; font-size: 13px; margin: 8px 0 0; }
.mes-grade.mini .mg-dia, .mes-grade.mini .mg-vazio { height: 21px; }
/* a faixa do mascote não cobre o fim da página (Nobert: "2 consultas" no Início) */
.conteudo { padding-bottom: calc(150px + var(--seg-base)); }
