/* Flash Messages & Alerts */

/* Base flash message styles */
.flash-success,
.flash-warning,
.flash-error,
.flash-info,
.alert {
    padding: var(--spacing-md) var(--spacing-lg);
    margin-bottom: var(--spacing-lg);
    border-radius: var(--radius-md);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    line-height: var(--line-height-normal);
}

/* Informational panel — a persistent explanatory callout (not a dismissible flash) */
.info-panel {
    padding: var(--spacing-md) var(--spacing-lg);
    margin-bottom: var(--spacing-lg);
    border-radius: var(--radius-md);
    font-size: var(--font-size-sm);
    line-height: var(--line-height-normal);
    background-color: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1e3a5f;
}

.info-panel .info-panel-title {
    display: block;
    margin-bottom: 0.35rem;
    font-weight: var(--font-weight-semibold);
}

.info-panel .info-panel-title::before {
    content: "\24d8"; /* circled i */
    margin-right: 0.4rem;
}

.info-panel p {
    margin: 0 0 0.5rem;
}

.info-panel p:last-child {
    margin-bottom: 0;
}

/* Success */
.flash-success,
.alert-success {
    background-color: #ecfdf5;
    border: 1px solid var(--color-ui-success);
    color: #065f46;
}

/* Warning */
.flash-warning,
.alert-warning {
    background-color: #fffbeb;
    border: 1px solid var(--color-ui-warning);
    color: #92400e;
}

.flash-warning a,
.alert-warning a {
    color: #92400e;
    font-weight: var(--font-weight-semibold);
    text-decoration: underline;
}

.flash-warning a:hover,
.alert-warning a:hover {
    color: #78350f;
}

/* Error / Danger */
.flash-error,
.flash-danger,
.alert-error,
.alert-danger {
    background-color: #fef2f2;
    border: 1px solid var(--color-ui-error);
    color: #991b1b;
}

.flash-error a,
.flash-danger a,
.alert-error a,
.alert-danger a {
    color: #991b1b;
    font-weight: var(--font-weight-semibold);
    text-decoration: underline;
}

.flash-error a:hover,
.flash-danger a:hover,
.alert-error a:hover,
.alert-danger a:hover {
    color: #7f1d1d;
}

/* Info */
.flash-info,
.alert-info {
    background-color: #eff6ff;
    border: 1px solid var(--color-ui-info);
    color: #1e40af;
}

.flash-info a,
.alert-info a {
    color: #1e40af;
    font-weight: var(--font-weight-semibold);
    text-decoration: underline;
}

.flash-info a:hover,
.alert-info a:hover {
    color: #1e3a8a;
}

/* Dismissible flash messages */
.flash-dismissible {
    position: relative;
    padding-right: 2.5rem;
}

.flash-close {
    position: absolute;
    right: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    font-size: 1.25rem;
    cursor: pointer;
    opacity: 0.6;
    color: inherit;
}

.flash-close:hover {
    opacity: 1;
}
