﻿:root {
    --mnt-planned: var(--bs-orange);
    --mnt-progress: var(--bs-blue);
    --mnt-hold: var(--bs-secondary);
    --mnt-postponed: var(--bz-status-warn);
    --mnt-material: var(--bs-cyan);
    --mnt-verified: var(--bs-gray-dark);
    --mnt-overdue: var(--bz-status-bad);
    --mnt-upcoming: var(--bs-purple);
    --mnt-current-step: var(--mnt-progress);
}

.badge.bg-mnt-planned {
    background-color: var(--mnt-planned);
    color: var(--bs-white);
}

.badge.bg-mnt-progress {
    background-color: var(--mnt-progress);
    color: var(--bs-white);
}

.badge.bg-mnt-hold {
    background-color: var(--mnt-hold);
    color: var(--bs-white);
}

.badge.bg-mnt-postponed {
    background-color: var(--mnt-postponed);
    color: var(--bs-black);
}

.badge.bg-mnt-material {
    background-color: var(--mnt-material);
    color: var(--bs-black);
}

.badge.bg-mnt-verified {
    background-color: var(--mnt-verified);
    color: var(--bs-white);
}


@media (min-width: 1200px) {
    .calendar-agenda-shell {
        position: relative;
        height: 100%;
    }

    .calendar-agenda-shell > .calendar-agenda {
        position: absolute;
        inset: 0;
    }
}

.calendar-agenda-list {
    min-height: 0;
}

@media (max-width: 1199.98px) {
    .calendar-agenda-list {
        max-height: 420px;
    }
}

.maintenance-calendar-table {
    table-layout: fixed;
}

.mnt-truncate {
    display: inline-block;
    max-width: 20rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: middle;
}

.mnt-truncate.mnt-truncate-sm {
    max-width: 12rem;
}

.mnt-truncate.mnt-truncate-lg {
    max-width: 32rem;
}

.mnt-clamp-2 {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    overflow-wrap: anywhere;
}

.mnt-title-fill {
    flex: 1 1 0;
    min-width: 0;
}

/* Baslik tek satir, sutun genisligi kadar "..." (kullanici karari 2026-09-25). Evin basligi (bm-datatables.css)
   nowrap: sutunu baslik metninden dar birakmiyor. Bu kurallar kalkinca Bakim Kayitlari Romencede 1366 px'te
   74 px, 1024 px'te 416 px yatay tasti (olculdu 2026-10-08). Bilincli istisna (UI-C4 / UI-V5); ev basligi
   sutuna sigan cesidi verince kalkar. Govde hucresi evde: tek satir, tasan tabloda bm-table-fit. */
.mnt-table th {
    overflow-wrap: anywhere;
}

@media (min-width: 1200px) {
    .mnt-table th {
        overflow-wrap: normal;
    }
}

table.mnt-table.dataTable > thead > tr > th {
    white-space: normal;
}

table.mnt-table.dataTable > thead > tr > th .dt-column-title,
table.mnt-head-1line.dataTable > thead > tr > th .dt-column-title {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    line-clamp: 1;
    white-space: normal;
    overflow: hidden;
    overflow-wrap: break-word;
}

table.mnt-head-1line > thead > tr > th .mnt-th-text,
table.mnt-table:not(.dataTable) > thead > tr > th .mnt-th-text {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    line-clamp: 1;
    white-space: normal;
    overflow: hidden;
    overflow-wrap: break-word;
}

/* Kirpilan hucre metni (mnt-truncate) tek satir ve sutunla daralir: kendi icinde sarip ilk satiri gosterir.
   anywhere: e-postali uzun ad sutunu genisletip tabloyu tasiriyordu, kirpilan metin zaten tek satir. */
.mnt-table .mnt-truncate {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    line-clamp: 1;
    white-space: normal;
    overflow-wrap: anywhere;
    min-width: 100%;
}

