:root,
:root[data-tema="light"] {
    --gt-primary: #6366f1;
    --gt-primary-dark: #4f46e5;
    --gt-primary-light: #eef2ff;
    --gt-accent: #ec4899;
    --gt-bg: #f8fafc;
    --gt-surface: #ffffff;
    --gt-border: #e2e8f0;
    --gt-text: #1e293b;
    --gt-text-muted: #64748b;

    --gt-bekliyor: #f59e0b;
    --gt-bekliyor-bg: #fef3c7;
    --gt-tamamlandi: #10b981;
    --gt-tamamlandi-bg: #d1fae5;
    --gt-iptal: #94a3b8;
    --gt-iptal-bg: #f1f5f9;

    --bs-primary: var(--gt-primary);
    --bs-primary-rgb: 99, 102, 241;

    color-scheme: light;
}

/* Karanlık tema — Notion/Linear ilham — koyu mavi-gri taban (yüksek kontrast) */
:root[data-tema="dark"] {
    --gt-primary: #a5b4fc;          /* daha açık indigo, daha çarpıcı */
    --gt-primary-dark: #818cf8;
    --gt-primary-light: rgba(165, 180, 252, 0.18);
    --gt-accent: #f472b6;
    --gt-bg: #0a0f1c;               /* en koyu — gerçek "page" arkaplan */
    --gt-surface: #161f33;          /* kartlar — daha açık ki belirgin olsun */
    --gt-border: #334155;           /* daha açık border — kartlar daha belirgin */
    --gt-text: #f8fafc;             /* neredeyse beyaz */
    --gt-text-muted: #cbd5e1;       /* daha parlak muted, kontrast yüksek */

    --gt-bekliyor: #fbbf24;
    --gt-bekliyor-bg: rgba(251, 191, 36, 0.15);
    --gt-tamamlandi: #34d399;
    --gt-tamamlandi-bg: rgba(52, 211, 153, 0.15);
    --gt-iptal: #94a3b8;
    --gt-iptal-bg: rgba(148, 163, 184, 0.15);

    --bs-primary: var(--gt-primary);
    --bs-primary-rgb: 129, 140, 248;

    color-scheme: dark;
}

html, body {
    height: 100%;
}

