/* Minification failed. Returning unminified contents.
(10,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(11,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(12,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(14,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(50,17): run-time error CSS1039: Token not allowed after unary operator: '-canbus-lacivert'
(55,17): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi'
(64,17): run-time error CSS1039: Token not allowed after unary operator: '-canbus-gri'
(140,46): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi'
(140,72): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi-koyu'
(276,33): run-time error CSS1039: Token not allowed after unary operator: '-canbus-lejant-kenar'
(277,22): run-time error CSS1039: Token not allowed after unary operator: '-canbus-lejant-zemin'
(286,36): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi'
(293,17): run-time error CSS1039: Token not allowed after unary operator: '-canbus-gri'
(306,17): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi'
(328,59): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi'
(383,22): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi'
(403,63): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi'
(554,64): run-time error CSS1039: Token not allowed after unary operator: '-bs-table-accent-bg'
(569,17): run-time error CSS1039: Token not allowed after unary operator: '-canbus-gri'
(575,17): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi'
(576,28): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi-acik'
(582,28): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi'
(602,24): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi'
(603,28): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi-acik'
(707,28): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi-acik'
(708,17): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi'
(816,17): run-time error CSS1039: Token not allowed after unary operator: '-canbus-gri'
(862,24): run-time error CSS1039: Token not allowed after unary operator: '-canbus-lacivert'
(863,28): run-time error CSS1039: Token not allowed after unary operator: '-canbus-lacivert'
(892,17): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi'
(896,24): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi'
(897,28): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi-acik'
(945,24): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi'
(948,23): run-time error CSS1030: Expected identifier, found ':'
(948,31): run-time error CSS1031: Expected selector, found ')'
(948,31): run-time error CSS1025: Expected comma or open brace, found ')'
(954,24): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi'
(967,17): run-time error CSS1039: Token not allowed after unary operator: '-canbus-lacivert'
(972,17): run-time error CSS1039: Token not allowed after unary operator: '-canbus-gri'
(979,17): run-time error CSS1039: Token not allowed after unary operator: '-canbus-lacivert'
(987,17): run-time error CSS1039: Token not allowed after unary operator: '-canbus-gri'
(997,22): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi-acik'
(998,17): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi'
(1021,28): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi'
(1022,32): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi-acik'
(1028,17): run-time error CSS1039: Token not allowed after unary operator: '-canbus-lacivert'
(1035,17): run-time error CSS1039: Token not allowed after unary operator: '-canbus-gri'
(1053,22): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi-acik'
(1055,17): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi-koyu'
(1083,22): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi'
(1107,17): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi-koyu'
(1114,22): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi-acik'
(1115,17): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi-koyu'
(1211,27): run-time error CSS1030: Expected identifier, found '.'
(1211,28): run-time error CSS1030: Expected identifier, found 'page-header-right-items-wrapper'
(1211,75): run-time error CSS1031: Expected selector, found ')'
(1211,75): run-time error CSS1025: Expected comma or open brace, found ')'
(1216,55): run-time error CSS1030: Expected identifier, found '.'
(1216,56): run-time error CSS1030: Expected identifier, found 'page-header-right-items-wrapper'
(1216,103): run-time error CSS1031: Expected selector, found ')'
(1216,103): run-time error CSS1025: Expected comma or open brace, found ')'
(1228,55): run-time error CSS1030: Expected identifier, found '.'
(1228,56): run-time error CSS1030: Expected identifier, found 'page-header-right-items-wrapper'
(1228,103): run-time error CSS1031: Expected selector, found ')'
(1228,103): run-time error CSS1025: Expected comma or open brace, found ')'
(1573,17): run-time error CSS1039: Token not allowed after unary operator: '-canbus-gri'
(1586,17): run-time error CSS1039: Token not allowed after unary operator: '-canbus-gri'
(1604,17): run-time error CSS1039: Token not allowed after unary operator: '-canbus-gri'
(1613,17): run-time error CSS1039: Token not allowed after unary operator: '-canbus-lacivert'
(1633,22): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi-acik'
(1641,17): run-time error CSS1039: Token not allowed after unary operator: '-canbus-gri'
(1650,17): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi'
(1719,29): run-time error CSS1039: Token not allowed after unary operator: '-canbus-kirmizi'
 */
/*
 * Canbus Teknik Servis Yazilimi - marka katmani
 * -------------------------------------------------
 * Bu dosya elle yazilir ve build/TemayiMarkala.ps1 tarafindan ASLA ezilmez.
 * Temanin birincil rengi betik tarafindan #cf2136'ya cevrildigi icin burada
 * yalnizca tipografi ve markaya ozgu ince ayarlar bulunur.
 */

:root {
    --canbus-kirmizi: #cf2136;
    --canbus-kirmizi-koyu: #a61a2b;
    --canbus-kirmizi-acik: #fdeaec;
    --canbus-lacivert: #283c50;
    --canbus-gri: #6b7280;
}

/* --- Tipografi ---------------------------------------------------------- */
/* Poppins tema tarafindan zaten Google Fonts uzerinden yukleniyor. */
body,
.nxl-navigation,
.nxl-header,
.btn,
.form-control,
.form-select,
.dropdown-menu,
.modal,
.table,
.card {
    font-family: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: "Poppins", sans-serif;
    font-weight: 600;
    letter-spacing: -0.01em;
}

/* Poppins, tema fontuna gore daha genis; tablolarda satirlarin sismesini onler. */
.table > :not(caption) > * > * {
    padding-top: 0.7rem;
    padding-bottom: 0.7rem;
}

/* --- Marka logosu ------------------------------------------------------- */
.b-brand .canbus-logo-yazi {
    font-size: 22px;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--canbus-lacivert);
    line-height: 1;
}

.b-brand .canbus-logo-yazi span {
    color: var(--canbus-kirmizi);
}

.b-brand .canbus-logo-alt {
    display: block;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--canbus-gri);
    margin-top: 2px;
}

html.minimenu .b-brand .canbus-logo-alt {
    display: none;
}

/*
   Resim logo (~/icerik/img/logo.*). Ust bar 80px yuksekliginde ve menu dar oldugu icin
   logo en/boy orani korunarak bu kutuya sigdirilir; genis ya da uzun logo tasmaz.
*/
.b-brand .canbus-marka-logo {
    display: block;
    width: auto;
    height: auto;
    max-width: 200px;
    max-height: 48px;
    object-fit: contain;
}

