@charset "UTF-8";
/* theme-name: DCAM Dark */
/*
 * ============================================================================
 * DCAM IT Helpdesk — "FRONTEND REVOLUTION"
 * Revolut'un CANLI URUNUNDEN olculmus tasarim tokenlari (pazarlama sitesinden degil).
 *
 * Kurulum : /var/glpi/files/_themes/dcam.scss   (GLPI_THEMES_DIR)
 * Secim   : Setup > General > Default values > Palette  |  config:set palette dcam
 * Kaynak  : branding/themes/dcam.scss (repo)
 *
 * TASARIM KARARLARI (Revolut urun CSS'inden dogrulanan):
 *   - Zemin SAF SIYAH (#000). "Yakin siyah" degil.
 *   - Kartlar = beyazin %10 saydami (siyah uzerinde #1a1a1a). KENARLIK YOK, GOLGE YOK.
 *   - Liste satirlarinda AYIRICI CIZGI YOK; ayrim yuzey kontrasti + bosluk ile.
 *     (Tek istisna: veri tablolari — orada 1px beyaz %10 saç teli cizgi var.)
 *   - Birincil buton: BEYAZ pill uzerine SIYAH yazi. Gradyan yok. Yaricap 9999px.
 *   - Tipografi: Inter (GLPI zaten yukluyor), letter-spacing 0 (negatif tracking YOK).
 *   - Yaricaplar: kart/hucre 16px, ic ice 12px, modal 24px, pill 9999px.
 *   - Hareket: 300ms cubic-bezier(.15,.5,.5,1).
 * ============================================================================
 */
