/* Estilos das páginas do grupo "gestao" (ver _partes/cabeca.html):
   financeiro, agenda, plataforma, recursos e segurança.
   Tudo com o prefixo g- para não colidir com os outros grupos. */

/* ==========================================================================
   Cabeçalho da página: mini tela da página no lugar do cartão de 3 linhas
   (reaproveita a moldura .page-aside do site.css)
   ========================================================================== */
.g-hero .page-aside.g-aside {
  width: 318px;
  top: 168px;
  padding: 20px;
  color: #e6f1fd;
}
.g-aside small {
  letter-spacing: 0;
  font-weight: 500;
}
.g-aside .g-mini-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 14px;
}
.g-mini-label {
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #7cefe3;
}
.g-mini-ex {
  flex: none;
  font-size: 0.75rem;
  font-weight: 700;
  color: #d6e7fb;
  border: 1px solid #ffffff38;
  border-radius: 99px;
  padding: 3px 9px;
}
.g-mini-valor {
  display: flex;
  align-items: baseline;
  gap: 10px;
  font:
    800 2.1rem/1.1 Manrope,
    sans-serif;
  letter-spacing: -0.04em;
  color: #fff;
}
.g-mini-up {
  font:
    800 0.78rem/1 "DM Sans",
    sans-serif;
  letter-spacing: 0;
  color: #06372a;
  background: #7cefc4;
  padding: 4px 8px;
  border-radius: 99px;
}
.g-mini-sub {
  margin-top: 6px;
  font-size: 0.8rem;
  color: #b9cfec;
}
.g-mini-bars {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
  align-items: end;
  height: 96px;
  margin: 16px 0 14px;
}
.g-mini-bars span {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
  gap: 6px;
  font-size: 0.75rem;
  color: #b9cfec;
}
.g-mini-bars i {
  width: 100%;
  max-width: 26px;
  height: calc(var(--h) * 0.72);
  border-radius: 6px 6px 2px 2px;
  background: #ffffff33;
}
.g-mini-bars span:last-child {
  color: #fff;
  font-weight: 800;
}
.g-mini-bars span:last-child i {
  background: linear-gradient(180deg, #8af5e9, #3fb7e8);
}
.g-mini-linhas,
.g-mini-slots,
.g-mini-mods,
.g-mini-res {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.g-mini-linhas li,
.g-mini-slots li,
.g-mini-mods li,
.g-mini-res li {
  border-radius: 11px;
  background: #ffffff10;
  border: 1px solid #ffffff1a;
}
.g-mini-linhas li {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  font-size: 0.8rem;
  color: #d9eafb;
}
.g-mini-linhas b {
  color: #fff;
}
.g-mini-linhas .alerta {
  color: #ffbcb2;
}
/* agenda */
.g-mini-slots li {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
}
.g-mini-slots time {
  font-size: 0.8rem;
  font-weight: 800;
  color: #a7dcff;
}
.g-mini-slots b,
.g-mini-mods b,
.g-mini-res b {
  display: block;
  font-size: 0.86rem;
  line-height: 1.3;
  color: #fff;
}
.g-mini-slots small,
.g-mini-res small {
  display: block;
  font-size: 0.75rem;
  line-height: 1.4;
  color: #bcd2ee;
}
.g-mini-slots li.livre {
  background: transparent;
  border-style: dashed;
  border-color: #7cefe380;
}
.g-mini-st {
  font-size: 0.75rem;
  font-weight: 800;
  padding: 4px 8px;
  border-radius: 99px;
  white-space: nowrap;
  color: #e6f1fd;
  background: #ffffff26;
}
.g-mini-st.ok {
  color: #06372a;
  background: #7cefc4;
}
.g-mini-acao {
  margin-top: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #0f7a3e;
  color: #fff;
  font-size: 0.8rem;
  font-weight: 800;
}
.g-mini-acao .wa-icon {
  width: 16px;
  height: 16px;
}
/* plataforma */
.g-mini-pac {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 12px;
  margin-bottom: 12px;
  border-bottom: 1px solid #ffffff22;
}
.g-mini-pac b {
  display: block;
  font-size: 0.95rem;
  color: #fff;
}
.g-mini-pac small {
  display: block;
  font-size: 0.78rem;
  color: #bcd2ee;
}
.g-av {
  flex: none;
  width: 38px;
  height: 38px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  font:
    800 0.8rem Manrope,
    sans-serif;
  letter-spacing: 0;
  background: #e6ecff;
  color: #2340c2;
}
.g-aside .g-av {
  background: #41a7e84d;
  color: #a6f8ef;
}
.g-mini-mods li {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 9px 12px;
}
.g-mini-mods span {
  font-size: 0.78rem;
  font-weight: 800;
  color: #7cefe3;
}
.g-mini-mods b {
  font-size: 0.8rem;
  font-weight: 650;
}
/* recursos */
.g-mini-busca {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 12px;
  border-radius: 12px;
  background: #fff;
  color: var(--ink);
  font-size: 0.9rem;
  font-weight: 650;
  margin-bottom: 12px;
}
.g-mini-busca .icon {
  width: 17px;
  height: 17px;
  color: #5b6a80;
}
.g-cursor {
  display: inline-block;
  width: 2px;
  height: 18px;
  margin-left: -8px;
  background: var(--blue);
  animation: g-pisca 1.1s steps(1) infinite;
}
@keyframes g-pisca {
  50% {
    opacity: 0;
  }
}
.g-mini-res li {
  padding: 10px 12px;
}
.g-mini-res mark {
  background: #7cefe345;
  color: #fff;
  border-radius: 3px;
  padding: 0 2px;
}
.g-mini-rodape {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  font-size: 0.78rem;
  color: #bcd2ee;
}
.g-mini-rodape .icon {
  width: 15px;
  height: 15px;
  color: #7cefe3;
}
/* segurança */
.g-mini-title {
  display: block;
  font:
    800 1.2rem/1.25 Manrope,
    sans-serif;
  letter-spacing: -0.03em;
  color: #fff;
}
.g-mini-texto {
  display: block;
  margin-top: 6px;
  font-size: 0.82rem;
  line-height: 1.5;
  color: #bcd2ee;
}
.g-mini-codigo {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 6px;
  margin: 16px 0 12px;
}
.g-mini-codigo span {
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: #ffffff14;
  border: 1px solid #ffffff2e;
  font:
    800 1.2rem Manrope,
    sans-serif;
  color: #fff;
}
.g-mini-codigo span.ativo {
  border-color: #7cefe3;
  box-shadow: 0 0 0 3px #7cefe333;
}
.g-mini-codigo .g-cursor {
  margin: 0;
  height: 20px;
  background: #7cefe3;
}
.g-mini-botao {
  display: block;
  text-align: center;
  padding: 11px;
  border-radius: 10px;
  background: var(--blue);
  color: #fff;
  font-weight: 800;
  font-size: 0.86rem;
}

/* Notebook (1031 a 1360 px): a mini tela continua ao lado do texto, que fica mais estreito para não encostar nela */
@media (min-width: 1031px) and (max-width: 1360px) {
  .g-hero .page-aside.g-aside {
    display: block;
    right: 32px;
    top: 150px;
    width: 300px;
  }
  .g-hero .page-hero-inner h1,
  .g-hero .page-hero-inner > p {
    max-width: calc(100% - 340px);
  }
}
/* Tablet e celular: a mini tela entra no fluxo, abaixo do texto, sem cobrir nada */
@media (max-width: 1030px) {
  .g-hero .page-aside.g-aside {
    display: block;
    position: relative;
    top: auto;
    right: auto;
    z-index: 1;
    width: auto;
    max-width: 420px;
    margin: 44px 0 0 23px;
    transform: none;
    animation: none;
  }
  .g-hero .page-aside.g-aside::after {
    display: none;
  }
}
@media (max-width: 720px) {
  .g-hero .page-hero-inner > .btn {
    width: 100%;
  }
  .g-hero .page-aside.g-aside {
    margin: 36px 18px 0;
    max-width: none;
    padding: 18px;
  }
}

/* ==========================================================================
   Moldura das telas de exemplo
   ========================================================================== */
.g-tela {
  background: #fff;
  border: 1px solid #dfe7f2;
  border-radius: 22px;
  box-shadow: 0 30px 80px rgba(12, 30, 67, 0.12);
  overflow: hidden;
  color: var(--ink);
  min-width: 0;
}
.g-tela-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 46px;
  padding: 0 18px;
  border-bottom: 1px solid #e9eef5;
  background: #f8fafd;
}
.g-tela-bar .dots {
  flex: none;
}
.g-crumb {
  flex: 1;
  min-width: 0;
  font-size: 0.8rem;
  font-weight: 700;
  color: #55647b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.g-ex {
  flex: none;
  font-size: 0.75rem;
  font-weight: 800;
  color: #08715f;
  background: #e1f6f1;
  padding: 4px 10px;
  border-radius: 99px;
}
.g-tela-body {
  padding: 22px;
}
.g-nobr {
  white-space: nowrap;
}
.g-nota {
  margin-top: 14px;
  font-size: 0.82rem;
  color: #5f6f86;
}
.g-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  justify-self: start;
  font-size: 0.75rem;
  font-weight: 800;
  line-height: 1.25;
  padding: 5px 10px;
  border-radius: 99px;
  background: #eef2f8;
  color: #3c4b63;
  white-space: nowrap;
}
.g-chip.ok {
  background: #dff5ea;
  color: #0b6447;
}
.g-chip.azul {
  background: #e6ecff;
  color: #2340c2;
}
.g-chip.vermelho {
  background: #fde6ea;
  color: #a3243a;
}
.g-chip.laranja {
  background: #fff0de;
  color: #8f4306;
}
.g-chip.cheio {
  background: var(--blue);
  color: #fff;
}
.g-valor {
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  text-align: right;
  white-space: nowrap;
}
.g-sub {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
  margin: 0 0 10px;
  font:
    800 0.9rem/1.3 "DM Sans",
    sans-serif;
  letter-spacing: 0;
  color: var(--ink);
}
.g-sub span:last-child:not(:first-child) {
  font-size: 0.78rem;
  font-weight: 650;
  color: #53627a;
}
.g-lista {
  list-style: none;
  margin: 0;
  padding: 0;
}
.g-lista li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  padding: 12px 0;
  border-top: 1px solid #edf1f6;
}
.g-lista li:first-child {
  border-top: 0;
  padding-top: 0;
}
.g-lista li > div {
  flex: 1 1 200px;
  min-width: 0;
}
.g-lista b {
  display: block;
  font-size: 0.9rem;
  line-height: 1.35;
}
.g-lista small {
  display: block;
  font-size: 0.8rem;
  line-height: 1.45;
  color: #53627a;
}
.g-cod {
  flex: none;
  width: 72px;
  font-size: 0.75rem;
  font-weight: 800;
  color: #53627a;
  font-variant-numeric: tabular-nums;
}
.g-qtd {
  flex: none;
  min-width: 48px;
  font-size: 0.84rem;
  font-weight: 800;
  text-align: right;
}
.g-ia {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: 12px;
  background: #f3f0ff;
  color: #33296a;
  font-size: 0.86rem;
  line-height: 1.5;
}
.g-ia .icon {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  color: #5b3fd0;
}
.g-ia small {
  display: block;
  margin-top: 3px;
  font-size: 0.75rem;
  color: #54488c;
}
@media (max-width: 720px) {
  .g-tela {
    border-radius: 18px;
  }
  .g-tela-bar {
    padding: 0 14px;
    gap: 10px;
  }
  .g-tela-body {
    padding: 14px;
  }
  .g-cod {
    display: none;
  }
  .g-chip {
    white-space: normal;
  }
}

