/* =====================================================================
   Plantões PRO — folha de estilo única
   Paleta: azul-noite (plantão noturno) + cores de classificação de risco
   ===================================================================== */

:root {
  --bg:          #0B111E;
  --surface:     #111A2B;
  --surface-2:   #17223A;
  --surface-3:   #1E2B47;
  --line:        #24314D;
  --text:        #E9EEF8;
  --muted:       #93A2BF;
  --accent:      #4CC2A8;
  --accent-soft: rgba(76, 194, 168, .14);

  --verde:    #2FBF71;
  --amarela:  #F2B705;
  --vermelha: #F06468;   /* 5:1 sobre as superfícies escuras (texto de alerta) */
  --azul:     #3E8FF0;
  --roxo:     #A176F0;
  --laranja:  #F08C3E;
  --estudo:   #E57FB0;

  --ok:    var(--verde);
  --medio: var(--amarela);
  --alto:  var(--vermelha);

  --radius:    14px;
  --radius-sm: 9px;
  --sombra:    0 12px 32px rgba(3, 8, 18, .45);

  --fonte-display: "Space Grotesk", "Segoe UI", system-ui, sans-serif;
  --fonte-texto:   "IBM Plex Sans", system-ui, -apple-system, sans-serif;
  --fonte-mono:    "IBM Plex Mono", ui-monospace, "SF Mono", monospace;

  --rolagem:       #33446A;   /* barra de rolagem */
  --rolagem-forte: #4A5D88;   /* barra sob o cursor */
  color-scheme: dark;
}

[data-tema="claro"] {
  --bg:        #EEF1F6;
  --surface:   #FFFFFF;
  --surface-2: #F4F6FB;
  --surface-3: #E7ECF5;
  --line:      #D8DFEC;
  --text:      #15203A;
  /* Tema claro: todas as cores que viram texto têm contraste de pelo menos 4,5:1 (WCAG AA)
     sobre o fundo, os cartões e os selos coloridos. */
  --muted:     #586783;
  --accent:    #0F735E;
  --accent-soft: rgba(15, 115, 94, .12);
  --sombra:    0 10px 26px rgba(24, 40, 70, .12);
  --amarela:   #856000;
  --verde:     #177544;
  --vermelha:  #C21C21;
  --azul:      #1063C8;
  --roxo:      #783AE9;
  --laranja:   #A24E0D;
  --estudo:    #AF3970;
  --rolagem:       #C3CCDC;
  --rolagem-forte: #9DAAC2;
  color-scheme: light;
}

/* ---------- Barras de rolagem: um padrão só para o sistema inteiro -----
   Finas, na cor do tema, sem trilho aparente. Firefox e Chrome usam as propriedades padrão;
   Safari usa os pseudo-elementos. As áreas que rolam por dentro (menu, listas, modais, tabelas)
   não "puxam" a página quando chegam ao fim (overscroll-behavior). */
* { scrollbar-width: thin; scrollbar-color: var(--rolagem) transparent; }
html { scrollbar-color: var(--rolagem) var(--bg); }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track, ::-webkit-scrollbar-corner { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--rolagem); border: 2px solid transparent; border-radius: 10px; background-clip: padding-box; }
::-webkit-scrollbar-thumb:hover { background-color: var(--rolagem-forte); }