/* ===== Dark mode genel override'ları ===== */
:root[data-tema="dark"] body { background-color: var(--gt-bg); color: var(--gt-text); }
:root[data-tema="dark"] .card { background-color: var(--gt-surface); border-color: var(--gt-border); color: var(--gt-text); }
:root[data-tema="dark"] .card-header { background-color: var(--gt-surface); border-bottom-color: var(--gt-border); color: var(--gt-text); }
:root[data-tema="dark"] .form-control,
:root[data-tema="dark"] .form-select,
:root[data-tema="dark"] .input-group-text {
    background-color: var(--gt-bg);
    border-color: var(--gt-border);
    color: var(--gt-text);
}
:root[data-tema="dark"] .form-control::placeholder { color: var(--gt-text-muted); }
:root[data-tema="dark"] .form-control:focus,
:root[data-tema="dark"] .form-select:focus { background-color: var(--gt-surface); color: var(--gt-text); }
:root[data-tema="dark"] .form-label { color: var(--gt-text); }
:root[data-tema="dark"] .input-group-text { background-color: var(--gt-surface) !important; }
:root[data-tema="dark"] .table { --bs-table-color: var(--gt-text); --bs-table-bg: transparent; color: var(--gt-text); }
:root[data-tema="dark"] .table > thead { color: var(--gt-text-muted); }
:root[data-tema="dark"] .table > thead > tr > th { border-bottom-color: var(--gt-border); }
:root[data-tema="dark"] .table > tbody > tr > td { border-color: var(--gt-border); }
:root[data-tema="dark"] .table-hover { --bs-table-hover-bg: rgba(129, 140, 248, 0.08); --bs-table-hover-color: var(--gt-text); }
:root[data-tema="dark"] .btn-outline-secondary { color: var(--gt-text-muted); border-color: var(--gt-border); }
:root[data-tema="dark"] .btn-outline-secondary:hover { background-color: var(--gt-surface); color: var(--gt-text); }
:root[data-tema="dark"] .btn-outline-primary { color: var(--gt-primary); }
:root[data-tema="dark"] .btn-outline-danger { color: #fca5a5; border-color: rgba(252, 165, 165, 0.4); }
:root[data-tema="dark"] .btn-outline-danger:hover { background-color: #dc2626; color: white; }
:root[data-tema="dark"] .alert { color: var(--gt-text); }
:root[data-tema="dark"] .alert-success { background-color: rgba(52, 211, 153, 0.12); border-color: rgba(52, 211, 153, 0.3); color: #6ee7b7; }
:root[data-tema="dark"] .alert-danger { background-color: rgba(239, 68, 68, 0.12); border-color: rgba(239, 68, 68, 0.3); color: #fca5a5; }
:root[data-tema="dark"] .alert-info { background-color: rgba(129, 140, 248, 0.12); border-color: rgba(129, 140, 248, 0.3); color: #a5b4fc; }
:root[data-tema="dark"] .text-muted { color: var(--gt-text-muted) !important; }
:root[data-tema="dark"] .bg-light { background-color: var(--gt-bg) !important; color: var(--gt-text); }
:root[data-tema="dark"] .badge.bg-light.text-dark { color: var(--gt-text) !important; border-color: var(--gt-border) !important; }
:root[data-tema="dark"] .list-group-item { background-color: transparent; border-color: var(--gt-border); color: var(--gt-text); }
:root[data-tema="dark"] .bg-body-tertiary { background-color: var(--gt-bg) !important; color: var(--gt-text); }
:root[data-tema="dark"] .alert-warning { background-color: rgba(251, 191, 36, 0.12); border-color: rgba(251, 191, 36, 0.3); color: #fcd34d; }
:root[data-tema="dark"] .alert-primary { background-color: rgba(129, 140, 248, 0.12); border-color: rgba(129, 140, 248, 0.3); color: #a5b4fc; }
:root[data-tema="dark"] .border { border-color: var(--gt-border) !important; }
:root[data-tema="dark"] hr { border-color: var(--gt-border); }
:root[data-tema="dark"] code { color: var(--gt-text); background-color: var(--gt-bg); padding: 2px 6px; border-radius: 4px; }
:root[data-tema="dark"] .empty-state .empty-icon { color: var(--gt-border); }
:root[data-tema="dark"] .nav-pills { background-color: var(--gt-surface); border-color: var(--gt-border); }
:root[data-tema="dark"] .nav-pills .nav-link { color: var(--gt-text-muted); }
:root[data-tema="dark"] .nav-pills .nav-link:not(.active):hover { background-color: rgba(129, 140, 248, 0.1); color: var(--gt-primary); }
:root[data-tema="dark"] .footer { background-color: var(--gt-surface); border-top-color: var(--gt-border); color: var(--gt-text-muted); }
:root[data-tema="dark"] .auth-card { background-color: var(--gt-surface); border-color: var(--gt-border); }
:root[data-tema="dark"] .renk-paleti,
:root[data-tema="dark"] .ikon-paleti { background-color: var(--gt-bg); border-color: var(--gt-border); }
:root[data-tema="dark"] .ikon-secenek { background-color: var(--gt-surface); color: var(--gt-text); }
:root[data-tema="dark"] .ikon-secenek:hover { border-color: var(--gt-primary); }
:root[data-tema="dark"] .kategori-daha-buton { background-color: var(--gt-surface); border-color: var(--gt-border); color: var(--gt-text-muted); }
:root[data-tema="dark"] .kategori-dropdown-menu { background-color: var(--gt-surface); border-color: var(--gt-border); }
:root[data-tema="dark"] .kategori-dropdown-item { color: var(--gt-text); }
:root[data-tema="dark"] .kategori-dropdown-item:hover { background-color: rgba(129, 140, 248, 0.1); }
:root[data-tema="dark"] .kategori-dropdown-baslik { color: var(--gt-text-muted); border-bottom-color: var(--gt-border); }
:root[data-tema="dark"] .kategori-chip-bos-stil { background-color: rgba(148, 163, 184, 0.15) !important; color: var(--gt-text-muted) !important; }
:root[data-tema="dark"] .arama-kutu { background-color: var(--gt-surface); border-color: var(--gt-border); }
:root[data-tema="dark"] .arama-kutu:hover { background-color: var(--gt-bg); }
:root[data-tema="dark"] .arama-kutu:focus-within { background-color: var(--gt-bg); }
:root[data-tema="dark"] .arama-input { color: var(--gt-text); }
:root[data-tema="dark"] .arama-kisayol { background-color: var(--gt-bg); border-color: var(--gt-border); color: var(--gt-text-muted); }
:root[data-tema="dark"] .fc-day-today { background: rgba(129, 140, 248, 0.1) !important; }
:root[data-tema="dark"] .fc-scrollgrid,
:root[data-tema="dark"] .fc-scrollgrid td,
:root[data-tema="dark"] .fc-scrollgrid th { border-color: var(--gt-border) !important; }
:root[data-tema="dark"] .fc-col-header { background: linear-gradient(180deg, var(--gt-bg) 0%, var(--gt-surface) 100%); }
:root[data-tema="dark"] .fc-col-header-cell-cushion { color: var(--gt-text-muted) !important; }
:root[data-tema="dark"] .fc-daygrid-day-number { color: var(--gt-text); }
:root[data-tema="dark"] .fc-day-other .fc-daygrid-day-number { color: var(--gt-border); }
:root[data-tema="dark"] .fc-button-primary { background-color: var(--gt-surface) !important; border-color: var(--gt-border) !important; color: var(--gt-text) !important; }
:root[data-tema="dark"] .fc-button-primary:hover { background-color: var(--gt-bg) !important; }
:root[data-tema="dark"] .fc-button-active { background-color: var(--gt-primary) !important; color: white !important; }
:root[data-tema="dark"] .fc-toolbar-title { color: var(--gt-text) !important; }
:root[data-tema="dark"] .fc-list-day-cushion,
:root[data-tema="dark"] .fc-list-table { background-color: var(--gt-surface) !important; color: var(--gt-text); }
:root[data-tema="dark"] .fc-list-event:hover td { background-color: var(--gt-bg) !important; }
:root[data-tema="dark"] .stat-card { color: white; }
:root[data-tema="dark"] .progress { background-color: var(--gt-bg); }
:root[data-tema="dark"] .badge.bg-warning { background-color: var(--gt-bekliyor-bg) !important; color: var(--gt-bekliyor) !important; }
:root[data-tema="dark"] .badge.bg-success { background-color: var(--gt-tamamlandi-bg) !important; color: var(--gt-tamamlandi) !important; }
:root[data-tema="dark"] .badge.bg-secondary { background-color: var(--gt-iptal-bg) !important; color: var(--gt-iptal) !important; }
:root[data-tema="dark"] .oncelik-dusuk { background-color: rgba(56, 189, 248, 0.15) !important; color: #7dd3fc !important; }
:root[data-tema="dark"] .oncelik-orta { background-color: rgba(148, 163, 184, 0.18) !important; color: #cbd5e1 !important; }
:root[data-tema="dark"] .oncelik-yuksek { background-color: rgba(251, 191, 36, 0.18) !important; color: #fcd34d !important; }
:root[data-tema="dark"] .oncelik-acil { background-color: rgba(239, 68, 68, 0.18) !important; color: #fca5a5 !important; }
:root[data-tema="dark"] .profile-avatar { box-shadow: 0 4px 14px rgba(129, 140, 248, 0.5); }
:root[data-tema="dark"] dl.row dt { color: var(--gt-text-muted); }
:root[data-tema="dark"] .form-control-color::-webkit-color-swatch-wrapper { padding: 0; }
:root[data-tema="dark"] .renk-ozel { box-shadow: 0 0 0 1px var(--gt-border); }

/* ========================================
   Dark Mode — Glow / Kontrast iyileştirmeleri
   ======================================== */

/* Daha yüksek text kontrastı */
:root[data-tema="dark"] {
    --gt-text: #f1f5f9;
}

:root[data-tema="dark"] body {
    background-image:
        radial-gradient(ellipse 60% 40% at 15% 0%, rgba(99, 102, 241, 0.05), transparent 60%),
        radial-gradient(ellipse 50% 40% at 85% 0%, rgba(236, 72, 153, 0.035), transparent 60%);
    background-attachment: fixed;
    background-repeat: no-repeat;
}

/* Navbar — daha derin gradient + soft glow */
:root[data-tema="dark"] .navbar.bg-primary {
    background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 50%, #a855f7 100%) !important;
    box-shadow: 0 4px 24px rgba(99, 102, 241, 0.35), 0 1px 0 rgba(255, 255, 255, 0.1) inset;
}

/* Card — üst kenarda subtle aydınlık + daha derin gölge */
:root[data-tema="dark"] .card {
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.06) inset,
        0 4px 12px rgba(0, 0, 0, 0.4),
        0 1px 3px rgba(0, 0, 0, 0.3);
}

:root[data-tema="dark"] .shadow-sm {
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.06) inset,
        0 4px 12px rgba(0, 0, 0, 0.35) !important;
}

/* Primary buton — mor glow */
:root[data-tema="dark"] .btn-primary {
    background: linear-gradient(135deg, #6366f1 0%, #818cf8 100%);
    border-color: #6366f1;
    box-shadow: 0 4px 14px rgba(129, 140, 248, 0.4), 0 1px 0 rgba(255, 255, 255, 0.15) inset;
    color: white;
}

:root[data-tema="dark"] .btn-primary:hover {
    background: linear-gradient(135deg, #818cf8 0%, #a5b4fc 100%);
    box-shadow: 0 6px 20px rgba(129, 140, 248, 0.6), 0 1px 0 rgba(255, 255, 255, 0.25) inset;
    transform: translateY(-1px);
}

/* Form focus — mor glow halkası */
:root[data-tema="dark"] .btn:focus,
:root[data-tema="dark"] .form-control:focus,
:root[data-tema="dark"] .form-select:focus {
    box-shadow: 0 0 0 4px rgba(129, 140, 248, 0.25) !important;
    border-color: var(--gt-primary) !important;
}

/* Arama kutusu focus'ta daha bariz glow */
:root[data-tema="dark"] .arama-kutu:focus-within {
    box-shadow: 0 0 0 4px rgba(129, 140, 248, 0.22), 0 2px 12px rgba(129, 140, 248, 0.3);
    border-color: var(--gt-primary);
}

/* Tema toggle butonu (navbar'da) — koyu modda hafif glow */
:root[data-tema="dark"] .tema-toggle {
    background: rgba(255, 255, 255, 0.1);
    box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
}

:root[data-tema="dark"] .tema-toggle:hover {
    background: rgba(255, 255, 255, 0.18);
    box-shadow: 0 0 16px rgba(255, 255, 255, 0.15);
}

/* Aktif nav-link (navbar'da) — koyu modda glow vurgusu */
:root[data-tema="dark"] .navbar .nav-link.active {
    background: rgba(255, 255, 255, 0.18) !important;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.1) inset;
}

/* Stat kartları (Dashboard) — daha derin gradient + üst highlight */
:root[data-tema="dark"] .stat-card {
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.15) inset,
        0 10px 30px rgba(0, 0, 0, 0.5);
}

:root[data-tema="dark"] .stat-card:hover {
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.2) inset,
        0 16px 40px rgba(0, 0, 0, 0.6),
        0 0 30px rgba(129, 140, 248, 0.25);
}

/* Kategori dropdown menü — daha derin gölge */
:root[data-tema="dark"] .kategori-dropdown-menu {
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.06) inset,
        0 20px 50px rgba(0, 0, 0, 0.6),
        0 4px 10px rgba(0, 0, 0, 0.3);
}

/* SweetAlert modal — koyu uyumlu */
:root[data-tema="dark"] .swal2-popup {
    background: var(--gt-surface) !important;
    color: var(--gt-text) !important;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.08) inset,
        0 30px 80px rgba(0, 0, 0, 0.7) !important;
}

:root[data-tema="dark"] .swal2-title,
:root[data-tema="dark"] .swal2-html-container { color: var(--gt-text) !important; }

:root[data-tema="dark"] .swal2-input {
    background: var(--gt-bg) !important;
    color: var(--gt-text) !important;
    border-color: var(--gt-border) !important;
}

/* Toast — koyu surface */
:root[data-tema="dark"] .swal2-toast {
    background: var(--gt-surface) !important;
    color: var(--gt-text) !important;
}

/* Takvim — bugün glow */
:root[data-tema="dark"] .fc-daygrid-day.fc-day-today .fc-daygrid-day-number {
    box-shadow:
        0 4px 16px rgba(129, 140, 248, 0.6),
        0 0 0 3px rgba(129, 140, 248, 0.2);
}

/* Kategori kartlarındaki yuvarlak ikon — glow */
:root[data-tema="dark"] .kategori-ikon-yuvarlak {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}

/* Profil avatar — daha bariz glow */
:root[data-tema="dark"] .profile-avatar {
    box-shadow:
        0 0 0 4px rgba(129, 140, 248, 0.15),
        0 8px 24px rgba(129, 140, 248, 0.4);
}

/* Görev başlık linki hover'da glow */
:root[data-tema="dark"] .gorev-baslik-link:hover {
    color: #a5b4fc;
    text-shadow: 0 0 12px rgba(165, 180, 252, 0.4);
}

/* Auth hero gradient — daha canlı (koyu modda) */
:root[data-tema="dark"] .auth-hero {
    background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 50%, #ec4899 100%);
    box-shadow: 0 20px 60px rgba(99, 102, 241, 0.3), 0 1px 0 rgba(255, 255, 255, 0.15) inset;
}

/* İkon paleti aktif ikonu — koyu modda glow */
:root[data-tema="dark"] .ikon-secenek.aktif {
    box-shadow: 0 0 0 1px var(--gt-primary), 0 4px 16px rgba(129, 140, 248, 0.5);
}

/* Renk paleti aktif rengi etrafında glow */
:root[data-tema="dark"] .renk-secenek.aktif {
    box-shadow: 0 0 0 2px var(--gt-surface), 0 0 0 4px var(--gt-primary), 0 4px 14px rgba(129, 140, 248, 0.5);
}

/* Nav pills aktif — glow */
:root[data-tema="dark"] .nav-pills .nav-link.active {
    background-color: var(--gt-primary);
    color: white;
    box-shadow: 0 4px 16px rgba(129, 140, 248, 0.5);
}

/* ========================================
   Dark Mode — Eksik fix'ler (proaktif)
   ======================================== */

/* Chip ikonlarının drop-shadow'u karanlık modda siyah halo yaratıyor →
   karanlık arkaplanda siyah halo görünmüyor, ikon kayboluyor.
   Karanlık modda halo açık ton yapalım, veya kategorisiz chip'lerde tamamen kaldıralım */
:root[data-tema="dark"] .kategori-chip svg,
:root[data-tema="dark"] .kategori-chip > i.bi {
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.5));
}

/* Kategorisiz chip — ikon mevcut text rengini al, filter siyah halo'yu sil */
:root[data-tema="dark"] .kategori-chip-bos-stil > i.bi,
:root[data-tema="dark"] .kategori-chip-bos-stil svg {
    filter: none !important;
    color: var(--gt-text-muted) !important;
}

/* Görev başlığı linki (gorev-baslik-link) — varsayılan rengini yakala */
:root[data-tema="dark"] .gorev-baslik-link { color: var(--gt-text); }

/* Login/Register auth-card karanlıkta uygun olsun (zaten card override'ı var ama explicit) */
:root[data-tema="dark"] .auth-card {
    background: var(--gt-surface);
    border-color: var(--gt-border);
    color: var(--gt-text);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.08) inset,
        0 20px 50px rgba(0, 0, 0, 0.5);
}

:root[data-tema="dark"] .auth-card h3 { color: var(--gt-text); }

/* Input group text (sol başta ikon olan) Açık modda beyaz arkaplan, koyu modda surface */
:root[data-tema="dark"] .auth-card .input-group-text {
    background-color: var(--gt-bg) !important;
    border-color: var(--gt-border);
    color: var(--gt-text-muted);
}

/* Detay sayfasındaki bilgi kutuları (border rounded) */
:root[data-tema="dark"] .border.rounded-3 {
    background: var(--gt-bg);
    border-color: var(--gt-border) !important;
}

/* Detail/Profil dl.row — daha okunaklı kontrast */
:root[data-tema="dark"] dl.row dd { color: var(--gt-text); }

/* Hata sayfaları (Error/StatusCode) — büyük rakam vs. text okunsun */
:root[data-tema="dark"] .display-1 { text-shadow: 0 0 30px rgba(129, 140, 248, 0.4); }

/* Validation hata mesajları */
:root[data-tema="dark"] .text-danger,
:root[data-tema="dark"] .field-validation-error,
:root[data-tema="dark"] .validation-summary-errors { color: #fca5a5 !important; }

/* Dropdown menü (Bootstrap'in default'u) — koyu */
:root[data-tema="dark"] .dropdown-menu {
    background: var(--gt-surface);
    border-color: var(--gt-border);
    color: var(--gt-text);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}

:root[data-tema="dark"] .dropdown-item { color: var(--gt-text); }
:root[data-tema="dark"] .dropdown-item:hover { background: rgba(129, 140, 248, 0.12); color: var(--gt-primary); }

/* Tema toggle dropdown menü içindeki tikler/ikonlar */
:root[data-tema="dark"] .tema-menu { background: var(--gt-surface); border-color: var(--gt-border); }
:root[data-tema="dark"] .tema-menu .dropdown-item:hover { background: rgba(129, 140, 248, 0.15); }

/* Renk paleti hex göstergesi */
:root[data-tema="dark"] #renkHex { color: var(--gt-text-muted); }

/* "Sürüklemek için" notu */
:root[data-tema="dark"] .kategori-surukle-tut { color: var(--gt-text-muted); }
:root[data-tema="dark"] .kategori-surukle-tut:hover { color: var(--gt-primary); }

/* Stat card sayıları text-shadow ile pop */
:root[data-tema="dark"] .stat-card .stat-value {
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

/* Empty state ikonu karanlık modda görünür kalsın */
:root[data-tema="dark"] .empty-state .empty-icon {
    color: var(--gt-border);
    opacity: 0.5;
}

/* Login sayfasındaki TempData success alert hover */
:root[data-tema="dark"] .alert-success .bi { color: #34d399; }
:root[data-tema="dark"] .alert-danger .bi { color: #f87171; }
:root[data-tema="dark"] .alert-info .bi { color: #a5b4fc; }

/* Footer code-slash ikon */
:root[data-tema="dark"] .footer .bi { color: var(--gt-text-muted); }

/* SweetAlert ikonları (success, warning, info) renk uyumu */
:root[data-tema="dark"] .swal2-icon.swal2-warning { border-color: #fbbf24; color: #fbbf24; }
:root[data-tema="dark"] .swal2-icon.swal2-success .swal2-success-line-tip,
:root[data-tema="dark"] .swal2-icon.swal2-success .swal2-success-line-long { background-color: #34d399; }
:root[data-tema="dark"] .swal2-validation-message {
    background: rgba(239, 68, 68, 0.15) !important;
    color: #fca5a5 !important;
}

/* Form-control-color (HTML5 color picker) border */
:root[data-tema="dark"] .form-control-color {
    background: var(--gt-bg);
    border-color: var(--gt-border);
}

/* Detay sayfasındaki açıklama kutusu (bg-light) */
:root[data-tema="dark"] .card-body .bg-light {
    background: var(--gt-bg) !important;
    color: var(--gt-text);
}

body {
    background-color: var(--gt-bg);
    color: var(--gt-text);
    font-family: 'Plus Jakarta Sans', 'Segoe UI', system-ui, -apple-system, sans-serif;
    margin-bottom: 0;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

main {
    flex: 1 0 auto;
}

/* ===== Navbar ===== */
.navbar.bg-primary {
    background: linear-gradient(135deg, var(--gt-primary) 0%, var(--gt-primary-dark) 100%) !important;
    box-shadow: 0 2px 12px rgba(99, 102, 241, 0.15);
}

.navbar .navbar-brand {
    font-size: 1.25rem;
    letter-spacing: -0.01em;
}

.navbar .nav-link {
    font-weight: 500;
    border-radius: 6px;
    padding: 0.4rem 0.8rem !important;
    margin: 0 2px;
    transition: background-color 0.15s ease;
}

.navbar .nav-link:hover {
    background-color: rgba(255, 255, 255, 0.12);
}

.navbar .btn-link.nav-link {
    background: none;
    border: none;
}

/* Tema toggle butonu */
.tema-toggle {
    background: rgba(255, 255, 255, 0.12);
    border: none;
    color: white;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    cursor: pointer;
    transition: background-color 0.18s ease, transform 0.18s ease;
    margin: 0 6px;
}

.tema-toggle:hover {
    background: rgba(255, 255, 255, 0.22);
    transform: scale(1.08);
}

.tema-menu {
    min-width: 200px;
    padding: 0.4rem;
    border-radius: 12px;
    border: 1px solid var(--gt-border);
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.15);
    background: var(--gt-surface);
}

.tema-menu .dropdown-item {
    display: flex;
    align-items: center;
    border-radius: 8px;
    padding: 0.5rem 0.75rem;
    color: var(--gt-text);
    font-size: 0.9rem;
    font-weight: 500;
    transition: background-color 0.12s ease;
}

.tema-menu .dropdown-item:hover {
    background: var(--gt-primary-light);
    color: var(--gt-primary);
}

.tema-tik {
    opacity: 0;
    color: var(--gt-primary);
    font-size: 0.95rem;
}

/* Aktif tema item'ında tik göster */
.tema-secenek.aktif .tema-tik {
    opacity: 1;
}

.tema-secenek.aktif {
    background: var(--gt-primary-light);
    color: var(--gt-primary);
}

/* ===== Buttons ===== */
.btn {
    font-weight: 500;
    border-radius: 8px;
    padding: 0.45rem 1rem;
    transition: transform 0.08s ease, box-shadow 0.15s ease;
}

.btn:active {
    transform: translateY(1px);
}

.btn-primary {
    background-color: var(--gt-primary);
    border-color: var(--gt-primary);
    box-shadow: 0 1px 2px rgba(99, 102, 241, 0.25);
}

.btn-primary:hover {
    background-color: var(--gt-primary-dark);
    border-color: var(--gt-primary-dark);
    box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);
}

.btn-outline-primary {
    color: var(--gt-primary);
    border-color: var(--gt-primary);
}

.btn-outline-primary:hover {
    background-color: var(--gt-primary);
    border-color: var(--gt-primary);
}

.btn-sm {
    border-radius: 6px;
    padding: 0.25rem 0.6rem;
}

.btn:focus, .form-control:focus, .form-select:focus {
    box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.2);
    border-color: var(--gt-primary);
}

/* ===== Cards ===== */
.card {
    border: 1px solid var(--gt-border);
    border-radius: 14px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    transition: box-shadow 0.18s ease, transform 0.18s ease;
}

.shadow-sm {
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06), 0 1px 2px rgba(15, 23, 42, 0.04) !important;
}

.card .card-header {
    background-color: var(--gt-surface);
    border-bottom: 1px solid var(--gt-border);
    border-radius: 14px 14px 0 0 !important;
    padding: 0.85rem 1.25rem;
}

/* Dashboard count cards */
.stat-card {
    border-radius: 16px;
    border: none;
    overflow: hidden;
    position: relative;
    transition: transform 0.18s ease, box-shadow 0.18s ease;
    color: white;
}

.stat-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 25px -8px rgba(15, 23, 42, 0.15);
}

.stat-card .stat-icon {
    font-size: 2.4rem;
    opacity: 0.35;
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
}

.stat-card .stat-label {
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    opacity: 0.9;
}

.stat-card .stat-value {
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1.1;
}

.stat-toplam   { background: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%); }
.stat-bekleyen { background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%); }
.stat-tamamlanan { background: linear-gradient(135deg, #10b981 0%, #059669 100%); }
.stat-iptal    { background: linear-gradient(135deg, #94a3b8 0%, #64748b 100%); }

/* ===== Forms ===== */
.form-control, .form-select {
    border-radius: 8px;
    border-color: var(--gt-border);
    padding: 0.55rem 0.85rem;
}

.form-label {
    font-weight: 500;
    color: var(--gt-text);
    margin-bottom: 0.35rem;
}

/* ===== Badges (durum) ===== */
.badge {
    font-weight: 600;
    padding: 0.4em 0.7em;
    border-radius: 999px;
    letter-spacing: 0.01em;
}

.badge.bg-warning {
    background-color: var(--gt-bekliyor-bg) !important;
    color: var(--gt-bekliyor) !important;
}

.badge.bg-success {
    background-color: var(--gt-tamamlandi-bg) !important;
    color: var(--gt-tamamlandi) !important;
}

.badge.bg-secondary {
    background-color: var(--gt-iptal-bg) !important;
    color: var(--gt-iptal) !important;
}

/* ===== Kategori ===== */
.kategori-dot {
    display: inline-block;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    flex-shrink: 0;
    border: 1px solid rgba(0, 0, 0, 0.06);
}

.kategori-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.2rem 0.6rem;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.4;
    color: white;
    white-space: nowrap;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    /* Açık renkli arkaplanlarda (limon-yeşili gibi) okunabilirlik */
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
}

.kategori-chip svg,
.kategori-chip > i.bi {
    /* Beyaz ikon — koyu arkaplanlarda hafif gölge */
    filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.25));
    flex-shrink: 0;
}

/* Arkaplan ACIK ise (sarı, limon-yeşili, beyaz) — text ve ikon KOYU olsun
   JS otomatik ekler bu class'ı */
.kategori-chip.chip-koyu-text {
    color: #1e293b !important;
    text-shadow: none !important;
}

.kategori-chip.chip-koyu-text svg,
.kategori-chip.chip-koyu-text > i.bi {
    color: #1e293b !important;
    filter: none !important;
}

/* Kategori filtresi — hover dropdown */
.kategori-dropdown {
    position: relative;
    display: inline-block;
}

/* "+N daha" yerine sade üç-nokta yuvarlak buton */
.kategori-daha-buton {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: 1px solid var(--gt-border);
    background: var(--gt-surface);
    color: var(--gt-text-muted);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    transition: background-color 0.15s ease, color 0.15s ease, transform 0.1s ease, border-color 0.15s ease;
    padding: 0;
    flex-shrink: 0;
}

.kategori-daha-buton:hover,
.kategori-daha-buton.aktif {
    background: var(--gt-primary);
    color: white;
    border-color: var(--gt-primary);
    transform: scale(1.08);
}

/* Kategorisiz chip stili — diğer chip'lerle aynı görsel ailede, ama sade gri */
.kategori-chip-bos-stil {
    background: var(--gt-iptal-bg) !important;
    color: var(--gt-text-muted) !important;
    text-shadow: none !important;
}

.kategori-chip-bos-stil svg,
.kategori-chip-bos-stil i.bi {
    filter: none !important;
    color: var(--gt-text-muted);
}

/* Tümü/Bekleyen/Tamamlanan sekmeleri ile kategori chip'leri arasındaki dikey ince ayraç */
.kategori-ayrac {
    display: inline-block;
    width: 1px;
    height: 22px;
    background: var(--gt-border);
    margin: 0 0.5rem;
    flex-shrink: 0;
}

/* Kategori chip'i tıklanabilir buton — hover'da yumuşak yukarı kalkma + gölge */
/* (Edit ikonu kaldırıldı, görsel ipucu olarak hover scale + shadow yeterli) */

/* Mini renkli yuvarlak ikon (dropdown item için) */
.kategori-ikon-mini {
    width: 26px !important;
    height: 26px !important;
    font-size: 0.85rem !important;
}

.kategori-dropdown-menu {
    display: none;
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 1000;
    min-width: 240px;
    max-height: 360px;
    overflow-y: auto;
    background: var(--gt-surface);
    border: 1px solid var(--gt-border);
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.15), 0 1px 3px rgba(15, 23, 42, 0.06);
    padding: 0.4rem;
}

/* Hover ya da focus-within → dropdown aç */
.kategori-dropdown:hover .kategori-dropdown-menu,
.kategori-dropdown:focus-within .kategori-dropdown-menu {
    display: block;
}

/* Köprü — buton ile menü arasında boşluk olunca menü kapanmasın */
.kategori-dropdown::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    height: 6px;
}

.kategori-dropdown-baslik {
    padding: 0.4rem 0.75rem 0.5rem;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--gt-text-muted);
    border-bottom: 1px solid var(--gt-border);
    margin-bottom: 0.3rem;
}

.kategori-dropdown-item {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.45rem 0.6rem;
    border-radius: 8px;
    text-decoration: none;
    color: var(--gt-text);
    font-size: 0.85rem;
    font-weight: 500;
    transition: background-color 0.12s ease;
}

.kategori-dropdown-item:hover {
    background: var(--gt-primary-light);
    color: var(--gt-primary);
}

.kategori-dropdown-item.aktif {
    background: var(--gt-primary);
    color: white;
}

.kategori-dropdown-item.aktif .kategori-dot {
    border-color: rgba(255, 255, 255, 0.4);
}

.kategori-dropdown-item-ad {
    flex: 1 1 auto;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

/* Kategori sütununda chip sıkıştığında bozulmasın */
.kategori-chip-btn {
    max-width: 100%;
    display: inline-block;
    text-align: left;
    overflow: hidden;
}

/* Görev tablosunda kategori sütunu için sabit genişlik */
.tablo-kategori-sutun {
    width: 200px;
    max-width: 200px;
}

@media (max-width: 768px) {
    .tablo-kategori-sutun {
        width: 140px;
        max-width: 140px;
    }
}

/* Görev tablosu sütun düzeni — satır kayması engellensin */
.gorev-tablosu td,
.gorev-tablosu th {
    white-space: nowrap;
}

.gorev-tablosu td:first-child,
.gorev-tablosu th:first-child {
    white-space: normal;        /* görev başlığı uzayabilir */
}

.gorev-tablosu .gorev-islemler {
    white-space: nowrap;
    min-width: 130px;
    text-align: end;
}

.gorev-tablosu .gorev-islemler .btn {
    margin-left: 2px;
}

.gorev-tablosu .gorev-tarih {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.kategori-chip-bos {
    background: var(--gt-iptal-bg);
    color: var(--gt-text-muted);
    font-style: italic;
}

.kategori-chip-btn {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
}

.kategori-chip-btn .kategori-chip {
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.kategori-chip-btn:hover .kategori-chip {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.18);
}

.kategori-ikon-yuvarlak {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    color: white;
    font-size: 1rem;
    flex-shrink: 0;
}

/* Kategori kart başlığı — uzun adlar 2 satır, sonra "..." */
.kategori-kart-baslik {
    word-break: break-word;
    overflow-wrap: anywhere;
    line-height: 1.25;
    font-size: 1rem;
    min-width: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Drag-drop kategori sıralama */
.kategori-surukle-tut {
    background: none;
    border: none;
    color: var(--gt-text-muted);
    cursor: grab;
    padding: 0 0.4rem 0 0;
    font-size: 1.2rem;
    line-height: 1;
    transition: color 0.12s ease;
}

.kategori-surukle-tut:hover {
    color: var(--gt-primary);
}

.kategori-surukle-tut:active {
    cursor: grabbing;
}

.kategori-kart-ghost {
    opacity: 0.4;
}

.kategori-kart-chosen .card {
    box-shadow: 0 12px 30px rgba(99, 102, 241, 0.25);
    border-color: var(--gt-primary);
    transform: rotate(1deg);
}

.kategori-chip i.bi {
    font-size: 0.85em;
}

/* Renk paleti (kategori form) */
.renk-paleti {
    padding: 0.5rem;
    background: var(--gt-bg);
    border-radius: 10px;
    border: 1px solid var(--gt-border);
}

.renk-secenek {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 2px solid transparent;
    cursor: pointer;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1rem;
    transition: transform 0.12s ease, box-shadow 0.12s ease, border-color 0.12s ease;
    position: relative;
}

.renk-secenek:hover {
    transform: scale(1.1);
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.15);
}

.renk-secenek.aktif {
    border-color: var(--gt-text);
    box-shadow: 0 0 0 2px white, 0 0 0 4px var(--gt-text);
}

.renk-ozel {
    background: linear-gradient(135deg, #f43f5e, #f59e0b, #10b981, #06b6d4, #6366f1, #ec4899);
    border: 2px dashed white;
    box-shadow: 0 0 0 1px var(--gt-border);
}

.renk-ozel input[type="color"] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
    border: none;
    padding: 0;
}

/* İkon paleti */
.ikon-paleti {
    padding: 0.5rem;
    background: var(--gt-bg);
    border-radius: 10px;
    border: 1px solid var(--gt-border);
}

.ikon-secenek {
    width: 38px;
    height: 38px;
    border-radius: 8px;
    border: 2px solid transparent;
    background: white;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--gt-text);
    font-size: 1.1rem;
    transition: transform 0.12s ease, border-color 0.12s ease, background-color 0.12s ease;
}

.ikon-secenek:hover {
    transform: scale(1.08);
    border-color: var(--gt-primary-light);
    color: var(--gt-primary);
}

.ikon-secenek.aktif {
    background-color: var(--gt-primary);
    color: white;
    border-color: var(--gt-primary-dark);
    box-shadow: 0 2px 8px rgba(99, 102, 241, 0.35);
}

/* ===== Öncelik badge'leri ===== */
.oncelik-badge {
    font-weight: 600;
}

.oncelik-dusuk {
    background-color: #e0f2fe !important;
    color: #0369a1 !important;
}

.oncelik-orta {
    background-color: #f1f5f9 !important;
    color: #475569 !important;
}

.oncelik-yuksek {
    background-color: #fef3c7 !important;
    color: #b45309 !important;
}

.oncelik-acil {
    background-color: #fee2e2 !important;
    color: #b91c1c !important;
}

/* ===== Tables ===== */
.table {
    --bs-table-hover-bg: rgba(99, 102, 241, 0.04);
}

.table > thead {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--gt-text-muted);
}

.table > thead > tr > th {
    border-bottom: 1px solid var(--gt-border);
    font-weight: 600;
    padding: 0.75rem 1rem;
}

.table > tbody > tr > td {
    padding: 0.85rem 1rem;
    vertical-align: middle;
}

/* ===== Alerts ===== */
.alert {
    border-radius: 10px;
    border: 1px solid transparent;
}

.alert-success {
    background-color: var(--gt-tamamlandi-bg);
    color: #065f46;
    border-color: #a7f3d0;
}

.alert-info {
    background-color: var(--gt-primary-light);
    color: var(--gt-primary-dark);
    border-color: #c7d2fe;
}

.alert-danger {
    background-color: #fee2e2;
    color: #991b1b;
    border-color: #fecaca;
}

/* ===== Nav pills (filtre sekmeleri) ===== */
.nav-pills {
    background: var(--gt-surface);
    padding: 0.35rem;
    border-radius: 10px;
    border: 1px solid var(--gt-border);
    display: inline-flex;
    gap: 0.25rem;
}

.nav-pills .nav-link {
    color: var(--gt-text-muted);
    font-weight: 500;
    padding: 0.4rem 1rem;
    border-radius: 7px;
}

.nav-pills .nav-link.active {
    background-color: var(--gt-primary);
    color: white;
    box-shadow: 0 2px 6px rgba(99, 102, 241, 0.3);
}

.nav-pills .nav-link:not(.active):hover {
    background-color: var(--gt-primary-light);
    color: var(--gt-primary);
}

/* ===== Auth pages (Login / Register) ===== */
.auth-wrapper {
    min-height: calc(100vh - 140px);
    display: flex;
    align-items: center;
    justify-content: center;
}

.auth-hero {
    background: linear-gradient(135deg, var(--gt-primary) 0%, var(--gt-primary-dark) 50%, var(--gt-accent) 100%);
    color: white;
    border-radius: 18px;
    padding: 2.5rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 480px;
}

.auth-hero h1 {
    font-weight: 700;
    font-size: 2rem;
    margin-bottom: 1rem;
}

.auth-hero .hero-feature {
    display: flex;
    align-items: center;
    margin-bottom: 1rem;
    font-size: 0.95rem;
}

.auth-hero .hero-feature i {
    font-size: 1.3rem;
    margin-right: 0.7rem;
    opacity: 0.9;
}

.auth-card {
    border-radius: 18px;
    border: 1px solid var(--gt-border);
    background: white;
    padding: 2.5rem;
}

.auth-card h3 {
    font-weight: 700;
}

/* ===== Profil avatar ===== */
.profile-avatar {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--gt-primary) 0%, var(--gt-accent) 100%);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    font-weight: 700;
    box-shadow: 0 4px 14px rgba(99, 102, 241, 0.3);
}

