/* ICF · Modo compacto para los formularios internos (editar / alta manual).
   Misma información, menos espacio: el operativo trabaja más rápido. */

body.icf-compact { font-size: 13px; }

/* Ancho útil: aprovechar pantalla */
body.icf-compact .edit-shell,
body.icf-compact .ns-shell { width: min(1340px, calc(100% - 22px)); margin-top: 16px; margin-bottom: 48px; }

/* Cabecera más baja */
body.icf-compact .edit-hero,
body.icf-compact .ns-hero { padding: 12px 16px; margin-bottom: 12px; border-radius: 12px; }
body.icf-compact .edit-hero h1,
body.icf-compact .ns-hero h1 { font-size: 19px; line-height: 1.1; margin: 2px 0; }
body.icf-compact .edit-hero p,
body.icf-compact .ns-hero p { font-size: 12px; }
body.icf-compact .eyebrow { font-size: 10px; }

/* Tarjeta y secciones */
body.icf-compact .edit-card,
body.icf-compact .ns-card { padding: 14px 16px; border-radius: 12px; }
body.icf-compact .ns-card h2,
body.icf-compact .edit-card h2 { font-size: 13.5px; margin: 14px 0 8px; padding-bottom: 5px; border-bottom: 1px solid #e6edf2; }
body.icf-compact .ns-card h2:first-of-type { margin-top: 0; }

/* Rejilla densa y multicolumna */
body.icf-compact .form-grid { grid-template-columns: repeat(auto-fit, minmax(185px, 1fr)) !important; gap: 8px 10px !important; }
body.icf-compact .address-grid { grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important; gap: 7px 9px !important; }

/* Campos compactos */
body.icf-compact .form-field { gap: 3px; }
body.icf-compact .form-field label,
body.icf-compact .ship-field label,
body.icf-compact label { font-size: 11px; font-weight: 800; margin: 0; line-height: 1.2; }
body.icf-compact input,
body.icf-compact select,
body.icf-compact textarea {
  min-height: 34px !important;
  height: auto;
  padding: 6px 9px !important;
  font-size: 13px !important;
  border-radius: 7px !important;
}
body.icf-compact textarea { min-height: 0 !important; line-height: 1.35; }
body.icf-compact .field-hint,
body.icf-compact small { font-size: 10.5px; margin-top: 1px; }
body.icf-compact .datetime-control { gap: 6px; }

/* Fieldsets de dirección */
body.icf-compact .address-block { padding: 10px 12px; border-radius: 10px; margin: 2px 0; }
body.icf-compact .address-block legend { font-size: 11px; font-weight: 900; padding: 0 6px; }

/* Constructores de ruta y carga */
body.icf-compact .route-points-builder,
body.icf-compact .cargo-builder { padding: 10px 12px; border-radius: 10px; }
body.icf-compact .route-points-builder__head,
body.icf-compact .cargo-builder__head { margin-bottom: 8px; }
body.icf-compact .route-points-builder__head strong,
body.icf-compact .cargo-builder__head strong { font-size: 13px; }
body.icf-compact .card-kicker { font-size: 9.5px; }
body.icf-compact .route-points-builder__grid,
body.icf-compact .cargo-builder__grid { grid-template-columns: repeat(auto-fit, minmax(118px, 1fr)) !important; gap: 6px 8px !important; align-items: end; }
body.icf-compact .route-points-builder__list li,
body.icf-compact .cargo-builder__list li { padding: 5px 9px; font-size: 12px; margin: 4px 0 0; }
body.icf-compact .cargo-builder__totals { gap: 8px; font-size: 12px; padding: 6px 0 0; }
body.icf-compact .file-note { font-size: 10.5px; margin: 6px 0 0; }

/* Subida de archivos compacta */
body.icf-compact .file-upload { padding: 8px 10px; }

/* Botones */
body.icf-compact .button { min-height: 36px !important; padding: 7px 14px !important; font-size: 13px; }
body.icf-compact .route-points-builder__add,
body.icf-compact .cargo-builder__add { align-self: end; }

/* Bloque de presupuesto (alta manual) */
body.icf-compact .ns-quote { padding: 12px; border-radius: 10px; }

/* Acciones */
body.icf-compact .ns-actions,
body.icf-compact .edit-actions { margin-top: 14px; gap: 8px; }
body.icf-compact .ns-actions .button,
body.icf-compact .edit-actions .button { min-height: 42px !important; }

/* Checkboxes legales más compactos */
body.icf-compact .checkbox-row { font-size: 11.5px; gap: 7px; }

/* === Bloques por lotes, con color (Solicitante / Remitente / Destinatario / Carga) === */
.icf-block { position: relative; border: 1px solid #e3e9ee; border-left: 5px solid var(--icf-accent, #8a96a2); border-radius: 11px; padding: 12px 15px 14px; margin: 0 0 14px; background: #fff; }
.icf-block__head { display: flex; align-items: center; gap: 9px; margin: 0 0 11px; flex-wrap: wrap; }
.icf-block__num { width: 24px; height: 24px; border-radius: 50%; background: var(--icf-accent, #8a96a2); color: #fff; font-weight: 900; font-size: 12.5px; display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.icf-block__title { font-size: 13px; font-weight: 900; color: #16212c; text-transform: uppercase; letter-spacing: .03em; }
.icf-block__hint { margin-left: auto; font-size: 11px; font-weight: 700; color: #6f7b87; }
.icf-block .form-grid { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important; gap: 8px 10px !important; }
.icf-block .address-block { border-color: var(--icf-accent, #cdd8df); background: rgba(255,255,255,.55); }
.icf-block .address-block legend { color: var(--icf-accent, #2f3945); }

.icf-block--solicitante { --icf-accent: #5a6b7a; }
.icf-block--remitente   { --icf-accent: #2f7fc4; background: #f4f9fe; }
.icf-block--destinatario{ --icf-accent: #1d9e75; background: #f2fbf7; }
.icf-block--puntos      { --icf-accent: #7a5bd6; background: #f7f5fe; }
.icf-block--carga       { --icf-accent: #c98a1a; background: #fdf9f0; }
.icf-block--adjunto     { --icf-accent: #5a6b7a; }
.icf-block--presupuesto { --icf-accent: #0e221b; background: #f6faf8; }

/* Las pastillas de recoge/entrega de la carga, con su color */
.icf-block--carga [data-cargo-pickup] { border-color: #9cc4e8 !important; }
.icf-block--carga [data-cargo-dropoff] { border-color: #9ad9bf !important; }

@media (max-width: 720px) {
  .icf-block { padding: 11px 12px; }
}

/* === Web pública: compacto SOLO dentro del formulario de cotización === */
/* (No tocamos cabecera, hero ni footer; el resto de la web queda igual.) */
.quote-panel.icf-blocks .form-grid { grid-template-columns: repeat(auto-fit, minmax(185px, 1fr)) !important; gap: 8px 10px !important; }
.quote-panel.icf-blocks .form-field { gap: 3px; }
.quote-panel.icf-blocks .form-field label,
.quote-panel.icf-blocks label { font-size: 11.5px; font-weight: 800; line-height: 1.2; }
.quote-panel.icf-blocks input,
.quote-panel.icf-blocks select,
.quote-panel.icf-blocks textarea { min-height: 36px !important; padding: 6px 10px !important; font-size: 13.5px !important; border-radius: 8px !important; }
.quote-panel.icf-blocks textarea { min-height: 0 !important; }
.quote-panel.icf-blocks .address-grid,
.quote-panel.icf-blocks .route-points-builder__grid,
.quote-panel.icf-blocks .cargo-builder__grid { grid-template-columns: repeat(auto-fit, minmax(128px, 1fr)) !important; gap: 7px 9px !important; align-items: end; }
.quote-panel.icf-blocks .address-block { padding: 10px 12px; }
.quote-panel.icf-blocks .field-hint,
.quote-panel.icf-blocks small { font-size: 11px; }

/* Colorear las zonas que YA existen en el formulario público como bloques */
.quote-panel.icf-blocks .solicitante-block { border: 1px solid #e3e9ee; border-left: 5px solid #5a6b7a; border-radius: 11px; padding: 12px 15px 6px; margin: 0 0 14px; background: #fff; }
.quote-panel.icf-blocks [data-location-group="origin"] { border: 1px solid #cfe1f3 !important; border-left: 5px solid #2f7fc4 !important; background: #f4f9fe !important; border-radius: 11px !important; }
.quote-panel.icf-blocks [data-location-group="origin"] legend { color: #1f5e95; font-weight: 900; }
.quote-panel.icf-blocks [data-location-group="destination"] { border: 1px solid #cdeadd !important; border-left: 5px solid #1d9e75 !important; background: #f2fbf7 !important; border-radius: 11px !important; }
.quote-panel.icf-blocks [data-location-group="destination"] legend { color: #0f6e56; font-weight: 900; }
.quote-panel.icf-blocks .route-points-builder { border: 1px solid #e2dcf7 !important; border-left: 5px solid #7a5bd6 !important; background: #f7f5fe !important; border-radius: 11px !important; }
.quote-panel.icf-blocks .cargo-builder { border: 1px solid #f0e3c6 !important; border-left: 5px solid #c98a1a !important; background: #fdf9f0 !important; border-radius: 11px !important; }

/* === Pulido v2: evitar cortes de texto en los campos === */
body.icf-compact input, body.icf-compact select, body.icf-compact textarea,
.quote-panel.icf-blocks input, .quote-panel.icf-blocks select, .quote-panel.icf-blocks textarea {
  min-height: 40px !important;
  height: auto !important;
  padding: 8px 12px !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
}
body.icf-compact select,
.quote-panel.icf-blocks select { padding-right: 30px !important; text-overflow: ellipsis; }
body.icf-compact textarea,
.quote-panel.icf-blocks textarea { min-height: 62px !important; }
/* Etiquetas: que no se aprieten ni se corten (pueden ir a 2 líneas) */
body.icf-compact label,
body.icf-compact .form-field label,
.quote-panel.icf-blocks label,
.quote-panel.icf-blocks .form-field label { font-size: 12px !important; line-height: 1.3 !important; white-space: normal; margin: 0 0 3px !important; }
body.icf-compact .form-field,
.quote-panel.icf-blocks .form-field { gap: 4px; min-width: 0; }
/* Columnas más anchas para que quepa el texto de cada campo */
body.icf-compact .form-grid,
.quote-panel.icf-blocks .form-grid { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)) !important; gap: 9px 12px !important; }
body.icf-compact .address-grid,
.quote-panel.icf-blocks .address-grid,
body.icf-compact .route-points-builder__grid,
.quote-panel.icf-blocks .route-points-builder__grid,
body.icf-compact .cargo-builder__grid,
.quote-panel.icf-blocks .cargo-builder__grid { grid-template-columns: repeat(auto-fit, minmax(152px, 1fr)) !important; gap: 8px 10px !important; }
/* Las pastillas anchas (empresa, dirección) ocupan toda la fila si caben */
body.icf-compact .form-field--wide,
.quote-panel.icf-blocks .form-field--wide { grid-column: span 2; }
