:root {
  --navy: #0c2440;
  --navy-2: #153552;
  --blue: #176b9d;
  --blue-soft: #e8f3fa;
  --cyan: #2da6a2;
  --green: #17785a;
  --green-soft: #e7f5ef;
  --red: #b64b4b;
  --red-soft: #fff0ed;
  --amber: #b87923;
  --paper: #f4f7f8;
  --white: #fff;
  --ink: #162536;
  --muted: #6c7c8b;
  --line: #dce5ea;
  --shadow: 0 12px 30px rgba(12, 36, 64, .08);
  font-family: "Segoe UI", Inter, Arial, sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--paper); color: var(--ink); min-width: 1100px; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.app-shell { display: grid; grid-template-columns: 250px 1fr; min-height: 100vh; }
.sidebar { background: linear-gradient(180deg, var(--navy), #0a1d32); color: white; padding: 28px 18px 22px; position: fixed; inset: 0 auto 0 0; width: 250px; display: flex; flex-direction: column; }
.brand { display: flex; align-items: center; gap: 12px; padding: 0 8px 28px; }
.brand-mark { width: 43px; height: 43px; border-radius: 13px; background: linear-gradient(135deg, var(--cyan), var(--blue)); display: grid; place-items: center; font-weight: 800; letter-spacing: .5px; }
.brand strong, .brand span { display: block; }
.brand strong { font-size: 15px; }
.brand span { color: #a9bed0; font-size: 11px; margin-top: 3px; }
nav { display: grid; gap: 6px; }
.nav-item { border: 0; color: #b9ccda; background: transparent; text-align: left; border-radius: 11px; padding: 12px 13px; display: flex; align-items: center; gap: 11px; transition: .18s; }
.nav-item span { width: 20px; text-align: center; font-size: 18px; }
.nav-item:hover, .nav-item.active { color: white; background: rgba(255,255,255,.10); transform: translateX(2px); }
.system-card { margin-top: auto; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); padding: 14px; border-radius: 12px; }
.system-card div { display: flex; align-items: center; gap: 8px; font-size: 12px; }
.system-card small { display: block; color: #9eb4c5; margin-top: 7px; }
.status-dot { width: 8px; height: 8px; background: #d09949; border-radius: 50%; box-shadow: 0 0 0 4px rgba(208,153,73,.15); }
.status-dot.online { background: #58c79f; box-shadow: 0 0 0 4px rgba(88,199,159,.15); }
main { grid-column: 2; min-width: 0; }
.topbar { height: 92px; padding: 18px 30px; background: rgba(255,255,255,.92); border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 10; backdrop-filter: blur(10px); }
h1, h2, p { margin-top: 0; }
h1 { margin-bottom: 0; font-size: 27px; letter-spacing: -.7px; }
h2 { margin-bottom: 0; font-size: 19px; letter-spacing: -.3px; }
.eyebrow { color: var(--blue); text-transform: uppercase; font-size: 10px; font-weight: 800; letter-spacing: 1.6px; margin-bottom: 5px; }
.header-actions { display: flex; gap: 9px; align-items: end; }
.cash-active .header-actions { display:none; }
.header-actions select { min-width: 160px; }
.date-field span, .filters label span { display: block; font-size: 10px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .7px; margin-bottom: 4px; }
input, select, textarea { border: 1px solid #cbd8df; background: white; color: var(--ink); border-radius: 9px; padding: 9px 10px; outline: none; }
input:focus, select:focus, textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(23,107,157,.1); }
.button { border: 0; border-radius: 9px; padding: 10px 14px; font-weight: 700; white-space: nowrap; }
.button.primary { color: white; background: var(--blue); box-shadow: 0 6px 16px rgba(23,107,157,.18); }
.button.primary:hover { background: #105c88; }
.button.secondary { background: #e6edf1; color: var(--navy); }
.view { display: none; padding: 25px 30px 38px; }
.view.active { display: block; animation: fade .2s ease-out; }
@keyframes fade { from { opacity: .5; transform: translateY(3px); } }
.hero-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; margin-bottom: 17px; }
.metric-card { background: white; border: 1px solid var(--line); border-radius: 14px; padding: 18px 19px; box-shadow: var(--shadow); position: relative; overflow: hidden; }
.metric-card::before { content:""; position:absolute; inset:0 auto 0 0; width:4px; background: var(--blue); }
.metric-card.positive::before { background: var(--green); }.metric-card.negative::before { background: var(--red); }.metric-card.accent::before { background: var(--blue); }.metric-card.neutral::before { background: var(--amber); }
.metric-card span, .metric-card small, .metric-card strong { display: block; }
.metric-card span { color: var(--muted); font-size: 12px; font-weight: 700; }
.metric-card strong { font-size: 24px; margin: 8px 0 7px; letter-spacing: -.6px; }
.metric-card small { color: #82919e; font-size: 10.5px; line-height: 1.45; }
.dashboard-grid { display: grid; grid-template-columns: 1.65fr 1fr; gap: 17px; }
.panel { background: white; border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow); padding: 19px; min-width: 0; }
.panel-heading { display: flex; justify-content: space-between; align-items: center; gap: 15px; margin-bottom: 18px; }
.panel-heading .eyebrow { margin-bottom: 3px; }
.badge { background: var(--blue-soft); color: var(--blue); border-radius: 20px; padding: 6px 10px; font-size: 10px; font-weight: 800; }
.chart { height: 240px; display: flex; align-items: flex-end; gap: 8px; padding: 18px 8px 6px; border-bottom: 1px solid var(--line); background: repeating-linear-gradient(to top, transparent 0, transparent 47px, #edf2f4 48px); }
.bar-group { flex: 1; height: 100%; display: flex; align-items: flex-end; justify-content: center; gap: 3px; position: relative; min-width: 16px; }
.bar { width: min(12px, 42%); min-height: 2px; border-radius: 4px 4px 0 0; transition: .3s; }
.bar.in { background: var(--blue); }.bar.out { background: #e39978; }
.bar-group label { position: absolute; bottom: -24px; font-size: 9px; color: var(--muted); white-space: nowrap; }
.category-list { display: grid; gap: 11px; }
.category-row { display: grid; grid-template-columns: 86px 1fr 102px; gap: 10px; align-items: center; font-size: 11px; }
.category-row strong { text-align: right; font-size: 11px; }
.progress-track { height: 7px; background: #edf2f4; border-radius: 8px; overflow: hidden; }
.progress-fill { height: 100%; border-radius: 8px; background: linear-gradient(90deg, var(--blue), var(--cyan)); }
.ranking { display: grid; gap: 13px; }
.rank-item { display: grid; grid-template-columns: 25px 1fr auto; gap: 9px; align-items: center; }
.rank-no { width: 25px; height: 25px; background: #eff4f7; border-radius: 7px; display: grid; place-items: center; color: var(--muted); font-size: 10px; font-weight: 800; }
.rank-item strong { display: block; font-size: 11.5px; }.rank-item small { color: var(--muted); font-size: 9.5px; }.rank-value { color: var(--green); font-weight: 800; font-size: 11px; }
.recent-panel { grid-column: 1 / -1; }
.text-button { border: 0; color: var(--blue); background: none; font-weight: 700; font-size: 11px; }
.table-wrap { overflow: auto; }
table { width: 100%; border-collapse: collapse; font-size: 11px; }
th { text-align: left; color: var(--muted); text-transform: uppercase; font-size: 9px; letter-spacing: .7px; padding: 8px 10px; background: #f6f8f9; border-bottom: 1px solid var(--line); }
td { padding: 10px; border-bottom: 1px solid #edf1f3; vertical-align: top; }
tr:last-child td { border-bottom: 0; }
.money { font-variant-numeric: tabular-nums; font-weight: 800; white-space: nowrap; }
.source-link { color: var(--blue); border: 0; background: none; text-decoration: underline; padding: 0; font-size: inherit; max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.filters-panel { margin-bottom: 16px; }
.filters { display: grid; grid-template-columns: 1.5fr repeat(5, minmax(125px, .7fr)) auto; gap: 10px; align-items: end; }
.filters input, .filters select { width: 100%; }
.section-help { color: var(--muted); font-size: 11px; line-height: 1.55; margin: -7px 0 17px; max-width: 900px; }
.account-filters { grid-template-columns: minmax(145px,.75fr) minmax(145px,.8fr) minmax(140px,.7fr) minmax(190px,1.1fr) minmax(165px,.9fr) minmax(175px,.95fr) minmax(125px,.65fr) auto auto; }
.boleto-filters { grid-template-columns: minmax(150px,1fr) minmax(150px,1fr) minmax(135px,.8fr) minmax(135px,.8fr) auto auto; }
.boleto-summary-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 15px; margin-bottom: 17px; }
.boleto-table { max-height: calc(100vh - 390px); }
.difference { color: var(--red); }
.metric-card .period-value { font-size: 18px; margin-top: 12px; }
.deposit-overview { display: flex; justify-content: space-between; align-items: center; gap: 28px; margin-bottom: 13px; background: linear-gradient(135deg,#fff,#f4f9fc); }
.deposit-overview-copy { max-width: 680px; }.deposit-overview-copy h2 { margin-bottom: 7px; }.deposit-overview-copy p:last-child { color: var(--muted); font-size: 11px; line-height: 1.55; margin: 0; }
.deposit-overview-values { display: flex; gap: 8px; flex-shrink: 0; }.deposit-overview-values span { min-width: 145px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 10px; background: white; }.deposit-overview-values small,.deposit-overview-values strong { display: block; }.deposit-overview-values small { color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .6px; }.deposit-overview-values strong { margin-top: 5px; font-size: 16px; font-variant-numeric: tabular-nums; }
.deposit-legend { display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center; padding: 0 4px 13px; color: var(--muted); font-size: 10px; }.deposit-legend span { display: inline-flex; align-items: center; gap: 6px; }.legend-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--muted); }.legend-dot.status-conciliado { background: var(--green); }.legend-dot.status-justificado { background: var(--blue); }.legend-dot.status-divergente { background: var(--red); }.legend-dot.status-parcial { background: var(--amber); }.legend-dot.status-retirada_especie { background: #697481; }
.deposit-day-list { display: grid; gap: 15px; }.deposit-day { padding: 0; overflow: hidden; }.deposit-day-heading { padding: 17px 19px; display: flex; justify-content: space-between; align-items: center; gap: 18px; border-bottom: 1px solid var(--line); background: #f8fafb; }.deposit-day-heading h2 { font-size: 22px; }.deposit-day-title { display:flex; flex-wrap:wrap; align-items:baseline; gap:8px; }.deposit-day-title b { color:var(--green); font-size:15px; font-weight:800; white-space:nowrap; font-variant-numeric:tabular-nums; }.deposit-day-heading small { display: block; color: var(--muted); margin-top: 5px; font-size: 9.5px; }.deposit-day-totals { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }.deposit-day-totals span { display: inline-flex; align-items: center; gap: 6px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 9px; background: white; color: var(--muted); font-size: 9px; }.deposit-day-totals strong { color: var(--ink); font-size: 11px; font-variant-numeric: tabular-nums; }
.deposit-record-list { display: grid; }.deposit-record { position: relative; padding: 17px 19px 15px 22px; border-bottom: 1px solid #e9eff2; }.deposit-record:last-child { border-bottom: 0; }.deposit-record::before { content:""; position:absolute; inset:0 auto 0 0; width:4px; background:#9aa8b3; }.deposit-record.status-border-conciliado::before { background:var(--green); }.deposit-record.status-border-justificado::before { background:var(--blue); }.deposit-record.status-border-diferenca_pequena::before,.deposit-record.status-border-parcial::before { background:var(--amber); }.deposit-record.status-border-divergente::before,.deposit-record.status-border-sem_comprovante::before,.deposit-record.status-border-comprovante_sem_lancamento::before { background:var(--red); }.deposit-record.status-border-retirada_especie::before { background:#697481; }
.deposit-record-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:15px; margin-bottom:13px; }.deposit-record-heading h3 { margin:0 0 3px; font-size:14px; }.deposit-record-heading p { margin:0; color:var(--muted); font-size:10px; }
.deposit-record-grid { display:grid; grid-template-columns:minmax(270px,.8fr) minmax(330px,1.05fr) minmax(330px,1.15fr); gap:14px; align-items:start; }.deposit-record-grid h4 { margin:0 0 7px; color:var(--muted); text-transform:uppercase; letter-spacing:.7px; font-size:9px; }.deposit-values { display:grid; grid-template-columns:repeat(3,minmax(80px,1fr)); gap:7px; }.deposit-values div { padding:9px 10px; border-radius:9px; background:#f5f8f9; }.deposit-values span,.deposit-values strong { display:block; }.deposit-values span { color:var(--muted); font-size:8px; text-transform:uppercase; letter-spacing:.4px; }.deposit-values strong { margin-top:4px; font-size:12px; font-variant-numeric:tabular-nums; }
.deposit-account-list,.deposit-files { display:grid; gap:6px; }.deposit-account { display:grid; grid-template-columns:1fr auto; gap:4px 10px; padding:8px 10px; border:1px solid var(--line); border-radius:8px; background:#fbfcfc; }.deposit-account strong,.deposit-account small { display:block; }.deposit-account strong { font-size:10.5px; }.deposit-account small { margin-top:3px; color:var(--muted); font-size:8.5px; }.deposit-account b { font-size:10px; white-space:nowrap; font-variant-numeric:tabular-nums; }.deposit-account em { grid-column:1/-1; color:var(--blue); font-size:8px; font-style:normal; }.muted-inline { color:var(--muted); font-size:10px; }
.receipt-file { width:100%; border:1px solid #b8d3e3; border-radius:8px; padding:8px 10px; background:var(--blue-soft); color:var(--blue); display:flex; justify-content:space-between; gap:10px; text-align:left; }.receipt-file:hover { border-color:var(--blue); }.receipt-file span { font-size:10px; font-weight:800; white-space:nowrap; }.receipt-file small { max-width:235px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#51758d; font-size:8.5px; }.deposit-files .source-link { margin-top:3px; font-size:9px; }.deposit-no-file { padding:9px 10px; border-radius:8px; background:var(--red-soft); color:var(--red); }.deposit-no-file.informative { background:#eef2f4; color:#52606c; }.deposit-no-file strong,.deposit-no-file small { display:block; }.deposit-no-file strong { font-size:10px; }.deposit-no-file small { margin-top:3px; font-size:8.5px; opacity:.8; }
.deposit-note { margin:11px 0 0; padding:9px 11px; border-radius:8px; background:#fff7e8; color:#76551e; font-size:9.5px; line-height:1.45; }.deposit-source { margin-top:10px; padding-top:8px; border-top:1px dashed var(--line); font-size:9px; }
.empty-state.compact { padding: 25px 10px; }
.wide { max-height: calc(100vh - 285px); }
.store-layout { display: grid; grid-template-columns: 300px 1fr; gap: 17px; }
.store-list { display: grid; gap: 7px; max-height: calc(100vh - 205px); overflow: auto; }
.store-button { border: 1px solid transparent; background: #f5f8f9; padding: 11px; border-radius: 10px; text-align: left; display: flex; justify-content: space-between; }
.store-button:hover, .store-button.active { border-color: #a9cbe0; background: var(--blue-soft); }
.store-button strong { display: block; font-size: 12px; }.store-button small { color: var(--muted); font-size: 9px; }
.empty-state { text-align: center; padding: 80px 20px; color: var(--muted); }.empty-state span { font-size: 40px; }.empty-state p { max-width: 430px; margin: 10px auto; }
.store-header { display: flex; justify-content: space-between; gap: 20px; padding-bottom: 17px; border-bottom: 1px solid var(--line); }
.store-header h2 { font-size: 25px; }.store-header p { color: var(--muted); margin: 7px 0 0; }
.store-total-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 18px 0; }
.mini-metric { background: #f6f9fa; border-radius: 10px; padding: 12px; }.mini-metric span, .mini-metric strong { display: block; }.mini-metric span { color: var(--muted); font-size: 9px; text-transform: uppercase; }.mini-metric strong { font-size: 15px; margin-top: 5px; }
.section-title { font-size: 14px; margin: 22px 0 10px; }
.document-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.document-card { border: 1px solid var(--line); background: #fbfcfc; border-radius: 12px; padding: 14px; min-width: 0; }
.document-card .file-icon { width: 34px; height: 34px; border-radius: 9px; background: var(--blue-soft); color: var(--blue); display: grid; place-items: center; font-weight: 800; margin-bottom: 11px; text-transform: uppercase; font-size: 9px; }
.document-card h3 { font-size: 12px; line-height: 1.35; margin: 0 0 7px; overflow-wrap: anywhere; }.document-card p { color: var(--muted); font-size: 9px; margin-bottom: 5px; }.document-card .money { margin-top: 8px; display: block; }.document-card .ai-note { margin: 9px 0; padding: 8px; border-radius: 7px; background: #fff7e8; color: #71501f; line-height: 1.4; }.document-card button { margin-top: 8px; width: 100%; }
.assistant-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: 25px; min-height: calc(100vh - 155px); align-items: center; }
.assistant-intro { padding: 20px; }.assistant-intro h2 { font-size: 34px; line-height: 1.1; max-width: 500px; }.assistant-intro > p:not(.eyebrow) { color: var(--muted); line-height: 1.65; max-width: 520px; }
.example-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }.example-chips button { border: 1px solid #cbdde8; background: white; color: var(--blue); border-radius: 18px; padding: 8px 12px; font-size: 10px; }
.assistant-chat { padding: 0; overflow: hidden; min-height: 540px; display: grid; grid-template-rows: 1fr auto; }
.chat-history { padding: 22px; overflow: auto; max-height: calc(100vh - 245px); background: linear-gradient(180deg,#fbfdfe,#f4f8fa); }
.message { max-width: 82%; margin-bottom: 15px; padding: 13px 15px; border-radius: 13px; font-size: 12px; line-height: 1.55; box-shadow: 0 5px 16px rgba(12,36,64,.05); }.message p { margin: 4px 0 0; }.message.assistant { background: white; border: 1px solid var(--line); }.message.user { margin-left: auto; color: white; background: var(--blue); }.message small { display: block; margin-top: 8px; opacity: .7; }
.chat-form { padding: 14px; background: white; border-top: 1px solid var(--line); display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: end; }.chat-form textarea { resize: vertical; }
.source-grid { display: grid; grid-template-columns: 1fr 1.4fr; gap: 17px; }.source-panel { grid-column: 1/-1; }.health-cards { display: grid; gap: 10px; }.health-item { border-left: 3px solid var(--green); background: var(--green-soft); padding: 11px 13px; border-radius: 8px; }.health-item.warning { border-color: var(--amber); background: #fff7e8; }.health-item strong, .health-item small { display: block; }.health-item small { color: var(--muted); margin-top: 4px; }
.timeline { display: grid; gap: 10px; }.timeline-item { display: grid; grid-template-columns: 12px 1fr auto; gap: 10px; align-items: start; font-size: 11px; }.timeline-dot { width: 9px; height: 9px; margin-top: 4px; border-radius: 50%; background: var(--green); }.timeline-dot.failed { background: var(--red); }.timeline-item small { color: var(--muted); }.source-list { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }.source-item { padding: 12px; border-radius: 9px; background: #f6f9fa; }.source-item strong, .source-item small { display:block; }.source-item small { color: var(--muted); margin-top: 4px; }
.progress-card { background: var(--blue-soft); color: var(--blue); padding: 12px; border-radius: 10px; margin-bottom: 15px; font-size: 11px; }
.reports-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: 18px; }
.report-builder,.report-history-panel { min-height: 520px; }
.muted-copy { color: var(--muted); line-height: 1.55; max-width: 650px; }
.report-form { display: grid; gap: 12px; margin-top: 18px; }
.report-form textarea { min-height: 115px; resize: vertical; }
.check-field { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 11px; }
.check-field input { width: auto; }
.report-list,.backup-list { display: grid; gap: 10px; max-height: 610px; overflow: auto; }
.report-item { display: grid; grid-template-columns: 1fr auto; gap: 15px; align-items: center; padding: 13px; border: 1px solid var(--line); border-radius: 10px; background: #fbfcfc; }
.report-item strong,.report-item small { display: block; }.report-item small { color: var(--muted); margin-top: 4px; }.report-item p { color: var(--muted); font-size: 10px; margin: 7px 0 0; line-height: 1.45; }
.backup-panel { min-height: 260px; }
.backup-item { display: flex; justify-content: space-between; gap: 15px; align-items: center; padding: 10px 12px; border-radius: 9px; background: #f6f9fa; }
.backup-item strong,.backup-item small { display: block; }.backup-item small { color: var(--muted); margin-top: 3px; font-size: 9px; }.backup-item > div { display: flex; gap: 9px; }
.toast { position: fixed; right: 25px; top: 105px; z-index: 50; background: var(--navy); color: white; border-radius: 10px; padding: 12px 16px; box-shadow: var(--shadow); font-size: 11px; max-width: 420px; }
.pill { display: inline-block; border-radius: 12px; padding: 4px 7px; font-size: 9px; font-weight: 800; background: #eef3f5; color: var(--muted); }.pill.linked,.pill.status-confirmado,.pill.status-conciliado { background: var(--green-soft); color: var(--green); }.pill.status-divergente,.pill.status-sem_comprovante,.pill.status-comprovante_sem_lancamento { background: var(--red-soft); color: var(--red); }.pill.status-aguardando_comprovante,.pill.status-nao_arquivado_charles,.pill.status-diferenca_pequena,.pill.status-parcial { background: #fff7e8; color: var(--amber); }.pill.status-revisar,.pill.status-revisar_valor,.pill.status-justificado { background: var(--blue-soft); color: var(--blue); }.pill.status-retirada_especie { background:#eef2f4; color:#52606c; }
.metric-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 15px; }
.compact-metrics { margin-top: 14px; }
.metric-card.warning::before { background: var(--amber); }
@media (max-width: 1450px) { .account-filters { grid-template-columns: repeat(4,1fr); }.deposit-overview { align-items:flex-start; }.deposit-overview-values { flex-direction:column; }.deposit-overview-values span { min-width:180px; }.deposit-record-grid { grid-template-columns:1fr 1fr; }.deposit-values { grid-column:1/-1; } }
@media (max-width: 1350px) { .hero-grid,.metric-grid { grid-template-columns: repeat(2,1fr); }.filters { grid-template-columns: repeat(4,1fr); }.reports-layout { grid-template-columns: 1fr; }.document-grid { grid-template-columns: repeat(3,1fr); } }

/* Conferência de depósitos: pendências, fechamento, edição e comprovantes */
.deposit-sync-line { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; margin-top:9px; color:var(--muted); font-size:9px; }
.deposit-sync-line .live-dot { width:7px; height:7px; border-radius:50%; background:#35a879; box-shadow:0 0 0 4px rgba(53,168,121,.12); }
.deposit-pending-panel { padding:18px 20px; background:linear-gradient(145deg,#fff,#fbf8f2); }
.deposit-validation-panel { position:relative; overflow:hidden; padding:20px; margin-bottom:13px; border-color:#c9dde8; background:linear-gradient(145deg,#ffffff,#f2f8fb); }
.deposit-validation-panel::before { content:""; position:absolute; inset:0 auto 0 0; width:5px; background:var(--green); }
.deposit-validation-panel.validation-panel-atencao::before { background:var(--amber); }.deposit-validation-panel.validation-panel-bloqueado::before { background:var(--red); }
.validation-panel-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:22px; }
.validation-panel-heading h2 { margin:0 0 5px; font-size:20px; }.validation-panel-heading p:last-child { margin:0; max-width:690px; color:var(--muted); font-size:10px; line-height:1.5; }
.validation-source-state { min-width:280px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:rgba(255,255,255,.85); }
.validation-source-state > span,.validation-source-state > strong,.validation-source-state > small { display:block; }.validation-source-state > span { color:var(--muted); font-size:8px; text-transform:uppercase; letter-spacing:.6px; }.validation-source-state > strong { margin-top:4px; }.validation-source-state > small { margin-top:5px; color:var(--muted); font-size:8.5px; line-height:1.4; }
.validation-metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:9px; margin-top:15px; }
.validation-metric { position:relative; overflow:hidden; border:1px solid var(--line); border-radius:10px; padding:11px 12px 11px 15px; background:white; text-align:left; color:var(--ink); }
.validation-metric::before { content:""; position:absolute; inset:0 auto 0 0; width:4px; background:#9aa8b3; }.validation-metric.validation-validado::before { background:var(--green); }.validation-metric.validation-revisado::before { background:var(--blue); }.validation-metric.validation-atencao::before { background:var(--amber); }.validation-metric.validation-bloqueado::before { background:var(--red); }
.validation-metric:hover { border-color:#91b6ca; transform:translateY(-1px); }.validation-metric span,.validation-metric strong,.validation-metric small { display:block; }.validation-metric span { color:var(--muted); font-size:8px; text-transform:uppercase; letter-spacing:.55px; }.validation-metric strong { margin-top:4px; font-size:18px; }.validation-metric small { margin-top:2px; color:var(--muted); font-size:8px; }
.validation-source-alert { display:flex; gap:10px; align-items:flex-start; margin-top:12px; padding:10px 12px; border-radius:9px; border:1px solid #ead3a4; background:#fff8e9; color:#75551e; }.validation-source-alert.severity-block { border-color:#e5b8b2; background:var(--red-soft); color:var(--red); }.validation-source-alert > span { width:22px; height:22px; display:grid; place-items:center; flex:0 0 auto; border-radius:50%; background:rgba(255,255,255,.75); font-weight:900; }.validation-source-alert strong,.validation-source-alert small { display:block; }.validation-source-alert strong { font-size:10px; }.validation-source-alert small { margin-top:3px; font-size:8.7px; line-height:1.4; }
.validation-safe { display:flex; gap:10px; align-items:center; margin-top:13px; padding:11px 12px; border-radius:9px; background:var(--green-soft); color:var(--green); }.validation-safe > span { width:26px; height:26px; display:grid; place-items:center; border-radius:50%; background:white; font-weight:900; }.validation-safe strong,.validation-safe small { display:block; }.validation-safe small { margin-top:2px; opacity:.8; font-size:8.5px; }
.validation-queue { margin-top:14px; display:grid; gap:6px; }.validation-queue-title { display:flex; justify-content:space-between; align-items:center; margin-bottom:2px; }.validation-queue-title strong { font-size:11px; }.validation-queue-title small { color:var(--muted); font-size:8.5px; }
.validation-queue-row { display:grid; grid-template-columns:28px minmax(180px,.75fr) minmax(260px,1.4fr) auto; gap:10px; align-items:center; padding:9px 10px; border:1px solid #dbe6eb; border-radius:9px; background:rgba(255,255,255,.9); }.validation-queue-row strong,.validation-queue-row small { display:block; }.validation-queue-row strong { font-size:9.5px; }.validation-queue-row small { margin-top:2px; color:var(--muted); font-size:8.3px; line-height:1.35; }
.validation-shield { width:25px; height:25px; display:grid; place-items:center; border-radius:8px; flex:0 0 auto; background:var(--green-soft); color:var(--green); font-weight:900; }.validation-shield.validation-bloqueado { background:var(--red-soft); color:var(--red); }.validation-shield.validation-atencao { background:#fff7e8; color:var(--amber); }
.validation-pill { display:inline-flex; align-items:center; border-radius:12px; padding:4px 7px; font-size:8.5px; font-weight:850; white-space:nowrap; }.validation-pill.validation-validado { background:var(--green-soft); color:var(--green); }.validation-pill.validation-revisado { background:var(--blue-soft); color:var(--blue); }.validation-pill.validation-atencao { background:#fff7e8; color:var(--amber); }.validation-pill.validation-bloqueado { background:var(--red-soft); color:var(--red); }
.record-validation { margin-top:12px; padding:10px 11px; border:1px solid #d8e5ea; border-radius:10px; background:#f8fbfc; }.record-validation.validation-atencao { border-color:#ead5aa; background:#fffbf2; }.record-validation.validation-bloqueado { border-color:#e7beb9; background:#fff7f6; }.record-validation.validation-revisado { border-color:#bfd9e8; background:#f5fafe; }
.record-validation-heading { display:flex; align-items:center; gap:9px; }.record-validation-heading > div { min-width:0; flex:1; }.record-validation-heading strong,.record-validation-heading small { display:block; }.record-validation-heading strong { font-size:10px; }.record-validation-heading small { margin-top:2px; color:var(--muted); font-size:8px; }
.validation-sources { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }.validation-source { min-width:150px; display:grid; grid-template-columns:1fr auto; gap:2px 8px; align-items:center; padding:6px 8px; border:1px solid #dce6ea; border-radius:8px; background:white; }.validation-source.selected { border-color:#9dc8b7; box-shadow:inset 0 0 0 1px #d8eee5; }.validation-source small { color:var(--muted); font-size:7.8px; }.validation-source strong { font-size:9.5px; font-variant-numeric:tabular-nums; }.validation-source em { grid-column:1/-1; color:var(--green); font-size:7.2px; font-style:normal; text-transform:uppercase; letter-spacing:.45px; }.validation-no-source { display:block; margin-top:7px; color:var(--muted); font-size:8.5px; }
.validation-issues { display:grid; gap:5px; margin:8px 0 0; padding:0; list-style:none; }.validation-issues li { display:flex; gap:7px; align-items:flex-start; padding:6px 8px; border-radius:7px; background:white; }.validation-issues li > span { width:17px; height:17px; display:grid; place-items:center; flex:0 0 auto; border-radius:50%; font-size:8px; font-weight:900; }.validation-issues strong,.validation-issues small { display:block; }.validation-issues strong { font-size:8.7px; }.validation-issues small { margin-top:2px; color:var(--muted); font-size:7.8px; line-height:1.35; }.validation-issues .severity-block > span { background:var(--red-soft); color:var(--red); }.validation-issues .severity-warning > span { background:#fff1ce; color:var(--amber); }.validation-issues .severity-info > span { background:var(--blue-soft); color:var(--blue); }
.deposit-record.validation-border-bloqueado { box-shadow:inset 0 0 0 1px rgba(183,62,50,.08); }
.pending-heading { display:flex; justify-content:space-between; gap:18px; align-items:flex-start; margin-bottom:14px; }
.pending-heading p:last-child { margin:5px 0 0; color:var(--muted); font-size:10px; }
.pending-summary-grid { display:grid; grid-template-columns:repeat(5,minmax(135px,1fr)); gap:9px; }
.pending-summary-card { border:1px solid var(--line); border-radius:10px; background:white; padding:11px 12px; text-align:left; color:var(--ink); }
button.pending-summary-card:hover { border-color:#9ebdce; transform:translateY(-1px); }
.pending-summary-card span,.pending-summary-card strong,.pending-summary-card small { display:block; }
.pending-summary-card span { color:var(--muted); text-transform:uppercase; letter-spacing:.55px; font-size:8px; }
.pending-summary-card strong { margin-top:5px; font-size:17px; font-variant-numeric:tabular-nums; }
.pending-summary-card small { color:var(--muted); margin-top:3px; font-size:8.5px; }
.pending-list { display:grid; gap:6px; margin-top:12px; }
.pending-row { display:grid; grid-template-columns:110px minmax(170px,1fr) 160px 130px auto; gap:12px; align-items:center; padding:9px 11px; border-radius:9px; background:#fff; border:1px solid #eadfce; font-size:9.5px; }
.pending-row strong,.pending-row small { display:block; }.pending-row small { color:var(--muted); margin-top:2px; }
.pending-row .money { text-align:right; }
.pending-empty { display:flex; align-items:center; gap:12px; color:var(--green); }.pending-empty .checkmark { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:var(--green-soft); font-size:18px; }
.deposit-record-actions { display:flex; align-items:center; justify-content:flex-end; gap:7px; flex-wrap:wrap; }
.deposit-record-actions .pill { margin-right:3px; }
.mini-action { border:1px solid var(--line); background:white; color:var(--blue); border-radius:8px; padding:6px 9px; font-weight:700; font-size:9px; }
.mini-action:hover { border-color:var(--blue); background:var(--blue-soft); }
.mini-action.blocked-action { border-color:#e0b2ac; background:var(--red-soft); color:var(--red); }
.deposit-day-actions { display:flex; justify-content:flex-end; align-items:center; gap:7px; margin-top:8px; }
.day-closure { display:inline-flex; align-items:center; gap:6px; padding:6px 9px; border-radius:8px; font-size:9px; font-weight:800; background:#fff7e8; color:var(--amber); }
.day-closure.closed { background:var(--green-soft); color:var(--green); }.day-closure.stale { background:var(--red-soft); color:var(--red); }
.receipt-gallery { display:grid; grid-template-columns:repeat(2,minmax(120px,1fr)); gap:8px; }
.receipt-thumb { border:1px solid #c8dce7; border-radius:10px; padding:0; background:#f7fbfd; color:var(--blue); overflow:hidden; text-align:left; min-width:0; }
.receipt-thumb:hover { border-color:var(--blue); box-shadow:0 7px 18px rgba(23,107,157,.12); }
.receipt-thumb img { display:block; width:100%; height:112px; object-fit:cover; background:#e8eef1; }
.receipt-thumb-copy { display:block; padding:8px 9px; }
.receipt-thumb strong,.receipt-thumb small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.receipt-thumb strong { font-size:9.5px; }.receipt-thumb small { margin-top:3px; color:#607f91; font-size:8px; }
.receipt-file-generic { height:112px; display:grid; place-items:center; background:#e9f2f7; font-weight:900; font-size:20px; }
.review-stamp { margin:10px 0 0; display:flex; align-items:center; gap:7px; color:var(--blue); font-size:8.5px; }
.pill.status-conferido_manual,.legend-dot.status-conferido_manual { background:#dff5ec; color:#126b50; }.legend-dot.status-conferido_manual { width:8px; height:8px; border-radius:50%; }
.status-border-conferido_manual::before { background:#128463 !important; }
.button.danger { background:#fff; border:1px solid #e3b3ad; color:var(--red); }.button.danger:hover { background:var(--red-soft); }

body.modal-open { overflow:hidden; }
.modal-shell[hidden] { display:none; }
.modal-shell { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:26px; }
.modal-backdrop { position:absolute; inset:0; background:rgba(8,26,44,.64); backdrop-filter:blur(4px); }
.modal-card { position:relative; z-index:1; width:min(900px,calc(100vw - 52px)); max-height:calc(100vh - 52px); overflow:auto; border-radius:16px; background:#fff; box-shadow:0 28px 80px rgba(4,22,38,.35); padding:22px; }
.modal-header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding-bottom:15px; border-bottom:1px solid var(--line); margin-bottom:17px; }
.modal-header h2 { font-size:21px; }.modal-header p:last-child { margin:5px 0 0; color:var(--muted); font-size:10px; }
.modal-close { border:0; width:34px; height:34px; border-radius:50%; background:#eef3f5; color:var(--muted); font-size:22px; line-height:1; }
.review-original { padding:12px 14px; border-radius:10px; background:#f4f8fa; margin-bottom:15px; }
.review-original h3 { margin:0 0 8px; font-size:10px; text-transform:uppercase; letter-spacing:.7px; color:var(--muted); }
.review-original-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }.review-original-grid span,.review-original-grid strong { display:block; }.review-original-grid span { color:var(--muted); font-size:8px; text-transform:uppercase; }.review-original-grid strong { margin-top:4px; font-size:10px; }
.review-form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }.review-form-grid .wide { grid-column:1/-1; }
.review-form-grid label,.day-modal-card label { display:block; }.review-form-grid label>span,.day-modal-card label>span { display:block; margin-bottom:6px; color:var(--muted); text-transform:uppercase; letter-spacing:.55px; font-size:8.5px; font-weight:800; }
.review-form-grid input,.review-form-grid select,.review-form-grid textarea,.day-modal-card textarea { width:100%; border:1px solid var(--line); border-radius:9px; background:#fbfcfc; padding:10px 11px; color:var(--ink); outline:none; }
.review-form-grid input:focus,.review-form-grid select:focus,.review-form-grid textarea:focus,.day-modal-card textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(23,107,157,.1); }
.review-form-grid label small { display:block; margin-top:4px; color:var(--muted); font-size:8px; }
.review-audit { margin-top:14px; padding-top:13px; border-top:1px dashed var(--line); }.review-audit h3 { margin:0 0 8px; font-size:10px; }.audit-line { display:flex; justify-content:space-between; gap:12px; padding:6px 0; color:var(--muted); font-size:8.5px; }
.modal-actions { display:grid; grid-template-columns:auto 1fr auto auto; align-items:center; gap:9px; padding-top:17px; margin-top:17px; border-top:1px solid var(--line); }
.day-modal-card { width:min(590px,calc(100vw - 52px)); }.day-close-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:14px; }.day-close-summary div { padding:10px; border-radius:9px; background:#f4f8fa; }.day-close-summary span,.day-close-summary strong { display:block; }.day-close-summary span { color:var(--muted); font-size:8px; text-transform:uppercase; }.day-close-summary strong { margin-top:4px; font-size:12px; }
.receipt-viewer-card { width:min(1050px,calc(100vw - 52px)); }.receipt-viewer-stage { min-height:430px; max-height:calc(100vh - 210px); overflow:auto; display:grid; place-items:center; border-radius:12px; background:#17232e; }.receipt-viewer-stage img { display:block; max-width:100%; max-height:calc(100vh - 220px); object-fit:contain; }.receipt-viewer-stage iframe { width:100%; height:calc(100vh - 220px); border:0; background:white; }

@media (max-width:1450px) { .pending-summary-grid { grid-template-columns:repeat(3,1fr); }.pending-row { grid-template-columns:95px minmax(150px,1fr) 140px 120px auto; }.receipt-gallery { grid-template-columns:1fr; }.validation-queue-row { grid-template-columns:28px minmax(150px,.7fr) minmax(220px,1.3fr) auto; } }
@media (max-width:1100px) { .validation-panel-heading { flex-direction:column; }.validation-source-state { width:100%; }.validation-metrics { grid-template-columns:repeat(2,1fr); }.validation-queue-row { grid-template-columns:28px 1fr auto; }.validation-queue-row>span:nth-child(3) { grid-column:2/-1; }.deposit-record-actions { justify-content:flex-start; } }

/* Dinheiro: fechamento de caixa e prestação de contas */
.cash-command-panel { display:flex; align-items:center; justify-content:space-between; gap:28px; margin-bottom:17px; padding:24px 26px; border-radius:17px; color:white; background:linear-gradient(125deg,#0b2744 0%,#114d70 58%,#1b7b86 100%); box-shadow:0 18px 40px rgba(12,36,64,.16); overflow:hidden; position:relative; }
.cash-command-panel::after { content:""; position:absolute; width:260px; height:260px; right:-95px; top:-150px; border-radius:50%; border:38px solid rgba(255,255,255,.07); }
.cash-command-copy { position:relative; z-index:1; max-width:640px; }.cash-command-copy .eyebrow { color:#7ee0d4; }.cash-command-copy h2 { font-size:25px; letter-spacing:-.55px; }.cash-command-copy p:last-child { max-width:700px; margin:8px 0 0; color:#d5e5ed; line-height:1.55; font-size:11px; }
.cash-command-actions { position:relative; z-index:1; display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:flex-end; gap:8px; }.cash-command-actions label>span { display:block; margin-bottom:5px; color:#bcd2de; text-transform:uppercase; letter-spacing:.7px; font-size:8.5px; font-weight:800; }.cash-command-actions input { min-width:138px; border-color:rgba(255,255,255,.25); background:rgba(255,255,255,.96); }.cash-command-actions .button.secondary { background:rgba(255,255,255,.14); color:white; border:1px solid rgba(255,255,255,.18); }.cash-command-actions .button.secondary:hover { background:rgba(255,255,255,.22); }.cash-command-actions .button.primary { background:#fff; color:#11577c; box-shadow:0 8px 20px rgba(0,0,0,.15); }
.cash-summary-grid { display:grid; grid-template-columns:1.35fr repeat(5,1fr); gap:12px; margin-bottom:15px; }.cash-loading-card { grid-column:1/-1; padding:30px; border-radius:14px; background:white; border:1px solid var(--line); color:var(--muted); text-align:center; }.cash-balance-card,.cash-metric { min-height:122px; border-radius:14px; border:1px solid var(--line); background:white; box-shadow:var(--shadow); padding:17px 17px 15px; position:relative; overflow:hidden; }.cash-balance-card { color:white; border-color:#173c5d; background:linear-gradient(145deg,#0c2947,#154e72); }.cash-balance-card::after { content:"R$"; position:absolute; right:12px; bottom:-19px; color:rgba(255,255,255,.07); font-size:72px; font-weight:900; }.cash-balance-card span,.cash-balance-card strong,.cash-balance-card small,.cash-metric span,.cash-metric strong,.cash-metric small { display:block; position:relative; z-index:1; }.cash-balance-card span,.cash-metric span { color:#718392; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.55px; }.cash-balance-card span { color:#b9d2df; }.cash-balance-card strong,.cash-metric strong { margin:8px 0 6px; font-size:21px; letter-spacing:-.45px; font-variant-numeric:tabular-nums; }.cash-balance-card strong { font-size:25px; }.cash-balance-card small { color:#b9d2df; font-size:9px; }.cash-metric small { color:var(--muted); font-size:8.5px; line-height:1.4; }.cash-metric::before { content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:#8ca3b1; }.cash-metric.positive::before { background:var(--green); }.cash-metric.positive strong { color:var(--green); }.cash-metric.outgoing::before { background:#c26952; }.cash-metric.warning::before { background:var(--amber); }.cash-metric.warning strong { color:var(--amber); }
.cash-control-panel { margin-bottom:15px; background:linear-gradient(135deg,#fff,#f6fafc); }.cash-control-heading { display:flex; justify-content:space-between; gap:25px; align-items:flex-start; }.cash-control-heading h2 { font-size:18px; }.cash-control-heading p:last-child { margin:6px 0 0; color:var(--muted); line-height:1.45; font-size:10px; }.cash-source-stamp { min-width:245px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:white; }.cash-source-stamp span,.cash-source-stamp strong,.cash-source-stamp small { display:block; }.cash-source-stamp span { color:var(--muted); text-transform:uppercase; letter-spacing:.55px; font-size:8px; }.cash-source-stamp strong { margin:4px 0; font-size:9.5px; }.cash-source-stamp small { color:var(--muted); font-size:8px; }
.cash-equation { display:grid; grid-template-columns:repeat(4,minmax(125px,1fr)) 28px minmax(145px,1.12fr); gap:8px; align-items:center; margin-top:17px; padding-top:15px; border-top:1px solid var(--line); }.cash-equation>div { padding:10px 12px; border-radius:10px; background:white; border:1px solid var(--line); }.cash-equation>div span,.cash-equation>div strong { display:block; }.cash-equation>div span { color:var(--muted); text-transform:uppercase; letter-spacing:.5px; font-size:8px; }.cash-equation>div strong { margin-top:5px; font-size:14px; font-variant-numeric:tabular-nums; }.cash-equation>b { color:#8ba0ad; text-align:center; font-size:18px; }.cash-equation .cash-equation-adjust { background:#fff9ec; border-color:#efd9ae; }.cash-equation .cash-equation-result { color:white; border-color:#17684f; background:linear-gradient(145deg,#17684f,#1f8064); }.cash-equation .cash-equation-result span { color:#cce9de; }.cash-equation .cash-equation-result strong { font-size:17px; }
.cash-ledger-panel { padding:0; overflow:hidden; }.cash-ledger-heading { margin:0; padding:18px 20px; background:#f8fafb; border-bottom:1px solid var(--line); }.cash-legend { display:flex; flex-wrap:wrap; gap:13px; color:var(--muted); font-size:8.5px; }.cash-legend span { display:inline-flex; align-items:center; gap:5px; }.cash-dot { width:7px; height:7px; border-radius:50%; background:#8799a5; }.cash-dot.closed { background:var(--green); }.cash-dot.justified { background:var(--blue); }.cash-dot.attention { background:var(--red); }.cash-dot.incomplete { background:var(--amber); }
.cash-flow-days { display:grid; }.cash-day { position:relative; border-bottom:1px solid var(--line); background:white; padding:18px 20px 20px 23px; }.cash-day:last-child { border-bottom:0; }.cash-day::before { content:""; position:absolute; inset:0 auto 0 0; width:4px; background:var(--green); }.cash-day.status-justificado::before { background:var(--blue); }.cash-day.status-ajuste_parcial::before { background:var(--amber); }.cash-day.status-ajuste_pendente::before,.cash-day.status-divergente::before { background:var(--red); }.cash-day.status-incompleto::before { background:var(--amber); }.cash-day-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:14px; }.cash-day-title { display:flex; flex-wrap:wrap; gap:9px; align-items:center; }.cash-day-title h3 { margin:0; font-size:18px; }.cash-day-heading p { margin:4px 0 0; color:var(--muted); font-size:9px; }.cash-day-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; }.cash-status { display:inline-flex; align-items:center; border-radius:14px; padding:5px 8px; background:var(--green-soft); color:var(--green); font-size:8.5px; font-weight:800; }.cash-status.status-justificado { background:var(--blue-soft); color:var(--blue); }.cash-status.status-ajuste_parcial { background:#fff7e7; color:var(--amber); }.cash-status.status-ajuste_pendente,.cash-status.status-divergente { background:var(--red-soft); color:var(--red); }.cash-status.status-incompleto { background:#fff7e7; color:var(--amber); }
.cash-route { display:grid; grid-template-columns:1fr 22px 1.05fr 22px 1fr 22px 1.12fr; align-items:stretch; gap:5px; }.cash-route>div { min-width:0; padding:11px 12px; border:1px solid var(--line); border-radius:10px; background:#f8fafb; }.cash-route>b { display:grid; place-items:center; color:#94a5b0; font-size:18px; }.cash-route span,.cash-route strong,.cash-route small { display:block; }.cash-route span { color:var(--muted); font-size:8px; text-transform:uppercase; letter-spacing:.5px; }.cash-route strong { margin-top:5px; font-size:15px; font-variant-numeric:tabular-nums; }.cash-route-in { background:#f1faf6!important; border-color:#d1eadf!important; }.cash-route-in strong { color:var(--green); }.cash-route-out { background:#fff7f3!important; border-color:#f0dbd1!important; }.cash-route-close { color:white; background:linear-gradient(145deg,#173b5d,#1a6587)!important; border-color:#174a6b!important; }.cash-route-close span,.cash-route-close small { color:#c2dae6; }.cash-route-close small { margin-top:4px; font-size:8px; }
.cash-breakdown { display:grid; grid-template-columns:repeat(4,1fr); gap:7px; margin:8px 0 11px; padding-left:calc(2.05fr + 49px); }.cash-breakdown>span { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:7px 9px; border-radius:8px; background:#f5f8f9; }.cash-breakdown small { color:var(--muted); font-size:8px; }.cash-breakdown strong { font-size:9px; font-variant-numeric:tabular-nums; }
.cash-day-evidence { display:grid; grid-template-columns:.78fr 1.22fr; gap:9px; }.cash-passage,.cash-accounts { padding:10px 12px; border-radius:10px; border:1px solid var(--line); background:#f8fafb; }.cash-passage span,.cash-passage strong,.cash-passage small,.cash-accounts span,.cash-accounts strong,.cash-accounts small { display:block; }.cash-passage span,.cash-accounts span { color:var(--muted); font-size:8px; text-transform:uppercase; letter-spacing:.5px; }.cash-passage strong,.cash-accounts strong { margin-top:5px; font-size:10.5px; line-height:1.35; }.cash-passage small,.cash-accounts small { margin-top:4px; color:var(--muted); font-size:8.5px; line-height:1.35; }.cash-passage.good { color:var(--green); background:var(--green-soft); border-color:#cae8dc; }.cash-passage.good span,.cash-passage.good small { color:#4d806d; }.cash-passage.attention { color:var(--red); background:var(--red-soft); border-color:#f0d1ca; }.cash-passage.attention span,.cash-passage.attention small { color:#8c625b; }.cash-passage.explained { color:var(--blue); background:var(--blue-soft); border-color:#cbe0ec; }.cash-passage.explained span,.cash-passage.explained small { color:#55788d; }
.cash-source-checks { display:grid; grid-template-columns:repeat(4,1fr); gap:7px; margin-top:8px; }.cash-source-check { padding:8px 9px; border-radius:8px; border:1px solid var(--line); background:#fafcfc; }.cash-source-check span,.cash-source-check strong,.cash-source-check small { display:block; }.cash-source-check span { color:var(--muted); font-size:7.5px; text-transform:uppercase; }.cash-source-check strong { margin-top:3px; font-size:9px; }.cash-source-check small { margin-top:2px; color:var(--muted); font-size:7.5px; }.cash-source-check.match { background:var(--green-soft); border-color:#d1e8de; color:var(--green); }.cash-source-check.mismatch { background:#fff7e7; border-color:#eed9b4; color:var(--amber); }
.cash-saved-note { display:flex; gap:10px; align-items:flex-start; margin-top:9px; padding:9px 11px; border-left:3px solid var(--blue); border-radius:0 8px 8px 0; background:var(--blue-soft); }.cash-saved-note span { flex:0 0 auto; color:var(--blue); text-transform:uppercase; letter-spacing:.5px; font-size:8px; }.cash-saved-note strong { color:#31586e; font-size:9px; line-height:1.4; }.cash-incomplete-warning { display:flex; align-items:center; gap:10px; margin:-3px 0 11px; padding:9px 11px; border-radius:9px; color:#815b1c; background:#fff7e7; border:1px solid #efd9af; }.cash-incomplete-warning strong { font-size:9px; }.cash-incomplete-warning span { color:#8b6b36; font-size:8.5px; }
.cash-note-modal { width:min(650px,calc(100vw - 52px)); }.cash-note-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:15px; }.cash-note-summary>div { padding:11px; border-radius:9px; background:#f4f8fa; }.cash-note-summary span,.cash-note-summary strong { display:block; }.cash-note-summary span { color:var(--muted); text-transform:uppercase; letter-spacing:.5px; font-size:8px; }.cash-note-summary strong { margin-top:5px; font-size:12px; }.cash-note-fields { display:grid; gap:12px; }.cash-note-fields label>span { display:block; margin-bottom:6px; color:var(--muted); text-transform:uppercase; letter-spacing:.55px; font-size:8.5px; font-weight:800; }.cash-note-fields select,.cash-note-fields textarea { width:100%; }.cash-note-fields textarea { resize:vertical; }

.occurrence-panel,.dossier-panel { margin-bottom:15px; }.occurrence-heading,.dossier-heading { align-items:flex-start; }.occurrence-heading h2,.dossier-heading h2 { font-size:18px; }.occurrence-heading p:last-child,.dossier-heading p:last-child { margin:5px 0 0; color:var(--muted); font-size:9.5px; line-height:1.45; }
.occurrence-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin:0 0 14px; }.occurrence-stat { padding:11px 12px; border:1px solid var(--line); border-radius:10px; background:#f8fafb; }.occurrence-stat span,.occurrence-stat strong,.occurrence-stat small { display:block; }.occurrence-stat span { color:var(--muted); font-size:8px; text-transform:uppercase; letter-spacing:.5px; }.occurrence-stat strong { margin:5px 0 2px; font-size:15px; font-variant-numeric:tabular-nums; }.occurrence-stat small { color:var(--muted); font-size:8px; }.occurrence-stat.entry strong { color:var(--green); }.occurrence-stat.exit strong,.occurrence-stat.pending strong { color:var(--red); }
.occurrence-list { display:grid; gap:7px; }.occurrence-row { display:grid; grid-template-columns:105px 130px 165px 135px minmax(210px,1fr) auto; gap:11px; align-items:center; padding:10px 11px; border:1px solid var(--line); border-radius:10px; background:white; }.occurrence-row>div span,.occurrence-row>div strong,.occurrence-row>div small { display:block; }.occurrence-row>div span { color:var(--muted); text-transform:uppercase; letter-spacing:.45px; font-size:7.5px; }.occurrence-row>div strong { margin-top:3px; font-size:9.5px; line-height:1.35; }.occurrence-row>div small { margin-top:2px; color:var(--muted); font-size:8px; }.occurrence-value { text-align:right; font-size:12px!important; font-variant-numeric:tabular-nums; }.occurrence-value.entry { color:var(--green); }.occurrence-value.exit { color:var(--red); }.occurrence-actions { display:flex; justify-content:flex-end; gap:6px; flex-wrap:wrap; }.occurrence-direction { display:inline-flex!important; width:max-content; padding:4px 7px; border-radius:12px; font-size:8px!important; font-weight:800; }.occurrence-direction.entry { color:var(--green); background:var(--green-soft); }.occurrence-direction.exit { color:var(--red); background:var(--red-soft); }
.cash-day-occurrences { display:grid; gap:5px; margin-top:9px; }.cash-day-occurrence { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; padding:8px 10px; border:1px solid #cfe1ea; border-radius:8px; background:#f5fafc; }.cash-day-occurrence span,.cash-day-occurrence strong { font-size:8.5px; line-height:1.35; }.cash-day-occurrence span { color:#42677c; }.cash-day-occurrence strong { white-space:nowrap; color:var(--blue); }.cash-day-occurrence.exit strong { color:var(--red); }
.dossier-list { display:grid; gap:7px; }.dossier-item { display:grid; grid-template-columns:minmax(260px,1fr) auto; gap:14px; align-items:center; padding:11px 12px; border:1px solid var(--line); border-radius:10px; background:#f8fafb; }.dossier-item strong,.dossier-item small { display:block; }.dossier-item strong { font-size:10px; }.dossier-item small { margin-top:4px; color:var(--muted); font-size:8.5px; }.dossier-actions { display:flex; gap:7px; flex-wrap:wrap; justify-content:flex-end; }
.occurrence-modal { width:min(760px,calc(100vw - 52px)); }.occurrence-modal .modal-actions { position:sticky; bottom:0; z-index:2; background:white; box-shadow:0 -10px 18px rgba(255,255,255,.94); }.occurrence-form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }.occurrence-form-grid .wide { grid-column:1/-1; }.occurrence-form-grid label>span { display:block; margin-bottom:6px; color:var(--muted); text-transform:uppercase; letter-spacing:.55px; font-size:8.5px; font-weight:800; }.occurrence-form-grid input,.occurrence-form-grid select,.occurrence-form-grid textarea { width:100%; }.occurrence-form-grid label small { display:block; margin-top:4px; color:var(--muted); font-size:8px; }.occurrence-form-grid textarea { resize:vertical; }

@media (max-width:1550px) { .cash-summary-grid { grid-template-columns:1.3fr repeat(2,1fr); }.cash-equation { grid-template-columns:repeat(4,1fr) 20px 1.1fr; }.cash-breakdown { padding-left:0; } }
@media (max-width:1250px) { .cash-command-panel,.cash-control-heading { align-items:flex-start; flex-direction:column; }.cash-command-actions { justify-content:flex-start; }.cash-route { grid-template-columns:1fr 18px 1fr 18px 1fr 18px 1.1fr; }.cash-day-evidence { grid-template-columns:1fr; }.cash-source-checks { grid-template-columns:repeat(2,1fr); }.occurrence-row { grid-template-columns:100px 120px 140px 120px minmax(180px,1fr); }.occurrence-actions { grid-column:1/-1; } }

@media print {
  body { min-width:0; background:white; }
  .sidebar,.topbar,.toast,.modal-shell,.cash-command-actions,.cash-day-actions,.occurrence-heading .button,.dossier-panel { display:none!important; }
  .app-shell { display:block; }.app-shell main { display:block; }.view { display:none!important; padding:0; }.view#view-cash { display:block!important; }
  .cash-command-panel { color:var(--ink); background:white; border:1px solid var(--line); box-shadow:none; padding:14px; }.cash-command-panel::after { display:none; }.cash-command-copy .eyebrow { color:var(--blue); }.cash-command-copy p:last-child { color:var(--muted); }
  .cash-summary-grid { grid-template-columns:repeat(3,1fr); }.cash-balance-card { color:var(--ink); background:white; border-color:var(--line); }.cash-balance-card span,.cash-balance-card small { color:var(--muted); }
  .panel,.cash-balance-card,.cash-metric { box-shadow:none; }.cash-day { break-inside:avoid; page-break-inside:avoid; }.cash-ledger-panel { overflow:visible; }
}

/* Interface mobile dedicada: preserva integralmente a experiência desktop */
.mobile-topbar,.mobile-bottom-nav,.mobile-more-menu { display:none; }

@media (max-width:768px) {
  html { background:var(--paper); }
  body { min-width:0; width:100%; overflow-x:hidden; padding-bottom:76px; -webkit-tap-highlight-color:transparent; }
  body.mobile-menu-open { overflow:hidden; }
  .app-shell { display:block; min-height:100vh; }
  .sidebar,.topbar { display:none!important; }
  main { display:block; width:100%; min-width:0; }

  .mobile-topbar { display:flex; position:sticky; top:0; z-index:35; min-height:64px; padding:9px 13px; align-items:center; justify-content:space-between; gap:12px; color:white; background:linear-gradient(120deg,#0c2440,#153f5e 70%,#176b78); box-shadow:0 7px 20px rgba(12,36,64,.18); }
  .mobile-topbar-brand { display:flex; align-items:center; gap:10px; min-width:0; }
  .mobile-brand-mark { width:39px; height:39px; flex:0 0 39px; display:grid; place-items:center; border-radius:12px; background:linear-gradient(135deg,var(--cyan),var(--blue)); font-size:13px; font-weight:900; box-shadow:inset 0 0 0 1px rgba(255,255,255,.18); }
  .mobile-topbar-brand small,.mobile-topbar-brand strong { display:block; }
  .mobile-topbar-brand small { color:#a9c5d5; font-size:9px; text-transform:uppercase; letter-spacing:.8px; }
  .mobile-topbar-brand strong { margin-top:2px; max-width:245px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:17px; letter-spacing:-.25px; }
  .mobile-icon-button { width:40px; height:40px; flex:0 0 40px; border:1px solid rgba(255,255,255,.16); border-radius:12px; color:white; background:rgba(255,255,255,.10); font-size:21px; }

  .view { padding:14px 12px 96px; }
  .view.active { animation:mobileFade .18s ease-out; }
  @keyframes mobileFade { from { opacity:.55; transform:translateY(4px); } }
  .panel { padding:14px; border-radius:13px; box-shadow:0 7px 18px rgba(12,36,64,.055); }
  .panel-heading { align-items:flex-start; margin-bottom:13px; gap:9px; }
  .panel-heading h2 { font-size:17px; }
  h2 { font-size:17px; }
  .eyebrow { font-size:9px; }
  .button { min-height:42px; padding:10px 12px; border-radius:10px; }
  input,select,textarea { min-height:42px; width:100%; font-size:16px; }
  textarea { min-height:90px; }

  /* Tela inicial: resumo em cards pensado para toque */
  .hero-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin-bottom:10px; }
  .metric-card { min-width:0; padding:14px 13px; border-radius:13px; box-shadow:0 7px 18px rgba(12,36,64,.055); }
  .metric-card span { font-size:10px; }
  .metric-card strong { margin:7px 0 5px; font-size:18px; letter-spacing:-.35px; overflow-wrap:anywhere; }
  .metric-card small { font-size:8.5px; line-height:1.35; }
  .dashboard-grid { grid-template-columns:1fr; gap:10px; }
  .recent-panel { grid-column:auto; }
  .chart-panel { overflow:hidden; }
  .chart { height:205px; min-width:500px; }
  .chart-panel .chart { overflow:visible; }
  .category-row { grid-template-columns:78px 1fr 92px; gap:7px; }
  .rank-item { grid-template-columns:25px minmax(0,1fr) auto; }

  /* Filtros: campos grandes, duas colunas quando há espaço */
  .filters,.account-filters,.boleto-filters { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:9px; }
  .filters label:first-child { grid-column:1/-1; }
  .filters .button { width:100%; }
  .section-help { margin:-3px 0 13px; font-size:10px; }

  /* Tabelas continuam completas, mas com rolagem natural e área de toque maior */
  .table-wrap,.table-wrap.wide,.boleto-table { width:100%; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:10px; }
  .table-wrap table { min-width:680px; }
  th { font-size:8px; padding:9px 8px; }
  td { padding:10px 8px; font-size:10px; }
  .source-link { max-width:180px; }

  /* Dinheiro */
  .cash-command-panel { padding:17px 15px; margin-bottom:10px; border-radius:15px; gap:14px; }
  .cash-command-copy h2 { font-size:20px; }
  .cash-command-copy p:last-child { font-size:10px; }
  .cash-command-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; gap:8px; }
  .cash-command-actions label { grid-column:1/-1; }
  .cash-command-actions input,.cash-command-actions .button { width:100%; min-width:0; }
  .cash-command-actions .button.primary { grid-column:1/-1; }
  .cash-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-bottom:10px; }
  .cash-balance-card { grid-column:1/-1; min-height:108px; }
  .cash-balance-card,.cash-metric { min-height:105px; padding:14px; }
  .cash-balance-card strong { font-size:24px; }
  .cash-metric strong { font-size:17px; }
  .cash-control-heading,.cash-day-heading,.cash-ledger-heading { flex-direction:column; align-items:stretch; }
  .cash-source-stamp { min-width:0; width:100%; }
  .cash-equation { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
  .cash-equation>b { display:none; }
  .cash-equation .cash-equation-result { grid-column:1/-1; }
  .cash-route { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
  .cash-route>b { display:none; }
  .cash-route>div { padding:10px; }
  .cash-route-close { grid-column:1/-1; }
  .cash-breakdown { grid-template-columns:repeat(2,minmax(0,1fr)); padding-left:0; }
  .cash-day { padding:15px 12px 16px 15px; }
  .cash-day-actions { justify-content:flex-start; }
  .cash-legend { gap:8px 10px; }
  .cash-source-checks,.cash-day-evidence { grid-template-columns:1fr!important; }
  .occurrence-row { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:8px; }
  .occurrence-row>div:last-of-type,.occurrence-actions { grid-column:1/-1; }
  .occurrence-value { text-align:left; }
  .dossier-item { grid-template-columns:1fr; }
  .dossier-actions { justify-content:flex-start; }

  /* Depósitos e boletos */
  .boleto-summary-grid,.metric-grid,.pending-summary-grid,.validation-metrics { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:8px; }
  .deposit-overview { flex-direction:column; align-items:stretch; gap:12px; padding:14px; }
  .deposit-overview-values { display:grid; grid-template-columns:1fr; width:100%; }
  .deposit-overview-values span { min-width:0; width:100%; }
  .deposit-record-grid { grid-template-columns:1fr!important; }
  .deposit-values { grid-column:auto; }
  .deposit-record-heading,.deposit-day-heading,.validation-panel-heading { flex-direction:column; align-items:stretch; }
  .deposit-record-actions,.deposit-day-actions { justify-content:flex-start; }
  .deposit-day-totals { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
  .validation-source-state { min-width:0; width:100%; }
  .validation-queue-row,.pending-row { display:grid!important; grid-template-columns:1fr!important; gap:5px; }
  .receipt-gallery { grid-template-columns:1fr!important; }

  /* Documentos, lojas e relatórios */
  .document-grid { grid-template-columns:1fr!important; gap:9px; }
  .source-grid,.reports-layout,.store-layout { grid-template-columns:1fr!important; }
  .store-list { max-height:none; }
  .report-item,.backup-item { grid-template-columns:1fr; align-items:flex-start; }
  .backup-item { display:grid; }
  .backup-item>div { flex-wrap:wrap; }

  /* Modais ocupam a tela de forma confortável */
  .modal-shell { padding:8px; align-items:flex-end; }
  .modal-card,.review-modal-card,.occurrence-modal,.day-modal-card,.receipt-viewer-card { width:100%!important; max-width:none; max-height:92vh; border-radius:18px 18px 10px 10px; overflow:auto; }
  .modal-header { position:sticky; top:0; z-index:3; background:white; padding-top:2px; }
  .review-form-grid,.occurrence-form-grid { grid-template-columns:1fr; }
  .review-form-grid .wide,.occurrence-form-grid .wide { grid-column:auto; }
  .modal-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  .modal-actions>span { display:none; }
  .modal-actions .button { width:100%; }
  .receipt-viewer-stage { min-height:54vh; max-height:70vh; }
  .receipt-viewer-stage iframe { height:64vh; }
  .receipt-viewer-stage img { max-height:64vh; }

  .toast { left:12px; right:12px; top:72px; max-width:none; font-size:10px; text-align:center; }

  /* Barra inferior fixa */
  .mobile-bottom-nav { display:grid; position:fixed; z-index:60; left:8px; right:8px; bottom:max(7px,env(safe-area-inset-bottom)); grid-template-columns:repeat(5,1fr); gap:2px; height:62px; padding:5px; border:1px solid rgba(12,36,64,.10); border-radius:18px; background:rgba(255,255,255,.96); box-shadow:0 14px 35px rgba(12,36,64,.22); backdrop-filter:blur(14px); }
  .mobile-nav-item { min-width:0; border:0; border-radius:13px; color:#71818e; background:transparent; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; }
  .mobile-nav-item span { font-size:17px; line-height:18px; font-weight:800; }
  .mobile-nav-item small { max-width:100%; overflow:hidden; text-overflow:ellipsis; color:inherit; font-size:8px; font-weight:800; white-space:nowrap; }
  .mobile-nav-item.active { color:var(--blue); background:var(--blue-soft); }

  /* Menu Mais em formato bottom sheet */
  .mobile-more-menu:not([hidden]) { display:block; position:fixed; inset:0; z-index:75; }
  .mobile-more-backdrop { position:absolute; inset:0; width:100%; border:0; background:rgba(5,20,34,.48); backdrop-filter:blur(2px); }
  .mobile-more-sheet { position:absolute; left:0; right:0; bottom:0; padding:8px 14px calc(18px + env(safe-area-inset-bottom)); border-radius:22px 22px 0 0; background:white; box-shadow:0 -16px 40px rgba(5,20,34,.22); animation:sheetUp .18s ease-out; }
  @keyframes sheetUp { from { transform:translateY(18px); opacity:.6; } }
  .mobile-more-handle { width:38px; height:4px; margin:0 auto 12px; border-radius:4px; background:#d5dee3; }
  .mobile-more-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
  .mobile-more-heading small,.mobile-more-heading strong { display:block; }
  .mobile-more-heading small { color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.6px; }
  .mobile-more-heading strong { margin-top:2px; font-size:18px; }
  .mobile-more-heading>button { width:38px; height:38px; border:0; border-radius:12px; color:var(--muted); background:#eef3f5; font-size:22px; }
  .mobile-more-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
  .mobile-more-grid button { min-height:82px; border:1px solid var(--line); border-radius:14px; color:var(--ink); background:#f8fafb; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:8px; }
  .mobile-more-grid button span { width:34px; height:34px; display:grid; place-items:center; border-radius:11px; color:var(--blue); background:var(--blue-soft); font-size:18px; }
  .mobile-more-grid button strong { font-size:10px; }
}

@media (max-width:390px) {
  .mobile-topbar-brand strong { max-width:205px; }
  .hero-grid,.cash-summary-grid,.boleto-summary-grid,.metric-grid,.pending-summary-grid,.validation-metrics { grid-template-columns:1fr!important; }
  .cash-balance-card { grid-column:auto; }
  .filters,.account-filters,.boleto-filters { grid-template-columns:1fr!important; }
  .filters label:first-child { grid-column:auto; }
  .mobile-more-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