/* ===== Detail page enhancements ===== */
dl.row dt {
    color: var(--gt-text-muted);
    font-weight: 500;
}

/* ===== Footer ===== */
.footer {
    background: var(--gt-surface);
    border-top: 1px solid var(--gt-border);
    color: var(--gt-text-muted);
    font-size: 0.875rem;
}

/* ===== Takvim (FullCalendar) — Modern premium görünüm ===== */
.fc {
    font-family: inherit;
    --fc-border-color: var(--gt-border);
    --fc-button-bg-color: var(--gt-surface);
    --fc-button-border-color: var(--gt-border);
    --fc-button-text-color: var(--gt-text);
    --fc-button-hover-bg-color: var(--gt-primary-light);
    --fc-button-hover-border-color: var(--gt-primary);
    --fc-button-active-bg-color: var(--gt-primary);
    --fc-button-active-border-color: var(--gt-primary-dark);
    --fc-today-bg-color: rgba(99, 102, 241, 0.06);
    --fc-page-bg-color: var(--gt-surface);
    --fc-event-border-color: transparent;
    --fc-list-event-hover-bg-color: var(--gt-primary-light);
    --fc-neutral-bg-color: var(--gt-bg);
}

/* Tarih numaralarındaki link altı çizgiyi tamamen kaldır */
.fc a,
.fc a:hover,
.fc .fc-daygrid-day-number,
.fc .fc-col-header-cell-cushion,
.fc .fc-list-day-text,
.fc .fc-list-day-side-text {
    text-decoration: none !important;
    color: var(--gt-text);
}

