/* =====================================================================================
   DEKINNexus Etap — uygulamaya özgü ek stiller (style.css HR ile ortaktır; ona DOKUNMA)
   ===================================================================================== */
/* ---- Adım durum rozetleri (statuses.js anahtarları) ---- */
.badge-bekliyor     { background:#e2e8f0; color:#334155; }
.badge-hazirlaniyor { background:#dbeafe; color:#1e40af; }
.badge-kurumda      { background:#fef3c7; color:#92400e; }
.badge-eksik        { background:#ffedd5; color:#9a3412; }
.badge-onaylandi    { background:#dcfce7; color:#166534; }
.badge-reddedildi   { background:#fee2e2; color:#991b1b; }
.badge-beklemede    { background:#fef9c3; color:#854d0e; }
.badge-iptal        { background:#f1f5f9; color:#475569; }
/* süreç */
.badge-s-planlandi  { background:#e2e8f0; color:#334155; }
.badge-s-devam      { background:#dbeafe; color:#1e40af; }
.badge-s-durduruldu { background:#fef9c3; color:#854d0e; }
.badge-s-tamamlandi { background:#dcfce7; color:#166534; }
.badge-s-iptal      { background:#f1f5f9; color:#475569; }
/* proje */
.badge-p-aktif      { background:#dbeafe; color:#1e40af; }
.badge-p-tamamlandi { background:#dcfce7; color:#166534; }
.badge-p-beklemede  { background:#fef9c3; color:#854d0e; }
.badge-p-iptal      { background:#f1f5f9; color:#475569; }
/* risk */
.risk-gecikmis { color:#dc2626; font-weight:700; }
.risk-riskli   { color:#d97706; font-weight:700; }
.risk-normal   { color:#64748b; }
.risk-tamam    { color:#16a34a; font-weight:600; }
/* satır renkleri (sol çubuk + ton) — HR tr.st-* deseni */
tr.st-gecikmis td { background:#fef2f2; } tr.st-gecikmis td:first-child { box-shadow:inset 4px 0 0 #ef4444; }
tr.st-riskli   td { background:#fffbeb; } tr.st-riskli   td:first-child { box-shadow:inset 4px 0 0 #f59e0b; }
tr.st-kurumda  td:first-child { box-shadow:inset 4px 0 0 #f59e0b; }
tr.st-eksik    td { background:#fff7ed; } tr.st-eksik td:first-child { box-shadow:inset 4px 0 0 #ea580c; }
tr.st-onaylandi td:first-child { box-shadow:inset 4px 0 0 #16a34a; }
tr.st-kapali td { opacity:.75; }

/* ---- İlerleme çubuğu ---- */
.ilerleme { display:flex; align-items:center; gap:8px; min-width:120px; }
.ilerleme .yol { flex:1; height:8px; background:#f1f5f9; border-radius:999px; overflow:hidden; }
.ilerleme .yol i { display:block; height:100%; border-radius:999px; background:#2563eb; }
.ilerleme b { font-size:12px; font-variant-numeric:tabular-nums; min-width:36px; text-align:end; }
.ilerleme.buyuk .yol { height:12px; } .ilerleme.buyuk b { font-size:14px; }
.ilerleme-gecikmis .yol i { background:#dc2626; }
.ilerleme-tamam .yol i { background:#16a34a; }

/* ---- Gantt ---- */
.gantt-sar { overflow-x:auto; }
.gantt { width:100%; height:auto; min-width:860px; font-family:var(--font); }
.gantt .g-ay { font-size:11.5px; font-weight:700; fill:#334155; }
.gantt .g-yil { font-size:11px; font-weight:800; fill:#3730a3; letter-spacing:.5px; }
.gantt .g-hafta { font-size:11px; fill:#64748b; }
.gantt .g-et { font-size:12px; fill:#334155; }
.gantt .g-et-faz { font-weight:700; fill:#312e81; }
.gantt .g-et-ust { font-weight:800; fill:#1e3a8a; font-size:12.5px; }
.gantt .g-ik { font-size:11px; }
.gantt .g-yuzde { font-size:11px; fill:#475569; font-weight:700; }
.gantt .g-gec { font-size:11px; fill:#dc2626; font-weight:700; }
.gantt .g-rozet { font-size:11px; fill:#475569; }
.gantt .g-bugun { font-size:11px; fill:#fff; font-weight:700; }
.gantt a text:hover { text-decoration:underline; fill:#2563eb; }
.gantt-lejant { display:flex; gap:14px; flex-wrap:wrap; font-size:12px; color:#475569; margin-top:8px; }
.gantt-lejant span { display:inline-flex; align-items:center; gap:6px; }
.gantt-lejant i { display:inline-block; width:22px; height:8px; border-radius:3px; }

/* ---- Kanban/aşama şeridi (süreç detayı: faz kartları) ---- */
.faz-serit { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:10px; margin-bottom:16px; }
.faz-kart { background:#fff; border:1px solid var(--border); border-radius:12px; padding:10px 12px; min-width:0; }
.faz-kart b { display:block; font-size:12.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.faz-kart small { color:var(--muted); font-size:11px; display:block; }
.faz-kart.aktif { border-color:#2563eb; box-shadow:0 0 0 2px #bfdbfe inset; }
.faz-kart.tamam { border-color:#86efac; background:#f0fdf4; }
.faz-kart.gecik { border-color:#fca5a5; background:#fef2f2; }

/* ---- Hareket (kronoloji) akışı ---- */
.kronoloji { list-style:none; margin:0; padding:0; }
.kronoloji li { display:flex; gap:11px; padding:9px 0; border-inline-start:2px solid var(--border); margin-inline-start:14px; padding-inline-start:16px; position:relative; }
.kronoloji li::before { content:''; position:absolute; inset-inline-start:-7px; top:14px; width:12px; height:12px; border-radius:50%; background:#fff; border:2px solid #94a3b8; }
.kronoloji li.k-durum::before { border-color:#2563eb; background:#2563eb; }
.kronoloji li.k-not::before { border-color:#7c3aed; }
.kronoloji li.k-belge::before { border-color:#0ea5e9; }
.kronoloji li.k-atama::before { border-color:#16a34a; }
.kronoloji .k-ik { flex:0 0 22px; font-size:15px; }
.kronoloji .k-govde { flex:1; min-width:0; }
.kronoloji .k-govde b { font-size:13px; }
.kronoloji .k-govde small { display:block; color:var(--muted); font-size:11.5px; }
.kronoloji .k-metin { white-space:pre-wrap; font-size:13px; color:#334155; margin-top:2px; }
.kronoloji .k-zaman { font-size:11px; color:var(--muted); white-space:nowrap; }

/* ---- Görevlerim / adım satırı hızlı işlem ---- */
.hizli-durum { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.hizli-durum select { margin:0; padding:5px 8px; font-size:12.5px; max-width:190px; }
.hizli-durum input[type=text] { margin:0; padding:5px 8px; font-size:12.5px; max-width:220px; }
.hizli-durum button { padding:5px 10px; font-size:12.5px; }
.gorev-grup h2.sec { display:flex; align-items:center; gap:8px; }
.gorev-grup h2.sec .sayi { background:#e2e8f0; color:#334155; border-radius:999px; padding:1px 9px; font-size:12px; }
.gorev-grup.g-gecikmis h2.sec { color:#dc2626; border-color:#fca5a5; }
.gorev-grup.g-gecikmis h2.sec .sayi { background:#fee2e2; color:#991b1b; }
.gorev-grup.g-hafta h2.sec { color:#b45309; border-color:#fcd34d; }

/* ---- İş yükü ---- */
.iy-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:12px; }
.iy-kart { background:#fff; border:1px solid var(--border); border-radius:12px; padding:14px; min-width:0; }
.iy-kart .iy-bas { display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.iy-kart .iy-av { width:36px; height:36px; border-radius:10px; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:13px; }
.iy-kart .iy-ad b { display:block; font-size:14px; }
.iy-kart .iy-ad small { color:var(--muted); font-size:11.5px; }
.iy-sayac { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; margin:8px 0; }
.iy-sayac a, .iy-sayac span { display:flex; flex-direction:column; align-items:center; padding:6px 2px; border-radius:8px; background:#f8fafc; text-decoration:none; color:inherit; }
.iy-sayac b { font-size:17px; line-height:1.1; }
.iy-sayac small { font-size:11px; color:#475569; text-align:center; }
.iy-sayac .gec { background:#fef2f2; } .iy-sayac .gec b { color:#dc2626; }
.iy-sayac .haf { background:#fffbeb; } .iy-sayac .haf b { color:#b45309; }
.iy-sayac .kur { background:#fef3c7; } .iy-sayac .kur b { color:#92400e; }
.iy-hafta { display:grid; grid-template-columns:repeat(8,1fr); gap:3px; margin-top:6px; }
.iy-hafta span { height:26px; border-radius:5px; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; background:#f1f5f9; color:#475569; }
.iy-hafta .h1 { background:#dbeafe; color:#1e40af; } .iy-hafta .h2 { background:#93c5fd; color:#1e3a8a; } .iy-hafta .h3 { background:#3b82f6; color:#fff; } .iy-hafta .h4 { background:#1d4ed8; color:#fff; }
.iy-hafta-bas { display:grid; grid-template-columns:repeat(8,1fr); gap:3px; margin-top:4px; }
.iy-hafta-bas small { font-size:11px; color:#64748b; text-align:center; }
.iy-yuk { height:8px; border-radius:999px; background:#f1f5f9; overflow:hidden; display:flex; margin-top:8px; }
.iy-yuk i { display:block; height:100%; }

/* ---- Yönetici paneli (sade) ---- */
.yp-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:14px; }
.yp-kart { background:#fff; border:1px solid var(--border); border-radius:14px; padding:16px; display:flex; flex-direction:column; gap:8px; min-width:0; color:inherit; text-decoration:none; border-top:5px solid #2563eb; }
.yp-kart:hover { text-decoration:none; box-shadow:0 4px 16px rgba(15,23,42,.08); }
.yp-kart.r-gecikmis { border-top-color:#dc2626; } .yp-kart.r-riskli { border-top-color:#f59e0b; } .yp-kart.r-kapali { border-top-color:#64748b; }
.yp-kart h3 { margin:0; font-size:15px; line-height:1.3; }
.yp-kart .yp-alt { font-size:12px; color:var(--muted); }
.yp-kart .yp-sonraki { background:#f8fafc; border-radius:8px; padding:7px 10px; font-size:12.5px; }
.yp-kart .yp-sonraki b { display:block; font-size:12.5px; }
.yp-sayac { display:flex; gap:10px; font-size:12px; color:#475569; flex-wrap:wrap; }
.yp-sayac span b { font-size:13px; }
.yp-buyuk { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:12px; margin-bottom:16px; }
.yp-buyuk a { background:#fff; border:1px solid var(--border); border-radius:14px; padding:16px; text-decoration:none; color:inherit; display:flex; flex-direction:column; }
.yp-buyuk a b { font-size:30px; font-weight:800; line-height:1.1; }
.yp-buyuk a small { font-size:12px; color:var(--muted); font-weight:600; }
.yp-buyuk a.kirmizi b { color:#dc2626; } .yp-buyuk a.turuncu b { color:#d97706; } .yp-buyuk a.yesil b { color:#16a34a; } .yp-buyuk a.mavi b { color:#2563eb; }
.dikkat-liste { list-style:none; margin:0; padding:0; }
.dikkat-liste li { display:flex; gap:10px; align-items:center; padding:9px 0; border-bottom:1px solid #f1f5f9; }
.dikkat-liste li:last-child { border-bottom:0; }
.dikkat-liste .d-ik { font-size:18px; flex:0 0 24px; }
.dikkat-liste .d-govde { flex:1; min-width:0; }
.dikkat-liste .d-govde b { display:block; font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dikkat-liste .d-govde small { color:var(--muted); font-size:11.5px; }

/* ---- Proje detayı ---- */
.proje-bas { display:flex; gap:16px; align-items:flex-start; flex-wrap:wrap; }
.proje-bas .pb-govde { flex:1; min-width:260px; }
.proje-bas h1 { font-size:20px; }
.pb-meta { display:flex; gap:14px; flex-wrap:wrap; font-size:12.5px; color:#475569; margin-top:6px; }
.pb-meta b { color:#0f172a; }
.surec-kart { border:1px solid var(--border); border-radius:12px; padding:12px 14px; margin-bottom:10px; background:#fff; }
.surec-kart .sk-bas { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.surec-kart .sk-bas h3 { margin:0; font-size:15px; flex:1; min-width:200px; }
.adim-tablo td, .adim-tablo th { font-size:13px; }
.adim-tablo .ad a { font-weight:600; color:#0f172a; }
.adim-tablo .ad small { display:block; color:var(--muted); font-size:11.5px; }
.kurum-chip { display:inline-block; background:#eef2ff; color:#3730a3; border-radius:999px; padding:2px 9px; font-size:11.5px; font-weight:700; white-space:nowrap; }

/* ---- Adım detayı ---- */
.adim-ozet { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:10px; margin-bottom:14px; }
.adim-ozet div { background:#f8fafc; border-radius:10px; padding:10px 12px; }
.adim-ozet small { display:block; color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.4px; }
.adim-ozet b { font-size:14px; }
.durum-secim { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:6px; }
.durum-secim label { display:flex; align-items:center; gap:6px; border:1px solid var(--border); border-radius:8px; padding:7px 9px; cursor:pointer; font-weight:600; font-size:12.5px; }
.durum-secim label:hover { background:#f8fafc; }
.durum-secim input { width:auto; margin:0; }
.durum-secim label.secili { border-color:#2563eb; background:#eff6ff; }

/* ---- Şablon editörü ---- */
.sablon-faz { border:1px solid var(--border); border-radius:12px; padding:10px 14px; margin-bottom:12px; }
.sablon-faz > summary { cursor:pointer; font-weight:700; font-size:14px; list-style:none; display:flex; gap:8px; align-items:center; }
.sablon-faz > summary::-webkit-details-marker { display:none; }
.sablon-faz > summary::before { content:'▸'; color:#64748b; } .sablon-faz[open] > summary::before { content:'▾'; }
.form-satir { display:grid; grid-template-columns:2fr 1fr 1fr 80px 70px auto; gap:6px; align-items:end; margin-top:8px; }
.form-satir input, .form-satir select { margin:0; padding:6px 8px; font-size:12.5px; }
@media (max-width:900px) { .form-satir { grid-template-columns:1fr 1fr; } }

/* ---- Filtre çubuğu ---- */
.filtre-bar { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-bottom:12px; }
.filtre-bar input, .filtre-bar select { margin:0; padding:7px 9px; font-size:13px; width:auto; }
.filtre-bar input[type=search] { min-width:min(220px, 100%); }
.filtre-bar .bos { flex:1; }
.sayac-chip { font-size:12px; color:#475569; }

/* Ana Panel: kurum bazında bekleyenler */
.kurum-liste li { display:flex; justify-content:space-between; padding:6px 0; border-bottom:1px solid #f1f5f9; font-size:13px; }
.kurum-liste { list-style:none; margin:0; padding:0; }

/* Proje renk noktası */
.renk-nokta { display:inline-block; width:10px; height:10px; border-radius:3px; margin-inline-end:4px; vertical-align:middle; }
.kod-etiket { font-family:ui-monospace,Menlo,monospace; font-size:11.5px; background:#f1f5f9; border-radius:6px; padding:1px 6px; color:#334155; }
.boş { color:var(--muted); font-style:italic; }
@media print { .app-sidebar, .app-topbar, .filtre-bar, .footer, .btn, .skip-link { display:none !important; } .app-main { margin-left:0; margin-right:0; } .gantt { min-width:0; } }

/* Ana Panel hızlı işlemler: 5 kart tek satıra sığsın (HR 4 sabit kolon → otomatik sığdır) */
.hizli { grid-template-columns:repeat(auto-fit, minmax(170px, 1fr)); }

/* =====================================================================================
   🛒 SATIN ALMA modülü
   ===================================================================================== */
.sa-akis { display:flex; gap:4px; flex-wrap:wrap; margin:10px 0 14px; }
.sa-akis span { flex:1; min-width:74px; text-align:center; font-size:11px; font-weight:700; padding:6px 4px; border-radius:8px; background:#f1f5f9; color:#64748b; position:relative; }
.sa-akis span.tamam { background:#dcfce7; color:#166534; }
.sa-akis span.aktif { background:#2563eb; color:#fff; box-shadow:0 0 0 3px #bfdbfe; }
.sa-akis span.atlanan { opacity:.45; text-decoration:line-through; }
.sa-akis span small { display:block; font-weight:500; font-size:11px; opacity:.95; }
.badge-sa-taslak{background:#e2e8f0;color:#334155}.badge-sa-onay_bekliyor{background:#fef3c7;color:#92400e}.badge-sa-revizyon{background:#ffedd5;color:#9a3412}
.badge-sa-onaylandi{background:#dcfce7;color:#166534}.badge-sa-teklif_toplama{background:#dbeafe;color:#1e40af}.badge-sa-degerlendirme{background:#e0e7ff;color:#3730a3}
.badge-sa-secim_onayi{background:#ede9fe;color:#5b21b6}.badge-sa-kurum_onayi{background:#fef3c7;color:#92400e}.badge-sa-siparis{background:#e0f2fe;color:#075985}
.badge-sa-teslimat{background:#ccfbf1;color:#115e59}.badge-sa-fatura{background:#ccfbf1;color:#0f766e}.badge-sa-tamamlandi{background:#dcfce7;color:#166534}
.badge-sa-beklemede{background:#fef9c3;color:#854d0e}.badge-sa-reddedildi{background:#fee2e2;color:#991b1b}.badge-sa-iptal{background:#f1f5f9;color:#475569}
.badge-sa-alindi{background:#e2e8f0;color:#334155}.badge-sa-degerlendirildi{background:#dbeafe;color:#1e40af}.badge-sa-secildi{background:#dcfce7;color:#166534}.badge-sa-elendi{background:#f1f5f9;color:#64748b}
.badge-sa-bekliyor{background:#fef3c7;color:#92400e}.badge-sa-eksik{background:#ffedd5;color:#9a3412}
.badge-sa-verildi{background:#e0f2fe;color:#075985}.badge-sa-kismi_teslim{background:#fef3c7;color:#92400e}.badge-sa-teslim_edildi{background:#ccfbf1;color:#115e59}.badge-sa-faturalandi{background:#e0e7ff;color:#3730a3}.badge-sa-odendi{background:#dcfce7;color:#166534}.badge-sa-kapandi{background:#dcfce7;color:#166534}
/* karşılaştırma tablosu */
.sa-karsilastirma td, .sa-karsilastirma th { font-size:12.5px; white-space:nowrap; }
.sa-karsilastirma td.enucuz { background:#f0fdf4; font-weight:700; color:#166534; }
.sa-karsilastirma td.uygunsuz { background:#fef2f2; color:#991b1b; }
.sa-karsilastirma th.secili, .sa-karsilastirma td.secili { box-shadow:inset 0 3px 0 #2563eb; }
.sa-karsilastirma tfoot td { font-weight:800; background:#f8fafc; }
.sa-fiyat { font-variant-numeric:tabular-nums; text-align:end; }
/* onay zinciri */
.sa-onay-zincir { display:flex; gap:8px; flex-wrap:wrap; }
.sa-onay-kademe { border:1px solid var(--border); border-radius:10px; padding:8px 12px; min-width:180px; background:#fff; }
.sa-onay-kademe.bekliyor { border-color:#fcd34d; background:#fffbeb; } .sa-onay-kademe.onaylandi { border-color:#86efac; background:#f0fdf4; }
.sa-onay-kademe.reddedildi, .sa-onay-kademe.revizyon { border-color:#fca5a5; background:#fef2f2; }
.sa-onay-kademe b { display:block; font-size:13px; } .sa-onay-kademe small { color:var(--muted); font-size:11.5px; display:block; }
/* yazışma / soru-cevap */
.sa-yorum { border-inline-start:3px solid #cbd5e1; padding:8px 12px; margin:8px 0; background:#f8fafc; border-start-start-radius:0; border-end-start-radius:0; border-start-end-radius:10px; border-end-end-radius:10px; }
.sa-yorum.soru { border-inline-start-color:#f59e0b; background:#fffbeb; } .sa-yorum.cevap { border-inline-start-color:#16a34a; background:#f0fdf4; margin-inline-start:22px; }
.sa-yorum .y-bas { display:flex; gap:8px; align-items:center; font-size:12px; color:var(--muted); }
.sa-yorum .y-bas b { color:#0f172a; } .sa-yorum .y-metin { white-space:pre-wrap; font-size:13.5px; margin-top:4px; }
.sa-yorum .y-bekliyor { color:#b45309; font-weight:700; font-size:11.5px; }
/* belge listesi */
.sa-belge { display:flex; gap:10px; align-items:center; padding:7px 0; border-bottom:1px solid #f1f5f9; font-size:13px; }
.sa-belge .b-ik { font-size:18px; } .sa-belge .b-ad { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sa-belge small { color:var(--muted); font-size:11.5px; }
.sa-belge.silinmis { opacity:.6; } .sa-belge.silinmis .b-ad { text-decoration:line-through; }
/* aşama süre analizi */
.sa-sure { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:8px; }
.sa-sure div { background:#f8fafc; border-radius:10px; padding:8px 10px; }
.sa-sure small { display:block; color:var(--muted); font-size:11px; } .sa-sure b { font-size:15px; }
.sa-sure .kim { font-size:11.5px; color:#334155; }
/* kalem satır formu */
.sa-kalem-satir { display:grid; grid-template-columns:2fr 90px 90px 120px 1fr auto; gap:6px; align-items:end; margin-top:6px; }
.sa-kalem-satir input, .sa-kalem-satir select { margin:0; padding:6px 8px; font-size:12.5px; }
@media (max-width:900px){ .sa-kalem-satir { grid-template-columns:1fr 1fr; } }
.sa-kpi-tutar { font-size:22px; font-weight:800; }
.badge-sa-siparis_bekliyor{background:#e0f2fe;color:#0c4a6e}

/* 'Güncel' sürüm rozeti (HR .badge-biletlendi karşılığı — style.css HR ortak, dokunulmaz) */
.badge-guncel { background:#dcfce7; color:#166534; }

/* =====================================================================================
   ♿ ERİŞİLEBİLİRLİK + 🌐 RTL + 📱 MOBİL (denetim 2026-08-22 — #77 #88 #90 #91)
   ===================================================================================== */
/* Klavye odak göstergesi: her etkileşimli öğe (style.css yalnız input/select/textarea tanımlar) */
:focus-visible { outline:2px solid #2563eb; outline-offset:2px; }
a:focus-visible, .btn:focus-visible, button:focus-visible, summary:focus-visible,
.faz-kart:focus-visible, .yp-kart:focus-visible, .iy-sayac a:focus-visible { outline:2px solid #2563eb; outline-offset:2px; border-radius:6px; }
.durum-secim label:focus-within { outline:2px solid #2563eb; outline-offset:1px; }
.app-nav a:focus-visible { outline-color:#93c5fd; outline-offset:-2px; }
/* İçeriğe geç bağlantısı (head.ejs): yalnız klavye odağında görünür */
.skip-link { position:absolute; inset-inline-start:8px; top:-48px; z-index:100000; background:#1e3a8a; color:#fff; padding:8px 14px; border-radius:8px; font-weight:700; text-decoration:none; transition:top .15s; }
.skip-link:focus, .skip-link:focus-visible { top:8px; outline:2px solid #fff; }
main:focus { outline:none; }
/* Düşük kontrast yardımcı metinler (WCAG AA ≥ 4.5:1 beyaz üstünde) */
.do-n-alt, .do-notlar small { color:#64748b; }

/* ---- 📱 Mobil: geniş tablolarda ilk sütun sabit; Gantt etiket sütunu (gantt.js) sabit katman ---- */
.tablo-sar table th:first-child, .tablo-sar table td:first-child { position:sticky; inset-inline-start:0; background:#fff; z-index:1; }
.tablo-sar table thead th:first-child { z-index:2; }
.tablo-sar tr.st-gecikmis td:first-child { background:#fef2f2; } .tablo-sar tr.st-riskli td:first-child { background:#fffbeb; } .tablo-sar tr.st-eksik td:first-child { background:#fff7ed; }
.gantt-sar { position:relative; }
.gantt-sabit { display:none; }
@media (max-width:900px) {
  .gantt { min-width:760px; }
  /* Gantt etiket sütunu: SVG'nin solundaki etiketlerin HTML kopyası, yatay kaydırmada sabit kalır (gantt.js g-sabit) */
  .gantt-sar { display:flex; align-items:flex-start; }
  .gantt-sabit { display:block; position:sticky; inset-inline-start:0; z-index:2; background:#fff; border-inline-end:1px solid #cbd5e1; flex:0 0 auto; width:150px; font-size:12px; }
  .gantt-sabit div { height:26px; line-height:26px; padding:0 6px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; border-bottom:1px solid #f1f5f9; }
  .gantt-sabit .g-bas { height:46px; line-height:46px; font-weight:700; color:#334155; }
  .gantt-sabit .g-ust { background:#eef2ff; font-weight:800; } .gantt-sabit .g-faz { background:#f8fafc; font-weight:700; }
  .gantt-sar .gantt { flex:1 0 auto; }
}
@media (max-width:480px) {
  .filtre-bar { flex-direction:column; align-items:stretch; }
  .filtre-bar input, .filtre-bar select, .filtre-bar .btn, .filtre-bar form { width:100%; max-width:100%; min-width:0; }
  .filtre-bar .bos { display:none; }
  .hizli-durum select, .hizli-durum input[type=text] { max-width:100%; width:100%; }
  .form-satir, .sa-kalem-satir { grid-template-columns:1fr; }
  .adim-ozet { grid-template-columns:1fr 1fr; }
  .yp-buyuk { grid-template-columns:1fr 1fr; }
  .iy-sayac { grid-template-columns:repeat(2,1fr); }
  .proje-bas h1 { font-size:17px; }
}

/* ---- 🌐 RTL aynası: mantıksal özellikle ifade edilemeyen kurallar (box-shadow inset, ok işaretleri, SVG) ---- */
[dir=rtl] tr.st-gecikmis td:first-child { box-shadow:inset -4px 0 0 #ef4444; }
[dir=rtl] tr.st-riskli td:first-child { box-shadow:inset -4px 0 0 #f59e0b; }
[dir=rtl] tr.st-kurumda td:first-child { box-shadow:inset -4px 0 0 #f59e0b; }
[dir=rtl] tr.st-eksik td:first-child { box-shadow:inset -4px 0 0 #ea580c; }
[dir=rtl] tr.st-onaylandi td:first-child { box-shadow:inset -4px 0 0 #16a34a; }
[dir=rtl] .sablon-faz > summary::before { content:'◂'; } [dir=rtl] .sablon-faz[open] > summary::before { content:'▾'; }
[dir=rtl] .kronoloji .k-zaman, [dir=rtl] .kod-etiket, [dir=rtl] .sa-fiyat, [dir=rtl] .ilerleme b, [dir=rtl] .kurum-chip { direction:ltr; unicode-bidi:isolate; }
[dir=rtl] .gantt-sar { direction:ltr; }             /* zaman ekseni soldan sağa; etiketler SVG içinde direction=rtl alır */
[dir=rtl] .gantt-sabit div { direction:rtl; text-align:right; }
[dir=rtl] .gantt-lejant { direction:rtl; }
[dir=rtl] .yp-kart, [dir=rtl] .faz-kart, [dir=rtl] .surec-kart, [dir=rtl] .iy-kart, [dir=rtl] .adim-ozet div, [dir=rtl] .sa-onay-kademe, [dir=rtl] .sa-sure div,
[dir=rtl] .dikkat-liste .d-govde b, [dir=rtl] .faz-kart b, [dir=rtl] .do-notlar, [dir=rtl] .sa-yorum .y-metin, [dir=rtl] .kronoloji .k-metin, [dir=rtl] .kronoloji .k-govde { text-align:right; }

/* 🔔 Bildirimler ekranı (denetim #125): okunmamış satır vurgusu · Profil bildirim tercih ızgarası */
.doclist li.bildirim-yeni { background:#f0fdf4; margin:0 -8px; padding-left:8px; padding-right:8px; border-radius:6px; }
.tercih-tablo { width:100%; border-collapse:collapse; font-size:13px; }
.tercih-tablo th, .tercih-tablo td { padding:6px 8px; border-bottom:1px solid var(--border); text-align:center; }
.tercih-tablo th:first-child, .tercih-tablo td:first-child { text-align:left; }
[dir=rtl] .tercih-tablo th:first-child, [dir=rtl] .tercih-tablo td:first-child { text-align:right; }
.wa-log-skipped { opacity:.6; }

/* ---- 📱 Mobil kart tablolar (denetim #30) — public/tablo-kart.js her td'ye data-label yazar, sınıfı buradan gelir.
   ≤640px: satır = kart, başlık satırı gizlenir, her hücrenin etiketi td::before ile solda görünür.
   Bir tabloyu dışarıda bırakmak için <table class="table" data-kart="0">. Geniş hücre (colspan>1) .tk-genis alır. ---- */
@media (max-width:640px) {
  .tablo-sar:has(.tablo-kart) { overflow-x:visible; }                 /* kart modunda yatay kaydırma gereksiz */
  .tablo-kart { min-width:0; border-collapse:separate; border-spacing:0; }
  .tablo-kart thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  .tablo-kart, .tablo-kart tbody, .tablo-kart tr, .tablo-kart td { display:block; width:auto; }
  .tablo-kart tr { border:1px solid var(--border); border-radius:10px; background:#fff; padding:8px 10px; margin:0 0 10px; }
  .tablo-kart tr:last-child { margin-bottom:0; }
  .tablo-kart td { border:0; padding:3px 0; display:flex; gap:10px; align-items:baseline; font-size:13.5px; }
  .tablo-kart td::before {
    content:attr(data-label); flex:0 0 40%; min-width:0; color:var(--muted);
    font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.3px; line-height:1.5; overflow-wrap:anywhere;
  }
  .tablo-kart td[data-label='']::before, .tablo-kart td.tk-genis::before { display:none; }
  .tablo-kart td.tk-genis { display:block; }
  .tablo-kart td > * { min-width:0; }
  /* ilk hücre kartın başlığıdır: etiketsiz, büyük ve tam genişlik */
  .tablo-kart td:first-child { display:block; font-size:14.5px; font-weight:600; padding-bottom:6px; margin-bottom:4px; border-bottom:1px solid #f1f5f9; }
  .tablo-kart td:first-child::before { display:none; }
  /* .tablo-sar'ın yapışkan ilk sütun kuralı kart modunda anlamsız */
  .tablo-sar .tablo-kart th:first-child, .tablo-sar .tablo-kart td:first-child { position:static; }
  /* risk vurgusu hücrenin değil KARTIN kenarında */
  .tablo-kart tr.st-gecikmis { border-inline-start:4px solid #ef4444; }
  .tablo-kart tr.st-riskli, .tablo-kart tr.st-kurumda { border-inline-start:4px solid #f59e0b; }
  .tablo-kart tr.st-eksik { border-inline-start:4px solid #ea580c; }
  .tablo-kart tr.st-onaylandi { border-inline-start:4px solid #16a34a; }
  .tablo-kart tr.st-gecikmis td:first-child, .tablo-kart tr.st-riskli td:first-child,
  .tablo-kart tr.st-eksik td:first-child, .tablo-kart tr.st-onaylandi td:first-child,
  .tablo-kart tr.st-kurumda td:first-child { box-shadow:none; background:transparent; }
  /* "sonuç yok" gibi tek hücreli satırlar kart olmasın */
  .tablo-kart tr:has(td[colspan]:only-child) { border:1px solid var(--border); }
  .tablo-kart tr:has(td[colspan]:only-child) td:first-child { border-bottom:0; margin:0; padding:0; font-weight:400; text-align:center; color:var(--muted); }
}

/* ⏰ Hatırlatma kartı (views/partials/hatirlatma-kart.ejs) — adım / talep / sipariş / MARCHÉ sayfalarındaki
   katlanır kişisel hatırlatma formu. Ajanda sayfasındaki .aj-ekle deseninin genel kabuğa taşınmış hâli
   (ajanda.css yalnız /ajanda'da yüklenir; bu kart her sayfada olabilir). */
.hatirlatma-kart { margin-bottom:14px; }
.hatirlatma-kart > summary { cursor:pointer; font-weight:700; font-size:14px; list-style:none; }
.hatirlatma-kart > summary::-webkit-details-marker { display:none; }
.hatirlatma-kart > summary::before { content:'▸ '; color:#64748b; }
.hatirlatma-kart[open] > summary::before { content:'▾ '; }
.hatirlatma-kart .form-grid { margin-top:10px; }
@media print { .hatirlatma-kart { display:none !important; } }

/* 🔔 Hatırlatma kanal seçimi (partials/kanal-secim.ejs) — uygulama içi her zaman, WhatsApp/e-posta isteğe bağlı */
.kanal-secim { display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px; padding:8px 10px; margin-top:4px;
  background:#f8fafc; border:1px solid #e2e8f0; border-radius:8px; font-size:13px; }
.kanal-secim .kanal-bas { font-weight:600; color:#334155; margin-inline-end:4px; }
.kanal-secim .kanal-kutu { display:inline-flex; align-items:center; gap:5px; margin:0; font-weight:normal; cursor:pointer; }
.kanal-secim .kanal-kutu input { margin:0; }
.kanal-secim .kanal-yok { opacity:.55; cursor:not-allowed; }
.kanal-secim small { flex-basis:100%; }
@media (max-width:640px) { .kanal-secim { flex-direction:column; align-items:flex-start; } }

/* ℹ️ Ekran içi bilgilendirme paneli (views/partials/aciklama.ejs + public/aciklama.js)
   TEK KAYNAK: bu kurallar satinalma/ayarlar.ejs içindeki sayfa-içi <style>'dan buraya taşındı (görünüm aynıdır).
   Mantıksal özellikler (margin-inline-start / padding-inline) kullanılır → [dir=rtl] kendiliğinden aynalanır. */
details.aciklama-kutu { background:#f8fafc; border:1px dashed #cbd5e1; border-radius:10px; padding:12px 14px;
  font-size:13px; color:#334155; }
details.aciklama-kutu > summary { cursor:pointer; font-weight:700; font-size:13.5px; color:#1e3a8a;
  list-style:none; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
details.aciklama-kutu > summary::-webkit-details-marker { display:none; }
details.aciklama-kutu > summary::after { content:'▸'; color:#64748b; margin-inline-start:auto; }
details.aciklama-kutu[open] > summary::after { content:'▾'; }
details.aciklama-kutu > summary:hover { color:#2563eb; }
details.aciklama-kutu > summary:focus-visible { outline:2px solid #2563eb; outline-offset:2px; border-radius:6px; }
.aciklama-kutu .ak-govde { margin-top:8px; }
.aciklama-kutu h3 { margin:10px 0 6px; font-size:13.5px; }
.aciklama-kutu .ak-ozet { margin:0 0 8px; }
.aciklama-kutu ol, .aciklama-kutu ul { margin:4px 0 8px; padding:0; margin-inline-start:18px; }
.aciklama-kutu li { margin:3px 0; }
.aciklama-kutu code { background:#e2e8f0; border-radius:4px; padding:0 5px; font-size:12px; }
/* küçük akış şeridi — eski ".zincir-ornek" deseninin ortak hâli */
.ak-akis { display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin:6px 0; }
.ak-akis span { background:#fff; border:1px solid var(--border); border-radius:999px;
  padding:3px 10px; font-size:12px; font-weight:600; }
.ak-akis i { font-style:normal; color:#64748b; }
/* durum sözlüğü satırı — rozetler res.locals.STATUSES / SA.TALEP'ten gelir */
.aciklama-kutu .ak-sozluk { display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin:8px 0; }
.aciklama-kutu .ak-sozluk-liste { display:block; }
.aciklama-kutu .ak-sozluk-liste ul { margin-top:4px; }
.aciklama-kutu .ak-ipucu { margin-top:8px; font-size:12px; color:var(--muted); }
.aciklama-kutu .ak-alt { margin:10px 0 0; font-size:12px; color:var(--muted); }
@media (max-width:640px) {
  details.aciklama-kutu { padding:10px 12px; font-size:12.5px; }
  .aciklama-kutu ol, .aciklama-kutu ul { margin-inline-start:16px; }
}
@media print { details.aciklama-kutu { display:none !important; } }
