/* POWER VPL · botones más visibles (misma paleta por módulo; se carga al final). */
body.vp-workspace :is(.content,dialog,.modal,.med-dialog) :is(.btn,.button){
 min-height:42px;padding:10px 18px;font-size:calc(14px * var(--ui-scale,1));font-weight:700;letter-spacing:.01em;line-height:1.25;
 border-radius:12px;transition:background-color .16s ease,border-color .16s ease,box-shadow .18s ease,filter .16s ease,translate .16s ease,scale .12s ease;
}
/* Secundario: fondo sólido, borde y texto con más contraste */
body.vp-workspace :is(.content,dialog,.modal,.med-dialog) :is(.btn,.button).secondary:not(.vp-action-prominent){
 background:#fff;color:var(--module-ink,#16405c);
 border:1.5px solid color-mix(in srgb,var(--module-accent,#2676b8) 58%,#b9cfdd);
 box-shadow:0 2px 0 color-mix(in srgb,var(--module-accent,#2676b8) 22%,#d7e3ec),0 4px 12px #0b2a3c12;
}
body.vp-workspace :is(.content,dialog,.modal,.med-dialog) :is(.btn,.button).secondary:not(.vp-action-prominent):hover:not(:disabled):not([aria-disabled=true]){
 background:color-mix(in srgb,var(--module-accent,#2676b8) 10%,#fff);border-color:var(--module-accent,#2676b8);filter:none;
}
/* Principal, éxito y peligro: un poco más de presencia */
body.vp-workspace :is(.content,dialog,.modal,.med-dialog) :is(.btn,.button):is(.primary,.success,.danger,.vp-action-prominent):not(.secondary){
 text-shadow:0 1px 1px #0000002e;
}
/* Respuesta al mouse y al clic (translate no interfiere con otras transformaciones) */
@media (hover:hover){
 body.vp-workspace :is(.content,dialog,.modal,.med-dialog) :is(.btn,.button):hover:not(:disabled):not([aria-disabled=true]){translate:0 -1px;box-shadow:0 7px 18px #12384c2e,inset 0 1px 0 #ffffff70}
}
body.vp-workspace :is(.content,dialog,.modal,.med-dialog) :is(.btn,.button):active:not(:disabled):not([aria-disabled=true]){translate:0 1px;scale:.985;box-shadow:0 1px 4px #12384c26}
body.vp-workspace :is(.content,dialog,.modal,.med-dialog) :is(.btn,.button):focus-visible{outline:3px solid var(--module-accent,#2676b8);outline-offset:3px}
/* Deshabilitado: se distingue sin desaparecer */
body.vp-workspace :is(.content,dialog,.modal,.med-dialog) :is(.btn,.button):is(:disabled,[aria-disabled=true]){opacity:.5;filter:grayscale(.45);box-shadow:none;translate:none;scale:none}
/* Botones dentro de tablas y listas compactas conservan su tamaño */
body.vp-workspace .table-wrap td :is(.btn,.button){min-height:35px;padding:7px 11px;font-size:calc(12px * var(--ui-scale,1))}
@media (prefers-reduced-motion:reduce){
 body.vp-workspace :is(.btn,.button){transition:none}
 body.vp-workspace :is(.content,dialog,.modal,.med-dialog) :is(.btn,.button):is(:hover,:active){translate:none;scale:none}
}
/* Íconos de acción en los botones */
.btn>svg.btn-ic{flex:none;width:16px;height:16px;margin-right:7px;vertical-align:-3px;opacity:.92}
.btn:has(>svg.btn-ic){display:inline-flex;align-items:center;justify-content:center;gap:0}
/* Un solo ícono por botón: si ya tiene el de línea, no se dibuja el de interaction-polish */
.btn.vp-action-prominent:has(>svg.btn-ic)::before{content:none}
