:root {
  --bg: #f4f6f9;
  --surface: #ffffff;
  --border: #e3e7ed;
  --border-strong: #cfd6df;
  --text: #1a2230;
  --muted: #6b7686;
  --primary: #0f766e;
  --primary-hover: #0b5e58;
  --primary-soft: #e6f4f2;

  --troca: #c2410c;          /* troca no mesmo dia */
  --troca-soft: #fff1e7;
  --sem: #b45309;            /* sem equipe */
  --sem-soft: #fef6e4;
  --liberada: #1d4ed8;       /* liberada */
  --liberada-soft: #e9f0ff;
  --green: #15803d;
  --green-soft: #e7f6ec;
  --red: #b91c1c;
  --red-soft: #fdecec;
  --whats: #128c4b;

  --radius: 12px;
  --shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 1px 3px rgba(16, 24, 40, .06);
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font: 14px/1.5 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  -webkit-font-smoothing: antialiased;
}

h1 { font-size: 22px; margin: 0 0 2px; font-weight: 700; letter-spacing: -.01em; }
h2 { font-size: 15px; margin: 0; font-weight: 600; }
.muted { color: var(--muted); margin: 0; }
.small { font-size: 12px; }
.nowrap { white-space: nowrap; }
.txt-red { color: var(--red); }
.hint { color: var(--muted); font-size: 12px; margin: 8px 0 0; }
[hidden] { display: none !important; }

/* ---------- Faixa de versão de testes ---------- */
.test-banner {
  background: #fff8e6;
  border-bottom: 1px solid #f3dfa8;
  color: #7a5200;
  font-size: 12.5px;
  text-align: center;
  padding: 6px 16px;
}
.link-inline {
  border: 0; background: none; padding: 0; margin-left: 6px;
  font: inherit; font-weight: 600; color: inherit; text-decoration: underline; cursor: pointer;
}

/* ---------- Topo ---------- */
.topbar {
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  position: sticky; top: 0; z-index: 10;
}
.topbar-inner {
  max-width: 1240px; margin: 0 auto; padding: 10px 24px;
  display: flex; align-items: center; gap: 32px; flex-wrap: wrap;
}
.brand { display: flex; align-items: center; gap: 10px; }
.brand-logo {
  width: 36px; height: 36px; border-radius: 10px;
  background: var(--primary); color: #fff;
  display: grid; place-items: center; font-weight: 700; font-size: 14px;
}
.brand-name { font-weight: 700; }
.brand-sub { color: var(--muted); font-size: 12px; margin-top: -2px; }
.tabs { display: flex; gap: 4px; flex-wrap: wrap; }
.tab {
  border: 0; background: none; cursor: pointer;
  font: inherit; font-weight: 500; color: var(--muted);
  padding: 8px 14px; border-radius: 8px;
}
.tab:hover { background: var(--bg); color: var(--text); }
.tab.active { background: var(--primary-soft); color: var(--primary); }

/* ---------- Layout ---------- */
.container { max-width: 1240px; margin: 0 auto; padding: 24px 24px 60px; }
.page-head {
  display: flex; justify-content: space-between; align-items: flex-end;
  gap: 16px; margin-bottom: 18px; flex-wrap: wrap;
}
.card {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius); box-shadow: var(--shadow);
  padding: 18px 20px; margin-bottom: 18px;
}
.card-head {
  display: flex; justify-content: space-between; align-items: center;
  gap: 12px; margin-bottom: 12px;
}
.two-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 18px; }
.two-cols .card { margin-bottom: 0; }
.two-cols > * { min-width: 0; } /* tabelas largas rolam dentro do cartão, não a página */

/* ---------- Botões ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  border: 1px solid var(--border); background: var(--surface); color: var(--text);
  font: inherit; font-weight: 500; text-decoration: none;
  padding: 8px 14px; border-radius: 8px; cursor: pointer;
  transition: background .15s, border-color .15s; white-space: nowrap;
}
.btn:hover { background: var(--bg); }
.btn:disabled { opacity: .45; cursor: not-allowed; }
.btn-primary { background: var(--primary); border-color: var(--primary); color: #fff; }
.btn-primary:hover { background: var(--primary-hover); }
.btn-danger-ghost { color: var(--red); }
.btn-danger-ghost:hover { background: var(--red-soft); border-color: #f5c2c2; }
.btn-sm { padding: 5px 10px; font-size: 13px; }
.btn-liberar { border-color: var(--liberada); color: var(--liberada); font-weight: 600; }
.btn-liberar:hover { background: var(--liberada-soft); }
.btn-whats { border-color: var(--whats); color: var(--whats); font-weight: 600; }
.btn-whats:hover { background: #e8f7ee; }
.btn-concluir { background: var(--green); border-color: var(--green); color: #fff; font-weight: 600; }
.btn-concluir:hover { background: #116632; }
.btn-link {
  border: 0; background: none; color: var(--primary); cursor: pointer;
  font: inherit; font-weight: 500; padding: 4px 6px; border-radius: 6px;
}
.btn-link:hover { background: var(--primary-soft); }
.btn-row { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
.icon-btn {
  border: 0; background: none; cursor: pointer; color: var(--muted);
  font-size: 15px; width: 32px; height: 32px; border-radius: 8px;
}
.icon-btn:hover { background: var(--bg); color: var(--text); }

/* ---------- Formulários ---------- */
label {
  display: flex; flex-direction: column; gap: 5px;
  font-size: 12px; font-weight: 600; color: var(--muted);
}
label.check { flex-direction: row; align-items: center; gap: 8px; font-size: 14px; color: var(--text); font-weight: 500; }
label.check input { width: auto; }
input, select, textarea {
  font: inherit; color: var(--text);
  border: 1px solid var(--border); border-radius: 8px;
  padding: 8px 10px; background: var(--surface); width: 100%;
}
input:focus, select:focus, textarea:focus {
  outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-soft);
}
input[type=checkbox] { width: 16px; height: 16px; accent-color: var(--primary); cursor: pointer; }
textarea { resize: vertical; }
select:disabled, input:disabled { background: var(--bg); color: var(--muted); }

