/* ==========================================================================
   Gelir Gider Yönetimi — Tasarım Sistemi (theme.css v5)
   Bootstrap 5.3 üzerine kurulu ortak arayüz katmanı. Derleme adımı yoktur.

   İÇİNDEKİLER
    1. Tasarım belirteçleri (açık tema)          9. Rozetler, uyarılar, bildirimler (toast)
    2. Koyu tema belirteçleri                    10. Açılır menü, modal, sekmeler, liste, ilerleme
    3. Temel tipografi ve öğeler                 11. Sayfa kalıpları (page-header, filter-bar, …)
    4. Uygulama kabuğu: sidebar                  12. Tutar, avatar, boş durum, detay listesi, adımlar
    5. Uygulama kabuğu: içerik + topbar          13. Ana sayfa ve ayar bileşenleri
    6. Kartlar ve KPI kutuları                   14. Kimlik doğrulama sayfaları
    7. Butonlar                                  15. Kurulum / hata / karşılama sayfaları
    8. Formlar ve tablolar                       16. Yardımcılar, duyarlı kurallar, hareket azaltma

   KURALLAR
   - Marka rengi çalışma anında gelir: layouts/partials/brand-vars.blade.php
     --brand, --brand-rgb, --brand-600, --brand-700, --brand-contrast, --brand-ink, --brand-ink-dark
     değişkenlerini :root üzerine yazar. Markaya bağlı her renk bu değişkenlerden türetilmelidir.
   - Sayfaya özel CSS, görünüm içinde @push('styles') ile ve yalnızca bu dosyadaki
     değişkenler kullanılarak yazılır (sabit hex renk yazmayın; koyu tema bozulur).
   ========================================================================== */

/* 1. TASARIM BELİRTEÇLERİ — AÇIK TEMA
   ========================================================================== */
:root {
    /* Marka (brand-vars partial'ı çalışma anında ezer; bu değerler kurulum ekranı içindir) */
    --brand: #3157d5;
    --brand-rgb: 49, 87, 213;
    --brand-600: #2c4ec0;
    --brand-700: #2644a6;
    --brand-contrast: #ffffff;
    --brand-ink: #3157d5;
    --brand-ink-dark: #738de2;

    /* Markadan türetilenler (temaya duyarlı) */
    --brand-text: var(--brand-ink);
    --brand-soft: rgba(var(--brand-rgb), .10);
    --brand-soft-hover: rgba(var(--brand-rgb), .16);
    --brand-border: rgba(var(--brand-rgb), .30);

    /* Zeminler ve metin */
    --gg-body-bg: #f4f6fa;
    --gg-surface: #ffffff;
    --gg-surface-subtle: #f8fafc;
    --gg-surface-muted: #f1f4f8;
    --gg-surface-hover: #f6f8fb;
    --gg-border: #e2e8f0;
    --gg-border-strong: #d3dae4;
    --gg-border-hover: #bfc8d5;
    --gg-border-soft: #edf1f6;
    --gg-text: #0f172a;
    --gg-text-secondary: #334155;
    --gg-muted: #5e6c84;

    /* Anlamsal renkler: metin/ikon rengi, -rgb (saydam türevler için), -soft (zemin), -solid (dolu zemin) */
    --gg-success: #047857;
    --gg-success-rgb: 4, 120, 87;
    --gg-success-soft: #e7f6ef;
    --gg-success-solid: #047857;
    --gg-danger: #c62a3f;
    --gg-danger-rgb: 198, 42, 63;
    --gg-danger-soft: #fdeef0;
    --gg-danger-solid: #c62a3f;
    --gg-warning: #b45309;
    --gg-warning-rgb: 180, 83, 9;
    --gg-warning-soft: #fef4e2;
    --gg-warning-solid: #d97706;
    --gg-info: #0369a1;
    --gg-info-rgb: 3, 105, 161;
    --gg-info-soft: #e6f3fa;
    --gg-info-solid: #0369a1;
    --gg-neutral: #475569;
    --gg-neutral-rgb: 100, 116, 139;
    --gg-neutral-soft: #eef2f6;

    /* Kabuk */
    --gg-sidebar-w: 260px;
    --gg-sidebar-bg: #0c1424;
    --gg-sidebar-bg-2: #121c31;
    --gg-sidebar-border: rgba(255, 255, 255, .07);
    --gg-sidebar-text: #b4bfd0;
    --gg-sidebar-muted: #7d8ba3;
    --gg-sidebar-icon: #8593ab;
    --gg-sidebar-hover: rgba(255, 255, 255, .06);
    --gg-sidebar-active: rgba(var(--brand-rgb), .24);
    --gg-topbar-h: 64px;
    --gg-topbar-bg: rgba(255, 255, 255, .82);

    /* Gölge, köşe, odak, hareket */
    --gg-shadow-xs: 0 1px 2px rgba(15, 23, 42, .05);
    --gg-shadow-sm: 0 1px 2px rgba(15, 23, 42, .04), 0 1px 3px rgba(15, 23, 42, .05);
    --gg-shadow-md: 0 4px 12px -2px rgba(15, 23, 42, .08), 0 2px 4px -2px rgba(15, 23, 42, .05);
    --gg-shadow-lg: 0 18px 44px -12px rgba(15, 23, 42, .22), 0 4px 10px -4px rgba(15, 23, 42, .08);
    --gg-radius: 12px;
    --gg-radius-lg: 16px;
    --gg-radius-sm: 8px;
    --gg-radius-xs: 6px;
    --gg-radius-pill: 999px;
    --gg-ring-color: rgba(var(--brand-rgb), .28);
    --gg-ring: 0 0 0 3px var(--gg-ring-color);
    --gg-ease: cubic-bezier(.2, .8, .2, 1);
    --gg-font: "Inter", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;

    /* Bootstrap eşlemesi */
    --bs-body-font-family: var(--gg-font);
    --bs-body-font-size: .875rem;
    --bs-body-line-height: 1.55;
    --bs-body-color: var(--gg-text);
    --bs-body-color-rgb: 15, 23, 42;
    --bs-body-bg: var(--gg-body-bg);
    --bs-body-bg-rgb: 244, 246, 250;
    --bs-emphasis-color: var(--gg-text);
    --bs-emphasis-color-rgb: 15, 23, 42;
    --bs-secondary-color: var(--gg-muted);
    --bs-secondary-color-rgb: 94, 108, 132;
    --bs-secondary-rgb: 94, 108, 132;
    --bs-secondary-bg: var(--gg-surface-muted);
    --bs-tertiary-color: var(--gg-muted);
    --bs-tertiary-bg: var(--gg-surface-subtle);
    --bs-heading-color: var(--gg-text);
    --bs-border-color: var(--gg-border);
    --bs-border-color-translucent: rgba(15, 23, 42, .1);
    --bs-border-radius: var(--gg-radius-sm);
    --bs-border-radius-sm: var(--gg-radius-xs);
    --bs-border-radius-lg: var(--gg-radius);
    --bs-border-radius-xl: var(--gg-radius-lg);
    --bs-link-color: var(--brand-text);
    --bs-link-hover-color: var(--brand-text);
    --bs-code-color: var(--brand-text);
    --bs-primary: var(--brand);
    --bs-primary-rgb: var(--brand-rgb);
    --bs-primary-text-emphasis: var(--brand-text);
    --bs-primary-bg-subtle: var(--brand-soft);
    --bs-primary-border-subtle: var(--brand-border);
    --bs-success: var(--gg-success);
    --bs-success-rgb: var(--gg-success-rgb);
    --bs-success-text-emphasis: var(--gg-success);
    --bs-success-bg-subtle: var(--gg-success-soft);
    --bs-success-border-subtle: rgba(var(--gg-success-rgb), .25);
    --bs-danger: var(--gg-danger);
    --bs-danger-rgb: var(--gg-danger-rgb);
    --bs-danger-text-emphasis: var(--gg-danger);
    --bs-danger-bg-subtle: var(--gg-danger-soft);
    --bs-danger-border-subtle: rgba(var(--gg-danger-rgb), .25);
    --bs-warning: var(--gg-warning);
    --bs-warning-rgb: var(--gg-warning-rgb);
    --bs-warning-text-emphasis: var(--gg-warning);
    --bs-warning-bg-subtle: var(--gg-warning-soft);
    --bs-warning-border-subtle: rgba(var(--gg-warning-rgb), .25);
    --bs-info: var(--gg-info);
    --bs-info-rgb: var(--gg-info-rgb);
    --bs-info-text-emphasis: var(--gg-info);
    --bs-info-bg-subtle: var(--gg-info-soft);
    --bs-info-border-subtle: rgba(var(--gg-info-rgb), .25);
    --bs-focus-ring-color: var(--gg-ring-color);
    --bs-focus-ring-width: 3px;
    --bs-form-valid-color: var(--gg-success);
    --bs-form-valid-border-color: var(--gg-success);
    --bs-form-invalid-color: var(--gg-danger);
    --bs-form-invalid-border-color: var(--gg-danger);

    accent-color: var(--brand);
}

/* 2. KOYU TEMA BELİRTEÇLERİ ( <html data-bs-theme="dark"> )
   ========================================================================== */
[data-bs-theme="dark"] {
    color-scheme: dark;

    --brand-text: var(--brand-ink-dark);
    --brand-soft: rgba(var(--brand-rgb), .18);
    --brand-soft-hover: rgba(var(--brand-rgb), .26);
    --brand-border: rgba(var(--brand-rgb), .45);

    --gg-body-bg: #0b1120;
    --gg-surface: #121a2a;
    --gg-surface-subtle: #161f31;
    --gg-surface-muted: #1c2639;
    --gg-surface-hover: #182235;
    --gg-border: #243045;
    --gg-border-strong: #334159;
    --gg-border-hover: #46546e;
    --gg-border-soft: #1d2739;
    --gg-text: #e7ebf3;
    --gg-text-secondary: #c3cad8;
    --gg-muted: #96a3b9;

    --gg-success: #34d399;
    --gg-success-rgb: 52, 211, 153;
    --gg-success-soft: rgba(52, 211, 153, .13);
    --gg-danger: #f87171;
    --gg-danger-rgb: 248, 113, 113;
    --gg-danger-soft: rgba(248, 113, 113, .13);
    --gg-warning: #fbbf24;
    --gg-warning-rgb: 251, 191, 36;
    --gg-warning-soft: rgba(251, 191, 36, .13);
    --gg-info: #38bdf8;
    --gg-info-rgb: 56, 189, 248;
    --gg-info-soft: rgba(56, 189, 248, .13);
    --gg-neutral: #cbd5e1;
    --gg-neutral-rgb: 148, 163, 184;
    --gg-neutral-soft: rgba(148, 163, 184, .14);

    --gg-sidebar-bg: #080d19;
    --gg-sidebar-bg-2: #0d1527;
    --gg-topbar-bg: rgba(18, 26, 42, .8);

    --gg-shadow-xs: 0 1px 2px rgba(0, 0, 0, .35);
    --gg-shadow-sm: 0 1px 2px rgba(0, 0, 0, .3), 0 1px 3px rgba(0, 0, 0, .2);
    --gg-shadow-md: 0 6px 16px -4px rgba(0, 0, 0, .5), 0 2px 4px -2px rgba(0, 0, 0, .3);
    --gg-shadow-lg: 0 22px 50px -12px rgba(0, 0, 0, .65), 0 4px 12px -4px rgba(0, 0, 0, .4);
    --gg-ring-color: rgba(var(--brand-rgb), .5);

    --bs-body-color-rgb: 231, 235, 243;
    --bs-body-bg-rgb: 11, 17, 32;
    --bs-emphasis-color-rgb: 231, 235, 243;
    --bs-secondary-color-rgb: 150, 163, 185;
    --bs-secondary-rgb: 150, 163, 185;
    --bs-border-color-translucent: rgba(255, 255, 255, .1);
}