:root[data-glpi-theme=dcam] {
  color-scheme: dark;
  /* ---------------------------------------------------------------- token */
  /* yuzeyler: hepsi siyah uzerine beyaz alfa (Revolut'un yontemi) */
  --r-bg: #000000;
  --r-widget: rgba(255, 255, 255, 0.10); /* kart      -> #1a1a1a */
  --r-nested: rgba(255, 255, 255, 0.06); /* ic kutu   -> #101010 */
  --r-input: rgba(255, 255, 255, 0.14); /* form alani-> #242424 */
  --r-surface-3: #2e2e2e; /* hover satir, cip, tooltip */
  --r-popover: #383838; /* dropdown/popover/menu */
  --r-elevated: #1f1f1f; /* modal/sheet */
  /* Revolut'ta yukseklik GOLGE degil: parlaklik basamagi + 1px ice halka */
  --r-ring: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
  --r-hairline: rgba(255, 255, 255, 0.10); /* sadece veri tablolarinda */
  /* gri skalasi = beyaz alfa */
  --r-grey-2: rgba(255, 255, 255, 0.06);
  --r-grey-5: rgba(255, 255, 255, 0.10);
  --r-grey-8: rgba(255, 255, 255, 0.14);
  --r-grey-10: rgba(255, 255, 255, 0.24);
  --r-grey-20: rgba(255, 255, 255, 0.38);
  --r-grey-50: rgba(255, 255, 255, 0.70);
  /* metin */
  --r-fg: #ffffff;
  --r-fg-secondary: rgba(255, 255, 255, 0.70);
  --r-fg-tertiary: rgba(255, 255, 255, 0.38);
  /* vurgu ve anlam renkleri (koyu mod degerleri) */
  --r-accent: #6fa0ff;
  --r-success: #1ac097;
  --r-danger: #ff5363;
  --r-warning: #ff9f0a;
  /* yaricap / hareket */
  --r-radius: 16px;
  --r-radius-nested: 12px;
  --r-radius-modal: 24px;
  --r-pill: 9999px;
  --r-ease: cubic-bezier(0.15, 0.5, 0.5, 1);
  --r-dur: 300ms;
  /* ------------------------------------------------------- tabler / core */
  --tblr-body-bg: var(--r-bg);
  --tblr-body-color: var(--r-fg);
  --tblr-body-color-rgb: 255, 255, 255;
  /* --tblr-bg-surface BILEREK alfa kaliyor: kart, pre, .documentation, ciplak
     .btn gibi AKISTAKI yuzeyler bu tokenden bir kademe aciliyor; opak sabite
     cevirmek hepsini kart rengiyle ayni tona dusuruyordu. Yuzen panellerin
     opakligi token uzerinden DEGIL, YUZEN KATMANLAR bolumunde tek tek
     saglaniyor (Tabler zaten --tblr-dropdown-bg vb. degerleri bilesenin
     kendi uzerinde yeniden tanimladigi icin :root'a yazmak da olu kod olurdu). */
  --tblr-bg-surface: var(--r-widget);
  --tblr-bg-surface-secondary: var(--r-nested);
  --tblr-bg-surface-tertiary: var(--r-input);
  /* form-control disi eski input'lar + select2 panel ici arama alani bunu
     okuyor; temanin form yuzeyiyle ayni olsun (stok deger --tblr-bg-surface) */
  --tblr-bg-forms: var(--r-input);
  /* "aktif" satir: stok deger %4 vurgu = gorunmuyor, hover'dan bile silik */
  --tblr-active-bg: rgba(var(--tblr-primary-rgb), 0.16);
  --tblr-dark: #000000;
  --tblr-light: #e6e6e6;
  --tblr-border-color: transparent;
  --tblr-border-color-translucent: transparent;
  --tblr-border-radius: var(--r-radius-nested);
  --tblr-box-shadow-input: none;
  --tblr-primary-rgb: 111, 160, 255; /* #6fa0ff — ana vurgu */
  --tblr-primary-fg: #000000;
  --tblr-secondary: rgba(255, 255, 255, 0.70);
  --tblr-secondary-rgb: 255, 255, 255;
  --tblr-secondary-fg: #000000;
  --tblr-muted: var(--r-fg-secondary);
  --tblr-muted-rgb: 255, 255, 255;
  --tblr-link-color-rgb: 111, 160, 255;
  --tblr-link-hover-color-rgb: 158, 190, 255;
  --tblr-success: var(--r-success);
  --tblr-danger: var(--r-danger);
  --tblr-warning: var(--r-warning);
  --tblr-info: var(--r-accent);
  --tblr-code-color: #9ecbff;
  /* NOT: tooltip renkleri buradan DEGIL, YUZEN KATMANLAR bolumundeki .tooltip
     kuralindan geliyor; GLPI bu iki tokeni .tooltip elementinin uzerinde
     yeniden tanimladigi icin :root seviyesi okunmuyor. */
  /* --------------------------------------------------------- glpi chrome */
  /* menu + ust bar tek token: ikisi de saf siyah, ayrim yuzeylerle kuruluyor */
  --glpi-mainmenu-bg: #000000;
  --glpi-mainmenu-fg: rgba(255, 255, 255, 0.70);
  --glpi-mainmenu-fg-muted: rgba(255, 255, 255, 0.38);
  --glpi-mainmenu-active-bg: rgba(255, 255, 255, 0.10);
  /* Illustrasyonlar: sprite'lar var() zinciriyle boyaniyor ve -color..-color-5
     yuvalarini GLPI cekirdegi HIC set etmiyor -> en yuksek oncelik bizde. */
  --glpi-illustrations-color: #6fa0ff; /* ana hatlar   */
  --glpi-illustrations-color-2: #0f1116; /* "beyaz" alanlar -> koyu yuzey */
  --glpi-illustrations-color-3: #2b3a5c; /* ara ton       */
  --glpi-illustrations-color-4: #13d1a3; /* vurgu detay   */
  --glpi-illustrations-color-5: #0a0a0c; /* zemin         */
  --glpi-illustrations-background: #0f1116;
  --glpi-illustrations-header-dark: #0b1220;
  --glpi-illustrations-header-light: #1b2740;
  --glpi-illustrations-primary: var(--r-accent);
  --glpi-illustrations-gradient-1: #9dbcff;
  --glpi-illustrations-gradient-2: #5b86e0;
  --glpi-illustrations-gradient-3: #2c4a86;
  /* helpdesk (son kullanici) ana sayfasinin uc bandi: duz siyah tuval */
  --glpi-helpdesk-header: #000000;
  --glpi-helpdesk-tiles-section-bg: #000000;
  --glpi-helpdesk-tabs-section-bg: #000000;
  /* sekmeler */
  --glpi-tabs-bg: transparent;
  --glpi-tabs-fg: var(--r-fg-secondary);
  --glpi-tabs-border-color: transparent;
  --glpi-tabs-active-bg: var(--r-widget);
  --glpi-tabs-active-fg: var(--r-fg);
  --glpi-tabs-active-border-color: transparent;
  /* form / tablo basliklari (modern + legacy th ayni tokeni kullaniyor) */
  --glpi-form-header-fg: var(--r-fg);
  --glpi-form-header-bg: transparent;
  --glpi-form-header-border-color: transparent;
  /* arama */
  --glpi-search-bg: var(--r-input);
  --glpi-search-fg: var(--r-fg);
  --glpi-search-border-color: transparent;
  /* rozetler (hem .badge hem .glpi-badge bu ikisini okuyor) */
  --glpi-badge-bg: rgba(255, 255, 255, 0.10);
  --glpi-badge-fg: var(--r-fg);
  /* hover / scrollbar */
  --glpi-hover-bg: rgba(255, 255, 255, 0.06);
  --glpi-scrollbar-thumb-color: rgba(255, 255, 255, 0.24);
  --glpi-scrollbar-track-color: transparent;
  /* ITIL zaman tuneli baloncuklari */
  --glpi-itil-secondary-bg: rgba(255, 255, 255, 0.06);
  --glpi-timeline-itil-content-bg: rgba(111, 160, 255, 0.10);
  --glpi-timeline-itil-content-fg: #cfe0ff;
  --glpi-timeline-itil-content-border-color: transparent;
  --glpi-timeline-fup-bg: rgba(255, 255, 255, 0.06);
  --glpi-timeline-fup-fg: var(--r-fg);
  --glpi-timeline-fup-border-color: transparent;
  --glpi-timeline-task-bg: rgba(255, 159, 10, 0.12);
  --glpi-timeline-task-fg: #ffd9a0;
  --glpi-timeline-task-border-color: transparent;
  --glpi-timeline-solution-bg: rgba(26, 192, 151, 0.14);
  --glpi-timeline-solution-fg: #9df0da;
  --glpi-timeline-solution-border-color: transparent;
  --glpi-timeline-document-bg: rgba(255, 255, 255, 0.08);
  --glpi-timeline-document-fg: var(--r-fg);
  --glpi-timeline-document-border-color: transparent; /* stok koyu palette eksik */
  --glpi-timeline-badge-fg: rgba(255, 255, 255, 0.80);
  /* tema seciciteki 4 kare (statik olmali, var()/color-mix kabul etmez) */
  --glpi-palette-color-1: #000000;
  --glpi-palette-color-2: #1a1a1a;
  --glpi-palette-color-3: #6fa0ff;
  --glpi-palette-color-4: #ffffff;
  /* ====================================================================== */
  /* YUZEYLER — kenarlik ve golge YOK, ayrim yuzey kontrasti ile            */
  /* ====================================================================== */
  /* Tabler bu degiskeni .card uzerinde !important ile taniyor: ayni yerde ez */
  /* ---------------------------------------------------------------------- */
  /* YUZEN KATMANLAR — icerigin USTUNDE duran her sey OPAK olmali            */
  /*                                                                        */
  /* Akistaki yuzeyler alfa kullanabilir (altlarinda hep zemin var), yuzen   */
  /* paneller ASLA: saydam panelde altindaki metin sizar ve menu okunmaz.    */
  /* GLPI 11 karsiliklari: acilir listeler select2, tarih secici flatpickr,  */
  /* ipuclari popover/qtip, otomatik tamamlama .aa-Panel.                    */
  /* ---------------------------------------------------------------------- */
  /* NOT: zengin menuler .dropdown-menu.card olarak geliyor ve DOM'da kartin
     ICINDE duruyor; asagidaki ".card .card" kurali (0,4,0) ile esit ozgullukte
     ve dosyada SONRA geldigi icin kazaniyordu -> ".card .dropdown-menu.card"
     ile bir kademe daha ozgul yaziyoruz. */
  /* css_core_palettes, $is-dark tasiyan temalarda su ucunu !important ile
     --tblr-bg-surface'e (alfa) ve --tblr-light'a cekiyor:
     ':root[data-glpi-theme-dark="1"] .qtip-bootstrap, ... .popover .popover-body'.
     Ayni onceligi kullanmazsak popover govdesi kabuktan ayrisir, qtip saydam kalir.
     Ozgullukler esit (0,3,0); bizim dosya en sonda yuklendigi icin biz kazaniyoruz. */
  /* GLPI popover GOVDESINE ayrica --tblr-bg-surface ve --tblr-dark (koyu temada
     SIYAH yazi) veriyor; kabugu duzeltmek yetmez, govdeyi de duzelt. */
  /* ok ucunu GLPI --tblr-bg-surface ile boyuyor; panelin rengiyle ayni olmali
     (yalnizca ustte acilan popover'da bu kenar gorunur genisliktedir) */
  /* Daraltilmis kenar cubugunun UCAN alt menusu: GLPI arka plana
     --glpi-mainmenu-fg'yi (alfali METIN rengi) veriyor, koyu palet duzeltmesi
     de !important ile --tblr-bg-surface (alfa) yaziyor -> panel saydam kaliyor. */
  /* Sabit "white" zeminli eski paneller: koyu temada beyaz kutu uzerinde miras
     alinan beyaz yazi = gorunmez. (Planlama sag tik menusu, etki analizi sag
     tik menusu, SSS ekleme paneli. SSS kurali #page ile geldigi icin !important) */
  /* select2 paneli alan ile ayni dilde: 12px kose, tasma kirpilir */
  /* Panel ici satirlar. GLPI kendi kurallarini 6 sinif derinliginde yaziyor
     (.select2-container .select2-dropdown .select2-results ...); ayni zinciri
     kopyalamak yerine kisa selector + !important okunur kaliyor. */
  /* zaten SECILI satir: notr, soluk yuzey */
  /* imlec/klavye ile VURGULANAN satir: vurgu tonlu. Stok GLPI burada dolu mavi
     kullaniyor; notr griye cevirirsek "secili" satirdan ayirt edilemiyor. */
  /* devre disi secenek: ustteki genel renk kurali GLPI'nin grisini eziyordu */
  /* panel icindeki arama alani: opak panelin ustunde alfa sorun degil */
  /* Takvim: tek token butun ic parcalari besliyor (baslik, gun kutulari, ok
     uclari). Arka plani dogrudan ezersek ic parcalar ayrisir. */
  /* Tooltip: GLPI '.tooltip { --tblr-tooltip-bg: var(--tblr-body-color);
     --tblr-tooltip-color: var(--tblr-body-bg) }' yaziyor, yani Tabler'in TERS
     tooltip gelenegi. Koyu temada bu BEYAZ balon demek: siyah arayuzde parlama.
     Tokenler .tooltip elementinde tanimli oldugu icin ayni yere yaziyoruz.
     (Acik temada GLPI'nin sonucu zaten koyu balon + beyaz yazi: dogru.) */
  /* ====================================================================== */
  /* LISTE SATIRLARI — ayirici cizgi YOK                                    */
  /* ====================================================================== */
  /* ====================================================================== */
  /* VERI TABLOLARI — Revolut'ta saç teli cizgi SADECE burada var           */
  /* ====================================================================== */
  /* ====================================================================== */
  /* BUTONLAR — birincil: BEYAZ pill / SIYAH yazi (Revolut'un gercegi)      */
  /* ====================================================================== */
  /* ====================================================================== */
  /* FORMLAR — kenarliksiz, dolgulu alanlar                                 */
  /* ====================================================================== */
  /* DIKKAT: .select2-dropdown buraya AIT DEGIL. O bir yuzen panel; alfa
     yuzey verilirse icerigin uzerinde saydam kalir (bkz. YUZEN KATMANLAR). */
  /* select2 kapali alan: yer tutucu ve coklu secim cipleri
     (panel ici kurallar YUZEN KATMANLAR bolumunde) */
  /* stok: --tblr-dark (koyu temada SIYAH) -> cipin uzerinde gorunmez */
  /* ust bar global arama: pill */
  /* ====================================================================== */
  /* MENU + UST BAR                                                          */
  /* ====================================================================== */
  /* ====================================================================== */
  /* SEKMELER                                                                */
  /* ====================================================================== */
  /* GLPI: .nav { --tblr-nav-link-color: color-mix(in srgb, var(--tblr-light),
     var(--tblr-dark) 70%) } -> koyu temada #454545. Kart (#1a1a1a) uzerinde
     1.8:1, popover (#383838) uzerinde 1.2:1: modal icindeki sekmeler, nav-pills
     ve panel ici nav listeleri okunmuyor. Token .nav ELEMENTINDE tanimli
     oldugu icin :root'a yazmak ise yaramaz, ayni yere yaziyoruz. */
  /* ====================================================================== */
  /* ROZETLER, DURUMLAR, AVATARLAR                                          */
  /* ====================================================================== */
  /* stok koyu temada solved/closed "black" kaliyor: karanlikta gorunmez */
  /* ====================================================================== */
  /* DASHBOARD — cerceve CSS ile, ic renkler DB'den (scripts/dashboard-theme.sh)
  /* ====================================================================== */
  /* Dashboard'un dis sarmalayicisi da .card: onu TUVAL yapiyoruz, yoksa
     widget'lar (ayni #1a1a1a) zeminle ayni tona dusup gorunmez oluyor. */
  /* Ic ice yuzeyler bir kademe acilir (Revolut: zemin aciliyorsa ortu zayiflar) */
  /* Widget'lar arasi nefes payi (gridstack degeri inline geldigi icin !important) */
  /* KPI kutusu: sayi kahraman. Kart rengi DB'den (#1A1A1A) gelir, yazi rengini
     GLPI otomatik turetir ve gri cikar -> cocuk kuralla beyaza cekiyoruz
     (miras alinan renk, dogrudan kurala her zaman yenilir). */
  /* mini dashboard (liste ustundeki serit): daha kucuk olcek, kirpma yok */
  /* oncelik rozeti: ince renkli kenar + koyu yuzey (renk config'ten inline gelir) */
  /* hover: Revolut'un yaptigi gibi yuzey bir tik acilir */
  /* coklu sayi / ozet karti: inline style ile geldigi icin !important gerekli */
  /* ====================================================================== */
  /* GIRIS SAYFASI                                                          */
  /* ====================================================================== */
  /* ====================================================================== */
  /* TIPOGRAFI — Inter, letter-spacing 0, sayilar tabular                   */
  /* ====================================================================== */
  /* Revolut tracking: her yerde ~-0.011em, 12px'de 0, 11px'de pozitif */
  /* sayi sutunlari hizali olsun (kahraman sayilar haric) */
  /* odak halkasi */
  /* durum cipleri: %14 tonlu zemin + tam doygun yazi (dolu rozet degil) */
  /* ====================================================================== */
  /* ZAMAN TUNELI                                                           */
  /* ====================================================================== */
  /* konusma balonu oklari: duz akista gereksiz gorsel gurultu */
  /* ====================================================================== */
  /* HELPDESK (son kullanici) ARAYUZU                                       */
  /* ====================================================================== */
  /* ====================================================================== */
  /* BILDIRIMLER                                                            */
  /* ====================================================================== */
  /* ====================================================================== */
  /* HAREKET                                                                */
  /* ====================================================================== */
}
:root[data-glpi-theme=dcam] .card,
:root[data-glpi-theme=dcam] .accordion-item {
  background-color: var(--r-widget);
  border: 0;
  border-radius: var(--r-radius);
  box-shadow: var(--r-ring); /* golge degil, ince ic halka */
}
:root[data-glpi-theme=dcam] .card {
  --tblr-card-cap-bg: transparent !important;
  --tblr-card-bg: var(--r-widget);
  --tblr-card-color: var(--r-fg);
}
:root[data-glpi-theme=dcam] .card .card-header,
:root[data-glpi-theme=dcam] .card .card-footer {
  background-color: transparent;
  border-color: transparent;
}
:root[data-glpi-theme=dcam] .dropdown-menu,
:root[data-glpi-theme=dcam] .dropdown-menu.card,
:root[data-glpi-theme=dcam] .card .dropdown-menu.card,
:root[data-glpi-theme=dcam] .popover,
:root[data-glpi-theme=dcam] .offcanvas,
:root[data-glpi-theme=dcam] .aa-Panel,
:root[data-glpi-theme=dcam] .select2-dropdown {
  background-color: var(--r-popover);
  color: var(--r-fg);
  border: 0;
  border-radius: var(--r-radius);
  box-shadow: var(--r-ring), 0 8px 32px rgba(0, 0, 0, 0.6);
}
:root[data-glpi-theme=dcam] .dropdown-menu {
  /* stok: saydam ayirici + #4b5563 baslik -> koyu panelde ikisi de kayboluyor */
  --tblr-dropdown-divider-bg: var(--r-hairline);
  --tblr-dropdown-header-color: var(--r-fg-secondary);
}
:root[data-glpi-theme=dcam] .qtip-bootstrap {
  background-color: var(--r-popover) !important;
  color: var(--r-fg) !important;
  border: 0;
  border-radius: var(--r-radius);
  box-shadow: var(--r-ring), 0 8px 32px rgba(0, 0, 0, 0.6);
}
:root[data-glpi-theme=dcam] .popover .popover-body {
  background-color: transparent !important;
  color: var(--r-fg) !important;
}
:root[data-glpi-theme=dcam] .popover .popover-arrow::after {
  border-top-color: var(--r-popover) !important;
}
:root[data-glpi-theme=dcam] body.navbar-collapsed .sidebar #navbar-menu .nav-item .nav-link + .dropdown-menu {
  background-color: var(--r-popover) !important;
  color: var(--r-fg) !important;
  border-color: transparent !important;
}
:root[data-glpi-theme=dcam] .planning-context-menu,
:root[data-glpi-theme=dcam] .cy-context-menus-cxt-menu,
:root[data-glpi-theme=dcam] .cy-context-menus-cxt-menuitem,
:root[data-glpi-theme=dcam] .faqadd_entries {
  background-color: var(--r-popover) !important;
  color: var(--r-fg) !important;
  border-color: transparent !important;
}
:root[data-glpi-theme=dcam] .planning-context-menu li:hover,
:root[data-glpi-theme=dcam] .cy-context-menus-cxt-menuitem:hover {
  background-color: var(--r-grey-8);
  color: var(--r-fg);
}
:root[data-glpi-theme=dcam] .select2-dropdown {
  border-radius: var(--r-radius-nested);
  overflow: hidden;
}
:root[data-glpi-theme=dcam] .select2-results__option {
  color: var(--r-fg);
}
:root[data-glpi-theme=dcam] .select2-results__group {
  color: var(--r-fg-secondary);
}
:root[data-glpi-theme=dcam] .select2-results__option[aria-selected=true]:not(.select2-results__option--highlighted) {
  background-color: var(--r-grey-5) !important;
  color: var(--r-fg) !important;
}
:root[data-glpi-theme=dcam] .select2-results__option--highlighted,
:root[data-glpi-theme=dcam] .select2-results__option--highlighted[aria-selected] {
  background-color: rgba(var(--tblr-primary-rgb), 0.3) !important;
  color: var(--r-fg) !important;
}
:root[data-glpi-theme=dcam] .select2-results__option[aria-disabled=true] {
  color: var(--r-fg-tertiary);
}
:root[data-glpi-theme=dcam] .select2-search--dropdown .select2-search__field {
  background-color: var(--r-input);
  border: 0;
  border-radius: var(--r-radius-nested);
  color: var(--r-fg);
}
:root[data-glpi-theme=dcam] body .flatpickr-calendar {
  --glpi-flatpickr-bg: var(--r-popover);
}
:root[data-glpi-theme=dcam] .tooltip {
  --tblr-tooltip-bg: var(--r-popover);
  --tblr-tooltip-color: var(--r-fg);
  --tblr-tooltip-opacity: 1;
}
:root[data-glpi-theme=dcam] .modal-content {
  background-color: var(--r-elevated);
  border: 0;
  border-radius: var(--r-radius-modal);
  box-shadow: var(--r-ring), 0 24px 80px rgba(0, 0, 0, 0.72);
}
:root[data-glpi-theme=dcam] .modal-backdrop.show {
  opacity: 1;
  background-color: rgba(0, 0, 0, 0.4);
}
:root[data-glpi-theme=dcam] .list-group,
:root[data-glpi-theme=dcam] .list-group-item {
  background-color: transparent;
  border: 0;
  border-radius: 0;
}
:root[data-glpi-theme=dcam] .list-group-item:hover,
:root[data-glpi-theme=dcam] .list-group-item-action:hover {
  background-color: var(--r-grey-2);
  border-radius: var(--r-radius-nested);
}
:root[data-glpi-theme=dcam] .table {
  --tblr-table-bg: transparent;
  --tblr-table-color: var(--r-fg);
  --tblr-table-border-color: var(--r-hairline);
  --tblr-table-striped-bg: transparent;
  --tblr-table-hover-bg: var(--r-grey-2);
  --tblr-table-active-bg: var(--r-grey-5);
}
:root[data-glpi-theme=dcam] .table thead th {
  background-color: transparent;
  color: var(--r-fg-secondary);
  font-weight: 500;
  text-transform: none;
  border-bottom: 1px solid var(--r-hairline);
}
:root[data-glpi-theme=dcam] .table tbody td {
  border-top: 0;
  border-bottom: 1px solid var(--r-hairline);
}
:root[data-glpi-theme=dcam] .table tbody tr:last-child td {
  border-bottom: 0;
}
:root[data-glpi-theme=dcam] .btn {
  border-radius: var(--r-pill);
  font-weight: 500;
  letter-spacing: 0;
  border-width: 0;
  transition: background-color var(--r-dur) var(--r-ease), opacity var(--r-dur) var(--r-ease);
}
:root[data-glpi-theme=dcam] .btn-primary,
:root[data-glpi-theme=dcam] .btn-primary:visited {
  background-color: #ffffff;
  background-image: none;
  color: #000000;
}
:root[data-glpi-theme=dcam] .btn-primary:hover,
:root[data-glpi-theme=dcam] .btn-primary:focus,
:root[data-glpi-theme=dcam] .btn-primary:active {
  background-color: rgba(255, 255, 255, 0.88);
  color: #000000;
}
:root[data-glpi-theme=dcam] .btn-secondary,
:root[data-glpi-theme=dcam] .btn-outline-secondary,
:root[data-glpi-theme=dcam] .btn-outline-primary,
:root[data-glpi-theme=dcam] .btn-ghost-secondary {
  background-color: var(--r-grey-5);
  color: var(--r-fg);
  border: 0;
}
:root[data-glpi-theme=dcam] .btn-secondary:hover,
:root[data-glpi-theme=dcam] .btn-outline-secondary:hover,
:root[data-glpi-theme=dcam] .btn-outline-primary:hover {
  background-color: var(--r-grey-8);
  color: var(--r-fg);
}
:root[data-glpi-theme=dcam] .btn-danger {
  background-color: var(--r-danger);
  color: #14060a;
}
:root[data-glpi-theme=dcam] .btn-success {
  background-color: var(--r-success);
  color: #04160f;
}
:root[data-glpi-theme=dcam] .btn-warning {
  background-color: var(--r-warning);
  color: #1a1000;
}
:root[data-glpi-theme=dcam] .btn-close {
  filter: invert(1) grayscale(1) brightness(2);
  opacity: 0.6;
}
:root[data-glpi-theme=dcam] .form-control,
:root[data-glpi-theme=dcam] .form-select,
:root[data-glpi-theme=dcam] .input-group-text,
:root[data-glpi-theme=dcam] .select2-container--default .select2-selection--single,
:root[data-glpi-theme=dcam] .select2-container--default .select2-selection--multiple {
  background-color: var(--r-input);
  border: 0;
  color: var(--r-fg);
  border-radius: var(--r-radius-nested);
}
:root[data-glpi-theme=dcam] .form-control:focus,
:root[data-glpi-theme=dcam] .form-select:focus {
  background-color: var(--r-input);
  box-shadow: 0 0 0 2px rgba(111, 160, 255, 0.55);
  color: var(--r-fg);
}
:root[data-glpi-theme=dcam] .form-control::placeholder {
  color: var(--r-fg-tertiary);
}
:root[data-glpi-theme=dcam] .form-label {
  color: var(--r-fg-secondary);
  font-weight: 500;
}
:root[data-glpi-theme=dcam] .select2-container--default .select2-selection--single .select2-selection__placeholder {
  color: var(--r-fg-tertiary);
}
:root[data-glpi-theme=dcam] .select2-container .select2-selection--multiple .select2-selection__choice {
  background-color: var(--r-grey-8);
  border: 0;
  border-radius: var(--r-pill);
  color: var(--r-fg);
  padding: 1px 8px;
}
:root[data-glpi-theme=dcam] .select2-selection__choice__remove {
  color: var(--r-fg-secondary) !important;
}
:root[data-glpi-theme=dcam] #global-search,
:root[data-glpi-theme=dcam] .navbar .form-control {
  background-color: var(--r-input);
  border: 0;
  border-radius: var(--r-pill);
  color: var(--r-fg);
}
:root[data-glpi-theme=dcam] .sidebar,
:root[data-glpi-theme=dcam] .navbar,
:root[data-glpi-theme=dcam] header.navbar {
  border: 0 !important;
  box-shadow: none !important;
}
:root[data-glpi-theme=dcam] .navbar-vertical .navbar-nav .nav-link,
:root[data-glpi-theme=dcam] .sidebar .nav-link {
  color: var(--r-fg-secondary);
  border-radius: var(--r-radius-nested);
  transition: background-color var(--r-dur) var(--r-ease), color var(--r-dur) var(--r-ease);
}
:root[data-glpi-theme=dcam] .navbar-vertical .navbar-nav .nav-link:hover,
:root[data-glpi-theme=dcam] .sidebar .nav-link:hover {
  background-color: var(--r-grey-5);
  color: var(--r-fg);
}
:root[data-glpi-theme=dcam] .navbar-vertical .navbar-nav .nav-item.active > .nav-link,
:root[data-glpi-theme=dcam] .navbar-vertical .navbar-nav .nav-link.active,
:root[data-glpi-theme=dcam] .sidebar .nav-link.active {
  background-color: var(--r-grey-8);
  color: var(--r-fg);
}
:root[data-glpi-theme=dcam] .nav {
  --tblr-nav-link-color: var(--r-fg-secondary);
  --tblr-nav-link-hover-color: var(--r-fg);
  --tblr-nav-link-disabled-color: var(--r-fg-tertiary);
}
:root[data-glpi-theme=dcam] .card-tabs .nav-tabs,
:root[data-glpi-theme=dcam] #tabspanel {
  border: 0;
  gap: 4px;
}
:root[data-glpi-theme=dcam] .card-tabs .nav-tabs .nav-link,
:root[data-glpi-theme=dcam] #tabspanel .nav-link {
  border: 0;
  border-radius: var(--r-pill);
  color: var(--r-fg-secondary);
  font-weight: 500;
  padding: 6px 14px;
}
:root[data-glpi-theme=dcam] .card-tabs .nav-tabs .nav-link.active,
:root[data-glpi-theme=dcam] #tabspanel .nav-link.active {
  background-color: var(--r-grey-8);
  color: var(--r-fg);
}
:root[data-glpi-theme=dcam] .badge,
:root[data-glpi-theme=dcam] .glpi-badge {
  border-radius: var(--r-pill);
  font-weight: 500;
  letter-spacing: 0;
}
:root[data-glpi-theme=dcam] .avatar,
:root[data-glpi-theme=dcam] .avatar img {
  border-radius: var(--r-pill) !important;
}
:root[data-glpi-theme=dcam] .itilstatus.closed,
:root[data-glpi-theme=dcam] .itilstatus.solved,
:root[data-glpi-theme=dcam] .itilstatus.observe,
:root[data-glpi-theme=dcam] .itilstatus.canceled,
:root[data-glpi-theme=dcam] .validationstatus.closed,
:root[data-glpi-theme=dcam] .validationstatus.solved {
  --status-color: rgba(255, 255, 255, 0.55);
}
:root[data-glpi-theme=dcam] .itilstatus.new,
:root[data-glpi-theme=dcam] .itilstatus.assigned {
  --status-color: var(--r-success);
}
:root[data-glpi-theme=dcam] .itilstatus.waiting,
:root[data-glpi-theme=dcam] .itilstatus.test,
:root[data-glpi-theme=dcam] .itilstatus.qualif {
  --status-color: var(--r-warning);
}
:root[data-glpi-theme=dcam] .itilstatus.approval {
  --status-color: var(--r-accent);
}
:root[data-glpi-theme=dcam] .itilstatus.refused {
  --status-color: var(--r-danger);
}
:root[data-glpi-theme=dcam] .dashboard {
  --glpi-dashboard-soft-border: rgba(255, 255, 255, 0.08);
}
:root[data-glpi-theme=dcam] .card:has(> .dashboard),
:root[data-glpi-theme=dcam] .card:has(> .dashboard-container) {
  background-color: transparent;
  box-shadow: none;
  border: 0;
}
:root[data-glpi-theme=dcam] .card .card {
  background-color: rgba(255, 255, 255, 0.06);
}
:root[data-glpi-theme=dcam] .dashboard .grid-stack {
  --gs-cell-margin: 6px !important;
}
:root[data-glpi-theme=dcam] .dashboard .grid-stack-item-content {
  border-radius: var(--r-radius);
  overflow: hidden;
}
:root[data-glpi-theme=dcam] .dashboard .card {
  border-radius: var(--r-radius);
  box-shadow: none;
  border: 0;
}
:root[data-glpi-theme=dcam] .dashboard:not(.mini) .big-number {
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
:root[data-glpi-theme=dcam] .dashboard.mini .big-number .formatted-number .number,
:root[data-glpi-theme=dcam] .dashboard.mini .big-number .formatted-number .suffix {
  font-size: 26px;
}
:root[data-glpi-theme=dcam] .dashboard.mini .big-number .label {
  font-size: 11px;
  margin-top: 2px;
}
:root[data-glpi-theme=dcam] .badge_block {
  background-color: rgba(255, 255, 255, 0.06) !important;
  border-radius: var(--r-pill);
  padding: 2px 10px;
  border-left-width: 3px !important;
}
:root[data-glpi-theme=dcam] .dashboard .big-number .content,
:root[data-glpi-theme=dcam] .dashboard .big-number .formatted-number,
:root[data-glpi-theme=dcam] .dashboard .big-number .formatted-number .number,
:root[data-glpi-theme=dcam] .dashboard .big-number .formatted-number .suffix {
  color: #ffffff;
  font-weight: 700;
  letter-spacing: -0.012em;
  /* kahraman sayida ORANTILI rakam: tabular olursa "1" rakami bosluklu durur */
  font-variant-numeric: proportional-nums;
}
:root[data-glpi-theme=dcam] .dashboard .big-number .formatted-number .number,
:root[data-glpi-theme=dcam] .dashboard .big-number .formatted-number .suffix {
  font-size: 44px;
  line-height: 1.05;
}
:root[data-glpi-theme=dcam] .dashboard .big-number .label {
  color: rgba(255, 255, 255, 0.7);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0;
  margin-top: 6px;
}
:root[data-glpi-theme=dcam] .dashboard .big-number .main-icon {
  color: rgba(255, 255, 255, 0.22);
  font-size: 20px;
}
:root[data-glpi-theme=dcam] .dashboard .big-number:hover {
  background-color: #242424 !important;
}
:root[data-glpi-theme=dcam] .dashboard .multiple-numbers,
:root[data-glpi-theme=dcam] .dashboard .summary-numbers,
:root[data-glpi-theme=dcam] .dashboard .articles-list {
  background-color: rgba(255, 255, 255, 0.1) !important;
  color: #ffffff !important;
}
:root[data-glpi-theme=dcam] .dashboard .multiple-numbers .line:nth-child(odd) {
  background-color: rgba(255, 255, 255, 0.04);
}
:root[data-glpi-theme=dcam] .dashboard .g-chart .main-label {
  font-weight: 500;
  opacity: 0.72;
}
:root[data-glpi-theme=dcam]:has(body.welcome-anonymous) {
  background-color: #000;
}
:root[data-glpi-theme=dcam] body.welcome-anonymous,
:root[data-glpi-theme=dcam] .page-anonymous {
  background-color: #000000;
}
:root[data-glpi-theme=dcam] .page-anonymous .main-content-card,
:root[data-glpi-theme=dcam] .welcome-anonymous .card {
  background-color: rgba(20, 20, 22, 0.82);
  backdrop-filter: blur(20px);
  border: 0;
  border-radius: var(--r-radius-modal);
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.65);
}
:root[data-glpi-theme=dcam] body,
:root[data-glpi-theme=dcam] .card,
:root[data-glpi-theme=dcam] .navbar {
  letter-spacing: 0;
}
:root[data-glpi-theme=dcam] h1, :root[data-glpi-theme=dcam] h2, :root[data-glpi-theme=dcam] h3, :root[data-glpi-theme=dcam] h4, :root[data-glpi-theme=dcam] .h1, :root[data-glpi-theme=dcam] .h2, :root[data-glpi-theme=dcam] .h3, :root[data-glpi-theme=dcam] .h4, :root[data-glpi-theme=dcam] .card-title, :root[data-glpi-theme=dcam] .modal-title {
  font-weight: 700;
  letter-spacing: 0;
  color: var(--r-fg);
}
:root[data-glpi-theme=dcam] .text-muted {
  color: var(--r-fg-secondary) !important;
}
:root[data-glpi-theme=dcam] body {
  letter-spacing: -0.011em;
}
:root[data-glpi-theme=dcam] .small, :root[data-glpi-theme=dcam] small, :root[data-glpi-theme=dcam] .text-muted, :root[data-glpi-theme=dcam] .badge {
  letter-spacing: 0;
}
:root[data-glpi-theme=dcam] .table td, :root[data-glpi-theme=dcam] .table th, :root[data-glpi-theme=dcam] .kpi-tabular {
  font-variant-numeric: tabular-nums;
}
:root[data-glpi-theme=dcam] *:focus-visible {
  outline: 2px solid rgba(111, 160, 255, 0.5);
  outline-offset: 2px;
}
:root[data-glpi-theme=dcam] .badge.bg-success-lt, :root[data-glpi-theme=dcam] .badge.bg-success {
  background-color: rgba(26, 192, 151, 0.14) !important;
  color: var(--r-success) !important;
}
:root[data-glpi-theme=dcam] .badge.bg-danger-lt, :root[data-glpi-theme=dcam] .badge.bg-danger {
  background-color: rgba(255, 83, 99, 0.14) !important;
  color: var(--r-danger) !important;
}
:root[data-glpi-theme=dcam] .badge.bg-warning-lt, :root[data-glpi-theme=dcam] .badge.bg-warning {
  background-color: rgba(255, 159, 10, 0.14) !important;
  color: var(--r-warning) !important;
}
:root[data-glpi-theme=dcam] .badge.bg-blue-lt, :root[data-glpi-theme=dcam] .badge.bg-info {
  background-color: rgba(111, 160, 255, 0.14) !important;
  color: var(--r-accent) !important;
}
:root[data-glpi-theme=dcam] .timeline-item .timeline-content.card {
  border-radius: var(--r-radius);
  border: 0;
  box-shadow: none;
  background-image: none; /* GLPI'nin followup.png / task.png filigranlari */
}
:root[data-glpi-theme=dcam] .timeline-item .timeline-content::before,
:root[data-glpi-theme=dcam] .timeline-item .timeline-content::after {
  display: none;
}
:root[data-glpi-theme=dcam] body.helpdesk {
  /* 100vh sabit yukseklik kisa ekranlarda icerigi kesiyor */
  /* hero: duz bant yerine derinlikli gecis */
  /* sahne illustrasyonlari 1600px altinda gizleniyordu: dizustunde de gorunsun */
  /* arama alani: yuksek, pill, gomulu */
  /* servis katalogu kutucuklari: kart + hover kalkis */
  /* genis ekranda 3 yerine 4 sutun */
}
:root[data-glpi-theme=dcam] body.helpdesk .helpdesk-home-container {
  height: auto;
  min-height: 100vh;
}
:root[data-glpi-theme=dcam] body.helpdesk .search-banner {
  background: radial-gradient(120% 140% at 50% 0%, #131a2b 0%, #000000 60%);
}
:root[data-glpi-theme=dcam] body.helpdesk .search-banner-content {
  padding-top: clamp(72px, 12vh, 170px);
  padding-bottom: clamp(40px, 7vh, 80px);
}
@media (min-width: 1200px) {
  :root[data-glpi-theme=dcam] body.helpdesk .scene {
    display: flex !important;
  }
  :root[data-glpi-theme=dcam] body.helpdesk .scene svg {
    height: clamp(220px, 26vw, 393px);
  }
}
:root[data-glpi-theme=dcam] body.helpdesk #search-input.home-search {
  height: 60px;
  border-radius: var(--r-pill);
  background-color: rgba(255, 255, 255, 0.1);
  border: 0;
  font-size: 16px;
  padding-left: 48px;
}
:root[data-glpi-theme=dcam] body.helpdesk .tiles-banner a.card,
:root[data-glpi-theme=dcam] body.helpdesk .service-catalog a.card {
  border-radius: var(--r-radius);
  transition: transform 180ms var(--r-ease), background-color 180ms var(--r-ease);
}
:root[data-glpi-theme=dcam] body.helpdesk .tiles-banner a.card:hover,
:root[data-glpi-theme=dcam] body.helpdesk .service-catalog a.card:hover {
  transform: translateY(-4px);
  background-color: rgba(255, 255, 255, 0.14);
}
@media (min-width: 1400px) {
  :root[data-glpi-theme=dcam] body.helpdesk .tiles-banner .row > [class*=col-] {
    flex: 0 0 25%;
    max-width: 25%;
  }
}
:root[data-glpi-theme=dcam] .messages_after_redirect .toast,
:root[data-glpi-theme=dcam] .toast {
  background-color: var(--r-popover);
  border: 0;
  border-radius: var(--r-radius);
  color: var(--r-fg);
}
:root[data-glpi-theme=dcam] .alert {
  border: 0;
  border-radius: var(--r-radius);
}
:root[data-glpi-theme=dcam] .card,
:root[data-glpi-theme=dcam] .btn,
:root[data-glpi-theme=dcam] .nav-link,
:root[data-glpi-theme=dcam] .list-group-item {
  transition-timing-function: var(--r-ease);
}