.filters { padding: 14px 20px 18px; }
.filters-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
.chips { display: flex; gap: 6px; flex-wrap: wrap; }
.chip {
  border: 1px solid var(--border); background: var(--surface); color: var(--muted);
  font: inherit; font-size: 13px; font-weight: 500;
  padding: 5px 12px; border-radius: 999px; cursor: pointer;
}
.chip:hover { color: var(--text); }
.chip.active { background: var(--text); border-color: var(--text); color: #fff; }
.filter-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.filter-grid.compact { max-width: 640px; margin-bottom: 12px; }

/* ---------- Indicadores da agenda ---------- */
.indicadores { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; margin-bottom: 14px; }
.ind {
  display: flex; flex-direction: column; align-items: flex-start;
  border: 1px solid var(--border); background: var(--surface); border-radius: var(--radius);
  padding: 10px 14px; cursor: pointer; font: inherit; text-align: left;
  box-shadow: var(--shadow); transition: border-color .15s, background .15s;
}
.ind:hover { border-color: var(--border-strong); }
.ind-n { font-size: 22px; font-weight: 700; line-height: 1.2; font-variant-numeric: tabular-nums; }
.ind-l { font-size: 12px; color: var(--muted); font-weight: 500; }
.ind.troca .ind-n { color: var(--troca); }
.ind.sem .ind-n { color: var(--sem); }
.ind.liberada .ind-n { color: var(--liberada); }
.ind.concluida .ind-n { color: var(--green); }
.ind.apagar .ind-n { color: var(--red); }
.ind.zero .ind-n { color: var(--border-strong); }
.ind.ativo { border-color: var(--text); box-shadow: 0 0 0 1px var(--text); }
.ind.troca:not(.zero) { background: linear-gradient(0deg, var(--troca-soft), var(--troca-soft)); border-color: #f8cfb0; }
.ind.sem:not(.zero) { background: var(--sem-soft); border-color: #f3dca6; }
.ind.troca.ativo { border-color: var(--troca); box-shadow: 0 0 0 1px var(--troca); }
.ind.sem.ativo { border-color: var(--sem); box-shadow: 0 0 0 1px var(--sem); }

/* ---------- Agenda: dias ---------- */
.day-group { margin-bottom: 26px; }
.day-head { margin: 0 2px 10px; }
.day-title-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.day-title { font-weight: 700; font-size: 16px; }
.day-title::first-letter { text-transform: uppercase; }
.day-count { color: var(--muted); font-size: 13px; }
.tag-today { background: var(--primary); color: #fff; font-size: 11px; font-weight: 600; padding: 1px 8px; border-radius: 999px; }
.day-flag { font-size: 12px; font-weight: 600; padding: 2px 9px; border-radius: 999px; }
.day-flag.troca { background: var(--troca-soft); color: var(--troca); }
.day-flag.sem { background: var(--sem-soft); color: var(--sem); }
.loads { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.load {
  font-size: 12px; color: var(--muted); background: var(--surface);
  border: 1px solid var(--border); border-radius: 6px; padding: 2px 8px;
}
.load b { color: var(--text); margin-left: 2px; }

/* ---------- Agenda: linha da faxina ---------- */
.job {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr) 170px 132px 206px 104px 32px;
  align-items: center; gap: 12px;
  background: var(--surface); border: 1px solid var(--border);
  border-left: 4px solid var(--border-strong);
  border-radius: 10px; padding: 10px 12px 10px 10px; margin-bottom: 6px;
  box-shadow: var(--shadow);
}
.job:hover { border-color: var(--border-strong); }
.job.sit-a_distribuir { border-left-color: #f59e0b; }
.job.sit-agendada { border-left-color: #94a3b8; }
.job.sit-liberada { border-left-color: var(--liberada); background: #fbfcff; }
.job.sit-concluida { border-left-color: #22c55e; }
.job.sit-concluida .job-code { background: #eef2f6; color: #4b5563; }
.job.sit-cancelada { opacity: .55; }
.job.is-troca:not(.sit-concluida) {
  border-color: #f6c9a8; border-left-color: var(--troca);
  background: linear-gradient(90deg, var(--troca-soft), #fff 40%);
}

.job-code {
  border: 0; cursor: pointer; font-family: inherit;
  background: var(--text); color: #fff;
  font-size: 22px; font-weight: 800; letter-spacing: -.02em; font-variant-numeric: tabular-nums;
  height: 52px; border-radius: 8px; display: grid; place-items: center;
}
.job.is-troca:not(.sit-concluida) .job-code { background: var(--troca); }
.job-code:hover { filter: brightness(1.15); }

.job-main { min-width: 0; }
.job-times { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.saida { font-size: 13px; color: var(--muted); }
.saida b { color: var(--text); font-size: 14px; }
.troca-tag {
  background: var(--troca); color: #fff; font-size: 11.5px; font-weight: 700; letter-spacing: .02em;
  padding: 2px 8px; border-radius: 6px; white-space: nowrap;
}
.troca-tag.sm { font-size: 10.5px; padding: 1px 6px; }
.prox { font-size: 13px; color: var(--muted); }
.job-details { font-size: 12.5px; color: var(--muted); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.job-obs {
  font-size: 12.5px; color: #7a5200; margin-top: 2px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.job-obs::before { content: '✎ '; opacity: .7; }

.sel-equipe, .sel-status {
  font-size: 13px; font-weight: 600; padding: 6px 8px; cursor: pointer;
}
.sel-equipe.vazio { background: var(--sem-soft); border-color: #f3c97a; color: var(--sem); }
.sel-status { border-radius: 999px; text-align: center; }
.sel-status.s-a_distribuir { background: var(--sem-soft); color: var(--sem); border-color: #f3dca6; }
.sel-status.s-agendada { background: #f1f4f8; color: #475569; }
.sel-status.s-liberada { background: var(--liberada-soft); color: var(--liberada); border-color: #c7d7fe; }
.sel-status.s-concluida { background: var(--green-soft); color: var(--green); border-color: #bfe5cb; }
.sel-status:disabled { opacity: 1; cursor: default; }

.job-action { display: flex; gap: 6px; justify-content: flex-start; }
.job-money { text-align: right; }
.job-money .valor { font-weight: 600; font-variant-numeric: tabular-nums; }
.pag { font-size: 11.5px; font-weight: 600; }
.pag-a_pagar { color: var(--red); }
.pag-pago { color: var(--green); }

/* ---------- Selos ---------- */
.badge {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12px; font-weight: 600; padding: 2px 10px; border-radius: 999px; white-space: nowrap;
}
.b-ativo { background: var(--green-soft); color: var(--green); }
.b-inativo, .b-cancelado { background: #eef0f3; color: var(--muted); }

.code-sm {
  display: inline-block; min-width: 40px; text-align: center;
  background: var(--text); color: #fff; font-weight: 700; font-variant-numeric: tabular-nums;
  padding: 2px 8px; border-radius: 6px;
}
.code-xs {
  display: inline-block; background: #eef1f5; color: var(--text);
  font-size: 12px; font-weight: 600; padding: 0 6px; border-radius: 4px; margin: 1px 3px 1px 0;
}

.empty {
  text-align: center; color: var(--muted); padding: 44px 20px;
  background: var(--surface); border: 1px dashed var(--border-strong); border-radius: var(--radius);
}
.empty strong { display: block; color: var(--text); margin-bottom: 4px; }
.empty.slim { padding: 24px 16px; border-style: dashed; background: #fbfcfd; }

.avatar {
  flex: none; width: 28px; height: 28px; border-radius: 50%;
  display: grid; place-items: center; font-size: 11px; font-weight: 700;
  background: var(--primary-soft); color: var(--primary);
}
.avatar.warn { background: var(--sem-soft); color: var(--sem); }
.team-cell { display: flex; align-items: center; gap: 8px; }

/* ---------- Tabelas ---------- */
.table-wrap { overflow-x: auto; }
.table { width: 100%; border-collapse: collapse; }
.table th {
  text-align: left; font-size: 11.5px; font-weight: 600; color: var(--muted);
  text-transform: uppercase; letter-spacing: .03em;
  padding: 8px 10px; border-bottom: 1px solid var(--border); white-space: nowrap;
}
.table td { padding: 9px 10px; border-bottom: 1px solid var(--border); vertical-align: middle; }
.table tbody tr:last-child td { border-bottom: 0; }
.table .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.table .right { text-align: right; white-space: nowrap; }
.table tfoot td, .table tfoot th { font-weight: 700; border-top: 2px solid var(--border); padding: 9px 10px; }
.table-empty { text-align: center; color: var(--muted); padding: 26px !important; }
.table tr.inativo td { color: var(--muted); }
.table tr.clickable { cursor: pointer; }
.table tr.clickable:hover td { background: #f8fafc; }
.table tr.cancelado td { color: var(--muted); text-decoration: line-through; }
.table tr.cancelado td:last-child { text-decoration: none; }
.ellipsis { max-width: 180px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ---------- Distribuição ---------- */
.week-nav { display: flex; gap: 6px; }
.grade th, .grade td, .grade .num { text-align: center; }
.grade th:first-child, .grade .row-head { text-align: left; }
.grade .row-head { font-size: 14px; text-transform: none; letter-spacing: 0; color: var(--text); font-weight: 500; }
.grade .day-col { text-transform: none; letter-spacing: 0; font-size: 12px; }
.grade .dow { text-transform: capitalize; font-weight: 700; color: var(--text); font-size: 13px; }
.grade .col-hoje { background: #f2faf9; }
.grade th.col-hoje .dow { color: var(--primary); }
.cel { padding: 4px !important; }
.cel button {
  width: 100%; min-width: 44px; height: 34px; border: 0; border-radius: 8px;
  font: inherit; font-weight: 700; font-size: 14px; cursor: pointer; background: transparent; color: var(--border-strong);
}
.cel button:disabled { cursor: default; }
.cel.n1 button { background: #e6f4f2; color: var(--primary); }
.cel.n2 button { background: #a7dcd5; color: #064e48; }
.cel.n3 button { background: var(--primary); color: #fff; }
.cel.sem button { background: var(--sem-soft); color: var(--sem); box-shadow: inset 0 0 0 1px #f3c97a; }
.cel button:not(:disabled):hover { outline: 2px solid var(--text); }
.grade .total { font-weight: 700; }
.row-sem .row-head { color: var(--sem); font-weight: 600; }
.row-trocas th, .row-trocas td { color: var(--troca); }
.grade tfoot th { text-transform: none; letter-spacing: 0; font-size: 13px; color: var(--text); }

.mini-list { display: flex; flex-direction: column; gap: 6px; }
.mini-row {
  display: grid; grid-template-columns: 56px 110px 1fr 200px; align-items: center; gap: 12px;
  padding: 8px 10px; border: 1px solid var(--border); border-radius: 10px;
}
.mini-row.is-troca { border-color: #f6c9a8; background: var(--troca-soft); }
.mini-date { font-size: 13px; font-weight: 600; text-transform: capitalize; }
.mini-info { font-size: 13px; color: var(--muted); }

/* ---------- Pagamentos ---------- */
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 18px; }
.stat {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius); box-shadow: var(--shadow); padding: 14px 18px;
}
.stat-label { color: var(--muted); font-size: 11.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; }
.stat-value { font-size: 24px; font-weight: 700; margin-top: 2px; font-variant-numeric: tabular-nums; }
.stat-value.sm { font-size: 20px; }
.stat-hint { color: var(--muted); font-size: 12px; }
.stat.red .stat-value { color: var(--red); }
.stat.green .stat-value { color: var(--green); }

.pay-layout { display: grid; grid-template-columns: 300px 1fr; gap: 18px; align-items: start; margin-bottom: 18px; }
.pay-layout .card { margin-bottom: 0; }
.team-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.team-item {
  width: 100%; display: flex; align-items: center; gap: 10px;
  border: 1px solid transparent; background: none; border-radius: 10px;
  padding: 8px 10px; cursor: pointer; font: inherit; text-align: left; color: var(--text);
}
.team-item:hover { background: var(--bg); }
.team-item.active { background: var(--primary-soft); border-color: #b9e0da; }
.team-name { flex: 1; font-weight: 600; display: flex; flex-direction: column; line-height: 1.3; }
.team-name small { color: var(--muted); font-weight: 400; font-size: 12px; }
.team-total { font-weight: 700; font-variant-numeric: tabular-nums; }
.team-total.due { color: var(--red); }
.team-total.ok { color: var(--green); }
.right-total { display: flex; flex-direction: column; align-items: flex-end; }
.right-total b { font-size: 22px; color: var(--red); font-variant-numeric: tabular-nums; }
.pay-table .chk { width: 36px; }
.pay-table tbody tr { cursor: pointer; }
.pay-table tbody tr:hover td { background: #f8fafc; }
.pay-table tbody tr.selected td { background: var(--primary-soft); }
.pay-bar {
  display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap;
  margin-top: 12px; padding: 12px 14px; border-radius: 10px;
  background: var(--bg); border: 1px solid var(--border);
}
.pay-bar.on { background: #f0faf8; border-color: #b9e0da; }
.pay-now { display: flex; flex-direction: column; }
.pay-now b { font-size: 16px; }
.pay-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.inline-label { flex-direction: row; align-items: center; gap: 6px; }
.inline-label input { width: auto; padding: 6px 8px; }
.codes { max-width: 260px; }

.pay-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 14px; }
.pay-summary > div { background: var(--bg); border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; }
.pay-summary b { font-size: 18px; }

/* ---------- Avisos ---------- */
.notice {
  background: #fff8e6; border: 1px solid #f3dfa8; color: #6b4a00;
  border-radius: 10px; padding: 10px 14px; font-size: 13px;
}
.notice.danger { background: var(--red-soft); border-color: #f5c2c2; color: var(--red); margin-bottom: 12px; }
.info-box {
  background: var(--green-soft); border: 1px solid #bfe5cb; color: #14532d;
  border-radius: 10px; padding: 10px 14px; font-size: 13px;
}

/* ---------- Modal ---------- */
.modal-backdrop {
  position: fixed; inset: 0; background: rgba(16, 24, 40, .45);
  display: grid; place-items: center; padding: 16px; z-index: 50;
}
.modal {
  background: var(--surface); border-radius: 14px;
  width: 100%; max-width: 660px; max-height: calc(100vh - 32px); overflow: auto;
  box-shadow: 0 20px 50px rgba(16, 24, 40, .25);
}
.modal-sm { max-width: 440px; }
.modal-head {
  display: flex; justify-content: space-between; align-items: center;
  padding: 14px 20px; border-bottom: 1px solid var(--border);
  position: sticky; top: 0; background: var(--surface); z-index: 1;
}
.modal form, .modal-body { padding: 16px 20px 0; display: flex; flex-direction: column; gap: 12px; }
.form-section { border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px 14px; }
.form-section-title { font-weight: 700; font-size: 13px; margin-bottom: 10px; }
.form-section-title span { font-weight: 500; color: var(--muted); font-size: 12px; margin-left: 6px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.span-2 { grid-column: span 2; }
.troca-aviso {
  margin-top: 10px; background: var(--troca); color: #fff; font-weight: 700; font-size: 12px;
  letter-spacing: .03em; padding: 6px 10px; border-radius: 8px; text-align: center;
}
.modal-foot {
  display: flex; gap: 8px; align-items: center;
  padding: 12px 0 16px; margin-top: 4px; border-top: 1px solid var(--border);
  position: sticky; bottom: 0; background: var(--surface);
}
.spacer { flex: 1; }

/* ---------- Aviso rápido ---------- */
.toast {
  position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%);
  background: var(--text); color: #fff; max-width: calc(100% - 32px);
  padding: 10px 18px; border-radius: 10px; font-weight: 500;
  box-shadow: 0 10px 30px rgba(16, 24, 40, .25); z-index: 100;
}
.toast.erro { background: var(--red); }

/* ---------- Modo demonstração ---------- */
.test-banner.demo { background: #f3e8ff; border-bottom-color: #d8b4fe; color: #6b21a8; }
.btn.carregando { cursor: progress; opacity: .75; }
/* Estadia do proprietário / possível faxina (V2.5) */
.possivel-tag { display: inline-block; font-size: 11px; font-weight: 700; color: #92400e; background: #fef3c7; border: 1px dashed #f59e0b; border-radius: 999px; padding: 1px 8px; margin-left: 4px; }
.prop-box { border: 1px solid #fde68a; background: #fffbeb; border-radius: 10px; padding: 10px 12px; margin: 8px 0; display: flex; flex-direction: column; gap: 4px; font-size: 13.5px; }
.prop-box .cancelado { text-decoration: line-through; color: var(--muted); }
.ent-prop { font-size: 12.5px; color: #92400e; margin-top: 2px; }
.ent-possiveis { margin-top: 18px; }
.ent-possiveis li { font-size: 13px; padding: 4px 0; }
/* ---------- Requisitos da entrada (V2.5) ---------- */
.pd-requisitos { display: flex; flex-direction: column; gap: 8px; margin-bottom: 6px; }
.req-linha { display: flex; gap: 10px; align-items: flex-start; border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; }
.req-linha.ok { background: var(--green-soft); border-color: #bfe5cb; }
.req-linha.pendente { background: #fff7ed; border-color: #fed7aa; }
.req-linha.andamento { background: #eff6ff; border-color: #bfdbfe; }
.req-linha.alerta { background: var(--red-soft); border-color: #f5c2c2; }
.checklist li.req.alerta { color: var(--red); }
.req-ic { font-size: 16px; line-height: 1.3; min-width: 18px; }
.req-botoes { margin-top: 6px; }
.checklist li.req b { font-weight: 600; }
.checklist li.req small { display: block; }
.badge-falta { font-weight: 700; font-size: 12.5px; color: var(--red); background: var(--red-soft); border-radius: 999px; padding: 3px 10px; }
/* ---------- Base compartilhada (V2.5) ---------- */
.test-banner.compartilhado { background: var(--primary-soft); border-bottom-color: #b9e0da; color: #064e48; }
.test-banner.compartilhado.alerta { background: #fff1e7; border-bottom-color: #f9c9a3; color: #9a3412; }
.test-banner.contingencia { background: #fee2e2; border-bottom-color: #fca5a5; color: #991b1b; }
body.modo-contingencia .brand-logo { background: #b91c1c; }
.banner-usuaria { font-weight: 600; }
.tela-login {
  position: fixed; inset: 0; z-index: 100; background: var(--bg);
  display: grid; place-items: center; padding: 16px; overflow: auto;
}
.login-card {
  width: 100%; max-width: 400px; background: var(--surface); border: 1px solid var(--border);
  border-radius: 14px; padding: 24px; display: flex; flex-direction: column; gap: 12px;
  box-shadow: 0 10px 30px rgba(16, 24, 40, .08);
}
.login-card h1 { font-size: 20px; margin: 8px 0 0; }
.login-card .field { display: flex; flex-direction: column; gap: 4px; font-size: 13px; font-weight: 600; }
.login-erro { background: var(--red-soft); color: var(--red); border-radius: 8px; padding: 8px 10px; font-size: 13px; margin: 0; }
.login-local { border-top: 1px solid var(--border); padding-top: 10px; text-align: center; }
.comp-bloco { border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px; margin-top: 12px; }
.comp-bloco.destaque { border-color: var(--primary); background: var(--primary-soft); }
.comp-bloco h3 { font-size: 14px; margin: 0 0 6px; }
.comp-previa { margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--border); }
.comp-conflitos li { margin: 6px 0; }
.comp-conflitos label { margin-left: 10px; white-space: nowrap; }
.table.mini td { padding: 3px 8px; font-size: 13px; }
#card-historico { margin-top: 20px; }
#card-historico .btn-row { margin-top: 0; align-items: center; }
#hist-busca { min-width: 220px; }
.hist-lista { list-style: none; margin: 0; padding: 0; }
.hist-item { padding: 8px 0; border-bottom: 1px solid var(--border); font-size: 13.5px; }
.hist-linha { display: flex; gap: 6px; flex-wrap: wrap; align-items: baseline; }
.hist-quando { color: var(--muted); font-variant-numeric: tabular-nums; min-width: 92px; }
.hist-det { margin: 3px 0 0 98px; color: #334155; font-size: 13px; }
.hist-desc { margin: 2px 0 0 98px; }
.hist-exclusao .hist-linha b + * , .hist-exclusao .hist-linha { color: var(--red); }
@media (max-width: 640px) {
  .hist-det, .hist-desc { margin-left: 0; }
  #hist-busca { min-width: 0; width: 100%; }
}
body.modo-demo .brand-logo { background: #7e22ce; }
.txt-purple { color: #7e22ce; }
.modo-box {
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  margin-top: 12px; padding: 10px 14px; border: 1px solid var(--border); border-radius: 10px;
}
.modo-box > div { display: flex; flex-direction: column; }

/* ---------- Financeiro ---------- */
.txt-green { color: var(--green); }
.txt-amber { color: var(--sem); }
.nao-inf { color: #9aa3af; font-style: italic; font-size: 12.5px; }
.fin-badge {
  display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: .02em;
  padding: 2px 8px; border-radius: 6px; white-space: nowrap;
}
.fin-badge.ok { background: var(--green-soft); color: var(--green); }
.fin-badge.inc { background: var(--sem-soft); color: var(--sem); border: 1px solid #f3dca6; }
.fin-badge.neg { background: var(--red-soft); color: var(--red); }
.fin-badge.baixa { background: #fff7ed; color: #92400e; }
.margem-negativa {
  color: var(--red); font-weight: 700; background: var(--red-soft);
  padding: 1px 6px; border-radius: 5px;
}
.margem-baixa { color: #92400e; }
.margem-baixa::after { content: ' •'; color: #f59e0b; }

.fin-resumo { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-bottom: 14px; }
.fin-resumo > div { background: var(--bg); border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; }
.fin-resumo b { font-size: 20px; font-variant-numeric: tabular-nums; }
.fin-resumo span { font-size: 12px; color: var(--muted); }
.im-toolbar { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-bottom: 8px; }
.im-toolbar input[type=search] { max-width: 200px; }

.calc-box {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 12px;
  background: var(--bg); border-radius: 10px; padding: 12px;
}
.calc-box.incompleto { grid-template-columns: 1fr; background: var(--sem-soft); border: 1px solid #f3dca6; }
.calc-box.negativa { background: var(--red-soft); }
.calc-box > div { display: flex; flex-direction: column; }
.calc-box span { font-size: 12px; color: var(--muted); font-weight: 600; }
.calc-box b { font-size: 18px; font-variant-numeric: tabular-nums; }
.calc-box b.margem-negativa { background: none; padding: 0; }
.calc-box small { font-size: 11.5px; color: var(--muted); }

.fin-details summary { cursor: pointer; margin-bottom: 0; list-style: none; display: flex; align-items: center; gap: 8px; }
.fin-details summary::-webkit-details-marker { display: none; }
.fin-details summary::before { content: '▸'; color: var(--muted); }
.fin-details[open] summary::before { content: '▾'; }
.fin-details[open] summary { margin-bottom: 10px; }
.fin-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.fin-table td { padding: 5px 4px; border-bottom: 1px solid var(--border); }
.fin-table .num { text-align: right; font-variant-numeric: tabular-nums; }
.fin-table tr.soma td { font-weight: 700; border-top: 1px solid var(--border-strong); }
.fin-table tr.ref td { color: var(--muted); border-bottom: 0; }
.fin-table tr.margem-negativa td { color: var(--red); background: var(--red-soft); }
.fin-table tr.margem-baixa td:last-child::after { content: ' •'; color: #f59e0b; }
.fin-alerta { color: var(--sem); font-weight: 700; font-size: 12.5px; margin: 8px 0 0; }

/* ---------- V2.2: tarefas e preparação ---------- */
.mt { margin-top: 12px; }
.txt-troca { color: var(--troca); }

/* Etiquetas discretas por tipo de tarefa */
.tipo-tag {
  display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: .01em;
  padding: 1px 7px; border-radius: 5px; white-space: nowrap; vertical-align: middle;
  background: #eef1f5; color: #475569;
}
.g-faxina { background: #e6f4f2; color: #0f766e; }
.g-vistoria { background: #f1ecfe; color: #6d28d9; }
.g-pano { background: #e8f3fd; color: #0369a1; }
.g-outro { background: #eef1f5; color: #475569; }
.code-xs.g-faxina, .code-xs.g-vistoria, .code-xs.g-pano, .code-xs.g-outro { font-weight: 600; }
.opc, .obrig {
  font-size: 10.5px; font-weight: 600; padding: 0 6px; border-radius: 4px; margin-left: 4px;
  border: 1px dashed var(--border-strong); color: var(--muted); vertical-align: middle;
}
.obrig { border-style: solid; border-color: #cbd5e1; color: #334155; }

/* Linha de tarefa na agenda: borda pelo status */
.job.st-pendente { border-left-color: #94a3b8; }
.job.st-liberada { border-left-color: var(--liberada); background: #fbfcff; }
.job.st-concluida { border-left-color: #22c55e; }
.job.st-concluida .job-code { background: #eef2f6; color: #4b5563; }
.job.st-cancelada { opacity: .55; border-left-color: #cbd5e1; }
.job.st-cancelada .job-code { background: #94a3b8; }
.sel-status.s-pendente { background: #f1f4f8; color: #475569; }
.sel-status.s-cancelada { background: #f1f4f8; color: #94a3b8; text-decoration: line-through; }
.pag-sem_custo, .pag-sem_responsavel { color: var(--muted); font-weight: 500; }
.check-filter { flex-direction: row; align-items: center; gap: 8px; align-self: end; padding-bottom: 9px; color: var(--troca); }
.check-filter input { width: auto; }

/* Status da preparação */
.prep-badge {
  display: inline-block; font-size: 11.5px; font-weight: 800; letter-spacing: .03em;
  padding: 3px 10px; border-radius: 6px; white-space: nowrap;
}
.ps-pendente .prep-badge, .prep-badge.ps-pendente { background: #fef6e4; color: var(--sem); }
.prep-badge.ps-em_preparacao { background: var(--liberada-soft); color: var(--liberada); }
.prep-badge.ps-pronto { background: var(--green); color: #fff; }
.prep-badge.ps-sem_tarefas { background: #eef0f3; color: #475569; border: 1px dashed #94a3b8; }
.prep-badge.ps-cancelada { background: #eef0f3; color: var(--muted); }

/* Tela Entradas */
.ent-resumo { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 18px; }
.ent-resumo > div {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
  padding: 10px 14px; display: flex; flex-direction: column; box-shadow: var(--shadow);
}
.ent-resumo > div.alerta { background: var(--red-soft); border-color: #f5c2c2; }
.ent-resumo b { font-size: 22px; font-variant-numeric: tabular-nums; }
.ent-resumo span { font-size: 12px; color: var(--muted); }
.ent-resumo .alerta strong { color: var(--red); }
.ent-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.ent-card {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
  box-shadow: var(--shadow); padding: 14px; display: flex; flex-direction: column; gap: 10px;
  cursor: pointer; border-top: 4px solid var(--border-strong);
}
.ent-card:hover { border-color: var(--border-strong); }
.ent-card.ps-pronto { border-top-color: #22c55e; }
.ent-card.ps-em_preparacao { border-top-color: var(--liberada); }
.ent-card.ps-pendente { border-top-color: #f59e0b; }
.ent-card.alerta {
  border: 2px solid var(--red); border-top-width: 6px; background: #fff8f8;
  box-shadow: 0 0 0 4px var(--red-soft), var(--shadow);
}
.ent-card.alerta .ent-quando { color: var(--red); }
.ent-top { display: flex; gap: 12px; align-items: flex-start; }
.code-lg {
  border: 0; font-family: inherit; cursor: pointer; flex: none;
  background: var(--text); color: #fff; font-size: 24px; font-weight: 800; letter-spacing: -.02em;
  min-width: 72px; height: 56px; border-radius: 10px; display: grid; place-items: center; padding: 0 10px;
}
.is-troca .code-lg { background: var(--troca); }
.ent-quando { font-weight: 700; font-size: 15px; }
.ent-info { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.checklist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.checklist li { display: flex; gap: 8px; align-items: baseline; font-size: 13.5px; }
.checklist li small { display: block; color: var(--muted); font-size: 11.5px; }
.checklist .ck { width: 16px; text-align: center; font-weight: 700; color: #94a3b8; flex: none; }
.checklist li.ok .ck { color: var(--green); }
.checklist li.lib .ck { color: var(--liberada); }
.checklist li.canc { color: var(--muted); text-decoration: line-through; }
.checklist li.canc small { text-decoration: none; }
.checklist em { font-style: normal; color: var(--muted); font-size: 12px; }
.checklist .vazio { color: var(--muted); font-style: italic; }
.ent-foot { display: flex; flex-direction: column; gap: 4px; align-items: flex-start; border-top: 1px solid var(--border); padding-top: 10px; }
.falta { font-size: 12px; color: var(--red); font-weight: 600; }

/* Detalhe da preparação */
.modal-lg { max-width: 980px; }
.pd-head {
  display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center;
  padding: 12px; border: 1px solid var(--border); border-radius: 12px; background: var(--bg);
}
.pd-head.is-troca { background: var(--troca-soft); border-color: #f6c9a8; }
.pd-head .code-lg { cursor: default; }
.pd-marcos { display: flex; flex-direction: column; gap: 3px; font-size: 14px; }
.pd-marcos .muted { display: inline-block; min-width: 118px; font-size: 12px; }
.pd-marcos .troca-tag { align-self: flex-start; }
.pd-status { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; text-align: right; }
.pd-tarefas { display: flex; flex-direction: column; gap: 6px; }
.pd-tarefa {
  display: grid; grid-template-columns: 22px minmax(0, 1fr) 165px 128px 180px 96px 32px;
  gap: 10px; align-items: center; padding: 8px 10px; border: 1px solid var(--border); border-radius: 10px;
}
.pd-tarefa.st-concluida { background: #f6fbf7; }
.pd-tarefa.st-cancelada { opacity: .55; }
.pd-tarefa.st-cancelada b { text-decoration: line-through; }
.pd-icone { font-weight: 800; color: #94a3b8; text-align: center; }
.pd-tarefa.st-concluida .pd-icone { color: var(--green); }
.pd-tarefa.st-liberada .pd-icone { color: var(--liberada); }
.pd-info { min-width: 0; }
.pd-acao { display: flex; gap: 6px; }
.pd-add { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 10px 0; }
.pd-fin {
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px; background: var(--bg);
  border-radius: 10px; padding: 10px 12px;
}
.pd-fin > div { display: flex; flex-direction: column; }
.pd-fin .span-all { grid-column: 1 / -1; margin: 0; }
.pd-obs { color: #7a5200; font-size: 13px; margin: 0; }
.contexto {
  display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 13px;
  padding: 8px 10px; background: var(--bg); border-radius: 10px;
}
.radio-group { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 4px; }
.radio-group legend { font-size: 12px; font-weight: 600; color: var(--muted); margin-bottom: 4px; }
.radio-group label.check { font-size: 13.5px; }
.section-check { margin-bottom: 10px; font-size: 14px; }
.backup-list { list-style: none; padding: 0; margin: 6px 0 0; display: flex; flex-direction: column; gap: 6px; }
.backup-list li { display: flex; justify-content: space-between; gap: 10px; align-items: center; font-size: 13px; }

/* ---------- V2.3: funções dos responsáveis ---------- */
.funcao-tag {
  display: inline-block; font-size: 10.5px; font-weight: 700; letter-spacing: .02em; text-transform: uppercase;
  padding: 1px 6px; border-radius: 4px; margin-left: 6px; vertical-align: middle;
}
.funcao-tag.f-limpeza { background: #e6f4f2; color: #0f766e; }
.funcao-tag.f-vistoria { background: #f1ecfe; color: #6d28d9; }
td > .funcao-tag:first-child { margin-left: 0; }
.avatar.f-vistoria { background: #f1ecfe; color: #6d28d9; }
.load.f-vistoria { border-color: #ddd0fb; color: #6d28d9; }
.sel-equipe.f-vistoria:not(.vazio) { border-color: #ddd0fb; color: #5b21b6; }
.cel.vist.n1 button { background: #f1ecfe; color: #6d28d9; }
.cel.vist.n2 button { background: #d9c8fb; color: #4c1d95; }
.cel.vist.n3 button { background: #6d28d9; color: #fff; }
.pag-sem_regra { color: var(--muted); font-weight: 500; }

/* ---------- Importação de entradas e saídas ---------- */
.ent-acoes { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
#imp-texto { font-family: ui-monospace, Consolas, monospace; font-size: 12.5px; }
.imp-resumo { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 10px; }
.imp-resumo span { background: var(--bg); border-radius: 8px; padding: 4px 10px; font-size: 13px; }
.imp-table tr.ign td { color: var(--muted); }
.imp-table tr.erro td { background: var(--red-soft); color: var(--red); }

/* ---------- V2.3 completa: inteligência operacional ---------- */
.pd-sec { font-size: 13px; font-weight: 700; margin: 16px 0 8px; text-transform: uppercase; letter-spacing: .03em; color: #334155; }
.pd-sec .muted { text-transform: none; letter-spacing: 0; font-weight: 500; }

/* Abas dentro de modais */
.abas { display: flex; gap: 4px; flex-wrap: wrap; border-bottom: 1px solid var(--border); margin: -4px 0 4px; }
.aba {
  border: 0; background: none; font: inherit; font-size: 13px; font-weight: 600; color: var(--muted);
  padding: 8px 12px; border-bottom: 2px solid transparent; cursor: pointer; margin-bottom: -1px;
}
.aba.active { color: var(--primary); border-bottom-color: var(--primary); }
.aba-n:not(:empty) { background: var(--primary-soft); color: var(--primary); border-radius: 999px; padding: 0 6px; font-size: 11px; margin-left: 2px; }
.aba-painel { display: flex; flex-direction: column; gap: 10px; }
.form-grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
.form-grid.cols-4 { grid-template-columns: repeat(4, 1fr); }
.span-3 { grid-column: span 3; }

/* Tabelas editáveis (kit, camas, relações) */
.edit-table td { padding: 5px 6px; }
.edit-table input, .edit-table select { padding: 6px 8px; font-size: 13px; }
.inp-qtd { width: 84px; text-align: right; }
.inp-qtd.falta { border-color: #f3c97a; background: var(--sem-soft); }
.inp-un { width: 90px; }
.inp-nome { min-width: 180px; }
.inp-medio { max-width: 260px; }
tr.rel-prefere td { background: #fff5f7; }
tr.rel-evitar td { background: var(--sem-soft); }
tr.rel-nao_atende td { background: var(--red-soft); }

/* Orientações */
.ori-edit { border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; margin-bottom: 8px; }
.ori-edit.inativa { opacity: .6; }
.ori-checks { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: center; margin-top: 8px; }
.ori-checks label.check { font-size: 13px; }
.ori-lista { display: flex; flex-direction: column; gap: 6px; }
.ori-item { display: flex; gap: 10px; padding: 8px 12px; border-radius: 10px; background: #f8fafc; border: 1px solid var(--border); font-size: 13.5px; }
.ori-item.ot-atencao { background: #fff8e6; border-color: #f3dfa8; }
.ori-ic { font-size: 18px; line-height: 1.2; }
.ori-flags { display: flex; gap: 6px; margin-top: 3px; }
.ori-flags span { font-size: 11px; color: var(--muted); border: 1px solid var(--border); border-radius: 4px; padding: 0 5px; }
.ori-tag { display: inline-block; font-size: 11.5px; font-weight: 600; padding: 1px 7px; border-radius: 5px; background: #f1f5f9; color: #334155; margin-right: 4px; }
.ori-tag.ot-atencao { background: #fff1c7; color: #7a5200; }
.job-oris { margin-top: 3px; }
.obs-destino { display: flex; flex-wrap: wrap; gap: 4px 18px; margin-top: 6px; }
.obs-destino label.check, .ori-opcoes label.check { font-size: 13px; }
.ori-opcoes { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: end; padding: 10px; background: var(--bg); border-radius: 10px; margin-top: 6px; }
.ori-opcoes select { width: auto; }

/* Exceção de atribuição */
.exc-tag { display: inline-block; font-size: 10.5px; font-weight: 700; padding: 1px 6px; border-radius: 4px; background: var(--red); color: #fff; margin-left: 4px; vertical-align: middle; }
.sel-equipe.rel-prefere { border-color: #f9a8c0; }
.sel-equipe.rel-evitar { border-color: #f3c97a; background: var(--sem-soft); }
.sel-equipe.rel-nao_atende { border-color: var(--red); background: var(--red-soft); color: var(--red); }

/* Separação (kit / enxoval) */
.sep-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.sep-card { border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.sep-card-head { display: flex; justify-content: space-between; width: 100%; align-items: center; }
.sep-resumo { font-size: 13px; line-height: 1.6; }
.sep-status { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: #eef1f5; color: #475569; margin-left: 6px; }
.sep-status.ss-pendente { background: var(--sem-soft); color: var(--sem); }
.sep-status.ss-separado { background: var(--green-soft); color: var(--green); }
.sep-secao { border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px; }
.sep-secao h3 { font-size: 14px; margin: 0 0 8px; }
.sep-itens .chk { width: 70px; text-align: center; }
.sep-itens tr.selected td { background: var(--green-soft); }
.pd-atalhos { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 12px 0 4px; }
.ent-sep { display: flex; flex-wrap: wrap; gap: 4px; }
.ent-sep .sep-status { margin-left: 0; }

/* Responsáveis: habilidades, disponibilidade, Pix */
.hab-mini { display: flex; flex-wrap: wrap; gap: 3px; margin-top: 2px; }
.hab-mini span { font-size: 10.5px; background: #eef1f5; color: #475569; border-radius: 4px; padding: 0 5px; }
.hab-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.hab-chip { flex-direction: row; align-items: center; gap: 6px; border: 1px solid var(--border); border-radius: 999px; padding: 5px 12px; font-size: 13px; color: var(--text); font-weight: 500; cursor: pointer; }
.hab-chip input { width: auto; }
.hab-chip.on { background: var(--primary-soft); border-color: #b9e0da; color: var(--primary); }
.dias { display: flex; gap: 14px; flex-wrap: wrap; }
.indisp-row { display: flex; gap: 8px; align-items: end; margin-bottom: 6px; }
.indisp-row label { flex: none; }
.indisp-row label.grow { flex: 1; }
.mini-marca { display: inline-block; font-size: 11px; background: #f1f5f9; border-radius: 4px; padding: 0 5px; margin-right: 3px; color: #334155; }
.pix-box {
  display: flex; justify-content: space-between; align-items: center; gap: 10px;
  background: #f0f9ff; border: 1px solid #bae6fd; border-radius: 10px; padding: 8px 12px; margin-bottom: 10px;
}
.pix-box > div { display: flex; flex-direction: column; }
.pix-box.vazio { background: var(--bg); border-color: var(--border); justify-content: flex-start; }
.pix-chave { font-family: ui-monospace, Consolas, monospace; font-size: 14px; }
.hist-imoveis { display: flex; flex-wrap: wrap; gap: 8px; }
.hist-im { font-size: 13px; background: var(--bg); border-radius: 8px; padding: 4px 8px; }

/* Distribuição: ajudas visuais */
.cel.indisp button { background: #eef0f3 !important; color: #94a3b8 !important; text-decoration: line-through; }
.cel.off button { opacity: .45; }
.cel.cap button { box-shadow: inset 0 0 0 2px var(--red) !important; }
.legenda-dist .lg-ind { color: #94a3b8; font-weight: 700; }
.legenda-dist .lg-off { opacity: .55; }
.legenda-dist .lg-cap { color: var(--red); font-weight: 600; }
.mini-row .rel-resumo { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 4px; }
.rel-chip { font-size: 11.5px; border-radius: 5px; padding: 1px 7px; background: #f1f5f9; }
.rel-chip.rel-prefere { background: #fff0f4; color: #be185d; }
.rel-chip.rel-evitar { background: var(--sem-soft); color: var(--sem); }
.rel-chip.rel-nao_atende { background: var(--red-soft); color: var(--red); font-weight: 600; }

/* ---------- V2.4: integração Stays ---------- */
.st-badge { font-weight: 700; font-size: 13px; padding: 6px 12px; border-radius: 999px; background: #eef1f5; color: #334155; white-space: nowrap; }
.st-badge.st-configurada { background: #fef6e4; color: var(--sem); }
.st-badge.st-conectada { background: var(--green-soft); color: var(--green); }
.st-badge.st-erro { background: var(--red-soft); color: var(--red); }
.st-info { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 13px; color: var(--muted); }
.st-passos { margin: 0 0 6px; padding-left: 20px; color: var(--muted); font-size: 13px; display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 2px 18px; }
.st-conts { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; margin-bottom: 12px; }
.st-cont { background: var(--bg); border-radius: 10px; padding: 8px 10px; display: flex; flex-direction: column; }
.st-cont b { font-size: 20px; font-variant-numeric: tabular-nums; }
.st-cont span { font-size: 12px; color: var(--muted); }
.st-cont.aviso:not(.zero) { background: var(--sem-soft); }
.st-cont.forte:not(.zero) { background: var(--primary-soft); }
.st-cont.forte:not(.zero) b { color: var(--primary); }
.st-cont.zero b { color: #cbd5e1; }
.st-det { border: 1px solid var(--border); border-radius: 10px; padding: 8px 12px; margin-bottom: 8px; }
.st-det summary { cursor: pointer; font-weight: 600; font-size: 13.5px; }
.st-det h4 { font-size: 12px; text-transform: uppercase; color: var(--muted); margin: 10px 0 4px; }
.st-lista { margin: 6px 0; padding-left: 18px; font-size: 13px; display: flex; flex-direction: column; gap: 4px; }
.st-vinc { display: grid; grid-template-columns: 1fr 1.3fr; gap: 14px; border: 1px solid var(--border); border-left: 4px solid #f59e0b; border-radius: 10px; padding: 10px 12px; margin-bottom: 8px; }
.st-vinc.st-v-vinculado { border-left-color: #22c55e; }
.st-vinc.st-v-ignorado { border-left-color: #cbd5e1; opacity: .7; }
.st-vinc-stays, .st-vinc-joao { display: flex; flex-direction: column; gap: 3px; }
.st-vinc-escolha { display: flex; flex-direction: column; gap: 6px; }
.st-vinc-escolha select { max-width: 260px; }
.st-fis { border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; margin-bottom: 10px; }
.st-fis-head { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; margin-bottom: 6px; }
.st-fis-tab tr.sf-divergencia td { background: var(--sem-soft); }
.st-fis-tab tr.sf-sugestao td { background: #f0f9ff; }
@media (max-width: 700px) {
  /* tela estreita: botões de decisão descem para uma linha própria, abaixo do campo */
  .st-fis-tab thead th:last-child { display: none; }
  .st-fis-tab tr { display: grid; grid-template-columns: 1.1fr 1fr 1fr 1.2fr; }
  .st-fis-tab td.right { grid-column: 1 / -1; text-align: left; padding-top: 0; }
  .st-fis-tab td.right:empty { display: none; }
  .st-fis-tab .btn { white-space: normal; }
}
.st-cenarios { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.st-alerta { display: flex; justify-content: space-between; gap: 10px; align-items: center; border-radius: 10px; padding: 8px 12px; margin-bottom: 6px; font-size: 13.5px; background: #f1f5f9; }
.st-alerta.al-alerta { background: #fff8e6; border: 1px solid #f3dfa8; }
.st-regras { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.st-regra { border-radius: 10px; padding: 10px 12px; font-size: 13px; }
.st-regra div { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.st-regra div span { background: rgba(255,255,255,.7); border-radius: 4px; padding: 0 6px; font-size: 12px; }
.st-regra.ra { background: #e8f3fd; }
.st-regra.rb { background: #fef6e4; }
.st-regra.rc { background: #e6f4f2; }
.evento-info {
  display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center;
  border: 1px dashed var(--border-strong); border-radius: 10px; padding: 8px 12px; margin-bottom: 6px; font-size: 13.5px; background: #fafbfc;
}
.evento-info.ev-manutencao { border-color: #a5b4fc; background: #f5f7ff; }
.evento-info.ev-bloqueio { border-color: #cbd5e1; background: #f8fafc; }
.stays-info { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; font-size: 13px; padding: 8px 12px; margin-top: 8px; border-radius: 10px; background: #e8f3fd; color: #0c4a6e; }

/* ---------- Responsivo ---------- */
@media (max-width: 1100px) {
  .job {
    grid-template-columns: 64px minmax(0, 1fr) auto;
    grid-template-areas:
      "code main money"
      "code team status"
      "action action edit";
    row-gap: 8px;
  }
  .job-code { grid-area: code; height: 100%; min-height: 52px; font-size: 20px; }
  .job-main { grid-area: main; }
  .job-money { grid-area: money; }
  .job-team { grid-area: team; }
  .job-status { grid-area: status; }
  .job-action { grid-area: action; }
  .job-action:empty { display: none; }
  .job-edit { grid-area: edit; justify-self: end; }
  .troca-tag { white-space: normal; }
  .indicadores { grid-template-columns: repeat(3, 1fr); }
  .pay-layout { grid-template-columns: 1fr; }
  #tab-imoveis .col-opc { display: none; }
  .pd-tarefa {
    grid-template-columns: 22px minmax(0, 1fr) auto;
    grid-template-areas: "ic info money" "ic resp status" "ic acao edit";
  }
  .pd-tarefa > .pd-icone { grid-area: ic; align-self: start; }
  .pd-tarefa > .pd-info { grid-area: info; }
  .pd-tarefa > .sel-equipe { grid-area: resp; }
  .pd-tarefa > .sel-status { grid-area: status; }
  .pd-tarefa > .pd-acao { grid-area: acao; }
  .pd-tarefa > .job-money { grid-area: money; }
  .pd-tarefa > .icon-btn { grid-area: edit; justify-self: end; }
  .pd-head { grid-template-columns: auto 1fr; }
  .pd-status { grid-column: 1 / -1; flex-direction: row; align-items: center; justify-content: flex-start; }
  .ent-resumo { grid-template-columns: 1fr 1fr; }
  #tab-imoveis th, #tab-imoveis td { padding-left: 6px; padding-right: 6px; }
  #tab-imoveis th { white-space: normal; }
  #tab-imoveis .fin-badge .lg { display: none; }
  .two-cols { grid-template-columns: 1fr; }
  .stats { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .topbar-inner, .container { padding-left: 16px; padding-right: 16px; }
  .topbar { position: static; }
  .topbar-inner { gap: 8px; }
  .tabs { flex-wrap: nowrap; overflow-x: auto; width: 100%; }
  .tab { padding: 6px 10px; }
  .job {
    grid-template-columns: 56px minmax(0, 1fr) auto;
    grid-template-areas:
      "code main main"
      "team team status"
      "money money edit"
      "action action action";
  }
  .job-code { font-size: 18px; min-height: 48px; }
  .job-money { align-self: center; display: flex; align-items: baseline; gap: 8px; text-align: left; }
  .job-action .btn { flex: 1; }
  .form-grid { grid-template-columns: 1fr; }
  .span-2 { grid-column: auto; }
  .stats { grid-template-columns: 1fr; }
  .indicadores { grid-template-columns: repeat(2, 1fr); }
  .mini-row { grid-template-columns: 56px 1fr; }
  .fin-resumo { grid-template-columns: 1fr 1fr; }
  .calc-box { grid-template-columns: 1fr; }
  .sep-cards { grid-template-columns: 1fr; }
  .st-vinc { grid-template-columns: 1fr; }
  .st-regras { grid-template-columns: 1fr; }
  .form-grid.cols-3, .form-grid.cols-4 { grid-template-columns: 1fr 1fr; }
  .span-3 { grid-column: span 2; }
  .indisp-row { flex-wrap: wrap; }
  .mini-row .mini-info, .mini-row select { grid-column: span 2; }
  .pay-summary { grid-template-columns: 1fr; }
}
