
.app-error-page-container {
    box-sizing: border-box;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 20px;
    width: 100%;
}
.app-error-page-image-container {
    padding-right: 15px;
}
.app-error-page-image {
    width: 300px;
}
.app-error-page-text-container {
    flex: 1;
    font-size: 18px;
}

@media (max-width: 768px) {
    .app-error-page-image {
        width: 150px;
    }
    .app-error-page-text-container {
        font-size: 1.25em;
    }
}

.app-error-boundary {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    min-width: var(--app-width);
    min-height: 100vh;
}
.app-error-boundary-inner {
    box-sizing: border-box;
    background-color: var(--app-section-inner-background-color);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    padding: 5px 10px 5px 10px;
    width: var(--app-inner-width);
    margin-left: auto;
    margin-right: auto;
}
.app-error-boundary-title {
    font-weight: 600;
    font-size: 32px;
}
.app-error-boundary-content {
    color: red;
    font-size: 14px;
}

.app-error {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    color: var(--app-error-color, red);
    font-size: 14px;
}
.app-grid-error {
}
.app-error-container {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    color: var(--app-error-color, red);
    font-size: 14px;
}
.app-error-title {
    color: var(--app-error-color, black);
    font-weight: 600;
    font-size: 1.1250rem;
}
.app-error-content {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    font-size: 1.0rem;
}
.app-problem-details {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    font-size: 1.0rem;
}
.app-problem-errors {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    font-size: 1.0rem;
}
.app-error-member {
    color: var(--app-error-color, black);
    font-size: 1.0rem;
}
.app-validation-summary {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    color: var(--app-error-color, red);
    font-size: 14px;
}


/* Base banner container */
.app-banner-message {
    display: flex;
    align-items: flex-start;
    padding: 3px 4px;
    border-radius: 4px;
    border-width: 1px;
    border-style: solid;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.4;
    margin-bottom: 6px;
    width: 100%;
}

/* Icon */
.app-banner-message-icon {
    margin-right: 12px;
    font-size: 18px;
    line-height: 1;
    flex-shrink: 0;
    color: black;
}

/* Text */
.app-banner-message-text {
    flex: 1;
}

/* Close button */
.app-banner-message-close {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 16px;
    padding: 0;
    margin-left: 12px;
    color: inherit;
    opacity: 0.7;
}

    .app-banner-message-close:hover {
        opacity: 1;
    }

/* Normal / Default */
.app-banner-message-normal {
    display: none;
    background-color: #f8f9fa; /* light neutral */
    border-color: #d1d5db; /* medium neutral border */
    color: #374151; /* dark neutral text */
}
/* Success */
.app-banner-message-success {
    background-color: #ecfdf3;
    border-color: #a6f4c5;
    color: #027a48;
}

/* Error */
.app-banner-message-error {
    background-color: #fef3f2;
    border-color: #fda29b;
    color: #b42318;
}

/* Warning */
.app-banner-message-warning {
    background-color: #fffaeb;
    border-color: #fec84b;
    color: #b54708;
}

/* Info */
.app-banner-message-info {
    background-color: #eff8ff;
    border-color: #b2ddff;
    color: #175cd3;
}
