/* ═══════════════════════════════════════════════
   Portal Fiança Bancária — CSS
   Herda identidade visual do tema Brasil Fiança.
   Cores: --green #2e8b1e | --yellow #f5c400
          --coal  #4a4a4a | --coal-d #2e2e2e
═══════════════════════════════════════════════ */
:root{
  --pfb-green:#2e8b1e;--pfb-green-d:#1f6213;--pfb-green-l:#eaf5e6;
  --pfb-yellow:#f5c400;--pfb-yellow-l:#fdf6cc;
  --pfb-coal:#4a4a4a;--pfb-coal-d:#2e2e2e;
  --pfb-white:#fff;--pfb-off:#f8f9fa;--pfb-border:#dde1e7;
  --pfb-g4:#9aa3b0;--pfb-g6:#5a6474;
  --pfb-tx:#1e2530;--pfb-txm:#5a6474;
  --pfb-r:4px;--pfb-rm:8px;--pfb-rl:14px;
  --pfb-sh:0 4px 16px rgba(0,0,0,.08);
  --pfb-font:'Barlow',system-ui,sans-serif;
  --pfb-font-c:'Barlow Condensed',system-ui,sans-serif;
}
.pfb-wrap *{box-sizing:border-box}
.pfb-wrap{font-family:var(--pfb-font);color:var(--pfb-tx);max-width:1140px;margin:0 auto;padding:32px 20px}
.pfb-wrap a{color:var(--pfb-green)}

/* ── LAYOUT ── */
.pfb-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.pfb-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px}
.pfb-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.pfb-sidebar-layout{display:grid;grid-template-columns:240px 1fr;gap:24px;align-items:start}

/* ── PORTAL HEADER ── */
.pfb-portal-header{background:var(--pfb-coal-d);color:white;padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:3px solid var(--pfb-green)}
.pfb-portal-header__logo img{height:36px;width:auto;filter:brightness(0) invert(1)}
.pfb-portal-header__user{display:flex;align-items:center;gap:12px;font-size:13px;color:rgba(255,255,255,.8)}
.pfb-portal-header__user a{color:rgba(255,255,255,.7);font-size:12px;transition:color .12s}
.pfb-portal-header__user a:hover{color:white}
.pfb-portal-nav{background:var(--pfb-green);padding:0 24px;display:flex;gap:0}
.pfb-portal-nav a{color:rgba(255,255,255,.85);font-size:13px;font-weight:600;padding:11px 16px;display:flex;align-items:center;gap:6px;transition:background .12s;border-bottom:3px solid transparent;text-decoration:none}
.pfb-portal-nav a:hover,.pfb-portal-nav a.active{background:rgba(0,0,0,.15);border-bottom-color:var(--pfb-yellow);color:white}
.pfb-portal-nav a svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* ── CARDS MÉTRICAS ── */
.pfb-metric{background:var(--pfb-white);border:1px solid var(--pfb-border);border-radius:var(--pfb-rm);padding:20px;border-top:3px solid var(--pfb-green)}
.pfb-metric--yellow{border-top-color:var(--pfb-yellow)}
.pfb-metric--red{border-top-color:#dc3545}
.pfb-metric--blue{border-top-color:#0d6efd}
.pfb-metric__label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--pfb-g6);margin-bottom:6px}
.pfb-metric__value{font-family:var(--pfb-font-c);font-size:28px;font-weight:800;color:var(--pfb-coal-d);line-height:1}
.pfb-metric__sub{font-size:11px;color:var(--pfb-g4);margin-top:4px}

