/* =========================================================
   FEEDBACK — alerts, toasts, modal, confirm, loader, overlay
   ========================================================= */

.ui-kit-alert {
    display: flex; align-items: flex-start; gap: var(--ui-kit-space-md);
    padding: 14px 16px; border-radius: var(--ui-kit-radius-md);
    border: 1px solid transparent; font-size: var(--ui-kit-fs-base);
    line-height: var(--ui-kit-lh-loose); margin-bottom: var(--ui-kit-space-lg);
}
.ui-kit-alert:last-child { margin-bottom: 0; }
.ui-kit-alert__icon { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 1px; }
.ui-kit-alert__body { flex: 1; }
.ui-kit-alert__title { font-weight: var(--ui-kit-fw-bold); margin: 0 0 2px; font-size: var(--ui-kit-fs-base); }
.ui-kit-alert__text { margin: 0; font-size: var(--ui-kit-fs-sm); line-height: var(--ui-kit-lh-loose); }
.ui-kit-alert--info { background: var(--ui-kit-info-tint); border-color: rgba(42, 111, 219, 0.18); color: var(--ui-kit-info); }
.ui-kit-alert--info .ui-kit-alert__text { color: var(--ui-kit-navy); }
.ui-kit-alert--success { background: var(--ui-kit-success-tint); border-color: rgba(46, 158, 91, 0.2); color: var(--ui-kit-success); }
.ui-kit-alert--success .ui-kit-alert__text { color: var(--ui-kit-navy); }
.ui-kit-alert--warning { background: var(--ui-kit-warning-tint); border-color: rgba(245, 166, 35, 0.25); color: #B87A08; }
.ui-kit-alert--warning .ui-kit-alert__text { color: var(--ui-kit-navy); }
.ui-kit-alert--danger { background: var(--ui-kit-danger-tint); border-color: rgba(232, 69, 60, 0.2); color: var(--ui-kit-danger); }
.ui-kit-alert--danger .ui-kit-alert__text { color: var(--ui-kit-navy); }

.ui-kit-toast {
    display: flex; align-items: flex-start; gap: 12px;
    min-width: 300px; max-width: 420px;
    padding: 14px 16px;
    background: var(--ui-kit-white); border-radius: var(--ui-kit-radius-md);
    box-shadow: var(--ui-kit-shadow-lg); border-left: 4px solid var(--ui-kit-info);
}
.ui-kit-toast__icon { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--ui-kit-info); margin-top: 1px; }
.ui-kit-toast__body { flex: 1; }
.ui-kit-toast__title { font-size: var(--ui-kit-fs-base); font-weight: var(--ui-kit-fw-bold); color: var(--ui-kit-navy); margin: 0 0 2px; }
.ui-kit-toast__text { font-size: var(--ui-kit-fs-sm); color: var(--ui-kit-text-muted); line-height: var(--ui-kit-lh-loose); margin: 0; }
.ui-kit-toast__close { background: transparent; border: none; color: var(--ui-kit-text-muted); cursor: pointer; padding: 0; line-height: 1; }
.ui-kit-toast--success { border-left-color: var(--ui-kit-success); }
.ui-kit-toast--success .ui-kit-toast__icon { color: var(--ui-kit-success); }
.ui-kit-toast--warning { border-left-color: var(--ui-kit-warning); }
.ui-kit-toast--warning .ui-kit-toast__icon { color: var(--ui-kit-warning); }
.ui-kit-toast--danger { border-left-color: var(--ui-kit-danger); }
.ui-kit-toast--danger .ui-kit-toast__icon { color: var(--ui-kit-danger); }