/* Kare kucuk logo (min-logo.*): tema genisligi 42px verir; yukseklik de ayni tutulur. */
html.minimenu .nxl-navigation .b-brand .canbus-marka-ikon {
    width: 42px;
    height: 42px;
    max-height: 42px;
    border-radius: 8px;
    object-fit: contain;
}

/*
   Ayri kare ikon (min-logo.*) yoksa genis logo 42px'e sigdirilinca okunmaz. Onun
   yerine logonun sol kismi kare olarak kirpilir: cogu logoda isaret soldadir.
*/
html.minimenu .nxl-navigation .b-brand .canbus-marka-ikon.canbus-marka-ikon-kirp {
    width: 42px;
    height: 42px;
    max-height: none;
    object-fit: cover;
    object-position: left center;
}

/* Tema koyu gorunumde menu logosunu tersine cevirir; resim logonun renkleri bozulmasin. */
html.app-navigation-dark .nxl-navigation .m-header .canbus-marka-logo,
html.app-header-dark .nxl-navigation .m-header .canbus-marka-logo,
html.app-skin-dark .nxl-navigation .m-header .canbus-marka-logo {
    filter: none;
}

.canbus-giris-logo {
    display: block;
    width: auto;
    height: auto;
    max-width: 280px;
    max-height: 72px;
    object-fit: contain;
}

.canbus-giris-logo-zemin {
    display: inline-block;
    padding: 12px 18px;
    border-radius: 12px;
    background: #fff;
}

.canbus-giris-mobil-logo {
    display: block;
    width: auto;
    height: auto;
    max-width: 220px;
    max-height: 52px;
    object-fit: contain;
}

/* --- Giris ekrani ------------------------------------------------------- */
.canbus-giris-kapak {
    background: linear-gradient(135deg, var(--canbus-kirmizi) 0%, var(--canbus-kirmizi-koyu) 100%);
    color: #fff;
}

/*
   Tema kapak metnine "padding:0" verir ve dikeyde hizalamaz; sonucta metin
   ekranin sol kenarina yapisir ve ustten baslar. Bosluk ve dikey ortalama
   burada verilir.

   Secici bilerek temanin uc sinifli seciciyle ayni derinlikte yazildi
   (.auth-cover-wrapper .auth-cover-content-inner .auth-cover-content-wrapper);
   daha kisa bir secici ozgullukte kaybeder ve padding uygulanmaz.
*/
.auth-cover-wrapper .auth-cover-content-inner.canbus-giris-kapak .auth-cover-content-wrapper {
    justify-content: center;
    padding: 48px 56px;
    max-width: 620px;
    margin: 0 auto;
}

@media (max-width: 1199.98px) {
    .auth-cover-wrapper .auth-cover-content-inner.canbus-giris-kapak .auth-cover-content-wrapper {
        padding: 40px 32px;
    }
}

/*
   Tema sarmalayiciyi dikeyde ortalar (align-items:center). Sagdaki form ekrandan
   uzun oldugunda (kayit ekrani) 100vh'lik kirmizi kapak da ortalanir; ustunde ve
   altinda gri bosluk kalir. Kapak ekran yuksekliginde sabitlenir, form yaninda kayar.
*/
.auth-cover-wrapper {
    align-items: flex-start;
}

.auth-cover-wrapper .auth-cover-content-inner.canbus-giris-kapak {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow-y: auto;
}

.auth-cover-wrapper .auth-cover-content-inner.canbus-giris-kapak .auth-cover-content-wrapper {
    min-height: 100%;
}

/* Tema, tum basliklara koyu lacivert atadigi icin kapak uzerinde acikca beyaza cekilir. */
.canbus-giris-kapak .canbus-giris-baslik {
    font-size: 30px;
    font-weight: 700;
    line-height: 1.25;
    color: #fff;
}

.canbus-giris-kapak .canbus-giris-ozet {
    color: rgba(255, 255, 255, 0.82);
}

.canbus-giris-kapak .canbus-giris-liste li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 14px;
    color: rgba(255, 255, 255, 0.9);
}

.canbus-giris-kapak .canbus-giris-liste i {
    margin-top: 3px;
}

/* --- Durum rozetleri ---------------------------------------------------- */
.canbus-durum {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11.5px;
    font-weight: 500;
    white-space: nowrap;
}

.canbus-durum::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
}

