/* Gestion financière terrain : distinctions utiles sans surcharger le CRM. */
body.crm-v2-shell .trip-suppliers { margin-bottom:22px; display:grid; gap:15px; min-width:0; }
body.crm-v2-shell .trip-suppliers-head { display:flex; gap:16px; align-items:center; justify-content:space-between; flex-wrap:wrap; }
body.crm-v2-shell .trip-suppliers-head h2 { margin:0 0 5px; font-size:20px; letter-spacing:-.025em; color:#244363; }
body.crm-v2-shell .trip-suppliers-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
body.crm-v2-shell .trip-suppliers-kpis .kpi { min-width:0; border-top:3px solid #d7e4f5; }
body.crm-v2-shell .trip-suppliers-kpis .kpi:nth-child(2) { border-top-color:#36a484; background:linear-gradient(135deg,#fff,#f4fcf8); }
body.crm-v2-shell .trip-suppliers-kpis .kpi:nth-child(3) { border-top-color:#5488ca; background:linear-gradient(135deg,#fff,#f5f9ff); }
body.crm-v2-shell .trip-suppliers-kpis .kpi:nth-child(4) { border-top-color:#e4a447; background:linear-gradient(135deg,#fff,#fffaf2); }
body.crm-v2-shell .trip-suppliers-kpis .kpi .value { font-size:clamp(19px,1.9vw,28px); }
body.crm-v2-shell .trip-suppliers-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
body.crm-v2-shell .trip-supplier-item { padding:19px; min-width:0; display:grid; gap:14px; border-color:#dce8f4; }
body.crm-v2-shell .trip-supplier-item h3 { margin:5px 0 8px; color:#233c59; font-size:17px; }
body.crm-v2-shell .trip-supplier-amounts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; padding:12px; border-radius:12px; background:#f5f8fd; }
body.crm-v2-shell .trip-supplier-amounts > div { display:grid; gap:6px; min-width:0; }
body.crm-v2-shell .trip-supplier-amounts span { font-size:11px; color:#6e8198; }
body.crm-v2-shell .trip-supplier-amounts b { font-size:clamp(12px,1.1vw,17px); overflow-wrap:anywhere; }
body.crm-v2-shell .trip-supplier-pending { background:#fff6e9; color:#95601e; border-left:3px solid #e5ad56; padding:9px 12px; border-radius:8px; font-size:12px; }
body.crm-v2-shell .trip-supplier-history { border-top:1px solid #e2eaf4; padding-top:10px; display:grid; gap:9px; }
body.crm-v2-shell .trip-supplier-history .row-between { gap:12px; flex-wrap:wrap; }
@media(max-width:1150px) { body.crm-v2-shell .trip-suppliers-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
 body.crm-v2-shell .trip-suppliers-list { grid-template-columns:minmax(0,1fr); } }
@media(max-width:760px) { body.crm-v2-shell .trip-suppliers { gap:11px; }
 body.crm-v2-shell .trip-suppliers-kpis { gap:8px; }
 body.crm-v2-shell .trip-suppliers-kpis .kpi { padding:12px; }
 body.crm-v2-shell .trip-supplier-item { padding:13px; }
 body.crm-v2-shell .trip-supplier-amounts { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:360px) { body.crm-v2-shell .trip-suppliers-kpis { grid-template-columns:minmax(0,1fr); } }
@media print { body.crm-v2-shell .trip-suppliers .actions, body.crm-v2-shell .trip-suppliers button { display:none!important; } }

/* Régularisation personnelle du solde terrain : fonction Direction/Comptabilité,
   lecture limitée au responsable affecté ; jamais un KPI de résultat du voyage. */
body.crm-v2-shell .manager-settlement {display:grid; gap:14px; border:1px solid #d7e5f4; border-left:4px solid #467fcc; margin:0 0 20px; padding:20px;}
body.crm-v2-shell .manager-settlement h3 {margin:0 0 4px; color:#263d59; font-size:18px;}
body.crm-v2-shell .manager-settlement-balance {display:grid; gap:3px; align-content:center; padding:10px 15px; background:#f0f6ff; border-radius:12px; color:#316ca9;}
body.crm-v2-shell .manager-settlement-balance span {font-size:11px;}
body.crm-v2-shell .manager-settlement-balance b {font-size:23px;}
body.crm-v2-shell .manager-settlement-options {background:#f7faff; padding:15px; border:1px solid #e2edf9; border-radius:13px; display:grid; gap:9px;}
body.crm-v2-shell .manager-settlement-options .row {display:flex; gap:8px; flex-wrap:wrap;}
body.crm-v2-shell .manager-settlement-credit {padding:12px 0; border-top:1px solid #e5edf5; gap:14px; flex-wrap:wrap;}
body.crm-v2-shell .manager-settlement-credits {display:grid; gap:7px;}
body.crm-v2-shell .manager-settlement-credits h4 {font-size:13px; color:#5e738a;}
body.crm-v2-shell .manager-settlement-history summary {cursor:pointer; font-weight:650; color:#416487;}
body.crm-v2-shell .manager-settlement-history .row-between {padding:9px 0; border-top:1px solid #e2ebf6; gap:10px; flex-wrap:wrap;}
@media(max-width:650px){body.crm-v2-shell .manager-settlement {padding:13px;} body.crm-v2-shell .manager-settlement-options .btn {width:100%;}}

/* Bilan opérationnel — réservé au bureau, et sous-registre terrain adapté au mobile. */
body.crm-v2-shell .trip-finance-report {display:grid;gap:14px;margin:0 0 24px;min-width:0;}
body.crm-v2-shell .trip-finance-head {display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:space-between;}
body.crm-v2-shell .trip-finance-head h2 {margin:0 0 5px;color:#244261;font-size:20px;letter-spacing:-.02em;}
body.crm-v2-shell .trip-finance-kpis {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;}
body.crm-v2-shell .trip-finance-kpis>.card {min-width:0;overflow-wrap:anywhere;}
body.crm-v2-shell .trip-finance-kpis>.card:nth-child(1) {border-top:3px solid #3a8fc0;}
body.crm-v2-shell .trip-finance-kpis>.card:nth-child(2) {border-top:3px solid #edaf55;}
body.crm-v2-shell .trip-finance-kpis>.card:nth-child(3) {border-top:3px solid #47a98a;background:linear-gradient(145deg,#fff,#f3fcf8);}
body.crm-v2-shell .trip-finance-kpis>.card:nth-child(4) {border-top:3px solid #8f8acf;}
body.crm-v2-shell .trip-finance-kpis .value {font-size:clamp(19px,1.9vw,28px);}
body.crm-v2-shell .trip-finance-kpis.compact>.card {display:grid;gap:7px;padding:13px;}
body.crm-v2-shell .trip-finance-kpis.compact b {font-size:18px;color:#2c496a;}
body.crm-v2-shell .trip-finance-cancel {display:flex;gap:12px;flex-wrap:wrap;margin-top:12px;}
body.crm-v2-shell .trip-finance-cancel span {background:#f3f6fb;border-radius:10px;padding:10px 13px;font-size:12px;}
body.crm-v2-shell .trip-finance-issues {padding-left:22px;margin:12px 0 0;display:grid;gap:8px;line-height:1.5;color:#865a2f;}
body.crm-v2-shell .trip-extra-gains {margin-bottom:19px;display:grid;gap:10px;min-width:0;}
body.crm-v2-shell .trip-extra-gains h3,body.crm-v2-shell .trip-finance-report h3 {margin:0 0 5px;color:#294968;}
body.crm-v2-shell .trip-finance-report .card-pad {padding:18px;}
@media(max-width:1050px){body.crm-v2-shell .trip-finance-kpis {grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:570px){
 body.crm-v2-shell .trip-finance-report {gap:10px;}
 body.crm-v2-shell .trip-finance-kpis {gap:7px;}
 body.crm-v2-shell .trip-finance-kpis .kpi {padding:11px;}
 body.crm-v2-shell .trip-finance-kpis.compact>.card {padding:11px;}
 body.crm-v2-shell .trip-finance-head h2 {font-size:18px;}
 body.crm-v2-shell .trip-finance-report .card-pad {padding:12px;}
}
@media(max-width:350px){body.crm-v2-shell .trip-finance-kpis {grid-template-columns:minmax(0,1fr);}}
@media print {body.crm-v2-shell #trip-finance-report button,body.crm-v2-shell #trip-extra-gains button {display:none!important;}}


/* Saisie rapide des dépenses : mêmes repères visuels sur les deux portails.
   Les options non courantes restent disponibles, sans détour obligatoire. */
body.crm-v2-shell .quick-expense { max-width: 600px; gap: 14px; }
body.crm-v2-shell .quick-expense .field { min-width: 0; }
body.crm-v2-shell .quick-expense .field > span { font-weight: 650; }
body.crm-v2-shell .quick-expense .quick-expense-amount {
  min-height: 52px; font-size: 1.35rem; font-weight: 700; font-variant-numeric: tabular-nums;
}
body.crm-v2-shell .quick-expense .field input,
body.crm-v2-shell .quick-expense .field select { min-height: 44px; }
body.crm-v2-shell .quick-expense .quick-expense-details {
  border: 1px solid #d6e1ec; border-radius: 12px; padding: 12px;
  background: #f8fbff;
}
body.crm-v2-shell .quick-expense .quick-expense-details summary {
  cursor: pointer; font-weight: 650; min-height: 28px; line-height: 28px;
}
body.crm-v2-shell .quick-expense .quick-expense-details .stack { margin-top: 14px; }
body.crm-v2-shell .quick-expense [hidden] { display: none !important; }
body.crm-v2-shell .quick-expense :is(input,select,textarea,summary,button):focus-visible {
  outline: 3px solid #2875cb; outline-offset: 3px;
}
@media (max-width: 760px) {
  body.crm-v2-shell .quick-expense .actions { display: flex; gap: 10px; }
  body.crm-v2-shell .quick-expense .actions .btn-primary { flex: 1; min-height: 48px; }
}
