/* DEFAULT / SITE — buton, badge, alert, toast */

.aho-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--aho-space-2);
    padding: var(--aho-space-3) var(--aho-space-5);
    font-family: inherit;
    font-size: var(--aho-text-sm);
    font-weight: 500;
    line-height: 1;
    border-radius: var(--aho-radius-md);
    border: 1px solid transparent;
    background: transparent;
    color: inherit;
    cursor: pointer;
    transition: all var(--aho-motion-fast);
    text-decoration: none;
    white-space: nowrap;
    user-select: none;
}
.aho-btn:disabled, .aho-btn[aria-disabled="true"] {
    opacity: .5; cursor: not-allowed; pointer-events: none;
}
.aho-btn--primary {
    background: var(--aho-color-primary-600);
    color: #fff;
    border-color: var(--aho-color-primary-600);
}
.aho-btn--primary:hover:not(:disabled) {
    background: var(--aho-color-primary-700);
    border-color: var(--aho-color-primary-700);
    color: #fff;
    transform: translateY(-1px);
    box-shadow: var(--aho-shadow-md);
}
.aho-btn--accent {
    background: var(--aho-color-accent-500);
    color: #fff;
    border-color: var(--aho-color-accent-500);
}
.aho-btn--accent:hover:not(:disabled) {
    background: var(--aho-color-accent-600);
    color: #fff;
    transform: translateY(-1px);
}
.aho-btn--outline {
    background: transparent;
    color: var(--aho-color-primary-700);
    border-color: var(--aho-color-primary-300);
}
.aho-btn--outline:hover:not(:disabled) {
    background: var(--aho-color-primary-50);
    border-color: var(--aho-color-primary-500);
    color: var(--aho-color-primary-800);
}
.aho-btn--ghost { background: transparent; color: var(--aho-color-ink-700); }
.aho-btn--ghost:hover:not(:disabled) { background: var(--aho-color-bg-muted); color: var(--aho-color-ink-900); }
.aho-btn--danger { background: var(--aho-color-danger); color: #fff; border-color: var(--aho-color-danger); }
.aho-btn--success { background: var(--aho-color-success); color: #fff; border-color: var(--aho-color-success); }
.aho-btn--xs { padding: var(--aho-space-1) var(--aho-space-3); font-size: var(--aho-text-xs); }
.aho-btn--sm { padding: var(--aho-space-2) var(--aho-space-4); font-size: var(--aho-text-sm); }
.aho-btn--lg { padding: var(--aho-space-4) var(--aho-space-6); font-size: var(--aho-text-lg); }
.aho-btn--xl { padding: var(--aho-space-5) var(--aho-space-8); font-size: var(--aho-text-lg); font-weight: 600; }
.aho-btn--block { width: 100%; }

/* Badge */
.aho-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: var(--aho-radius-full);
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.aho-badge--accent { background: var(--aho-color-accent-500); color: #fff; }
.aho-badge--success { background: var(--aho-color-success); color: #fff; }

/* Alert */
.aho-alert {
    padding: var(--aho-space-3) var(--aho-space-4);
    border-radius: var(--aho-radius-md);
    font-size: var(--aho-text-sm);
    margin-bottom: var(--aho-space-4);
}
.aho-alert--danger  { background: #fee2e2; color: #991b1b; border: 1px solid #fecaca; }
.aho-alert--success { background: #d1fae5; color: #065f46; border: 1px solid #a7f3d0; }
.aho-alert--info    { background: #dbeafe; color: #1e40af; border: 1px solid #bfdbfe; }
.aho-alert--warning { background: #fef3c7; color: #92400e; border: 1px solid #fde68a; }

/* Toast */
.aho-toast-container {
    position: fixed;
    top: var(--aho-space-4);
    right: var(--aho-space-4);
    z-index: 9999;
    display: flex;
    flex-direction: column;
    gap: var(--aho-space-2);
    max-width: calc(100vw - var(--aho-space-8));
    width: 360px;
}
.aho-toast {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--aho-space-3);
    padding: var(--aho-space-3) var(--aho-space-4);
    background: var(--aho-color-bg);
    border: 1px solid var(--aho-color-border);
    border-left: 4px solid var(--aho-color-info);
    border-radius: var(--aho-radius-md);
    box-shadow: var(--aho-shadow-lg);
    font-size: var(--aho-text-sm);
    color: var(--aho-color-ink-800);
    transform: translateX(120%);
    opacity: 0;
    transition: transform var(--aho-motion-base), opacity var(--aho-motion-base);
}
.aho-toast.is-visible { transform: translateX(0); opacity: 1; }
.aho-toast--success { border-left-color: var(--aho-color-success); }
.aho-toast--danger  { border-left-color: var(--aho-color-danger); }
.aho-toast--warning { border-left-color: var(--aho-color-warning); }
.aho-toast--info    { border-left-color: var(--aho-color-info); }
.aho-toast__close {
    background: transparent;
    color: var(--aho-color-ink-400);
    font-size: 18px;
    padding: var(--aho-space-1);
    border-radius: var(--aho-radius-sm);
}
.aho-toast__close:hover { color: var(--aho-color-ink-800); background: var(--aho-color-bg-muted); }

/* Empty state */
.aho-empty-state {
    text-align: center;
    padding: var(--aho-space-8) var(--aho-space-4);
    color: var(--aho-color-ink-500);
}
.aho-empty-state__icon { font-size: 40px; margin-bottom: var(--aho-space-2); }
.aho-empty-state__title { font-weight: 600; color: var(--aho-color-ink-800); margin-bottom: var(--aho-space-1); }
.aho-empty-state__text { font-size: var(--aho-text-sm); }
