/* ══════════════════════════════════════════════════════════════════════════
   MALİYET YÖNETİMİ RAPOR STANDARDI (.cr-*)

   Tablo tek kaydırma kutusudur (.cr-wrap): yatay VE dikey kaydırma kutunun içinde olur,
   başlık satırı(ları), ilk sütun ve toplam satırı kutuya yapışır. Kısa tablo kutuyu doldurmaz,
   kaydırma çubuğu çıkmaz. (Eski .ops-table-wrap overflow:auto ama yüksekliksizdi: başlık
   yapışacak kutu hiç kaymadığı için sayfa kayınca başlık da gidiyordu.)

   Senaryo sütunları uygulama standardından (scenario-colors.css, --sc-*): başlıkta koyu ton,
   gövdede açık ton, toplamda ara ton. Renk elle yazılmaz.
   ══════════════════════════════════════════════════════════════════════════ */

.cr-wrap {
    position: relative;
    overflow: auto;
    max-height: calc(100vh - 230px);
    min-height: 0;
}
.cr-wrap.cr-tall { max-height: calc(100vh - 170px); }

.cr-table {
    width: max-content;
    min-width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: .78rem;
    font-variant-numeric: tabular-nums;
    color: #1e293b;
}
.cr-table th,
.cr-table td {
    padding: .36rem .6rem;
    text-align: right;
    white-space: nowrap;
    border-bottom: 1px solid #eef2f7;
    background-clip: padding-box;
}
.cr-table .l { text-align: left; }
.cr-table td.l { font-weight: 600; color: #0f172a; }
.cr-table tbody td { background-color: #fff; }

/* Başlık: tek ya da iki satır (grup satırı + sütun satırı) */
.cr-table thead th {
    position: sticky;
    top: 0;
    z-index: 3;
    background: #f8fafc;
    color: #475569;
    font-size: .64rem;
    font-weight: 750;
    letter-spacing: .03em;
    text-transform: uppercase;
    border-bottom: 1px solid #dbe3ef;
    vertical-align: bottom;
}
.cr-table thead tr.cr-groups th {
    height: 26px;
    text-align: center;
    font-size: .66rem;
    letter-spacing: .02em;
    border-bottom: 0;
    border-left: 1px solid #e2e8f0;
}
.cr-table thead tr.cr-groups + tr th { top: 26px; }

/* İlk sütun yapışık */
.cr-table .cr-first {
    position: sticky;
    left: 0;
    z-index: 2;
    min-width: 220px;
    text-align: left;
    background-color: #fff;
    box-shadow: 6px 0 8px -8px rgba(15, 23, 42, .28);
}
.cr-table thead .cr-first { z-index: 5; background: #f8fafc; }
.cr-table thead tr.cr-groups th.cr-first { border-left: 0; }

/* Toplam satırı alta yapışık */
.cr-table tfoot td {
    position: sticky;
    bottom: 0;
    z-index: 2;
    background-color: #eef4ff;
    color: #0f2743;
    font-weight: 800;
    border-top: 1px solid #bfdbfe;
    border-bottom: 0;
}
.cr-table tfoot td.cr-first { z-index: 4; background-color: #eef4ff; }

/* Grup sınırı */
.cr-table .cr-sep { border-left: 1px solid #e2e8f0; }

/* Senaryo sütunları */
.cr-table thead th.sc-actual   { background: var(--sc-actual-soft);   color: var(--sc-actual-text); }
.cr-table thead th.sc-budget   { background: var(--sc-budget-soft);   color: var(--sc-budget-text); }
.cr-table thead th.sc-forecast { background: var(--sc-forecast-soft); color: var(--sc-forecast-text); }
.cr-table thead th.sc-lastyear { background: var(--sc-lastyear-soft); color: var(--sc-lastyear-text); }
.cr-table thead tr.cr-groups th.sc-actual   { box-shadow: inset 0 3px 0 var(--sc-actual); }
.cr-table thead tr.cr-groups th.sc-budget   { box-shadow: inset 0 3px 0 var(--sc-budget); }
.cr-table thead tr.cr-groups th.sc-forecast { box-shadow: inset 0 3px 0 var(--sc-forecast); }
.cr-table thead tr.cr-groups th.sc-lastyear { box-shadow: inset 0 3px 0 var(--sc-lastyear); }
.cr-table thead th.cr-var { background: #f1f5f9; color: #334155; }
.cr-table thead tr.cr-groups th.cr-var { box-shadow: inset 0 3px 0 #94a3b8; }

.cr-table tbody td.sc-actual   { background-color: var(--sc-actual-tint); }
.cr-table tbody td.sc-budget   { background-color: var(--sc-budget-tint); }
.cr-table tbody td.sc-forecast { background-color: var(--sc-forecast-tint); }
.cr-table tbody td.sc-lastyear { background-color: var(--sc-lastyear-tint); }
.cr-table tfoot td.sc-actual   { background-color: color-mix(in srgb, var(--sc-actual-soft) 75%, #fff); }
.cr-table tfoot td.sc-budget   { background-color: color-mix(in srgb, var(--sc-budget-soft) 75%, #fff); }
.cr-table tfoot td.sc-forecast { background-color: color-mix(in srgb, var(--sc-forecast-soft) 75%, #fff); }
.cr-table tfoot td.sc-lastyear { background-color: color-mix(in srgb, var(--sc-lastyear-soft) 75%, #fff); }

/* Satır tipleri */
.cr-table tbody tr.cr-row-group td { font-weight: 750; color: #0f2743; border-bottom-color: #dbe3ef; }
.cr-table tbody tr.cr-row-group td.cr-first,
.cr-table tbody tr.cr-row-group td:not([class*="sc-"]) { background-color: #f1f5f9; }
.cr-table tbody tr.cr-row-child td.cr-first { padding-left: 1.7rem; font-weight: 500; }
.cr-table tbody tr.cr-row-sel td { background-image: linear-gradient(rgba(245, 158, 11, .14), rgba(245, 158, 11, .14)); }
.cr-table tbody tr.cr-row-sel td.cr-first { box-shadow: inset 3px 0 0 #f59e0b, 6px 0 8px -8px rgba(15, 23, 42, .28); }
.cr-table tbody tr:hover td { background-image: linear-gradient(rgba(29, 78, 216, .05), rgba(29, 78, 216, .05)); }
.cr-table tbody tr.cr-click { cursor: pointer; }

/* Sapma yönü (maliyette artış aleyhte) */
.cr-table td.cr-fav,   .cr-kpi .cr-fav,   .cr-fav   { color: var(--sc-favorable) !important; font-weight: 700; }
.cr-table td.cr-unfav, .cr-kpi .cr-unfav, .cr-unfav { color: var(--sc-adverse) !important; font-weight: 700; }

.cr-dim { color: #94a3b8; font-weight: 500; }
.cr-sub { display: block; color: #64748b; font-size: .68rem; font-weight: 500; }
.cr-empty { text-align: center !important; color: #94a3b8; padding: 1.4rem !important; }

.cr-link {
    border: 0;
    background: none;
    padding: 0;
    color: var(--sc-budget-text);
    font: inherit;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
}
.cr-link:hover { text-decoration: underline; }

.cr-toggle {
    border: 0;
    background: none;
    padding: 0;
    font: inherit;
    font-weight: 750;
    color: inherit;
    cursor: pointer;
}
.cr-toggle i { width: 12px; color: #64748b; }

/* Kart başlığında senaryo lejantı ve birim */
.cr-legend { display: inline-flex; flex-wrap: wrap; gap: .35rem; margin-left: auto; }
.cr-unit { margin-left: .5rem; color: #64748b; font-size: .68rem; font-weight: 650; }

/* Süzgeç satırı */
.cr-filters { align-items: flex-end; }
.cr-filters .rbp { gap: .22rem; }
.cr-filters .rbp > span {
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--ops-muted, #64748b);
}
.cr-filters .rbp .rbp-toggle { height: 34px; }
.cr-filters .cr-narrow { min-width: 108px; }
.cr-filters .cr-scenario { min-width: 190px; }
.cr-filters .cr-scenario > select { border-left-width: 3px; }
.cr-filters .cr-scenario.sc-budget > select { border-left-color: var(--sc-budget); }
.cr-filters .cr-scenario.sc-forecast > select { border-left-color: var(--sc-forecast); }
.cr-dot { display: inline-block; width: 8px; height: 8px; margin-right: 5px; border-radius: 2px; vertical-align: 0; }
.cr-dot.sc-actual { background: var(--sc-actual); }
.cr-dot.sc-budget { background: var(--sc-budget); }
.cr-dot.sc-forecast { background: var(--sc-forecast); }
.cr-dot.sc-lastyear { background: var(--sc-lastyear); }

.cr-seg { display: inline-flex; height: 34px; border: 1px solid #dbe3ef; border-radius: 8px; overflow: hidden; background: #fff; }
.cr-seg button {
    border: 0;
    background: transparent;
    padding: 0 .7rem;
    color: #475569;
    font-size: .74rem;
    font-weight: 650;
    cursor: pointer;
}
.cr-seg button + button { border-left: 1px solid #dbe3ef; }
.cr-seg button.on { background: var(--sc-budget-tint); color: var(--sc-budget-text); font-weight: 800; }

/* KPI kartlarında senaryo değerleri */
.cr-kpi-line { display: flex; flex-wrap: wrap; gap: .15rem .7rem; margin-top: .15rem; font-size: .7rem; color: #64748b; }
.cr-kpi-line b { font-weight: 750; color: #334155; }
.cr-kpi-line .sc-budget-text { color: var(--sc-budget-text); }
.cr-kpi-line .sc-forecast-text { color: var(--sc-forecast-text); }
.cr-kpi-line .sc-lastyear-text { color: var(--sc-lastyear-text); }

/* Grafik ızgarası */
.cr-charts { display: grid; grid-template-columns: 1.6fr 1fr; gap: 16px; }
.cr-charts.even { grid-template-columns: 1fr 1fr; }
@media (max-width: 1100px) { .cr-charts, .cr-charts.even { grid-template-columns: 1fr; } }

/* Sapma köprüsü (SVG) */
.cr-bridge { width: 100%; height: auto; max-height: 300px; }
.cr-bridge .axis { stroke: #cbd5e1; }
.cr-bridge .b-base { fill: var(--sc-budget); }
.cr-bridge .b-base.fc { fill: var(--sc-forecast); }
.cr-bridge .b-result { fill: var(--sc-actual); }
.cr-bridge .b-up { fill: var(--sc-adverse); opacity: .85; }
.cr-bridge .b-down { fill: var(--sc-favorable); opacity: .85; }
.cr-bridge .link { stroke: #94a3b8; stroke-dasharray: 3 3; }
.cr-bridge text { font-size: 11px; fill: #334155; text-anchor: middle; font-variant-numeric: tabular-nums; }
.cr-bridge text.v { font-weight: 700; fill: #0f172a; }

/* Stok durum rozeti */
.cr-badge { display: inline-block; padding: .1rem .5rem; border-radius: 999px; font-size: .66rem; font-weight: 750; }
.cr-badge.st-Active { background: color-mix(in srgb, var(--sc-favorable) 16%, #fff); color: #065f46; }
.cr-badge.st-Slow { background: #fef3c7; color: #92400e; }
.cr-badge.st-Dead { background: color-mix(in srgb, var(--sc-adverse) 14%, #fff); color: #991b1b; }
.cr-badge.st-NoConsumption { background: #e2e8f0; color: #334155; }

@media print {
    .cr-wrap, .cr-wrap.cr-tall { max-height: none; overflow: visible; }
    .cr-table thead th, .cr-table tfoot td, .cr-table .cr-first { position: static; box-shadow: none; }
    .cr-filters .ops-btn, .cr-seg { display: none; }
}

/* Dönem dışı satır (aylık tabloda seçili dönemin dışındaki aylar) */
.cr-table tbody tr.cr-dim-row td { color: #94a3b8; }


/* ABC sınıfı rozeti */
.cr-abc { display: inline-grid; place-items: center; width: 22px; height: 20px; border-radius: 5px; font-size: .68rem; font-weight: 800; color: #fff; }
.cr-abc-A { background: #b91c1c; }
.cr-abc-B { background: #d97706; }
.cr-abc-C { background: #64748b; }
.cr-abc-changed { outline: 2px solid #f59e0b; outline-offset: 1px; }
.ops-kpi-icon > b { font-size: 1rem; font-weight: 800; }

/* Yeniden yükleme göstergesi (eski veri ekranda kalırken) */
.cr-busy { display: inline-flex; align-items: center; height: 34px; }
.cr-busy .ops-spinner { width: 18px; height: 18px; border-width: 2px; margin: 0; }

/* Kart başlığında birim etiketi sağa yaslanır (araç düğmeleri varsa onlardan önce). */
.ops-card-head .cr-unit { margin-left: auto; }