/* ============================================================================
 * GIRIS SAYFASI — kapsam disi (savunma amacli)
 * Anonim oturumda GLPI tema anahtarini oturumdan okur; varsayilan palet "dcam"
 * oldugu icin pratikte data-glpi-theme="dcam" geliyor (dogrulandi). Yine de
 * ileride varsayilan degisirse giris ekrani markasiz kalmasin diye ayni kurallari
 * tema kapsami DISINDA da taniyoruz. Ozel tema dosyasi giris sayfasinda her
 * halukarda yukleniyor (page_card_notlogged.html.twig tum custom temalari ekler).
 * ========================================================================== */
body.welcome-anonymous {
  background-color: #000000;
}

body.welcome-anonymous .page-anonymous .main-content-card,
body.welcome-anonymous .card.main-content-card {
  background-color: rgba(20, 20, 22, 0.82);
  backdrop-filter: blur(20px);
  border: 0;
  border-radius: 24px;
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.65);
  color: #ffffff;
}

body.welcome-anonymous .form-control {
  background-color: rgba(255, 255, 255, 0.14);
  border: 0;
  color: #ffffff;
  border-radius: 12px;
  min-height: 46px;
}

body.welcome-anonymous .form-label,
body.welcome-anonymous .form-check-label {
  color: rgba(255, 255, 255, 0.7);
}

body.welcome-anonymous .btn-primary {
  background-color: #ffffff;
  background-image: none;
  border: 0;
  color: #000000;
  border-radius: 9999px;
  min-height: 46px;
  font-weight: 600;
}

body.welcome-anonymous a.copyright {
  color: rgba(255, 255, 255, 0.32);
  font-size: 11px;
}