/**
 * DYMMO UI - BUTTONS
 */

.dm-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--dm-space-2);
    padding: var(--dm-space-3) var(--dm-space-6);
    font-family: var(--dm-font-sans);
    font-size: var(--dm-text-sm);
    font-weight: var(--dm-font-bold);
    line-height: var(--dm-leading-normal);
    text-align: center;
    white-space: nowrap;
    cursor: pointer;
    user-select: none;
    border: 2px solid transparent;
    border-radius: var(--dm-radius-xl);
    transition: all var(--dm-duration-200) var(--dm-ease-out);
    position: relative;
    overflow: hidden;
}

.dm-btn:focus {
    outline: none;
    box-shadow: 0 0 0 3px var(--dm-glow-DEFAULT);
}

.dm-btn:disabled { opacity: 0.5; cursor: not-allowed; pointer-events: none; }

.dm-btn-primary {
    background: var(--dm-gradient-primary);
    color: white;
    box-shadow: var(--dm-shadow-md);
}

.dm-btn-primary:hover:not(:disabled) {
    transform: translateY(-2px);
    box-shadow: var(--dm-shadow-xl), var(--dm-glow-lg);
}

.dm-btn-secondary {
    background: var(--dm-gradient-secondary);
    color: white;
    box-shadow: var(--dm-shadow-md);
}

.dm-btn-outline {
    background: transparent;
    border-color: var(--dm-border-secondary);
    color: var(--dm-text-primary);
}

.dm-btn-outline:hover:not(:disabled) {
    background: var(--dm-bg-tertiary);
    border-color: var(--dm-brand-primary);
}

.dm-btn-ghost {
    background: transparent;
    color: var(--dm-text-primary);
}

.dm-btn-ghost:hover:not(:disabled) {
    background: var(--dm-bg-tertiary);
}

.dm-btn-success { background: var(--dm-gradient-success); color: white; }
.dm-btn-danger { background: var(--dm-gradient-danger); color: white; }
.dm-btn-warning { background: var(--dm-gradient-warning); color: white; }
.dm-btn-info { background: var(--dm-gradient-info); color: white; }

.dm-btn-xs { padding: var(--dm-space-1) var(--dm-space-3); font-size: var(--dm-text-xs); border-radius: var(--dm-radius-md); }
.dm-btn-sm { padding: var(--dm-space-2) var(--dm-space-4); font-size: var(--dm-text-sm); border-radius: var(--dm-radius-lg); }
.dm-btn-lg { padding: var(--dm-space-4) var(--dm-space-8); font-size: var(--dm-text-lg); border-radius: var(--dm-radius-2xl); }
.dm-btn-xl { padding: var(--dm-space-5) var(--dm-space-10); font-size: var(--dm-text-xl); border-radius: var(--dm-radius-2xl); }

.dm-btn-icon { padding: var(--dm-space-3); aspect-ratio: 1; }
.dm-btn-block { display: flex; width: 100%; }
.dm-btn-pill { border-radius: var(--dm-radius-full); }

.dm-btn-loading {
    position: relative;
    color: transparent !important;
    pointer-events: none;
}

.dm-btn-loading::after {
    content: '';
    position: absolute;
    width: 16px;
    height: 16px;
    top: 50%;
    left: 50%;
    margin: -8px 0 0 -8px;
    border: 2px solid white;
    border-top-color: transparent;
    border-radius: 50%;
    animation: dm-spin 0.6s linear infinite;
}

@keyframes dm-spin {
    to { transform: rotate(360deg); }
}