/* Gün rakamları — şık konumlandırma */
.fc .fc-daygrid-day-number {
    font-weight: 500;
    font-size: 0.9rem;
    color: var(--gt-text);
    padding: 8px 10px;
    transition: color 0.15s ease;
}

/* Diğer ay tarihleri çok soluk */
.fc .fc-day-other .fc-daygrid-day-number {
    color: var(--gt-border);
    opacity: 0.7;
}

/* Hücreler — hover ile hafif aydınlanma */
.fc .fc-daygrid-day {
    transition: background-color 0.18s ease;
}

.fc .fc-daygrid-day:hover {
    background-color: rgba(99, 102, 241, 0.04);
}

.fc .fc-daygrid-day:hover .fc-daygrid-day-number {
    color: var(--gt-primary);
}

/* Üst toolbar — premium görünüm */
.fc .fc-toolbar.fc-header-toolbar {
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
    gap: 0.75rem;
    padding: 0.5rem 0;
}

.fc .fc-toolbar-title {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--gt-text);
    text-transform: capitalize;
    letter-spacing: -0.01em;
}

.fc .fc-button {
    border-radius: 8px !important;
    font-weight: 500;
    padding: 0.4rem 0.85rem;
    box-shadow: none !important;
    text-transform: capitalize;
    transition: all 0.15s ease;
}

