/* FACILIT ILPI — páginas de acesso. Identidade: caramelo do logo sobre creme. */

:root{
  --marca:        #a96e36;   /* caramelo — ação e destaque (mãos do logo) */
  --marca-forte:  #8c5a28;   /* estados :hover/:active */
  --marca-suave:  #f1e4d1;   /* preenchimentos leves, anel de foco */
  --cuidado:      #6e7154;   /* verde da engrenagem — uso pontual */

  --tinta:        #2a2016;   /* texto principal — café */
  --tinta-2:      #6b5b49;   /* texto secundário */
  --tinta-3:      #94826c;   /* texto terciário, placeholder */
  --linha:        #e4d8c6;   /* bordas */
  --linha-forte:  #d6c6ae;

  --fundo:        #f6f1e8;   /* fundo da página — creme */
  --cartao:       #ffffff;   /* superfície dos formulários */
  --painel:       #2a1e14;   /* painel de apresentação */
  --painel-tinta: #f4ebdd;
  --painel-tinta-2:#c6b39c;

  --ok:           #3e7a4e;  --ok-fundo: #e6f0e5;
  --aviso:        #a9721a;  --aviso-fundo: #f7ecd7;
  --erro:         #a5402a;  --erro-fundo: #f6e3dd;
  --info-fundo:   #eee6d8;

  --raio:     12px;
  --raio-sm:  9px;
  --sombra:   0 1px 2px rgba(42,32,22,.05), 0 12px 28px -16px rgba(42,32,22,.22);

  --fonte-titulo: "Bricolage Grotesque", "Georgia", serif;
  --fonte:        "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

@media (prefers-color-scheme: dark){
  :root{
    --tinta:#f0e7d8; --tinta-2:#c3b39c; --tinta-3:#93816a;
    --linha:#3b2e20; --linha-forte:#4a3a29;
    --fundo:#1a140d; --cartao:#241c13;
    --marca:#c68f52; --marca-forte:#d7a468; --marca-suave:#33261a;
    --ok:#69b07d; --ok-fundo:#1f2c1e;
    --aviso:#d29a45; --aviso-fundo:#2f2515;
    --erro:#d3765f; --erro-fundo:#33211b;
    --info-fundo:#2a2114;
    --sombra: 0 1px 2px rgba(0,0,0,.4), 0 14px 34px -18px rgba(0,0,0,.7);
  }
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; font-size:112.5%; }   /* base 18px: tudo que é medido em rem fica ~12% maior e mais legível */
body{ margin:0; }
img{ max-width:100%; display:block; }

body.acesso{
  min-height:100vh;
  background:var(--fundo);
  color:var(--tinta);
  font-family:var(--fonte);
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}

/* ---------- pular para o conteúdo ---------- */
.pular{
  position:absolute; left:12px; top:-48px; z-index:10;
  background:var(--marca); color:#fff; padding:9px 14px; border-radius:var(--raio-sm);
  font-weight:600; text-decoration:none; transition:top .15s;
}
.pular:focus{ top:12px; }

/* ---------- grade ---------- */
.acesso__grade{
  min-height:100vh;
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:auto 1fr;   /* apresentação = altura do conteúdo; formulário preenche o resto */
}
@media (min-width:900px){
  .acesso__grade{
    grid-template-columns:minmax(360px, 44vw) 1fr;
    grid-template-rows:1fr;
  }
}

/* ---------- painel de apresentação ---------- */
.acesso__marca{
  background:var(--painel);
  color:var(--painel-tinta);
  padding:26px 24px;
  display:flex;
  flex-direction:column;
  gap:14px;
}
@media (min-width:900px){
  .acesso__marca{
    padding:56px 52px;
    gap:22px;
    justify-content:center;
    max-width:620px;
  }
}
.marca{
  display:inline-flex; align-items:center; gap:12px;
  text-decoration:none; color:inherit; width:max-content;
}
.marca__simbolo{ width:44px; height:44px; }
.marca__nome{
  font-family:var(--fonte-titulo);
  font-weight:700;
  font-size:1.4rem;
  letter-spacing:.02em;
}
@media (min-width:900px){
  .marca__simbolo{ width:60px; height:60px; }
  .marca__nome{ font-size:1.7rem; }
}
.acesso__frase{
  font-family:var(--fonte-titulo);
  font-weight:500;
  font-size:1.15rem;
  line-height:1.3;
  margin:0;
  color:#fff;
  text-wrap:balance;
}
@media (min-width:900px){
  .acesso__frase{ font-size:1.7rem; line-height:1.25; }
}
.acesso__texto{
  margin:0;
  font-size:.94rem;
  color:var(--painel-tinta-2);
  max-width:44ch;
  display:none;
}
@media (min-width:900px){ .acesso__texto{ display:block; } }

/* ---------- área do formulário ---------- */
.acesso__conteudo{
  padding:32px 22px 44px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
}
@media (min-width:900px){
  .acesso__conteudo{ padding:56px 40px; justify-content:center; }
}

.cartao{
  width:100%;
  max-width:410px;
  background:var(--cartao);
  border:1px solid var(--linha);
  border-radius:var(--raio);
  box-shadow:var(--sombra);
  padding:26px 22px 24px;
}
@media (min-width:480px){ .cartao{ padding:30px 30px 28px; } }

.cartao__topo{ margin-bottom:18px; }
.cartao__titulo{
  font-family:var(--fonte-titulo);
  font-weight:600;
  font-size:1.5rem;
  letter-spacing:-.01em;
  margin:0;
  text-wrap:balance;
}
.cartao__sub{
  margin:6px 0 0;
  color:var(--tinta-2);
  font-size:.95rem;
}

/* ---------- formulário ---------- */
form.acesso__form{ display:flex; flex-direction:column; gap:16px; }

.campo{ display:flex; flex-direction:column; gap:6px; }
.campo__rotulo{
  font-size:.9rem;
  font-weight:600;
  color:var(--tinta);
}
.campo__opcional{ color:var(--tinta-3); font-weight:400; }

.campo__entrada{
  width:100%;
  font:inherit;
  font-size:1rem;               /* ≥16px evita zoom no iOS */
  color:var(--tinta);
  background:var(--cartao);
  border:1.5px solid var(--linha-forte);
  border-radius:var(--raio-sm);
  padding:12px 13px;
  min-height:46px;
  transition:border-color .12s, box-shadow .12s;
}
.campo__entrada::placeholder{ color:var(--tinta-3); }
.campo__entrada:focus-visible{
  outline:none;
  border-color:var(--marca);
  box-shadow:0 0 0 3px var(--marca-suave);
}
.campo--erro .campo__entrada{ border-color:var(--erro); }
.campo--erro .campo__entrada:focus-visible{ box-shadow:0 0 0 3px var(--erro-fundo); }

.campo__ajuda{ margin:0; font-size:.85rem; color:var(--tinta-2); }
.campo__erro{ margin:0; font-size:.85rem; color:var(--erro); font-weight:500; }

/* senha + botão de olho */
.campo__grupo{ position:relative; display:flex; }
.campo--senha .campo__entrada{ padding-right:46px; }
.campo__olho{
  position:absolute; right:4px; top:50%; transform:translateY(-50%);
  width:38px; height:38px;
  display:grid; place-items:center;
  border:0; background:transparent; cursor:pointer;
  color:var(--tinta-2); border-radius:8px;
}
.campo__olho:hover{ color:var(--tinta); }
.campo__olho:focus-visible{ outline:2px solid var(--marca); outline-offset:1px; }
.campo__olho svg{ width:20px; height:20px; }
.campo__olho .i-olho-off{ display:none; }
.campo__olho[aria-pressed="true"] .i-olho{ display:none; }
.campo__olho[aria-pressed="true"] .i-olho-off{ display:block; }

/* requisitos da senha */
.requisitos{
  list-style:none; margin:2px 0 0; padding:0;
  display:flex; flex-direction:column; gap:5px;
}
.requisitos__item{
  display:flex; align-items:center; gap:8px;
  font-size:.85rem; color:var(--tinta-2);
}
.requisitos__marca{
  width:15px; height:15px; flex:0 0 auto;
  border:1.5px solid var(--linha-forte); border-radius:50%;
  position:relative; transition:background .12s, border-color .12s;
}
.requisitos__item.ok{ color:var(--ok); }
.requisitos__item.ok .requisitos__marca{
  background:var(--ok); border-color:var(--ok);
}
.requisitos__item.ok .requisitos__marca::after{
  content:""; position:absolute; left:4px; top:1px;
  width:4px; height:8px; border:solid #fff; border-width:0 2px 2px 0;
  transform:rotate(45deg);
}

/* ---------- botão ---------- */
.botao{
  font:inherit; font-weight:600; font-size:1rem;
  border:0; border-radius:var(--raio-sm); cursor:pointer;
  min-height:48px; padding:12px 18px;
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
}
.botao--primario{
  background:var(--marca); color:#fff;
  box-shadow:0 8px 18px -10px rgba(169,110,54,.6);
}
.botao--primario:hover{ background:var(--marca-forte); }
.botao--primario:focus-visible{ outline:2px solid var(--tinta); outline-offset:2px; }
.botao--primario:disabled{ opacity:.65; cursor:progress; box-shadow:none; }
.botao__spinner{
  width:16px; height:16px; border-radius:50%;
  border:2px solid rgba(255,255,255,.4); border-top-color:#fff;
  display:none;
}
.botao.is-carregando .botao__spinner{ display:inline-block; animation:girar .7s linear infinite; }
@keyframes girar{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce){ .botao.is-carregando .botao__spinner{ animation-duration:1.6s; } }

/* ---------- links e rodapé do cartão ---------- */
.link{
  color:var(--marca); font-weight:600; text-decoration:none;
  border-radius:3px;
}
.link:hover{ text-decoration:underline; }
.link:focus-visible{ outline:2px solid var(--marca); outline-offset:2px; }

.cartao__rodape{
  margin-top:20px; padding-top:16px;
  border-top:1px solid var(--linha);
  display:flex; flex-direction:column; gap:10px;
  font-size:.94rem; color:var(--tinta-2);
}
.cartao__rodape p{ margin:0; }
.cartao__linha{ display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; }

/* ---------- alertas ---------- */
.alerta{
  border-radius:var(--raio-sm);
  padding:12px 14px;
  font-size:.92rem;
  margin-bottom:16px;
  border:1px solid transparent;
  border-left-width:4px;
}
.alerta__extra{ margin-top:8px; font-size:.86rem; }
.alerta__extra code{
  display:block; word-break:break-all;
  background:rgba(0,0,0,.05); padding:6px 8px; border-radius:6px; margin-top:4px;
  font-family:ui-monospace, "SFMono-Regular", Menlo, monospace; font-size:.8rem;
}
.alerta--sucesso{ background:var(--ok-fundo); border-color:var(--ok); color:#2c5a39; }
.alerta--erro{ background:var(--erro-fundo); border-color:var(--erro); color:#7d2f1f; }
.alerta--aviso{ background:var(--aviso-fundo); border-color:var(--aviso); color:#7a5314; }
.alerta--info{ background:var(--info-fundo); border-color:var(--linha-forte); color:var(--tinta-2); }
@media (prefers-color-scheme: dark){
  .alerta--sucesso{ color:var(--ok); } .alerta--erro{ color:var(--erro); } .alerta--aviso{ color:var(--aviso); }
}

/* =====================================================================
   Páginas internas (logado)
   ===================================================================== */
body.app{ background:var(--fundo); color:var(--tinta); font-family:var(--fonte); }

/* ---------- shell: menu lateral + corpo ---------- */
.app-shell{ min-height:100vh; }
@media (min-width:1000px){
  .app-shell{ display:grid; grid-template-columns:288px 1fr; }   /* menu mais largo para os nomes completos */
}

.app-nav{
  background:var(--painel); color:var(--painel-tinta);
  display:flex; flex-direction:column; gap:6px;
  padding:14px 12px;
}
@media (max-width:999px){
  .app-nav{
    position:fixed; inset:0 auto 0 0; width:min(84vw, 300px); z-index:60;
    transform:translateX(-100%); transition:transform .22s ease;
    box-shadow:0 0 40px rgba(0,0,0,.35); overflow-y:auto;
  }
  [data-app].nav-aberto .app-nav{ transform:none; }
}
@media (min-width:1000px){
  .app-nav{ position:sticky; top:0; height:100vh; overflow-y:auto; }
}
@media (prefers-reduced-motion:reduce){ .app-nav{ transition:none; } }

.app-nav__cabeca{ display:flex; align-items:center; justify-content:space-between; padding:6px 8px 12px; }
.app-nav__marca{
  display:inline-flex; align-items:center; gap:9px; color:#fff; text-decoration:none;
  font-family:var(--fonte-titulo); font-weight:700; font-size:1.05rem; letter-spacing:.02em;
}
.app-nav__fechar{
  background:transparent; border:0; color:var(--painel-tinta-2); font-size:1.6rem; line-height:1;
  cursor:pointer; padding:4px 8px; border-radius:8px;
}
.app-nav__fechar:hover{ color:#fff; }
@media (min-width:1000px){ .app-nav__fechar{ display:none; } }

.app-nav__lista{ display:flex; flex-direction:column; gap:2px; }
.app-nav__item{
  display:flex; align-items:center; gap:11px;
  padding:11px 12px; border-radius:10px;
  color:var(--painel-tinta); text-decoration:none; font-weight:500; font-size:.95rem;
  border:0; background:transparent; width:100%; cursor:pointer; text-align:left; font-family:inherit;
}
.app-nav__item .i{ width:19px; height:19px; opacity:.85; flex:0 0 auto; }
.app-nav__item:hover{ background:rgba(255,255,255,.08); color:#fff; }
.app-nav__item:focus-visible{ outline:2px solid var(--marca); outline-offset:-2px; }
.app-nav__item.is-ativo{ background:var(--marca); color:#fff; }
.app-nav__item.is-ativo .i{ opacity:1; }
.app-nav__grupo{ margin:16px 12px 6px; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--painel-tinta-2); opacity:.8; }
.app-nav__sec{ margin:0; }
.app-nav__sec > summary{ list-style:none; cursor:pointer; display:flex; align-items:center; border-radius:8px; }
.app-nav__sec > summary::-webkit-details-marker{ display:none; }
.app-nav__sec > summary::after{ content:"›"; margin-left:auto; padding-right:6px; transition:transform .15s; font-size:1rem; }
.app-nav__sec[open] > summary::after{ transform:rotate(90deg); }
.app-nav__sec > summary:hover{ opacity:1; background:rgba(255,255,255,.06); }

/* Árvore Empresas > Colaboradores (super administrador) */
.arv, .arv details{ margin:0; }
.arv > summary, .arv__emp > summary, .arv__colabs > summary{ list-style:none; cursor:pointer; display:flex; align-items:center; gap:8px; border-radius:10px; color:var(--painel-tinta); font-weight:500; font-size:.95rem; }
.arv summary::-webkit-details-marker{ display:none; }
.arv > summary{ padding:11px 12px; }
.arv > summary .i{ width:19px; height:19px; opacity:.85; flex:0 0 auto; }
.arv summary::after{ content:"›"; margin-left:auto; transition:transform .15s; opacity:.7; font-size:1.1rem; }
.arv details[open] > summary::after{ transform:rotate(90deg); }
.arv > summary:hover, .arv__emp > summary:hover, .arv__colabs > summary:hover{ background:rgba(255,255,255,.08); color:#fff; }
.arv__emp{ margin-left:10px; border-left:1px solid rgba(255,255,255,.14); padding-left:6px; }
.arv__emp > summary{ padding:8px 10px; font-size:.9rem; }
.arv__colabs{ margin-left:6px; }
.arv__colabs > summary{ padding:6px 10px; font-size:.85rem; color:var(--painel-tinta-2); }
.arv__link, .arv__colab{ display:flex; align-items:center; gap:8px; padding:6px 10px; margin-left:6px; border-radius:8px; color:var(--painel-tinta); text-decoration:none; font-size:.85rem; }
.arv__link:hover, .arv__colab:hover{ background:rgba(255,255,255,.08); color:#fff; }
.arv__link.is-ativo, .arv__colab.is-ativo{ background:var(--marca); color:#fff; }
.arv__colab .pt{ width:7px; height:7px; border-radius:50%; background:#6fcf97; flex:0 0 auto; }
.arv__colab .pt--off{ background:#bdb3a6; }
.arv__lista{ max-height:320px; overflow:auto; }
.app-nav__sair-form{ margin-top:8px; padding-top:8px; border-top:1px solid rgba(255,255,255,.12); }
.app-nav__sair{ color:var(--painel-tinta-2); }

.app-nav__veu{
  position:fixed; inset:0; z-index:55; border:0; cursor:pointer;
  background:rgba(20,14,8,.5);
}
@media (min-width:1000px){ .app-nav__veu{ display:none; } }

.app-corpo{ display:flex; flex-direction:column; min-width:0; }

/* ---------- barra do topo ---------- */
.app-top{
  position:sticky; top:0; z-index:40;
  display:flex; align-items:center; gap:12px;
  padding:10px 16px; min-height:58px;
  background:var(--cartao); border-bottom:1px solid var(--linha);
}
.app-top__menu{
  background:transparent; border:1.5px solid var(--linha-forte); border-radius:9px;
  color:var(--tinta); cursor:pointer; padding:7px; display:grid; place-items:center;
}
.app-top__menu .i{ width:20px; height:20px; }
@media (min-width:1000px){ .app-top__menu{ display:none; } }
.app-top__titulo{
  font-family:var(--fonte-titulo); font-weight:600; font-size:1.15rem; margin:0;
  flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.app-top__dir{ display:flex; align-items:center; gap:14px; flex:0 0 auto; }
.app-top__sino{ position:relative; color:var(--tinta-2); display:grid; place-items:center; padding:4px; }
.app-top__sino:hover{ color:var(--marca); }
.app-top__sino .i{ width:21px; height:21px; }
.app-top__contador{
  position:absolute; top:-2px; right:-4px; min-width:16px; height:16px; padding:0 3px;
  background:var(--marca); color:#fff; font-size:.68rem; font-weight:700;
  border-radius:999px; display:grid; place-items:center;
}
.app-top__perfil{ display:flex; flex-direction:column; line-height:1.2; text-align:right; }
.app-top__nome{ font-weight:600; font-size:.92rem; }
.app-top__cargo{ font-size:.76rem; color:var(--tinta-3); max-width:36vw; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media (max-width:520px){ .app-top__cargo{ display:none; } }

.app-demo{
  margin:0; padding:8px 16px; font-size:.85rem; font-weight:600;
  background:var(--aviso-fundo); color:var(--aviso); border-bottom:1px solid var(--aviso);
  text-align:center;
}

.app__conteudo{
  max-width:920px; width:100%; margin:0 auto; padding:20px 14px 80px;
  display:flex; flex-direction:column; gap:16px;
}
@media (min-width:640px){ .app__conteudo{ padding:28px 24px 96px; gap:18px; } }

/* cabeçalho de seção (título + subtítulo da página) */
.secao{ display:flex; flex-direction:column; gap:3px; margin-bottom:2px; }
.secao__titulo{
  font-family:var(--fonte-titulo); font-weight:600; font-size:1.5rem;
  letter-spacing:-.01em; margin:0; text-wrap:balance;
}
@media (min-width:640px){ .secao__titulo{ font-size:1.7rem; } }
.secao__sub{ margin:0; color:var(--tinta-2); max-width:62ch; font-size:.95rem; }
.secao .link{ font-size:.9rem; margin-bottom:2px; }

/* cartão interno (largura total) */
.cartao--largo{ max-width:none; width:100%; padding:18px 16px; }
@media (min-width:640px){ .cartao--largo{ padding:22px 24px; } }
.cartao--largo > .cartao__topo:first-child{ margin-bottom:14px; }
.cartao__titulo--sm{ font-size:1.05rem; }

/* sub-cartão: bloco dentro de um cartão, sem sombra */
.subcartao{
  background:var(--fundo); border:1px solid var(--linha);
  border-radius:var(--raio-sm); padding:14px;
}
.subcartao + .subcartao{ margin-top:10px; }

/* divisor */
.hr{ border:0; border-top:1px solid var(--linha); margin:4px 0; }

/* pilha com espaçamento menor */
.pilha--sm{ display:flex; flex-direction:column; gap:8px; }

/* grade de 2 colunas responsiva (cartões lado a lado) */
.grade-2{ display:grid; grid-template-columns:1fr; gap:14px; }
@media (min-width:600px){ .grade-2{ grid-template-columns:1fr 1fr; } }

/* subtítulo dentro de um cartão */
.sub-h3{
  font-family:var(--fonte-titulo); font-weight:600; font-size:1.05rem;
  margin:6px 0 0; color:var(--tinta);
}

/* KPI clicável */
a.kpi{ text-decoration:none; color:inherit; transition:border-color .12s; }
a.kpi:hover{ border-color:var(--marca); }
a.kpi:focus-visible{ outline:2px solid var(--marca); outline-offset:2px; }

/* bloco de destaque do link recém-criado */
.painel-destaque{
  background:var(--marca-suave); border:1px solid var(--linha-forte);
  border-left:4px solid var(--marca); border-radius:var(--raio-sm);
  padding:16px 16px 14px;
}
.painel-destaque__titulo{ margin:0 0 4px; font-weight:600; }
.painel-destaque__meta{ margin:0 0 10px; font-size:.9rem; color:var(--tinta-2); }
.painel-destaque__aviso{ margin:8px 0 0; font-size:.82rem; color:var(--tinta-2); }

.copiavel{ display:flex; gap:8px; }
.copiavel input{
  flex:1 1 auto; min-width:0;
  font:inherit; font-size:.92rem;
  border:1.5px solid var(--linha-forte); border-radius:var(--raio-sm);
  padding:11px 12px; background:var(--cartao); color:var(--tinta);
}
.copiavel .botao{ min-height:auto; padding:11px 16px; white-space:nowrap; }
@media (max-width:460px){ .copiavel{ flex-direction:column; } }

/* botões auxiliares */
.botao--link{
  background:transparent; color:var(--painel-tinta); box-shadow:none;
  min-height:auto; padding:6px 4px; font-size:.92rem; text-decoration:underline;
}
.botao--link:hover{ color:#fff; }
.app .botao--link{ color:var(--marca); }
.app .botao--link:hover{ color:var(--marca-forte); }
.botao--perigo{ color:var(--erro) !important; }

/* tabela */
.tabela-wrap{ overflow-x:auto; }
.tabela{ width:100%; border-collapse:collapse; font-size:.9rem; }
.tabela th, .tabela td{
  text-align:left; padding:10px 12px; border-bottom:1px solid var(--linha);
  vertical-align:top;
}
.tabela th{
  font-size:.78rem; text-transform:uppercase; letter-spacing:.05em;
  color:var(--tinta-3); font-weight:600;
}
.tabela tr:last-child td{ border-bottom:0; }
.fraco{ color:var(--tinta-3); font-size:.85rem; }

.etiqueta{
  display:inline-block; font-size:.78rem; font-weight:600;
  padding:2px 9px; border-radius:999px;
  border:1px solid transparent;
}
.etiqueta.alerta--sucesso{ background:var(--ok-fundo); color:var(--ok); border-color:var(--ok); }
.etiqueta.alerta--info{ background:var(--info-fundo); color:var(--tinta-2); border-color:var(--linha-forte); }
.etiqueta.alerta--aviso{ background:var(--aviso-fundo); color:var(--aviso); border-color:var(--aviso); }

/* select e number herdam .campo__entrada */
select.campo__entrada{ appearance:none; -webkit-appearance:none; background-image:none; }

/* ---------- página simples (painel provisório) ---------- */
.pagina-simples{
  min-height:100vh; display:grid; place-items:center; padding:24px;
  background:var(--fundo); color:var(--tinta); font-family:var(--fonte);
}
.pagina-simples .caixa{
  max-width:440px; background:var(--cartao); border:1px solid var(--linha);
  border-radius:var(--raio); box-shadow:var(--sombra); padding:30px;
}
.pagina-simples h1{ font-family:var(--fonte-titulo); font-size:1.5rem; margin:0 0 10px; }
.pagina-simples p{ margin:0 0 16px; color:var(--tinta-2); }

/* =====================================================================
   Portal do Colaborador + painel do super admin
   ===================================================================== */

textarea.campo__entrada{ min-height:84px; resize:vertical; line-height:1.5; }

/* ícones inline */
.i{ width:22px; height:22px; flex:0 0 auto; }

/* pilha vertical genérica */
.pilha{ display:flex; flex-direction:column; gap:14px; }
.linha-botoes{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; }

/* estado vazio */
.vazio{
  border:1px dashed var(--linha-forte); border-radius:var(--raio-sm);
  padding:22px 18px; text-align:center; color:var(--tinta-2); font-size:.95rem;
  background:var(--info-fundo);
}
.vazio strong{ display:block; color:var(--tinta); margin-bottom:4px; font-size:1rem; }

/* aviso persistente (não é flash) */
.nota{
  border:1px solid var(--linha-forte); border-left:4px solid var(--cuidado);
  background:var(--info-fundo); color:var(--tinta-2);
  border-radius:var(--raio-sm); padding:12px 14px; font-size:.9rem;
}

/* --- KPIs do painel admin --- */
.kpis{ display:grid; grid-template-columns:repeat(auto-fit, minmax(150px,1fr)); gap:12px; }
.kpi{
  background:var(--cartao); border:1px solid var(--linha); border-radius:var(--raio);
  box-shadow:var(--sombra); padding:16px 18px; display:flex; flex-direction:column; gap:2px;
}
.kpi__n{ font-family:var(--fonte-titulo); font-weight:700; font-size:1.9rem; color:var(--marca); line-height:1; }
.kpi__r{ font-size:.85rem; color:var(--tinta-2); }

.atalhos{ display:grid; grid-template-columns:repeat(auto-fit, minmax(200px,1fr)); gap:10px; }
.atalho{
  display:block; padding:14px 16px; border:1.5px solid var(--linha-forte);
  border-radius:var(--raio-sm); text-decoration:none; color:var(--tinta); font-weight:600;
  background:var(--cartao); transition:border-color .12s, background .12s;
}
.atalho:hover{ border-color:var(--marca); background:var(--marca-suave); }
.atalho:focus-visible{ outline:2px solid var(--marca); outline-offset:2px; }

.lista-simples{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.lista-simples li{
  padding:8px 0; border-bottom:1px solid var(--linha);
  display:flex; flex-wrap:wrap; gap:6px 9px; align-items:center;
}
.lista-simples li:last-child{ border-bottom:0; }

/* --- home simples: avisos + botões grandes + bater ponto --- */
.avisos{ display:flex; flex-direction:column; gap:8px; }
.aviso-linha{
  display:flex; align-items:center; gap:12px;
  padding:14px 16px; border-radius:var(--raio-sm);
  background:var(--marca-suave); border:1px solid var(--linha-forte);
  color:var(--tinta); text-decoration:none; font-weight:600; font-size:1rem;
}
.aviso-linha:hover{ border-color:var(--marca); }
.aviso-linha:focus-visible{ outline:2px solid var(--marca); outline-offset:2px; }
.aviso-linha__ic{ display:grid; place-items:center; width:34px; height:34px; flex:0 0 auto;
  border-radius:9px; background:var(--cartao); color:var(--marca-forte); }
.aviso-linha__ic .i{ width:18px; height:18px; }
.aviso-linha__txt{ flex:1 1 auto; }
.aviso-linha__seta .i{ width:18px; height:18px; color:var(--tinta-3); }
.aviso-linha--ok{ background:var(--ok-fundo); border-color:var(--ok); color:var(--ok); margin:0; }
.aviso-linha--ok .aviso-linha__ic{ color:var(--ok); }

.portal-secao{
  font-family:var(--fonte-titulo); font-weight:600; font-size:1.15rem;
  margin:6px 0 0; color:var(--tinta);
}
.atalhos-grandes{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
@media (min-width:640px){ .atalhos-grandes{ grid-template-columns:repeat(3,1fr); gap:12px; } }
.atalho-grande{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
  text-align:center; padding:16px 12px; min-height:112px;
  background:var(--cartao); border:1.5px solid var(--linha-forte); border-radius:var(--raio);
  box-shadow:var(--sombra); text-decoration:none; color:var(--tinta);
  font-weight:600; font-size:.95rem; line-height:1.2;
  transition:border-color .12s, transform .06s;
}
@media (min-width:640px){ .atalho-grande{ padding:22px 14px; min-height:128px; font-size:1rem; } }
.atalho-grande:hover{ border-color:var(--marca); }
.atalho-grande:active{ transform:scale(.98); }
.atalho-grande:focus-visible{ outline:2px solid var(--marca); outline-offset:2px; }
.atalho-grande__ic{
  display:grid; place-items:center; width:44px; height:44px; border-radius:12px;
  background:var(--marca-suave); color:var(--marca-forte);
}
@media (min-width:640px){ .atalho-grande__ic{ width:52px; height:52px; border-radius:14px; } }
.atalho-grande__ic .i{ width:24px; height:24px; }
@media (min-width:640px){ .atalho-grande__ic .i{ width:26px; height:26px; } }

/* cartão de bater ponto em destaque na home */
.bater-destaque{
  border-left:4px solid var(--marca);
}
.bater-destaque__topo{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px; }

.bater-ponto{ display:flex; flex-direction:column; gap:10px; }
.bater-ponto__form{ display:flex; flex-direction:column; gap:10px; }
.bater-ponto__cpf{ display:flex; gap:8px; flex-wrap:wrap; }
.bater-ponto__cpf .campo__entrada{ flex:1 1 180px; min-width:0; }
.bater-ponto__cpf .campo__entrada{
  min-height:52px; font-size:1.15rem; text-align:center; letter-spacing:.04em;
}
.bater-ponto__prox{ margin:2px 0 0; font-size:1rem; color:var(--tinta-2); text-align:center; }
.bater-ponto__prox strong{ color:var(--tinta); }
.bater-ponto__botao{
  min-height:68px; font-size:1.2rem; margin-top:2px;
}
.bater-ponto__botao .i{ width:24px; height:24px; }

/* --- home: cartões do painel --- */
.portal-topo{ display:grid; grid-template-columns:1fr; gap:14px; }
@media (min-width:640px){ .portal-topo{ grid-template-columns:1fr 1fr; } }
.home-cards{ display:grid; grid-template-columns:1fr; gap:14px; }
@media (min-width:560px){ .home-cards{ grid-template-columns:1fr 1fr; } }
.home-card{ padding:18px; display:flex; flex-direction:column; gap:6px; }
.home-card .botao{ margin-top:auto; align-self:flex-start; }
.home-card .link{ margin-top:auto; }
.portal-card{ padding:18px 18px 16px; display:flex; flex-direction:column; gap:6px; }
.portal-card__rotulo{
  font-size:.78rem; text-transform:uppercase; letter-spacing:.06em;
  color:var(--tinta-3); font-weight:700; margin:0 0 2px;
}
.portal-card__forte{ font-family:var(--fonte-titulo); font-size:1.15rem; font-weight:600; margin:0; text-wrap:balance; }
.portal-card__linha{ margin:0; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.portal-card .link{ margin-top:auto; padding-top:6px; }

.portal-pend{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.portal-pend li{ font-size:.92rem; }
.portal-pend a{ color:var(--tinta); text-decoration:none; display:flex; align-items:center; gap:8px; }
.portal-pend a:hover{ color:var(--marca); }
.portal-pend__n{
  display:inline-grid; place-items:center; min-width:22px; height:22px; padding:0 5px;
  background:var(--marca-suave); color:var(--marca-forte); border-radius:999px;
  font-weight:700; font-size:.8rem;
}

/* --- home: grade de recursos (botões grandes no celular) --- */
.portal-recursos{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media (min-width:560px){ .portal-recursos{ grid-template-columns:repeat(3,1fr); } }
.portal-recurso{
  position:relative; display:flex; flex-direction:column; align-items:flex-start; gap:10px;
  padding:16px; min-height:104px;
  background:var(--cartao); border:1.5px solid var(--linha-forte); border-radius:var(--raio);
  text-decoration:none; color:var(--tinta); font-weight:600;
  box-shadow:var(--sombra); transition:border-color .12s, transform .06s;
}
.portal-recurso:hover{ border-color:var(--marca); }
.portal-recurso:active{ transform:scale(.99); }
.portal-recurso:focus-visible{ outline:2px solid var(--marca); outline-offset:2px; }
.portal-recurso__icone{
  display:grid; place-items:center; width:40px; height:40px; border-radius:10px;
  background:var(--marca-suave); color:var(--marca-forte);
}
.portal-recurso__nome{ font-size:.95rem; line-height:1.25; }
.portal-recurso__badge{
  position:absolute; top:10px; right:10px;
  min-width:20px; height:20px; padding:0 5px; border-radius:999px;
  background:var(--marca); color:#fff; font-size:.75rem; font-weight:700;
  display:grid; place-items:center;
}
.portal-sair{ margin-top:8px; }

.botao--contorno{
  background:transparent; color:var(--tinta-2);
  border:1.5px solid var(--linha-forte); box-shadow:none;
}
.botao--contorno:hover{ border-color:var(--marca); color:var(--marca-forte); }
.botao--secundario{
  background:var(--marca-suave); color:var(--marca-forte); box-shadow:none;
}
.botao--secundario:hover{ background:var(--linha-forte); }
.botao:disabled{ opacity:.6; cursor:not-allowed; }
.botao--bloco{ width:100%; }

/* --- navegação entre meses --- */
.mes-nav{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.mes-nav__rotulo{ font-family:var(--fonte-titulo); font-weight:600; font-size:1.1rem; }
.mes-nav a, .mes-nav span[aria-disabled]{
  display:grid; place-items:center; width:40px; height:40px; border-radius:var(--raio-sm);
  border:1.5px solid var(--linha-forte); color:var(--tinta); text-decoration:none;
}
.mes-nav a:hover{ border-color:var(--marca); color:var(--marca-forte); }
.mes-nav span[aria-disabled]{ opacity:.4; }

/* --- calendário da escala --- */
.escala-legenda{ display:flex; flex-wrap:wrap; gap:14px; font-size:.85rem; color:var(--tinta-2); }
.escala-legenda .pt{ display:inline-block; width:12px; height:12px; border-radius:3px; vertical-align:-1px; margin-right:5px; }
.pt--trabalho{ background:var(--ok); }
.pt--folga{ background:var(--linha-forte); }
.pt--extra{ background:var(--aviso); }

.cal-escala{ display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.cal-escala__cab{
  text-align:center; font-size:.7rem; font-weight:700; text-transform:uppercase;
  color:var(--tinta-3); padding:4px 0;
}
.cal-escala__dia{
  min-height:64px; border:1px solid var(--linha); border-radius:7px; padding:4px;
  display:flex; flex-direction:column; gap:3px; background:var(--cartao);
}
@media (min-width:640px){ .cal-escala__dia{ min-height:84px; } }
.cal-escala__dia--fora{ border-color:transparent; background:transparent; }
.cal-escala__dia.is-hoje{ outline:2px solid var(--marca); outline-offset:-1px; }
.cal-escala__dia.e-trabalho{ background:var(--ok-fundo); border-color:var(--ok); }
.cal-escala__dia.e-folga{ background:var(--fundo); }
.cal-escala__dia.e-extra{ background:var(--aviso-fundo); border-color:var(--aviso); }
.cal-escala__n{ font-size:.8rem; font-weight:700; color:var(--tinta-2); }
.cal-escala__tag{ font-size:.68rem; line-height:1.15; font-weight:600; }
.cal-escala__tag.e--trabalho{ color:var(--ok); }
.cal-escala__tag.e--folga{ color:var(--tinta-3); }
.cal-escala__tag.e--extra{ color:var(--aviso); }

/* --- lista da escala --- */
.escala{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
.escala li{
  display:flex; gap:12px; align-items:baseline;
  padding:10px 4px; border-bottom:1px solid var(--linha);
}
.escala li:last-child{ border-bottom:0; }
.escala li.hoje{ background:var(--marca-suave); border-radius:6px; padding-left:8px; padding-right:8px; }
.escala__data{ flex:0 0 84px; font-weight:600; font-size:.9rem; text-transform:capitalize; }
.escala__info{ flex:1 1 auto; font-size:.92rem; }
.escala__tag{ font-size:.75rem; font-weight:700; padding:2px 8px; border-radius:999px; }
.escala__tag--trabalho{ background:var(--ok-fundo); color:var(--ok); }
.escala__tag--folga{ background:var(--info-fundo); color:var(--tinta-2); }
.escala__tag--extra{ background:var(--aviso-fundo); color:var(--aviso); }

/* --- calendário selecionável (folgas / extras) --- */
.cal{ display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.cal__cab{
  text-align:center; font-size:.72rem; font-weight:700; text-transform:uppercase;
  color:var(--tinta-3); padding:4px 0;
}
.cal__dia{ position:relative; }
.cal__dia input{ position:absolute; opacity:0; width:1px; height:1px; }
.cal__dia label{
  display:grid; place-items:center; aspect-ratio:1/1; border-radius:8px;
  border:1.5px solid var(--linha); font-size:.9rem; cursor:pointer;
  transition:background .1s, border-color .1s;
}
.cal__dia label:hover{ border-color:var(--marca); }
.cal__dia input:checked + label{ background:var(--marca); color:#fff; border-color:var(--marca); font-weight:700; }
.cal__dia input:focus-visible + label{ outline:2px solid var(--tinta); outline-offset:2px; }
.cal__dia input:disabled + label{ opacity:.35; cursor:not-allowed; background:transparent; }
.cal__vazio{ aspect-ratio:1/1; }

/* --- pares rótulo/valor (detalhe de ficha, férias) --- */
.kv{ display:grid; grid-template-columns:1fr; gap:2px 14px; margin:0; }
@media (min-width:520px){ .kv{ grid-template-columns:auto 1fr; } }
.kv dt{ font-weight:600; color:var(--tinta-2); font-size:.9rem; }
.kv dd{ margin:0 0 8px; }
@media (min-width:520px){ .kv dd{ margin-bottom:4px; } }

/* --- documento congelado (EPI, texto pré-formatado) --- */
.documento{
  white-space:pre-wrap; font-size:.9rem; line-height:1.6;
  background:var(--fundo); border:1px solid var(--linha);
  border-radius:var(--raio-sm); padding:14px; max-height:340px; overflow:auto;
}

/* --- assinatura --- */
.assinatura{ display:flex; flex-direction:column; gap:8px; }
.assinatura__tela{
  width:100%; height:160px; border:1.5px dashed var(--linha-forte);
  border-radius:var(--raio-sm); background:var(--cartao); touch-action:none;
}
.assinatura__img{ max-width:280px; border:1px solid var(--linha); border-radius:8px; background:#fff; }
.confirmar{ display:flex; gap:10px; align-items:flex-start; font-size:.92rem; }
.confirmar input{ width:20px; height:20px; margin-top:2px; flex:0 0 auto; accent-color:var(--marca); }

/* --- checklist --- */
.chk-item{ padding:14px 0; border-bottom:1px solid var(--linha); display:flex; flex-direction:column; gap:8px; }
.chk-item:last-child{ border-bottom:0; }
.chk-item__texto{ font-weight:600; }
.chk-item__texto .obrig{ color:var(--erro); font-weight:700; }
.chk-op{ display:flex; flex-wrap:wrap; gap:8px; }
.chk-op label{
  display:inline-flex; align-items:center; gap:6px; padding:6px 12px;
  border:1.5px solid var(--linha-forte); border-radius:999px; cursor:pointer; font-size:.88rem;
}
.chk-op input{ position:absolute; opacity:0; }
.chk-op input:checked + span{ font-weight:700; }
.chk-op label:has(input:checked){ border-color:var(--marca); background:var(--marca-suave); color:var(--marca-forte); }
.chk-op label:has(input:focus-visible){ outline:2px solid var(--marca); outline-offset:2px; }
.chk-op--compacto label{ padding:4px 10px; font-size:.78rem; }

/* --- jornada: categorias de hora extra em linhas, sem sintaxe pra decorar --- */
.jornada-cats{ display:flex; flex-direction:column; gap:10px; }
.jornada-cats__linha{
  display:grid; grid-template-columns:1.3fr .7fr 2fr; gap:10px; align-items:start;
  padding:10px; border:1.5px solid var(--linha); border-radius:var(--raio-sm); background:var(--fundo);
}
@media (max-width:640px){ .jornada-cats__linha{ grid-template-columns:1fr; } }
.jornada-cats__pct{ display:flex; align-items:center; gap:6px; }
.jornada-cats__pct span{ color:var(--tinta-2); font-weight:600; }
.jornada-feriados{ display:flex; flex-wrap:wrap; gap:8px; }
.jornada-feriados input{ flex:1 1 150px; }

/* --- badges de status --- */
.status-linha{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:4px; }

/* --- assinar por nome/CPF (tratamento próprio: mais leve e convidativo que o resto do app) --- */
.assinar{
  position:relative; overflow:hidden;
  border:1.5px solid var(--linha-forte);
  border-radius:calc(var(--raio) + 6px);
  padding:18px 18px 20px;
  background:linear-gradient(165deg, var(--ok-fundo) 0%, var(--fundo) 60%);
}
.assinar .campo__entrada{ border-radius:16px; }
.assinar .confirmar{
  background:var(--cartao); border:1.5px solid var(--linha-forte); border-radius:14px;
  padding:12px 14px; transition:border-color .15s ease, background-color .15s ease;
}
.assinar .confirmar:has(input:checked){ border-color:var(--ok); background:var(--ok-fundo); }
.assinar .botao--primario{
  background:linear-gradient(180deg, #6fc084, #4a9a5f);
  box-shadow:0 10px 22px -10px rgba(62,122,78,.5);
  border-radius:999px;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.assinar .botao--primario:hover{
  background:linear-gradient(180deg, #7bcb90, #55a86a);
  transform:translateY(-2px);
  box-shadow:0 14px 26px -10px rgba(62,122,78,.55);
}
.assinar .botao--primario:active{ transform:translateY(0) scale(.98); }
.assinar .assinatura__tela{
  border:2px dashed var(--ok);
  background:repeating-linear-gradient(var(--cartao), var(--cartao) 33px, var(--linha) 34px, var(--cartao) 35px);
}
@media (prefers-reduced-motion:reduce){
  .assinar .botao--primario{ transition:none; }
}

/* --- cartões de equipe (gerador de escala IA): mais fácil de escanear e mexer que tabela --- */
.equipe-grade{ display:flex; flex-wrap:wrap; gap:10px; margin:0 0 14px; }
.equipe-card{
  position:relative; flex:1 1 210px; max-width:270px;
  background:var(--cartao); border:1.5px solid var(--linha-forte); border-radius:16px;
  padding:12px 14px; transition:transform .15s ease, box-shadow .15s ease;
}
.equipe-card:hover{ transform:translateY(-2px); box-shadow:0 10px 20px -12px rgba(42,32,22,.3); }
.equipe-card--tecnico{ border-color:var(--marca); background:linear-gradient(165deg, var(--marca-suave), var(--cartao) 60%); }
.equipe-card--cuidador{ border-color:var(--ok); background:linear-gradient(165deg, var(--ok-fundo), var(--cartao) 60%); }
.equipe-card--folguista{ border-style:dashed; border-color:var(--marca); background:var(--fundo); }
.equipe-card__paridade{
  position:absolute; top:10px; right:38px; font-size:.66rem; font-weight:700;
  width:20px; height:20px; display:flex; align-items:center; justify-content:center;
  border-radius:50%; background:var(--cartao); border:1px solid var(--linha-forte); color:var(--tinta-2);
}
.equipe-card__remover-form{ position:absolute; top:8px; right:8px; margin:0; }
.equipe-card__remover{
  width:22px; height:22px; border-radius:50%; border:1px solid var(--linha-forte); padding:0;
  background:var(--cartao); color:var(--tinta-2); font-size:.95rem; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
}
.equipe-card__remover:hover{ background:var(--erro); color:#fff; border-color:var(--erro); transform:scale(1.08); }
.equipe-card__nome{ font-weight:700; font-size:.95rem; margin:0 44px 2px 0; }
.equipe-card__linha{ font-size:.8rem; margin:2px 0 0; color:var(--tinta-2); }
.equipe-card__pref{ font-size:.8rem; margin:8px 0 0; font-weight:600; }
.equipe-card__vazio{ color:var(--tinta-2); font-size:.88rem; margin:0 0 14px; }
@media (prefers-reduced-motion:reduce){ .equipe-card, .equipe-card__remover{ transition:none; } }

/* --- resumo lúdico do cartão de ponto: previsto/trabalhado/atraso/extra/noturno/saldo --- */
.ponto-resumo{
  display:flex; flex-wrap:wrap; gap:10px; margin:14px 0 18px; list-style:none; padding:0;
}
.ponto-resumo__item{
  flex:1 1 130px; display:flex; flex-direction:column; align-items:flex-start; gap:4px;
  border-radius:16px; padding:12px 14px; border:1.5px solid var(--linha-forte);
  background:var(--cartao); transition:transform .15s ease, box-shadow .15s ease;
}
.ponto-resumo__item:hover{ transform:translateY(-2px); box-shadow:0 10px 20px -12px rgba(42,32,22,.3); }
.ponto-resumo__item .i{ width:20px; height:20px; }
.ponto-resumo__valor{ font-size:1.5rem; font-weight:800; font-variant-numeric:tabular-nums; line-height:1.1; }
.ponto-resumo__rotulo{ font-size:.76rem; font-weight:600; color:var(--tinta-2); text-transform:uppercase; letter-spacing:.04em; }
.ponto-resumo__item--prevista{ background:linear-gradient(165deg, var(--info-fundo), var(--cartao) 65%); }
.ponto-resumo__item--prevista .i{ color:var(--tinta-2); }
.ponto-resumo__item--trabalhado{ border-color:var(--ok); background:linear-gradient(165deg, var(--ok-fundo), var(--cartao) 65%); }
.ponto-resumo__item--trabalhado .i, .ponto-resumo__item--trabalhado .ponto-resumo__valor{ color:var(--ok); }
.ponto-resumo__item--atraso{ border-color:var(--aviso); background:linear-gradient(165deg, var(--aviso-fundo), var(--cartao) 65%); }
.ponto-resumo__item--atraso .i, .ponto-resumo__item--atraso .ponto-resumo__valor{ color:var(--aviso); }
.ponto-resumo__item--extra{ border-color:var(--marca); background:linear-gradient(165deg, var(--marca-suave), var(--cartao) 65%); }
.ponto-resumo__item--extra .i, .ponto-resumo__item--extra .ponto-resumo__valor{ color:var(--marca-forte, var(--marca)); }
.ponto-resumo__item--noturno{ border-color:var(--cuidado); background:linear-gradient(165deg, var(--info-fundo), var(--cartao) 65%); }
.ponto-resumo__item--noturno .i, .ponto-resumo__item--noturno .ponto-resumo__valor{ color:var(--cuidado); }
.ponto-resumo__item--saldo .ponto-resumo__valor{ color:var(--tinta); }
@media (prefers-reduced-motion:reduce){ .ponto-resumo__item{ transition:none; } }

/* --- grade do gerador de escala IA: tabela larga, avisa que tem mais pro lado --- */
.egrade-aviso{
  display:inline-block; background:var(--marca-suave); color:var(--marca-forte);
  border-radius:999px; padding:5px 12px; font-weight:600; margin:6px 0 10px;
}
.egrade-wrap{
  background:
    linear-gradient(to right, var(--cartao) 30%, rgba(255,255,255,0)) left,
    linear-gradient(to right, rgba(255,255,255,0), var(--cartao) 70%) right,
    linear-gradient(to right, rgba(42,32,22,.12), rgba(42,32,22,0)) left,
    linear-gradient(to left, rgba(42,32,22,.12), rgba(42,32,22,0)) right;
  background-repeat:no-repeat; background-color:var(--cartao);
  background-size:40px 100%, 40px 100%, 14px 100%, 14px 100%;
  background-attachment:local, local, scroll, scroll;
}
.jornada__just > summary.botao,
.assinar-linha .botao{ display:inline-flex; }

/* --- ficha de EPI: linhas --- */
.epi-linhas{ display:flex; flex-direction:column; gap:10px; }
.epi-linha{ border:1px solid var(--linha); border-radius:var(--raio-sm); padding:12px 14px; }
.epi-linha--pend{ border-color:var(--aviso); background:var(--aviso-fundo); }
.epi-linha--ok{ border-color:var(--ok); }
.epi-linha__cab{ display:flex; flex-direction:column; gap:2px; margin-bottom:6px; }
.epi-linha__ass{ margin:0; font-size:.9rem; color:var(--ok); font-weight:600; display:flex; align-items:center; gap:6px; }
.epi-linha__ass .i{ width:16px; height:16px; }
.assinar-linha--termo{ border:1px dashed var(--marca); border-radius:var(--raio-sm); padding:12px 14px; }

/* --- home: próximos 7 dias --- */
.dias7{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
.dias7__dia{
  display:flex; gap:12px; align-items:baseline;
  padding:9px 4px; border-bottom:1px solid var(--linha);
}
.dias7__dia:last-child{ border-bottom:0; }
.dias7__dia.is-hoje{ background:var(--marca-suave); border-radius:6px; padding-inline:8px; }
.dias7__data{ flex:0 0 92px; font-weight:600; font-size:.88rem; text-transform:capitalize; }
.dias7__conteudo{ flex:1 1 auto; font-size:.9rem; display:flex; flex-wrap:wrap; gap:6px 8px; align-items:center; }

/* --- home: lista de pendências com ação --- */
.lista-acoes{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.lista-acoes li{
  display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  font-size:.92rem;
}
.lista-acoes li .botao{ min-height:38px; padding:8px 14px; font-size:.88rem; flex:0 0 auto; }
.lista-acoes__ok{ color:var(--ok); font-weight:600; }
.lista-acoes__ok .i{ width:18px; height:18px; }

/* --- bater ponto --- */
.ponto-estado{
  display:flex; align-items:baseline; gap:10px; flex-wrap:wrap;
  border-left:4px solid var(--linha-forte);
}
.ponto-estado__rotulo{ font-family:var(--fonte-titulo); font-weight:600; font-size:1.15rem; }
.ponto-estado__desde{ color:var(--tinta-2); font-size:.92rem; }
.ponto-estado--trabalhando{ border-left-color:var(--ok); }
.ponto-estado--trabalhando .ponto-estado__rotulo{ color:var(--ok); }
.ponto-estado--intervalo{ border-left-color:var(--aviso); }
.ponto-estado--intervalo .ponto-estado__rotulo{ color:var(--aviso); }
.ponto-estado--fora{ border-left-color:var(--tinta-3); }

.ponto-acoes{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.ponto-acao{ min-height:56px; font-size:1.02rem; }
.ponto-acao--entrada{ background:var(--ok); color:#fff; }
.ponto-acao--entrada:hover:not(:disabled){ filter:brightness(.95); }
.ponto-acao--saida{ background:var(--marca); color:#fff; }
.ponto-acao--saida:hover:not(:disabled){ background:var(--marca-forte); }
.ponto-acao--intervalo_inicio,
.ponto-acao--intervalo_fim{ background:var(--marca-suave); color:var(--marca-forte); }
.ponto-acao:disabled{ background:var(--fundo); color:var(--tinta-3); border:1.5px solid var(--linha); }

/* --- jornadas do mês (4 campos por dia) --- */
.jornadas{ display:flex; flex-direction:column; gap:10px; }
.jornada{
  border:1px solid var(--linha); border-radius:var(--raio-sm); padding:12px 14px;
  background:var(--cartao);
}
.jornada--falta{ border-color:var(--aviso); background:var(--aviso-fundo); }
.jornada__cab{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:8px; font-size:.95rem; }
.jornada__slots{ display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
@media (min-width:600px){ .jornada__slots{ grid-template-columns:repeat(4,1fr); } }
.slot{
  display:flex; flex-direction:column; gap:2px; padding:8px 10px;
  border-radius:8px; border:1px solid var(--linha); background:var(--fundo);
}
.slot__rot{ font-size:.72rem; text-transform:uppercase; letter-spacing:.03em; color:var(--tinta-3); }
.slot__val{ font-size:1.05rem; font-weight:700; font-variant-numeric:tabular-nums; }
.slot--ok{ border-color:var(--ok); }
.slot--ok .slot__val{ color:var(--ok); }
.slot--falta{ border-color:var(--erro); border-style:dashed; }
.slot--falta .slot__val{ color:var(--erro); font-weight:600; font-size:.92rem; }
.slot--vazio .slot__val{ color:var(--tinta-3); }

/* slot faltante clicável: o "justificar" mora dentro do próprio campo */
details.slot--justificar{ cursor:pointer; }
details.slot--justificar > summary{ list-style:none; }
details.slot--justificar > summary::-webkit-details-marker{ display:none; }
details.slot--justificar > summary::before{ content:none; }
.slot__acao{
  display:block; font-size:.68rem; font-weight:600; color:var(--marca);
  text-transform:none; letter-spacing:0; margin-top:1px;
}
details.slot--justificar[open]{
  grid-column:1 / -1; background:var(--cartao); border-style:solid;
}
details.slot--justificar[open] .slot__acao{ display:none; }
.slot__form{ margin-top:10px; }

.jornada__just{ margin-top:10px; }
.jornada__just > summary{
  list-style:none; cursor:pointer; width:100%;
  min-height:44px; padding:10px 16px; font-size:.98rem;
}
.jornada__just > summary::-webkit-details-marker{ display:none; }
.jornada__just > summary::before{ content:none; }
.jornada__just[open] > summary{ margin-bottom:0; }
.jornada__aviso{
  margin:10px 0 0; display:flex; align-items:center; gap:6px;
  font-size:.9rem; color:var(--aviso); font-weight:600;
}
.jornada__aviso .i{ width:16px; height:16px; }

.ponto-hist{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
.ponto-hist li{
  display:flex; gap:12px; padding:10px 2px; border-bottom:1px solid var(--linha);
  align-items:baseline;
}
.ponto-hist li:last-child{ border-bottom:0; }
.ponto-hist__dia{ flex:0 0 86px; font-weight:600; font-size:.9rem; text-transform:capitalize; }
.ponto-hist__batidas{ flex:1 1 auto; display:flex; flex-direction:column; gap:4px; }
.ponto-batida{ font-size:.92rem; display:block; }
.ponto-batida strong{ display:inline-block; min-width:44px; }
.ponto-batida .etiqueta{ font-size:.7rem; padding:1px 7px; }

.ponto-detalhe{ margin-top:6px; font-size:.9rem; }
.ponto-detalhe > summary{
  cursor:pointer; color:var(--marca); font-weight:600; list-style:none;
  display:inline-flex; align-items:center; gap:4px;
}
.ponto-detalhe > summary::-webkit-details-marker{ display:none; }
.ponto-detalhe > summary::before{ content:"+ "; }
.ponto-detalhe[open] > summary::before{ content:"– "; }
.ponto-detalhe[open] > summary{ margin-bottom:8px; }
.ponto-detalhe textarea{ width:100%; }
.justif-colab{ margin-top:4px; min-width:150px; }
.justif-colab .etiqueta{ font-size:.68rem; padding:1px 6px; white-space:normal; }
.justif-colab p{ font-size:.76rem; line-height:1.3; }

/* --- folha de ponto --- */
.folha-totais{ display:grid; grid-template-columns:repeat(auto-fit, minmax(130px,1fr)); gap:10px; }
.folha-totais .kpi__n{ font-size:1.4rem; }
.folha-tabela{ font-size:.85rem; white-space:nowrap; }
.folha-tabela td, .folha-tabela th{ padding:8px 10px; }
.folha-tabela tfoot th{ border-top:2px solid var(--linha-forte); color:var(--tinta); font-size:.82rem; text-transform:none; }
.folha-linha--pend{ background:var(--aviso-fundo); }
.folha-linha--hoje td:first-child{ box-shadow:inset 3px 0 0 var(--marca); }
.folha-par{ font-variant-numeric:tabular-nums; }
.folha-neg{ color:var(--erro); font-weight:600; }
.folha-pos{ color:var(--ok); font-weight:600; }
.folha-tabela .etiqueta{ font-size:.68rem; padding:1px 6px; white-space:normal; }

/* rótulos clicáveis dentro da árvore do menu (clicar muda o painel) */
.arv__rotulo{ color:inherit; text-decoration:none; flex:1; display:block; }
.arv__rotulo.is-ativo{ color:#fff; font-weight:700; }

/* ===== Painel de empresas (super administrador) ===== */
.emp-hero{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px;
  background:linear-gradient(135deg, var(--painel) 0%, #3d2b1a 100%); color:var(--painel-tinta);
  border-radius:var(--raio); padding:24px 26px; box-shadow:var(--sombra); margin-bottom:16px;
}
.emp-hero h1{ margin:0; font-family:var(--fonte-titulo); font-weight:700; font-size:1.6rem; color:#fff; }
.emp-hero p{ margin:4px 0 0; color:var(--painel-tinta-2); font-size:.92rem; max-width:560px; }
.emp-hero .botao{ background:var(--marca); border-color:var(--marca); color:#fff; }
.emp-aviso{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; background:var(--aviso-fundo); color:var(--aviso);
  border:1px solid var(--aviso); border-radius:var(--raio-sm); padding:12px 16px; margin:16px 0; font-size:.92rem; }
.emp-aviso a{ color:inherit; font-weight:700; }
.emp-sec{ display:flex; align-items:baseline; justify-content:space-between; margin:22px 2px 12px; }
.emp-sec h2{ margin:0; font-family:var(--fonte-titulo); font-size:1.15rem; }
.emp-sec span{ color:var(--tinta-3); font-size:.85rem; }
.emp-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(330px, 1fr)); gap:16px; }
.emp-card{
  background:var(--cartao); border:1px solid var(--linha); border-radius:var(--raio); box-shadow:var(--sombra);
  padding:18px; display:flex; flex-direction:column; gap:14px; transition:transform .15s ease, border-color .15s ease;
}
.emp-card:hover{ transform:translateY(-2px); border-color:var(--linha-forte); }
.emp-card__topo{ display:flex; gap:12px; align-items:center; }
.emp-card__avatar{
  width:48px; height:48px; border-radius:13px; flex:0 0 auto; display:grid; place-items:center;
  background:var(--marca-suave); color:var(--marca-forte); font-family:var(--fonte-titulo); font-weight:700; font-size:1.1rem; letter-spacing:.02em;
}
.emp-card__nome{ font-family:var(--fonte-titulo); font-weight:600; font-size:1.05rem; color:var(--tinta); text-decoration:none; line-height:1.2; }
.emp-card__nome:hover{ color:var(--marca); }
.emp-card__sub{ font-size:.8rem; color:var(--tinta-3); margin-top:2px; }
.emp-card__nums{ display:grid; grid-template-columns:repeat(3, 1fr); gap:8px; }
.emp-num{ background:var(--fundo); border:1px solid var(--linha); border-radius:var(--raio-sm); padding:10px 6px; text-align:center; text-decoration:none; color:inherit; }
.emp-num:hover{ border-color:var(--marca); }
.emp-num b{ display:block; font-family:var(--fonte-titulo); font-size:1.5rem; line-height:1.1; color:var(--marca); }
.emp-num span{ font-size:.72rem; color:var(--tinta-2); }
.emp-num--alerta{ background:var(--aviso-fundo); border-color:var(--aviso); }
.emp-num--alerta b{ color:var(--aviso); }
.emp-card__chips{ display:flex; flex-wrap:wrap; gap:6px; min-height:24px; }
.emp-card__acoes{ display:flex; flex-wrap:wrap; gap:6px 10px; align-items:center; margin-top:auto; padding-top:12px; border-top:1px solid var(--linha); }
.emp-card__acoes .perigo{ margin-left:auto; color:var(--erro); font-size:.82rem; }
.emp-novo{
  border:2px dashed var(--linha-forte); background:transparent; box-shadow:none; align-items:center; justify-content:center;
  text-align:center; color:var(--tinta-2); text-decoration:none; min-height:210px; font-weight:600;
}
.emp-novo:hover{ border-color:var(--marca); color:var(--marca); transform:none; }
.emp-novo .mais{ font-size:2.2rem; line-height:1; color:var(--marca); }
.app__conteudo:has(.emp-grid){ max-width:1180px; }

/* ===== Abas da página da empresa + Resumo ===== */
.abas{ display:flex; gap:2px; border-bottom:1px solid var(--linha); margin:0 0 18px; overflow-x:auto; scrollbar-width:thin; }
.abas a{ padding:11px 15px; color:var(--tinta-2); text-decoration:none; font-weight:600; font-size:.93rem; white-space:nowrap; border-radius:10px 10px 0 0; }
.abas a:hover{ background:var(--marca-suave); color:var(--tinta); }
.abas a.is-ativa{ color:var(--marca); box-shadow:inset 0 -3px 0 var(--marca); }
.abas .n{ background:var(--aviso); color:#fff; border-radius:99px; font-size:.7rem; padding:1px 7px; margin-left:7px; }
a.kpi:hover{ border-color:var(--marca); }
.res-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(340px, 1fr)); gap:16px; margin-top:16px; align-items:start; }
.res-grid .cartao{ max-width:none; }
.res-lista{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.res-lista li{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; font-size:.92rem; }
.res-barras{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
.res-barras li{ display:grid; grid-template-columns:minmax(90px, 36%) 1fr 28px; gap:10px; align-items:center; font-size:.88rem; }
.res-barras__trilho{ height:10px; background:var(--fundo); border-radius:99px; overflow:hidden; border:1px solid var(--linha); }
.res-barras__barra{ display:block; height:100%; background:var(--marca); border-radius:99px; }
.res-barras b{ text-align:right; color:var(--marca); font-family:var(--fonte-titulo); }
.res-atalhos{ display:grid; grid-template-columns:repeat(auto-fit, minmax(170px, 1fr)); gap:8px; }
.res-atalhos a{ display:block; padding:11px 13px; border:1.5px solid var(--linha-forte); border-radius:var(--raio-sm); color:var(--tinta); text-decoration:none; font-weight:600; font-size:.9rem; }
.res-atalhos a:hover{ border-color:var(--marca); color:var(--marca); background:var(--marca-suave); }

/* --- Cartão de ponto compacto (uma linha por dia) --- */
.cp-controles{ display:flex; flex-wrap:wrap; gap:10px; align-items:end; }
.cp-controles .campo{ margin:0; min-width:150px; }
.cp-barra{ gap:6px; margin-top:10px; align-items:center; }
.cp-barra .botao{ padding:5px 11px; font-size:.82rem; }
.cp-barra .is-desativado{ opacity:.4; pointer-events:none; }
.cp-cols{ position:relative; display:inline-block; }
.cp-cols > summary{ list-style:none; cursor:pointer; }
.cp-cols > summary::-webkit-details-marker{ display:none; }
.cp-cols__lista{ position:absolute; z-index:20; top:110%; left:0; min-width:220px; background:var(--cartao,#fff); border:1.5px solid var(--linha-forte,#ccc); border-radius:10px; padding:8px 12px; display:grid; gap:4px; box-shadow:0 8px 20px -10px rgba(0,0,0,.35); }
.cp-filtros{ gap:6px; margin-top:8px; }
.cp-filtros .botao{ padding:3px 10px; font-size:.78rem; }
.cp-cabeca{ font-size:.88rem; margin-bottom:8px; }
.cp-aviso{ background:#fff4e0; border:1px solid #e8c88a; border-radius:8px; padding:6px 10px; font-size:.82rem; margin:0 0 8px; }
.cp-wrap{ overflow:auto; }
.cp-tab{ width:100%; border-collapse:collapse; font-size:.78rem; font-variant-numeric:tabular-nums; }
.cp-tab th, .cp-tab td{ border:1px solid var(--linha-forte,#d9d3c8); padding:2px 5px; line-height:1.25; vertical-align:middle; white-space:nowrap; }
.cp-tab thead th{ background:var(--marca-suave,#f1e9dc); font-size:.72rem; text-transform:none; text-align:center; position:sticky; top:0; z-index:2; }
.cp-tab .cp-h, .cp-tab .cp-n{ text-align:center; }
.cp-tab .cp-prev span{ display:block; text-align:center; }
.cp-tab .cp-d{ text-align:left; }
.cp-l--fds td{ background:rgba(120,110,95,.06); }
.cp-l--futuro td{ color:var(--tinta-2,#7a7266); background:rgba(0,0,0,.015); }
.cp-l--falta td{ background:#fdeceb; }
.cp-l--aviso td{ background:#fff7e6; }
.cp-sit{ white-space:nowrap; }
.cp-s{ display:inline-block; padding:0 7px; border-radius:99px; font-size:.72rem; border:1px solid var(--linha-forte,#ccc); }
.cp-s--ok{ background:#e6f3e2; border-color:#9ccc8c; }
.cp-s--erro{ background:#fbdcda; border-color:#e49a95; }
.cp-s--aviso{ background:#fff0cf; border-color:#e6c06a; }
.cp-s--info{ background:#e3eefb; border-color:#9fbfe8; }
.cp-s--neutro{ background:#efece6; }
.cp-det{ display:inline-block; position:relative; vertical-align:middle; }
.cp-det > summary{ cursor:pointer; list-style:none; display:inline; padding:0 3px; }
.cp-det > summary::-webkit-details-marker{ display:none; }
.cp-pop{ position:absolute; z-index:30; left:0; top:120%; width:340px; max-height:70vh; overflow:auto; white-space:normal; background:var(--cartao,#fff); border:1.5px solid var(--linha-forte,#bbb); border-radius:10px; padding:8px 10px; box-shadow:0 10px 24px -10px rgba(0,0,0,.4); font-size:.78rem; }
.cp-pop--leve{ width:260px; }
.cp-aj__slot{ display:grid; grid-template-columns:44px 1fr; gap:4px 6px; padding:4px 0; border-top:1px solid var(--linha-forte,#e3ddd2); align-items:start; }
.cp-aj__rot{ font-weight:700; }
.cp-aj__f{ display:grid; gap:3px; }
.cp-aj__f .campo__entrada, .cp-pop .campo__entrada{ padding:2px 6px; font-size:.78rem; }
.cp-ic .i{ width:14px; height:14px; vertical-align:middle; }
.cp-vazio, .cp-pend{ color:var(--tinta-2,#9a9284); }
.cp-pend{ cursor:help; }
.cp-d1, .cp-rh{ font-size:.62rem; color:var(--marca,#a0693b); margin-left:1px; }
.cp-f{ color:#b3261e; font-weight:700; }
.cp-a{ color:#9a6700; font-weight:700; }
.cp-parcial{ display:inline-block; padding:0 6px; border-radius:99px; font-size:.66rem; background:#fff0cf; border:1px solid #e6c06a; color:#7a5200; }
.cp-ok{ display:inline-block; padding:0 6px; border-radius:99px; font-size:.66rem; background:#e6f3e2; border:1px solid #9ccc8c; }
.cp-tot th{ background:var(--marca-suave,#f1e9dc); font-size:.78rem; }
.cp-obs{ white-space:normal !important; min-width:180px; }
.cp-nota{ margin:8px 0 0; }
@media print{
  @page{ size:A4 landscape; margin:8mm; }
  .app-nav, .cp-no-print, .botao--link, .app-topo, header.app-topo, .secao__sub, .cartao--painel-destaque, #justificativas form, .cp-det > summary:not([title="Justificativa"]):not([title="Hora extra"]){ display:none !important; }
  .cp-det[open] .cp-pop, .cp-pop{ display:none !important; }
  .cp-wb, .cp-wf, .cp-whats, .cp-det > summary[title="Hora extra"]{ display:none !important; }   /* impressão = só o espelho, sem botões de ação */
  .app-shell{ display:block !important; }
  body.app, .app-conteudo, main{ background:#fff !important; }
  .cartao, .cartao--largo{ box-shadow:none !important; border:0 !important; padding:0 !important; }
  .cp-tab{ font-size:8.5px; }
  .cp-tab th, .cp-tab td{ padding:1px 3px; }
  .cp-tab thead th{ position:static; }
  .cp-l--falta td, .cp-l--aviso td, .cp-l--fds td, .cp-l--futuro td{ background:#fff !important; }
  .cp-cabeca{ font-size:10px; }
}

.app__conteudo:has(.cp-secao){ max-width:min(1560px, 100%); }
.cp-filtros[hidden], .cp-tab [hidden], .cp-tab th[hidden], .cp-tab td[hidden]{ display:none !important; }
.cp-secao{ overflow:visible; }

/* Painel da empresa: banner "empresa selecionada" + cards de pendência */
.empresa-sel{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; padding:10px 14px; margin:0 0 14px; background:var(--cartao); border:1px solid var(--linha-forte); border-left:4px solid var(--marca); border-radius:var(--raio); }
.empresa-sel__rotulo{ font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--tinta-2); }
.empresa-sel__nome{ font-family:var(--fonte-titulo); font-weight:700; font-size:1.15rem; color:var(--tinta); }
.empresa-sel__troca{ margin-left:auto; display:flex; align-items:center; gap:8px; }
.empresa-sel__troca label{ font-size:.82rem; color:var(--tinta-2); }
.pend-grupo{ margin:18px 0 8px; font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--tinta-2); }
.pend-cards{ display:grid; grid-template-columns:repeat(auto-fill, minmax(230px,1fr)); gap:10px; }
.pend-card{ display:flex; align-items:center; gap:12px; padding:12px 14px; background:var(--cartao); border:1px solid var(--linha); border-radius:var(--raio); text-decoration:none; color:var(--tinta); transition:border-color .12s; }
.pend-card:hover{ border-color:var(--marca); }
.pend-card:focus-visible{ outline:2px solid var(--marca); outline-offset:2px; }
.pend-card__n{ min-width:2.4rem; text-align:center; font-family:var(--fonte-titulo); font-weight:700; font-size:1.5rem; color:var(--marca); font-variant-numeric:tabular-nums; }
.pend-card--erro .pend-card__n{ color:#b3261e; }
.pend-card--info .pend-card__n{ color:var(--tinta-2); }
.pend-card__txt{ font-size:.9rem; line-height:1.3; }

/* Destaque do colaborador: documentos pendentes de assinatura */
.pend-destaque{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 16px; margin:0 0 14px; background:var(--cartao); border:1px solid var(--linha-forte); border-radius:var(--raio); text-decoration:none; color:var(--tinta); }
.pend-destaque__rot{ font-size:.78rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--tinta-2); }
.pend-destaque__n{ font-family:var(--fonte-titulo); font-weight:700; font-size:1.7rem; line-height:1; color:var(--tinta-3); font-variant-numeric:tabular-nums; }
.pend-destaque--ativo{ border-color:var(--marca); border-left-width:4px; }
.pend-destaque--ativo .pend-destaque__rot{ color:var(--tinta); }
.pend-destaque--ativo .pend-destaque__n{ color:var(--marca); }
a.pend-destaque:hover{ border-color:var(--marca); }
a.pend-destaque:focus-visible{ outline:2px solid var(--marca); outline-offset:2px; }

/* Documentos: menu de quadrados (um setor por página) */
.doc-tiles{ display:grid; grid-template-columns:repeat(auto-fit, minmax(230px, 1fr)); gap:14px; margin:6px 0 24px; }
.doc-tile{ display:flex; flex-direction:column; align-items:flex-start; gap:6px; padding:18px; background:var(--cartao); border:1.5px solid var(--linha-forte); border-radius:14px; color:var(--tinta); text-decoration:none; min-height:140px; transition:border-color .15s, background .15s, transform .15s; }
.doc-tile:hover, .doc-tile:focus-visible{ border-color:var(--marca); background:var(--marca-suave); transform:translateY(-2px); }
.doc-tile__ic{ display:inline-flex; width:40px; height:40px; align-items:center; justify-content:center; border-radius:12px; background:var(--marca-suave); color:var(--marca); }
.doc-tile__ic .i{ width:22px; height:22px; }
.doc-tile__tit{ font-size:1.05rem; }
.doc-tile__desc{ font-size:.88rem; opacity:.85; }
@media (prefers-reduced-motion: reduce){ .doc-tile{ transition:none; } .doc-tile:hover{ transform:none; } }

/* Espelho de ponto: células editáveis direto no quadrado */
[data-cp-edit] [data-edit]{ cursor:pointer; }
td[data-edit]:hover, td[data-edit]:focus-visible{ outline:2px dashed var(--marca); outline-offset:-2px; background:var(--marca-suave); }
.cp-s.cp-edit:hover{ filter:brightness(.95); text-decoration:underline dotted; }
.cp-mod{ background:var(--aviso-fundo); box-shadow:inset 3px 0 0 var(--aviso); }
.cp-ed{ width:100%; min-width:76px; font:inherit; }
td.cp-h .cp-ed{ max-width:84px; }
.cp-ed--erro{ border-color:var(--erro) !important; background:var(--erro-fundo); }
.cp-salvar{ position:sticky; bottom:10px; z-index:20; display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:8px 0; padding:10px 14px; border:1.5px solid var(--aviso); border-radius:12px; background:var(--aviso-fundo); box-shadow:0 4px 14px rgba(0,0,0,.12); }
.cp-salvar[hidden]{ display:none; }
@media print{ .cp-salvar{ display:none !important; } }
.cp-whats{ display:inline-flex; flex-wrap:wrap; gap:6px; align-items:center; margin-top:4px; }
.cp-whats__f{ display:inline-flex; gap:6px; align-items:center; margin:0; }
.cp-whats .botao{ padding:4px 10px; font-size:.82rem; }

/* Solicitações de justificativa: filtros em pílulas e cartão do pedido em quadro de informações */
.jsol-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.jsol-chip{ display:inline-flex; align-items:center; gap:6px; padding:7px 13px; border:1.5px solid var(--linha-forte); border-radius:999px; color:var(--tinta); text-decoration:none; font-size:.88rem; font-weight:600; background:var(--cartao); }
.jsol-chip b{ font-variant-numeric:tabular-nums; padding:1px 7px; border-radius:999px; background:var(--marca-suave); color:var(--marca-forte); font-size:.8rem; }
.jsol-chip:hover{ border-color:var(--marca); }
.jsol-chip.is-ativo{ background:var(--marca); border-color:var(--marca); color:#fff; }
.jsol-chip.is-ativo b{ background:rgba(255,255,255,.22); color:#fff; }
.jsol-chip.is-vazio:not(.is-ativo){ opacity:.55; }
.jsol-card{ padding:14px 16px; }
.jsol-card__topo{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 10px; margin-bottom:10px; }
.jsol-card__nome{ font-size:1.05rem; }
.jsol-info{ display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:8px; margin:0 0 8px; }
.jsol-info > div{ padding:8px 10px; border:1px solid var(--linha); border-radius:10px; background:var(--cartao); }
.jsol-info dt{ font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--tinta-2); margin:0 0 2px; }
.jsol-info dd{ margin:0; font-size:.92rem; font-weight:600; }
.jsol-origem{ margin:.2rem 0 .6rem; }
/* botões do WhatsApp no espelho: pequenos, na coluna Situação / ações */
.cp-wf{ display:inline-flex; gap:4px; align-items:center; margin:2px 0 0; }
.cp-wb{ font:inherit; font-size:.72rem; font-weight:600; line-height:1.2; white-space:nowrap; padding:2px 8px; border:1.5px solid var(--marca); border-radius:8px; background:var(--marca-suave); color:var(--marca-forte); cursor:pointer; }
.cp-wb:hover{ background:var(--marca); color:#fff; }
.cp-wb--ok{ background:var(--marca); color:#fff; }
.cp-wb--nao{ border-color:var(--linha-forte); background:transparent; color:var(--erro); padding:2px 6px; }
.cp-wb--nao:hover{ background:var(--erro); color:#fff; border-color:var(--erro); }
/* painel que abre ao mudar um horário */
.cp-painel{ position:absolute; z-index:60; width:320px; max-width:calc(100vw - 16px); padding:14px; border:1.5px solid var(--marca); border-radius:14px; background:var(--cartao); color:var(--tinta); box-shadow:0 10px 30px rgba(0,0,0,.22); white-space:normal; }
.cp-painel p{ margin:.2rem 0 .6rem; font-size:.8rem; }
.cp-painel__op{ display:flex; flex-direction:column; gap:6px; }
.cp-painel__op button{ font:inherit; font-size:.88rem; text-align:left; padding:8px 12px; border:1.5px solid var(--linha-forte); border-radius:10px; background:var(--cartao); color:var(--tinta); cursor:pointer; }
.cp-painel__op button:hover, .cp-painel__op button.is-sel{ border-color:var(--marca); background:var(--marca-suave); }
.cp-painel__outro{ border-style:dashed !important; }
.cp-painel__fechar{ margin-top:8px; font:inherit; font-size:.8rem; background:none; border:0; color:var(--tinta-2); text-decoration:underline; cursor:pointer; padding:2px; }
.cp-motivos{ display:flex; flex-wrap:wrap; gap:4px; margin:4px 0; }
.cp-motivos button{ font:inherit; font-size:.72rem; padding:2px 8px; border:1.5px solid var(--linha-forte); border-radius:999px; background:var(--cartao); color:var(--tinta); cursor:pointer; white-space:nowrap; }
.cp-motivos button:hover{ border-color:var(--marca); background:var(--marca-suave); }

/* Espelho de ponto: preenchimento sugerido pela jornada */
.cp-auto{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:8px 0; }
.cp-auto .botao{ min-height:40px; }
.cp-auto__prev{ border:1px solid var(--linha); background:var(--cartao); border-radius:12px; padding:14px 16px; margin:8px 0 12px; display:grid; gap:10px; }
.cp-auto__lista{ display:grid; gap:6px; max-height:260px; overflow:auto; }
.cp-auto__item{ display:flex; gap:8px; align-items:flex-start; padding:6px 8px; border-radius:8px; background:var(--fundo); }
.cp-auto__item.is-conflito{ opacity:.7; }
td.cp-sug{ background:var(--aviso-fundo); box-shadow:inset 3px 0 0 var(--cor-destaque, #a96e36); font-style:italic; }

/* Item de menu desligado (ex.: "Ver minha escala — OFF") */
.app-nav__item--off{ opacity:.55; cursor:not-allowed; }
.app-nav__item--off:hover{ background:transparent; color:inherit; }

/* "+ Acrescentar linha (nova entrega)" e outros <summary class="botao ...">: o estilo de link do .ponto-detalhe deixava
   o texto caramelo sobre fundo caramelo (ilegível). Aqui o botão volta a ter o contraste do botão. */
.ponto-detalhe > summary.botao{ min-height:48px; padding:12px 18px; font-size:1rem; border-radius:var(--raio-sm); display:inline-flex; }
.ponto-detalhe > summary.botao--primario{ color:#fff; background:var(--marca); }
.ponto-detalhe > summary.botao--primario:hover{ background:var(--marca-forte); }
.ponto-detalhe > summary.botao--primario:focus-visible{ outline:2px solid var(--tinta); outline-offset:2px; }
.ponto-detalhe > summary.botao--secundario{ color:var(--marca-forte); background:var(--marca-suave); }
.ponto-detalhe > summary.botao::before{ content:"+"; font-weight:700; font-size:1.1rem; margin-right:2px; }
.ponto-detalhe[open] > summary.botao::before{ content:"–"; }

/* Holerites da unidade: resumo do lote (encontrados / identificados / para conferir) */
.hl-resumo{ display:flex; flex-wrap:wrap; gap:8px; margin:10px 0; }
.hl-resumo > span{ padding:6px 12px; border-radius:999px; background:var(--fundo); border:1px solid var(--linha); color:var(--tinta); font-size:.9rem; }
.hl-resumo > span.alerta--sucesso{ background:var(--ok-fundo); color:var(--ok); }
.hl-resumo > span.alerta--aviso{ background:var(--aviso-fundo); color:var(--aviso); }
.cp-motivos-sel{ margin:4px 0; font-size:.85rem; padding:6px 8px; max-width:100%; }
/* Documentos enviados: excluir (motivo + senha) abre numa caixa pequena dentro da linha */
.doc-excluir{ display:inline-block; margin-left:4px; }
.doc-excluir > summary{ cursor:pointer; display:inline; color:var(--erro); }
.doc-excluir[open] .doc-excluir__f{ display:grid; gap:6px; margin-top:8px; padding:10px; min-width:240px; max-width:320px; border:1px solid var(--linha); border-radius:var(--raio-sm); background:var(--cartao); }
/* Espelho de ponto do colaborador: o PDF do documento (o mesmo que o RH fechou), não um texto corrido */
.doc-pdf__quadro{ width:100%; height:min(78vh, 900px); border:1px solid var(--linha); border-radius:var(--raio-sm); background:#fff; }
.doc-pdf__acoes{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:8px 0 0; }
@media (max-width: 640px){ .doc-pdf__quadro{ height:60vh; } }
/* Representantes: assinaturas fixas (RH responsável e responsável legal) */
.af-grade{ display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:14px; }
.af-cartao{ border:1px solid var(--linha); border-radius:var(--raio-sm); padding:12px 14px; background:var(--cartao); }
.af-cartao > strong{ font-family:var(--fonte-titulo); font-size:1.05rem; }
.af-texto{ font-size:.85rem; background:var(--info-fundo); border-radius:var(--raio-sm); padding:8px 10px; color:var(--tinta-2); }
/* Espelho de ponto na tela do colaborador: o mesmo conteúdo do PDF, desenhado na página (sem leitor de PDF, sem botão de baixar) */
.esp{ background:#fff; color:#2a2016; border:1px solid var(--linha); border-radius:var(--raio-sm); padding:16px; }
.esp__cab{ display:flex; gap:12px; align-items:flex-start; border-bottom:1px solid var(--linha); padding-bottom:10px; margin-bottom:8px; }
.esp__logo{ width:52px; height:52px; object-fit:contain; }
.esp__titulo{ margin:0; font-family:var(--fonte-titulo); font-size:1.15rem; }
.esp__emp{ margin:2px 0 0; font-size:.82rem; color:#6b5b49; }
.esp__colab{ font-size:.82rem; margin:6px 0 8px; }
.esp__rolagem{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.esp__tab{ width:100%; border-collapse:collapse; font-size:.74rem; font-variant-numeric:tabular-nums; min-width:640px; }
.esp__tab th, .esp__tab td{ border:1px solid #e4d8c6; padding:3px 5px; white-space:nowrap; }
.esp__tab thead th, .esp__tab tfoot th{ background:#f1e4d1; }
.esp__tab tbody tr:nth-child(even) td{ background:#faf6ef; }
.esp__C{ text-align:center; } .esp__R{ text-align:right; } .esp__L{ text-align:left; }
.esp__resumo{ font-size:.8rem; margin:10px 0 4px; }
.esp__assin{ display:grid; grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)); gap:16px; margin-top:22px; }
.esp__linha{ border-top:1px solid #786450; padding-top:4px; display:flex; flex-direction:column; font-size:.8rem; }
.esp__ok{ color:#3e7a4e; font-size:.76rem; }

/* Geração de Documentos (recibo de pagamento e declarações) */
.gd-abas{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 16px; }
.gd-aba{ display:inline-flex; align-items:center; gap:8px; padding:10px 16px; border-radius:999px; border:1px solid var(--linha-forte); background:var(--cartao); color:var(--tinta); text-decoration:none; font-weight:600; }
.gd-aba svg{ width:18px; height:18px; }
.gd-aba.is-ativa{ background:var(--marca); border-color:var(--marca); color:#fff; }
.gd-grade{ display:grid; grid-template-columns:minmax(0, 1fr); gap:16px; align-items:start; }
@media (min-width:1100px){ .gd-grade{ grid-template-columns:minmax(0, 1fr) 320px; } .gd-resumo{ position:sticky; top:16px; } }
.gd-col > .cartao{ margin-bottom:16px; }
.gd-campos{ display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:12px; }
.gd-campos--4{ grid-template-columns:repeat(auto-fit, minmax(160px, 1fr)); }
.gd-campos .campo{ margin:0; }
@media (min-width:700px){ .gd-span2{ grid-column:span 2; } .gd-span4{ grid-column:1 / -1; } }
.gd-itens{ width:100%; border-collapse:collapse; }
.gd-itens th{ text-align:left; font-size:.8rem; text-transform:uppercase; letter-spacing:.04em; color:var(--tinta-2); padding:6px 6px; border-bottom:2px solid var(--linha); }
.gd-itens td{ padding:5px 6px; border-bottom:1px solid var(--linha); vertical-align:middle; }
.gd-itens td:first-child{ width:46%; } .gd-itens td:nth-child(2){ width:24%; }
.gd-itens .campo__entrada{ padding:8px 10px; }
.gd-num{ text-align:right; font-variant-numeric:tabular-nums; }
.gd-resumo{ padding:18px; display:flex; flex-direction:column; gap:12px; }
.gd-tot{ display:grid; grid-template-columns:1fr auto; gap:6px 12px; margin:0; font-variant-numeric:tabular-nums; }
.gd-tot dt{ color:var(--tinta-2); } .gd-tot dd{ margin:0; text-align:right; font-weight:600; }
.gd-tot .gd-liq{ font-size:1.15rem; font-weight:700; color:var(--marca-forte); border-top:1px solid var(--linha); padding-top:8px; }
.gd-tot dd.is-neg{ color:var(--erro); }
.gd-check{ display:flex; gap:8px; align-items:flex-start; font-size:.92rem; }
.botao--bloco{ width:100%; justify-content:center; }
.gd-texto{ font-family:var(--fonte); line-height:1.55; min-height:220px; }
.gd-campos-auto{ display:flex; flex-wrap:wrap; gap:6px; }
.gd-tag{ font:inherit; font-size:.8rem; padding:4px 10px; border-radius:999px; border:1px dashed var(--marca); background:var(--marca-suave); color:var(--marca-forte); cursor:pointer; }
.cp-previa{ display:inline-block; margin-left:4px; font-size:.68rem; font-style:italic; color:var(--aviso); }

/* Lembretes de assinatura separados por categoria (rh-documentos) */
.lem-cat{ border:1px solid var(--linha); border-radius:12px; padding:10px 14px; margin:0 0 12px; background:var(--fundo); }
.lem-cat > summary{ cursor:pointer; font-weight:600; display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.lem-cat__grade{ display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:10px; margin-top:12px; }
.lem-cat__item{ background:var(--cartao, #fff); border:1px solid var(--linha); border-radius:10px; padding:10px 12px; display:flex; flex-direction:column; gap:6px; }
.lem-cat__topo{ display:flex; justify-content:space-between; align-items:center; gap:8px; }
.lem-cat__n{ min-width:28px; text-align:center; padding:2px 8px; border-radius:999px; background:var(--aviso-fundo, #fdf1dc); color:var(--aviso, #8a5a12); font-weight:700; }
.lem-cat__nomes{ margin:0; font-size:.88rem; color:var(--tinta-suave, #6b5b49); }

/* Filtros por cartões selecionáveis (1 documento → 2 colaborador → 3 período) */
.sel-cards .kpi{ cursor:pointer; transition:border-color .15s, box-shadow .15s, transform .15s; }
.sel-cards .kpi:hover{ border-color:var(--marca); transform:translateY(-1px); }
.kpi--ativo{ border:2px solid var(--marca) !important; background:var(--fundo); box-shadow:0 0 0 3px color-mix(in srgb, var(--marca) 18%, transparent); }
.sel-cards--tipo{ grid-template-columns:repeat(auto-fill, minmax(170px,1fr)); }
.sel-cards--tipo .kpi__n{ font-size:1.5rem; }
.filtro-passos__t{ display:flex; align-items:center; gap:8px; font-size:1rem; margin:18px 0 10px; }
.filtro-passos__n{ display:inline-grid; place-items:center; width:26px; height:26px; border-radius:50%; background:var(--marca); color:#fff; font-size:.85rem; font-weight:700; }
.filtro-passos__linha{ display:flex; flex-wrap:wrap; gap:10px; align-items:end; }
.filtro-passos__ativos{ margin:14px 0 0; display:flex; flex-wrap:wrap; gap:6px; align-items:center; }

/* Menu de abas que quebra linha (sem rolagem lateral) + subabas de Configurações */
.abas--quebra{ flex-wrap:wrap; overflow:visible; row-gap:4px; }
.abas--quebra a{ white-space:normal; }
.subabas{ display:flex; flex-wrap:wrap; gap:6px; margin:-8px 0 16px; }
.subabas a{ padding:6px 12px; border:1px solid var(--linha); border-radius:999px; color:var(--tinta-2); text-decoration:none; font-size:.88rem; font-weight:600; background:var(--cartao); }
.subabas a:hover{ border-color:var(--marca); color:var(--tinta); }
.subabas a.is-ativa{ background:var(--marca); border-color:var(--marca); color:#fff; }
@media (max-width: 640px){
  .abas--quebra{ display:grid; grid-template-columns:1fr 1fr; gap:4px; border-bottom:0; }
  .abas--quebra a{ border:1px solid var(--linha); border-radius:10px; text-align:center; padding:9px 8px; }
  .abas--quebra a.is-ativa{ box-shadow:none; border-color:var(--marca); background:var(--marca-suave); }
}
.pend-card__acao{ display:block; margin-top:4px; font-size:.82rem; font-weight:700; color:var(--marca); }
.eq-nome{ min-width:170px; }
.eq-vinc{ display:grid; grid-template-columns:1fr auto; gap:6px; align-items:center; min-width:230px; max-width:320px; }
.eq-vinc select{ grid-column:1 / -1; }
.eq-vinc .botao{ white-space:nowrap; }
.eq-vinc .campo__entrada{ padding:6px 8px; min-height:0; font-size:.88rem; width:auto; }

/* Aviso de ciência antes de assinar (texto exato que fica registrado no aceite) */
.ciencia{ border:1px solid var(--linha); border-left:4px solid var(--marca); border-radius:10px; padding:10px 14px; background:var(--fundo); margin:4px 0 10px; }
.ciencia__tit{ margin:0 0 4px; }
.ciencia__txt{ margin:0 0 8px; font-size:.92rem; line-height:1.45; }
.ciencia__versao{ margin:6px 0 0; font-size:.78rem; word-break:break-all; }

/* rodapé: link do aviso de privacidade (LGPD) */
.rodape-priv{ margin:28px 0 6px; text-align:center; font-size:.82rem; color:var(--tinta-3); }
.jsol-horarios{ margin:.4rem 0; padding:8px 12px; border-radius:10px; background:var(--ok-fundo); color:var(--tinta); }

/* ===== Portal do Gestor ===== */
.gp-troca{ display:flex; flex-wrap:wrap; gap:8px; align-items:end; margin:0 0 14px; }
.gp-troca .campo__entrada{ max-width:320px; }
.gp-grade{ display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:14px; margin:14px 0; }
.gp-grade .cartao{ margin:0; }
.gp-lista{ list-style:none; margin:0; padding:0; display:grid; gap:6px; }
.gp-lista li{ display:flex; justify-content:space-between; gap:12px; padding:8px 10px; border-radius:10px; background:var(--fundo); }
.gp-lista strong{ font-variant-numeric:tabular-nums; }
.gp-alerta{ color:var(--erro); }
.gp-notif{ list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.gp-notif__item{ padding:9px 12px; border-radius:10px; border-left:4px solid var(--linha-forte); background:var(--fundo); }
.gp-notif__item--aviso{ border-left-color:var(--aviso); background:var(--aviso-fundo); }
.gp-notif__item--erro{ border-left-color:var(--erro); background:var(--erro-fundo); }
.gp-notif__item--ok{ border-left-color:var(--ok); background:var(--ok-fundo); }
.gp-notif__item--info{ border-left-color:var(--marca); }
.gp-ativ{ list-style:none; margin:0; padding:0; display:grid; gap:2px; }
.gp-ativ li{ display:grid; grid-template-columns:140px 1fr; gap:10px; padding:7px 0; border-bottom:1px solid var(--linha); font-size:.92rem; }
.gp-ativ__quando{ color:var(--tinta-3); font-variant-numeric:tabular-nums; }
.gp-filtros{ display:flex; flex-wrap:wrap; gap:10px 14px; align-items:end; }
.gp-filtros .campo{ margin:0; min-width:150px; flex:1 1 150px; }
.gp-filtros__botoes{ display:flex; gap:10px; align-items:center; }
.gp-testar{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:0 0 16px; padding:10px 14px; border:1.5px dashed var(--linha-forte); border-radius:14px; }
.gp-testar form{ margin:0; }
.gp-testar__rot{ font-weight:700; color:var(--tinta-2); }
.gp-vinculo{ display:grid; gap:6px; padding:12px 14px; margin:0 0 10px; border:1px solid var(--linha); border-radius:12px; background:var(--fundo); }
.gp-vinculo__form{ display:flex; flex-wrap:wrap; gap:10px 14px; align-items:center; margin:0; }
.gp-vinculo__empresa{ min-width:180px; }
.gp-vinculo__tirar{ margin:0; }
.gp-vinculo__quem{ margin:0; font-size:.82rem; }
.gp-perms{ display:flex; flex-wrap:wrap; gap:6px 14px; }
.gp-perm{ display:inline-flex; gap:6px; align-items:center; font-size:.9rem; cursor:pointer; }
.gp-perm input{ accent-color:var(--marca); width:17px; height:17px; }
.gp-add{ margin-top:8px; }
.gp-add > summary{ display:inline-block; list-style:none; cursor:pointer; }
.gp-add > summary::-webkit-details-marker{ display:none; }
.gp-add[open] > summary{ margin-bottom:10px; }
@media (max-width:600px){ .gp-ativ li{ grid-template-columns:1fr; gap:2px; } }
.gp-testar__gestor{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.gp-testar__gestor .campo__entrada{ width:auto; min-width:200px; padding-top:8px; padding-bottom:8px; }

/* ===== Documentos da empresa e cadastro por link ===== */
.gp-kv{ grid-template-columns:minmax(140px, auto) 1fr; }
.emp-docs{ display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:14px; margin:14px 0; }
.emp-docs .cartao{ margin:0; }
.emp-doc{ border-top:4px solid var(--linha-forte); }
.emp-doc--aprovado{ border-top-color:var(--ok); }
.emp-doc--em_analise{ border-top-color:var(--marca); }
.emp-doc--vencendo, .emp-doc--falta{ border-top-color:var(--aviso); }
.emp-doc--vencido, .emp-doc--recusado{ border-top-color:var(--erro); }
.emp-doc__topo{ display:flex; justify-content:space-between; gap:10px; align-items:center; margin-bottom:6px; }
.emp-doc__det{ margin:4px 0; padding:8px 10px; border-radius:10px; background:var(--fundo); font-size:.9rem; }
.emp-doc__enviar{ margin-top:8px; }
.emp-doc__enviar > summary{ display:inline-block; list-style:none; cursor:pointer; }
.emp-doc__enviar > summary::-webkit-details-marker{ display:none; }
.emp-doc__enviar[open] > summary{ margin-bottom:10px; }
.emp-doc__analise{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:8px 0; }
.emp-doc__analise .campo__entrada{ flex:1 1 180px; width:auto; }
.emp-cad-doc{ border:1px solid var(--linha); border-radius:12px; padding:10px 14px 12px; margin:0 0 12px; }
.emp-cad-doc legend{ font-weight:700; padding:0 6px; }
.emp-cad-doc__linha{ display:flex; flex-wrap:wrap; gap:10px; margin-top:8px; }
.emp-cad-doc__linha .campo{ flex:1 1 160px; margin:0; }
.emp-link-novo{ border:2px solid var(--ok); background:var(--ok-fundo); }

/* ===== Portal do Gestor: ponto e folha ===== */
.gp-ponto-topo{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:end; gap:10px; margin:0 0 14px; }
.gp-ponto-topo .gp-troca{ margin:0; }
.gp-marca{ display:inline-block; margin:2px 6px 2px 0; padding:3px 8px; border-radius:999px; background:var(--fundo); border:1px solid var(--linha); font-size:.82rem; white-space:nowrap; font-variant-numeric:tabular-nums; }
.gp-espelho td{ vertical-align:middle; }
.gp-esp__dia{ white-space:nowrap; }
.gp-esp--falta{ background:var(--erro-fundo); }
.gp-esp--folga{ color:var(--tinta-3); }

/* Painel da Unidade (gestor): o que fazer agora → avisos → "Tudo da sua unidade" em áreas com quadrados → recolhidos */
.gp-agora .pend-grupo:first-of-type{ margin-top:4px; }
.gp-acompanhar{ margin-top:14px; }
.gp-acompanhar > summary{ cursor:pointer; font-weight:600; color:var(--tinta-2); margin-bottom:10px; }
.gp-mapa{ margin:26px 0 18px; display:grid; gap:6px; }
.gp-mapa__titulo{ font-family:var(--fonte-titulo); font-size:1.35rem; font-weight:600; margin:0; text-wrap:balance; }
.gp-mapa__sub{ margin:0 0 6px; }
.gp-area{ display:grid; gap:12px; padding:18px 0 6px; border-top:1px solid var(--linha); }
.gp-area:first-of-type{ border-top:0; padding-top:6px; }
.gp-area__cab{ display:flex; align-items:center; gap:12px; }
.gp-area__ic{ display:inline-flex; width:36px; height:36px; flex:none; align-items:center; justify-content:center; border-radius:10px; background:var(--painel); color:var(--painel-tinta); }
.gp-area__ic .i{ width:20px; height:20px; }
.gp-area__tit{ margin:0; font-size:1.05rem; font-weight:700; letter-spacing:.01em; }
.gp-area__desc{ margin:2px 0 0; font-size:.9rem; color:var(--tinta-2); }
.gp-tiles{ margin:0; grid-template-columns:repeat(auto-fill, minmax(210px, 1fr)); gap:12px; }
.gp-tile{ min-height:128px; }
.gp-tile__topo{ display:flex; width:100%; align-items:flex-start; justify-content:space-between; gap:8px; }
.gp-tile__n{ min-width:28px; height:28px; padding:0 8px; display:inline-flex; align-items:center; justify-content:center; border-radius:999px; background:var(--marca); color:#fff; font-weight:700; font-size:.88rem; font-variant-numeric:tabular-nums; }
.gp-recolhe{ display:block; }
.gp-recolhe > summary{ cursor:pointer; list-style:none; display:flex; align-items:baseline; gap:8px; }
.gp-recolhe > summary::-webkit-details-marker{ display:none; }
.gp-recolhe > summary::before{ content:"›"; display:inline-block; font-weight:700; color:var(--marca); transition:transform .15s; }
.gp-recolhe[open] > summary{ margin-bottom:12px; }
.gp-recolhe[open] > summary::before{ transform:rotate(90deg); }
@media (prefers-reduced-motion: reduce){ .gp-recolhe > summary::before{ transition:none; } }
@media (max-width:520px){ .gp-tiles{ grid-template-columns:1fr 1fr; gap:10px; } .gp-tile{ min-height:118px; padding:14px; } .gp-tile .doc-tile__desc{ font-size:.82rem; } }
.gp-agora__cols{ display:grid; grid-template-columns:repeat(auto-fit, minmax(250px, 1fr)); gap:4px 22px; }
.gp-agora__cols .pend-grupo{ margin:8px 0 8px; }
.gp-agora__lista{ list-style:none; margin:0; padding:0; display:grid; gap:6px; align-content:start; }
.gp-agora__item{ display:flex; align-items:center; gap:10px; padding:8px 12px; border-radius:10px; background:var(--fundo); border:1px solid transparent; color:var(--tinta); text-decoration:none; }
.gp-agora__item:hover{ border-color:var(--marca); }
.gp-agora__item:focus-visible{ outline:2px solid var(--marca); outline-offset:2px; }
.gp-agora__n{ min-width:1.9rem; text-align:center; font-family:var(--fonte-titulo); font-weight:700; font-size:1.2rem; color:var(--marca); font-variant-numeric:tabular-nums; }
.gp-agora__item--erro .gp-agora__n{ color:var(--erro); }
.gp-agora__item--info .gp-agora__n{ color:var(--tinta-2); }
.gp-agora__txt{ font-size:.9rem; line-height:1.3; }
.gp-agora__txt small{ display:block; margin-top:2px; font-size:.8rem; font-weight:700; color:var(--marca); }
.gp-avisos-largo{ margin:14px 0; }
.gp-avisos-largo .cartao{ max-width:none; margin:0; }
.gp-avisos-largo .gp-notif{ grid-template-columns:repeat(auto-fit, minmax(250px, 1fr)); }
/* Financeiro da Empresa (CEO): os dois jeitos de ligar a Tina lado a lado */
.fin-modos{ display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:14px; margin:10px 0; }
.fin-modo{ display:grid; gap:10px; align-content:start; padding:16px; border:1px solid var(--linha); border-radius:var(--raio); background:var(--fundo); }
.fin-modo--atual{ border-color:var(--ok); box-shadow:inset 4px 0 0 var(--ok); }
.fin-modo__tit{ margin:0; font-size:1rem; font-weight:700; display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
/* Pasta da Vigilância Sanitária: círculo da % completa + o que falta */
.emp-pasta{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.emp-pasta__txt{ flex:1 1 280px; min-width:0; display:grid; gap:8px; }
.emp-pasta__txt .cartao__titulo{ margin:0; }
.emp-pasta__resumo{ margin:0; color:var(--tinta-2); }
.emp-pasta__resumo strong{ color:var(--tinta); }
.emp-pasta__lemb{ margin:0; padding-left:18px; font-size:.85rem; color:var(--tinta-2); }
.emp-anel{ position:relative; width:120px; height:120px; flex:none; }
.emp-anel__svg{ width:100%; height:100%; transform:rotate(-90deg); }
.emp-anel__fundo{ fill:none; stroke:var(--linha); stroke-width:10; }
.emp-anel__cheio{ fill:none; stroke-width:10; stroke-linecap:round; transition:stroke-dasharray .6s ease; }
.emp-anel__pct{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:var(--fonte-titulo); font-weight:700; font-size:1.6rem; color:var(--tinta); font-variant-numeric:tabular-nums; }
@media (prefers-reduced-motion: reduce){ .emp-anel__cheio{ transition:none; } }
.emp-faltas{ display:flex; flex-wrap:wrap; gap:6px; }
.emp-falta{ display:inline-flex; gap:6px; align-items:baseline; padding:4px 10px; border-radius:999px; background:var(--aviso-fundo); color:var(--tinta); font-size:.82rem; text-decoration:none; border:1px solid transparent; }
.emp-falta small{ color:var(--tinta-2); font-size:.75rem; }
.emp-falta:hover{ border-color:var(--marca); }
.emp-falta--vencido, .emp-falta--recusado{ background:var(--erro-fundo); }
.emp-falta--em_analise{ background:var(--info-fundo); }
.emp-doc--nao_aplica{ border-top-color:var(--linha); opacity:.8; }
.emp-doc__na{ margin:2px 0 4px; }
@media (max-width:520px){ .emp-pasta{ gap:14px; } .emp-anel{ width:96px; height:96px; } .emp-anel__pct{ font-size:1.3rem; } }
.emp-falta--mais{ background:var(--fundo); color:var(--tinta-2); }
.contra-form{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:0; }
