/* Gestão de Obras — SR ECO ENGENHARIA (azul #1369BF / verde #33B54D) */
* { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --azul: #1369bf;
  --azul-escuro: #0b3d6e;
  --laranja: #ea580c;
  --fundo: #f1f5f9;
  --branco: #ffffff;
  --texto: #1e293b;
  --cinza: #64748b;
  --borda: #e2e8f0;
  --verde: #33b54d;
  --verde-escuro: #1f8a38;
  --vermelho: #dc2626;
  --amarelo: #ca8a04;
}
body {
  font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
  background: var(--fundo);
  color: var(--texto);
  font-size: 15px;
}
a { color: var(--azul); text-decoration: none; }

/* Layout com barra lateral */
.app { display: flex; min-height: 100vh; }
.sidebar {
  width: 240px; flex-shrink: 0;
  background: var(--azul-escuro); color: #cbd5e1;
  display: flex; flex-direction: column;
}
.marca { padding: 14px 12px; border-bottom: 1px solid rgba(255,255,255,.15); text-align: center; }
.marca .logo-box { background: #fff; border-radius: 10px; padding: 8px 10px 4px; display: block; }
.marca img { max-width: 100%; height: 74px; object-fit: contain; }
.marca .marca-cliente { display: block; margin-top: 8px; font-size: 11.5px; color: #cde9ff; letter-spacing: .04em; }
.marca .marca-cliente strong { color: #7fe89a; }
.sidebar nav { flex: 1; padding: 10px 0; }
.sidebar nav a {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 16px; color: #cbd5e1; font-size: 14px;
}
.sidebar nav a:hover { background: rgba(255,255,255,.08); color: #fff; }
.sidebar nav a.ativo { background: var(--azul); color: #fff; }
/* selo de pendência no menu (ex.: documentos do campo esperando o escritório) */
.menu-selo { display:inline-block; min-width:18px; margin-left:6px; padding:1px 6px; border-radius:9px;
             background:#E23B3B; color:#fff; font-size:11px; font-weight:700; text-align:center; line-height:16px; }
.sidebar-rodape { padding: 14px 16px; border-top: 1px solid rgba(255,255,255,.1); display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.usuario-nome { font-size: 13px; color: #fff; }
.usuario-nome small { color: #94a3b8; text-transform: capitalize; }

.conteudo { flex: 1; padding: 24px 28px; max-width: 1200px; }
.conteudo h1 { font-size: 22px; margin-bottom: 18px; }
.conteudo h2 { font-size: 17px; margin: 22px 0 10px; }

/* Cartões */
.cartoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; margin-bottom: 22px; }
.cartao {
  background: var(--branco); border: 1px solid var(--borda);
  border-radius: 10px; padding: 16px;
}
.cartao .rotulo { font-size: 13px; color: var(--cinza); }
.cartao .valor { font-size: 26px; font-weight: 700; margin-top: 4px; }

/* Painéis / formulários */
.painel {
  background: var(--branco); border: 1px solid var(--borda);
  border-radius: 10px; padding: 18px; margin-bottom: 20px;
}
form label { display: block; font-size: 13px; color: var(--cinza); margin-bottom: 10px; }
form input, form select, form textarea {
  display: block; width: 100%; margin-top: 4px;
  padding: 8px 10px; border: 1px solid var(--borda); border-radius: 8px;
  font: inherit; background: #fff; color: var(--texto);
}
form textarea { min-height: 70px; resize: vertical; }
.form-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0 16px; }
.form-grade .campo-largo { grid-column: 1 / -1; }

/* Botões */
.btn {
  display: inline-block; background: var(--azul); color: #fff;
  border: 0; border-radius: 8px; padding: 9px 16px;
  font: inherit; font-weight: 600; cursor: pointer;
}
.btn:hover { filter: brightness(1.1); }
.btn-mini { padding: 4px 10px; font-size: 13px; font-weight: 500; }
.btn-cinza { background: var(--cinza); }
.btn-vermelho { background: var(--vermelho); }
.btn-verde { background: var(--verde); }
form.inline { display: inline; }

/* Tabelas */
table { width: 100%; border-collapse: collapse; background: var(--branco); border-radius: 10px; overflow: hidden; border: 1px solid var(--borda); }
th, td { padding: 9px 12px; text-align: left; border-bottom: 1px solid var(--borda); font-size: 14px; }
th { background: #f8fafc; color: var(--cinza); font-size: 12.5px; text-transform: uppercase; letter-spacing: .03em; }
tr:last-child td { border-bottom: 0; }
td.num, th.num { text-align: right; }
td.acoes { white-space: nowrap; text-align: right; }

/* Selos de status */
.selo { display: inline-block; padding: 2px 10px; border-radius: 99px; font-size: 12.5px; font-weight: 600; }
.selo-andamento, .selo-ativo, .selo-entrada { background: #dcfce7; color: var(--verde); }
.selo-planejamento { background: #dbeafe; color: var(--azul); }
.selo-pausada, .selo-ferias, .selo-afastado { background: #fef9c3; color: var(--amarelo); }
.selo-concluida { background: #e2e8f0; color: var(--cinza); }
.selo-desligado, .selo-saida { background: #fee2e2; color: var(--vermelho); }

/* Barra de progresso */
.progresso { background: var(--borda); border-radius: 99px; height: 10px; min-width: 90px; overflow: hidden; }
.progresso > span { display: block; height: 100%; background: var(--verde); border-radius: 99px; }

/* Mensagens */
.flash { padding: 11px 14px; border-radius: 8px; margin-bottom: 16px; font-size: 14px; }
.flash-ok { background: #dcfce7; color: #166534; }
.flash-erro { background: #fee2e2; color: #991b1b; }

/* Cabeçalho timbrado (impressão e telas de relatório/RDO) */
.timbrado { display: flex; align-items: center; gap: 18px; background: var(--branco); border: 1px solid var(--borda); border-radius: 10px; padding: 14px 18px; margin-bottom: 18px; }
.timbrado img { height: 76px; }
.timbrado .timbrado-dados { font-size: 13px; color: var(--cinza); line-height: 1.5; }
.timbrado .timbrado-dados strong { color: var(--texto); font-size: 15px; }

/* Campo que exige atenção do usuário (ex.: direcionar empreiteira) */
.campo-atencao {
  background: #fef9c3; border: 2px solid var(--amarelo);
  border-radius: 10px; padding: 10px 12px;
  color: #713f12 !important; font-weight: 600;
}
.campo-atencao small { color: #854d0e; font-weight: 400; }

/* Abas dentro de uma seção (Funcionários | Documentação, etc.) */
.abas { display: flex; gap: 6px; margin-bottom: 18px; border-bottom: 2px solid var(--borda); }
.aba {
  padding: 9px 18px; font-weight: 600; color: var(--cinza);
  border: 1px solid transparent; border-bottom: 0;
  border-radius: 9px 9px 0 0; margin-bottom: -2px;
}
.aba:hover { color: var(--azul); }
.aba.ativa {
  background: var(--branco); color: var(--azul);
  border-color: var(--borda); border-bottom: 2px solid var(--branco);
}

/* Tela de login / instalação */
.tela-login { display: flex; align-items: center; justify-content: center; min-height: 100vh; background: linear-gradient(160deg, var(--azul) 0%, var(--azul-escuro) 70%); }
.cartao-login .logo-login { display: block; margin: 0 auto 10px; height: 120px; }
.cartao-login {
  background: var(--branco); border-radius: 14px; padding: 32px;
  width: 100%; max-width: 400px; box-shadow: 0 20px 50px rgba(0,0,0,.3);
}
.cartao-login h1 { font-size: 20px; margin-bottom: 6px; }
.cartao-login h2 { font-size: 16px; margin-bottom: 4px; }
.cartao-login p { color: var(--cinza); font-size: 14px; margin-bottom: 16px; }
.cartao-login .btn { width: 100%; margin-top: 6px; }

/* Barra de filtros */
.filtros { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; margin-bottom: 16px; }
.filtros label { margin-bottom: 0; }
.filtros input, .filtros select { width: auto; min-width: 160px; }

/* Impressão (relatórios e RDO) */
@media print {
  .sidebar, .btn, .filtros, .nao-imprimir { display: none !important; }
  .conteudo { padding: 0; max-width: none; }
  body { background: #fff; }
  .painel, table { border: 1px solid #999; }
}
@media (max-width: 800px) {
  .app { flex-direction: column; }
  .sidebar { width: 100%; }
}

/* ===== RDO mobile (tela do encarregado) ===== */
.rdo-form label{display:block;margin:10px 0 0}
.rdo-form input[type=date],.rdo-form select,.rdo-form textarea{width:100%;font-size:16px;padding:12px;border:1px solid var(--borda,#DCE4DF);border-radius:10px}
.linha-campos{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.rdo-climas{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}
.rdo-climas fieldset{border:1px solid var(--borda,#DCE4DF);border-radius:10px;padding:8px;display:flex;gap:4px;flex-wrap:wrap}
.rdo-climas legend{font-size:.8rem;color:var(--cinza,#5B6B7A);padding:0 6px}
.rdo-clima input{position:absolute;opacity:0}
.rdo-clima span{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 10px;border:2px solid transparent;border-radius:10px;font-size:1.3rem;cursor:pointer}
.rdo-clima small{font-size:.6rem;color:var(--cinza,#5B6B7A)}
.rdo-clima input:checked + span{border-color:var(--verde,#2FB449);background:#E3F5E7}
.rdo-clima input:focus-visible + span{outline:2px solid var(--azul,#0C60A8)}
.rdo-efetivo{float:right;font-size:.95rem;background:#E3F5E7;color:#1F8A35;border-radius:999px;padding:4px 14px}
.rdo-dica{color:var(--cinza,#5B6B7A);font-size:.85rem;margin:4px 0 8px}
.rdo-presencas{border:1px solid var(--borda,#DCE4DF);border-radius:12px;overflow:hidden}
.rdo-equipe{background:#F4F7F4;padding:6px 12px;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--cinza,#5B6B7A)}
.rdo-func{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-top:1px solid var(--borda,#DCE4DF)}
.rdo-func-nome{line-height:1.2}
.rdo-func-nome small{display:block;color:var(--cinza,#5B6B7A);font-size:.75rem}
.rdo-pmf{display:flex;gap:6px}
.rdo-pmf input{position:absolute;opacity:0}
.pmf{display:grid;place-items:center;width:44px;height:44px;border-radius:10px;border:2px solid var(--borda,#DCE4DF);font-weight:700;cursor:pointer;user-select:none}
.rdo-pmf input:checked + .pmf-presente{background:#2FB449;border-color:#2FB449;color:#fff}
.rdo-pmf input:checked + .pmf-meia{background:#E9A400;border-color:#E9A400;color:#fff}
.rdo-pmf input:checked + .pmf-falta{background:#C43B3B;border-color:#C43B3B;color:#fff}
.rdo-pmf input:focus-visible + .pmf{outline:2px solid var(--azul,#0C60A8)}
.rdo-add-foto{border:2px dashed var(--borda,#DCE4DF);border-radius:12px;padding:16px;text-align:center;cursor:pointer;margin-top:8px}
.rdo-fotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin:10px 0}
.rdo-fotos figure{margin:0;text-align:center}
.rdo-fotos img{width:100%;height:110px;object-fit:cover;border-radius:10px;border:1px solid var(--borda,#DCE4DF)}
.rdo-acoes{display:flex;gap:10px;margin-top:16px}
.rdo-acoes .btn{flex:1;padding:16px;font-size:1.05rem;text-align:center}

/* Selos de situação do RDO */
.selo-rascunho{background:#EEF1F3;color:#5B6B7A}
.selo-enviado{background:#E2EEFA;color:#0C60A8}
.selo-aprovado{background:#E3F5E7;color:#1F8A35}
.selo-reprovado{background:#FBE4E4;color:#C43B3B}

@media print{
  .rdo-fotos-impressao{grid-template-columns:1fr 1fr}
  .rdo-fotos-impressao img{height:auto;max-height:280px}
}
@media (max-width:640px){
  .linha-campos,.rdo-climas{grid-template-columns:1fr}
}

/* Pré-visualização das notas antes do envio (enviar-nota.php e gastos.php) */
.previa-notas{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0}
.previa-item{display:flex;flex-direction:column;align-items:center;gap:4px;max-width:130px;
  padding:6px;background:#fff;border:1px solid #D8E0DA;border-radius:10px;font-size:22px}
.previa-item img{display:block;max-width:118px;max-height:118px;border-radius:6px;object-fit:cover}
.previa-item small{font-size:11px;color:var(--cinza);text-align:center;word-break:break-word}
.previa-erro{border-color:#C43B3B;background:#FBE4E4}
.previa-erro small{color:#C43B3B}

/* ✕ de remover na pré-visualização */
.previa-item{position:relative}
.previa-remover{position:absolute;top:2px;right:2px;width:24px;height:24px;line-height:1;
  border:0;border-radius:50%;background:#C43B3B;color:#fff;font-size:13px;cursor:pointer}

/* Ficha do funcionário */
.ficha-topo{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}
.ficha-foto{width:130px;text-align:center}
.ficha-foto img{width:130px;height:160px;object-fit:cover;border-radius:10px;border:1px solid var(--borda)}
.ficha-sem-foto{width:130px;height:160px;display:flex;align-items:center;justify-content:center;
  font-size:52px;background:#EEF1F3;border-radius:10px;border:1px dashed var(--borda)}
.ficha-dados{width:100%;font-size:13px}
.ficha-dados td{padding:3px 8px;border-bottom:1px solid var(--borda)}
.ficha-dados td:nth-child(odd){color:var(--cinza);width:110px}
@media (max-width:640px){ .ficha-topo{flex-direction:column;align-items:center} }

/* =====================================================================
   TELA DO ENCARREGADO — casca de celular
   Ele usa de luva, no sol, com pressa. Regras: nada de menu ocupando a
   primeira tela, alvo de toque grande, e o que importa primeiro.
   ===================================================================== */

/* No celular o encarregado não vê a barra lateral: vira topo fino + abas embaixo */
.barra-topo, .barra-baixo { display: none; }

@media (max-width: 800px) {
  body.papel-encarregado { padding-top: 56px; padding-bottom: 68px; background: var(--fundo); }
  body.papel-encarregado .sidebar { display: none; }
  body.papel-encarregado .conteudo { padding: 14px 14px 8px; }
  body.papel-encarregado .conteudo > h1 { display: none; }

  .barra-topo {
    display: flex; align-items: center; gap: 10px;
    position: fixed; top: 0; left: 0; right: 0; height: 56px; z-index: 40;
    background: var(--azul-escuro); color: #fff; padding: 0 14px;
    box-shadow: 0 1px 6px rgba(0,0,0,.18);
  }
  .barra-topo img { height: 30px; width: auto; background: #fff; border-radius: 6px; padding: 3px 5px; }
  .barra-topo-obra { flex: 1; font-size: 16px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .barra-topo-sair { color: #cbd5e1; font-size: 13px; padding: 8px; }

  .barra-baixo {
    display: grid; grid-auto-flow: column; grid-auto-columns: 1fr;
    position: fixed; bottom: 0; left: 0; right: 0; z-index: 40;
    background: #fff; border-top: 1px solid var(--borda);
    padding-bottom: env(safe-area-inset-bottom, 0);
    box-shadow: 0 -1px 8px rgba(0,0,0,.08);
  }
  .barra-baixo a {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
    padding: 8px 2px 10px; font-size: 11px; color: var(--cinza); text-decoration: none; line-height: 1.1;
  }
  .barra-baixo-icone { font-size: 21px; line-height: 1; filter: grayscale(1); opacity: .55; }
  .barra-baixo a.ativo { color: var(--verde-escuro); font-weight: 700; }
  .barra-baixo a.ativo .barra-baixo-icone { filter: none; opacity: 1; }
}

/* ---- cabeçalho do dia ---- */
.inicio-saudacao { margin: 2px 0 14px; }
.inicio-saudacao strong { display: block; font-size: 24px; letter-spacing: -.4px; color: var(--texto); }
.inicio-saudacao span { display: block; color: var(--cinza); font-size: 14px; margin-top: 2px; }

/* ---- cartão principal: o diário do dia ---- */
.card-dia {
  display: flex; align-items: center; gap: 14px; text-decoration: none; color: #fff;
  background: linear-gradient(135deg, #2FB449, #17913a);
  border-radius: 18px; padding: 20px 18px; margin-bottom: 12px;
  box-shadow: 0 6px 18px rgba(47,180,73,.28);
}
.card-dia.feito { background: linear-gradient(135deg, #0C60A8, #0a4d86); box-shadow: 0 6px 18px rgba(12,96,168,.26); }
.card-dia .emoji { font-size: 34px; line-height: 1; }
.card-dia .txt { flex: 1; min-width: 0; }
.card-dia .txt b { display: block; font-size: 21px; font-weight: 700; letter-spacing: -.3px; }
.card-dia .txt small { display: block; font-size: 14px; opacity: .92; margin-top: 3px; }
.card-dia .seta { font-size: 26px; opacity: .8; }

/* ---- aviso de diário atrasado ---- */
.card-atraso {
  display: flex; align-items: center; gap: 12px; text-decoration: none;
  background: #FEF2F2; border: 1px solid #FCA5A5; border-left: 5px solid var(--vermelho);
  border-radius: 14px; padding: 14px 16px; margin-bottom: 12px; color: var(--texto);
}
.card-atraso .emoji { font-size: 24px; }
.card-atraso b { display: block; color: #B91C1C; font-size: 16px; }
.card-atraso small { color: #7F1D1D; font-size: 13px; }

/* ---- dois atalhos lado a lado ---- */
.atalhos { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.atalho {
  display: flex; flex-direction: column; gap: 8px; text-decoration: none; color: var(--texto);
  background: #fff; border: 1px solid var(--borda); border-radius: 16px; padding: 16px 14px;
  box-shadow: 0 1px 3px rgba(16,24,40,.05); min-height: 116px;
}
.atalho:active { transform: scale(.985); }
.atalho .bolha {
  width: 44px; height: 44px; border-radius: 13px; display: flex; align-items: center; justify-content: center;
  font-size: 22px; background: #E8F6EC;
}
.atalho.azul .bolha { background: #E6F0FA; }
.atalho b { font-size: 16px; letter-spacing: -.2px; }
.atalho small { color: var(--cinza); font-size: 12.5px; line-height: 1.35; display: block; }

/* ---- fila de envios esperando sinal ---- */
.fila-offline {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  background: #FFF8E6; border: 1px solid #F0D68C; border-radius: 12px;
  padding: 11px 13px; margin-bottom: 12px; font-size: 14px;
}
.fila-offline[hidden] { display: none; }

/* =====================================================================
   RDO — escolher com o polegar
   ===================================================================== */
.rdo-repetir { display: block; width: 100%; margin: 0 0 12px; font-size: 16px; padding: 13px; border-radius: 12px; }
.rdo-atalhos { display: flex; gap: 8px; flex-wrap: wrap; margin: 4px 0 10px; }

.rdo-frases { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 10px; }
.rdo-form label.rdo-frase, .rdo-frase {
  display: inline-flex; align-items: center; gap: 8px; margin: 0;
  border: 1.5px solid var(--borda); border-radius: 999px; background: #fff;
  padding: 9px 14px 9px 11px; font-size: 15px; line-height: 1.2; cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.rdo-frase input { width: 19px; height: 19px; flex: none; accent-color: var(--verde); margin: 0; }
.rdo-frase:has(input:checked) { border-color: var(--verde); background: #E8F6EC; font-weight: 600; }
.rdo-form label.rdo-compl { display: block; margin-top: 8px; }
.rdo-compl input { font-size: 16px; }

/* barra do rodapé: o que falta + Enviar sempre à mão */
.rdo-barra {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 45;
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  background: #fff; border-top: 1px solid var(--borda); padding: 10px 14px;
  padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
  box-shadow: 0 -2px 10px rgba(16,24,40,.10);
}
.rdo-barra .btn { padding: 12px 18px; font-size: 15.5px; border-radius: 12px; }
.rdo-barra-itens { display: flex; gap: 9px; flex: 1 1 auto; min-width: 0; overflow: hidden;
  font-size: 12px; color: var(--cinza); white-space: nowrap; }
.rdo-barra .btn { flex: none; }
.rdo-barra-itens b { font-weight: 600; }
.rdo-barra-itens b.ok { color: var(--verde-escuro); }
@media (max-width: 800px) {
  body.papel-encarregado .rdo-barra { bottom: 68px; }
  body.papel-encarregado.tem-barra-rdo { padding-bottom: 140px; }
}

/* ---- cabeçalho compacto do RDO: obra e data que ele quase nunca troca ---- */
.rdo-cabecalho { border: 1px solid var(--borda); border-radius: 12px; background: #F8FAF9; margin-bottom: 12px; }
.rdo-cabecalho > summary {
  display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: 2px 10px;
  padding: 12px 14px; cursor: pointer; list-style: none; font-size: 15px;
}
.rdo-cabecalho > summary::-webkit-details-marker { display: none; }
.rdo-cab-obra { grid-column: 1 / -1; font-weight: 700; color: var(--texto); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rdo-cab-data { color: var(--cinza); font-size: 14px; }
.rdo-cab-alterar { color: var(--azul); font-size: 13px; font-weight: 600; }
.rdo-cabecalho[open] > summary { border-bottom: 1px solid var(--borda); }
.rdo-cabecalho .linha-campos { padding: 10px 14px 14px; }

/* ---- clima numa linha só ---- */
.rdo-climas fieldset { border: 1px solid var(--borda); border-radius: 12px; padding: 8px 10px 10px; margin: 0 0 10px; }
.rdo-climas legend { font-size: 13px; color: var(--cinza); padding: 0 4px; }
.rdo-climas fieldset > label.rdo-clima, .rdo-clima { margin: 0; }
.rdo-climas fieldset { display: grid; grid-template-columns: repeat(5, 1fr); gap: 4px; }
.rdo-clima span { display: flex; flex-direction: column; align-items: center; gap: 2px;
  padding: 7px 4px; border-radius: 10px; border: 1.5px solid transparent; font-size: 19px; }
.rdo-clima span small { font-size: 10px; color: var(--cinza); line-height: 1.05; text-align: center;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.rdo-clima input:checked + span { border-color: var(--verde); background: #E8F6EC; }
.rdo-clima input:checked + span small { color: var(--verde-escuro); font-weight: 600; }

/* ---- atalhos de tamanho dos cartões da tela inicial ---- */
.atalho { min-height: 148px; justify-content: flex-start; }
.atalho b { font-size: 15.5px; }

/* o radio do clima é invisível: quem marca é o próprio ícone */
.rdo-clima input { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }
.rdo-clima { position: relative; display: block; }
.rdo-clima span { cursor: pointer; }
.rdo-clima input:focus-visible + span { outline: 2px solid var(--azul); outline-offset: 2px; }

/* tabela larga não pode empurrar a tela do celular */
@media (max-width: 800px) {
  body.papel-encarregado table { display: block; width: 100%; overflow-x: auto; }
  body.papel-encarregado .conteudo, body.papel-encarregado .painel { min-width: 0; }
}

/* Radios de presença e clima: invisíveis, mas SEM empurrar a tela para o lado.
   (Estavam absolutos sem âncora e escapavam para fora do celular.) */
.rdo-pmf label, .rdo-climas .rdo-clima { position: relative; display: inline-block; }
.rdo-pmf input[type="radio"], .rdo-climas input[type="radio"] {
  position: absolute; left: 0; top: 0; width: 1px; height: 1px;
  opacity: 0; margin: 0; padding: 0; border: 0; clip-path: inset(50%); overflow: hidden;
}

/* Botão de câmera: o controle cru do navegador ("Choose Files") sai de cena e a
   caixa inteira vira o botão — alvo grande, do jeito que se usa de luva. */
.rdo-add-foto {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  border: 2px dashed var(--verde); background: #F3FBF5; border-radius: 14px;
  padding: 18px 14px; text-align: center; cursor: pointer; margin-top: 10px;
  font-size: 16px; font-weight: 600; color: var(--verde-escuro);
}
.rdo-add-foto:active { background: #E8F6EC; }
.rdo-add-foto input[type="file"] {
  position: absolute; width: 1px; height: 1px; opacity: 0; clip-path: inset(50%); overflow: hidden;
}
.rdo-add-foto small { font-weight: 400; color: var(--cinza); font-size: 12.5px; }

/* caixa de seleção que estava caindo em cima do texto */
.rdo-form label.rdo-check, .rdo-check {
  display: block; position: relative; padding-left: 34px; margin: 12px 0 4px;
  font-size: 15px; color: var(--texto); line-height: 1.35; cursor: pointer;
}
.rdo-check input { position: absolute; left: 0; top: 1px; width: 22px; height: 22px;
  margin: 0; accent-color: var(--verde); }