.fc .fc-button-primary:not(:disabled).fc-button-active,
.fc .fc-button-primary:not(:disabled):active {
    color: white;
    background: var(--gt-primary);
    border-color: var(--gt-primary-dark);
}

.fc .fc-button-primary:not(:disabled):hover {
    transform: translateY(-1px);
}

.fc .fc-button-group {
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05);
    border-radius: 8px;
    overflow: hidden;
}

/* "Bugün" hücresi — premium yuvarlak buton */
.fc .fc-day-today {
    background: var(--fc-today-bg-color) !important;
}
.fc .fc-daygrid-day.fc-day-today .fc-daygrid-day-number {
    background: linear-gradient(135deg, var(--gt-primary) 0%, var(--gt-primary-dark) 100%);
    color: white !important;
    border-radius: 999px;
    width: 30px;
    height: 30px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 6px;
    font-weight: 700;
    font-size: 0.85rem;
    box-shadow: 0 4px 10px rgba(99, 102, 241, 0.4);
}

/* Hafta sonu hücreleri */
.fc .fc-day-sat .fc-daygrid-day-number,
.fc .fc-day-sun .fc-daygrid-day-number {
    color: var(--gt-text-muted);
}

/* Tablo border'ları çok ince ve yumuşak */
.fc .fc-scrollgrid {
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid var(--gt-border) !important;
}

.fc .fc-scrollgrid td,
.fc .fc-scrollgrid th {
    border-color: var(--gt-border);
}

.fc .fc-scrollgrid-section > * {
    border-color: var(--gt-border) !important;
}

/* Gün başlıkları (PZT/SAL/...) — modern üst bar */
.fc .fc-col-header {
    background: linear-gradient(180deg, var(--gt-bg) 0%, var(--gt-surface) 100%);
}

.fc .fc-col-header-cell {
    padding: 12px 0;
    font-weight: 700;
    color: var(--gt-text-muted);
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    border-bottom: 1px solid var(--gt-border);
}

.fc .fc-col-header-cell-cushion {
    color: var(--gt-text-muted) !important;
    padding: 6px 4px;
}

/* Cumartesi/Pazar başlıkları biraz daha sönük */
.fc .fc-day-sat.fc-col-header-cell,
.fc .fc-day-sun.fc-col-header-cell {
    color: var(--gt-iptal);
}

/* Event'ler — premium pill kart */
.fc .fc-daygrid-event {
    --oncelik-renk: rgba(255, 255, 255, 0.5); /* JS override eder */
    border-radius: 8px;
    padding: 4px 10px 4px 14px; /* Sol şerit için ekstra padding */
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    transition: transform 0.12s ease, box-shadow 0.15s ease;
    border: none !important;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.12), inset 0 0 0 1px rgba(255, 255, 255, 0.08);
    margin: 2px 4px;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.15);
    position: relative;
    overflow: hidden;
}

.fc .fc-daygrid-event::before {
    /* Sol kenar şerit = ÖNCELİK rengi (background = kategori rengi olabilir) */
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 5px;
    background: var(--oncelik-renk);
    box-shadow: 1px 0 0 rgba(255, 255, 255, 0.25);
}

.fc .fc-daygrid-event:hover {
    transform: translateY(-2px) scale(1.03);
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.22);
    text-decoration: none !important;
}

.fc .fc-event-title {
    font-weight: 600;
    letter-spacing: 0.01em;
}

.fc .fc-event-time {
    opacity: 0.85;
    font-weight: 500;
}

/* Uzun görev başlıkları — ellipsis ile kırpılsın */
.fc .fc-daygrid-event .fc-event-title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: block;
}

/* Alt görevi olan etkinliklerde mini "2/4" rozeti */
.takvim-alt-rozet {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    margin-left: 6px;
    padding: 0 5px;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1.5;
    font-variant-numeric: tabular-nums;
    background: rgba(99, 102, 241, 0.16);
    color: inherit;
    white-space: nowrap;
}

.takvim-alt-rozet > .bi {
    font-size: 0.68rem;
    line-height: 1;
}

.takvim-alt-rozet.tamam {
    background: var(--gt-tamamlandi-bg);
    color: var(--gt-tamamlandi);
}

/* Liste görünümünde başlığın yanında dursun */
.fc .fc-list-event-title .takvim-alt-rozet {
    color: var(--gt-text-muted);
}

/* "all-day" yazısı eğer hala görünüyorsa gizle */
.fc .fc-daygrid-event .fc-event-time:empty,
.fc .fc-list-event-time {
    display: none !important;
}

/* Liste görünümü — daha şık */
.fc .fc-list-event-graphic {
    padding-right: 10px;
}

.fc .fc-list-event-dot {
    border-width: 6px !important;
}

.fc .fc-list-event-title a {
    font-weight: 600;
    color: var(--gt-text) !important;
}

