/* Fumigación: certificados, historial por tienda y rutas con paradas, cobro y rentabilidad. */
.fum-page .kpis { grid-template-columns: repeat(auto-fit, minmax(min(210px, 100%), 1fr)); }
.fum-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.fum-card { overflow: hidden; }
.fum-bad { color: var(--error); font-weight: 700; }
.fum-warn { color: var(--aviso); font-weight: 600; }

/* Filtros */
.fum-filters { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 14px 18px; border-bottom: 1px solid var(--acero-100); }
.fum-filters-in { padding: 0 0 10px; border: 0; }
.fum-search { flex: 1 1 240px; min-width: 200px; max-width: 360px; }
.fum-sel { width: auto; min-width: 150px; max-width: 220px; min-height: 42px; height: 42px; }
.fum-date { display: flex; align-items: center; gap: 6px; font-size: 0.8125rem; color: var(--acero-600); font-weight: 600; }
.fum-date .input { min-height: 42px; height: 42px; width: 150px; }
.fum-state { flex-wrap: wrap; }

/* Tablas */
.fum-tbl td { vertical-align: middle; }
.fum-tbl .num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.fum-place { max-width: 240px; }
.fum-place > .ellipsis { display: block; }
.fum-who { max-width: 160px; }
.fum-pests { max-width: 230px; font-size: 0.8438rem; }
.fum-pests > .ellipsis { display: block; }
.fum-tbl .nowrap { white-space: nowrap; }
.fum-ph { display: inline-flex; align-items: center; gap: 3px; }
.fum-mcard { width: 100%; border: 0; background: none; font: inherit; color: inherit; text-align: left; cursor: pointer; align-items: flex-start; gap: 12px; padding: 12px 16px; }

