/* MaliAjan CFO — yeni akış katmanı stilleri (2026-11-06)
   Giriş ekranı: karşılama + metrik kartları + analiz panelleri
   + yükleme paneli (2026-11-09 kullanıcı kararı — eskiden
   yalnızca yükleme paneli gösteriliyordu). Dashboard: KPI
   kartları, grafikler, göstergeler, yönetim özeti ve yapay
   zekâ yorumu. */

/* ---------- giriş ekranı (prototip görünümü) ---------- */
body.cfo-entry .upload-panel { max-width: 860px; margin-left: auto; margin-right: auto; padding: 26px 28px; }
/* v126: giriş iki aşamalı — özet ve yükleme ekranı.
   Özet (varsayılan): gizlilik bloğu en üstte, karşılama +
   metrik kartları + analiz panelleri görünür; yükleme paneli
   gizli. Yükleme ekranı (body.cfo-upload): kartlar gizli,
   yükleme paneli görünür; gizlilik bloğu panelin üstünde
   kalır (yükleme anında da geçerli). */
body.cfo-entry:not(.cfo-upload) .upload-panel { display: none !important; }
body.cfo-entry.cfo-upload .welcome-row,
body.cfo-entry.cfo-upload .metric-grid,
body.cfo-entry.cfo-upload .analytics-grid { display: none !important; }
/* "Ham mizan" başlığı kaldırıldı (2026-11-06) */
.upload-panel .upload-heading h2 { display: none; }
body.cfo-entry .upload-panel .file-grid.single { max-width: none; }
body.cfo-entry .upload-panel .file-grid .file-card { min-height: 150px; border: 2px dashed #7fb894; border-radius: 12px; background: #fbfdfc; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 22px; cursor: pointer; transition: border-color .15s, background .15s; }
body.cfo-entry .upload-panel .file-card strong { color: #1a1a1a; }
body.cfo-entry .upload-panel .file-card small { color: #4d4d4d; }
body.cfo-entry .upload-panel .file-card .file-name { color: #333; }
:root[data-theme="dark"] body.cfo-entry .upload-panel .file-grid .file-card { border-color: #47795d; background: #141b17; }
:root[data-theme="dark"] body.cfo-entry .upload-panel .file-card strong { color: #e8f0ea; }
:root[data-theme="dark"] body.cfo-entry .upload-panel .file-card small { color: #b9c6bd; }
:root[data-theme="dark"] body.cfo-entry .upload-panel .file-card .file-name { color: #d5e2d9; }
body.cfo-entry .upload-panel .file-grid .file-card:hover { border-color: var(--green); background: var(--green-pale); }
body.cfo-entry .upload-panel .file-grid .file-card.has-file { border-style: solid; border-color: var(--green); background: var(--green-pale); }
body.cfo-entry .upload-panel .submit-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
body.cfo-entry .upload-panel .submit-row .primary { min-height: 46px; padding: 0 26px; font-size: 15px; }

/* sektör çipleri — serbest metin girişi kaldırıldı (2026-11-06):
   "Sektör" etiketi + "İsteğe bağlı" yazısı + input gizli; yalnızca
   standart 10 çip görünür. Input DOM'da kalır (gizli), çipler
   sektörü oraya yazmaya devam eder — form ve yapay zekâ yorumu
   sektörü almaya devam eder. Kalıcı çözüm: input'u React
   kaynağından kaldırmak (VSCode tarafı). */
.sector-input-panel label { display: none; }
.cfo-sector-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.cfo-chip { border: 1px solid #d8d8d8; background: #fff; border-radius: 20px; padding: 7px 13px; font-size: 12px; color: #1a1a1a; cursor: pointer; }
.cfo-chip:hover { border-color: var(--green); }
.cfo-chip[aria-pressed="true"] { background: #eef7f1; border-color: #098e4d; color: #0f4f2a; font-weight: 600; }
:root[data-theme="dark"] .cfo-chip { background: #1c2b22; border-color: #3a4a40; color: #e8f0ea; }
:root[data-theme="dark"] .cfo-chip:hover { border-color: #2fae6e; }
:root[data-theme="dark"] .cfo-chip[aria-pressed="true"] { background: #123524; border-color: #2fae6e; color: #7ddba8; }

/* Mizan dönemi çipleri: sektör çiplerinin hemen altında.
   Etiket üst satırda, çipler alt satırda (kullanıcı isteği).
   Etiket → çip aralığı 23px: sektör başlığındaki görünür
   aralıkla eşit (27px). Sektör tarafı öğe kutusunda 26px
   (eyebrow alt kenar boşluğu 4px + panel ızgara aralığı 10px +
   çip kapsayıcısı üst kenar boşluğu 12px); dönem etiketi
   glifinin kutu altına uzaklığı ~4px olduğundan satır aralığı
   23px olunca görünür aralık 27px olur. Yatay aralık 8px
   (sektör çipleriyle aynı). */
.cfo-period-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 23px 8px; margin-top: 10px; }
.cfo-period-label { font-size: 12px; font-weight: 600; color: var(--muted); flex-basis: 100%; }

/* Sektör paneli açıklama metinleri kaldırıldı (kullanıcı isteği,
   2026-11-07): "Analiz işletme kimliği alınmadan yapılır..." ve
   "Kaynak mizan dosyası saklanmaz..." paragrafları gizli; öğeler
   DOM'da durur (çip yerleşimi bunlara dayanır). */
.sector-input-panel .sector-input-heading p:not(.eyebrow) { display: none; }
.sector-input-panel .sector-note { display: none; }

/* Örnek mizan (demo) — geçici, kaldırılacak */
.cfo-demo { margin-top: 16px; padding-top: 16px; border-top: 1px dashed var(--line); display: grid; gap: 8px; justify-items: start; }
.cfo-demo-btn { min-height: 42px; padding: 0 20px; font-size: 14px; }
.cfo-demo-btn:disabled { opacity: .6; cursor: wait; }
.cfo-demo-note { font-size: 12px; color: var(--muted); line-height: 1.55; margin: 0; }
.cfo-demo-badge { display: inline-block; background: #fdf3d0; border: 1px solid #d9a92c; color: #241c00; border-radius: 20px; padding: 3px 10px; font-size: 11px; font-weight: 700; letter-spacing: .04em; margin-left: 8px; vertical-align: middle; }
:root[data-theme="dark"] .cfo-demo-badge { background: #3a2f10; border-color: #8a6d1f; color: #f5e3a3; }

/* Üretim maliyeti stok payı (v79) — "Mizan dönemi" bloğunun içinde,
   dönem çiplerinden sonra; bloğun kendi satır aralığı (gap) ve
   hizası kullanılır, ayrı blok marjı/çizgisi yok */
.cfo-prodpct { display: grid; gap: 8px; justify-items: start; }
#cfo-periods .cfo-prodpct { flex-basis: 100%; }
.cfo-prodpct-label { font-size: 13px; font-weight: 600; }
/* v80: sektör panelindeki genel "label { display: none; }" kuralı
   (serbest sektör girişi kaldırılırken kondu, satır 34) bu etiketi
   de gizliyordu — #cfo-periods sektör panelinin içinde, % bloğu
   da onun içinde olduğu için. ID'li seçici (1,1,0) genel kuralı
   (0,1,1) yener; etiket görünür olur ve <label for> ile girişin
   erişilebilir adı da dolar. Sektör girişinin kendi etiketi
   gizli kalır (yalnız bu etiket açıldı). */
#cfo-periods .cfo-prodpct-label { display: block; }
.cfo-prodpct-input { font-size: 13px; width: 110px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); color: inherit; }
.cfo-prodpct-hint { font-size: 12px; color: var(--muted); line-height: 1.55; margin: 0; }

/* Giriş/kayıt ekranı tema düğmesi — uygulamanın kendi düğmesi
   yalnızca giriş yapılmış görünümde var; kimlik ekranında bu
   düğme aynı işi yapar (aynı localStorage anahtarı ve süre kuralı).
   Sağ üst köşede sabit durur; giriş yapılınca kalkar. */
/* v67 — giriş kartı genişletildi (kullanıcı isteği, 2026-11-07):
   uygulamanın 440px kartı 600px oldu; dar ekranda %100. */
.login-card { position: relative; width: min(100%, 600px); }
.cfo-auth-theme { position: absolute; top: 38px; right: 40px; z-index: 5; width: 34px; height: 34px; border-radius: 50%; border: 1px solid #a0bcac; background: var(--surface); color: #666; cursor: pointer; display: grid; place-items: center; transition: color .15s, border-color .15s, background .15s; }
/* D: koyu temada #666 simge koyu zeminde kaybolur. */
:root[data-theme="dark"] .cfo-auth-theme { color: #b6c0b9; }
.cfo-auth-theme:hover { background: var(--green-pale); color: var(--green-dark); border-color: #a0bcac; }
.cfo-auth-theme .icon { width: 17px; height: 17px; }
/* Giriş sonrası üst barda görünen uygulamanın kendi tema düğmesi de aynı kenarlık: */
.theme-toggle { border: 1px solid #a0bcac; }
.theme-toggle:hover { border-color: #a0bcac; }
.cfo-privacy-note { font-style: italic; font-weight: 400; color: var(--muted); font-size: 13px; line-height: 1.6; margin: 8px 0 0; max-width: 640px; }
/* Giriş kartındaki tanıtım cümlesi kaldırıldı (kullanıcı isteği):
   öğe DOM'da durur (gizlilik notunun dayanağı), yalnızca görünmez. */
.login-card p.muted { display: none; }

/* Gizlilik bloğu — analiz girdisi üstünde (3B görünüm: kalın koyu alt
   bordür + katmanlı gölge + üstte ince ışık çizgisi + hafif dikey geçiş;
   v16: katman kaldırıldı — kullanıcı beğenmedi, önceki gölge+bordür
   görünümüne dönüldü. Gece modunda alt bordür, sol bordürden daha
   açık renkte. DİKKAT: gece modunda --green #71c99d'ye (açık nane)
   döner, bu yüzden sol bordür zaten açık görünür; alt bordürün
   ondan da açık olması için #b8e6ca (gece --green-dark) kullanılır. */
.cfo-privacy { position: relative; background: linear-gradient(180deg, #f2faf5, var(--green-pale)); border: 1px solid #cfe6d8; border-left: 3px solid var(--green); border-bottom: 4px solid #0f4f2a; border-radius: 12px; padding: 16px 18px; margin-bottom: 14px; box-shadow: inset 0 1px 0 rgba(255,255,255,.7), 0 10px 24px rgba(15,79,42,.20), 0 3px 0 rgba(15,79,42,.12); }
:root[data-theme="dark"] .cfo-privacy { background: linear-gradient(180deg, #1d3a28, #14291d); border: 1px solid #3a7d54; border-left: 3px solid var(--green); border-bottom: 4px solid #b8e6ca; box-shadow: inset 0 1px 0 rgba(255,255,255,.10), 0 20px 40px rgba(0,0,0,.65), 0 8px 24px rgba(47,174,110,.35), 0 3px 0 rgba(0,0,0,.5); }
.cfo-privacy h2 { font-size: 15px; margin: 0 0 6px; }
.cfo-privacy p { font-size: 13px; line-height: 1.65; color: var(--ink); margin: 0; }
.cfo-privacy .eyebrow { margin-bottom: 6px; }

/* Dashboard açıkken orijinal sonuç paneli gizli (klasik görünüm
   düğmesiyle geri açılır) */
body.cfo-dash .results-panel { display: none; }
/* Rapor görünümünde yükleme bloğu ve gizlilik bloğu gizlenir —
   kullanıcı mizanı zaten yüklemiştir */
body.cfo-dash .upload-panel,
body.cfo-dash #cfo-privacy { display: none !important; }
body.cfo-dash .welcome-row,
body.cfo-dash .metric-grid,
body.cfo-dash .analytics-grid { display: none !important; }

#cfo-dash { display: grid; gap: 14px; margin-top: 14px; min-width: 0; width: 100%; }
#cfo-dash > * { min-width: 0; }
#cfo-dash p, #cfo-dash li, #cfo-dash h2, #cfo-dash h3, #cfo-dash span { overflow-wrap: break-word; word-break: normal; }
#cfo-dash .cfo-head { display: block; }
/* Başlık satırı: "Merhaba Yönetici" (sol) + düğmeler (sağ) aynı
   satırda, dikey ortalı hizalı. Dar ekranda düğmeler alt satıra
   iner (flex-wrap) — mobil kuralı (≤680px) orada sola dayar. */
#cfo-dash .cfo-head-row { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
#cfo-dash .cfo-head h2 { margin: 0; font-size: 22px; }
#cfo-dash .cfo-head .muted { margin: 6px 0 0; font-size: 12px; }
#cfo-dash .cfo-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; margin-left: auto; }
/* margin-left: auto — başlık + düğmeler tek satıra sığmayıp
   düğmeler alt satıra indiğinde de sağa dayalı kalır (katlanabilir
   geniş ekranda sola düşüp gönderde sağa kayıyordu). Dar telefonda
   (≤680px) flex-basis: 100% olduğu için etkisizdir, solda kalır. */

.cfo-kpi-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.cfo-kpi { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 16px; }
.cfo-kpi-label { font-size: 12px; color: var(--muted); margin: 0 0 8px; font-weight: 600; }
.cfo-kpi-value { font-size: 24px; font-weight: 700; color: var(--ink); margin: 0; }
/* Cari oran durumu: standart 1 — altındaysa kırmızı, üstündeyse yeşil */
.cfo-kpi-value.good { color: var(--green); }
.cfo-kpi-value.bad { color: #c62828; }
/* v99: Cari oran kartı — amber ton (1–1,5 arası) */
.cfo-kpi-value.warn { color: #b98a12; }
:root[data-theme="dark"] .cfo-kpi-value.warn { color: #e0b34a; }
:root[data-theme="dark"] .cfo-kpi-value.bad { color: #ff8a80; }
/* v91: değerin yanındaki küçük yüzde (yalnız Net Kar/Zarar kartı) —
   küçük + soluk, ton almaz. */
.cfo-kpi-value-pct { font-size: 14px; font-weight: 600; margin-left: 6px; color: var(--muted); }
/* "1'in altında — dikkat" notu: değerin kırmızısından daha sönük ton */
.cfo-kpi-sub.bad { color: #c98a7e; }
:root[data-theme="dark"] .cfo-kpi-sub.bad { color: #d99a8f; }
/* v91 düzeltme: Net Kar/Zarar kartında kullanıcı "tutarı sadece" dedi —
   zararda değer kırmızı olur ama alt metin soluk kırmızıya boyanmaz. */
.cfo-kpi-netresult .cfo-kpi-sub.bad { color: var(--muted); }
.cfo-kpi-sub { font-size: 12px; color: var(--muted); margin: 8px 0 0; line-height: 1.5; }
/* KPI kartı mini % çubuğu — değerin dayandığı bütüne göre doluluk */
.cfo-kpi-bar { display: flex; align-items: center; gap: 8px; margin-top: 12px; }
.cfo-kpi-bar-track { flex: 1; height: 7px; border-radius: 3px; background: var(--line); overflow: hidden; }
.cfo-kpi-bar-track.split { display: flex; gap: 4px; height: 7px; background: transparent; }
.cfo-kpi-bar-track.split .cfo-kpi-bar-fill { border-radius: 4px; }
.cfo-kpi-bar-fill { height: 7px; border-radius: 3px; background: var(--green); }
.cfo-kpi-bar-fill.bad { background: #c62828; }
.cfo-kpi-bar-fill.muted { background: var(--muted); }
:root[data-theme="dark"] .cfo-kpi-bar-fill.bad { background: #ff8a80; }
/* bad2: uzun vadeli borç — halka grafikteki koyu kırmızı (#8e2424) */
.cfo-kpi-bar-fill.bad2 { background: #8e2424; }
:root[data-theme="dark"] .cfo-kpi-bar-fill.bad2 { background: #c25a5a; }
.cfo-kpi-bar-pct { font-size: 11px; font-weight: 600; color: var(--muted); min-width: 38px; text-align: right; }
.cfo-kpi-bar-pct.split { min-width: 64px; }
.cfo-kpi-bar-pct .bad { color: #c62828; }
.cfo-kpi-bar-pct .muted { color: var(--muted); }
:root[data-theme="dark"] .cfo-kpi-bar-pct .bad { color: #ff8a80; }
.cfo-kpi-bar-pct .good { color: var(--green); }
.cfo-kpi-bar-pct .bad2 { color: #8e2424; }
:root[data-theme="dark"] .cfo-kpi-bar-pct .bad2 { color: #c25a5a; }
.cfo-kpi-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 4px; vertical-align: 1px; }
.cfo-kpi-dot.bad { background: #c62828; }
.cfo-kpi-dot.muted { background: var(--muted); }
:root[data-theme="dark"] .cfo-kpi-dot.bad { background: #ff8a80; }
.cfo-kpi-dot.good { background: var(--green); }
.cfo-kpi-dot.bad2 { background: #8e2424; }
:root[data-theme="dark"] .cfo-kpi-dot.bad2 { background: #c25a5a; }
.cfo-kpi-note { font-size: 11px; line-height: 1.5; color: var(--muted); margin-top: 10px; }

/* Rapor bölümleri: ana .panel kuralında dolgu (padding) yok — içerik
   kart kenarına sıfır çizgisinde yapışıyordu (2026-11-06). Normal
   kenar boşluğu: 18px. */
.cfo-section { padding: 18px; }
.cfo-section .panel-heading { margin-bottom: 4px; }

/* satıştan kâra çubukları */
.cfo-flow { display: grid; gap: 8px; margin-top: 12px; }
.cfo-flow-group { display: grid; gap: 8px; margin-top: 6px; }
.cfo-flow-group:first-child { margin-top: 0; }
.cfo-flow-group-title { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin: 0; }
.cfo-flow-row { display: grid; grid-template-columns: 170px 1fr 90px; align-items: center; gap: 10px; }
.cfo-flow-label { font-size: 12px; color: var(--ink); }
.cfo-flow-track { height: 10px; background: var(--canvas); border-radius: 5px; overflow: hidden; }
.cfo-flow-bar { display: block; height: 100%; background: var(--green); border-radius: 5px; }
.cfo-flow-row.g-in .cfo-flow-bar { background: var(--green); }
.cfo-flow-row.g-out .cfo-flow-bar { background: #c62828; }
:root[data-theme="dark"] .cfo-flow-row.g-out .cfo-flow-bar { background: #ff8a80; }
.cfo-flow-row.g-sum .cfo-flow-bar { background: var(--green-dark); }
.cfo-flow-row.g-sum .cfo-flow-track { height: 14px; }
:root[data-theme="dark"] .cfo-flow-row.g-sum .cfo-flow-bar { background: #2e9e62; }
.cfo-flow-row.g-sum .cfo-flow-label, .cfo-flow-row.g-sum .cfo-flow-value { font-weight: 700; }
/* v135: eksi toplam satırı (Faaliyet kârı / Net Kar/Zarar zarardaysa) kırmızı */
.cfo-flow-row.g-neg .cfo-flow-label, .cfo-flow-row.g-neg .cfo-flow-value { color: #c62828; }
.cfo-flow-row.g-neg .cfo-flow-bar { background: #c62828; }
:root[data-theme="dark"] .cfo-flow-row.g-neg .cfo-flow-label, :root[data-theme="dark"] .cfo-flow-row.g-neg .cfo-flow-value { color: #ff8a80; }
:root[data-theme="dark"] .cfo-flow-row.g-neg .cfo-flow-bar { background: #ff8a80; }
.cfo-flow-value { font-size: 12px; color: var(--ink); text-align: right; white-space: nowrap; }
.cfo-flow-toggle { display: inline-flex; gap: 2px; margin: 10px 0 4px; padding: 3px; background: var(--canvas); border: 1px solid var(--line); border-radius: 999px; }
.cfo-flow-toggle-btn { border: 0; background: transparent; color: var(--muted); font-size: 12px; font-weight: 600; line-height: 1; padding: 7px 14px; border-radius: 999px; cursor: pointer; }
.cfo-flow-toggle-btn.active { background: var(--surface); color: var(--ink); box-shadow: 0 1px 3px rgba(0, 0, 0, .14); }

/* pasta grafik */
.cfo-pie-wrap { display: flex; gap: 18px; align-items: center; justify-content: center; margin-top: 12px; flex-wrap: wrap; }
.cfo-pie { width: 180px; height: 180px; flex: none; }
.cfo-pie-pct { font-family: Switzer, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif; font-size: 15px; font-weight: 400; fill: #fff; }
.cfo-legend { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.cfo-legend li { display: flex; align-items: center; gap: 8px; font-size: 12px; }
.cfo-dot { width: 10px; height: 10px; border-radius: 50%; flex: none; }
.cfo-legend-label { color: var(--ink); }
.cfo-legend-value { color: var(--muted); margin-left: auto; padding-left: 12px; white-space: nowrap; }
/* pasta alt hesap detayı (v86): lejantın altında, ince ayraçla
   ayrılır; lejantla aynı 12px satır düzeni (etiket sol, tutar sağ). */
.cfo-pie-detail { list-style: none; margin: 12px 0 0; padding: 10px 0 0; border-top: 1px solid var(--line); display: grid; gap: 6px; }
.cfo-pie-detail li { display: flex; align-items: baseline; gap: 8px; font-size: 12px; }
.cfo-pie-detail-label { color: var(--ink); }
.cfo-pie-detail-amount { color: var(--muted); margin-left: auto; padding-left: 12px; white-space: nowrap; }

/* Net İşletme Sermayesi (v73) */
.cfo-nwc-chart-wrap, .cfo-asit-test-chart-wrap { margin-top: 12px; }
.cfo-nwc-chart, .cfo-asit-test-chart { width: 100%; max-width: 380px; height: auto; display: block; }
.cfo-nwc-std-line, .cfo-asit-test-std-line { stroke: #098e4d; stroke-width: 1.5; stroke-dasharray: 6 4; }
.cfo-nwc-std-label, .cfo-asit-test-std-label { font-size: 11px; fill: #098e4d; font-weight: 600; }
/* D: koyu temada #098e4d koyu zeminde kaybolur. */
:root[data-theme="dark"] .cfo-nwc-std-line, :root[data-theme="dark"] .cfo-asit-test-std-line { stroke: #2e9e62; }
:root[data-theme="dark"] .cfo-nwc-std-label, :root[data-theme="dark"] .cfo-asit-test-std-label { fill: #7ddba8; }
.cfo-nwc-value, .cfo-asit-test-value { font-size: 12px; font-weight: 700; fill: var(--ink); }
/* v74: etiketler artık çubukların üstünde başlık gibi — hafif kalın. */
.cfo-nwc-label, .cfo-asit-test-label { font-size: 11px; fill: var(--muted); font-weight: 600; }
.cfo-nwc-figs, .cfo-asit-test-figs { display: flex; flex-wrap: wrap; gap: 16px 28px; margin-top: 14px; }
.cfo-nwc-fig, .cfo-asit-test-fig { display: grid; gap: 2px; }
.cfo-nwc-fig-label, .cfo-asit-test-fig-label { font-size: 11px; color: var(--muted); font-weight: 600; }
.cfo-nwc-fig-value, .cfo-asit-test-fig-value { font-size: 15px; font-weight: 700; color: var(--ink); }
.cfo-nwc-gap, .cfo-asit-test-gap { font-size: 12px; line-height: 1.5; margin: 12px 0 0; font-weight: 600; }
.cfo-nwc-gap.bad, .cfo-asit-test-gap.bad { color: #c62828; }
/* v93: senaryo hamlelerini açıklayan satır (NİS + asit-test) —
   düğmenin altında, hamleler tutarlarıyla. */
.cfo-scenario-moves { font-size: 12px; color: var(--muted); margin: 8px 0 0; line-height: 1.5; }
.cfo-scenario-moves strong { color: var(--ink); }
.cfo-nwc-gap.good, .cfo-asit-test-gap.good { color: var(--green); }
:root[data-theme="dark"] .cfo-nwc-gap.bad, :root[data-theme="dark"] .cfo-asit-test-gap.bad { color: #ff8a80; }

/* v99: Cari oran kartı (görseldeki tasarım) — rozet + 3 bölgeli çubuk */
.cfo-cr-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.cfo-cr-head .cfo-kpi-label { margin: 0; }
.cfo-cr-badge { font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 999px; white-space: nowrap; }
.cfo-cr-badge.bad { color: #c62828; background: rgba(198, 40, 40, .10); }
.cfo-cr-badge.warn { color: #8a6d1b; background: rgba(185, 138, 18, .14); }
.cfo-cr-badge.good { color: #098e4d; background: rgba(9, 142, 77, .12); }
:root[data-theme="dark"] .cfo-cr-badge.bad { color: #ff8a80; background: rgba(255, 138, 128, .14); }
:root[data-theme="dark"] .cfo-cr-badge.warn { color: #e0b34a; background: rgba(224, 179, 74, .16); }
:root[data-theme="dark"] .cfo-cr-badge.good { color: #7ddba8; background: rgba(125, 219, 168, .14); }
.cfo-cr-zones { display: flex; gap: 4px; margin-top: 12px; height: 7px; position: relative; }
/* v101: çubukta mevcut değerin yerini gösteren dikey çizgi (çubuktan 3px taşar) */
.cfo-cr-marker { position: absolute; top: -3px; bottom: -3px; width: 2px; transform: translateX(-50%); background: var(--ink); border-radius: 1px; }
.cfo-cr-seg { border-radius: 5px; height: 7px; }
.cfo-cr-seg.bad { flex: 2; background: #c62828; }
.cfo-cr-seg.warn { flex: 1; background: #b98a12; }
.cfo-cr-seg.good { flex: 1; background: #098e4d; }
:root[data-theme="dark"] .cfo-cr-seg.bad { background: #ff8a80; }
:root[data-theme="dark"] .cfo-cr-seg.warn { background: #e0b34a; }
:root[data-theme="dark"] .cfo-cr-seg.good { background: #2e9e62; }
.cfo-cr-zone-labels { display: flex; margin-top: 6px; font-size: 11px; color: var(--muted); }
.cfo-cr-zone-labels span:nth-child(1) { flex: 2; text-align: left; }
.cfo-cr-zone-labels span:nth-child(2) { flex: 1; text-align: center; }
.cfo-cr-zone-labels span:nth-child(3) { flex: 1; text-align: right; }
/* v100: Borç/özkaynak kartı — çubuk oranları (yeşil 1, amber 2, kırmızı 3) */
.cfo-cr-zones.lev .cfo-cr-seg.good { flex: 1; }
.cfo-cr-zones.lev .cfo-cr-seg.warn { flex: 2; }
.cfo-cr-zones.lev .cfo-cr-seg.bad { flex: 3; }
.cfo-cr-zone-labels.lev span:nth-child(1) { flex: 1; }
.cfo-cr-zone-labels.lev span:nth-child(2) { flex: 2; }
.cfo-cr-zone-labels.lev span:nth-child(3) { flex: 3; }
.cfo-cr-target { font-size: 12px; color: var(--muted); margin: 8px 0 0; }

/* Satıcılar (320) — Göstergeler bölümünde tedarikçilere borç + ilk 5.
   v69: özet kartı stiline alındı (Bilanço dengesi gibi blok) —
   üst çizgi yerine tam kart (zemin + kenarlık + radius + iç boşluk). */
.cfo-suppliers { margin-top: 16px; background: var(--canvas); border: 1px solid var(--line); border-radius: 8px; padding: 14px; }
.cfo-suppliers h3 { font-size: 13px; margin: 0 0 4px; color: var(--ink); }
.cfo-suppliers-total { font-size: 16px; font-weight: 700; color: var(--ink); margin: 0 0 10px; }
.cfo-top-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.cfo-top-list li { display: grid; grid-template-columns: 64px 1fr auto; gap: 10px; align-items: baseline; font-size: 12px; }
.cfo-top-code { color: var(--muted); }
.cfo-top-name { color: var(--ink); overflow-wrap: break-word; }
.cfo-top-amount { font-weight: 700; color: var(--ink); text-align: right; white-space: nowrap; }
.cfo-suppliers-hint { font-size: 12px; color: var(--muted); line-height: 1.55; margin: 0; }

/* Finansal Oranlar — Göstergeler bölümünde gruplu oran tablosu;
   grup başlıkları .cfo-flow-group-title dilinde, satırlar
   "170px 80px 1fr" (etiket | değer | not) */
.cfo-ratios { margin-top: 16px; border-top: 1px solid var(--line); padding-top: 14px; }
.cfo-ratios h3 { font-size: 13px; margin: 0 0 10px; color: var(--ink); }
.cfo-ratios-group { display: grid; gap: 8px; }
.cfo-ratios-group + .cfo-ratios-group { margin-top: 12px; }
.cfo-ratio-row { display: grid; grid-template-columns: 170px 80px 1fr; align-items: baseline; gap: 10px; border-bottom: 1px solid var(--line); padding-bottom: 10px; }
.cfo-ratio-label { font-size: 12px; color: var(--ink); }
.cfo-ratio-value { font-size: 12px; font-weight: 700; color: var(--ink); text-align: right; white-space: nowrap; }
.cfo-ratio-note { font-size: 12px; color: var(--muted); line-height: 1.5; }
.cfo-ratio-note.red { color: #c62828; }
:root[data-theme="dark"] .cfo-ratio-note.red { color: #ff8a80; }

/* risk şeridi */
.cfo-risk { background: #fdf3d0; border: 1px solid #d9a92c; border-left: 4px solid #b98a12; border-radius: 10px; padding: 14px 16px; font-size: 13px; font-weight: 500; line-height: 1.6; color: #241c00; overflow-wrap: break-word; }
.cfo-risk strong { color: #241c00; }

/* yönetim özeti — tam metin */
.cfo-summary-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin-top: 12px; }
.cfo-summary-card { background: var(--canvas); border: 1px solid var(--line); border-radius: 8px; padding: 14px; }
.cfo-summary-card h3 { font-size: 13px; margin: 0 0 8px; }
.cfo-summary-card p { font-size: 12px; line-height: 1.65; color: var(--ink); margin: 6px 0 0; }
.cfo-summary-figure { font-weight: 700; }
/* Borçlar ve ödeme gücü kartı: kısa vadeli toplamın altındaki numaralı döküm */
.cfo-debt-list { margin: 2px 0 8px 22px; padding: 0; }
.cfo-debt-list li { font-size: 12px; line-height: 1.65; color: var(--ink); margin: 2px 0; }

.cfo-classic-toggle { justify-self: start; }

/* yapay zekâ yorumu (ai-commentary.css ile aynı dil) */
#cfo-dash .ai-commentary-body { display: grid; gap: 14px; margin-top: 12px; }
#cfo-dash .ai-lead { font-size: 15px; line-height: 1.6; font-weight: 600; color: var(--ink); border-left: 3px solid var(--green); padding-left: 12px; }
#cfo-dash .ai-section h3 { font-size: 13px; margin: 0 0 5px; color: var(--ink); }
#cfo-dash .ai-section p { font-size: 13px; line-height: 1.65; color: var(--ink); margin: 0; }
/* v82 — kredi kararı rozeti: başlığın altında; olumlu yeşil, olumsuz kırmızı */
#cfo-dash .cfo-kredi-karar { display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: .03em; padding: 4px 10px; border-radius: 999px; margin: 2px 0 6px; }
#cfo-dash .cfo-kredi-karar.good { color: #098e4d; background: rgba(9, 142, 77, .12); }
#cfo-dash .cfo-kredi-karar.bad { color: #c62828; background: rgba(198, 40, 40, .10); }
:root[data-theme="dark"] #cfo-dash .cfo-kredi-karar.good { color: #7ddba8; background: rgba(125, 219, 168, .14); }
:root[data-theme="dark"] #cfo-dash .cfo-kredi-karar.bad { color: #ff8a80; background: rgba(255, 138, 128, .14); }
/* v83: kredi rozeti baslikla ayni satirda (flex satir) — v98: dar
   görünümde (886px) rozet alta düşüyordu, çünkü flex-wrap: wrap
   başlık ~600px olunca rozeti kendi satırına atıyordu. Wrap
   kapatıldı; başlık metni sarar, rozet ilk satırda kalır. */
#cfo-dash .cfo-kredi-head { display: flex; align-items: center; gap: 10px; flex-wrap: nowrap; }
#cfo-dash .cfo-kredi-head h3 { margin: 0; min-width: 0; }
#cfo-dash .cfo-kredi-head .cfo-kredi-karar { margin: 0; flex: none; white-space: nowrap; }
#cfo-dash .ai-watch { margin: 0; padding-left: 18px; display: grid; gap: 6px; }
#cfo-dash .ai-watch li { font-size: 13px; line-height: 1.6; color: var(--ink); }
#cfo-dash .ai-meta { font-size: 11px; color: var(--muted); line-height: 1.55; border-top: 1px solid var(--line); padding-top: 10px; }
#cfo-dash .ai-loading, #cfo-dash .ai-error { font-size: 13px; line-height: 1.6; color: var(--muted); }
#cfo-dash .ai-retry { margin-top: 10px; }

@media (max-width: 900px) {
  .cfo-kpi-grid { grid-template-columns: repeat(2, 1fr); }
  .cfo-summary-grid { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .cfo-flow-row { grid-template-columns: 120px 1fr 74px; }
  /* oran satırları: etiket + değer üstte, not alta sarılır */
  .cfo-ratio-row { grid-template-columns: 1fr auto; }
  .cfo-ratio-note { grid-column: 1 / -1; }
  #cfo-dash .cfo-head h2 { font-size: 19px; }
  .cfo-kpi-value { font-size: 20px; }
}

/* v54 — rapor 6 gruba bölündü (kullanıcı isteği, 2026-11-07):
   1 Satış performansı, 2 Kaynak durumu, 3 Mali dayanıklılık,
   4 Kısa vadede ne olacak, 5 TDHP uygunluğu, 6 Formüller ve yorum.
   Grup başlıklarında numara var; 1. grupta yalnız Net satışlar +
   Net Kar/Zarar KPI kartı (Brüt/Faaliyet kârı kartları kalktı). */
.cfo-kpi-grid.cols-2 { grid-template-columns: repeat(2, 1fr); }
.cfo-kpi-grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
.cfo-section > .cfo-kpi-grid { margin-top: 12px; }
.cfo-subblock { margin-top: 18px; }
/* v70 — karta alınan alt bölümler (Satıştan kâra, Göstergeler):
   KPI kartı stiliyle blok görünümü (pastalarla aynı). */
.cfo-subblock.cfo-block-card { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 16px; }
/* v82 — kredi bloğu üst blok (Borçlar ve ödeme gücü özet kartı) ile aynı zemin */
.cfo-subblock.cfo-block-card.ai-commentary-body { background: var(--canvas); }
.cfo-subblock > h3 { font-size: 13px; margin: 0 0 10px; color: var(--ink); }
.cfo-summary-grid.cols-1 { grid-template-columns: 1fr; }
.cfo-risk { margin-top: 14px; }
/* vade günleri şeridi (4. grup) */
.cfo-days { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.cfo-day { background: var(--canvas); border: 1px solid var(--line); border-radius: 8px; padding: 12px 14px; }
.cfo-day-label { font-size: 12px; color: var(--muted); margin: 0 0 6px; }
.cfo-day-value { font-size: 16px; font-weight: 700; color: var(--ink); margin: 0; }
/* TDHP uygunluğu (5. grup) */
.cfo-tdhp-list { display: grid; gap: 12px; margin-top: 12px; }
.cfo-tdhp-item { display: grid; grid-template-columns: 22px 1fr; gap: 10px; align-items: start; }
.cfo-tdhp-icon { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-size: 12px; font-weight: 700; }
.cfo-tdhp-icon.ok { background: #e6f4ea; color: #098e4d; }
.cfo-tdhp-icon.uyari { background: #fdf3d0; color: #8a6d1f; }
.cfo-tdhp-icon.bilgi { background: #e8eef4; color: #4a6b8a; }
:root[data-theme="dark"] .cfo-tdhp-icon.ok { background: #123524; color: #7ddba8; }
:root[data-theme="dark"] .cfo-tdhp-icon.uyari { background: #3a2f10; color: #f5e3a3; }
:root[data-theme="dark"] .cfo-tdhp-icon.bilgi { background: #1c2b3a; color: #9db8d2; }
.cfo-tdhp-title { font-size: 13px; font-weight: 700; color: var(--ink); margin: 2px 0 2px; }
.cfo-tdhp-detail { font-size: 12px; line-height: 1.6; color: var(--muted); margin: 0; }
.cfo-tdhp-note { margin-top: 14px; }
.cfo-doc-list { margin: 8px 0 0; padding-left: 18px; font-size: 13px; line-height: 1.7; color: var(--muted); }
.cfo-doc-list li { margin: 2px 0; }
/* oran satırı formülü (6. grup) — etiketin altında küçük */
.cfo-ratio-label-cell { display: grid; gap: 2px; }
.cfo-ratio-formula { font-size: 11px; color: var(--muted); line-height: 1.45; }
@media (max-width: 900px) {
  .cfo-kpi-grid.cols-3 { grid-template-columns: repeat(2, 1fr); }
  .cfo-days { grid-template-columns: repeat(2, 1fr); }
}

/* v63 — sol menüde rapor grupları (kullanıcı isteği, 2026-11-07):
   ana menünün altında, yalnız rapor görünümünde. Grup linkleri
   .nav-link değil (.cfo-group-link) — tidyMenu gizlemesin diye. */
.cfo-group-nav-wrap { margin-top: 18px; }
.cfo-group-nav { gap: 3px; display: grid; }
.cfo-group-link { color: #666; border-radius: 6px; align-items: center; gap: 9px; min-height: 40px; padding: 0 10px; font-size: 13px; font-weight: 550; text-decoration: none; transition: background .15s, color .15s; display: flex; }
.cfo-group-link:hover { color: var(--ink); background: #f7f7f7; }
.cfo-group-link.active { color: var(--green-dark); background: #f3f7f4; font-weight: 650; }
.cfo-group-num { color: var(--subtle); flex: none; width: 16px; text-align: center; font-size: 12px; font-weight: 650; }
.cfo-group-link.active .cfo-group-num { color: var(--green); }
:root[data-theme="dark"] .cfo-group-link { color: #b6c0b9; }
:root[data-theme="dark"] .cfo-group-link:hover { color: var(--ink); background: #1d2821; }
:root[data-theme="dark"] .cfo-group-link.active { color: #b8e6ca; background: #20382b; }
/* grup bölümleri: menüden atlayınca üst kenara yapışmasın */
.cfo-section { scroll-margin-top: 16px; }
@media (max-width: 900px) {
  /* dar kenar çubuğu: yalnız numara görünür, ortalanır */
  .cfo-group-link { justify-content: center; padding: 0; min-height: 38px; }
  .cfo-group-name { display: none; }
  .cfo-group-num { width: auto; font-size: 12px; }
}
@media (max-width: 680px) {
  /* üst çubukta grup menüsü gizlenir */
  .cfo-group-nav-wrap { display: none; }
}

/* v80 — Kurallar paneli (yalnız yönetici): ayrı görünüm; panel
   kart diliyle (cfo-block-card) uyumlu. v126: sol menüdeki
   "Kurallar" bağlantısı kaldırıldı (profil menüsünde var),
   .cfo-rules-nav* stilleri de kaldırıldı. */
/* kurallar görünümü: giriş ve rapor içeriği gizlenir, panel görünür */
body.cfo-rules .welcome-row,
body.cfo-rules .metric-grid,
body.cfo-rules .analytics-grid,
body.cfo-rules #cfo-dash,
body.cfo-rules .results-panel,
body.cfo-rules .upload-panel,
body.cfo-rules #cfo-privacy { display: none !important; }
.cfo-rules-panel { max-width: 860px; margin: 0 auto; padding: 26px 28px; }
.cfo-rules-head { display: flex; align-items: center; gap: 14px; }
.cfo-rules-title { font-size: 20px; margin: 0; }
.cfo-rules-back { border: 1px solid var(--line); background: var(--surface); color: var(--ink); border-radius: 8px; padding: 7px 12px; font-size: 13px; cursor: pointer; }
.cfo-rules-back:hover { border-color: var(--green); }
.cfo-rules-intro { color: var(--muted); font-size: 14px; line-height: 1.55; margin: 12px 0 0; }
.cfo-rules-msg { min-height: 20px; font-size: 13px; color: var(--green-dark); margin: 10px 0 0; }
.cfo-rules-msg.error { color: #c62828; }
:root[data-theme="dark"] .cfo-rules-msg.error { color: #ff8a80; }
.cfo-rules-denied { color: #c62828; font-size: 14px; margin-top: 16px; }
:root[data-theme="dark"] .cfo-rules-denied { color: #ff8a80; }
.cfo-rules-empty { color: var(--muted); font-size: 14px; margin-top: 16px; }
.cfo-rule { border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px; margin-top: 12px; background: var(--surface); }
.cfo-rule-top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cfo-rule-title { font-size: 14px; }
.cfo-rule-badge { font-size: 11px; font-weight: 650; color: var(--green-dark); background: #eef7f1; border-radius: 20px; padding: 3px 9px; }
:root[data-theme="dark"] .cfo-rule-badge { background: #123524; color: #7ddba8; }
.cfo-rule-state { font-size: 11px; color: var(--muted); }
.cfo-rule-state.off { color: #c62828; }
:root[data-theme="dark"] .cfo-rule-state.off { color: #ff8a80; }
.cfo-rule-text { font-size: 13px; color: var(--muted); line-height: 1.55; margin: 8px 0 0; }
.cfo-rule-actions { display: flex; gap: 8px; margin-top: 10px; }
.cfo-rule-edit, .cfo-rule-delete, .cfo-rules-save, .cfo-rules-cancel { border: 1px solid var(--line); background: var(--surface); color: var(--ink); border-radius: 8px; padding: 6px 12px; font-size: 13px; cursor: pointer; }
.cfo-rule-edit:hover, .cfo-rules-save:hover, .cfo-rules-cancel:hover { border-color: var(--green); }
.cfo-rule-delete:hover { border-color: #c62828; color: #c62828; }
/* D: koyu temada #c62828 okunmaz. */
:root[data-theme="dark"] .cfo-rule-delete:hover { border-color: #ff8a80; color: #ff8a80; }
.cfo-rules-form { border: 1px solid var(--line); border-radius: 10px; padding: 18px; margin-top: 18px; background: var(--surface); }
.cfo-rules-form-title { font-size: 15px; margin: 0 0 14px; }
.cfo-rules-label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 12px; }
.cfo-rules-label span { display: block; margin-bottom: 5px; }
.cfo-rule-title-input, .cfo-rule-text-input, .cfo-rule-scope, .cfo-rule-sector { width: 100%; box-sizing: border-box; border: 1px solid var(--line); border-radius: 8px; padding: 9px 11px; font-size: 14px; font-family: inherit; background: var(--canvas); color: var(--ink); }
.cfo-rule-text-input { resize: vertical; min-height: 110px; line-height: 1.5; }
.cfo-rule-active-label { display: flex; align-items: center; gap: 8px; font-weight: 500; }
.cfo-rule-active-label span { margin-bottom: 0; }
.cfo-rule-active { width: 16px; height: 16px; accent-color: var(--green); }
.cfo-rules-save { background: var(--green); border-color: var(--green); color: #fff; font-weight: 600; margin-right: 8px; }
.cfo-rules-save:hover { border-color: var(--green-dark); }

/* v64 — kaynak + aktif pastaları yan yana (kullanıcı isteği, 2026-11-07):
   bilançonun iki yanı aynı pasta stiliyle; dar ekranda alt alta.
   v68 — pastalar diğer bloklar gibi kart içinde (KPI kartı stili):
   üst boşluk ızgaraya taşındı, kartın kendi margin-top'u sıfırlandı
   (dar ekranda iki kart arası yalnız ızgara boşluğu olur). */
.cfo-pies { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px; margin-top: 18px; }
.cfo-pies .cfo-subblock { min-width: 0; margin-top: 0; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 16px; }
@media (max-width: 900px) {
  .cfo-pies { grid-template-columns: 1fr; }
}

/* v66 — 7/A gider türleri yatay çubuk grafiği (3B grafiğin yerine):
   akış tablosundaki çubuk diliyle aynı; gider rengi kırmızı. */
.cfo-exp { display: grid; gap: 8px; margin-top: 12px; }
.cfo-exp-row { display: grid; grid-template-columns: 200px 1fr 130px; align-items: center; gap: 10px; }
.cfo-exp-label { font-size: 12px; color: var(--ink); }
.cfo-exp-track { height: 10px; background: var(--canvas); border-radius: 5px; overflow: hidden; }
.cfo-exp-bar { display: block; height: 100%; background: #c62828; border-radius: 5px; }
:root[data-theme="dark"] .cfo-exp-bar { background: #ff8a80; }
.cfo-exp-value { font-size: 12px; color: var(--ink); text-align: right; white-space: nowrap; }
@media (max-width: 680px) {
  .cfo-exp-row { grid-template-columns: 130px 1fr 100px; }
}

/* ---------- kota ve kredi paketi (v126) ---------- */
.cfo-quota-pill { border: 1px solid var(--line); background: var(--surface); color: var(--muted); border-radius: 20px; padding: 6px 11px; font-size: 12px; font-weight: 650; cursor: pointer; white-space: nowrap; }
.cfo-quota-pill:hover { border-color: var(--green); color: var(--green-dark); }
.cfo-quota-notice { max-width: 860px; margin: 0 auto 14px; background: var(--green-pale); border: 1px solid #cfe6d8; border-radius: 10px; padding: 13px 16px; font-size: 13px; line-height: 1.55; color: var(--ink); display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.cfo-quota-notice span { flex: 1; min-width: 200px; }
.cfo-quota-subscribe-btn { border: 1px solid var(--ink); background: var(--ink); color: #fff; border-radius: 7px; padding: 8px 14px; font-size: 13px; font-weight: 650; cursor: pointer; flex: none; }
.cfo-quota-subscribe-btn:hover { background: var(--green-dark); border-color: var(--green-dark); }
/* Raporlar görünümünde kota bildirimi gizlenir */
body.cfo-dash #cfo-quota-notice,
body.cfo-rules #cfo-quota-notice,
body.cfo-reports #cfo-quota-notice { display: none; }
/* Raporlar görünümünde giriş ve rapor içeriği gizlenir, yalnız
   Raporlarım paneli görünür. v126 düzeltme: eskiden bu seçiciler
   panel stiliyle aynı bildirimde birleşmişti, hiçbir şey
   gizlenmiyordu — giriş ekranı üstte kalıyordu. */
body.cfo-reports .welcome-row,
body.cfo-reports .metric-grid,
body.cfo-reports .analytics-grid,
body.cfo-reports #cfo-dash,
body.cfo-reports .results-panel,
body.cfo-reports .upload-panel,
body.cfo-reports #cfo-privacy { display: none !important; }
.cfo-reports-panel { max-width: 860px; margin: 0 auto; padding: 26px 28px; }
.cfo-reports-head { display: flex; align-items: center; gap: 14px; }
.cfo-reports-title { font-size: 20px; margin: 0; }
.cfo-reports-back { border: 1px solid var(--line); background: var(--surface); color: var(--ink); border-radius: 8px; padding: 7px 12px; font-size: 13px; cursor: pointer; }
.cfo-reports-back:hover { border-color: var(--green); }
.cfo-reports-intro { color: var(--muted); font-size: 14px; line-height: 1.55; margin: 12px 0 0; }
.cfo-reports-list { margin-top: 16px; display: grid; gap: 12px; }
.cfo-report { border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px; background: var(--surface); }
.cfo-report-top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cfo-report-title { font-size: 14px; }
.cfo-report-badge { font-size: 11px; font-weight: 650; color: var(--green-dark); background: #eef7f1; border-radius: 20px; padding: 3px 9px; }
:root[data-theme="dark"] .cfo-report-badge { background: #123524; color: #7ddba8; }
.cfo-report-meta { font-size: 13px; color: var(--muted); margin: 8px 0 0; }
.cfo-report-actions { display: flex; gap: 8px; margin-top: 10px; }
.cfo-report-pdf { border: 1px solid var(--line); background: var(--surface); color: var(--ink); border-radius: 8px; padding: 6px 12px; font-size: 13px; text-decoration: none; display: inline-flex; align-items: center; }
.cfo-report-pdf:hover { border-color: var(--green); color: var(--green-dark); }
.cfo-report-open { border: 1px solid var(--line); background: var(--surface); color: var(--ink); border-radius: 8px; padding: 6px 12px; font-size: 13px; cursor: pointer; }
.cfo-report-open:hover { border-color: var(--green); }
/* E: Raporlarım satırındaki E-posta düğmesi. */
.cfo-report-email { border: 1px solid var(--line); background: var(--surface); color: var(--ink); border-radius: 8px; padding: 6px 12px; font-size: 13px; cursor: pointer; }
.cfo-report-email:hover { border-color: var(--green); }
.cfo-report-email:disabled { opacity: .55; cursor: default; }
.cfo-report-email.sent { color: var(--green-dark); border-color: var(--green); }
.cfo-report-email.error { color: #c62828; border-color: #c62828; }
:root[data-theme="dark"] .cfo-report-email.sent { color: #7ddba8; }
:root[data-theme="dark"] .cfo-report-email.error { color: #ff8a80; border-color: #ff8a80; }
.cfo-reports-empty { color: var(--muted); font-size: 14px; }
.cfo-subscription-msg { min-height: 20px; font-size: 13px; color: var(--green-dark); margin: 10px 0 0; }
/* v126 kredi paketleri (ana uygulama Statü popup'ıyla aynı dil):
   paket kartları + ödeme yöntemi kartları + banka paneli. */
.cfo-package-list { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.cfo-package-card { border: 1px solid var(--line); border-radius: 10px; padding: 14px; display: grid; gap: 4px; background: var(--surface); }
.cfo-package-name { font-size: 14px; font-weight: 600; color: var(--ink); }
.cfo-package-price { font-size: 16px; font-weight: 700; color: var(--ink); }
.cfo-package-select { border: 0; background: var(--green-pale); color: var(--green-dark); border-radius: 7px; padding: 9px 12px; font-size: 13px; font-weight: 700; cursor: pointer; margin-top: 8px; }
.cfo-package-select:hover { background: #d9ecdf; }
/* D: koyu temada #d9ecdf açık zemin + açık metin (#b8e6ca) = okunmaz. */
:root[data-theme="dark"] .cfo-package-select:hover { background: #2a4a38; }
.cfo-package-back { border: 1px solid var(--line); background: var(--surface); color: var(--ink); border-radius: 7px; padding: 8px 14px; font-size: 13px; font-weight: 600; cursor: pointer; margin-top: 12px; }
.cfo-package-back:hover { border-color: var(--green); color: var(--green-dark); }
.cfo-package-selected { margin-top: 12px; padding: 10px 12px; border: 1px solid var(--line); border-left: 3px solid var(--green); border-radius: 8px; background: var(--green-pale); font-size: 14px; font-weight: 600; color: var(--ink); }
.cfo-package-payment .cfo-dialog-sec { margin-top: 16px; margin-bottom: 6px; }
/* v126: "Ek rapor kotası" başlığı ile alt metin arası çok
   sıkışıktı (.cfo-dialog-sec -4px + .cfo-dialog-help -7px
   negatif kenar boşlukları birbirine çekiyordu) — başlığa
   6px alt, alt metne 0 üst boşluk. */
.cfo-status-plan .cfo-dialog-sec { margin-bottom: 6px; }
.cfo-status-plan .cfo-dialog-help { margin-top: 0; }
.cfo-subscription-methods { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 12px; }
.cfo-subscription-method { border: 1px solid var(--line); background: var(--surface); color: var(--ink); border-radius: 10px; padding: 14px; font-size: 13px; font-weight: 600; cursor: pointer; display: grid; gap: 6px; text-align: left; }
.cfo-subscription-method.selected { border-color: var(--green); background: var(--green-pale); color: var(--green-dark); }
.cfo-subscription-method.soon { opacity: .55; cursor: not-allowed; }
.cfo-method-label { font-size: 14px; font-weight: 700; }
.cfo-method-sub { font-size: 12px; font-weight: 500; color: var(--muted); line-height: 1.4; }
.cfo-bank-panel { border: 1px solid var(--line); border-radius: 10px; padding: 16px; margin-top: 14px; background: var(--surface); }
.cfo-bank-panel .cfo-dialog-sec { margin-top: 0; }
.cfo-bank-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 12px; }
.cfo-bank-field { display: grid; gap: 2px; }
.cfo-bank-field-label { font-size: 12px; color: var(--muted); }
.cfo-bank-field-value { font-size: 14px; font-weight: 600; color: var(--ink); overflow-wrap: anywhere; }
.cfo-bank-label { display: grid; gap: 6px; font-size: 12px; font-weight: 600; margin-top: 14px; }
.cfo-bank-label span { color: var(--ink); }
.cfo-bank-date, .cfo-bank-note { border: 1px solid var(--line); background: var(--surface); width: 100%; min-height: 42px; color: var(--ink); font: inherit; border-radius: 6px; padding: 8px 10px; font-weight: 450; }
.cfo-bank-date:focus, .cfo-bank-note:focus { border-color: var(--green); outline: 2px solid #098e4d30; }
@media (max-width: 680px) {
  .cfo-package-list { grid-template-columns: 1fr; }
  .cfo-subscription-methods { grid-template-columns: 1fr; }
  .cfo-bank-grid { grid-template-columns: 1fr; }
}
.cfo-subscription-submit { border: 1px solid var(--ink); background: var(--ink); color: #fff; border-radius: 7px; padding: 11px 18px; font-size: 14px; font-weight: 650; cursor: pointer; margin-top: 16px; }
.cfo-subscription-submit:hover { background: var(--green-dark); border-color: var(--green-dark); }
.cfo-subscription-submit:disabled { opacity: .58; cursor: wait; }
@media (max-width: 680px) {
  .cfo-quota-pill { font-size: 11px; padding: 5px 9px; }
  .cfo-reports-panel { padding: 20px 16px; }
}

/* ---------- yönetici: ödeme talepleri (v126) ---------- */
body.cfo-sub-admin .welcome-row,
body.cfo-sub-admin .metric-grid,
body.cfo-sub-admin .analytics-grid,
body.cfo-sub-admin #cfo-dash,
body.cfo-sub-admin .results-panel,
body.cfo-sub-admin .upload-panel,
body.cfo-sub-admin #cfo-privacy { display: none !important; }
.cfo-sub-admin-panel { max-width: 860px; margin: 0 auto; padding: 26px 28px; }
.cfo-sub-admin-head { display: flex; align-items: center; gap: 14px; }
.cfo-sub-admin-title { font-size: 20px; margin: 0; }
.cfo-sub-admin-back { border: 1px solid var(--line); background: var(--surface); color: var(--ink); border-radius: 8px; padding: 7px 12px; font-size: 13px; cursor: pointer; }
.cfo-sub-admin-back:hover { border-color: var(--green); }
.cfo-sub-admin-intro { color: var(--muted); font-size: 14px; line-height: 1.55; margin: 12px 0 0; }
.cfo-sub-admin-msg { min-height: 20px; font-size: 13px; color: var(--green-dark); margin: 10px 0 0; }
.cfo-sub-admin-msg.error { color: #c62828; }
:root[data-theme="dark"] .cfo-sub-admin-msg.error { color: #ff8a80; }
.cfo-sub-admin-sec { font-size: 15px; margin: 22px 0 0; }
.cfo-sub-admin-requests { margin-top: 12px; display: grid; gap: 12px; }
.cfo-sub-admin-req { border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px; background: var(--surface); }
.cfo-sub-admin-req.done { opacity: .75; }
.cfo-sub-admin-req-top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cfo-sub-admin-req-user { font-size: 14px; }
.cfo-sub-admin-req-badge { font-size: 11px; font-weight: 650; color: var(--green-dark); background: #eef7f1; border-radius: 20px; padding: 3px 9px; }
:root[data-theme="dark"] .cfo-sub-admin-req-badge { background: #123524; color: #7ddba8; }
.cfo-sub-admin-req-state { font-size: 11px; color: var(--muted); }
.cfo-sub-admin-req-state.off { color: #c62828; }
:root[data-theme="dark"] .cfo-sub-admin-req-state.off { color: #ff8a80; }
.cfo-sub-admin-req-meta { font-size: 13px; color: var(--muted); margin: 8px 0 0; }
.cfo-sub-admin-req-actions { display: flex; gap: 8px; margin-top: 10px; }
.cfo-sub-admin-confirm { border: 1px solid var(--ink); background: var(--ink); color: #fff; border-radius: 8px; padding: 6px 12px; font-size: 13px; cursor: pointer; }
.cfo-sub-admin-confirm:hover { background: var(--green-dark); border-color: var(--green-dark); }
.cfo-sub-admin-reject { border: 1px solid var(--line); background: var(--surface); color: var(--ink); border-radius: 8px; padding: 6px 12px; font-size: 13px; cursor: pointer; }
.cfo-sub-admin-reject:hover { border-color: #c62828; color: #c62828; }
/* D: koyu temada #c62828 okunmaz. */
:root[data-theme="dark"] .cfo-sub-admin-reject:hover { border-color: #ff8a80; color: #ff8a80; }
.cfo-sub-admin-empty { color: var(--muted); font-size: 14px; }
@media (max-width: 680px) {
  .cfo-sub-admin-panel { padding: 20px 16px; }
}

/* v117: yönetici paneli — kullanıcı özeti + kullanıcı tablosu + kota formu. */
.cfo-admin-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 16px; }
.cfo-admin-stat { border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; background: var(--surface); }
.cfo-admin-stat-label { display: block; font-size: 12px; color: var(--muted); }
.cfo-admin-stat-value { display: block; font-size: 20px; margin-top: 4px; }
.cfo-admin-table-wrap { overflow-x: auto; margin-top: 12px; }
.cfo-admin-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.cfo-admin-table th { text-align: left; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); padding: 8px 10px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.cfo-admin-table td { padding: 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
.cfo-admin-table tr:last-child td { border-bottom: none; }
.cfo-admin-num { text-align: center; }
.cfo-admin-sub { font-size: 12px; color: var(--muted); margin-top: 2px; }
.cfo-admin-quota-badge { display: inline-block; font-size: 11px; font-weight: 650; color: var(--muted); background: #f0f0f0; border-radius: 20px; padding: 3px 9px; }
.cfo-admin-quota-badge.on { color: var(--green-dark); background: #eef7f1; }
:root[data-theme="dark"] .cfo-admin-quota-badge { background: #2a2a2a; }
:root[data-theme="dark"] .cfo-admin-quota-badge.on { background: #123524; color: #7ddba8; }
.cfo-admin-quota-form { display: flex; gap: 6px; align-items: center; }
.cfo-admin-quota-months { width: 52px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); color: var(--ink); padding: 6px 8px; font-size: 13px; }
.cfo-admin-quota-grant { border: 1px solid var(--ink); background: var(--ink); color: #fff; border-radius: 8px; padding: 6px 10px; font-size: 12px; cursor: pointer; white-space: nowrap; }
.cfo-admin-quota-grant:hover { background: var(--green-dark); border-color: var(--green-dark); }
.cfo-admin-quota-grant:disabled { opacity: .55; cursor: default; }
@media (max-width: 700px) {
  .cfo-admin-summary { grid-template-columns: repeat(2, 1fr); }
}
.cfo-admin-quota-ay { font-size: 12px; color: var(--muted); }

/* v119: hesap ayarları — bilgileri düzenle + şifre değiştir + hesabı sil. */
.cfo-report-delete { border: 1px solid var(--line); background: var(--surface); color: #c62828; border-radius: 8px; padding: 6px 12px; font-size: 13px; cursor: pointer; }
.cfo-report-delete:hover { border-color: #c62828; }
/* D: koyu temada #c62828 okunmaz. */
:root[data-theme="dark"] .cfo-report-delete { color: #ff8a80; }
:root[data-theme="dark"] .cfo-report-delete:hover { border-color: #ff8a80; }
.cfo-report-delete:disabled { opacity: .55; cursor: default; }
/* v122: üst bar ana uygulama (maliajan.com) biçiminde */
.cfo-topbar-date { color: var(--muted); font-size: 11px; white-space: nowrap; }
/* Üst bar bildirimi (PDF e-posta): tarihin önüne gelir; aşağıdan
   yukarı kayarak girer, 3 sn durur, yukarı kayarak kaybolur.
   Yazı tipi/renk eski durum satırıyla aynı (12px, yeşil). */
.cfo-topbar-notice { font-size: 12px; color: var(--green-dark); white-space: nowrap; display: inline-block; transform: translateY(10px); opacity: 0; transition: transform .3s ease, opacity .3s ease; }
.cfo-topbar-notice.show { transform: translateY(0); opacity: 1; }
.cfo-topbar-notice.hide { transform: translateY(-10px); opacity: 0; }
.cfo-topbar-notice.error { color: #c62828; }
:root[data-theme="dark"] .cfo-topbar-notice.error { color: #ff8a80; }
/* Mobil: düğmeler solda kalsın. (Eski durum satırı kaldırıldı —
   bildirim artık üst barda; .cfo-actions kuralı mobilde sola
   dayalı düzeni korur.) */
@media (max-width: 680px) {
  #cfo-dash .cfo-actions { justify-content: flex-start; flex-basis: 100%; }
}
/* v126: düğme içi ikonlar (e-posta zarfı, indirme oku) —
   .secondary zaten inline-flex + gap, ikon metinle hizalanır. */
.cfo-btn-icon { width: 15px; height: 15px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
/* v126: profil tetikleyici ana uygulamadaki gibi düğme
   biçiminde değil — sade metin (kenarlık, zemin, hap yok). */
.profile-trigger.cfo-profile-has-name { width: auto !important; height: auto !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; padding: 5px 0 !important; display: inline-flex !important; align-items: center; gap: 7px; color: var(--ink); font: 700 11px Georgia, "Times New Roman", serif; }
.profile-trigger.cfo-profile-has-name:hover,
.profile-trigger.cfo-profile-has-name[aria-expanded="true"] { background: transparent !important; border-color: transparent !important; color: #2f7659; }
.cfo-profile-name { max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; font-weight: 700; color: inherit; font-family: Georgia, "Times New Roman", serif; }
.cfo-profile-divider { display: block; height: 1px; background: var(--line); margin: 3px 0; }
.cfo-profile-logout { color: #c62828 !important; }
.cfo-profile-logout:hover { color: #c62828 !important; background: #fdecea !important; }
/* D: koyu temada #c62828 okunmaz; #fdecea açık zemin koyu temada parlar. */
:root[data-theme="dark"] .cfo-profile-logout { color: #ff8a80 !important; }
:root[data-theme="dark"] .cfo-profile-logout:hover { color: #ff8a80 !important; background: rgba(255, 138, 128, .14) !important; }
.cfo-profile-logout-icon { width: 15px; height: 15px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.cfo-profile-quota-badge { margin-left: auto; background: var(--green-pale); color: var(--green-dark); border-radius: 10px; padding: 1px 7px; font-size: 10px; font-weight: 700; white-space: nowrap; }
@media (max-width: 760px) { .cfo-topbar-date { display: none; } .cfo-profile-name { max-width: 90px; font-size: 10px; } }
/* v123: profil / statü popup'ları — ana uygulama account-info-dialog tasarımı */
.cfo-account-dialog { width: min(600px, calc(100% - 28px)); max-height: 90vh; overflow: auto; padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); color: var(--ink); box-shadow: 0 20px 60px #142c2260; }
.cfo-account-dialog::backdrop { background: rgb(17 42 31 / 52%); backdrop-filter: blur(2px); }
.cfo-dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 15px; }
.cfo-dialog-eyebrow { margin: 0 0 4px; color: var(--green-dark); font-size: 11px; font-weight: 700; letter-spacing: .08em; }
.cfo-dialog-title { margin: 0; font: 400 23px/1.2 Georgia, "Times New Roman", serif; letter-spacing: -.03em; }
.cfo-dialog-close { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; border: 1px solid #75c8a7; border-radius: 50%; background: #9ecfba; color: #173326; cursor: pointer; font: 25px/1 Georgia, "Times New Roman", serif; }
.cfo-dialog-close:hover { background: #75c8a7; }
.cfo-dialog-msg { min-height: 20px; font-size: 13px; color: var(--green-dark); margin: 0 0 8px; }
.cfo-dialog-msg.error { color: #c62828; }
/* D: koyu temada #c62828 okunmaz. */
:root[data-theme="dark"] .cfo-dialog-msg.error { color: #ff8a80; }
/* v126: havale bildirimi düğmenin altında (cfo-bank-msg) —
   düğme üstü boşluk, hata rengi .cfo-dialog-msg.error'dan gelir. */
.cfo-bank-msg { margin: 10px 0 0; }
.cfo-dialog-form { display: grid; gap: 12px; }
.cfo-dialog-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 12px; }
.cfo-dialog-password-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cfo-dialog-field { display: grid; min-width: 0; gap: 5px; color: var(--muted); font: 12px Georgia, "Times New Roman", serif; }
.cfo-dialog-field input { width: 100%; min-width: 0; height: 37px; padding: 0 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); color: var(--ink); font: 13px Georgia, "Times New Roman", serif; }
.cfo-dialog-field input:focus { outline: 2px solid #9ecfba66; border-color: #75c8a7; }
.cfo-dialog-field input:disabled { opacity: .65; background: var(--canvas); }
.cfo-dialog-note { font-size: 12px; color: var(--muted); margin: 0; }
.cfo-dialog-sec { margin: 4px 0 -4px; color: var(--ink); font-size: 14px; font-weight: 700; }
.cfo-dialog-help { margin: -7px 0 0; color: var(--muted); font-size: 11px; line-height: 1.4; }
.cfo-dialog-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 16px; }
.cfo-dialog-save { border: 1px solid var(--ink); background: var(--ink); color: #fff; border-radius: 8px; padding: 11px 18px; font-size: 14px; font-weight: 650; cursor: pointer; }
.cfo-dialog-save:hover { background: var(--green-dark); border-color: var(--green-dark); }
.cfo-dialog-save:disabled { opacity: .55; cursor: default; }
/* v126: gece modu — var(--ink) koyu modda beyaza döner, bu
   düğmeler (koyu zemin + beyaz yazı) beyaz üstüne beyaz
   kalıyordu. React uygulamasının .primary gece stiliyle
   aynı: yeşil zemin + koyu yazı. */
:root[data-theme="dark"] .cfo-dialog-save,
:root[data-theme="dark"] .cfo-subscription-submit,
:root[data-theme="dark"] .cfo-admin-quota-grant,
:root[data-theme="dark"] .cfo-quota-subscribe-btn,
:root[data-theme="dark"] .cfo-rules-save,
:root[data-theme="dark"] .cfo-sub-admin-confirm { color: #07130d; background: #4c9778; border-color: #4c9778; }
:root[data-theme="dark"] .cfo-dialog-save:hover,
:root[data-theme="dark"] .cfo-subscription-submit:hover,
:root[data-theme="dark"] .cfo-admin-quota-grant:hover,
:root[data-theme="dark"] .cfo-quota-subscribe-btn:hover,
:root[data-theme="dark"] .cfo-rules-save:hover,
:root[data-theme="dark"] .cfo-sub-admin-confirm:hover { background: #71c99d; border-color: #71c99d; }
.cfo-dialog-delete { border: 0; background: transparent; color: #c62828; font-size: 13px; cursor: pointer; padding: 6px 0; }
/* D: koyu temada #c62828 okunmaz. */
:root[data-theme="dark"] .cfo-dialog-delete { color: #ff8a80; }
.cfo-dialog-delete:hover { text-decoration: underline; }
.cfo-status-summary { display: flex; align-items: center; gap: 12px; padding: 13px; border: 1px solid #b7dfce; border-radius: 10px; background: #e8f3ed; margin-bottom: 6px; }
.cfo-status-summary p { margin: 0; color: var(--ink); font-size: 13px; line-height: 1.45; }
.cfo-status-badge { flex: none; border: 1px solid #b7dfce; background: #fff; color: var(--green-dark); border-radius: 12px; padding: 2px 10px; font-size: 11px; font-weight: 700; }
.cfo-status-list { display: grid; gap: 0; margin: 0; }
.cfo-status-row { display: grid; grid-template-columns: minmax(105px, .65fr) minmax(0, 1fr); gap: 12px; padding: 10px 2px; border-bottom: 1px solid var(--line); }
.cfo-status-row:last-child { border-bottom: 0; }
.cfo-status-row dt { color: var(--muted); font-size: 12px; }
.cfo-status-row dd { min-width: 0; margin: 0; color: var(--ink); font-size: 13px; overflow-wrap: anywhere; }
.cfo-status-quota { margin-top: 15px; padding-top: 13px; border-top: 1px solid var(--line); }
.cfo-status-quota > summary { color: var(--green-dark); font-size: 15px; font-weight: 700; cursor: pointer; }
.cfo-status-quota-text { margin: 9px 0 10px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.cfo-status-plan { margin-top: 14px; }
.cfo-profile-menu-icon { width: 15px; height: 15px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
:root[data-theme="dark"] .cfo-status-summary { border-color: #4e7964; background: #20372d; }
:root[data-theme="dark"] .cfo-status-badge { background: #294538; color: #b9e2cc; border-color: #4e7964; }
@media (max-width: 760px) { .cfo-account-dialog { padding: 16px; } .cfo-dialog-grid { grid-template-columns: 1fr; } .cfo-dialog-password-grid { grid-template-columns: 1fr; } }

/* v128: derin inceleme bloğu (yönetici özeti altında) — TDHP, kontrol
   listesi ve manipülasyon üzerine AI'nin üç soruluk incelemesi.
   Amber vurgu: dikkat gerektiren bir inceleme bloğu olduğunu belli eder. */
.cfo-deep-review { margin-top: 16px; padding: 14px 16px; border: 1px solid #d9a441; border-left: 4px solid #d9a441; border-radius: 8px; background: #fdf6e3; }
.cfo-deep-review h3 { margin: 0 0 8px; font-size: 14px; font-weight: 700; color: #7a5b0e; }
.cfo-deep-review p { margin: 0 0 8px; font-size: 13px; line-height: 1.55; color: #3d3a2e; }
.cfo-deep-review p:last-child { margin-bottom: 0; }
:root[data-theme="dark"] .cfo-deep-review { border-color: #8a6d2b; border-left-color: #d9a441; background: #2e2a18; }
:root[data-theme="dark"] .cfo-deep-review h3 { color: #e8c96a; }
:root[data-theme="dark"] .cfo-deep-review p { color: #e8e2cd; }

/* v128: analiz ilerleme perdesi — taze rapor yüklemesinde AI yorumu
   hazır olana kadar ekranı kaplar; aşamaları listeler. */
.cfo-analysis-overlay { position: fixed; inset: 0; z-index: 9999; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 24px; background: rgba(13, 13, 14, 0.82); color: #f2f2f2; text-align: center; }
.cfo-analysis-title { font-size: 20px; font-weight: 700; }
.cfo-analysis-sub { max-width: 560px; margin: 0; font-size: 14px; line-height: 1.55; color: #d8d8d8; }
.cfo-analysis-stages { list-style: none; margin: 14px 0 0; padding: 0; text-align: left; font-size: 14px; line-height: 2; }
.cfo-analysis-stages li.done { color: #9be0b8; }
.cfo-analysis-stages li.active { color: #ffd97a; }

/* v163 — dönem karşılaştırması */
/* v166 — dönemler aynı grup kartında; geçmiş dönem yükleme kutusu
   mevcut dönem kutusunun aynısı (tam genişlik, kesikli çerçeve,
   ortalanmış içerik, sağ üstte "02" rozeti). */
.cfo-periods-group { display: grid; gap: 16px; margin-top: 10px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.cfo-periods-title { font-size: 13px; font-weight: 700; }
.cfo-period-current { display: grid; gap: 8px; }
.cfo-period-current .cfo-period-chips { margin-top: 0; }
/* v167 — mevcut dönem yükleme kutusunun yuvası (React düğmesi
   buraya taşınır); kutu yuvayı tam doldurur. */
.cfo-period-upload { display: grid; }
.cfo-period-upload > label { width: 100%; }
/* v167 düzeltme 3: sektör panelindeki "label { display: none; }"
   kuralı (2026-11-06, serbest sektör girişi kaldırılırken kondu)
   taşınan file-card etiketini de gizliyordu — yuva #cfo-periods
   sektör panelinin içinde. ID'li seçici (1,2,1) genel kuralı
   (0,1,1) yener; .file-card'ın kendi display:flex'i geri gelir.
   (Koyu tema / hover / has-file stilleri .file-grid'e bağlı
   değil, uygulamanın kendi CSS'inden gelmeye devam eder.) */
#cfo-periods .cfo-period-upload > label.file-card { display: flex; }
.cfo-period-section-label { font-size: 13px; font-weight: 700; display: block; }
.cfo-past { display: grid; gap: 10px; }
/* v168 — geçmiş kutu uygulamanın .file-card'ı (01 kutusunun
   aynısı: aynı düğme, kenarlık, yazı, içerik). Sektör panelindeki
   "label { display: none; }" kuralına karşı display override
   (v167 düzeltme 3'teki tuzak); input uygulamanın kuralıyla
   etiketi kaplar (sigorta olarak burada da yazıldı). */
#cfo-periods .cfo-past-drop.file-card { display: flex; }
#cfo-periods .cfo-past-drop input { opacity: 0; position: absolute; inset: 0; width: 100%; height: 100%; cursor: pointer; }
.cfo-past-drop.drag { border-color: var(--green); background: var(--green-pale); }
.cfo-past-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cfo-past-clear { font-size: 12px; }
.cfo-past-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 23px 8px; }
.cfo-past-hint { font-size: 12px; color: var(--muted); line-height: 1.55; margin: 0; }
/* Ana kartlardaki fark satırı: küçük, yön renginde. */
.cfo-delta { font-size: 11px; line-height: 1.5; margin: 8px 0 0; }
.cfo-delta.good { color: var(--green); }
.cfo-delta.bad { color: #c62828; }
.cfo-delta.neutral { color: var(--muted); }
:root[data-theme="dark"] .cfo-delta.bad { color: #ff8a80; }
/* Karşılaştırma bölümü tablosu. */
.cfo-compare-note { font-size: 12px; color: var(--muted); margin: 0 0 10px; }
.cfo-compare-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.cfo-compare-table th { text-align: left; font-size: 11px; color: var(--muted); font-weight: 600; padding: 6px 8px 6px 0; border-bottom: 1px solid var(--line); }
.cfo-compare-table th:nth-child(n+2) { text-align: right; }
.cfo-compare-table td { padding: 8px 8px 8px 0; border-bottom: 1px solid var(--line); }
.cfo-compare-table td.num { text-align: right; white-space: nowrap; }
.cfo-compare-table td.strong { font-weight: 700; }
.cfo-compare-table td.good { color: var(--green); }
.cfo-compare-table td.bad { color: #c62828; }
:root[data-theme="dark"] .cfo-compare-table td.bad { color: #ff8a80; }
.cfo-compare-ai-text { font-size: 13px; line-height: 1.6; margin: 12px 0 0; }
@media (max-width: 640px) {
  .cfo-compare-table { font-size: 12px; }
  .cfo-compare-table td { padding: 7px 4px 7px 0; }
}