.canbus-durum-beklemede    { background: #fff4e5; color: #b76e00; }
.canbus-durum-devamediyor  { background: #e7f2ff; color: #0b5cad; }
.canbus-durum-parcabekliyor{ background: #fdeaec; color: #a61a2b; }
.canbus-durum-onaybekliyor { background: #f3ecff; color: #6429b8; }
.canbus-durum-tamamlandi   { background: #e6f7ed; color: #0f7a3d; }
.canbus-durum-teslimedildi { background: #eef0f3; color: #414b5a; }
.canbus-durum-iptal        { background: #f5f5f5; color: #8a8f98; }

/* Randevu durumlari; takvimdeki kutucuk renkleriyle ayni (bkz. randevular.js). */
.canbus-randevu-planlandi     { background: #fdeaec; color: #a61a2b; }
.canbus-randevu-servisealindi { background: #e6f7ed; color: #0f7a3d; }
.canbus-randevu-gelmedi       { background: #fff4e5; color: #b76e00; }
.canbus-randevu-iptal         { background: #f5f5f5; color: #8a8f98; }

/* --- Randevu takvimi ---------------------------------------------------- */
.canbus-takvim {
    height: 720px;
}

@media (max-width: 767.98px) {
    .canbus-takvim {
        height: 560px;
    }
}

.canbus-takvim .tui-full-calendar-time-schedule-content {
    white-space: normal;
    line-height: 1.3;
}

.canbus-takvim-iptal .tui-full-calendar-time-schedule-content,
.canbus-takvim-iptal {
    text-decoration: line-through;
}

.canbus-randevu-lejant {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.canbus-randevu-lejant::before {
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 3px;
    border-left: 3px solid var(--canbus-lejant-kenar, #cf2136);
    background: var(--canbus-lejant-zemin, #fdeaec);
}

/* --- Tutar gosterimi ---------------------------------------------------- */
.canbus-tutar {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.canbus-tutar-borc   { color: var(--canbus-kirmizi); }
.canbus-tutar-alacak { color: #0f7a3d; }

/* --- Bos durum ---------------------------------------------------------- */
.canbus-bos {
    padding: 48px 20px;
    text-align: center;
    color: var(--canbus-gri);
}

.canbus-bos i {
    font-size: 40px;
    color: #c9ced6;
    display: block;
    margin-bottom: 12px;
}

/* --- Zorunlu alan isareti ----------------------------------------------- */
.form-label.zorunlu::after {
    content: " *";
    color: var(--canbus-kirmizi);
    font-weight: 600;
}

/* --- Destek talebi ------------------------------------------------------ */
.canbus-talep-acik          { background: #e7f2ff; color: #0b5cad; }
.canbus-talep-yanitbekliyor { background: #fff4e5; color: #b76e00; }
.canbus-talep-yanitlandi    { background: #e6f7ed; color: #0f7a3d; }
.canbus-talep-kapali        { background: #eef0f3; color: #414b5a; }

.canbus-oncelik {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
}

.canbus-oncelik-dusuk  { background: #f1f3f5; color: #6c757d; }
.canbus-oncelik-normal { background: #eef0f3; color: #414b5a; }
.canbus-oncelik-yuksek { background: #fff4e5; color: #b76e00; }
.canbus-oncelik-kritik { background: #fdeaec; color: var(--canbus-kirmizi); }

/* Yazisma akisi: firmanin mesajlari solda, Canbus'unkiler saga hizali ve
   markanin kirmizisiyla cerceveli -- kimin yazdigi tek bakista ayrilsin. */
.canbus-mesaj {
    display: flex;
    gap: 12px;
    margin-bottom: 18px;
}

.canbus-mesaj-govde {
    flex: 1 1 auto;
    min-width: 0;
    border: 1px solid #e6e8ec;
    border-radius: 10px;
    padding: 14px 16px;
    background: #fff;
}

.canbus-mesaj-destek .canbus-mesaj-govde {
    border-color: rgba(207, 33, 54, 0.25);
    background: #fdf6f7;
}

.canbus-mesaj-basligi {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
}

.canbus-mesaj-metni {
    white-space: pre-wrap;
    word-break: break-word;
    line-height: 1.6;
    margin: 0;
}

.canbus-mesaj-avatar {
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 600;
    background: #eef0f3;
    color: #414b5a;
}

.canbus-mesaj-destek .canbus-mesaj-avatar {
    background: var(--canbus-kirmizi);
    color: #fff;
}

.canbus-mesaj-ek {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
    padding: 6px 10px;
    border: 1px solid #e6e8ec;
    border-radius: 6px;
    font-size: 12px;
    background: #fff;
}

/* --- Cek/senet portfoyu -------------------------------------------------- */
.canbus-evrak-portfoyde    { background: #e7f2ff; color: #0b5cad; }
.canbus-evrak-tahsiledildi { background: #e6f7ed; color: #0f7a3d; }
.canbus-evrak-odendi       { background: #e6f7ed; color: #0f7a3d; }
.canbus-evrak-karsiliksiz  { background: #fdeaec; color: var(--canbus-kirmizi); }
.canbus-evrak-ciroedildi   { background: #f3ecff; color: #6429b8; }
.canbus-evrak-iade         { background: #eef0f3; color: #414b5a; }

/* --- Yerlesim duzeltmeleri ---------------------------------------------- */
/*
   Tema .nxl-container ogesine yalnizca min-height verir; icerik kisa
   oldugunda footer icerigin hemen altinda kalir ve altinda bos beyaz bir
   alan olusur. Kolon yonlu esnek yerlesimle footer daima dibe itilir.
*/
.nxl-container {
    display: flex;
    flex-direction: column;
}

.nxl-container > .nxl-content {
    flex: 1 0 auto;
}

.nxl-container > .footer {
    flex-shrink: 0;
    margin-top: auto;
}

/*
   Sayfa yarida takiliyor, footer kaydirmayla birlikte geliyordu (2026-09-19).

   1) Tema .main-content'e "overflow-x: hidden" verir. Bir eksende gizleme
      verilince diger eksen "auto" olur: kutu dikeyde kendi kaydirma alanina
      donusur. Icerikten tasan her sey (asagidaki kartlar, acik bir liste)
      sayfayi uzatacagina bu ic alana duser; sayfa sonuna gelince tekerlek ic
      kutuyu kaydirir, footer ekranin dibinde sabit kalir, yukari cikarken
      sayfayla birlikte geri gelir. "clip" yatayda ayni kirpmayi yapar ama
      kaydirma alani olusturmaz; desteklemeyen eski tarayici "hidden"da kalir.

   2) Alt dolgu 5px'ti; son ogesinin alt boslugu olmayan sayfalarda footer
      kartin dibine yapisiyordu.
*/
.nxl-container .nxl-content .main-content {
    overflow-x: hidden;
    overflow-x: clip;
    padding-bottom: 16px;
}

/*
   Temanin .stretch-full sinifi karti sutun yuksekliginin %100'une ceker; ayni
   satirdaki kartlari esit boyda gostermek icindir. Bir sutunda birden fazla
   kart varsa her biri sutunun tamami kadar uzar ve sutundan iki kat tasar
   (Raporlar > Ciro: "Donemler" ve "En Karli Servisler" ayni sutunda). Esitleme
   yalnizca sutundaki tek karta uygulanir.
*/
[class*="col"] > .stretch.stretch-full:not(:only-child) {
    height: auto;
}

/*
   h-100 kart sutunun tamamini kaplar; temanin kart alt boslugu (24px) ise
   sutunun disina tasar. Aralik zaten sutundaki mb-* ile verilir.
*/
.row > [class*="col"] > .card.h-100 {
    margin-bottom: 0;
}

/*
   Tema .user-avtar sinifini <img> icin yazmis: yalnizca genislik verilmis,
   yukseklik goruntunun en-boy oraniyla olusuyor. Avatar yerine bas harf
   rozeti kullandigimizda oge bir <span> oldugu icin yuksekligi satir
   yuksekligine dusuyor ve daire yerine oval bir hap gorunuyor.
*/
span.user-avtar {
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    font-size: 14px;
    line-height: 1;
}

/*
   Yan menudeki alt menuler varsayilan olarak KAPALI baslasin.

   Temada .nxl-submenu icin tek bir gorunurluk kurali var:
       .nxl-hasmenu.nxl-trigger > .nxl-submenu { display: block }
   Yani acik olmayan bir alt menuyu gizleyen hicbir kural yok; tema bunu
   JavaScript'e birakiyor (nxlNavigation menuclick icindeki slideUp).

   Sonuc: her sayfa yuklenisinde tarayici once alt menuyu ACIK ciziyor,
   ardindan betik onu animasyonla kapatiyor. Kullanici bunu "menu her sayfa
   gecisinde acilip kapaniyor" olarak goruyor.

   Asagidaki kural baslangic durumunu CSS'e tasir; boylece hic acik
   cizilmez. Acik menunun kurali (uc sinif + .nxl-trigger) daha ozgul
   oldugu icin aktif menu etkilenmez, tiklamada jQuery'nin yazdigi satir ici
   stil de her iki kuraldan da onceliklidir; animasyon eskisi gibi calisir.
*/
.nxl-navigation .navbar-content .nxl-hasmenu > .nxl-submenu {
    display: none;
}

/*
   Islem sutunu saga sabitlenir.

   Liste tablolari .table-responsive icinde durur; tablo kutudan genis
   oldugunda son sutun -- yani islem butonlari -- gorunur alanin disinda
   kalir ve kirpilir. Kullanici butonlara ulasmak icin tabloyu yatay
   kaydirmak zorunda, ustelik sagda bir sey oldugunu gosteren bir ipucu da
   yok. Sutunu sabitlemek butonlari her genislikte erisilebilir birakir.

   Zemin rengi sart: sabit hucrenin altindan kayan icerik gorunmesin.
   Tema hover efektini arka plan rengiyle degil "inset box-shadow" ile
   yaptigi icin (bkz. table-hover kurali) buradaki duz beyaz zemin hover
   gorunumunu bozmaz; golge beyazin uzerine cizilir.
*/
.table-responsive .canbus-islem-sutunu {
    position: sticky;
    right: 0;
    z-index: 2;
    background-color: #fff;
    border-left: 1px solid #e5e7eb;
}

/* Baslik satirindaki hucre govdedekilerin uzerinde kalmalidir. */
.table-responsive thead .canbus-islem-sutunu {
    z-index: 3;
}

/*
   Satir sonundaki detay oku (GorunumYardimcilari.DetayOku / Canbus.detayOku).
   Sutun icerigi kadar dar kalir; ok satirin uzerine gelince marka rengini alir.

   Islem sutunu gibi saga sabitlenir: tema hucrelere genis ic bosluk verdigi icin
   liste tablolari 1440 px ekranda bile kartindan tasiyor (anasayfa 720 px kutuda
   ~1040 px tablo) ve en sagdaki ok ancak tablo yana kaydirilinca gorunuyordu.
*/
.table .canbus-ok-sutunu {
    width: 1%;
    white-space: nowrap;
    text-align: end;
    padding-left: 12px;
    padding-right: 16px;
}

/*
   Ayirici cizgi border ile degil ic golgeyle: border-collapse tablolarda yapiskan
   hucrenin kenarligi hucreyle birlikte kaymiyor. Ikinci golge Bootstrap'in satir
   vurgusudur (--bs-table-accent-bg); ezilmesin diye burada tekrar edilir.
*/
.table-responsive .canbus-ok-sutunu {
    position: sticky;
    right: 0;
    z-index: 2;
    background-color: #fff;
    box-shadow: inset 1px 0 0 #e5e7eb, inset 0 0 0 9999px var(--bs-table-accent-bg, transparent);
}

.table-responsive thead .canbus-ok-sutunu {
    z-index: 3;
}

.canbus-detay-oku {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    font-size: 16px;
    color: var(--canbus-gri);
    background-color: #f3f4f6;
    transition: background-color .15s ease, color .15s ease;
}

tr:hover .canbus-detay-oku {
    color: var(--canbus-kirmizi);
    background-color: var(--canbus-kirmizi-acik);
}

.canbus-detay-oku:hover,
.canbus-detay-oku:focus-visible {
    color: #fff !important;
    background-color: var(--canbus-kirmizi) !important;
}

/* --- Servis fotograf ve belgeleri (_BelgeGalerisi, yeni servis formu) ---- */
.canbus-belge-birak {
    border: 2px dashed #d5dae1;
    border-radius: 10px;
    padding: 24px 16px;
    text-align: center;
    transition: border-color .15s ease, background-color .15s ease;
}

.canbus-belge-birak > i {
    font-size: 32px;
    color: #b3bac5;
    display: block;
    margin-bottom: 8px;
}

.canbus-belge-birak.canbus-surukleniyor {
    border-color: var(--canbus-kirmizi);
    background-color: var(--canbus-kirmizi-acik);
}

/* Kamera dugmesi yalnizca dokunmatik cihazda anlamlidir; masaustunde "Dosya Sec" yeter. */
@media (pointer: fine) {
    .canbus-yalniz-dokunmatik {
        display: none !important;
    }
}

.canbus-belge-grup + .canbus-belge-grup {
    border-top: 1px solid #eef0f3;
    margin-top: 20px;
    padding-top: 20px;
}

.canbus-belge-izgara {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 12px;
}

.canbus-belge-kart {
    position: relative;
    border: 1px solid #e5e8ec;
    border-radius: 8px;
    overflow: hidden;
    background-color: #fff;
}

.canbus-belge-resim {
    display: block;
    height: 130px;
    background-color: #f3f4f6;
}

.canbus-belge-resim img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Telefonda en az iki sutun; tek sutunda her fotograf bir ekran kaplardi. */
@media (max-width: 575.98px) {
    .canbus-belge-izgara {
        grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
        gap: 8px;
    }

    .canbus-belge-resim {
        height: 110px;
    }
}

.canbus-belge-bilgi {
    padding: 6px 8px;
}

.canbus-belge-sil {
    position: absolute;
    top: 6px;
    right: 6px;
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, .92);
    color: #dc3545;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .25);
    opacity: 0;
    transition: opacity .15s ease;
}

.canbus-belge-kart:hover .canbus-belge-sil,
.canbus-belge-sil:focus {
    opacity: 1;
}

/* Fareyle uzerine gelinemeyen ekranda silme dugmesi hep gorunur. */
@media (hover: none) {
    .canbus-belge-sil {
        opacity: 1;
    }
}

.canbus-belge-uzanti {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 700;
    background-color: #eef0f3;
    color: #5b6b79;
}

.canbus-belge-uzanti-pdf {
    background-color: var(--canbus-kirmizi-acik);
    color: var(--canbus-kirmizi);
}

.canbus-belge-uzanti-doc,
.canbus-belge-uzanti-docx {
    background-color: #e8f0fe;
    color: #1a5fd0;
}

.canbus-belge-uzanti-xls,
.canbus-belge-uzanti-xlsx,
.canbus-belge-uzanti-csv {
    background-color: #e6f4ea;
    color: #1e7e34;
}

.canbus-belge-kucuk {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    border-radius: 8px;
    object-fit: cover;
}

.canbus-onizleme-sahne {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 40vh;
    background-color: #111;
}

.canbus-onizleme-sahne img {
    display: block;
    max-width: 100%;
    max-height: 75vh;
}

.canbus-onizleme-gecis {
    position: absolute;
    top: 50%;
    z-index: 2;
    width: 44px;
    height: 44px;
    margin-top: -22px;
    border: 0;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, .85);
    color: #222;
    font-size: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.canbus-onizleme-gecis[hidden] {
    display: none;
}

.canbus-onizleme-onceki {
    left: 12px;
}

.canbus-onizleme-sonraki {
    right: 12px;
}

/* --- Musteri sikayetleri (kontrol listesi, hazir arizalar) --------------- */
.canbus-sikayet-ilerleme {
    height: 4px;
}

.canbus-sikayet {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 8px 0;
    border-bottom: 1px dashed #e5e8ec;
}

.canbus-sikayet:last-child {
    border-bottom: 0;
}

.canbus-sikayet > .form-check-input {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    margin-top: 1px;
    cursor: pointer;
}

.canbus-sikayet > .form-check-input:disabled {
    cursor: default;
    opacity: .8;
}

.canbus-sikayet-metin {
    display: block;
    margin: 0;
    font-weight: 500;
    color: #283c50;
    cursor: pointer;
    word-break: break-word;
}

.canbus-sikayet-tamam .canbus-sikayet-metin {
    color: var(--canbus-gri);
    text-decoration: line-through;
    text-decoration-color: rgba(107, 114, 128, .5);
}

.canbus-sikayet-not {
    color: #283c50;
    word-break: break-word;
}

/* Bootstrap input-group'a width:100% verir; esnek satirda yer paylasabilsin. */
.canbus-sikayet-ekle-girdi {
    flex: 1 1 240px;
    width: auto;
}

.canbus-sikayet-madde {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 8px 6px 10px;
    margin-bottom: 6px;
    border: 1px solid #e5e8ec;
    border-radius: 6px;
    background-color: #fff;
    word-break: break-word;
}

.canbus-hazir-kategoriler {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 8px;
}

.canbus-hazir-kategori {
    border: 1px solid #e5e8ec;
    border-radius: 20px;
    background-color: #fff;
    color: #5b6b79;
    font-size: 12px;
    font-weight: 500;
    padding: 3px 12px;
}

.canbus-hazir-kategori.active {
    border-color: var(--canbus-lacivert);
    background-color: var(--canbus-lacivert);
    color: #fff;
}

.canbus-hazir-kaliplar {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.canbus-hazir-kaliplar[hidden] {
    display: none;
}

.canbus-hazir-kalip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    border: 1px dashed #c9ced6;
    border-radius: 6px;
    background-color: #f8f9fb;
    color: #283c50;
    font-size: 12px;
    padding: 4px 10px;
    text-align: left;
}

.canbus-hazir-kalip i {
    font-size: 12px;
    color: var(--canbus-kirmizi);
}

.canbus-hazir-kalip:hover {
    border-color: var(--canbus-kirmizi);
    background-color: var(--canbus-kirmizi-acik);
}

/* Listede olan kalip: formda tekrar basinca cikarilir. Arti simgesi tike doner (feather-check). */
.canbus-hazir-kalip.secili {
    border-style: solid;
    border-color: #1e7e34;
    background-color: #e6f4ea;
}

.canbus-hazir-kalip.secili i:before {
    content: "\e92b";
}

.canbus-hazir-kalip.secili i {
    color: #1e7e34;
}

/*
 * Musteri onay simgesi. Malzeme ve iscilik satirlarinda, satirin musteri
 * onayli bir teklifle eklendigini gosterir (bkz. TeklifServisi).
 */
.canbus-onay-simgesi {
    font-size: 14px;
    vertical-align: -2px;
    cursor: help;
}

/* --- Uyelik ve abonelik ------------------------------------------------- */

/* Uyelik formundaki baslangic secimi: deneme ya da paket. */
.canbus-plan-listesi {
    display: grid;
    gap: 10px;
}

.canbus-plan {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    cursor: pointer;
    transition: border-color .15s, background-color .15s;
}

.canbus-plan:hover {
    border-color: var(--canbus-kirmizi);
}

.canbus-plan:has(input:checked) {
    border-color: var(--canbus-kirmizi);
    background: var(--canbus-kirmizi-acik);
}

.canbus-plan input {
    accent-color: var(--canbus-kirmizi);
    flex: 0 0 auto;
}

.canbus-plan-govde {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-width: 0;
}

.canbus-plan-ad {
    font-weight: 600;
    color: var(--canbus-lacivert);
}

.canbus-plan-aciklama {
    font-size: 11.5px;
    color: var(--canbus-gri);
}

.canbus-plan-fiyat {
    flex: 0 0 auto;
    text-align: right;
    font-weight: 700;
    color: var(--canbus-lacivert);
    white-space: nowrap;
}

.canbus-plan-fiyat small {
    display: block;
    font-weight: 400;
    font-size: 11px;
    color: var(--canbus-gri);
}

.canbus-kayit-simge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--canbus-kirmizi-acik);
    color: var(--canbus-kirmizi);
    font-size: 28px;
}

/* Abonelik ekrani */
.canbus-lisans-simge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    font-size: 22px;
}

.canbus-lisans-simge.buyuk {
    width: 64px;
    height: 64px;
    font-size: 30px;
}

.canbus-paket.secili {
    border: 1px solid var(--canbus-kirmizi);
    box-shadow: 0 0 0 3px var(--canbus-kirmizi-acik);
}

.canbus-paket-fiyat {
    font-size: 24px;
    font-weight: 700;
    color: var(--canbus-lacivert);
    margin-bottom: 4px;
}

.canbus-paket-fiyat span {
    font-size: 12px;
    font-weight: 400;
    color: var(--canbus-gri);
}

/* Deneme surumu / bitisi yaklasan abonelik seridi (her sayfanin ustu). */
.canbus-abonelik-seridi {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 16px;
    padding: 10px 16px;
    border-radius: 8px;
    background: #fff7e6;
    border: 1px solid #f5d38a;
    color: #7a5200;
    font-size: 13px;
}

.canbus-abonelik-seridi.acil {
    background: var(--canbus-kirmizi-acik);
    border-color: #f3b5bd;
    color: var(--canbus-kirmizi-koyu);
}

.canbus-abonelik-seridi i {
    font-size: 16px;
}

/* --- Canbus destek oturumu (Master'dan, salt okunur) -------------------- */
/*
   Her sayfanin altinda sabit serit. Temanin sabit ust bari ve sol menusuyle
   cakismasin diye altta durur; sayfa sonu seridin altinda kalmasin diye
   govdeye ayni yukseklikte alt bosluk verilir. Pencereler (modal) ustunu ortur.
*/
body[data-destek="1"] {
    padding-bottom: 52px;
}

.canbus-destek-seridi {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1040;
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 52px;
    padding: 8px 16px;
    background: var(--canbus-kirmizi);
    color: #fff;
    font-size: 13px;
    line-height: 1.35;
    box-shadow: 0 -4px 14px rgba(40, 60, 80, .18);
}

.canbus-destek-seridi i {
    font-size: 18px;
    flex-shrink: 0;
}

.canbus-destek-seridi-metin {
    flex: 1 1 auto;
    min-width: 0;
}

.canbus-destek-seridi strong {
    color: #fff;
}

.canbus-destek-seridi-kapat {
    flex-shrink: 0;
    background: #fff;
    color: var(--canbus-kirmizi-koyu);
    border: 0;
    font-weight: 600;
}

.canbus-destek-seridi-kapat:hover,
.canbus-destek-seridi-kapat:focus {
    background: var(--canbus-kirmizi-acik);
    color: var(--canbus-kirmizi-koyu);
}

/* --- hidden niteligi flex kutularda da calissin ------------------------- */
/*
   Bootstrap'te reboot "[hidden]{display:none!important}" kuralini once,
   yardimci siniflar "d-flex{display:flex!important}" kuralini sonra yazar.
   Ozgullukleri esit oldugu icin sonraki kazanir: "hidden" nitelikli bir
   .d-flex kutusu gorunur kalir. Durum degistir penceresindeki bos sari uyari
   ve malzeme penceresindeki bos kutu bundan kaynaklaniyordu. Bu dosya en
   sonda yuklendigi icin asagidaki kural her ikisini de gizler.
*/
[hidden] {
    display: none !important;
}

/* --- Kart basligindaki gecis dugmesi ("Tumu ->") --------------------------- */
/*
   Kart basligin sagindaki "Tumu", "Depo", "Takvim", "Yonet" baglantilari
   eskiden duz kucuk yaziydi ve dugme oldugu anlasilmiyordu. Acik kirmizi
   zeminli kucuk dugme + sagda ok; ustune gelince dolar ve ok ileri kayar.
   Temanin .btn-sm sinifi kullanilmaz: 9px buyuk harf yazar ve basligi
   uzatir (yan yana kartlarda baslik cizgileri kayar). Negatif dikey bosluk
   baslik yuksekligini degistirmez.
*/
.canbus-kart-baglanti {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: -5px 0;
    padding: 4px 10px 4px 12px;
    border-radius: 6px;
    background-color: rgba(207, 33, 54, .08);
    color: #cf2136;
    font-size: 12px;
    font-weight: 600;
    line-height: 18px;
    white-space: nowrap;
    text-decoration: none;
    transition: background-color .15s ease, color .15s ease;
}

.canbus-kart-baglanti i {
    font-size: 14px;
    transition: transform .15s ease;
}

.canbus-kart-baglanti:hover,
.canbus-kart-baglanti:focus-visible {
    background-color: #cf2136;
    color: #fff;
}

.canbus-kart-baglanti:hover i,
.canbus-kart-baglanti:focus-visible i {
    transform: translateX(3px);
}

/* --- Telefonda sayfa eylemleri ------------------------------------------- */
/*
   Tema 768px altinda sayfa basligindaki eylemleri (Yeni Servis, Durum Degistir,
   Tahsilat Al...) yan panele alir ve paneli page-header-right-open-toggle ile
   acar. _Layout'ta bu dugme yoktu: telefonda eylemler hic gorunmuyordu. Artik
   "Islemler" dugmesi paneli acar. Bir-iki eylemli sayfada (Yeni Servis, Yeni
   Musteri gibi) panel gereksiz: dugmeler basligin yaninda kalir. :has()
   desteklemeyen eski tarayicilarda her sayfa panelle calisir.
*/
@media (max-width: 767.98px) {
    /* Dar telefonda (320px) baslik + dogrudan gorunen dugmeler sigmazsa alt satira gecer. */
    .nxl-container .nxl-content .page-header {
        flex-wrap: wrap;
        row-gap: 8px;
        padding-top: 10px;
        padding-bottom: 10px;
    }

    .nxl-container .nxl-content .page-header .page-header-right {
        min-width: 0;
    }

    /* Uzun baslik (musteri adi, fis no) kirilabilir; yol bilgisi gerekirse alt satira gecer. */
    .nxl-container .nxl-content .page-header .page-header-left {
        min-width: 0;
        flex-wrap: wrap;
        row-gap: 2px;
    }

    .nxl-container .nxl-content .page-header .page-header-title h5 {
        overflow-wrap: anywhere;
    }

    .page-header .canbus-eylem-ac .btn {
        padding: 8px 12px;
        white-space: nowrap;
    }

    .page-header:not(:has(.page-header-right-items-wrapper > :nth-child(3))) .canbus-eylem-ac,
    .page-header:not(:has(.page-header-right-items-wrapper > :nth-child(3))) .canbus-eylem-kapat {
        display: none !important;
    }

    .nxl-container .nxl-content .page-header:not(:has(.page-header-right-items-wrapper > :nth-child(3))) .page-header-right .page-header-right-items {
        position: static;
        width: auto;
        height: auto;
        opacity: 1;
        visibility: visible;
        transform: none;
        background: transparent;
        border: 0;
        box-shadow: none;
    }

    .nxl-container .nxl-content .page-header:not(:has(.page-header-right-items-wrapper > :nth-child(3))) .page-header-right .page-header-right-items .page-header-right-items-wrapper {
        padding: 0;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: flex-end;
    }
}

/*
   Tablet ve dar masaustu: bes eylemli sayfalar (Muhasebe, Depo) 768-1199px
   arasinda tek satira sigmayip sayfayi yana tasiyordu. Dugmeler gerekirse ikinci
   satira gecer; baslik yuksekligi (min-height) buna gore uzar.
*/
@media (min-width: 768px) {
    .nxl-container .nxl-content .page-header .page-header-right {
        min-width: 0;
    }

    .nxl-container .nxl-content .page-header .page-header-right-items-wrapper {
        flex-wrap: wrap;
        justify-content: flex-end;
        padding: 8px 0;
    }
}

/* --- Liste sayfalarinda sekme + suzgec basligi ------------------------------ */
/*
   Servis, Depo, Destek, Cek/Senet ve Tedarikciler listelerinde kart basliginda
   durum sekmeleri ve altinda suzgec satiri var (sekmedeki mb-3 bunu amaclar).
   Tema .card-header'i yan yana dizdigi icin suzgecler sekmelerin yanina
   sikisiyordu: telefonda 130-170px'e dusup kesiliyor, masaustunde sekmeler iki
   satira kiriliyordu. Sekmeler ustte, suzgecler tam genislikte altta.
*/
.card-header.canbus-suzgec-baslik {
    display: block;
}

/* --- Cubuk grafik satirlari (Muhasebe gunluk akis, Raporlar) ----------------- */
/*
   Etiket + cubuk + deger satirlarinda deger sutunlari masaustunde 150-170px
   (satir ici stil). Telefonda sabit sutunlar yeri doldurup cubugu sifira
   indiriyordu; dar ekranda sutunlar daralir, cubuga en az 24px kalir.
*/
@media (max-width: 575.98px) {
    .canbus-cubuk-satir > .canbus-cubuk-etiket {
        width: 52px !important;
        flex-shrink: 0;
    }

    .canbus-cubuk-satir > .canbus-cubuk-deger {
        width: 72px !important;
        flex-shrink: 0;
    }

    .canbus-cubuk-satir > [data-cubuk="kar"] {
        width: 56px !important;
        flex-shrink: 0;
    }

    .canbus-cubuk-satir > .canbus-cubuk-adet {
        width: 24px !important;
        flex-shrink: 0;
    }

    .canbus-cubuk-satir > .flex-grow-1 {
        min-width: 24px;
    }
}

/* --- Detay sayfalarindaki sekmeler (Servis, Musteri, Urun, Tedarikci) -------- */
/*
   Tema .nav-tabs-wrapper'a sabit 65px yukseklik verir. 5-6 sekme sigmayinca
   (telefon ve tablet) sekmeler satirlara kiriliyor, kutudan tasip altindaki
   icerigin ustune biniyordu. Sekmeler tek satirda kalir ve yana kaydirilir;
   sigdigi genislikte gorunum ayni.
*/
.nav-tabs-wrapper {
    height: auto;
    min-height: 65px;
}

.nav-tabs-wrapper .nav-tabs-custom-style {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    max-width: 100%;
    scrollbar-width: none;
}

.nav-tabs-wrapper .nav-tabs-custom-style::-webkit-scrollbar {
    display: none;
}

.nav-tabs-wrapper .nav-tabs-custom-style .nav-item {
    flex: 0 0 auto;
}

.nav-tabs-wrapper .nav-tabs-custom-style .nav-item .nav-link {
    white-space: nowrap;
}

/* Tema 25px yan bosluk verir: 6 sekme 1280px ekranda bile sigmiyordu. */
@media (max-width: 1599.98px) {
    .nav-tabs-wrapper .nav-tabs-custom-style .nav-item .nav-link {
        padding-left: 18px;
        padding-right: 18px;
    }
}

@media (max-width: 767.98px) {
    .nav-tabs-wrapper .nav-tabs-custom-style .nav-item .nav-link {
        padding: 18px 14px;
    }
}

/* Mobil uygulama magaza baglantilari (giris ekrani). */
.canbus-magaza {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.canbus-magaza a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 150px;
    padding: 7px 14px;
    border-radius: 10px;
    background: #1f2430;
    color: #fff;
    text-decoration: none;
    transition: opacity .15s;
}

.canbus-magaza a:hover {
    color: #fff;
    opacity: .85;
}

.canbus-magaza a i {
    font-size: 22px;
    line-height: 1;
}

.canbus-magaza small {
    display: block;
    font-size: 10px;
    line-height: 1.1;
    opacity: .8;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.canbus-magaza strong {
    display: block;
    font-size: 15px;
    line-height: 1.2;
    font-weight: 600;
}

/* ------------------------------------------------------------------ */
/* Musteri puanlamasi: ust bar puani ve Puanlar ve Yorumlar sayfasi    */
/* ------------------------------------------------------------------ */

.canbus-puan {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-right: 14px;
    padding: 5px 12px;
    border-radius: 999px;
    background: #fff7e0;
    color: #8a6100;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
}

.canbus-puan i {
    color: #f5b301;
    font-size: 15px;
}

a.canbus-puan:hover {
    background: #ffefc2;
    color: #6f4e00;
}

.canbus-puan-salt {
    cursor: default;
}

.canbus-yildiz-renk {
    color: #f5b301;
}

.canbus-yildizlar span {
    color: #d6d9de;
    font-size: 18px;
    line-height: 1;
}

.canbus-yildizlar span.dolu {
    color: #f5b301;
}

.canbus-puan-satir {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 8px;
    margin: 0 -8px;
    border-radius: 6px;
    color: inherit;
    text-decoration: none;
}

.canbus-puan-satir:hover,
.canbus-puan-satir.secili {
    background: #f6f7f9;
    color: inherit;
}

.canbus-puan-etiket {
    width: 34px;
    flex: 0 0 34px;
    font-weight: 600;
    font-size: 13px;
}

.canbus-puan-satir .progress {
    height: 8px;
}

.canbus-puan-cubuk {
    background: #f5b301;
}

.canbus-puan-sayi {
    flex: 0 0 74px;
    text-align: right;
    font-size: 12px;
}

.canbus-yorumlar li {
    padding: 14px 0;
    border-bottom: 1px solid #eef0f3;
}

.canbus-yorumlar li:first-child {
    padding-top: 0;
}

.canbus-yorumlar li:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.canbus-yorum-metni {
    white-space: pre-line;
    word-break: break-word;
}

@media (max-width: 575.98px) {
    .canbus-puan {
        margin-right: 8px;
        padding: 4px 9px;
    }
}

.canbus-puan-filtre {
    min-width: 140px;
}

/* --- Plaka ------------------------------------------------------------------
   Turk plakasi gibi: solda mavi "TR" seridi, beyaz zeminde kalin siyah yazi.
   Isaretleme GorunumYardimcilari.Plaka (sunucu) ve Canbus.plaka (canbus.js)
   ile uretilir; ayni kurallar canbus.css, yazdir.css ve teklif.css'te durur.
   Plaka koyu temada ve soluk (pasif) satirda da gercek plaka gibi beyaz kalir. */
.canbus-plaka {
    display: inline-flex;
    align-items: stretch;
    max-width: 100%;
    vertical-align: middle;
    overflow: hidden;
    border: 1.5px solid #1f2430;
    border-radius: 3px;
    background: #fff;
    color: #111;
    font-size: 13px;
    line-height: 1;
    white-space: nowrap;
    opacity: 1;
}

.canbus-plaka-ulke {
    display: flex;
    align-items: center;
    padding: 0 0.32em;
    background: #0039a6;
    color: #fff;
    font-size: 0.7em;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.canbus-plaka-no {
    padding: 0.24em 0.45em 0.22em;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: #111;
}

.canbus-plaka-sm {
    font-size: 11px;
    border-width: 1px;
}

/* --- Ekip sohbeti (servis detayi, _EkipSohbeti + servis-sohbet.js) ----------
   Ust satirdaki diger iki kartla ayni yukseklikte durur: liste kalan yuksekligi
   doldurur ve kendi icinde kayar (flex-basis 0, satir yuksekligini o belirlemez).
   Kart tam satira indiginde (1200px alti) liste icerikle buyur, ust sinirda kayar. */
.canbus-sohbet {
    min-height: 360px;
}

.canbus-sohbet-liste {
    flex: 1 1 0;
    min-height: 220px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px 16px;
    background: #f8f9fb;
}

.canbus-sohbet-bos {
    margin: auto;
    max-width: 260px;
    text-align: center;
    font-size: 12px;
    color: var(--canbus-gri);
}

.canbus-sohbet-bos i {
    display: block;
    margin-bottom: 6px;
    font-size: 24px;
    color: #c9ced6;
}

.canbus-sohbet-not {
    text-align: center;
    font-size: 11px;
    color: var(--canbus-gri);
}

.canbus-sohbet-mesaj {
    align-self: flex-start;
    max-width: 88%;
}

.canbus-sohbet-mesaj.benim {
    align-self: flex-end;
}

.canbus-sohbet-ust {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 2px;
    font-size: 11px;
    color: var(--canbus-gri);
}

.canbus-sohbet-mesaj.benim .canbus-sohbet-ust {
    justify-content: flex-end;
}

.canbus-sohbet-yazan {
    font-weight: 600;
    color: var(--canbus-lacivert);
}

.canbus-sohbet-balon {
    padding: 7px 11px;
    border: 1px solid #e6e8ec;
    border-radius: 12px;
    border-top-left-radius: 4px;
    background: #fff;
    color: #1f2430;
    font-size: 13px;
    line-height: 1.45;
    white-space: pre-wrap;
    word-break: break-word;
}

.canbus-sohbet-mesaj.benim .canbus-sohbet-balon {
    border-color: #f5c6cc;
    border-radius: 12px;
    border-top-right-radius: 4px;
    background: var(--canbus-kirmizi-acik);
}

/* Dokunmatik ekranda fareyle uzerine gelinemez; dugme hep soluk gorunur. */
.canbus-sohbet-sil {
    padding: 0 2px;
    border: 0;
    background: none;
    color: var(--canbus-gri);
    font-size: 12px;
    line-height: 1;
    opacity: 0.55;
    cursor: pointer;
}

.canbus-sohbet-sil:hover,
.canbus-sohbet-sil:focus {
    color: var(--canbus-kirmizi);
    opacity: 1;
}

.canbus-sohbet-yaz {
    display: flex;
    align-items: flex-end;
    gap: 8px;
    padding: 10px 12px;
    border-top: 1px solid #eceef1;
}

.canbus-sohbet-yaz textarea {
    min-height: 38px;
    max-height: 130px;
    resize: none;
    font-size: 13px;
}

.canbus-sohbet-yaz .btn {
    flex: 0 0 auto;
    height: 38px;
    padding: 0 14px;
}

@media (max-width: 1199.98px) {
    .canbus-sohbet {
        min-height: 0;
    }

    .canbus-sohbet-liste {
        flex-basis: auto;
        min-height: 240px;
        max-height: 420px;
    }
}

html.app-skin-dark .canbus-sohbet-liste {
    background: rgba(255, 255, 255, 0.03);
}

html.app-skin-dark .canbus-sohbet-balon {
    border-color: rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.06);
    color: inherit;
}

html.app-skin-dark .canbus-sohbet-mesaj.benim .canbus-sohbet-balon {
    border-color: rgba(207, 33, 54, 0.45);
    background: rgba(207, 33, 54, 0.18);
}

/* --- Ust bar profil dugmesi (_Layout) ----------------------------------------
   Tetikleyici <button>'dur: tema yalnizca a[data-bs-toggle] menulerini fareyle
   actigi icin menu tiklamayla acilir. Firma logosu yukluyse logo, degilse bas
   harf rozeti gosterilir. Logolar genelde yatay oldugu icin daireye kirpilmaz;
   beyaz zeminli, yuvarlak koseli bir kutuya orani korunarak sigdirilir. */
.canbus-profil-dugme {
    display: inline-flex;
    align-items: center;
    padding: 0;
    border: 0;
    border-radius: 10px;
    background: none;
    line-height: 1;
    cursor: pointer;
}

.canbus-profil-dugme:focus-visible {
    outline: 2px solid var(--canbus-kirmizi);
    outline-offset: 3px;
}

.canbus-profil-dugme .user-avtar {
    margin-right: 0;
}

.canbus-profil-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 40px;
    max-width: 128px;
    padding: 3px 8px;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #fff;
    transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

.canbus-profil-logo img {
    display: block;
    max-width: 110px;
    max-height: 32px;
    object-fit: contain;
}

.canbus-profil-dugme:hover .canbus-profil-logo,
.canbus-profil-dugme[aria-expanded="true"] .canbus-profil-logo {
    border-color: #d1d5db;
    box-shadow: 0 2px 8px rgba(31, 36, 48, 0.08);
}

@media (max-width: 575.98px) {
    .canbus-profil-logo {
        max-width: 92px;
        padding: 3px 6px;
    }

    .canbus-profil-logo img {
        max-width: 78px;
    }
}

/* ------------------------------------------------------------------ */
/* Ust bar: TCMB doviz kuru gostergesi (puan rozetinin solunda)        */
/* ------------------------------------------------------------------ */

.canbus-kur {
    align-items: center;
    gap: 12px;
    margin-right: 10px;
    padding: 5px 12px;
    border-radius: 999px;
    background: #eef3fb;
    color: #34405a;
    font-size: 12.5px;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
}

.canbus-kur b {
    color: #cf2136;
    font-weight: 700;
}

a.canbus-kur:hover {
    background: #e2eaf7;
    color: #1f2430;
}

.canbus-kur-salt {
    cursor: default;
}

