/* Controle de Caixa */
#caixa { position: relative; z-index: 1; max-width: 1500px; margin: 0 auto; padding: 20px 24px 90px; display: flex; flex-direction: column; gap: 16px; }
#caixa[hidden] { display: none; }
@media (max-width: 700px) { #caixa { padding: 14px 12px 110px; } }
@media print { #caixa { display: none !important; } }
body[data-sistema="caixa"] { --acento: #1D6B45; --acento2: #14502F; --acentoc: #DDF0E2; min-height: 100vh; background: #F2F5F3; }
body[data-sistema="caixa"] .btn.primario { background: var(--acento); border-color: var(--acento); }
body[data-sistema="caixa"] .btn.primario:hover { background: var(--acento2); }
#caixa .topo { color: #fff; border: 1px solid rgba(255,255,255,.12); border-radius: 16px; padding: 18px 22px; background: linear-gradient(112deg, #0F3B27 0%, #166B43 60%, #1D7F52 100%); box-shadow: 0 14px 34px rgba(20,48,42,.16); }
#caixa .topo .status-dados { color: #ffffffcc; }
#caixa .topo .btn.primario { background: #fff; border-color: #fff; color: var(--acento2); }

.cx-ajuda summary { cursor: pointer; }
.cx-ajuda ol { margin: 8px 0 0; padding-left: 20px; line-height: 1.6; }
#caixaCorpo .pg-barra { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
#caixaCorpo .pg-esp { flex: 1; }
.cx-f { min-width: 150px; }
.cx-busca { min-width: 240px; flex: 1; max-width: 360px; }
.cx-novo { min-height: 46px; font-size: 16px; padding: 10px 20px; }
.cx-kpis .cartao .val { font-size: 24px; }
.cx-pos { color: #1D5A2E; }
.cx-neg { color: #A32020; }
.cx-cats-res { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
.cx-cartao-cat { cursor: pointer; border-left-width: 5px; }
.cx-cartao-cat .val { font-size: 22px; }
.cx-cartao-cat.cx-c-impressao { border-left-color: #6B7280; }
.cx-cartao-cat.cx-c-servicos { border-left-color: #B4561B; }
.cx-cartao-cat.cx-c-antecipacao { border-left-color: #1F5FA8; }
.cx-cartao-cat.cx-c-segregacao { border-left-color: #6D3FA8; }
.cx-cartao-cat[aria-pressed="true"] { box-shadow: inset 0 0 0 2px var(--acento); border-color: var(--acento); background: var(--acentoc); }
.cx-filtro { padding: 8px 14px; }
.chip.cx-c-impressao { background: #E8EAED; color: #3D4650; }
.chip.cx-c-servicos { background: #FBEBDD; color: #7E3A10; }
.chip.cx-c-antecipacao { background: #DCE8F7; color: #174A84; }
.chip.cx-c-segregacao { background: #EDE3F6; color: #4E2A7A; }
.chip.cx-saida { background: #FBE0DE; color: #8A1C1C; }
.cx-tab tbody tr { cursor: default; }
.cx-tab tr.cx-dia td { background: #E6EEE9 !important; border-top: 2px solid #B9CDC1; padding: 8px 12px; position: sticky; top: 33px; z-index: 0; }
.cx-dia-tot { float: right; font-size: 13px; }
.cx-excl td { opacity: .55; text-decoration: line-through; }
.cx-excl td:last-child { text-decoration: none; opacity: 1; }
.cx-n { font-size: 11px; font-weight: 700; color: #7A3A05; background: #FDEBD3; border-radius: 999px; padding: 0 6px; }
.cx-mais { padding: 12px; text-align: center; }

/* formulário */
.cx-cats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.cx-cat { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; text-align: left; padding: 10px 12px; border-radius: 10px; border: 2px solid var(--borda2); background: var(--sup); cursor: pointer; font-weight: 400; color: var(--txt); }
.cx-cat b { font-size: 15px; }
.cx-cat small { font-size: 12px; color: var(--mudo); }
.cx-cat .cx-ic { font-size: 22px; line-height: 1; }
.cx-cat:hover { border-color: var(--acento); }
.cx-cat[aria-pressed="true"] { border-color: var(--acento); background: var(--acentoc); box-shadow: 0 0 0 2px var(--acento) inset; }
.cx-tipos { display: flex; gap: 8px; }
.cx-tipo { flex: 1; min-height: 44px; border-radius: 10px; border: 2px solid var(--borda2); background: var(--sup); cursor: pointer; font-weight: 600; color: var(--txt); }
.cx-tipo small { font-weight: 400; color: var(--mudo); }
.cx-tipo[aria-pressed="true"] { border-color: var(--acento); background: var(--acentoc); }
.cx-tipo-saida[aria-pressed="true"] { border-color: #A32020; background: #FBE0DE; }
.cx-sugestao { font-size: 13px; margin: -4px 0 8px; min-height: 18px; }
@media (max-width: 560px) { .cx-cats { grid-template-columns: 1fr; } }

/* histórico */
.cx-resumo-lanc { padding: 10px 12px; background: #F3F4F1; border-radius: 10px; margin-bottom: 10px; }
.cx-hist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.cx-hist li { border-left: 4px solid var(--borda2); padding: 6px 12px; background: var(--sup); border-radius: 0 8px 8px 0; }
.cx-hist li.cx-h-ok { border-left-color: #2E8B57; }
.cx-hist li.cx-h-alt { border-left-color: #B4561B; }
.cx-hist li.cx-h-del { border-left-color: #A32020; }
.cx-hist li.cx-h-imp { border-left-color: #6B7280; }
.cx-mud { font-size: 13px; margin-top: 2px; }
.cx-mud span { color: var(--mudo); }
.cx-mud s { color: #8A1C1C; }
.cx-mot { font-size: 13px; font-style: italic; color: var(--txt2); margin-top: 2px; }

/* ---------- Emitir recibo (Controle de Caixa) ---------- */
#caixa .topo .btn.recibo-btn { background: #22D472; border-color: #22D472; color: #04301A; font-weight: 800; font-size: 16px; min-height: 46px; padding: 10px 20px; border-radius: 12px; letter-spacing: .2px; box-shadow: 0 0 0 0 rgba(34,212,114,.65); animation: rcPulso 1.8s ease-out infinite; }
#caixa .topo .btn.recibo-btn:hover { background: #3BE488; border-color: #3BE488; animation-play-state: paused; box-shadow: 0 0 0 6px rgba(34,212,114,.35); }
#caixa .topo .btn.recibo-btn:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
@keyframes rcPulso { 0% { box-shadow: 0 0 0 0 rgba(34,212,114,.7); transform: scale(1); } 60% { box-shadow: 0 0 0 14px rgba(34,212,114,0); transform: scale(1.04); } 100% { box-shadow: 0 0 0 0 rgba(34,212,114,0); transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { #caixa .topo .btn.recibo-btn { animation: none; } }
.rc-form { display: flex; flex-direction: column; gap: 14px; }
.rc-valor-campo input { font-size: 22px; font-weight: 700; max-width: 260px; }
.rc-2 { grid-template-columns: 2fr 1fr; } .rc-3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 640px) { .rc-2, .rc-3 { grid-template-columns: 1fr; } }
.rc-ref, .rc-formas { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; margin-bottom: 4px; }
.rc-radio { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; font-weight: 500; }
.rc-duas-lbl { padding: 4px 0; }
#rcDet[hidden] { display: none; }

@media print {
  #impressao .rc { color: #17212B; font-size: 13px; }
  #impressao .rc-via { border: 1.5px solid #1D6B45; border-radius: 10px; padding: 14mm 13mm 10mm; margin: 0 0 8mm; page-break-inside: avoid; break-inside: avoid; }
  #impressao .rc-via.rc-duas { padding: 9mm 12mm 7mm; margin: 0 0 4mm; }
  #impressao .rc-cab { display: flex; justify-content: space-between; align-items: flex-end; border-bottom: 2px solid #1D6B45; padding-bottom: 5mm; margin-bottom: 7mm; }
  #impressao .rc-duas .rc-cab { padding-bottom: 3mm; margin-bottom: 4mm; }
  #impressao .rc-tit { font-size: 30px; font-weight: 800; letter-spacing: 7px; color: #14502F; line-height: 1; }
  #impressao .rc-via-nome { font-size: 10px; color: #5C6861; text-transform: uppercase; letter-spacing: 1.2px; margin-top: 4px; }
  #impressao .rc-valor { background: #E3F1E8 !important; border: 1.5px solid #1D6B45; border-radius: 8px; padding: 7px 18px; font-size: 24px; font-weight: 800; color: #14502F; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  #impressao .rc-texto { font-size: 14.5px; line-height: 1.85; margin: 0 0 7mm; }
  #impressao .rc-duas .rc-texto { font-size: 13.5px; line-height: 1.7; margin-bottom: 4mm; }
  #impressao .rc-ext { color: #3C4A43; font-style: italic; }
  #impressao .rc-det { display: grid; grid-template-columns: 1fr 1fr; gap: 4mm 10mm; margin: 0 0 6mm; }
  #impressao .rc-duas .rc-det { gap: 2.5mm 10mm; margin-bottom: 3mm; }
  #impressao .rc-det div { border-bottom: 1px solid #D5DCD7; padding-bottom: 1.5mm; }
  #impressao .rc-det small { display: block; font-size: 9px; color: #5C6861; text-transform: uppercase; letter-spacing: .8px; }
  #impressao .rc-det span { font-size: 13px; font-weight: 600; }
  #impressao .rc-local { text-align: right; margin: 0 0 12mm; font-size: 13px; }
  #impressao .rc-duas .rc-local { margin-bottom: 8mm; }
  #impressao .rc-ass { width: 70%; margin: 0 auto; border-top: 1px solid #17212B; text-align: center; padding-top: 2mm; }
  #impressao .rc-ass b { display: block; font-size: 13.5px; }
  #impressao .rc-ass span { font-size: 11px; color: #4A5750; }
  #impressao .rc-corte { text-align: center; font-size: 10px; color: #8A948E; margin: 0 0 4mm; overflow: hidden; white-space: nowrap; }
  #impressao .rc-rodape { text-align: center; font-size: 9px; color: #8A948E; margin-top: 3mm; }
}