/* 3. TEMEL TİPOGRAFİ VE ÖĞELER
   ========================================================================== */
html { -webkit-text-size-adjust: 100%; }

body {
    min-height: 100vh;
    background: var(--gg-body-bg);
    color: var(--gg-text);
    font-family: var(--gg-font);
    font-size: var(--bs-body-font-size);
    line-height: var(--bs-body-line-height);
    font-feature-settings: "cv02", "cv03", "cv04", "cv11";
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    color: var(--bs-heading-color);
    font-weight: 600;
    letter-spacing: -.018em;
    line-height: 1.3;
}

h1, .h1 { font-size: 1.75rem; letter-spacing: -.025em; }
h2, .h2 { font-size: 1.5rem; letter-spacing: -.022em; }
h3, .h3 { font-size: 1.25rem; }
h4, .h4 { font-size: 1.125rem; }
h5, .h5 { font-size: 1rem; }
h6, .h6 { font-size: .9375rem; letter-spacing: -.01em; }

a { color: var(--brand-text); text-decoration-thickness: from-font; text-underline-offset: .15em; }
a:hover { color: var(--brand-text); }

hr { color: var(--gg-border); opacity: 1; }
::selection { background: rgba(var(--brand-rgb), .2); }

:focus-visible { outline: 2px solid rgba(var(--brand-rgb), .6); outline-offset: 2px; }
.btn:focus-visible,
.form-control:focus-visible,
.form-select:focus-visible,
.form-check-input:focus-visible,
.page-link:focus-visible,
.nav-link:focus-visible,
.list-group-item:focus-visible,
.dropdown-item:focus-visible { outline: 0; }

.skip-link {
    position: fixed;
    top: .75rem;
    left: .75rem;
    z-index: 2000;
    padding: .55rem .9rem;
    color: var(--brand-contrast);
    background: var(--brand);
    border-radius: var(--gg-radius-sm);
    box-shadow: var(--gg-shadow-lg);
    font-weight: 600;
    text-decoration: none;
    transform: translateY(-160%);
    transition: transform .15s var(--gg-ease);
}
.skip-link:focus { color: var(--brand-contrast); transform: translateY(0); }

.tabular-nums,
.stat-value,
.amount,
.table { font-variant-numeric: tabular-nums; }

/* 4. UYGULAMA KABUĞU — SIDEBAR
   ========================================================================== */
.sidebar {
    width: var(--gg-sidebar-w);
    height: 100vh;
    height: 100dvh;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1040;
    display: flex;
    flex-direction: column;
    color: var(--gg-sidebar-text);
    background:
        radial-gradient(120% 34% at 0% 0%, rgba(var(--brand-rgb), .20) 0%, transparent 62%),
        linear-gradient(180deg, var(--gg-sidebar-bg-2) 0%, var(--gg-sidebar-bg) 100%);
    background-color: var(--gg-sidebar-bg);
    border-right: 1px solid var(--gg-sidebar-border);
}

.sidebar-brand {
    height: var(--gg-topbar-h);
    min-height: var(--gg-topbar-h);
    padding: 0 1rem 0 1.15rem;
    display: flex;
    align-items: center;
    gap: .7rem;
    color: #fff;
    border-bottom: 1px solid var(--gg-sidebar-border);
    flex-shrink: 0;
}

.sidebar-brand img { max-width: 150px; max-height: 34px; object-fit: contain; }
.sidebar-brand-text { min-width: 0; flex: 1 1 auto; line-height: 1.25; }
.sidebar-brand-name {
    display: block;
    overflow: hidden;
    color: #fff;
    font-size: .9375rem;
    font-weight: 600;
    letter-spacing: -.01em;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.sidebar-brand-meta { display: block; color: var(--gg-sidebar-muted); font-size: .6875rem; font-weight: 500; }

.sidebar-brand .brand-badge,
.brand-badge {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--brand-contrast);
    background: linear-gradient(140deg, var(--brand) 0%, var(--brand-700) 100%);
    box-shadow: 0 6px 14px -4px rgba(var(--brand-rgb), .6), inset 0 1px 0 rgba(255, 255, 255, .22);
    font-size: 1.05rem;
}

.sidebar-close {
    margin-left: auto;
    color: var(--gg-sidebar-text);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--gg-sidebar-hover);
    --bs-btn-active-bg: var(--gg-sidebar-hover);
}

.sidebar nav {
    flex: 1 1 auto;
    overflow-y: auto;
    overflow-x: hidden;
    padding: .65rem .75rem 1.25rem;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, .14) transparent;
    overscroll-behavior: contain;
}

.sidebar nav::-webkit-scrollbar { width: 6px; }
.sidebar nav::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, .14); border-radius: 3px; }
.sidebar nav::-webkit-scrollbar-track { background: transparent; }

.sidebar .nav-link {
    position: relative;
    min-height: 38px;
    margin: 1px 0;
    padding: .5rem .75rem;
    display: flex;
    align-items: center;
    gap: .75rem;
    color: var(--gg-sidebar-text);
    border: 0;
    border-radius: var(--gg-radius-sm);
    text-decoration: none;
    font-size: .84375rem;
    font-weight: 500;
    line-height: 1.3;
    transition: background-color .15s ease, color .15s ease;
}

.sidebar .nav-link i {
    width: 18px;
    flex-shrink: 0;
    color: var(--gg-sidebar-icon);
    font-size: 1.05rem;
    text-align: center;
    transition: color .15s ease;
}

