/* ============================================================
   Sistema Rodo Wall — Módulo Checklist — Listas, KPIs, Gráficos,
   Config, Modal, Faixa "Frota ao vivo"
   (design fiel ao protótipo original)
   ============================================================ */

/* ---------- Faixa FROTA AO VIVO (topo do painel) ---------- */
.cl-live{
  display:flex; align-items:stretch; gap:0;
  background:var(--clcard); border:1px solid var(--clborder);
  border-radius:var(--clradius); margin-bottom:18px;
  overflow-x:auto;
}
.cl-live-tag{
  display:flex; align-items:center; gap:8px;
  padding:14px 18px; flex-shrink:0;
  background:var(--claccent); color:#fff;
  font-family:var(--clfd); font-weight:700; font-size:12px; letter-spacing:1.5px;
  border-radius:var(--clradius) 0 0 var(--clradius);
}
.cl-live-item{
  display:flex; flex-direction:column; justify-content:center;
  padding:10px 18px; flex-shrink:0;
  border-left:1px solid var(--clborder);
}
.cl-live-lbl{
  font-size:9.5px; font-weight:700; letter-spacing:1.2px;
  text-transform:uppercase; color:var(--cltx3);
}
.cl-live-val{
  font-family:var(--clfd); font-weight:700; font-size:17px; color:var(--cltx);
}
.cl-live-val.cl-lv-green{ color:var(--clgreen); }
.cl-live-val.cl-lv-red{ color:var(--clred); }
.cl-live-val.cl-lv-accent{ color:var(--claccent); }

/* ---------- Tabelas ---------- */
.cl-table-wrap{ overflow-x:auto; }
.cl-table{ width:100%; border-collapse:collapse; font-size:13px; }
.cl-table th{
  text-align:left; padding:11px 12px; color:var(--cltx3);
  font-weight:700; font-size:10.5px;
  text-transform:uppercase; letter-spacing:.8px;
  border-bottom:1px solid var(--clborder);
  background:var(--clcard-h);
}
.cl-table td{ padding:12px; border-bottom:1px solid var(--clborder); color:var(--cltx); }
.cl-table tbody tr{ transition:background .15s; }
.cl-table tbody tr:hover{ background:var(--clcard-h); }
.cl-td-acoes{ display:flex; gap:6px; flex-wrap:wrap; }

/* ---------- Filtros ---------- */
.cl-filtros{ display:flex; gap:12px; flex-wrap:wrap; margin-bottom:16px; }
.cl-filtros .cl-input{ flex:1; min-width:150px; }

