/* Nexus Control — Buttons */

#nxctl-portal .nc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--nc-space-2);
    padding: 8px var(--nc-space-4);
    border-radius: var(--nc-radius-full);
    font-family: var(--nc-font);
    font-size: var(--nc-fs-sm);
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    transition: all var(--nc-dur) var(--nc-ease);
    white-space: nowrap;
    border: 1.5px solid transparent;
    text-decoration: none;
    -webkit-user-select: none;
    user-select: none;
}
#nxctl-portal .nc-btn:disabled { opacity: .45; cursor: not-allowed; }
#nxctl-portal .nc-btn svg { width: 14px; height: 14px; stroke: currentColor; flex-shrink: 0; }

#nxctl-portal .nc-btn--primary {
    background: var(--nc-accent);
    color: #fff;
    border-color: var(--nc-accent);
}
#nxctl-portal .nc-btn--primary:hover:not(:disabled) {
    filter: brightness(1.1);
    box-shadow: 0 4px 12px rgba(var(--nc-accent-rgb),.4);
    transform: translateY(-1px);
}

#nxctl-portal .nc-btn--secondary {
    background: var(--nc-surface2);
    color: var(--nc-text);
    border-color: var(--nc-border);
}
#nxctl-portal .nc-btn--secondary:hover:not(:disabled) { background: var(--nc-hover); }

#nxctl-portal .nc-btn--ghost {
    background: transparent;
    color: var(--nc-muted);
    border-color: transparent;
}
#nxctl-portal .nc-btn--ghost:hover:not(:disabled) { background: var(--nc-hover); color: var(--nc-text); }

#nxctl-portal .nc-btn--danger {
    background: rgba(239,68,68,.12);
    color: #ef4444;
    border-color: rgba(239,68,68,.2);
}
#nxctl-portal .nc-btn--danger:hover:not(:disabled) {
    background: rgba(239,68,68,.2);
    box-shadow: 0 4px 12px rgba(239,68,68,.25);
}

#nxctl-portal .nc-btn--sm { padding: 5px 12px; font-size: var(--nc-fs-xs); }
#nxctl-portal .nc-btn--lg { padding: 11px 22px; font-size: var(--nc-fs-base); }
#nxctl-portal .nc-btn--icon { padding: 8px; border-radius: var(--nc-radius); width: 34px; height: 34px; }
#nxctl-portal .nc-btn--loading { pointer-events: none; opacity: .7; }
@keyframes ncSpin { to { transform: rotate(360deg); } }
#nxctl-portal .nc-spin { animation: ncSpin .8s linear infinite; }
