﻿/* ============================================================
   TMBYS DESIGN SYSTEM v2.0
   Tek otorite kaynak â€” tÃ¼m token, bileÅŸen ve Bootstrap override'larÄ±
   Bu dosya custom.css'in yerini almÄ±ÅŸtÄ±r.

   BÃ¶lÃ¼mler:
     1. Design Tokens (CSS deÄŸiÅŸkenleri)
     2. Base Reset
     3. Bootstrap & Tabler Override KatmanÄ±
     4. BileÅŸenler
        4a. Sayfa BaÅŸlÄ±ÄŸÄ±   .ds-page-header
        4b. Kartlar          .ds-card
        4c. Tablolar         .ds-table
        4d. Ä°statistik       .ds-stat
        4e. Butonlar         .ds-btn
        4f. Rozetler         .ds-badge
        4g. Sekmeler         .ds-tabs
        4h. Formlar          .ds-input / .ds-label
        4i. Stepper          .ds-stepper
        4j. BoÅŸ Durum        .ds-empty
        4k. UyarÄ± KutularÄ±   .ds-alert
        4l. Avatar           .ds-avatar
        4m. AraÃ§ Ã‡ubuÄŸu      .ds-toolbar
        4n. Toast            .t-toast (global)
        4o. YÃ¼kleme Ã‡ubuÄŸu   .t-loading-bar (global)
     5. YardÄ±mcÄ± SÄ±nÄ±flar
     6. DuyarlÄ± (Responsive)
     7. Animasyon
     8. BaskÄ± (Print)
   ============================================================ */


/* ============================================================
   1. DESIGN TOKENS
   ============================================================ */
:root {
  /* ---- Primary (AdminLayout Razor tarafÄ±ndan tenant rengine gÃ¶re override edilir) ---- */
  --ds-primary:         #1e3a5f;   /* lacivert â€” kurumsal ana renk */
  --ds-primary-dark:    #0f2240;
  --ds-primary-light:   #2d5288;
  --ds-primary-50:      #eef2f9;   /* Ã§ok aÃ§Ä±k tint â€” hover bg, focus ring vb. */
  --ds-primary-rgb:     30, 58, 95;

  /* ---- Semantic Aksan Renkleri (anlam taÅŸÄ±yan, dekoratif deÄŸil) ---- */
  --ds-danger:          #dc2626;
  --ds-danger-dark:     #b91c1c;
  --ds-danger-light:    #fef2f2;
  --ds-danger-rgb:      220, 38, 38;

  --ds-warning:         #d97706;
  --ds-warning-dark:    #b45309;
  --ds-warning-light:   #fffbeb;

  --ds-success:         #16a34a;
  --ds-success-dark:    #15803d;
  --ds-success-light:   #f0fdf4;

  --ds-info:            #0284c7;
  --ds-info-light:      #eff6ff;

  /* ---- YÃ¼zey & KenarlÄ±k ---- */
  --ds-surface:         #ffffff;
  --ds-surface-alt:     #f8fafc;   /* kart baÅŸlÄ±ÄŸÄ±, zebra satÄ±r vb. */
  --ds-surface-hover:   #f1f5f9;
  --ds-border:          #e2e8f0;
  --ds-border-dark:     #cbd5e1;

  /* ---- Tipografi ---- */
  --ds-text:            #0f172a;
  --ds-text-secondary:  #475569;
  --ds-text-subtle:     #64748b;   /* aÃ§Ä±k yÃ¼zeyde okunabilir ikincil metin */
  --ds-text-muted:      #94a3b8;   /* yalnÄ±zca dekoratif / placeholder */
  --ds-font:            'Segoe UI', system-ui, -apple-system, sans-serif;

  /* ---- Geriye DÃ¶nÃ¼k Uyumluluk KÃ¶prÃ¼sÃ¼ ---- */
  --primary-color: var(--ds-primary);   /* chat widget + eski kod --primary-color kullanÄ±yor */

  /* ---- Boyut SkalasÄ± ---- */
  --ds-text-xs:    0.6875rem;  /* 11px */
  --ds-text-sm:    0.8125rem;  /* 13px */
  --ds-text-base:  0.875rem;   /* 14px */
  --ds-text-md:    1rem;       /* 16px */
  --ds-text-lg:    1.125rem;   /* 18px */
  --ds-text-xl:    1.375rem;   /* 22px */
  --ds-text-2xl:   1.625rem;   /* 26px */

  /* ---- BoÅŸluk SkalasÄ± ---- */
  --ds-sp-1: 4px;
  --ds-sp-2: 8px;
  --ds-sp-3: 12px;
  --ds-sp-4: 16px;
  --ds-sp-5: 20px;
  --ds-sp-6: 24px;
  --ds-sp-7: 32px;
  --ds-sp-8: 48px;

  /* ---- Kenar YarÄ±Ã§apÄ± ---- */
  --ds-radius-xs: 4px;
  --ds-radius-sm: 6px;
  --ds-radius:    10px;
  --ds-radius-lg: 14px;
  --ds-radius-xl: 20px;

  /* ---- GÃ¶lge ---- */
  --ds-shadow-xs: 0 1px 2px rgba(0,0,0,.05);
  --ds-shadow-sm: 0 1px 3px rgba(0,0,0,.06), 0 2px 6px rgba(0,0,0,.04);
  --ds-shadow:    0 4px 12px rgba(0,0,0,.08), 0 2px 4px rgba(0,0,0,.04);
  --ds-shadow-lg: 0 8px 24px rgba(0,0,0,.10), 0 4px 8px rgba(0,0,0,.06);

  /* ---- GeÃ§iÅŸ ---- */
  --ds-transition: 150ms ease;

  /* ---- Z-Index ---- */
  --ds-z-dropdown: 1000;
  --ds-z-sticky:   1020;
  --ds-z-modal:    1050;
  --ds-z-toast:    9090;
}


/* ============================================================
   2. BASE RESET
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }

body {
  font-family: var(--ds-font);
  font-size: var(--ds-text-base);
  color: var(--ds-text);
  -webkit-font-smoothing: antialiased;
}

a {
  color: var(--ds-primary);
  transition: color var(--ds-transition);
}
a:hover { color: var(--ds-primary-dark); }

::selection {
  background: rgba(var(--ds-primary-rgb), .12);
  color: var(--ds-primary-dark);
}

::-webkit-scrollbar { width: 7px; height: 7px; }
::-webkit-scrollbar-track { background: var(--ds-surface-alt); }
::-webkit-scrollbar-thumb { background: var(--ds-border-dark); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--ds-text-muted); }


/* ============================================================
   3. BOOTSTRAP & TABLER OVERRIDE KATMANI
   Mevcut view'larda .btn-primary, .card, .table vb. kullanÄ±lÄ±yor.
   Bu bÃ¶lÃ¼m onlarÄ± DS tokenlarÄ±na baÄŸlar; view deÄŸiÅŸikliÄŸi GEREKMEZ.
   ============================================================ */

/* --- Butonlar --- */
.btn {
  border-radius: var(--ds-radius-sm);
  font-weight: 600;
  font-size: var(--ds-text-sm);
  transition: all var(--ds-transition);
}
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }

.btn-primary {
  background: var(--ds-primary) !important;
  border-color: var(--ds-primary) !important;
  color: #fff !important;
  box-shadow: 0 2px 8px rgba(var(--ds-primary-rgb), .20);
}
.btn-primary:hover, .btn-primary:focus {
  background: var(--ds-primary-dark) !important;
  border-color: var(--ds-primary-dark) !important;
  box-shadow: 0 4px 14px rgba(var(--ds-primary-rgb), .28);
}
.btn-outline-primary {
  color: var(--ds-primary) !important;
  border-color: var(--ds-primary) !important;
}
.btn-outline-primary:hover {
  background: var(--ds-primary) !important;
  color: #fff !important;
}

.btn-danger {
  background: var(--ds-danger) !important;
  border-color: var(--ds-danger) !important;
  box-shadow: 0 2px 8px rgba(var(--ds-danger-rgb), .18);
}
.btn-danger:hover {
  background: var(--ds-danger-dark) !important;
  border-color: var(--ds-danger-dark) !important;
}
.btn-outline-danger { color: var(--ds-danger) !important; border-color: var(--ds-danger) !important; }
.btn-outline-danger:hover { background: var(--ds-danger) !important; color: #fff !important; }

.btn-success {
  background: var(--ds-success) !important;
  border-color: var(--ds-success) !important;
}
.btn-success:hover { background: var(--ds-success-dark) !important; border-color: var(--ds-success-dark) !important; }

.btn-warning {
  background: var(--ds-warning) !important;
  border-color: var(--ds-warning) !important;
  color: #fff !important;
}
.btn-warning:hover { background: var(--ds-warning-dark) !important; color: #fff !important; }

.btn-info {
  background: var(--ds-info) !important;
  border-color: var(--ds-info) !important;
  color: #fff !important;
}

.btn-secondary {
  background: var(--ds-surface-alt) !important;
  border-color: var(--ds-border-dark) !important;
  color: var(--ds-text-secondary) !important;
}
.btn-secondary:hover {
  background: var(--ds-surface-hover) !important;
  color: var(--ds-text) !important;
}

/* --- Kartlar --- */
.card {
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius-lg);
  box-shadow: var(--ds-shadow-sm);
  transition: box-shadow var(--ds-transition);
  overflow: hidden;
}
.card:hover { box-shadow: var(--ds-shadow); }
.card-header {
  background: var(--ds-surface-alt);
  border-bottom: 1px solid var(--ds-border);
  font-weight: 700;
  font-size: var(--ds-text-sm);
  color: var(--ds-text);
  padding: 13px 18px;
}
.card-header .fas, .card-header .far, .card-header .fa {
  color: var(--ds-primary);
  margin-right: 7px;
}
.card-body { padding: 18px; }
.card-footer {
  background: var(--ds-surface-alt);
  border-top: 1px solid var(--ds-border);
  padding: 11px 18px;
}

/* --- Tablolar --- */
.table {
  font-size: var(--ds-text-sm);
  color: var(--ds-text);
}
.table > thead > tr > th {
  background: var(--ds-surface-alt);
  border-bottom: 2px solid var(--ds-border-dark);
  padding: 10px 14px;
  font-weight: 700;
  font-size: var(--ds-text-xs);
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--ds-text-secondary);
  white-space: nowrap;
}
.table > tbody > tr { transition: background var(--ds-transition); }
.table > tbody > tr:hover { background: var(--ds-surface-alt) !important; }
.table > tbody > tr > td {
  padding: 11px 14px;
  vertical-align: middle;
  border-bottom: 1px solid var(--ds-border);
}
.table-striped > tbody > tr:nth-of-type(odd) > * {
  background: rgba(248,250,252,.6);
}
/* KÃ¶tÃ¼ gÃ¶rÃ¼nen dark temalarÄ± sÄ±fÄ±rla */
.table-dark thead { background: var(--ds-primary) !important; }
.table-dark thead th { color: #fff !important; border-color: rgba(255,255,255,.12) !important; }

/* --- Rozetler --- */
.badge {
  font-weight: 600;
  font-size: var(--ds-text-xs);
  letter-spacing: .03em;
  padding: 4px 9px;
  border-radius: 20px;
}
.badge.bg-primary { background: var(--ds-primary) !important; }
.badge.bg-danger   { background: var(--ds-danger)  !important; }
.badge.bg-success  { background: var(--ds-success) !important; }
.badge.bg-warning  { background: var(--ds-warning) !important; color: #fff !important; }
.badge.bg-info     { background: var(--ds-info)    !important; color: #fff !important; }
.badge.bg-secondary { background: var(--ds-text-muted) !important; }

/* --- Form Kontrolleri --- */
.form-control, .form-select {
  border-color: var(--ds-border-dark);
  border-radius: var(--ds-radius-sm);
  padding: 9px 12px;
  font-size: var(--ds-text-base);
  color: var(--ds-text);
  transition: border-color var(--ds-transition), box-shadow var(--ds-transition);
}
.form-control:focus, .form-select:focus {
  border-color: var(--ds-primary);
  box-shadow: 0 0 0 3px rgba(var(--ds-primary-rgb), .12);
}
.form-label {
  font-weight: 600;
  font-size: var(--ds-text-sm);
  color: var(--ds-text-secondary);
  margin-bottom: var(--ds-sp-2);
}
.form-check-input:checked {
  background-color: var(--ds-primary) !important;
  border-color: var(--ds-primary) !important;
}

/* --- Nav Tabs --- */
.nav-tabs {
  border-bottom: 2px solid var(--ds-border);
  gap: 0;
}
.nav-tabs .nav-link {
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  color: var(--ds-text-secondary);
  font-weight: 600;
  font-size: var(--ds-text-sm);
  padding: 10px 16px;
  border-radius: 0;
  transition: color var(--ds-transition), border-color var(--ds-transition);
}
.nav-tabs .nav-link:hover { color: var(--ds-primary); }
.nav-tabs .nav-link.active,
.nav-tabs .nav-link.active:focus,
.card-header-tabs .nav-link.active {
  color: var(--ds-primary) !important;
  border-bottom-color: var(--ds-primary) !important;
  background: transparent;
  font-weight: 700;
}

/* --- Nav Pills --- */
.nav-pills .nav-link {
  border-radius: var(--ds-radius-sm);
  font-weight: 600;
  font-size: var(--ds-text-sm);
  color: var(--ds-text-secondary);
}
.nav-pills .nav-link.active {
  background: var(--ds-primary) !important;
  color: #fff !important;
}

/* --- Modaller --- */
.modal-content {
  border: none;
  border-radius: var(--ds-radius-lg);
  box-shadow: var(--ds-shadow-lg);
  overflow: hidden;
}
.modal-header {
  background: var(--ds-primary);
  color: #fff;
  border-bottom: none;
  padding: 15px 20px;
  border-radius: var(--ds-radius-lg) var(--ds-radius-lg) 0 0;
}
.modal-header .modal-title { font-weight: 700; color: #fff; font-size: var(--ds-text-md); }
.modal-header .btn-close { filter: brightness(0) invert(1); opacity: .8; }
.modal-header .btn-close:hover { opacity: 1; }
.modal-body { padding: 20px; }
.modal-footer { padding: 12px 20px; border-top: 1px solid var(--ds-border); }

/* --- Dropdown --- */
.dropdown-menu {
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius);
  box-shadow: var(--ds-shadow-lg);
  padding: 5px;
}
.dropdown-item {
  border-radius: var(--ds-radius-sm);
  padding: 8px 13px;
  font-size: var(--ds-text-sm);
  font-weight: 500;
  color: var(--ds-text);
  transition: background var(--ds-transition), color var(--ds-transition);
}
.dropdown-item:hover { background: var(--ds-primary-50); color: var(--ds-primary); }
.dropdown-item.active, .dropdown-item:active {
  background: var(--ds-primary);
  color: #fff;
}

/* --- UyarÄ± KutularÄ± --- */
.alert {
  border-radius: var(--ds-radius);
  border: none;
  border-left: 4px solid;
  font-size: var(--ds-text-sm);
  padding: 12px 16px;
}
.alert-primary  { background: var(--ds-primary-50);     color: var(--ds-primary-dark); border-left-color: var(--ds-primary); }
.alert-danger   { background: var(--ds-danger-light);   color: #991b1b;                border-left-color: var(--ds-danger); }
.alert-warning  { background: var(--ds-warning-light);  color: #854d0e;                border-left-color: var(--ds-warning); }
.alert-success  { background: var(--ds-success-light);  color: #14532d;                border-left-color: var(--ds-success); }
.alert-info     { background: var(--ds-info-light);     color: #1e40af;                border-left-color: var(--ds-info); }

/* --- Sayfalama --- */
.page-link { color: var(--ds-primary); border-color: var(--ds-border); font-weight: 600; }
.page-link:hover { background: var(--ds-primary-50); color: var(--ds-primary-dark); border-color: var(--ds-primary); }
.page-item.active .page-link { background: var(--ds-primary); border-color: var(--ds-primary); }

/* --- Accordion --- */
.accordion-button { font-weight: 600; color: var(--ds-text); font-size: var(--ds-text-sm); }
.accordion-button:not(.collapsed) { background: var(--ds-primary-50); color: var(--ds-primary); box-shadow: none; }
.accordion-button:focus { box-shadow: 0 0 0 3px rgba(var(--ds-primary-rgb), .12); }

/* --- Breadcrumb --- */
.breadcrumb {
  background: var(--ds-surface-alt);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius-sm);
  padding: 8px 14px;
  font-size: var(--ds-text-sm);
  margin-bottom: var(--ds-sp-4);
}
.breadcrumb-item a { color: var(--ds-primary); text-decoration: none; }
.breadcrumb-item a:hover { text-decoration: underline; }
.breadcrumb-item.active { color: var(--ds-text-secondary); font-weight: 600; }

/* --- Progress --- */
.progress { border-radius: var(--ds-radius-sm); background: var(--ds-border); height: 8px; }
.progress-bar { border-radius: var(--ds-radius-sm); }
.progress-bar.bg-primary { background: var(--ds-primary) !important; }
.progress-bar.bg-success { background: var(--ds-success) !important; }
.progress-bar.bg-danger  { background: var(--ds-danger)  !important; }

/* --- Liste Grubu --- */
.list-group-item {
  border-color: var(--ds-border);
  padding: 11px 16px;
  font-size: var(--ds-text-sm);
  transition: background var(--ds-transition);
}
.list-group-item:hover { background: var(--ds-surface-alt); }
.list-group-item.active { background: var(--ds-primary); border-color: var(--ds-primary); }

/* --- Text Renklerini DS tokenlarÄ±na baÄŸla --- */
.text-primary { color: var(--ds-primary) !important; }
.text-danger  { color: var(--ds-danger)  !important; }
.text-success { color: var(--ds-success) !important; }
.text-warning { color: var(--ds-warning) !important; }
.text-muted   { color: var(--ds-text-muted) !important; }

/* bg-primary navbar ve diÄŸerleri */
.bg-primary { background: var(--ds-primary) !important; }


/* ============================================================
   4a. SAYFA BAÅžLIÄžI â€” .ds-page-header
   (.admin-header / .ed-hero / .t-header / .page-banner birleÅŸimi)
   ============================================================ */
.ds-page-header {
  background: var(--ds-primary);
  color: #fff;
  padding: 20px 24px;
  border-radius: var(--ds-radius-lg);
  margin-bottom: var(--ds-sp-5);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--ds-sp-4);
  position: relative;
  overflow: hidden;
}
.ds-page-header::after {
  content: '';
  position: absolute;
  top: -40px; right: -40px;
  width: 160px; height: 160px;
  border-radius: 50%;
  background: rgba(255,255,255,.04);
  pointer-events: none;
}
.ds-page-header-text { position: relative; z-index: 1; }
.ds-page-header-title {
  font-size: var(--ds-text-xl);
  font-weight: 700;
  margin: 0 0 3px;
  display: flex;
  align-items: center;
  gap: 10px;
  line-height: 1.25;
}
.ds-page-header-sub {
  font-size: var(--ds-text-sm);
  opacity: .85;
  margin: 0;
  font-weight: 400;
}
.ds-page-header-actions {
  display: flex;
  gap: var(--ds-sp-2);
  flex-wrap: wrap;
  align-items: center;
  position: relative;
  z-index: 1;
}

/* Renk varyantlarÄ± */
.ds-page-header--danger  { background: var(--ds-danger); }
.ds-page-header--success { background: var(--ds-success); }
.ds-page-header--dark    { background: var(--ds-text); }
.ds-page-header--neutral { background: var(--ds-surface); color: var(--ds-text); border: 1px solid var(--ds-border); }
.ds-page-header--neutral .ds-page-header-sub { opacity: 1; color: var(--ds-text-secondary); }


/* ============================================================
   4b. KARTLAR â€” .ds-card
   (.card / .panel / .t-card / .stat-card / .hero-box birleÅŸimi)
   ============================================================ */
.ds-card {
  background: var(--ds-surface);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius-lg);
  box-shadow: var(--ds-shadow-sm);
  transition: box-shadow var(--ds-transition);
  overflow: hidden;
}
.ds-card:hover { box-shadow: var(--ds-shadow); }

.ds-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 13px 18px;
  border-bottom: 1px solid var(--ds-border);
  background: var(--ds-surface-alt);
  gap: var(--ds-sp-3);
  flex-wrap: wrap;
}
.ds-card-title {
  font-size: var(--ds-text-sm);
  font-weight: 700;
  color: var(--ds-text);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}
.ds-card-title i { color: var(--ds-primary); }
.ds-card-actions { display: flex; gap: var(--ds-sp-2); align-items: center; }

.ds-card-body { padding: 18px; }
.ds-card-footer {
  padding: 11px 18px;
  border-top: 1px solid var(--ds-border);
  background: var(--ds-surface-alt);
}

/* Sol kenar varyantlarÄ± */
.ds-card--primary { border-left: 3px solid var(--ds-primary); }
.ds-card--danger  { border-left: 3px solid var(--ds-danger); }
.ds-card--success { border-left: 3px solid var(--ds-success); }
.ds-card--warning { border-left: 3px solid var(--ds-warning); }


/* ============================================================
   4c. TABLOLAR â€” .ds-table
   (.table / .t-table / .file-table / .t-ticket-table birleÅŸimi)
   ============================================================ */
.ds-table-wrap {
  background: var(--ds-surface);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius-lg);
  box-shadow: var(--ds-shadow-sm);
  overflow: hidden;
}
.ds-table-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 13px 18px;
  border-bottom: 1px solid var(--ds-border);
  background: var(--ds-surface-alt);
  flex-wrap: wrap;
  gap: var(--ds-sp-3);
}
.ds-table-header h3, .ds-table-header h4 {
  font-size: var(--ds-text-sm);
  font-weight: 700;
  color: var(--ds-text);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 7px;
}
.ds-table-header h3 i, .ds-table-header h4 i { color: var(--ds-primary); }

.ds-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--ds-text-sm);
}
.ds-table thead tr {
  background: var(--ds-surface-alt);
  border-bottom: 2px solid var(--ds-border-dark);
}
.ds-table thead th {
  padding: 10px 14px;
  text-align: left;
  font-weight: 700;
  font-size: var(--ds-text-xs);
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--ds-text-secondary);
  white-space: nowrap;
}
.ds-table tbody tr {
  border-bottom: 1px solid var(--ds-border);
  transition: background var(--ds-transition);
}
.ds-table tbody tr:last-child { border-bottom: none; }
.ds-table tbody tr:hover { background: var(--ds-surface-alt); }
.ds-table tbody td {
  padding: 11px 14px;
  vertical-align: middle;
  color: var(--ds-text);
}
.ds-table .ds-cell-main { font-weight: 700; }
.ds-table .ds-cell-sub  { font-size: var(--ds-text-xs); color: var(--ds-text-subtle); margin-top: 2px; }