table.mnt-table.dataTable > thead > tr > th.mnt-col-datetime,
table.mnt-table.dataTable > tbody > tr > td.mnt-col-datetime,
table.mnt-table.dataTable > thead > tr > th.mnt-col-duration,
table.mnt-table.dataTable > tbody > tr > td.mnt-col-duration {
    white-space: nowrap;
    overflow-wrap: normal;
    width: 1%;
}

table.mnt-table.dataTable > thead > tr > th.mnt-col-code,
table.mnt-table.dataTable > tbody > tr > td.mnt-col-code {
    max-width: 6rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.maintenance-materials-table {
    table-layout: fixed;
}

.maintenance-materials-table th:nth-child(1) { width: 12%; }
.maintenance-materials-table th:nth-child(2) { width: 28%; }
.maintenance-materials-table th:nth-child(3) { width: 11%; }
.maintenance-materials-table th:nth-child(4) { width: 12%; }
.maintenance-materials-table th:nth-child(5) { width: 11%; }
.maintenance-materials-table th:nth-child(6) { width: 12%; }

.maintenance-materials-table .mnt-truncate {
    max-width: 100%;
}

.bg-mnt-overdue {
    background-color: var(--mnt-overdue);
    color: var(--bs-white);
}

.bg-mnt-upcoming {
    background-color: var(--mnt-upcoming);
    color: var(--bs-white);
}

.bg-mnt-scheduled {
    background-color: var(--mnt-planned);
    color: var(--bs-white);
}

/* Takvim hücresinin kenar rengi (kova). Kenarı Bootstrap'in .border yardımcısı çiziyor ve rengini
   --bs-border-color değişkeninden okuyor; renk o değişkenle verilir, !important gerekmez (UI-C5).
   Kalınlık işaretlemede (border-2). */
.mnt-cal-border-overdue {
    --bs-border-color: var(--mnt-overdue);
}

.mnt-cal-border-upcoming {
    --bs-border-color: var(--mnt-upcoming);
}

.mnt-cal-border-scheduled {
    --bs-border-color: var(--mnt-planned);
}

.bg-mnt-ongoing {
    background-color: var(--mnt-progress);
    color: var(--bs-white);
}

.mnt-cal-border-ongoing {
    --bs-border-color: var(--mnt-progress);
}

.bg-mnt-notplanned {
    background-color: var(--bz-status-ok-bg);
    color: var(--bz-status-ok-fg);
}

.bg-mnt-closed {
    background-color: var(--mnt-verified);
    color: var(--bs-white);
}

.mnt-cal-border-notplanned {
    --bs-border-color: var(--bz-status-ok-border);
}

.mnt-cal-border-closed {
    --bs-border-color: var(--mnt-verified);
}

.mnt-cal-daynum {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.4rem;
    padding: .12rem .32rem;
    border-radius: var(--bs-border-radius-sm);
    background-color: var(--bs-secondary-bg);
    color: var(--bz-color-text);
    font-weight: 600;
    line-height: 1;
}

.mnt-cal-daynum.is-idle {
    background-color: transparent;
    color: var(--bz-color-text-muted);
}

.mnt-cal-daynum.is-today {
    background-color: var(--bz-color-brand);
    color: var(--bs-white);
}

/* Bugünün hücresi: kenar rengi kova kenarlarıyla (.mnt-cal-border-*) aynı yoldan, .border'ın okuduğu
   değişkenle. */
.mnt-cal-today-cell {
    background-color: rgba(var(--bz-color-brand-rgb), .06);
    --bs-border-color: var(--bz-color-brand);
}

.mnt-cal-counts {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--bz-stack-gap);
    line-height: 1;
}

.mnt-cal-swatch {
    display: inline-block;
    width: .8rem;
    height: .8rem;
    border-radius: 50%;
}

.mnt-cal-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.4rem;
    height: 1.4rem;
    padding: 0;
    font-size: var(--bz-font-xs);
    font-weight: 600;
    line-height: 1;
}

/* Kutu olculeri (genislik, dolgu, aralik) Journey seridinden: buslinestyle.css .timeline-container, sayfada
   bu dosyadan sonra yukleniyor. Burada yalniz tasma. */
