/*
 * Feedback surfaces - dialogs, toasts, alerts, validation - in the brand.
 *
 * The message boxes were the rawest part of the product: abp.message renders
 * through the `swal` library, whose default sheet fought the site CSS and
 * produced a tiny, off-centre dialog with a microscopic Ok button - not what
 * anyone should see at the moment something goes wrong. These rules restyle
 * every feedback channel in one place. The same file ships in the admin app;
 * keep the two copies identical.
 */

/* ---------- Dialogs (abp.message.* via swal) ---------- */

.swal-overlay {
    background: rgba(16, 18, 22, .55);
}

.swal-modal {
    width: 420px;
    max-width: calc(100vw - 32px);
    border-radius: 16px;
    padding: 10px 0 24px;
    box-shadow: 0 24px 64px rgba(16, 24, 40, .28);
    font-family: inherit;
}

.swal-icon {
    transform: scale(.85);
    margin: 22px auto 0;
}

.swal-title {
    margin: 12px 0 0;
    padding: 0 28px;
    font-size: 1.25rem;
    font-weight: 700;
    color: #101216;
}

.swal-title:not(:last-child) {
    margin-bottom: 0;
}

.swal-text {
    padding: 0 30px;
    margin-top: 8px;
    font-size: 1rem;
    line-height: 1.55;
    color: #4a5160;
    text-align: center;
}

.swal-footer {
    margin-top: 20px;
    padding: 0;
    text-align: center;
}

.swal-button {
    background: linear-gradient(135deg, #46b7c5, #2e8fa3);
    color: #fff;
    border: none;
    border-radius: 10px;
    padding: 11px 30px;
    font-size: .95rem;
    font-weight: 600;
    box-shadow: 0 4px 12px rgba(70, 183, 197, .35);
}

.swal-button:not([disabled]):hover {
    background: linear-gradient(135deg, #3aa5b3, #257e91);
}

.swal-button:focus {
    box-shadow: 0 0 0 3px rgba(70, 183, 197, .3);
}

.swal-button--cancel {
    background: #eef1f6;
    color: #3d434b;
    box-shadow: none;
}

.swal-button--cancel:not([disabled]):hover {
    background: #e2e7ef;
}

/* Destructive confirmations stay visually dangerous. */
.swal-button--danger,
.swal-button--confirm.swal-button--danger {
    background: #e5535a;
    box-shadow: 0 4px 12px rgba(229, 83, 90, .35);
}

/* ---------- Toasts (abp.notify.* via toastr) ---------- */

#toast-container > div {
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(16, 24, 40, .18) !important;
    opacity: .98;
    padding: 14px 18px 14px 50px;
}

#toast-container > .toast-success { background-color: #2ea58f; }
#toast-container > .toast-error   { background-color: #e5535a; }
#toast-container > .toast-info    { background-color: #46b7c5; }
#toast-container > .toast-warning { background-color: #e6a23c; }

/* ---------- Inline alerts ---------- */

.alert {
    border: none;
    border-radius: 12px;
    padding: 14px 18px;
}

.alert-danger, .alert-error { background: #fdecec; color: #b3363c; }
.alert-success { background: #e8f7f4; color: #1e7a68; }
.alert-info    { background: #e9f6f8; color: #2e8fa3; }
.alert-warning { background: #fdf3e3; color: #a8721f; }

.alert .close {
    color: inherit;
    opacity: .5;
}

/* ---------- Form validation ---------- */

span.field-validation-error {
    display: block;
    margin-top: 5px;
    font-size: .85rem;
    color: #d6494f;
}

input.input-validation-error,
.form-control.input-validation-error,
textarea.input-validation-error {
    border-color: #e5535a !important;
    box-shadow: 0 0 0 3px rgba(229, 83, 90, .12) !important;
}