/* ── TABLE ── */
.pfb-table-wrap{overflow-x:auto;border:1px solid var(--pfb-border);border-radius:var(--pfb-rm)}
.pfb-table{width:100%;border-collapse:collapse;font-size:13px}
.pfb-table th{background:var(--pfb-off);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--pfb-g6);padding:10px 14px;text-align:left;border-bottom:2px solid var(--pfb-border);white-space:nowrap}
.pfb-table td{padding:12px 14px;border-bottom:1px solid var(--pfb-border);vertical-align:middle}
.pfb-table tr:last-child td{border-bottom:none}
.pfb-table tr:hover td{background:#f8fff5}
.pfb-table__empty{text-align:center;padding:40px;color:var(--pfb-g4);font-size:14px}

/* ── STATUS BADGES ── */
.pfb-status{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.pfb-status::before{content:'';width:6px;height:6px;border-radius:50%;flex-shrink:0}
.status--default  {background:#f1f1f1;color:#555}.status--default::before{background:#aaa}
.status--submetido{background:#e3f2fd;color:#0d47a1}.status--submetido::before{background:#1565c0}
.status--banco    {background:#fff3e0;color:#e65100}.status--banco::before{background:#ef6c00}
.status--analise  {background:#ede7f6;color:#4527a0}.status--analise::before{background:#6a1b9a}
.status--aprovado {background:var(--pfb-green-l);color:var(--pfb-green-d)}.status--aprovado::before{background:var(--pfb-green)}
.status--rejeitado{background:#fdecea;color:#b71c1c}.status--rejeitado::before{background:#c62828}
.status--cancelado{background:#eceff1;color:#37474f}.status--cancelado::before{background:#607d8b}

/* ── FORMS ── */
.pfb-card{background:var(--pfb-white);border:1px solid var(--pfb-border);border-radius:var(--pfb-rl);padding:28px;box-shadow:var(--pfb-sh)}
.pfb-card__title{font-family:var(--pfb-font-c);font-size:18px;font-weight:800;text-transform:uppercase;color:var(--pfb-coal-d);margin-bottom:20px;padding-bottom:12px;border-bottom:2px solid var(--pfb-green-l);display:flex;align-items:center;gap:8px}
.pfb-card__title svg{width:18px;height:18px;stroke:var(--pfb-green);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pfb-field{margin-bottom:14px}
.pfb-field label{display:block;font-size:11px;font-weight:700;color:var(--pfb-g6);margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}
.pfb-field input,.pfb-field select,.pfb-field textarea{width:100%;padding:10px 12px;border:1.5px solid var(--pfb-border);border-radius:var(--pfb-r);font-family:var(--pfb-font);font-size:14px;color:var(--pfb-tx);background:var(--pfb-off);outline:none;transition:border-color .15s,background .15s}
.pfb-field input:focus,.pfb-field select:focus,.pfb-field textarea:focus{border-color:var(--pfb-green);background:white}
.pfb-field textarea{min-height:90px;resize:vertical}
.pfb-field--error input,.pfb-field--error select,.pfb-field--error textarea{border-color:#dc3545}
.pfb-field__msg{font-size:11.5px;margin-top:4px;color:#dc3545}
.pfb-row-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.pfb-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}

/* ── BUTTONS ── */
.pfb-btn{display:inline-flex;align-items:center;gap:7px;font-family:var(--pfb-font-c);font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.04em;padding:10px 20px;border-radius:var(--pfb-r);border:none;cursor:pointer;transition:background .15s,opacity .12s,transform .1s;text-decoration:none}
.pfb-btn:hover{transform:translateY(-1px)}
.pfb-btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.pfb-btn--primary{background:var(--pfb-green);color:white}.pfb-btn--primary:hover{background:var(--pfb-green-d)}
.pfb-btn--yellow{background:var(--pfb-yellow);color:var(--pfb-coal-d)}.pfb-btn--yellow:hover{opacity:.9}
.pfb-btn--outline{background:transparent;color:var(--pfb-green);border:2px solid var(--pfb-green)}.pfb-btn--outline:hover{background:var(--pfb-green);color:white}
.pfb-btn--danger{background:#dc3545;color:white}.pfb-btn--danger:hover{background:#b02a37}
.pfb-btn--sm{padding:6px 12px;font-size:11px}
.pfb-btn--full{width:100%;justify-content:center;padding:13px}
.pfb-btn[disabled]{opacity:.5;pointer-events:none;transform:none}

/* ── ALERTS ── */
.pfb-alert{padding:14px 18px;border-radius:var(--pfb-r);font-size:14px;margin-bottom:18px;display:flex;align-items:flex-start;gap:10px}
.pfb-alert--success{background:var(--pfb-green-l);color:var(--pfb-green-d);border-left:4px solid var(--pfb-green)}
.pfb-alert--error{background:#fdecea;color:#b71c1c;border-left:4px solid #dc3545}
.pfb-alert--warn{background:var(--pfb-yellow-l);color:#7a5f00;border-left:4px solid var(--pfb-yellow)}
.pfb-alert--info{background:#e3f2fd;color:#0d47a1;border-left:4px solid #1565c0}
.pfb-alert svg{width:16px;height:16px;flex-shrink:0;margin-top:1px;stroke:currentColor;fill:none;stroke-width:2}

/* ── UPLOAD ZONE ── */
.pfb-upload-zone{border:2px dashed var(--pfb-border);border-radius:var(--pfb-r);padding:32px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;position:relative}
.pfb-upload-zone:hover,.pfb-upload-zone.drag-over{border-color:var(--pfb-green);background:var(--pfb-green-l)}
.pfb-upload-zone input[type="file"]{position:absolute;inset:0;opacity:0;cursor:pointer}
.pfb-upload-list{margin-top:12px;display:flex;flex-direction:column;gap:6px}
.pfb-upload-item{display:flex;align-items:center;gap:8px;padding:7px 11px;background:var(--pfb-off);border:1px solid var(--pfb-border);border-radius:var(--pfb-r);font-size:12.5px;color:var(--pfb-g6)}
.pfb-upload-item svg{width:14px;height:14px;stroke:var(--pfb-green);fill:none;flex-shrink:0}
.pfb-upload-item__remove{margin-left:auto;cursor:pointer;opacity:.6;stroke:var(--pfb-g6)}
.pfb-upload-item__remove:hover{opacity:1;stroke:#dc3545}

/* ── HISTORICO TIMELINE ── */
.pfb-timeline{display:flex;flex-direction:column;gap:0}
.pfb-timeline-item{display:flex;gap:14px;position:relative;padding-bottom:20px}
.pfb-timeline-item::before{content:'';position:absolute;left:15px;top:30px;bottom:0;width:2px;background:var(--pfb-border)}
.pfb-timeline-item:last-child::before{display:none}
.pfb-timeline-item:last-child{padding-bottom:0}
.pfb-timeline-dot{width:32px;height:32px;border-radius:50%;background:var(--pfb-green-l);border:2px solid var(--pfb-green);display:flex;align-items:center;justify-content:center;flex-shrink:0;z-index:1}
.pfb-timeline-dot svg{width:14px;height:14px;stroke:var(--pfb-green);fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.pfb-timeline-body{flex:1;padding-top:4px}
.pfb-timeline-title{font-size:13px;font-weight:700;color:var(--pfb-coal-d)}
.pfb-timeline-meta{font-size:11.5px;color:var(--pfb-g4);margin-top:2px}
.pfb-timeline-obs{font-size:13px;color:var(--pfb-txm);margin-top:5px;padding:8px 12px;background:var(--pfb-off);border-radius:var(--pfb-r)}

/* ── MODAL ── */
.pfb-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:9999;display:none;align-items:center;justify-content:center;padding:20px}
.pfb-modal-overlay.open{display:flex}
.pfb-modal{background:white;border-radius:var(--pfb-rl);padding:0;width:100%;max-width:680px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.2)}
.pfb-modal__header{padding:20px 24px;border-bottom:1px solid var(--pfb-border);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:white;z-index:1}
.pfb-modal__title{font-family:var(--pfb-font-c);font-size:17px;font-weight:800;text-transform:uppercase;color:var(--pfb-coal-d)}
.pfb-modal__close{cursor:pointer;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .12s;stroke:var(--pfb-g6);fill:none;stroke-width:2}
.pfb-modal__close:hover{background:var(--pfb-off);stroke:var(--pfb-coal-d)}
.pfb-modal__body{padding:24px}
.pfb-modal__footer{padding:16px 24px;border-top:1px solid var(--pfb-border);display:flex;gap:10px;justify-content:flex-end;background:var(--pfb-off)}

/* ── SEARCH/FILTER BAR ── */
.pfb-filter-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;padding:16px;background:var(--pfb-off);border:1px solid var(--pfb-border);border-radius:var(--pfb-rm);margin-bottom:20px}
.pfb-filter-bar .pfb-field{margin-bottom:0;flex:1;min-width:140px}

/* ── PAGINATION ── */
.pfb-pagination{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:20px}
.pfb-pagination a,.pfb-pagination span{padding:7px 12px;border:1px solid var(--pfb-border);border-radius:var(--pfb-r);font-size:13px;color:var(--pfb-g6);cursor:pointer;transition:background .12s,color .12s}
.pfb-pagination a:hover,.pfb-pagination span.current{background:var(--pfb-green);color:white;border-color:var(--pfb-green)}

/* ── TIPO SELECTOR (PF/PJ) ── */
.pfb-tipo-selector{display:flex;gap:12px;margin-bottom:24px}
.pfb-tipo-btn{flex:1;padding:18px 14px;border:2px solid var(--pfb-border);border-radius:var(--pfb-rm);text-align:center;cursor:pointer;transition:all .15s}
.pfb-tipo-btn.active{border-color:var(--pfb-green);background:var(--pfb-green-l)}
.pfb-tipo-btn__icon{width:40px;height:40px;background:var(--pfb-green-l);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 8px}
.pfb-tipo-btn.active .pfb-tipo-btn__icon{background:var(--pfb-green)}
.pfb-tipo-btn__icon svg{width:20px;height:20px;stroke:var(--pfb-green);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pfb-tipo-btn.active .pfb-tipo-btn__icon svg{stroke:white}
.pfb-tipo-btn__label{font-family:var(--pfb-font-c);font-size:16px;font-weight:800;text-transform:uppercase;color:var(--pfb-coal-d)}
.pfb-tipo-btn__desc{font-size:12px;color:var(--pfb-txm)}
.pfb-pf-fields,.pfb-pj-fields{display:none}
.pfb-pf-fields.active,.pfb-pj-fields.active{display:block}

/* ── LGPD CHECK ── */
.pfb-lgpd{display:flex;align-items:flex-start;gap:10px;padding:14px;background:var(--pfb-off);border:1px solid var(--pfb-border);border-radius:var(--pfb-r)}
.pfb-lgpd input[type="checkbox"]{width:18px;height:18px;accent-color:var(--pfb-green);flex-shrink:0;margin-top:2px}
.pfb-lgpd label{font-size:13px;color:var(--pfb-txm);line-height:1.5}

/* ── COMISSÃO WIDGET ── */
.pfb-comissao-resumo{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}
.pfb-comissao-item{text-align:center;padding:20px;background:var(--pfb-white);border:1px solid var(--pfb-border);border-radius:var(--pfb-rm)}
.pfb-comissao-item__value{font-family:var(--pfb-font-c);font-size:24px;font-weight:800;color:var(--pfb-green-d)}
.pfb-comissao-item--yellow .pfb-comissao-item__value{color:#7a5f00}
.pfb-comissao-item__label{font-size:12px;color:var(--pfb-g6);margin-top:4px}

/* ── LOADING SPINNER ── */
.pfb-spinner{display:inline-block;width:18px;height:18px;border:2.5px solid rgba(46,139,30,.25);border-top-color:var(--pfb-green);border-radius:50%;animation:pfb-spin .7s linear infinite;flex-shrink:0}
@keyframes pfb-spin{to{transform:rotate(360deg)}}

/* ── RESPONSIVE ── */
@media(max-width:768px){
  .pfb-grid-2,.pfb-grid-3,.pfb-grid-4,.pfb-sidebar-layout,
  .pfb-row-2,.pfb-row-3,.pfb-tipo-selector,.pfb-comissao-resumo{grid-template-columns:1fr;flex-direction:column}
  .pfb-portal-nav{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .pfb-portal-nav a{white-space:nowrap}
  .pfb-wrap{padding:16px 12px}
  .pfb-card{padding:18px 16px}
  .pfb-filter-bar{flex-direction:column}
  .pfb-filter-bar .pfb-field{min-width:100%}
}
