/* Action Button Base Styles */ .actionButton { display: flex; align-items: center; justify-content: center; padding: 6px; border: none; border-radius: 50%; font-size: 12px; font-family: var(--font-family); cursor: pointer; transition: all 0.2s ease; white-space: nowrap; position: relative; min-width: 28px; min-height: 28px; background: var(--color-secondary); color: var(--color-bg); } .actionButton:hover { background: var(--color-secondary-hover); transform: translateY(-1px); } .actionButton:disabled { opacity: 0.6; cursor: not-allowed; transform: none !important; } /* Disabled state class */ .actionButton.disabled { opacity: 0.4; cursor: not-allowed; transform: none !important; background: #ccc !important; color: #666 !important; } .actionButton.disabled:hover { background: #ccc !important; transform: none !important; } .actionButton:focus { outline: none; box-shadow: 0 0 0 2px rgba(var(--color-secondary-rgb), 0.3); } .actionIcon { font-size: 16px; height: 16px; width: 16px; display: flex; align-items: center; justify-content: center; } /* Loading State */ .actionButton.loading { opacity: 0.7; cursor: not-allowed; } .actionButton.loading .actionIcon { animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* Delete Confirmation Buttons */ .deleteConfirmButtons { display: flex; gap: 2px; justify-content: center; align-items: center; background: var(--color-secondary); border-radius: 25px; padding: 2px; } .confirmButton { background: transparent !important; color: white !important; min-width: 24px; min-height: 24px; padding: 4px; } .confirmButton:hover { background: rgba(255, 255, 255, 0.2) !important; transform: scale(1.05); } .cancelButton { background: transparent !important; color: white !important; min-width: 24px; min-height: 24px; padding: 4px; } .cancelButton:hover { background: rgba(255, 255, 255, 0.2) !important; transform: scale(1.05); } /* Action Button Container */ .actionButtons { display: flex; gap: 2px; justify-content: center; align-items: center; width: 100%; margin: 0 auto; } /* Button Variants - All use same styling as delete button */ .actionButton.edit { background: var(--color-secondary); color: white; } .actionButton.edit:hover { background: var(--color-secondary-hover); } .actionButton.delete { background: var(--color-secondary); color: white; } .actionButton.delete:hover { background: var(--color-secondary-hover); } .actionButton.download { background: var(--color-secondary); color: white; } .actionButton.download:hover { background: var(--color-secondary-hover); } .actionButton.view { background: var(--color-secondary); color: white; } .actionButton.view:hover { background: var(--color-secondary-hover); } /* Responsive Design */ @media (max-width: 768px) { .actionButtons { flex-direction: column; gap: 4px; } .actionButton { padding: 4px 8px; font-size: 11px; min-width: 24px; min-height: 24px; } .actionIcon { font-size: 14px; height: 14px; width: 14px; } } /* Dark theme support - All use same styling as delete button */ @media (prefers-color-scheme: dark) { .actionButton.edit { background: var(--color-secondary); } .actionButton.edit:hover { background: var(--color-secondary-hover); } .actionButton.delete { background: var(--color-secondary); } .actionButton.delete:hover { background: var(--color-secondary-hover); } .actionButton.download { background: var(--color-secondary); } .actionButton.download:hover { background: var(--color-secondary-hover); } .actionButton.view { background: var(--color-secondary); } .actionButton.view:hover { background: var(--color-secondary-hover); } }