.fc .fc-list-day-cushion {
    background: var(--gt-bg);
    padding: 10px 14px;
    font-size: 0.85rem;
}

/* Aynı günde çok görev olursa — event yüksekliği sabit, hücre içeriği güzel sığsın */
.fc .fc-daygrid-day-events {
    margin-top: 0;
}

.fc .fc-daygrid-day-frame {
    padding: 2px;
}

/* "+N daha" linki */
.fc .fc-daygrid-more-link {
    color: var(--gt-primary);
    font-weight: 600;
    font-size: 0.75rem;
    padding: 2px 6px;
    border-radius: 4px;
}

.fc .fc-daygrid-more-link:hover {
    background: var(--gt-primary-light);
}

/* Liste görünümü */
.fc .fc-list-event:hover td {
    background-color: var(--gt-primary-light);
}

.fc .fc-list-day-cushion {
    background: var(--gt-bg);
    font-weight: 700;
}

/* Boş ayda placeholder */
.fc .fc-list-empty {
    background: transparent;
    color: var(--gt-text-muted);
    font-style: italic;
}

/* ===== Modern arama kutusu (Linear/GitHub stili) ===== */
.arama-form {
    margin: 0;
}

.arama-kutu {
    position: relative;
    display: flex;
    align-items: center;
    width: 280px;
    height: 38px;
    padding: 0 12px 0 36px;
    background: var(--gt-surface);
    border: 1px solid var(--gt-border);
    border-radius: 999px;
    transition: all 0.18s ease;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.arama-kutu:hover {
    border-color: var(--gt-text-muted);
    background: white;
}

.arama-kutu:focus-within {
    width: 360px;
    border-color: var(--gt-primary);
    background: white;
    box-shadow: 0 0 0 4px rgba(99, 102, 241, 0.12), 0 2px 6px rgba(15, 23, 42, 0.08);
}

.arama-kutu.dolu {
    background: var(--gt-primary-light);
    border-color: var(--gt-primary);
}

.arama-ikon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--gt-text-muted);
    font-size: 0.95rem;
    pointer-events: none;
    transition: color 0.15s ease;
}

.arama-kutu:focus-within .arama-ikon,
.arama-kutu.dolu .arama-ikon {
    color: var(--gt-primary);
}

.arama-input {
    flex: 1 1 auto;
    border: none;
    background: transparent;
    outline: none;
    font-size: 0.875rem;
    color: var(--gt-text);
    min-width: 0;
}

.arama-input::placeholder {
    color: var(--gt-text-muted);
    opacity: 0.7;
}

.arama-input:focus {
    outline: none;
    box-shadow: none;
}

.arama-temizle {
    color: var(--gt-text-muted);
    margin-left: 8px;
    font-size: 1rem;
    text-decoration: none;
    line-height: 1;
    transition: color 0.12s ease, transform 0.12s ease;
    flex-shrink: 0;
}

.arama-temizle:hover {
    color: var(--gt-primary);
    transform: scale(1.15);
}

.arama-kisayol {
    margin-left: 8px;
    padding: 2px 7px;
    background: var(--gt-bg);
    border: 1px solid var(--gt-border);
    border-bottom-width: 2px;
    border-radius: 5px;
    font-family: ui-monospace, "SF Mono", Menlo, monospace;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--gt-text-muted);
    line-height: 1;
    flex-shrink: 0;
}

.arama-kutu:focus-within .arama-kisayol {
    display: none;
}

/* Mobil — arama kutusu tam genişlik */
@@media (max-width: 576px) {
    .arama-kutu,
    .arama-kutu:focus-within {
        width: 100%;
    }
}

/* ===== SweetAlert2 — Premium polish ===== */
.swal2-popup {
    border-radius: 16px !important;
    border: 1px solid var(--gt-border) !important;
    /* Backdrop YOK, popup tek başına yüzüyor — gölge daha derin olsun ki dikkat çeksin */
    box-shadow:
        0 30px 80px -10px rgba(15, 23, 42, 0.35),
        0 15px 40px -5px rgba(15, 23, 42, 0.2),
        0 5px 15px rgba(15, 23, 42, 0.1),
        0 1px 0 rgba(255, 255, 255, 0.6) inset !important;
    padding: 1.6rem 1.4rem 1.2rem !important;
    font-family: inherit !important;
}

/* TÜM SweetAlert container'larından backdrop/blur tamamen kaldırıldı —
   ne modal'da ne toast'ta arka plan karartması veya bulanıklığı olmaz */
.swal2-container,
.swal2-container.swal2-backdrop-show {
    background: transparent !important;
    background-color: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

/* Toast container — arka plana tıklanabilir kalsın (modal'a değil) */
.gt-toast-container { pointer-events: none !important; }
.gt-toast-container .swal2-toast,
.gt-toast-container .swal2-popup { pointer-events: auto !important; }

/* Başlık */
.swal2-title {
    font-size: 1.25rem !important;
    font-weight: 700 !important;
    color: var(--gt-text) !important;
    padding: 0.5rem 0 0.2rem !important;
    letter-spacing: -0.01em !important;
}

/* HTML container (açıklama / form) */
.swal2-html-container {
    font-size: 0.92rem !important;
    color: var(--gt-text-muted) !important;
    margin: 0.5rem 0 1.3rem !important;
    line-height: 1.5 !important;
}

/* Ikon (warning/success/error/info) */
.swal2-icon {
    margin: 1rem auto 0.5rem !important;
    width: 4rem !important;
    height: 4rem !important;
    border-width: 3px !important;
}

.swal2-icon.swal2-warning {
    color: var(--gt-bekliyor) !important;
    border-color: var(--gt-bekliyor) !important;
}
.swal2-icon.swal2-success {
    color: var(--gt-tamamlandi) !important;
    border-color: var(--gt-tamamlandi) !important;
}

/* Butonlar — Bootstrap uyumlu yumuşak pill */
.swal2-actions {
    gap: 0.5rem !important;
    margin-top: 1rem !important;
}

.swal2-styled {
    border-radius: 8px !important;
    font-weight: 500 !important;
    font-size: 0.9rem !important;
    padding: 0.55rem 1.3rem !important;
    box-shadow: none !important;
    transition: transform 0.1s ease, box-shadow 0.15s ease !important;
}

.swal2-styled:focus {
    box-shadow: 0 0 0 4px rgba(99, 102, 241, 0.2) !important;
}

.swal2-styled.swal2-confirm:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(99, 102, 241, 0.35) !important;
}

/* Input/textarea (yeni kategori modal'ında kullanılıyor) */
.swal2-input,
.swal2-textarea,
.swal2-select {
    border-radius: 8px !important;
    border: 1px solid var(--gt-border) !important;
    background: var(--gt-surface) !important;
    color: var(--gt-text) !important;
    padding: 0.55rem 0.85rem !important;
    font-size: 0.95rem !important;
    box-shadow: none !important;
    transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
}

.swal2-input:focus,
.swal2-textarea:focus,
.swal2-select:focus {
    border-color: var(--gt-primary) !important;
    box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.18) !important;
}

/* Toast (sağ üst bildirim) — daha kompakt ve şık */
.swal2-toast {
    border-radius: 12px !important;
    padding: 0.75rem 1rem !important;
    border: 1px solid var(--gt-border) !important;
    background: var(--gt-surface) !important;
    box-shadow:
        0 4px 14px rgba(15, 23, 42, 0.1),
        0 1px 3px rgba(15, 23, 42, 0.06) !important;
    min-width: 280px !important;
    max-width: 360px !important;
}

.swal2-toast .swal2-title {
    color: var(--gt-text) !important;
    font-size: 0.92rem !important;
    font-weight: 600 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.swal2-toast .swal2-icon {
    width: 1.7rem !important;
    height: 1.7rem !important;
    border-width: 2px !important;
    margin: 0 0.6rem 0 0 !important;
}

.swal2-toast .swal2-timer-progress-bar-container {
    border-radius: 0 0 12px 12px !important;
    overflow: hidden;
    height: 3px !important;
}

.swal2-toast .swal2-timer-progress-bar {
    background: var(--gt-primary) !important;
}

/* Validation mesajı (modal içinde hata) */
.swal2-validation-message {
    background: rgba(239, 68, 68, 0.1) !important;
    color: #b91c1c !important;
    border-radius: 8px !important;
    font-size: 0.85rem !important;
    padding: 0.5rem 0.85rem !important;
    margin-top: 0.5rem !important;
}

.swal2-validation-message::before {
    background-color: #ef4444 !important;
}

/* Dark mode SweetAlert override (mevcut basit override'ları geliştir) */
:root[data-tema="dark"] .swal2-popup {
    background: var(--gt-surface) !important;
    border-color: var(--gt-border) !important;
    box-shadow:
        0 30px 80px -10px rgba(0, 0, 0, 0.85),
        0 15px 40px rgba(0, 0, 0, 0.5),
        0 5px 15px rgba(0, 0, 0, 0.3),
        0 1px 0 rgba(255, 255, 255, 0.1) inset !important;
}

:root[data-tema="dark"] .swal2-container,
:root[data-tema="dark"] .swal2-container.swal2-backdrop-show {
    background: transparent !important;
}

:root[data-tema="dark"] .swal2-title { color: var(--gt-text) !important; }
:root[data-tema="dark"] .swal2-html-container { color: var(--gt-text-muted) !important; }

:root[data-tema="dark"] .swal2-input,
:root[data-tema="dark"] .swal2-textarea,
:root[data-tema="dark"] .swal2-select {
    background: var(--gt-bg) !important;
    border-color: var(--gt-border) !important;
    color: var(--gt-text) !important;
}

:root[data-tema="dark"] .swal2-toast {
    background: var(--gt-surface) !important;
    border-color: var(--gt-border) !important;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.05) inset,
        0 6px 18px rgba(0, 0, 0, 0.35),
        0 1px 3px rgba(0, 0, 0, 0.2) !important;
}

