/* Finanças Pessoais — forms.css
   Contas, dívidas, metas, relatório, tabela, planejamento, calendário, modal, overlay, config, empty */

.p-btn{padding:5px 11px;border:1.5px solid var(--g2);border-radius:6px;font-size:12px;font-weight:700;background:var(--surf);color:var(--g4);cursor:pointer;transition:.15s}
.p-btn:hover{background:var(--g1)}.p-btn.active{background:var(--teal);border-color:var(--teal);color:#fff}
.p-info{font-size:12px;color:var(--g3)}

/* CONTAS */
.cont-row{display:flex;align-items:center;gap:10px;padding:10px 2px;border-bottom:1px solid var(--g1);transition:.1s}
.cont-row:last-child{border-bottom:none}
.cont-row:hover{background:var(--surf2);border-radius:var(--rs)}
.cont-icon{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.cont-info{flex:1;min-width:0}.cont-name{font-size:13px;font-weight:700}.cont-meta{font-size:11px;color:var(--g3);margin-top:1px}
.cont-right{text-align:right;flex-shrink:0}.cont-val{font-size:14px;font-weight:800;color:var(--red)}
.cont-btns{display:flex;gap:4px;flex-shrink:0;opacity:0;transition:.15s}
.cont-row:hover .cont-btns{opacity:1}

/* DÍVIDAS */
.div-card{padding:14px 0;border-bottom:1px solid var(--g2)}.div-card:last-child{border:none}

/* METAS */
.meta-card{background:var(--surf);border-radius:var(--r);padding:16px 18px;box-shadow:var(--sh)}
.meta-hint{background:var(--teal-l);border-radius:6px;padding:7px 10px;font-size:11px;color:var(--teal-d);font-weight:600;margin-top:10px;line-height:1.5}
.meta-hint.bad{background:var(--red-l);color:var(--red-d)}

/* RELATÓRIO */
.rel-stat{background:var(--surf);border-radius:var(--r);padding:13px 15px;box-shadow:var(--sh);text-align:center}
.rel-stat-lbl{font-size:10px;font-weight:700;color:var(--g3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px}
.rel-stat-val{font-size:16px;font-weight:800}
table{width:100%;border-collapse:collapse;font-size:13px}
th{padding:7px 10px;text-align:left;font-size:10px;font-weight:800;color:var(--g3);text-transform:uppercase;letter-spacing:.5px;border-bottom:1.5px solid var(--g2);white-space:nowrap}
td{padding:9px 10px;border-bottom:1px solid var(--g1);vertical-align:middle}
tr:last-child td{border:none}
tr:hover td{background:var(--surf2)}
.tr{text-align:right;font-variant-numeric:tabular-nums}.tc{text-align:center}

/* PLANEJAMENTO */
.plan-hero{background:var(--navy);border-radius:var(--r);padding:20px 22px;margin-bottom:12px;color:#fff}
.plan-hero h3{font-size:15px;font-weight:800;margin-bottom:4px}
.plan-val{font-size:28px;font-weight:800;letter-spacing:-.8px;margin:6px 0}
.plan-hero p{font-size:12px;color:rgba(255,255,255,.5)}
.plan-row{display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--g1);font-size:13px}
.plan-row:last-child{border:none}
.plan-label{color:var(--g4);font-weight:600}.plan-value{font-weight:800;font-variant-numeric:tabular-nums}

/* CALENDÁRIO */
.cal-day{min-height:65px;background:var(--surf);border-radius:var(--rs);padding:5px;border:1.5px solid transparent;cursor:pointer;transition:.1s}
.cal-day:hover{border-color:var(--teal);background:var(--surf2)}
.cal-day.today{border-color:var(--teal);background:var(--teal-l)}
.cal-day-num{font-size:11px;font-weight:800;color:var(--g4);margin-bottom:3px}
.cal-day.today .cal-day-num{color:var(--teal)}
.cal-dots{display:flex;flex-wrap:wrap;gap:2px}
.cal-dot{width:6px;height:6px;border-radius:50%}
.cal-dot-label{font-size:9px;font-weight:700;color:var(--g4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;display:block;margin-top:1px}
.cal-head{font-size:10px;font-weight:800;color:var(--g3);text-transform:uppercase;text-align:center;padding:5px 0}

/* MODAL */
.overlay{display:none;position:fixed;inset:0;background:rgba(15,39,68,.48);z-index:2000;align-items:center;justify-content:center;padding:16px}
.overlay.open{display:flex}
.modal{background:var(--surf);border-radius:var(--r);padding:clamp(16px,2vw,22px) clamp(18px,2.2vw,24px);width:580px;max-width:min(580px,95vw);max-height:90vh;overflow-y:auto;box-shadow:var(--shm)}
.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.modal-head h3{font-size:16px;font-weight:800;display:flex;align-items:center;gap:8px}
.modal-badge{font-size:11px;background:var(--teal-l);color:var(--teal-d);padding:2px 8px;border-radius:20px;font-weight:700}
.modal-x{background:none;border:none;font-size:20px;color:var(--g3);cursor:pointer;padding:2px 6px;border-radius:4px;line-height:1min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}
.modal-x:hover{background:var(--g1);color:var(--g5)}
.fg{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}
.fg label{font-size:10px;font-weight:800;color:var(--g4);text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;gap:4px}
.req{color:var(--red);font-size:12px}
.finp{padding:8px 10px;border:1.5px solid var(--g2);border-radius:var(--rs);font-size:13px;font-weight:500;color:var(--g5);background:var(--surf);outline:none;transition:.15s;width:100%}
.finp:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(22,168,120,.1)}
.finp.err{border-color:var(--red);box-shadow:0 0 0 3px rgba(229,72,77,.1)}
.ferr{font-size:11px;color:var(--red);margin-top:2px;display:none}
.ferr.show{display:block}
.fhint{font-size:11px;color:var(--g3);margin-top:2px}
.char-count{font-size:10px;color:var(--g3);text-align:right;margin-top:2px}
.frow{display:grid;gap:9px}
.modal-foot{display:flex;gap:8px;justify-content:flex-end;margin-top:14px;padding-top:12px;border-top:1px solid var(--g2)}

/* CONFIG */
.cfg-sec{background:var(--surf);border-radius:var(--r);padding:16px 18px;box-shadow:var(--sh);margin-bottom:12px}
.cfg-sec-title{font-size:11px;font-weight:800;color:var(--g3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:13px;padding-bottom:9px;border-bottom:1px solid var(--g2)}
.cfg-row{display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--g1);gap:12px}
.cfg-row:last-child{border:none}
.cfg-row-lbl{font-size:13px;font-weight:600}.cfg-row-desc{font-size:11px;color:var(--g3);margin-top:1px}
.cfg-ctrl .finp{min-width:130px;width:auto}
.danger-zone{border:1.5px solid var(--red-l);border-radius:var(--r);padding:16px 18px;margin-top:4px}
.dz-title{font-size:13px;font-weight:800;color:var(--red);margin-bottom:7px}
.dz-desc{font-size:12px;color:var(--g4);margin-bottom:12px;line-height:1.5}

/* EMPTY */
.empty{text-align:center;padding:36px 20px;color:var(--g3)}
.empty-ico{font-size:36px;margin-bottom:10px}
.empty h3{font-size:15px;font-weight:700;color:var(--g4);margin-bottom:6px}
.empty p{font-size:13px;line-height:1.6;max-width:280px;margin:0 auto 16px}

/* ── Form row grids */
.frow2{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.frow3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px}

/* ── Render helpers (extraídos de estilos inline nos render/*.js) */
.item-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--g1)}
.item-row:last-child{border-bottom:none}
.item-name{font-size:12px;font-weight:700}
.item-sub{font-size:10px;color:var(--g3)}
.item-val{font-size:13px;font-weight:800}

/* ── Dívidas */
.div-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}
.div-name{font-weight:800;font-size:15px}
.div-creditor{font-size:12px;color:var(--g3);margin-top:2px}
.div-restante{font-size:18px;font-weight:800;color:var(--red)}
.div-restante-lbl{font-size:10px;color:var(--g3)}
.div-prog-row{display:flex;align-items:center;gap:8px;margin-bottom:7px}
.div-prog-track{flex:1;height:9px;background:var(--g1);border-radius:5px;overflow:hidden}
.div-meta-row{display:flex;gap:12px;font-size:12px;color:var(--g3);flex-wrap:wrap;align-items:center}
.div-btns{margin-left:auto;display:flex;gap:5px}

