/* Button Components */ .btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--spacing-sm); padding: var(--spacing-sm) var(--spacing-md); border: 1px solid transparent; border-radius: var(--border-radius); font-family: inherit; font-size: var(--font-size-sm); font-weight: 500; line-height: 1.5; text-decoration: none; cursor: pointer; transition: all var(--transition-fast); user-select: none; white-space: nowrap; } .btn:focus { outline: none; box-shadow: 0 0 0 3px rgb(59 130 246 / 0.1); } .btn:disabled { opacity: 0.6; cursor: not-allowed; pointer-events: none; } .btn .icon { width: 1rem; height: 1rem; fill: currentColor; } /* Button Variants */ .btn-primary { background-color: var(--primary-color); border-color: var(--primary-color); color: var(--text-inverse); } .btn-primary:hover:not(:disabled) { background-color: var(--primary-hover); border-color: var(--primary-hover); } .btn-secondary { background-color: var(--bg-secondary); border-color: var(--border-color); color: var(--text-primary); } .btn-secondary:hover:not(:disabled) { background-color: var(--btn-secondary-hover); border-color: var(--border-hover); } .btn-success { background-color: var(--success-color); border-color: var(--success-color); color: var(--text-inverse); } .btn-success:hover:not(:disabled) { background-color: #059669; border-color: #059669; } .btn-warning { background-color: var(--warning-color); border-color: var(--warning-color); color: var(--text-inverse); } .btn-warning:hover:not(:disabled) { background-color: #d97706; border-color: #d97706; } .btn-error { background-color: var(--error-color); border-color: var(--error-color); color: var(--text-inverse); } .btn-error:hover:not(:disabled) { background-color: #dc2626; border-color: #dc2626; } .btn-ghost { background-color: transparent; border-color: transparent; color: var(--text-secondary); } .btn-ghost:hover:not(:disabled) { background-color: var(--bg-secondary); color: var(--text-primary); } .btn-outline { background-color: var(--bg-secondary); border-color: var(--border-color); color: var(--text-primary); } .btn-outline:hover:not(:disabled) { background-color: var(--btn-secondary-hover); border-color: var(--border-hover); color: var(--text-primary); } .btn-icon { padding: var(--spacing-sm); min-width: 2rem; min-height: 2rem; } /* Button Sizes */ .btn-sm { padding: var(--spacing-xs) var(--spacing-sm); font-size: var(--font-size-xs); } .btn-lg { padding: var(--spacing-md) var(--spacing-lg); font-size: var(--font-size-lg); } /* History Controls */ .history-controls { display: flex; gap: var(--spacing-xs); margin-right: var(--spacing-sm); padding-right: var(--spacing-sm); border-right: 1px solid var(--border-color); } .history-controls .btn { min-width: 2.5rem; padding: var(--spacing-sm); } .history-controls .btn:disabled { opacity: 0.8; cursor: not-allowed; } .history-controls .btn:disabled:hover { background-color: transparent; transform: none; }