:root[data-tema="dark"] .swal2-toast .swal2-title { color: var(--gt-text) !important; }

:root[data-tema="dark"] .swal2-validation-message {
    background: rgba(239, 68, 68, 0.15) !important;
    color: #fca5a5 !important;
}

/* ===== Empty state ===== */
.empty-state {
    text-align: center;
    padding: 3rem 1rem;
    color: var(--gt-text-muted);
}

.empty-state .empty-icon {
    font-size: 3rem;
    color: var(--gt-border);
    margin-bottom: 0.75rem;
}

/* ===== Progress bar ===== */
.progress {
    border-radius: 999px;
    background-color: var(--gt-bg);
    height: 8px;
}

.progress-bar {
    background: linear-gradient(90deg, var(--gt-primary) 0%, var(--gt-accent) 100%);
    border-radius: 999px;
}

/* ===== Görev satır hover ===== */
.gorev-baslik-link {
    color: var(--gt-text);
    text-decoration: none;
    transition: color 0.12s ease;
}

.gorev-baslik-link:hover {
    color: var(--gt-primary);
}

/* ===== Alt görevler (checklist) ===== */
.alt-gorev-progress {
    height: 6px;
    border-radius: 999px;
    background: var(--gt-bg);
    overflow: hidden;
}

.alt-gorev-progress-bar {
    height: 100%;
    width: 0;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--gt-primary) 0%, var(--gt-tamamlandi) 100%);
    transition: width 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.alt-gorev-sayac {
    background: var(--gt-primary-light);
    color: var(--gt-primary-dark);
    font-weight: 600;
    transition: background 0.2s ease, color 0.2s ease;
}

.alt-gorev-sayac.tamam {
    background: var(--gt-tamamlandi-bg);
    color: var(--gt-tamamlandi);
}

/* Görev listesi satırındaki kompakt alt görev ilerlemesi */
.gorev-alt-ozet {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 6px;
    font-size: 0.78rem;
    color: var(--gt-text-muted);
    cursor: default;
}

.gorev-alt-ozet > .bi {
    flex: 0 0 auto;
    font-size: 0.9rem;
    color: var(--gt-primary);
    line-height: 1;
}

.gorev-alt-bar {
    display: inline-block;
    width: 84px;
    height: 5px;
    border-radius: 999px;
    background: var(--gt-bg);
    border: 1px solid var(--gt-border);
    overflow: hidden;
}

.gorev-alt-bar-dolu {
    display: block;
    height: 100%;
    width: 0;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--gt-primary) 0%, var(--gt-tamamlandi) 100%);
    transition: width 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.gorev-alt-sayi {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    padding: 1px 8px;
    border-radius: 999px;
    background: var(--gt-primary-light);
    color: var(--gt-primary-dark);
}

.gorev-alt-ozet.tamam > .bi {
    color: var(--gt-tamamlandi);
}

.gorev-alt-ozet.tamam .gorev-alt-sayi {
    background: var(--gt-tamamlandi-bg);
    color: var(--gt-tamamlandi);
}

/* Hover popover — alt görev maddelerinin içeriğini gösterir */
.gorev-alt-popover {
    position: absolute;
    bottom: calc(100% + 10px);
    left: 0;
    z-index: 60;
    min-width: 230px;
    max-width: 320px;
    padding: 10px 12px;
    background: var(--gt-surface);
    border: 1px solid var(--gt-border);
    border-radius: 12px;
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.16);
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s;
    pointer-events: none;
    text-align: left;
    white-space: normal;
}

/* Küçük ok ucu (popover'ı tetikleyiciye bağlar) */
.gorev-alt-popover::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 16px;
    width: 10px;
    height: 10px;
    margin-top: -5px;
    background: var(--gt-surface);
    border-right: 1px solid var(--gt-border);
    border-bottom: 1px solid var(--gt-border);
    transform: rotate(45deg);
}

.gorev-alt-ozet:hover .gorev-alt-popover,
.gorev-alt-ozet:focus-within .gorev-alt-popover {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* Üstte yer yoksa (tablonun ilk satırları) aşağı açılır — JS ekler */
.gorev-alt-ozet.alt-acilir-asagi .gorev-alt-popover {
    bottom: auto;
    top: calc(100% + 10px);
    transform: translateY(-6px);
}

.gorev-alt-ozet.alt-acilir-asagi .gorev-alt-popover::after {
    top: auto;
    bottom: 100%;
    margin-top: 0;
    margin-bottom: -5px;
    border-right: none;
    border-bottom: none;
    border-left: 1px solid var(--gt-border);
    border-top: 1px solid var(--gt-border);
}

.gorev-alt-ozet.alt-acilir-asagi:hover .gorev-alt-popover,
.gorev-alt-ozet.alt-acilir-asagi:focus-within .gorev-alt-popover {
    transform: translateY(0);
}

.gorev-alt-popover-baslik {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--gt-text-muted);
    padding-bottom: 8px;
    margin-bottom: 8px;
    border-bottom: 1px solid var(--gt-border);
}

.gorev-alt-popover-baslik > .bi {
    color: var(--gt-primary);
    font-size: 0.85rem;
}

.gorev-alt-popover-liste {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.gorev-alt-popover-liste li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 0.82rem;
    line-height: 1.35;
    color: var(--gt-text);
}

.gorev-alt-popover-liste li > .bi {
    flex: 0 0 auto;
    font-size: 0.9rem;
    line-height: 1.35;
    color: var(--gt-text-muted);
}

.gorev-alt-popover-liste li.tamam {
    color: var(--gt-text-muted);
}

.gorev-alt-popover-liste li.tamam > span {
    text-decoration: line-through;
    text-decoration-color: var(--gt-text-muted);
}

.gorev-alt-popover-liste li.tamam > .bi {
    color: var(--gt-tamamlandi);
}

.alt-gorev-listesi {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.alt-gorev-madde {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-radius: 10px;
    border: 1px solid transparent;
    transition: background 0.15s ease, border-color 0.15s ease, opacity 0.2s ease, transform 0.2s ease;
}

.alt-gorev-madde:hover {
    background: var(--gt-primary-light);
    border-color: var(--gt-border);
}

.ag-tut {
    color: var(--gt-text-muted);
    cursor: grab;
    opacity: 0;
    display: flex;
    line-height: 1;
    transition: opacity 0.15s ease;
}

.alt-gorev-madde:hover .ag-tut { opacity: 0.6; }
.ag-tut:active { cursor: grabbing; }

/* Özel checkbox */
.ag-check {
    position: relative;
    display: flex;
    margin: 0;
    cursor: pointer;
    flex-shrink: 0;
}

.ag-check input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.ag-kutu {
    width: 20px;
    height: 20px;
    border-radius: 6px;
    border: 2px solid var(--gt-border);
    background: var(--gt-surface);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.ag-kutu i {
    font-size: 0.8rem;
    color: #fff;
    opacity: 0;
    transform: scale(0.5);
    transition: opacity 0.12s ease, transform 0.12s ease;
}

.ag-check input:checked + .ag-kutu {
    background: var(--gt-tamamlandi);
    border-color: var(--gt-tamamlandi);
}

.ag-check input:checked + .ag-kutu i {
    opacity: 1;
    transform: scale(1);
}

.ag-check:hover .ag-kutu { border-color: var(--gt-primary); }

.ag-check input:focus-visible + .ag-kutu {
    box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb), 0.25);
}

.ag-metin {
    flex: 1;
    color: var(--gt-text);
    font-size: 0.95rem;
    word-break: break-word;
    transition: color 0.15s ease;
}

.alt-gorev-madde.tamamlandi .ag-metin {
    color: var(--gt-text-muted);
    text-decoration: line-through;
    text-decoration-color: var(--gt-text-muted);
}

.ag-sil {
    border: none;
    background: transparent;
    color: var(--gt-text-muted);
    width: 28px;
    height: 28px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    opacity: 0;
    cursor: pointer;
    transition: opacity 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.alt-gorev-madde:hover .ag-sil { opacity: 1; }

.ag-sil:hover {
    background: var(--gt-bekliyor-bg);
    color: #dc2626;
}

/* Çıkış animasyonu (silinirken) */
.alt-gorev-madde.cikis {
    opacity: 0;
    transform: translateX(10px);
}

/* Sürükle hayaleti */
.ag-ghost {
    opacity: 0.4;
    background: var(--gt-primary-light);
}

/* Boş durum */
.alt-gorev-bos {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 14px 12px;
    border: 1px dashed var(--gt-border);
    border-radius: 10px;
    color: var(--gt-text-muted);
    font-size: 0.9rem;
}

.alt-gorev-bos i { font-size: 1.1rem; }

/* Dokunmatik cihazlarda hover yok — handle/sil her zaman görünür */
@media (hover: none) {
    .ag-tut { opacity: 0.5; }
    .ag-sil { opacity: 0.7; }
}

/* ════════════════════════════════════════════════════════════
   FRONTEND CİLA — Tavelima premium rafinasyon katmanı
   (dosya sonunda → cascade önceliği yüksek)
   ════════════════════════════════════════════════════════════ */

/* — Tipografi: yumuşatma + başlık hiyerarşisi — */
body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    letter-spacing: -0.011em;
}
h1, h2, h3, h4, h5, .navbar-brand { letter-spacing: -0.022em; }
h1, h2, h3 { font-weight: 700; }

/* — Yumuşak global geçişler (etkileşim hissi) — */
.btn, .nav-link, .badge, .form-control, .form-select,
.kategori-chip, .stat-card, .list-group-item, .gorev-baslik-link {
    transition: color .18s ease, background-color .18s ease, border-color .18s ease,
                box-shadow .2s ease, transform .2s cubic-bezier(.4, 0, .2, 1);
}