/* ── Metas */
.meta-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}
.meta-ico-wrap{display:flex;align-items:center;gap:9px}
.meta-name{font-weight:800;font-size:15px}
.meta-prazo{font-size:11px;color:var(--g3);margin-top:1px}
.meta-badges{display:flex;gap:5px}
.meta-stats{display:flex;justify-content:space-between;text-align:center;margin-bottom:10px}
.meta-stat-lbl{font-size:9px;font-weight:800;color:var(--g3);text-transform:uppercase}
.meta-prog-track{height:10px;background:var(--g1);border-radius:5px;overflow:hidden;margin-bottom:8px}
.meta-footer{display:flex;justify-content:space-between;align-items:center}
.meta-btns{display:flex;gap:5px}

/* ── Config custom cats */
.cat-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--g1)}
.cat-row:last-child{border-bottom:none}
.cat-name{flex:1;font-size:13px;font-weight:600}
.cat-del{background:none;border:none;cursor:pointer;color:var(--red);font-size:12px;padding:3px 8px;border-radius:4px}
.cat-empty{font-size:12px;color:var(--g3);padding:8px 0;text-align:center}

/* ── Budget modal rows */
.budget-modal-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--g1)}
.budget-modal-row:last-child{border-bottom:none}
.budget-modal-cat{font-size:13px;font-weight:600}
.budget-modal-input{padding:6px 10px;border:1.5px solid var(--g2);border-radius:6px;font-size:13px;width:140px;background:var(--surf);color:var(--g5)}