/* ---------- KPIs (stat-card do protótipo: faixa no topo + hover) ---------- */
.cl-kpis{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:18px; }
.cl-kpi{
  position:relative; overflow:hidden;
  display:flex; align-items:center; gap:16px;
  padding:20px;
  background:var(--clcard); border:1px solid var(--clborder);
  border-radius:var(--clradius);
  transition:all .25s cubic-bezier(.4,0,.2,1);
}
.cl-kpi::before{
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:var(--claccent);
  border-radius:var(--clradius) var(--clradius) 0 0;
}
.cl-kpi:hover{ border-color:var(--clborder-b); transform:translateY(-3px); box-shadow:0 8px 28px rgba(13,27,62,.12); }
.cl-kpi-ic{
  width:48px; height:48px; border-radius:12px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:var(--claccent-dim); color:var(--claccent);
}
.cl-kpi-info{ display:flex; flex-direction:column; }
.cl-kpi-num{ font-family:var(--clfd); font-weight:700; font-size:30px; color:var(--cltx); line-height:1; }
.cl-kpi-lbl{ color:var(--cltx2); font-size:12px; margin-top:4px; }
.cl-kpi-mustard::before{ background:#eab308; }
.cl-kpi-mustard .cl-kpi-ic{ background:rgba(234,179,8,.12); color:#b8860b; }
.cl-kpi-green::before{ background:var(--clgreen); }
.cl-kpi-green .cl-kpi-ic{ background:var(--clgreen-dim); color:var(--clgreen); }
.cl-kpi-alerta::before{ background:var(--clred); }
.cl-kpi-alerta .cl-kpi-ic{ background:var(--clred-dim); color:var(--clred); }
.cl-kpi-alerta .cl-kpi-num{ color:var(--clred); }

/* ---------- Gráficos ---------- */
.cl-graficos{ display:grid; grid-template-columns:1fr 1.4fr; gap:16px; margin-bottom:18px; }
.cl-grafico-card{
  padding:20px;
  background:var(--clcard); border:1px solid var(--clborder);
  border-radius:var(--clradius);
}
.cl-grafico-titulo{
  font-family:var(--clfd); font-weight:700; font-size:14px;
  letter-spacing:.5px; text-transform:uppercase;
  margin-bottom:16px; color:var(--cltx);
}
.cl-grafico-wrap{ position:relative; height:230px; }

/* ---------- Config perguntas ---------- */
.cl-tabs{ display:flex; gap:8px; margin-bottom:16px; flex-wrap:wrap; }
.cl-tab{
  padding:9px 16px; border-radius:9px;
  border:1px solid var(--clborder-b); background:var(--clcard);
  color:var(--cltx2); font-weight:600; font-size:12px; cursor:pointer;
  transition:all .2s;
}
.cl-tab:hover{ border-color:var(--claccent); color:var(--claccent); }
.cl-tab.active{ background:var(--claccent-dim); border-color:var(--claccent); color:var(--claccent); }
.cl-cfg-item{ display:flex; align-items:center; gap:12px; padding:9px 0; border-bottom:1px solid var(--clborder); }
.cl-cfg-inativo{ opacity:.5; }
.cl-cfg-num{ color:var(--cltx3); font-size:12px; width:24px; flex-shrink:0; text-align:center; font-family:'JetBrains Mono',monospace; }
.cl-cfg-txt{ flex:1; }
.cl-cfg-cat{ font-size:11px; color:var(--claccent); background:var(--claccent-dim); padding:3px 10px; border-radius:999px; white-space:nowrap; font-weight:600; }
.cl-cfg-add{ display:flex; gap:12px; margin-top:16px; flex-wrap:wrap; }
.cl-cfg-add .cl-input{ flex:1; min-width:180px; }

/* ---------- Modal de detalhes ---------- */
.cl-modal-overlay{
  position:fixed; inset:0; z-index:9000;
  background:rgba(3,6,15,.86); backdrop-filter:blur(2px);
  display:flex; align-items:center; justify-content:center; padding:16px;
  animation:clFade .16s ease;
}
@keyframes clFade{ from{opacity:0} to{opacity:1} }
.cl-modal{
  background:var(--clcard);
  border:1px solid var(--clborder-b); border-radius:16px;
  width:100%; max-width:660px; max-height:88vh; overflow-y:auto; padding:22px;
  box-shadow:0 30px 80px rgba(0,0,0,.6);
}
.cl-modal-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.cl-modal-titulo{ font-family:var(--clfd); font-weight:700; font-size:19px; letter-spacing:.3px; }
.cl-modal-sub{ color:var(--cltx2); font-size:12px; margin-top:2px; }
.cl-modal-x{ background:none; border:none; color:var(--cltx2); font-size:24px; cursor:pointer; line-height:1; }
.cl-modal-x:hover{ color:var(--clred); }
.cl-modal-meta{ display:flex; flex-wrap:wrap; gap:12px; margin:16px 0; font-size:12px; color:var(--cltx2); }
.cl-modal-meta strong{ color:var(--cltx); }
.cl-modal-acoes{ display:flex; gap:12px; margin-bottom:16px; flex-wrap:wrap; }
.cl-det-q{ padding:9px 0; border-bottom:1px solid var(--clborder); }
.cl-det-q-nao{ background:var(--clred-dim); border-radius:9px; padding:9px; border-bottom:none; }
.cl-det-q-txt{ font-size:13px; color:var(--cltx); }
.cl-det-q-resp{ font-size:12px; font-weight:700; color:var(--clgreen); margin-top:2px; }
.cl-det-q-nao .cl-det-q-resp{ color:var(--clred); }
.cl-det-q-obs{ font-size:12px; color:var(--cltx2); margin-top:4px; font-style:italic; }

/* ---------- Bloco de conferência no modal ---------- */
.cl-det-conf{
  margin:12px 0 16px; padding:16px;
  border-radius:10px;
  background:var(--clgreen-dim);
  border:1px solid var(--clgreen);
}
.cl-det-conf-titulo{ display:flex; align-items:center; gap:7px; font-family:var(--clfd); font-weight:700; font-size:14px; letter-spacing:.3px; margin-bottom:12px; }
.cl-det-conf-linha{ font-size:12px; color:var(--cltx2); margin-bottom:5px; }
.cl-det-conf-linha strong{ color:var(--cltx); }

/* ---------- Conferência ---------- */
.cl-conf-status{ display:flex; gap:12px; }
.cl-conf-st{ flex:1; }
.cl-conf-st-on-ok{ background:var(--clgreen-dim); border-color:var(--clgreen); color:var(--clgreen); }
.cl-conf-st-on-nok{ background:var(--clred-dim); border-color:var(--clred); color:var(--clred); }

/* ---------- Categorias do mensal ---------- */
.cl-mcat{ margin-bottom:16px; }
.cl-mcat-titulo{
  display:flex; align-items:center; gap:8px;
  font-family:var(--clfd); font-weight:700; font-size:13px;
  text-transform:uppercase; letter-spacing:1px;
  color:var(--claccent); margin:12px 0 8px;
  padding-bottom:5px; border-bottom:1px solid var(--clborder);
}

/* ---------- Relatório (drill-down) ---------- */
.cl-rel-detalhe{ padding:6px 0 10px; }
.cl-rel-item{
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
  padding:8px 12px; margin-bottom:6px; border-radius:9px;
  background:var(--clcard-h); border:1px solid var(--clborder);
  font-size:12px; color:var(--cltx2);
}
.cl-rel-item .cl-td-acoes{ margin-left:auto; }

@media (max-width:860px){
  .cl-kpis{ grid-template-columns:1fr 1fr; }
  .cl-graficos{ grid-template-columns:1fr; }
}

/* ---------- Padrão dos modais de M.C./Concessionária (protótipo) ---------- */
.cl-resp-banner{
  display:flex; align-items:center; gap:12px;
  background:var(--claccent-dim); border:1px solid var(--claccent);
  border-radius:10px; padding:12px 16px; margin:14px 0 16px;
}
.cl-resp-banner .cl-ic{ color:var(--claccent); }
.cl-resp-banner-lbl{ font-size:10px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; color:var(--claccent); }
.cl-resp-banner-nome{ font-weight:700; color:var(--cltx); font-size:14px; }
.cl-sec-box{
  background:var(--clcard-h); border:1px solid var(--clborder);
  border-radius:10px; padding:14px; margin-bottom:14px;
}
.cl-sec-lbl{
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  font-size:10px; font-weight:700; letter-spacing:1.2px;
  text-transform:uppercase; color:var(--cltx3); margin-bottom:10px;
}
.cl-lbl-verde{ font-size:10px; font-weight:700; letter-spacing:.8px; text-transform:uppercase; color:var(--clgreen); }
.cl-lbl-vermelho{ font-size:10px; font-weight:700; letter-spacing:.8px; text-transform:uppercase; color:var(--clred); }
.cl-notas-vazio{ text-align:center; color:var(--cltx3); font-size:12.5px; padding:8px 0; }
.cl-textarea{
  width:100%; min-height:88px; resize:vertical;
  padding:11px 13px; border-radius:9px;
  border:1px solid var(--clborder-b); background:var(--clcard-h);
  color:var(--cltx); font-family:var(--clfb); font-size:14px;
}
.cl-textarea:focus{ outline:none; border-color:var(--claccent); box-shadow:0 0 0 3px var(--claccent-glow); }

/* ---------- Histórico mensal: linha em amarelo quando há pendências ---------- */
.cl-table tbody tr.cl-row-pend{
  background:var(--clorange-dim);
  box-shadow:inset 3px 0 0 var(--clorange);
}
.cl-table tbody tr.cl-row-pend:hover{
  background:color-mix(in srgb, var(--clorange) 18%, transparent);
}
