/* ==========================================================================
   AGENDA INTELIGENTE (02/10/2026) — js/agenda.js
   --------------------------------------------------------------------------
   Identidade pedida pelo dono para o módulo: fundo PRETO ABSOLUTO; texto,
   ícones, bordas translúcidas e destaques em DOURADO #FFD700 e AMARELO
   CARAMELO #D4A373; morfologia "Vidro Líquido" (iOS 27) — desfoque, reflexo especular nítido
   no alto e borda translúcida. FORMA (pedido do dono, 02/10/2026, 2ª rodada):
   quadrada, com os cantos LEVEMENTE arredondados — uma escala única de raios
   simétricos (--ag-raio-*), nada de contorno orgânico de gota.

   TUDO aqui mora sob `.ag-modulo` (a tela) ou `.ag-overlay` (as janelas,
   filhas diretas do <body> com `portal-overlay`, senão a regra do tema
   `.lg-ambiente > *:not(.portal-overlay)` as rebaixa e elas somem). Nenhuma
   regra alcança outro módulo.

   DESEMPENHO — a lição de 25/09/2026 (lista-pacientes-rolagem): o engasgo do
   ERP era backdrop-filter em milhares de botões. Aqui o desfoque (e a
   refração SVG #lg-refracao, quando o navegador a suporta) só existe em
   contêineres GRANDES e poucos: cabeçalho, gaveta, palco da grade, modais,
   botão Adicionar. Evento da grade, célula, chip e linha de tabela são
   vidro PLANO (película + borda), sem filtro nenhum. Nenhuma animação
   infinita.

   TIPOGRAFIA — corpo na fonte do ecossistema (Urbanist, que o ERP já
   carrega, + sans do sistema); "Quiche Sans" nos botões, destaques e
   títulos, como o pedido manda. A Quiche Sans é comercial e NÃO tem arquivo
   no projeto: o @font-face abaixo só a usa se estiver instalada no
   computador (local()), sem pedir nada à rede — onde não está, a Urbanist
   assume sem erro no console.
   ========================================================================== */

@font-face {
  font-family: "Quiche Sans";
  src: local("Quiche Sans"), local("QuicheSans-Medium"), local("Quiche Sans Medium"), local("QuicheSans-Regular");
  font-display: swap;
}

.ag-modulo,
.ag-overlay {
  --ag-preto: #000000;
  --ag-ouro: #FFD700;
  --ag-caramelo: #D4A373;
  --ag-liga: linear-gradient(135deg, #FFD700 0%, #EBC35A 48%, #D4A373 100%);
  --ag-texto: #F5EFE6;
  --ag-texto-suave: rgba(245, 239, 230, 0.72);
  --ag-texto-apagado: rgba(245, 239, 230, 0.48);
  --ag-borda: rgba(212, 163, 115, 0.40);
  --ag-borda-sutil: rgba(212, 163, 115, 0.20);
  --ag-borda-forte: rgba(255, 215, 0, 0.78);
  --ag-pelicula: rgba(255, 255, 255, 0.045);
  --ag-pelicula-forte: rgba(255, 255, 255, 0.085);
  --ag-fosco: blur(22px) saturate(165%);
  --ag-perigo: #F07070;
  /* Raios: quadrado com cantos levemente arredondados, iguais nos 4 cantos. */
  --ag-raio-xs: 4px;   /* evento da grade, selo pequeno */
  --ag-raio-sm: 6px;   /* chip, selo, campo pequeno */
  --ag-raio-md: 8px;   /* botão, campo, item de menu */
  --ag-raio-lg: 12px;  /* painel, gaveta, cartão */
  --ag-raio-xl: 14px;  /* janela (modal) */
  /* nomes antigos mantidos (o js e as regras abaixo usam), agora quadrados */
  --ag-gota-1: var(--ag-raio-lg);
  --ag-gota-2: var(--ag-raio-lg);
  --ag-gota-3: var(--ag-raio-lg);
  --ag-gota-janela: var(--ag-raio-xl);
  --ag-gota-botao: var(--ag-raio-md);
  --ag-gota-pilula: var(--ag-raio-md);
  --ag-gota-ev: var(--ag-raio-xs);
  --ag-fonte: "Urbanist", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --ag-fonte-luxo: "Quiche Sans", "Urbanist", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --ag-hora: 64px;
  color: var(--ag-texto);
  font-family: var(--ag-fonte);
  font-variant-numeric: tabular-nums;
}

/* O item do menu, na cor da marca (mesmo molde de liquid-glass-erp.css, seção do menu). */
.menu-item[data-view="agenda"] { --mi-cor: #FFD700; --mi-borda: rgba(255, 215, 0, 0.46); --mi-halo: rgba(255, 215, 0, 0.11); }

/* Selo da situação fora do módulo (ficha do paciente, no #modal): tokens mínimos. */
.ag-selo { font-family: "Urbanist", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }

/* `hidden` vence o `display` próprio dos componentes (flex/grid) — sem isto a
   legenda, os avisos e os campos condicionais nunca se escondiam. */
.ag-modulo [hidden], .ag-overlay [hidden] { display: none !important; }

/* O fundo da tela é o preto absoluto (o #view do tema é translúcido). */
.view:has(> .ag-modulo),
body:has(.ag-modulo) .content { background: #000000; }
.ag-modulo { position: relative; display: flex; flex-direction: column; gap: 14px; min-width: 0; }

/* ─────────────────────────── vidro líquido ─────────────────────────── */
.ag-vidro {
  position: relative;
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.075) 0%, rgba(255, 255, 255, 0.025) 38%, rgba(212, 163, 115, 0.035) 100%);
  background-color: rgba(8, 8, 8, 0.62);
  -webkit-backdrop-filter: var(--ag-fosco);
  backdrop-filter: var(--ag-fosco);
  border: 1px solid var(--ag-borda);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.24),
    inset 0 -1px 0 rgba(212, 163, 115, 0.22),
    inset 0 0 22px rgba(255, 215, 0, 0.035),
    0 22px 60px rgba(0, 0, 0, 0.72);
  isolation: isolate;
}
/* Reflexo especular: o arco de luz nítido no alto do vidro. */
.ag-vidro::before {
  content: "";
  position: absolute;
  inset: 1px;
  border-radius: inherit;
  pointer-events: none;
  background:
    radial-gradient(70% 38% at 22% 0%, rgba(255, 255, 255, 0.30), rgba(255, 255, 255, 0) 60%),
    radial-gradient(40% 24% at 86% 100%, rgba(255, 215, 0, 0.10), rgba(255, 215, 0, 0) 70%);
  mix-blend-mode: screen;
  z-index: -1;
}
/* Onde o navegador refrata por SVG (liquid-glass.js marca a raiz), os poucos
   contêineres grandes distorcem levemente o que está atrás. */
.lg-refracao-svg .ag-refrata {
  -webkit-backdrop-filter: url(#lg-refracao) var(--ag-fosco);
  backdrop-filter: url(#lg-refracao) var(--ag-fosco);
}
.ag-plano {
  background: var(--ag-pelicula);
  border: 1px solid var(--ag-borda-sutil);
}
.ag-g1 { border-radius: var(--ag-gota-1); }
.ag-g2 { border-radius: var(--ag-gota-2); }
.ag-g3 { border-radius: var(--ag-gota-3); }

/* ─────────────────────────── tipografia ─────────────────────────── */
.ag-modulo h2, .ag-overlay h2, .ag-overlay h3, .ag-titulo-luxo {
  font-family: var(--ag-fonte-luxo);
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--ag-ouro);
  margin: 0;
}
.ag-rotulo { font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ag-caramelo); font-weight: 600; }
.ag-suave { color: var(--ag-texto-suave); }
.ag-apagado { color: var(--ag-texto-apagado); }
.ag-ouro { color: var(--ag-ouro); }
.ag-caramelo { color: var(--ag-caramelo); }