.maintenance-status-timeline {
    overflow-y: visible;
    overflow-x: auto;
}

.maintenance-status-timeline .timeline-row {
    min-height: auto;
    flex-wrap: nowrap;
    justify-content: center;
}

.maintenance-status-timeline .station-code-text {
    white-space: nowrap;
}

.mnt-flow {
    display: block;
    width: 100%;
    max-width: 640px;
    height: auto;
    margin: 0 auto;
}

.mnt-flow-edge {
    stroke: var(--bz-color-border);
    stroke-width: 1.5;
    fill: none;
}

.mnt-flow-ring {
    fill: var(--bz-color-surface);
    stroke: var(--mnt-flow-color);
    stroke-width: 2;
}

.mnt-flow-icon {
    overflow: visible;
}

    /* İkonun boyu ve bloğu işaretlemede (.bz-fs-num, .d-block); burada yalnız statü rengi (PR istisnası 1). */
    .mnt-flow-icon .bzi {
        color: var(--mnt-flow-color);
    }

.mnt-flow-step.is-done { --mnt-flow-color: var(--bz-status-ok); }
.mnt-flow-step.is-current { --mnt-flow-color: var(--mnt-current-step); }
.mnt-flow-step.is-pending { --mnt-flow-color: var(--bs-gray-400); }

/* Şu anki adımın yazısı statü renginde (PR istisnası 1); yazı fill="currentColor" ile bu rengi alır, kalınlık
   işaretlemede (.fw-semibold). */
.mnt-flow-step.is-current .mnt-flow-label {
    color: var(--mnt-current-step);
}

.maintenance-status-timeline .station.start {
    color: var(--mnt-current-step);
    border-color: var(--mnt-current-step);
}

.maintenance-status-timeline .station-group:hover .station {
    transform: none;
    box-shadow: none;
}

.hidden,
.is-hidden {
    display: none !important;
}

.detail-tab-panel,
.workorder-detail-panel,
.workorder-inline-detail,
.report-detail-panel {
    display: none;
}

.detail-tab-panel.active,
.workorder-detail-panel.active,
.workorder-inline-detail.active,
.report-detail-panel.active {
    display: block;
}

.js-media-panel .js-media-inline {
    max-width: 520px;
}

/* Malzeme pencereleri (Oluştur / Düzenle) ortak sınıfla (UI-C5: kimlik seçicisi yok). */
.mnt-material-upload-host .js-media-inline {
    max-width: none;
}

.mnt-material-upload-host .js-media-description {
    height: 4.5rem;
    min-height: 4.5rem;
}

.mnt-material-media-section .mnt-split-detail img,
.mnt-material-media-section .mnt-split-detail video {
    max-height: 300px;
    object-fit: contain;
}

/* Listenin kendi kuralı (.mnt-split-list .mnt-split-items, aşağıda) üst sınırı kaldırıyor; pencerede
   liste 300 px'te kalsın diye ondan özgül. */
.mnt-material-media-section .mnt-split-list .mnt-split-items {
    max-height: 300px;
    overflow-y: auto;
}

/* Liste + ayrıntı bölmesi (iş emirleri, ekler, tutanaklar; bakım ve olay detayı, malzeme penceresi).
   Liste solda, ayrıntı sağda (kullanıcı, 2026-10-12: "Rotalar gibi"). Kılavuz 4.2'de "Liste seç -> ayrıntı gör"
   işinin karşılığı çekmeceli sayfa (.side-drawer-layout), listesi solda. O düzen tam sayfa içindir, çekmece
   kendi plakasıdır; bu bölme sekmedeki kartın içinde ve kartın içinde ikinci plaka açılmaz (UI-S3), bu yüzden
   liste ile ayrıntı çizgisiz, aralıkla ayrılır. Önce evin yan sütunu (.bz-fill-aside) kullanılıyordu; o "Tablo +
   yan liste" içindir ve dar sütunu sağda durur (ayırıcı çizgisi sol kenarında). Başlık satırı ve kayan gövde
   evin parçaları (.bz-fill-aside-head, -body). Satırlar evin çekmece öğesi (.side-drawer-item; yazı
   .media-item-title / -sub): çerçeve, üzerine gelme ve seçili hâl (TUŞ, .is-active) YUZEYLER'den. Burada
   yalnız yerleşim (UI-C2). */