/* Rola na vertical por dentro */
.lateral, .modal, .lista-rolavel, .rm-lista, .ad-log, .tabela-rolavel { overscroll-behavior: contain; }
.lista-rolavel, .rm-lista, .ad-log { scrollbar-gutter: stable; }
/* Rola na horizontal (tabelas, faixas de dias e de indicadores) */
.tabela-wrap, .cal-semana-wrap, .ad-copiar code { overflow-x: auto; overscroll-behavior-x: contain; }
/* Faixas de abas e atalhos: rolam sem barra (o dedo e a roda do mouse bastam) */
.abas, .lp-rapidos { scrollbar-width: none; }
.abas::-webkit-scrollbar, .lp-rapidos::-webkit-scrollbar { display: none; }
[data-tema="claro"] .btn-primario { color: #FFFFFF; }
[data-tema="claro"] .cal-bloco-repassado { background-image: repeating-linear-gradient(45deg, rgba(255,255,255,.55) 0 4px, transparent 4px 9px); }

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: var(--bg);
  color: var(--text);
  font-family: var(--fonte-texto);
  font-size: 15px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 { font-family: var(--fonte-display); font-weight: 600; letter-spacing: -.02em; margin: 0; }
a { color: var(--accent); text-decoration: none; }
button, input, select, textarea { font-family: inherit; font-size: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 6px; }

.num { font-family: var(--fonte-mono); font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.muted { color: var(--muted); }
.oculto { display: none !important; }
[hidden] { display: none !important; }
.oculto-visual {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* ---------- Login ---------------------------------------------------- */
.login-wrap {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 1.1fr .9fr;
}
.login-arte {
  position: relative;
  background:
    radial-gradient(900px 600px at 15% 10%, rgba(76, 194, 168, .18), transparent 60%),
    radial-gradient(700px 500px at 80% 80%, rgba(62, 143, 240, .16), transparent 60%),
    var(--surface);
  border-right: 1px solid var(--line);
  padding: 48px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
}
.login-arte { gap: 32px; }
.login-arte h1 { font-size: clamp(30px, 3.2vw, 42px); line-height: 1.08; max-width: 17ch; letter-spacing: -.02em; }
.login-arte p { color: var(--muted); max-width: 54ch; }
.login-lead { margin: 14px 0 0; font-size: 15.5px; line-height: 1.55; }
.login-recursos { list-style: none; margin: 28px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; max-width: 760px; }
.login-rec { display: flex; gap: 12px; align-items: flex-start; padding: 13px 14px; border: 1px solid var(--line);
  border-radius: 14px; background: color-mix(in srgb, var(--surface-2) 72%, transparent); }
.login-rec > svg { width: 22px; height: 22px; flex: none; margin-top: 1px; color: var(--accent); }
.login-rec div { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.login-rec b { font-size: 14px; font-weight: 600; }
.login-rec span { font-size: 12.5px; color: var(--muted); line-height: 1.45; }
.login-rec-dinheiro > svg { color: #3E8FF0; }
.login-rec-saude > svg { color: var(--amarela); }
.login-rec-atividade > svg { color: var(--laranja, #F28B30); }
.login-rec-acessos > svg { color: #A176F0; }
.login-rec-plano > svg { color: #A176F0; }
.login-rec-lazer > svg { color: var(--verde); }
.login-rec-dados > svg { color: var(--laranja, #F28B30); }
.login-arte-pe { font-size: 12.5px; margin: 0; }
@media (max-width: 1180px) { .login-recursos { grid-template-columns: minmax(0, 1fr); } }
.login-marca-movel { display: none; }
.login-traco { width: 100%; height: 120px; opacity: .9; }
.login-wrap.login-unico { grid-template-columns: 1fr; }
.login-form-area { display: flex; align-items: center; justify-content: center; padding: 32px; }
.login-card { width: 100%; max-width: 380px; }
.login-card h2 { font-size: 26px; margin-bottom: 6px; }
.login-demo { margin-top: 22px; display: flex; flex-direction: column; gap: 10px; }
.login-demo > span { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 12.5px; }
.login-demo > span::before, .login-demo > span::after { content: ""; flex: 1; border-top: 1px solid var(--line); }
.login-demo p { margin: 0; font-size: 12.5px; }

/* ---------- Estrutura do app ---------------------------------------- */
.app { display: grid; grid-template-columns: 240px minmax(0, 1fr); min-height: 100vh; }
.app > main { min-width: 0; }

.lateral {
  background: var(--surface);
  border-right: 1px solid var(--line);
  padding: 22px 16px;
  display: flex;
  flex-direction: column;
  gap: 22px;
  position: sticky;
  top: 0;
  height: 100vh;
  height: 100dvh;
  /* Menu maior que a tela (telas baixas, muitos módulos): rola dentro da lateral */
  overflow-y: auto;
}
.lateral > * { flex-shrink: 0; }
/* Telas baixas: itens um pouco mais compactos, para caber mais sem rolar */

.marca { display: flex; align-items: center; gap: 10px; padding: 0 6px; }
.marca-icone { width: 34px; height: 34px; flex: none; }
.marca strong { font-family: var(--fonte-display); font-size: 17px; letter-spacing: -.03em; }
.marca span { display: block; font-size: 11px; color: var(--muted); letter-spacing: .12em; text-transform: uppercase; }

.nav { display: flex; flex-direction: column; gap: 2px; }
.nav a {
  display: flex; align-items: center; gap: 11px;
  padding: 10px 12px; border-radius: var(--radius-sm);
  color: var(--muted); font-size: 14.5px; font-weight: 500;
  transition: background .15s, color .15s;
}
.nav a:hover { background: var(--surface-2); color: var(--text); }
.nav a.ativo { background: var(--accent-soft); color: var(--accent); }
.nav a svg { width: 18px; height: 18px; flex: none; }

.lateral-rodape { margin-top: auto; display: flex; flex-direction: column; gap: 10px; }
.usuario-chip {
  display: flex; align-items: center; gap: 10px;
  padding: 10px; border-radius: var(--radius-sm); background: var(--surface-2);
}
.avatar {
  width: 32px; height: 32px; border-radius: 50%; flex: none;
  display: grid; place-items: center;
  background: var(--accent-soft); color: var(--accent);
  font-family: var(--fonte-display); font-size: 13px; font-weight: 600;
}
.usuario-chip div { min-width: 0; }
.usuario-chip b { display: block; font-size: 13px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.usuario-chip small { color: var(--muted); font-size: 11.5px; }

.conteudo { padding: 26px 30px 60px; max-width: 1400px; width: 100%; min-width: 0; }

.topo {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 18px; flex-wrap: wrap; margin-bottom: 22px; min-width: 0;
}
.topo > div { min-width: 0; }
.topo h1 { font-size: 27px; }
.topo p { margin: 4px 0 0; color: var(--muted); font-size: 14px; }
.topo-acoes { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; min-width: 0; max-width: 100%; }

/* ---------- Componentes ---------------------------------------------- */
.cartao {
  min-width: 0;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 18px;
}
.cartao + .cartao { margin-top: 14px; }
/* Dentro de um grid o espaçamento vem do gap — a margem desalinharia as alturas. */
.grade > .cartao + .cartao,
.grade > * > .cartao + .cartao { margin-top: 0; }
.grade > .cartao { margin-top: 0; }
.cartao-titulo {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; margin-bottom: 14px;
}
.cartao-titulo h3 { font-size: 15px; }
.cartao-titulo small { color: var(--muted); font-size: 12px; }

.grade { display: grid; gap: 14px; min-width: 0; }
.grade > * { min-width: 0; }
.g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.g-2-1 { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.g-1-2 { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }

.kpi { display: flex; flex-direction: column; gap: 6px; }
.kpi .rotulo { font-size: 11.5px; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); }
.kpi .valor { font-family: var(--fonte-mono); font-size: 25px; font-weight: 600; letter-spacing: -.03em; }
.kpi .nota { font-size: 12.5px; color: var(--muted); }
.kpi .nota b { font-weight: 600; }
.subiu { color: var(--verde); }
.caiu  { color: var(--vermelha); }

.btn {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 9px 14px; border-radius: var(--radius-sm);
  border: 1px solid var(--line); background: var(--surface-2);
  color: var(--text); font-size: 14px; font-weight: 500; cursor: pointer;
  transition: background .15s, border-color .15s, transform .05s;
}
.btn:hover { background: var(--surface-3); }
.btn:active { transform: translateY(1px); }
.btn svg { width: 16px; height: 16px; }
.btn-primario { background: var(--accent); border-color: var(--accent); color: #06231C; font-weight: 600; }
.btn-primario:hover { filter: brightness(1.07); background: var(--accent); }
.btn-perigo { color: var(--vermelha); border-color: rgba(229, 72, 77, .4); background: rgba(229, 72, 77, .1); }
.btn-perigo:hover { background: rgba(229, 72, 77, .18); }
.btn-mini { padding: 5px 9px; font-size: 12.5px; }
.btn:disabled { opacity: .5; cursor: not-allowed; }

/* Botão só com ícone: área de toque de 34 px, cor de intenção no hover */
.btn-icone { width: 34px; height: 34px; padding: 0; justify-content: center; flex: none; color: var(--muted); }
.btn-icone svg { width: 17px; height: 17px; }
.btn-icone:hover { color: var(--text); }
.btn-icone-ok:hover { color: var(--verde); border-color: rgba(47, 191, 113, .45); background: rgba(47, 191, 113, .1); }
.btn-icone-perigo:hover { color: var(--vermelha); border-color: rgba(229, 72, 77, .45); background: rgba(229, 72, 77, .1); }

.campo { display: flex; flex-direction: column; gap: 6px; margin-bottom: 13px; }
.campo label, .rotulo-campo { font-size: 12.5px; color: var(--muted); font-weight: 500; }
.campo input, .campo select, .campo textarea, .controle {
  background: var(--surface-2);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  padding: 10px 12px;
  width: 100%;
  transition: border-color .15s;
}
.campo input:focus, .campo select:focus, .campo textarea:focus, .controle:focus { border-color: var(--accent); outline: none; }
/* Foco pelo teclado bem visível também nos campos (a borda sozinha é pouco) */
.campo input:focus-visible, .campo select:focus-visible, .campo textarea:focus-visible, .controle:focus-visible,
.guia-valor-campo input:focus-visible { box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 35%, transparent); }
.controle { padding: 7px 10px; font-size: 13px; }
.campo textarea { min-height: 74px; resize: vertical; }
.campo .dica { font-size: 11.5px; color: var(--muted); }
.campo .check { font-size: 13.5px; color: var(--text); }
.linha-campos { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.linha-campos-3 { display: grid; gap: 12px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.check { display: flex; align-items: center; gap: 9px; font-size: 14px; cursor: pointer; }
.check input { width: 17px; height: 17px; accent-color: var(--accent); flex: none; }
.check svg { width: 16px; height: 16px; }
.campo-com-botao { display: flex; gap: 8px; }
.campo-com-botao input { flex: 1; min-width: 0; font-family: var(--fonte-mono); font-size: 12.5px; }

.filtros { display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-end; min-width: 0; }
.filtros .campo { margin-bottom: 0; min-width: 145px; flex: 1 1 145px; }
.filtros .campo-largo { flex: 2 1 220px; }

.tabela-wrap { max-width: 100%; border-radius: var(--radius-sm); }
/* Tabela longa dentro de um cartão: altura limitada, cabeçalho fixo ao rolar */
.tabela-rolavel { max-height: 340px; overflow-y: auto; }
.tabela-rolavel thead th { position: sticky; top: 0; z-index: 1; background: var(--surface); }
table.tabela { width: 100%; border-collapse: collapse; font-size: 13.8px; }
table.tabela th {
  text-align: left; font-size: 11.5px; text-transform: uppercase; letter-spacing: .08em;
  color: var(--muted); font-weight: 600; padding: 9px 11px; border-bottom: 1px solid var(--line);
  white-space: nowrap;
}
table.tabela td { padding: 10px 11px; border-bottom: 1px solid var(--line); vertical-align: middle; }
table.tabela tr:last-child td { border-bottom: none; }
table.tabela tbody tr:hover { background: var(--surface-2); }
table.tabela td.direita, table.tabela th.direita { text-align: right; }

.selo {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 3px 9px; border-radius: 999px;
  font-size: 11.5px; font-weight: 600; letter-spacing: .01em;
  background: var(--surface-3); color: var(--muted); white-space: nowrap;
}
.selo-ok    { background: rgba(47, 191, 113, .15); color: var(--verde); }
.selo-alerta{ background: rgba(242, 183, 5, .15);  color: var(--amarela); }
.selo-erro  { background: rgba(229, 72, 77, .15);  color: var(--vermelha); }
.selo-info  { background: rgba(62, 143, 240, .15); color: var(--azul); }
.ponto { width: 8px; height: 8px; border-radius: 50%; flex: none; display: inline-block; }

.vazio { text-align: center; padding: 40px 20px; color: var(--muted); }
.vazio h3 { color: var(--text); margin-bottom: 6px; font-size: 16px; }
.vazio p { margin: 0 0 14px; font-size: 14px; }

.barra-progresso { height: 7px; border-radius: 99px; background: var(--surface-3); overflow: hidden; }
.barra-progresso span { display: block; height: 100%; background: var(--accent); border-radius: 99px; transition: width .4s; }

/* ---------- Lista de plantões --------------------------------------------
   Grade de 6 colunas no desktop; vira cartão compacto em telas menores.
   Nunca há rolagem horizontal: o texto quebra dentro da própria célula. */
.lista-pl-titulo .check { font-size: 14px; color: var(--muted); }
.lista-pl-titulo .check b { color: var(--text); }
.lista-pl { display: flex; flex-direction: column; }
/* Cada linha é uma grade própria: só colunas de largura fixa ou fr com mínimo 0
   garantem que todas as linhas (e o cabeçalho) fiquem alinhadas entre si. */
.lista-pl-cab,
.linha-pl {
  display: grid;
  grid-template-columns: 24px 124px minmax(0, 1.7fr) 152px minmax(0, 1.2fr) 114px;
  gap: 4px 14px;
  align-items: center;
}
.lista-pl-cab {
  padding: 0 10px 8px; border-bottom: 1px solid var(--line);
  font-size: 11.5px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); font-weight: 600;
}
.lista-pl-cab .direita { text-align: right; }
.linha-pl {
  padding: 10px; border-bottom: 1px solid var(--line);
  transition: background .15s;
}
.linha-pl:last-child { border-bottom: none; }
.linha-pl:hover { background: var(--surface-2); }
.linha-pl.selecionada { background: var(--accent-soft); }
.linha-pl > div { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.linha-pl b { font-weight: 600; overflow-wrap: anywhere; }
.linha-pl .muted { font-size: 12.5px; overflow-wrap: anywhere; }
.lp-sel { display: flex; align-items: center; }
.lp-sel input { width: 17px; height: 17px; accent-color: var(--accent); margin: 0; }
.lp-local .muted { display: flex; align-items: center; flex-wrap: wrap; gap: 3px 6px; }
.lp-valor { align-items: flex-end; text-align: right; }
.lp-dif { font-size: 11.5px; color: var(--amarela); }
.lp-pag { align-items: flex-start; }
.lp-acoes { flex-direction: row !important; gap: 6px !important; justify-content: flex-end; }
.lp-serie { display: inline-flex; align-items: center; gap: 3px; font-size: 11px; color: var(--roxo); font-weight: 600; }
.lp-serie svg { width: 12px; height: 12px; }

/* ---------- Formulários: conflitos e série ------------------------------ */
.avisos-form {
  display: flex; gap: 10px; align-items: flex-start;
  padding: 10px 12px; margin: 0 0 13px; border-radius: var(--radius-sm);
  background: rgba(242, 183, 5, .1); border: 1px solid rgba(242, 183, 5, .35); font-size: 13px;
}
.avisos-form svg { width: 18px; height: 18px; color: var(--amarela); flex: none; margin-top: 1px; }
.avisos-form ul { margin: 4px 0 0; padding-left: 18px; }
.nota-serie {
  display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--muted);
  background: var(--surface-2); padding: 8px 12px; border-radius: var(--radius-sm); margin: 0 0 14px;
}
.nota-serie svg { width: 16px; height: 16px; color: var(--roxo); flex: none; }
.bloco-serie { margin-top: 14px; padding-top: 14px; border-top: 1px dashed var(--line); }
.bloco-serie > .check svg { color: var(--roxo); }
.chips-dias { display: flex; flex-wrap: wrap; gap: 6px; }
.chip-dia { position: relative; }
.chip-dia input { position: absolute; opacity: 0; pointer-events: none; }
.chip-dia span {
  display: inline-block; padding: 6px 12px; border-radius: 999px; cursor: pointer;
  border: 1px solid var(--line); background: var(--surface-2); font-size: 13px;
}
.chip-dia input:checked + span { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); font-weight: 600; }
.chip-dia input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; }

/* ---------- Listas simples (Ajustes) ----------------------------------- */
.lista-simples { display: flex; flex-direction: column; }
.lista-rolavel { max-height: 380px; overflow-y: auto; }
.item-simples {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 9px 2px; border-bottom: 1px solid var(--line);
}
.item-simples:last-child { border-bottom: none; }
.item-simples.passado { opacity: .6; }
.is-texto { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.is-texto b { font-weight: 600; overflow-wrap: anywhere; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.is-texto .muted { font-size: 12.5px; overflow-wrap: anywhere; }
.is-acoes { display: flex; gap: 6px; flex: none; }
.lista-dicas { margin: 0 0 12px; padding-left: 18px; font-size: 13px; color: var(--muted); }
.lista-dicas li { margin-bottom: 4px; }
.lista-dicas b { color: var(--text); }

/* ---------- Painel: avisos de hoje ------------------------------------- */
.avisos-painel { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 10px; }
.aviso-painel {
  display: flex; flex-direction: column; gap: 3px; min-width: 0; color: var(--text);
  padding: 11px 13px; border-radius: var(--radius-sm); background: var(--surface-2);
  border-left: 3px solid var(--amarela); transition: background .15s;
}
.aviso-painel:hover { background: var(--surface-3); }
.aviso-painel.aviso-alto { border-left-color: var(--vermelha); }
.aviso-painel b { font-size: 14px; overflow-wrap: anywhere; }
.aviso-painel span { font-size: 12.5px; color: var(--muted); overflow-wrap: anywhere; }

/* ---------- Financeiro: rentabilidade real por local --------------------- */
.lista-rent { display: flex; flex-direction: column; }
.linha-rent {
  display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(80px, .8fr) minmax(0, 2.2fr);
  gap: 8px 18px; align-items: center; padding: 11px 0; border-bottom: 1px solid var(--line);
}
.linha-rent:last-child { border-bottom: none; }
.rent-local { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.rent-local b { font-weight: 600; overflow-wrap: anywhere; }
.rent-local .muted { font-size: 12.5px; }
.rent-barra { height: 8px; border-radius: 99px; background: var(--surface-3); overflow: hidden; }
.rent-barra i { display: block; height: 100%; border-radius: 99px; }
.rent-num { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px 12px; margin: 0; }
.rent-num dt { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.rent-num dd { margin: 0; font-size: 14px; }
.rent-destaque { font-weight: 600; color: var(--accent); }
code { font-family: var(--fonte-mono); font-size: 12px; background: var(--surface-3); padding: 1px 5px; border-radius: 5px; }
code.quebra { overflow-wrap: anywhere; word-break: break-all; }

/* ---------- Cobrança ---------------------------------------------------- */
.cob-grupos { display: flex; flex-direction: column; gap: 12px; }
.cob-grupo {
  border: 1px solid var(--line); border-radius: var(--radius-sm);
  padding: 12px 14px; background: var(--surface-2);
}
.cob-grupo.cob-atrasado { border-left: 3px solid var(--vermelha); }
.cob-cab { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; align-items: flex-start; }
.cob-quem { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.cob-quem b { overflow-wrap: anywhere; }
.cob-quem .muted { font-size: 12.5px; }
.cob-total { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.cob-total b { font-size: 17px; }
.cob-itens { list-style: none; margin: 10px 0; padding: 0; display: flex; flex-direction: column; }
.cob-itens li {
  display: grid; grid-template-columns: 86px minmax(0, 1fr) auto auto 34px;
  gap: 6px 12px; align-items: center; padding: 6px 0; border-top: 1px solid var(--line); font-size: 13.5px;
}
.cob-local { min-width: 0; overflow-wrap: anywhere; }
.cob-valor { text-align: right; }
.cob-acoes { display: flex; gap: 8px; flex-wrap: wrap; }
.cob-difs { display: flex; flex-direction: column; }
.cob-dif { padding: 9px 0; border-bottom: 1px solid var(--line); }
.cob-dif:last-child { border-bottom: none; }

.lista-rank { display: flex; flex-direction: column; }
.linha-rank {
  display: grid; grid-template-columns: minmax(150px, 1fr) minmax(0, 3fr);
  gap: 8px 16px; align-items: center; padding: 11px 0; border-bottom: 1px solid var(--line);
}
.linha-rank:last-child { border-bottom: none; }
.rk-nome { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; min-width: 0; }
.rk-nome b { overflow-wrap: anywhere; }
.rk-metricas { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px 12px; margin: 0; }
/* ---------- Conta de demonstração (somente leitura) ------------------- */
.faixa-demo {
  display: flex; align-items: center; gap: 10px;
  margin: 0; padding: 9px 30px;
  background: var(--accent-soft); color: var(--text);
  border-bottom: 1px solid var(--line); font-size: 13.5px;
}
.faixa-demo b { color: var(--accent); font-family: var(--fonte-display); letter-spacing: .02em; }
.faixa-demo span { flex: 1; min-width: 0; color: var(--muted); }
.faixa-demo a { color: var(--accent); font-weight: 500; }

/* Tudo o que grava some da tela; o servidor também recusa qualquer gravação. */
html.somente-leitura :is(#novo, #nova, #novo-plantao, #novo-local, #nova-ausencia, #importar-feriados,
  #unificar-manual, #esvaziar-lixeira, #acoes-lote, #vazio-novo, #salvar-perfil, #salvar-parametros, #salvar-senha,
  #ics-gerar, #ics-revogar, [data-sugestao], [data-editar], [data-editar-ausencia], [data-excluir],
  [data-excluir-ausencia], [data-excluir-local], [data-remover-dia], [data-pagar], [data-pagar-plantao],
  #registrar-fadiga, #convidar, [data-excluir-avaliacao], [data-ir-salvar],
  [data-pend-baixa], [data-pend-repasse], [data-pend-darf], [data-atalho],
  #novo-informe, [data-informe], [data-excluir-informe], [data-informe-pendente], [data-repasse-item], [data-repasse-grupo],
  [data-local], [data-ausencia], [data-reabrir], [data-baixa-grupo], [data-baixa-item], [data-receber], [data-restaurar], [data-apagar]) {
  display: none !important;
}
html.somente-leitura :is([data-sel], #sel-todos) { visibility: hidden; pointer-events: none; }
@media (max-width: 760px) { .faixa-demo { padding: 8px 16px; font-size: 12.5px; } }

@media (max-width: 1240px) { .rk-metricas { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 420px)  { .rk-metricas { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.rk-metricas div { min-width: 0; }
.rk-metricas dt { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.rk-metricas dd { margin: 0; font-size: 14px; }

/* ---------- Assinatura: fita de 24 horas ----------------------------- */
.fita-dia { display: grid; grid-template-columns: 74px minmax(0, 1fr) 66px; gap: 10px; align-items: center; padding: 3px 0; }
.fita-dia > * { min-width: 0; }
.fita-dia .data { font-size: 12px; color: var(--muted); font-family: var(--fonte-mono); }
.fita-dia .total { font-size: 12px; text-align: right; font-family: var(--fonte-mono); }
.fita {
  position: relative; height: 20px; border-radius: 5px;
  background: repeating-linear-gradient(90deg, var(--surface-2) 0 calc(100% / 24 - 1px), var(--line) calc(100% / 24 - 1px) calc(100% / 24));
  overflow: hidden;
}
.fita i {
  position: absolute; top: 0; bottom: 0; display: block;
  background: var(--accent); opacity: .9;
}
.fita .noite { position: absolute; top: 0; bottom: 0; background: rgba(161, 118, 240, .12); pointer-events: none; }
.fita-escala { display: grid; grid-template-columns: 74px minmax(0, 1fr) 66px; gap: 10px; font-size: 10.5px; color: var(--muted); }
.fita-escala div:nth-child(2) { display: flex; justify-content: space-between; font-family: var(--fonte-mono); }

/* ---------- Calendário ------------------------------------------------ */
.cal-cabecalho { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; margin-bottom: 6px; }
.cal-cabecalho div { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); text-align: center; }
.cal-grade { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.cal-dia {
  background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--radius-sm);
  min-height: 98px; min-width: 0; padding: 7px; display: flex; flex-direction: column; gap: 4px; cursor: pointer;
  transition: border-color .15s, background .15s;
}
.cal-dia:hover { border-color: var(--accent); }
.cal-dia.fora { opacity: .38; }
.cal-dia.hoje { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.cal-dia .n { font-family: var(--fonte-mono); font-size: 12.5px; color: var(--muted); display: flex; justify-content: space-between; }
.cal-dia .n b { color: var(--text); }
.cal-ev {
  min-width: 0;
  font-size: 11px; padding: 3px 6px; border-radius: 5px; line-height: 1.3;
  background: var(--surface-3); border-left: 3px solid var(--accent);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.cal-ausente { background: repeating-linear-gradient(45deg, transparent 0 6px, rgba(147,162,191,.08) 6px 12px); }
.cal-ausente-parcial { box-shadow: inset 3px 0 0 var(--muted); }

.cal-semana-wrap { max-width: 100%; }
.cal-semana { display: grid; grid-template-columns: 56px repeat(7, minmax(0, 1fr)); gap: 0; }
.cal-semana .hora { font-size: 10.5px; color: var(--muted); height: 34px; text-align: right; padding-right: 8px; font-family: var(--fonte-mono); }
.cal-col { position: relative; border-left: 1px solid var(--line); }
.cal-col .slot { height: 34px; border-bottom: 1px solid var(--line); }
.cal-bloco {
  position: absolute; left: 3px; right: 3px; border-radius: 6px; padding: 4px 6px;
  font-size: 11px; overflow: hidden; color: #06231C; font-weight: 600;
}
.cal-ano { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.cal-mini h4 { font-size: 13px; margin-bottom: 6px; text-align: center; }
.cal-mini-grade { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 3px; }
.cal-mini-dia {
  aspect-ratio: 1; border-radius: 4px; background: var(--surface-2);
  font-size: 9.5px; display: grid; place-items: center; color: var(--muted);
  font-family: var(--fonte-mono); cursor: pointer;
}

/* ---------- Modal ----------------------------------------------------- */
.modal-fundo {
  position: fixed; inset: 0; background: rgba(5, 9, 18, .72);
  backdrop-filter: blur(3px); display: grid; place-items: center;
  padding: 20px; z-index: 60;
}
.modal {
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius);
  width: 100%; max-width: 620px; max-height: 90vh; overflow-y: auto; box-shadow: var(--sombra);
}
.modal-topo {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 20px; border-bottom: 1px solid var(--line); position: sticky; top: 0;
  background: var(--surface); z-index: 2;
}
.modal-corpo { padding: 20px; }
.modal-rodape {
  display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap;
  padding: 14px 20px; border-top: 1px solid var(--line); position: sticky; bottom: 0; background: var(--surface);
}
.fechar { background: none; border: none; cursor: pointer; color: var(--muted); font-size: 22px; line-height: 1; padding: 2px 6px; }

/* ---------- Avisos ---------------------------------------------------- */
.avisos { position: fixed; right: 20px; bottom: 20px; display: flex; flex-direction: column; gap: 8px; z-index: 90; }
.aviso {
  display: flex; align-items: center; gap: 12px;
  background: var(--surface-3); border: 1px solid var(--line); border-left: 3px solid var(--accent);
  border-radius: var(--radius-sm); padding: 11px 15px; font-size: 14px; box-shadow: var(--sombra);
  max-width: 380px; animation: entra .2s ease-out; transition: opacity .25s;
}
.aviso > span { flex: 1; min-width: 0; }
.aviso.erro { border-left-color: var(--vermelha); }
.aviso.alerta { border-left-color: var(--amarela); }
.aviso-acao {
  background: none; border: none; color: var(--accent); font-weight: 600; cursor: pointer;
  padding: 4px 8px; border-radius: 6px; font-size: 13.5px; white-space: nowrap; flex: none;
}
.aviso-acao:hover { background: var(--accent-soft); }
@keyframes entra { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.alerta-saude {
  display: flex; gap: 12px; align-items: flex-start;
  padding: 12px 14px; border-radius: var(--radius-sm); background: var(--surface-2);
  border-left: 3px solid var(--muted);
}
.alerta-saude.alto  { border-left-color: var(--vermelha); }
.alerta-saude.medio { border-left-color: var(--amarela); }
.alerta-saude.ok    { border-left-color: var(--verde); }
.alerta-saude b { display: block; font-size: 14px; }

/* ---------- Saúde: indicadores de recuperação e composição do índice ---- */
.indicadores { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.ind {
  display: flex; flex-direction: column; gap: 3px; min-width: 0;
  padding: 11px 13px; border-radius: var(--radius-sm); background: var(--surface-2);
  border-left: 3px solid var(--muted);
}
.ind-ok     { border-left-color: var(--verde); }
.ind-medio  { border-left-color: var(--amarela); }
.ind-alto   { border-left-color: var(--vermelha); }
.ind-neutro { border-left-color: var(--line); }
.ind-rotulo { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
.ind-valor  { font-size: 20px; font-weight: 600; letter-spacing: -.03em; }
.ind-ref    { font-size: 12px; color: var(--muted); overflow-wrap: anywhere; }

.comp-indice { display: flex; flex-direction: column; gap: 7px; margin-top: 10px; }
.comp-linha {
  display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(60px, 1fr) 46px;
  grid-template-areas: "nome barra pts" "det det det";
  gap: 1px 10px; align-items: center; font-size: 12.5px;
}
.comp-nome { grid-area: nome; min-width: 0; overflow-wrap: anywhere; }
.comp-barra { grid-area: barra; height: 6px; border-radius: 99px; background: var(--surface-3); overflow: hidden; }
.comp-barra i { display: block; height: 100%; background: var(--amarela); border-radius: 99px; }
.comp-pts { grid-area: pts; text-align: right; font-size: 11.5px; color: var(--muted); }
.comp-detalhe { grid-area: det; font-size: 11.5px; }
.is-selos { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; flex: none; max-width: 55%; }
.alerta-saude span { font-size: 13px; color: var(--muted); }

.carregando { display: grid; place-items: center; padding: 60px; color: var(--muted); }
/* Esqueleto do conteúdo enquanto carrega: ocupa o lugar do que vem, sem a tela "pular" */
.esqueleto { display: flex; flex-direction: column; gap: 14px; }
.esq { display: block; border-radius: var(--radius-sm); background: linear-gradient(90deg, var(--surface-2) 0%, var(--surface-3) 40%, var(--surface-2) 80%);
  background-size: 300% 100%; animation: esq-brilho 1.4s ease-in-out infinite; }
.esq-titulo { height: 30px; width: min(280px, 60%); }
.esq-sub { height: 14px; width: min(420px, 80%); margin-top: -6px; }
.esq-grade { display: grid; gap: 14px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.esq-kpi { height: 96px; border-radius: var(--radius); }
.esq-cartao { height: 260px; border-radius: var(--radius); }
.esq-linha { height: 14px; }
.esq-bloco { display: flex; flex-direction: column; gap: 10px; padding: 8px 0; }
@keyframes esq-brilho { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } }
@media (max-width: 760px) { .esq-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); } .esq-cartao { height: 200px; } }
@media (prefers-reduced-motion: reduce) { .esq { animation: none; } .girando { animation-duration: 2s; } }
.girando { width: 26px; height: 26px; border: 2.5px solid var(--line); border-top-color: var(--accent); border-radius: 50%; animation: gira .7s linear infinite; }
@keyframes gira { to { transform: rotate(360deg); } }

.linha-entre {
  display: flex; justify-content: space-between; align-items: center;
  gap: 10px; flex-wrap: wrap; min-width: 0;
}
.linha-entre > *:first-child { min-width: 0; flex: 1 1 auto; }

.legenda { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12px; color: var(--muted); }
.legenda span { display: inline-flex; align-items: center; gap: 6px; }

/* ---------- Gráficos --------------------------------------------------- */
.grafico { width: 100%; max-width: 100%; overflow: visible; }
.grafico text { font-family: var(--fonte-mono); font-size: 10.5px; fill: var(--muted); }
.grafico .eixo { stroke: var(--line); stroke-width: 1; }
.grafico .grade-linha { stroke: var(--line); stroke-dasharray: 3 4; }
.grafico .rotulo-valor { font-size: 10px; fill: var(--text); }
.grafico-dica {
  position: fixed; pointer-events: none; z-index: 80;
  background: var(--surface-3); border: 1px solid var(--line); border-radius: 7px;
  padding: 7px 10px; font-size: 12.5px; box-shadow: var(--sombra); white-space: nowrap;
}

/* ---------- Responsivo -------------------------------------------------- */
.menu-movel { display: none; }
.lateral-fundo { display: none; }

/* Lista de plantões em cartões assim que as 6 colunas deixam de caber
   (com a barra lateral de 240 px isso acontece por volta de 1100 px). */
/* ---------- Imposto de renda ------------------------------------------- */
.ir-lista { display: flex; flex-direction: column; }
.ir-linha {
  display: grid; align-items: center; gap: 4px 14px;
  grid-template-columns: 110px repeat(4, minmax(0, 1fr)) minmax(150px, 1.3fr) 36px;
  padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 13.5px;
}
.ir-linha:last-child { border-bottom: 0; }
.ir-linha > span { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.ir-linha small { font-size: 11.5px; }
.ir-cab { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); padding-top: 0; }
.ir-darf { font-weight: 600; }
.ir-nada { display: none; }
.ir-acao { align-items: flex-end; }
.ir-pagadores { display: flex; flex-direction: column; gap: 10px; }
.ir-pagador { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ir-pagador > div { display: flex; flex-direction: column; gap: 2px; }
.ir-pagador b { overflow-wrap: anywhere; font-weight: 600; }
.ir-pagador small { font-size: 12.5px; }
.ir-pagador select { width: auto; min-width: 150px; flex-shrink: 0; }
.ir-sub { padding-left: 14px; font-size: 13px; color: var(--muted); }
.grupo-campos { border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 10px 14px 4px; margin: 0 0 14px; }
.grupo-campos legend { padding: 0 6px; font-size: 12.5px; color: var(--muted); }

/* ---------- Verificação em duas etapas ---------------------------------- */
.tf-passos { margin: 0 0 12px; padding-left: 20px; font-size: 13.5px; display: flex; flex-direction: column; gap: 4px; }
.tf-qr { display: flex; justify-content: center; }
.tf-qr svg { border-radius: 8px; max-width: 100%; height: auto; }
.tf-chave { font-family: var(--fonte-mono); color: var(--text); overflow-wrap: anywhere; }
.tf-codigos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.tf-codigos code {
  font-family: var(--fonte-mono); font-size: 15px; text-align: center; letter-spacing: .08em;
  padding: 8px; border-radius: var(--radius-sm); background: var(--surface-2); border: 1px solid var(--line);
}

/* ---------- Fadiga relatada --------------------------------------------- */
.fad-ok { color: var(--verde); }
.fad-medio { color: var(--amarela); }
.fad-alto { color: var(--vermelha); }
.fad-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.fad-kpis > div { display: flex; flex-direction: column; gap: 2px; }
.fad-kpis .rotulo { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.fad-kpis b { font-size: 22px; font-family: var(--fonte-mono); }
.fad-lista { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.fad-item { display: flex; align-items: center; gap: 10px; }
.fad-item > div { display: flex; flex-direction: column; gap: 1px; }
.fad-item small { font-size: 12px; }
.fad-nota {
  width: 30px; height: 30px; flex-shrink: 0; border-radius: 8px; display: grid; place-items: center;
  font-family: var(--fonte-mono); font-weight: 600; background: var(--surface-2); border: 1px solid var(--line);
}
.fad-cruz { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 22px; }
.fad-cruz h4 { margin: 0 0 8px; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); font-weight: 500; }
.fad-linha { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(60px, 1fr) 34px; gap: 10px; align-items: center; font-size: 13px; padding: 4px 0; }
.fad-linha > span:first-child { overflow-wrap: anywhere; }
.fad-barra { position: relative; height: 8px; border-radius: 99px; background: var(--surface-3); overflow: hidden; }
.fad-barra i { position: absolute; inset: 0 auto 0 0; background: var(--laranja); opacity: .55; border-radius: 99px; }
.fad-barra em { position: absolute; inset: auto auto 0 0; height: 3px; background: var(--vermelha); }
.fad-linha b { text-align: right; }
.fad-opcoes { display: flex; flex-direction: column; gap: 6px; }
.fad-opcao {
  display: flex; align-items: center; gap: 12px; padding: 8px 12px; cursor: pointer;
  border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface-2);
}
.fad-opcao input { position: absolute; opacity: 0; pointer-events: none; }
.fad-opcao b { font-family: var(--fonte-mono); font-size: 16px; width: 18px; text-align: center; }
.fad-opcao span { font-size: 13.5px; }
.fad-opcao:has(input:checked) { border-color: var(--accent); background: var(--accent-soft); }
.fad-opcao:has(input:focus-visible) { outline: 2px solid var(--accent); outline-offset: 2px; }
.fad-op-ok b { color: var(--verde); }
.fad-op-medio b { color: var(--amarela); }
.fad-op-alto b { color: var(--vermelha); }
.fad-rapido { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.fad-rapido .btn { justify-content: center; font-family: var(--fonte-mono); font-size: 18px; padding: 10px 0; }
.fad-r-ok { color: var(--verde); }
.fad-r-medio { color: var(--amarela); }
.fad-r-alto { color: var(--vermelha); }

@media (max-width: 900px) {
  .ir-cab { display: none; }
  .ir-linha { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 12px 0; }
  .ir-linha .ir-mes { grid-column: 1; grid-row: 1; }
  .ir-linha > span[data-rotulo]::before {
    content: attr(data-rotulo); font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted);
  }
  .ir-linha .ir-acao { grid-column: 2; grid-row: 1; justify-self: end; }
  .ir-vazio > span[data-rotulo] { display: none; }
  .ir-vazio .ir-nada { display: block; }
  .ir-vazio { padding: 8px 0; }
  .fad-cruz { grid-template-columns: minmax(0, 1fr); }
  .fad-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
  .ir-pagador { flex-direction: column; align-items: stretch; }
  .ir-pagador select { width: 100%; }
  .fad-rapido { gap: 5px; }
}

/* ---------- Repasse feito ---------------------------------------------- */
.lp-repassado { display: block; margin-top: 3px; font-size: 12px; color: var(--laranja); }
.cal-ev-repassado { opacity: .55; text-decoration: line-through; }
.cal-bloco-repassado { opacity: .35; background-image: repeating-linear-gradient(45deg, rgba(0,0,0,.25) 0 4px, transparent 4px 9px); }
.cob-repasse { border-left-color: var(--laranja); }
.cob-pagos { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 12px; }

/* ---------- Histórico ---------------------------------------------------- */
.hist-lista { display: flex; flex-direction: column; }
.hist-item { display: flex; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.hist-item:last-child { border-bottom: 0; }
.hist-icone { width: 28px; height: 28px; flex-shrink: 0; border-radius: 8px; display: grid; place-items: center;
  background: var(--surface-2); color: var(--muted); }
.hist-icone svg { width: 15px; height: 15px; }
.hist-texto { min-width: 0; display: flex; flex-direction: column; gap: 2px; font-size: 13.5px; }
.hist-texto small { font-size: 12px; }
.hist-difs { margin: 4px 0 0; padding-left: 16px; font-size: 12.5px; color: var(--muted); }
.hist-difs b { color: var(--text); font-weight: 500; }
.hist-difs s { opacity: .7; }

/* ---------- Simulador ---------------------------------------------------- */
.sim-h { margin: 0 0 8px; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); font-weight: 500; }
.sim-cols .linha-entre { padding: 5px 0; font-size: 13.5px; border-bottom: 1px dashed var(--line); gap: 12px; }
.sim-cols .linha-entre > span { min-width: 0; }
.sim-destaque { color: var(--accent); font-size: 15px; }
.sim-lista { margin: 12px 0 0; padding-left: 18px; font-size: 13.5px; display: flex; flex-direction: column; gap: 4px; }
.sim-favor li::marker { content: "+  "; color: var(--verde); font-weight: 700; }
.sim-contra li::marker { content: "!  "; color: var(--vermelha); font-weight: 700; }

/* ---------- Previsão de caixa ------------------------------------------- */
.cx-lista { display: flex; flex-direction: column; }
.cx-semana { border-bottom: 1px solid var(--line); }
.cx-semana:last-child { border-bottom: 0; }
.cx-cab {
  width: 100%; display: grid; grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr)); gap: 10px; align-items: center;
  background: none; border: 0; padding: 10px 2px; text-align: left; cursor: pointer; font-size: 13.5px;
}
.cx-cab:hover { background: var(--surface-2); }
.cx-quando { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.cx-ent { color: var(--verde); text-align: right; }
.cx-sai { color: var(--vermelha); text-align: right; }
.cx-saldo { text-align: right; }
.cx-fraca .cx-saldo b { color: var(--amarela); }
.cx-itens { padding: 0 2px 10px; }
.cx-item { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 10px; font-size: 13px; padding: 4px 0; align-items: baseline; }
.cx-item small { font-size: 11.5px; }

@media (max-width: 700px) {
  .cx-cab { grid-template-columns: minmax(0, 1fr) auto; }
  .cx-cab .cx-ent, .cx-cab .cx-sai { display: none; }
  .sim-cols { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Painel ------------------------------------------------------------ */
.painel-grade { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 14px; }
.painel-cartao { min-width: 0; display: flex; flex-direction: column; }
.painel-cartao > .cartao, .painel-cartao > .kpis-painel { flex: 1; }
.span-12 { grid-column: span 12; } .span-8 { grid-column: span 8; } .span-4 { grid-column: span 4; } .span-6 { grid-column: span 6; }
.painel-rodape { font-size: 12px; margin: 14px 2px 0; }
.painel-barra { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 10px 14px; margin-bottom: 14px;
  border: 1px dashed var(--accent); border-radius: var(--radius); background: var(--accent-soft); font-size: 13px; }
.painel-escondidos { display: flex; flex-wrap: wrap; gap: 6px; flex: 1; }
.painel-editando .painel-cartao { outline: 1px dashed var(--line); outline-offset: 3px; border-radius: var(--radius); cursor: grab; }
.painel-editando .painel-cartao.arrastando { opacity: .4; }
.painel-editando .painel-cartao.alvo { outline: 2px solid var(--accent); }
.painel-ctrl { display: flex; align-items: center; gap: 6px; padding: 0 2px 8px; font-size: 13px; }
.painel-ctrl b { flex: 1; font-weight: 600; }
.painel-alca { color: var(--muted); font-size: 16px; }

/* Agora */
.agora { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto; gap: 18px; align-items: center;
  background: linear-gradient(120deg, var(--accent-soft), transparent 60%), var(--surface); }
.agora small { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .07em; color: var(--muted); margin-bottom: 3px; }
.agora b { display: block; font-size: 16px; font-weight: 600; }
.agora .muted { font-size: 13px; }
.agora-estado { display: flex; gap: 12px; align-items: flex-start; }
.agora-pulso { width: 10px; height: 10px; border-radius: 50%; background: var(--accent); margin-top: 22px; flex-shrink: 0;
  box-shadow: 0 0 0 0 var(--accent); animation: pulso 2s infinite; }
.agora-vinculo .agora-pulso { background: var(--azul); }
@keyframes pulso { 0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--accent) 55%, transparent); } 70% { box-shadow: 0 0 0 10px color-mix(in srgb, var(--accent) 0%, transparent); } 100% { box-shadow: 0 0 0 0 transparent; } }
.agora-barra { height: 6px; border-radius: 99px; background: var(--surface-3); margin-top: 8px; overflow: hidden; width: min(320px, 100%); }
.agora-barra i { display: block; height: 100%; background: var(--accent); border-radius: 99px; transition: width .4s; }
.agora-proximo { border-left: 1px solid var(--line); padding-left: 18px; min-width: 0; }
.agora-proximo small b { display: inline; font-size: 11px; color: var(--accent); }
.agora-atalhos { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; max-width: 280px; }

/* Indicadores */
.kpis-painel { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.kpi-vivo { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 16px 18px 14px; overflow: hidden;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); color: inherit; text-decoration: none;
  transition: border-color .15s, transform .15s; min-height: 132px; }
.kpi-vivo:hover { border-color: var(--accent); transform: translateY(-1px); }
.kpi-vivo .rotulo { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
.kpi-vivo .valor { font-family: var(--fonte-mono); font-size: 22px; font-weight: 500; }
.kpi-rodape { font-size: 12px; color: var(--muted); }
.kpi-var { font-weight: 600; }
.spark { width: 100%; height: 30px; margin-top: auto; }
.kpi-aging { margin-top: auto; height: 6px; border-radius: 99px; background: var(--surface-3); overflow: hidden; }
.kpi-aging i { display: block; height: 100%; background: var(--vermelha); }

/* Pendências */
.pend-lista { display: flex; flex-direction: column; gap: 8px; }
.pend-item { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 9px 12px;
  border-radius: var(--radius-sm); background: var(--surface-2); border-left: 3px solid var(--line); color: inherit; text-decoration: none; }
.pend-item > div { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.pend-item b { font-size: 13.5px; font-weight: 600; }
.pend-item .muted { font-size: 12.5px; }
.pend-alto { border-left-color: var(--vermelha); }
.pend-medio { border-left-color: var(--amarela); }
.pend-link:hover { background: var(--surface-3); }
.pend-seta svg { width: 16px; height: 16px; color: var(--muted); }
.pend-ok { display: flex; gap: 12px; align-items: center; padding: 14px; border-radius: var(--radius-sm); background: var(--surface-2); }
.pend-ok > svg { width: 26px; height: 26px; color: var(--verde); flex-shrink: 0; }
.pend-ok div { display: flex; flex-direction: column; gap: 2px; font-size: 13.5px; }

/* Meta */
.meta-corpo { display: flex; gap: 16px; align-items: center; }
.meta-anel { width: 120px; height: 120px; flex-shrink: 0; }
.meta-pct { font-family: var(--fonte-mono); font-size: 22px; fill: var(--text); font-weight: 600; }
.meta-sub { font-size: 10px; fill: var(--muted); }
.meta-texto { display: flex; flex-direction: column; gap: 6px; font-size: 13px; min-width: 0; }

/* Semana */
.semana-faixa { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.semana-dia { display: flex; flex-direction: column; gap: 6px; padding: 10px; border-radius: var(--radius-sm); background: var(--surface-2);
  border: 1px solid transparent; color: inherit; text-decoration: none; min-width: 0; transition: border-color .15s; }
.semana-dia:hover { border-color: var(--accent); }
.semana-hoje { border-color: var(--accent); }
.semana-cab { display: flex; justify-content: space-between; gap: 4px; font-size: 12.5px; text-transform: capitalize; }
.semana-barra { position: relative; height: 54px; border-radius: 6px; background: var(--surface-3); overflow: hidden; }
.semana-barra i { position: absolute; left: 0; right: 0; bottom: 0; background: var(--accent); opacity: .85; }
.semana-barra em { position: absolute; left: 0; right: 0; bottom: 0; background: var(--roxo); opacity: .9; }
.semana-horas { font-size: 13px; font-weight: 600; }
.semana-sinal { display: flex; align-items: center; gap: 5px; font-size: 11px; color: var(--muted); min-height: 15px; }
.semana-sinal i { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; background: var(--surface-3); }
.nivel-ok .semana-sinal i { background: var(--verde); }
.nivel-medio .semana-sinal i { background: var(--amarela); }
.nivel-alto .semana-sinal i { background: var(--vermelha); }
.nivel-alto { border-color: rgba(229, 72, 77, .45); }
.semana-eventos { display: flex; flex-direction: column; gap: 2px; font-size: 11.5px; min-width: 0; }
.semana-eventos span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.semana-eventos .ponto { width: 6px; height: 6px; margin-right: 4px; }

/* Série */
.serie-modos { display: flex; flex-wrap: wrap; gap: 4px; justify-content: flex-end; }
.serie-barras { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 6px; align-items: end; height: 220px; }
.serie-col { position: relative; display: flex; flex-direction: column; justify-content: flex-end; gap: 6px; height: 100%;
  background: none; border: 0; padding: 0; cursor: pointer; color: inherit; }
.serie-pilha { display: flex; flex-direction: column-reverse; flex: 1; justify-content: flex-start; border-radius: 6px 6px 0 0; overflow: hidden; }
.serie-pilha i { display: block; width: 100%; transition: filter .15s; }
.serie-col:hover .serie-pilha i, .serie-col:focus-visible .serie-pilha i { filter: brightness(1.25); }
.serie-atual .serie-pilha { outline: 2px solid var(--text); outline-offset: 2px; }
.serie-rot { font-size: 10.5px; color: var(--muted); text-align: center; white-space: nowrap; }
.serie-dica { display: none; position: absolute; bottom: calc(100% - 20px); left: 50%; transform: translateX(-50%); z-index: 5;
  background: var(--surface-3); border: 1px solid var(--line); border-radius: 8px; padding: 6px 9px; font-size: 11.5px;
  white-space: nowrap; text-align: left; box-shadow: var(--sombra); pointer-events: none; }
.serie-col:hover .serie-dica, .serie-col:focus-visible .serie-dica { display: block; }
.serie-col:first-child .serie-dica { left: 0; transform: none; }
.serie-col:last-child .serie-dica { left: auto; right: 0; transform: none; }
.serie-legenda { margin-top: 10px; }

/* Caixa */
.caixa-mini { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; align-items: end; }
.caixa-sem { display: flex; flex-direction: column; align-items: center; gap: 4px; font-size: 11.5px; min-width: 0; }
.caixa-barra { width: 100%; height: 110px; display: flex; align-items: flex-end; border-radius: 6px; background: var(--surface-2); overflow: hidden; }
.caixa-barra i { display: block; width: 100%; background: var(--accent); border-radius: 6px 6px 0 0; }
.caixa-fraca .caixa-barra i { background: var(--amarela); }
.caixa-sem .num { font-size: 11.5px; }
.caixa-nota { margin: 10px 0 0; font-size: 12.5px; }

/* Saúde */
.saude-mini { display: flex; flex-direction: column; gap: 12px; }
.saude-mini > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; align-items: center; font-size: 13px; }
.saude-mini > div > span:first-child { color: var(--muted); }
.saude-barra { grid-column: 1 / -1; height: 6px; border-radius: 99px; background: var(--surface-3); overflow: hidden; }
.saude-barra i { display: block; height: 100%; background: var(--verde); }
.saude-barra i.perto { background: var(--amarela); }
.saude-barra i.acima { background: var(--vermelha); }
.selo-zona { grid-column: 1 / -1; font-size: 11.5px; }
.zona-alto { color: var(--vermelha); } .zona-medio { color: var(--amarela); } .zona-ok { color: var(--verde); } .zona-neutro { color: var(--muted); }
.saude-fad { grid-column: 1 / -1; font-size: 12px; }
.saude-pergunta { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); display: flex; flex-direction: column; gap: 8px; font-size: 13px; }
.saude-pergunta > .btn { align-self: flex-start; }
.saude-pergunta .fad-rapido .btn { font-size: 15px; padding: 7px 0; }

.prox-lista { display: flex; flex-direction: column; gap: 10px; }
.prox-item { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; }
.prox-item .ponto { margin-top: 6px; }
.prox-item .linha-entre b { font-size: 13.5px; }

@media (max-width: 1240px) {
  .kpis-painel { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .agora { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .agora-atalhos { grid-column: 1 / -1; justify-content: flex-start; max-width: none; }
}
@media (max-width: 1100px) {
  .span-8 { grid-column: span 12; }
  .span-4 { grid-column: span 6; }
  .semana-faixa { grid-template-columns: repeat(7, minmax(84px, 1fr)); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; padding-bottom: 6px; }
  .semana-dia { scroll-snap-align: start; }
}
@media (max-width: 760px) {
  .painel-grade { gap: 12px; }
  .span-4, .span-6 { grid-column: span 12; }
  .agora { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .agora-proximo { border-left: 0; padding-left: 0; border-top: 1px solid var(--line); padding-top: 12px; }
  .kpis-painel { display: flex; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; gap: 10px; padding-bottom: 6px; margin: 0 -2px; }
  .kpi-vivo { flex: 0 0 72%; scroll-snap-align: start; min-height: 120px; }
  .serie-barras { height: 180px; gap: 3px; }
  .serie-rot { font-size: 9px; }
  .serie-col:nth-child(even) .serie-rot { visibility: hidden; }
  .pend-item { grid-template-columns: minmax(0, 1fr) auto; }
  .pend-item > .btn { grid-column: 1 / -1; justify-self: start; }
  .painel-ctrl b { font-size: 12px; }
}

@media (max-width: 1100px) {
  .lista-pl-cab { display: none; }
  .linha-pl {
    grid-template-columns: 24px minmax(0, 1fr) auto;
    grid-template-areas:
      "sel local valor"
      "sel data  valor"
      "sel pag   acoes";
    gap: 6px 12px;
    padding: 12px 6px;
    align-items: start;
  }
  .lp-sel   { grid-area: sel; padding-top: 2px; }
  .lp-local { grid-area: local; }
  .lp-data  { grid-area: data; flex-direction: row !important; flex-wrap: wrap; align-items: baseline; gap: 0 8px !important; }
  .lp-data b { font-size: 13px; }
  .lp-valor { grid-area: valor; }
  .lp-pag   { grid-area: pag; flex-direction: row !important; flex-wrap: wrap; align-items: center !important; gap: 4px 8px !important; }
  .lp-acoes { grid-area: acoes; align-self: end; }
}

@media (max-width: 1080px) {
  .indicadores { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .g4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .g3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .g-2-1, .g-1-2 { grid-template-columns: minmax(0, 1fr); }
  .cal-ano { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  .app { grid-template-columns: minmax(0, 1fr); }
  .lateral {
    position: fixed; inset: 0 auto 0 0; width: 250px; z-index: 70;
    transform: translateX(-100%); transition: transform .22s ease;
    box-shadow: var(--sombra);
    height: auto;
    padding-bottom: max(16px, env(safe-area-inset-bottom));
  }
  .lateral.aberta { transform: none; }
  .lateral-fundo.aberta {
    display: block; position: fixed; inset: 0; z-index: 65;
    background: rgba(5, 9, 18, .55);
  }
  .menu-movel {
    display: flex; position: sticky; top: 0; z-index: 40;
    width: 100%; align-items: center; gap: 12px;
    background: var(--surface); border-bottom: 1px solid var(--line); padding: 10px 14px;
    padding-top: max(10px, env(safe-area-inset-top));
  }
  .conteudo { padding: 16px 14px calc(90px + env(safe-area-inset-bottom)); }
  .g2, .g3, .g4 { grid-template-columns: minmax(0, 1fr); }
  .linha-campos, .linha-campos-3 { grid-template-columns: minmax(0, 1fr); }
  .login-wrap { grid-template-columns: 1fr; }
  .login-arte { display: none; }
  .login-marca-movel { display: flex; align-items: center; gap: 12px; margin: 0 0 26px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
  .login-marca-movel-icone { width: 44px; height: 44px; flex: none; }
  .login-marca-movel strong { display: block; font-family: var(--fonte-display); font-size: 21px; letter-spacing: -.03em; line-height: 1.15; }
  .login-marca-movel span { display: block; font-size: 12.5px; color: var(--muted); margin-top: 2px; }
  .login-form-area { align-items: flex-start; padding: 28px 20px; }
  .cal-ano { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .linha-rank { grid-template-columns: minmax(0, 1fr); }
  .linha-rent { grid-template-columns: minmax(0, 1fr); }

  /* Cabeçalho: título em cima, ações embaixo, ocupando a largura toda */
  .topo { align-items: flex-start; gap: 12px; margin-bottom: 16px; }
  .topo h1 { font-size: 22px; }
  .topo-acoes { width: 100%; }

  /* Modais ocupam a tela toda: formulários longos ficam utilizáveis */
  .modal-fundo { padding: 0; align-items: stretch; }
  .modal { max-width: 100% !important; max-height: 100vh; border-radius: 0; border: none; height: 100%; }
  .modal-rodape { flex-direction: column-reverse; padding-bottom: max(14px, env(safe-area-inset-bottom)); }
  .modal-rodape .btn { width: 100%; justify-content: center; }

  .avisos { right: 12px; left: 12px; bottom: max(12px, env(safe-area-inset-bottom)); }
  .aviso { max-width: none; }
  table.tabela { font-size: 13px; }
  table.tabela th, table.tabela td { padding: 8px 9px; }
}

@media (max-width: 700px) {
  /* Tabelas com muitas colunas rolam dentro do cartão em vez de esticar a tela */
  table.tabela { min-width: 620px; }
  table.tabela th, table.tabela td { padding: 8px 9px; }
  .tabela-wrap { border: 1px solid var(--line); }
}

@media (max-width: 560px) {
  body { font-size: 14.5px; }
  .conteudo { padding: 14px 12px calc(90px + env(safe-area-inset-bottom)); }
  .cartao { padding: 14px; }
  .cartao-titulo { flex-wrap: wrap; gap: 8px; }
  .kpi .valor { font-size: 21px; }

  /* Cabeçalho: cada grupo de ações ocupa uma linha inteira, sem rolagem lateral */
  .topo { gap: 10px; }
  .topo-acoes { width: 100%; flex-wrap: wrap; gap: 6px; }
  .topo-acoes > div { flex-wrap: wrap; }
  .topo-acoes strong { min-width: 0 !important; flex: 1 1 auto; text-align: center; font-size: 14px; }
  .topo-acoes .btn-primario { width: 100%; justify-content: center; }

  .filtros { gap: 8px; }
  .filtros .campo { min-width: 0; flex: 1 1 130px; }

  /* Lista de plantões: local ocupa a linha toda; ações descem para o rodapé do cartão */
  .linha-pl {
    grid-template-areas:
      "sel local local"
      "sel data  valor"
      "sel pag   pag"
      "sel acoes acoes";
  }
  .lp-acoes { justify-content: flex-start; align-self: start; }

  .cob-itens li {
    grid-template-columns: minmax(0, 1fr) auto 34px;
    grid-template-areas: "data valor ok" "local prazo ok";
  }
  .cob-data  { grid-area: data; }
  .cob-local { grid-area: local; }
  .cob-valor { grid-area: valor; }
  .cob-prazo { grid-area: prazo; text-align: right; }
  .cob-itens li > .btn-icone { grid-area: ok; }
  .cob-total { align-items: flex-start; }
  .rent-num { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  /* Calendário mensal: números e faixas menores, mas ainda legíveis */
  .cal-grade, .cal-cabecalho { gap: 2px; }
  .cal-dia { min-height: 58px; padding: 3px; gap: 2px; }
  .cal-dia .n { font-size: 11px; }
  .cal-ev { font-size: 9px; padding: 1px 3px; border-left-width: 2px; }
  .cal-cabecalho div { font-size: 9px; }
  .cal-ano { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .cal-mini h4 { font-size: 11.5px; }

  .fita-dia, .fita-escala { grid-template-columns: 48px minmax(0, 1fr) 42px; gap: 6px; }
  .fita-dia .data, .fita-dia .total { font-size: 10.5px; }
  .fita { height: 16px; }
  .fita-escala div:nth-child(2) span:nth-child(2),
  .fita-escala div:nth-child(2) span:nth-child(4) { display: none; }

  table.tabela .btn-mini { padding: 4px 7px; font-size: 11.5px; }
  .grafico-dica { max-width: 78vw; white-space: normal; }
  .legenda { font-size: 11.5px; gap: 10px; }
  .alerta-saude { padding: 10px 12px; }
}

@media (max-width: 400px) {
  .cal-ano { grid-template-columns: minmax(0, 1fr); }
  .cal-dia .n span { display: none; }
  .topo h1 { font-size: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* ---------- Receitas: mês a mês ------------------------------------------ */
.rb-sit { display: flex; flex-wrap: wrap; gap: 8px; }
.rb-sit label { display: flex; align-items: center; gap: 7px; padding: 8px 12px; border: 1px solid var(--line);
  border-radius: 999px; cursor: pointer; font-size: 13.5px; background: var(--surface-2); }
.rb-sit label:has(input:checked) { border-color: var(--accent); background: var(--accent-soft); color: var(--accent); font-weight: 600; }
.rb-sit input { accent-color: var(--accent); margin: 0; }
.rm-lista { display: flex; flex-direction: column; gap: 6px; max-height: 60vh; overflow-y: auto; }
.rm-linha { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; gap: 10px; align-items: center;
  padding: 9px 12px; background: var(--surface-2); border-radius: 9px; }
.rm-linha > div { display: flex; flex-direction: column; min-width: 0; }
.rm-linha .muted { font-size: 12px; }
.rm-futuro { opacity: .7; }
@media (max-width: 560px) {
  .rm-linha { grid-template-columns: minmax(0, 1fr) auto; }
  .rm-linha .selo { justify-self: start; }
}

/* ---------- Abas (Ajustes) ------------------------------------------------ */
.abas { display: flex; gap: 4px; border-bottom: 1px solid var(--line); margin: 0 0 16px; overflow-x: auto; overscroll-behavior-x: contain; }
.aba { background: none; border: 0; border-bottom: 2px solid transparent; padding: 10px 14px; margin-bottom: -1px;
  color: var(--muted); font-weight: 500; font-size: 14.5px; cursor: pointer; white-space: nowrap; border-radius: 8px 8px 0 0; }
.aba:hover { color: var(--text); background: var(--surface-2); }
.aba.ativa { color: var(--accent); border-bottom-color: var(--accent); font-weight: 600; }
@media (max-width: 760px) {
  .abas { margin-left: 0; margin-right: 0; }
  .aba { padding: 10px 12px; font-size: 14px; }
}

/* ---------- Análise financeira ------------------------------------------- */
.fin-comparar { margin: 0; font-size: 13.5px; }
.fin-kpis .kpi-vivo .valor { font-size: 21px; }
.fin-barras { height: 240px; }
.fin-barras .serie-col { position: relative; }
.fin-antes { position: absolute; left: 12%; right: 12%; height: 0; border-top: 2px dashed var(--text); opacity: .55; pointer-events: none; }
.fin-marca { display: inline-block; width: 14px; border-top: 2px dashed var(--text); opacity: .6; vertical-align: middle; margin-right: 4px; }
.legenda-linha { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 12.5px; color: var(--muted); }
.legenda-linha span { display: inline-flex; align-items: center; gap: 6px; }
.fin-rent-ctrl { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.fin-rent-ctrl .controle { width: auto; min-width: 0; padding: 6px 10px; font-size: 13px; }
.fin-rent-ctrl input[type=search] { width: 150px; }
.rent-pos { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 6px; background: var(--surface-3);
  font-family: var(--fonte-mono); font-size: 11px; color: var(--muted); margin-right: 6px; }
.fin-rank { display: flex; flex-direction: column; gap: 2px; }
.fin-rank-linha { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto; grid-template-areas: "nome barra valor" "nota nota nota";
  gap: 2px 12px; align-items: center; padding: 8px 10px; border-radius: 9px; color: var(--text); }
.fin-rank-linha:hover { background: var(--surface-2); }
.fin-rank-nome { grid-area: nome; display: flex; align-items: center; gap: 8px; min-width: 0; font-weight: 500;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fin-rank-barra { grid-area: barra; height: 8px; border-radius: 99px; background: var(--surface-3); overflow: hidden; }
.fin-rank-barra i { display: block; height: 100%; border-radius: 99px; }
.fin-rank-linha > .num { grid-area: valor; font-size: 13.5px; }
.fin-rank-nota { grid-area: nota; font-size: 12px; padding-left: 16px; }
.fin-ativ { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.fin-rosca { position: relative; width: 150px; height: 150px; border-radius: 50%; flex: none; }
.fin-rosca span { position: absolute; inset: 24px; border-radius: 50%; background: var(--surface); display: flex; flex-direction: column;
  align-items: center; justify-content: center; text-align: center; }
.fin-rosca small { font-size: 11px; color: var(--muted); }
.fin-ativ-lista { display: flex; flex-direction: column; gap: 7px; flex: 1; min-width: 150px; font-size: 13.5px; }
.fin-ativ-lista div { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; align-items: center; }
.fin-ativ-lista span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fin-dow { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; height: 220px; }
.fin-dow-col { display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 0; }
.fin-dow-col > .num { font-size: 11px; color: var(--muted); white-space: nowrap; }
.fin-dow-barra { flex: 1; width: 100%; max-width: 46px; display: flex; align-items: flex-end; background: var(--surface-2); border-radius: 8px; overflow: hidden; }
.fin-dow-barra i { display: block; width: 100%; background: var(--accent); border-radius: 8px 8px 0 0; }
.fin-dow-col small { font-size: 10.5px; text-align: center; }
.fin-det-kpi { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; background: var(--surface-2); border-radius: 9px; }
.fin-det-kpi .muted { font-size: 12px; }
.fin-det-tit { font-size: 13px; margin: 14px 0 6px; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; }
.fin-det-lista { display: flex; flex-direction: column; gap: 4px; }
.fin-det-linha { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 10px; align-items: center; padding: 7px 10px;
  background: var(--surface-2); border-radius: 8px; font-size: 13.5px; }
.fin-det-linha > div { display: flex; flex-direction: column; min-width: 0; }
.fin-det-linha .muted { font-size: 12px; }
@media (max-width: 760px) {
  .fin-barras { height: 200px; gap: 3px; }
  .fin-barras .serie-col:nth-child(even) .serie-rot { visibility: hidden; }
  .fin-dow-col small { display: none; }
  .fin-rent-ctrl { justify-content: flex-start; }
  .fin-rent-ctrl input[type=search] { width: 100%; }
  .fin-det-linha { grid-template-columns: minmax(0, 1fr) auto; }
  .fin-det-linha .selo { display: none; }
}
@media (max-width: 760px) {
  .topo-acoes .fin-tipo { flex-wrap: nowrap; }
  .topo-acoes .fin-tipo .btn-primario, .topo-acoes .cal-vistas .btn-primario { width: auto; }
  .topo-acoes .cal-vistas { flex-wrap: nowrap; }
}

/* ---------- Calendário: totais da semana, arrastar e leitura no celular ---------- */
.cal-com-semana { grid-template-columns: repeat(7, minmax(0, 1fr)) 64px; }
.cal-semana-tot { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; padding: 4px;
  border-radius: var(--radius-sm); background: var(--surface-3); font-size: 11.5px; color: var(--muted); text-align: center; min-width: 0; }
.cal-semana-tot b { font-size: 14px; color: var(--text); }
.cal-semana-tot small { font-size: 10.5px; }
.cal-semana-tot.acima { background: color-mix(in srgb, var(--vermelha) 16%, var(--surface-2)); box-shadow: inset 0 0 0 1px var(--vermelha); }
.cal-semana-tot.acima b { color: var(--vermelha); }
.cal-ev-curto { display: none; }
.cal-mais, .cal-aus { font-size: 11px; }
.cal-resumo-semana { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: baseline; padding: 0 0 12px; margin-bottom: 8px;
  border-bottom: 1px solid var(--line); font-size: 13.5px; }
.cal-resumo-semana.acima > span:first-child b { color: var(--vermelha); }
.cal-dica-arraste { margin-left: auto; font-size: 12px; }
.cal-movel { cursor: grab; touch-action: pan-x pan-y; -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
.cal-arrastando { opacity: .35; }
.cal-arrastando-corpo, .cal-arrastando-corpo * { cursor: grabbing !important; -webkit-user-select: none; user-select: none; }
.cal-fantasma { pointer-events: none; z-index: 30; opacity: .92; box-shadow: 0 8px 22px rgba(0, 0, 0, .35); outline: 2px solid var(--text); }
.cal-fantasma::after { content: attr(data-hora); position: absolute; left: 4px; top: -20px; padding: 1px 6px; border-radius: 5px;
  background: var(--text); color: var(--bg); font: 600 11px var(--fonte-mono); white-space: nowrap; }
.cal-ev.cal-fantasma { position: fixed; overflow: visible; background: var(--surface); }
.cal-ev.cal-fantasma::after { top: auto; bottom: -22px; }
.cal-alvo { border-color: var(--accent) !important; background: var(--accent-soft) !important; }
.cal-mover-de-para { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 10px; align-items: center; }
.cal-mover-de-para > div { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; background: var(--surface-2); border-radius: 9px; }
.cal-mover-de-para .muted { font-size: 11.5px; text-transform: uppercase; letter-spacing: .06em; }
.cal-acoes-ev { display: flex; flex-direction: column; gap: 4px; }
[data-tema="claro"] .cal-bloco { color: #0B1A2E; }
@media (max-width: 760px) {
  .cal-com-semana { grid-template-columns: repeat(7, minmax(0, 1fr)) 40px; }
  .cal-semana-tot { padding: 2px; font-size: 10px; }
  .cal-semana-tot b { font-size: 12px; }
  .cal-semana-tot small, .cal-semana-tot span { display: none; }
  .cal-dica-arraste { display: none; }
  /* No celular a faixa mostra só a hora de início, maior e legível; o resto abre ao tocar no dia */
  .cal-ev { font-size: 11px; padding: 2px 3px; border-left-width: 3px; text-align: center; font-family: var(--fonte-mono); font-weight: 600; }
  .cal-ev-longo { display: none; }
  .cal-ev-curto { display: inline; }
  .cal-cabecalho div { font-size: 10.5px; letter-spacing: .02em; }
  .cal-dia .n { font-size: 12px; }
  .cal-dia { min-height: 64px; }
  .cal-mais, .cal-aus { font-size: 10.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .cal-mini-dia { font-size: 10.5px; }
  .cal-bloco { font-size: 11.5px; }
}

/* ---------- Lista de plantões: atalhos, filtros salvos e lote ------------- */
.lp-rapidos { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 14px; }
.chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--line);
  background: var(--surface-2); color: var(--muted); font-size: 13px; font-weight: 500; cursor: pointer; white-space: nowrap; }
.chip:hover { color: var(--text); border-color: var(--muted); }
.chip.ativo { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); font-weight: 600; }
.lp-salvos { display: contents; }
.chip-salvo { border-style: dashed; color: var(--text); }
.chip-x { border: 0; background: none; color: var(--muted); font-size: 16px; line-height: 1; padding: 0 0 0 2px; cursor: pointer; }
.chip-x:hover { color: var(--vermelha); }
.lp-irrf { align-self: end; margin: 0 0 10px; white-space: nowrap; }
.lp-filtro-acoes { display: flex; gap: 6px; justify-content: flex-end; flex-wrap: wrap; margin-top: 4px; }
.lp-lote { justify-content: flex-end; }
@media (max-width: 760px) {
  .lp-rapidos { flex-wrap: nowrap; overflow-x: auto; overscroll-behavior-x: contain; margin: 0 -4px 12px; padding: 0 4px 4px; }
  .lp-filtro-acoes { justify-content: flex-start; }
  .lp-lote { width: 100%; justify-content: flex-start; }
}

/* ---------- Vínculos: 13º, férias e impostos ------------------------------ */
.vi-extras { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); display: flex; flex-direction: column; gap: 8px; }
.vi-marcas { display: flex; flex-wrap: wrap; gap: 6px; }
.vi-prox { display: flex; flex-direction: column; gap: 4px; font-size: 13px; }
.vi-ano { font-size: 12.5px; margin: 0; }
.vi-fs { border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 12px 14px 10px; margin: 0 0 14px; }
.vi-fs legend { padding: 0 6px; font-size: 13px; font-weight: 600; color: var(--muted); }

/* ---------- Estudo ---------------------------------------------------------- */
.semana-barra u { position: absolute; left: 0; right: 0; background: var(--estudo); opacity: .85; text-decoration: none; }
.semana-estudo { color: var(--estudo); font-size: 10.5px; font-weight: 600; }
.agora-pilha { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.agora-estudo { display: flex; gap: 12px; align-items: flex-start; }
.agora-estudo .agora-pulso, .agora-estudo-estado .agora-pulso { background: var(--estudo); margin-top: 18px; }
.agora-estudo > div { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.agora-estudo small { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--estudo); font-weight: 600; }
.agora-estudo .btn { align-self: center; }
.agora-estudo-estado .agora-barra i { background: var(--estudo); }
.es-cron { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; padding: 14px 18px; border-radius: var(--radius);
  background: color-mix(in srgb, var(--estudo) 12%, var(--surface)); border: 1px solid color-mix(in srgb, var(--estudo) 45%, var(--line)); }
.es-cron-tempo { font: 600 28px var(--fonte-mono); letter-spacing: -.02em; color: var(--estudo); }
.es-cron > div { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.es-barras { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 6px; align-items: end; height: 200px; }
.es-col { display: flex; flex-direction: column; justify-content: flex-end; height: 100%; gap: 4px; position: relative; min-width: 0; }
.es-pilha { flex: 1; display: flex; flex-direction: column-reverse; border-radius: 6px 6px 0 0; overflow: hidden; position: relative; }
.es-pilha i { display: block; width: 100%; }
.es-limite { position: absolute; left: -2px; right: -2px; border-top: 2px dashed var(--vermelha); opacity: .6; pointer-events: none; }
.es-rot { font-size: 10.5px; color: var(--muted); text-align: center; white-space: nowrap; }
.es-col .serie-dica { bottom: calc(100% - 20px); }
.es-col:hover .serie-dica { display: block; }
.es-tipos { display: flex; flex-direction: column; gap: 10px; }
.es-tipo { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; align-items: center; font-size: 13.5px; }
.es-tipo .rent-barra { grid-column: 1 / -1; }
.es-dia { margin-top: 12px; }
.es-dia:first-child { margin-top: 0; }
.es-dia h4 { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin: 0 0 6px; }
.es-sessao { display: grid; grid-template-columns: 110px minmax(0, 1fr) auto auto; gap: 10px; align-items: center; padding: 8px 10px;
  background: var(--surface-2); border-radius: 9px; border-left: 3px solid var(--estudo); margin-bottom: 4px; font-size: 13.5px; }
.es-sessao > div { display: flex; flex-direction: column; min-width: 0; }
.es-sessao .muted { font-size: 12px; }
.es-acoes { display: flex; gap: 4px; }
.es-explica { font-size: 13px; margin: 0; display: flex; flex-direction: column; gap: 6px; }
@media (max-width: 760px) {
  .es-barras { height: 160px; gap: 3px; }
  .es-col:nth-child(even) .es-rot { visibility: hidden; }
  .es-sessao { grid-template-columns: minmax(0, 1fr) auto; }
  .es-sessao .es-hora { grid-column: 1 / -1; }
  .es-cron-tempo { font-size: 24px; }
}
.pesos-grade { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 10px; }
.pesos-grade .campo label { font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 560px) { .pesos-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cal-ev-estudo { background: color-mix(in srgb, var(--estudo) 14%, var(--surface-3)); }
.cal-bloco-estudo { color: #2A0E1C; }
.cal-tot-estudo { color: var(--estudo); font-weight: 600; }
p.dica { font-size: 12.5px; color: var(--muted); line-height: 1.45; }
.agora-estudo-acoes { display: flex; gap: 6px; align-self: center; flex-wrap: wrap; }
.es-series { display: flex; flex-direction: column; gap: 8px; }
.es-serie { display: flex; gap: 14px; align-items: center; justify-content: space-between; flex-wrap: wrap; padding: 12px 14px;
  background: var(--surface-2); border-radius: 10px; border-left: 3px solid var(--estudo); }
.es-serie-fim { opacity: .7; border-left-color: var(--muted); }
.es-serie-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 320px; }
.es-serie-info .muted { font-size: 12.5px; }
.es-serie-acoes { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.campo .rb-sit label { display: inline-flex; width: auto; margin: 0; white-space: nowrap; color: var(--text); font-size: 13.5px; text-transform: none; letter-spacing: 0; }

/* ---------- Sobreposição de compromissos e vínculo num dia ---------- */
.sb-lista { display: flex; flex-direction: column; gap: 12px; }
.sb-item { border: 1px solid var(--line); border-radius: var(--radius); padding: 12px 14px; background: var(--surface-2); }
.sb-cab { display: flex; flex-direction: column; gap: 2px; margin-bottom: 10px; min-width: 0; }
.sb-cab .muted { font-size: 12.5px; }
.sb-opcoes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.sb-op { display: flex; gap: 8px; align-items: flex-start; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px;
  background: var(--surface); cursor: pointer; min-width: 0; }
.sb-op:has(input:checked) { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent) inset; }
.sb-op input { margin-top: 3px; flex: none; accent-color: var(--accent); }
.sb-op span { display: flex; flex-direction: column; gap: 2px; min-width: 0; font-size: 13.5px; }
.sb-op small { font-size: 12px; line-height: 1.35; }
@media (max-width: 560px) { .sb-opcoes { grid-template-columns: 1fr; } }
.vd-faixas { display: flex; flex-direction: column; gap: 8px; margin-bottom: 10px; }
.vd-faixa { display: flex; align-items: center; gap: 8px; }
.vd-faixa input[type=time] { flex: 1; min-width: 0; max-width: 150px; }

/* ---------- Entrar, criar conta e Google ---------- */
.login-google { display: flex; justify-content: center; min-height: 44px; margin-bottom: 4px; }
.login-ou { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 12.5px; margin: 14px 0 16px; }
.login-ou::before, .login-ou::after { content: ""; flex: 1; border-top: 1px solid var(--line); }
.login-erro { color: var(--vermelha); margin: 14px 0 0; font-size: 13.5px; min-height: 0; }
.login-erro:empty { margin: 0; }
.login-troca { margin: 18px 0 0; font-size: 13.5px; color: var(--muted); text-align: center; }
.login-aceite { align-items: flex-start; font-size: 13.5px; margin: 4px 0 16px; line-height: 1.45; }
.login-aceite input { margin-top: 2px; }
.login-rodape { margin: 26px 0 0; font-size: 12px; color: var(--muted); text-align: center; }
.login-rodape a { color: var(--muted); }
.login-copy { margin: 10px 0 0; display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 12px; color: var(--muted); }
.login-copy a { display: inline-flex; padding: 2px; border-radius: 6px; transition: transform .15s ease, filter .15s ease; }
.login-copy a:hover { transform: translateY(-1px); filter: brightness(1.12); }
.login-copy img { display: block; height: 24px; width: auto; }

/* ---------- Termos e privacidade ---------- */
.legal { max-width: 760px; margin: 0 auto; padding: 32px 20px 64px; line-height: 1.6; }
.legal h1 { font-size: 30px; margin: 18px 0 4px; }
.legal h2 { font-size: 18px; margin: 28px 0 8px; }
.legal p, .legal li { color: var(--text); font-size: 15px; }
.legal ul { padding-left: 20px; display: flex; flex-direction: column; gap: 6px; }
.legal .muted { color: var(--muted); font-size: 13.5px; }

/* ---------- Plano e Premium ---------- */
.nav a .nav-tranca { margin-left: auto; display: inline-flex; opacity: .55; }
.nav a .nav-tranca svg { width: 14px; height: 14px; }
.nav a .nav-selo { margin-left: auto; font-size: 11px; font-family: var(--fonte-mono); padding: 1px 7px; border-radius: 99px;
  background: var(--accent-soft); color: var(--accent); }
.premium-convite { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.premium-convite > svg { width: 28px; height: 28px; color: var(--amarela); margin-bottom: 6px; }
.premium-tela { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; padding: 40px 24px; }
.premium-tela > svg { width: 34px; height: 34px; color: var(--muted); }
.premium-tela p { max-width: 52ch; margin: 0; }
.premium-mini p svg, .dica svg { width: 14px; height: 14px; vertical-align: -2px; }
.pl-topo { align-items: stretch; }
.pl-atual, .pl-oferta { display: flex; flex-direction: column; }
.pl-precos { display: flex; gap: 22px; flex-wrap: wrap; margin: 14px 0 4px; }
.pl-precos > div { display: flex; flex-direction: column; }
.pl-precos b { font-size: 26px; font-family: var(--fonte-display); letter-spacing: -.02em; }
.pl-precos span { color: var(--muted); font-size: 12.5px; }
.pl-acoes { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.pl-tabela .pl-c { text-align: center; width: 96px; }
.pl-tabela td svg { width: 18px; height: 18px; color: var(--accent); }
.pl-tabela td { vertical-align: middle; }

/* ---------- Administração ---------- */
.ad-config { display: flex; flex-direction: column; gap: 12px; }
.ad-config .linha-entre { gap: 12px; flex-wrap: wrap; }
.ad-copiar { display: flex; gap: 8px; align-items: center; margin-top: 6px; min-width: 0; }
.ad-copiar code { flex: 1; min-width: 0; white-space: nowrap; font-size: 12px; padding: 7px 9px;
  background: var(--surface-2); border-radius: var(--radius-sm); }
.ad-barras { display: flex; align-items: flex-end; gap: 8px; height: 150px; }
.ad-barras > div { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; gap: 4px; min-width: 0; }
.ad-barras span { width: 100%; max-width: 38px; background: var(--accent); border-radius: 5px 5px 2px 2px; min-height: 2px; }
.ad-barras small { color: var(--muted); font-size: 11px; }
.ad-barras b { font-size: 11.5px; }
.ad-filtros { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.ad-filtros input[type=search] { flex: 1 1 220px; min-width: 0; }
.ad-filtros select { flex: 0 1 auto; width: auto; }
.ad-contas { display: flex; flex-direction: column; gap: 8px; }
.ad-conta { display: grid; grid-template-columns: 36px minmax(0, 2fr) minmax(0, 1.4fr) auto; gap: 4px 12px; align-items: center;
  width: 100%; text-align: left; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--radius-sm);
  background: var(--surface); color: var(--text); font: inherit; cursor: pointer; }
.ad-conta:hover { border-color: var(--accent); }
.ad-conta-nome { display: flex; flex-direction: column; min-width: 0; }
.ad-conta-nome small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ad-conta-plano { display: flex; flex-wrap: wrap; gap: 4px; }
.ad-conta-datas, .ad-conta-icones { display: flex; flex-direction: column; font-size: 12px; text-align: right; }
.ad-conta-icones { grid-column: 4; }
.ad-conta-icones:empty { display: none; }
@media (max-width: 720px) {
  .ad-conta { grid-template-columns: 36px minmax(0, 1fr); }
  .ad-conta-plano, .ad-conta-datas, .ad-conta-icones { grid-column: 2; text-align: left; flex-direction: row; flex-wrap: wrap; gap: 4px 10px; }
}
.ad-det { display: flex; flex-direction: column; gap: 8px; }
.ad-det-linha { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 10px; font-size: 13.5px; }
.ad-det-linha span { color: var(--muted); }
.ad-det-linha b { font-weight: 500; overflow-wrap: anywhere; }
@media (max-width: 520px) { .ad-det-linha { grid-template-columns: 1fr; gap: 0; } }
.ad-log { display: flex; flex-direction: column; gap: 8px; font-size: 13.5px; max-height: 420px; overflow-y: auto; }
.ad-log small { display: block; }
.ad-acoes { display: flex; gap: 6px; flex-wrap: wrap; }
.ad-plano { display: flex; flex-direction: column; }
.ad-plano > .btn { align-self: flex-start; }
.ad-recursos { display: flex; flex-direction: column; gap: 8px; }
.ad-recursos .check { align-items: flex-start; font-size: 13.5px; }
.ad-recursos .check input { margin-top: 2px; }
.rb-sit.rb-col { flex-direction: column; }
.rb-sit.rb-col label { white-space: normal; }

/* ---------- Acessos: perfis e permissões ---------- */
.ac-perfis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.ac-perfil { display: flex; gap: 8px; align-items: flex-start; padding: 9px 11px; border: 1px solid var(--line); border-radius: 10px; cursor: pointer;
  text-transform: none; letter-spacing: 0; color: var(--text); font-size: 13.5px; font-weight: 400; min-width: 0; }
.ac-perfil:has(input:checked) { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent) inset; }
.ac-perfil input { margin-top: 3px; flex: none; accent-color: var(--accent); }
.ac-perfil span { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ac-perfil small { font-size: 12px; line-height: 1.35; }
@media (max-width: 560px) { .ac-perfis { grid-template-columns: 1fr; } }
.ac-matriz { margin-top: 12px; }
.ac-tabela td, .ac-tabela th { text-align: center; padding: 7px 8px; }
.ac-tabela td:first-child, .ac-tabela th:first-child { text-align: left; }
.ac-tabela input { accent-color: var(--accent); }
.ac-tabela tr.ac-off td { opacity: .45; }
.ac-resumo { display: flex; flex-wrap: wrap; gap: 6px; }
.lista-campos-conta { display: flex; flex-direction: column; gap: 10px; font-size: 13.5px; }
.lista-campos-conta .linha-entre { gap: 10px; flex-wrap: wrap; }
.fad-consentimento { align-items: flex-start; font-size: 13px; margin: 14px 0 0; line-height: 1.45; }
.fad-consentimento input { margin-top: 2px; }
.campo .ac-perfil input { width: auto; height: auto; min-height: 0; padding: 0; border: 0; background: none; box-shadow: none; }

/* ---------- Administração: e-mail e configurações ---------- */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.nav a .nav-contador { margin-left: auto; min-width: 20px; text-align: center; font-size: 11px; font-weight: 600; font-family: var(--fonte-mono);
  padding: 1px 6px; border-radius: 99px; background: var(--vermelha); color: #fff; }
#btn-menu { position: relative; }
#btn-menu.tem-contador::after { content: ''; position: absolute; top: 3px; right: 3px; width: 8px; height: 8px; border-radius: 50%;
  background: var(--vermelha); box-shadow: 0 0 0 2px var(--bg, #fff); }
.aba .aba-contador { margin-left: 6px; font-size: 11px; font-weight: 600; font-family: var(--fonte-mono); padding: 0 6px; border-radius: 99px;
  background: var(--vermelha); color: #fff; }
.em-filtros { align-items: center; }
.em-filtros .em-caixa { font-size: 12.5px; margin-left: auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.em-lista { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: var(--surface); }
.em-item { display: grid; grid-template-columns: 10px minmax(0, 200px) minmax(0, 1fr) auto; gap: 10px; align-items: center; text-align: left;
  padding: 11px 14px; border: 0; border-bottom: 1px solid var(--line); background: none; color: var(--muted); font: inherit; font-size: 14px; cursor: pointer; }
.em-item:last-child { border-bottom: 0; }
.em-item:hover { background: var(--accent-soft); }
.em-item .em-de, .em-item .em-assunto { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.em-item .em-de { color: var(--text); }
.em-item .em-ponto { width: 8px; height: 8px; border-radius: 50%; }
.em-item.nao-lida .em-ponto { background: var(--accent); }
.em-item.nao-lida .em-de, .em-item.nao-lida .em-assunto { color: var(--text); font-weight: 600; }
.em-meta { display: flex; align-items: center; gap: 6px; font-size: 12px; }
.em-meta svg { width: 14px; height: 14px; }
@media (max-width: 640px) {
  .em-item { grid-template-columns: 10px minmax(0, 1fr) auto; grid-template-areas: "p de meta" "p as as"; row-gap: 2px; }
  .em-item .em-ponto { grid-area: p; align-self: start; margin-top: 6px; }
  .em-item .em-de { grid-area: de; }
  .em-item .em-assunto { grid-area: as; }
  .em-item .em-meta { grid-area: meta; }
  .em-filtros .em-caixa { flex-basis: 100%; margin-left: 0; }
}
.em-leitor { display: flex; flex-direction: column; gap: 10px; }
.em-cab { display: flex; flex-direction: column; gap: 2px; overflow-wrap: anywhere; }
.em-acoes { display: flex; gap: 6px; flex-wrap: wrap; }
.em-corpo { width: 100%; height: min(62vh, 640px); border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.em-anexos { display: flex; flex-wrap: wrap; gap: 8px; }
.em-anexo { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding: 7px 10px; border: 1px solid var(--line); border-radius: 9px;
  color: var(--text); text-decoration: none; font-size: 13px; }
.em-anexo:hover { border-color: var(--accent); }
.em-anexo span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.em-anexo svg { width: 15px; height: 15px; flex: none; }
.cfg-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
@media (max-width: 1100px) { .cfg-grade { grid-template-columns: minmax(0, 1fr); } }
.cfg { display: flex; flex-direction: column; }
.cfg-grade > .cartao { margin: 0; }
.cfg .cartao-titulo { gap: 10px; }
.cfg-passos { margin: 0 0 14px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; font-size: 13.5px; }
.cfg-passos summary { cursor: pointer; font-weight: 600; }
.cfg-passos ol { margin: 10px 0 0; padding-left: 20px; display: flex; flex-direction: column; gap: 8px; }
.cfg-passos li { overflow-wrap: anywhere; }
.cfg-passos .ad-copiar { margin: 6px 0; }
.cfg-passos .dica { margin: 10px 0 0; }
.cfg .cfg-limpar { margin-top: 6px; font-size: 12.5px; color: var(--muted); }
.cfg .cfg-limpar input { width: 15px; height: 15px; }
.cfg-botoes { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 4px; }
.cfg-resultado { font-size: 13px; overflow-wrap: anywhere; }
.exclusao-tela h1 { font-size: 26px; }
.exclusao-msg { margin: 16px 0; padding: 12px 16px; border-left: 3px solid var(--amarela); background: var(--surface); border-radius: 0 10px 10px 0; color: var(--text); }
.exclusao-acoes { display: flex; gap: 10px; flex-wrap: wrap; margin: 22px 0; }

/* ---------- Backup e restauração ---------- */
.bk-texto { font-size: 13.5px; margin: 0 0 12px; max-width: 90ch; }
.bk-acoes { display: flex; gap: 8px; flex-wrap: wrap; }
.bk-acoes .btn.desativado { opacity: .55; pointer-events: none; }
.bk-titulo { margin: 20px 0 8px; font-size: 14px; }
.bk-lista { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.bk-copia { display: flex; gap: 12px; align-items: center; justify-content: space-between; padding: 10px 14px; border-bottom: 1px solid var(--line); }
.bk-copia:last-child { border-bottom: 0; }
.bk-copia-info { display: flex; flex-direction: column; min-width: 0; }
.bk-copia-info small { overflow-wrap: anywhere; }
.bk-copia-acoes { display: flex; gap: 6px; flex: none; }
@media (max-width: 640px) {
  .bk-copia { flex-direction: column; align-items: stretch; }
  .bk-copia-acoes .btn span { display: none; }
  .bk-copia-acoes { justify-content: flex-end; }
}
.bk-previa .bk-aviso { margin-top: 10px; font-size: 13.5px; }
.bk-modos { border: 0; padding: 0; margin: 14px 0 0; display: flex; flex-direction: column; gap: 8px; }
.bk-modos legend { font-weight: 600; font-size: 14px; margin-bottom: 6px; padding: 0; }
.bk-modo { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; cursor: pointer; font-size: 13.5px; }
.bk-modo:has(input:checked) { border-color: var(--accent); background: var(--accent-soft); }
.bk-modo input { margin-top: 3px; accent-color: var(--accent); flex: none; }
.bk-confirmo { margin-top: 12px; }
.tabela-compacta th, .tabela-compacta td { padding: 7px 10px; font-size: 13px; }

/* ---------- Painel: Iniciar apenas agora / Interromper agora ---------- */
.agora-botoes { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.agora .agora-botoes .btn, .agora-proximo > .btn { font-size: 12.5px; }
.agora-proximo > .btn { margin-top: 8px; }
.agora-treino small { color: var(--laranja); }
.agora-treino .agora-botoes { margin-top: 0; align-self: center; }
.agora-prox-treino { display: block; margin-top: 8px; font-size: 12.5px; }
.agora-prox-treino .btn { margin-left: 6px; }

/* ---------- Calendário: treinos ---------- */
.cal-ev-treino { background: color-mix(in srgb, var(--laranja) 13%, var(--surface-3)); }
.cal-bloco-treino { color: #2B1606; }
.cal-ev-lazer { background: color-mix(in srgb, var(--verde) 12%, var(--surface-3)); }
.cal-bloco-lazer { color: #062414; }
.cal-ev-plan { opacity: .75; border-left-style: dashed !important; }

/* ---------- Atividade física ---------- */
.aba .aba-ponto { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--laranja); margin-left: 4px; vertical-align: 2px; }
.atv-andamento { display: flex; gap: 14px; align-items: center; margin-bottom: 14px; border-color: color-mix(in srgb, var(--laranja) 50%, var(--line)); }
.atv-andamento .agora-pulso { background: var(--laranja); margin-top: 0; }
.atv-andamento > div { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.atv-andamento small { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--laranja); font-weight: 600; }
.atv-hero { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); grid-template-areas: "anel kpis" "semana semana"; gap: 18px 24px;
  background: radial-gradient(120% 140% at 0% 0%, color-mix(in srgb, var(--accent) 12%, var(--surface)) 0%, var(--surface) 55%); }
.atv-hero-anel { grid-area: anel; display: flex; gap: 18px; align-items: center; min-width: 0; }
.atv-hero-anel > div { min-width: 0; }
.atv-hero-frase { margin: 4px 0 6px; font-size: 17px; font-family: var(--fonte-display); }
.atv-hero-nota { margin: 0; font-size: 12.5px; }
.atv-anel { width: 132px; height: 132px; flex: none; }
.atv-anel-fundo { fill: none; stroke: var(--surface-3); stroke-width: 12; }
.atv-anel-valor { fill: none; stroke-width: 12; stroke-linecap: round; transition: stroke-dasharray .6s ease; }
.atv-anel-extra { fill: none; stroke: var(--amarela); stroke-width: 6; stroke-linecap: round; }
.atv-anel-num { font-family: var(--fonte-mono); font-size: 26px; font-weight: 600; fill: var(--text); }
.atv-anel-sub { font-size: 11px; fill: var(--muted); }
.atv-hero-kpis { grid-area: kpis; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; align-content: center; }
.atv-hero-kpis > div { background: var(--surface-2); border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; }
.atv-hero-kpis small { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
.atv-hero-kpis b { font-size: 22px; font-weight: 600; }
.atv-hero-kpis b span { font-size: 12.5px; color: var(--muted); font-weight: 500; }
.atv-hero-semana { grid-area: semana; }
.atv-semana { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.atv-dia { display: flex; flex-direction: column; align-items: center; gap: 4px; position: relative; padding: 6px 0; border-radius: 10px; }
.atv-dia.hoje { background: var(--accent-soft); }
.atv-dia small { font-size: 11px; color: var(--muted); }
.atv-dia b { font-size: 12.5px; }
.atv-dia-barra { position: relative; width: 70%; max-width: 34px; height: 92px; display: flex; flex-direction: column-reverse; justify-content: flex-start;
  background: var(--surface-2); border-radius: 8px; overflow: hidden; }
.atv-dia-barra i { display: block; width: 100%; }
.atv-dia-barra .atv-plan { position: absolute; left: 0; bottom: 0; border: 1.5px dashed var(--muted); border-radius: 8px; box-sizing: border-box; background: none; }
.atv-lev { background: color-mix(in srgb, var(--accent) 45%, var(--surface-3)); }
.atv-mod { background: var(--accent); }
.atv-vig { background: var(--azul); }
.atv-forca { position: absolute; top: 2px; right: 6px; font-size: 10px; font-weight: 700; color: #1b1130; background: var(--roxo); border-radius: 5px; padding: 0 4px; }
.atv-legenda { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 10px; font-size: 12px; color: var(--muted); }
.atv-legenda span { display: inline-flex; align-items: center; gap: 5px; }
.atv-legenda i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; }
.atv-legenda .atv-plan { border: 1.5px dashed var(--muted); }
.atv-legenda .atv-forca { position: static; }
.atv-janelas { display: flex; flex-direction: column; gap: 8px; }
.atv-janela { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 12px; border: 1px solid var(--line); border-radius: 10px; }
.atv-janela > div { display: flex; flex-direction: column; min-width: 0; }
.atv-janela small { color: var(--accent); font-size: 12px; }
.atv-janela .muted { font-size: 12.5px; }
.aviso-painel.aviso-info { border-left-color: var(--azul); }
.aviso-painel + .aviso-painel { margin-top: 8px; }
.atv-treino { display: flex; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); }
.atv-treino:last-child { border-bottom: 0; }
.atv-treino.planejado .atv-tipo { opacity: .6; border-style: dashed; }
.atv-tipo { width: 36px; height: 36px; flex: none; display: grid; place-items: center; border-radius: 11px; color: var(--cor);
  background: color-mix(in srgb, var(--cor) 16%, transparent); border: 1px solid color-mix(in srgb, var(--cor) 40%, transparent); }
.atv-tipo svg { width: 19px; height: 19px; }
.atv-treino-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.atv-treino-info b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.atv-treino-info .muted { font-size: 12.5px; overflow-wrap: anywhere; }
.atv-treino-selos { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 2px; }
.atv-treino-selos small { font-size: 11.5px; }
.atv-treino-acoes { display: flex; gap: 6px; flex: none; }
.atv-int-leve { background: color-mix(in srgb, var(--accent) 14%, transparent); color: var(--accent); }
.atv-int-moderada { background: rgba(47, 191, 113, .16); color: var(--verde); }
.atv-int-vigorosa { background: rgba(62, 143, 240, .16); color: var(--azul); }
.atv-selo-strava { background: rgba(252, 82, 0, .14); color: #FC5200; }
.atv-strava-link { color: #FC5200; font-weight: 600; font-size: 12px; text-decoration: none; }
.atv-strava-link:hover { text-decoration: underline; }
.btn-strava { background: #FC5200; border-color: #FC5200; color: #fff; font-weight: 600; }
.btn-strava:hover { background: #E34A00; border-color: #E34A00; color: #fff; }
.atv-powered { margin: 12px 0 0; font-size: 11.5px; color: var(--muted); letter-spacing: .02em; }
.atv-lista { margin: 0 0 14px; padding-left: 18px; display: flex; flex-direction: column; gap: 4px; font-size: 13.5px; color: var(--muted); }
.atv-evid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; }
.atv-evid > div { display: flex; flex-direction: column; gap: 4px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-2); }
.atv-evid b { font-family: var(--fonte-display); font-size: 20px; color: var(--accent); }
.atv-evid span { font-size: 13px; }
.atv-evid small { display: block; color: var(--muted); font-size: 11.5px; margin-top: 4px; }
.atv-meta-nota { margin: 6px 0 0; font-size: 12px; }
.ft-rapidos { display: flex; gap: 4px; margin-top: 6px; flex-wrap: wrap; }
.ft-rapidos .chip { padding: 3px 9px; font-size: 12px; }
#ft-esf { width: 100%; accent-color: var(--accent); }
.who5-q { border: 0; padding: 0; margin: 0 0 14px; }
.who5-q legend { font-weight: 600; font-size: 14px; margin-bottom: 8px; padding: 0; }
.who5-op { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
.who5-op label { position: relative; }
.who5-op input { position: absolute; opacity: 0; pointer-events: none; }
.who5-op span { display: flex; align-items: center; justify-content: center; text-align: center; min-height: 44px; padding: 6px; border: 1px solid var(--line);
  border-radius: 9px; font-size: 12px; cursor: pointer; color: var(--muted); }
.who5-op input:checked + span { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); font-weight: 600; }
.who5-op input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; }
.who5-res { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.who5-res b { font-size: 44px; font-family: var(--fonte-mono); line-height: 1; }
.who5-faixas { display: flex; flex-direction: column; gap: 8px; font-size: 13.5px; }
.atv-mini { display: flex; gap: 14px; align-items: center; }
.atv-mini > div { display: flex; flex-direction: column; min-width: 0; gap: 2px; }
.atv-mini b { font-size: 20px; }
.atv-mini .muted { font-size: 12.5px; }
.atv-mini-anel { width: 76px; height: 76px; flex: none; }
.atv-mini-anel .atv-anel-fundo, .atv-mini-anel .atv-anel-valor { stroke-width: 9; }
.atv-mini-num { font-family: var(--fonte-mono); font-size: 15px; font-weight: 600; fill: var(--text); }
.atv-mini-aviso { margin: 10px 0 0; font-size: 12.5px; color: var(--amarela); display: flex; gap: 6px; align-items: center; }
.atv-mini-aviso svg { width: 14px; height: 14px; flex: none; }
.atv-mini-linha { margin: 8px 0 0; font-size: 12.5px; }
.atv-mini-linha b { display: inline; font-size: 12.5px; }
@media (max-width: 900px) {
  .atv-hero { grid-template-columns: minmax(0, 1fr); grid-template-areas: "anel" "kpis" "semana"; }
}
@media (max-width: 640px) {
  .atv-hero-anel { flex-direction: column; align-items: flex-start; }
  .atv-anel { width: 112px; height: 112px; }
  .who5-op { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .atv-dia-barra { height: 70px; }
  .atv-treino { align-items: flex-start; }
}
.agora-pausa .agora-pulso { background: var(--amarela); animation: none; opacity: .9; }
.agora-pausa small { color: var(--amarela); }
.lateral .marca span { font-size: 10.5px; letter-spacing: .07em; white-space: nowrap; }

/* ---------- Primeiro acesso guiado ----------------------------------------
   Tela cheia por cima do app: etapas no topo, conteúdo rolando no meio, botões fixos embaixo. */
html.guia-aberto, html.guia-aberto body { overflow: hidden; }
.guia-fundo {
  position: fixed; inset: 0; z-index: 70; display: grid; place-items: center; padding: 20px;
  background: radial-gradient(1200px 600px at 20% -10%, var(--accent-soft), transparent 60%), rgba(5, 9, 18, .82);
  backdrop-filter: blur(4px);
}
[data-tema="claro"] .guia-fundo { background: radial-gradient(1200px 600px at 20% -10%, var(--accent-soft), transparent 60%), rgba(220, 226, 238, .86); }
.guia {
  width: 100%; max-width: 760px; max-height: min(860px, calc(100dvh - 40px)); display: flex; flex-direction: column;
  background: var(--surface); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--sombra); overflow: hidden;
}
.guia-topo { display: flex; align-items: center; gap: 16px; padding: 16px 22px 12px; }
.guia-marca { display: flex; align-items: center; gap: 8px; color: var(--accent); font-family: var(--fonte-display); font-weight: 600; font-size: 14px; flex: none; }
.guia-marca svg { width: 18px; height: 18px; }
.guia-passos { display: flex; gap: 4px; list-style: none; margin: 0 auto; padding: 0; min-width: 0; }
.guia-passos li { display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--muted); padding: 4px 8px; border-radius: 999px; white-space: nowrap; }
.guia-passos li i {
  font-style: normal; width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center;
  font-size: 11px; font-family: var(--fonte-mono); border: 1px solid var(--line); background: var(--surface-2);
}
.guia-passos li span { display: none; }
.guia-passos li.atual span { display: inline; }
.guia-passos li.atual { color: var(--text); background: var(--surface-2); }
.guia-passos li.atual i { border-color: var(--accent); color: var(--accent); }
.guia-passos li.feito i { background: var(--accent); border-color: var(--accent); color: #06231C; }
.guia-pular { background: none; border: none; color: var(--muted); cursor: pointer; font-size: 13px; padding: 6px 8px; border-radius: 8px; flex: none; }
.guia-pular:hover { color: var(--text); background: var(--surface-2); }
.guia-barra { height: 3px; background: var(--surface-2); }
.guia-barra i { display: block; height: 100%; background: var(--accent); transition: width .3s ease; }
.guia-corpo { padding: 22px 26px 8px; overflow-y: auto; overscroll-behavior: contain; flex: 1; outline: none; }
.guia-corpo h2 { margin: 0; font-family: var(--fonte-display); font-size: 24px; letter-spacing: -.01em; }
.guia-sub { margin: 4px 0 16px; color: var(--muted); }
.guia-texto { margin: 0 0 16px; line-height: 1.55; max-width: 62ch; }
.guia-rodape { display: flex; align-items: center; gap: 10px; padding: 14px 22px; border-top: 1px solid var(--line); background: var(--surface); }
.guia-contagem { margin-right: auto; color: var(--muted); font-size: 12.5px; font-family: var(--fonte-mono); }
.guia-lista { list-style: none; margin: 0 0 16px; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.guia-lista li { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-radius: var(--radius-sm); background: var(--surface-2); flex-wrap: wrap; }
.guia-lista li > small { margin-left: auto; }
.guia-lista li .btn { margin-left: auto; }
.guia-form { border: 1px dashed var(--line); border-radius: var(--radius); padding: 14px 16px 6px; margin-bottom: 14px; }
.guia-form > summary { cursor: pointer; font-weight: 600; margin-bottom: 12px; color: var(--accent); }
.guia-form:not([open]) { padding-bottom: 2px; }
.guia-form .btn-primario { margin-bottom: 12px; }
.guia-form-linha { display: grid; gap: 12px; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1.2fr) auto; align-items: end; }
.guia-valores { display: flex; flex-direction: column; gap: 8px; }
.guia-valor { display: grid; grid-template-columns: auto minmax(0, 1fr) 170px 90px; gap: 12px; align-items: center; padding: 8px 12px; background: var(--surface-2); border-radius: var(--radius-sm); }
.guia-valor label { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.guia-valor small { text-align: right; }
.guia-valor-campo { display: flex; align-items: center; gap: 6px; }
.guia-valor-campo span { color: var(--muted); font-size: 13px; }
.guia-valor-campo input {
  width: 100%; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-sm);
  color: var(--text); padding: 8px 10px; font: inherit; font-family: var(--fonte-mono); text-align: right;
}
.guia-valor-campo input:focus { border-color: var(--accent); outline: none; }
.guia-resumo { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 18px; }
.guia-resumo div { background: var(--surface-2); border-radius: var(--radius-sm); padding: 14px; display: flex; flex-direction: column; gap: 2px; }
.guia-resumo b { font-family: var(--fonte-display); font-size: 26px; color: var(--accent); }
.guia-resumo span { color: var(--muted); font-size: 12.5px; }
.guia-proximos { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.guia-proximos li { display: flex; gap: 10px; align-items: center; }
.guia-proximos li > svg { width: 18px; height: 18px; color: var(--accent); flex: none; }
kbd {
  font-family: var(--fonte-mono); font-size: 11.5px; padding: 1px 6px; border-radius: 5px;
  border: 1px solid var(--line); border-bottom-width: 2px; background: var(--surface-2); color: var(--text);
}
@media (max-width: 760px) {
  .guia-fundo { padding: 0; place-items: stretch; }
  .guia { max-width: none; max-height: none; height: 100dvh; border-radius: 0; border: none; }
  .guia-topo { padding: calc(10px + env(safe-area-inset-top)) 16px 8px; flex-wrap: wrap; gap: 8px; }
  .guia-passos { order: 3; width: 100%; justify-content: space-between; margin: 0; }
  .guia-pular { margin-left: auto; }
  .guia-corpo { padding: 18px 16px 8px; }
  .guia-rodape { padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); }
  .guia-form-linha { grid-template-columns: minmax(0, 1fr); }
  .guia-valor { grid-template-columns: auto minmax(0, 1fr) 130px; }
  .guia-valor small { grid-column: 2 / -1; text-align: left; margin-top: -6px; }
  .guia-resumo { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- Acessibilidade: pular para o conteúdo e foco visível ----------- */
.pular-conteudo {
  position: fixed; left: 12px; top: -60px; z-index: 200; padding: 10px 16px; border-radius: var(--radius-sm);
  background: var(--accent); color: #06231C; font-weight: 600; text-decoration: none; transition: top .15s;
}
.pular-conteudo:focus { top: 12px; }

/* ---------- Página de apresentação (apresentacao.php) ---------------------- */
body.ap { background: var(--bg); }
.ap-topo {
  position: sticky; top: 0; z-index: 20; display: flex; align-items: center; gap: 20px;
  padding: 12px max(20px, calc((100vw - 1180px) / 2)); background: color-mix(in srgb, var(--bg) 86%, transparent);
  backdrop-filter: blur(10px); border-bottom: 1px solid var(--line);
}
.ap-marca { display: flex; align-items: center; gap: 10px; color: var(--text); text-decoration: none; font-family: var(--fonte-display); font-weight: 700; font-size: 17px; }
.ap-marca svg { width: 30px; height: 30px; }
.ap-nav { display: flex; gap: 4px; margin-left: 12px; }
.ap-nav a { color: var(--muted); text-decoration: none; padding: 6px 10px; border-radius: 8px; font-size: 14px; }
.ap-nav a:hover { color: var(--text); background: var(--surface-2); }
.ap-topo-acoes { margin-left: auto; display: flex; gap: 8px; }
.ap main { max-width: 1180px; margin: 0 auto; padding: 0 20px; }
.ap-heroi { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 48px; align-items: center; padding: 64px 0 40px; }
.ap-sobre { margin: 0 0 12px; color: var(--accent); font-family: var(--fonte-mono); font-size: 13px; letter-spacing: .04em; text-transform: uppercase; }
.ap-heroi h1 { font-family: var(--fonte-display); font-size: clamp(32px, 4.4vw, 52px); line-height: 1.05; letter-spacing: -.025em; margin: 0 0 18px; }
.ap-heroi h1 em { font-style: normal; color: var(--accent); }
.ap-lead { font-size: 17.5px; line-height: 1.6; color: var(--muted); margin: 0 0 26px; max-width: 54ch; }
.ap-ctas { display: flex; gap: 10px; flex-wrap: wrap; }
.ap-btn { padding: 12px 20px; font-size: 15px; text-decoration: none; }
.ap-nota { margin: 14px 0 0; color: var(--muted); font-size: 13px; }
.ap-heroi-tela { position: relative; margin: 0; }
.ap-heroi-tela > img, .ap-recurso figure img {
  width: 100%; height: auto; display: block; border-radius: 14px; border: 1px solid var(--line);
  box-shadow: 0 30px 80px rgba(0, 0, 0, .45), 0 0 0 1px rgba(255, 255, 255, .02);
}
.ap-celular { position: absolute; right: -14px; bottom: -34px; width: 27%; border-radius: 22px; padding: 5px; background: #05080F; box-shadow: 0 20px 50px rgba(0, 0, 0, .6); border: 1px solid var(--line); }
.ap-celular img { width: 100%; height: auto; display: block; border-radius: 18px; }
.ap-dores { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; padding: 40px 0 24px; }
.ap-dores div { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px 20px; display: flex; flex-direction: column; gap: 6px; }
.ap-dores b { font-family: var(--fonte-display); font-size: 17px; }
.ap-dores span { color: var(--muted); line-height: 1.5; font-size: 14.5px; }
.ap-secao { padding: 56px 0 24px; scroll-margin-top: 70px; }
.ap-secao > h2, .ap-final h2 { font-family: var(--fonte-display); font-size: clamp(26px, 3vw, 36px); letter-spacing: -.02em; margin: 0 0 8px; }
.ap-secao-sub { color: var(--muted); margin: 0 0 32px; font-size: 16px; }
.ap-recurso { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 44px; align-items: center; margin: 0 0 56px; }
.ap-recurso figure { margin: 0; }
.ap-invertido .ap-recurso-texto { order: 2; }
.ap-recurso h3 { font-family: var(--fonte-display); font-size: 24px; margin: 0 0 10px; }
.ap-recurso p { color: var(--muted); line-height: 1.65; margin: 0 0 14px; }
.ap-recurso ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; }
.ap-recurso li { padding-left: 22px; position: relative; line-height: 1.5; }
.ap-recurso li::before { content: ""; position: absolute; left: 2px; top: 8px; width: 10px; height: 6px; border-left: 2px solid var(--accent); border-bottom: 2px solid var(--accent); transform: rotate(-45deg); }
.ap-grade { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.ap-grade div { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; }
.ap-grade h3 { margin: 0 0 6px; font-family: var(--fonte-display); font-size: 17px; }
.ap-grade p { margin: 0; color: var(--muted); line-height: 1.55; font-size: 14px; }
.ap-planos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; max-width: 900px; }
.ap-plano { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 24px; }
.ap-plano-destaque { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent), 0 20px 50px rgba(0, 0, 0, .3); }
.ap-plano h3 { margin: 0 0 6px; font-family: var(--fonte-display); font-size: 20px; }
.ap-preco { margin: 0; display: flex; align-items: baseline; gap: 6px; }
.ap-preco b { font-family: var(--fonte-display); font-size: 36px; }
.ap-preco span, .ap-preco-anual, .ap-plano-base { color: var(--muted); font-size: 14px; }
.ap-preco-anual { margin: 4px 0 0; }
.ap-plano-base { margin: 16px 0 10px; }
.ap-plano ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.ap-plano li { display: flex; flex-direction: column; padding-left: 22px; position: relative; }
.ap-plano li::before { content: ""; position: absolute; left: 2px; top: 7px; width: 10px; height: 6px; border-left: 2px solid var(--accent); border-bottom: 2px solid var(--accent); transform: rotate(-45deg); }
.ap-plano li small { color: var(--muted); font-size: 12.5px; }
.ap-plano li.ap-fora { color: var(--muted); text-decoration: line-through; text-decoration-color: var(--line); }
.ap-plano li.ap-fora::before { border: none; width: 10px; height: 2px; top: 10px; background: var(--muted); transform: none; }
.ap-faq { max-width: 860px; }
.ap-faq details { border-bottom: 1px solid var(--line); }
.ap-faq summary { cursor: pointer; padding: 18px 30px 18px 0; font-weight: 600; font-size: 16px; position: relative; list-style: none; }
.ap-faq summary::-webkit-details-marker { display: none; }
.ap-faq summary::after { content: "+"; position: absolute; right: 4px; top: 14px; font-size: 22px; color: var(--accent); font-weight: 400; }
.ap-faq details[open] summary::after { content: "–"; }
.ap-faq details p { margin: 0 0 18px; color: var(--muted); line-height: 1.65; }
.ap-final { text-align: center; padding: 64px 20px; margin: 40px 0; border-radius: 22px; background: radial-gradient(600px 240px at 50% 0, var(--accent-soft), transparent), var(--surface); border: 1px solid var(--line); }
.ap-final p { color: var(--muted); margin: 0 auto 24px; max-width: 54ch; }
.ap-final .ap-ctas { justify-content: center; }
.ap-rodape { max-width: 1180px; margin: 0 auto; padding: 24px 20px 40px; display: flex; gap: 18px; flex-wrap: wrap; color: var(--muted); font-size: 13.5px; border-top: 1px solid var(--line); }
.ap-rodape a { color: var(--muted); }
@media (max-width: 960px) {
  .ap-heroi, .ap-recurso { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .ap-heroi { padding-top: 36px; }
  .ap-invertido .ap-recurso-texto { order: 0; }
  .ap-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ap-celular { right: 8px; bottom: -24px; width: 24%; }
}
@media (max-width: 640px) {
  .ap-topo { padding: 10px 16px; gap: 10px; }
  .ap-nav, .ap-so-largo { display: none; }
  .ap main { padding: 0 16px; }
  .ap-dores, .ap-grade, .ap-planos { grid-template-columns: minmax(0, 1fr); }
  .ap-lead { font-size: 16px; }
  .ap-btn { flex: 1; justify-content: center; }
}

/* ---------- Planejamento ----------------------------------------------- */
.pl-form { display: flex; gap: 12px; flex-wrap: wrap; align-items: flex-end; }
.pl-form .campo { margin-bottom: 0; flex: 1 1 160px; min-width: 0; }
.pl-form-acoes { display: flex; gap: 8px; flex-wrap: wrap; }
.pl-aviso {
  display: flex; gap: 12px; align-items: flex-start; margin-top: 14px; padding: 12px 14px; border-radius: var(--radius-sm);
  background: rgba(242, 183, 5, .08); border: 1px solid rgba(242, 183, 5, .35); font-size: 13.5px; line-height: 1.55;
}
.pl-aviso > svg { width: 18px; height: 18px; color: var(--amarela); flex: none; margin-top: 2px; }
#pl-pfpj .pl-aviso:first-child { margin-top: 0; }
.pl-progresso { display: flex; height: 14px; border-radius: 999px; overflow: hidden; background: var(--surface-3); }
.pl-progresso i { display: block; height: 100%; }
.pl-p-feito { background: var(--accent); }
.pl-p-agendado { background: var(--azul); }
.pl-capac { display: flex; flex-direction: column; gap: 12px; }
.pl-capac div { display: flex; align-items: baseline; gap: 10px; }
.pl-capac b { font-size: 20px; min-width: 86px; }
.pl-capac span { color: var(--muted); font-size: 13.5px; }
.pl-mix { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.pl-mix li { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto auto; gap: 10px; align-items: center; }
.pl-mix-qtd { font-size: 18px; font-weight: 600; color: var(--accent); }
.pl-mix-total { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); }
.pl-alerta { display: flex; gap: 8px; align-items: flex-start; margin: 10px 0 0; color: var(--amarela); font-size: 13.5px; }
.pl-alerta svg { width: 16px; height: 16px; flex: none; margin-top: 2px; }
.pl-nao-cabe { color: var(--amarela); }
.pl-janelas, .pl-lista { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.pl-janelas li { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto auto; gap: 10px; align-items: center; padding: 8px 10px; background: var(--surface-2); border-radius: var(--radius-sm); }
.pl-janelas small { display: block; }
.pl-jan-n { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: var(--accent-soft); color: var(--accent); font-weight: 600; font-size: 12.5px; }
.pl-lista li { display: flex; justify-content: space-between; gap: 10px; padding: 6px 0; border-bottom: 1px solid var(--line); }
.pl-lista li:last-child { border-bottom: none; }
.pl-veredito { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 18px; align-items: center; border-color: var(--accent); }
.pl-veredito .rotulo { display: block; color: var(--muted); font-size: 13px; }
.pl-veredito b { font-family: var(--fonte-display); font-size: 22px; }
.pl-veredito-num { display: flex; flex-direction: column; align-items: flex-end; }
.pl-cenarios { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 14px; }
.pl-cenarios .cartao { margin-top: 0; }
.pl-melhor { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.pl-cen-liq { display: flex; flex-direction: column; gap: 2px; margin-bottom: 12px; }
.pl-cen-liq .rotulo { font-size: 11.5px; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); }
.pl-cen-liq b { font-size: 22px; }
.pl-itens { list-style: none; margin: 0; padding: 0; font-size: 12.8px; }
.pl-itens li { display: flex; justify-content: space-between; gap: 10px; padding: 5px 0; border-top: 1px solid var(--line); }
.pl-itens li span:first-child { color: var(--muted); }
.pl-cen-nota { margin: 10px 0 0; font-size: 12.5px; color: var(--muted); line-height: 1.5; }
.pl-var { font-size: 12px; font-family: var(--fonte-mono); }
.pl-var.sobe { color: var(--verde); }
.pl-var.desce { color: var(--vermelha); }
.retro { background: radial-gradient(900px 300px at 0 0, var(--accent-soft), transparent 70%), var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 24px; }
.retro-capa { display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.retro-ano { font-size: 56px; font-weight: 600; color: var(--accent); line-height: 1; letter-spacing: -.04em; }
.retro-capa p { margin: 0; font-family: var(--fonte-display); font-size: 20px; }
.retro-grade { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.retro-n { background: var(--surface-2); border-radius: var(--radius-sm); padding: 14px 16px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.retro-n b { font-size: 26px; font-weight: 600; letter-spacing: -.03em; }
.retro-n span { font-weight: 500; }
.retro-n small { color: var(--muted); font-size: 12px; }
.retro-destaque { grid-column: span 2; background: var(--accent-soft); }
.retro-destaque b { font-size: 40px; color: var(--accent); }
@media (max-width: 1180px) { .pl-cenarios { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) {
  .pl-cenarios, .retro-grade { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .pl-veredito { grid-template-columns: minmax(0, 1fr); }
  .pl-veredito-num { align-items: flex-start; }
  .pl-mix li { grid-template-columns: 38px minmax(0, 1fr) auto; }
  .pl-mix li > span:nth-child(3) { display: none; }
  .retro { padding: 18px; }
  .retro-ano { font-size: 44px; }
}
@media (max-width: 480px) { .pl-cenarios { grid-template-columns: minmax(0, 1fr); } .pl-janelas li { grid-template-columns: 24px minmax(0, 1fr) auto; } .pl-janelas li .btn { grid-column: 2 / -1; justify-self: start; } }

/* ---------- Risco de fadiga ------------------------------------------------ */
.alerta-saude > div > span { display: block; font-size: 13px; margin-top: 2px; }
.risco-motivos, .risco-sugestoes { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.risco-motivos li { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 8px; font-size: 13.5px; }
.risco-motivos li > span:first-child { color: var(--vermelha); text-align: right; }
.risco-motivos li.alivia > span:first-child { color: var(--verde); }
.risco-sub { margin: 14px 0 8px; font-size: 13px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); font-weight: 600; }
.risco-sugestoes li { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 10px; background: var(--surface-2); border-radius: var(--radius-sm); }
.risco-sugestoes small { display: block; margin-top: 2px; }

/* ---------- Avisos no celular ---------------------------------------------- */
.push-estado { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: var(--radius-sm); background: var(--surface-2); margin-bottom: 14px; }
.push-estado > svg { width: 22px; height: 22px; color: var(--muted); flex: none; }
.push-estado.ligado > svg { color: var(--accent); }
.push-estado > div { flex: 1; min-width: 0; }
.push-estado small { display: block; }
.push-tipos { display: flex; flex-direction: column; gap: 8px; }
.push-tipos .check small { display: block; }
.push-tipos[disabled] { opacity: .55; }
.push-outros { margin-top: 14px; display: flex; flex-direction: column; gap: 6px; }

/* ---------- Busca e comandos (Ctrl+K) -------------------------------------- */
.busca-lateral {
  display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 12px; margin: 14px 0 6px;
  border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface-2); color: var(--muted);
  font: inherit; font-size: 13.5px; cursor: pointer; text-align: left;
}
.busca-lateral:hover { color: var(--text); border-color: var(--rolagem-forte); }
.busca-lateral svg { width: 16px; height: 16px; flex: none; }
.busca-lateral span { flex: 1; }
.busca-lateral kbd { font-size: 10.5px; }
.paleta-fundo { position: fixed; inset: 0; z-index: 80; background: rgba(5, 9, 18, .6); backdrop-filter: blur(2px); display: flex; justify-content: center; align-items: flex-start; padding: 12vh 16px 16px; }
[data-tema="claro"] .paleta-fundo { background: rgba(30, 40, 60, .35); }
.paleta { width: 100%; max-width: 640px; max-height: 70vh; display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--sombra); overflow: hidden; animation: entra .15s ease-out; }
.paleta-campo { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-bottom: 1px solid var(--line); }
.paleta-campo > svg { width: 20px; height: 20px; color: var(--muted); flex: none; }
.paleta-campo input { flex: 1; min-width: 0; background: none; border: none; outline: none; color: var(--text); font: inherit; font-size: 16.5px; }
.paleta-lista { overflow-y: auto; overscroll-behavior: contain; padding: 6px; }
.paleta-grupo-t { font-size: 11px; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); padding: 10px 10px 4px; }
.paleta-item { display: flex; align-items: center; gap: 12px; padding: 9px 10px; border-radius: 9px; cursor: pointer; }
.paleta-item.ativo { background: var(--surface-2); box-shadow: inset 2px 0 0 var(--accent); }
.paleta-ic { width: 20px; height: 20px; display: grid; place-items: center; color: var(--muted); flex: none; }
.paleta-ic svg { width: 17px; height: 17px; }
.paleta-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.paleta-txt b { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.paleta-txt small { color: var(--muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.paleta-dir { color: var(--muted); font-size: 12.5px; flex: none; }
.paleta-destaque .paleta-ic { color: var(--accent); }
.paleta-cmd { color: var(--accent); font-weight: 600; }
.paleta-vazio { color: var(--muted); padding: 16px 12px; margin: 0; font-size: 14px; }
.paleta-rodape { display: flex; gap: 16px; flex-wrap: wrap; padding: 9px 14px; border-top: 1px solid var(--line); font-size: 11.5px; color: var(--muted); }
.paleta-rodape kbd { font-size: 10.5px; margin-right: 2px; }
.atalhos { display: grid; grid-template-columns: auto 1fr; gap: 10px 16px; margin: 0; align-items: center; }
.atalhos dt { white-space: nowrap; }
.atalhos dd { margin: 0; color: var(--muted); }
@media (max-width: 760px) {
  .paleta-fundo { padding: 10px 10px 0; }
  .paleta { max-height: calc(100dvh - 20px); }
  .paleta-rodape { display: none; }
  .busca-lateral kbd { display: none; }
}
@media (hover: none) { .busca-lateral kbd { display: none; } }
.conteudo:focus { outline: none; }

/* ---------- Calendário: criar arrastando e agenda em lista --------------- */
.cal-selecao {
  position: absolute; left: 2px; right: 2px; z-index: 5; border-radius: 6px; pointer-events: none;
  background: color-mix(in srgb, var(--accent) 22%, transparent); border: 2px dashed var(--accent);
}
.cal-selecao::after {
  content: attr(data-hora); position: absolute; left: 4px; top: 2px; font-size: 11px; font-weight: 600;
  color: var(--text); font-family: var(--fonte-mono); white-space: nowrap;
}
.ag-lista { display: flex; flex-direction: column; }
.ag-dia { display: grid; grid-template-columns: 58px minmax(0, 1fr) auto; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); align-items: start; }
.ag-dia:last-child { border-bottom: none; }
.ag-data { display: flex; flex-direction: column; align-items: center; gap: 0; background: none; border: none; color: var(--text); cursor: pointer; padding: 2px; border-radius: 8px; font: inherit; }
.ag-data b { font-size: 22px; line-height: 1.1; }
.ag-sem, .ag-data small { font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; }
.ag-hoje .ag-data b, .ag-hoje .ag-sem { color: var(--accent); }
.ag-itens { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ag-item {
  display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; gap: 10px; align-items: center; text-align: left;
  padding: 8px 10px; border-radius: var(--radius-sm); background: var(--surface-2); border: none; border-left: 3px solid var(--cor);
  color: var(--text); font: inherit; cursor: pointer; width: 100%;
}
.ag-item:hover { background: var(--surface-3); }
.ag-repassado { opacity: .6; }
.ag-hora { font-size: 12px; color: var(--muted); line-height: 1.35; }
.ag-txt { display: flex; flex-direction: column; min-width: 0; }
.ag-txt b { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ag-txt small { color: var(--muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ag-valor { font-size: 12.5px; color: var(--muted); }
.ag-livre { margin: 6px 0; font-size: 13px; }
.ag-tot { font-size: 12px; color: var(--muted); padding-top: 4px; }
@media (max-width: 480px) { .ag-dia { grid-template-columns: 46px minmax(0, 1fr); } .ag-tot { display: none; } }
.pl-leg { display: inline-block; width: 16px; height: 0; border-top: 2px solid var(--text); }
.pl-leg-meta { border-top: 2px dashed var(--amarela); }

/* Menu lateral mais compacto em telas de até 1080 px de altura (depois das regras-base, para valer) */
@media (max-height: 1080px) {
  .lateral { gap: 14px; padding-top: 18px; padding-bottom: 16px; }
  .nav a { padding-top: 7px; padding-bottom: 7px; }
  .busca-lateral { margin: 4px 0 0; padding-top: 7px; padding-bottom: 7px; }
  .nav { gap: 0; }
}

/* ---------- Lazer e equilíbrio --------------------------------------------- */
.lz-agora { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; border-color: color-mix(in srgb, var(--verde) 50%, var(--line)); }
.lz-agora > svg { width: 22px; height: 22px; color: var(--verde); flex: none; }
.lz-agora small { display: block; }
.lz-indice #lz-medidor { margin-top: 4px; }
.lz-indice-txt { text-align: center; margin: 4px 0 0; color: var(--muted); font-size: 13.5px; }
.lz-pilares { display: flex; flex-direction: column; gap: 14px; }
.lz-pilar { display: flex; flex-direction: column; gap: 5px; }
.lz-pilar .linha-entre span { font-weight: 500; }
.lz-pilar small { font-size: 12px; }
.lz-barra { height: 8px; border-radius: 999px; background: var(--surface-3); overflow: hidden; }
.lz-barra i { display: block; height: 100%; border-radius: 999px; transition: width .4s ease; }
.lz-proporcao { margin: 16px 0 0; padding-top: 12px; border-top: 1px solid var(--line); font-size: 13.5px; color: var(--muted); }
.lz-proporcao b { color: var(--text); }
.lz-confirmar { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 10px; }
.lz-conf { padding: 12px 14px; border-radius: var(--radius-sm); background: var(--surface-2); border-left: 3px solid var(--cor); display: flex; flex-direction: column; gap: 10px; }
.lz-conf-ok { opacity: .7; }
.lz-conf-tit small { display: block; }
.lz-conf-pergunta { display: flex; align-items: center; gap: 8px; }
.lz-conf-pergunta span { margin-right: auto; font-weight: 500; }
.lz-conf-notas { display: flex; flex-direction: column; gap: 8px; }
.lz-escala { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; font-size: 13px; }
.lz-escala > span:first-child { min-width: 136px; color: var(--muted); }
.lz-nota {
  width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--line); background: var(--surface);
  color: var(--text); font: inherit; font-family: var(--fonte-mono); font-size: 13px; cursor: pointer;
}
.lz-nota:hover { border-color: var(--verde); }
.lz-nota.ativa { background: var(--verde); border-color: var(--verde); color: #04170C; font-weight: 600; }
.lz-nota-txt { margin-left: 4px; }
.lz-janelas, .lz-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.lz-janelas li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 12px; background: var(--surface-2); border-radius: var(--radius-sm); }
.lz-janelas small { display: block; }
.lz-item { display: grid; grid-template-columns: 74px minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 8px 10px 8px 12px; border-radius: var(--radius-sm); background: var(--surface-2); border-left: 3px solid var(--cor); }
.lz-item-data { display: flex; flex-direction: column; font-size: 12.5px; }
.lz-item-data small { color: var(--muted); }
.lz-item-txt { display: flex; flex-direction: column; min-width: 0; }
.lz-item-txt b { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lz-item-txt small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lz-item-notas { color: var(--verde); font-size: 11px; letter-spacing: 1px; }
.lz-efeito { display: flex; flex-direction: column; gap: 10px; }
.lz-ef { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; gap: 4px 10px; align-items: baseline; }
.lz-ef small { grid-column: 1 / -1; font-size: 12px; }
.lz-ef b { font-size: 18px; }
.lz-porque { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 8px; line-height: 1.5; font-size: 13.5px; }
.lz-tipos { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.lz-tipo { position: relative; }
.lz-tipo input { position: absolute; opacity: 0; pointer-events: none; }
.lz-tipo span { display: inline-flex; align-items: center; gap: 6px; padding: 6px 11px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface-2); font-size: 13px; cursor: pointer; }
.lz-tipo input:checked + span { border-color: var(--cor); background: color-mix(in srgb, var(--cor) 18%, var(--surface-2)); font-weight: 600; }
.lz-tipo input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; }
.lz-metas-mini { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 12px; color: var(--muted); }
.lz-meta-mini.ok { color: var(--verde); }
.lz-eq { display: grid; grid-template-columns: auto repeat(4, minmax(0, 1fr)); gap: 10px; align-items: stretch; }
.lz-eq-indice { display: flex; flex-direction: column; justify-content: center; padding: 10px 16px; border-radius: var(--radius-sm); background: color-mix(in srgb, var(--verde) 14%, var(--surface-2)); }
.lz-eq-indice b { font-size: 30px; color: var(--verde); line-height: 1; }
.lz-eq-indice span { font-size: 12px; color: var(--muted); }
.lz-eq-item { display: flex; flex-direction: column; gap: 4px; padding: 10px 12px; border-radius: var(--radius-sm); background: var(--surface-2); font-size: 13px; }
.lz-eq-item span { color: var(--muted); }
.lz-eq-item.ok span { color: var(--verde); }
@media (max-width: 900px) { .lz-eq { grid-template-columns: repeat(2, minmax(0, 1fr)); } .lz-eq-indice { grid-column: 1 / -1; } }
@media (max-width: 560px) {
  .lz-item { grid-template-columns: 58px minmax(0, 1fr) auto; }
  .lz-item-notas { display: none; }
  .lz-escala > span:first-child { min-width: 100%; }
}
.ap-autoria { display: inline-flex; align-items: center; gap: 8px; }
.ap-autoria a { display: inline-flex; border-radius: 6px; padding: 2px; transition: transform .15s ease, filter .15s ease; }
.ap-autoria a:hover { transform: translateY(-1px); filter: brightness(1.12); }
.ap-autoria img { display: block; height: 26px; width: auto; }

/* ---------- Google Agenda: compromissos pessoais como "ocupado" ---------- */
.cal-ev-google { background: repeating-linear-gradient(135deg, var(--surface-3) 0 6px, color-mix(in srgb, var(--muted) 14%, var(--surface-3)) 6px 12px); color: var(--muted); }
.cal-bloco.cal-bloco-google { background: repeating-linear-gradient(135deg, color-mix(in srgb, var(--muted) 30%, var(--surface-2)) 0 6px, color-mix(in srgb, var(--muted) 18%, var(--surface-2)) 6px 12px) !important;
  color: var(--text); opacity: .85; pointer-events: none; }
.ponto-google { background: repeating-linear-gradient(135deg, var(--muted) 0 2px, transparent 2px 4px); border: 1px solid var(--muted); }

/* ---------- Painel: hora de sair para o plantão ---------- */
.agora-saida { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 4px 8px; margin-top: 4px; padding: 6px 10px; border-radius: var(--radius-sm);
  background: var(--accent-soft); color: var(--text); font-size: 13.5px; width: fit-content; max-width: 100%; }
.agora .agora-saida b { display: inline; font-size: 14.5px; }
.agora-saida svg { width: 16px; height: 16px; color: var(--accent); flex: none; }
.agora-saida small { font-size: 12px; text-transform: none; letter-spacing: 0; font-weight: 400; }

/* ---------- Cobrança: Pix ---------- */
.cob-pix-falta { display: flex; align-items: flex-start; gap: 8px; margin: 0 0 12px; }
.cob-pix-falta svg { width: 16px; height: 16px; flex: none; margin-top: 2px; color: var(--azul); }

/* ---------- Plantão: repasse por link ---------- */
.modal-rodape .btn-oferecer { margin-right: auto; }
.nota-par svg { color: var(--accent); }
.of-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.of-item { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.of-item:last-child { border-bottom: 0; }
.of-item > span:first-child { display: flex; flex-direction: column; gap: 2px; min-width: 0; overflow-wrap: anywhere; }
.of-acoes { display: flex; gap: 6px; }
.of-card { max-width: 440px; }
.of-quem { margin: 0 0 12px; font-size: 14px; color: var(--muted); }
.of-quem b { color: var(--text); }
.of-plantao { display: flex; gap: 14px; align-items: stretch; padding: 14px; border-radius: var(--radius); background: var(--surface-2); border: 1px solid var(--line); }
.of-data { display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 62px; padding: 6px 4px; border-radius: var(--radius-sm);
  background: var(--accent-soft); color: var(--accent); }
.of-dia { font-family: var(--fonte-display); font-size: 28px; font-weight: 700; line-height: 1; }
.of-mes { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; font-weight: 600; }
.of-sem { font-size: 11px; color: var(--muted); }
.of-info { display: flex; flex-direction: column; gap: 3px; min-width: 0; font-size: 14px; overflow-wrap: anywhere; }
.of-local { font-size: 16px; }
.of-valores { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
.of-valores > div { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: var(--radius-sm); background: var(--surface-2); }
.of-valores small { font-size: 11.5px; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.of-valores b { font-size: 16px; }
#of-valor { font-size: 20px; color: var(--accent); }
.of-recado { margin: 12px 0 0; padding: 10px 14px; border-left: 3px solid var(--accent); background: var(--surface-2); border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  font-size: 14px; color: var(--text); overflow-wrap: anywhere; }
.of-card .aviso-painel { margin-top: 14px; display: block; cursor: default; }
.of-conflitos ul { margin: 6px 0 0; padding-left: 18px; font-size: 13px; }
.of-nota { font-size: 12.5px; margin: 10px 0 0; }
.aviso-painel.aviso-ok { border-left-color: var(--verde); }

/* ---------- Indique um colega ---------- */
.ind-numeros { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
.ind-numeros > div { display: flex; flex-direction: column; padding: 10px 12px; border-radius: var(--radius-sm); background: var(--surface-2); }
.ind-numeros b { font-size: 22px; font-family: var(--fonte-display); }
.ind-numeros small { color: var(--muted); font-size: 12px; }
.ind-lista { list-style: none; margin: 10px 0 0; padding: 0; }
.ind-lista li { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 7px 0; border-bottom: 1px solid var(--line); font-size: 13.5px; flex-wrap: wrap; }
.ind-lista li:last-child { border-bottom: 0; }

/* ---------- Administração: tarefas agendadas e funil ---------- */
.ad-crons { display: flex; flex-direction: column; gap: 10px; }
.ad-cron { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; border-radius: var(--radius-sm); background: var(--surface-2); border-left: 3px solid var(--line); min-width: 0; }
.ad-cron-problema { border-left-color: var(--vermelha); }
.ad-cron-cab { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.ad-cron small { overflow-wrap: anywhere; }
.ad-cron-det { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 12px; }
.ad-cron .ad-copiar code { font-size: 11.5px; }
.ad-cron-alerta { display: flex; flex-direction: column; gap: 4px; cursor: default; }
.ad-funil { display: flex; flex-direction: column; gap: 12px; }
.ad-funil-etapa { display: flex; flex-direction: column; gap: 4px; }
.ad-funil-barra { height: 10px; border-radius: 999px; background: var(--surface-3); overflow: hidden; }
.ad-funil-barra span { display: block; height: 100%; border-radius: 999px; background: var(--accent); min-width: 2px; }
.ad-coortes td, .ad-coortes th { white-space: nowrap; }
@media (max-width: 560px) {
  .of-valores { grid-template-columns: 1fr; }
  .of-plantao { padding: 12px; gap: 10px; }
}
