/* Shared message presentation. Keep status, content, visibility and dismissal behavior intact. */
.alert {
    --skaileo-alert-bg: #f6f7fa;
    --skaileo-alert-border: #dce1e9;
    --skaileo-alert-ink: #344054;
    --skaileo-alert-accent: #667085;
    position: relative;
    display: block;
    min-width: 0;
    min-height: 0;
    padding: 0.9rem 1rem;
    gap: 0.75rem;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    background: var(--skaileo-alert-bg) !important;
    color: var(--skaileo-alert-ink) !important;
    border: 1px solid var(--skaileo-alert-border) !important;
    border-inline-start: 3px solid var(--skaileo-alert-accent) !important;
    border-radius: 0.65rem !important;
    box-shadow: none !important;
    text-align: start !important;
    font-size: 0.875rem;
    line-height: 1.55;
    overflow-wrap: anywhere;
}

.alert.alert-info,
.alert.alert-primary {
    --skaileo-alert-bg: #f4f2fc;
    --skaileo-alert-border: #e0daf3;
    --skaileo-alert-ink: #443b70;
    --skaileo-alert-accent: #6554b7;
}

.alert.alert-success {
    --skaileo-alert-bg: #eff8f3;
    --skaileo-alert-border: #cce6d7;
    --skaileo-alert-ink: #22583c;
    --skaileo-alert-accent: #328459;
}

.alert.alert-warning {
    --skaileo-alert-bg: #fff8eb;
    --skaileo-alert-border: #f0dfb9;
    --skaileo-alert-ink: #75551c;
    --skaileo-alert-accent: #b78124;
}

.alert.alert-danger {
    --skaileo-alert-bg: #fdf2f2;
    --skaileo-alert-border: #efd0d2;
    --skaileo-alert-ink: #843840;
    --skaileo-alert-accent: #bd535e;
}

.alert .alert-content {
    display: flex;
    align-items: flex-start !important;
    gap: 0.75rem !important;
    min-width: 0;
    flex: 1 1 auto;
}

.alert > :is(div, span),
.alert .alert-content > :is(div, span) {
    min-width: 0;
}

.alert > i:first-child,
.alert .alert-content > i:first-child {
    display: inline-block !important;
    flex: 0 0 1.25rem;
    width: 1.25rem;
    margin: 0.05rem 0.5rem 0 0 !important;
    font-size: 1.25rem !important;
    line-height: 1.2;
    vertical-align: text-bottom;
    text-align: center;
    color: var(--skaileo-alert-accent) !important;
}

.alert.d-flex > i:first-child,
.alert .alert-content > i:first-child {
    margin-inline: 0 !important;
}

.alert > :is(p, ul, ol):last-child,
.alert .alert-content > div > :is(p, ul, ol):last-child {
    margin-bottom: 0;
}

.alert > :is(ul, ol) { padding-inline-start: 1.25rem; }
.alert .alert-heading { color: inherit; line-height: 1.4; }
.alert .alert-link { color: inherit !important; text-decoration: underline; text-underline-offset: 0.15em; }

.alert.alert-dismissible { padding-inline-end: 3.25rem; }
.alert .alert-close,
.alert.alert-dismissible > .btn-close,
.alert.alert-dismissible > .close {
    position: absolute;
    inset-block-start: 0.55rem;
    inset-inline-end: 0.55rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0 !important;
    margin: 0;
    border-radius: 0.4rem;
    color: var(--skaileo-alert-ink) !important;
    opacity: 0.75;
}
.alert .alert-close i,
.alert.solid .alert-close i { font-size: 1.1rem !important; color: inherit !important; }
.alert :is(.alert-close, .btn-close, .close):hover { opacity: 1; }
.alert :is(.alert-close, .btn-close, .close):focus-visible { outline: 2px solid var(--skaileo-alert-accent); outline-offset: 2px; }
.alert.d-flex > .btn:not(.alert-close):not(.btn-close) { margin-inline-start: auto; flex-shrink: 0; }

/* Bootstrap display utilities must never reveal explicitly hidden messages. */
.alert[hidden], .alert.validation-summary-valid { display: none !important; }

#skaileo-alert-container {
    min-width: 0;
    max-width: min(450px, calc(100vw - 2rem));
}

[data-theme-version="dark"] .alert {
    --skaileo-alert-bg: #242936;
    --skaileo-alert-border: #41495b;
    --skaileo-alert-ink: #e0e5ee;
    --skaileo-alert-accent: #a6afc0;
}
[data-theme-version="dark"] :is(.alert-info, .alert-primary) { --skaileo-alert-bg: #2c2840; --skaileo-alert-border: #4b4267; --skaileo-alert-ink: #e3ddf7; --skaileo-alert-accent: #b6a5f0; }
[data-theme-version="dark"] .alert-success { --skaileo-alert-bg: #20372d; --skaileo-alert-border: #3d5b4d; --skaileo-alert-ink: #d5ecdf; --skaileo-alert-accent: #87c9a6; }
[data-theme-version="dark"] .alert-warning { --skaileo-alert-bg: #3b3020; --skaileo-alert-border: #655132; --skaileo-alert-ink: #f5e4c4; --skaileo-alert-accent: #e4bc72; }
[data-theme-version="dark"] .alert-danger { --skaileo-alert-bg: #3d272d; --skaileo-alert-border: #68414a; --skaileo-alert-ink: #f5dce0; --skaileo-alert-accent: #e69ca6; }

@media (max-width: 575.98px) {
    .alert { padding: 0.75rem; gap: 0.6rem; }
    .alert.alert-dismissible { padding-inline-end: 3rem; }
    .alert.d-flex.flex-wrap > .btn:not(.alert-close):not(.btn-close) { margin-inline-start: 0; }
}