.sidebar .nav-link:hover { color: #fff; background: var(--gg-sidebar-hover); }
.sidebar .nav-link:hover i { color: #dbe2ee; }
.sidebar .nav-link:focus-visible { color: #fff; box-shadow: 0 0 0 2px rgba(var(--brand-rgb), .7); }

.sidebar .nav-link.active {
    color: #fff;
    background: var(--gg-sidebar-active);
    font-weight: 600;
}

.sidebar .nav-link.active i { color: #fff; }

.sidebar .nav-link.active::before {
    content: "";
    position: absolute;
    top: 8px;
    bottom: 8px;
    left: -.75rem;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: var(--brand-ink-dark);
    box-shadow: 0 0 12px rgba(var(--brand-rgb), .8);
}

.sidebar .nav-section {
    padding: 1.15rem .75rem .4rem;
    color: var(--gg-sidebar-muted);
    font-size: .6875rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.sidebar-footer {
    padding: .75rem;
    border-top: 1px solid var(--gg-sidebar-border);
    flex-shrink: 0;
}

.sidebar-user {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .5rem;
    color: var(--gg-sidebar-text);
    border-radius: 10px;
    text-decoration: none;
    transition: background-color .15s ease;
}

a.sidebar-user:hover { color: #fff; background: var(--gg-sidebar-hover); }
.sidebar-user .avatar { color: #fff; background: rgba(var(--brand-rgb), .38); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); }
.sidebar-user-text { min-width: 0; flex: 1 1 auto; line-height: 1.3; }
.sidebar-user-name { display: block; overflow: hidden; color: #fff; font-size: .8125rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-user-meta { display: block; overflow: hidden; color: var(--gg-sidebar-muted); font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-user > .bi { color: var(--gg-sidebar-icon); font-size: .9rem; }

/* 5. UYGULAMA KABUĞU — İÇERİK VE TOPBAR
   ========================================================================== */
.content {
    min-height: 100vh;
    min-width: 0;
    margin-left: var(--gg-sidebar-w);
    display: flex;
    flex-direction: column;
    overflow-x: clip;
    transition: margin .2s ease;
}

.app-main {
    flex: 1 0 auto;
    width: 100%;
    max-width: 1680px;
    margin: 0 auto;
    padding: 1.5rem 1.75rem 2.5rem;
}
.app-main:focus { outline: 0; }

.topbar {
    min-height: var(--gg-topbar-h);
    padding: .5rem 1.75rem;
    position: sticky;
    top: 0;
    z-index: 1030;
    gap: 1rem;
    background: var(--gg-surface);
    border-bottom: 1px solid var(--gg-border);
}

@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
    .topbar {
        background: var(--gg-topbar-bg);
        -webkit-backdrop-filter: saturate(180%) blur(14px);
        backdrop-filter: saturate(180%) blur(14px);
    }
}

.topbar-start { min-width: 0; display: flex; align-items: center; gap: .75rem; }
.topbar-heading { min-width: 0; }
.topbar-title,
.topbar h6 {
    margin: 0;
    overflow: hidden;
    color: var(--gg-text);
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: -.015em;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.topbar-subtitle {
    margin: .1rem 0 0;
    overflow: hidden;
    color: var(--gg-muted);
    font-size: .78rem;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.topbar-actions { display: flex; align-items: center; gap: .5rem; flex-shrink: 0; }
.topbar-divider { width: 1px; height: 24px; margin: 0 .25rem; background: var(--gg-border); }

.btn-quick .bi { font-size: .95em; }
.btn-quick .btn-quick-label { margin-left: .35rem; }

.topbar-user {
    --bs-btn-padding-x: .35rem;
    --bs-btn-padding-y: .25rem;
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    border-radius: var(--gg-radius-pill);
}
.topbar-user .avatar { --avatar-size: 30px; }
.topbar-user-text { min-width: 0; max-width: 160px; text-align: left; line-height: 1.2; }
.topbar-user-name { display: block; overflow: hidden; color: var(--gg-text); font-size: .8125rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.topbar-user-meta { display: block; overflow: hidden; color: var(--gg-muted); font-size: .7rem; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.topbar-user > .bi-chevron-down { margin-right: .25rem; color: var(--gg-muted); font-size: .7rem; }

.notif-btn { position: relative; }
.notif-dot {
    position: absolute;
    top: 3px;
    right: 3px;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: #dc2626;
    border-radius: var(--gg-radius-pill);
    box-shadow: 0 0 0 2px var(--gg-surface);
    font-size: .625rem;
    font-weight: 700;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.notif-menu { width: 340px; max-width: calc(100vw - 1.5rem); padding: 0; overflow: hidden; }
.dropdown-menu-header {
    padding: .8rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    border-bottom: 1px solid var(--gg-border-soft);
    font-size: .875rem;
    font-weight: 600;
}
.notif-list { max-height: 360px; overflow-y: auto; padding: .375rem; scrollbar-width: thin; }
.notif-item {
    padding: .6rem .65rem;
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    white-space: normal;
}
.notif-icon {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    color: var(--brand-text);
    background: var(--brand-soft);
    border-radius: 50%;
    font-size: .9rem;
}
.notif-title { color: var(--gg-text); font-size: .8125rem; font-weight: 600; line-height: 1.35; }
.notif-body { display: -webkit-box; overflow: hidden; color: var(--gg-muted); font-size: .78rem; line-height: 1.4; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.notif-time { margin-top: .2rem; color: var(--gg-muted); font-size: .7rem; }
.notif-empty { padding: 1.75rem 1rem; color: var(--gg-muted); font-size: .8125rem; text-align: center; }
.notif-empty .bi { display: block; margin-bottom: .4rem; font-size: 1.5rem; opacity: .6; }
.dropdown-menu-footer { padding: .375rem; border-top: 1px solid var(--gg-border-soft); }
.dropdown-menu-footer .dropdown-item { justify-content: center; color: var(--brand-text); font-weight: 600; text-align: center; }

.dropdown-user-head { padding: .6rem .65rem .7rem; display: flex; align-items: center; gap: .65rem; }
.dropdown-user-head .avatar { --avatar-size: 38px; }
.dropdown-user-name { color: var(--gg-text); font-size: .875rem; font-weight: 600; line-height: 1.3; }
.dropdown-user-meta { overflow: hidden; color: var(--gg-muted); font-size: .75rem; text-overflow: ellipsis; white-space: nowrap; }

/* 6. KARTLAR VE KPI KUTULARI
   ========================================================================== */
.card,
.stat-card {
    --bs-card-bg: var(--gg-surface);
    --bs-card-color: var(--gg-text);
    --bs-card-border-color: var(--gg-border);
    --bs-card-border-radius: var(--gg-radius);
    --bs-card-inner-border-radius: calc(var(--gg-radius) - 1px);
    --bs-card-spacer-x: 1.25rem;
    --bs-card-spacer-y: 1.25rem;
    --bs-card-cap-padding-x: 1.25rem;
    --bs-card-cap-padding-y: .875rem;
    --bs-card-cap-bg: transparent;
    --bs-card-title-color: var(--gg-text);
    --bs-card-subtitle-color: var(--gg-muted);
    color: var(--gg-text);
    background: var(--gg-surface);
    border: 1px solid var(--gg-border);
    border-radius: var(--gg-radius);
    box-shadow: var(--gg-shadow-sm);
}

.stat-card { position: relative; overflow: hidden; }

.card-header {
    padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);
    color: var(--gg-text);
    background: transparent;
    border-bottom: 1px solid var(--gg-border);
    font-weight: 600;
}

.card-footer {
    padding: .8rem 1.25rem;
    background: var(--gg-surface-subtle);
    border-top: 1px solid var(--gg-border);
}

.card-title { margin-bottom: .25rem; color: var(--gg-text); font-size: .9375rem; font-weight: 600; letter-spacing: -.01em; }
.card-subtitle { margin-top: 0; color: var(--gg-muted); font-size: .8125rem; font-weight: 400; }

/* KPI kutusu: .card.stat-card.summary-card + .stat-icon + .stat-label + .stat-value */
.summary-card { position: relative; }
.summary-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 1.25rem;
    width: 28px;
    height: 3px;
    border-radius: 0 0 3px 3px;
    background: var(--accent, var(--brand));
}

.stat-head { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; margin-bottom: .85rem; }

.stat-icon {
    width: 42px;
    height: 42px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1.15rem;
    line-height: 1;
}
.stat-icon-sm { width: 34px; height: 34px; border-radius: 9px; font-size: .95rem; }

.ic-green,
.ic-soft-green { color: var(--gg-success); background: var(--gg-success-soft); box-shadow: inset 0 0 0 1px rgba(var(--gg-success-rgb), .12); }
.ic-red,
.ic-soft-red { color: var(--gg-danger); background: var(--gg-danger-soft); box-shadow: inset 0 0 0 1px rgba(var(--gg-danger-rgb), .12); }
.ic-blue,
.ic-soft-blue { color: var(--gg-info); background: var(--gg-info-soft); box-shadow: inset 0 0 0 1px rgba(var(--gg-info-rgb), .12); }
.ic-violet,
.ic-soft-violet,
.ic-brand { color: var(--brand-text); background: var(--brand-soft); box-shadow: inset 0 0 0 1px rgba(var(--brand-rgb), .14); }
.ic-amber,
.ic-soft-amber { color: var(--gg-warning); background: var(--gg-warning-soft); box-shadow: inset 0 0 0 1px rgba(var(--gg-warning-rgb), .14); }
.ic-slate,
.ic-soft-slate { color: var(--gg-neutral); background: var(--gg-neutral-soft); box-shadow: inset 0 0 0 1px rgba(var(--gg-neutral-rgb), .14); }

.stat-label {
    display: block;
    color: var(--gg-muted);
    font-size: .8125rem;
    font-weight: 500;
    line-height: 1.35;
}

.stat-value {
    color: var(--gg-text);
    font-size: 1.375rem;
    font-weight: 700;
    letter-spacing: -.022em;
    line-height: 1.25;
}

.stat-meta { margin-top: .35rem; color: var(--gg-muted); font-size: .78rem; }
.stat-trend { display: inline-flex; align-items: center; gap: .2rem; font-size: .78rem; font-weight: 600; }
.stat-trend.up { color: var(--gg-success); }
.stat-trend.down { color: var(--gg-danger); }

/* 7. BUTONLAR
   ========================================================================== */
.btn {
    --bs-btn-padding-x: .875rem;
    --bs-btn-padding-y: .5rem;
    --bs-btn-font-size: .875rem;
    --bs-btn-font-weight: 500;
    --bs-btn-line-height: 1.25rem;
    --bs-btn-border-radius: var(--gg-radius-sm);
    --bs-btn-focus-box-shadow: var(--gg-ring);
    --bs-btn-disabled-opacity: .55;
    letter-spacing: -.005em;
    transition: color .15s ease, background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.btn-sm,
.btn-group-sm > .btn {
    --bs-btn-padding-x: .65rem;
    --bs-btn-padding-y: .3125rem;
    --bs-btn-font-size: .8125rem;
    --bs-btn-line-height: 1.25rem;
    --bs-btn-border-radius: 7px;
}

.btn-lg,
.btn-group-lg > .btn {
    --bs-btn-padding-x: 1.125rem;
    --bs-btn-padding-y: .5625rem;
    --bs-btn-font-size: .9375rem;
    --bs-btn-line-height: 1.5rem;
    --bs-btn-border-radius: 10px;
}

.btn-brand,
.btn-primary {
    --bs-btn-color: var(--brand-contrast);
    --bs-btn-bg: var(--brand);
    --bs-btn-border-color: var(--brand);
    --bs-btn-hover-color: var(--brand-contrast);
    --bs-btn-hover-bg: var(--brand-600);
    --bs-btn-hover-border-color: var(--brand-600);
    --bs-btn-active-color: var(--brand-contrast);
    --bs-btn-active-bg: var(--brand-700);
    --bs-btn-active-border-color: var(--brand-700);
    --bs-btn-disabled-color: var(--brand-contrast);
    --bs-btn-disabled-bg: var(--brand);
    --bs-btn-disabled-border-color: var(--brand);
    --bs-btn-focus-shadow-rgb: var(--brand-rgb);
    box-shadow: 0 1px 2px rgba(15, 23, 42, .1), inset 0 1px 0 rgba(255, 255, 255, .14);
}

.btn-success {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--gg-success-solid);
    --bs-btn-border-color: var(--gg-success-solid);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #04694c;
    --bs-btn-hover-border-color: #04694c;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #035a41;
    --bs-btn-active-border-color: #035a41;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--gg-success-solid);
    --bs-btn-disabled-border-color: var(--gg-success-solid);
    --bs-btn-focus-box-shadow: 0 0 0 3px rgba(4, 120, 87, .3);
}

.btn-danger {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--gg-danger-solid);
    --bs-btn-border-color: var(--gg-danger-solid);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #ad2337;
    --bs-btn-hover-border-color: #ad2337;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #941e2f;
    --bs-btn-active-border-color: #941e2f;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--gg-danger-solid);
    --bs-btn-disabled-border-color: var(--gg-danger-solid);
    --bs-btn-focus-box-shadow: 0 0 0 3px rgba(198, 42, 63, .3);
}

.btn-warning {
    --bs-btn-color: #1c1206;
    --bs-btn-bg: #f59e0b;
    --bs-btn-border-color: #f59e0b;
    --bs-btn-hover-color: #1c1206;
    --bs-btn-hover-bg: #e08e06;
    --bs-btn-hover-border-color: #e08e06;
    --bs-btn-active-color: #1c1206;
    --bs-btn-active-bg: #c97f05;
    --bs-btn-active-border-color: #c97f05;
    --bs-btn-focus-box-shadow: 0 0 0 3px rgba(245, 158, 11, .35);
}

.btn-info {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--gg-info-solid);
    --bs-btn-border-color: var(--gg-info-solid);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #025d8f;
    --bs-btn-hover-border-color: #025d8f;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #02507b;
    --bs-btn-active-border-color: #02507b;
    --bs-btn-focus-box-shadow: 0 0 0 3px rgba(3, 105, 161, .3);
}

.btn-secondary {
    --bs-btn-color: #fff;
    --bs-btn-bg: #475569;
    --bs-btn-border-color: #475569;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #3c4859;
    --bs-btn-hover-border-color: #3c4859;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #334155;
    --bs-btn-active-border-color: #334155;
    --bs-btn-focus-box-shadow: 0 0 0 3px rgba(71, 85, 105, .3);
}

/* Nötr (ikincil) buton: beyaz yüzey + ince kenarlık */
.btn-light {
    --bs-btn-color: var(--gg-text);
    --bs-btn-bg: var(--gg-surface);
    --bs-btn-border-color: var(--gg-border-strong);
    --bs-btn-hover-color: var(--gg-text);
    --bs-btn-hover-bg: var(--gg-surface-subtle);
    --bs-btn-hover-border-color: var(--gg-border-hover);
    --bs-btn-active-color: var(--gg-text);
    --bs-btn-active-bg: var(--gg-surface-muted);
    --bs-btn-active-border-color: var(--gg-border-hover);
    --bs-btn-disabled-color: var(--gg-muted);
    --bs-btn-disabled-bg: var(--gg-surface);
    --bs-btn-disabled-border-color: var(--gg-border);
    box-shadow: var(--gg-shadow-xs);
}

.btn-outline-secondary {
    --bs-btn-color: var(--gg-text-secondary);
    --bs-btn-bg: transparent;
    --bs-btn-border-color: var(--gg-border-strong);
    --bs-btn-hover-color: var(--gg-text);
    --bs-btn-hover-bg: var(--gg-surface-muted);
    --bs-btn-hover-border-color: var(--gg-border-hover);
    --bs-btn-active-color: var(--gg-text);
    --bs-btn-active-bg: var(--gg-surface-muted);
    --bs-btn-active-border-color: var(--gg-border-hover);
    --bs-btn-disabled-color: var(--gg-muted);
    --bs-btn-disabled-border-color: var(--gg-border);
}

.btn-outline-primary {
    --bs-btn-color: var(--brand-text);
    --bs-btn-bg: transparent;
    --bs-btn-border-color: var(--brand-border);
    --bs-btn-hover-color: var(--brand-text);
    --bs-btn-hover-bg: var(--brand-soft);
    --bs-btn-hover-border-color: var(--brand);
    --bs-btn-active-color: var(--brand-text);
    --bs-btn-active-bg: var(--brand-soft-hover);
    --bs-btn-active-border-color: var(--brand);
    --bs-btn-disabled-color: var(--brand-text);
    --bs-btn-disabled-border-color: var(--brand-border);
}

.btn-outline-danger {
    --bs-btn-color: var(--gg-danger);
    --bs-btn-bg: transparent;
    --bs-btn-border-color: rgba(var(--gg-danger-rgb), .38);
    --bs-btn-hover-color: var(--gg-danger);
    --bs-btn-hover-bg: var(--gg-danger-soft);
    --bs-btn-hover-border-color: rgba(var(--gg-danger-rgb), .6);
    --bs-btn-active-color: var(--gg-danger);
    --bs-btn-active-bg: rgba(var(--gg-danger-rgb), .16);
    --bs-btn-active-border-color: var(--gg-danger);
    --bs-btn-disabled-color: var(--gg-danger);
    --bs-btn-disabled-border-color: rgba(var(--gg-danger-rgb), .3);
    --bs-btn-focus-box-shadow: 0 0 0 3px rgba(var(--gg-danger-rgb), .22);
}

.btn-outline-success {
    --bs-btn-color: var(--gg-success);
    --bs-btn-bg: transparent;
    --bs-btn-border-color: rgba(var(--gg-success-rgb), .38);
    --bs-btn-hover-color: var(--gg-success);
    --bs-btn-hover-bg: var(--gg-success-soft);
    --bs-btn-hover-border-color: rgba(var(--gg-success-rgb), .6);
    --bs-btn-active-color: var(--gg-success);
    --bs-btn-active-bg: rgba(var(--gg-success-rgb), .16);
    --bs-btn-active-border-color: var(--gg-success);
    --bs-btn-focus-box-shadow: 0 0 0 3px rgba(var(--gg-success-rgb), .22);
}

.btn-link {
    --bs-btn-color: var(--brand-text);
    --bs-btn-hover-color: var(--brand-text);
    --bs-btn-active-color: var(--brand-text);
    --bs-btn-disabled-color: var(--gg-muted);
    font-weight: 500;
    text-decoration: none;
}
.btn-link:hover { text-decoration: underline; }

/* Yumuşak butonlar: .btn-soft-primary | -success | -danger | -warning | -info | -secondary */
.btn-soft-primary,
.btn-soft-success,
.btn-soft-danger,
.btn-soft-warning,
.btn-soft-info,
.btn-soft-secondary {
    --bs-btn-color: var(--soft-fg);
    --bs-btn-bg: var(--soft-bg);
    --bs-btn-border-color: transparent;
    --bs-btn-hover-color: var(--soft-fg);
    --bs-btn-hover-bg: var(--soft-bg-hover);
    --bs-btn-hover-border-color: transparent;
    --bs-btn-active-color: var(--soft-fg);
    --bs-btn-active-bg: var(--soft-bg-hover);
    --bs-btn-active-border-color: transparent;
    --bs-btn-disabled-color: var(--soft-fg);
    --bs-btn-disabled-bg: var(--soft-bg);
    --bs-btn-disabled-border-color: transparent;
    --bs-btn-focus-box-shadow: 0 0 0 3px var(--soft-ring);
}
.btn-soft-primary { --soft-fg: var(--brand-text); --soft-bg: var(--brand-soft); --soft-bg-hover: var(--brand-soft-hover); --soft-ring: var(--gg-ring-color); }
.btn-soft-success { --soft-fg: var(--gg-success); --soft-bg: var(--gg-success-soft); --soft-bg-hover: rgba(var(--gg-success-rgb), .18); --soft-ring: rgba(var(--gg-success-rgb), .25); }
.btn-soft-danger { --soft-fg: var(--gg-danger); --soft-bg: var(--gg-danger-soft); --soft-bg-hover: rgba(var(--gg-danger-rgb), .16); --soft-ring: rgba(var(--gg-danger-rgb), .25); }
.btn-soft-warning { --soft-fg: var(--gg-warning); --soft-bg: var(--gg-warning-soft); --soft-bg-hover: rgba(var(--gg-warning-rgb), .18); --soft-ring: rgba(var(--gg-warning-rgb), .25); }
.btn-soft-info { --soft-fg: var(--gg-info); --soft-bg: var(--gg-info-soft); --soft-bg-hover: rgba(var(--gg-info-rgb), .18); --soft-ring: rgba(var(--gg-info-rgb), .25); }
.btn-soft-secondary { --soft-fg: var(--gg-text-secondary); --soft-bg: var(--gg-neutral-soft); --soft-bg-hover: rgba(var(--gg-neutral-rgb), .2); --soft-ring: rgba(var(--gg-neutral-rgb), .3); }

/* Hayalet buton: zeminsiz, üzerine gelince yüzey */
.btn-ghost {
    --bs-btn-color: var(--gg-text-secondary);
    --bs-btn-bg: transparent;
    --bs-btn-border-color: transparent;
    --bs-btn-hover-color: var(--gg-text);
    --bs-btn-hover-bg: var(--gg-surface-muted);
    --bs-btn-hover-border-color: transparent;
    --bs-btn-active-color: var(--gg-text);
    --bs-btn-active-bg: var(--gg-surface-muted);
    --bs-btn-active-border-color: transparent;
}

/* Kare ikon buton: <button class="btn btn-light btn-icon" aria-label="…"><i class="bi bi-…"></i></button> */
.btn-icon {
    width: 38px;
    height: 38px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.btn-icon.btn-sm { width: 32px; height: 32px; }
.btn-icon.btn-lg { width: 44px; height: 44px; }
.btn-icon > .bi { font-size: 1rem; line-height: 1; }
.btn-icon.btn-sm > .bi { font-size: .9rem; }

/* Tablo satır eylemleri: <td class="text-end table-actions"> içindeki .btn'ler sessiz ikon butona dönüşür */
td.table-actions,
th.table-actions { white-space: nowrap; }
.table-actions .btn {
    --bs-btn-padding-x: .5rem;
    --bs-btn-padding-y: 0;
    --bs-btn-color: var(--gg-text-secondary);
    --bs-btn-bg: transparent;
    --bs-btn-border-color: transparent;
    --bs-btn-hover-color: var(--gg-text);
    --bs-btn-hover-bg: var(--gg-surface-muted);
    --bs-btn-hover-border-color: transparent;
    --bs-btn-active-color: var(--gg-text);
    --bs-btn-active-bg: var(--gg-surface-muted);
    --bs-btn-active-border-color: transparent;
    min-width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .3rem;
    vertical-align: middle;
    box-shadow: none;
    line-height: 1;
}
.table-actions .btn.text-danger:hover,
.table-actions .btn.text-danger:focus-visible { background-color: var(--gg-danger-soft); }
.table-actions .btn.btn-brand,
.table-actions .btn.btn-primary { --bs-btn-color: var(--brand-contrast); --bs-btn-bg: var(--brand); --bs-btn-hover-color: var(--brand-contrast); --bs-btn-hover-bg: var(--brand-600); }
.table-actions form { display: inline; }

/* 8. FORMLAR
   ========================================================================== */
.form-control,
.form-select {
    min-height: 40px;
    color: var(--gg-text);
    background-color: var(--gg-surface);
    border: 1px solid var(--gg-border-strong);
    border-radius: var(--gg-radius-sm);
    box-shadow: var(--gg-shadow-xs);
    font-size: .875rem;
    line-height: 1.5;
    transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}

.form-control { padding: .5rem .8rem; }
.form-select { padding: .5rem 2.25rem .5rem .8rem; background-position: right .75rem center; }

.form-control:hover:not(:focus):not(:disabled):not([readonly]),
.form-select:hover:not(:focus):not(:disabled) { border-color: var(--gg-border-hover); }

.form-control:focus,
.form-select:focus {
    color: var(--gg-text);
    background-color: var(--gg-surface);
    border-color: var(--brand);
    outline: 0;
    box-shadow: 0 0 0 3px rgba(var(--brand-rgb), .16);
}

.form-control::placeholder { color: var(--gg-muted); opacity: .8; }

.form-control:disabled,
.form-select:disabled,
.form-control[readonly] { color: var(--gg-muted); background-color: var(--gg-surface-subtle); box-shadow: none; }

.form-control-sm,
.form-select-sm { min-height: 32px; font-size: .8125rem; border-radius: 7px; }
.form-control-sm { padding: .3rem .65rem; }
.form-select-sm { padding: .3rem 2rem .3rem .65rem; background-position: right .6rem center; }

.form-control-lg,
.form-select-lg { min-height: 48px; font-size: 1rem; border-radius: 10px; }
.form-control-lg { padding: .625rem 1rem; }
.form-select-lg { padding: .625rem 2.5rem .625rem 1rem; }

textarea.form-control { min-height: 80px; }
textarea.form-control-sm { min-height: 60px; }

.form-control-color { width: 3.25rem; height: 40px; padding: .3rem; cursor: pointer; }
.form-control-color::-webkit-color-swatch { border: 0; border-radius: 5px; }
.form-control-color::-moz-color-swatch { border: 0; border-radius: 5px; }

.form-control::file-selector-button {
    margin: -.5rem -.8rem;
    margin-inline-end: .8rem;
    padding: .5rem .8rem;
    color: var(--gg-text);
    background-color: var(--gg-surface-muted);
    border-color: var(--gg-border-strong);
    font-weight: 500;
}
.form-control:hover:not(:disabled):not([readonly])::file-selector-button { background-color: var(--gg-border-soft); }
.form-control-sm::file-selector-button { margin: -.3rem -.65rem; margin-inline-end: .65rem; padding: .3rem .65rem; }

.form-label,
.col-form-label { margin-bottom: .375rem; color: var(--gg-text-secondary); font-size: .8125rem; font-weight: 500; }
.form-text { margin-top: .35rem; color: var(--gg-muted); font-size: .78rem; }
.required::after,
.form-label.required::after { content: " *"; color: var(--gg-danger); }

.input-group-text {
    padding: .5rem .8rem;
    color: var(--gg-muted);
    background-color: var(--gg-surface-subtle);
    border-color: var(--gg-border-strong);
    border-radius: var(--gg-radius-sm);
    font-size: .875rem;
}
.input-group > .form-control,
.input-group > .form-select,
.input-group > .input-group-text,
.input-group > .btn { box-shadow: none; }
.input-group-sm > .input-group-text { padding: .3rem .65rem; font-size: .8125rem; }
.input-group > .btn-light,
.input-group > .btn-outline-secondary { border-color: var(--gg-border-strong); }

.form-check { min-height: 1.4rem; }
.form-check-label { color: var(--gg-text); }
.form-check-input {
    width: 1.05em;
    height: 1.05em;
    margin-top: .22em;
    background-color: var(--gg-surface);
    border: 1px solid var(--gg-border-hover);
    cursor: pointer;
}
.form-check-input[type="checkbox"] { border-radius: 5px; }
.form-check-input:checked,
.form-check-input[type="checkbox"]:indeterminate { background-color: var(--brand); border-color: var(--brand); }
.form-check-input:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(var(--brand-rgb), .2); }
.form-check-input:disabled { cursor: not-allowed; }

.form-switch { padding-left: 2.85em; }
.form-switch .form-check-input {
    width: 2.25em;
    height: 1.25em;
    margin-top: .1em;
    margin-left: -2.85em;
    border-radius: 2em;
}
.form-switch .form-check-input:focus:not(:checked) {
    --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");
}
[data-bs-theme="dark"] .form-switch .form-check-input:focus:not(:checked) {
    --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.3%29'/%3e%3c/svg%3e");
}

.form-range::-webkit-slider-thumb { background-color: var(--brand); }
.form-range::-moz-range-thumb { background-color: var(--brand); }

.form-control.is-invalid,
.form-select.is-invalid,
.was-validated .form-control:invalid,
.was-validated .form-select:invalid { border-color: var(--gg-danger); }
.form-control.is-invalid:focus,
.form-select.is-invalid:focus,
.was-validated .form-control:invalid:focus,
.was-validated .form-select:invalid:focus { border-color: var(--gg-danger); box-shadow: 0 0 0 3px rgba(var(--gg-danger-rgb), .18); }
.form-check-input.is-invalid { border-color: var(--gg-danger); }
.invalid-feedback { margin-top: .35rem; color: var(--gg-danger); font-size: .78rem; font-weight: 500; }
.valid-feedback { font-size: .78rem; }

/* iOS odakta yakınlaştırmayı önle */
@supports (-webkit-touch-callout: none) {
    @media (max-width: 767.98px) {
        .form-control,
        .form-select { font-size: 16px; }
    }
}

/* 8b. TABLOLAR
   ========================================================================== */
.table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--gg-text);
    --bs-table-border-color: var(--gg-border-soft);
    --bs-table-striped-bg: var(--gg-surface-subtle);
    --bs-table-striped-color: var(--gg-text);
    --bs-table-hover-bg: var(--gg-surface-hover);
    --bs-table-hover-color: var(--gg-text);
    --bs-table-active-bg: var(--brand-soft);
    --bs-table-active-color: var(--gg-text);
    margin-bottom: 0;
    color: var(--gg-text);
    border-color: var(--gg-border-soft);
}

.table-light {
    --bs-table-color: var(--gg-muted);
    --bs-table-bg: var(--gg-surface-subtle);
    --bs-table-border-color: var(--gg-border);
    --bs-table-striped-bg: var(--gg-surface-subtle);
    --bs-table-hover-bg: var(--gg-surface-subtle);
    --bs-table-active-bg: var(--gg-surface-subtle);
    color: var(--gg-muted);
    border-color: var(--gg-border);
}

.table > thead th,
.table > thead td {
    padding: .65rem 1rem;
    color: var(--gg-muted);
    background-color: var(--gg-surface-subtle);
    border-bottom: 1px solid var(--gg-border);
    font-size: .6875rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    white-space: nowrap;
    vertical-align: middle;
}

.table > tbody > tr > td,
.table > tbody > tr > th {
    padding: .8rem 1rem;
    border-bottom-color: var(--gg-border-soft);
    vertical-align: middle;
}

.table > tbody > tr:last-child > td,
.table > tbody > tr:last-child > th { border-bottom: 0; }

.table > tfoot > tr > td,
.table > tfoot > tr > th {
    padding: .8rem 1rem;
    background-color: var(--gg-surface-subtle);
    border-top: 1px solid var(--gg-border);
    border-bottom: 0;
    font-weight: 600;
}

.table-hover > tbody > tr { transition: background-color .12s ease; }
.table-sm > :not(caption) > * > * { padding: .45rem .75rem; }
.table-sm > thead th { padding-top: .5rem; padding-bottom: .5rem; }
.table-bordered > :not(caption) > * > * { border-color: var(--gg-border-soft); }
.table td.text-end,
.table th.text-end { font-variant-numeric: tabular-nums; }
.table .text-muted.small,
.table td.small { font-size: .8125rem; }

/* Kart kenarına yaslı tablolarda ilk/son sütun kart iç boşluğuyla hizalanır */
.card > .table-responsive > .table > :not(caption) > tr > :first-child,
.card > .table > :not(caption) > tr > :first-child,
.stat-card > .table-responsive > .table > :not(caption) > tr > :first-child,
.table-card .table > :not(caption) > tr > :first-child { padding-left: 1.25rem; }
.card > .table-responsive > .table > :not(caption) > tr > :last-child,
.card > .table > :not(caption) > tr > :last-child,
.stat-card > .table-responsive > .table > :not(caption) > tr > :last-child,
.table-card .table > :not(caption) > tr > :last-child { padding-right: 1.25rem; }

.table-responsive {
    scrollbar-width: thin;
    scrollbar-color: var(--gg-border-strong) transparent;
    -webkit-overflow-scrolling: touch;
}
.table-responsive::-webkit-scrollbar { height: 8px; }
.table-responsive::-webkit-scrollbar-thumb { background: var(--gg-border-strong); border-radius: 4px; }

/* 9. ROZETLER, UYARILAR, BİLDİRİMLER
   ========================================================================== */
.badge {
    --bs-badge-padding-x: .55rem;
    --bs-badge-padding-y: .28rem;
    --bs-badge-font-size: .71875rem;
    --bs-badge-font-weight: 600;
    --bs-badge-border-radius: var(--gg-radius-pill);
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    max-width: 100%;
    letter-spacing: .005em;
    line-height: 1.2;
    vertical-align: middle;
    white-space: nowrap;
}
.badge > .bi { font-size: .95em; }

/* Yumuşak hap rozetler (.text-bg-* ve .badge-soft-* aynı görünür) */
.text-bg-primary,
.badge-soft-primary { color: var(--brand-text) !important; background-color: var(--brand-soft) !important; box-shadow: inset 0 0 0 1px rgba(var(--brand-rgb), .16); }
.text-bg-success,
.badge-soft-success { color: var(--gg-success) !important; background-color: var(--gg-success-soft) !important; box-shadow: inset 0 0 0 1px rgba(var(--gg-success-rgb), .16); }
.text-bg-danger,
.badge-soft-danger { color: var(--gg-danger) !important; background-color: var(--gg-danger-soft) !important; box-shadow: inset 0 0 0 1px rgba(var(--gg-danger-rgb), .16); }
.text-bg-warning,
.badge-soft-warning { color: var(--gg-warning) !important; background-color: var(--gg-warning-soft) !important; box-shadow: inset 0 0 0 1px rgba(var(--gg-warning-rgb), .18); }
.text-bg-info,
.badge-soft-info { color: var(--gg-info) !important; background-color: var(--gg-info-soft) !important; box-shadow: inset 0 0 0 1px rgba(var(--gg-info-rgb), .16); }
.text-bg-secondary,
.text-bg-light,
.badge-soft-secondary { color: var(--gg-text-secondary) !important; background-color: var(--gg-neutral-soft) !important; box-shadow: inset 0 0 0 1px rgba(var(--gg-neutral-rgb), .16); }
.text-bg-dark { color: #fff !important; background-color: #1e293b !important; }

.badge-dot::before {
    content: "";
    width: .42rem;
    height: .42rem;
    flex-shrink: 0;
    border-radius: 50%;
    background: currentColor;
}

/* Dolu arka plan yardımcıları (ilerleme çubukları vb.) */
.bg-primary { background-color: var(--brand) !important; }
.bg-success { background-color: var(--gg-success-solid) !important; }
.bg-danger { background-color: var(--gg-danger-solid) !important; }
.bg-warning { background-color: var(--gg-warning-solid) !important; }
.bg-info { background-color: var(--gg-info-solid) !important; }
.text-primary { color: var(--brand-text) !important; }
.border-primary { border-color: var(--brand) !important; }

/* Uyarılar */
.alert {
    --bs-alert-padding-x: 1rem;
    --bs-alert-padding-y: .8rem;
    --bs-alert-margin-bottom: 1rem;
    --bs-alert-border-radius: 10px;
    --bs-alert-link-color: inherit;
    font-size: .84375rem;
    line-height: 1.5;
}
.alert .alert-link { font-weight: 600; text-decoration: underline; }
.alert-heading { color: inherit; font-size: .9rem; font-weight: 600; }
.alert-primary { --bs-alert-color: var(--brand-text); --bs-alert-bg: var(--brand-soft); --bs-alert-border-color: rgba(var(--brand-rgb), .22); }
.alert-success { --bs-alert-color: var(--gg-success); --bs-alert-bg: var(--gg-success-soft); --bs-alert-border-color: rgba(var(--gg-success-rgb), .22); }
.alert-danger { --bs-alert-color: var(--gg-danger); --bs-alert-bg: var(--gg-danger-soft); --bs-alert-border-color: rgba(var(--gg-danger-rgb), .22); }
.alert-warning { --bs-alert-color: var(--gg-warning); --bs-alert-bg: var(--gg-warning-soft); --bs-alert-border-color: rgba(var(--gg-warning-rgb), .26); }
.alert-info { --bs-alert-color: var(--gg-info); --bs-alert-bg: var(--gg-info-soft); --bs-alert-border-color: rgba(var(--gg-info-rgb), .22); }
.alert-secondary,
.alert-light { --bs-alert-color: var(--gg-text-secondary); --bs-alert-bg: var(--gg-neutral-soft); --bs-alert-border-color: rgba(var(--gg-neutral-rgb), .2); }

/* İkonlu uyarı: <div class="alert alert-warning alert-icon"><i class="bi bi-…"></i><div>…</div></div> */
.alert-icon,
.alert-validation { display: flex; align-items: flex-start; gap: .7rem; }
.alert-icon > .bi:first-child,
.alert-validation > .bi:first-child { flex-shrink: 0; margin-top: .05rem; font-size: 1.05rem; line-height: 1.3; }
.alert-validation ul { margin: .25rem 0 0; padding-left: 1.05rem; }
.alert-validation li + li { margin-top: .15rem; }
.alert-validation .alert-title { font-weight: 600; }

/* Bildirim (toast) */
.toast {
    --bs-toast-max-width: 380px;
    --bs-toast-font-size: .84375rem;
    --bs-toast-color: var(--gg-text);
    --bs-toast-bg: var(--gg-surface);
    --bs-toast-border-color: var(--gg-border);
    --bs-toast-border-radius: var(--gg-radius);
    --bs-toast-box-shadow: var(--gg-shadow-lg);
    --bs-toast-header-bg: var(--gg-surface);
    --bs-toast-header-color: var(--gg-text);
}
.toast.fade { transition: opacity .2s ease, translate .25s var(--gg-ease); }
.toast.showing { translate: 0 -8px; }

.toast-gg { position: relative; overflow: hidden; --toast-accent: var(--brand); --toast-accent-soft: var(--brand-soft); }
.toast-gg::before { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 4px; background: var(--toast-accent); }
.toast-gg .toast-inner { padding: .85rem .85rem .85rem 1.1rem; display: flex; align-items: flex-start; gap: .75rem; }
.toast-gg .toast-icon {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    color: var(--toast-accent);
    background: var(--toast-accent-soft);
    border-radius: 50%;
    font-size: 1rem;
}
.toast-gg .toast-body { min-width: 0; flex: 1 1 auto; padding: .1rem 0 0; }
.toast-gg .toast-title { margin-bottom: .1rem; color: var(--gg-text); font-size: .875rem; font-weight: 600; }
.toast-gg .toast-message { color: var(--gg-text-secondary); overflow-wrap: anywhere; }
.toast-gg .btn-close { flex-shrink: 0; margin: .1rem 0 0; padding: .4rem; font-size: .65rem; }
.toast-success { --toast-accent: var(--gg-success); --toast-accent-soft: var(--gg-success-soft); }
.toast-danger { --toast-accent: var(--gg-danger); --toast-accent-soft: var(--gg-danger-soft); }
.toast-warning { --toast-accent: var(--gg-warning); --toast-accent-soft: var(--gg-warning-soft); }
.toast-info { --toast-accent: var(--gg-info); --toast-accent-soft: var(--gg-info-soft); }

/* 10. AÇILIR MENÜ, MODAL, SEKMELER, LİSTE GRUBU, İLERLEME, SAYFALAMA
   ========================================================================== */
.dropdown-menu {
    --bs-dropdown-bg: var(--gg-surface);
    --bs-dropdown-color: var(--gg-text);
    --bs-dropdown-border-color: var(--gg-border);
    --bs-dropdown-border-radius: 10px;
    --bs-dropdown-inner-border-radius: 9px;
    --bs-dropdown-padding-x: .375rem;
    --bs-dropdown-padding-y: .375rem;
    --bs-dropdown-font-size: .84375rem;
    --bs-dropdown-box-shadow: var(--gg-shadow-lg);
    --bs-dropdown-link-color: var(--gg-text);
    --bs-dropdown-link-hover-color: var(--gg-text);
    --bs-dropdown-link-hover-bg: var(--gg-surface-muted);
    --bs-dropdown-link-active-color: var(--brand-text);
    --bs-dropdown-link-active-bg: var(--brand-soft);
    --bs-dropdown-link-disabled-color: var(--gg-muted);
    --bs-dropdown-item-padding-x: .65rem;
    --bs-dropdown-item-padding-y: .5rem;
    --bs-dropdown-item-border-radius: 6px;
    --bs-dropdown-divider-bg: var(--gg-border-soft);
    --bs-dropdown-divider-margin-y: .375rem;
    --bs-dropdown-header-color: var(--gg-muted);
    --bs-dropdown-header-padding-x: .65rem;
    --bs-dropdown-header-padding-y: .4rem;
    box-shadow: var(--bs-dropdown-box-shadow);
}
.dropdown-menu.show { animation: gg-pop .14s var(--gg-ease); }
.dropdown-item { border-radius: var(--bs-dropdown-item-border-radius); font-weight: 500; }
.dropdown-item > .bi:first-child { width: 1.1rem; color: var(--gg-muted); text-align: center; }
.dropdown-item:hover > .bi:first-child,
.dropdown-item:focus > .bi:first-child { color: var(--gg-text); }
.dropdown-item.text-danger > .bi:first-child { color: inherit; }
.dropdown-item.text-danger:hover,
.dropdown-item.text-danger:focus { color: var(--gg-danger) !important; background-color: var(--gg-danger-soft); }
.dropdown-item:focus-visible { box-shadow: inset 0 0 0 2px var(--gg-ring-color); }
.dropdown-header { font-size: .6875rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.dropdown-divider { margin-left: calc(var(--bs-dropdown-padding-x) * -1); margin-right: calc(var(--bs-dropdown-padding-x) * -1); opacity: 1; }

@keyframes gg-pop {
    from { opacity: 0; translate: 0 -4px; }
    to { opacity: 1; translate: 0 0; }
}

.modal {
    --bs-modal-bg: var(--gg-surface);
    --bs-modal-color: var(--gg-text);
    --bs-modal-border-color: var(--gg-border);
    --bs-modal-border-radius: var(--gg-radius-lg);
    --bs-modal-inner-border-radius: calc(var(--gg-radius-lg) - 1px);
    --bs-modal-box-shadow: var(--gg-shadow-lg);
    --bs-modal-padding: 1.25rem;
    --bs-modal-header-padding: 1rem 1.25rem;
    --bs-modal-header-border-color: var(--gg-border-soft);
    --bs-modal-footer-border-color: var(--gg-border-soft);
    --bs-modal-footer-gap: .5rem;
    --bs-modal-title-line-height: 1.4;
}
.modal-content { box-shadow: var(--bs-modal-box-shadow); }
.modal-title { font-size: 1rem; font-weight: 600; letter-spacing: -.01em; }
.modal-footer { padding: .85rem 1.25rem; background: var(--gg-surface-subtle); }
.modal-backdrop { --bs-backdrop-bg: #0b1120; --bs-backdrop-opacity: .55; }

.nav-pills {
    --bs-nav-link-color: var(--gg-text-secondary);
    --bs-nav-link-hover-color: var(--gg-text);
    --bs-nav-link-padding-x: .85rem;
    --bs-nav-link-padding-y: .45rem;
    --bs-nav-link-font-size: .84375rem;
    --bs-nav-link-font-weight: 500;
    --bs-nav-pills-border-radius: var(--gg-radius-sm);
    --bs-nav-pills-link-active-color: var(--brand-text);
    --bs-nav-pills-link-active-bg: var(--brand-soft);
    gap: .25rem;
}
.nav-pills .nav-link:hover:not(.active) { background: var(--gg-surface-muted); }
.nav-pills .nav-link.active { font-weight: 600; }
.nav-pills .nav-link:focus-visible { box-shadow: var(--gg-ring); }

/* Bölümlü kontrol: <ul class="nav nav-pills nav-segmented"> */
.nav-segmented { display: inline-flex; padding: 3px; gap: 2px; background: var(--gg-surface-muted); border: 1px solid var(--gg-border); border-radius: 10px; }
.nav-segmented .nav-link { --bs-nav-link-padding-y: .35rem; border-radius: 7px; }
.nav-segmented .nav-link.active { color: var(--gg-text); background: var(--gg-surface); box-shadow: var(--gg-shadow-sm); }

.nav-tabs {
    --bs-nav-tabs-border-color: var(--gg-border);
    --bs-nav-tabs-border-width: 1px;
    --bs-nav-tabs-link-active-color: var(--gg-text);
    --bs-nav-link-color: var(--gg-muted);
    --bs-nav-link-hover-color: var(--gg-text);
    --bs-nav-link-padding-x: .9rem;
    --bs-nav-link-padding-y: .65rem;
    --bs-nav-link-font-size: .84375rem;
    --bs-nav-link-font-weight: 500;
    gap: .25rem;
}
.nav-tabs .nav-link { margin-bottom: -1px; background: none; border: 0; border-bottom: 2px solid transparent; border-radius: 0; }
.nav-tabs .nav-link:hover { border-bottom-color: var(--gg-border-strong); }
.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link { color: var(--gg-text); background: none; border-bottom-color: var(--brand); font-weight: 600; }

.list-group {
    --bs-list-group-color: var(--gg-text);
    --bs-list-group-bg: var(--gg-surface);
    --bs-list-group-border-color: var(--gg-border-soft);
    --bs-list-group-border-radius: var(--gg-radius);
    --bs-list-group-item-padding-x: 1rem;
    --bs-list-group-item-padding-y: .7rem;
    --bs-list-group-action-color: var(--gg-text-secondary);
    --bs-list-group-action-hover-color: var(--gg-text);
    --bs-list-group-action-hover-bg: var(--gg-surface-hover);
    --bs-list-group-action-active-color: var(--gg-text);
    --bs-list-group-action-active-bg: var(--gg-surface-muted);
    --bs-list-group-active-color: var(--brand-text);
    --bs-list-group-active-bg: var(--brand-soft);
    --bs-list-group-active-border-color: var(--gg-border-soft);
    --bs-list-group-disabled-color: var(--gg-muted);
}
.list-group-item { font-size: .875rem; }
.list-group-item-action { font-weight: 500; }
.list-group-item-action > .bi:first-child { color: var(--gg-muted); }
.list-group-item.active { font-weight: 600; box-shadow: inset 3px 0 0 var(--brand); }
.list-group-item.active > .bi:first-child { color: var(--brand-text); }
.list-group-item-action:focus-visible { box-shadow: inset 0 0 0 2px var(--gg-ring-color); }

.progress,
.progress-stacked {
    --bs-progress-height: .5rem;
    --bs-progress-bg: var(--gg-surface-muted);
    --bs-progress-border-radius: var(--gg-radius-pill);
    --bs-progress-bar-bg: var(--brand);
    --bs-progress-box-shadow: none;
}
.progress-bar { border-radius: inherit; transition: width .6s var(--gg-ease); }

.pagination {
    --bs-pagination-padding-x: .6rem;
    --bs-pagination-padding-y: .375rem;
    --bs-pagination-font-size: .8125rem;
    --bs-pagination-color: var(--gg-text-secondary);
    --bs-pagination-bg: var(--gg-surface);
    --bs-pagination-border-color: var(--gg-border);
    --bs-pagination-border-radius: var(--gg-radius-sm);
    --bs-pagination-hover-color: var(--gg-text);
    --bs-pagination-hover-bg: var(--gg-surface-muted);
    --bs-pagination-hover-border-color: var(--gg-border-strong);
    --bs-pagination-focus-color: var(--gg-text);
    --bs-pagination-focus-bg: var(--gg-surface-muted);
    --bs-pagination-focus-box-shadow: var(--gg-ring);
    --bs-pagination-active-color: var(--brand-contrast);
    --bs-pagination-active-bg: var(--brand);
    --bs-pagination-active-border-color: var(--brand);
    --bs-pagination-disabled-color: var(--gg-muted);
    --bs-pagination-disabled-bg: var(--gg-surface-subtle);
    --bs-pagination-disabled-border-color: var(--gg-border);
    flex-wrap: wrap;
    gap: .25rem;
    margin-bottom: 0;
}
.page-link {
    min-width: 2.125rem;
    height: 2.125rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--bs-pagination-border-radius);
    font-weight: 500;
    font-variant-numeric: tabular-nums;
    line-height: 1;
}
.page-item:not(:first-child) .page-link { margin-left: 0; }
.page-item.active .page-link { font-weight: 600; box-shadow: 0 1px 2px rgba(var(--brand-rgb), .3); }
nav .d-sm-flex p.small { margin-bottom: 0; }
nav > .d-sm-flex.justify-content-sm-between { gap: 1rem; }

.btn-close:focus { box-shadow: var(--gg-ring); }
.tooltip { --bs-tooltip-bg: #0f172a; --bs-tooltip-border-radius: 6px; --bs-tooltip-font-size: .75rem; }

/* 11. SAYFA KALIPLARI
   ========================================================================== */
/* Sayfa başlığı: başlık + açıklama solda, eylemler sağda; mobilde alt alta */
.page-header {
    margin-bottom: 1.25rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .85rem 1rem;
}
.page-header-text { min-width: 0; flex: 1 1 18rem; }
.page-title { margin: 0; color: var(--gg-text); font-size: 1.25rem; font-weight: 600; letter-spacing: -.022em; line-height: 1.3; }
.page-subtitle { margin: .25rem 0 0; color: var(--gg-muted); font-size: .875rem; }
.page-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.page-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin-top: .5rem; }

/* Bölüm başlığı */
.section-title {
    margin: 0 0 .85rem;
    display: flex;
    align-items: center;
    gap: .5rem;
    color: var(--gg-text);
    font-size: .9375rem;
    font-weight: 600;
    letter-spacing: -.01em;
}
.section-title > .bi { color: var(--brand-text); }
.section-subtitle { margin: -.5rem 0 1rem; color: var(--gg-muted); font-size: .8125rem; }

/* Kart başlık satırı */
.card-title-row {
    margin-bottom: 1rem;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: .5rem 1rem;
}
.card-title-row > div:first-child { min-width: 0; }
.card-title-row .card-title { margin: 0; }
.card-title-row .card-subtitle { margin-top: .2rem; }
.card-tools { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.card-header.card-title-row { margin-bottom: 0; align-items: center; }

/* Filtre çubuğu */
.filter-bar {
    margin-bottom: 1rem;
    padding: 1rem 1.25rem;
    background: var(--gg-surface);
    border: 1px solid var(--gg-border);
    border-radius: var(--gg-radius);
    box-shadow: var(--gg-shadow-sm);
}
.filter-bar.card { padding: 0; }
.filter-bar > .card-body { padding: 1rem 1.25rem; }
.filter-bar .form-label { margin-bottom: .3rem; color: var(--gg-muted); font-size: .75rem; font-weight: 500; }
.filter-bar-title { margin-bottom: .75rem; display: flex; align-items: center; gap: .45rem; color: var(--gg-text-secondary); font-size: .8125rem; font-weight: 600; }
.filter-bar-title > .bi { color: var(--gg-muted); }
.filter-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }

/* Tablo kartı */
.table-card { overflow: hidden; }
.table-card-header {
    padding: 1rem 1.25rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem 1rem;
    border-bottom: 1px solid var(--gg-border);
}
.table-card-header .card-title { margin: 0; }
.table-card-header .card-subtitle { margin-top: .15rem; }
.table-card-tools { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.table-card .card-footer { background: var(--gg-surface); border-top-color: var(--gg-border-soft); }

/* Form bölümü */
.form-section {
    margin-bottom: 1.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--gg-border-soft);
}
.form-section:last-child,
.form-section.is-last { margin-bottom: 0; padding-bottom: 0; border-bottom: 0; }
.form-section-header { margin-bottom: 1rem; }
.form-section-title {
    margin: 0;
    display: flex;
    align-items: center;
    gap: .5rem;
    color: var(--gg-text);
    font-size: .9375rem;
    font-weight: 600;
    letter-spacing: -.01em;
}
.form-section-title > .bi { color: var(--brand-text); }
.form-section-text { margin: .25rem 0 0; color: var(--gg-muted); font-size: .8125rem; }

@media (min-width: 992px) {
    .form-section.is-split {
        display: grid;
        grid-template-columns: minmax(200px, 280px) minmax(0, 1fr);
        gap: 2rem;
    }
    .form-section.is-split > .form-section-header { margin-bottom: 0; }
}

.form-actions {
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: .5rem;
    border-top: 1px solid var(--gg-border-soft);
}
.form-actions.is-start { justify-content: flex-start; }
.card-footer.form-actions { margin-top: 0; padding: .85rem 1.25rem; border-top-color: var(--gg-border); }

/* 12. TUTAR, AVATAR, BOŞ DURUM, DETAY LİSTESİ, ADIMLAR
   ========================================================================== */
.amount { font-weight: 600; letter-spacing: -.01em; white-space: nowrap; }
.amount-in { color: var(--gg-success) !important; }
.amount-out { color: var(--gg-danger) !important; }
.amount-muted { color: var(--gg-muted) !important; }
.amount-lg { font-size: 1.5rem; font-weight: 700; letter-spacing: -.022em; }

.avatar {
    --avatar-size: 36px;
    width: var(--avatar-size);
    height: var(--avatar-size);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    overflow: hidden;
    color: var(--brand-text);
    background: var(--brand-soft);
    border-radius: 50%;
    font-size: calc(var(--avatar-size) * .38);
    font-weight: 600;
    letter-spacing: .02em;
    line-height: 1;
    text-transform: uppercase;
    user-select: none;
}
.avatar img { width: 100%; height: 100%; object-fit: cover; }
.avatar-xs { --avatar-size: 24px; }
.avatar-sm { --avatar-size: 28px; }
.avatar-lg { --avatar-size: 48px; }
.avatar-xl { --avatar-size: 64px; }
.avatar-success { color: var(--gg-success); background: var(--gg-success-soft); }
.avatar-danger { color: var(--gg-danger); background: var(--gg-danger-soft); }
.avatar-warning { color: var(--gg-warning); background: var(--gg-warning-soft); }
.avatar-info { color: var(--gg-info); background: var(--gg-info-soft); }
.avatar-neutral { color: var(--gg-text-secondary); background: var(--gg-neutral-soft); }

/* Boş durum: eski kullanım (.empty-state > i) ve yeni kullanım (.empty-state-icon) birlikte desteklenir */
.empty-state {
    padding: 3rem 1rem;
    color: var(--gg-muted);
    font-size: .875rem;
    text-align: center;
}
.empty-state > i,
.empty-state-icon {
    width: 56px;
    height: 56px;
    margin: 0 auto .9rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--brand-text);
    background: var(--brand-soft);
    border-radius: 50%;
    box-shadow: 0 0 0 6px rgba(var(--brand-rgb), .05);
    font-size: 1.5rem;
    line-height: 1;
}
.empty-state-icon > .bi { line-height: 1; }
.empty-state-title { margin: 0 0 .3rem; color: var(--gg-text); font-size: .9375rem; font-weight: 600; }
.empty-state-text { max-width: 26rem; margin: 0 auto; color: var(--gg-muted); font-size: .84375rem; }
.empty-state .btn { margin-top: 1rem; }
.empty-state-sm { padding: 1.75rem 1rem; }
.empty-state-sm > i,
.empty-state-sm .empty-state-icon { width: 44px; height: 44px; font-size: 1.2rem; }

/* Detay listesi: <dl class="detail-list"><div class="detail-row"><dt>…</dt><dd>…</dd></div></dl> */
.detail-list { margin: 0; display: grid; }
.detail-list > div,
.detail-row {
    padding: .7rem 0;
    display: grid;
    grid-template-columns: minmax(7.5rem, 36%) minmax(0, 1fr);
    gap: .2rem 1rem;
    align-items: baseline;
    border-bottom: 1px solid var(--gg-border-soft);
}
.detail-list > div:first-child { padding-top: 0; }
.detail-list > div:last-child { padding-bottom: 0; border-bottom: 0; }
.detail-list dt { margin: 0; color: var(--gg-muted); font-size: .8125rem; font-weight: 500; }
.detail-list dd { margin: 0; min-width: 0; color: var(--gg-text); font-weight: 500; overflow-wrap: anywhere; }
.detail-list.is-stacked > div { grid-template-columns: 1fr; }
dl.row > dt { font-weight: 500; }

/* Adım göstergesi (kurulum sihirbazı vb.) */
.stepper { margin: 0; padding: 0; display: grid; grid-auto-columns: minmax(0, 1fr); grid-auto-flow: column; list-style: none; }
.stepper-item { position: relative; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: .45rem; text-align: center; }
.stepper-item::before {
    content: "";
    position: absolute;
    top: 15px;
    right: 50%;
    left: -50%;
    height: 2px;
    background: var(--gg-border);
}
.stepper-item:first-child::before { display: none; }
.stepper-item.is-done::before,
.stepper-item.is-active::before { background: var(--brand); }
.stepper-marker {
    position: relative;
    z-index: 1;
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    color: var(--gg-muted);
    background: var(--gg-surface);
    border: 2px solid var(--gg-border-strong);
    border-radius: 50%;
    font-size: .78rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.stepper-item.is-active .stepper-marker { color: var(--brand-contrast); background: var(--brand); border-color: var(--brand); box-shadow: 0 0 0 4px var(--brand-soft); }
.stepper-item.is-done .stepper-marker { color: var(--brand-text); background: var(--brand-soft); border-color: var(--brand); }
.stepper-label { max-width: 100%; padding: 0 .25rem; overflow: hidden; color: var(--gg-muted); font-size: .75rem; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.stepper-item.is-active .stepper-label { color: var(--gg-text); font-weight: 600; }
.stepper-item.is-done .stepper-label { color: var(--gg-text-secondary); }

/* Eski adım hapları (install düzeni) */
.steps { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .4rem; }
.step-pill {
    min-width: 0;
    padding: .5rem .35rem;
    overflow: hidden;
    color: var(--gg-muted);
    background: var(--gg-surface-muted);
    border: 1px solid transparent;
    border-radius: var(--gg-radius-sm);
    font-size: .75rem;
    font-weight: 500;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.step-pill.active { color: var(--brand-contrast); background: var(--brand); border-color: var(--brand); font-weight: 600; }
.step-pill.done { color: var(--gg-success); background: var(--gg-success-soft); border-color: rgba(var(--gg-success-rgb), .2); }

/* 13. ANA SAYFA VE AYAR BİLEŞENLERİ
   ========================================================================== */
.dashboard-toolbar h5 { color: var(--gg-text); font-size: 1.25rem; font-weight: 600; letter-spacing: -.022em; }
.dashboard-toolbar p { font-size: .875rem; }
.widget-heading h6 { color: var(--gg-text); font-size: .9375rem; font-weight: 600; letter-spacing: -.01em; }
.widget-subtitle { color: var(--gg-muted); font-size: .8125rem; }
.dashboard-chart { height: 290px; }
.chart-wrap { position: relative; width: 100%; }
.chart-wrap canvas { max-height: 100%; }
.legend-dot { width: .55rem; height: .55rem; display: inline-block; flex-shrink: 0; border-radius: 50%; background: currentColor; }

.account-balance-row { padding: .8rem 0; border-bottom: 1px solid var(--gg-border-soft); }
.account-balance-row:first-of-type { padding-top: .25rem; }
.account-balance-row:last-child { padding-bottom: 0; border-bottom: 0; }
.account-balance-row .progress { --bs-progress-height: 6px; height: 6px; }

.highlight-list { display: grid; gap: 0; }
.highlight-row {
    min-height: 64px;
    padding: .75rem 0;
    display: flex;
    align-items: center;
    gap: .8rem;
    border-bottom: 1px solid var(--gg-border-soft);
}
.highlight-row:first-child { padding-top: .25rem; }
.highlight-row:last-child { padding-bottom: 0; border-bottom: 0; }
.highlight-row > i {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    color: var(--brand-text);
    background: var(--brand-soft);
    border-radius: 10px;
}
.highlight-count {
    min-width: 32px;
    height: 32px;
    padding: 0 .5rem;
    display: grid;
    place-items: center;
    color: var(--brand-text);
    background: var(--brand-soft);
    border-radius: var(--gg-radius-pill);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.settings-switch-list { overflow: hidden; border: 1px solid var(--gg-border); border-radius: var(--gg-radius); }
.settings-switch-row {
    min-height: 68px;
    padding: .85rem 1.1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    background: var(--gg-surface);
    border-bottom: 1px solid var(--gg-border-soft);
    transition: background-color .12s ease;
}
.settings-switch-row:hover { background: var(--gg-surface-hover); }
.settings-switch-row:last-child { border-bottom: 0; }
.settings-switch-row .form-switch { margin: 0; padding-left: 2.85em; }
.settings-switch-row .form-check-input { width: 2.4em; height: 1.3em; cursor: pointer; }

/* 14. KİMLİK DOĞRULAMA SAYFALARI
   ========================================================================== */
.auth-body { background: var(--gg-body-bg); }

.auth-split { min-height: 100vh; min-height: 100dvh; display: grid; grid-template-columns: minmax(0, 1fr); }

.auth-aside {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 2.5rem 3rem;
    flex-direction: column;
    justify-content: space-between;
    gap: 2.5rem;
    color: #fff;
    background:
        linear-gradient(165deg, rgba(8, 13, 25, .06) 0%, rgba(8, 13, 25, .5) 100%),
        linear-gradient(135deg, var(--brand) 0%, var(--brand-700) 100%);
    background-color: var(--brand-700);
}

.auth-aside::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-image:
        linear-gradient(rgba(255, 255, 255, .07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .07) 1px, transparent 1px);
    background-size: 36px 36px;
    -webkit-mask-image: radial-gradient(ellipse 70% 60% at 30% 35%, #000 10%, transparent 75%);
    mask-image: radial-gradient(ellipse 70% 60% at 30% 35%, #000 10%, transparent 75%);
}

.auth-aside::after {
    content: "";
    position: absolute;
    top: -18%;
    right: -22%;
    z-index: -1;
    width: 70%;
    aspect-ratio: 1;
    background: radial-gradient(circle, rgba(255, 255, 255, .22) 0%, rgba(255, 255, 255, 0) 65%);
    border-radius: 50%;
}

.auth-shape { position: absolute; z-index: -1; border: 1px solid rgba(255, 255, 255, .16); border-radius: 50%; pointer-events: none; }
.auth-shape-1 { right: -120px; bottom: -120px; width: 380px; height: 380px; }
.auth-shape-2 { right: -40px; bottom: -40px; width: 220px; height: 220px; background: rgba(255, 255, 255, .05); }
.auth-shape-3 { top: 38%; left: -70px; width: 140px; height: 140px; border-style: dashed; border-color: rgba(255, 255, 255, .14); }

.auth-aside-brand { display: flex; align-items: center; gap: .75rem; color: #fff; font-size: 1.05rem; font-weight: 600; letter-spacing: -.01em; }
.auth-aside-brand .brand-badge { width: 40px; height: 40px; color: #fff; background: rgba(255, 255, 255, .16); border: 1px solid rgba(255, 255, 255, .28); box-shadow: none; font-size: 1.15rem; }
.auth-aside-logo { padding: .45rem .7rem; display: inline-flex; background: #fff; border-radius: 10px; box-shadow: 0 6px 18px -6px rgba(0, 0, 0, .35); }
.auth-aside-logo img { max-width: 170px; max-height: 32px; object-fit: contain; }

.auth-aside-body { max-width: 30rem; }
.auth-eyebrow {
    margin-bottom: 1rem;
    padding: .3rem .7rem;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    color: #fff;
    background: rgba(255, 255, 255, .14);
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: var(--gg-radius-pill);
    font-size: .75rem;
    font-weight: 600;
}
.auth-tagline { margin: 0 0 .9rem; color: #fff; font-size: 2rem; font-weight: 700; letter-spacing: -.03em; line-height: 1.18; }
.auth-lead { margin: 0 0 2rem; color: rgba(255, 255, 255, .88); font-size: .95rem; line-height: 1.6; }

.auth-features { margin: 0; padding: 0; display: grid; gap: 1.1rem; list-style: none; }
.auth-features li { display: flex; align-items: flex-start; gap: .85rem; }
.auth-feature-icon {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    color: #fff;
    background: rgba(255, 255, 255, .14);
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 10px;
    font-size: 1.05rem;
}
.auth-feature-title { color: #fff; font-size: .9rem; font-weight: 600; }
.auth-feature-text { color: rgba(255, 255, 255, .86); font-size: .8125rem; line-height: 1.5; }
.auth-aside-footer { color: rgba(255, 255, 255, .84); font-size: .78rem; }

.auth-main { min-width: 0; padding: 2rem 1rem; display: flex; align-items: center; justify-content: center; }
.auth-shell { width: 100%; max-width: 420px; }

.auth-brand { margin-bottom: 1.5rem; display: flex; align-items: center; justify-content: center; gap: .75rem; }
.auth-brand img { max-width: 180px; max-height: 40px; object-fit: contain; }
.auth-brand-mark {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    color: var(--brand-contrast);
    background: linear-gradient(140deg, var(--brand) 0%, var(--brand-700) 100%);
    border-radius: 12px;
    box-shadow: 0 8px 18px -6px rgba(var(--brand-rgb), .55);
    font-size: 1.2rem;
}
.auth-brand-name { color: var(--gg-text); font-size: 1.05rem; font-weight: 700; letter-spacing: -.015em; line-height: 1.25; }
.auth-brand-meta { color: var(--gg-muted); font-size: .75rem; }

.auth-card {
    padding: 1.75rem;
    background: var(--gg-surface);
    border: 1px solid var(--gg-border);
    border-radius: var(--gg-radius-lg);
    box-shadow: var(--gg-shadow-md);
}
.auth-title { margin: 0 0 .35rem; color: var(--gg-text); font-size: 1.5rem; font-weight: 700; letter-spacing: -.028em; line-height: 1.25; }
.auth-description { margin: 0 0 1.5rem; color: var(--gg-muted); font-size: .875rem; }
.auth-card .form-control { min-height: 44px; }
.auth-card .form-control-lg { min-height: 52px; }
.auth-card .btn-brand { --bs-btn-padding-y: .6875rem; --bs-btn-font-weight: 600; }
.auth-card .alert { font-size: .8125rem; }
.auth-footer { margin: 1.75rem 0 0; color: var(--gg-muted); font-size: .75rem; text-align: center; }

.password-field { position: relative; }
.password-field .form-control { padding-right: 2.85rem; }
.password-field input::-ms-reveal,
.password-field input::-ms-clear { display: none; }
.password-toggle {
    position: absolute;
    top: 50%;
    right: .3rem;
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    color: var(--gg-muted);
    background: transparent;
    border: 0;
    border-radius: 7px;
    transform: translateY(-50%);
    transition: color .15s ease, background-color .15s ease;
}
.password-toggle:hover { color: var(--gg-text); background: var(--gg-surface-muted); }
.password-toggle:focus-visible { outline: 0; box-shadow: var(--gg-ring); }

.otp-input {
    padding-left: calc(1rem + .5em);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    letter-spacing: .5em;
    text-align: center;
}

@media (min-width: 992px) {
    .auth-split { grid-template-columns: minmax(440px, 46%) minmax(0, 1fr); }
    .auth-main { padding: 3rem; background: var(--gg-surface); }
    .auth-card { padding: 0; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
    .auth-title { font-size: 1.75rem; }
    .auth-description { margin-bottom: 2rem; }
}

@media (min-width: 1400px) {
    .auth-aside { padding: 3rem 4rem; }
    .auth-tagline { font-size: 2.35rem; }
}

@media (max-width: 575.98px) {
    .auth-main { padding: 1.5rem 1rem; align-items: flex-start; }
    .auth-shell { margin-top: 4vh; }
    .auth-card { padding: 1.35rem; }
    .auth-title { font-size: 1.3rem; }
}

/* 15. KURULUM / HATA / KARŞILAMA SAYFALARI
   ========================================================================== */
.gg-center-page {
    min-height: 100vh;
    min-height: 100dvh;
    padding: 2rem 1rem;
    display: grid;
    place-items: center;
    background:
        radial-gradient(60% 50% at 50% 0%, rgba(var(--brand-rgb), .10) 0%, transparent 70%),
        var(--gg-body-bg);
}

.install-shell { width: 100%; max-width: 880px; margin: 2.5rem auto; }
.install-card { overflow: hidden; background: var(--gg-surface); border: 1px solid var(--gg-border); border-radius: var(--gg-radius-lg); box-shadow: var(--gg-shadow-md); }
.install-header { background: var(--gg-surface); border-bottom: 1px solid var(--gg-border); }
.req-row { padding: .65rem .9rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--gg-border-soft); font-size: .875rem; }
.req-row:last-child { border-bottom: 0; }
.brand-logo {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    color: var(--brand-contrast);
    background: linear-gradient(140deg, var(--brand) 0%, var(--brand-700) 100%);
    border-radius: 12px;
    box-shadow: 0 8px 18px -6px rgba(var(--brand-rgb), .55);
    font-size: 1.15rem;
}

.error-panel {
    width: 100%;
    max-width: 520px;
    padding: 2.5rem 2rem;
    background: var(--gg-surface);
    border: 1px solid var(--gg-border);
    border-radius: var(--gg-radius-lg);
    box-shadow: var(--gg-shadow-md);
    text-align: center;
}
.error-code { color: var(--brand); font-size: 3.5rem; font-weight: 700; letter-spacing: -.04em; line-height: 1; font-variant-numeric: tabular-nums; }
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
    .error-code {
        color: transparent;
        background: linear-gradient(135deg, var(--brand) 0%, var(--brand-700) 100%);
        -webkit-background-clip: text;
        background-clip: text;
    }
}

.welcome-panel {
    width: min(100% - 2rem, 480px);
    padding: 2rem;
    background: var(--gg-surface);
    border: 1px solid var(--gg-border);
    border-radius: var(--gg-radius-lg);
    box-shadow: var(--gg-shadow-md);
}
.welcome-mark {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    color: var(--brand-contrast);
    background: linear-gradient(140deg, var(--brand) 0%, var(--brand-700) 100%);
    border-radius: 12px;
    font-size: 1.15rem;
}

/* 16. YARDIMCILAR, KOYU TEMA DÜZELTMELERİ, DUYARLI KURALLAR
   ========================================================================== */
.text-brand { color: var(--brand-text) !important; }
.bg-brand-soft { background-color: var(--brand-soft) !important; }
.bg-surface { background-color: var(--gg-surface) !important; }
.bg-surface-subtle { background-color: var(--gg-surface-subtle) !important; }
.border-soft { border-color: var(--gg-border-soft) !important; }
.min-w-0 { min-width: 0 !important; }
.text-secondary-emphasis { color: var(--gg-text-secondary) !important; }
.fw-medium { font-weight: 500 !important; }

[data-bs-theme="dark"] .bg-white,
[data-bs-theme="dark"] .bg-body { background-color: var(--gg-surface) !important; }
[data-bs-theme="dark"] .bg-light { background-color: var(--gg-surface-subtle) !important; }
[data-bs-theme="dark"] .text-dark { color: var(--gg-text) !important; }
[data-bs-theme="dark"] .text-bg-dark { color: var(--gg-text) !important; background-color: var(--gg-surface-muted) !important; }
[data-bs-theme="dark"] .tooltip { --bs-tooltip-bg: #e7ebf3; --bs-tooltip-color: #0f172a; }

/* Kenar çubuğu arka planı (mobil) */
.sidebar-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1035;
    visibility: hidden;
    opacity: 0;
    background: rgba(2, 6, 23, .55);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
    transition: opacity .2s ease, visibility 0s linear .2s;
}
.sidebar-backdrop.show { visibility: visible; opacity: 1; transition: opacity .2s ease; }

/* Sağ menü yerleşimi (Ayarlar > Tema > Menü Konumu = Sağ) */
.layout-right .sidebar { right: 0; left: auto; border-right: 0; border-left: 1px solid var(--gg-sidebar-border); }
.layout-right .content { margin-right: var(--gg-sidebar-w); margin-left: 0; }

@media (min-width: 992px) {
    .sidebar-backdrop { display: none !important; }
}

@media (max-width: 991.98px) {
    .sidebar {
        visibility: hidden;
        transform: translateX(-100%);
        box-shadow: none;
        transition: transform .25s var(--gg-ease), visibility 0s linear .25s, box-shadow .25s ease;
    }
    .sidebar.show {
        visibility: visible;
        transform: translateX(0);
        box-shadow: var(--gg-shadow-lg);
        transition: transform .25s var(--gg-ease), box-shadow .25s ease;
    }
    .content { margin-left: 0; }
    .layout-right .sidebar { transform: translateX(100%); }
    .layout-right .sidebar.show { transform: translateX(0); }
    .layout-right .content { margin-right: 0; }
    body.sidebar-open { overflow: hidden; }
    .topbar { padding: .5rem 1.25rem; }
    .app-main { padding: 1.25rem 1.25rem 2rem; }
}

@media (max-width: 767.98px) {
    .btn-quick { width: 32px; padding-right: 0; padding-left: 0; }
    .btn-quick .btn-quick-label { display: none; }
    .topbar-divider { display: none; }
    .dashboard-chart { height: 250px; }
    .detail-list > div,
    .detail-row { grid-template-columns: minmax(6.5rem, 40%) minmax(0, 1fr); }
}

@media (max-width: 575.98px) {
    :root { --gg-topbar-h: 58px; }
    .topbar { padding: .45rem 1rem; gap: .5rem; }
    .topbar-start { gap: .5rem; }
    .topbar-title,
    .topbar h6 { font-size: .9375rem; }
    .topbar-subtitle { display: none; }
    .topbar-actions { gap: .35rem; }
    .app-main { padding: 1rem 1rem 1.75rem; }
    .card-body { padding: 1rem; }
    .card-header,
    .card-footer,
    .table-card-header,
    .filter-bar > .card-body { padding-left: 1rem; padding-right: 1rem; }
    .filter-bar { padding: .9rem 1rem; }
    .card > .table-responsive > .table > :not(caption) > tr > :first-child,
    .stat-card > .table-responsive > .table > :not(caption) > tr > :first-child,
    .table-card .table > :not(caption) > tr > :first-child { padding-left: 1rem; }
    .card > .table-responsive > .table > :not(caption) > tr > :last-child,
    .stat-card > .table-responsive > .table > :not(caption) > tr > :last-child,
    .table-card .table > :not(caption) > tr > :last-child { padding-right: 1rem; }
    .page-header { margin-bottom: 1rem; }
    .page-title { font-size: 1.125rem; }
    .page-actions { width: 100%; }
    .page-actions > .btn { flex: 1 1 auto; }
    .stat-icon { width: 36px; height: 36px; border-radius: 9px; font-size: 1rem; }
    .stat-value { font-size: 1.05rem; }
    .stat-label { font-size: .75rem; }
    .summary-card .card-body { gap: .6rem !important; padding: .85rem .75rem; }
    .summary-card::before { left: .75rem; }
    .detail-list > div,
    .detail-row { grid-template-columns: minmax(0, 1fr); gap: .1rem; }
    .stepper-item:not(.is-active) .stepper-label { display: none; }
    .stepper-item.is-active .stepper-label { white-space: normal; }
    .steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .step-pill { font-size: .7rem; }
    .install-shell { margin: 1rem auto; }
    .error-panel { padding: 2rem 1.25rem; }
    .toast-container { right: 0; left: 0; }
    .toast-container .toast { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        transition-delay: 0s !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

@media print {
    .sidebar,
    .topbar,
    .sidebar-backdrop,
    .toast-container { display: none !important; }
    .content,
    .layout-right .content { margin: 0 !important; }
    .app-main { padding: 0 !important; max-width: none; }
    .card,
    .stat-card { box-shadow: none !important; break-inside: avoid; }
}
