/* Message Component Styles */
/* Complete PrimeNG Message component styling with all variants and severities */

/* Base Message Styles */
.p-message {
    display: flex;
    align-items: flex-start;
    border-radius: var(--p-message-border-radius, 6px);
    border-width: var(--p-message-border-width, 1px);
    border-style: solid;
    transition: all var(--p-message-transition-duration, 0.2s) ease-in-out;
    position: relative;
    overflow: hidden;
}

.p-message-content {
    display: flex;
    align-items: flex-start;
    gap: var(--p-message-content-gap, 0.75rem);
    padding: var(--p-message-content-padding, 1rem);
    flex: 1;
}

.p-message-icon {
    flex-shrink: 0;
    font-size: var(--p-message-icon-size, 1.25rem);
    line-height: 1;
}

.p-message-text {
    flex: 1;
    font-size: var(--p-message-text-font-size, 0.875rem);
    font-weight: var(--p-message-text-font-weight, 400);
    line-height: 1.5;
}

.p-message-close-button {
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0.25rem;
    border-radius: var(--p-message-close-button-border-radius, 4px);
    width: var(--p-message-close-button-width, 2rem);
    height: var(--p-message-close-button-height, 2rem);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: auto;
    flex-shrink: 0;
    transition: background-color 0.2s ease-in-out;
}

.p-message-close-button:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

.p-message-close-button:focus {
    outline: none;
    box-shadow: 0 0 0 var(--p-message-close-button-focus-ring-width, 2px) var(--p-message-close-button-focus-ring-color, rgba(59, 130, 246, 0.5));
}

.p-message-close-icon {
    font-size: var(--p-message-close-icon-size, 1rem);
    line-height: 1;
}

/* Size Variants */
.p-message-sm .p-message-content {
    padding: var(--p-message-content-sm-padding, 0.75rem);
    gap: 0.5rem;
}

.p-message-sm .p-message-icon {
    font-size: var(--p-message-icon-sm-size, 1rem);
}

.p-message-sm .p-message-text {
    font-size: var(--p-message-text-sm-font-size, 0.75rem);
}

.p-message-sm .p-message-close-icon {
    font-size: var(--p-message-close-icon-sm-size, 0.875rem);
}

.p-message-lg .p-message-content {
    padding: var(--p-message-content-lg-padding, 1.25rem);
    gap: 1rem;
}

.p-message-lg .p-message-icon {
    font-size: var(--p-message-icon-lg-size, 1.5rem);
}

.p-message-lg .p-message-text {
    font-size: var(--p-message-text-lg-font-size, 1rem);
}

.p-message-lg .p-message-close-icon {
    font-size: var(--p-message-close-icon-lg-size, 1.125rem);
}

