.ui-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(15,23,42,.55);backdrop-filter:blur(2px);animation:uiFade .15s ease}
.ui-overlay.ui-out{opacity:0;transition:opacity .15s}
.ui-card{background:#fff;border-radius:16px;box-shadow:0 25px 50px -12px rgba(15,23,42,.45);width:100%;max-width:400px;padding:28px 24px 22px;text-align:center;font-family:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;animation:uiPop .22s cubic-bezier(.2,1.2,.4,1)}
.ui-card.ui-shake{animation:uiShake .3s}
.ui-icon{width:60px;height:60px;border-radius:50%;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;color:#fff;background:rgb(var(--c-500,99 102 241))}
.ui-success .ui-icon{background:#22c55e}.ui-error .ui-icon{background:#ef4444}.ui-warning .ui-icon{background:#f59e0b}.ui-info .ui-icon{background:#3b82f6}.ui-question .ui-icon{background:rgb(var(--c-500,99 102 241))}
.ui-title{margin:0 0 6px;font-size:19px;font-weight:700;color:#1e293b}
.ui-msg{margin:0 0 20px;font-size:14.5px;line-height:1.5;color:#475569;white-space:pre-line}
.ui-actions{display:flex;gap:10px;justify-content:center}
.ui-btn{border:0;border-radius:10px;padding:10px 22px;font-size:14px;font-weight:600;cursor:pointer;transition:transform .1s,background .15s}
.ui-btn:active{transform:scale(.96)}
.ui-ok{background:rgb(var(--c-600,79 70 229));color:#fff}.ui-ok:hover{background:rgb(var(--c-700,67 56 202))}
.ui-success .ui-ok{background:#16a34a}.ui-success .ui-ok:hover{background:#15803d}
.ui-ok.ui-danger{background:#dc2626}.ui-ok.ui-danger:hover{background:#b91c1c}
.ui-cancel{background:#f1f5f9;color:#475569}.ui-cancel:hover{background:#e2e8f0}
.ui-toast{position:fixed;top:20px;right:20px;z-index:10000;display:flex;align-items:center;gap:10px;padding:12px 18px;border-radius:12px;color:#fff;background:#16a34a;font:600 14px system-ui,Arial,sans-serif;box-shadow:0 10px 25px rgba(0,0,0,.2);animation:uiToast .3s ease}
.ui-toast.ui-error{background:#dc2626}.ui-toast.ui-out{opacity:0;transform:translateX(30px);transition:.4s}
@keyframes uiFade{from{opacity:0}to{opacity:1}}
@keyframes uiPop{from{opacity:0;transform:scale(.88) translateY(12px)}to{opacity:1;transform:none}}
@keyframes uiShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}
@keyframes uiToast{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:none}}

/* Loading */
.ld-ov{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;background:rgba(15,23,42,.35);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .18s}
.ld-ov.on{opacity:1;pointer-events:auto}
.ld-box{background:#fff;border-radius:18px;padding:22px 30px;display:flex;flex-direction:column;align-items:center;gap:12px;box-shadow:0 25px 50px -12px rgba(15,23,42,.45);font:600 14px/1.2 Inter,system-ui,sans-serif;color:#334155}
.ld-sp{width:42px;height:42px;border-radius:50%;border:4px solid rgb(var(--c-100,224 231 255));border-top-color:rgb(var(--c-600,79 70 229));animation:ldspin .75s linear infinite}
@keyframes ldspin{to{transform:rotate(360deg)}}
html.dark .ld-box{background:#111a2e;color:#cbd5e1}
.ld-bar{position:fixed;top:0;left:0;height:3px;width:0;z-index:99998;background:rgb(var(--c-500,99 102 241));opacity:0;pointer-events:none}
.ld-bar.on{opacity:1;width:85%;transition:width 8s cubic-bezier(.1,.6,.2,1)}

/* Soporte técnico (pie) */
.soporte{padding:14px 16px;text-align:center;font-size:11px;line-height:1.2;color:#94a3b8;opacity:.75;letter-spacing:.02em}
.soporte a{color:inherit;text-decoration:none}.soporte a:hover{text-decoration:underline;opacity:1}
.soporte span{margin:0 8px}
.soporte-fijo{position:fixed;left:0;right:0;bottom:0;padding:12px}
html.dark .soporte{color:#7486a3}
@media print{.soporte{display:none}}