/* Tablo altÄ± Ã¶zet satÄ±rÄ± */
.ds-table tfoot td {
  padding: 10px 14px;
  font-weight: 700;
  border-top: 2px solid var(--ds-border-dark);
  background: var(--ds-surface-alt);
}

/* Responsive wrapper */
.ds-table-responsive { overflow-x: auto; -webkit-overflow-scrolling: touch; }


/* ============================================================
   4d. Ä°STATÄ°STÄ°K KARTI â€” .ds-stat
   (.stat-card / .t-stat / .t-kpi / .t-portal-stat birleÅŸimi)
   ============================================================ */
.ds-stat-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--ds-sp-4);
  margin-bottom: var(--ds-sp-5);
}
.ds-stat {
  background: var(--ds-surface);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius);
  padding: 16px 18px;
  box-shadow: var(--ds-shadow-xs);
  border-left: 3px solid var(--ds-border-dark);
  transition: box-shadow var(--ds-transition), transform var(--ds-transition);
}
.ds-stat:hover { box-shadow: var(--ds-shadow-sm); transform: translateY(-2px); }

.ds-stat-label {
  font-size: var(--ds-text-xs);
  color: var(--ds-text-secondary);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  display: flex;
  align-items: center;
  gap: 5px;
}
.ds-stat-label i { font-size: .85em; }

.ds-stat-value {
  font-size: 1.8rem;
  font-weight: 800;
  line-height: 1.1;
  margin-top: 5px;
  color: var(--ds-text);
}

/* Renk varyantlarÄ± */
.ds-stat--primary { border-left-color: var(--ds-primary); }
.ds-stat--primary .ds-stat-value { color: var(--ds-primary); }

.ds-stat--danger  { border-left-color: var(--ds-danger); }
.ds-stat--danger  .ds-stat-value { color: var(--ds-danger); }

.ds-stat--success { border-left-color: var(--ds-success); }
.ds-stat--success .ds-stat-value { color: var(--ds-success); }

.ds-stat--warning { border-left-color: var(--ds-warning); }
.ds-stat--warning .ds-stat-value { color: var(--ds-warning); }

.ds-stat--info    { border-left-color: var(--ds-info); }
.ds-stat--info    .ds-stat-value { color: var(--ds-info); }

.ds-stat-sub { font-size: var(--ds-text-xs); color: var(--ds-text-muted); margin-top: 5px; }


/* ============================================================
   4e. BUTONLAR â€” .ds-btn
   (inline style="..." ve 5+ bootstrap varyantlarÄ±nÄ±n yerini alÄ±r,
    mevcut view'larda eski sÄ±nÄ±flar Bootstrap override Ã¼zerinden
    zaten dÃ¼zelir; bu sÄ±nÄ±flar YENÄ° markup iÃ§in)
   ============================================================ */
.ds-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 15px;
  border-radius: var(--ds-radius-sm);
  font-size: var(--ds-text-sm);
  font-weight: 600;
  line-height: 1.4;
  border: 1px solid transparent;
  cursor: pointer;
  text-decoration: none;
  transition: all var(--ds-transition);
  white-space: nowrap;
  vertical-align: middle;
}
.ds-btn:hover { transform: translateY(-1px); text-decoration: none; }
.ds-btn:active { transform: translateY(0); }