.ui-kit-modal-backdrop {
    position: fixed; inset: 0; background: var(--ui-kit-overlay-bg);
    display: flex; align-items: center; justify-content: center;
    padding: var(--ui-kit-space-lg); z-index: 5000;
    -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
}
.ui-kit-modal {
    background: var(--ui-kit-white); border-radius: var(--ui-kit-radius-xl);
    box-shadow: var(--ui-kit-shadow-xl);
    width: 100%; max-width: 520px; max-height: calc(100vh - 40px);
    display: flex; flex-direction: column; overflow: hidden;
}
.ui-kit-modal--sm { max-width: 400px; }
.ui-kit-modal--lg { max-width: 800px; }
.ui-kit-modal--xl { max-width: 1100px; }
.ui-kit-modal__header {
    display: flex; align-items: center; justify-content: space-between;
    gap: var(--ui-kit-space-lg);
    padding: var(--ui-kit-space-xl) var(--ui-kit-space-2xl);
    border-bottom: 1px solid var(--ui-kit-border);
}
.ui-kit-modal__title { font-size: var(--ui-kit-fs-lg); font-weight: var(--ui-kit-fw-bold); color: var(--ui-kit-navy); margin: 0; }
.ui-kit-modal__close {
    display: inline-flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; border: none; background: transparent;
    border-radius: var(--ui-kit-radius-sm); color: var(--ui-kit-text-muted);
    cursor: pointer; transition: background var(--ui-kit-trans-fast), color var(--ui-kit-trans-fast);
}
.ui-kit-modal__close:hover { background: var(--ui-kit-bg-soft); color: var(--ui-kit-navy); }
.ui-kit-modal__body { padding: var(--ui-kit-space-2xl); overflow-y: auto; flex: 1; }
.ui-kit-modal__footer {
    display: flex; align-items: center; justify-content: flex-end;
    gap: var(--ui-kit-space-sm);
    padding: var(--ui-kit-space-lg) var(--ui-kit-space-2xl);
    border-top: 1px solid var(--ui-kit-border);
    background: var(--ui-kit-bg-muted);
}

.ui-kit-confirm {
    display: flex; flex-direction: column; align-items: center;
    text-align: center;
    padding: 28px 24px 8px;
    gap: 12px;
}
.ui-kit-confirm__icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 56px; height: 56px; border-radius: 50%;
    background: var(--ui-kit-warning-tint); color: var(--ui-kit-warning);
}
.ui-kit-confirm__icon--danger { background: var(--ui-kit-danger-tint); color: var(--ui-kit-danger); }
.ui-kit-confirm__icon--info { background: var(--ui-kit-info-tint); color: var(--ui-kit-info); }
.ui-kit-confirm__title {
    font-size: var(--ui-kit-fs-lg); font-weight: var(--ui-kit-fw-bold);
    color: var(--ui-kit-navy); margin: 0;
}
.ui-kit-confirm__text {
    font-size: var(--ui-kit-fs-base); line-height: var(--ui-kit-lh-loose);
    color: var(--ui-kit-text-muted); margin: 0;
}

@keyframes ui-kit-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
.ui-kit-loader {
    display: inline-block; width: 24px; height: 24px;
    border: 2.5px solid var(--ui-kit-blue-tint); border-top-color: var(--ui-kit-blue);
    border-radius: 50%; animation: ui-kit-spin 0.7s linear infinite;
}
.ui-kit-loader--sm { width: 16px; height: 16px; border-width: 2px; }
.ui-kit-loader--lg { width: 40px; height: 40px; border-width: 3px; }

.ui-kit-overlay {
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    background: rgba(255, 255, 255, 0.75);
    -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
    border-radius: inherit;
    z-index: 10;
}
.ui-kit-overlay__box {
    display: flex; flex-direction: column; align-items: center; gap: 10px;
    padding: 16px 24px;
    background: var(--ui-kit-white);
    border-radius: var(--ui-kit-radius-md);
    box-shadow: var(--ui-kit-shadow-md);
}
.ui-kit-overlay__text {
    font-size: var(--ui-kit-fs-sm); color: var(--ui-kit-text-muted);
    margin: 0;
}