:root {
    /* ===== Brand Palette (verdiğin görsel) ===== */
    --kw-red: #B40101; /* KW Red */
    --kw-black: #000000; /* Black */
    --kw-gray-700: #666666; /* Medium Gray */
    --kw-gray-500: #999999; /* KW Main Gray */
    --kw-gray-300: #CCCCCC; /* Light Gray */
    /* ===== PRIMARY (kırmızı) ===== */
    --bs-primary: var(--kw-red);
    --bs-primary-rgb: 180, 1, 1;
    /* Primary türevleri (Bootstrap 5.3 utilities) */
    --bs-primary-text-emphasis: #7A0101; /* koyu kırmızı (okunaklı) */
    --bs-primary-bg-subtle: #F6D6D6; /* açık kırmızı arka plan */
    --bs-primary-border-subtle: #EFB3B3; /* açık kırmızı border */
    /* Linkler primary ile uyumlu */
    --bs-link-color: var(--kw-red);
    --bs-link-color-rgb: 180, 1, 1;
    --bs-link-hover-color: #8F0101;
    --bs-link-hover-color-rgb: 143, 1, 1;
    /* Focus ring (form/button focus) primary’ye göre */
    --bs-focus-ring-color: rgba(180, 1, 1, 0.25);
    /* ===== GRAY skalasını brand’e yaklaştır (opsiyonel ama uyumlu) ===== */
    --bs-black: var(--kw-black);
    --bs-gray-700: var(--kw-gray-700);
    --bs-gray-500: var(--kw-gray-500);
    --bs-gray-300: var(--kw-gray-300);
    /* Secondary’yi de markanın medium gray’ine çek (istersen) */
    --bs-secondary: var(--kw-gray-700);
    --bs-secondary-rgb: 102, 102, 102;
    /* Success'e dokunma (istediğin gibi kalsın) */
    /* --bs-success: (DEĞİŞTİRME) */
    /* ===== DANGER (Primary ile çakışmayan) ===== */
    --bs-danger: #5B2B82;
    --bs-danger-rgb: 91,43,130;
    --bs-danger-text-emphasis: #3a1855;
    --bs-danger-bg-subtle: #efe6f6;
    --bs-danger-border-subtle: #d7c1ea;
    /* ===== SECONDARY (KW Gray uyumlu) ===== */
    --bs-secondary: #999999; /* KW Main Gray */
    --bs-secondary-rgb: 153, 153, 153;
    --bs-secondary-text-emphasis: #4D4D4D; /* koyu gri */
    --bs-secondary-bg-subtle: #F2F2F2; /* temiz açık gri */
    --bs-secondary-border-subtle: #D6D6D6;
}
.btn-primary,
.bg-primary,
.badge.bg-primary {
    background-color: var(--bs-primary) !important;
    border-color: var(--bs-primary) !important;
}

/* PRIMARY OUTLINE – tüm state'leri düzelt */
.btn-outline-primary {
    --bs-btn-color: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--bs-primary);
    --bs-btn-hover-border-color: var(--bs-primary);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--bs-primary);
    --bs-btn-active-border-color: var(--bs-primary);
    --bs-btn-focus-shadow-rgb: var(--bs-primary-rgb);
}


    .btn-outline-primary:hover,
    .btn-outline-primary:active,
    .btn-outline-primary.active {
        background-color: var(--bs-primary) !important;
        border-color: var(--bs-primary) !important;
        color: #fff !important;
    }

.text-primary {
    color: var(--bs-primary) !important;
}

.border-primary {
    border-color: var(--bs-primary) !important;
}

.bg-primary-subtle {
    background-color: var(--bs-primary-bg-subtle) !important;
}
/* Güvenli hard override (bazı bileşenler için) */
.btn-danger,
.badge.bg-danger {
    background-color: var(--bs-danger) !important;
    border-color: var(--bs-danger) !important;
    color: #fff !important;
}

    .btn-danger:hover {
        background-color: #4A226B !important;
        border-color: #4A226B !important;
    }