/* Birincil */
.ds-btn--primary {
  background: var(--ds-primary);
  color: #fff;
  border-color: var(--ds-primary);
  box-shadow: 0 2px 6px rgba(var(--ds-primary-rgb), .18);
}
.ds-btn--primary:hover { background: var(--ds-primary-dark); color: #fff; border-color: var(--ds-primary-dark); }

/* Ä°kincil / Outline */
.ds-btn--secondary {
  background: var(--ds-surface);
  color: var(--ds-text-secondary);
  border-color: var(--ds-border-dark);
}
.ds-btn--secondary:hover { background: var(--ds-surface-hover); color: var(--ds-text); }

/* Hayalet */
.ds-btn--ghost {
  background: transparent;
  color: var(--ds-primary);
  border-color: var(--ds-primary);
}
.ds-btn--ghost:hover { background: var(--ds-primary-50); color: var(--ds-primary-dark); }

/* Tehlike / Sil */
.ds-btn--danger {
  background: var(--ds-danger);
  color: #fff;
  border-color: var(--ds-danger);
  box-shadow: 0 2px 6px rgba(var(--ds-danger-rgb), .18);
}
.ds-btn--danger:hover { background: var(--ds-danger-dark); color: #fff; border-color: var(--ds-danger-dark); }

/* BaÅŸarÄ± */
.ds-btn--success {
  background: var(--ds-success);
  color: #fff;
  border-color: var(--ds-success);
}
.ds-btn--success:hover { background: var(--ds-success-dark); color: #fff; }

/* Boyut modifiyerleri */
.ds-btn--sm  { padding: 5px 10px; font-size: var(--ds-text-xs); }
.ds-btn--lg  { padding: 11px 22px; font-size: var(--ds-text-base); }
.ds-btn--icon { width: 34px; height: 34px; padding: 0; justify-content: center; }


/* ============================================================
   4f. ROZETLER â€” .ds-badge
   (.badge / .t-badge / .dot birleÅŸimi)
   ============================================================ */
.ds-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 9px;
  border-radius: 20px;
  font-size: var(--ds-text-xs);
  font-weight: 600;
  letter-spacing: .03em;
  white-space: nowrap;
}
.ds-badge--success { background: var(--ds-success-light); color: var(--ds-success); }
.ds-badge--danger  { background: var(--ds-danger-light);  color: var(--ds-danger); }
.ds-badge--warning { background: var(--ds-warning-light); color: var(--ds-warning); }
.ds-badge--info    { background: var(--ds-info-light);    color: var(--ds-info); }
.ds-badge--primary { background: var(--ds-primary-50);    color: var(--ds-primary); }
.ds-badge--neutral {
  background: var(--ds-surface-alt);
  color: var(--ds-text-secondary);
  border: 1px solid var(--ds-border);
}
/* Dolu (solid) varyantlar */
.ds-badge--solid-success { background: var(--ds-success); color: #fff; }
.ds-badge--solid-danger  { background: var(--ds-danger);  color: #fff; }
.ds-badge--solid-warning { background: var(--ds-warning); color: #fff; }
.ds-badge--solid-primary { background: var(--ds-primary); color: #fff; }


/* ============================================================
   4g. SEKMELER â€” .ds-tabs
   (.nav-tabs / .file-tabs / .t-tabs birleÅŸimi)
   ============================================================ */
.ds-tabs {
  display: flex;
  border-bottom: 2px solid var(--ds-border);
  list-style: none;
  padding: 0;
  margin: 0 0 var(--ds-sp-5);
  gap: 0;
  overflow-x: auto;
}
.ds-tabs li { margin: 0; }
.ds-tab-link {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 10px 16px;
  font-size: var(--ds-text-sm);
  font-weight: 600;
  color: var(--ds-text-secondary);
  text-decoration: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  cursor: pointer;
  white-space: nowrap;
  transition: color var(--ds-transition), border-color var(--ds-transition);
  background: none;
  border-top: none;
  border-left: none;
  border-right: none;
}
.ds-tab-link:hover { color: var(--ds-primary); }
.ds-tab-link.active {
  color: var(--ds-primary);
  border-bottom-color: var(--ds-primary);
  font-weight: 700;
}
.ds-tab-link .badge { font-size: .6rem; }

.ds-tab-content { display: none; }
.ds-tab-content.active { display: block; }


/* ============================================================
   4h. FORMLAR â€” .ds-input / .ds-label / .ds-form-group
   (.form-control / .t-form-control birleÅŸimi)
   ============================================================ */
.ds-form-group { margin-bottom: var(--ds-sp-4); }
.ds-form-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--ds-sp-4);
}
.ds-label {
  display: block;
  font-size: var(--ds-text-sm);
  font-weight: 600;
  color: var(--ds-text-secondary);
  margin-bottom: var(--ds-sp-2);
}
.ds-label.required::after {
  content: ' *';
  color: var(--ds-danger);
}
.ds-input,
.ds-select,
.ds-textarea {
  width: 100%;
  padding: 9px 12px;
  border: 1px solid var(--ds-border-dark);
  border-radius: var(--ds-radius-sm);
  font-size: var(--ds-text-base);
  font-family: var(--ds-font);
  color: var(--ds-text);
  background: var(--ds-surface);
  transition: border-color var(--ds-transition), box-shadow var(--ds-transition);
  box-sizing: border-box;
  line-height: 1.5;
}
.ds-input:focus,
.ds-select:focus,
.ds-textarea:focus {
  border-color: var(--ds-primary);
  box-shadow: 0 0 0 3px rgba(var(--ds-primary-rgb), .10);
  outline: none;
}
.ds-input::placeholder,
.ds-textarea::placeholder { color: var(--ds-text-muted); }
.ds-textarea { resize: vertical; min-height: 90px; }
.ds-select { cursor: pointer; }

/* Hata durumu */
.ds-input.is-invalid,
.ds-select.is-invalid { border-color: var(--ds-danger); }
.ds-input.is-invalid:focus,
.ds-select.is-invalid:focus { box-shadow: 0 0 0 3px rgba(var(--ds-danger-rgb), .12); }

.ds-field-error { font-size: var(--ds-text-xs); color: var(--ds-danger); margin-top: var(--ds-sp-1); }


/* ============================================================
   4i. STEPPER â€” .ds-stepper
   (FirmaEkle .step ve custom.css .t-stepper birleÅŸimi)
   ============================================================ */
.ds-stepper {
  display: flex;
  position: relative;
  margin-bottom: var(--ds-sp-7);
  list-style: none;
  padding: 0;
}
.ds-stepper::before {
  content: '';
  position: absolute;
  top: 20px;
  left: 24px;
  right: 24px;
  height: 2px;
  background: var(--ds-border-dark);
  z-index: 0;
}
.ds-stepper-item {
  flex: 1;
  text-align: center;
  position: relative;
  z-index: 1;
  cursor: pointer;
}
.ds-stepper-num {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 2px solid var(--ds-border-dark);
  background: var(--ds-surface);
  margin: 0 auto var(--ds-sp-2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--ds-text-sm);
  font-weight: 700;
  color: var(--ds-text-muted);
  transition: all var(--ds-transition);
}
.ds-stepper-item.active .ds-stepper-num {
  border-color: var(--ds-primary);
  background: var(--ds-primary);
  color: #fff;
  box-shadow: 0 2px 8px rgba(var(--ds-primary-rgb), .25);
}
.ds-stepper-item.done .ds-stepper-num {
  border-color: var(--ds-success);
  background: var(--ds-success);
  color: #fff;
}
.ds-stepper-label {
  font-size: var(--ds-text-xs);
  font-weight: 600;
  color: var(--ds-text-muted);
  line-height: 1.3;
  max-width: 90px;
  margin: 0 auto;
}
.ds-stepper-item.active .ds-stepper-label { color: var(--ds-primary); }
.ds-stepper-item.done   .ds-stepper-label { color: var(--ds-success); }

/* Dikey stepper varyantÄ± */
.ds-stepper--vertical {
  flex-direction: column;
  gap: 0;
}
.ds-stepper--vertical::before {
  top: 24px;
  bottom: 24px;
  left: 20px;
  right: auto;
  width: 2px;
  height: auto;
}
.ds-stepper--vertical .ds-stepper-item {
  display: flex;
  align-items: flex-start;
  gap: var(--ds-sp-3);
  text-align: left;
  padding-bottom: var(--ds-sp-5);
}
.ds-stepper--vertical .ds-stepper-num { flex-shrink: 0; }
.ds-stepper--vertical .ds-stepper-label { max-width: none; margin: 8px 0 0; }


/* ============================================================
   4j. BOÅž DURUM â€” .ds-empty
   ============================================================ */
.ds-empty {
  padding: var(--ds-sp-8) var(--ds-sp-6);
  text-align: center;
  color: var(--ds-text-muted);
  background: var(--ds-surface-alt);
  border-radius: var(--ds-radius-lg);
  border: 1px dashed var(--ds-border-dark);
}
.ds-empty i {
  font-size: 2.2rem;
  opacity: .3;
  margin-bottom: var(--ds-sp-3);
  display: block;
  color: var(--ds-text-secondary);
}
.ds-empty p { margin: 0; font-size: var(--ds-text-base); }
.ds-empty small { font-size: var(--ds-text-xs); }


/* ============================================================
   4k. UYARI KUTULARI â€” .ds-alert
   ============================================================ */
.ds-alert {
  display: flex;
  align-items: flex-start;
  gap: var(--ds-sp-3);
  padding: 12px 16px;
  border-radius: var(--ds-radius);
  border-left: 4px solid;
  font-size: var(--ds-text-sm);
  margin-bottom: var(--ds-sp-4);
}
.ds-alert i { margin-top: 2px; flex-shrink: 0; }
.ds-alert--success { background: var(--ds-success-light); border-color: var(--ds-success); color: #14532d; }
.ds-alert--danger  { background: var(--ds-danger-light);  border-color: var(--ds-danger);  color: #7f1d1d; }
.ds-alert--warning { background: var(--ds-warning-light); border-color: var(--ds-warning); color: #713f12; }
.ds-alert--info    { background: var(--ds-info-light);    border-color: var(--ds-info);    color: #1e3a8a; }
.ds-alert--primary { background: var(--ds-primary-50);    border-color: var(--ds-primary); color: var(--ds-primary-dark); }


/* ============================================================
   4l. AVATAR â€” .ds-avatar
   ============================================================ */
.ds-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: var(--ds-radius);
  font-weight: 700;
  font-size: var(--ds-text-sm);
  color: #fff;
  flex-shrink: 0;
  background: var(--ds-primary);
}
.ds-avatar--sm   { width: 28px; height: 28px; font-size: var(--ds-text-xs); border-radius: var(--ds-radius-sm); }
.ds-avatar--lg   { width: 52px; height: 52px; font-size: var(--ds-text-lg); border-radius: var(--ds-radius-lg); }
.ds-avatar--circle { border-radius: 50%; }
.ds-avatar--danger  { background: var(--ds-danger); }
.ds-avatar--success { background: var(--ds-success); }
.ds-avatar--warning { background: var(--ds-warning); }
.ds-avatar--neutral { background: var(--ds-border-dark); color: var(--ds-text-secondary); }


/* ============================================================
   4m. ARAÃ‡ Ã‡UBUÄžU â€” .ds-toolbar
   ============================================================ */
.ds-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--ds-sp-5);
  flex-wrap: wrap;
  gap: var(--ds-sp-3);
}
.ds-toolbar-left, .ds-toolbar-right {
  display: flex;
  align-items: center;
  gap: var(--ds-sp-2);
  flex-wrap: wrap;
}

/* Filtre Ã§ubuÄŸu */
.ds-filter {
  display: flex;
  align-items: center;
  gap: var(--ds-sp-3);
  padding: 12px 16px;
  background: var(--ds-surface-alt);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius);
  margin-bottom: var(--ds-sp-5);
  flex-wrap: wrap;
}
.ds-filter label {
  font-weight: 600;
  font-size: var(--ds-text-sm);
  color: var(--ds-text-secondary);
  white-space: nowrap;
  margin: 0;
}


/* ============================================================
   4n. TOAST BÄ°LDÄ°RÄ°MLER â€” .t-toast (global, layout tarafÄ±ndan kullanÄ±lÄ±r)
   ============================================================ */
.t-toast-container {
  position: fixed;
  top: 70px;
  right: 18px;
  z-index: var(--ds-z-toast);
  display: flex;
  flex-direction: column;
  gap: var(--ds-sp-2);
  max-width: 360px;
}
.t-toast {
  display: flex;
  align-items: flex-start;
  gap: var(--ds-sp-3);
  padding: 13px 15px;
  background: var(--ds-surface);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius);
  box-shadow: var(--ds-shadow-lg);
  border-left: 4px solid var(--ds-border-dark);
  min-width: 280px;
  position: relative;
  overflow: hidden;
  animation: ds-toast-in .25s ease;
}
.t-toast.removing { animation: ds-toast-out .3s ease forwards; }

.t-toast-success { border-left-color: var(--ds-success); }
.t-toast-error   { border-left-color: var(--ds-danger); }
.t-toast-warning { border-left-color: var(--ds-warning); }
.t-toast-info    { border-left-color: var(--ds-info); }

.t-toast-icon { font-size: 1rem; margin-top: 2px; flex-shrink: 0; }
.t-toast-success .t-toast-icon { color: var(--ds-success); }
.t-toast-error   .t-toast-icon { color: var(--ds-danger); }
.t-toast-warning .t-toast-icon { color: var(--ds-warning); }
.t-toast-info    .t-toast-icon { color: var(--ds-info); }

.t-toast-body { flex: 1; min-width: 0; }
.t-toast-title { font-weight: 700; font-size: var(--ds-text-sm); color: var(--ds-text); }
.t-toast-msg   { font-size: var(--ds-text-xs); color: var(--ds-text-secondary); margin-top: 2px; line-height: 1.5; }
.t-toast-close {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--ds-text-muted);
  padding: 0;
  font-size: 1rem;
  line-height: 1;
  flex-shrink: 0;
  align-self: flex-start;
}
.t-toast-close:hover { color: var(--ds-text); }

.t-toast-progress {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 2px;
  background: var(--ds-border-dark);
  animation: ds-progress-shrink linear forwards;
}
.t-toast-success .t-toast-progress { background: var(--ds-success); }
.t-toast-error   .t-toast-progress { background: var(--ds-danger); }
.t-toast-warning .t-toast-progress { background: var(--ds-warning); }
.t-toast-info    .t-toast-progress { background: var(--ds-info); }


/* ============================================================
   4o. YÃœKLEME Ã‡UBUÄžU â€” .t-loading-bar (global)
   ============================================================ */
.t-loading-bar {
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 2px;
  z-index: 9999;
  display: none;
  background: var(--ds-primary);
  transition: width .15s ease;
}
.t-loading-bar.active {
  display: block;
  animation: ds-loading-shimmer 1.2s ease infinite;
  background: linear-gradient(90deg,
    transparent 0%,
    var(--ds-primary) 30%,
    var(--ds-primary-light) 60%,
    transparent 100%
  );
  background-size: 200% 100%;
}


/* ============================================================
   4p. SAYFA BANNER â€” .page-banner (geriye dÃ¶nÃ¼k uyumluluk)
   Phase 3-7'de .ds-page-header ile replace edilecek.
   ============================================================ */
.page-banner {
  background: var(--ds-primary);
  padding: 20px 24px;
  color: #fff;
  margin: 0 0 16px;
  border-radius: var(--ds-radius-lg);
  position: relative;
  overflow: hidden;
}
.page-banner::before {
  content: '';
  position: absolute;
  top: -50%; right: -10%;
  width: 300px; height: 300px;
  background: rgba(255,255,255,.04);
  border-radius: 50%;
}
.page-banner::after {
  content: '';
  position: absolute;
  bottom: -60%; left: 20%;
  width: 250px; height: 250px;
  background: rgba(255,255,255,.03);
  border-radius: 50%;
}
.page-banner-content {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px;
  position: relative;
  z-index: 1;
  max-width: 1400px;
  margin: 0 auto;
  text-align: center;
}
.page-banner-content:has(.page-banner-actions) { justify-content: space-between; text-align: left; }
.page-banner-content:has(.page-banner-actions) .page-banner-text { text-align: left; }
.page-banner-content:has(.page-banner-actions) .page-banner-title { justify-content: flex-start; }
.page-banner-text { min-width: 200px; text-align: center; }
.page-banner-title {
  font-size: 1.35rem;
  font-weight: 700;
  color: #fff;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  line-height: 1.3;
}
.page-banner-title i { font-size: 1.1rem; opacity: .85; }
.page-banner-sub { font-size: .8rem; color: rgba(255,255,255,.75); margin: 4px 0 0; font-weight: 400; }
.page-banner-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.page-banner-actions .btn { font-size: .78rem; border-radius: 6px; padding: 5px 14px; }
@media (max-width: 768px) {
  .page-banner { padding: 14px 16px; }
  .page-banner-title { font-size: 1.1rem; }
}


/* ============================================================
   5. YARDIMCI SINIFLAR
   ============================================================ */
/* Detay view iÃ§in label-value grid */
.ds-detail-grid {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 6px var(--ds-sp-4);
  font-size: var(--ds-text-sm);
}
.ds-detail-label { color: var(--ds-text-secondary); font-weight: 600; padding: 6px 0; }
.ds-detail-value { color: var(--ds-text); font-weight: 500; padding: 6px 0; word-break: break-word; }

/* Ã‡izgi ayraÃ§lar */
.ds-divider { height: 1px; background: var(--ds-border); margin: var(--ds-sp-5) 0; }

/* BÃ¶lÃ¼m baÅŸlÄ±ÄŸÄ± */
.ds-section-title {
  font-size: var(--ds-text-base);
  font-weight: 700;
  color: var(--ds-text);
  margin: 0 0 var(--ds-sp-4);
  display: flex;
  align-items: center;
  gap: 8px;
  padding-bottom: var(--ds-sp-3);
  border-bottom: 2px solid var(--ds-border);
}
.ds-section-title i { color: var(--ds-primary); }

/* Izgara yardÄ±mcÄ±larÄ± */
.ds-grid-2 { display: grid; grid-template-columns: 1fr 1fr;          gap: var(--ds-sp-5); }
.ds-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr);   gap: var(--ds-sp-5); }
.ds-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr);   gap: var(--ds-sp-4); }
.ds-grid-auto { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--ds-sp-4); }

/* Scroll container */
.ds-scroll { overflow-y: auto; }
.ds-scroll::-webkit-scrollbar { width: 5px; }
.ds-scroll::-webkit-scrollbar-track { background: transparent; }
.ds-scroll::-webkit-scrollbar-thumb { background: var(--ds-border-dark); border-radius: 3px; }

/* Zaman damgasÄ± / kÃ¼Ã§Ã¼k metin */
.ds-meta { font-size: var(--ds-text-xs); color: var(--ds-text-muted); }

/* Aktif sidebar link */
.t-active, .nav-link.t-active {
  color: var(--ds-primary) !important;
  background: var(--ds-primary-50) !important;
  font-weight: 700 !important;
}


/* ============================================================
   6. DUYARLI (RESPONSIVE)
   ============================================================ */
@media (max-width: 991px) {
  .ds-stat-row { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--ds-sp-3); }
  .ds-grid-2, .ds-grid-3, .ds-grid-4 { grid-template-columns: 1fr; }
  .ds-detail-grid { grid-template-columns: 1fr; }
  .ds-detail-label { padding: 5px 0 0; font-size: var(--ds-text-xs); }
  .ds-detail-value { padding: 1px 0 8px; border-bottom: 1px solid var(--ds-border); }
  .ds-page-header { padding: 16px 18px; }
  .ds-page-header-title { font-size: var(--ds-text-lg); }
}
@media (max-width: 768px) {
  .ds-page-header { border-radius: var(--ds-radius); flex-direction: column; align-items: flex-start; }
  .ds-card-body { padding: 14px; }
  .ds-table thead th, .ds-table tbody td { padding: 9px 10px; }
  .ds-stepper-label { display: none; } /* kÃ¼Ã§Ã¼k ekranda sadece numaralar */
  .ds-toolbar { flex-direction: column; align-items: stretch; }
  .ds-toolbar-left, .ds-toolbar-right { justify-content: space-between; }
  .ds-stat-value { font-size: 1.5rem; }
  .t-toast-container { right: 10px; left: 10px; max-width: none; }
}
@media (max-width: 576px) {
  .ds-stat-row { grid-template-columns: 1fr 1fr; gap: var(--ds-sp-3); }
  .ds-stat { padding: 12px 14px; }
  .ds-btn { padding: 7px 12px; font-size: var(--ds-text-xs); }
  .ds-grid-auto { grid-template-columns: 1fr; }
}


/* ============================================================
   7. ANÄ°MASYON
   ============================================================ */
