:root {
  --bg:#f1f5f9; --card:#fff; --ink:#0f172a; --muted:#64748b;
  --primary:#2563eb; --primary-d:#1d4ed8; --danger:#dc2626; --border:#e2e8f0;
  /* Türkçe karakterleri (İ ş ğ) her ağırlıkta doğru gösteren stack.
     Arial macOS'ta normal ağırlıkta bu glifleri düşürdüğü için önce sistem fontu. */
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;
}
* { box-sizing:border-box; }
body { margin:0; font-family:var(--font); background:var(--bg); color:var(--ink); }
a { color:var(--primary); text-decoration:none; }
a:hover { text-decoration:underline; }

.topbar { display:flex; align-items:center; justify-content:space-between;
  background:#0f172a; color:#fff; padding:10px 20px; flex-wrap:wrap; gap:8px; }
.topbar .brand a { color:#fff; font-weight:bold; font-size:18px; }
.topbar .brand span { color:#60a5fa; }
.topbar nav { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.topbar nav a { color:#cbd5e1; font-size:14px; }
.topbar nav a:hover { color:#fff; }
.topbar .who { color:#93c5fd; font-size:13px; }
.topbar .who:hover { color:#bfdbfe; }
.nav-bell { position:relative; font-size:18px; line-height:1; }
.bell-badge { position:absolute; top:-7px; right:-10px; background:#16a34a; color:#fff; font-size:10px; font-weight:700; min-width:16px; height:16px; line-height:16px; text-align:center; border-radius:999px; padding:0 3px; }
.inline { display:inline; }

.container { max-width:1040px; margin:24px auto; padding:0 16px; }
.container.wide { max-width:1400px; }
.page-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; flex-wrap:wrap; }
h1 { font-size:22px; margin:0; }
h2.sec { font-size:14px; text-transform:uppercase; letter-spacing:.5px; color:var(--muted);
  border-bottom:1px solid var(--border); padding-bottom:6px; margin:0 0 14px; }

.card { background:var(--card); border:1px solid var(--border); border-radius:12px; padding:18px; margin-bottom:18px; }
.card.center { text-align:center; }
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:18px; align-items:start; }
@media (max-width:760px){ .two-col { grid-template-columns:1fr; } }

.btn { display:inline-block; white-space:nowrap; padding:9px 16px; border-radius:8px; border:1px solid var(--border);
  background:#fff; color:var(--ink); font-size:14px; cursor:pointer; }
.btn:hover { text-decoration:none; background:#f8fafc; }
.btn-primary { background:var(--primary); border-color:var(--primary); color:#fff; }
.btn-primary:hover { background:var(--primary-d); }
.btn-danger { background:var(--danger); border-color:var(--danger); color:#fff; }
.btn-ghost { background:transparent; color:#cbd5e1; border-color:transparent; }
.btn-sm { padding:5px 10px; font-size:13px; }
.btn-block { width:100%; }

.table { width:100%; border-collapse:collapse; }
.table th, .table td { text-align:left; padding:9px 10px; border-bottom:1px solid var(--border); font-size:14px; vertical-align:top; }
.table thead th { color:var(--muted); font-size:12px; text-transform:uppercase; }
.table small { color:var(--muted); }

.badge { padding:3px 9px; border-radius:999px; font-size:12px; font-weight:600; white-space:nowrap; }
.badge-submitted { background:#e0f2fe; color:#075985; }
.badge-uploaded { background:#fef9c3; color:#854d0e; }
.badge-approved { background:#dcfce7; color:#166534; }
/* Yeni durum iş akışı */
.badge-imzada { background:#fef3c7; color:#92400e; }
.badge-incelemede { background:#e2e8f0; color:#334155; }
.badge-yetkili_onayinda { background:#ede9fe; color:#5b21b6; }
.badge-onaya_gonderildi { background:#dbeafe; color:#1e40af; }
.badge-onaylandi { background:#cffafe; color:#155e75; }
.badge-ajansta { background:#f3e8ff; color:#6b21a8; }
/* Personel talebi dış ofis aşaması (görüntü katmanı — ana durum onaylandi kalır) */
.badge-disofis { background:#e0e7ff; color:#3730a3; }
.badge-disofis-durdu { background:#fef3c7; color:#92400e; }
.badge-izindosya { background:#f3e8ff; color:#6b21a8; }
.badge-beklemede { background:#fef9c3; color:#854d0e; }
.badge-reddedildi { background:#fee2e2; color:#991b1b; }
.badge-iptal { background:#ffe4e6; color:#9f1239; }
.badge-biletlendi { background:#dcfce7; color:#166534; }

.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.form-grid .full { grid-column:1 / -1; }
@media (max-width:620px){ .form-grid { grid-template-columns:1fr; } }
label { display:block; font-size:13px; font-weight:600; color:#334155; }
input, select, textarea { width:100%; margin-top:5px; padding:9px 10px; border:1px solid #cbd5e1;
  border-radius:8px; font-size:14px; font-family:inherit; }
/* button da diğer form öğeleri gibi font'u miras ALMAZ — Türkçe karakterler
   düşmesin diye açıkça inherit ettiriyoruz (Çıkış, Oluştur, Pasifleştir...). */
button { font-family:inherit; }
input:focus, select:focus, textarea:focus { outline:2px solid #bfdbfe; border-color:var(--primary); }
.radios { display:flex; gap:18px; flex-wrap:wrap; }
.radio { display:flex; align-items:center; gap:6px; font-weight:500; }
.radio input { width:auto; margin:0; }
.actions { display:flex; gap:10px; justify-content:flex-end; margin-top:8px; }
.row { display:flex; gap:8px; align-items:center; margin-top:8px; }
.row input, .row select { margin-top:0; }

.defs { display:grid; grid-template-columns:auto 1fr; gap:6px 14px; margin:0; }
.defs dt { color:var(--muted); font-size:13px; }
.defs dd { margin:0; font-size:14px; }

.qr { width:200px; height:200px; }
.doclist { list-style:none; padding:0; margin:0; }
.doclist li { padding:8px 0; border-bottom:1px solid var(--border); display:flex; flex-direction:column; }

.alert { padding:11px 14px; border-radius:8px; margin-bottom:14px; font-size:14px; }
.alert-error { background:#fee2e2; color:#991b1b; }
.alert-ok { background:#dcfce7; color:#166534; }
.muted { color:var(--muted); }

.filters { display:flex; gap:8px; margin-bottom:14px; flex-wrap:wrap; }
.chip { padding:6px 14px; border-radius:999px; background:#fff; border:1px solid var(--border); font-size:13px; }
.chip.active { background:var(--primary); color:#fff; border-color:var(--primary); }

.login-wrap { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:20px;
  background:linear-gradient(135deg,#0f172a,#1e3a8a); }
.login-card { background:#fff; border-radius:16px; padding:34px; width:100%; max-width:380px; box-shadow:0 20px 50px rgba(0,0,0,.3); }
.login-title { text-align:center; margin:0; font-size:26px; }
.login-title span { color:var(--primary); }
.login-sub { text-align:center; color:var(--muted); margin:4px 0 22px; }
.login-card label { margin-bottom:12px; }
.login-card .btn { margin-top:8px; }

.footer { text-align:center; color:var(--muted); font-size:12px; padding:24px; }

/* Cuma vurgusu */
.wd-cuma { color:#dc2626 !important; font-weight:700; }

/* Entegrasyon alt kutuları */
.sub-box { border:1px solid var(--border); border-radius:10px; padding:12px 14px; margin-top:12px; }

/* İzin süresi hesap kutusu (form girişinde; çıktıda yok) */
#izin-hesap { background:#eff6ff; border:1px solid #bfdbfe; border-radius:8px; padding:10px 12px; font-size:14px; color:#1e3a8a; line-height:1.8; }
/* Tarih yanı gün adı + toplam gün */
.gun-yani { font-weight:600; font-size:12px; color:#64748b; margin-left:4px; }
#toplam-gun { background:#f0fdf4; border:1px solid #bbf7d0; border-radius:8px; padding:8px 12px; font-size:14px; color:#166534; }

/* Sürüm geçmişi */
.cl-head { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }
.cl-ver { display:flex; align-items:center; gap:8px; }
.cl-vnum { font-size:22px; font-weight:800; letter-spacing:.5px; }
.cl-date { font-size:13px; }
.cl-title { font-size:16px; color:#334155; margin:8px 0 12px; }
.cl-type-major { background:#fee2e2; color:#991b1b; }
.cl-type-minor { background:#dbeafe; color:#1e40af; }
.cl-type-patch { background:#e2e8f0; color:#334155; }
.cl-sec { margin:10px 0; }
.cl-kind { display:inline-block; font-size:12px; font-weight:700; padding:2px 10px; border-radius:999px; margin-bottom:6px; }
.cl-kind-yeni { background:#dcfce7; color:#166534; }
.cl-kind-iyi { background:#dbeafe; color:#1e40af; }
.cl-kind-fix { background:#fef9c3; color:#854d0e; }
.cl-list { margin:0 0 4px; padding-left:20px; }
.cl-list li { font-size:14px; color:#334155; margin:4px 0; line-height:1.5; }

/* Çoklu şantiye seçim kutuları */
.santiye-cek { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:6px 14px; margin-top:6px;
  border:1px solid var(--border); border-radius:8px; padding:10px; }
.santiye-cek .cek { display:flex; align-items:center; gap:7px; font-weight:500; color:var(--ink); }
.santiye-cek .cek input { width:auto; margin:0; }

/* Ajanda / takvim */
.cal-wrap { display:grid; grid-template-columns:1fr 360px; gap:18px; align-items:start; }
@media (max-width:900px){ .cal-wrap { grid-template-columns:1fr; } }
.cal-head { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.cal-head strong { font-size:16px; }
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.cal-weekdays { margin-bottom:6px; }
.cal-weekdays > div { font-size:12px; font-weight:600; color:var(--muted); text-align:center; padding:4px 0; }
.cal-grid + .cal-grid { margin-top:6px; }
.cal-cell { min-height:64px; border:1px solid var(--border); border-radius:8px; padding:5px 6px;
  display:flex; flex-direction:column; gap:4px; background:#fff; color:var(--ink); text-decoration:none; }
.cal-cell:hover { background:#f8fafc; text-decoration:none; border-color:#cbd5e1; }
.cal-out { background:#f8fafc; color:#cbd5e1; }
.cal-out .cal-day { color:#cbd5e1; }
.cal-today { border-color:var(--primary); box-shadow:0 0 0 1px var(--primary) inset; }
.cal-sel { background:#eef4ff; border-color:var(--primary); }
.cal-day { font-size:13px; font-weight:600; }
.cal-badges { display:flex; flex-wrap:wrap; gap:3px; margin-top:auto; }
.cb { font-size:10.5px; font-weight:600; padding:1px 6px; border-radius:999px; white-space:nowrap; }
.cb-gidis { background:#dbeafe; color:#1e40af; }
.cb-gelis { background:#dcfce7; color:#166534; }
.cb-rem { background:#fef9c3; color:#854d0e; }
.cb-tas { background:#ede9fe; color:#6d28d9; }
.cal-legend { display:flex; gap:10px; margin-top:12px; flex-wrap:wrap; }
.cal-sub { font-size:13px; text-transform:uppercase; letter-spacing:.4px; color:var(--muted); margin:14px 0 6px; }
.cal-list { list-style:none; padding:0; margin:0; }
.cal-list li { padding:6px 0; border-bottom:1px solid var(--border); display:flex; flex-direction:column; }
.rem-row { flex-direction:row !important; align-items:center; justify-content:space-between; gap:8px; }
.rem-form { margin-top:6px; }
.rem-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
@media (max-width:520px){ .rem-grid { grid-template-columns:1fr; } }
/* Mesaj kutusu ile "Hatırlatma Ekle" butonu arasına boşluk */
.rem-form button { margin-top:14px; }
/* Yönetici açmadığı (yeni) talepler yeşil çerçeveli */
tr.form-unviewed td { background:#f0fdf4; }
tr.form-unviewed td:first-child { box-shadow: inset 4px 0 0 #16a34a; }
tr.form-unviewed { outline:2px solid #16a34a; outline-offset:-2px; }
/* Süreçteki talepler listede belirgin görünsün: sol kenar renk çubuğu + hafif ton */
tr.st-onon  td { background:#f0f9ff; } tr.st-onon  td:first-child { box-shadow: inset 4px 0 0 #0ea5e9; } /* Ön Onay — mavi */
tr.st-onay1 td { background:#eef2ff; } tr.st-onay1 td:first-child { box-shadow: inset 4px 0 0 #6366f1; } /* 1. Onay — indigo */
tr.st-onay2 td { background:#f0fdfa; } tr.st-onay2 td:first-child { box-shadow: inset 4px 0 0 #14b8a6; } /* 2. Onay — teal */
tr.st-bekle td { background:#fffbeb; } tr.st-bekle td:first-child { box-shadow: inset 4px 0 0 #f59e0b; } /* Beklemede — amber */
tr.st-duzeltme td { background:#fef2f2; } tr.st-duzeltme td:first-child { box-shadow: inset 4px 0 0 #ef4444; } /* Düzeltme İstendi — kırmızı */
tr.st-ajans td { background:#faf5ff; } tr.st-ajans td:first-child { box-shadow: inset 4px 0 0 #a855f7; } /* Ajansta — mor */
.yeni-rozet { display:inline-block; background:#16a34a; color:#fff; font-size:10px; font-weight:700; padding:1px 6px; border-radius:999px; vertical-align:middle; }
/* Sayfalama */
.pagination { display:flex; gap:12px; align-items:center; justify-content:center; margin-top:14px; }
/* Yönetici durum açıklaması (talep eden görür) */
.durum-not { background:#fff7ed; border:1px solid #fdba74; color:#9a3412; border-radius:10px; padding:12px 14px; margin:0 0 14px; white-space:pre-wrap; }
/* Panoda ~10 satır görünür, gerisi scroll; başlık sabit */
.table-scroll { max-height:560px; overflow-y:auto; }
.table-scroll thead th { position:sticky; top:0; background:#f1f5f9; z-index:1; }
/* Bilet/Personel listeleri: yalnız DİKEY scroll — yatay taşma olmasın (hücreler sığacak şekilde sarar) */
.table-scroll--fit { overflow-x:hidden; }
.table-scroll--fit .table th, .table-scroll--fit .table td { overflow-wrap:anywhere; }
/* Şehir bazlı akordiyon grubu (Sözleşme/ODS panosu) — <details open> ile hepsi açık gelir */
.mgrup { border:1px solid var(--border); border-radius:10px; margin-bottom:10px; overflow:hidden; }
.mgrup > summary { display:flex; align-items:center; gap:10px; flex-wrap:wrap; cursor:pointer; padding:9px 12px;
  background:#f1f5f9; color:#334155; font-weight:700; list-style:none; user-select:none; }
.mgrup > summary::-webkit-details-marker { display:none; }              /* Safari varsayılan üçgeni */
.mgrup > summary::before { content:'▸'; font-size:12px; color:#64748b; } /* kapalı ok */
.mgrup[open] > summary::before { content:'▾'; }                          /* açık ok */
.mgrup > summary:hover { background:#e2e8f0; }
.mgrup .mgrup-ad { letter-spacing:.02em; }
.mgrup .mgrup-oz { margin-left:auto; display:flex; gap:6px; flex-wrap:wrap; }
.mgrup .table-scroll { max-height:none; }         /* grup içinde kendi başlığı var, sticky/scroll gerekmez */
.mgrup .table { margin:0; }
/* Kayıt no (#12) proje etiketinin SOLUNDA kalsın — uzun proje adı yanında sarar, alta düşmez */
.proje-hucre { display:flex; gap:6px; align-items:flex-start; }
/* flex:0 0 auto + nowrap: table-scroll--fit'in overflow-wrap:anywhere kuralı "#10"u ikiye bölmesin */
.kayit-no { flex:0 0 auto; white-space:nowrap; overflow-wrap:normal; color:#64748b; font-weight:600;
  font-size:12px; font-variant-numeric:tabular-nums; padding-top:4px; }
/* ===== Organizasyon Şeması — iç içe <ul>/<li> ağaç + ::before/::after bağlantı çizgileri (kütüphane yok) =====
   Klasik CSS org-chart deseni: her <li> üstünden dikey çizgi çıkar, kardeşler yatay çizgiyle birleşir.
   İlk/son kardeşte yatay çizginin yarısı gizlenir (köşe oluşsun). */
.org-kutu-scroll { overflow-x: auto; padding: 18px 10px 24px;
  background: #fff radial-gradient(#e2e8f0 1px, transparent 1px) 0 0/18px 18px; }
.org-agac { display: inline-block; min-width: 100%; transition: transform .12s ease-out; }
.org-agac ul { position: relative; padding: 26px 0 0; margin: 0; display: flex; justify-content: center; list-style: none; white-space: nowrap; }
.org-agac li { position: relative; list-style: none; padding: 26px 10px 0; text-align: center; }
/* kardeşleri birleştiren yatay çizgi */
.org-agac li::before, .org-agac li::after { content: ''; position: absolute; top: 0; right: 50%;
  border-top: 2px solid var(--border); width: 50%; height: 26px; }
.org-agac li::after { right: auto; left: 50%; border-left: 2px solid var(--border); }
.org-agac li:only-child::after, .org-agac li:only-child::before { display: none; }
.org-agac li:only-child { padding-top: 0; }
.org-agac li:first-child::before, .org-agac li:last-child::after { border: 0 none; }
.org-agac li:last-child::before { border-right: 2px solid var(--border); border-radius: 0 6px 0 0; }
.org-agac li:first-child::after { border-radius: 6px 0 0 0; }
/* çocuk listesinden ebeveyne çıkan dikey çizgi */
.org-agac ul ul::before { content: ''; position: absolute; top: 0; left: 50%; border-left: 2px solid var(--border); width: 0; height: 26px; }
.org-agac > ul { padding-top: 0; }
.org-agac > ul > li::before, .org-agac > ul > li::after { display: none; }
/* kutu */
.org-kutu { display: inline-flex; align-items: center; gap: 9px; text-align: left; padding: 8px 12px; min-width: 180px;
  max-width: 260px; background: #fff; border: 1px solid var(--border); border-radius: 12px;
  box-shadow: 0 1px 3px rgba(15,23,42,.07); white-space: normal; }
.org-kutu .org-avatar { flex: 0 0 auto; width: 30px; height: 30px; border-radius: 50%; background: #eef2ff; color: #3730a3;
  display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; }
.org-kutu .org-bilgi { display: flex; flex-direction: column; line-height: 1.25; min-width: 0; }
.org-kutu .org-bilgi b { font-size: 13px; color: #0f172a; overflow-wrap: anywhere; }
.org-kutu .org-bilgi small { font-size: 11px; color: #64748b; overflow-wrap: anywhere; }
.org-kutu .org-rozet { color: #3730a3; font-weight: 600; }
.org-kutu .org-tel a { color: #64748b; text-decoration: none; }
/* tipe göre renk (soldan şerit) */
.org-kutu.org-sirket { border-color: #c7d2fe; background: #eef2ff; }
.org-kutu.org-site { border-left: 4px solid #2563eb; }
.org-kutu.org-yetkili { border-left: 4px solid #16a34a; }
.org-kutu.org-kisi { border-left: 4px solid #94a3b8; }
.org-kutu.org-taseron { border-left: 4px solid #d97706; background: #fffbeb; }
/* Grup bandı (Şantiyeler / Birimler) — referans şemadaki renkli departman bandı */
.org-bant { display: inline-block; padding: 7px 18px; border-radius: 999px; background: #4f46e5; color: #fff;
  font-size: 12px; font-weight: 700; letter-spacing: .3px; white-space: nowrap; }
.org-bant small { font-weight: 400; opacity: .85; }
.org-agac li:nth-child(2) > .org-bant { background: #059669; }
/* Şirket görünümü: şantiye/birim kartları saran ızgara (tek sıra ağaç 30+ kayıtta okunmuyor) */
.org-izgara { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.org-kart { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border: 1px solid var(--border);
  border-left: 4px solid #2563eb; border-radius: 12px; background: #fff; text-decoration: none; color: inherit;
  box-shadow: 0 1px 3px rgba(15,23,42,.06); }
.org-kart:hover { border-color: #2563eb; box-shadow: 0 2px 10px rgba(37,99,235,.15); }
.org-kart b { font-size: 13px; color: #0f172a; }
.org-kart small { font-size: 11px; }
.org-kart-yetkili { margin-top: 6px; padding-top: 6px; border-top: 1px dashed var(--border); font-size: 12px;
  font-weight: 600; color: #166534; display: flex; flex-direction: column; }
.org-kart-yetkili small { font-weight: 400; color: #64748b; }
/* Yazdırma: yalnız şema kâğıda gitsin (nav/butonlar/altbilgi gizli), A4 YATAY, kutular renkli kalsın */
@media print {
  @page { size: A4 landscape; margin: 10mm; }
  body { background: #fff; }
  .topbar, .page-head .row, .toast-c, footer, .org-kutu-scroll + p { display: none !important; }
  .org-kutu-scroll { overflow: visible; background: #fff; border: 0; box-shadow: none; padding: 0; }
  .card { border: 0; box-shadow: none; }
  .org-agac { transform: none !important; }             /* ekrandaki zoom kâğıda taşınmasın */
  .org-kutu { break-inside: avoid; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .org-duzen-arac, .org-edit-ik { display: none !important; }   /* düzenleme kromu kâğıda gitmez */
}
/* Organizasyon — elle düzenleme (Org Faz 2, v2.51.0) */
.org-kutu.org-manuel { border-left: 4px solid #7c3aed; background: #f5f3ff; }   /* elle eklenen kutu */
.org-edit-ik { display: none; margin-left: 6px; color: #2563eb; font-weight: 700; cursor: pointer; align-self: flex-start; }
.org-agac.org-duzen .org-edit-box { cursor: pointer; outline: 1px dashed transparent; }
.org-agac.org-duzen .org-edit-box:hover { outline-color: #2563eb; box-shadow: 0 2px 10px rgba(37,99,235,.18); }
.org-agac.org-duzen .org-edit-ik { display: inline; }
.org-duzen-arac { margin-bottom: 12px; border-left: 4px solid #2563eb; }
.org-gizli-liste { margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--border); display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.org-gizli-oge { display: inline-flex; align-items: center; gap: 6px; background: #f8fafc; border: 1px solid var(--border); border-radius: 999px; padding: 3px 6px 3px 12px; font-size: 12px; }
.btn-xs { padding: 1px 7px; font-size: 11px; }
/* Şema düzenleme dialog'ları */
.org-dialog { border: 1px solid var(--border); border-radius: 14px; padding: 18px 20px; max-width: 420px; width: 92vw; box-shadow: 0 12px 40px rgba(15,23,42,.22); }
.org-dialog::backdrop { background: rgba(15,23,42,.35); }
.org-dialog label { display: block; font-size: 13px; margin-top: 10px; }
.org-dialog label.row { display: flex; }
.org-dialog input[type=text], .org-dialog select { width: 100%; margin-top: 3px; }
.org-dialog h3 { font-size: 16px; }
/* Sözleşme detayı — ODS/belge sil butonları.
   ⚠️ .doclist li flex-column'dur → içindeki buton varsayılan align-items:stretch ile TAM GENİŞLİĞE gerilirdi
   (kırmızı şerit görünümü). align-self:flex-start bunu keser. */
.ods-sil { align-self: flex-start; margin-top: 6px; }
.belge-sil { padding: 2px 8px; font-size: 11px; }
/* Sözleşme detayı — "ODS Ekle" blokları: hepsi açık gelir, aralarında boşluk + ayraç çizgi */
.ods-ekle > summary { cursor:pointer; font-weight:600; padding:2px 0; }
.ods-ekle + .ods-ekle { border-top:1px solid var(--border); margin-top:14px; padding-top:12px; }
/* Hatırlatmalarım listesi: ~10 satır görünür, gerisi scroll + satır içi hızlı düzenleme */
.rem-list-scroll { max-height:440px; overflow-y:auto; }
.rem-edit-row { display:flex; gap:8px; align-items:center; padding:6px 0; border-bottom:1px solid var(--border); flex-wrap:wrap; }
.rem-edit-form { display:flex; gap:6px; align-items:center; flex:1; flex-wrap:wrap; }
.rem-edit-form input { margin-top:0; }
.rem-edit-form input[type=date] { width:150px; }
.rem-edit-form input[type=time] { width:100px; }
.rem-edit-form input[type=text] { flex:1; min-width:180px; }
.rem-sent { font-size:14px; }
/* Şantiye satır içi düzenleme: ad + yetkililer alt alta */
.site-edit { display:flex; flex-direction:column; gap:6px; }
.site-edit input { margin-top:0; }
.site-edit button { align-self:flex-start; margin-top:2px; }
/* Yetkili satırı: ünvan + ad soyad + WhatsApp no yan yana */
.yetki-row { display:flex; gap:6px; }
.yetki-row input { flex:1; min-width:0; }
.yetki-row .yetki-tel { flex:0 0 160px; }
/* Şantiyeler/Birimler sayfası: ekleme kartı dar, liste geniş */
.sites-col { display:grid; grid-template-columns:300px 1fr; gap:18px; align-items:start; }
@media (max-width:900px){ .sites-col { grid-template-columns:1fr; } }
/* Düzenleme formu hücreyi tamamen doldursun (inputlar %100 genişler) */
.site-edit { width:100%; min-width:340px; }
.sites-col .table td:nth-child(2) { width:65%; }
.sites-col .table td:nth-child(1), .sites-col .table td:nth-child(3), .sites-col .table td:nth-child(4) { white-space:nowrap; }
/* Tür rozetleri: şantiye mavi, birim mor — satırlar hafif renk tonlu */
.tag { display:inline-block; padding:3px 9px; border-radius:999px; font-size:11px; font-weight:700; letter-spacing:.3px; }
.tag-santiye { background:#dbeafe; color:#1e40af; }
.tag-birim { background:#ede9fe; color:#6d28d9; }
tr.row-birim td { background:#faf7ff; }
tr.row-birim td:first-child { box-shadow: inset 3px 0 0 #8b5cf6; }
tr.row-santiye td:first-child { box-shadow: inset 3px 0 0 #3b82f6; }
/* Kaydedilmiş (pasif) buton — değişiklik olunca JS mavi yapar */
.btn-saved { background:#e5e7eb; color:#6b7280; border-color:#e5e7eb; cursor:default; }
.btn-saved:hover { background:#e5e7eb; }
.btn:disabled { opacity:.75; cursor:default; }
/* Sağ alt köşe bilgilendirme (toast) */
.toast-c { position:fixed; right:16px; bottom:16px; z-index:99999; display:flex; flex-direction:column; gap:8px; }
.toast { color:#fff; padding:11px 16px; border-radius:10px; box-shadow:0 4px 16px rgba(0,0,0,.28); font-weight:600; font-size:14px; opacity:0; transform:translateY(8px); transition:opacity .2s, transform .2s; }
.toast.show { opacity:1; transform:none; }
.toast-ok { background:#16a34a; }
.toast-err { background:#dc2626; }

/* Tablo içi küçük butonlar tek satırda kalsın */
.table .btn-sm { font-size:12px; padding:4px 8px; }

/* Duyuru kartı — açılış panellerinin üstünde */
.duyuru-kart { display:flex; gap:14px; align-items:center; justify-content:space-between;
  background:#fffbeb; border:1px solid #fcd34d; border-left:6px solid #f59e0b;
  border-radius:10px; padding:12px 16px; margin:0 0 12px; }
.duyuru-kart h3 { margin:0 0 4px; font-size:16px; color:#92400e; }
.duyuru-kart p { margin:0 0 8px; font-size:14px; color:#78350f; white-space:pre-line; }
.duyuru-icerik { flex:1; min-width:0; }
.duyuru-resim { max-height:110px; max-width:220px; border-radius:8px; display:block; }
@media (max-width:620px){ .duyuru-kart { flex-direction:column; align-items:flex-start; } }

/* Tanımlar: logo / uçak resmi küçük görseli */
.tanim-resim { max-height:56px; max-width:120px; border-radius:6px; display:block; }

/* Duyuru gizleme (kullanıcı bazlı ✕) */
.duyuru-kart { position:relative; }
.duyuru-kapat { position:absolute; top:6px; right:8px; margin:0; }
.duyuru-x { background:none; border:none; cursor:pointer; font-size:15px; color:#b45309;
  padding:4px 7px; border-radius:6px; line-height:1; }
.duyuru-x:hover { background:#fde68a; color:#78350f; }

/* Form içi yan yana ikili alan (ör. Gidiş Tarihi | Geliş Tarihi) */
.ikili { display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:end; }
@media (max-width:620px){ .ikili { grid-template-columns:1fr; } }
/* Nereden ↔ Nereye hızlı takas: iki select arasına ortalanmış ⇄ butonu */
.ikili-swap { grid-template-columns:1fr auto 1fr; }
.swap-btn { align-self:end; height:42px; min-width:40px; padding:0 10px; border:1px solid var(--border); border-radius:8px; background:#f1f5f9; color:#334155; font-size:18px; line-height:1; cursor:pointer; }
.swap-btn:hover { background:#e0e7ff; border-color:#a5b4fc; color:#3730a3; }
@media (max-width:620px){ .ikili-swap { grid-template-columns:1fr; } .swap-btn { width:100%; height:34px; } }

/* İmza/Onay kartı: 1. Onay | 2. Onay yan yana sütunlar */
.onay-kolonlar { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.onay-kol { border:1px solid var(--border); border-radius:8px; padding:10px 12px; background:#f8fafc; }
.onay-baslik { font-size:12px; margin:0 0 8px; color:var(--muted); text-transform:uppercase; letter-spacing:.4px;
  border-bottom:1px solid var(--border); padding-bottom:6px; }
@media (max-width:620px){ .onay-kolonlar { grid-template-columns:1fr; } }

/* OCR isim uyarısı (bilet yolcusu ≠ talep personeli) */
.ocr-uyari { color:#b91c1c; font-weight:700; }

/* Dış Ofis belge kartları — yan yana 3 sütun (orta ekranda 2, dar ekranda 1) */
.belge-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:8px; }
.belge-kart { border:1px solid var(--border); border-radius:10px; padding:10px 12px; background:#f8fafc; min-width:0;
  transition:border-color .15s, background .15s; }
/* Belge durumu çerçeveden anlaşılsın (v2.35.0): yeşil = yüklendi · kırmızı = zorunlu ama eksik */
.belge-kart-var { border-color:#86efac; border-left:4px solid #16a34a; background:#f0fdf4; }
.belge-kart-eksik { border-color:#fecaca; border-left:4px solid #dc2626; background:#fef2f2; }
.belge-kart .belge-yukle { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-top:8px; }
.belge-kart input[type=file] { max-width:100%; font-size:12px; }
@media (max-width:900px){ .belge-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px){ .belge-grid { grid-template-columns:1fr; } }

/* ==== AI yükleme katmanı (dekinnexusai-loader — CodePen "Redirecting Loader", MIT, Mr Alien; uyarlama) ====
   window.aiLoader.goster(mesaj) / gizle() ile kullanılır (foot.ejs). AI (Gemini) işlemleri sürerken tam ekran gösterilir. */
#ai-loader { position:fixed; inset:0; background:#f1c40f; z-index:99999; overflow:hidden; }
#ai-loader .ai-loader-text { position:absolute; font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:.5px;
  left:50%; top:58%; transform:translateX(-50%); color:#000; text-align:center; padding:0 16px; }
#ai-loader .ai-loader-alt { position:absolute; left:50%; top:63%; transform:translateX(-50%); font-size:11px; color:#00000099; }
#ai-loader .ai-body { position:absolute; top:50%; margin-left:-50px; left:50%; animation:aispeeder .4s linear infinite; }
#ai-loader .ai-body > span { height:5px; width:35px; background:#000; position:absolute; top:-19px; left:60px; border-radius:2px 10px 1px 0; }
#ai-loader .ai-base span { position:absolute; width:0; height:0; border-top:6px solid transparent; border-right:100px solid #000; border-bottom:6px solid transparent; }
#ai-loader .ai-base span:before { content:""; height:22px; width:22px; border-radius:50%; background:#000; position:absolute; right:-110px; top:-16px; }
#ai-loader .ai-base span:after { content:""; position:absolute; width:0; height:0; border-top:0 solid transparent; border-right:55px solid #000; border-bottom:16px solid transparent; top:-16px; right:-98px; }
#ai-loader .ai-face { position:absolute; height:12px; width:20px; background:#000; border-radius:20px 20px 0 0; transform:rotate(-40deg); right:-125px; top:-15px; }
#ai-loader .ai-face:after { content:""; height:12px; width:12px; background:#000; right:4px; top:7px; position:absolute; transform:rotate(40deg); transform-origin:50% 50%; border-radius:0 0 0 2px; }
#ai-loader .ai-body > span > span:nth-child(1), #ai-loader .ai-body > span > span:nth-child(2),
#ai-loader .ai-body > span > span:nth-child(3), #ai-loader .ai-body > span > span:nth-child(4) {
  width:30px; height:1px; background:#000; position:absolute; animation:aifazer1 .2s linear infinite; }
#ai-loader .ai-body > span > span:nth-child(2) { top:3px; animation:aifazer2 .4s linear infinite; }
#ai-loader .ai-body > span > span:nth-child(3) { top:1px; animation:aifazer3 .4s linear infinite; animation-delay:-1s; }
#ai-loader .ai-body > span > span:nth-child(4) { top:4px; animation:aifazer4 1s linear infinite; animation-delay:-1s; }
@keyframes aifazer1 { 0% { left:0; } 100% { left:-80px; opacity:0; } }
@keyframes aifazer2 { 0% { left:0; } 100% { left:-100px; opacity:0; } }
@keyframes aifazer3 { 0% { left:0; } 100% { left:-50px; opacity:0; } }
@keyframes aifazer4 { 0% { left:0; } 100% { left:-150px; opacity:0; } }
@keyframes aispeeder {
  0% { transform:translate(2px,1px) rotate(0deg); } 10% { transform:translate(-1px,-3px) rotate(-1deg); }
  20% { transform:translate(-2px,0) rotate(1deg); } 30% { transform:translate(1px,2px) rotate(0deg); }
  40% { transform:translate(1px,-1px) rotate(1deg); } 50% { transform:translate(-1px,3px) rotate(-1deg); }
  60% { transform:translate(-1px,1px) rotate(0deg); } 70% { transform:translate(3px,1px) rotate(-1deg); }
  80% { transform:translate(-2px,-1px) rotate(1deg); } 90% { transform:translate(2px,1px) rotate(0deg); }
  100% { transform:translate(1px,-2px) rotate(-1deg); } }
#ai-loader .ai-longfazers { position:absolute; width:100%; height:100%; }
#ai-loader .ai-longfazers span { position:absolute; height:2px; width:20%; background:#000; }
#ai-loader .ai-longfazers span:nth-child(1) { top:20%; animation:ailf .6s linear infinite; animation-delay:-5s; }
#ai-loader .ai-longfazers span:nth-child(2) { top:40%; animation:ailf2 .8s linear infinite; animation-delay:-1s; }
#ai-loader .ai-longfazers span:nth-child(3) { top:60%; animation:ailf3 .6s linear infinite; }
#ai-loader .ai-longfazers span:nth-child(4) { top:80%; animation:ailf4 .5s linear infinite; animation-delay:-3s; }
@keyframes ailf { 0% { left:200%; } 100% { left:-200%; opacity:0; } }
@keyframes ailf2 { 0% { left:200%; } 100% { left:-200%; opacity:0; } }
@keyframes ailf3 { 0% { left:200%; } 100% { left:-100%; opacity:0; } }
@keyframes ailf4 { 0% { left:200%; } 100% { left:-100%; opacity:0; } }

/* ============================================================================
   YENİ TASARIM — ORTAK KABUK (koyu sol menü + beyaz üst bar)
   nav.ejs .app-shell/.app-main açar, foot.ejs kapatır (yalnız giriş yapmışsa).
   İçerik (.container) yeni ana kolona sığacak şekilde uyarlanır.
   ============================================================================ */
.app-shell { min-height:100vh; }
/* --- Sol menü (sabit; içerik yanından kayar) --- */
.app-sidebar { width:232px; background:#0f172a; color:#cbd5e1;
  position:fixed; top:0; left:0; bottom:0; z-index:100; overflow-y:auto; display:flex; flex-direction:column; }
.app-brand { padding:18px 18px 14px; border-bottom:1px solid #1e293b; }
.app-brand a { display:block; font-size:19px; font-weight:800; color:#fff; letter-spacing:.2px; text-decoration:none; }
.app-brand a span { color:#60a5fa; }
.app-brand small { display:block; font-size:11px; color:#64748b; margin-top:3px; }
.app-nav { padding:10px 10px; display:flex; flex-direction:column; gap:2px; flex:1; }
.app-nav-grup { font-size:10.5px; font-weight:700; letter-spacing:1px; color:#475569; padding:14px 12px 6px; }
.app-nav-link { display:flex; align-items:center; gap:10px; padding:8px 12px; border-radius:8px;
  color:#94a3b8; text-decoration:none; font-size:13.5px; line-height:1.2; }
.app-nav-link:hover { background:#1e293b; color:#e2e8f0; text-decoration:none; }
.app-nav-link.aktif { background:#2563eb; color:#fff; font-weight:600; }
.app-nav-link .ik { flex:0 0 auto; width:18px; text-align:center; font-size:14px; }
.app-nav-link .et { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.app-user { margin:12px; padding:10px 12px; background:#1e293b; border-radius:10px; display:flex; align-items:center; gap:10px; }
.app-user-av { width:32px; height:32px; border-radius:8px; background:#334155; color:#e2e8f0; flex:0 0 32px;
  display:flex; align-items:center; justify-content:center; font-weight:700; font-size:12.5px; }
.app-user-bilgi { min-width:0; flex:1; }
.app-user-bilgi b { display:block; color:#e2e8f0; font-weight:700; font-size:12.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.app-user-bilgi small { color:#64748b; font-size:11px; }
.app-user-cikis { background:none; border:0; color:#94a3b8; font-size:16px; cursor:pointer; padding:2px 4px; border-radius:6px; }
.app-user-cikis:hover { background:#334155; color:#fca5a5; }
/* --- Ana kolon + üst bar --- */
.app-main { margin-left:232px; min-width:0; display:flex; flex-direction:column; min-height:100vh; }
.app-topbar { background:#fff; border-bottom:1px solid var(--border); padding:11px 24px;
  display:flex; align-items:center; gap:16px; position:sticky; top:0; z-index:20; }
.app-topbar-title h1 { font-size:18px; margin:0; font-weight:700; color:var(--ink); }
.app-topbar-right { margin-left:auto; display:flex; align-items:center; gap:16px; font-size:12.5px; font-weight:600; }
.app-clock { color:#334155; white-space:nowrap; }
.app-stat { white-space:nowrap; }
.app-bell { position:relative; text-decoration:none; font-size:16px; }
.app-topbar-user { display:flex; align-items:center; gap:8px; text-decoration:none; color:inherit; }
.app-topbar-av { width:34px; height:34px; border-radius:9px; background:#eff6ff; color:#1d4ed8; flex:0 0 34px;
  display:flex; align-items:center; justify-content:center; font-weight:700; font-size:12.5px; }
.app-topbar-ad { display:flex; flex-direction:column; line-height:1.2; }
.app-topbar-ad b { font-size:12.5px; color:var(--ink); }
.app-topbar-ad small { font-size:11px; color:var(--muted); font-weight:400; }
.app-menu-toggle { display:none; background:none; border:0; font-size:20px; cursor:pointer; color:var(--ink); padding:2px 6px; }
.app-sidebar-backdrop { display:none; }
/* --- İçeriğin yeni kolona sığması (mevcut .container merkezlemesini nötrle) --- */
.app-main .container { max-width:none; margin:0; padding:20px 24px; }
.app-main .container.wide { max-width:none; }
.app-main .footer { margin-top:auto; padding:16px 24px; text-align:center; color:var(--muted); font-size:12px; }
/* --- Mobil: sol menü açılır panel --- */
@media (max-width:900px) {
  .app-main { margin-left:0; }
  .app-sidebar { z-index:200; transform:translateX(-100%);
    transition:transform .22s ease-out; box-shadow:2px 0 20px rgba(0,0,0,.3); }
  .app-sidebar.acik { transform:none; }
  .app-menu-toggle { display:inline-flex; }
  .app-sidebar-backdrop.acik { display:block; position:fixed; inset:0; z-index:150; background:rgba(15,23,42,.5); }
  .app-topbar { padding:11px 14px; }
  .app-main .container { padding:14px; }
}

/* ---- Eksik durum rozetleri (daha önce stilsiz düz .badge çıkıyordu) ---- */
.badge-on_onayda { background:#fef3c7; color:#92400e; }
.badge-onay1_tamam { background:#dbeafe; color:#1e40af; }
.badge-yetkiliye_soruldu { background:#ede9fe; color:#5b21b6; }
.badge-duzeltme_istendi { background:#fee2e2; color:#991b1b; }

/* ============================================================================
   ANA PANEL (admin dashboard) — KPI kartları, SVG donut/trend, bar listeler
   Grafikler SUNUCUDA SVG olarak üretilir; harici grafik kütüphanesi YOK (CSP).
   ============================================================================ */
/* v2.22.0: tüm durum kovaları kutucuk oldu (11 kart) — sabit 4 kolon yerine sığdıran ızgara */
.kpi-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(215px, 1fr)); gap:12px; margin-bottom:18px; }

/* ===== Ana Panel kişiselleştirme (v2.22.0) ===== */
/* !important ŞART: .hizli/.kpi-grid gibi kartların kendi display kuralları kaynak sırasında sonra
   gelip (aynı özgüllük) gizlemeyi ezebiliyordu — canlıda görüldü.
   v2.22.2: düzenleme modunda gizli kart display:revert yerine SINIF TAKASIYLA (pk-soluk) gösterilir —
   revert, grid/flex kartların iç düzenini bozuyordu; script modda pk-gizli→pk-soluk çevirir. */
.pk-gizli { display:none !important; }
.pk-soluk { opacity:.35; }
body.panel-duzen [data-pk] { position:relative; outline:2px dashed #93c5fd; outline-offset:3px; border-radius:12px; }
/* KPI kutucukları (v2.22.2): kendi ızgarası içinde tek tek taşınır/gizlenir */
body.panel-duzen .kpi-grid > [data-kpi] { position:relative; outline:2px dashed #c7d2fe; outline-offset:2px; cursor:grab; }
body.panel-duzen .kpi-grid > [data-kpi]:active { cursor:grabbing; }
.pk-serit { position:absolute; top:6px; right:6px; display:flex; gap:4px; z-index:6; }
.pk-b { border:1px solid #cbd5e1; background:#fff; border-radius:7px; padding:3px 8px; font-size:12px;
  cursor:pointer; box-shadow:0 1px 4px rgba(15,23,42,.12); }
.pk-b:hover { background:#eff6ff; border-color:#93c5fd; }
/* Sürükle-bırak (v2.22.1): düzenleme modunda orta bölüm kartları tutulup taşınır */
body.panel-duzen .panel-grid > [data-pk] { cursor:grab; }
body.panel-duzen .panel-grid > [data-pk]:active { cursor:grabbing; }
.pk-surukle { opacity:.45; outline-color:#2563eb !important; }
.kpi-kart { display:flex; align-items:center; gap:13px; background:var(--card); border:1px solid var(--border);
  border-radius:12px; padding:16px; text-decoration:none; color:inherit; }
.kpi-kart:hover { text-decoration:none; border-color:#cbd5e1; box-shadow:0 2px 10px rgba(15,23,42,.06); }
.kpi-ik { width:44px; height:44px; flex:0 0 44px; border-radius:11px; display:flex; align-items:center; justify-content:center; font-size:20px; }
.kpi-govde { display:flex; flex-direction:column; min-width:0; }
.kpi-ad { font-size:12.5px; color:var(--muted); font-weight:600; }
.kpi-n { font-size:26px; font-weight:800; line-height:1.15; color:var(--ink); }
.kpi-alt { font-size:11.5px; color:var(--muted); }

/* minmax(0,1fr) ŞART: düz 1fr'de kolonun min-content'i (donut+lejant, tablo) kolonu
   şişirir ve ızgara sağa taşar. Kartlara da min-width:0 gerekir. */
.panel-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; align-items:start; }
.panel-grid > .card { min-width:0; }

/* Donut */
.donut-sar { display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.donut { width:180px; height:180px; flex:0 0 180px; }
.donut-n { font-size:30px; font-weight:800; fill:var(--ink); }
.donut-et { font-size:12px; fill:var(--muted); }
.donut-lejant { list-style:none; margin:0; padding:0; flex:1; min-width:180px; }
.donut-lejant li { display:flex; align-items:center; gap:8px; padding:4px 0; font-size:13px; }
.donut-lejant .l-ad { flex:1; color:#334155; }
.donut-lejant b { font-weight:700; }
.donut-lejant small { color:var(--muted); width:46px; text-align:right; }
.nokta { width:10px; height:10px; border-radius:3px; flex:0 0 10px; display:inline-block; }

/* Trend çizgisi */
.trend { width:100%; height:auto; }
.trend .eksen { font-size:10px; fill:var(--muted); }
.lejant-sat { display:flex; gap:16px; font-size:12.5px; color:#334155; margin-top:6px; }
.lejant-sat span { display:flex; align-items:center; gap:6px; }

/* Bar listeleri */
.bar-sat { margin-bottom:11px; }
.bar-ust { display:flex; justify-content:space-between; font-size:13px; margin-bottom:4px; }
.bar-ust span { color:#334155; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding-right:8px; }
.bar-yol { height:8px; background:#f1f5f9; border-radius:999px; overflow:hidden; }
.bar-yol i { display:block; height:100%; border-radius:999px; }

/* Sözleşme bitiş listesi */
.sz-liste { list-style:none; margin:0; padding:0; }
.sz-liste li { border-bottom:1px solid var(--border); }
.sz-liste li:last-child { border-bottom:0; }
.sz-liste a { display:flex; justify-content:space-between; gap:10px; padding:9px 0; color:inherit; text-decoration:none; }
.sz-liste a:hover { text-decoration:none; }
.sz-ad { font-size:13.5px; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sz-sag { text-align:right; white-space:nowrap; }
.sz-sag b { display:block; font-size:13px; }
.sz-sag small { font-size:11.5px; font-weight:600; }

/* Kişi defterleri */
.kisi-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.kisi-grid a { display:flex; flex-direction:column; gap:2px; padding:12px; border:1px solid var(--border);
  border-radius:10px; color:inherit; text-decoration:none; }
.kisi-grid a:hover { text-decoration:none; background:#f8fafc; }
.kisi-grid b { font-size:22px; font-weight:800; }
.kisi-grid span { font-size:12px; color:var(--muted); }

@media (max-width:1100px) { .kpi-grid { grid-template-columns:repeat(2,1fr); } .panel-grid { grid-template-columns:1fr; } }
@media (max-width:560px) { .kpi-grid { grid-template-columns:1fr; } .kisi-grid { grid-template-columns:1fr; } }

/* ============================================================================
   TASARIM RÖTUŞU (Faz 3) — bileşen düzeyinde, TÜM sayfalara aynı anda uygulanır.
   Tasarım dosyaları uygulamanın mevcut yapısından türetildiği için kart, satır-durum
   çubukları (inset 4px) ve mavi filtre çipleri ZATEN uyumluydu; farklar yalnız
   tablo nefes payı ve başlık tonlarıydı.
   ============================================================================ */
.table th, .table td { padding:12px 10px; }               /* tasarım: 12px 10px (eski 9px) */
.table thead th { font-size:11px; color:#94a3b8; letter-spacing:.3px; }
.table-scroll thead th { background:#f8fafc; }            /* sticky başlık daha yumuşak */
.chip { font-size:12px; font-weight:600; padding:6px 13px; }
/* Sayfa başlığı altı açıklama (Ana Panel deseni — liste sayfalarında da kullanılabilir) */
.page-alt { font-size:13px; color:var(--muted); margin-top:2px; }

/* Ana Panel — hızlı işlemler + son aktiviteler akışı */
.hizli { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:18px; }
.hizli a { display:flex; flex-direction:column; gap:1px; padding:14px 16px; background:var(--card);
  border:1px solid var(--border); border-radius:12px; color:inherit; text-decoration:none; }
.hizli a:hover { text-decoration:none; border-color:var(--primary); box-shadow:0 2px 10px rgba(37,99,235,.10); }
.hizli span { font-size:19px; }
.hizli b { font-size:13.5px; margin-top:3px; }
.hizli small { font-size:11.5px; color:var(--muted); }

.akis { list-style:none; margin:0; padding:0; }
.akis li { display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid #f1f5f9; }
.akis li:last-child { border-bottom:0; }
.akis-ik { width:30px; height:30px; flex:0 0 30px; border-radius:8px; display:flex;
  align-items:center; justify-content:center; font-size:14px; }
.akis-govde { flex:1; min-width:0; display:flex; flex-direction:column; color:inherit; text-decoration:none; }
.akis-govde:hover { text-decoration:none; }
.akis-govde b { font-size:13px; font-weight:600; }
.akis-govde small { font-size:11.5px; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.akis-zaman { font-size:11px; white-space:nowrap; }

@media (max-width:900px) { .hizli { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px) { .hizli { grid-template-columns:1fr; } }

/* ============================================================================
   SOL MENÜ v2 — akordiyon gruplar, belirgin başlıklar, gizlenebilir menü
   ============================================================================ */
.app-grup { border:0; }
.app-grup > summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between;
  gap:6px; padding:13px 12px 7px; color:#7c8ba1; font-size:11px; font-weight:800; letter-spacing:1.1px;
  text-transform:uppercase; user-select:none; border-radius:8px; }
.app-grup > summary::-webkit-details-marker { display:none; }   /* varsayılan ok gizlenir */
.app-grup > summary:hover { color:#cbd5e1; background:#16213a; }
.app-grup > summary .g-ok { font-size:11px; transition:transform .18s; opacity:.75; }
.app-grup[open] > summary .g-ok { transform:rotate(180deg); }
.app-grup[open] > summary { color:#94a3b8; }
/* Menü gizli (masaüstü) — sidebar kayar, ana kolon tam genişliğe açılır */
.app-shell.menu-kapali .app-sidebar { transform:translateX(-100%); }
.app-shell.menu-kapali .app-main { margin-left:0; }
.app-sidebar { transition:transform .2s ease-out; }
.app-main { transition:margin-left .2s ease-out; }
.app-menu-toggle { display:inline-flex; }        /* masaüstünde de görünür: menüyü gizle/göster */

/* ============================================================================
   YATAY TAŞMA — geniş tablolar sayfayı sağa itmesin, KENDİ İÇİNDE kaysın.
   (14" ekranda Tüm Talepler tablosu sayfayı taşırıyordu.)
   ============================================================================ */
.table-scroll { overflow-x:auto; }
.tablo-sar { overflow-x:auto; -webkit-overflow-scrolling:touch; }
/* Kart, taşan geniş içeriği KENDİ İÇİNDE kaydırır → sayfa sağa taşmaz, veri de kırpılmaz.
   ⚠️ .app-main'e overflow VERME: app-main scroll konteyneri olursa üst bar'ın position:sticky'si
   viewport yerine app-main'e göre çalışır ve yapışkanlık bozulur. */
.app-main .card { min-width:0; overflow-x:auto; }

/* Ana Panel — dönem seçici (Bugün / Bu Hafta / Bu Ay / Tümü) */
.donem-sec { display:inline-flex; background:#fff; border:1px solid var(--border); border-radius:999px; padding:3px; gap:2px; }
.donem-sec a { padding:5px 13px; border-radius:999px; font-size:12.5px; font-weight:600; color:#475569; text-decoration:none; white-space:nowrap; }
.donem-sec a:hover { text-decoration:none; background:#f1f5f9; }
.donem-sec a.aktif { background:var(--primary); color:#fff; }

/* ============================================================================
   ÇALIŞMA İZNİ MODÜLÜ — aşama rozetleri, satır renkleri, süreç akışı
   ⚠️ Rozet sınıfı yazılmayan durum RENKSİZ düz pill çıkar (hata vermez) —
      izin-statuses.js'e yeni aşama eklerken buraya da bir kural ekle.
   ============================================================================ */
.badge-izin-yeni            { background:#e2e8f0; color:#334155; }
.badge-izin-hazirlik        { background:#dbeafe; color:#1e40af; }
.badge-izin-kuruma_bekliyor { background:#fef3c7; color:#92400e; }
.badge-izin-teslim_edildi   { background:#e0e7ff; color:#3730a3; }
.badge-izin-delivery        { background:#cffafe; color:#155e75; }
.badge-izin-isveren_imzada  { background:#fce7f3; color:#9d174d; }
.badge-izin-mudurluk_imzada { background:#ede9fe; color:#5b21b6; }
.badge-izin-izin_alindi     { background:#dcfce7; color:#166534; }
.badge-izin-vize_isleminde  { background:#f3e8ff; color:#6b21a8; }
.badge-izin-sonlandirildi   { background:#d1fae5; color:#065f46; }
.badge-izin-durduruldu      { background:#fee2e2; color:#991b1b; }
.badge-izin-arsiv           { background:#f1f5f9; color:#475569; }

/* Satır renkleri — İKİ kural şart: yalnız background yazılırsa sol çubuk gelmez */
tr.st-izin-kuruma_bekliyor td { background:#fffbeb; } tr.st-izin-kuruma_bekliyor td:first-child { box-shadow:inset 4px 0 0 #f59e0b; }
tr.st-izin-isveren_imzada  td { background:#fdf2f8; } tr.st-izin-isveren_imzada  td:first-child { box-shadow:inset 4px 0 0 #ec4899; }
tr.st-izin-mudurluk_imzada td { background:#f5f3ff; } tr.st-izin-mudurluk_imzada td:first-child { box-shadow:inset 4px 0 0 #8b5cf6; }
tr.st-izin-izin_alindi     td { background:#f0fdf4; } tr.st-izin-izin_alindi     td:first-child { box-shadow:inset 4px 0 0 #22c55e; }
tr.st-izin-vize_isleminde  td { background:#faf5ff; } tr.st-izin-vize_isleminde  td:first-child { box-shadow:inset 4px 0 0 #a855f7; }
tr.st-izin-durduruldu      td { background:#fef2f2; } tr.st-izin-durduruldu      td:first-child { box-shadow:inset 4px 0 0 #ef4444; }

/* Süreç akışı (dikey zaman çizelgesi) */
.izin-akis { list-style:none; margin:0; padding:0; }
.izin-akis li { display:flex; gap:11px; padding:9px 0; border-left:2px solid var(--border); margin-left:14px; padding-left:16px; position:relative; }
.izin-akis li:last-child { border-left-color:transparent; }
.izin-akis .ak-ik { position:absolute; left:-15px; top:8px; width:28px; height:28px; border-radius:50%;
  background:#f1f5f9; border:2px solid #fff; display:flex; align-items:center; justify-content:center; font-size:13px; }
.izin-akis li.tamam .ak-ik { background:#dcfce7; }
.izin-akis li.aktif .ak-ik { background:#dbeafe; box-shadow:0 0 0 3px #bfdbfe; }
.izin-akis .ak-govde { display:flex; flex-direction:column; gap:1px; }
.izin-akis .ak-govde b { font-size:13.5px; color:#334155; }
.izin-akis li.aktif .ak-govde b { color:var(--primary); }
.izin-akis .ak-govde small { font-size:11.5px; color:var(--muted); }
.izin-akis li:not(.tamam):not(.aktif) .ak-govde b { color:#94a3b8; font-weight:600; }

.izin-eylem { margin-top:14px; padding-top:14px; border-top:1px solid var(--border); display:flex; flex-direction:column; gap:10px; }
.izin-durdur > summary { cursor:pointer; font-size:12.5px; color:var(--muted); padding:4px 0; }
.izin-yukle { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.izin-yukle select { width:auto; min-width:190px; margin-top:0; }
.izin-yukle input[type=file] { width:auto; margin-top:0; }

/* Yazdırma seçim listesi */
.sec-liste { list-style:none; margin:0; padding:0; }
.sec-liste li { padding:7px 0; border-bottom:1px solid #f1f5f9; }
.sec-liste li:last-child { border-bottom:0; }
.sec-liste .radio { align-items:flex-start; }
.sec-liste .radio span { display:flex; flex-direction:column; gap:1px; }
.sec-liste .radio b { font-size:13.5px; }
.sec-liste .radio small { font-size:11.5px; }

/* Kuyruk sıra numarası (en çok bekleyen = 1) */
.sira-no { font-weight:800; color:#94a3b8; font-size:15px; width:44px; white-space:nowrap; }

/* Ajansa bildirilen tarih (admin override) — gönderim bloğu alanı + form altı bilgilendirme notu */
.ajans-tarih { background:#f8fafc; border:1px solid var(--border); border-radius:10px; padding:10px 12px; margin:8px 0; }
.ajans-tarih-bas { font-size:13px; margin-bottom:6px; }
.ajans-tarih .row { gap:14px; flex-wrap:wrap; }
.ajans-tarih label { font-size:12px; color:var(--muted); font-weight:600; }
.ajans-tarih input[type=date] { max-width:180px; }
.ajans-tarih-not { background:#fffbeb; border:1px solid #fcd34d; border-radius:10px; padding:11px 14px; margin-top:12px; }
.ajans-tarih-not b { color:#92400e; font-size:13.5px; }
.ajans-tarih-not ul { margin:6px 0 4px; padding-left:20px; }
.ajans-tarih-not li { font-size:13.5px; color:#334155; }
.ajans-tarih-not s { color:#94a3b8; }
.ajans-tarih-not small { font-size:11.5px; }

/* 6 ay / izin hesabı kutusu — detay sayfalarında (form girişindeki #izin-hesap ile aynı görünüm) */
.izin-hesap-kutu { background:#eff6ff; border:1px solid #bfdbfe; border-radius:8px;
  padding:10px 12px; margin-top:12px; font-size:14px; color:#1e3a8a; line-height:1.8; }

/* ===== Arşiv modülü (v2.29.1) — kişi bazlı modern kart görünümü ===== */
.ars-ust { display:flex; gap:14px; align-items:center; flex-wrap:wrap; margin-bottom:14px; }
.ars-ara-kutu { position:relative; flex:1; min-width:280px; max-width:520px; }
.ars-ara-ik { position:absolute; left:14px; top:50%; transform:translateY(-50%); font-size:15px; opacity:.6; pointer-events:none; }
.ars-ara-kutu input { width:100%; padding:11px 14px 11px 40px; border:1px solid #d1d5db; border-radius:10px;
  font-size:14px; background:#fff; transition:border-color .15s, box-shadow .15s; }
.ars-ara-kutu input:focus { outline:none; border-color:#2563eb; box-shadow:0 0 0 3px rgba(37,99,235,.12); }
.ars-ozet { display:flex; gap:8px; margin-left:auto; }
.ars-rozet { background:#f1f5f9; color:#475569; border-radius:20px; padding:6px 14px; font-size:13px; white-space:nowrap; }
.ars-rozet b { color:#0f172a; }

.ars-liste { display:flex; flex-direction:column; gap:10px; }
.ars-kisi { border:1px solid #e5e7eb; border-radius:12px; overflow:hidden; background:#fff;
  transition:box-shadow .15s, border-color .15s; }
.ars-kisi[open] { border-color:#c7d2fe; box-shadow:0 2px 10px rgba(30,58,138,.06); }
.ars-kisi-bas { display:flex; align-items:center; gap:12px; padding:13px 16px; cursor:pointer;
  list-style:none; user-select:none; background:linear-gradient(180deg,#fbfcfe,#f5f7fb); }
.ars-kisi-bas::-webkit-details-marker { display:none; }
.ars-kisi[open] .ars-kisi-bas { background:linear-gradient(180deg,#eef2ff,#e8edfb); }
.ars-sira { flex:0 0 auto; min-width:38px; height:26px; padding:0 8px; display:inline-flex; align-items:center;
  justify-content:center; background:#1e293b; color:#fff; border-radius:7px; font-size:12px; font-weight:700; white-space:nowrap; }
.ars-ad { flex:1; font-weight:700; font-size:15px; color:#0f172a; letter-spacing:.2px; }
.ars-adet { flex:0 0 auto; background:#dbeafe; color:#1e40af; border-radius:20px; padding:3px 12px;
  font-size:12px; font-weight:600; white-space:nowrap; }
.ars-ok { flex:0 0 auto; color:#94a3b8; font-size:13px; transition:transform .2s; }
.ars-kisi[open] .ars-ok { transform:rotate(180deg); }

.ars-belgeler { padding:6px; display:flex; flex-direction:column; gap:2px; }
.ars-belge { display:flex; align-items:center; gap:12px; padding:9px 12px; border-radius:9px;
  transition:background .12s; }
.ars-belge:hover { background:#f8fafc; }
.ars-belge-ik { flex:0 0 auto; width:36px; height:36px; display:inline-flex; align-items:center;
  justify-content:center; background:#f1f5f9; border-radius:9px; font-size:18px; }
.ars-belge-orta { flex:1; min-width:0; }
.ars-belge-tur { font-weight:600; font-size:14px; color:#1e293b; display:flex; align-items:center; gap:8px; }
.ars-etiket { background:#fef3c7; color:#92400e; border-radius:12px; padding:1px 8px; font-size:11px; font-weight:600; }
.ars-belge-alt { display:flex; align-items:center; gap:8px; margin-top:2px; font-size:12px; color:#94a3b8; flex-wrap:wrap; }
.ars-kaynak { background:#eef2ff; color:#4338ca; border-radius:6px; padding:1px 7px; font-weight:500; }
.ars-dosya { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:min(46vw,420px); }
.ars-tarih { white-space:nowrap; }
.ars-belge-islem { flex:0 0 auto; display:flex; gap:6px; }
.ars-ibtn { width:36px; height:36px; display:inline-flex; align-items:center; justify-content:center;
  border:1px solid #e2e8f0; border-radius:9px; font-size:16px; text-decoration:none; background:#fff;
  transition:background .12s, border-color .12s, transform .1s; }
.ars-ibtn:hover { background:#eff6ff; border-color:#bfdbfe; transform:translateY(-1px); }
.ars-ibtn:active { transform:translateY(0); }

@media (max-width:640px) {
  .ars-dosya { display:none; }
  .ars-ad { font-size:14px; }
  .ars-ozet { margin-left:0; width:100%; }
}

/* Arşiv sayfalama (v2.29.2) */
.ars-sayfalama { display:flex; align-items:center; justify-content:center; gap:14px; margin-top:16px; padding-top:14px; border-top:1px solid #f1f5f9; }
.ars-sayfa-bilgi { font-size:13px; color:#475569; font-weight:600; white-space:nowrap; }
.ars-sayfalama .btn:disabled { opacity:.4; cursor:not-allowed; }

/* Dış Ofis ek açıklama (not geçmişi) — pano hücresi + detay listesi (v2.30.0) */
.do-not-hucre { max-width:230px; min-width:150px; }
.do-not-son { font-size:12px; color:#334155; white-space:normal; overflow-wrap:anywhere; }
.do-not-ekle > summary { cursor:pointer; font-size:11.5px; color:#2563eb; list-style:none; margin-top:4px; user-select:none; }
.do-not-ekle > summary::-webkit-details-marker { display:none; }
.do-not-ekle textarea { width:100%; font-size:12px; margin:4px 0; padding:5px 7px; border:1px solid #d1d5db; border-radius:6px; }
.do-notlar { display:flex; flex-direction:column; gap:8px; }
.do-notlar li { list-style:none; background:#f8fafc; border-left:3px solid #93c5fd; border-radius:0 8px 8px 0; padding:8px 12px; }
.do-notlar .do-n-metin { font-size:13.5px; color:#1e293b; white-space:pre-wrap; overflow-wrap:anywhere; }
.do-notlar .do-n-alt { font-size:11.5px; color:#94a3b8; margin-top:3px; }

/* Bilet ↔ talep uyuşmazlık uyarısı (v2.33.0) */
.bilet-sekme-uyari { border-color:#fca5a5 !important; background:#fef2f2 !important; color:#b91c1c !important; }
.bilet-uyari-serit { background:#fef2f2; border:1px solid #fecaca; border-left:4px solid #dc2626;
  border-radius:8px; padding:10px 12px; color:#991b1b; font-size:13px; margin-bottom:6px; }
.bilet-uyari-serit ul { margin:6px 0 0; padding-left:20px; }
.bilet-uyari-serit li { margin-bottom:3px; }
.badge-bilet-uyari { background:#fee2e2; color:#b91c1c; border-radius:12px; padding:1px 8px; font-size:11px; font-weight:700; white-space:nowrap; }

/* Dış Ofis: evrak süreci tamamlandı kutusu (v2.34.0) */
.do-tamam { margin-top:4px; background:#f0fdf4; border:1px solid #bbf7d0; border-radius:6px;
  padding:4px 7px; font-size:11.5px; color:#166534; line-height:1.45; }
.do-tamam small { color:#15803d; }

/* Not balonu — rengi yazan kişiden türer (util/renk.js), v2.37.0 */
.not-balon { border:1px solid; border-radius:10px; padding:6px 9px; margin-top:2px; }
.not-balon-genis { list-style:none; padding:9px 12px; }
.not-bas { display:flex; align-items:center; gap:6px; margin-bottom:3px; flex-wrap:wrap; }
.not-avatar { flex:0 0 auto; width:20px; height:20px; border-radius:50%; color:#fff;
  font-size:9.5px; font-weight:800; display:inline-flex; align-items:center; justify-content:center; letter-spacing:.3px; }
.not-kisi { font-size:11.5px; font-weight:700; }
.not-zaman { font-size:10.5px; color:#64748b; margin-left:auto; white-space:nowrap; }
.not-metin { font-size:12.5px; color:#1e293b; white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.45; }
.not-balon-genis .not-avatar { width:26px; height:26px; font-size:11px; }
.not-balon-genis .not-kisi { font-size:13px; }
.not-balon-genis .not-metin { font-size:13.5px; }
.do-notlar { padding-left:0; }

/* Profil not rengi seçici (v2.38.0) */
.renk-secim { display:flex; flex-wrap:wrap; gap:8px; }
.renk-kutu { position:relative; border:2px solid; border-radius:10px; padding:8px 14px; cursor:pointer;
  user-select:none; transition:transform .1s, box-shadow .15s; }
.renk-kutu input { position:absolute; opacity:0; pointer-events:none; }
.renk-kutu .renk-ad { font-size:13px; font-weight:700; }
.renk-kutu:hover { transform:translateY(-1px); }
.renk-kutu.secili { box-shadow:0 0 0 3px rgba(15,23,42,.18); }
.renk-kutu.secili::after { content:'✓'; margin-left:6px; font-weight:800; }

/* OCR yön sorusu — yön kesin değilse alanlar yazılmadan önce sorulur (v2.40.0) */
.yon-sor { background:#fffbeb; border:1px solid #fcd34d; border-left:4px solid #d97706;
  border-radius:8px; padding:10px 12px; font-size:13px; color:#92400e; }
.yon-sor-bilgi { margin-top:5px; font-size:12px; color:#78350f; }
.yon-sor-btn { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-top:8px; }
.yon-sor-btn .btn { background:#fff; border-color:#fcd34d; font-weight:600; }
.yon-sor-btn .btn:hover { background:#fef3c7; }
.yon-sor-ok { background:#f0fdf4; border-color:#86efac; border-left-color:#16a34a; color:#166534; }
/* Bilet OCR yön seçici — yanlış alana yazma riskini azaltmak için belirginleştirildi (v2.40.0) */
.yon-sec { border:2px solid #93c5fd; background:#eff6ff; font-weight:600; color:#1d4ed8; }
.yon-sec:focus { border-color:#2563eb; }

/* ===== Dış Ofis Ajandası (v2.41.0) — takvim sınıfları /calendar ile ORTAK (cal-*) ===== */
.hat-rozet { display:inline-block; padding:1px 7px; border-radius:999px; font-size:11px; font-weight:600; margin-left:6px; }
.hat-bekliyor { background:#eff6ff; color:#1d4ed8; border:1px solid #bfdbfe; }
.hat-ok       { background:#f0fdf4; color:#166534; border:1px solid #bbf7d0; }
.hat-hata     { background:#fef2f2; color:#b91c1c; border:1px solid #fecaca; }
.hat-form label { display:block; margin-bottom:8px; }
.hat-satir { display:flex; gap:10px; flex-wrap:wrap; }
.hat-satir label { flex:1 1 130px; }
.hat-islem { display:flex; gap:4px; align-items:center; }
.hat-islem form { display:inline; margin:0; }
tr.hat-aktif td { background:#f8fafc; }
tr.hat-aktif td:first-child { box-shadow:inset 4px 0 0 #2563eb; }

/* Dış Ofis hazır durum notu formu (v2.42.0) */
.not-kutu textarea { width:100%; padding:8px 10px; border:1px solid #d1d5db; border-radius:8px; font-size:13.5px; }
.not-kutu .not-sablon { width:100%; margin-bottom:6px; font-size:13px; }
.not-tarih-alan { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-bottom:6px;
  background:#eff6ff; border:1px solid #bfdbfe; border-radius:8px; padding:6px 10px; font-size:12.5px; }
.not-tarih-alan label { margin:0; display:flex; gap:6px; align-items:center; }
.not-tarih-alan input[type=date] { margin:0; }
.not-onay { cursor:pointer; }
.not-kutu button { margin-top:6px; }
/* v2.42.1 — eksik uyarı sınıfı (alert-warn adı style.css'te tanımlı değildi) */
.alert-uyari { background:#fffbeb; border:1px solid #fcd34d; color:#92400e; }
/* Ajanda gün panelindeki hatırlatma satırı: .doclist li flex-column olduğu için satır
   parçalara bölünüyor ve rozet tam genişliğe geriliyordu — kendi liste sınıfı kullanılır. */
.hat-liste { list-style:none; padding:0; margin:0 0 10px; }
.hat-liste li { padding:5px 0; border-bottom:1px solid #f1f5f9; font-size:13px; line-height:1.5; }
.hat-liste li:last-child { border-bottom:0; }
.hat-duzenle { display:flex; gap:5px; align-items:center; flex-wrap:wrap; margin:0; }
.hat-duzenle input[type=text] { flex:1; min-width:180px; margin:0; }
.hat-duzenle input[type=date], .hat-duzenle input[type=time] { margin:0; }

/* ===== Dış Ofis panosu: Bugün şeridi + Aşama kovaları (v2.43.0) ===== */
.do-serit { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:10px; margin-bottom:12px; }
.do-kutu { display:flex; align-items:center; gap:10px; padding:12px 14px; border-radius:10px;
  border:1px solid #e2e8f0; background:#fff; text-decoration:none; color:inherit; transition:box-shadow .12s, transform .12s; }
.do-kutu:hover { box-shadow:0 2px 10px rgba(0,0,0,.08); transform:translateY(-1px); }
.do-kutu-secili { outline:2px solid #2563eb; outline-offset:1px; }
.do-kutu-sayi { font-size:26px; font-weight:700; line-height:1; min-width:30px; text-align:center; }
.do-kutu-ad { font-size:12.5px; font-weight:600; color:#475569; }
.do-kutu-hedef .do-kutu-sayi { color:#854d0e; }
.do-kutu-gecik .do-kutu-sayi { color:#dc2626; }
.do-kutu-vize .do-kutu-sayi  { color:#9a3412; }
.do-kutu-durdu .do-kutu-sayi { color:#92400e; }
.do-kutu-not .do-kutu-sayi   { color:#0f766e; }
.do-kutu-yeni .do-kutu-sayi  { color:#1e40af; }
/* 🚨 Acil bandı + rozeti + satır vurgusu (v2.64.0) */
.do-acil-band { display:block; text-decoration:none; margin-bottom:12px; padding:10px 14px; border-radius:10px;
  background:#fef2f2; border:1px solid #fca5a5; color:#991b1b; font-size:13.5px; font-weight:600; }
.do-acil-band:hover { box-shadow:0 2px 10px rgba(220,38,38,.15); }
.do-acil-secili { outline:2px solid #dc2626; outline-offset:1px; }
.do-acil-rozet { display:inline-block; background:#dc2626; color:#fff; font-size:11px; font-weight:700;
  padding:1px 7px; border-radius:999px; letter-spacing:.3px; }
tr.st-acil > td { background:#fef2f2; }
tr.st-acil > td:first-child { box-shadow:inset 4px 0 0 #dc2626; }
.do-sablon-liste { list-style:none; margin:8px 0 0; padding:0; }
.do-sablon-liste > li { display:flex; align-items:flex-start; gap:8px; padding:6px 0; border-top:1px solid #f1f5f9; }
.do-sablon-liste > li > details { flex:1; min-width:0; }
.do-sablon-liste > li > details > summary { cursor:pointer; font-size:13px; }
.do-asama { display:inline-block; padding:2px 9px; border-radius:999px; font-size:12px; font-weight:600; border:1px solid; white-space:nowrap; }
.do-sahip { font-size:11px; color:#64748b; margin-top:3px; display:flex; gap:8px; flex-wrap:wrap; }
.do-sahip span { white-space:nowrap; }

/* ===== Dış Ofis Rehber modalı (v2.44.0) ===== */
.rehber-modal { max-width:760px; width:92vw; border:none; border-radius:12px; padding:0;
  box-shadow:0 12px 40px rgba(0,0,0,.25); }
.rehber-modal::backdrop { background:rgba(15,23,42,.5); }
.rehber-bas { display:flex; justify-content:space-between; align-items:center; gap:12px;
  padding:14px 18px; border-bottom:1px solid #e2e8f0; position:sticky; top:0; background:#fff; z-index:1; }
.rehber-bas b { font-size:16px; }
.rehber-govde { padding:16px 18px; max-height:72vh; overflow-y:auto; }
.rehber-govde h3 { font-size:14px; margin:16px 0 6px; color:#1e293b; }
.rehber-govde h3:first-child { margin-top:0; }
.rehber-govde p { font-size:13px; margin:0 0 8px; }
.rehber-tablo { width:100%; border-collapse:collapse; font-size:13px; margin-bottom:6px; }
.rehber-tablo td { padding:6px 8px; border-bottom:1px solid #f1f5f9; vertical-align:top; }
.rehber-tablo td:first-child { white-space:nowrap; width:1%; }
.rehber-liste { font-size:13px; margin:4px 0; padding-left:20px; }
.rehber-liste li { margin-bottom:6px; }

/* ===== MARCHÉ İhale Süreç Belgeleri — fazlar (v2.48.0) ===== */
.faz-blok { margin-bottom:16px; }
.faz-blok:last-child { margin-bottom:0; }
.faz-baslik { font-size:14px; margin:0 0 8px; padding-bottom:5px; border-bottom:2px solid #e2e8f0; color:#1e293b; }
.faz-kat { padding:8px 0; border-bottom:1px solid #f8fafc; }
.faz-kat:last-child { border-bottom:0; }
.faz-kat-bas { font-size:13px; }
.ekle-mini { margin-top:6px; }
.ekle-mini > summary { cursor:pointer; font-size:12px; color:#2563eb; }
.faz-ekle-form { display:flex; gap:10px; align-items:flex-end; flex-wrap:wrap; margin-top:8px;
  background:#f8fafc; border:1px solid #e2e8f0; border-radius:8px; padding:10px; }
.faz-ekle-form label { display:flex; flex-direction:column; font-size:12px; gap:3px; }
.faz-ekle-form input[type=text] { min-width:240px; }

/* MARCHÉ kapanış & garanti durumu (v2.49.0) */
.kapanis-durum { background:#f8fafc; border:1px solid #e2e8f0; border-radius:8px; padding:10px 12px; margin-bottom:12px; font-size:13px; }
.kapanis-satir { padding:3px 0; }
.kapanis-satir.kapanis-uyari { color:#92400e; }
.kapanis-satir.kapanis-ok { color:#166534; font-weight:600; }

/* MARCHÉ hakediş belge listesi rötuşu (v2.61.0) */
.doclist a.belge-ad { font-size: 12.5px; font-weight: 500; color: #2563eb; overflow-wrap: anywhere; }
.hakedis-grup-bas { font-size: 12px; font-weight: 700; color: #0e7490; background: #ecfeff; border-radius: 6px;
  padding: 3px 8px; margin: 8px 0 2px; display: inline-block; }
.belge-islem { display: inline-flex; gap: 4px; align-items: center; margin-left: 6px; }
.belge-islem .ekle-mini > summary { font-size: 14px; color: #2563eb; cursor: pointer; list-style: none; }
.hakedis-sirala { border: 1px solid var(--border); border-radius: 6px; background: #fff; }
/* Uzun hakediş listesi kaydırılabilir kutu + yapışkan tür başlıkları (v2.63.0) */
.hakedis-kapsayici { max-height: 380px; overflow-y: auto; overflow-x: hidden;
  border: 1px solid var(--border); border-radius: 8px; padding: 2px 10px 8px; margin-top: 4px; background: #fcfdff; }
.hakedis-kapsayici .hakedis-grup-bas { position: sticky; top: 0; z-index: 2; display: block;
  margin: 0 -10px 2px; border-radius: 0; padding: 5px 10px; box-shadow: 0 1px 0 rgba(15,118,110,.12); }
.hakedis-kapsayici .hakedis-liste { margin-bottom: 6px; }
.hakedis-kapsayici::-webkit-scrollbar { width: 9px; }
.hakedis-kapsayici::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 5px; }
/* MARCHÉ proje aşama bandı (İhale-genişletme Faz E, v2.59.0) */
.asama-band { border-radius:8px; padding:9px 12px; margin:0 0 10px; font-size:13px; line-height:1.5; }
.asama-band.asama-gecici { background:#e0f2fe; border-left:4px solid #0284c7; color:#075985; }
.asama-band.asama-kesin { background:#eff6ff; border-left:4px solid #2563eb; color:#1e3a8a; }
.asama-band.asama-kapali { background:#dcfce7; border-left:4px solid #16a34a; color:#166534; }
/* MARCHÉ sekmeli detay (İhale-genişletme Faz A, v2.55.0) */
.mtabs { display:flex; flex-wrap:wrap; gap:4px; margin:0 0 14px; border-bottom:2px solid var(--border); }
.mtab-btn { appearance:none; background:transparent; border:0; border-bottom:2px solid transparent; margin-bottom:-2px;
  padding:9px 14px; font-size:13px; font-weight:600; color:#64748b; cursor:pointer; border-radius:8px 8px 0 0; white-space:nowrap; }
.mtab-btn:hover { color:#0f172a; background:#f8fafc; }
.mtab-btn.active { color:#2563eb; border-bottom-color:#2563eb; background:#eff6ff; }
.mtab { display:none; }
.mtab.active { display:block; }
/* MARCHÉ süreç rehberi penceresi (v2.54.0) */
.rehber-modal { max-width:680px; width:94%; border:none; border-radius:14px; padding:0; box-shadow:0 12px 44px rgba(15,23,42,.28); }
.rehber-modal::backdrop { background:rgba(15,23,42,.35); }
.rehber-ic { padding:18px 22px; }
.rehber-govde { font-size:14px; line-height:1.6; color:#334155; max-height:66vh; overflow:auto; }
.rehber-b { border:1px solid #e2e8f0; border-radius:10px; margin:8px 0; padding:2px 12px; }
.rehber-b > summary { cursor:pointer; font-weight:600; padding:8px 0; color:#0f172a; }
.rehber-b[open] > summary { border-bottom:1px solid #f1f5f9; margin-bottom:6px; }
.rehber-b ul { margin:4px 0 8px; padding-left:20px; }
.rehber-b li { margin:3px 0; }
.rehber-formul { background:#eef2ff; border-radius:8px; padding:8px 10px; margin:8px 0; font-size:13px; }
.rehber-dikkat { background:#fff7ed; border-left:3px solid #f59e0b; border-radius:6px; padding:7px 10px; margin:8px 0 4px; font-size:13px; }
/* MARCHÉ finansal özet (Faz 5, v2.50.0) */
.finans-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:10px; margin-bottom:6px; }
.finans-kutu { background:#f8fafc; border:1px solid #e2e8f0; border-radius:8px; padding:10px 12px; display:flex; flex-direction:column; gap:3px; min-width:0; }
.finans-kutu.finans-vurgu { background:#ecfeff; border-color:#a5f3fc; }
.finans-etiket { font-size:11px; color:#64748b; }
.finans-deger { font-size:16px; font-weight:700; color:#0f172a; white-space:nowrap; overflow-x:auto; }
.finans-deger small { font-size:11px; font-weight:600; color:#64748b; }
.finans-ilerleme-sar { margin-top:10px; }
.finans-ilerleme-bas { display:flex; justify-content:space-between; font-size:13px; margin-bottom:4px; }
.finans-bar { height:14px; background:#e2e8f0; border-radius:7px; overflow:hidden; }
.finans-bar-dolu { height:100%; border-radius:7px; transition:width .3s; min-width:2px; }

/* Meslek Kotaları — kullanılan/kalan belirginleştirme (v2.65.0) */
.kota-ozet { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.kota-ozet-kutu { display:inline-flex; align-items:baseline; gap:5px; padding:6px 12px; border-radius:10px;
  font-size:14px; font-weight:600; border:1px solid; }
.kota-ozet-kutu b { font-size:19px; }
.kota-ozet-kalan { background:#ecfdf5; border-color:#6ee7b7; color:#065f46; }
.kota-ozet-kullanilan { background:#eff6ff; border-color:#93c5fd; color:#1e40af; }
.kota-ozet-alt { font-size:12px; font-weight:400; color:#64748b; }
.kota-kullanildi-rozet { display:inline-block; background:#eff6ff; color:#1e40af; border:1px solid #bfdbfe;
  font-size:11px; font-weight:600; padding:1px 7px; border-radius:999px; white-space:nowrap; }
tr.kota-kullanildi > td { background:#f5f9ff; }
tr.kota-kullanildi > td:first-child { box-shadow:inset 3px 0 0 #3b82f6; }

/* Güvenli silme şifre modalı (v2.65.0) */
#sil-sifre-modal { display:none; position:fixed; inset:0; z-index:9999; background:rgba(15,23,42,.55);
  align-items:center; justify-content:center; padding:16px; }
#sil-sifre-modal.acik { display:flex; }
#sil-sifre-modal .sil-modal-kutu { background:#fff; border-radius:14px; padding:22px 22px 18px; width:100%;
  max-width:380px; box-shadow:0 18px 50px rgba(0,0,0,.28); }
#sil-sifre-modal h3 { margin:0 0 8px; font-size:18px; color:#991b1b; }
#sil-sifre-modal p { margin:0 0 12px; font-size:13.5px; color:#475569; }
#sil-sifre-modal #sil-sifre-input { width:100%; padding:10px 12px; border:1px solid #cbd5e1; border-radius:9px;
  font-size:15px; box-sizing:border-box; }
#sil-sifre-modal #sil-sifre-input:focus { outline:none; border-color:#dc2626; box-shadow:0 0 0 3px rgba(220,38,38,.15); }
#sil-sifre-modal #sil-sifre-hata { min-height:18px; color:#dc2626; font-size:12.5px; font-weight:600; margin:6px 2px 0; }
#sil-sifre-modal .sil-modal-alt { display:flex; justify-content:flex-end; gap:8px; margin-top:12px; }

/* Meslek Kotaları PİVOT — kurucu form + matris (v2.70.0) */
.pv-form { display:flex; flex-wrap:wrap; gap:10px; align-items:flex-end; padding:10px 12px; margin:0 0 12px;
  background:#f8fafc; border:1px solid var(--border,#e2e8f0); border-radius:10px; }
.pv-grup { display:flex; flex-direction:column; gap:3px; }
.pv-grup select, .pv-grup input[type=search] { margin:0; max-width:260px; }
.pv-et { font-size:11.5px; font-weight:700; color:#475569; text-transform:uppercase; letter-spacing:.02em; }
.pv-ayrac { width:1px; align-self:stretch; background:var(--border,#e2e8f0); margin:0 2px; }
.pv-kutular { gap:4px; font-size:12.5px; color:#334155; }
.pv-kutular label { display:flex; align-items:center; gap:5px; white-space:nowrap; margin:0; }
.pv-dugmeler { flex-direction:row; gap:6px; align-items:center; }
.pv-matris th, .pv-matris td { white-space:nowrap; }
.pv-matris .pv-sabit { position:sticky; left:0; z-index:1; background:#fff; text-align:left;
  box-shadow:1px 0 0 var(--border,#e2e8f0); max-width:280px; white-space:normal; }
.pv-matris thead .pv-sabit, .pv-matris tfoot .pv-sabit { background:#f1f5f9; }
.pv-matris tfoot th { background:#f1f5f9; }

/* Meslek Bazında Kotalar — şantiye kırılım rozetleri (v2.69.0) */
.mk-kirilim { display:flex; flex-wrap:wrap; gap:6px; max-width:560px; }  /* cap: rozetler sarsın, tablo yatayda taşmasın */
.mk-proje { display:inline-flex; align-items:baseline; gap:5px; text-decoration:none; color:#0f172a;
  background:#ecfdf5; border:1px solid #a7f3d0; border-radius:999px; padding:2px 9px; font-size:12px; white-space:nowrap; }
.mk-proje:hover { box-shadow:0 1px 6px rgba(0,0,0,.12); }
.mk-proje.mk-dolu { background:#f8fafc; border-color:#e2e8f0; opacity:.75; }

/* Yazdırma: geniş tablolarda satır takibi (v2.71.0) — util/yazdir.js ile AYNI renk.
   ⚠️ print-color-adjust olmadan tarayıcı arka planı yazdırmaz. */
@media print {
  table { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  table tbody tr:nth-child(even) > td { background: #f2f4f7; }
}

/* Süreç Rehberi — buton sözlüğü tablosu + örnek kutuları (v2.80.0) */
.rehber-alt { font-size:13.5px; margin:14px 0 6px; color:#0f172a; }
.rehber-tablo { width:100%; border-collapse:collapse; font-size:12.5px; margin:0 0 8px; }
.rehber-tablo th, .rehber-tablo td { border:1px solid #e2e8f0; padding:5px 7px; text-align:left; vertical-align:top; }
.rehber-tablo th { background:#f1f5f9; font-weight:700; }
.rehber-tablo tr:nth-child(even) td { background:#fafbfc; }
.rehber-ornek { background:#eff6ff; border:1px solid #bfdbfe; border-radius:8px; padding:8px 10px; font-size:12.5px; }
/* Tablo üstündeki kısa durum açıklaması (rehberi açmayan kullanıcı için) */
.durum-sozluk { font-size:12px; background:#f8fafc; border:1px solid #e2e8f0; border-radius:8px;
  padding:6px 9px; margin:0 0 10px; line-height:1.55; }

/* İletişim Rehberi — kayıt türü rozetleri (v2.81.0) */
.rehber-rozet { display:flex; flex-wrap:wrap; gap:4px; margin-top:4px; }
.tur-rozet { font-size:11px; padding:1px 7px; border-radius:999px; white-space:nowrap; border:1px solid transparent; }
.tur-personel { background:#dbeafe; color:#1e40af; border-color:#bfdbfe; }
.tur-taseron_personel { background:#fef3c7; color:#92400e; border-color:#fde68a; }
.tur-misafir { background:#ede9fe; color:#5b21b6; border-color:#ddd6fe; }
.tur-talep { background:#f1f5f9; color:#475569; border-color:#e2e8f0; }

/* 🧩 Kota arama/seçim arayüzü — kisi/form (v2.87.0) */
.kota-chip{font-size:13px;background:#f0fdf4;border:1px solid #86efac;color:#166534;border-radius:8px;padding:8px 10px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.kota-chip-uyari{background:#fffbeb;border-color:#fde68a;color:#92400e}
.kota-chip-sil{margin-left:auto;border:1px solid #fca5a5;background:#fff;color:#b91c1c;border-radius:6px;font-size:12px;padding:2px 8px;cursor:pointer;white-space:nowrap}
.kota-chip-sil:hover{background:#fef2f2}
.kota-liste{border:1px solid #e2e8f0;border-radius:8px;max-height:280px;overflow:auto;background:#fff}
.kota-sonuc{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid #f1f5f9;background:#fff;padding:8px 10px;font-size:12.5px;cursor:pointer;font-family:inherit}
.kota-sonuc:hover{background:#eff6ff}
.kota-sonuc:last-child{border-bottom:0}
.kota-bos{padding:8px 10px;font-size:12px;color:#64748b}

/* 🔎 Genel arama — Ana Panel kutusu + anlık sonuç listesi (v2.91.0) */
.ara-kutu-sar{position:relative;margin:0 0 14px}
.ara-kutu-sar form{position:relative;margin:0}
#ara-kutu{width:100%;margin:0;padding:12px 40px 12px 14px;font-size:14px;border-radius:10px;border:1px solid #cbd5e1;background:#fff}
#ara-kutu:focus{outline:2px solid #2563eb;outline-offset:1px;border-color:#2563eb}
.ara-ipucu{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:11px;color:#94a3b8;
  border:1px solid #e2e8f0;border-radius:5px;padding:1px 6px;background:#f8fafc;pointer-events:none}
.ara-sonuc{position:absolute;z-index:40;left:0;right:0;top:calc(100% + 4px);background:#fff;border:1px solid #cbd5e1;
  border-radius:10px;box-shadow:0 8px 24px rgba(15,23,42,.12);max-height:420px;overflow:auto}
.ara-satir{display:block;padding:9px 12px;border-bottom:1px solid #f1f5f9;text-decoration:none;color:inherit}
.ara-satir:last-of-type{border-bottom:0}
.ara-satir:hover,.ara-secili{background:#eff6ff}
.ara-satir-ust{font-size:13.5px;font-weight:600;color:#0f172a}
.ara-satir-alt{font-size:12px;color:#475569;margin-top:1px}
.ara-satir-konum{font-size:11px;color:#2563eb;margin-top:2px}
.ara-rozet{margin-left:8px;font-size:11px;font-weight:600;color:#475569;background:#f1f5f9;border-radius:999px;padding:1px 7px}
.ara-tum{display:block;padding:9px 12px;text-align:center;font-size:12.5px;font-weight:600;background:#f8fafc;text-decoration:none;color:#2563eb}
.ara-tum:hover,.ara-tum.ara-secili{background:#eff6ff}
.ara-bos{padding:12px;font-size:12.5px;color:#64748b}
.ara-konum{font-size:12px;color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;padding:2px 10px}
.ara-kaynak-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px}
.ara-kaynak{font-size:12.5px;padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc}

/* 🚨 Acil bandı ek durumları (v2.91.1) */
.do-acil-tamam{font-weight:400;opacity:.85;font-size:12.5px}
.do-acil-bitti{background:#f0fdf4;border-color:#86efac;color:#166534}

/* 🌐 Dil seçici (üst bar) — v2.92.0 */
/* Profilim → Arayüz Dili kutuları (renk kutusu desenini nötr renkle kullanır) */
.dil-kutu{background:#f8fafc;border-color:#cbd5e1}
.dil-kutu .renk-ad{color:#334155}
.dil-kutu.secili{background:#eff6ff;border-color:#3b82f6}
.dil-kutu.secili .renk-ad{color:#1d4ed8}

.dil-sec{margin:0}
.dil-sec select{margin:0;padding:4px 6px;font-size:12.5px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;cursor:pointer;min-width:74px}
.dil-sec select:hover{border-color:#cbd5e1}

/* 🌐 ARAPÇA (RTL) — v2.92.0. Yalnız <html dir="rtl"> iken uygulanır; diğer dillerde HİÇ etkisi yoktur.
   Kabuk (sabit sol menü) sağa alınır, hizalamalar ve kenar boşlukları aynalanır. Sayı/tarih/kod
   içeren hücreler LTR bırakılır (telefon, T.C., PNR, tarih ters okunmasın). */
[dir=rtl] body{text-align:right}
[dir=rtl] .app-sidebar{left:auto;right:0}
[dir=rtl] .app-main{margin-left:0;margin-right:232px}
[dir=rtl] .app-shell.menu-kapali .app-main{margin-right:0}
[dir=rtl] .app-topbar{flex-direction:row-reverse}
[dir=rtl] .table th,[dir=rtl] .table td{text-align:right}
[dir=rtl] .kv dt,[dir=rtl] .defs dt{text-align:right}
[dir=rtl] .page-head{flex-direction:row-reverse}
[dir=rtl] input,[dir=rtl] textarea,[dir=rtl] select{text-align:right}
[dir=rtl] input[type=date],[dir=rtl] input[type=time],[dir=rtl] input[type=tel],
[dir=rtl] input[type=email],[dir=rtl] input[type=number]{direction:ltr;text-align:left}
[dir=rtl] .app-nav-grup,[dir=rtl] .app-nav a{text-align:right}
[dir=rtl] tr.st-acil td:first-child,[dir=rtl] tr[class*=" st-"] td:first-child,
[dir=rtl] tr[class^="st-"] td:first-child{box-shadow:inset -4px 0 0 currentColor}
@media (max-width:900px){ [dir=rtl] .app-sidebar{transform:translateX(100%)} [dir=rtl] .app-sidebar.acik{transform:translateX(0)} [dir=rtl] .app-main{margin-right:0} }

/* 🌐 RTL — KARIŞIK YÖNLÜ SATIRLAR (v2.92.1, kullanıcı bulgusu ".1 Onay tamam" gibi bozulmalar).
   Arapça sayfada Türkçe kalmış (henüz çevrilmemiş) ya da veri içeren satırlar RTL akışa zorlanınca
   baştaki sayı/noktalama SONA kayıyordu (Unicode bidi kuralı). `unicode-bidi: plaintext` her
   öğenin yönünü KENDİ İÇERİĞİNİN ilk güçlü harfinden belirler: Arapça satır sağdan sola, Türkçe
   satır soldan sağa akar; ikisi de doğru okunur. `text-align: start` ile hizalama da içeriği izler. */
[dir=rtl] td, [dir=rtl] th, [dir=rtl] p, [dir=rtl] li, [dir=rtl] dd, [dir=rtl] dt,
[dir=rtl] h1, [dir=rtl] h2, [dir=rtl] h3, [dir=rtl] h4, [dir=rtl] label, [dir=rtl] small,
[dir=rtl] .alert, [dir=rtl] .muted, [dir=rtl] .badge, [dir=rtl] .chip, [dir=rtl] .tag,
[dir=rtl] .bildirim-govde, [dir=rtl] .not-balon, [dir=rtl] .not-balon-genis,
[dir=rtl] .ara-satir-ust, [dir=rtl] .ara-satir-alt, [dir=rtl] .durum-not{
  unicode-bidi:plaintext; text-align:start;
}
/* Sayı/kod alanları her koşulda soldan sağa (tarih, telefon, T.C., PNR, tutar) */
[dir=rtl] .kayit-no, [dir=rtl] .num, [dir=rtl] code, [dir=rtl] kbd{direction:ltr;unicode-bidi:isolate}