/* — Butonlar: ağırlık + tıklama/hover hissi (her tema) — */
.btn { font-weight: 600; }
.btn-primary:active { transform: translateY(0) !important; }
.btn-outline-primary:hover, .btn-outline-secondary:hover,
.btn-outline-success:hover, .btn-outline-danger:hover,
.btn-outline-warning:hover { transform: translateY(-1px); }

/* — Stat kartları: hover'da hafif kalkış (her tema) — */
.stat-card { transition: transform .25s cubic-bezier(.4, 0, .2, 1), box-shadow .25s ease; }
.stat-card:hover { transform: translateY(-4px); }

/* — Badge: biraz daha karakter — */
.badge { font-weight: 600; letter-spacing: .005em; }

/* ═══════ LIGHT MODE elevation (dark kadar rafine) ═══════ */

/* Arka planda çok hafif iki renkli aura (dark'taki gibi) */
:root[data-tema="light"] body,
:root:not([data-tema]) body {
    background-image:
        radial-gradient(ellipse 60% 45% at 12% -5%, rgba(99, 102, 241, 0.06), transparent 60%),
        radial-gradient(ellipse 55% 45% at 88% -5%, rgba(236, 72, 153, 0.045), transparent 60%);
    background-attachment: fixed;
    background-repeat: no-repeat;
}

/* Kart: ince border + yumuşak katmanlı gölge (flat Bootstrap yerine) */
:root[data-tema="light"] .card {
    border: 1px solid rgba(15, 23, 42, 0.06);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 6px 18px rgba(15, 23, 42, 0.05);
}
:root[data-tema="light"] .shadow-sm {
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 6px 18px rgba(15, 23, 42, 0.05) !important;
}

/* Primary buton: degrade + hover kalkış (dark'taki polish light'a da gelsin) */
:root[data-tema="light"] .btn-primary {
    background: linear-gradient(135deg, #6366f1 0%, #7c7ff5 100%);
    border-color: #6366f1;
    box-shadow: 0 2px 8px rgba(99, 102, 241, 0.22);
}
:root[data-tema="light"] .btn-primary:hover {
    background: linear-gradient(135deg, #5457e8 0%, #6d70f0 100%);
    box-shadow: 0 6px 18px rgba(99, 102, 241, 0.38);
    transform: translateY(-1px);
}

/* Navbar (light): düz mor yerine ince degrade + derinlik */
:root[data-tema="light"] .navbar.bg-primary {
    background: linear-gradient(135deg, #6366f1 0%, #7c3aed 100%) !important;
    box-shadow: 0 2px 18px rgba(99, 102, 241, 0.22);
}

/* Focus halkası (light) — daha yumuşak, marka rengi */
:root[data-tema="light"] .form-control:focus,
:root[data-tema="light"] .form-select:focus,
:root[data-tema="light"] .btn-primary:focus-visible {
    box-shadow: 0 0 0 4px rgba(99, 102, 241, 0.15) !important;
    border-color: #6366f1 !important;
}

/* Auth hero (light) — canlı marka degradesi */
:root[data-tema="light"] .auth-hero {
    background: linear-gradient(135deg, #6366f1 0%, #7c3aed 55%, #ec4899 100%);
    box-shadow: 0 20px 50px rgba(99, 102, 241, 0.25);
}

/* Profil avatar (light) — marka glow */
:root[data-tema="light"] .profile-avatar {
    box-shadow: 0 0 0 4px rgba(99, 102, 241, 0.1), 0 8px 22px rgba(99, 102, 241, 0.3);
}

/* ════════════════════════════════════════════════════════════
   FRONTEND CİLA — 2. dalga: sinematik dokunuşlar (güvenli, ölçülü)
   ════════════════════════════════════════════════════════════ */

/* Yapışkan navbar — içerik kayarken hep üstte (premium his) */
.navbar.bg-primary { position: sticky; top: 0; z-index: 1030; }

/* Sayfa giriş animasyonu — içerik yumuşakça belirsin (Linear hissi) */
@keyframes gt-fade-up {
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: translateY(0); }
}
main.container > * { animation: gt-fade-up .5s cubic-bezier(.16, 1, .3, 1) both; }
main.container > *:nth-child(2) { animation-delay: .05s; }
main.container > *:nth-child(3) { animation-delay: .10s; }
main.container > *:nth-child(4) { animation-delay: .15s; }

/* Auth hero — çok hafif animasyonlu degrade (sinematik akış) */
.auth-hero { background-size: 180% 180% !important; animation: gt-hero-shimmer 14s ease infinite; }
@keyframes gt-hero-shimmer {
    0%, 100% { background-position: 0% 50%; }
    50%      { background-position: 100% 50%; }
}

/* Boş durumlar — gradient marka ikonu, daha şık */
.empty-state { padding: 3rem 1rem; }
.empty-state .empty-icon {
    font-size: 3.2rem;
    background: linear-gradient(135deg, var(--gt-primary), var(--gt-accent));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    opacity: .9;
}

/* Tablo başlıkları — ince, kurumsal */
.table > thead th {
    font-size: .74rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--gt-text-muted);
    font-weight: 700;
}

/* Görev başlık linki — temiz, hover'da marka rengi */
.gorev-baslik-link { text-decoration: none; }

/* Erişilebilirlik — hareket azaltma tercihinde animasyonları kapat */
@media (prefers-reduced-motion: reduce) {
    main.container > *, .auth-hero, .stat-card, .btn, .card {
        animation: none !important;
        transition: none !important;
    }
    main.container > * { opacity: 1 !important; transform: none !important; }
}

/* ════════════════════════════════════════════════════════════
   FRONTEND CİLA — 3. dalga: sinematik final (güvenli, ölçülü)
   ════════════════════════════════════════════════════════════ */

/* İlerleme çubukları — soldan dolma animasyonu + marka degradesi
   (bg-success gibi özel renkliler korunur, sadece düz çubuklar degrade olur) */
.progress { overflow: hidden; border-radius: 999px; }
.progress-bar {
    transform-origin: left center;
    animation: gt-bar-fill 1.1s cubic-bezier(.16, 1, .3, 1) both;
    border-radius: 999px;
}
.progress-bar:not([class*="bg-"]) {
    background: linear-gradient(90deg, var(--gt-primary), var(--gt-accent));
}
@keyframes gt-bar-fill { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* Auth hero — yüzen ışık küreleri (sinematik derinlik) */
.auth-hero { position: relative; overflow: hidden; }
.auth-hero > * { position: relative; z-index: 1; }
.auth-hero::before, .auth-hero::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    filter: blur(44px);
    pointer-events: none;
    z-index: 0;
}
.auth-hero::before {
    width: 220px; height: 220px;
    background: rgba(255, 255, 255, 0.28);
    top: -60px; right: -50px;
    animation: gt-float 9s ease-in-out infinite;
}
.auth-hero::after {
    width: 180px; height: 180px;
    background: rgba(236, 72, 153, 0.45);
    bottom: -50px; left: -40px;
    animation: gt-float 11s ease-in-out infinite reverse;
}
@keyframes gt-float {
    0%, 100% { transform: translate(0, 0); }
    50%      { transform: translate(22px, -22px); }
}

/* İçerik kartları — hover'da çok hafif kalkış (etkileşim hissi) */
.card.shadow-sm:hover { transform: translateY(-2px); }
.card.shadow-sm { transition: transform .22s cubic-bezier(.4, 0, .2, 1), box-shadow .22s ease; }

/* Sayaç animasyonu sırasında rakamlar sabit genişlikte (zıplama olmasın) */
.stat-value { font-variant-numeric: tabular-nums; }

/* Hareket azaltma — 3. dalga animasyonlarını da kapat */
@media (prefers-reduced-motion: reduce) {
    .progress-bar, .auth-hero::before, .auth-hero::after, .card.shadow-sm {
        animation: none !important;
        transition: none !important;
        transform: none !important;
    }
}

/* ════════════════════════════════════════════════════════════
   AUTH EKRANLARI — tam ekran sinematik (sadece login/kayıt)
   ════════════════════════════════════════════════════════════ */

/* Tüm ekran zengin gradient mesh (her tema) */
body.auth-bg {
    background:
        radial-gradient(circle at 18% 18%, rgba(124, 58, 237, 0.55), transparent 45%),
        radial-gradient(circle at 82% 26%, rgba(236, 72, 153, 0.45), transparent 45%),
        radial-gradient(circle at 50% 95%, rgba(99, 102, 241, 0.55), transparent 50%),
        linear-gradient(135deg, #4f46e5 0%, #7c3aed 55%, #c026d3 100%) !important;
    background-attachment: fixed !important;
}

/* Form kartı — buzlu cam (renkli zeminde yüzer) */
body.auth-bg .auth-card {
    backdrop-filter: blur(18px) saturate(150%);
    -webkit-backdrop-filter: blur(18px) saturate(150%);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset, 0 30px 70px rgba(76, 29, 149, 0.35) !important;
}
:root[data-tema="light"] body.auth-bg .auth-card {
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid rgba(255, 255, 255, 0.65);
}
:root[data-tema="dark"] body.auth-bg .auth-card {
    background: rgba(22, 31, 51, 0.74);
    border: 1px solid rgba(255, 255, 255, 0.12);
}

/* Hero — renkli zeminde belirginlik için daha derin gölge */
body.auth-bg .auth-hero {
    box-shadow: 0 30px 70px rgba(76, 29, 149, 0.4), 0 1px 0 rgba(255, 255, 255, 0.25) inset !important;
}

/* Footer auth'ta saydam + açık metin */
body.auth-bg .footer {
    background: transparent !important;
    border-top: 1px solid rgba(255, 255, 255, 0.18) !important;
    color: rgba(255, 255, 255, 0.85) !important;
}
body.auth-bg .footer a,
body.auth-bg .footer span,
body.auth-bg .footer .bi { color: rgba(255, 255, 255, 0.9) !important; }