@keyframes ds-toast-in {
  from { opacity: 0; transform: translateX(20px); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes ds-toast-out {
  from { opacity: 1; transform: translateX(0); }
  to   { opacity: 0; transform: translateX(20px); }
}
@keyframes ds-progress-shrink {
  from { width: 100%; }
  to   { width: 0%; }
}
@keyframes ds-loading-shimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
@keyframes ds-fade-in {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}
.ds-animate { animation: ds-fade-in .3s ease; }


/* ============================================================
   4q. CHAT WIDGET â€” .tchat-* / .tcal-* / .ai-*
   (AdminLayout.cshtml inline <style> bloÄŸundan taÅŸÄ±ndÄ±)
   ============================================================ */
.tchat-tab.active {
  color: var(--ds-primary) !important;
  border-bottom-color: var(--ds-primary) !important;
}
.tchat-msg { display: flex; gap: 8px; align-items: flex-start; }
.tchat-msg-mine { flex-direction: row-reverse; }
.tchat-bubble {
  max-width: 75%;
  padding: 8px 12px;
  border-radius: 12px;
  font-size: .8rem;
  line-height: 1.4;
  word-break: break-word;
}
.tchat-bubble-other { background: #f1f5f9; color: #1e293b; border-bottom-left-radius: 4px; }
.tchat-bubble-mine  { background: var(--ds-primary); color: #fff; border-bottom-right-radius: 4px; }
.tchat-bubble-name  { font-size: .65rem; font-weight: 700; margin-bottom: 2px; }
.tchat-bubble-time  { font-size: .6rem; opacity: .6; margin-top: 2px; text-align: right; }

.tchat-user-item { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-radius: 10px; cursor: pointer; transition: all .15s; }
.tchat-user-item:hover { background: #f1f5f9; }
.tchat-user-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }

.tchat-file-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  background: rgba(255,255,255,.15);
  border-radius: 8px;
  text-decoration: none;
  font-size: .75rem;
  margin-top: 4px;
  transition: all .2s;
}
.tchat-bubble-other .tchat-file-link { background: rgba(0,0,0,.06); color: #1e293b; }
.tchat-bubble-mine  .tchat-file-link { background: rgba(255,255,255,.2); color: #fff; }
.tchat-file-link:hover { opacity: .8; }

#tChatInput:focus {
  border-color: var(--ds-primary);
  box-shadow: 0 0 0 3px rgba(var(--ds-primary-rgb), .1);
}
#tChatFab:hover { transform: scale(1.08); box-shadow: 0 6px 24px rgba(0,0,0,.3); }
#tChatPanel { display: none; }
#tChatPanel.show { display: flex !important; animation: chatSlideUp .25s ease-out; }

/* Takvim etkinlikleri */
.tcal-event {
  display: flex; gap: 10px; padding: 10px 12px;
  border-radius: 10px; border-left: 3px solid;
  margin-bottom: 6px; background: #f8fafc;
  cursor: default; transition: all .15s;
}
.tcal-event:hover { background: #f1f5f9; }
.tcal-event-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; margin-top: 5px; }

/* AI Asistan */
@keyframes aiPulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%       { opacity: .4; transform: scale(.7); }
}
.ai-msg { display: flex; gap: 8px; align-items: flex-start; }
.ai-msg-user { flex-direction: row-reverse; }
.ai-bubble {
  max-width: 85%;
  padding: 10px 14px;
  border-radius: 12px;
  font-size: .8rem;
  line-height: 1.5;
  word-break: break-word;
}
.ai-bubble-assistant { background: linear-gradient(135deg, #f0e7ff, #e0f2fe); color: #1e293b; border-bottom-left-radius: 4px; }
.ai-bubble-user      { background: linear-gradient(135deg, #8b5cf6, #06b6d4); color: #fff; border-bottom-right-radius: 4px; }
.ai-avatar {
  width: 26px; height: 26px; border-radius: 50%;
  background: linear-gradient(135deg, #8b5cf6, #06b6d4);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; font-size: .65rem; color: #fff;
}
.ai-suggestion-btn {
  display: inline-block; padding: 6px 12px; border-radius: 16px;
  border: 1px solid #e2e8f0; background: #fff; color: #475569;
  font-size: .7rem; cursor: pointer; transition: all .2s; white-space: nowrap;
}
.ai-suggestion-btn:hover { border-color: #8b5cf6; color: #8b5cf6; background: #faf5ff; }

@keyframes chatSlideUp {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes tcallPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(74,222,128,.5); }
  50%       { box-shadow: 0 0 0 16px rgba(74,222,128,0); }
}


/* ============================================================
   9. ADMIN DASHBOARD (Firmalar/AdminDashboard.cshtml)
   ============================================================ */

.admin-header {
  background: var(--ds-primary);
  color: #fff;
  padding: 24px;
  border-radius: var(--ds-radius-lg);
  margin-bottom: 24px;
  box-shadow: var(--ds-shadow-lg);
}
.admin-header h1 {
  font-size: var(--ds-text-2xl);
  font-weight: 800;
  margin: 0 0 8px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.admin-header .subtitle { font-size: var(--ds-text-base); opacity: .95; margin: 0; }

.dashboard-controls {
  display: flex;
  gap: 12px;
  margin-bottom: 20px;
  flex-wrap: wrap;
  align-items: center;
}
.search-box { flex: 1; min-width: 250px; }
.search-box input {
  width: 100%;
  padding: 10px 14px;
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius);
  font-size: var(--ds-text-base);
  transition: all .2s;
}
.search-box input:focus {
  border-color: var(--ds-primary);
  box-shadow: 0 0 0 3px rgba(var(--ds-primary-rgb), .1);
  outline: none;
}
.btn-refresh {
  padding: 10px 18px;
  background: var(--ds-primary-50);
  border: 1px solid rgba(var(--ds-primary-rgb), .2);
  border-radius: var(--ds-radius);
  color: var(--ds-primary);
  font-weight: 600;
  cursor: pointer;
  transition: all .2s;
}
.btn-refresh:hover {
  background: rgba(var(--ds-primary-rgb), .12);
  border-color: rgba(var(--ds-primary-rgb), .3);
}
.empty-state {
  background: var(--ds-surface-alt);
  border: 2px dashed var(--ds-border-dark);
  border-radius: var(--ds-radius-lg);
  padding: 40px;
  text-align: center;
  color: var(--ds-text-subtle);
}
.empty-state i { font-size: 48px; margin-bottom: 16px; opacity: .5; }
.empty-state-title { font-size: var(--ds-text-lg); font-weight: 700; margin-bottom: 8px; }

.table-container {
  background: var(--ds-surface);
  border-radius: var(--ds-radius-lg);
  box-shadow: var(--ds-shadow-sm);
  overflow: hidden;
}
.table-container .table { margin: 0; border-collapse: collapse; }
.table-container .table thead {
  background: var(--ds-surface-alt);
  border-bottom: 2px solid var(--ds-border);
}
.table-container .table thead th {
  padding: 16px 12px;
  font-weight: 700;
  color: var(--ds-text);
  font-size: var(--ds-text-sm);
  text-transform: uppercase;
  letter-spacing: .5px;
}
.table-container .table tbody tr {
  border-bottom: 1px solid var(--ds-border);
  transition: background-color .15s;
}
.table-container .table tbody tr:hover { background-color: var(--ds-surface-hover); }
.table-container .table tbody td {
  padding: 14px 12px;
  font-size: var(--ds-text-sm);
  color: var(--ds-text-secondary);
}
.firma-cell { font-weight: 600; color: var(--ds-text); }
.firma-subtitle { font-size: var(--ds-text-xs); color: var(--ds-text-subtle); margin-top: 2px; }
.status-badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: var(--ds-radius-sm);
  font-size: var(--ds-text-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
}
.status-pending { background: #fff3cd; color: #856404; }
.date-cell { color: var(--ds-text-subtle); font-size: var(--ds-text-xs); }
.actions-cell { display: flex; gap: 6px; flex-wrap: wrap; }

.btn-approve {
  padding: 6px 12px;
  background: var(--ds-success-light);
  border: 1px solid var(--ds-success);
  color: #155724;
  border-radius: var(--ds-radius-sm);
  font-size: var(--ds-text-xs);
  font-weight: 600;
  cursor: pointer;
  transition: all .2s;
}
.btn-approve:hover { background: #c3e6cb; border-color: var(--ds-success-dark); }

.btn-reject {
  padding: 6px 12px;
  background: var(--ds-danger-light);
  border: 1px solid var(--ds-danger);
  color: #721c24;
  border-radius: var(--ds-radius-sm);
  font-size: var(--ds-text-xs);
  font-weight: 600;
  cursor: pointer;
  transition: all .2s;
}
.btn-reject:hover { background: #f5c6cb; border-color: var(--ds-danger-dark); }

.btn-detail {
  padding: 6px 12px;
  background: var(--ds-info-light);
  border: 1px solid var(--ds-info);
  color: #075985;
  border-radius: var(--ds-radius-sm);
  font-size: var(--ds-text-xs);
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  display: inline-block;
  transition: all .2s;
}
.btn-detail:hover { background: #dbeafe; border-color: #0369a1; text-decoration: none; }

.btn-audit {
  padding: 6px 12px;
  background: var(--ds-primary-50);
  border: 1px solid var(--ds-primary);
  color: var(--ds-primary);
  border-radius: var(--ds-radius-sm);
  font-size: var(--ds-text-xs);
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  display: inline-block;
  transition: all .2s;
}
.btn-audit:hover { background: rgba(var(--ds-primary-rgb), .12); border-color: var(--ds-primary-dark); text-decoration: none; }

.btn-sign {
  padding: 6px 12px;
  background: #d1ecf1;
  border: 1px solid var(--ds-info);
  color: #0c5460;
  border-radius: var(--ds-radius-sm);
  font-size: var(--ds-text-xs);
  font-weight: 600;
  cursor: pointer;
  transition: all .2s;
}
.btn-sign:hover { background: #bee5eb; border-color: #0369a1; }

.btn-view-sz {
  padding: 6px 12px;
  background: var(--ds-surface-alt);
  border: 1px solid var(--ds-border-dark);
  color: var(--ds-text-secondary);
  border-radius: var(--ds-radius-sm);
  font-size: var(--ds-text-xs);
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  display: inline-block;
  transition: all .2s;
}
.btn-view-sz:hover { background: var(--ds-surface-hover); text-decoration: none; }

.section-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 30px 0 16px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--ds-border);
}
.section-header h2 { font-size: var(--ds-text-xl); font-weight: 700; margin: 0; color: var(--ds-text); }
.section-header .badge-count {
  background: var(--ds-primary);
  color: #fff;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: var(--ds-text-xs);
  font-weight: 700;
}
.section-header .badge-count.orange { background: var(--ds-warning); }
.section-header .badge-count.teal   { background: var(--ds-info); }

.imza-status { display: flex; gap: 6px; align-items: center; font-size: var(--ds-text-xs); }
.imza-ok  { color: var(--ds-success); font-weight: 700; }
.imza-bek { color: var(--ds-danger);  font-weight: 700; }

.count-badge {
  display: inline-block;
  background: var(--ds-primary);
  color: #fff;
  padding: 4px 10px;
  border-radius: 20px;
  font-size: var(--ds-text-xs);
  font-weight: 700;
}
.page-container { max-width: 1200px; margin: 0 auto; padding: 20px; }

@media (max-width: 768px) {
  .admin-header h1 { font-size: var(--ds-text-xl); }
  .admin-header { padding: 18px; }
  .dashboard-controls { flex-direction: column; }
  .search-box { min-width: auto; }
  .btn-refresh { width: 100%; }
  .table-container .table { font-size: var(--ds-text-xs); }
  .table-container .table thead th,
  .table-container .table tbody td { padding: 10px 8px; }
  .actions-cell { flex-direction: column; }
  .btn-approve, .btn-reject, .btn-detail { width: 100%; text-align: center; }
}


/* ============================================================
  10. CHARTS DASHBOARD (Dashboard/Charts.cshtml)
   ============================================================ */

[data-theme="dark"] {
  --g-bg:#0b0e13; --g-panel:#181b1f; --g-border:#2a2e35; --g-text:#d8d9da; --g-text-dim:#8b8d91;
  --g-accent:#3274d9; --g-green:#73bf69; --g-orange:#ff9830; --g-red:#f2495c; --g-yellow:#fade2a; --g-purple:#b877d9;
  --g-panel-hover:rgba(50,116,217,0.06); --g-table-head:#111316;
}
[data-theme="light"] {
  --g-bg:#f0f2f5; --g-panel:#ffffff; --g-border:#dee2e6; --g-text:#1a1e22; --g-text-dim:#6c757d;
  --g-accent:#0d6efd; --g-green:#198754; --g-orange:#fd7e14; --g-red:#dc3545; --g-yellow:#ffc107; --g-purple:#6f42c1;
  --g-panel-hover:rgba(13,110,253,0.04); --g-table-head:#f8f9fa;
}

body[data-theme] { background: var(--g-bg) !important; color: var(--g-text); font-family: 'Inter',-apple-system,sans-serif; transition: background 0.3s, color 0.3s; }

.dash-toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; padding:10px 20px; background:var(--g-panel); border-bottom:1px solid var(--g-border); position:sticky; top:0; z-index:100; }
.dash-title { font-size:1.3rem; font-weight:700; color:var(--g-text); display:flex; align-items:center; gap:8px; }
.dash-title i { color:var(--g-accent); }
.dash-actions { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.dash-actions select,.dash-actions input { background:var(--g-bg); border:1px solid var(--g-border); color:var(--g-text); padding:5px 8px; border-radius:4px; font-size:0.82rem; }
.g-btn { padding:5px 12px; border-radius:4px; border:1px solid var(--g-border); background:var(--g-panel); color:var(--g-text); cursor:pointer; font-size:0.82rem; font-weight:500; transition:all 0.2s; display:inline-flex; align-items:center; gap:4px; }
.g-btn:hover { background:var(--g-border); }
.g-btn.primary { background:var(--g-accent); border-color:var(--g-accent); color:#fff; }
.g-btn.success { background:var(--g-green); border-color:var(--g-green); color:#fff; }
.g-btn.danger  { background:var(--g-red);   border-color:var(--g-red);   color:#fff; }
.auto-refresh { display:flex; align-items:center; gap:4px; font-size:0.78rem; color:var(--g-text-dim); }
.auto-refresh .dot { width:7px; height:7px; border-radius:50%; background:var(--g-green); animation:pulse 2s infinite; }

.theme-toggle { cursor:pointer; font-size:1.1rem; padding:4px 8px; border-radius:4px; border:1px solid var(--g-border); background:var(--g-panel); color:var(--g-text); transition:all 0.2s; }
.theme-toggle:hover { background:var(--g-border); }

.dash-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:8px; padding:14px; min-height:calc(100vh - 100px); grid-auto-rows:minmax(55px,auto); }

.g-panel { background:var(--g-panel); border:1px solid var(--g-border); border-radius:6px; display:flex; flex-direction:column; overflow:hidden; transition:box-shadow 0.2s; }
.g-panel:hover { box-shadow:0 0 0 1px var(--g-accent); }
.g-panel-header { display:flex; align-items:center; justify-content:space-between; padding:7px 12px; border-bottom:1px solid var(--g-border); min-height:34px; }
.g-panel-title { font-size:0.82rem; font-weight:600; color:var(--g-text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.g-panel-actions { display:flex; gap:3px; opacity:0; transition:opacity 0.2s; }
.g-panel:hover .g-panel-actions { opacity:1; }
.g-panel-actions button { background:none; border:none; color:var(--g-text-dim); cursor:pointer; padding:2px 5px; font-size:0.72rem; border-radius:2px; }
.g-panel-actions button:hover { background:var(--g-border); color:var(--g-text); }
.g-panel-body { flex:1; padding:8px; display:flex; align-items:center; justify-content:center; min-height:0; overflow:hidden; position:relative; }
.g-panel-body canvas { width:100% !important; height:100% !important; }
.g-panel-body .leaflet-container { width:100% !important; height:100% !important; border-radius:0 0 6px 6px; }

.kpi-widget { text-align:center; display:flex; flex-direction:column; justify-content:center; align-items:center; width:100%; }
.kpi-val { font-size:2.6rem; font-weight:800; line-height:1; margin-bottom:4px; }
.kpi-label { font-size:0.78rem; color:var(--g-text-dim); text-transform:uppercase; letter-spacing:0.8px; }
.kpi-val.green  { color:var(--g-green);  }
.kpi-val.orange { color:var(--g-orange); }
.kpi-val.red    { color:var(--g-red);    }
.kpi-val.blue   { color:var(--g-accent); }
.kpi-val.purple { color:var(--g-purple); }

.g-table { width:100%; border-collapse:collapse; font-size:0.8rem; }
.g-table th { background:var(--g-table-head); color:var(--g-text-dim); text-transform:uppercase; font-size:0.7rem; letter-spacing:0.5px; padding:7px 8px; text-align:left; border-bottom:2px solid var(--g-border); position:sticky; top:0; }
.g-table td { padding:6px 8px; border-bottom:1px solid var(--g-border); color:var(--g-text); }
.g-table tr:hover td { background:var(--g-panel-hover); }
.g-table .badge { padding:2px 7px; border-radius:3px; font-size:0.7rem; font-weight:500; display:inline-block; }
.g-table .badge-aktif    { background:rgba(115,191,105,0.15); color:var(--g-green);  }
.g-table .badge-pasif    { background:rgba(242,73,92,0.15);   color:var(--g-red);    }
.g-table .badge-beklemede { background:rgba(255,152,48,0.15); color:var(--g-orange); }

.modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.6); z-index:500; display:none; align-items:center; justify-content:center; }
.modal-overlay.show { display:flex; }
.modal-box { background:var(--g-panel); border:1px solid var(--g-border); border-radius:8px; padding:22px; width:460px; max-width:95vw; }
.modal-box h3 { margin:0 0 14px; color:var(--g-text); font-size:1.05rem; }
.modal-box label { display:block; font-size:0.8rem; color:var(--g-text-dim); margin:10px 0 3px; }
.modal-box input,.modal-box select { width:100%; background:var(--g-bg); border:1px solid var(--g-border); color:var(--g-text); padding:7px 9px; border-radius:4px; font-size:0.85rem; box-sizing:border-box; }
.modal-actions { display:flex; gap:8px; justify-content:flex-end; margin-top:16px; }

.g-toast { position:fixed; bottom:16px; right:16px; background:var(--g-panel); border:1px solid var(--g-green); color:var(--g-green); padding:8px 16px; border-radius:4px; font-size:0.82rem; z-index:600; animation:slideIn 0.3s; box-shadow:0 4px 12px rgba(0,0,0,0.3); }
.g-toast.error { border-color:var(--g-red); color:var(--g-red); }

.g-loading { display:flex; align-items:center; justify-content:center; gap:6px; color:var(--g-text-dim); font-size:0.82rem; }
.g-spinner { width:18px; height:18px; border:2px solid var(--g-border); border-top-color:var(--g-accent); border-radius:50%; animation:spin 0.8s linear infinite; }

@keyframes spin     { to { transform:rotate(360deg); } }
@keyframes pulse    { 0%,100% { opacity:1; } 50% { opacity:0.4; } }
@keyframes slideIn  { from { transform:translateY(20px); opacity:0; } to { transform:translateY(0); opacity:1; } }
@keyframes fadeIn   { from { opacity:0; } to { opacity:1; } }

.g-panel.sortable-ghost  { opacity:0.4; border:2px dashed var(--g-accent); }
.g-panel.sortable-chosen { box-shadow:0 0 0 2px var(--g-accent),0 8px 25px rgba(0,0,0,0.3); z-index:50; }
.g-panel.sortable-drag   { transform:rotate(1deg); }
.drag-handle { cursor:grab; padding:2px 5px; color:var(--g-text-dim); font-size:0.72rem; }
.drag-handle:active { cursor:grabbing; }
.g-panel.editing-mode { position:relative; }
.g-panel.editing-mode::after { content:''; position:absolute; inset:0; border:2px dashed var(--g-accent); border-radius:6px; pointer-events:none; opacity:0.3; }

.resize-handle { position:absolute; bottom:0; right:0; width:18px; height:18px; cursor:nwse-resize; opacity:0; transition:opacity 0.2s; z-index:10; }
.resize-handle::after { content:''; position:absolute; bottom:3px; right:3px; width:8px; height:8px; border-right:2px solid var(--g-text-dim); border-bottom:2px solid var(--g-text-dim); }
.g-panel:hover .resize-handle { opacity:1; }

.ai-analysis-overlay { position:absolute; inset:0; background:rgba(0,0,0,0.85); z-index:20; display:flex; flex-direction:column; padding:12px; overflow-y:auto; border-radius:6px; animation:fadeIn 0.2s; }
.ai-analysis-overlay .ai-close { position:absolute; top:6px; right:8px; background:none; border:none; color:#fff; cursor:pointer; font-size:1rem; }
.ai-analysis-overlay .ai-text  { color:#e0e0e0; font-size:0.8rem; line-height:1.6; margin-top:8px; }

.chart-type-picker { display:none; position:absolute; top:34px; right:4px; background:var(--g-panel); border:1px solid var(--g-border); border-radius:6px; padding:6px; z-index:30; box-shadow:0 4px 15px rgba(0,0,0,0.3); }
.chart-type-picker.show { display:flex; gap:4px; flex-wrap:wrap; }
.chart-type-picker button { background:var(--g-bg); border:1px solid var(--g-border); color:var(--g-text); padding:4px 8px; border-radius:4px; font-size:0.72rem; cursor:pointer; transition:all 0.2s; }
.chart-type-picker button:hover,.chart-type-picker button.active { background:var(--g-accent); color:#fff; border-color:var(--g-accent); }

.g-panel.fullscreen { position:fixed !important; inset:10px !important; z-index:400 !important; grid-column:unset !important; grid-row:unset !important; border-radius:10px; box-shadow:0 0 40px rgba(0,0,0,0.5); }
.fullscreen-backdrop { position:fixed; inset:0; background:rgba(0,0,0,0.7); z-index:399; display:none; }
.fullscreen-backdrop.show { display:block; }

.date-range-group { display:flex; align-items:center; gap:4px; }
.date-range-group input[type=date] { background:var(--g-bg); border:1px solid var(--g-border); color:var(--g-text); padding:4px 6px; border-radius:4px; font-size:0.78rem; }

@media (max-width:768px) { .dash-grid { grid-template-columns:repeat(6,1fr); } .kpi-val { font-size:1.6rem; } .dash-toolbar { padding:8px 10px; } }


/* ============================================================
  11. FIRMA DETAY (Firmalar/Detay.cshtml)
   ============================================================ */

.page-wrap { max-width: 1200px; margin: 26px auto; padding: 0 10px; }

.top-hero {
  background: var(--ds-surface);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius-lg);
  box-shadow: var(--ds-shadow-sm);
  padding: 22px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.company-badge {
  width: 72px; height: 72px;
  border-radius: var(--ds-radius-lg);
  background: var(--ds-primary);
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-weight: 800; font-size: 26px;
  box-shadow: var(--ds-shadow);
  flex: 0 0 auto;
}
.company-title { font-size: 24px; font-weight: 800; color: var(--ds-text); margin: 0; }
.company-sub { color: var(--ds-text-subtle); font-size: var(--ds-text-sm); margin-top: 6px; display: flex; gap: 14px; flex-wrap: wrap; }
.company-sub i { color: var(--ds-text-muted); margin-right: 6px; }
.hero-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.btn-soft {
  border: 1px solid var(--ds-border);
  background: var(--ds-surface-alt);
  color: var(--ds-text);
  border-radius: var(--ds-radius);
  padding: 10px 14px;
  font-weight: 600;
  text-decoration: none;
}
.btn-primary-soft {
  border: 0;
  background: var(--ds-info);
  color: #fff;
  border-radius: var(--ds-radius);
  padding: 10px 14px;
  font-weight: 700;
  text-decoration: none;
}
.hero-grid { margin-top: 10px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.hero-box { border: 1px solid var(--ds-border); background: var(--ds-surface-alt); border-radius: var(--ds-radius); padding: 10px; }
.hero-box-title { font-weight: 800; color: var(--ds-text); display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.hero-item { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; padding: 6px 0; border-bottom: 1px dashed var(--ds-border); }
.hero-item:last-child { border-bottom: 0; }
.hero-main { min-width: 0; }
.hero-name { font-weight: 800; color: var(--ds-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hero-sub  { font-size: var(--ds-text-xs); color: var(--ds-text-subtle); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hero-tag  { font-size: var(--ds-text-xs); font-weight: 800; color: var(--ds-text-subtle); white-space: nowrap; }

.stats-row { margin-top: 16px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.stat-card {
  background: var(--ds-surface);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius-lg);
  box-shadow: var(--ds-shadow-xs);
  padding: 16px 16px 14px;
}
.stat-card .label { font-size: var(--ds-text-sm); color: var(--ds-text-subtle); display: flex; align-items: center; gap: 8px; }
.stat-card .value { font-size: 34px; font-weight: 900; margin-top: 6px; }
.stat-actions { display: flex; gap: 10px; margin-top: 12px; }
.stat-actions .btn { flex: 1; border-radius: var(--ds-radius); padding: 10px 12px; font-weight: 700; }
.stat-ok .value   { color: var(--ds-success); }
.stat-wait .value { color: var(--ds-warning); }
.stat-rej .value  { color: var(--ds-danger);  }

.grid-2 { margin-top: 16px; display: grid; grid-template-columns: 1fr; gap: 14px; }
.panel {
  background: var(--ds-surface);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius-lg);
  box-shadow: var(--ds-shadow-xs);
  padding: 16px;
}
.panel-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.panel-title { font-size: 18px; font-weight: 800; color: var(--ds-text); display: flex; align-items: center; gap: 10px; }
.panel-title i { color: #ffbd2e; }
.panel-subline { height: 3px; background: var(--ds-danger); border-radius: 3px; margin: 8px 0 14px; opacity: .9; }

.folder-grid { display: grid; grid-template-columns: 1fr; gap: 12px; width: 100%; }
.folder-card {
  width: 100%; border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius-lg); padding: 14px;
  background: var(--ds-surface); display: flex;
  align-items: center; justify-content: space-between;
  transition: box-shadow .15s, transform .15s; cursor: pointer;
}
.folder-card:hover { box-shadow: var(--ds-shadow); transform: translateY(-1px); }
.folder-left { display: flex; gap: 12px; align-items: flex-start; }
.folder-ico {
  width: 44px; height: 44px; border-radius: var(--ds-radius);
  display: flex; align-items: center; justify-content: center;
  background: var(--ds-primary-50); color: var(--ds-primary); font-size: 18px;
}
.folder-name { font-weight: 800; color: var(--ds-text); line-height: 1.05; white-space: pre-line; }
.badges { display: flex; gap: 6px; align-items: center; }
.dot {
  min-width: 26px; height: 22px; border-radius: 999px; padding: 0 8px;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 800; color: #fff;
}
.dot.ok   { background: var(--ds-success); }
.dot.wait { background: var(--ds-warning); }
.dot.rej  { background: var(--ds-danger);  }

.folder-details { margin-top: 10px; border: 1px solid var(--ds-border); border-radius: var(--ds-radius-lg); background: var(--ds-surface-alt); padding: 12px; }

.alt-row {
  position: relative; margin-left: 18px; background: var(--ds-surface-alt);
  border: 1px solid var(--ds-border); display: grid !important;
  grid-template-columns: 1fr auto; align-items: center;
  gap: 10px; padding: 8px 10px; border-radius: var(--ds-radius); margin-top: 10px;
}
.alt-row::before {
  content: ""; position: absolute; left: -10px; top: -10px; bottom: -10px;
  width: 2px; background: rgba(var(--ds-primary-rgb), .2); border-radius: 2px;
}
.alt-name::before  { content: "â†³"; color: var(--ds-text-muted); font-weight: 900; margin-right: 8px; }
.enalt-wrap { position: relative; margin-left: 46px; padding: 6px 10px 0; }
.enalt-wrap::before {
  content: ""; position: absolute; left: -10px; top: 0; bottom: 0;
  width: 2px; background: var(--ds-border); border-radius: 2px;
}
.enalt-item {
  display: grid !important; grid-template-columns: 1fr auto;
  align-items: center; gap: 10px; padding: 8px 10px;
  border: 1px dashed var(--ds-border); border-radius: var(--ds-radius);
  margin-bottom: 8px; background: var(--ds-surface);
}
.enalt-name::before { content: "â†³"; color: var(--ds-text-muted); font-weight: 900; margin-right: 8px; }
.alt-row .badges, .enalt-item .badges { justify-content: flex-end; flex-wrap: nowrap; }
.alt-name {
  font-weight: 800; color: var(--ds-text); display: flex;
  align-items: center; gap: 8px; min-width: 0; overflow: hidden;
}
.alt-name .alt-text { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.enalt-name {
  font-weight: 700; color: var(--ds-text-secondary); display: flex;
  align-items: center; gap: 8px; min-width: 0; overflow: hidden;
}
.enalt-name .enalt-text { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.node-action-btn { min-width: 150px; white-space: nowrap; border-radius: var(--ds-radius); font-weight: 800; padding: 7px 10px; }
.node-action-btn.btn-ai      { border-color: #6f42c1; color: #6f42c1; }
.node-action-btn.btn-ai:hover     { background: #6f42c1; color: #fff; }
.node-action-btn.btn-upload  { border-color: var(--ds-info); color: var(--ds-info); }
.node-action-btn.btn-upload:hover { background: var(--ds-info); color: #fff; }
.node-action-btn.btn-forms   { border-color: #20c997; color: #20c997; }
.node-action-btn.btn-forms:hover  { background: #20c997; color: #fff; }
.node-action-btn.btn-auto    { border-color: var(--ds-warning); color: var(--ds-warning); }
.node-action-btn.btn-auto:hover   { background: var(--ds-warning); color: #fff; }
.mini-muted { font-size: var(--ds-text-xs); color: var(--ds-text-subtle); }

#yillikPlanArea { overflow-x: auto; margin: 12px 0; position: relative; }
#yillikPlanArea .table-responsive { overflow-x: auto; -webkit-overflow-scrolling: touch; }
#yillikPlanArea table {
  width: 100% !important; border-collapse: collapse !important; font-size: 12px !important;
  margin: 0 !important; background: var(--ds-surface) !important; display: table !important; table-layout: auto;
}
#yillikPlanArea table thead {
  background: var(--ds-primary) !important; color: #fff !important;
  font-weight: 800 !important; position: sticky !important; top: 0 !important; z-index: 10 !important;
}
#yillikPlanArea table thead tr { display: table-row !important; width: 100% !important; }
#yillikPlanArea table thead th {
  padding: 10px 6px !important; text-align: left !important;
  border: 1px solid var(--ds-primary-dark) !important; white-space: nowrap !important;
  vertical-align: middle !important; color: #fff !important;
  font-weight: 800 !important; background: var(--ds-primary) !important;
}
#yillikPlanArea table tbody { display: table-row-group !important; }
#yillikPlanArea table tbody tr { display: table-row !important; border-bottom: 1px solid var(--ds-border) !important; transition: background-color .15s !important; }
#yillikPlanArea table tbody tr:hover { background-color: var(--ds-surface-hover) !important; }
#yillikPlanArea table tbody tr:nth-child(even) { background-color: var(--ds-surface-alt) !important; }
#yillikPlanArea table tbody td { display: table-cell !important; padding: 8px 6px !important; border: 1px solid var(--ds-border) !important; vertical-align: top !important; }
#yillikPlanArea table tbody td:first-child   { font-weight: 700 !important; text-align: center !important; background-color: var(--ds-primary-50) !important; min-width: 35px !important; }
#yillikPlanArea table tbody td:nth-child(2)  { font-weight: 700 !important; color: var(--ds-text) !important; min-width: 160px !important; }
#yillikPlanArea table tbody td:nth-child(3)  { color: var(--ds-text-subtle) !important; min-width: 120px !important; }
#yillikPlanArea table tbody td:nth-child(4)  { text-align: center !important; font-weight: 600 !important; min-width: 60px !important; }
#yillikPlanArea table tbody td:nth-child(n+5):nth-child(-n+16)  { text-align: center !important; background-color: #e3f2fd !important; min-width: 50px !important; }
#yillikPlanArea table tbody td:nth-child(n+17):nth-child(-n+28) { text-align: center !important; background-color: #f3e5f5 !important; min-width: 50px !important; }
#yillikPlanArea table tbody td:last-child { font-size: 11px !important; color: var(--ds-text-subtle) !important; min-width: 150px !important; }
#planGrid { width: 100%; height: 500px; border: 1px solid var(--ds-border); }
.hndle { background: var(--ds-primary) !important; color: #fff !important; }

.file-tabs { margin: 20px 0 0; display: flex; gap: 0; border-bottom: 2px solid var(--ds-border); list-style: none; padding: 0; }
.file-tab-item { margin: 0; padding: 0; }
.file-tab-link {
  display: flex; align-items: center; gap: 8px; padding: 12px 18px;
  color: var(--ds-text-subtle); font-weight: 700; text-decoration: none;
  border-bottom: 3px solid transparent; cursor: pointer; transition: all .2s;
}
.file-tab-link:hover        { color: var(--ds-info); }
.file-tab-link.active       { color: var(--ds-info); border-bottom-color: var(--ds-info); }
.file-tab-content           { display: none; padding: 16px 0; }
.file-tab-content.active    { display: block; }
.file-table                 { width: 100%; border-collapse: collapse; font-size: var(--ds-text-sm); }
.file-table thead           { background: var(--ds-surface-alt); border-bottom: 2px solid var(--ds-border); }
.file-table thead th        { padding: 12px; text-align: left; font-weight: 800; color: var(--ds-text); }
.file-table tbody tr        { border-bottom: 1px solid var(--ds-border); transition: background .15s; }
.file-table tbody tr:hover  { background: var(--ds-surface-hover); }
.file-table td              { padding: 12px; vertical-align: middle; }
.file-name  { font-weight: 700; color: var(--ds-text); }
.file-path  { font-size: var(--ds-text-xs); color: var(--ds-text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.file-action-group { display: flex; gap: 6px; justify-content: flex-end; }

.quote-contract-grid  { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 12px; }
.quote-contract-card  {
  background: var(--ds-surface-alt); border: 2px solid var(--ds-border);
  border-radius: var(--ds-radius-lg); padding: 16px; text-align: center; transition: all .2s;
}
.quote-contract-card:hover {
  border-color: var(--ds-info);
  box-shadow: 0 8px 20px rgba(var(--ds-primary-rgb), .1);
  transform: translateY(-2px);
}
.quote-contract-icon    { font-size: 32px; margin-bottom: 10px; }
.quote-contract-title   { font-weight: 800; color: var(--ds-text); margin-bottom: 4px; font-size: 15px; }
.quote-contract-desc    { font-size: var(--ds-text-xs); color: var(--ds-text-subtle); margin-bottom: 12px; }
.quote-contract-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.quote-contract-btn {
  border-radius: var(--ds-radius-sm); padding: 8px 10px; font-weight: 700; font-size: var(--ds-text-xs);
  text-decoration: none; display: inline-flex; align-items: center; justify-content: center;
  gap: 4px; transition: all .2s; border: 1px solid transparent;
}
.quote-contract-btn-primary           { background: var(--ds-info); color: #fff; }
.quote-contract-btn-primary:hover     { background: #0369a1; box-shadow: 0 4px 12px rgba(2,132,199,.3); }
.quote-contract-btn-secondary         { background: var(--ds-surface-alt); color: var(--ds-info); border-color: var(--ds-info); }
.quote-contract-btn-secondary:hover   { background: var(--ds-info); color: #fff; }
.btn-outline-purple       { color: #8b5cf6; border-color: #8b5cf6; background: transparent; }
.btn-outline-purple:hover { background: #8b5cf6; color: #fff; box-shadow: 0 2px 8px rgba(139,92,246,.3); }

.plan-tbl { width: 100%; border-collapse: collapse; font-size: 10px; background: var(--ds-surface); }
.plan-tbl th, .plan-tbl td   { border: 1px solid #b0bec5; padding: 3px 4px; }
.plan-tbl .ay-h  { width: 26px; min-width: 26px; max-width: 26px; font-size: 8px; text-align: center; padding: 2px 1px; }
.plan-tbl .ay-h-g { background: #e8f5e9; color: #2e7d32; font-weight: 700; }
.plan-tbl .ay-h-r { background: #f3e5f5; color: #7b1fa2; font-weight: 700; }
.plan-tbl .ay-td  { width: 26px; min-width: 26px; max-width: 26px; text-align: center; font-size: 9px; padding: 1px; }
.plan-tbl .no-td  { width: 30px; text-align: center; font-weight: 700; background: #e8eaf6; color: #1a237e; }
.plan-tbl .faaliyet-td   { min-width: 220px; font-size: 10px; line-height: 1.3; color: var(--ds-text); }
.plan-tbl .sorumlular-td { width: 80px; min-width: 80px; text-align: center; font-size: 9px; color: var(--ds-text-subtle); }
.plan-tbl .durum-td      { width: 28px; min-width: 28px; text-align: center; font-weight: 800; font-size: 13px; }
.plan-tbl .aciklama-td   { min-width: 100px; font-size: 9px; color: var(--ds-text-secondary); line-height: 1.2; }

@media (max-width: 768px) {
  .stats-row { grid-template-columns: 1fr; }
  .quote-contract-grid { grid-template-columns: 1fr; }
  #yillikPlanArea { font-size: 11px; }
  #yillikPlanArea table thead th, #yillikPlanArea table tbody td { padding: 6px 4px; }
}
@media (max-width: 900px) { .hero-grid { grid-template-columns: 1fr; } }
@media (max-width: 640px) {
  .stats-row { grid-template-columns: 1fr; }
  .top-hero { flex-direction: column; align-items: flex-start; }
  .node-action-btn { min-width: 120px; font-size: var(--ds-text-xs); padding: 6px 8px; }
  .alt-row { margin-left: 10px; }
  .enalt-wrap { margin-left: 22px; }
  .file-tab-link { padding: 10px 12px; font-size: var(--ds-text-xs); }
  .file-table { font-size: 11px; }
  .file-table th, .file-table td { padding: 8px; }
  .quote-contract-grid { grid-template-columns: 1fr; }
}


/* ============================================================
  12. FIRMA EKLE FORMU (Firmalar/FirmaEkle.cshtml)
   ============================================================ */

.form-container {
  background: var(--ds-surface-alt);
  border-radius: 30px;
  box-shadow: 0 12px 40px rgba(32,107,196,.08);
  padding: 42px 34px 28px;
  margin-top: 48px; margin-bottom: 48px;
  max-width: 1200px; margin-left: auto; margin-right: auto;
  border: 2px solid var(--ds-border);
}
.form-header {
  text-align: center; margin-bottom: 30px;
  border-bottom: 3px solid var(--ds-primary); padding-bottom: 20px;
}
.form-header h2 { color: var(--ds-primary); font-weight: 800; font-size: 2rem; margin: 0 0 5px; }
.form-number {
  background: var(--ds-primary); color: #fff;
  padding: 8px 15px; border-radius: 20px; font-size: .85rem;
  display: inline-block; margin-bottom: 15px; font-weight: 700;
}
.step-indicator { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; margin-bottom: 30px; }
.step {
  text-align: center; padding: 12px 8px; border-radius: var(--ds-radius);
  border: 2px solid var(--ds-border); background: var(--ds-surface-alt);
  font-weight: 600; color: var(--ds-text); font-size: .85rem;
  cursor: pointer; transition: all .3s;
}
.step.active    { background: var(--ds-primary); color: #fff; border-color: var(--ds-primary); }
.step.completed { background: var(--ds-success); color: #fff; border-color: var(--ds-success); }
.step-content        { display: none; }
.step-content.active { display: block; animation: fadeIn .3s; }

.section-title {
  color: var(--ds-primary-dark);
  font-weight: 700; font-size: 1.1rem;
  margin-top: 20px; margin-bottom: 15px;
  padding-bottom: 10px; border-bottom: 2px solid var(--ds-primary);
}
.section-title:first-child { margin-top: 0; }

.form-container .form-label {
  font-size: .9rem; font-weight: 600; color: var(--ds-primary);
  margin-bottom: 6px; display: block;
}
.form-container .form-label.required::after { content: " *"; color: var(--ds-danger); font-weight: bold; }

.form-container .form-control,
.form-container .form-select {
  border-radius: var(--ds-radius-sm); border: 1.5px solid var(--ds-border);
  font-size: .9rem; background: var(--ds-surface-alt); color: var(--ds-text);
  padding: 10px 12px; margin-bottom: 12px; box-shadow: none;
  transition: border-color .17s; width: 100%; box-sizing: border-box;
}
.form-container .form-control:focus,
.form-container .form-select:focus {
  border-color: var(--ds-primary); background: var(--ds-surface);
  box-shadow: 0 0 0 3px rgba(var(--ds-primary-rgb), .15); outline: none;
}
.form-container .form-control:invalid,
.form-container .form-select:invalid { border-color: var(--ds-danger); }

.form-group { margin-bottom: 12px; }
.form-group-row { display: grid; gap: 15px; margin-bottom: 12px; }
.form-group-row.two-cols   { grid-template-columns: 1fr 1fr; }
.form-group-row.three-cols { grid-template-columns: 1fr 1fr 1fr; }
.form-group-row.four-cols  { grid-template-columns: 1fr 1fr 1fr 1fr; }

.checkbox-group, .radio-group { display: flex; gap: 15px; margin-bottom: 12px; flex-wrap: wrap; }
.checkbox-item, .radio-item   { display: flex; align-items: center; gap: 6px; }
.checkbox-item input, .radio-item input { width: 16px; height: 16px; cursor: pointer; accent-color: var(--ds-primary); margin: 0; }
.checkbox-item label, .radio-item label { margin: 0; cursor: pointer; font-size: .9rem; user-select: none; }

.button-group {
  display: flex; justify-content: space-between; gap: 15px;
  margin-top: 30px; padding-top: 20px; border-top: 2px solid var(--ds-border);
}
.form-container .btn {
  border-radius: var(--ds-radius-sm); border: none; font-weight: 700;
  font-family: var(--ds-font); font-size: .95rem;
  padding: 11px 22px; cursor: pointer; transition: all .3s; min-width: 110px;
}
.form-container .btn-primary              { background: var(--ds-primary); color: #fff; }
.form-container .btn-primary:hover:not(:disabled) { background: var(--ds-primary-dark); }
.form-container .btn-secondary            { background: var(--ds-surface-alt); color: var(--ds-primary); border: 2px solid var(--ds-primary) !important; }
.form-container .btn-secondary:hover:not(:disabled) { background: var(--ds-primary); color: #fff; }
.form-container .btn-success              { background: linear-gradient(90deg, #21b365, #1a9050); color: #fff; }
.form-container .btn-success:hover:not(:disabled) { background: var(--ds-success-dark); }
.form-container .btn:disabled             { opacity: .6; cursor: not-allowed; }

.form-container .alert { padding: 12px 15px; border-radius: var(--ds-radius-sm); margin-bottom: 15px; border-left: 4px solid; font-size: .9rem; }
.form-container .alert-danger  { background: var(--ds-danger-light);  border-color: var(--ds-danger);  color: #721c24; }
.form-container .alert-success { background: var(--ds-success-light); border-color: var(--ds-success); color: #155724; }
.form-container .alert-warning { background: var(--ds-warning-light); border-color: var(--ds-warning); color: #856404; }

.form-note {
  background: var(--ds-info-light); border-left: 4px solid var(--ds-info);
  padding: 10px 12px; border-radius: var(--ds-radius-sm);
  font-size: .85rem; color: #1565c0; margin-bottom: 12px;
}
.spinner {
  display: inline-block; width: 14px; height: 14px;
  border: 2px solid rgba(255,255,255,.3); border-top-color: #fff;
  border-radius: 50%; animation: spin .8s linear infinite; margin-right: 6px;
}

@media (max-width: 768px) {
  .form-group-row.two-cols,
  .form-group-row.three-cols,
  .form-group-row.four-cols { grid-template-columns: 1fr; }
  .step-indicator { grid-template-columns: repeat(3, 1fr); }
}


/* ============================================================
  13. E-DEVLET Ä°ÅžLEMLERÄ° (EDevlet/EDevletIslemleri.cshtml)
   ============================================================ */

.ed-page { max-width: 1100px; margin: 0 auto; padding: 24px 16px 60px; }

.ed-hero {
  background: var(--ds-danger);
  border-radius: 20px; padding: 0; color: #fff; margin-bottom: 28px;
  box-shadow: 0 12px 40px rgba(220,38,38,.22); overflow: hidden; position: relative;
}
.ed-hero::before {
  content: ''; position: absolute; right: -60px; top: -60px;
  width: 280px; height: 280px; border-radius: 50%; background: rgba(255,255,255,.04);
}
.ed-hero::after {
  content: ''; position: absolute; left: -30px; bottom: -30px;
  width: 160px; height: 160px; border-radius: 50%; background: rgba(255,255,255,.03);
}
.ed-hero-inner { padding: 36px 40px 28px; position: relative; z-index: 1; }
.ed-hero-top   { display: flex; align-items: center; gap: 20px; }
.ed-hero-logo  {
  width: 72px; height: 72px; border-radius: 18px; background: rgba(255,255,255,.12);
  display: flex; align-items: center; justify-content: center; font-size: 2rem; flex-shrink: 0;
  backdrop-filter: blur(4px);
}
.ed-hero h1  { margin: 0; font-size: 1.6rem; font-weight: 800; letter-spacing: -.5px; }
.ed-hero .sub { opacity: .88; font-size: .92rem; margin-top: 4px; line-height: 1.4; }

.section-hdr { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; margin-top: 8px; }
.section-hdr .ico-box {
  width: 40px; height: 40px; border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.1rem; color: #fff; flex-shrink: 0;
}
.section-hdr h2   { margin: 0; font-size: 1.1rem; font-weight: 800; color: var(--ds-text); }
.section-hdr .desc { font-size: .78rem; color: var(--ds-text-muted); margin-top: 1px; }

.svc-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 18px; margin-bottom: 32px;
}
.svc-card {
  background: var(--ds-surface); border-radius: var(--ds-radius-lg);
  border: 1px solid var(--ds-border);
  box-shadow: var(--ds-shadow-xs); overflow: hidden;
  transition: all .2s; display: flex; flex-direction: column;
}
.svc-card:hover { transform: translateY(-4px); box-shadow: var(--ds-shadow-lg); }
.svc-card-head {
  padding: 20px 22px 16px; display: flex; align-items: flex-start; gap: 14px;
}
.svc-ico {
  width: 48px; height: 48px; border-radius: 14px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.2rem; color: #fff;
}
.svc-card-head h3    { font-size: .95rem; font-weight: 700; margin: 0 0 4px; color: var(--ds-text); }
.svc-card-head p     { font-size: .78rem; color: var(--ds-text-subtle); margin: 0; line-height: 1.4; }
.svc-card-head .kurum { font-size: .68rem; color: var(--ds-text-muted); margin-top: 4px; display: block; }
.svc-card-foot {
  margin-top: auto; padding: 14px 22px; background: var(--ds-surface-alt);
  border-top: 1px solid var(--ds-border);
  display: flex; align-items: center; justify-content: flex-end; gap: 8px;
}
.svc-link-ext {
  font-size: .78rem; font-weight: 600; color: var(--ds-danger); text-decoration: none;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 14px; border-radius: var(--ds-radius-sm);
  background: var(--ds-danger-light); transition: all .15s;
}
.svc-link-ext:hover { background: var(--ds-danger); color: #fff; }

.match-panel {
  background: var(--ds-surface); border-radius: var(--ds-radius-lg);
  border: 1px solid var(--ds-border);
  box-shadow: var(--ds-shadow-xs); overflow: hidden; margin-bottom: 32px;
}
.match-panel-head {
  padding: 18px 24px; background: var(--ds-surface-alt);
  border-bottom: 1px solid var(--ds-border);
  display: flex; align-items: center; gap: 12px;
}
.match-panel-head i   { font-size: 1.2rem; color: var(--ds-primary); }
.match-panel-head h3  { margin: 0; font-size: 1rem; font-weight: 700; color: var(--ds-primary); }
.match-panel-head .sub { font-size: .78rem; color: var(--ds-text-subtle); margin-left: auto; }
.match-panel-body { padding: 24px; }
.match-row   { display: flex; gap: 16px; flex-wrap: wrap; align-items: flex-end; margin-bottom: 16px; }
.match-field { flex: 1; min-width: 200px; }
.match-field label { display: block; font-size: .78rem; font-weight: 600; color: var(--ds-text-secondary); margin-bottom: 4px; }
.match-field input, .match-field select {
  width: 100%; border: 2px solid var(--ds-border); border-radius: var(--ds-radius);
  padding: 10px 14px; font-size: .88rem; outline: none;
  transition: border-color .15s; background: var(--ds-surface-alt);
}
.match-field input:focus, .match-field select:focus { border-color: var(--ds-primary); background: var(--ds-surface); }
.match-btn {
  padding: 10px 20px; border-radius: var(--ds-radius); border: none; font-weight: 700;
  font-size: .85rem; cursor: pointer; transition: all .15s;
  display: inline-flex; align-items: center; gap: 6px;
}
.match-btn-search       { background: var(--ds-primary); color: #fff; }
.match-btn-search:hover { background: var(--ds-primary-light); }
.match-btn-assign       { background: var(--ds-success); color: #fff; }
.match-btn-assign:hover { background: var(--ds-success-dark); }
.match-result { border-radius: var(--ds-radius); padding: 16px 20px; margin-top: 16px; display: none; }
.match-result.found    { background: var(--ds-success-light); border: 1px solid var(--ds-success); }
.match-result.notfound { background: var(--ds-warning-light); border: 1px solid var(--ds-warning); }
.match-result .d-label { font-size: .72rem; color: var(--ds-text-muted); text-transform: uppercase; letter-spacing: .5px; }
.match-result .d-value { font-size: .88rem; font-weight: 600; color: var(--ds-text); }
.new-danisman-form { display: none; margin-top: 16px; padding: 20px; background: var(--ds-surface-alt); border-radius: var(--ds-radius); border: 1px solid var(--ds-border); }

.dan-card       { background: var(--ds-surface); border-radius: var(--ds-radius-lg); border: 1px solid var(--ds-border); box-shadow: var(--ds-shadow-xs); overflow: hidden; margin-bottom: 14px; transition: all .2s; }
.dan-card:hover { box-shadow: var(--ds-shadow); }
.dan-card-head  { padding: 16px 20px; display: flex; align-items: center; gap: 14px; cursor: pointer; }
.dan-card-head:hover { background: var(--ds-surface-alt); }
.dan-avatar { width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 1rem; font-weight: 700; flex-shrink: 0; }
.dan-name   { font-weight: 700; font-size: .92rem; color: var(--ds-text); }
.dan-sub    { font-size: .72rem; color: var(--ds-text-muted); }
.dan-badge  { padding: 3px 10px; border-radius: 20px; font-size: .68rem; font-weight: 700; }
.dan-badge-ok   { background: var(--ds-success-light); color: var(--ds-success-dark); }
.dan-badge-warn { background: var(--ds-warning-light); color: var(--ds-warning-dark); }
.dan-badge-full { background: var(--ds-danger-light);  color: var(--ds-danger-dark);  }
.dan-badge-pasif { background: var(--ds-surface-alt); color: var(--ds-text-muted); }
.dan-details         { display: none; padding: 0 20px 16px; border-top: 1px solid var(--ds-border); }
.dan-details.open    { display: block; }
.dan-firma-item      { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; border-radius: var(--ds-radius); margin-bottom: 6px; background: var(--ds-surface-alt); border: 1px solid var(--ds-border); }
.dan-firma-item:hover { background: var(--ds-surface-hover); }
.dan-firma-name      { font-weight: 600; font-size: .84rem; color: var(--ds-text); }
.dan-firma-sub       { font-size: .7rem; color: var(--ds-text-muted); }
.dan-btn             { padding: 5px 12px; border-radius: var(--ds-radius-sm); font-size: .72rem; font-weight: 600; border: none; cursor: pointer; transition: all .15s; display: inline-flex; align-items: center; gap: 4px; }
.dan-btn-red         { background: var(--ds-danger-light); color: var(--ds-danger); }
.dan-btn-red:hover   { background: var(--ds-danger); color: #fff; }
.dan-btn-dark        { background: var(--ds-text); color: #fff; }
.dan-btn-dark:hover  { background: #000; }

.ed-alert-err { background: var(--ds-danger-light);  border: 1px solid var(--ds-danger);  border-radius: var(--ds-radius); padding: 14px 20px; font-size: .88rem; color: var(--ds-danger-dark);  margin-bottom: 20px; display: flex; align-items: center; gap: 10px; }
.ed-alert-ok  { background: var(--ds-success-light); border: 1px solid var(--ds-success); border-radius: var(--ds-radius); padding: 14px 20px; font-size: .88rem; color: var(--ds-success-dark); margin-bottom: 20px; display: flex; align-items: center; gap: 10px; }


/* ============================================================
  14. SÃ–ZLEÅžME ONAY & Ä°MZA (HizmetSozlesme/SozlesmeOnayImza.cshtml)
   ============================================================ */

.onay-container { max-width: 640px; margin: 40px auto; padding: 0 16px; }
.onay-card      { background: var(--ds-surface); border-radius: var(--ds-radius-lg); box-shadow: var(--ds-shadow); overflow: hidden; }
.onay-header    { background: var(--ds-primary); padding: 28px 32px; color: #fff; text-align: center; }
.onay-header h2 { margin: 0; font-size: 1.4rem; font-weight: 700; }
.onay-header p  { margin: 8px 0 0; opacity: .85; font-size: .9rem; }
.onay-body      { padding: 28px 32px; }

.sozlesme-info { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 20px; }
.sozlesme-info .info-item       { background: var(--ds-surface-alt); border-radius: var(--ds-radius-sm); padding: 12px 14px; }
.sozlesme-info .info-item label { display: block; font-size: .7rem; color: var(--ds-text-subtle); text-transform: uppercase; letter-spacing: .5px; margin-bottom: 2px; }
.sozlesme-info .info-item span  { font-weight: 600; font-size: .95rem; color: var(--ds-text); }

.sozlesme-ozet { background: var(--ds-warning-light); border: 1px solid var(--ds-warning); border-radius: var(--ds-radius-sm); padding: 14px; margin-bottom: 20px; font-size: .82rem; line-height: 1.7; color: #78350f; }
.sozlesme-ozet b { color: #92400e; }

.kase-preview            { border: 2px solid var(--ds-border); border-radius: var(--ds-radius-sm); padding: 14px; background: var(--ds-surface-alt); font-size: .78rem; line-height: 1.6; text-align: center; margin-bottom: 20px; }
.kase-preview .kase-title { font-weight: 700; font-size: .85rem; color: var(--ds-text); border-bottom: 1px solid var(--ds-border); padding-bottom: 6px; margin-bottom: 6px; }
.kase-preview .kase-vd   { border-top: 1px dashed var(--ds-border); padding-top: 4px; margin-top: 4px; font-size: .7rem; color: var(--ds-text-muted); }

.sign-area                   { margin: 20px 0; }
.sign-area label             { font-weight: 600; font-size: .85rem; margin-bottom: 8px; display: block; }
.sign-canvas-wrap            { border: 2px dashed var(--ds-primary); border-radius: var(--ds-radius-sm); background: var(--ds-surface-alt); position: relative; overflow: hidden; }
.sign-canvas-wrap canvas     { width: 100%; height: 180px; cursor: crosshair; touch-action: none; display: block; }
.sign-placeholder            { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); color: var(--ds-text-muted); font-size: .85rem; pointer-events: none; }
.sign-actions                { display: flex; justify-content: space-between; align-items: center; margin-top: 8px; }

.legal-check                 { display: flex; align-items: flex-start; gap: 10px; margin: 20px 0; padding: 14px; background: var(--ds-success-light); border: 1px solid var(--ds-success); border-radius: var(--ds-radius-sm); }
.legal-check input[type=checkbox] { margin-top: 3px; width: 18px; height: 18px; flex-shrink: 0; accent-color: var(--ds-success); }
.legal-check label           { font-size: .8rem; color: var(--ds-success-dark); line-height: 1.5; cursor: pointer; }

.btn-onay          { background: var(--ds-primary); color: #fff; border: none; padding: 14px 32px; border-radius: var(--ds-radius-sm); font-weight: 700; font-size: 1rem; cursor: pointer; width: 100%; margin-top: 16px; transition: all .2s; }
.btn-onay:hover    { background: var(--ds-primary-dark); transform: translateY(-1px); }
.btn-onay:disabled { background: var(--ds-text-muted); cursor: not-allowed; transform: none; }

.security-note   { margin-top: 20px; padding: 12px; background: var(--ds-info-light); border-radius: var(--ds-radius-sm); border: 1px solid var(--ds-info); font-size: .75rem; color: var(--ds-text-secondary); }
.security-note i { color: var(--ds-info); }




/* ============================================================
   15. ADMIN GÃ–RÃœNÃœMLERÄ°
   ============================================================ */

/* --- 15a. Hata Log (Admin/HataLog.cshtml) --- */
.hl-stat { background: var(--ds-surface); border-radius: 12px; padding: 20px; border: 1px solid var(--ds-border); box-shadow: 0 2px 8px rgba(0,0,0,.04); text-align: center; transition: all .2s; }
.hl-stat:hover { box-shadow: 0 4px 16px rgba(0,0,0,.08); transform: translateY(-2px); }
.hl-stat .val { font-size: 1.8rem; font-weight: 800; line-height: 1; }
.hl-stat .lbl { font-size: .75rem; color: var(--ds-text-subtle); margin-top: 6px; text-transform: uppercase; letter-spacing: .04em; }
.hl-badge { display: inline-block; font-size: .68rem; padding: 2px 8px; border-radius: 10px; font-weight: 700; color: #fff; }
.hl-badge-aktif { background: var(--ds-danger); }
.hl-badge-cozuldu { background: var(--ds-success); }
.hl-msg { max-width: 280px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hl-modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,.5); z-index: 9999; display: none; justify-content: center; align-items: center; }
.hl-modal.show { display: flex; }
.hl-modal-box { background: var(--ds-surface); border-radius: 14px; max-width: 850px; width: 95%; max-height: 85vh; overflow-y: auto; box-shadow: 0 20px 60px rgba(0,0,0,.2); }
.hl-modal-head { padding: 18px 24px; border-bottom: 1px solid var(--ds-border); display: flex; justify-content: space-between; align-items: center; }
.hl-modal-body { padding: 20px 24px; }
.hl-detail { display: grid; grid-template-columns: 150px 1fr; gap: 6px; padding: 8px 0; border-bottom: 1px solid var(--ds-surface-alt); font-size: .82rem; }
.hl-detail-lbl { font-weight: 600; color: var(--ds-text-subtle); }
.hl-stack { background: #0f172a; color: #e2e8f0; padding: 14px; border-radius: 8px; font-family: 'Cascadia Code', Consolas, monospace; font-size: .72rem; white-space: pre-wrap; word-break: break-all; max-height: 300px; overflow-y: auto; }

/* --- 15b. Hata SayfalarÄ± (Admin/HataSayfalari.cshtml) --- */
.ep-container { max-width: 1200px; margin: 24px auto; padding: 0 16px; }
.ep-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; }
.ep-header h2 { font-size: 1.5rem; font-weight: 800; color: var(--ds-text); margin: 0; }
.ep-header .ep-badge { font-size: .75rem; background: var(--ds-primary-50); color: var(--ds-primary); padding: 4px 12px; border-radius: 20px; font-weight: 600; }
.ep-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(540px, 1fr)); gap: 20px; }
.ep-card { background: var(--ds-surface); border-radius: 16px; border: 1px solid var(--ds-border); box-shadow: 0 4px 20px rgba(30,55,90,.06); overflow: hidden; transition: all .2s; }
.ep-card:hover { box-shadow: 0 8px 32px rgba(30,55,90,.1); transform: translateY(-2px); }
.ep-card-header { padding: 20px 24px; display: flex; align-items: center; gap: 16px; border-bottom: 1px solid var(--ds-surface-alt); }
.ep-status-icon { width: 52px; height: 52px; border-radius: 14px; display: flex; align-items: center; justify-content: center; font-size: 1.3rem; color: #fff; flex-shrink: 0; }
.ep-card-title { font-size: 1rem; font-weight: 700; color: var(--ds-text); margin: 0; }
.ep-card-subtitle { font-size: .78rem; color: var(--ds-text-subtle); margin-top: 2px; }
.ep-card-body { padding: 20px 24px; }
.ep-field { margin-bottom: 14px; }
.ep-field label { font-size: .78rem; font-weight: 600; color: var(--ds-text-secondary); margin-bottom: 4px; display: block; }
.ep-field input, .ep-field textarea { width: 100%; border: 1.5px solid var(--ds-border); border-radius: 10px; padding: 9px 14px; font-size: .85rem; transition: border-color .2s; background: var(--ds-surface-alt); }
.ep-field input:focus, .ep-field textarea:focus { border-color: var(--ds-primary); outline: none; box-shadow: 0 0 0 3px rgba(var(--ds-primary-rgb),.1); }
.ep-field textarea { resize: vertical; min-height: 60px; }
.ep-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ep-row-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
.ep-suggestion { background: var(--ds-surface-alt); border: 1px solid var(--ds-border); border-radius: 10px; padding: 12px; margin-bottom: 10px; }
.ep-suggestion-title { font-size: .72rem; font-weight: 700; color: var(--ds-text-subtle); text-transform: uppercase; letter-spacing: .5px; margin-bottom: 8px; }
.ep-toggles { display: flex; gap: 20px; flex-wrap: wrap; padding: 14px 0; }
.ep-toggle { display: flex; align-items: center; gap: 8px; }
.ep-toggle label { font-size: .82rem; font-weight: 600; color: var(--ds-text-secondary); margin: 0; cursor: pointer; }
.ep-card-footer { padding: 16px 24px; border-top: 1px solid var(--ds-surface-alt); display: flex; align-items: center; justify-content: space-between; background: var(--ds-surface-alt); }
.ep-meta { font-size: .72rem; color: var(--ds-text-muted); }
.ep-actions { display: flex; gap: 8px; }
.btn-ep { font-size: .8rem; font-weight: 600; padding: 8px 18px; border-radius: 10px; border: none; cursor: pointer; transition: all .2s; display: inline-flex; align-items: center; gap: 6px; }
.btn-ep-save { background: var(--ds-primary); color: #fff; box-shadow: 0 2px 8px rgba(var(--ds-primary-rgb),.2); }
.btn-ep-save:hover { background: var(--ds-primary-dark); box-shadow: 0 4px 14px rgba(var(--ds-primary-rgb),.3); transform: translateY(-1px); }
.btn-ep-preview { background: var(--ds-surface-alt); color: var(--ds-text-secondary); }
.btn-ep-preview:hover { background: var(--ds-border); }
.ep-status-badge { font-size: .7rem; padding: 3px 10px; border-radius: 20px; font-weight: 600; }
.ep-status-active { background: var(--ds-success-light); color: var(--ds-success-dark); }
.ep-status-inactive { background: var(--ds-danger-light); color: var(--ds-danger-dark); }
.switch { position: relative; display: inline-block; width: 40px; height: 22px; }
.switch input { opacity: 0; width: 0; height: 0; }
.slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: var(--ds-border-dark); transition: .3s; border-radius: 22px; }
.slider:before { position: absolute; content: ""; height: 16px; width: 16px; left: 3px; bottom: 3px; background-color: white; transition: .3s; border-radius: 50%; }
input:checked + .slider { background-color: var(--ds-primary); }
input:checked + .slider:before { transform: translateX(18px); }
.ep-toast { position: fixed; top: 20px; right: 20px; z-index: 9999; min-width: 300px; padding: 14px 20px; border-radius: 12px; font-size: .85rem; font-weight: 600; box-shadow: 0 8px 32px rgba(0,0,0,.12); animation: ep-slide-in .3s; }
.ep-toast-success { background: var(--ds-success-light); color: var(--ds-success-dark); border: 1px solid var(--ds-success); }
.ep-toast-error { background: var(--ds-danger-light); color: var(--ds-danger-dark); border: 1px solid var(--ds-danger); }
@keyframes ep-slide-in { from { opacity: 0; transform: translateX(30px); } to { opacity: 1; transform: translateX(0); } }
@media (max-width: 768px) {
    .ep-grid { grid-template-columns: 1fr; }
    .ep-row, .ep-row-3 { grid-template-columns: 1fr; }
}

/* --- 15c. KullanÄ±cÄ± Ä°ÅŸlemleri (Admin/KullaniciIslemleri.cshtml) --- */
.log-container { max-width: 1300px; margin: 20px auto; padding: 0 16px; }
.log-container .stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin-bottom: 20px; }
.log-container .stat-box { background: var(--ds-surface); border-radius: 12px; padding: 16px; border: 1px solid var(--ds-border); box-shadow: 0 2px 8px rgba(0,0,0,.03); }
.log-container .stat-box .num { font-size: 1.6rem; font-weight: 800; color: var(--ds-text); }
.log-container .stat-box .lbl { font-size: .72rem; color: var(--ds-text-subtle); margin-top: 2px; }
.filter-panel { background: var(--ds-surface); border-radius: 12px; padding: 16px 20px; border: 1px solid var(--ds-border); margin-bottom: 16px; box-shadow: 0 2px 8px rgba(0,0,0,.03); }
.filter-panel .form-control, .filter-panel .form-select { font-size: .8rem; border-radius: 8px; }
.log-table { font-size: .82rem; }
.log-table th { background: var(--ds-surface-alt); font-weight: 700; color: var(--ds-text); font-size: .75rem; text-transform: uppercase; letter-spacing: .4px; border-bottom: 2px solid var(--ds-border); }
.log-table td { vertical-align: middle; padding: 10px 12px; border-bottom: 1px solid var(--ds-surface-alt); }
.log-table tr:hover { background: var(--ds-surface-hover); }
.log-table .badge { font-size: .68rem; }
.ip-tag { font-family: 'Courier New', monospace; font-size: .78rem; color: var(--ds-text-secondary); background: var(--ds-surface-alt); padding: 2px 8px; border-radius: 6px; }
.action-tag { font-size: .75rem; font-weight: 600; }
.log-url { font-size: .7rem; color: var(--ds-text-subtle); max-width: 250px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pager { display: flex; justify-content: center; align-items: center; gap: 4px; margin: 16px 0; }
.pager a, .pager span { padding: 6px 12px; border-radius: 8px; font-size: .8rem; text-decoration: none; border: 1px solid var(--ds-border); color: var(--ds-text-secondary); }
.pager a:hover { background: var(--ds-surface-alt); }
.pager .active { background: var(--ds-primary); color: #fff; border-color: var(--ds-primary); }
.detail-table td { padding: 6px 10px; font-size: .82rem; }
.detail-table td:first-child { font-weight: 700; color: var(--ds-text-secondary); width: 140px; }
.detail-pre { background: var(--ds-surface-alt); padding: 8px 12px; border-radius: 8px; font-size: .75rem; max-height: 200px; overflow-y: auto; word-break: break-all; font-family: 'Courier New', monospace; }
@media (max-width: 768px) {
    .log-container .stat-grid { grid-template-columns: repeat(2, 1fr); }
    .log-table { font-size: .72rem; }
}

/* --- 15d. Sistem AyarlarÄ± (Admin/SistemAyarlari.cshtml) --- */
.settings-container { max-width: 1100px; margin: 24px auto; padding: 0 16px; }
.status-panel { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; margin-bottom: 24px; }
.status-card { background: var(--ds-surface); border-radius: 12px; padding: 18px; border: 1px solid var(--ds-border); box-shadow: 0 2px 8px rgba(0,0,0,.04); display: flex; align-items: center; gap: 14px; }
.status-icon { width: 48px; height: 48px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 1.3rem; color: #fff; }
.category-card { background: var(--ds-surface); border-radius: 14px; border: 1px solid var(--ds-border); margin-bottom: 18px; box-shadow: 0 4px 16px rgba(30,55,90,.05); overflow: hidden; }
.category-header { padding: 16px 22px; display: flex; align-items: center; gap: 10px; cursor: pointer; border-bottom: 1px solid var(--ds-surface-alt); transition: background .15s; }
.category-header:hover { background: var(--ds-surface-hover); }
.category-header h5 { margin: 0; font-weight: 700; font-size: 1rem; color: var(--ds-text); }
.category-body { padding: 0; }
.setting-row { display: grid; grid-template-columns: 220px 1fr 120px; gap: 12px; align-items: center; padding: 14px 22px; border-bottom: 1px solid var(--ds-surface-alt); transition: background .15s; }
.setting-row:hover { background: var(--ds-surface-hover); }
.setting-row:last-child { border-bottom: none; }
.setting-label { font-weight: 600; font-size: .88rem; color: var(--ds-text); }
.setting-desc { font-size: .72rem; color: var(--ds-text-subtle); margin-top: 2px; }
.setting-source { font-size: .68rem; padding: 3px 8px; border-radius: 6px; display: inline-block; }
.source-db { background: var(--ds-success-light); color: var(--ds-success-dark); }
.source-env { background: var(--ds-info-light); color: var(--ds-info); }
.source-config { background: var(--ds-surface-alt); color: var(--ds-text-secondary); }
.source-none { background: var(--ds-danger-light); color: var(--ds-danger-dark); }
.input-setting { border: 1.5px solid var(--ds-border); border-radius: 8px; padding: 8px 12px; font-size: .85rem; width: 100%; transition: border-color .2s; }
.input-setting:focus { border-color: var(--ds-primary); outline: none; box-shadow: 0 0 0 3px rgba(var(--ds-primary-rgb),.1); }
.btn-test { font-size: .75rem; padding: 6px 14px; border-radius: 8px; }
.change-info { font-size: .65rem; color: var(--ds-text-muted); margin-top: 3px; }
.category-footer { padding: 14px 22px; border-top: 1px solid var(--ds-surface-alt); display: flex; align-items: center; justify-content: flex-end; gap: 12px; background: var(--ds-surface-alt); }
.btn-save-category { font-size: .82rem; font-weight: 600; padding: 8px 22px; border-radius: 10px; box-shadow: 0 2px 8px rgba(var(--ds-primary-rgb),.15); transition: all .2s; }
.btn-save-category:hover { box-shadow: 0 4px 14px rgba(var(--ds-primary-rgb),.25); transform: translateY(-1px); }
.btn-save-category.saving { pointer-events: none; opacity: .7; }
.save-feedback { font-size: .78rem; padding: 6px 14px; border-radius: 8px; animation: fadeIn .3s; }
.save-feedback.success { background: var(--ds-success-light); color: var(--ds-success-dark); }
.save-feedback.error { background: var(--ds-danger-light); color: var(--ds-danger-dark); }
@media (max-width: 768px) {
    .setting-row { grid-template-columns: 1fr; gap: 6px; }
    .status-panel { grid-template-columns: 1fr; }
}

/* --- 15e. Rol YÃ¶netimi (Roles/Upsert.cshtml) --- */
.permission-card-label { cursor: pointer; transition: all 0.2s ease-in-out; border: 1px solid var(--ds-border); position: relative; overflow: hidden; display: flex; align-items: center; padding: 12px; background: var(--ds-surface); border-radius: 10px; height: 100%; user-select: none; }
.permission-card-label:hover { border-color: var(--ds-primary); background-color: var(--ds-primary-50); transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,.06); }
.permission-card-label:has(.form-check-input:checked) { border-color: var(--ds-primary); background-color: var(--ds-primary-50); border-left: 5px solid var(--ds-primary); }
.checkbox-wrapper { width: 44px; height: 44px; background: var(--ds-surface-alt); border: 1px solid var(--ds-border); border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-right: 12px; transition: all 0.2s; }
.permission-card-label:has(.form-check-input:checked) .checkbox-wrapper { background: var(--ds-surface); border-color: var(--ds-primary); }
.permission-checkbox { width: 1.4em; height: 1.4em; cursor: pointer; margin: 0 !important; }
.permission-checkbox:checked { background-color: var(--ds-primary); border-color: var(--ds-primary); }

/* ============================================================
   16. HESAP SAYFALARI
   ============================================================ */

/* --- 16a. Profil (Account/Profile.cshtml) --- */
.profile-hero { background: var(--ds-danger); color: #fff; padding: 0; border-radius: 16px; margin-bottom: 24px; box-shadow: 0 8px 32px rgba(var(--ds-danger-rgb),.22); position: relative; overflow: hidden; }
.profile-hero::before { content: ""; position: absolute; left: -60px; bottom: -60px; width: 220px; height: 220px; border-radius: 50%; background: rgba(255,255,255,.04); pointer-events: none; }
.profile-hero::after { content: ""; position: absolute; right: -40px; top: -40px; width: 180px; height: 180px; border-radius: 50%; background: rgba(255,255,255,.03); pointer-events: none; }
.profile-hero-inner { position: relative; z-index: 1; display: flex; align-items: center; gap: 28px; padding: 36px 36px 28px; }
.profile-avatar { width: 90px; height: 90px; border-radius: 22px; background: rgba(255,255,255,.15); backdrop-filter: blur(10px); display: flex; align-items: center; justify-content: center; font-size: 2rem; font-weight: 800; color: #fff; letter-spacing: 2px; border: 3px solid rgba(255,255,255,.25); flex-shrink: 0; }
.profile-info h1 { font-size: 1.65rem; font-weight: 800; margin: 0 0 6px; letter-spacing: -.3px; }
.profile-meta { display: flex; flex-wrap: wrap; gap: 16px; font-size: .88rem; opacity: .9; margin: 0; }
.profile-meta span { display: flex; align-items: center; gap: 6px; }
.profile-meta i { font-size: .78rem; opacity: .7; }
.profile-actions { position: relative; z-index: 1; display: flex; gap: 10px; margin-left: auto; flex-shrink: 0; }
.profile-stats-bar { position: relative; z-index: 1; display: flex; gap: 0; border-top: 1px solid rgba(255,255,255,.12); }
.profile-stat { flex: 1; text-align: center; padding: 16px 12px; border-right: 1px solid rgba(255,255,255,.08); transition: background .2s; }
.profile-stat:last-child { border-right: none; }
.profile-stat:hover { background: rgba(255,255,255,.06); }
.profile-stat-value { font-size: 1.4rem; font-weight: 800; display: block; line-height: 1; }
.profile-stat-label { font-size: .72rem; text-transform: uppercase; letter-spacing: .8px; opacity: .65; margin-top: 4px; display: block; }
.profile-section-title { font-size: .95rem; font-weight: 700; margin: 0 0 16px; display: flex; align-items: center; gap: 10px; }
.profile-section-title i { color: var(--ds-primary); font-size: .9rem; width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; background: var(--ds-primary-50); border-radius: 8px; }
.profile-section-title .pst-count { margin-left: auto; font-size: .72rem; font-weight: 600; }
.profile-info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.profile-info-item { padding: 12px 16px; border-bottom: 1px solid var(--ds-border); display: flex; flex-direction: column; gap: 2px; }
.profile-info-item:nth-child(odd) { border-right: 1px solid var(--ds-border); }
.profile-info-label { font-size: .72rem; color: var(--ds-text-subtle); text-transform: uppercase; letter-spacing: .5px; font-weight: 600; }
.profile-info-value { font-size: .88rem; font-weight: 600; color: var(--ds-text); }
.profile-firma-item { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-radius: 10px; transition: all .2s; border: 1px solid transparent; }
.profile-firma-item:hover { background: var(--ds-surface-alt); border-color: var(--ds-border); }
.profile-firma-icon { width: 36px; height: 36px; border-radius: 10px; background: var(--ds-info-light); color: var(--ds-info); display: flex; align-items: center; justify-content: center; font-size: .82rem; flex-shrink: 0; }
.profile-firma-name { font-size: .85rem; font-weight: 600; color: var(--ds-text); text-decoration: none; }
.profile-firma-name:hover { color: var(--ds-primary); text-decoration: none; }
.profile-firma-detail { font-size: .74rem; color: var(--ds-text-subtle); }
.profile-activity-item { display: flex; align-items: flex-start; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--ds-border); }
.profile-activity-item:last-child { border-bottom: none; }
.profile-activity-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ds-success); margin-top: 6px; flex-shrink: 0; }
.profile-activity-text { font-size: .82rem; color: var(--ds-text-secondary); flex: 1; }
.profile-activity-time { font-size: .72rem; color: var(--ds-text-subtle); white-space: nowrap; }
.profile-pwd-strength { height: 4px; border-radius: 2px; background: var(--ds-border); margin: 6px 0 2px; overflow: hidden; }
.profile-pwd-strength-bar { height: 100%; border-radius: 2px; width: 0; transition: width .3s, background .3s; }
.profile-pwd-strength-text { font-size: .7rem; font-weight: 600; margin-bottom: 10px; }
@keyframes pulse-dot { 0%, 100% { opacity: 1; } 50% { opacity: .4; } }
@media (max-width: 1100px) { div[style*="grid-template-columns:1fr 1fr 1fr"] { grid-template-columns: 1fr 1fr !important; } }
@media (max-width: 768px) {
    .profile-hero-inner { flex-direction: column; text-align: center; padding: 24px 20px 16px; gap: 16px; }
    .profile-actions { margin: 0 auto; }
    .profile-info-grid { grid-template-columns: 1fr; }
    .profile-info-item:nth-child(odd) { border-right: none; }
    .profile-stats-bar { flex-wrap: wrap; }
    .profile-stat { min-width: 50%; }
    div[style*="grid-template-columns:1fr 1fr 1fr"] { grid-template-columns: 1fr !important; }
}

/* --- 16b. Åžifre DeÄŸiÅŸtir (Account/ChangePassword.cshtml) --- */
.cp-container { display: flex; align-items: center; justify-content: center; min-height: 100vh; padding: 20px; }
.cp-card { background: var(--ds-surface); border-radius: 18px; box-shadow: 0 8px 40px rgba(var(--ds-danger-rgb),.12); padding: 40px 36px; max-width: 440px; width: 100%; }
.cp-card h2 { font-weight: 700; color: #1e293b; font-size: 1.4rem; margin-bottom: 6px; }
.cp-card .subtitle { color: #64748b; font-size: .82rem; margin-bottom: 24px; }
.cp-input-group { position: relative; margin-bottom: 16px; }
.cp-input-group i.fa-icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: #94a3b8; font-size: .85rem; }
.cp-input-group input { width: 100%; padding: 12px 42px 12px 40px; border: 1.5px solid var(--ds-border); border-radius: 10px; font-size: .88rem; outline: none; transition: border-color .2s; font-family: 'Poppins', sans-serif; }
.cp-input-group input:focus { border-color: var(--ds-danger); box-shadow: 0 0 0 3px rgba(var(--ds-danger-rgb),.08); }
.cp-input-group .toggle-pwd { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); background: none; border: none; color: #94a3b8; cursor: pointer; font-size: .85rem; }
.cp-btn { width: 100%; padding: 12px; background: var(--ds-danger); color: #fff; border: none; border-radius: 10px; font-size: .92rem; font-weight: 600; cursor: pointer; transition: opacity .2s; font-family: 'Poppins', sans-serif; }
.cp-btn:hover { opacity: .9; }
.cp-btn:disabled { opacity: .6; cursor: not-allowed; }
.strength-bar-container { height: 4px; background: var(--ds-border); border-radius: 2px; margin-bottom: 4px; overflow: hidden; }
.strength-bar { height: 100%; width: 0%; border-radius: 2px; transition: width .3s, background .3s; }
.strength-text { font-size: .68rem; margin-bottom: 12px; min-height: 16px; }
.policy-list { background: var(--ds-surface-alt); border-radius: 10px; padding: 14px 16px; margin-bottom: 20px; font-size: .74rem; color: var(--ds-text-subtle); }
.policy-list .item { display: flex; align-items: center; gap: 6px; margin-bottom: 3px; }
.policy-list .item i { font-size: .65rem; width: 14px; text-align: center; }
.policy-list .item.ok i { color: var(--ds-success); }
.policy-list .item.fail i { color: var(--ds-text-muted); }
.alert-msg { padding: 10px 14px; border-radius: 8px; font-size: .78rem; margin-bottom: 16px; }
.alert-msg.info { background: var(--ds-info-light); color: var(--ds-info); }
.alert-msg.error { background: var(--ds-danger-light); color: var(--ds-danger); }

/* --- 16c. Demo & Login ortak (standalone auth sayfalarÄ±) --- */
.demo-card  { border: none; box-shadow: 0 20px 60px rgba(0,0,0,.3); border-radius: 16px; }
.login-card { border: none; box-shadow: 0 20px 60px rgba(0,0,0,.3); border-radius: 16px; }
.feature-item  { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 20px; }
.feature-icon  { width: 44px; height: 44px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; flex-shrink: 0; }
.feature-title { font-weight: 600; font-size: .95rem; margin-bottom: 2px; }
.feature-desc  { font-size: .8rem; opacity: .7; }
.demo-stat       { text-align: center; padding: 16px 8px; }
.demo-stat-value { font-size: 1.6rem; font-weight: 800; color: #2563eb; }
.demo-stat-label { font-size: .7rem; color: #868e96; text-transform: uppercase; letter-spacing: .08em; }

/* --- 16d. KVKK Onay (Account/KvkkOnay.cshtml) --- */
.kvkk-container { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 20px; }
.kvkk-card { max-width: 820px; width: 100%; background: rgba(255,255,255,0.98); border-radius: 18px; box-shadow: 0 8px 40px rgba(var(--ds-danger-rgb),.08); padding: 40px 36px 32px; border-top: 7px solid var(--ds-danger); }
.kvkk-header { text-align: center; margin-bottom: 24px; padding-bottom: 16px; border-bottom: 2px solid var(--ds-danger-light); }
.kvkk-header img { width: 200px; margin-bottom: 16px; }
.kvkk-header h2 { color: var(--ds-danger); font-weight: 700; font-size: 1.5rem; margin: 0; }
.kvkk-header .versiyon { font-size: 0.8rem; color: #999; margin-top: 4px; }
.kvkk-text-box { max-height: 400px; overflow-y: auto; border: 1.5px solid var(--ds-border); border-radius: 10px; padding: 24px; margin-bottom: 24px; background: var(--ds-surface-alt); font-size: 0.92rem; line-height: 1.7; }
.kvkk-text-box h5 { color: var(--ds-danger); font-weight: 600; margin-top: 18px; }
.kvkk-text-box h5:first-child { margin-top: 0; }
.kvkk-text-box ul { padding-left: 20px; }
.kvkk-text-box li { margin-bottom: 4px; }
.consent-section { background: var(--ds-danger-light); border-radius: 12px; padding: 20px 24px; margin-bottom: 20px; }
.consent-section .form-check { margin-bottom: 12px; }
.consent-section .form-check:last-child { margin-bottom: 0; }
.consent-section .form-check-label { font-weight: 500; cursor: pointer; }
.consent-section .form-check-input:checked { background-color: var(--ds-danger); border-color: var(--ds-danger); }
.consent-section .required-star { color: var(--ds-danger); font-weight: 700; }
.btn-kvkk { background: var(--ds-danger); border: none; color: #fff; font-weight: 600; font-size: 1.1rem; border-radius: 12px; padding: 12px 32px; box-shadow: 0 4px 16px rgba(var(--ds-danger-rgb),.2); }
.btn-kvkk:hover { background: var(--ds-danger-dark); color: #fff; }
.btn-kvkk:disabled { opacity: 0.5; cursor: not-allowed; }

/* ============================================================
   8. BASKI (PRINT)
   ============================================================ */
@media print {
  .ds-page-header {
    background: var(--ds-surface-alt) !important;
    color: var(--ds-text) !important;
    box-shadow: none !important;
    border: 1px solid var(--ds-border) !important;
  }
  .ds-card, .ds-stat, .ds-table-wrap { box-shadow: none !important; }
  .ds-btn, .ds-toolbar-right, .t-loading-bar, .t-toast-container { display: none !important; }
  .card { box-shadow: none !important; }
  .navbar, .footer { display: none !important; }
}
