/* TODO: Review box-shadow values - consider using design system shadow variables (--shadow-xs, --shadow-sm, etc.) */
/**
 * Visual Feedback Enhancements Styles - Sprint 7
 * Styles for action feedback, progress indicators, and status animations
 */

/* ============================================
   ACTION FEEDBACK
   ============================================ */

.action-feedback {
    position: fixed;
    top: calc(var(--spacing-lg) * 1.25);
    right: calc(var(--spacing-lg) * 1.25);
    background: var(--color-bg-card, var(--color-bg-card));
    border: 2px solid var(--color-info, #4a90e2);
    border-radius: var(--radius-md);
    padding: 1rem 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    z-index: 1000;
    box-shadow: 0 4px 16px rgba(var(--color-bg-primary-rgb, 26, 26, 26), 0.3);

.feedback-icon {
    font-size: 1.5rem;

.feedback-text {
    color: var(--color-text-primary, var(--color-text-primary));
    font-weight: 600;

/* ============================================
   ROLL FEEDBACK
   ============================================ */

.roll-feedback {
    position: fixed;
    background: var(--color-bg-card, var(--color-bg-card));
    border: 3px solid;
    border-radius: var(--radius-lg);
    padding: 1rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    z-index: 1000;
    box-shadow: 0 4px 16px rgba(var(--color-bg-primary-rgb, 26, 26, 26), 0.4);
    min-width: 80px;

.roll-feedback.roll-success {
    border-color: var(--color-success, #5cb85c);
    background: linear-gradient(135deg, rgba(var(--color-success-rgb, 92, 184, 92), 0.1), rgba(var(--color-success-rgb, 92, 184, 92), 0.05));

.roll-feedback.roll-failure {
    border-color: var(--color-danger, #f44336);
    background: linear-gradient(135deg, rgba(244, 67, 54, 0.1), rgba(244, 67, 54, 0.05));

.roll-result {
    font-size: 2rem;
    font-weight: bold;

.roll-value {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--color-text-primary, var(--color-text-primary));
    font-family: var(--font-body, 'Roboto Mono', monospace);

.roll-target {
    font-size: 0.875rem;
    color: var(--color-text-secondary, var(--color-text-secondary));

/* ============================================
   PROGRESS INDICATORS
   ============================================ */

.progress-indicator {
    margin: 1rem 0;

.progress-bar {
    width: 100%;
    height: var(--spacing-sm);
    background: var(--color-bg-tertiary, #333);
    border-radius: var(--radius-sm);
    overflow: hidden;
    position: relative;

.progress-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--color-info, #4a90e2), var(--color-success, #5cb85c));
    border-radius: var(--radius-sm);
    transition: width 0.3s ease;
    position: relative;

.progress-fill::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(90deg, transparent, rgba(var(--color-text-primary-rgb, 224, 224, 224), 0.3), transparent);
    animation: progress-shine 2s infinite;

@keyframes progress-shine {
    0% {
        transform: translateX(-100%);

    100% {
        transform: translateX(100%);

.progress-label {
    margin-top: 0.5rem;
    color: var(--color-text-secondary, var(--color-text-secondary));
    font-size: 0.875rem;
    text-align: center;

/* ============================================
   STATUS ANIMATIONS
   ============================================ */

.status-success {
    border-color: var(--color-success, #5cb85c) !important;
    background: linear-gradient(135deg, rgba(var(--color-success-rgb, 92, 184, 92), 0.1), rgba(var(--color-success-rgb, 92, 184, 92), 0.05));

.status-error {
    border-color: var(--color-danger, #f44336) !important;
    background: linear-gradient(135deg, rgba(244, 67, 54, 0.1), rgba(244, 67, 54, 0.05));

.status-warning {
    border-color: var(--color-warning, #ffc107) !important;
    background: linear-gradient(135deg, rgba(var(--color-warning-rgb, 255, 193, 7), 0.1), rgba(var(--color-warning-rgb, 255, 193, 7), 0.05));

.status-info {
    border-color: var(--color-info, #4a90e2) !important;
    background: linear-gradient(135deg, rgba(74, 144, 226, 0.1), rgba(74, 144, 226, 0.05));

/* ============================================
   INTERACTIVE FEEDBACK
   ============================================ */

.interactive-hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(var(--color-bg-primary-rgb, 26, 26, 26), 0.2);
    transition: all 0.2s ease;

.interactive-active {
    transform: scale(0.95);
    transition: all 0.1s ease;

.interactive-focus {
    outline: 2px solid var(--color-info, #4a90e2);
    outline-offset: 2px;
    box-shadow: 0 0 0 4px rgba(74, 144, 226, 0.2);

/* ============================================
   RESPECT REDUCED MOTION
   ============================================ */

@media (prefers-reduced-motion: reduce) {
    .action-feedback,
    .roll-feedback,
    .progress-fill,
    .interactive-hover,
    .interactive-active {
        animation: none !important;
        transition: none !important;
        transform: none !important;

}}}}}}}}}}}}}}}}}}}}}}}}}}