diff --git a/resources/views/layouts/main.html b/resources/views/layouts/main.html
index 0c63fba..86cb980 100755
--- a/resources/views/layouts/main.html
+++ b/resources/views/layouts/main.html
@@ -28,6 +28,27 @@
body { font-family: 'Inter', system-ui, -apple-system, sans-serif; }
[x-cloak] { display: none !important; }
+ /* Modales: el panel nunca puede pasar del alto de la ventana. Sin
+ esto, un formulario largo (o una pantalla baja / un portátil) deja
+ los botones Guardar y Cancelar fuera de vista y sin forma de
+ llegar a ellos.
+
+ Va acá y no en cada vista a propósito: son ~214 modales repartidos
+ en las plantillas y arreglarlos uno por uno garantizaba olvidarse
+ varios. El selector toma los overlays centrados
+ (.fixed.inset-0 + .items-center) y deja afuera los paneles
+ laterales (justify-end), que ya manejan su propio scroll.
+
+ El alto se mide en % y no en vh/dvh a propósito: el overlay es
+ inset-0, o sea que YA es exactamente la caja visible, así que el
+ 100% es el alto real. Con vh el panel quedaba más alto que la
+ ventana (medido: ventana 516px, panel 532px) porque vh no siempre
+ coincide con el viewport efectivo. */
+ .fixed.inset-0.items-center > div {
+ max-height: calc(100% - 2rem);
+ overflow-y: auto;
+ }
+
:root {
--color-primary: #8eb02f;
--color-primary-dark: #6d8c24;