/* ── Relatorio */
.rel-proj-grid{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.rel-proj-item{flex:1;min-width:110px}

/* ── Planejamento separator */
.plan-separator{border-top:1px solid var(--g2);margin:4px 0}

/* ── Parc preview */
.parc-preview-text{color:var(--amber);font-size:12px}

/* ── Cal detail */
.cal-detail-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--g1);font-size:13px}
.cal-detail-row:last-child{border-bottom:none}

/* ── Table scroll wrapper */
.table-scroll{overflow-x:auto}

/* ── Lançamento rápido ────────────────────────────────────────────────────── */
.modal-quick{
  width: 420px;
  max-width: 100%;
  padding: 16px 18px 20px;
}

/* Cabeçalho compacto */
.qk-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}
.qk-title{
  font-size: 14px;
  font-weight: 500;
  color: var(--g4);
}

/* Campo de valor — enorme, principal */
.qk-val-wrap{
  display: flex;
  align-items: baseline;
  gap: 6px;
  padding: 12px 0 8px;
  border-bottom: 2px solid var(--g1);
  margin-bottom: 16px;
  transition: border-color .15s;
}
.qk-val-wrap:focus-within{
  border-color: var(--teal);
}
.qk-currency{
  font-size: 28px;
  font-weight: 700;
  color: var(--g3);
  flex-shrink: 0;
  line-height: 1;
}
.qk-val-input{
  flex: 1;
  background: none;
  border: none;
  outline: none;
  font-size: 52px;
  font-weight: 700;
  color: var(--g5);
  width: 100%;
  min-width: 0;
  line-height: 1;
  padding: 0;
  caret-color: var(--teal);
}
.qk-val-input::placeholder{
  color: var(--g2);
}
.qk-err{
  display: block;
  margin-top: -12px;
  margin-bottom: 8px;
}

/* Chips de categoria */
.qk-cats{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 14px;
}
.qk-cat-chip{
  padding: 5px 12px;
  border-radius: 20px;
  border: 1.5px solid var(--g2);
  background: var(--surf);
  color: var(--g4);
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: .15s;
  white-space: nowrap;
}
.qk-cat-chip:hover{
  border-color: var(--g3);
  color: var(--g5);
}
.qk-cat-chip.active{
  background: var(--teal-l);
  border-color: var(--teal);
  color: var(--teal-d);
  font-weight: 700;
}

/* Linha inferior: descrição + forma */
.qk-bottom{
  display: flex;
  gap: 8px;
  align-items: center;
  margin-bottom: 14px;
}
.qk-desc-inp{
  flex: 1;
  height: 38px;
  padding: 0 12px;
  border-radius: var(--rs);
  border: 1px solid var(--g2);
  background: var(--g1);
  color: var(--g5);
  font-size: 13px;
  outline: none;
  transition: border-color .15s;
  min-width: 0;
}
.qk-desc-inp:focus{
  border-color: var(--teal);
  background: var(--surf);
}
.qk-desc-inp::placeholder{ color: var(--g3); }
.qk-forma-row{
  display: flex;
  gap: 4px;
  flex-shrink: 0;
}
.qk-forma-row .qf-btn{
  width: 34px;
  height: 34px;
  border-radius: var(--rs);
  border: 1.5px solid var(--g2);
  background: var(--surf);
  font-size: 16px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: .15s;
  padding: 0;
}
.qk-forma-row .qf-btn:hover{ border-color: var(--g3); }
.qk-forma-row .qf-btn.active{
  border-color: var(--teal);
  background: var(--teal-l);
}

/* Rodapé */
.qk-footer{
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
}
.qk-save-btn{
  min-width: 100px;
}

/* ── Configurações: bloco de segurança dos dados ────────────────────────── */
.data-safety-msg{
  display:flex;
  gap:14px;
  align-items:flex-start;
  background:var(--teal-l);
  border-radius:var(--rs);
  padding:14px 16px;
  margin-bottom:12px;
  border-left:3px solid var(--teal);
}
.data-safety-icon{font-size:22px;flex-shrink:0;margin-top:1px}
.data-safety-text{font-size:13px;line-height:1.7;color:var(--g5)}
.data-safety-text strong{color:var(--teal-d)}
.cfg-backup-row{margin-top:4px}

/* ── Aviso de dados locais (config) ─────────────────────────────────────── */
.data-notice{
  display: flex;
  gap: 12px;
  align-items: flex-start;
  background: var(--blue-l);
  border-left: 3px solid var(--blue);
  border-radius: var(--rs);
  padding: 12px 14px;
  margin-bottom: 12px;
  line-height: 1.6;
}
.data-notice-icon{
  font-size: 18px;
  flex-shrink: 0;
  margin-top: 1px;
}
.data-notice-body{
  font-size: 12px;
  color: var(--g5);
}
.data-notice-body strong{
  color: var(--g5);
  font-weight: 700;
}