/* Detalle del certificado */
.drawer.fin-sheet.fum-doc { width: min(780px, 100vw); }
.drawer.fin-sheet.fum-wide { width: min(920px, 100vw); }
.fum-stamp { display: flex; gap: 16px; align-items: flex-start; flex-wrap: wrap; padding: 14px 16px; border: 2px solid var(--oro); border-radius: 16px; background: var(--oro-50); }
.fum-stamp > .grow { display: grid; gap: 4px; min-width: 220px; }
.fum-stamp-place { font-family: var(--titulo); font-size: 1.1875rem; font-weight: 800; line-height: 1.2; }
.fum-dates { display: flex; gap: 14px; margin: 0; flex-wrap: wrap; }
.fum-dates div { display: grid; gap: 2px; }
.fum-dates dt { font-size: 0.75rem; color: var(--acero-500); font-weight: 600; }
.fum-dates dd { margin: 0; font-weight: 700; white-space: nowrap; }
.fum-kv { margin: 0; }
.fum-sec { display: grid; gap: 8px; padding-top: 14px; border-top: 1px solid var(--acero-100); }
.fum-sec h3, .fum-h { font-size: 0.8125rem; letter-spacing: .06em; text-transform: uppercase; color: var(--acero-500); font-weight: 700; margin: 0; }
.fum-sec p { margin: 0; }
.fum-sec .pre { white-space: pre-wrap; }
.fum-two { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.fum-two > div { display: grid; gap: 6px; align-content: start; }
.fum-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.fum-tags span { padding: 4px 11px; border-radius: 999px; border: 1px solid var(--acero-200); font-weight: 600; font-size: 0.8125rem; background: var(--papel); }
.fum-prods { display: grid; gap: 6px; }
.fum-prod { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--acero-100); background: var(--papel); }
.fum-prod-q { white-space: nowrap; font-variant-numeric: tabular-nums; }
.fum-eval { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 8px; }
.fum-eval div { padding: 8px 10px; border: 1px solid var(--acero-100); border-radius: 12px; display: grid; gap: 2px; }
.fum-eval .wide { grid-column: 1 / -1; }
.fum-eval small { color: var(--acero-500); font-size: 0.75rem; }
.fum-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
.fum-photo { display: grid; gap: 4px; color: inherit; text-decoration: none; min-width: 0; }
.fum-photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; border: 1px solid var(--acero-100); background: var(--acero-50); }
.fum-photo span { font-size: 0.75rem; color: var(--acero-600); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fum-sig { max-height: 84px; max-width: 100%; object-fit: contain; border: 1px dashed var(--acero-200); border-radius: 10px; background: #fff; padding: 4px; }
.fum-bill { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.fum-bill .inv-cost { flex: 1 1 140px; min-width: 120px; }
.fum-bill .inv-cost .input { min-height: 40px; height: 40px; text-align: right; padding-left: 24px; }

/* Formulario del certificado */
.fum-grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; align-items: start; }
.fum-grid3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; align-items: start; }
.fum-box { display: grid; gap: 12px; padding: 14px; border-radius: 16px; border: 1px solid var(--acero-100); background: var(--acero-50); }
.fum-chips { align-items: center; }
.fum-other { display: inline-flex; align-items: center; gap: 4px; }
.fum-other .input { min-height: 34px; height: 34px; width: 130px; border-radius: 999px; padding: 4px 12px; font-size: 0.8438rem; }
.fum-line { display: grid; grid-template-columns: minmax(0, 1fr) 130px 150px 40px; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 14px; background: var(--papel); border: 1px solid var(--acero-100); }
.fum-line .inv-qty .input { min-height: 42px; height: 42px; text-align: right; padding-right: 46px; }
.fum-dose { min-height: 42px; height: 42px; }
.fum-emit { gap: 12px; }
.fum-amount { display: grid; grid-template-columns: 1fr 200px; align-items: center; gap: 10px; }
.fum-amount > span { font-weight: 600; color: var(--acero-700); }
.fum-amount .input { text-align: right; min-height: 44px; height: 44px; padding-left: 24px; }

/* Rutas */
.fum-routes { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr)); gap: 14px; }
.fum-route { display: grid; gap: 10px; padding: 16px 18px; text-align: left; font: inherit; color: inherit; cursor: pointer; border: 1px solid var(--acero-100); min-width: 0; }
.fum-route:hover { border-color: var(--oro-600); }
.fum-route-top { display: flex; align-items: center; gap: 10px; min-width: 0; }
.fum-route-top h3 { font-size: 1.0625rem; line-height: 1.25; }
.fum-progress { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; }
.fum-progress .inv-bar { max-width: none; }
.fum-route-nums { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 10px 12px; border-radius: 12px; background: var(--acero-50); }
.fum-route-nums div { display: grid; gap: 2px; min-width: 0; }
.fum-route-nums dt { font-size: 0.75rem; color: var(--acero-500); font-weight: 600; }
.fum-route-nums dd { margin: 0; font-family: var(--titulo); font-weight: 800; font-size: 1rem; overflow: hidden; text-overflow: ellipsis; }
.fum-route-head { display: flex; gap: 14px; align-items: flex-end; flex-wrap: wrap; justify-content: space-between; }
.fum-profit { display: grid; gap: 12px; padding: 16px; border-radius: 16px; border: 1px solid var(--acero-100); background: var(--papel); }
.fum-profit-main { display: grid; gap: 2px; }
.fum-profit-main > span:first-child { font-size: 0.75rem; color: var(--acero-500); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.fum-profit-main b { font-family: var(--titulo); font-size: 1.875rem; font-weight: 800; line-height: 1.1; }
.fum-profit-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; margin: 0; }
.fum-profit-grid div { display: grid; gap: 2px; padding: 10px 12px; border-radius: 12px; background: var(--acero-50); min-width: 0; }
.fum-profit-grid dt { font-size: 0.75rem; color: var(--acero-500); font-weight: 600; }
.fum-profit-grid dd { margin: 0; font-family: var(--titulo); font-weight: 800; font-size: 1.125rem; }
.fum-profit-grid small { font-size: 0.7188rem; color: var(--acero-500); }
.fum-cats { display: grid; gap: 6px; }
.fum-cat { display: grid; grid-template-columns: minmax(0, 1fr) minmax(80px, 200px) auto; gap: 10px; align-items: center; font-size: 0.8438rem; }
.fum-cat .inv-bar { max-width: none; }
.fum-stops-head { align-items: center; gap: 10px; }
.fum-stops-head h3 { margin: 0; font-size: 1rem; }
.fum-stops { display: grid; gap: 8px; }
.fum-stop { display: grid; grid-template-columns: 30px minmax(0, 1fr) 130px; gap: 6px 12px; align-items: center; padding: 10px 12px; border-radius: 14px; border: 1px solid var(--acero-100); background: var(--papel); }
.fum-stop.is-hecha { border-left: 3px solid var(--ok); }
.fum-stop.is-no_se_pudo { border-left: 3px solid var(--error); }
.fum-stop-n { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--acero-50); font-weight: 800; font-size: 0.8125rem; }
.fum-stop-main { display: grid; gap: 3px; min-width: 0; }
.fum-stop-main .link-btn { justify-self: start; }
.fum-stop-amt { display: grid; justify-items: end; gap: 2px; }
.fum-stop-amt .inv-cost { width: 100%; }
.fum-stop-amt .input { min-height: 38px; height: 38px; text-align: right; padding-left: 24px; }
.fum-stop-act { grid-column: 2 / -1; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.fum-stop-order { display: inline-flex; gap: 2px; margin-left: auto; }

/* Selector de tiendas */
.fum-picker { display: grid; gap: 8px; }
.fum-picker-bar { align-items: center; gap: 8px; }
.fum-picker-list { display: grid; gap: 4px; max-height: 320px; overflow: auto; padding-right: 2px; }
.fum-pick { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 10px; border: 1px solid var(--acero-100); background: var(--papel); cursor: pointer; min-width: 0; }
.fum-pick.on { border-color: var(--oro-600); background: var(--oro-50); }
.fum-pick input { width: 18px; height: 18px; flex: none; accent-color: var(--grafito); }
.fum-pick .small { max-width: 40%; }
.fum-sel-stops { display: flex; flex-wrap: wrap; gap: 6px; }
.fum-bill-list { display: grid; gap: 4px; max-height: 260px; overflow: auto; }

@media (max-width: 899px) {
  .fum-page .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fum-filters { padding: 12px 14px; gap: 8px; }
  .fum-filters-in { padding: 0 0 8px; }
  .fum-search { flex: 1 1 100%; max-width: none; }
  .fum-sel { flex: 1 1 calc(50% - 8px); min-width: 0; max-width: none; }
  .fum-date { flex: 1 1 calc(50% - 8px); }
  .fum-date .input { width: 100%; min-width: 0; }
  .fum-state { flex-wrap: nowrap; overflow-x: auto; width: 100%; padding-bottom: 2px; }
  .fum-state .chip { flex: none; }
  .fum-line { grid-template-columns: minmax(0, 1fr) 40px; }
  .fum-line .inv-line-p, .fum-line .inv-qty, .fum-line .fum-dose { grid-column: 1; }
  .fum-line > .btn-icon { grid-column: 2; grid-row: 1; }
  .fum-amount { grid-template-columns: 1fr; }
  .fum-stop { grid-template-columns: 28px minmax(0, 1fr); }
  .fum-stop-amt { grid-column: 2; justify-items: start; }
  .fum-stop-amt .inv-cost { max-width: 180px; }
  .fum-stop-act { grid-column: 1 / -1; }
  .fum-cat { grid-template-columns: minmax(0, 1fr) auto; }
  .fum-cat .inv-bar { display: none; }
  .fum-route-head { align-items: stretch; }
}
.sds-note { background: var(--aviso-50); border-radius: 12px; padding: 10px 12px; } .sds-note p { margin: 4px 0 0; } .pre-wrap { white-space: pre-wrap; }
/* R52 · Control de químicos */
.qm-alerts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.qm-a { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 10px; align-items: center; background: #fff; border: 1px solid var(--acero-200); border-radius: 14px; padding: 12px; }
.qm-a > :first-child { grid-row: span 2; }
.qm-a b { font-size: 1.5rem; font-family: var(--titulo); line-height: 1; }
.qm-a span { font-size: .8rem; color: var(--acero-600); }
.qm-a.is-on { border-color: var(--aviso); background: var(--aviso-50); }
.qm-out { border-bottom: 1px solid var(--acero-100); padding: 8px 0; }
@media (max-width: 800px) { .qm-alerts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
