:root{--swp-don-color:#e3173e;--swp-don-radio:10px;--swp-don-borde:#d9dde3;--swp-don-texto:#1d2733}

.swp-don{max-width:640px;margin:0 auto;padding:1.5rem;border:1px solid var(--swp-don-borde);border-radius:var(--swp-don-radio);background:#fff;color:var(--swp-don-texto);font-size:1rem;line-height:1.4}
.swp-don *{box-sizing:border-box}
.swp-don-titulo{margin:0 0 1rem;font-size:1.5rem;line-height:1.2}
.swp-don-bloque{margin-top:1.25rem}
.swp-don-etiqueta{display:block;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;opacity:.7;margin-bottom:.5rem}

/* Pestañas puntual / mensual */
.swp-don-tipos{display:flex;border:1px solid var(--swp-don-borde);border-radius:999px;padding:3px;background:#f4f5f7}
.swp-don-tipo{flex:1;text-align:center;padding:.6rem 1rem;border-radius:999px;cursor:pointer;font-weight:600;transition:background .15s,color .15s}
.swp-don-tipo input{position:absolute;opacity:0;pointer-events:none}
.swp-don-tipo.activo{background:#fff;color:var(--swp-don-color);box-shadow:0 1px 3px rgba(0,0,0,.12)}

/* Finalidades */
.swp-don-finalidades{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.5rem}
.swp-don-finalidad{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:.8rem .5rem;border:1px solid var(--swp-don-borde);border-radius:var(--swp-don-radio);cursor:pointer;text-align:center;font-size:.9rem;transition:border-color .15s,background .15s}
.swp-don-finalidad input{position:absolute;opacity:0;pointer-events:none}
.swp-don-finalidad img{width:36px;height:36px;object-fit:contain}
.swp-don-finalidad.activo{border-color:var(--swp-don-color);background:color-mix(in srgb,var(--swp-don-color) 6%,#fff);font-weight:600}

/* Importes */
.swp-don-importes{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:.5rem}
.swp-don-importe{padding:.75rem .5rem;border:1px solid var(--swp-don-borde);border-radius:var(--swp-don-radio);background:#fff;color:inherit;font:inherit;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s,color .15s}
.swp-don-importe.activo{border-color:var(--swp-don-color);background:var(--swp-don-color);color:#fff}
.swp-don-otro{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.6rem;font-size:.95rem}
.swp-don-otro-campo{display:flex;align-items:center;gap:.4rem}
.swp-don-otro input{width:110px;padding:.55rem .7rem;border:1px solid var(--swp-don-borde);border-radius:var(--swp-don-radio);font:inherit;text-align:right}
.swp-don-otro em{font-style:normal;opacity:.7}

.swp-don-deduccion{margin:1rem 0 0;padding:.75rem 1rem;border-radius:var(--swp-don-radio);background:#f4f5f7;font-size:.9rem}
.swp-don-deduccion:empty{display:none}
.swp-don-error{margin:.75rem 0 0;color:#b3261e;font-size:.9rem}

.swp-don-boton{display:block;width:100%;margin-top:1.25rem;padding:.95rem 1rem;border:0;border-radius:var(--swp-don-radio);background:var(--swp-don-color);color:#fff;font:inherit;font-weight:700;font-size:1.05rem;cursor:pointer;transition:filter .15s}
.swp-don-boton:hover{filter:brightness(.92)}
.swp-don-boton:disabled,.swp-don-boton.cargando{opacity:.6;cursor:progress}

/* Compacto */
.swp-don-compacto{padding:1rem}
.swp-don-compacto .swp-don-finalidad{padding:.5rem}

/* Botón de apertura y flotante */
.swp-don-abrir{display:inline-block;padding:.7rem 1.4rem;border:0;border-radius:999px;background:var(--swp-don-color);color:#fff;font:inherit;font-weight:700;cursor:pointer}
.swp-don-flotante{position:fixed;bottom:1.25rem;z-index:9998;box-shadow:0 6px 20px rgba(0,0,0,.2)}
.swp-don-flotante-der{right:1.25rem}
.swp-don-flotante-izq{left:1.25rem}

/* Modal */
.swp-don-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:1rem}
.swp-don-modal[hidden]{display:none}
.swp-don-modal-fondo{position:absolute;inset:0;background:rgba(0,0,0,.5)}
.swp-don-modal-caja{position:relative;width:100%;max-width:640px;max-height:95vh;overflow:auto;border-radius:var(--swp-don-radio)}
.swp-don-modal-caja .swp-don{max-width:none}
.swp-don-cerrar{position:absolute;top:.5rem;right:.6rem;z-index:1;width:36px;height:36px;border:0;border-radius:50%;background:#f4f5f7;font-size:1.4rem;line-height:1;cursor:pointer}
body.swp-don-modal-abierto{overflow:hidden}

@media (max-width:480px){.swp-don{padding:1rem}.swp-don-otro{flex-direction:column;align-items:stretch}.swp-don-otro input{width:100%}}