.mnt-split {
    display: flex;
    gap: var(--bz-stack-gap);
}

/* Liste sütunu: evin yan sütunuyla aynı genişlik (clamp 220-320 px). */
.mnt-split-list {
    display: flex;
    flex: 0 0 clamp(220px, 24%, 320px);
    flex-direction: column;
    gap: var(--bz-stack-gap);
    min-height: 0;
    min-width: 0;
}

/* Dar ekranda alt alta, önce liste (seç, sonra oku); liste ekranın %40'ına kadar uzar, kendi içinde kayar. */
@media (max-width: 991.98px) {
    .mnt-split {
        flex-direction: column;
    }

    .mnt-split-list {
        flex: 0 1 auto;
        max-height: 40vh;
    }
}

.mnt-split-detail {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: var(--bz-stack-gap);
    min-width: 0;
}

.mnt-split-items {
    align-content: start;
    display: grid;
    gap: calc(2 * var(--bz-border-width));
}

.mnt-split-item,
.mnt-media-item {
    align-items: flex-start;
    display: flex;
    gap: var(--bz-stack-gap);
    width: 100%;
}

.mnt-split-item-body,
.mnt-media-item-body {
    display: grid;
    min-width: 0;
}

/* Alt bilgi uzun kod taşıyabiliyor (ek satırında "Bakım #MT_2026…" 40+ karakter): kelime
   arasında kırılmadığı için satırı genişletip yan sütunda yatay kaydırma çubuğu açıyordu.
   Sığma kuralı (UI-C2): uzun kod satır içinde kırılır. */
.mnt-split-item-body > .media-item-sub,
.mnt-media-item-body > .media-item-sub {
    overflow-wrap: anywhere;
}

.mnt-split-item-tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--bz-stack-gap);
    margin-top: var(--bz-stack-gap);
}

.mnt-media-detail-head {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: var(--bz-stack-gap);
}

.mnt-media-detail-name {
    overflow-wrap: anywhere;
}

.mnt-media-preview-title {
    align-items: center;
    display: flex;
    gap: var(--bz-stack-gap);
    margin-bottom: var(--bz-stack-gap);
}

.mnt-media-preview-body {
    align-items: center;
    display: flex;
    justify-content: center;
    min-height: 180px;
}

.mnt-media-preview-image,
.mnt-media-preview-video {
    max-height: 420px;
    max-width: 100%;
}

.mnt-media-preview-audio {
    width: 100%;
    max-width: 620px;
}

.planning-material-row + .planning-material-row {
    margin-top: var(--bz-stack-gap);
}

.maintenance-category-detail-metrics {
    margin-bottom: var(--bz-stack-gap);
    padding-bottom: var(--bz-stack-gap);
}


.btn-mnt-progress { --mnt-btn: var(--mnt-progress); --mnt-btn-text: var(--bs-white); }
.btn-mnt-hold { --mnt-btn: var(--mnt-hold); --mnt-btn-text: var(--bs-white); }
.btn-mnt-postponed { --mnt-btn: var(--mnt-postponed); --mnt-btn-text: var(--bs-black); }
.btn-mnt-material { --mnt-btn: var(--mnt-material); --mnt-btn-text: var(--bs-black); }
.btn-mnt-verified { --mnt-btn: var(--mnt-verified); --mnt-btn-text: var(--bs-white); }