.btn-outline-danger {
    color: var(--bs-danger) !important;
    border-color: var(--bs-danger) !important;
}

    .btn-outline-danger:hover,
    .btn-outline-danger:active {
        background-color: var(--bs-danger) !important;
        border-color: var(--bs-danger) !important;
        color: #fff !important;
    }
.bg-danger-subtle {
    background-color: var(--bs-danger-bg-subtle) !important;
}

.alert-danger {
    --bs-alert-bg: var(--bs-danger-bg-subtle);
    --bs-alert-color: var(--bs-danger-text-emphasis);
    --bs-alert-border-color: var(--bs-danger-border-subtle);
}


/* ===== Hard override (buton, badge, bg) ===== */
.btn-secondary,
.bg-secondary,
.badge.bg-secondary {
    background-color: var(--bs-secondary) !important;
    border-color: var(--bs-secondary) !important;
    color: #fff !important;
}

    .btn-secondary:hover,
    .btn-secondary:active,
    .btn-secondary.active {
        background-color: #666666 !important; /* Medium Gray */
        border-color: #666666 !important;
    }

/* Outline secondary */
/* OUTLINE SECONDARY – okunurluk fix */
.btn-outline-secondary {
    --bs-btn-color: #444; /* yazı daha koyu */
    --bs-btn-border-color: #999; /* KW main gray */

    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #666; /* hover’da koyu gri */
    --bs-btn-hover-border-color: #666;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #555; /* active state net */
    --bs-btn-active-border-color: #555;
    --bs-btn-focus-shadow-rgb: 108,117,125;
}


    .btn-outline-secondary:hover,
    .btn-outline-secondary:active {
        background-color: var(--bs-secondary) !important;
        border-color: var(--bs-secondary) !important;
        color: #fff !important;
    }

/* Text / border utilities */
.text-secondary {
    color: var(--bs-secondary) !important;
}

.border-secondary {
    border-color: var(--bs-secondary) !important;
}

.bg-secondary-subtle {
    background-color: var(--bs-secondary-bg-subtle) !important;
}

.list-group {
    --bs-list-group-active-bg: #B40101; /* Primary kırmızı */
    --bs-list-group-active-border-color: #B40101;
    --bs-list-group-active-color: #ffffff;
}
/* ===== CHECKBOX & RADIO ===== */
.form-check-input:checked {
    background-color: #B40101 !important;
    border-color: #B40101 !important;
}

.form-check-input:focus {
    box-shadow: 0 0 0 0.25rem rgba(180, 1, 1, 0.25) !important;
}

/* ===== Admin Panel Başlıklar ===== */
.admin-content h1,
.admin-content h2,
.admin-content h3,
.admin-content h4,
.admin-content h5,
.admin-content h6 {
    color: var(--bs-primary);
}
/* Admin tabloları – başlıklar primary (KW Red) */
.admin-content table thead th {
    color: var(--bs-primary);
}

/* Admin pills */
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
    background-color: var(--bs-primary) !important;
    color: #fff !important;
}

/* =====================================================================
   BİLDİRİM BİLEŞENLERİ — Banner / Toast / Modal
   ===================================================================== */

/* Severity renk değişkenleri */
:root {
    --notif-info-color: #1d6de5;
    --notif-info-bg: #eff6ff;
    --notif-info-border: #bfdbfe;
    --notif-success-color: #15803d;
    --notif-success-bg: #f0fdf4;
    --notif-success-border: #bbf7d0;
    --notif-warning-color: #dd9258;
    --notif-warning-bg: #fffbeb;
    --notif-warning-border: #fcd34d;
    --notif-danger-color: var(--bs-danger);
    --notif-danger-bg: #fff1f2;
    --notif-danger-border: #fecdd3;
}

/* ---- HEADER BANNER ---- */

@keyframes notifBannerIn {
    from { transform: translateY(-110%); opacity: 0; }
    to   { transform: translateY(0);     opacity: 1; }
}
@keyframes notifBannerOut {
    to { transform: translateY(-110%); opacity: 0; }
}

