/* O conjunto único de tokens do sistema: a tela do Anestesista, o ADM e a Parametrização usam
   só estes. A semântica é a do Anestesista: verde liberado, âmbar mantido ou atenção, vermelho
   sem vaga ou problema, azul seleção ou ação. O ADM tem paletas próprias (tipos da Fila, estados
   de Pendência e de Semana, severidades), em classes que não reaproveitam as do Anestesista. */
:root {
  /* texto, superfícies, linhas e cantos */
  --tx:#111827; --mut:#6b7280; --fundo:#eef0f3; --sup2:#f8fafc; --zebra:#f6f8fb; --cinza-l:#f1f5f9;
  --linha:#e5e7eb; --linha2:#d5dbe3; --borda:#cbd5e1; --raio:12px; --branco:#fff;
  /* semântica do Anestesista */
  --azul:#1f5fbf; --azul-l:#e6eefb; --azul-esc:#123e7d;
  --verde:#1e6b3a; --verde-l:#e5f4ea; --verde-tinta:#f1faf4;
  --ambar:#8a5a00; --ambar-l:#fff4d6; --ambar-forte:#d69e00; --ambar-borda:#b07800; --ambar-tinta:#fff8e6; --ambar-cheio:#fde2a6; --ambar-cheio-tx:#6b4500;
  --verm:#b3261e; --verm-l:#fbe9e7;
  --fora:#111; --fora-tinta:#eceef1;
  /* tipos de período da Parametrização (texto, fundo e a barra de cada escala) */
  --per-plantao:var(--verde); --per-plantao-l:var(--verde-l); --per-plantao-barra:#3f9d5f;
  --per-adm:var(--ambar); --per-adm-l:var(--ambar-l); --per-adm-barra:#e0b84a; --per-adm-cheio:#c58a00;
  --per-atip:var(--verm); --per-atip-l:var(--verm-l); --per-atip-barra:#d9534f;
  --per-ign:var(--mut); --per-ign-l:var(--cinza-l); --per-ign-barra:var(--borda);
  --per-dest:var(--azul);
  --novo:#7c3aed;
  /* ADM: tipos da Fila (cor e fundo) */
  --t-pedido:#1f5fbf; --t-pedido-l:#eaf1fd; --t-pedido-m:#c9dbf7;
  --t-pendencia:#5b3cc4; --t-pendencia-l:#f1edfd; --t-pendencia-m:#d8cff6;
  --t-divergencia:#b0306a; --t-divergencia-l:#fcecf3; --t-divergencia-m:#f1c6da;
  --t-cadastro:#0e7490; --t-cadastro-l:#e6f4f8; --t-cadastro-m:#bfe1ea;
  --t-operacao:#334155; --t-operacao-l:#eef1f5; --t-operacao-m:#cfd6e0;
  /* ADM: estados de Pendência e de Semana, a mesma escada de verdes (texto, fundo e contorno):
     só o contorno → fundo claro → cheio, com ✓ na Confirmada; a Cancelada e a Desfeita em
     cinza vazado. No degrau 3 o fundo (-l) é o verde cheio e o texto (--e3) é branco */
  --e1:#2f6b45;      --e1-l:#fff;               --e1-m:#3f9d5f; /* Aberta · Reservada */
  --e2:var(--verde); --e2-l:var(--verde-l);     --e2-m:#3f9d5f; /* Lançada · Aprovada */
  --e3:#fff;         --e3-l:#2f855a;            --e3-m:#2f855a; /* Verificada · Confirmada */
  --e0:#6b7280; --e0-l:transparent; --e0-m:#cbd5e1; /* Cancelada · Desfeita */
  /* ADM: a Ocupação (as cores do Anestesista; aqui o vazio, as bordas e as barras) */
  --fds-tx:#475569; --fds-tx2:#64748b; --oc-livre:#f3f5f8; --oc-livre-b:#e7eaef; --oc-parcial-b:#bfe0ca; --oc-parcial-barra:#7cc196; --oc-parcial-forte:#5fb37f; --oc-acima-tx:#fff;
  /* ADM: severidades (Crítica e Atenção usam o vermelho e o âmbar) */
  --sev-info:#526075; --sev-info-l:#eef1f5;
  /* ADM: a barra lateral escura da casca e o chip da leitura do D2i sobre ela */
  --lado:#0f1b2d; --lado-hover:#1a2a42; --lado-linha:#22344f; --lado-tx:#cbd5e1; --lado-mut:#8ea0b8;
  --lado-link:#93c5fd;
  --chip-verde:#86efac; --chip-verde-l:#14532d; --chip-ambar:#fde68a; --chip-ambar-l:#713f12;
  --chip-verm:#fecaca; --chip-verm-l:#7f1d1d;
  /* Escala Select: a faixa do ambiente (a de produção usa o vermelho) */
  --amb-homolog:#f5b400; --amb-homolog-tx:#3b2a00; --amb-nenhum:#374151;
}
* { box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
body { font:15px/1.4 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; margin:0; color:var(--tx); background:var(--fundo); }
a { color:var(--azul); }
h1 { font-size:20px; margin:0 0 12px; }
h2 { font-size:17px; margin:18px 0 8px; }
button, .botao { font:inherit; border:1px solid var(--borda); background:#fff; border-radius:10px; padding:10px 14px; cursor:pointer; color:inherit; text-decoration:none; display:inline-block; }
button:disabled { opacity:.45; cursor:not-allowed; }
button.pri, .botao.pri { background:var(--azul); color:#fff; border-color:var(--azul); font-weight:600; }
button.dang { background:var(--verm); color:#fff; border-color:var(--verm); font-weight:600; }
button.link { border:none; background:none; color:var(--azul); padding:4px 0; }
input, select, textarea { font:inherit; width:100%; padding:10px 12px; border:1px solid var(--borda); border-radius:10px; background:#fff; margin:4px 0 12px; }
input[type=checkbox], input[type=radio] { width:auto; margin:0 6px 0 0; }
label { font-weight:600; font-size:14px; }
.small { font-size:12.5px; color:var(--mut); }
.cartao { background:#fff; border-radius:14px; padding:20px; width:100%; max-width:420px; box-shadow:0 4px 20px rgba(0,0,0,.06); }
.cartao form button { width:100%; padding:13px; }
.topo { background:#fff; border-bottom:1px solid var(--linha); padding:10px 14px; display:flex; justify-content:space-between; align-items:baseline; gap:8px; flex-wrap:wrap; }
.pagina { padding:12px 14px 32px; max-width:1100px; margin:0 auto; }
/* A casca do ADM: a barra lateral fixa e a página na largura livre. Computador primeiro; abaixo
   de 1024 px a tela só rola na horizontal. */
.casca { display:grid; grid-template-columns:232px minmax(0,1fr); min-height:100vh; min-width:1024px; font-size:14px; }
.casca > .pagina { max-width:1400px; width:100%; margin:0; padding:18px 24px 40px; }
.lado { position:sticky; top:0; height:100vh; overflow:auto; display:flex; flex-direction:column; padding:14px 10px; background:var(--lado); color:var(--lado-tx); }
.lado > nav:not(.sistemas) { display:contents; }
/* o seletor de sistema no topo da barra (uma casca para o AVT Select e o Escala Select) */
.lado .sistemas { display:flex; gap:2px; padding:3px; margin:0 0 12px; border-radius:10px; background:var(--lado-linha); }
.lado .sistemas a { flex:1; justify-content:center; padding:6px 4px; font-size:12.5px; font-weight:700; color:var(--lado-mut); }
.lado .sistemas a.atual { background:var(--lado); color:#fff; }
.lado a { color:var(--lado-tx); display:flex; align-items:center; gap:6px; padding:7px 10px; border-radius:8px; text-decoration:none; }
.lado a:hover { background:var(--lado-hover); color:#fff; }
.lado a.aba { font-weight:700; color:#fff; margin-top:4px; }
.lado a.aba.atual { background:var(--azul); }
.lado .subs { margin:2px 0 6px 12px; padding-left:6px; border-left:1px solid var(--lado-linha); }
.lado .subs a { font-size:13px; padding:5px 10px; }
.lado .subs a.atual { background:var(--lado-hover); color:#fff; font-weight:700; }
.lado .cont { font-size:12px; font-variant-numeric:tabular-nums; border-radius:10px; padding:1px 7px; min-width:22px; text-align:center; background:var(--lado-linha); color:var(--lado-tx); }
.lado .conts { margin-left:auto; display:flex; gap:4px; }
.lado .cont.crit { background:var(--verm); color:#fff; font-weight:700; }
.nav-cab { display:flex; align-items:center; gap:2px; margin-top:4px; }
.nav-cab .aba { flex:1; margin-top:0 !important; }
.nav-t { border:0; background:transparent; color:var(--lado-mut); padding:4px 8px; border-radius:6px; font-size:12px; transition:transform .15s; }
.nav-t:hover { background:var(--lado-hover); color:#fff; }
.nav-g.fechado .nav-t { transform:rotate(-90deg); }
.nav-g.fechado > .subs { display:none; }
.nav-resumo { margin-left:auto; display:none; }
.nav-g.fechado .nav-resumo { display:inline-block; }
.nav-conf { margin-top:auto; border-top:1px solid var(--lado-linha); padding-top:8px; }
.nav-conf .grupo { all:unset; box-sizing:border-box; flex:1; display:flex; align-items:center; gap:6px; cursor:pointer; font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--lado-mut); padding:8px 10px; border-radius:8px; }
.nav-conf .grupo:hover { background:var(--lado-hover); color:#fff; }
.nav-conf .grupo .nav-t { margin-left:auto; padding:0 2px; }
.nav-conf .subs { margin-top:0; }
.pe-lado { padding:12px 10px 4px; margin-top:8px; border-top:1px solid var(--lado-linha); font-size:12.5px; }
.lado.com-selo .pe-lado { padding-bottom:40px; } /* o selo da demonstração fica no canto de baixo */
.pe-lado b { color:#fff; display:block; }
.pe-lado form.sair { display:inline; }
.pe-lado button.link { color:var(--lado-link); padding:0; font:inherit; cursor:pointer; }
.lado a.leitura { display:inline-flex; gap:6px; padding:4px 10px; margin-bottom:10px; border-radius:20px; font-size:12px; white-space:nowrap; }
.leitura .ponto { width:7px; height:7px; border-radius:50%; background:currentColor; }
.lado a.leitura.verde { color:var(--chip-verde); background:var(--chip-verde-l); }
.lado a.leitura.ambar { color:var(--chip-ambar); background:var(--chip-ambar-l); }
.lado a.leitura.vermelho { color:var(--chip-verm); background:var(--chip-verm-l); }
.lado a.leitura.nenhum { color:var(--lado-tx); background:var(--lado-linha); }
.aviso { border-radius:10px; padding:10px 12px; font-size:13.5px; margin:10px 0; }
.aviso.erro { background:var(--verm-l); color:var(--verm); }
.aviso.alerta { background:var(--ambar-l); color:var(--ambar); }
.aviso.ok { background:var(--verde-l); color:var(--verde); }
.aviso.info { background:var(--azul-l); color:var(--azul-esc); }
table.dados { border-collapse:collapse; width:100%; background:#fff; font-size:14px; }
table.dados th, table.dados td { border-bottom:1px solid var(--linha); padding:6px 8px; text-align:left; vertical-align:top; }
table.dados th { font-size:12px; color:var(--mut); text-transform:uppercase; letter-spacing:.03em; }
.menu { display:flex; gap:12px; flex-wrap:wrap; font-size:14px; }
.menu a { text-decoration:none; padding:2px 0; }
.menu a.atual { font-weight:700; border-bottom:2px solid var(--azul); }
form.linha { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
form.linha input, form.linha select { width:auto; margin:0; }
form.linha label { font-weight:400; display:flex; align-items:center; gap:4px; }
code { font-size:12px; word-break:break-word; }
/* Tags. Os modificadores ok, alerta, erro e info têm a semântica dos avisos; os do ADM (tipo
   da Fila, estado de Pendência e de Semana, severidade) vêm das macros de componentes.html. */
.tag { font-size:11.5px; padding:2px 8px; border-radius:10px; white-space:nowrap; background:var(--cinza-l); }
.tag.ok { background:var(--verde-l); color:var(--verde); } .tag.alerta { background:var(--ambar-l); color:var(--ambar); }
.tag.erro { background:var(--verm-l); color:var(--verm); } .tag.info { background:var(--azul-l); color:var(--azul-esc); }
.tag.tp-pedido { background:var(--t-pedido-l); color:var(--t-pedido); } .tag.tp-pendencia { background:var(--t-pendencia-l); color:var(--t-pendencia); }
.tag.tp-divergencia { background:var(--t-divergencia-l); color:var(--t-divergencia); } .tag.tp-cadastro { background:var(--t-cadastro-l); color:var(--t-cadastro); }
.tag.tp-operacao { background:var(--t-operacao-l); color:var(--t-operacao); }
.tag.est-aberta, .tag.est-reservada, .tag.est-lancada, .tag.est-aprovada, .tag.est-verificada, .tag.est-confirmada, .tag.est-cancelada, .tag.est-desfeita, .tag.est-selecionada { font-weight:600; border:1px solid transparent; }
.tag.est-aberta, .tag.est-reservada { background:var(--e1-l); color:var(--e1); border-color:var(--e1-m); }
.tag.est-lancada, .tag.est-aprovada { background:var(--e2-l); color:var(--e2); border-color:var(--e2-m); }
.tag.est-verificada, .tag.est-confirmada { background:var(--e3-l); color:var(--e3); border-color:var(--e3-m); }
.tag.est-cancelada, .tag.est-desfeita { background:var(--e0-l); color:var(--e0); border-color:var(--e0-m); text-decoration:line-through; }
.tag.est-selecionada { background:var(--azul-l); color:var(--azul-esc); border-style:dashed; border-color:#9db7e4; }
.tag.sev-critica, .tag.sev-atencao, .tag.sev-informativa { font-weight:600; }
.tag.sev-critica { background:var(--verm); color:#fff; } .tag.sev-atencao { background:var(--ambar-l); color:var(--ambar); }
.tag.sev-informativa { background:var(--sev-info-l); color:var(--sev-info); }
.filtros { margin-bottom:8px; }
.filtros input { max-width:220px; }
.pagina.estreita { max-width:560px; }
.cartao.semana-pend { max-width:none; margin:10px 0; }
tr.destaque td { background:var(--ambar-l); }
details summary { cursor:pointer; }
.cartoes { display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:8px; margin-bottom:8px; }
.submenu { margin:8px 0; }
/* A Fila: a lista de cartões (B1R com a data D2) e o detalhe. Cada tipo da Fila dá ao cartão,
   ao sobretítulo e à faixa do detalhe a cor (--t), o fundo (--tl) e o tom médio (--tm). */
.k-pedido { --t:var(--t-pedido); --tl:var(--t-pedido-l); --tm:var(--t-pedido-m); }
.k-pendencia { --t:var(--t-pendencia); --tl:var(--t-pendencia-l); --tm:var(--t-pendencia-m); }
.k-divergencia { --t:var(--t-divergencia); --tl:var(--t-divergencia-l); --tm:var(--t-divergencia-m); }
.k-cadastro { --t:var(--t-cadastro); --tl:var(--t-cadastro-l); --tm:var(--t-cadastro-m); }
.k-operacao { --t:var(--t-operacao); --tl:var(--t-operacao-l); --tm:var(--t-operacao-m); }
.fila { --w-lista:minmax(420px, 46%); display:grid; grid-template-columns:var(--w-lista) 7px minmax(0, 1fr); column-gap:6px; align-items:start; }
@media (max-width: 860px) { .fila { grid-template-columns:1fr; } .fila > .divisor { display:none; } }
.fila-lista { container:lista / inline-size; min-width:0; }
.fila-cartoes { display:flex; flex-direction:column; gap:6px; }
.cartao-fila[hidden] { display:none; }
/* com a lista estreita, o cartão esconde primeiro a abertura e a contagem e depois a data */
@container lista (max-width: 470px) { .cartao-fila .abre, .cartao-fila .contagem { display:none; } }
@container lista (max-width: 340px) { .cartao-fila .da { display:none; } .cartao-fila { grid-template-columns:26px minmax(0,1fr); } }
.cartao-fila { position:relative; display:grid; grid-template-columns:26px minmax(0,1fr) auto; column-gap:10px; align-items:stretch;
  background:#fff; border:1px solid var(--linha); border-radius:9px; overflow:hidden; color:var(--tx); min-height:62px; text-decoration:none; }
.cartao-fila:hover { border-color:var(--t); }
/* o não visto pelo ADM: tingido na cor do tipo, com o ponto azul e o nome em negrito */
.cartao-fila[data-novo] { background:var(--tl); border-color:var(--tm); }
.cartao-fila[data-novo] .nome { font-weight:800; }
.cartao-fila .novo { width:7px; height:7px; border-radius:50%; background:var(--azul); flex:none; }
/* os resolvidos (filtro de estado "Resolvidos"): esmaecidos, com "✓ como e quem"; abrem em consulta */
.cartao-fila.resolvido { background:var(--sup2); border-color:var(--linha); opacity:.8; min-height:52px; }
.cartao-fila.resolvido:hover, .cartao-fila.resolvido.aberto { opacity:1; }
.cartao-fila.resolvido .lomb { background:var(--mut); }
.cartao-fila.resolvido .marca, .cartao-fila.resolvido .da { filter:grayscale(1); }
.cartao-fila.resolvido .nome { color:#4b5563; }
.cartao-fila .como { font-size:12px; color:var(--verde); font-weight:600; white-space:nowrap; }
.cartao-fila.aberto { box-shadow:0 0 0 2px var(--t); border-color:var(--t); }
.cartao-fila .lomb { background:var(--t); color:#fff; display:flex; align-items:center; justify-content:center; }
.cartao-fila .lomb span { writing-mode:vertical-rl; transform:rotate(180deg); font-size:8px; font-weight:800; letter-spacing:0; text-transform:uppercase; white-space:nowrap; }
.cartao-fila .miolo { padding:8px 2px 8px 0; display:flex; flex-direction:column; justify-content:center; min-width:0; }
.cartao-fila .l1 { display:flex; align-items:center; gap:6px; min-width:0; }
.cartao-fila .nome { font-weight:600; font-size:14.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cartao-fila .abre { margin-left:auto; padding-left:6px; font:500 10.5px/1 ui-monospace, "SF Mono", Menlo, Consolas, monospace; color:var(--mut); white-space:nowrap; }
.cartao-fila:has(.canto) .abre { padding-right:8px; }
.cartao-fila .l2 { display:flex; align-items:center; gap:9px; margin-top:5px; min-width:0; }
.cartao-fila .marca { display:inline-flex; align-items:center; gap:6px; color:var(--t); font-weight:700; font-size:12.5px; white-space:nowrap; min-width:0; }
.cartao-fila .marca i { font-style:normal; width:18px; height:18px; border-radius:4px; background:var(--t); color:#fff; display:grid; place-items:center; font-size:11.5px; font-weight:800; flex:none; }
.cartao-fila .contagem { font-size:12px; color:var(--mut); white-space:nowrap; }
.cartao-fila .alerta { font-size:12px; color:var(--verm); white-space:nowrap; }
.cartao-fila .canto { position:absolute; top:0; right:0; width:0; height:0; border-style:solid; border-width:0 14px 14px 0; }
.cartao-fila .canto.s-critica { border-color:transparent var(--verm) transparent transparent; }
.cartao-fila .canto.s-atencao { border-color:transparent var(--ambar-forte) transparent transparent; }
/* a data-alvo (D2): ponto para um dia, barra cheia para um período, pontilhado para datas salteadas */
.da { align-self:stretch; display:flex; align-items:center; gap:7px; margin:0 12px 0 4px; color:var(--t); flex:none; }
.da .mk { width:8px; display:flex; justify-content:center; flex:none; }
.da.t-dia .mk::before { content:""; width:8px; height:8px; border-radius:50%; background:var(--t); }
.da.t-periodo .mk, .da.t-multiplas .mk { width:0; height:34px; margin:0 2px 0 3px; border-left:3px solid var(--t); border-radius:2px; }
.da.t-multiplas .mk { border-left-style:dotted; }
.da .ls { display:flex; flex-direction:column; gap:3px; width:76px; }
.da .ln { font-size:11px; font-weight:800; letter-spacing:.06em; white-space:nowrap; line-height:1.05; }
.da .ln b { font-size:15px; letter-spacing:0; font-variant-numeric:tabular-nums; }
.da .ln.nada { color:var(--tm); font-style:italic; font-weight:600; letter-spacing:0; font-size:11.5px; padding-left:15px; }
/* o detalhe: a faixa da cor do tipo no alto e o sobretítulo */
.fila-detalhe { background:#fff; border-radius:12px; padding:14px 16px; border-top:4px solid var(--t, var(--linha)); }
.fila-detalhe h2 { margin:0 0 4px; }
.kicker { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:6px; font-size:12px; }
.kicker .tipo-k { background:var(--t); color:#fff; font-weight:800; letter-spacing:.07em; text-transform:uppercase; font-size:11px; padding:3px 8px; border-radius:4px; }
.kicker .sub-k { color:var(--t); font-weight:700; font-size:13px; }
.kicker .sev-k { font-weight:700; }
.kicker .sev-k.s-critica { color:var(--verm); } .kicker .sev-k.s-atencao { color:var(--ambar); }
.kicker .alerta-k { color:var(--verm); font-weight:700; }
.acoes-fila { display:flex; gap:8px; flex-wrap:wrap; margin:12px 0; }
.acoes-fila form { margin:0; }
dl.dados-fila { display:grid; grid-template-columns:max-content 1fr; gap:4px 14px; margin:10px 0; font-size:14px; }
dl.dados-fila dt { color:var(--mut); }
dl.dados-fila dd { margin:0; }
.membro { border-top:1px solid var(--linha); padding:8px 0; display:flex; gap:12px; align-items:center; justify-content:space-between; }
/* Ocupação: as visões, o mês em abas, a lista de grupos com o mini gráfico, o calendário do
   grupo e o grupo-dia. A cor da ocupação é a do Anestesista: verde com vaga, âmbar cheio,
   vermelho acima da capacidade; as marcas usam a cor do tipo da Fila. */
.oc-topo { display:flex; align-items:center; gap:14px; margin-bottom:8px; }
.oc-topo h1 { margin:0; }
.oc-visoes a { padding:4px 12px; border-radius:6px; color:#475569; font-weight:600; font-size:13px; text-decoration:none; white-space:nowrap; }
.oc-visoes a[aria-pressed="true"] { background:#fff; color:var(--tx); box-shadow:0 1px 2px rgba(15,23,42,.12); }
.oc-mes-titulo { margin-left:auto; color:var(--mut); font-size:13.5px; }
.mes-abas { display:flex; align-items:stretch; gap:2px; height:50px; padding:6px 10px 0; margin:0 0 12px; background:var(--oc-livre-b); border-bottom:1px solid var(--linha2); border-radius:10px 10px 0 0; }
.ma-ano { align-self:center; font-weight:800; font-size:15px; color:#334155; margin-right:6px; }
.ma-seta { align-self:center; padding:2px 9px 4px; font-size:19px; color:#475569; border-radius:6px; text-decoration:none; }
.ma-seta:hover { background:#f4f5f7; }
.ma { flex:1; min-width:0; display:grid; grid-template-columns:auto 1fr; grid-template-rows:auto 4px; align-items:center; gap:3px 6px; padding:5px 9px 6px; border-radius:8px 8px 0 0; color:#475569; text-decoration:none; }
.ma b { grid-row:1; grid-column:1; font-size:13px; } .ma small { grid-row:1; grid-column:2; justify-self:end; font-size:10.5px; color:var(--mut); font-variant-numeric:tabular-nums; }
.ma-b { grid-row:2; grid-column:1 / -1; height:4px; background:#d5dbe3; border-radius:2px; overflow:hidden; }
.ma-b i { display:block; height:100%; background:#94a3b8; }
.ma:hover { background:#f1f3f6; }
.ma.atual { background:#fff; color:var(--tx); border:1px solid var(--linha2); border-bottom:0; box-shadow:inset 0 3px 0 var(--azul); margin-bottom:-1px; padding-bottom:7px; }
.ma.atual b { font-size:15px; color:var(--azul-esc); } .ma.atual small { color:var(--azul-esc); font-weight:700; }
.ma.atual .ma-b i { background:var(--azul); }
/* as cores de uma célula, de uma barra ou de um quadradinho da legenda */
.oc.livre { --oc:var(--oc-livre); --oc-tx:var(--mut); --oc-b:var(--oc-livre-b); }
.oc.parcial { --oc:var(--verde-l); --oc-tx:var(--verde); --oc-b:var(--oc-parcial-b); }
.oc.cheio { --oc:var(--ambar-cheio); --oc-tx:var(--ambar-cheio-tx); --oc-b:var(--ambar-forte); }
.oc.acima { --oc:var(--verm); --oc-tx:var(--oc-acima-tx); --oc-b:var(--verm); }
.mk { display:inline-block; width:7px; height:7px; border-radius:50%; flex:none; }
.mk.dv { background:var(--t-divergencia); } .mk.pd { background:var(--t-pendencia); border-radius:2px; }
.oc-leg { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:10px 2px 0; font-size:12px; color:var(--mut); }
.oc-leg span { display:inline-flex; align-items:center; gap:5px; }
.oc-leg b.oc { width:14px; height:14px; border-radius:4px; background:var(--oc); border:1px solid var(--oc-b); }
/* Por grupo: a lista e o detalhe, com a divisória */
.oc-lay { --w-lista:minmax(320px, 30%); display:grid; grid-template-columns:var(--w-lista) 7px minmax(0, 1fr); column-gap:6px; align-items:start; }
@media (max-width: 860px) { .oc-lay { grid-template-columns:1fr; } .oc-lay > .divisor { display:none; } }
.oc-grupos { background:#fff; border:1px solid var(--linha); border-radius:10px; overflow:hidden; margin-top:8px; }
.oc-grupos .ferr-secao { padding:6px 14px; background:var(--sup2); border-bottom:1px solid var(--linha); }
.oc-g { display:block; padding:10px 14px 9px; border-bottom:1px solid #f0f2f5; color:var(--tx); border-left:3px solid transparent; text-decoration:none; }
.oc-g:hover { background:var(--sup2); }
.oc-g.aberto { background:var(--azul-l); border-left-color:var(--azul); }
.oc-g .l1 { display:flex; align-items:baseline; gap:8px; }
.oc-g .l1 span { font-size:12.5px; color:var(--mut); }
.oc-g .l1 .pct { margin-left:auto; font-weight:700; font-size:13px; color:var(--tx); font-variant-numeric:tabular-nums; }
.spark { display:flex; align-items:flex-end; gap:2px; height:24px; margin:6px 0 5px; }
.spark i { flex:1; height:calc(var(--h) * 18px); min-height:2px; border-radius:2px 2px 0 0; background:var(--oc-b); }
.spark i.parcial { background:var(--oc-parcial-barra); } .spark i.livre { background:var(--oc-livre-b); }
.spark i.sp-fds { flex:.5; height:0; min-height:0; }
.oc-g .l3 { display:flex; gap:10px; font-size:12px; color:var(--mut); white-space:nowrap; }
.oc-g .l3 .sv { color:var(--verm); }
.tc { color:var(--t); font-weight:700; }
.oc-det { min-width:0; padding:4px 4px 24px 10px; }
.oc-cab { display:flex; align-items:flex-start; gap:16px; margin-bottom:12px; }
.oc-cab h2 { margin:0 0 2px; font-size:19px; }
.oc-resumo { margin-left:auto; display:flex; gap:16px; font-size:12.5px; color:var(--mut); white-space:nowrap; }
.oc-resumo b { color:var(--tx); font-size:15px; }
.cal7 { display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)) 88px 88px; gap:6px; }
.c7h { font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--mut); padding:0 4px; }
.c7 { position:relative; display:flex; flex-direction:column; gap:3px; min-height:72px; background:#fff; border:1px solid var(--linha); border-radius:10px; padding:6px 8px; color:var(--tx); box-shadow:inset 4px 0 0 var(--oc-b, transparent); text-decoration:none; }
.c7.livre { --oc-b:var(--oc-livre-b); } .c7.parcial { --oc-b:var(--oc-parcial-b); } .c7.cheio { --oc-b:var(--ambar-forte); } .c7.acima { --oc-b:var(--verm); }
a.c7:hover { border-color:#b8c1ce; }
.c7.sel { outline:2px solid var(--azul); outline-offset:1px; }
.c7.vazio { background:transparent; border:0; box-shadow:none; }
.c7.fds { background:repeating-linear-gradient(135deg, var(--oc-livre) 0 4px, #fafbfc 4px 8px); box-shadow:none; color:var(--mut); }
.c7 .n { font-size:12px; font-weight:700; color:var(--mut); }
.c7 .v { font-size:13px; color:var(--mut); } .c7 .v b { font-size:19px; color:var(--tx); }
.c7.acima .v b { color:var(--verm); } .c7.cheio .v b { color:var(--ambar-cheio-tx); }
.barra-oc { height:5px; background:#eef1f5; border-radius:3px; overflow:hidden; margin-top:auto; }
.barra-oc i { display:block; height:100%; background:var(--oc-b); }
.c7.parcial .barra-oc i { background:var(--oc-parcial-forte); }
.c7 .mks { position:absolute; top:7px; right:8px; display:flex; gap:3px; }
.oc-dica { margin:14px 2px; font-size:13px; }
.oc-gd { margin-top:16px; padding:14px 16px; background:#fff; border:1px solid var(--linha); border-radius:12px; }
/* o grupo-dia */
.gd-cab { display:flex; align-items:flex-start; gap:12px; margin-bottom:10px; }
.gd-cab h3 { margin:0; font-size:17px; line-height:1.2; }
.gd-kick { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:var(--mut); }
.gd-oc { margin-left:auto; flex:none; background:var(--oc); color:var(--oc-tx); border:1px solid var(--oc-b); border-radius:9px; padding:3px 10px; font-size:13px; font-variant-numeric:tabular-nums; }
.gd-oc b { font-size:20px; }
.gd-sec { margin-top:12px; }
.gd-sec h4 { margin:0 0 5px; font-size:11.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--mut); display:flex; align-items:center; gap:6px; }
.gd-sec .cont { font-size:11px; background:var(--cinza-l); border-radius:10px; padding:0 7px; color:#475569; }
.gd-f { display:flex; align-items:center; gap:8px; margin:0 0 5px; font-size:13px; color:var(--tx); background:var(--tl); border-left:3px solid var(--t); border-radius:7px; padding:5px 9px 5px 6px; text-decoration:none; }
.gd-f:hover { filter:brightness(.97); }
.gd-f .gl { display:inline-grid; place-items:center; width:18px; height:18px; border-radius:4px; background:var(--t); color:#fff; font-size:11px; font-weight:800; flex:none; }
.gd-f b { color:var(--t); }
.gd-f em { margin-left:auto; font-style:normal; font-size:12px; color:var(--t); white-space:nowrap; }
.gd-p { padding:6px 0; border-bottom:1px solid #f0f2f5; display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px; font-size:13.5px; }
.gd-p > div { flex-basis:100%; }
.gd-p:last-child { border-bottom:0; }
.gd-mut { font-size:12.5px; color:var(--mut); }
.gd-vazio { margin:2px 0; font-size:12.5px; color:var(--mut); }
.gd-rot { font-size:11.5px; font-weight:700; padding:2px 8px; border-radius:8px; background:var(--verde-l); color:var(--verde); }
/* o fim de semana: quem mantém (cinza) e quem passou (verde) o plantão */
.fdsq { display:inline-grid; place-items:center; min-width:16px; height:16px; padding:0 3px; border-radius:4px; background:var(--cinza-l); color:var(--fds-tx); font-size:10px; font-weight:700; }
.fdsq.p { background:var(--verde-l); color:var(--verde); }
.oc-leg .fdsq { margin-right:1px; }
.oc-g .l3-fds { margin-left:auto; display:inline-flex; align-items:center; gap:3px; }
.oc-resumo .pas { color:var(--verde); }
a.c7.fds:hover { border-color:#b8c1ce; }
.c7.fds { gap:2px; }
.fds-v { font-size:11.5px; color:var(--mut); white-space:nowrap; } .fds-v b { font-size:17px; color:var(--fds-tx); }
.fds-v.vz { font-size:11px; margin-top:auto; }
.fds-s { display:flex; flex-direction:column; margin-top:auto; font-size:11px; white-space:nowrap; line-height:1.3; color:var(--fds-tx2); }
.fds-s i { font-style:normal; } .fds-s i.p { color:var(--verde); font-weight:600; }
.gd-oc.fds { background:var(--oc-livre); color:var(--fds-tx); border-color:var(--oc-livre-b); }
.gd-nota { margin:0 0 4px; }
.gd-x { flex:none; margin:-4px -4px 0 0; padding:0 6px; font-size:20px; line-height:1; color:var(--mut); text-decoration:none; }
.gd-x:hover { color:var(--tx); }
/* Todas as unidades: o quadro Grupo de vagas × dia na largura toda; o grupo-dia ao lado só
   com um escolhido, e os pontos de atenção embaixo */
.oc-todas { display:grid; grid-template-columns:minmax(0, 1fr); gap:14px; align-items:start; }
.oc-todas.com-det { grid-template-columns:minmax(0, 1fr) 340px; }
.oc-todas-mapa { min-width:0; }
.oc-todas-det { background:#fff; border:1px solid var(--linha); border-radius:10px; padding:12px 14px; }
@media (max-width: 960px) { .oc-todas.com-det { grid-template-columns:1fr; } }
.gridwrap { overflow-x:auto; background:#fff; border:1px solid var(--linha); border-radius:10px; padding:6px 8px; }
table.occ { width:100%; min-width:1080px; table-layout:fixed; border-collapse:separate; border-spacing:2px; }
table.occ th, table.occ td { padding:0; text-align:center; }
table.occ thead th.g { width:180px; }
table.occ thead th.tot { width:84px; }
table.occ th.g { text-align:left; padding:0 6px; font-size:12.5px; position:sticky; left:0; background:#fff; z-index:1; }
table.occ th.g a { color:var(--tx); text-decoration:none; } table.occ th.g a:hover { text-decoration:underline; }
table.occ th.g small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; font-weight:400; color:var(--mut); }
table.occ th.d { font-size:10px; font-weight:500; color:var(--mut); line-height:1.15; }
table.occ th.d b { display:block; font-size:12px; color:var(--tx); }
table.occ th.fds, table.occ td.fds { width:22px; background:repeating-linear-gradient(135deg, var(--oc-livre) 0 3px, #fafbfc 3px 6px); }
table.occ thead th.fds b { color:var(--mut); }
.occ .c { width:100%; height:34px; border-radius:6px; font-size:13px; display:flex; align-items:center; justify-content:center; position:relative; background:var(--oc-livre); color:var(--mut); text-decoration:none; font-variant-numeric:tabular-nums; }
.occ .c.oc { background:var(--oc); color:var(--oc-tx); } .occ .c.oc.livre { color:var(--mut); }
.occ .c small { font-size:9.5px; opacity:.7; }
.occ .c.cheio, .occ .c.acima { font-weight:700; }
.occ .c.fdsc { flex-direction:column; gap:2px; background:transparent; color:var(--fds-tx2); font-weight:600; line-height:1.05; }
.occ .c.fdsc i { font-style:normal; font-size:11.5px; } .occ .c.fdsc i.p { color:var(--verde); font-weight:800; font-size:11px; }
.occ .c.fdsc:hover { box-shadow:inset 0 0 0 1px #94a3b8; }
.occ .c.sel { outline:2px solid var(--azul); outline-offset:1px; }
.occ .c .mk { position:absolute; top:2px; right:2px; } .occ .c .mk.pd { right:10px; }
table.occ td.tot { text-align:left; padding-left:8px; font-size:12px; white-space:nowrap; line-height:1.25; }
table.occ td.tot b { font-size:13px; }
table.occ td.tot small { margin-left:4px; color:var(--mut); } table.occ td.tot small.sv { color:var(--verm); }
table.occ td.tot small.tot-fds { display:flex; align-items:center; gap:3px; margin:2px 0 0; }
table.occ tfoot th.g { white-space:nowrap; font-weight:600; color:var(--mut); }
table.occ tfoot td { height:22px; font-size:12px; color:var(--fds-tx2); font-variant-numeric:tabular-nums; }
table.occ tfoot tr.t-avt td { color:var(--fds-tx); font-weight:600; } table.occ tfoot tr.t-avt td.fds { color:var(--fds-tx2); }
table.occ tfoot tr.t-fds.p td { color:var(--verde); font-weight:700; }
table.occ tfoot tr:first-child > * { border-top:1px solid var(--linha); }
table.occ tfoot td.tot { font-weight:700; }
.pa-faixa { margin-top:14px; background:#fff; border:1px solid var(--linha); border-radius:12px; padding:12px 14px; }
.pa-faixa h3 { margin:0; font-size:11.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--mut); }
.pa-l { display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:0 16px; margin-top:6px; }
.pa { display:flex; align-items:center; gap:10px; padding:6px 2px; border-bottom:1px solid #f0f2f5; font-size:13px; color:var(--tx); text-decoration:none; }
.pa:hover { background:var(--sup2); }
.pa-d { font-size:12px; color:var(--mut); font-variant-numeric:tabular-nums; }
.pa-m { margin-left:auto; display:flex; align-items:center; gap:4px; }
.mini { display:inline-block; width:14px; height:14px; border-radius:3px; margin-right:2px; vertical-align:middle; }
/* as Semanas da pessoa na cor do estado */
.mini.est-reservada { background:var(--e1-l); box-shadow:inset 0 0 0 1px var(--e1-m); } .mini.est-aprovada { background:var(--e2-l); box-shadow:inset 0 0 0 1px var(--e2-m); }
.mini.est-confirmada { background:var(--e3-l); box-shadow:inset 0 0 0 1px var(--e3-m); } .mini.vazio { background:#fff; border:1px dashed var(--borda); }
.mini.est-desfeita { background:transparent; box-shadow:inset 0 0 0 1.5px var(--e0-m); } /* vazada: não conta no direito */
.badge { display:inline-block; min-width:20px; text-align:center; border-radius:20px; font-size:11.5px; font-weight:700; padding:0 6px; }
.badge.r { background:var(--verm); color:#fff; } .badge.a { background:var(--ambar-cheio); color:var(--ambar-cheio-tx); } .badge.b { background:var(--azul-l); color:var(--azul-esc); }
.semcard { border:1px solid var(--linha); border-radius:10px; padding:10px 12px; margin-bottom:10px; background:#fff; }
.trilho { display:inline-flex; gap:3px; }
.trilho span { min-width:78px; text-align:center; font-size:11.5px; padding:3px 6px; border-radius:4px; background:var(--cinza-l); color:#9ca3af; }
/* aceso até o estado da Semana, cada passo no seu degrau da escada; o último leva ✓ */
.trilho span.on:nth-child(1) { background:var(--e1-l); color:var(--e1); box-shadow:inset 0 0 0 1px var(--e1-m); }
.trilho span.on:nth-child(2) { background:var(--e2-l); color:var(--e2); box-shadow:inset 0 0 0 1px var(--e2-m); }
.trilho span.on:nth-child(3) { background:var(--e3-l); color:var(--e3); box-shadow:inset 0 0 0 1px var(--e3-m); }
.trilho span.on:nth-child(3)::before { content:"✓ "; }
/* Entrada do Anestesista pelo link de acesso: o visual A da tela do calendário. */
.entrada { max-width:480px; margin:0 auto; min-height:100dvh; background:#fff; box-shadow:0 0 0 1px var(--linha); }
.entrada-topo { padding:12px 16px 10px; border-bottom:1px solid var(--linha); display:flex; justify-content:space-between; align-items:baseline; gap:8px; }
.entrada-topo .marca { font-weight:800; font-size:16px; color:var(--azul); }
.entrada-corpo { padding:24px 16px; }
.entrada-corpo h1 { font-size:21px; margin:0 0 10px; }
.entrada-corpo p { font-size:14.5px; }
.entrada-corpo input { border-radius:12px; padding:12px; }
.entrada-corpo form button, .entrada-corpo .botao { width:100%; padding:14px; border-radius:12px; font-weight:700; text-align:center; }
/* "Revisar e salvar" (componentes.html e componentes.js): a barra fixa conta as alterações não
   salvas e abre a revisão no modal de confirmação, que lista cada alteração com a consequência. */
.pagina:has(.rs-barra) { padding-bottom:84px; }
.rs-barra { position:fixed; left:50%; bottom:12px; transform:translateX(-50%); width:max-content; max-width:calc(100vw - 24px); z-index:40; background:#fff; border:1px solid #c7d2fe; box-shadow:0 2px 10px rgba(0,0,0,.08); border-radius:10px; padding:8px 12px; display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.rs-barra[hidden], .modal-fundo[hidden] { display:none; }
.rs-falta { color:var(--verm); font-weight:600; }
.modal-fundo { position:fixed; inset:0; background:rgba(17,24,39,.45); z-index:50; display:flex; align-items:center; justify-content:center; padding:16px; }
.modal { background:#fff; border-radius:14px; padding:16px 18px; max-width:640px; width:100%; max-height:86vh; overflow:auto; }
.modal h2 { margin-top:0; }
.consequencias { padding-left:18px; font-size:14px; }
.consequencias li { margin:3px 0; }
.consequencias .recusada { color:var(--verm); font-weight:600; }
.modal-botoes { display:flex; gap:8px; justify-content:flex-end; flex-wrap:wrap; }
/* A barra de ferramentas das listas (componentes.html e componentes.js): a busca com lupa, as
   pílulas dos filtros (azuis quando ativas), a ordenação em segmentos, "Empilhar" e "x de y". */
.ferr { position:sticky; top:0; z-index:4; display:flex; flex-direction:column; gap:6px; padding:9px 12px 7px; margin-bottom:8px; background:#fff; border:1px solid var(--linha); border-radius:10px; }
.ferr-l { display:flex; align-items:center; gap:6px; flex-wrap:wrap; min-width:0; }
.ferr-busca { flex:1 1 150px; min-width:130px; display:flex; align-items:center; gap:6px; height:32px; padding:0 10px; background:var(--sup2); border:1px solid var(--linha2); border-radius:9px; color:var(--mut); font-weight:400; }
.ferr-busca:focus-within { border-color:var(--azul); background:#fff; box-shadow:0 0 0 3px var(--azul-l); }
.ferr-busca span { font-size:15px; line-height:1; }
.ferr .ferr-busca input { flex:1; min-width:0; margin:0; padding:0; border:0; outline:0; border-radius:0; background:transparent; font-size:13.5px; }
.ferr .ferr-sel { width:auto; max-width:150px; height:32px; margin:0; padding:0 26px 0 11px; border:1px solid var(--linha2); border-radius:16px; font-size:13px; color:#334155; cursor:pointer; text-overflow:ellipsis;
  appearance:none; -webkit-appearance:none; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%236b7280' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 9px center; }
.ferr .ferr-sel.on { border-color:var(--azul); background-color:var(--azul-l); color:var(--azul-esc); font-weight:600; }
.ferr-rot { font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--mut); }
.seg { display:inline-flex; background:var(--cinza-l); border-radius:8px; padding:2px; }
.seg button { border:0; background:transparent; padding:4px 10px; border-radius:6px; color:#475569; font-weight:600; font-size:12.5px; line-height:1.4; }
.seg button[aria-pressed="true"] { background:#fff; color:var(--azul-esc); box-shadow:0 1px 2px rgba(15,23,42,.12); }
.seg button[data-invertida] { background:var(--azul-l); }
.seg .seta { margin-left:4px; font-size:9px; color:var(--azul); }
.seg .seta:empty { display:none; }
.ferr .ferr-emp { margin-left:auto; max-width:190px; }
.ferr-pe { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--mut); }
.ferr-pe [data-ferr-limpar] { margin-left:auto; font-size:12px; padding:2px 4px; }
.ferr [hidden] { display:none; }
.ferr-secao { font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:var(--mut); padding:8px 2px 0; }
/* as pilhas: os itens iguais num monte só; o primeiro mostra a borda dos de baixo */
.pilha { display:flex; flex-direction:column; gap:6px; }
.pilha-cab { display:flex; align-items:center; gap:8px; width:100%; border:0; background:transparent; padding:2px 4px 0; font-size:11.5px; font-weight:700; color:#334155; text-align:left; }
.pilha-cab:hover { color:var(--azul); }
.pilha-cab .pc-n { display:inline-grid; place-items:center; min-width:22px; height:18px; padding:0 6px; border-radius:9px; background:var(--lado); color:#fff; font-size:11px; }
.pilha-cab .pc-r { margin-left:auto; font-weight:600; color:var(--azul); }
.pilha:not(.aberta) > .cartao-fila ~ .cartao-fila { display:none; }
.pilha:not(.aberta) > .cartao-fila:first-of-type { margin-bottom:10px; box-shadow:0 4px 0 -1px #fff, 0 4px 0 0 var(--linha2), 0 8px 0 -1px #fff, 0 8px 0 0 var(--linha); }
.pilha:not(.aberta) > .cartao-fila:first-of-type.aberto { box-shadow:0 0 0 2px var(--t), 0 5px 0 -1px #fff, 0 5px 0 1px var(--linha2), 0 9px 0 -1px #fff, 0 9px 0 1px var(--linha); }
.pilha.aberta { padding-left:10px; border-left:2px solid var(--borda); }
/* a divisória arrastável entre a lista e o detalhe */
.divisor { align-self:stretch; position:relative; min-height:120px; cursor:col-resize; background:var(--linha); border-radius:4px; touch-action:none; }
.divisor::after { content:""; position:absolute; top:60px; left:2px; width:3px; height:44px; border-radius:3px; background:#b8c1ce; }
.divisor:hover, .divisor.arrastando { background:var(--azul-l); }
.divisor:hover::after, .divisor.arrastando::after { background:var(--azul); }
body.redimensionando { cursor:col-resize; user-select:none; }

/* ---------- agenda dos 7 dias (macro agenda): as cores do Anestesista (lib, man, fora) e o Sem vaga ---------- */
.agenda { container:agenda / inline-size; display:flex; flex-direction:column; border:1px solid var(--linha); border-radius:10px; overflow:hidden; background:#fff; margin:12px 0; }
.ag-dia { display:grid; grid-template-columns:62px minmax(0,1fr); border-top:1px solid var(--fundo); }
.ag-dia:first-child { border-top:0; }
.ag-dia.fds { background:var(--sup2); }
.ag-dia.destaque { box-shadow:inset 3px 0 0 var(--azul); background:var(--azul-l); }
.ag-d { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:6px 0; border-right:1px solid var(--fundo); line-height:1.15; }
.ag-d span { font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--mut); }
.ag-d b { font-size:13px; font-variant-numeric:tabular-nums; }
.ag-bxs { display:flex; flex-direction:column; min-width:0; }
.ag-b { display:grid; grid-template-columns:minmax(96px,160px) minmax(0,1fr) auto minmax(104px,auto); align-items:center; gap:2px 10px; min-height:36px; padding:5px 10px 5px 12px; box-shadow:inset 4px 0 0 var(--ag-c, transparent); background:var(--ag-t, transparent); cursor:pointer; }
.ag-b + .ag-b { border-top:1px dashed var(--linha); }
.ag-b.lib { --ag-c:var(--verde); --ag-t:var(--verde-tinta); } .ag-b.man { --ag-c:var(--ambar-forte); --ag-t:var(--ambar-tinta); }
.ag-b.sv { --ag-c:var(--verm); --ag-t:var(--verm-l); } .ag-b.fora { --ag-c:var(--fora); --ag-t:var(--fora-tinta); }
.ag-g { grid-column:1; grid-row:1; font-size:13px; line-height:1.25; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ag-l { grid-column:2; grid-row:1; font-size:12.5px; color:#4b5563; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
.ag-b.aberta .ag-l { white-space:normal; }
.ag-x { grid-column:3; grid-row:1; font-size:12px; color:var(--mut); white-space:nowrap; font-variant-numeric:tabular-nums; }
.ag-x .cheio { color:var(--verm); font-weight:700; }
.ag-x .acima { color:#fff; background:var(--verm); border-radius:5px; padding:1px 6px; font-size:11px; font-weight:700; }
.ag-r { grid-column:4; grid-row:1; justify-self:stretch; text-align:center; font-size:11.5px; font-weight:700; color:#fff; border-radius:6px; padding:3px 6px; background:var(--ag-c, var(--borda)); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ag-nota { font-size:11px; color:var(--verde); background:var(--verde-l); border-radius:5px; padding:1px 6px; font-weight:600; }
.ag-nota::before { content:"✓ "; }
.ag-vazio { color:var(--mut); font-size:12.5px; cursor:default; display:flex; }
/* Com o detalhe estreito, os plantões descem para a 2ª linha. */
@container agenda (max-width: 660px) {
  .ag-b { grid-template-columns:minmax(72px,1fr) auto minmax(84px,auto); }
  .ag-g { grid-column:1; } .ag-x { grid-column:2; } .ag-r { grid-column:3; }
  .ag-l { grid-column:1 / -1; grid-row:2; }
}

/* ---------- Pendências na Fila ---------- */
.titulo-pagina { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; } .titulo-pagina form { margin:0; }
.titulo-fila { display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; }
.sub-h1 { font-size:13px; color:var(--mut); margin:0; }
.sub-h1 b { color:var(--tx); font-variant-numeric:tabular-nums; }
.id-d2i { font:500 11px/1.3 ui-monospace, "SF Mono", Menlo, Consolas, monospace; color:var(--mut); }
.fila-detalhe { min-width:0; }
table.pend-tab { width:100%; font-size:13px; }
table.pend-tab td { overflow-wrap:anywhere; }
table.pend-tab td:first-child, table.pend-tab td:last-child { white-space:nowrap; overflow-wrap:normal; }
table.pend-tab td:last-child { text-align:right; }

/* ---------- ficha em colunas ---------- */
.ficha-cab { display:flex; align-items:flex-start; gap:16px; margin-bottom:12px; }
.ficha-id { min-width:0; flex:1; }
.ficha-id h1 { margin:0 0 4px; }
.ficha-meta { display:flex; flex-wrap:wrap; gap:4px 18px; font-size:13px; color:var(--mut); }
.ficha-meta b { color:var(--tx); }
.ficha-chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.menu-acoes { position:relative; }
.menu-acoes > summary { list-style:none; cursor:pointer; }
.menu-acoes > summary::-webkit-details-marker { display:none; }
.menu-caixa { position:absolute; right:0; top:calc(100% + 4px); z-index:20; min-width:230px; background:#fff; border:1px solid var(--linha); border-radius:10px; box-shadow:0 8px 24px rgba(0,0,0,.12); padding:6px; display:flex; flex-direction:column; }
.menu-caixa > button { border:0; text-align:left; padding:8px 10px; border-radius:7px; background:transparent; }
.menu-caixa > button:hover { background:var(--cinza-l); }
.menu-caixa > button.perigo { color:var(--verm); }
.menu-sep { font-size:10.5px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:var(--mut); padding:8px 10px 2px; border-top:1px solid var(--linha); margin-top:4px; }
.ficha-atencao { background:var(--ambar-tinta); border:1px solid var(--ambar-l); border-left:4px solid var(--ambar-forte); border-radius:10px; padding:10px 14px; margin-bottom:14px; }
.ficha-atencao h2 { margin:0 0 4px; font-size:15px; } .ficha-atencao h3 { margin:8px 0 2px; font-size:12px; color:var(--mut); text-transform:uppercase; letter-spacing:.04em; }
.linha-x { display:flex; align-items:center; gap:10px; padding:5px 0; font-size:13.5px; }
.linha-x .dir { margin-left:auto; display:flex; gap:8px; align-items:center; }
.ficha-cols { display:grid; grid-template-columns:minmax(0, 1fr) 300px; gap:16px; align-items:start; }
@media (max-width: 980px) { .ficha-cols { grid-template-columns:1fr; } }
.ficha-principal h2 { margin:0 0 8px; }
.semana-ficha { background:#fff; border:1px solid var(--linha); border-radius:12px; padding:12px 14px; margin-bottom:12px; }
.semana-ficha.desfeita { opacity:.75; }
.semana-topo { display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px; }
.semana-topo h3 { margin:0; font-size:15px; font-variant-numeric:tabular-nums; }
.semana-topo .dir { margin-left:auto; display:flex; gap:10px; align-items:center; }
.semana-sub { border-top:1px solid var(--linha); margin-top:6px; padding-top:4px; }
.semana-pend { margin-top:8px; } .semana-pend > summary { cursor:pointer; font-size:13px; color:var(--mut); }
.ficha-historico { background:#fff; border:1px solid var(--linha); border-radius:12px; padding:10px 14px; }
.ficha-historico > summary { cursor:pointer; font-weight:600; }
.ficha-lateral { display:flex; flex-direction:column; gap:12px; }
.ficha-lateral .cartao { max-width:none; padding:12px 14px; box-shadow:none; border:1px solid var(--linha); }
.ficha-lateral dd { overflow-wrap:anywhere; }
.ficha-lateral h3 { margin:0 0 6px; font-size:14px; display:flex; align-items:center; gap:8px; }
.ponte-confirmar { margin-top:8px; font-size:13px; } .ponte-confirmar > summary { cursor:pointer; font-weight:600; }
.ponte-confirmar label { display:flex; gap:6px; align-items:center; font-weight:400; margin:4px 0; } .ponte-confirmar input[type=radio] { width:auto; }
.ponte-confirmar select { flex:1; min-width:0; } .ponte-confirmar button { margin-top:6px; }
.lista-lateral { list-style:none; margin:0; padding:0; font-size:13px; } .lista-lateral li { padding:3px 0; }
label.check { font-weight:400; display:inline-flex; gap:6px; align-items:center; margin-right:12px; } label.check input { width:auto; }
.ficha-resumida .ficha-links { display:flex; gap:8px; margin:0 0 12px; }
.semana-linha { display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; padding:6px 0; border-bottom:1px solid var(--linha); font-size:13px; }
.ficha-resumida .ficha-lateral { margin-top:12px; }
/* Pessoas: a tabela larga (linhas em grade, com as seções das situações que a barra insere) e,
   com uma pessoa aberta (.com-det), a tabela recolhida à esquerda e a ficha resumida ao lado. */
.ps { --w-lista:minmax(340px, 30%); display:grid; grid-template-columns:minmax(0, 1fr); column-gap:6px; align-items:start; }
.ps > .divisor, .ps > .ps-det { display:none; }
.ps.com-det { grid-template-columns:var(--w-lista) 7px minmax(0, 1fr); }
.ps.com-det > .divisor, .ps.com-det > .ps-det { display:block; }
.ps-lista { min-width:0; }
.ps-tabela { background:#fff; border:1px solid var(--linha); border-radius:10px; overflow:hidden; }
.ps-cab, .ps-linha { display:grid; grid-template-columns:minmax(250px, 2.2fr) 70px 80px 76px 104px 84px 92px minmax(150px, 1.6fr); column-gap:10px; align-items:center; padding-right:12px; }
.ps-cab { padding:7px 12px 7px 0; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--mut); background:var(--sup2); border-bottom:1px solid var(--linha); }
.ps-linhas .ferr-secao { padding:8px 14px 6px; background:#f3f5f8; border-bottom:1px solid var(--linha); }
.ps-linha { min-height:56px; border-bottom:1px solid #f0f2f5; font-size:13.5px; }
.ps-linha[hidden] { display:none; }
.ps-linha.s-fora { color:var(--mut); }
.ps-nome { display:flex; flex-direction:column; justify-content:center; gap:4px; min-width:0; align-self:stretch; padding:7px 14px; color:var(--tx); border-left:3px solid transparent; text-decoration:none; }
.ps-nome:hover { background:var(--sup2); text-decoration:none; }
.ps-linha.aberto .ps-nome { background:var(--azul-l); border-left-color:var(--azul); }
.ps-nome .l1, .ps-nome .l2 { display:flex; align-items:center; justify-content:space-between; gap:8px; min-width:0; }
.ps-nome .l1 b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ps-semanas { white-space:nowrap; } .ps-semanas small { color:var(--mut); margin-left:2px; font-variant-numeric:tabular-nums; }
.ps-sem { margin-right:8px; } .ps-sem .ps-n { margin:0 3px 0 0; }
.gsel { display:inline-grid; place-items:center; min-width:20px; height:20px; padding:0 4px; border-radius:5px; background:var(--sup2); border:1px solid var(--linha2); font-size:11.5px; font-weight:700; color:var(--mut); }
.gsel.sem { background:var(--verm-l); color:var(--verm); border-color:transparent; } .gsel.vazio { background:none; border:0; }
.gls { display:flex; gap:4px; }
.gl-s { display:inline-grid; place-items:center; width:18px; height:18px; border-radius:4px; background:var(--t); color:#fff; font-size:11px; font-weight:800; }
.gl-s.forte { box-shadow:0 0 0 2px #fff, 0 0 0 3.5px var(--verm); }
.n-k { display:inline-block; text-align:center; font-size:12px; font-weight:700; color:var(--t); background:var(--tl); border-radius:6px; padding:1px 7px; margin:2px 4px 2px 0; white-space:nowrap; }
.n-k.forte { color:#fff; background:var(--verm); }
.ps-linha .x { white-space:nowrap; min-width:0; } .ps-linha .ps-cad { white-space:normal; }
.ps:not(.com-det) .gls { display:none; } /* na tabela larga os alertas têm as suas colunas */
.ps.com-det .ps-cab, .ps.com-det .ps-linha .x { display:none; }
.ps.com-det .ps-linha { grid-template-columns:minmax(0, 1fr); padding:0; }
.ps-det { position:sticky; top:12px; max-height:calc(100vh - 24px); overflow:auto; background:#fff; border-radius:12px; padding:16px 20px 24px; }
.ps-fechar { position:absolute; top:8px; right:10px; border:0; background:none; padding:2px 8px; font-size:22px; line-height:1; color:var(--mut); }
.ps-fechar:hover { color:var(--tx); }
.ps-volta { margin-left:auto; padding:4px 10px; font-size:12.5px; } .ps-volta[hidden] { display:none; }
.ps-cab > :first-child { padding-left:17px; }
.ps-det .ficha-resumida .ficha-lateral { margin-top:16px; }
@media (max-width: 860px) { .ps.com-det { grid-template-columns:1fr; } .ps.com-det > .divisor { display:none; } }

/* ---------- formulários do ADM e telas de entrada ---------- */
/* O painel de formulário dentro da casca (admitir, importar): os campos em duas colunas, com o
   rótulo pequeno em cima, e os botões à direita, embaixo de um traço. */
.form-adm { background:#fff; border:1px solid var(--linha); border-radius:var(--raio); padding:16px 18px; max-width:760px; margin:12px 0; }
.form-adm > p:first-child { margin-top:0; }
.form-adm .campos { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px 16px; }
.form-adm .campos .largo { grid-column:1 / -1; }
.form-adm label, .entrada-cartao label { display:flex; flex-direction:column; gap:4px; font-size:12.5px; font-weight:600; color:var(--mut); }
.form-adm label input, .form-adm label select, .entrada-cartao label input { margin:0; font-size:14px; font-weight:400; color:var(--tx); padding:8px 10px; border-radius:8px; }
.form-adm .botoes { display:flex; justify-content:flex-end; gap:8px; margin-top:16px; padding-top:12px; border-top:1px solid var(--linha); }
.form-adm .botoes > * { padding:8px 16px; }
/* Entrar, recuperar e definir a senha: o cartão estreito no fundo escuro da barra lateral, com a
   marca dela no alto e sem a casca. */
body.entrada-adm { min-height:100vh; display:flex; justify-content:center; align-items:flex-start; padding:12vh 16px 40px; background:var(--lado); font-size:14px; }
.entrada-cartao { width:100%; max-width:380px; }
.entrada-cartao .marca { color:#fff; font-weight:800; font-size:18px; padding:0 4px 14px; }
.entrada-cartao .marca small { color:var(--lado-mut); font-weight:600; font-size:13px; margin-left:5px; }
.entrada-miolo { background:#fff; border-radius:var(--raio); padding:22px 24px 16px; box-shadow:0 12px 32px rgba(0,0,0,.3); }
.entrada-miolo h1 { font-size:18px; margin:0 0 14px; }
.entrada-miolo form { display:flex; flex-direction:column; gap:12px; }
.entrada-miolo form button, .entrada-miolo .botao { width:100%; padding:10px; text-align:center; margin-top:4px; }
.entrada-miolo .small { margin:14px 0 0; }

/* Ficha: o histórico dos ajustes da elegibilidade (o tirado fica desbotado) */
.lista-ajustes { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; font-size:13px; }
.lista-ajustes li.tirado { opacity:.55; }
