/* =====================================================================
   Portal .38 — Módulo CHECK-LIST · estilos
   Escopo total dentro de #chk38 para não vazar no restante do Portal.
   Herda as variáveis do Portal quando existirem; senão usa as próprias.
   ===================================================================== */

#chk38, #chk38-toasts, .chk-modal-fundo {
  --chk-ouro:      var(--dourado, var(--gold, var(--amarelo, #e6b34a)));
  --chk-ouro-esc:  #b8892a;
  --chk-ouro-fraco: rgba(230,179,74,.13);
  --chk-fundo:     #121419;
  --chk-painel:    #191c24;
  --chk-painel2:   #20242e;
  --chk-linha:     #2b3140;
  --chk-txt:       #e9ecf2;
  --chk-txt2:      #98a1b2;
  --chk-txt3:      #6b7383;
  --chk-perigo:    #e5484d;
  --chk-perigo-bg: rgba(229,72,77,.12);
  --chk-ok:        #3fb950;
  --chk-ok-bg:     rgba(63,185,80,.12);
  --chk-aviso:     #e0902f;
  --chk-aviso-bg:  rgba(224,144,47,.12);
  --chk-info:      #4a9eff;
  --chk-r:         12px;
  --chk-sombra:    0 18px 48px rgba(0,0,0,.45);
}

/* ---- Tamanho padrão de qualquer ícone SVG solto (regras abaixo sobrepõem) ---- */
.chk-topo svg, .chk-abas svg, .chk-corpo svg, .chk-modal svg,
.chk-toast svg, .chk-notif-painel svg, .chk-item svg, .chk-card svg{
  width:15px; height:15px; flex-shrink:0;
}

/* ---------------- Overlay principal ---------------- */
#chk38{
  position: fixed; inset: 0 0 0 var(--chk-nav, 250px);
  background: var(--chk-fundo); color: var(--chk-txt);
  z-index: 900; display: none; flex-direction: column;
  font-family: inherit; overflow: hidden;
}
#chk38.aberto{ display: flex; }
#chk38 *{ box-sizing: border-box; }
#chk38 ::-webkit-scrollbar{ width: 10px; height: 10px; }
#chk38 ::-webkit-scrollbar-thumb{ background:#333a49; border-radius: 6px; }
#chk38 ::-webkit-scrollbar-track{ background: transparent; }

/* ---------------- Cabeçalho ---------------- */
.chk-topo{
  display:flex; align-items:center; gap:16px; padding:18px 26px 14px;
  border-bottom:1px solid var(--chk-linha); background:var(--chk-painel);
  flex-wrap:wrap;
}
.chk-topo h1{
  margin:0; font-size:20px; font-weight:700; letter-spacing:.3px;
  display:flex; align-items:center; gap:10px;
}
.chk-topo h1 svg{ width:22px; height:22px; stroke:var(--chk-ouro); }
.chk-sub{ font-size:12px; color:var(--chk-txt2); margin-top:2px; }
.chk-topo-dir{ margin-left:auto; display:flex; align-items:center; gap:10px; }

/* ---------------- Abas segmentadas douradas ---------------- */
.chk-abas{
  display:flex; gap:6px; padding:12px 26px; background:var(--chk-painel);
  border-bottom:1px solid var(--chk-linha); overflow-x:auto; flex-shrink:0;
}
.chk-aba{
  background:var(--chk-painel2); color:var(--chk-txt2); border:1px solid var(--chk-linha);
  padding:8px 16px; border-radius:8px; font-size:13px; font-weight:600; cursor:pointer;
  white-space:nowrap; transition:.15s; display:flex; align-items:center; gap:7px;
}
.chk-aba:hover{ color:var(--chk-txt); border-color:#3b4356; }
.chk-aba.ativa{
  background:var(--chk-ouro); color:#1a1408; border-color:var(--chk-ouro);
  box-shadow:0 2px 10px rgba(230,179,74,.25);
}
.chk-aba .pill{
  background:rgba(0,0,0,.22); padding:1px 7px; border-radius:20px; font-size:11px; font-weight:700;
}
.chk-aba:not(.ativa) .pill{ background:var(--chk-linha); color:var(--chk-txt); }
.chk-aba .pill.alerta{ background:var(--chk-perigo); color:#fff; }

/* ---------------- Corpo rolável ---------------- */
.chk-corpo{ flex:1; overflow-y:auto; padding:22px 26px 60px; }
.chk-secao-tit{
  font-size:12px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase;
  color:var(--chk-txt2); margin:26px 0 12px; display:flex; align-items:center; gap:9px;
}
.chk-secao-tit:first-child{ margin-top:0; }
.chk-secao-tit svg{ width:14px; height:14px; }
.chk-secao-tit .cnt{
  background:var(--chk-painel2); border:1px solid var(--chk-linha); color:var(--chk-txt);
  padding:1px 8px; border-radius:20px; font-size:11px; letter-spacing:0;
}
.chk-secao-tit.perigo{ color:var(--chk-perigo); }
.chk-secao-tit.perigo .cnt{ background:var(--chk-perigo-bg); border-color:rgba(229,72,77,.35); color:#ff8b8f; }

/* ---------------- Botões ---------------- */
.chk-btn{
  background:var(--chk-painel2); color:var(--chk-txt); border:1px solid var(--chk-linha);
  padding:9px 15px; border-radius:8px; font-size:13px; font-weight:600; cursor:pointer;
  display:inline-flex; align-items:center; gap:7px; transition:.15s; font-family:inherit;
}
.chk-btn:hover{ border-color:#454e63; background:#262b37; }
.chk-btn svg{ width:15px; height:15px; }
.chk-btn.ouro{ background:var(--chk-ouro); color:#1a1408; border-color:var(--chk-ouro); }
.chk-btn.ouro:hover{ background:#f0c25e; border-color:#f0c25e; }
.chk-btn.perigo{ color:#ff8b8f; border-color:rgba(229,72,77,.4); }
.chk-btn.perigo:hover{ background:var(--chk-perigo-bg); }
.chk-btn.ok{ color:#7ee08a; border-color:rgba(63,185,80,.4); }
.chk-btn.ok:hover{ background:var(--chk-ok-bg); }
.chk-btn.pequeno{ padding:6px 11px; font-size:12px; }
.chk-btn.fantasma{ background:transparent; border-color:transparent; color:var(--chk-txt2); }
.chk-btn.fantasma:hover{ background:var(--chk-painel2); color:var(--chk-txt); }
.chk-btn:disabled{ opacity:.45; cursor:not-allowed; }

.chk-icone-btn{
  background:transparent; border:1px solid var(--chk-linha); color:var(--chk-txt2);
  width:34px; height:34px; border-radius:8px; cursor:pointer; display:grid; place-items:center;
  position:relative; transition:.15s;
}
.chk-icone-btn:hover{ color:var(--chk-txt); border-color:#454e63; }
.chk-icone-btn svg{ width:17px; height:17px; }
.chk-icone-btn .badge{
  position:absolute; top:-5px; right:-5px; background:var(--chk-perigo); color:#fff;
  font-size:10px; font-weight:700; min-width:17px; height:17px; border-radius:9px;
  display:grid; place-items:center; padding:0 4px; border:2px solid var(--chk-painel);
}

/* ---------------- KPIs ---------------- */
.chk-kpis{ display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; margin-bottom:8px; }
.chk-kpi{
  background:var(--chk-painel); border:1px solid var(--chk-linha); border-radius:var(--chk-r);
  padding:15px 17px; position:relative; overflow:hidden;
}
.chk-kpi .n{ font-size:30px; font-weight:700; line-height:1; }
.chk-kpi .r{ font-size:11.5px; color:var(--chk-txt2); margin-top:7px; text-transform:uppercase; letter-spacing:.7px; font-weight:600; }
.chk-kpi.perigo{ border-color:rgba(229,72,77,.35); background:linear-gradient(180deg,var(--chk-perigo-bg),var(--chk-painel)); }
.chk-kpi.perigo .n{ color:#ff8b8f; }
.chk-kpi.aviso{ border-color:rgba(224,144,47,.35); }
.chk-kpi.aviso .n{ color:#f2ad55; }
.chk-kpi.ok .n{ color:#7ee08a; }
.chk-kpi.ouro .n{ color:var(--chk-ouro); }

/* ---------------- Faixa "dê sua ciência" ---------------- */
.chk-ciencia-card{
  background:linear-gradient(135deg,rgba(230,179,74,.15),var(--chk-painel) 62%);
  border:1px solid rgba(230,179,74,.42); border-radius:var(--chk-r);
  padding:17px 19px; margin-bottom:12px; display:flex; align-items:center; gap:18px; flex-wrap:wrap;
}
.chk-ciencia-card .info{ flex:1; min-width:230px; }
.chk-ciencia-card .cod{
  font-size:11px; font-weight:700; color:var(--chk-ouro); letter-spacing:.7px;
}
.chk-ciencia-card .tit{ font-size:16px; font-weight:700; margin:3px 0 5px; }
.chk-ciencia-card .meta{ font-size:12.5px; color:var(--chk-txt2); }
.chk-btn-ciencia{
  background:var(--chk-ouro); color:#1a1408; border:none; padding:13px 24px; border-radius:10px;
  font-size:14px; font-weight:800; cursor:pointer; letter-spacing:.4px; font-family:inherit;
  display:inline-flex; align-items:center; gap:9px; transition:.15s;
  box-shadow:0 4px 16px rgba(230,179,74,.28);
}
.chk-btn-ciencia:hover{ transform:translateY(-1px); box-shadow:0 7px 22px rgba(230,179,74,.4); }
.chk-btn-ciencia:active{ transform:translateY(0); }
.chk-btn-ciencia svg{ width:18px; height:18px; }

/* ---------------- Linha de item ---------------- */
.chk-item{
  background:var(--chk-painel); border:1px solid var(--chk-linha); border-radius:10px;
  padding:12px 14px; margin-bottom:8px; display:flex; gap:13px; align-items:flex-start;
  transition:.15s;
}
.chk-item:hover{ border-color:#3b4356; background:var(--chk-painel2); }
.chk-item.atrasado{ border-color:rgba(229,72,77,.45); background:linear-gradient(90deg,var(--chk-perigo-bg),var(--chk-painel) 55%); }
.chk-item.atrasado.pulsa{ animation:chkPulsa 2.4s ease-in-out infinite; }
@keyframes chkPulsa{
  0%,100%{ box-shadow:0 0 0 0 rgba(229,72,77,0); }
  50%    { box-shadow:0 0 0 4px rgba(229,72,77,.13); }
}
.chk-item.feito{ opacity:.5; }
.chk-item.feito .it-tit{ text-decoration:line-through; }
.chk-item.devolvido{ border-color:rgba(224,144,47,.5); }

.chk-check{
  width:24px; height:24px; border-radius:7px; border:2px solid #3f4759; background:transparent;
  cursor:pointer; flex-shrink:0; margin-top:1px; display:grid; place-items:center; transition:.15s; padding:0;
}
.chk-check:hover{ border-color:var(--chk-ouro); background:var(--chk-ouro-fraco); }
.chk-check svg{ width:14px; height:14px; stroke:#1a1408; stroke-width:3.4; opacity:0; }
.chk-check.marcado{ background:var(--chk-ok); border-color:var(--chk-ok); }
.chk-check.marcado svg{ opacity:1; }
.chk-check.na{ background:var(--chk-txt3); border-color:var(--chk-txt3); }
.chk-check.na svg{ opacity:1; }
.chk-check:disabled{ cursor:not-allowed; opacity:.45; }

.chk-item .corpo{ flex:1; min-width:0; }
.chk-item .it-tit{ font-size:14px; font-weight:600; line-height:1.35; }
.chk-item .it-desc{
  font-size:12.5px; color:var(--chk-txt2); margin-top:5px; line-height:1.55; white-space:pre-wrap;
}
.chk-item .it-linha{ display:flex; flex-wrap:wrap; gap:7px; align-items:center; margin-top:8px; }
.chk-item .acoes{ display:flex; gap:5px; flex-shrink:0; align-items:center; }

/* ---------------- Chips ---------------- */
.chk-chip{
  display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:600;
  padding:3px 9px; border-radius:20px; background:var(--chk-painel2);
  border:1px solid var(--chk-linha); color:var(--chk-txt2); white-space:nowrap;
}
.chk-chip svg{ width:12px; height:12px; }
.chk-chip.perigo{ background:var(--chk-perigo-bg); border-color:rgba(229,72,77,.4); color:#ff8b8f; }
.chk-chip.aviso { background:var(--chk-aviso-bg); border-color:rgba(224,144,47,.4); color:#f2ad55; }
.chk-chip.ok    { background:var(--chk-ok-bg); border-color:rgba(63,185,80,.4); color:#7ee08a; }
.chk-chip.ouro  { background:var(--chk-ouro-fraco); border-color:rgba(230,179,74,.4); color:var(--chk-ouro); }
.chk-chip.info  { background:rgba(74,158,255,.12); border-color:rgba(74,158,255,.4); color:#7fbaff; }
.chk-chip.priv  { background:rgba(155,120,220,.14); border-color:rgba(155,120,220,.42); color:#bda2f0; }
.chk-chip.d     { font-variant-numeric:tabular-nums; font-weight:700; }

/* ---------------- Cartões de check-list ---------------- */
.chk-grade{ display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:14px; align-items:start; }
.chk-card{
  background:var(--chk-painel); border:1px solid var(--chk-linha); border-radius:var(--chk-r);
  padding:16px 17px; cursor:pointer; transition:.15s; display:flex; flex-direction:column; gap:11px;
  position:relative; overflow:hidden;
}
.chk-card:hover{ border-color:var(--chk-ouro); transform:translateY(-2px); box-shadow:0 10px 26px rgba(0,0,0,.32); }
.chk-card.tem-atraso::before{
  content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--chk-perigo);
}
.chk-card .cabeca{ display:flex; align-items:flex-start; gap:10px; }
.chk-card .cod{ font-size:11px; font-weight:700; color:var(--chk-ouro); letter-spacing:.6px; }
.chk-card .tit{ font-size:15.5px; font-weight:700; line-height:1.35; margin-top:3px; }
.chk-card .desc{
  font-size:12.5px; color:var(--chk-txt2); line-height:1.5;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.chk-card .chips{ display:flex; flex-wrap:wrap; gap:6px; }
.chk-card .rodape{
  display:flex; align-items:center; gap:8px; padding-top:11px; border-top:1px solid var(--chk-linha);
  font-size:12px; color:var(--chk-txt2); min-width:0;
}
.chk-card .rodape svg{ width:14px; height:14px; }
.chk-card .rodape > span:first-of-type{
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0;
}
.chk-card .rodape .chk-chip{ margin-left:auto; }

/* barra de progresso */
.chk-prog{ height:6px; background:var(--chk-painel2); border-radius:4px; overflow:hidden; }
.chk-prog i{ display:block; height:100%; background:var(--chk-ouro); border-radius:4px; transition:width .35s; }
.chk-prog.completo i{ background:var(--chk-ok); }
.chk-prog-txt{ display:flex; justify-content:space-between; font-size:11.5px; color:var(--chk-txt2); margin-bottom:5px; font-weight:600; }

/* anel de progresso */
.chk-anel{ width:52px; height:52px; flex-shrink:0; position:relative; }
.chk-anel svg{ width:52px; height:52px; transform:rotate(-90deg); }
.chk-anel circle{ fill:none; stroke-width:5; }
.chk-anel .fundo{ stroke:var(--chk-painel2); }
.chk-anel .frente{ stroke:var(--chk-ouro); stroke-linecap:round; transition:stroke-dasharray .5s; }
.chk-anel.completo .frente{ stroke:var(--chk-ok); }
.chk-anel.zero .frente{ stroke-linecap:butt; }
.chk-anel span{
  position:absolute; inset:0; display:grid; place-items:center; font-size:12.5px; font-weight:700;
}

/* contagem regressiva */
.chk-regressiva{
  display:inline-flex; align-items:baseline; gap:5px; padding:5px 12px; border-radius:8px;
  background:var(--chk-ouro-fraco); border:1px solid rgba(230,179,74,.35);
}
.chk-regressiva b{ font-size:19px; font-weight:800; color:var(--chk-ouro); line-height:1; }
.chk-regressiva span{ font-size:11.5px; color:var(--chk-txt2); font-weight:600; line-height:1.35; }
.chk-det-topo .chk-regressiva{ align-items:center; }
.chk-regressiva.hoje{ background:var(--chk-perigo-bg); border-color:rgba(229,72,77,.42); }
.chk-regressiva.hoje b{ color:#ff8b8f; }
.chk-regressiva.passou{ background:var(--chk-painel2); border-color:var(--chk-linha); }
.chk-regressiva.passou b{ color:var(--chk-txt2); }

/* ---------------- Modais ---------------- */
.chk-modal-fundo{
  position:fixed; inset:0; background:rgba(6,8,12,.74); backdrop-filter:blur(3px);
  z-index:1200; display:flex; align-items:center; justify-content:center; padding:26px;
  animation:chkFade .16s ease;
}
@keyframes chkFade{ from{opacity:0} to{opacity:1} }
.chk-modal{
  background:var(--chk-painel); border:1px solid var(--chk-linha); border-radius:16px;
  width:100%; max-width:920px; max-height:92vh; display:flex; flex-direction:column;
  box-shadow:var(--chk-sombra); overflow:hidden; animation:chkSobe .2s ease;
  color:var(--chk-txt);
}
@keyframes chkSobe{ from{ transform:translateY(14px); opacity:0 } to{ transform:none; opacity:1 } }
.chk-modal.largo{ max-width:1140px; }
.chk-modal.estreito{ max-width:540px; }
.chk-modal-topo{
  padding:18px 22px; border-bottom:1px solid var(--chk-linha); display:flex;
  align-items:flex-start; gap:14px; flex-shrink:0;
}
.chk-modal-topo h2{ margin:0; font-size:18px; font-weight:700; line-height:1.3; }
.chk-modal-topo .cod{ font-size:11.5px; color:var(--chk-ouro); font-weight:700; letter-spacing:.6px; }
.chk-modal-corpo{ padding:20px 22px; overflow-y:auto; flex:1; }
.chk-modal-rodape{
  padding:14px 22px; border-top:1px solid var(--chk-linha); display:flex; gap:9px;
  justify-content:flex-end; flex-shrink:0; background:var(--chk-painel); flex-wrap:wrap;
}
.chk-modal-rodape .esq{ margin-right:auto; display:flex; gap:9px; }
.chk-fechar{
  margin-left:auto; background:transparent; border:none; color:var(--chk-txt2); cursor:pointer;
  width:32px; height:32px; border-radius:8px; display:grid; place-items:center; flex-shrink:0;
}
.chk-fechar:hover{ background:var(--chk-painel2); color:var(--chk-txt); }
.chk-fechar svg{ width:17px; height:17px; }

/* ---------------- Formulários ---------------- */
.chk-campo{ margin-bottom:15px; }
.chk-campo label{
  display:block; font-size:11.5px; font-weight:700; color:var(--chk-txt2);
  margin-bottom:6px; text-transform:uppercase; letter-spacing:.6px;
}
.chk-campo .ajuda{ font-size:11.5px; color:var(--chk-txt3); margin-top:5px; text-transform:none; letter-spacing:0; font-weight:400; }
.chk-campo input[type=text], .chk-campo input[type=date], .chk-campo input[type=time],
.chk-campo input[type=number], .chk-campo input[type=datetime-local],
.chk-campo select, .chk-campo textarea, .chk-inp{
  width:100%; background:var(--chk-fundo); border:1px solid var(--chk-linha); color:var(--chk-txt);
  padding:10px 12px; border-radius:8px; font-size:13.5px; font-family:inherit; outline:none; transition:.15s;
}
.chk-campo input:focus, .chk-campo select:focus, .chk-campo textarea:focus, .chk-inp:focus{
  border-color:var(--chk-ouro); box-shadow:0 0 0 3px var(--chk-ouro-fraco);
}
.chk-campo textarea{ resize:vertical; min-height:74px; line-height:1.55; }
.chk-campo select{ cursor:pointer; }
.chk-linha2{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.chk-linha3{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:14px; }
@media(max-width:720px){ .chk-linha2,.chk-linha3{ grid-template-columns:1fr; } }

.chk-switch{ display:flex; align-items:center; gap:10px; cursor:pointer; user-select:none; padding:5px 0; }
.chk-switch input{ display:none; }
.chk-switch .tr{
  width:40px; height:22px; border-radius:12px; background:var(--chk-linha); position:relative; transition:.18s; flex-shrink:0;
}
.chk-switch .tr::after{
  content:''; position:absolute; top:3px; left:3px; width:16px; height:16px; border-radius:50%;
  background:#8b94a6; transition:.18s;
}
.chk-switch input:checked + .tr{ background:var(--chk-ouro); }
.chk-switch input:checked + .tr::after{ left:21px; background:#1a1408; }
.chk-switch .rot{ font-size:13px; font-weight:600; }
.chk-switch .rot small{ display:block; font-size:11.5px; color:var(--chk-txt2); font-weight:400; margin-top:2px; }

/* ---------------- Assistente de criação ---------------- */
.chk-passos{ display:flex; gap:6px; margin-bottom:20px; }
.chk-passo{
  flex:1; padding:9px 12px; border-radius:8px; background:var(--chk-painel2);
  border:1px solid var(--chk-linha); font-size:12px; font-weight:600; color:var(--chk-txt3);
  display:flex; align-items:center; gap:8px;
}
.chk-passo b{
  width:20px; height:20px; border-radius:50%; background:var(--chk-linha); color:var(--chk-txt2);
  display:grid; place-items:center; font-size:11px; flex-shrink:0;
}
.chk-passo.ativo{ border-color:var(--chk-ouro); color:var(--chk-txt); background:var(--chk-ouro-fraco); }
.chk-passo.ativo b{ background:var(--chk-ouro); color:#1a1408; }
.chk-passo.feito b{ background:var(--chk-ok); color:#0b1c0e; }

.chk-origens{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:12px; }
.chk-origem{
  background:var(--chk-painel2); border:1.5px solid var(--chk-linha); border-radius:12px;
  padding:19px 17px; cursor:pointer; text-align:left; transition:.15s; color:var(--chk-txt); font-family:inherit;
}
.chk-origem:hover{ border-color:var(--chk-ouro); background:var(--chk-ouro-fraco); }
.chk-origem.sel{ border-color:var(--chk-ouro); background:var(--chk-ouro-fraco); }
.chk-origem svg{ width:24px; height:24px; stroke:var(--chk-ouro); margin-bottom:10px; }
.chk-origem .t{ font-size:14px; font-weight:700; }
.chk-origem .d{ font-size:12px; color:var(--chk-txt2); margin-top:5px; line-height:1.5; }

.chk-modelos-lista{ display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:11px; }
.chk-modelo-card{
  background:var(--chk-painel2); border:1.5px solid var(--chk-linha); border-radius:10px;
  padding:14px 15px; cursor:pointer; transition:.15s; text-align:left; color:var(--chk-txt); font-family:inherit;
}
.chk-modelo-card:hover{ border-color:var(--chk-ouro); }
.chk-modelo-card.sel{ border-color:var(--chk-ouro); background:var(--chk-ouro-fraco); }
.chk-modelo-card .t{ font-size:13.5px; font-weight:700; line-height:1.35; }
.chk-modelo-card .d{ font-size:11.5px; color:var(--chk-txt2); margin-top:5px; line-height:1.45;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.chk-modelo-card .m{ display:flex; gap:7px; margin-top:9px; }

/* editor de itens */
.chk-editor-item{
  background:var(--chk-painel2); border:1px solid var(--chk-linha); border-radius:9px;
  padding:11px 12px; margin-bottom:8px; display:flex; gap:10px; align-items:flex-start;
}
.chk-editor-item .arrasta{ color:var(--chk-txt3); cursor:grab; margin-top:8px; }
.chk-editor-item .campos{ flex:1; display:flex; flex-direction:column; gap:7px; min-width:0; }
.chk-editor-item .grade{ display:grid; grid-template-columns:92px 1fr 122px; gap:7px; }
@media(max-width:720px){ .chk-editor-item .grade{ grid-template-columns:1fr; } }
.chk-editor-item input, .chk-editor-item select, .chk-editor-item textarea{
  background:var(--chk-fundo); border:1px solid var(--chk-linha); color:var(--chk-txt);
  padding:7px 9px; border-radius:6px; font-size:12.5px; font-family:inherit; outline:none; width:100%;
}
.chk-editor-item input:focus, .chk-editor-item select:focus, .chk-editor-item textarea:focus{ border-color:var(--chk-ouro); }
.chk-editor-item textarea{ resize:vertical; min-height:34px; line-height:1.45; }
.chk-editor-item .mini{ display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.chk-mini-check{ display:flex; align-items:center; gap:6px; font-size:11.5px; color:var(--chk-txt2); cursor:pointer; }
.chk-mini-check input{ width:auto; accent-color:var(--chk-ouro); cursor:pointer; }

/* ---------------- Detalhe ---------------- */
.chk-det-topo{
  padding:20px 24px; border-bottom:1px solid var(--chk-linha);
  background:linear-gradient(135deg,rgba(230,179,74,.07),transparent 62%); flex-shrink:0;
  padding-right:60px;
}
.chk-det-grid{ display:grid; grid-template-columns:1fr 300px; gap:0; flex:1; overflow:hidden; }
@media(max-width:900px){ .chk-det-grid{ grid-template-columns:1fr; } }
.chk-det-esq{ overflow-y:auto; padding:18px 22px 40px; }
.chk-det-dir{
  border-left:1px solid var(--chk-linha); background:var(--chk-fundo);
  overflow-y:auto; padding:18px; display:flex; flex-direction:column; gap:16px;
}
@media(max-width:900px){ .chk-det-dir{ border-left:none; border-top:1px solid var(--chk-linha); } }
.chk-bloco-tit{
  font-size:11px; font-weight:700; letter-spacing:1.1px; text-transform:uppercase;
  color:var(--chk-txt3); margin-bottom:9px;
}
.chk-dado{ display:flex; justify-content:space-between; gap:10px; font-size:12.5px; padding:5px 0; }
.chk-dado .r{ color:var(--chk-txt2); }
.chk-dado .v{ font-weight:600; text-align:right; }

.chk-fase{
  display:flex; align-items:center; gap:10px; margin:20px 0 10px; font-size:12px;
  font-weight:700; letter-spacing:.9px; text-transform:uppercase; color:var(--chk-ouro);
}
.chk-fase::after{ content:''; flex:1; height:1px; background:var(--chk-linha); }
.chk-fase:first-child{ margin-top:0; }

/* comentários */
.chk-coment{ display:flex; gap:11px; padding:11px 0; border-bottom:1px solid var(--chk-linha); }
.chk-coment:last-child{ border-bottom:none; }
.chk-av{
  width:31px; height:31px; border-radius:50%; background:var(--chk-ouro-fraco); color:var(--chk-ouro);
  display:grid; place-items:center; font-size:11.5px; font-weight:700; flex-shrink:0;
  border:1px solid rgba(230,179,74,.32);
}
.chk-coment .c{ flex:1; min-width:0; }
.chk-coment .h{ display:flex; gap:9px; align-items:baseline; font-size:12.5px; }
.chk-coment .h b{ font-weight:700; }
.chk-coment .h span{ color:var(--chk-txt3); font-size:11px; }
.chk-coment .t{ font-size:13px; color:var(--chk-txt); margin-top:4px; line-height:1.55; white-space:pre-wrap; }
.chk-coment.sistema .t{ color:var(--chk-txt2); font-style:italic; }

/* anexos */
.chk-anexo{
  display:flex; align-items:center; gap:10px; padding:9px 11px; background:var(--chk-painel2);
  border:1px solid var(--chk-linha); border-radius:8px; margin-bottom:7px; font-size:12.5px;
}
.chk-anexo .nome{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.chk-anexo .tam{ color:var(--chk-txt3); font-size:11px; flex-shrink:0; }
.chk-anexo svg{ width:15px; height:15px; flex-shrink:0; color:var(--chk-txt2); }
.chk-anexo a{ color:var(--chk-txt2); display:grid; place-items:center; }
.chk-anexo a:hover{ color:var(--chk-ouro); }

.chk-solta{
  border:1.5px dashed var(--chk-linha); border-radius:9px; padding:17px; text-align:center;
  color:var(--chk-txt2); font-size:12.5px; cursor:pointer; transition:.15s;
}
.chk-solta svg{ width:16px; height:16px; vertical-align:-3px; margin-right:5px; }
.chk-solta small{ color:var(--chk-txt3); }
.chk-solta:hover, .chk-solta.sobre{ border-color:var(--chk-ouro); background:var(--chk-ouro-fraco); color:var(--chk-txt); }

/* ---------------- Notificações ---------------- */
.chk-notif-painel{
  position:absolute; top:56px; right:26px; width:390px; max-height:480px; overflow-y:auto;
  background:var(--chk-painel); border:1px solid var(--chk-linha); border-radius:12px;
  box-shadow:var(--chk-sombra); z-index:1100; display:none;
}
.chk-notif-painel.aberto{ display:block; }
.chk-notif{
  padding:12px 15px; border-bottom:1px solid var(--chk-linha); cursor:pointer; display:flex; gap:11px;
}
.chk-notif:hover{ background:var(--chk-painel2); }
.chk-notif.nova{ background:rgba(230,179,74,.055); }
.chk-notif .pt{ width:7px; height:7px; border-radius:50%; background:var(--chk-ouro); margin-top:6px; flex-shrink:0; }
.chk-notif.lida .pt{ background:transparent; }
.chk-notif .t{ font-size:13px; font-weight:600; }
.chk-notif .x{ font-size:12px; color:var(--chk-txt2); margin-top:3px; line-height:1.45; }
.chk-notif .q{ font-size:11px; color:var(--chk-txt3); margin-top:4px; }

/* toasts */
#chk38-toasts{ position:fixed; bottom:22px; right:22px; z-index:3000; display:flex; flex-direction:column; gap:9px; }
.chk-toast{
  background:var(--chk-painel); border:1px solid var(--chk-linha); border-left:3px solid var(--chk-ouro);
  border-radius:9px; padding:13px 17px; min-width:290px; max-width:400px; box-shadow:var(--chk-sombra);
  animation:chkEntra .26s ease; color:var(--chk-txt); cursor:pointer;
}
@keyframes chkEntra{ from{ transform:translateX(100%); opacity:0 } to{ transform:none; opacity:1 } }
.chk-toast.saindo{ animation:chkSai .24s ease forwards; }
@keyframes chkSai{ to{ transform:translateX(100%); opacity:0 } }
.chk-toast .t{ font-size:13.5px; font-weight:700; }
.chk-toast .x{ font-size:12.5px; color:var(--chk-txt2); margin-top:4px; line-height:1.45; }
.chk-toast.erro{ border-left-color:var(--chk-perigo); }
.chk-toast.ok{ border-left-color:var(--chk-ok); }

/* ---------------- Vazio / carregando ---------------- */
.chk-vazio{ text-align:center; padding:52px 22px; color:var(--chk-txt2); }
.chk-vazio svg{ width:44px; height:44px; stroke:var(--chk-linha); margin-bottom:15px; }
.chk-vazio .t{ font-size:15px; font-weight:600; color:var(--chk-txt); }
.chk-vazio .d{ font-size:13px; margin-top:7px; line-height:1.6; max-width:430px; margin-left:auto; margin-right:auto; }
.chk-vazio .chk-btn{ margin-top:16px; }

.chk-carregando{ text-align:center; padding:44px; color:var(--chk-txt2); font-size:13px; }
.chk-spin{
  width:26px; height:26px; border:2.5px solid var(--chk-linha); border-top-color:var(--chk-ouro);
  border-radius:50%; animation:chkGira .8s linear infinite; margin:0 auto 13px;
}
@keyframes chkGira{ to{ transform:rotate(360deg) } }

/* tabela simples (rotinas / modelos em lista) */
.chk-tab{ width:100%; border-collapse:collapse; font-size:13px; }
.chk-tab th{
  text-align:left; padding:9px 11px; font-size:11px; text-transform:uppercase; letter-spacing:.8px;
  color:var(--chk-txt3); border-bottom:1px solid var(--chk-linha); font-weight:700;
}
.chk-tab td{ padding:11px; border-bottom:1px solid var(--chk-linha); }
.chk-tab tr:hover td{ background:var(--chk-painel2); }

.chk-busca{ position:relative; flex:1; max-width:300px; }
.chk-busca svg{ position:absolute; left:11px; top:50%; transform:translateY(-50%); width:15px; height:15px; color:var(--chk-txt3); }
.chk-busca input{ padding-left:33px !important; }

/* ---------------- Botão flutuante (rede de segurança) ----------------
   Só aparece se a barra lateral do Portal não for reconhecida.
   Garante que o módulo nunca fique inacessível.                        */
#chk38-lancador{
  position:fixed; right:22px; bottom:22px; z-index:880;
  display:flex; align-items:center; gap:9px;
  background:#e6b34a; color:#1a1408; border:none; cursor:pointer;
  padding:13px 20px; border-radius:30px; font-size:13.5px; font-weight:700;
  font-family:inherit; box-shadow:0 8px 26px rgba(0,0,0,.4);
  transition:.15s;
}
#chk38-lancador:hover{ transform:translateY(-2px); box-shadow:0 12px 32px rgba(0,0,0,.5); }
#chk38-lancador svg{ width:18px; height:18px; }
#chk38-lancador .badge{
  background:#e5484d; color:#fff; font-style:normal; font-size:10.5px; font-weight:700;
  min-width:19px; height:19px; border-radius:10px; display:grid; place-items:center; padding:0 5px;
}

/* ============================================================
   FASE 2 — CHECK-LIST "DE UMA MÃO" (mobile-first · DS38)
   Alvos de toque 44px+, modal como folha de baixo, rodapé
   full-width e campos 16px (sem zoom do iOS).
   ============================================================ */
@media(max-width:640px){
  /* botões tocáveis */
  .chk-btn{ min-height:44px; padding:11px 16px; }
  .chk-icone-btn{ width:40px; height:40px; }

  /* campos 16px (evita zoom do iOS) e altura de toque */
  .chk-campo input[type=text], .chk-campo input[type=date], .chk-campo input[type=time],
  .chk-campo input[type=number], .chk-campo input[type=datetime-local],
  .chk-campo select, .chk-campo textarea, .chk-inp{ font-size:16px !important; min-height:44px; }

  /* checkbox de item maior — o gesto principal do Check-List */
  .chk-check{ width:30px; height:30px; }

  /* modal → folha de baixo */
  .chk-modal-fundo{ align-items:flex-end; padding:0; }
  .chk-modal{ max-width:none; max-height:94vh; border-radius:16px 16px 0 0; }
  .chk-modal-corpo{ padding:18px 16px; }
  /* rodapé de ações: empilhado, largo, com área segura */
  .chk-modal-rodape{
    flex-direction:column-reverse; gap:10px;
    padding:14px 16px calc(14px + env(safe-area-inset-bottom,0px));
  }
  .chk-modal-rodape .chk-btn{ width:100%; justify-content:center; min-height:50px; font-size:15px; }
  /* botão flutuante do lançador acima da área segura */
  #chk38-lancador{ bottom:calc(18px + env(safe-area-inset-bottom,0px)) !important; }
}


/* ================= CHK38-PAGINA =================
   O Check-List deixou de ser uma camada por cima do Portal e passou a ser
   uma página dentro de #content: o cabeçalho do Portal (busca, sino, nome e
   foto) fica visível, e a rolagem é a do próprio Portal.
   Este bloco vem por último de propósito — a cascata sobrepõe as regras de
   overlay acima sem precisar editá-las. */
#chk38{
  position: static; inset: auto; z-index: auto;
  background: transparent; overflow: visible;
  display: none; flex-direction: column; min-height: 0;
}
#chk38.aberto{ display: flex; }

.chk-topo{
  padding: 0 0 14px; background: transparent;
  border-bottom: 1px solid var(--chk-linha);
}
.chk-data{ font-size: 12.5px; color: var(--chk-txt2); text-transform: capitalize; }
.chk-topo-dir{ margin-left: auto; }

.chk-abas{ padding: 14px 0; background: transparent; }
.chk-corpo{ flex: none; overflow: visible; padding: 20px 0 40px; }

/* rede de segurança: Portal sem #content (não deve acontecer) — volta a ser camada */
#chk38.solto{
  position: fixed; inset: 0 0 0 var(--chk-nav, 250px);
  background: var(--chk-fundo); z-index: 900; overflow: hidden;
}
#chk38.solto .chk-topo{ padding: 18px 26px 14px; background: var(--chk-painel); }
#chk38.solto .chk-abas{ padding: 12px 26px; background: var(--chk-painel); }
#chk38.solto .chk-corpo{ flex: 1; overflow-y: auto; padding: 22px 26px 60px; }

@media (max-width: 760px){
  .chk-topo{ gap: 10px; }
  .chk-topo-dir{ margin-left: 0; width: 100%; }
  .chk-topo-dir .chk-btn.ouro{ flex: 1; justify-content: center; }
}
/* =============== fim CHK38-PAGINA =============== */