.notif-banner {
    animation: notifBannerIn .38s cubic-bezier(.16,.84,.44,1) both;
    border-bottom: 1px solid transparent;
    overflow: hidden;
    will-change: transform, opacity;
}
.notif-banner.is-hiding {
    animation: notifBannerOut .26s ease-in forwards;
}

.notif-banner-inner {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .6rem 1rem;
    font-size: .875rem;
    background-color: var(--kw-red);
    color: #fff;
    border-radius: 1rem;
}
.notif-banner-icon {
    font-size: 1.1rem;
    flex-shrink: 0;
    opacity: .9;
}
.notif-banner-body {
    flex-grow: 1;
    min-width: 0;
    line-height: 1.45;
}
.notif-banner-title { font-weight: 600; }
.notif-banner-sep   { opacity: .45; }

.notif-banner-close {
    background: none;
    border: none;
    padding: .25rem .4rem;
    border-radius: 6px;
    color: currentColor;
    opacity: .55;
    cursor: pointer;
    font-size: .95rem;
    line-height: 1;
    flex-shrink: 0;
    transition: opacity .15s, background .15s;
}
.notif-banner-close:hover { opacity: 1; background: rgba(0,0,0,.1); }

/* ---- TOAST ---- */

@keyframes notifToastIn {
    from { transform: translateX(110%); opacity: 0; }
    to   { transform: translateX(0);    opacity: 1; }
}
@keyframes notifToastProgress {
    from { width: 100%; }
    to   { width: 0%; }
}

.notif-toast {
    display: none; /* Bootstrap .show class gelince görünür */
    pointer-events: auto; /* .toast-container pointer-events:none'ı override et */
    border: none !important;
    border-radius: 14px !important;
    box-shadow: 0 8px 28px rgba(0,0,0,.13), 0 2px 8px rgba(0,0,0,.07) !important;
    overflow: hidden;
    min-width: 320px;
    max-width: 380px;
    background: #fff !important;
    border-left: 4px solid transparent !important;
}
.notif-toast.show {
    display: block;
    animation: notifToastIn .34s cubic-bezier(.16,.84,.44,1) both;
}
.notif-toast--info    { border-left-color: var(--notif-info-color)    !important; }
.notif-toast--success { border-left-color: var(--notif-success-color) !important; }
.notif-toast--warning { border-left-color: var(--notif-warning-color) !important; }
.notif-toast--danger  { border-left-color: var(--notif-danger-color)  !important; }

.notif-toast-header {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .6rem .875rem;
    border-bottom: 1px solid rgba(0,0,0,.06) !important;
    background: transparent !important;
}
.notif-toast-sev-icon { font-size: .9rem; flex-shrink: 0; }
.notif-toast--info    .notif-toast-sev-icon { color: var(--notif-info-color); }
.notif-toast--success .notif-toast-sev-icon { color: var(--notif-success-color); }
.notif-toast--warning .notif-toast-sev-icon { color: var(--notif-warning-color); }
.notif-toast--danger  .notif-toast-sev-icon { color: var(--notif-danger-color); }

