/* ---------- generic ---------- */
.btn{background:var(--panel);color:var(--txt);border:1px solid var(--line);padding:9px 15px;border-radius:11px;font:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:.16s}
.btn:hover{background:var(--panel2);border-color:var(--line2)}
.btn.pri{background:linear-gradient(120deg,var(--acc),var(--acc2));border-color:transparent;color:#fff;font-weight:600;box-shadow:0 10px 26px -10px rgba(125,92,255,.95)}
.btn.pri:hover{filter:brightness(1.12)}
.btn.ok{background:linear-gradient(120deg,#18b877,#2fd48f);border-color:transparent;color:#04231a;font-weight:700;box-shadow:0 10px 26px -10px rgba(47,212,143,.8)}
.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:22px;margin-bottom:16px;
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  box-shadow:0 20px 46px -30px var(--sh3), inset 0 1px 0 var(--sf2)}
.card h3{margin:0 0 4px;font-size:14.5px;font-weight:650;letter-spacing:-.2px}
.card .hint{color:var(--dim2);font-size:12.5px;margin:0 0 18px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.f{display:flex;flex-direction:column;gap:6px}
.f.wide{grid-column:1/-1}
.f.sp2{grid-column:span 2}
/* texto corrido: com display:flex cada trecho virava um item e o alinhamento quebrava */
.cron{padding:11px 12px;font-size:12.5px;color:var(--dim);border:1px dashed var(--line2);border-radius:11px;min-height:41px;line-height:1.5}
.cron b{color:var(--txt);font-weight:600}
input[type=date]{color-scheme:dark}
input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer}
@media(max-width:900px){.f.sp2{grid-column:1/-1}}
label{font-size:11.5px;color:var(--dim);font-weight:500;letter-spacing:.1px}
input,select,textarea{background:var(--sf2);border:1px solid var(--line);color:var(--txt);padding:10px 12px;border-radius:11px;font:inherit;font-size:13.5px;width:100%;transition:.16s}
input:hover,select:hover,textarea:hover{border-color:var(--line2)}
input:focus,select:focus,textarea:focus{outline:none;border-color:rgba(125,92,255,.75);background:rgba(125,92,255,.09);box-shadow:0 0 0 3.5px rgba(125,92,255,.14)}
input[readonly]{color:var(--dim2)}
select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23a6accb' stroke-width='2.4' stroke-linecap='round'><path d='m6 9 6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}
select option{background:var(--pop);color:var(--txt)}
textarea{resize:vertical;min-height:74px}
.req::after{content:" *";color:var(--acc)}
/* ---------- tabela ---------- */
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;color:var(--dim2);font-weight:600;font-size:10.5px;text-transform:uppercase;letter-spacing:.8px;padding:16px 14px 12px}
td{padding:14px;border-top:1px solid var(--line)}
tbody tr{transition:.14s}
tbody tr:hover{background:var(--sf2)}
.pill{font-size:11.5px;padding:4px 11px;border-radius:20px;display:inline-block;font-weight:500;border:1px solid transparent}
.p-ok{background:rgba(47,212,143,.14);color:var(--ok-fg);border-color:rgba(47,212,143,.28)}
.p-wait{background:rgba(245,180,68,.14);color:var(--warn-fg);border-color:rgba(245,180,68,.28)}
.p-draft{background:var(--sf3);color:var(--dim);border-color:var(--line)}
.p-dang{background:rgba(255,107,125,.14);color:var(--dang-fg);border-color:rgba(255,107,125,.28)}
.mut{color:var(--dim2)}
.rt{text-align:right}
/* ---------- kanban, kpis e cards — compartilhado pelos dois financeiros ---------- */
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:17px 19px;backdrop-filter:blur(18px);
  box-shadow:0 20px 46px -30px var(--sh3), inset 0 1px 0 var(--sf2)}
.kpi h5{margin:0 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.9px;color:var(--dim2);font-weight:700}
.kpi .v{font-size:25px;font-weight:800;letter-spacing:-.9px}
.kpi small{color:var(--dim2);font-size:11.5px;display:block;margin-top:3px}
.kpi.warn .v{color:var(--warn-fg)} .kpi.ok .v{color:var(--ok-fg)} .kpi.dang .v{color:var(--dang-fg)}

.fbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.fbar select,.fbar input{width:auto;min-width:0;border-radius:20px;padding:7px 13px;font-size:12.5px;background:var(--panel)}
.fbar select{padding-right:30px;background-position:right 11px center}
.fbar #fltQ{min-width:196px}
.fbar .sp{flex:1}
.fbar .rng{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--dim2)}
.fbar .btn{border-radius:20px;padding:7px 13px;font-size:12.5px}
/* botão + popover de filtros secundários */
.fwrap{position:relative}
.fbtn{display:flex;align-items:center;gap:7px;background:var(--panel);border:1px solid var(--line);color:var(--txt);border-radius:20px;padding:7px 13px;font:inherit;font-size:12.5px;cursor:pointer;transition:.16s}
.fbtn:hover{border-color:var(--line2)}
.fbtn.on{border-color:rgba(125,92,255,.55);background:rgba(125,92,255,.13)}
.fbtn svg{width:12px;height:12px;stroke:var(--dim);fill:none;stroke-width:2.4;stroke-linecap:round}
.fbtn .bdg{background:var(--acc);color:#fff;font-size:10px;font-weight:700;border-radius:10px;padding:1px 6px}
.fpop{position:absolute;top:calc(100% + 8px);left:0;z-index:60;width:252px;background:var(--pop);border:1px solid var(--line2);border-radius:14px;padding:14px;box-shadow:0 20px 54px var(--sh2);display:grid;gap:11px}
.fpop label{font-size:11px}
.fpop select{width:100%;border-radius:10px;padding:8px 11px;background-position:right 10px center}
/* filtros ativos viram chips removíveis */
.chips{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.chip{display:inline-flex;align-items:center;gap:6px;background:rgba(125,92,255,.13);border:1px solid rgba(125,92,255,.32);border-radius:20px;padding:5px 7px 5px 12px;font-size:12px;white-space:nowrap}
.chip b{font-weight:600}
.chip i{cursor:pointer;font-style:normal;color:var(--dim);width:17px;height:17px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:13px;line-height:1}
.chip i:hover{background:var(--sf4);color:var(--txt)}
.chip.clr{background:none;border-color:var(--line);color:var(--dim);cursor:pointer;padding:5px 12px}
.chip.clr:hover{border-color:var(--line2);color:var(--txt)}
input[type=month]{color-scheme:dark}
input[type=month]::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer}
.fbar optgroup{background:var(--pop);color:var(--dim2)}

.kb{display:grid;grid-template-columns:repeat(3,minmax(300px,1fr));gap:14px;align-items:start}
.kcol{background:var(--sf1);border:1px solid var(--line);border-radius:var(--r);padding:13px;min-height:280px;transition:.15s}
.kcol.over{border-color:rgba(125,92,255,.65);background:rgba(125,92,255,.08)}
.kcol>div[id^=l],.kcol>div[id^=sl]{max-height:min(62vh,720px);overflow-y:auto;padding-right:4px}
.kh{display:flex;align-items:center;gap:9px;margin:2px 4px 14px}
.kh i{width:8px;height:8px;border-radius:50%;flex:none}
.kh b{font-size:13px;font-weight:650}
/* contagem sem pílula, encostada à direita; o total vem logo depois quando existe */
.kh .n{margin-left:auto;font-size:11.5px;color:var(--dim2);font-variant-numeric:tabular-nums}
.kh .tot{font-size:12px;font-weight:600;color:var(--dim)}
.kempty{text-align:center;color:var(--dim2);font-size:12px;padding:26px 10px;border:1.5px dashed var(--line);border-radius:12px}

.pc{background:var(--sf2);border:1px solid var(--line);border-left:3px solid var(--dim2);border-radius:12px;
  padding:12px 13px;margin-bottom:9px;cursor:grab;transition:.15s}
.pc:hover{background:var(--sf3);border-color:var(--line2)}
.pc:active{cursor:grabbing}
.pc.drag{opacity:.4}
.pc.pend{border-left-color:var(--warn)} .pc.pago{border-left-color:var(--ok)} .pc.atr{border-left-color:var(--dang)}
.pc.novo{animation:pcIn .55s ease-out}
@keyframes pcIn{from{opacity:0;transform:translateY(-8px);background:rgba(125,92,255,.3)}to{opacity:1;transform:none}}
.pc .cli{font-size:12.5px;font-weight:600;line-height:1.35}
.pc .cli span{color:var(--dim2);font-weight:500}
.pc .val{font-size:16.5px;font-weight:750;letter-spacing:-.4px;margin:6px 0 4px}
.pc .met{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
/* data à esquerda, etiqueta de situação à direita; a etiqueta cai para baixo se não couber */
.pc .dtlin{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.pc .dtlin .mut{font-size:11.5px;flex:1;min-width:0}
.pc .dtlin .met{margin-top:0;margin-left:auto;flex:none}
.pc .met span{font-size:10.5px;padding:2px 8px;border-radius:20px;background:var(--sf3);border:1px solid var(--line);color:var(--dim)}
.pc .met span.nf{background:rgba(125,92,255,.16);border-color:rgba(125,92,255,.35);color:var(--acc-fg)}
.pc .met span.late{background:rgba(255,107,125,.15);border-color:rgba(255,107,125,.32);color:var(--dang-fg)}
.pc .met span.ontime{background:rgba(47,212,143,.13);border-color:rgba(47,212,143,.3);color:var(--ok-fg)}
.pc .act{margin-top:10px;display:flex;gap:6px}
.pc .act button{flex:1;font-size:11.5px;padding:6px 8px;border-radius:9px;border:1px solid var(--line);background:var(--sf2);color:var(--dim);cursor:pointer;font-family:inherit;transition:.15s}
.pc .act button:hover{color:#fff;border-color:var(--line2);background:var(--sf4)}
.pc .act button.go{border-color:rgba(47,212,143,.4);color:var(--ok-fg)}
.pc .act button.go:hover{background:rgba(47,212,143,.16)}

/* aviso à contabilidade */
.notif{border:1px solid rgba(47,212,143,.32);border-radius:14px;padding:17px 18px;margin-top:16px;
  background:linear-gradient(150deg,rgba(47,212,143,.12),var(--sf1))}
.notif h5{margin:0 0 3px;font-size:13.5px;font-weight:650;display:flex;align-items:center;gap:8px}
.notif h5 em{font-style:normal;font-size:9.5px;letter-spacing:.8px;text-transform:uppercase;color:var(--ok-fg);border:1px solid rgba(47,212,143,.4);padding:2px 7px;border-radius:6px}
.notif > p{color:var(--dim2);font-size:12px;margin:0 0 13px}
.notif pre{margin:0;background:var(--sh1);border:1px solid var(--line);border-radius:11px;padding:14px 15px;
  font:12px/1.7 ui-monospace,Menlo,monospace;color:var(--txt);white-space:pre-wrap;overflow:auto;max-height:230px}
.notif .act{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
/* ---------- modal de comprovante ---------- */
.ovl{position:fixed;inset:0;z-index:60;background:rgba(4,4,12,.74);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);
  display:flex;align-items:center;justify-content:center;padding:22px;animation:ovlIn .18s ease-out}
@keyframes ovlIn{from{opacity:0}to{opacity:1}}
.mdl{width:100%;max-width:470px;border:1px solid var(--line2);border-radius:18px;padding:24px;
  background:linear-gradient(165deg,var(--mdl1),var(--mdl2));box-shadow:0 50px 110px -34px #000;animation:mdlIn .22s cubic-bezier(.2,.9,.3,1)}
@keyframes mdlIn{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
.mdl h3{margin:0 0 4px;font-size:16px;font-weight:700;letter-spacing:-.3px}
.mdl > p{color:var(--dim2);font-size:12.5px;margin:0 0 18px}
.mdl > p b{color:var(--txt)}
.mdl .drop{height:72px;flex-direction:column;gap:3px}
.mdl .drop small{font-size:11px;color:var(--dim2)}
.mdl .drop.over{border-color:rgba(125,92,255,.8);background:rgba(125,92,255,.13);color:var(--txt)}
.mdl .actions{margin-top:20px}
.mdl .aviso{font-size:11.5px;color:var(--dim2)}
.mdl .aviso.err{color:var(--dang-fg)}
.pc .cmp{background:rgba(47,212,143,.14)!important;border-color:rgba(47,212,143,.32)!important;color:var(--ok-fg)!important;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* ---------- detalhe do card ---------- */
.pc{cursor:pointer}
.det{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;align-items:stretch}
.det small{display:block;margin-top:3px;line-height:1.35}
.det > div{background:var(--sf2);border:1px solid var(--line);border-radius:11px;padding:11px 12px;
  min-height:93px;display:flex;flex-direction:column}   /* altura igual mesmo quando o valor quebra em duas linhas */
.det > div small{margin-top:auto;padding-top:3px}
.det span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.7px;color:var(--dim2);font-weight:700;margin-bottom:5px}
.det b{font-size:15.5px;font-weight:750;letter-spacing:-.4px;display:block}
.det small{color:var(--dim2);font-size:11px}
.det .ok b{color:var(--ok-fg)} .det .warn b{color:var(--warn-fg)} .det .dang b{color:var(--dang-fg)}
.hist{width:100%;border-collapse:collapse;font-size:12px}
.hist th{text-align:left;color:var(--dim2);font-size:10px;text-transform:uppercase;letter-spacing:.7px;font-weight:700;padding:0 10px 8px}
.hist td{padding:9px 10px;border-top:1px solid var(--line)}
.hist tr.cur td{background:rgba(125,92,255,.14)}
.hist tr.cur td:first-child{border-left:2px solid var(--acc)}
.histbox{max-height:230px;overflow-y:auto;border:1px solid var(--line);border-radius:12px;padding:10px 2px 2px}
.detHead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:2px}
.detHead h3{margin:0}

/* v1.0.2 - identificação minimalista da origem */
.origin-mini{display:inline-flex;align-items:center;white-space:nowrap;font-size:10px;font-weight:650;line-height:1;color:var(--dim2);letter-spacing:.05px}

/* campo obrigatório vazio ao tentar avançar uma etapa (ver passoValido em core.js) */
input.campo-faltando,select.campo-faltando,textarea.campo-faltando{border-color:var(--dang-bd);background-color:var(--dang-bg);box-shadow:0 0 0 1px var(--dang-bd)}