/* Severity Styles - Success */
.p-message-success {
    background: var(--p-message-success-background, #d1fae5);
    border-color: var(--p-message-success-border-color, #10b981);
    color: var(--p-message-success-color, #065f46);
}

.p-message-success .p-message-close-button:hover {
    background: var(--p-message-success-close-button-hover-background, rgba(16, 185, 129, 0.1));
}

.p-message-success .p-message-close-button:focus {
    box-shadow: var(--p-message-success-close-button-focus-ring-shadow, 0 0 0 2px rgba(16, 185, 129, 0.5));
}

/* Severity Styles - Info */
.p-message-info {
    background: var(--p-message-info-background, #dbeafe);
    border-color: var(--p-message-info-border-color, #3b82f6);
    color: var(--p-message-info-color, #1e40af);
}

.p-message-info .p-message-close-button:hover {
    background: var(--p-message-info-close-button-hover-background, rgba(59, 130, 246, 0.1));
}

.p-message-info .p-message-close-button:focus {
    box-shadow: var(--p-message-info-close-button-focus-ring-shadow, 0 0 0 2px rgba(59, 130, 246, 0.5));
}

/* Severity Styles - Warn */
.p-message-warn {
    background: var(--p-message-warn-background, #fef3c7);
    border-color: var(--p-message-warn-border-color, #f59e0b);
    color: var(--p-message-warn-color, #92400e);
}

.p-message-warn .p-message-close-button:hover {
    background: var(--p-message-warn-close-button-hover-background, rgba(245, 158, 11, 0.1));
}

.p-message-warn .p-message-close-button:focus {
    box-shadow: var(--p-message-warn-close-button-focus-ring-shadow, 0 0 0 2px rgba(245, 158, 11, 0.5));
}

/* Severity Styles - Error */
.p-message-error {
    background: var(--p-message-error-background, #fee2e2);
    border-color: var(--p-message-error-border-color, #ef4444);
    color: var(--p-message-error-color, #991b1b);
}

.p-message-error .p-message-close-button:hover {
    background: var(--p-message-error-close-button-hover-background, rgba(239, 68, 68, 0.1));
}

.p-message-error .p-message-close-button:focus {
    box-shadow: var(--p-message-error-close-button-focus-ring-shadow, 0 0 0 2px rgba(239, 68, 68, 0.5));
}

/* Severity Styles - Secondary */
.p-message-secondary {
    background: var(--p-message-secondary-background, #f3f4f6);
    border-color: var(--p-message-secondary-border-color, #6b7280);
    color: var(--p-message-secondary-color, #374151);
}

.p-message-secondary .p-message-close-button:hover {
    background: var(--p-message-secondary-close-button-hover-background, rgba(107, 114, 128, 0.1));
}

.p-message-secondary .p-message-close-button:focus {
    box-shadow: var(--p-message-secondary-close-button-focus-ring-shadow, 0 0 0 2px rgba(107, 114, 128, 0.5));
}

/* Severity Styles - Contrast */
.p-message-contrast {
    background: var(--p-message-contrast-background, #1f2937);
    border-color: var(--p-message-contrast-border-color, #374151);
    color: var(--p-message-contrast-color, #f9fafb);
}

.p-message-contrast .p-message-close-button:hover {
    background: var(--p-message-contrast-close-button-hover-background, rgba(255, 255, 255, 0.1));
}

.p-message-contrast .p-message-close-button:focus {
    box-shadow: var(--p-message-contrast-close-button-focus-ring-shadow, 0 0 0 2px rgba(255, 255, 255, 0.5));
}

/* Variant Styles - Outlined */
.p-message-outlined {
    background: transparent;
    border-width: var(--p-message-outlined-border-width, 1px);
}

.p-message-outlined.p-message-success {
    color: var(--p-message-success-outlined-color, #10b981);
    border-color: var(--p-message-success-outlined-border-color, #10b981);
}

.p-message-outlined.p-message-info {
    color: var(--p-message-info-outlined-color, #3b82f6);
    border-color: var(--p-message-info-outlined-border-color, #3b82f6);
}

.p-message-outlined.p-message-warn {
    color: var(--p-message-warn-outlined-color, #f59e0b);
    border-color: var(--p-message-warn-outlined-border-color, #f59e0b);
}

.p-message-outlined.p-message-error {
    color: var(--p-message-error-outlined-color, #ef4444);
    border-color: var(--p-message-error-outlined-border-color, #ef4444);
}

.p-message-outlined.p-message-secondary {
    color: var(--p-message-secondary-outlined-color, #6b7280);
    border-color: var(--p-message-secondary-outlined-border-color, #6b7280);
}

.p-message-outlined.p-message-contrast {
    color: var(--p-message-contrast-outlined-color, #1f2937);
    border-color: var(--p-message-contrast-outlined-border-color, #1f2937);
}

/* Variant Styles - Simple */
.p-message-simple {
    background: transparent;
    border: none;
    padding: var(--p-message-simple-content-padding, 0.5rem);
}

.p-message-simple.p-message-success {
    color: var(--p-message-success-simple-color, #10b981);
}

.p-message-simple.p-message-info {
    color: var(--p-message-info-simple-color, #3b82f6);
}

.p-message-simple.p-message-warn {
    color: var(--p-message-warn-simple-color, #f59e0b);
}

.p-message-simple.p-message-error {
    color: var(--p-message-error-simple-color, #ef4444);
}

.p-message-simple.p-message-secondary {
    color: var(--p-message-secondary-simple-color, #6b7280);
}

.p-message-simple.p-message-contrast {
    color: var(--p-message-contrast-simple-color, #1f2937);
}

/* Variant Styles - Standard (Material UI default: tinted background, no border) */
.p-message-standard {
    border-color: transparent;
}

/* Variant Styles - Filled (Material UI: solid severity background, light text) */
.p-message-filled {
    border-color: transparent;
}

.p-message-filled.p-message-success {
    background: var(--p-message-success-filled-background, #2e7d32);
    color: var(--p-message-filled-color, #ffffff);
}

.p-message-filled.p-message-info {
    background: var(--p-message-info-filled-background, #0288d1);
    color: var(--p-message-filled-color, #ffffff);
}

.p-message-filled.p-message-warn {
    background: var(--p-message-warn-filled-background, #ed6c02);
    color: var(--p-message-filled-color, #ffffff);
}

.p-message-filled.p-message-error {
    background: var(--p-message-error-filled-background, #d32f2f);
    color: var(--p-message-filled-color, #ffffff);
}

.p-message-filled.p-message-secondary {
    background: var(--p-message-secondary-filled-background, #616161);
    color: var(--p-message-filled-color, #ffffff);
}

.p-message-filled.p-message-contrast {
    background: var(--p-message-contrast-filled-background, #1f2937);
    color: var(--p-message-filled-color, #ffffff);
}

.p-message-filled .p-message-icon,
.p-message-filled .p-message-close-icon {
    color: var(--p-message-filled-color, #ffffff);
}

.p-message-filled .p-message-close-button:hover {
    background: rgba(255, 255, 255, 0.18);
}

/* Title row (Material UI AlertTitle) */
.p-message-title {
    font-weight: var(--p-message-title-font-weight, 600);
    line-height: 1.4;
    margin-bottom: 0.125rem;
}

/* Trailing action slot (Material UI Alert `action`), justified right */
.p-message-action {
    margin-left: auto;
    display: flex;
    align-items: center;
    flex-shrink: 0;
    padding-left: 0.5rem;
}

.p-message-action-button:hover {
    background: rgba(0, 0, 0, 0.06);
}

.p-message-filled .p-message-action-button:hover {
    background: rgba(255, 255, 255, 0.18);
}

/* Animation States */
.p-message-hidden {
    opacity: 0;
    transform: scale(0.95);
    pointer-events: none;
}

/* Responsive Design */
@media (max-width: 768px) {
    .p-message-content {
        padding: 0.75rem;
        gap: 0.5rem;
    }
    
    .p-message-icon {
        font-size: 1rem;
    }
    
    .p-message-text {
        font-size: 0.8125rem;
    }
}

/* High Contrast Mode Support */
@media (prefers-contrast: high) {
    .p-message {
        border-width: 2px;
    }
    
    .p-message-close-button:focus {
        outline: 2px solid currentColor;
        outline-offset: 2px;
    }
}

/* Reduced Motion Support */
@media (prefers-reduced-motion: reduce) {
    .p-message {
        transition: none;
    }
    
    .p-message-close-button {
        transition: none;
    }
}
