/* Solicitud de presupuesto (includes/budget-form.php). CSS plano, fuera de
   Tailwind, para no depender de recompilar app.css. */
.sp-bloque { margin: 1.5rem 0; }
.sp-fila {
    display: grid;
    grid-template-columns: 7rem repeat(4, minmax(0, 1fr));
    gap: .5rem .75rem;
    align-items: end;
    margin-bottom: .5rem;
    position: relative;
}
.sp-fila-bulto { grid-template-columns: 5rem 5rem minmax(0, 2.4fr) repeat(4, minmax(0, 1fr)); }
.sp-cabecera span { font-size: .8rem; text-transform: uppercase; letter-spacing: .05em; }
.sp-cabecera .sp-opcional { text-transform: none; letter-spacing: 0; }
/* Obligatorio: asterisco rojo y más grande; opcional: rótulo discreto */
.sp-obligatorio { color: #c81e1e; font-size: 1.3em; font-weight: 700; line-height: 1; margin-left: .15em; }
.sp-opcional { font-size: 1em; font-weight: 400; text-transform: none; letter-spacing: 0; opacity: .65; margin-left: .2em; }
.sp-leyenda { font-size: .875rem; margin-bottom: 1rem; }
.sp-titulo-bultos { margin-bottom: .5rem; }
.sp-titulo-bultos small { font-size: .8rem; opacity: .8; margin-left: .5rem; }
.sp-error { color: #c81e1e; min-height: 1em; }
.sp-tramo { align-items: start; }
.sp-tramo .sp-rotulo { align-self: start; padding-top: .6rem; }
.sp-rotulo { align-self: center; font-weight: 600; }
.sp-movil { display: none; }
.sp-fila input, .sp-fila select { margin-bottom: 0; }
.sp-pais-otro { margin-top: .35rem; }
.sp-quitar {
    position: absolute; right: -1.75rem; top: 50%; transform: translateY(-50%);
    width: 1.5rem; height: 1.5rem; line-height: 1; font-size: 1.25rem;
    border: 0; background: transparent; cursor: pointer; color: inherit; opacity: .7;
}
.sp-quitar:hover, .sp-quitar:focus { opacity: 1; }
.sp-anadir {
    display: inline-flex; align-items: center; gap: .4rem; margin-top: .25rem;
    border: 0; background: transparent; cursor: pointer; font-weight: 600; color: inherit;
}
.sp-anadir span {
    display: inline-flex; align-items: center; justify-content: center;
    width: 1.6rem; height: 1.6rem; border-radius: .25rem;
    background: #f5b700; color: #1f3d1f; font-size: 1.2rem; font-weight: 700;
}
.sp-limite, .sp-aviso-cp { margin-top: .25rem; min-height: 1em; }
.sp-detalle[hidden], .sp-pais-otro[hidden], .sp-anadir[hidden] { display: none; }

@media (max-width: 767px) {
    .sp-fila { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sp-cabecera { display: none; }
    .sp-rotulo, .sp-col-mercancia { grid-column: 1 / -1; }
    .sp-movil { display: block; font-size: .8rem; }
    .sp-quitar { right: 0; top: 0; transform: none; }
}