/* ─────────────────────────── botões ─────────────────────────── */
.ag-btn {
  font-family: var(--ag-fonte-luxo);
  font-size: 13.5px;
  font-weight: 600;
  color: var(--ag-ouro);
  background: rgba(255, 215, 0, 0.06);
  border: 1px solid var(--ag-borda);
  border-radius: var(--ag-gota-pilula);
  padding: 8px 15px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  line-height: 1.15;
  transition: background 0.16s ease, border-color 0.16s ease, color 0.16s ease, transform 0.16s ease;
  white-space: nowrap;
}
.ag-btn:hover { background: rgba(255, 215, 0, 0.12); border-color: var(--ag-borda-forte); }
.ag-btn:active { transform: translateY(1px) scale(0.99); }
.ag-btn:focus-visible, .ag-campo:focus-visible, .ag-ev:focus-visible, .ag-aba:focus-visible, .ag-chip:focus-visible {
  outline: 2px solid var(--ag-ouro);
  outline-offset: 2px;
}
.ag-btn[disabled], .ag-btn[aria-disabled="true"] { opacity: 0.45; cursor: not-allowed; }
.ag-btn-ouro {
  color: #0A0A0A;
  background: var(--ag-liga);
  border-color: rgba(255, 215, 0, 0.9);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55), 0 8px 22px rgba(255, 215, 0, 0.16);
}
.ag-btn-ouro:hover { background: linear-gradient(135deg, #FFE24D 0%, #F0CC66 48%, #DDB083 100%); }
.ag-btn-caramelo { color: var(--ag-caramelo); border-color: rgba(212, 163, 115, 0.6); background: rgba(212, 163, 115, 0.07); }
.ag-btn-perigo { color: var(--ag-perigo); border-color: rgba(240, 112, 112, 0.55); background: rgba(240, 112, 112, 0.06); }
.ag-btn-perigo:hover { background: rgba(240, 112, 112, 0.13); border-color: var(--ag-perigo); }
.ag-btn-icone { padding: 7px 9px; }
.ag-btn svg, .ag-ico { width: 16px; height: 16px; flex: none; }

/* O "Adicionar": botão de vidro dourado (quadrado, cantos suaves). */
.ag-gota-btn {
  position: relative;
  font-family: var(--ag-fonte-luxo);
  font-weight: 700;
  font-size: 14.5px;
  color: #0A0A0A;
  border: 1px solid rgba(255, 215, 0, 0.95);
  border-radius: var(--ag-gota-botao);
  padding: 11px 22px 11px 18px;
  background:
    radial-gradient(60% 55% at 30% 18%, rgba(255, 255, 255, 0.75), rgba(255, 255, 255, 0) 60%),
    var(--ag-liga);
  box-shadow:
    inset 0 -6px 14px rgba(140, 90, 30, 0.35),
    inset 0 2px 0 rgba(255, 255, 255, 0.6),
    0 14px 34px rgba(255, 215, 0, 0.22),
    0 0 0 4px rgba(255, 215, 0, 0.06);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.ag-gota-btn:hover { transform: translateY(-1px); box-shadow: inset 0 -6px 14px rgba(140, 90, 30, 0.35), inset 0 2px 0 rgba(255, 255, 255, 0.6), 0 16px 38px rgba(255, 215, 0, 0.3), 0 0 0 4px rgba(255, 215, 0, 0.1); }
.ag-gota-btn:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 3px; }

/* ─────────────────────────── campos ─────────────────────────── */
.ag-campo, .ag-modulo select, .ag-overlay select, .ag-overlay input[type="text"], .ag-overlay input[type="date"],
.ag-overlay input[type="time"], .ag-overlay input[type="number"], .ag-overlay input[type="search"], .ag-overlay textarea,
.ag-modulo input[type="search"], .ag-modulo input[type="text"], .ag-modulo input[type="date"] {
  font-family: var(--ag-fonte);
  font-size: 13.5px;
  color: var(--ag-texto);
  background: rgba(0, 0, 0, 0.55);
  border: 1px solid var(--ag-borda);
  border-radius: var(--ag-raio-sm);
  padding: 8px 11px;
  min-width: 0;
  outline: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.ag-overlay textarea { resize: vertical; min-height: 70px; width: 100%; box-sizing: border-box; }
.ag-modulo select:focus, .ag-overlay select:focus, .ag-overlay input:focus, .ag-overlay textarea:focus, .ag-modulo input:focus {
  border-color: var(--ag-ouro);
  box-shadow: 0 0 0 3px rgba(255, 215, 0, 0.14);
}
.ag-modulo select option, .ag-overlay select option { background: #0B0B0B; color: var(--ag-texto); }
.ag-overlay input::placeholder, .ag-modulo input::placeholder { color: var(--ag-texto-apagado); }
.ag-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 14px; }
.ag-form .ag-larga { grid-column: 1 / -1; }
.ag-f { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.ag-f > span:first-child { font-size: 11.5px; color: var(--ag-caramelo); letter-spacing: 0.04em; }
.ag-f input, .ag-f select, .ag-f textarea { width: 100%; box-sizing: border-box; }
.ag-contador { font-size: 11px; color: var(--ag-texto-apagado); text-align: right; }
.ag-alerta-campo { color: var(--ag-ouro); font-size: 11.5px; display: flex; gap: 5px; align-items: center; }
.ag-erro { color: #FF9C9C; font-size: 13px; min-height: 0; }
.ag-erro:not(:empty) { padding: 9px 12px; border: 1px solid rgba(240, 112, 112, 0.45); background: rgba(240, 112, 112, 0.08); border-radius: var(--ag-raio-sm); }
.ag-ok-caixa { padding: 9px 12px; border: 1px solid rgba(121, 226, 143, 0.45); background: rgba(121, 226, 143, 0.07); border-radius: var(--ag-raio-sm); color: #A8F0B6; font-size: 13px; }
.ag-check { display: flex; align-items: center; gap: 8px; cursor: pointer; font-size: 13px; padding: 4px 2px; min-height: 26px; }
.ag-check input { accent-color: #FFD700; width: 15px; height: 15px; margin: 0; }
.ag-kbd { font: 600 11px var(--ag-fonte); color: var(--ag-caramelo); border: 1px solid var(--ag-borda); border-radius: var(--ag-raio-xs); padding: 2px 6px; background: rgba(255,255,255,.04); }

/* ─────────────────────────── cabeçalho e busca ⌘K ─────────────────────────── */
.ag-cabeca {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  padding: 14px 18px;
  border-radius: var(--ag-gota-1);
}
.ag-cabeca-titulo { display: flex; flex-direction: column; gap: 2px; margin-right: 6px; }
.ag-cabeca-titulo h2 { font-size: 21px; }
.ag-busca { position: relative; display: flex; align-items: center; gap: 6px; flex: 1 1 380px; min-width: 0; }
.ag-busca-caixa {
  display: flex; align-items: center; gap: 6px; flex: 1; min-width: 0;
  border: 1px solid var(--ag-borda); border-radius: var(--ag-raio-lg);
  background: rgba(0, 0, 0, 0.6); padding: 3px 6px 3px 4px;
}
.ag-busca-caixa:focus-within { border-color: var(--ag-ouro); box-shadow: 0 0 0 3px rgba(255, 215, 0, 0.12); }
.ag-busca-caixa select { border: 0 !important; background: transparent !important; box-shadow: none !important; color: var(--ag-caramelo) !important; padding: 6px 4px !important; }
.ag-busca-caixa input { border: 0 !important; background: transparent !important; box-shadow: none !important; flex: 1; padding: 7px 4px !important; }
.ag-busca-resultados {
  position: absolute; top: calc(100% + 8px); left: 0; right: 0; z-index: 40;
  max-height: 380px; overflow: auto; padding: 8px;
  border-radius: var(--ag-gota-2);
  background-color: rgba(6, 6, 6, 0.94);
}
.ag-busca-item { display: flex; justify-content: space-between; gap: 10px; width: 100%; text-align: left; padding: 9px 11px; border-radius: var(--ag-raio-md); cursor: pointer; background: transparent; border: 1px solid transparent; color: var(--ag-texto); font: inherit; }
.ag-busca-item:hover, .ag-busca-item[aria-selected="true"] { background: rgba(255, 215, 0, 0.08); border-color: var(--ag-borda); }
.ag-busca-item small { color: var(--ag-texto-suave); }
/* Busca de paciente nos formulários (05/10/2026). `.ag-f select { width:100% }`
   valia também para o critério dentro da caixa e espremia o campo de texto a
   8 px: o clique caía no seletor e o campo "não respondia". Aqui o critério é
   estreito e o texto ocupa o resto; a regra geral dos outros campos fica. */
.ag-f > .ag-busca { flex: none; }
.ag-busca-caixa { cursor: text; }
.ag-busca-caixa > select, .ag-busca-caixa > input { margin: 0 !important; }
.ag-busca-caixa > select { flex: none; width: auto !important; max-width: 46%; cursor: pointer; }
.ag-busca-caixa > input { flex: 1 1 auto; width: auto !important; min-width: 0; }
.ag-busca-caixa > svg { flex: none; }
.ag-busca-caixa > input::-webkit-search-cancel-button { filter: grayscale(1) brightness(1.8) opacity(0.65); cursor: pointer; }
.ag-busca-caixa > .ag-pac-criterio { border-right: 1px solid var(--ag-borda) !important; border-radius: 0 !important; padding-right: 8px !important; }
.ag-busca-aviso { padding: 8px 10px; margin: 0; font-size: 12.5px; }
.ag-busca-item[disabled] { cursor: not-allowed; opacity: 0.55; }
.ag-pac-escolhido .ag-busca-caixa { border-color: rgba(255, 215, 0, 0.55); }
.ag-pac-escolhido [data-pac-info] { color: var(--ag-caramelo); }
.ag-cabeca-acoes { display: flex; align-items: center; gap: 8px; margin-left: auto; flex-wrap: wrap; }

.ag-menu {
  position: absolute; z-index: 45; min-width: 220px; padding: 7px;
  border-radius: var(--ag-gota-2);
  background-color: rgba(6, 6, 6, 0.95);
  display: flex; flex-direction: column; gap: 2px;
}
.ag-menu button { text-align: left; background: transparent; border: 1px solid transparent; color: var(--ag-texto); font: 600 13.5px var(--ag-fonte-luxo); padding: 10px 12px; border-radius: var(--ag-raio-md); cursor: pointer; display: flex; gap: 9px; align-items: center; }
.ag-menu button:hover, .ag-menu button:focus-visible { background: rgba(255, 215, 0, 0.09); border-color: var(--ag-borda); outline: none; }
.ag-menu button small { display: block; font: 400 11.5px var(--ag-fonte); color: var(--ag-texto-suave); }

/* ─────────────────────────── subabas ─────────────────────────── */
.ag-subabas { display: flex; gap: 8px; flex-wrap: wrap; }
.ag-aba {
  font: 600 13.5px var(--ag-fonte-luxo); color: var(--ag-caramelo);
  background: rgba(255, 255, 255, 0.03); border: 1px solid var(--ag-borda-sutil);
  padding: 9px 16px; border-radius: var(--ag-gota-pilula); cursor: pointer; display: inline-flex; gap: 8px; align-items: center;
}
.ag-aba:hover { border-color: var(--ag-borda); color: var(--ag-ouro); }
.ag-aba[aria-selected="true"] {
  color: #0A0A0A; background: var(--ag-liga); border-color: rgba(255, 215, 0, 0.9);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5);
}
.ag-aba .ag-num { font: 600 11px var(--ag-fonte); background: rgba(0,0,0,.35); color: inherit; border-radius: var(--ag-raio-xs); padding: 1px 7px; }

/* ─────────────────────────── layout da agenda ─────────────────────────── */
.ag-layout { display: grid; grid-template-columns: 268px minmax(0, 1fr); gap: 14px; align-items: start; }
.ag-layout.ag-sem-gaveta { grid-template-columns: minmax(0, 1fr); }
.ag-layout.ag-sem-gaveta .ag-gaveta { display: none; }
.ag-gaveta {
  border-radius: var(--ag-gota-2);
  padding: 14px 14px 18px;
  display: flex; flex-direction: column; gap: 12px;
  position: sticky; top: 10px;
  max-height: calc(100vh - 120px); overflow: auto;
  scrollbar-width: thin; scrollbar-color: rgba(212,163,115,.4) transparent;
}
.ag-palco { border-radius: var(--ag-gota-3); padding: 12px 14px 14px; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.ag-barra { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ag-barra .ag-periodo { font: 600 16.5px var(--ag-fonte-luxo); color: var(--ag-ouro); margin: 0 8px; flex: 1 1 auto; text-align: center; min-width: 160px; }
.ag-seg { display: inline-flex; border: 1px solid var(--ag-borda); border-radius: var(--ag-gota-pilula); overflow: hidden; }
.ag-seg button { font: 600 13px var(--ag-fonte-luxo); color: var(--ag-caramelo); background: transparent; border: 0; padding: 8px 13px; cursor: pointer; }
.ag-seg button + button { border-left: 1px solid var(--ag-borda-sutil); }
.ag-seg button[aria-pressed="true"] { background: var(--ag-liga); color: #0A0A0A; }

/* filtros da gaveta */
.ag-secao { border-top: 1px solid var(--ag-borda-sutil); padding-top: 9px; }
.ag-secao > button.ag-secao-cab {
  display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 8px;
  background: transparent; border: 0; color: var(--ag-ouro); font: 600 13.5px var(--ag-fonte-luxo); cursor: pointer; padding: 3px 0;
}
.ag-secao-cab .ag-conta { font: 600 11px var(--ag-fonte); color: var(--ag-caramelo); border: 1px solid var(--ag-borda); border-radius: var(--ag-raio-sm); padding: 1px 7px; }
.ag-secao-cab svg { transition: transform .2s ease; }
.ag-secao[data-aberta="0"] .ag-secao-corpo { display: none; }
.ag-secao[data-aberta="0"] .ag-secao-cab svg { transform: rotate(-90deg); }
.ag-secao-corpo { display: flex; flex-direction: column; gap: 1px; margin-top: 6px; max-height: 240px; overflow: auto; }
.ag-dot { width: 10px; height: 10px; border-radius: 50%; flex: none; display: inline-block; box-shadow: 0 0 0 2px rgba(0,0,0,.6), 0 0 8px currentColor; background: currentColor; }
.ag-chip {
  display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--ag-caramelo);
  border: 1px solid var(--ag-borda); background: rgba(212, 163, 115, 0.06);
  border-radius: var(--ag-raio-sm); padding: 4px 9px; cursor: default;
}
.ag-chip button { background: transparent; border: 0; color: inherit; cursor: pointer; padding: 0 2px; font-size: 14px; line-height: 1; }
.ag-chip-ouro { color: #0A0A0A; background: var(--ag-liga); border-color: transparent; font-weight: 600; }
.ag-chips { display: flex; flex-wrap: wrap; gap: 6px; }

/* mini-calendário */
.ag-mini { user-select: none; }
.ag-mini-cab { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.ag-mini-cab strong { font: 600 13.5px var(--ag-fonte-luxo); color: var(--ag-ouro); }
.ag-mini-cab button { background: transparent; border: 1px solid var(--ag-borda-sutil); color: var(--ag-caramelo); border-radius: var(--ag-raio-sm); width: 28px; height: 26px; cursor: pointer; }
.ag-mini-grade { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center; }
.ag-mini-grade span { font-size: 10.5px; color: var(--ag-texto-apagado); padding: 2px 0; }
.ag-mini-grade button {
  font: 500 12px var(--ag-fonte); color: var(--ag-texto); background: transparent; border: 1px solid transparent;
  border-radius: var(--ag-raio-sm); height: 27px; cursor: pointer; position: relative;
}
.ag-mini-grade button.fora { color: var(--ag-texto-apagado); }
.ag-mini-grade button.periodo { background: rgba(255, 215, 0, 0.09); }
.ag-mini-grade button.sel { background: var(--ag-liga); color: #0A0A0A; font-weight: 700; }
.ag-mini-grade button.hoje::after { content: ""; position: absolute; right: 3px; bottom: 3px; border: 4px solid transparent; border-right-color: var(--ag-ouro); border-bottom-color: var(--ag-ouro); }
.ag-mini-grade button.sel.hoje::after { border-right-color: #0A0A0A; border-bottom-color: #0A0A0A; }
.ag-mini-grade button:hover:not(.sel) { border-color: var(--ag-borda); }

/* legenda das 11 situações */
.ag-legenda { display: flex; flex-wrap: wrap; gap: 6px 14px; padding: 8px 10px; border-radius: var(--ag-raio-md); }
.ag-legenda span { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--ag-texto-suave); }
.ag-legenda .ag-ico { color: var(--ag-sit); width: 14px; height: 14px; }

/* ─────────────────────────── grade de horários (Dia/Semana) ─────────────────────────── */
.ag-tg { display: flex; flex-direction: column; min-width: 0; }
.ag-tg-rolo { overflow: auto; max-height: calc(100vh - 290px); min-height: 360px; border-radius: 0 0 var(--ag-raio-lg) var(--ag-raio-lg); scrollbar-width: thin; scrollbar-color: rgba(212,163,115,.45) transparent; overscroll-behavior: contain; }
.ag-tg-largura { min-width: 100%; }
.ag-tg-cab, .ag-tg-faixa, .ag-tg-corpo { display: grid; grid-template-columns: 58px repeat(var(--ag-cols), minmax(var(--ag-col-min, 110px), 1fr)); }
.ag-tg-cab { position: sticky; top: 0; z-index: 6; background: rgba(0, 0, 0, 0.92); border-bottom: 1px solid var(--ag-borda); }
.ag-tg-cab > div { padding: 8px 6px; text-align: center; font: 600 12.5px var(--ag-fonte-luxo); color: var(--ag-caramelo); border-left: 1px solid var(--ag-borda-sutil); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ag-tg-cab > div:first-child { border-left: 0; }
.ag-tg-cab > div.hoje { color: #0A0A0A; background: var(--ag-liga); border-radius: var(--ag-raio-md) var(--ag-raio-md) 0 0; }
.ag-tg-cab small { display: block; font: 400 11px var(--ag-fonte); color: inherit; opacity: .8; }
.ag-tg-faixa { border-bottom: 1px solid var(--ag-borda-sutil); background: #000000; position: sticky; top: 46px; z-index: 5; }
.ag-tg-faixa > div { min-height: 22px; padding: 3px 4px; border-left: 1px solid var(--ag-borda-sutil); display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ag-tg-faixa > div:first-child { border-left: 0; font-size: 10.5px; color: var(--ag-texto-apagado); justify-content: center; text-align: right; padding-right: 6px; }
.ag-feriado { font-size: 11px; color: #0A0A0A; background: rgba(212, 163, 115, 0.85); border-radius: var(--ag-raio-sm); padding: 2px 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ag-feriado.facultativo { background: rgba(212, 163, 115, 0.35); color: var(--ag-texto); }
.ag-tg-corpo { position: relative; }
.ag-tg-eixo { position: relative; }
.ag-tg-eixo span { position: absolute; right: 7px; transform: translateY(-50%); font-size: 11px; color: var(--ag-texto-apagado); }
.ag-tg-col {
  position: relative;
  border-left: 1px solid var(--ag-borda-sutil);
  /* linhas de hora (forte) e de 15 min (fraca): gradiente, não um nó por slot */
  background-image:
    linear-gradient(to bottom, rgba(212, 163, 115, 0.20) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(212, 163, 115, 0.07) 1px, transparent 1px);
  background-size: 100% var(--ag-hora), 100% calc(var(--ag-hora) / 4);
  cursor: cell;
  min-width: 0;
}
.ag-tg-col.hoje { background-color: rgba(255, 215, 0, 0.025); }
.ag-fora-horario { position: absolute; left: 0; right: 0; background: repeating-linear-gradient(135deg, rgba(255,255,255,0.025) 0 6px, transparent 6px 12px); pointer-events: none; }
.ag-agora { position: absolute; left: -1px; right: 0; height: 2px; background: var(--ag-ouro); box-shadow: 0 0 10px rgba(255, 215, 0, 0.7); z-index: 4; pointer-events: none; }
.ag-agora::before { content: ""; position: absolute; left: -5px; top: -4px; width: 10px; height: 10px; border-radius: 50%; background: var(--ag-ouro); }
.ag-comp {
  position: absolute; left: 2px; right: 2px; z-index: 2;
  border: 1px dashed rgba(212, 163, 115, 0.65);
  background: repeating-linear-gradient(135deg, rgba(212, 163, 115, 0.16) 0 7px, rgba(0, 0, 0, 0.35) 7px 14px);
  border-radius: var(--ag-gota-ev);
  color: var(--ag-caramelo); font-size: 11.5px; padding: 3px 6px; overflow: hidden; cursor: pointer; text-align: left; font-family: var(--ag-fonte);
}

/* o evento: vidro PLANO (sem filtro), cor da situação na borda e no ícone */
.ag-ev {
  --ag-sit: #FFD700;
  position: absolute; z-index: 3;
  display: flex; flex-direction: column; align-items: stretch; gap: 1px;
  text-align: left; overflow: hidden;
  padding: 3px 15px 3px 8px;   /* à direita: o ponto da cor da agenda não cobre o texto */
  border-radius: var(--ag-gota-ev);
  border: 1px solid color-mix(in srgb, var(--ag-sit) 55%, transparent);
  border-left: 3px solid var(--ag-sit);
  background:
    linear-gradient(100deg, color-mix(in srgb, var(--ag-sit) 26%, transparent), color-mix(in srgb, var(--ag-sit) 8%, rgba(0,0,0,.6)));
  background-color: rgba(0, 0, 0, 0.72);
  color: var(--ag-texto);
  font: 500 12px var(--ag-fonte);
  line-height: 1.25;
  cursor: grab;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14), 0 4px 12px rgba(0, 0, 0, 0.5);
  touch-action: manipulation;
  user-select: none;
}
.ag-ev:hover { z-index: 7; box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 0 0 1px var(--ag-sit), 0 8px 20px rgba(0,0,0,.6); }
.ag-ev .ag-ev-l1 { display: flex; gap: 5px; align-items: center; min-width: 0; white-space: nowrap; }
.ag-ev { container-type: inline-size; }
@container (max-width: 74px) { .ag-ev .ag-ev-l1 .ag-ico { display: none; } .ag-ev .ag-ev-l1 { gap: 3px; } }
.ag-ev .ag-ev-l1 .ag-ico { color: var(--ag-sit); width: 13px; height: 13px; }
.ag-ev .ag-ev-hora { font-weight: 700; color: var(--ag-ouro); font-variant-numeric: tabular-nums; }
.ag-ev .ag-ev-pac { overflow: hidden; text-overflow: ellipsis; font-weight: 600; }
.ag-ev .ag-ev-l2 { color: var(--ag-texto-suave); font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ag-ev .ag-ev-dot { position: absolute; top: 4px; right: 5px; width: 7px; height: 7px; border-radius: 50%; background: var(--ag-agenda, transparent); pointer-events: none; }
.ag-ev.cancelado { opacity: 0.55; }
.ag-ev.cancelado .ag-ev-pac { text-decoration: line-through; text-decoration-color: rgba(240,112,112,.8); }
.ag-ev.encaixe { border-style: dashed; border-left-style: solid; }
.ag-ev .ag-ev-redim { position: absolute; left: 0; right: 0; bottom: 0; height: 7px; cursor: ns-resize; }
.ag-ev.arrastando { opacity: 0.9; z-index: 20; cursor: grabbing; box-shadow: 0 0 0 2px var(--ag-ouro), 0 18px 40px rgba(0,0,0,.75); }
.ag-ev-fantasma { position: absolute; z-index: 21; pointer-events: none; border: 2px dashed var(--ag-ouro); background: rgba(255, 215, 0, 0.10); border-radius: var(--ag-gota-ev); }
.ag-ev-fantasma span { position: absolute; top: -20px; left: 0; font: 700 11.5px var(--ag-fonte); color: #0A0A0A; background: var(--ag-ouro); padding: 1px 7px; border-radius: var(--ag-raio-sm); white-space: nowrap; }

/* ─────────────────────────── visão Mês ─────────────────────────── */
.ag-mes { display: grid; grid-template-columns: repeat(var(--ag-cols, 7), minmax(0, 1fr)); border-top: 1px solid var(--ag-borda-sutil); border-left: 1px solid var(--ag-borda-sutil); }
.ag-mes-cab { padding: 7px; text-align: center; font: 600 12px var(--ag-fonte-luxo); color: var(--ag-caramelo); border-right: 1px solid var(--ag-borda-sutil); border-bottom: 1px solid var(--ag-borda); }
.ag-mes-dia { min-height: 104px; padding: 4px 5px 6px; border-right: 1px solid var(--ag-borda-sutil); border-bottom: 1px solid var(--ag-borda-sutil); display: flex; flex-direction: column; gap: 3px; min-width: 0; cursor: cell; }
.ag-mes-dia.fora { background: rgba(255,255,255,.015); }
.ag-mes-dia.fora .ag-mes-num { color: var(--ag-texto-apagado); }
.ag-mes-dia.hoje { background: rgba(255, 215, 0, 0.05); }
.ag-mes-num { align-self: flex-start; font: 600 12.5px var(--ag-fonte); color: var(--ag-texto); background: transparent; border: 0; cursor: pointer; padding: 1px 5px; border-radius: var(--ag-raio-xs); }
.ag-mes-dia.hoje .ag-mes-num { background: var(--ag-liga); color: #0A0A0A; }
.ag-mes-ev { --ag-sit: #FFD700; display: flex; gap: 4px; align-items: center; font: 500 11.5px var(--ag-fonte); color: var(--ag-texto); background: color-mix(in srgb, var(--ag-sit) 16%, rgba(0,0,0,.7)); border: 0; border-left: 3px solid var(--ag-sit); border-radius: var(--ag-raio-xs); padding: 2px 5px; text-align: left; cursor: pointer; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.ag-mes-ev b { color: var(--ag-ouro); }
.ag-mes-mais { align-self: flex-start; font: 600 11.5px var(--ag-fonte); color: var(--ag-caramelo); background: transparent; border: 0; cursor: pointer; padding: 1px 3px; text-decoration: underline; text-underline-offset: 2px; }

/* ─────────────────────────── listas e tabelas ─────────────────────────── */
.ag-tabela-rolo { overflow-x: auto; }
.ag-tabela { width: 100%; border-collapse: separate; border-spacing: 0 5px; font-size: 13px; }
.ag-tabela th { text-align: left; font: 600 11.5px var(--ag-fonte); letter-spacing: .06em; text-transform: uppercase; color: var(--ag-caramelo); padding: 4px 10px; white-space: nowrap; }
.ag-tabela td { padding: 9px 10px; background: var(--ag-pelicula); border-top: 1px solid var(--ag-borda-sutil); border-bottom: 1px solid var(--ag-borda-sutil); vertical-align: middle; }
.ag-tabela td:first-child { border-left: 1px solid var(--ag-borda-sutil); border-radius: var(--ag-raio-sm) 0 0 var(--ag-raio-sm); }
.ag-tabela td:last-child { border-right: 1px solid var(--ag-borda-sutil); border-radius: 0 var(--ag-raio-sm) var(--ag-raio-sm) 0; }
.ag-tabela tr:hover td { background: rgba(255, 215, 0, 0.05); }
.ag-tabela .ag-num-col { text-align: right; font-variant-numeric: tabular-nums; }
.ag-grupo-cab { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 16px 2px 4px; }
.ag-grupo-cab h3 { font-size: 15.5px; }
.ag-link { background: transparent; border: 0; color: var(--ag-ouro); cursor: pointer; font: inherit; padding: 0; text-decoration: underline; text-decoration-color: rgba(255,215,0,.35); text-underline-offset: 3px; text-align: left; }
.ag-wa { display: inline-flex; align-items: center; gap: 5px; color: #7BE3A0; text-decoration: none; font-size: 12.5px; border: 1px solid rgba(123,227,160,.4); border-radius: var(--ag-raio-sm); padding: 3px 9px; white-space: nowrap; }
.ag-wa:hover { background: rgba(123,227,160,.08); }
.ag-sit-select { --ag-sit: #FFD700; color: var(--ag-sit) !important; border-color: color-mix(in srgb, var(--ag-sit) 60%, transparent) !important; background: color-mix(in srgb, var(--ag-sit) 10%, rgba(0,0,0,.7)) !important; font-weight: 600; }
.ag-selo { --ag-sit: #FFD700; display: inline-flex; align-items: center; gap: 5px; font: 600 11.5px var(--ag-fonte); color: var(--ag-sit); border: 1px solid color-mix(in srgb, var(--ag-sit) 55%, transparent); background: color-mix(in srgb, var(--ag-sit) 10%, transparent); padding: 2px 8px; border-radius: var(--ag-raio-sm); white-space: nowrap; }
.ag-selo .ag-ico { width: 13px; height: 13px; }
.ag-vazio { text-align: center; padding: 44px 16px; color: var(--ag-texto-suave); display: flex; flex-direction: column; align-items: center; gap: 8px; }
.ag-vazio svg { width: 46px; height: 46px; color: rgba(212, 163, 115, 0.55); }
.ag-vazio strong { font: 600 16px var(--ag-fonte-luxo); color: var(--ag-ouro); }
.ag-paginas { display: flex; gap: 6px; align-items: center; justify-content: flex-end; flex-wrap: wrap; margin-top: 8px; font-size: 12.5px; color: var(--ag-texto-suave); }
.ag-paginas button { min-width: 32px; }
.ag-paginas button[aria-current="page"] { background: var(--ag-liga); color: #0A0A0A; }

/* barra de filtros das subabas (padrão "Filtrar → gaveta → chips") */
.ag-filtrobar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 12px 14px; border-radius: var(--ag-gota-1); }
.ag-cartao { border-radius: var(--ag-gota-3); padding: 14px 16px 16px; min-width: 0; }

/* ─────────────────────────── disponibilidade ─────────────────────────── */
.ag-primeira { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; padding: 16px 20px; border-radius: var(--ag-gota-3); }
.ag-primeira .ag-grande { font: 700 26px var(--ag-fonte-luxo); color: var(--ag-ouro); }
.ag-dias-vagas { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.ag-dia-vagas { padding: 11px 12px; border-radius: var(--ag-gota-2); }
.ag-dia-vagas h3 { font-size: 14px; margin-bottom: 7px; }
.ag-vagas { display: flex; flex-wrap: wrap; gap: 5px; }
.ag-vaga { font: 600 12px var(--ag-fonte); color: var(--ag-ouro); background: rgba(255, 215, 0, 0.06); border: 1px solid var(--ag-borda); border-left: 3px solid var(--ag-agenda, var(--ag-caramelo)); border-radius: var(--ag-raio-sm); padding: 4px 8px; cursor: pointer; }
.ag-vaga:hover { background: rgba(255, 215, 0, 0.14); border-color: var(--ag-ouro); }

/* alterações em massa: os dois blocos espelhados */
.ag-espelho { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ag-espelho > div { padding: 12px 14px; border-radius: var(--ag-gota-2); display: flex; flex-direction: column; gap: 9px; }
.ag-espelho dl { display: grid; grid-template-columns: auto 1fr; gap: 6px 12px; margin: 0; font-size: 13px; }
.ag-espelho dt { color: var(--ag-caramelo); }
.ag-espelho dd { margin: 0; }

/* ─────────────────────────── janelas (modais) ─────────────────────────── */
.ag-overlay {
  position: fixed; inset: 0; z-index: 65;
  display: grid; place-items: center; padding: 18px;
  background: radial-gradient(120% 90% at 50% 0%, rgba(0, 0, 0, 0.78), rgba(0, 0, 0, 0.94));
}
.ag-overlay.ag-gaveta-lateral { place-items: stretch end; padding: 0; }
.ag-overlay[hidden] { display: none; }
.ag-janela {
  width: min(960px, 100%); max-height: calc(100vh - 36px);
  display: flex; flex-direction: column;
  border-radius: var(--ag-gota-janela);
  background-color: rgba(5, 5, 5, 0.86);
  overflow: hidden;
}
.ag-janela.ag-media { width: min(720px, 100%); }
.ag-janela.ag-pequena { width: min(520px, 100%); }
.ag-gaveta-lateral .ag-janela { width: min(440px, 100%); max-height: 100vh; height: 100vh; border-radius: var(--ag-raio-xl) 0 0 var(--ag-raio-xl); }
.ag-janela-cab { display: flex; align-items: center; gap: 12px; padding: 18px 22px 12px; border-bottom: 1px solid var(--ag-borda-sutil); }
.ag-janela-cab h2 { font-size: 19px; flex: 1; min-width: 0; }
.ag-fechar { background: transparent; border: 1px solid var(--ag-borda-sutil); color: var(--ag-caramelo); width: 34px; height: 34px; border-radius: var(--ag-raio-md); cursor: pointer; font-size: 19px; line-height: 1; flex: none; }
.ag-fechar:hover { border-color: var(--ag-ouro); color: var(--ag-ouro); }
.ag-janela-corpo { padding: 16px 22px; overflow: auto; flex: 1; min-height: 0; scrollbar-width: thin; scrollbar-color: rgba(212,163,115,.4) transparent; }
.ag-janela-rodape { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 12px 22px 18px; border-top: 1px solid var(--ag-borda-sutil); }
.ag-janela-rodape .ag-esq { margin-right: auto; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

/* modal com abas LATERAIS (Adicionar agendamento) */
.ag-abas-lat { display: grid; grid-template-columns: 178px minmax(0, 1fr); gap: 18px; }
.ag-abas-lat nav { display: flex; flex-direction: column; gap: 6px; }
.ag-abas-lat nav button { text-align: left; }
.ag-painel[hidden] { display: none; }

/* abas SUBLINHADAS (Detalhes do agendamento) */
.ag-sublinhadas { display: flex; gap: 2px; border-bottom: 1px solid var(--ag-borda-sutil); overflow-x: auto; scrollbar-width: none; }
.ag-sublinhadas button { background: transparent; border: 0; border-bottom: 2px solid transparent; color: var(--ag-texto-suave); font: 600 13.5px var(--ag-fonte-luxo); padding: 10px 12px; cursor: pointer; white-space: nowrap; }
.ag-sublinhadas button:hover { color: var(--ag-caramelo); }
.ag-sublinhadas button[aria-selected="true"] { color: var(--ag-ouro); border-bottom-color: var(--ag-ouro); }

/* cabeçalho do paciente */
.ag-paciente { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding: 4px 0 14px; }
.ag-avatar {
  width: 58px; height: 58px; flex: none; display: grid; place-items: center;
  font: 700 20px var(--ag-fonte-luxo); color: #0A0A0A; background: var(--ag-liga);
  border-radius: var(--ag-raio-md);
  box-shadow: inset 0 2px 0 rgba(255,255,255,.55), 0 0 0 3px rgba(255,215,0,.12);
}
.ag-paciente-dados { flex: 1; min-width: 220px; display: flex; flex-direction: column; gap: 3px; }
.ag-paciente-dados strong { font: 700 18px var(--ag-fonte-luxo); color: var(--ag-texto); }
.ag-paciente-dados .ag-linha { display: flex; gap: 10px 16px; flex-wrap: wrap; font-size: 12.5px; color: var(--ag-texto-suave); }

.ag-detalhes { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 18px; padding-top: 14px; }
.ag-info { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 9px 12px; font-size: 13.5px; margin: 0; }
.ag-info dt { color: var(--ag-caramelo); }
.ag-info dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }

/* linha do tempo */
.ag-tempo { list-style: none; margin: 0; padding: 0 0 0 4px; display: flex; flex-direction: column; }
.ag-tempo li { --ag-sit: #FFD700; position: relative; padding: 0 0 16px 34px; }
.ag-tempo li::before { content: ""; position: absolute; left: 12px; top: 26px; bottom: 0; width: 2px; background: linear-gradient(var(--ag-sit), rgba(212,163,115,.12)); }
.ag-tempo li:last-child::before { display: none; }
.ag-tempo .ag-bola { position: absolute; left: 0; top: 0; width: 26px; height: 26px; display: grid; place-items: center; border-radius: var(--ag-raio-md); border: 1px solid var(--ag-sit); background: color-mix(in srgb, var(--ag-sit) 14%, #000); color: var(--ag-sit); }
.ag-tempo .ag-bola .ag-ico { width: 14px; height: 14px; }
.ag-tempo small { display: block; color: var(--ag-texto-suave); font-size: 12px; margin-top: 3px; }
.ag-tempo .ag-autor { display: inline-block; margin-top: 4px; font-size: 11.5px; color: var(--ag-caramelo); border: 1px solid var(--ag-borda-sutil); border-radius: var(--ag-raio-sm); padding: 2px 8px; }

/* auditoria: mudanças campo a campo */
.ag-mudancas { width: 100%; border-collapse: collapse; margin-top: 6px; font-size: 12.5px; }
.ag-mudancas td { padding: 4px 6px; border-top: 1px solid var(--ag-borda-sutil); vertical-align: top; }
.ag-mudancas td:first-child { color: var(--ag-caramelo); white-space: nowrap; }
.ag-mudancas .de { color: var(--ag-texto-apagado); text-decoration: line-through; text-decoration-color: rgba(240,112,112,.6); }
.ag-mudancas .para { color: var(--ag-texto); }
.ag-evento-aud { padding: 11px 13px; border-radius: var(--ag-raio-md); margin-bottom: 9px; }
.ag-evento-aud header { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; font-size: 12.5px; }

/* pergunta (confirmar arrastar etc.) */
.ag-pergunta p { margin: 0 0 10px; line-height: 1.5; }

/* conflitos */
.ag-conflitos { margin: 8px 0 0; padding-left: 18px; font-size: 12.5px; color: #FFC2C2; }

/* ─────────────────────────── responsivo ─────────────────────────── */
@media (max-width: 1100px) {
  .ag-layout { grid-template-columns: minmax(0, 1fr); }
  .ag-gaveta { position: static; max-height: none; }
  .ag-layout:not(.ag-gaveta-aberta) .ag-gaveta { display: none; }
}
@media (max-width: 760px) {
  .ag-subabas { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
  .ag-subabas .ag-aba { flex: none; }
  .ag-busca-caixa { flex-wrap: wrap; }
  .ag-busca-caixa input[type="search"] { flex: 1 1 100%; }
  .ag-pac-busca .ag-busca-caixa { flex-wrap: nowrap; }
  .ag-pac-busca .ag-busca-caixa input[type="search"] { flex: 1 1 auto; }
  .ag-cabeca .ag-kbd { display: none; }
  .ag-cabeca-acoes { margin-left: 0; width: 100%; }
  .ag-cabeca-acoes .ag-gota-btn { margin-left: auto; }
  .ag-form { grid-template-columns: minmax(0, 1fr); }
  .ag-abas-lat { grid-template-columns: minmax(0, 1fr); }
  .ag-abas-lat nav { flex-direction: row; flex-wrap: wrap; }
  .ag-detalhes { grid-template-columns: minmax(0, 1fr); }
  .ag-info { grid-template-columns: 118px minmax(0, 1fr); }
  .ag-espelho { grid-template-columns: minmax(0, 1fr); }
  .ag-janela { max-height: calc(100vh - 16px); border-radius: var(--ag-raio-xl); }
  .ag-overlay { padding: 8px; }
  .ag-janela-cab, .ag-janela-corpo, .ag-janela-rodape { padding-left: 14px; padding-right: 14px; }
  .ag-cabeca { padding: 12px; }
  .ag-barra .ag-periodo { order: -1; flex-basis: 100%; text-align: left; margin: 0; }
  .ag-mes-dia { min-height: 74px; }
  .ag-mes-ev span { display: none; }
  .ag-tg-rolo { max-height: calc(100vh - 230px); }
}
@media (prefers-reduced-motion: reduce) {
  .ag-gota-btn, .ag-btn, .ag-secao-cab svg { transition: none; }
}
@media print {
  .ag-overlay, .ag-modulo { display: none !important; }
}

/* ═══════════════════ PALETA DE CORES DOS RÓTULOS (15/10/2026) ═══════════════════
   O seletor de cor da tabela de Rótulos (Configurar a agenda) e a paleta que ele
   abre (js/agenda.js, abrirPaleta). Cantos só da escala --ag-raio-* (quadrados
   suaves, pedido de 02/10). A amostra recebe a cor do rótulo por style=""
   (background-color) — é dado do usuário e fica igual nos dois temas; nome e
   código ficam na cor de texto. Nenhum backdrop-filter novo além do .ag-vidro
   do próprio painel (uma peça só, aberta por clique). */
.ag-cor-seletor {
  display: inline-flex; align-items: center; gap: 9px; width: auto; max-width: 100%;
  min-height: 38px; padding: 5px 10px 5px 7px;
  background: rgba(255, 255, 255, 0.03); color: var(--ag-texto);
  border: 1px solid var(--ag-borda); border-radius: var(--ag-raio-md);
  font: 600 13px var(--ag-fonte); text-align: left; cursor: pointer;
}
.ag-cor-seletor:hover { border-color: var(--ag-borda-forte); background: rgba(255, 215, 0, 0.06); }
.ag-cor-seletor[aria-expanded="true"] { border-color: var(--ag-borda-forte); }
.ag-cor-seletor:focus-visible { outline: 2px solid var(--ag-ouro); outline-offset: 2px; }
.ag-cor-seletor svg { width: 14px; height: 14px; flex: none; color: var(--ag-caramelo); }
.ag-cor-amostra {
  display: inline-block; flex: none; width: 22px; height: 22px;
  border-radius: var(--ag-raio-sm);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.35), 0 0 0 1px rgba(0, 0, 0, 0.6);
}
.ag-cor-texto { display: flex; flex-direction: column; gap: 1px; min-width: 0; line-height: 1.2; }
.ag-cor-nome { color: var(--ag-texto); }
.ag-cor-codigo { font: 500 11px ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; color: var(--ag-texto-suave); letter-spacing: 0.02em; }
.ag-paleta-dica { margin: 0 0 6px; font-size: 12.5px; }
.ag-dot.ag-dot-escolhida { outline: 2px solid var(--ag-texto); outline-offset: 2px; }

.ag-paleta {
  position: fixed; z-index: 5; width: min(560px, calc(100vw - 16px));
  overflow: auto; overscroll-behavior: contain; padding: 12px 12px 14px;
  border-radius: var(--ag-raio-lg); background-color: rgba(6, 6, 6, 0.96);
  scrollbar-width: thin; scrollbar-color: rgba(212, 163, 115, 0.4) transparent;
}
.ag-paleta-cab {
  display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px;
  padding: 2px 4px 10px; margin-bottom: 8px; border-bottom: 1px solid var(--ag-borda-sutil);
}
.ag-paleta-cab strong { font: 600 14px var(--ag-fonte-luxo); color: var(--ag-ouro); }
.ag-paleta-cab span { font-size: 12px; }
.ag-paleta-grupo + .ag-paleta-grupo { margin-top: 10px; }
.ag-paleta-grupo h3 { margin: 0 4px 6px; font: 600 11px var(--ag-fonte); letter-spacing: 0.06em; text-transform: uppercase; color: var(--ag-caramelo); }
.ag-paleta-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(158px, 1fr)); gap: 6px; }
.ag-paleta-chip {
  position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: 9px;
  min-height: 46px; padding: 6px 26px 6px 8px; text-align: left; cursor: pointer;
  background: rgba(255, 255, 255, 0.03); color: var(--ag-texto);
  border: 1px solid var(--ag-borda-sutil); border-radius: var(--ag-raio-md);
  font: 600 12.5px var(--ag-fonte);
}
.ag-paleta-chip .ag-cor-amostra { grid-row: 1 / span 2; }
.ag-paleta-chip .ag-paleta-nome { grid-column: 2; line-height: 1.2; }
.ag-paleta-chip .ag-cor-codigo { grid-column: 2; }
.ag-paleta-chip:hover { border-color: var(--ag-borda); background: rgba(255, 215, 0, 0.06); }
.ag-paleta-chip:focus-visible { outline: 2px solid var(--ag-ouro); outline-offset: 1px; }
.ag-paleta-chip[aria-checked="true"] { border-color: var(--ag-borda-forte); background: rgba(255, 215, 0, 0.1); }
.ag-paleta-chip[aria-checked="true"]::after {
  content: ""; position: absolute; top: 9px; right: 11px; width: 5px; height: 10px;
  border: solid var(--ag-ouro); border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.ag-paleta-uso {
  position: absolute; right: 7px; bottom: 5px;
  font: 600 9.5px var(--ag-fonte); letter-spacing: 0.04em; text-transform: uppercase; color: var(--ag-texto-apagado);
}
@media (max-width: 520px) {
  .ag-paleta-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ═══════════════════ GRADE DE HORÁRIOS E ARRASTE (16/10/2026) ═══════════════════
   A grade segue a configuração da clínica (js/agenda.js: grade(), cfgGrade):
   uma linha de --ag-px-fracao por fração, rótulo em cada uma (hora cheia em
   ouro), linhas de hora deslocadas quando o expediente não começa em hora
   cheia, e a janela --ag-janela vezes a altura de antes (130% = +30% para
   baixo). Cancelado: tracejado. Cantos só da escala --ag-raio-* (pontinho
   redondo como o .ag-ev-dot); nenhum backdrop-filter novo (vidro plano). */
.ag-grade-host { position: relative; }
.ag-tg.ag-grade-cfg .ag-tg-rolo {
  max-height: calc((100vh - 290px) * var(--ag-janela, 1));
  min-height: calc(360px * var(--ag-janela, 1));
}
.ag-tg.ag-grade-cfg .ag-tg-col {
  background-size: 100% var(--ag-px-hora), 100% var(--ag-px-fracao);
  background-position: 0 var(--ag-desloc-hora, 0px), 0 0;
}
.ag-tg.ag-grade-cfg .ag-tg-eixo {
  background-image: linear-gradient(to bottom, rgba(212, 163, 115, 0.07) 1px, transparent 1px);
  background-size: 100% var(--ag-px-fracao);
}
.ag-tg-eixo span.ag-fr {
  left: 0; right: 0; transform: none; box-sizing: border-box;
  display: flex; align-items: center; justify-content: flex-end; padding-right: 8px;
  font-size: 10.5px; color: var(--ag-texto-suave); font-variant-numeric: tabular-nums;
}
.ag-tg-eixo span.ag-fr.cheia { font-size: 12px; font-weight: 700; color: var(--ag-ouro); }
.ag-tg-eixo span.ag-fr.extra { font-style: italic; }

.ag-ev .ag-ev-sit { display: flex; align-items: center; gap: 5px; min-width: 0; font-size: 10.5px; letter-spacing: 0.03em; color: var(--ag-texto-suave); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ag-ev .ag-ev-sit i { flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--ag-sit); }
.ag-ev.cancelado { border-style: dashed; border-left-style: solid; }
.ag-ev.fixo { cursor: pointer; }

/* resumo sob a barra: o expediente e os avisos */
.ag-grade-resumo { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; font-size: 12.5px; color: var(--ag-texto-suave); }
.ag-grade-resumo:empty { display: none; }
.ag-grade-info, .ag-grade-aviso { display: inline-flex; align-items: center; gap: 6px; }
.ag-grade-info b { color: var(--ag-texto); font-weight: 600; }
.ag-grade-info .ag-ico, .ag-grade-aviso .ag-ico { width: 14px; height: 14px; color: var(--ag-caramelo); flex: none; }
.ag-grade-aviso { padding: 3px 4px 3px 9px; border: 1px solid var(--ag-borda); border-radius: var(--ag-raio-sm); background: rgba(212, 163, 115, 0.08); color: var(--ag-texto); }
.ag-mostrar-btn { font: 600 12px var(--ag-fonte); color: var(--ag-ouro); background: transparent; border: 1px solid var(--ag-borda); border-radius: var(--ag-raio-sm); padding: 2px 9px; cursor: pointer; }
.ag-mostrar-btn:hover { border-color: var(--ag-borda-forte); background: rgba(255, 215, 0, 0.08); }
.ag-mostrar-btn:focus-visible { outline: 2px solid var(--ag-ouro); outline-offset: 2px; }

/* visão Mês: célula na altura da janela, nomes arrastáveis */
.ag-mes.ag-grade-cfg .ag-mes-dia { min-height: calc(104px * var(--ag-janela, 1)); }
.ag-mes-ev.ag-arrastavel { cursor: grab; touch-action: manipulation; user-select: none; }
.ag-mes-ev.cancelado { opacity: 0.6; border-left-style: dashed; }
.ag-mes-ev.cancelado span { text-decoration: line-through; text-decoration-color: rgba(240, 112, 112, 0.8); }
.ag-mes-ev.arrastando { opacity: 0.4; cursor: grabbing; }
.ag-mes-dia.ag-alvo { outline: 2px dashed var(--ag-ouro); outline-offset: -3px; background: rgba(255, 215, 0, 0.08); }
.ag-mes-fantasma {
  position: absolute; z-index: 30; pointer-events: none; white-space: nowrap;
  font: 700 11.5px var(--ag-fonte); color: #0A0A0A; background: var(--ag-ouro);
  padding: 3px 8px; border-radius: var(--ag-raio-sm); box-shadow: 0 8px 22px rgba(0, 0, 0, 0.6);
}

/* confirmação do arrastar: a caixinha "Reativar como Confirmado" */
.ag-pergunta-caixa { align-items: flex-start; margin: 0 0 10px; padding: 8px 10px; border: 1px solid var(--ag-borda-sutil); border-radius: var(--ag-raio-md); }
.ag-pergunta-caixa input { margin-top: 2px; }
.ag-pergunta-caixa > span { display: flex; flex-direction: column; gap: 2px; }
.ag-pergunta-caixa small { font-size: 11.5px; }

/* Configurar a agenda › Grade e arraste */
.ag-grade-painel { display: flex; flex-direction: column; gap: 16px; }
.ag-grade-secao { display: flex; flex-direction: column; gap: 10px; padding: 12px 14px 14px; border: 1px solid var(--ag-borda-sutil); border-radius: var(--ag-raio-lg); background: var(--ag-pelicula); }
.ag-overlay .ag-grade-secao h3 { font: 600 12px var(--ag-fonte); letter-spacing: 0.08em; text-transform: uppercase; color: var(--ag-caramelo); }
.ag-form.ag-form-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ag-grade-previa { margin: 0; font-size: 12.5px; line-height: 1.45; }
.ag-grade-dias { display: flex; flex-wrap: wrap; gap: 6px; }
.ag-dia-toggle {
  font: 600 13px var(--ag-fonte); color: var(--ag-texto-suave); background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--ag-borda); border-radius: var(--ag-raio-md); padding: 7px 13px; cursor: pointer;
}
.ag-dia-toggle:hover { border-color: var(--ag-borda-forte); color: var(--ag-texto); }
.ag-dia-toggle[aria-pressed="true"] { color: #0A0A0A; background: var(--ag-liga); border-color: var(--ag-ouro); }
.ag-dia-toggle:focus-visible { outline: 2px solid var(--ag-ouro); outline-offset: 2px; }
.ag-grade-painel input[type="range"] { accent-color: #FFD700; padding: 0; }
.ag-grade-painel .ag-f > span:first-child b { color: var(--ag-ouro); font-weight: 700; }
.ag-grade-regras { display: flex; flex-direction: column; gap: 4px; }
.ag-grade-regra { align-items: flex-start; padding: 8px 4px; }
.ag-grade-regra + .ag-grade-regra { border-top: 1px solid var(--ag-borda-sutil); }
.ag-grade-regra input { margin-top: 2px; flex: none; }
.ag-grade-regra > span { display: flex; flex-direction: column; gap: 3px; }
.ag-grade-regra b { font-weight: 600; color: var(--ag-texto); }
.ag-grade-regra small { font-size: 12px; line-height: 1.4; }
.ag-grade-regra:has(input:disabled) { opacity: 0.55; cursor: not-allowed; }
.ag-grade-rodape { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; }
@media (max-width: 760px) {
  .ag-tg.ag-grade-cfg .ag-tg-rolo { max-height: calc((100vh - 230px) * var(--ag-janela, 1)); }
  .ag-form.ag-form-3 { grid-template-columns: minmax(0, 1fr); }
  .ag-grade-rodape .ag-btn { flex: 1 1 100%; justify-content: center; white-space: normal; }
}