.notif-toast-title {
    font-weight: 600;
    font-size: .875rem;
    color: #1e293b;
    flex-grow: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.notif-toast-time {
    font-size: .725rem;
    color: #94a3b8;
    flex-shrink: 0;
}
.notif-toast-close {
    background: none;
    border: none;
    padding: .2rem .35rem;
    border-radius: 5px;
    cursor: pointer;
    color: #94a3b8;
    font-size: .8rem;
    line-height: 1;
    transition: color .15s, background .15s;
    flex-shrink: 0;
}
.notif-toast-close:hover { color: #475569; background: #f1f5f9; }

.notif-toast-body {
    padding: .65rem .875rem;
    font-size: .875rem;
    color: #475569;
    line-height: 1.5;
}
.notif-toast-body pre {
    font-family: inherit;
    white-space: pre-wrap;
    margin: 0;
}

.notif-toast-progress {
    height: 3px;
    animation: notifToastProgress linear forwards;
    animation-play-state: paused;
}
.notif-toast--info    .notif-toast-progress { background: var(--notif-info-color); }
.notif-toast--success .notif-toast-progress { background: var(--notif-success-color); }
.notif-toast--warning .notif-toast-progress { background: var(--notif-warning-color); }
.notif-toast--danger  .notif-toast-progress { background: var(--notif-danger-color); }

/* ---- MODAL ---- */

.notif-modal .modal-content {
    border: none !important;
    border-radius: 20px !important;
    overflow: hidden;
    box-shadow: 0 24px 64px rgba(0,0,0,.18), 0 6px 20px rgba(0,0,0,.09);
    transition: transform .32s cubic-bezier(.16,.84,.44,1), opacity .28s ease;
    transform-origin: center 40%;
}
.notif-modal:not(.show) .modal-content {
    transform: scale(.93) translateY(-10px);
    opacity: 0;
}
.notif-modal.show .modal-content {
    transform: scale(1) translateY(0);
    opacity: 1;
}

.notif-modal-accent {
    height: 5px;
    flex-shrink: 0;
    background-color: var(--kw-red);
}
.notif-modal--info    .notif-modal-accent { background: linear-gradient(90deg, var(--notif-info-color), #60a5fa); }
.notif-modal--success .notif-modal-accent { background: linear-gradient(90deg, var(--notif-success-color), #4ade80); }
.notif-modal--warning .notif-modal-accent { background: linear-gradient(90deg, var(--notif-warning-color), #fbbf24); }
.notif-modal--danger  .notif-modal-accent { background: linear-gradient(90deg, var(--notif-danger-color), #f87171); }

.notif-modal-hd {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: 1.1rem 1.4rem .6rem;
    border-bottom: none;
    background-color: var(--kw-red);
    color: #fff;
}
.notif-modal-icon-wrap {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.05rem;
    flex-shrink: 0;
}
.notif-modal--info .notif-modal-icon-wrap {
    /*background: var(--notif-info-bg);*/
    color: var(--notif-info-color);
}

.notif-modal--success .notif-modal-icon-wrap {
    /*background: var(--notif-success-bg);
    */ color: var(--notif-success-color);
}

.notif-modal--warning .notif-modal-icon-wrap {
    /*background: var(--notif-warning-bg);
    */ color: var(--notif-warning-color);
}

.notif-modal--danger .notif-modal-icon-wrap {
    /*background: var(--notif-danger-bg);
    */ color: var(--notif-danger-color);
}

.notif-modal-title {
    font-size: .975rem;
    font-weight: 600;
    color: #fff;
    flex-grow: 1;
}
.notif-modal-x {
    background: var(--kw-red);
    border: none;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: .8rem;
    flex-shrink: 0;
    transition: background .15s, color .15s;
}
.notif-modal-x:hover { background: #e2e8f0; color: #1e293b; }

.notif-modal-body {
    padding: 1.1rem 1.4rem 1.1rem;
    font-size: .9rem;
    color: #475569;
    line-height: 1.65;
}
.notif-modal-body pre {
    font-family: inherit;
    white-space: pre-wrap;
    margin: 0;
}

.notif-modal-ft {
    padding: .8rem 1.4rem;
    border-top: 1px solid rgba(0,0,0,.06);
    background: #f8fafc;
    display: flex;
    justify-content: flex-end;
}
.notif-modal-btn {
    border: none;
    padding: .45rem 1.4rem;
    border-radius: 8px;
    font-size: .875rem;
    font-weight: 600;
    cursor: pointer;
    transition: filter .15s;
    color: #fff;
}
.notif-modal-btn:hover { filter: brightness(.88); }
.notif-modal--info    .notif-modal-btn { background: var(--notif-info-color); }
.notif-modal--success .notif-modal-btn { background: var(--notif-success-color); }
.notif-modal--warning .notif-modal-btn { background: var(--notif-warning-color); color: #fff; }
.notif-modal--danger  .notif-modal-btn { background: var(--notif-danger-color); }
