/* Overlay global */
.pacioli-spinner-overlay{
    position: fixed; inset: 0; z-index: 1055;
    display: none; align-items: center; justify-content: center;
}
.pacioli-spinner-overlay.is-visible{ display:flex; }
.pacioli-spinner-backdrop{
    position:absolute; inset:0;
    background: rgba(255,255,255,.72);
    backdrop-filter: blur(2px);
}
.pacioli-spinner-card{
    position:relative;
    display:flex; gap:.75rem; align-items:center;
    background:#fff; border:1px solid var(--pacioli-border);
    border-radius: var(--pacioli-radius);
    box-shadow: var(--pacioli-shadow);
    padding:.9rem 1rem; min-width: 220px; max-width: 90vw;
    font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    color: var(--pacioli-text);
    animation: spinner-pop .12s ease-out;
}
@keyframes spinner-pop{ from{ transform:scale(.98); opacity:.85; } to{ transform:scale(1); opacity:1; } }

/* Spinner circular */
.pacioli-spinner{
    width: 22px; height: 22px; border-radius: 50%;
    border: 2.5px solid rgba(38,59,137,.18);
    border-top-color: var(--pacioli-primary);
    animation: pacioli-spin .8s linear infinite;
}
@keyframes pacioli-spin{ to{ transform: rotate(360deg); } }

.pacioli-spinner-text{
    font-weight: 600; font-size: .95rem; white-space: nowrap;
}

/* —— Mini spinner para botones ——————————————— */
.btn.is-loading{
    position: relative; pointer-events: none; opacity:.85;
}
.btn.is-loading > .spinner-inline{
    width:1rem; height:1rem; border-radius:50%;
    border:2px solid rgba(255,255,255,.35);
    border-top-color:#fff; animation:pacioli-spin .8s linear infinite;
    display:inline-block; vertical-align:middle; margin-right:.45rem;
}

/* Modo oscuro opcional: si usas .dark en <html> o body */
.dark .pacioli-spinner-backdrop{ background: rgba(17,24,39,.55); }
.dark .pacioli-spinner-card{
    background:#0f172a; color:#e5e7eb; border-color:#1f2937;
}
.dark .pacioli-spinner{ border-color: rgba(255,255,255,.16); border-top-color: var(--pacioli-primary); }