/* ==========================================================================
   Financeiro: painel de exemplo
   ========================================================================== */
.g-fin {
  display: grid;
  gap: 14px;
}
.g-kpis {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.g-kpi {
  border: 1px solid #e3e9f2;
  border-radius: 16px;
  padding: 16px 18px;
  display: grid;
  gap: 4px;
  align-content: start;
}
.g-kpi > small {
  font-size: 0.82rem;
  font-weight: 700;
  color: #53627a;
}
.g-kpi > b {
  font:
    800 1.9rem/1.15 Manrope,
    sans-serif;
  letter-spacing: -0.04em;
}
.g-kpi > span {
  font-size: 0.82rem;
  color: #53627a;
}
.g-up {
  color: #0b6447;
  font-weight: 800;
}
.g-kpi.alerta {
  background: #fff8f2;
  border-color: #f3dbc5;
}
.g-kpi.alerta > b {
  color: #a8430c;
}
.g-fin-meio {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: 14px;
}
.g-bloco {
  border: 1px solid #e3e9f2;
  border-radius: 16px;
  padding: 18px;
  min-width: 0;
}
.g-barras,
.g-barras-x {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px;
}
.g-barras {
  align-items: end;
  height: 190px;
  margin-top: 6px;
  border-bottom: 1px solid #dfe6f0;
}
.g-barra {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
  gap: 6px;
}
.g-barra em {
  font-style: normal;
  font-size: 0.78rem;
  font-weight: 800;
  color: #53627a;
}
.g-barra i {
  display: block;
  width: 100%;
  max-width: 46px;
  height: var(--h);
  border-radius: 8px 8px 2px 2px;
  background: #cbd7ff;
  transform-origin: bottom;
  transition: transform 0.9s var(--ease);
}
.g-barra.atual em {
  color: var(--blue);
}
.g-barra.atual i {
  background: linear-gradient(180deg, #6d8bff, #315bff);
}
@media (prefers-reduced-motion: no-preference) {
  .reveal:not(.visible) .g-barra i {
    transform: scaleY(0.05);
  }
}
.g-barra:nth-child(2) i {
  transition-delay: 0.06s;
}
.g-barra:nth-child(3) i {
  transition-delay: 0.12s;
}
.g-barra:nth-child(4) i {
  transition-delay: 0.18s;
}
.g-barra:nth-child(5) i {
  transition-delay: 0.24s;
}
.g-barra:nth-child(6) i {
  transition-delay: 0.3s;
}
.g-barras-x {
  margin-top: 8px;
  text-align: center;
  font-size: 0.78rem;
  font-weight: 700;
  color: #53627a;
}
.g-dre {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.88rem;
}
.g-dre td {
  padding: 9px 0;
  border-bottom: 1px dashed #e1e8f1;
  color: var(--ink);
  line-height: 1.35;
}
.g-dre td + td {
  text-align: right;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  padding-left: 12px;
}
.g-dre .menos td {
  color: #53627a;
}
.g-dre .menos td + td {
  color: #a3243a;
}
.g-dre .res td {
  border-bottom: 0;
  padding-top: 12px;
  font-weight: 800;
}
.g-dre .res td + td {
  color: #0b6447;
  font-size: 1.05rem;
}
.g-faixa {
  display: flex;
  gap: 2px;
  height: 12px;
  margin-top: 12px;
  border-radius: 99px;
  overflow: hidden;
}
.g-faixa span {
  width: var(--w);
  background: var(--c);
}
.g-faixa-leg {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin-top: 10px;
  font-size: 0.75rem;
  font-weight: 650;
  color: #53627a;
}
.g-faixa-leg span::before {
  content: "";
  display: inline-block;
  width: 9px;
  height: 9px;
  margin-right: 6px;
  border-radius: 3px;
  background: var(--c);
}
.g-rec {
  list-style: none;
  margin: 0;
  padding: 0;
}
.g-rec li {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.9fr) minmax(0, 1.4fr) auto;
  gap: 14px;
  align-items: center;
  padding: 12px 0;
  border-top: 1px solid #edf1f6;
  font-size: 0.88rem;
}
.g-rec li:first-child {
  border-top: 0;
  padding-top: 0;
}
.g-rec b {
  display: block;
  font-weight: 750;
}
.g-rec small {
  display: block;
  font-size: 0.8rem;
  color: #53627a;
}
.g-rec-meio {
  display: contents;
}
.g-pm {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-weight: 650;
  color: #33425a;
}
.g-pm::before {
  content: "";
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--c);
}
@media (max-width: 960px) {
  .g-fin-meio {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 720px) {
  .g-kpis {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .g-kpi {
    padding: 12px 14px;
  }
  .g-kpi:first-child {
    grid-column: 1 / -1;
  }
  .g-kpi > b {
    font-size: 1.4rem;
  }
  .g-bloco {
    padding: 14px;
  }
  .g-barras,
  .g-barras-x {
    gap: 8px;
  }
  .g-barras {
    height: 160px;
  }
  .g-rec li {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px 12px;
  }
  .g-rec-meio {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
  }
  .g-rec .g-valor {
    grid-row: 1;
    grid-column: 2;
  }
}

/* Recursos em grade (financeiro: 12 itens, 4 por linha) */
.g-feats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.g-feat {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.g-unit {
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--blue);
}
.g-feat h3 {
  font-size: 1.14rem;
}
.g-feat p {
  font-size: 0.95rem;
  line-height: 1.6;
}
.g-plano {
  align-self: flex-start;
  margin-top: auto;
  font-size: 0.75rem;
  font-weight: 800;
  line-height: 1.3;
  padding: 5px 10px;
  border-radius: 99px;
  background: #f1edff;
  color: #4b33a8;
}
.g-feat .g-plano {
  margin-top: 6px;
}
.g-mais {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px 30px;
  flex-wrap: wrap;
  margin-top: 26px;
  padding: 20px 24px;
  border-radius: 20px;
  background: #fff;
  border: 1px solid var(--border);
}
.g-mais p {
  font-size: 1rem;
  line-height: 1.55;
  color: #3c4b63;
  max-width: 640px;
}
.g-mais-acoes {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.g-mais .btn {
  padding: 13px 18px;
}
@media (max-width: 1030px) {
  .g-feats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 720px) {
  .g-feats {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .g-feat {
    padding: 16px 18px;
    gap: 4px;
    border-radius: 16px;
  }
  .g-mais {
    padding: 18px;
  }
  .g-mais-acoes,
  .g-mais .btn {
    width: 100%;
  }
}

/* ==========================================================================
   Agenda: demonstração (agenda do dia, fila, WhatsApp)
   ========================================================================== */
.g-view-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px 14px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.g-view-top strong {
  font-size: 0.95rem;
}
.g-ag-head,
.g-ag-row {
  display: grid;
  grid-template-columns: 54px repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.g-ag-2 .g-ag-head,
.g-ag-2 .g-ag-row {
  grid-template-columns: 54px repeat(2, minmax(0, 1fr));
}
.g-ag-head {
  padding-bottom: 10px;
  border-bottom: 1px solid #e9eef5;
  font-size: 0.8rem;
  font-weight: 800;
  color: #53627a;
}
.g-ag-row {
  padding: 9px 0;
  border-bottom: 1px solid #f0f3f8;
}
.g-ag-row time {
  padding-top: 9px;
  font-size: 0.8rem;
  font-weight: 700;
  color: #53627a;
  font-variant-numeric: tabular-nums;
}
.g-slot {
  display: grid;
  gap: 2px;
  align-content: start;
  min-width: 0;
  padding: 8px 11px;
  border-radius: 10px;
  border-left: 3px solid var(--blue);
  background: #eef3ff;
}
.g-slot b {
  font-size: 0.84rem;
  line-height: 1.3;
}
.g-slot small {
  font-size: 0.78rem;
  line-height: 1.35;
  color: #4c5b72;
}
.g-slot em {
  margin-top: 2px;
  font-style: normal;
  font-size: 0.75rem;
  font-weight: 800;
  color: #2340c2;
}
.g-slot.fim {
  background: #f3f5f9;
  border-color: #9aa8bc;
}
.g-slot.fim em {
  color: #4c5b72;
}
.g-slot.cadeira {
  background: var(--blue);
  border-color: #1d3fd0;
  color: #fff;
}
.g-slot.cadeira small,
.g-slot.cadeira em {
  color: #fff;
}
.g-slot.chegou {
  background: #e3f6ec;
  border-color: #1f9e6e;
}
.g-slot.chegou em {
  color: #0b6447;
}
.g-slot.faltou {
  background: #fdeef0;
  border-color: #d1435b;
}
.g-slot.faltou em {
  color: #a3243a;
}
.g-slot.agendada {
  background: #fff;
  border: 1px solid #dfe6f0;
  border-left: 3px solid #9aa8bc;
}
.g-slot.livre {
  background: transparent;
  border: 1px dashed #b8c6da;
  color: #53627a;
}
.g-slot.livre b {
  font-weight: 700;
}
.g-risco {
  margin-top: 4px;
  justify-self: start;
  font-size: 0.75rem;
  font-weight: 800;
  padding: 3px 8px;
  border-radius: 99px;
  background: #fff0de;
  color: #8f4306;
}
.g-fila {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.g-col {
  display: grid;
  gap: 8px;
  align-content: start;
  padding: 12px;
  border-radius: 14px;
  background: #f6f8fc;
  border: 1px solid #e6ecf4;
}
.g-col-t {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.86rem;
  font-weight: 800;
}
.g-col-t span {
  min-width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border-radius: 99px;
  background: #fff;
  border: 1px solid #dfe6f0;
  font-size: 0.75rem;
}
.g-card {
  display: grid;
  gap: 3px;
  padding: 10px 12px;
  border-radius: 11px;
  background: #fff;
  border: 1px solid #e3e9f2;
}
.g-card b {
  font-size: 0.86rem;
}
.g-card small {
  font-size: 0.78rem;
  color: #53627a;
}
.g-card .g-chip {
  margin-top: 4px;
}
.g-col-mais {
  font-size: 0.78rem;
  font-weight: 700;
  color: #53627a;
  padding-left: 4px;
}
.g-espera {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 12px;
  padding: 14px 16px;
  border-radius: 14px;
  background: #effaf5;
  border: 1px solid #c8ecdb;
}
.g-espera > .icon {
  color: #0b6447;
}
.g-espera-txt {
  flex: 1;
  font-size: 0.88rem;
  line-height: 1.5;
  color: #24453a;
}
.g-espera-txt b {
  color: #0b4d34;
}
.g-acao {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 9px 14px;
  border-radius: 10px;
  background: #0f7a3e;
  color: #fff;
  font-size: 0.8rem;
  font-weight: 800;
  white-space: nowrap;
}
.g-acao .wa-icon {
  width: 16px;
  height: 16px;
}
.g-wa-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}
.g-wa {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px;
  border-radius: 16px;
  background: #ece6dc;
  border: 1px solid #e0d8cb;
}
.g-wa-dia {
  align-self: center;
  font-size: 0.75rem;
  font-weight: 700;
  color: #4c5866;
  background: #fff;
  padding: 4px 10px;
  border-radius: 8px;
}
.g-msg {
  max-width: 90%;
  padding: 9px 12px 7px;
  border-radius: 12px;
  font-size: 0.86rem;
  line-height: 1.5;
  background: #fff;
  color: #17212b;
  box-shadow: 0 1px 1px #0000000f;
}
.g-msg.sai {
  align-self: flex-end;
  background: #d9fdd3;
  border-top-right-radius: 4px;
}
.g-msg.entra {
  align-self: flex-start;
  border-top-left-radius: 4px;
}
.g-msg time {
  display: block;
  margin-top: 2px;
  text-align: right;
  font-size: 0.75rem;
  color: #56626e;
}
.g-msg-link {
  display: block;
  margin-top: 8px;
  padding: 9px 11px;
  border-radius: 9px;
  background: #ffffffc4;
  border-left: 3px solid #0f7a3e;
}
.g-msg-link b {
  display: block;
  font-size: 0.84rem;
  color: #0b5c32;
}
.g-msg-link small {
  display: block;
  font-size: 0.75rem;
  color: #46525e;
}
.g-horarios {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}
.g-horarios span {
  font-size: 0.78rem;
  font-weight: 800;
  padding: 6px 9px;
  border-radius: 8px;
  background: #fff;
  border: 1px solid #b9e3c6;
  color: #0b5c32;
}
.g-wa-evento {
  align-self: center;
  text-align: center;
  font-size: 0.75rem;
  font-weight: 700;
  color: #0b5c32;
  background: #e1f6e7;
  padding: 5px 10px;
  border-radius: 8px;
}
.g-mud {
  display: grid;
  gap: 4px;
  padding: 14px 16px;
  border-radius: 14px;
  border: 1px solid #e3e9f2;
}
.g-mud > small {
  font-size: 0.75rem;
  font-weight: 700;
  color: #53627a;
}
.g-mud > b {
  font-size: 0.95rem;
}
.g-mud > span {
  font-size: 0.84rem;
  color: #53627a;
}
.g-mud-st {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 6px 0 2px;
  font-size: 0.84rem;
  color: #53627a;
}
.g-resumo {
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
  border: 1px solid #e3e9f2;
  border-radius: 14px;
}
.g-resumo li {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 16px;
  font-size: 0.86rem;
  border-top: 1px solid #edf1f6;
}
.g-resumo li:first-child {
  border-top: 0;
}
.g-resumo b {
  font-variant-numeric: tabular-nums;
}
@media (max-width: 900px) {
  .g-wa-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 720px) {
  .g-ag-head,
  .g-ag-row,
  .g-ag-2 .g-ag-head,
  .g-ag-2 .g-ag-row {
    grid-template-columns: 40px repeat(2, minmax(0, 1fr));
    gap: 6px;
  }
  .g-ag-3 {
    display: none;
  }
  .g-slot {
    padding: 7px 8px;
  }
  .g-slot b {
    font-size: 0.8rem;
  }
  .g-slot small {
    font-size: 0.75rem;
  }
  .g-fila {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .g-espera {
    flex-wrap: wrap;
    padding: 12px 14px;
  }
  .g-acao {
    width: 100%;
    min-height: 40px;
  }
  .g-wa {
    padding: 12px;
  }
  .g-msg {
    max-width: 94%;
  }
}

@media (max-width: 720px) {
  .g-show .show-tab {
    font-size: 0.8rem;
    padding-inline: 14px;
  }
}

/* Cartões em grade nas páginas do grupo: texto do corpo com 15 px e cartão inteiro clicável */
.g-cards .bento-card {
  min-height: 0;
}
.g-cards .bento-card p {
  font-size: 0.95rem;
  line-height: 1.6;
}
.g-cards .bento-card .g-unit {
  display: block;
  margin-top: 16px;
}
.g-cards .bento-card .g-unit + h3 {
  margin-top: 6px;
}
.g-cards .bento-card .g-plano {
  display: block;
  width: fit-content;
  margin-top: 12px;
}
.g-link a::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
}
.g-link a:focus-visible {
  outline: none;
}
.g-link:focus-within {
  outline: 3px solid #4bd4d0;
  outline-offset: 3px;
}
.g-steps .step p {
  font-size: 0.95rem;
  line-height: 1.6;
}
.g-steps .step h3 {
  font-size: 1.2rem;
}
/* Tablet: 16 recursos e 8 camadas de segurança em 2 colunas, sem cartão sozinho na última linha */
@media (min-width: 721px) and (max-width: 1030px) {
  .g-recursos.bento > .resource-card,
  .g-cards.bento.quatro > * {
    grid-column: span 6;
  }
}
@media (max-width: 720px) {
  /* Lista compacta no celular: ícone à esquerda, título e uma frase */
  .g-cards.bento {
    gap: 10px;
  }
  .g-cards .bento-card {
    display: grid;
    grid-template-columns: 43px minmax(0, 1fr);
    column-gap: 14px;
    align-items: start;
    padding: 16px 18px;
    border-radius: 18px;
  }
  .g-cards .bento-card > * {
    grid-column: 2;
  }
  .g-cards .bento-card > .round-icon {
    grid-column: 1;
    grid-row: 1 / span 4;
  }
  .g-cards .bento-card h3 {
    margin: 0 0 4px;
    font-size: 1.12rem;
  }
  .g-cards .bento-card .g-unit {
    margin-top: 0;
  }
  .g-cards .bento-card .g-unit + h3 {
    margin-top: 2px;
  }
  .g-cards .bento-card a {
    margin-top: 8px;
  }
  .g-cards .bento-card:hover {
    transform: none;
  }
}

/* ==========================================================================
   Plataforma: mapa dos módulos, prontuário, laboratório e estoque
   ========================================================================== */
.g-mapa {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.g-grupo {
  display: grid;
  align-content: start;
  gap: 4px;
  padding: 16px;
  border-radius: 22px;
  background: #fff;
  border: 1px solid var(--border);
}
.g-grupo-t {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 10px 10px;
  font:
    800 0.78rem/1.2 "DM Sans",
    sans-serif;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--blue);
}
.g-grupo-t span {
  color: #6b7a90;
}
.g-mod {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) 18px;
  gap: 12px;
  align-items: center;
  min-height: 64px;
  padding: 12px 10px;
  border-radius: 14px;
  transition: background 0.2s;
}
.g-mod:hover {
  background: #f2f6ff;
}
.g-mod .round-icon {
  width: 40px;
  height: 40px;
  border-radius: 12px;
}
.g-mod b {
  display: block;
  font:
    750 1rem/1.3 Manrope,
    sans-serif;
  letter-spacing: -0.02em;
}
.g-mod small {
  display: block;
  margin-top: 2px;
  font-size: 0.94rem;
  line-height: 1.45;
  color: #53627a;
}
.g-mod .arrow-icon {
  color: var(--blue);
}
.g-mod:hover .arrow-icon {
  transform: translateX(3px);
}
.g-pac-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid #edf1f6;
}
.g-pac-head b {
  display: block;
  font-size: 1rem;
}
.g-pac-head small {
  display: block;
  font-size: 0.8rem;
  color: #53627a;
}
.g-pac-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-left: auto;
}
.g-pac-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 14px;
}
.g-kv {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 7px 14px;
  margin: 0;
  font-size: 0.86rem;
}
.g-kv dt {
  color: #53627a;
}
.g-kv dd {
  margin: 0;
  font-weight: 700;
}
.g-kv dd.alerta {
  color: #a3243a;
}
.g-tl {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
}
.g-tl li {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 2px 10px;
  font-size: 0.86rem;
  line-height: 1.4;
}
.g-tl time {
  grid-row: span 2;
  padding-top: 1px;
  font-size: 0.8rem;
  font-weight: 700;
  color: #53627a;
}
.g-voz {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 16px;
  padding: 10px 14px;
  border-radius: 12px;
  background: #f1f5ff;
  font-size: 0.84rem;
  line-height: 1.45;
  color: #2a3a57;
}
.g-onda {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  height: 18px;
}
.g-onda i {
  width: 3px;
  height: var(--a);
  border-radius: 2px;
  background: var(--blue);
}
.g-etapas {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 14px;
}
.g-etapas span {
  font-size: 0.78rem;
  font-weight: 700;
  padding: 6px 10px;
  border-radius: 99px;
  background: #f2f5fa;
  color: #3c4b63;
}
.g-etapas b {
  margin-left: 4px;
  color: var(--blue);
}
.g-lista li.atraso b {
  color: #a3243a;
}
.g-auto {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin-top: 12px;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid #cfeedd;
  background: #f2fbf6;
}
.g-auto-temp {
  font:
    800 1.25rem Manrope,
    sans-serif;
  color: #0b6447;
  white-space: nowrap;
}
.g-auto > div {
  flex: 1 1 180px;
  min-width: 0;
}
.g-auto b {
  display: block;
  font-size: 0.88rem;
}
.g-auto small {
  display: block;
  font-size: 0.78rem;
  line-height: 1.45;
  color: #3f5a4d;
}
@media (max-width: 720px) {
  .g-inverso > :first-child {
    order: 2;
  }
}
@media (max-width: 860px) {
  .g-mapa {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 720px) {
  .g-mapa {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .g-grupo {
    padding: 10px;
    border-radius: 18px;
  }
  .g-mod {
    padding: 10px 8px;
  }
  .g-pac-cols {
    grid-template-columns: 1fr;
  }
  .g-pac-chips {
    margin-left: 0;
  }
}

/* ==========================================================================
   Recursos: diretório
   ========================================================================== */
@media (min-width: 721px) {
  .g-recursos .resource-card {
    display: flex;
    flex-direction: column;
  }
  .g-recursos .resource-card a {
    margin-top: auto;
    padding-top: 18px;
  }
}
@media (max-width: 720px) {
  /* No celular o cartão inteiro é o link: o texto "Ver detalhes" vira só a seta no canto */
  .g-recursos .resource-card {
    padding-right: 46px;
  }
  .g-recursos .resource-card a {
    margin: 0;
    font-size: 0;
    gap: 0;
  }
  .g-recursos .resource-card a .arrow-icon {
    position: absolute;
    top: 20px;
    right: 18px;
  }
}

/* ==========================================================================
   Segurança: auditoria, permissões e privacidade
   ========================================================================== */
.g-filtros {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 14px;
}
.g-filtros span {
  font-size: 0.78rem;
  font-weight: 700;
  padding: 7px 11px;
  border-radius: 9px;
  border: 1px solid #dfe6f0;
  color: #33425a;
  background: #fff;
}
.g-filtros .g-exportar {
  margin-left: auto;
  background: #f2f5fa;
}
.g-audit {
  list-style: none;
  margin: 0;
  padding: 0;
}
.g-audit li {
  display: grid;
  grid-template-columns: 44px 34px minmax(0, 1fr) auto;
  grid-template-areas: "hora av txt tipo";
  gap: 4px 12px;
  align-items: start;
  padding: 12px 0;
  border-top: 1px solid #edf1f6;
}
.g-audit time {
  grid-area: hora;
  padding-top: 7px;
  font-size: 0.8rem;
  font-weight: 800;
  color: #53627a;
  font-variant-numeric: tabular-nums;
}
.g-audit .g-av {
  grid-area: av;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  font-size: 0.75rem;
}
.g-audit-txt {
  grid-area: txt;
  min-width: 0;
  font-size: 0.86rem;
  line-height: 1.45;
  color: #33425a;
}
.g-audit-txt b {
  display: block;
  color: var(--ink);
  font-size: 0.88rem;
}
.g-audit-txt b em {
  font-style: normal;
  font-weight: 650;
  font-size: 0.78rem;
  color: #53627a;
}
.g-audit-txt small {
  display: block;
  margin-top: 3px;
  font-size: 0.75rem;
  color: #53627a;
}
.g-audit .g-chip {
  grid-area: tipo;
  margin-top: 4px;
}
.g-de {
  color: #a3243a;
  text-decoration: line-through;
}
.g-para {
  color: #0b6447;
  font-weight: 750;
}
.g-matriz {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.84rem;
}
.g-matriz th {
  padding: 8px 4px;
  border-bottom: 1px solid #e3e9f2;
  font-size: 0.75rem;
  font-weight: 800;
  color: #53627a;
  text-align: center;
  vertical-align: bottom;
}
.g-matriz td {
  padding: 10px 4px;
  border-bottom: 1px solid #f0f3f8;
  text-align: center;
}
.g-matriz th:first-child,
.g-matriz td:first-child {
  text-align: left;
  padding-left: 0;
}
.g-matriz td:first-child {
  font-weight: 700;
  line-height: 1.35;
}
.g-matriz tr:last-child td {
  border-bottom: 0;
}
.g-sim {
  display: inline-grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 8px;
  background: #e6ecff;
  color: #2340c2;
}
.g-sim .icon {
  width: 15px;
  height: 15px;
  stroke-width: 2.4;
}
.g-nao {
  font-weight: 800;
  color: #8a97ab;
}
.g-abrev {
  display: none;
}
.g-selos {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.g-selo {
  display: grid;
  gap: 8px;
  align-content: start;
  padding: 24px;
  border-radius: 22px;
  background: #0d1f40;
  border: 1px solid #1d3560;
}
.g-selo .round-icon {
  background: #1b3a6b;
  color: #7cefe3;
}
.g-selo h3 {
  margin-top: 8px;
  color: #fff;
  font-size: 1.2rem;
}
.section.dark .g-selo p {
  font-size: 0.95rem;
  line-height: 1.6;
  color: #b9cbe2;
}
@media (max-width: 960px) {
  .g-selos {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .g-selo {
    padding: 20px;
  }
}
@media (max-width: 720px) {
  .g-audit li {
    grid-template-columns: 34px minmax(0, 1fr) auto;
    grid-template-areas:
      "av hora tipo"
      "av txt txt";
    gap: 2px 10px;
  }
  .g-audit time {
    padding-top: 0;
    align-self: center;
  }
  .g-audit .g-chip {
    margin-top: 0;
  }
  .g-filtros .g-exportar {
    margin-left: 0;
  }
  .g-nome {
    display: none;
  }
  .g-abrev {
    display: inline;
  }
  .g-matriz {
    font-size: 0.8rem;
  }
  .g-matriz td:first-child {
    padding-right: 6px;
  }
  .g-sim {
    width: 24px;
    height: 24px;
  }
}