.btn-mnt-progress,
.btn-mnt-hold,
.btn-mnt-postponed,
.btn-mnt-material,
.btn-mnt-verified {
    --bs-btn-color: var(--mnt-btn-text);
    --bs-btn-bg: var(--mnt-btn);
    --bs-btn-border-color: var(--mnt-btn);
    --bs-btn-hover-color: var(--mnt-btn-text);
    --bs-btn-hover-bg: color-mix(in srgb, var(--mnt-btn) 87%, black);
    --bs-btn-hover-border-color: color-mix(in srgb, var(--mnt-btn) 82%, black);
    --bs-btn-focus-box-shadow: 0 0 0 .25rem color-mix(in srgb, var(--mnt-btn) 50%, transparent);
    --bs-btn-active-color: var(--mnt-btn-text);
    --bs-btn-active-bg: color-mix(in srgb, var(--mnt-btn) 82%, black);
    --bs-btn-active-border-color: color-mix(in srgb, var(--mnt-btn) 77%, black);
    --bs-btn-disabled-color: var(--mnt-btn-text);
    --bs-btn-disabled-bg: color-mix(in srgb, var(--mnt-btn) 70%, transparent);
    --bs-btn-disabled-border-color: color-mix(in srgb, var(--mnt-btn) 70%, transparent);
}

.btn-outline-mnt-progress { --mnt-btn: var(--mnt-progress); --mnt-btn-text: var(--bs-white); }
.btn-outline-mnt-hold { --mnt-btn: var(--mnt-hold); --mnt-btn-text: var(--bs-white); }
.btn-outline-mnt-verified { --mnt-btn: var(--mnt-verified); --mnt-btn-text: var(--bs-white); }
.btn-outline-mnt-material {
    --mnt-btn: var(--mnt-material);
    --mnt-btn-text: var(--bs-black);
    --mnt-btn-ink: color-mix(in srgb, var(--mnt-material) 55%, black);
}
.btn-outline-mnt-postponed {
    --mnt-btn: var(--mnt-postponed);
    --mnt-btn-text: var(--bs-black);
    --mnt-btn-ink: color-mix(in srgb, var(--mnt-postponed) 55%, black);
}

.btn-outline-mnt-progress,
.btn-outline-mnt-hold,
.btn-outline-mnt-verified,
.btn-outline-mnt-material,
.btn-outline-mnt-postponed {
    --bs-btn-color: var(--mnt-btn-ink, var(--mnt-btn));
    --bs-btn-border-color: var(--mnt-btn);
    --bs-btn-hover-color: var(--mnt-btn-text);
    --bs-btn-hover-bg: var(--mnt-btn);
    --bs-btn-hover-border-color: var(--mnt-btn);
    --bs-btn-focus-box-shadow: 0 0 0 .25rem color-mix(in srgb, var(--mnt-btn) 50%, transparent);
    --bs-btn-active-color: var(--mnt-btn-text);
    --bs-btn-active-bg: var(--mnt-btn);
    --bs-btn-active-border-color: var(--mnt-btn);
    --bs-btn-disabled-color: var(--mnt-btn-ink, var(--mnt-btn));
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--mnt-btn);
}

.btn-outline-mnt-rejected {
    --bs-btn-color: var(--bz-status-bad-fg);
    --bs-btn-border-color: var(--bz-status-bad-border);
    --bs-btn-hover-color: var(--bz-status-bad-fg);
    --bs-btn-hover-bg: var(--bz-status-bad-bg);
    --bs-btn-hover-border-color: var(--bz-status-bad-border);
    --bs-btn-focus-box-shadow: 0 0 0 .25rem var(--bz-status-bad-bg);
    --bs-btn-active-color: var(--bz-status-bad-fg);
    --bs-btn-active-bg: var(--bz-status-bad-bg);
    --bs-btn-active-border-color: var(--bz-status-bad-border);
    --bs-btn-disabled-color: var(--bz-status-bad-fg);
    --bs-btn-disabled-border-color: var(--bz-status-bad-border);
}

.permission-readonly {
    cursor: not-allowed;
    opacity: .55;
    filter: saturate(.5);
}

a.permission-readonly {
    pointer-events: none;
}

/* Sayacın boyu, rengi ve hizası işaretlemede (char-counter.js: small text-body-secondary text-end). */
.mnt-char-count {
    margin-top: .125rem;
    line-height: var(--bz-line-tight);
}

