/* ==========================================================================
   Paraşüt görünümü (v2.4): gri zemin, koyu menü, beyaz yüksek satırlar,
   üstte gri filtre çubuğu, büyük harfli küçük başlıklar, koyu kahve ana düğme.
   Renkler: zemin #dedddc · metin #403637 · menü #373636 · çizgi #e8e6e5
            vurgu (yeşil) #26c0a2 · mavi #25a9cf · kırmızı #e45f51 · turuncu #f5a623
   ========================================================================== */
:root {
    --p-zemin: #dedddc;
    --p-metin: #403637;
    --p-soluk: #8d8785;
    --p-cizgi: #e8e6e5;
    --p-cubuk: #cfcdcb;
    --p-yesil: #26c0a2;
    --p-mavi: #25a9cf;
    --p-kirmizi: #e45f51;
    --p-turuncu: #f5a623;
    --p-kahve: #5b4f4f;
    --bs-body-color: #403637;
    --bs-body-bg: #dedddc;
    --bs-border-color: #e8e6e5;
    --bs-link-color: #1a9cbf;
    --bs-link-hover-color: #147d99;
    --bs-link-color-rgb: 26, 156, 191;
    --bs-link-hover-color-rgb: 20, 125, 153;
    --bs-secondary-color: #8d8785;
    --bs-font-monospace: "Roboto Mono", Consolas, "Courier New", monospace;
}

html, body {
    font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
}

body {
    font-size: 15px;
    line-height: 20px;
    color: var(--p-metin);
    background: var(--p-zemin);
}

a, .btn-link { color: #1a9cbf; }
a:hover, .btn-link:hover { color: #147d99; }
.text-muted { color: var(--p-soluk) !important; }
.text-success { color: #1a9e85 !important; }
.text-danger { color: var(--p-kirmizi) !important; }
.text-primary { color: #1a9cbf !important; }
.small, small { font-size: 12.5px; }
strong, b, .fw-bold { font-weight: 700; }
code { color: #b0532f; }

/* --- Sayfa başlığı bandı (80px): başlık solda, işlem düğmeleri sağda, en sağda kullanıcı --- */
article.content h1 {
    font-size: 24px;
    font-weight: 400;
    letter-spacing: .5px;
    color: var(--p-metin);
    margin-bottom: 0 !important;
}
article.content h1 small { font-size: 13px !important; letter-spacing: 0; }
article.content > h1 { line-height: 80px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
article.content > div:has(> h1),
article.content > div:has(> div > h1) {
    min-height: 80px;
    padding: 12px 0;
    margin-bottom: 0 !important;
    align-items: center !important;
}
article.content > div:has(> div > h1) > div > .text-muted { margin-top: 2px; max-width: 900px; }
@media (min-width: 641px) {
    article.content > h1,
    article.content > div:has(> h1),
    article.content > div:has(> div > h1) { padding-right: 330px; }
}
article.content h2, article.content .h5, article.content .h6 { font-weight: 500; }

/* --- Filtre çubuğu: gri bant, beyaz filtre kutuları solda, büyük arama alanı, sağda kayıt sayısı --- */
.d-flex.gap-2:has(> .form-control, > .form-select) {
    background: var(--p-cubuk);
    border-radius: 3px;
    padding: 4px 14px 4px 4px;
    gap: 4px !important;
    min-height: 40px;
    margin-bottom: 12px !important;
    align-items: center;
}
.d-flex.gap-2:has(> .form-control, > .form-select) > .form-select,
.d-flex.gap-2:has(> .form-control, > .form-select) > .form-control[type=date],
.d-flex.gap-2:has(> .form-control, > .form-select) > .form-control[type=number] {
    order: -1;
    flex: 0 0 auto;
    width: auto;
    height: 32px;
    padding-top: 0;
    padding-bottom: 0;
    border: 0;
    border-radius: 2px;
    background-color: #fff;
    font-size: 12px;
    font-weight: 700;
    color: #6f6765;
    letter-spacing: .2px;
}
.d-flex.gap-2:has(> .form-control, > .form-select) > .form-control:not([type=date]):not([type=number]) {
    flex: 1 1 240px;
    width: auto !important;
    height: 32px;
    padding: 0 10px;
    border: 0;
    background: transparent;
    box-shadow: none !important;
    font-size: 17px;
    color: var(--p-metin);
}
.d-flex.gap-2:has(> .form-control, > .form-select) > .form-control::placeholder { color: #8f8a88; }
.d-flex.gap-2:has(> .form-control, > .form-select) > .form-check { margin: 0 8px; font-size: 12.5px; color: #6f6765; }
.d-flex.gap-2:has(> .form-control, > .form-select) > .text-muted,
.d-flex.gap-2:has(> .form-control, > .form-select) > span {
    font-size: 12.5px;
    color: #6f6765 !important;
    white-space: nowrap;
    padding-left: 8px;
}

/* --- Liste / tablo: şeffaf büyük harfli başlık satırı, beyaz yüksek satırlar --- */
.table {
    --bs-table-color: #403637;
    --bs-table-bg: #fff;
    --bs-table-border-color: #e8e6e5;
    --bs-table-hover-bg: #f7f6f5;
    --bs-table-hover-color: #403637;
    --bs-table-active-bg: #eef9f7;
    --bs-table-active-color: #403637;
    --bs-table-striped-bg: #faf9f9;
    font-size: 15px;
    margin-bottom: 0;
    border-collapse: separate;
    border-spacing: 0;
}
.table > :not(caption) > * > * { padding: 14px 12px; vertical-align: middle; }
.table.tablo-sikisik > :not(caption) > * > * { padding: 14px 12px; font-size: 15px; }
.table > thead > tr > th {
    background-color: transparent;
    box-shadow: none;
    border-bottom: 0;
    padding-top: 10px;
    padding-bottom: 10px;
    font-size: 11px !important;
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
    color: #9a9593;
    white-space: nowrap;
}
.table > tbody > tr:last-child > * { border-bottom-width: 0; }
.table > tbody > tr:first-child > :first-child { border-top-left-radius: 3px; }
.table > tbody > tr:first-child > :last-child { border-top-right-radius: 3px; }
.table > tbody > tr:last-child > :first-child { border-bottom-left-radius: 3px; }
.table > tbody > tr:last-child > :last-child { border-bottom-right-radius: 3px; }
.table > tbody > tr > td:first-child, .table > thead > tr > th:first-child { padding-left: 16px; }
.table > tbody > tr > td:last-child, .table > thead > tr > th:last-child { padding-right: 16px; }
.table td.text-end:not(:has(.btn, a)), .table td .monospace, .monospace { font-family: "Roboto Mono", Consolas, "Courier New", monospace; }
.table td.text-end:not(:has(.btn, a)) { font-size: 14px; }
.table td.small, .table td small, .table td .small { font-size: 12.5px; }
.table-responsive { margin-bottom: 16px; }
table.table a { color: var(--p-metin); text-decoration: none; }
table.table a:hover { color: #1a9cbf; text-decoration: underline; }
.table-warning { --bs-table-bg: #fff7e3; --bs-table-hover-bg: #fdf0cf; --bs-table-color: #403637; --bs-table-border-color: #e8e6e5; }
.table-danger { --bs-table-bg: #fdeceb; --bs-table-hover-bg: #fbdedb; --bs-table-color: #403637; --bs-table-border-color: #e8e6e5; }
.table-active > td:first-child { box-shadow: inset 3px 0 0 var(--p-yesil), inset 0 0 0 9999px var(--bs-table-active-bg) !important; }
/* kart içindeki alt tablolar (reçete kalemleri, detay kalemleri) biraz daha sık */
.card .table > :not(caption) > * > * { padding-top: 10px; padding-bottom: 10px; }
.card .table > thead > tr > th { border-bottom: 1px solid var(--p-cizgi); }

/* --- Kartlar: çerçevesiz beyaz paneller --- */
.card {
    border-width: 0;
    border-radius: 3px;
    box-shadow: 0 1px 1px rgba(0, 0, 0, .1);
    color: var(--p-metin);
}
.card[class*="border-"]:not(.kart-kpi) { border-top-width: 3px; border-top-style: solid; }
.card-header {
    background: #fff;
    border-bottom: 1px solid var(--p-cizgi);
    padding: 14px 16px;
    font-size: 16px;
}
.card-header:first-child { border-radius: 3px 3px 0 0; }
.card-body { padding: 16px; }
.card-footer { background: #faf9f9; border-top: 1px solid var(--p-cizgi); }
.list-group { border-radius: 3px; --bs-list-group-border-color: #e8e6e5; --bs-list-group-color: #403637; }
.list-group-item { padding: 12px 16px; }

/* --- Düğmeler: küçük, kalın, büyük harf --- */
.btn {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
    border-radius: 3px;
    padding: 9px 16px;
    line-height: 16px;
}
.btn-sm { font-size: 11px; padding: 7px 12px; line-height: 14px; }
.btn-lg { font-size: 13px; padding: 12px 20px; }
.btn-primary, .btn-primary:disabled, .btn-primary.disabled {
    color: #fff;
    background: linear-gradient(#665a59, #564b4b);
    border-color: #4d4343;
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary:first-child:active {
    color: #fff;
    background: #4a4040;
    border-color: #403637;
}
.btn-outline-primary, .btn-outline-secondary {
    color: #7d7674;
    border-color: #bfbbb9;
    background: transparent;
}
.btn-outline-primary:hover, .btn-outline-secondary:hover,
.btn-outline-primary:focus, .btn-outline-secondary:focus,
.btn-outline-primary:active, .btn-outline-secondary:active,
.btn-outline-primary:first-child:active, .btn-outline-secondary:first-child:active {
    color: var(--p-metin);
    background: #fff;
    border-color: #b0acaa;
}
.card .btn-outline-primary, .card .btn-outline-secondary { border-color: #d2cfcd; }
.btn-success, .btn-success:disabled { color: #fff; background: var(--p-yesil); border-color: #1fae92; }
.btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success:first-child:active { color: #fff; background: #1fae92; border-color: #1a9e85; }
.btn-outline-success { color: #1a9e85; border-color: var(--p-yesil); background: #fff; }
.btn-outline-success:hover, .btn-outline-success:active, .btn-outline-success:first-child:active { color: #fff; background: var(--p-yesil); border-color: var(--p-yesil); }
.btn-danger, .btn-danger:disabled { color: #fff; background: var(--p-kirmizi); border-color: #d75445; }
.btn-danger:hover, .btn-danger:focus, .btn-danger:active, .btn-danger:first-child:active { color: #fff; background: #d75445; border-color: #c9483a; }
.btn-outline-danger { color: var(--p-kirmizi); border-color: var(--p-kirmizi); background: #fff; }
.btn-outline-danger:hover, .btn-outline-danger:active, .btn-outline-danger:first-child:active { color: #fff; background: var(--p-kirmizi); border-color: var(--p-kirmizi); }
.btn-outline-warning { color: #c9820f; border-color: var(--p-turuncu); background: #fff; }
.btn-outline-warning:hover { color: #fff; background: var(--p-turuncu); border-color: var(--p-turuncu); }
.btn-info { color: #fff; background: var(--p-mavi); border-color: #1f97ba; }
.btn-link, .btn-link.btn-sm {
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
    text-decoration: none;
}
.btn-link:hover { text-decoration: underline; }
.btn:focus-visible, .form-check-input:focus { box-shadow: 0 0 0 2px rgba(38, 192, 162, .3); }

/* --- Formlar --- */
.form-control, .form-select {
    font-size: 15px;
    color: var(--p-metin);
    border-color: #d2cfcd;
    border-radius: 3px;
    padding: 8px 10px;
}
.form-select { padding-right: 2rem; }
.form-control-sm, .form-select-sm { font-size: 13px; padding: 5px 8px; }
.form-select-sm { padding-right: 1.8rem; }
.form-control:focus, .form-select:focus { border-color: var(--p-yesil); box-shadow: 0 0 0 2px rgba(38, 192, 162, .2); }
.form-label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .4px;
    text-transform: uppercase;
    color: var(--p-soluk);
    margin-bottom: 4px;
}
.form-label .text-muted { text-transform: none; font-weight: 400; letter-spacing: 0; }
.form-text { font-size: 12px; color: var(--p-soluk); }
.form-check-input:checked { background-color: var(--p-yesil); border-color: var(--p-yesil); }
.form-check-label { cursor: pointer; }

/* --- Rozetler: etiket (dolu, büyük harf) ve durum (gri hap + renkli nokta) --- */
.badge {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .3px;
    text-transform: uppercase;
    border-radius: 3px;
    padding: 3px 6px;
}
.badge.durum {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 9px 3px 5px;
    border: 0 !important;
    border-radius: 10px;
    background: #f1f0ef !important;
    color: #8d8785 !important;
    white-space: nowrap;
}
.badge.durum::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: #b5b1af; flex: 0 0 10px; }
.badge.durum.bg-success::before { background: var(--p-yesil); }
.badge.durum.bg-primary::before { background: var(--p-mavi); }
.badge.durum.bg-info::before { background: #8e7cc3; }
.badge.durum.bg-warning::before { background: var(--p-turuncu); }
.badge.durum.bg-danger::before { background: var(--p-kirmizi); }
.bg-primary { background-color: var(--p-mavi) !important; }
.bg-success { background-color: #4cb85c !important; }
.bg-danger { background-color: var(--p-kirmizi) !important; }
.bg-warning { background-color: var(--p-turuncu) !important; }
.bg-secondary { background-color: #a5a09e !important; }

/* --- Diğer --- */
.alert { border: 0; border-left: 4px solid transparent; border-radius: 3px; font-size: 14px; color: var(--p-metin); }
.alert-success { background: #e3f6f2; border-left-color: var(--p-yesil); }
.alert-danger { background: #fdeceb; border-left-color: var(--p-kirmizi); }
.alert-warning { background: #fff4d9; border-left-color: var(--p-turuncu); }
.alert-info { background: #e2f3f8; border-left-color: var(--p-mavi); }
.alert-secondary { background: #ecebea; border-left-color: #a5a09e; }
.progress { background: #eceae9; border-radius: 10px; }
.progress-bar { background-color: var(--p-mavi); }
.progress-bar.bg-info { background-color: var(--p-yesil) !important; }
.nav-tabs { border-bottom: 1px solid #c9c6c4; }
.nav-tabs .nav-link { font-size: 12px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; color: var(--p-soluk); border: 0; border-bottom: 3px solid transparent; }
.nav-tabs .nav-link:hover { color: var(--p-metin); }
.nav-tabs .nav-link.active { color: var(--p-metin); background: transparent; border-bottom-color: var(--p-yesil); }
.giris-sayfa { background: var(--p-zemin) !important; }
hr { border-color: #c9c6c4; opacity: 1; }

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

/* --- Divit ERP ek stiller --- */
.kart-kpi { border-left: 4px solid #25a9cf; }
.kart-kpi .deger { font-size: 26px; font-weight: 700; line-height: 1.2; font-family: "Roboto Mono", Consolas, monospace; }
.kart-kpi .etiket { font-size: 11px; font-weight: 700; color: #8d8785; text-transform: uppercase; letter-spacing: .5px; }
.ilerleme-ince { height: .45rem; }
.satir-tikla { cursor: pointer; }
/* Sipariş sayfasının sağ sütunu: ilk kart soldaki "Kalemler" kartıyla aynı hizada başlar */
.sag-sutun > :first-child { margin-top: 0 !important; }
.zaman-cizgisi { border-left: 2px solid #dee2e6; padding-left: 1rem; }
.zaman-cizgisi .madde { position: relative; margin-bottom: .75rem; }
.zaman-cizgisi .madde::before { content: ""; position: absolute; left: -1.38rem; top: .35rem; width: .7rem; height: .7rem; border-radius: 50%; background: #1b6ec2; }

/* --- Üretim panosu / cihaz kutuları --- */
.cihaz-kutular { display: flex; flex-wrap: wrap; gap: 4px; }
.cihaz-kutu { position: relative; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; width: 72px; height: 42px; border-radius: 6px; border: 2px solid transparent; padding: 1px 2px; font-family: Consolas, "Courier New", monospace; font-size: .82rem; font-weight: 600; line-height: 1.1; color: #fff; cursor: pointer; transition: transform .08s, filter .08s; }
.cihaz-kutu .gun { position: absolute; top: -6px; right: -5px; font-size: .58rem; font-weight: 700; line-height: 1.3; padding: 0 4px; border-radius: 8px; background: #dc3545; color: #fff; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; }
.sira-oklar button { color: #6c757d; text-decoration: none; font-size: .7rem; }
.sira-oklar button:hover:not(:disabled) { color: #0d6efd; }
.sira-oklar button:disabled { opacity: .25; }
.cihaz-kutu .alt { font-size: .62rem; font-weight: 400; opacity: .9; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; }
.cihaz-kutu.asama-yeni { background: #6c757d; }
.cihaz-kutu.asama-test { background: #0d6efd; }
.cihaz-kutu.asama-bitti { background: #198754; }
.cihaz-kutu.asama-depoda { background: #6f42c1; }
.cihaz-kutu.asama-sevk { background: #0dcaf0; color: #052c65; }
.cihaz-kutu.asama-iptal { background: #e9ecef; color: #6c757d; text-decoration: line-through; }
.cihaz-kutu.bos { background: #fff; border: 2px dashed #ced4da; color: #adb5bd; cursor: default; }
.cihaz-kutu.secili { border-color: #ffc107; box-shadow: 0 0 0 2px rgba(255,193,7,.45); }
.cihaz-kutu.soluk { opacity: .3; }
.cihaz-kutu:hover:not(:disabled):not(.bos) { filter: brightness(1.12); transform: translateY(-1px); }
.cihaz-kutu:disabled { cursor: default; }
.asama-rozet-yeni { background: #6c757d; color: #fff; }
.asama-rozet-test { background: #0d6efd; color: #fff; }
.asama-rozet-bitti { background: #198754; color: #fff; }
.asama-rozet-depoda { background: #6f42c1; color: #fff; }
.asama-rozet-sevk { background: #0dcaf0; color: #052c65; }
.asama-kpi { cursor: pointer; user-select: none; }
.asama-kpi.aktif { outline: 2px solid #ffc107; }
.uretim-kart .card-header { background: #fff; }
.uretim-kart.border-warning .card-header { background: #fff8e1; }

.stok-sayim-oncesi { opacity: .55; }
.stok-sayim-oncesi td:first-child::after { content: " (sayım öncesi)"; font-size: .7rem; color: #6c757d; }

/* --- Siparişler: "Güncel üretim" tablosu --- */
@media (min-width: 641px) {
    article.content > h1,
    article.content > div:has(> h1),
    article.content > div:has(> div > h1) { padding-right: 540px; }
}
.siparis-tablo .toplam-satir > td { background: #f1f0ef; font-weight: 700; box-shadow: none; padding-top: 10px; padding-bottom: 10px; }
.siparis-tablo td.text-end { font-family: "Roboto Mono", Consolas, monospace; font-size: 14px; }
.siparis-tablo td.text-end .btn, .siparis-tablo td.text-end a { font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif; }
.siparis-tablo .sira-no { font-family: "Roboto Mono", Consolas, monospace; font-weight: 700; font-size: 15px; min-width: 22px; text-align: center; }
.siparis-tablo .siparis-acilim > td { background: #faf9f9; box-shadow: none; padding-top: 12px; padding-bottom: 12px; }
.siparis-tablo tr.siparis-acilim:hover > td { background: #faf9f9; box-shadow: none; }
.durum-sec { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; height: 30px; padding: 0 28px 0 26px; border-radius: 15px; border-color: #e0dedc; color: #6f6765;
    background-color: #f1f0ef; background-image: radial-gradient(circle at 13px 50%, var(--nokta, #b5b1af) 0 5px, transparent 5.5px), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%238d8785' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    background-repeat: no-repeat, no-repeat; background-position: 0 0, right 9px center; background-size: 100% 100%, 12px 10px; }
.durum-sec.durum-bekliyor { --nokta: #b5b1af; }
.durum-sec.durum-uretimde { --nokta: #25a9cf; }
.durum-sec.durum-hazir { --nokta: #f5a623; }
.durum-sec.durum-kismensevkedildi { --nokta: #8e7cc3; }
.durum-sec.durum-sevkedildi, .durum-sec.durum-faturalandi { --nokta: #26c0a2; }
.urun-etiket { display: inline-block; min-width: 38px; text-align: center; font-size: 11px; font-weight: 700; letter-spacing: .3px; padding: 2px 7px; border-radius: 3px; background: #5b4f4f; color: #fff; }
.urun-etiket.aksesuar { background: #f08a4b; }
.barkod-cip { display: inline-block; font-family: "Roboto Mono", Consolas, monospace; font-size: 12px; font-weight: 500; padding: 2px 7px; border-radius: 3px; color: #fff !important; text-decoration: none !important; background: #6c757d; }
.barkod-cip:hover { filter: brightness(1.12); }
.barkod-cip.asama-yeni { background: #6c757d; }
.barkod-cip.asama-test { background: #0d6efd; }
.barkod-cip.asama-bitti { background: #198754; }
.barkod-cip.asama-depoda { background: #6f42c1; }
.barkod-cip.asama-sevk { background: #0dcaf0; color: #052c65 !important; }
.barkod-cip.asama-iptal { background: #e9ecef; color: #6c757d !important; text-decoration: line-through !important; }

/* --- Sipariş girişi: kalem satırları (envanter programındaki gibi) --- */
.siparis-kalem { display: flex; align-items: center; gap: 14px; padding: 10px 12px; margin-bottom: 8px; border: 1px solid #e8e6e5; border-radius: 4px; background: #faf9f9; flex-wrap: wrap; }
.siparis-kalem.secili { background: #eef9f7; border-color: #b9e6dc; }
.siparis-kalem .etiket { flex: 0 0 64px; }
.siparis-kalem .etiket .urun-etiket { font-size: 13px; padding: 4px 10px; min-width: 52px; }
.siparis-kalem .adet { flex: 0 0 140px; }
.siparis-kalem .adet input { font-family: "Roboto Mono", Consolas, monospace; font-weight: 700; font-size: 17px; }
.siparis-kalem .ozet { flex: 1 1 260px; min-width: 0; }
.siparis-kalem .fiyat { flex: 0 0 130px; }

/* --- Barkod yaşam döngüsü özeti --- */
.yasam-ozet { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0; }
.yasam-ozet > div { padding: 12px 16px; border-right: 1px solid #e8e6e5; border-bottom: 1px solid #e8e6e5; min-width: 0; overflow-wrap: anywhere; }
.yasam-ozet .badge { white-space: normal; text-align: left; }
.yasam-ozet .etiket { font-size: 11px; font-weight: 700; color: #8d8785; text-transform: uppercase; letter-spacing: .5px; }
.yasam-ozet .deger { font-size: 18px; font-weight: 500; line-height: 1.3; }
.bekleme-uzun { color: #e45f51; font-weight: 700; }
.bekleme-orta { color: #c9820f; font-weight: 700; }


/* ===== v3.1 Teklif modülü ===== */
/* Teklif belgesi ve yazdırma sayfası stili: wwwroot/teklif/belge.css (PDF üretimi de aynı dosyayı okur). */

/* Teklif sayfası özet tablosu: metin değerleri düz yazı, sayılar hizalı */
.table.teklif-ozet td.text-end:not(:has(.btn, a)), .table.teklif-ozet td.text-end { font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif; font-variant-numeric: tabular-nums; }

/* Teklif editörü */
.teklif-kalem-tablo td { vertical-align: top; }
.teklif-kalem-tablo td .form-control-sm { padding-left: 7px; padding-right: 7px; }
.teklif-kalem-tablo tr.bolum td { background: #faf9f9; }
.teklif-kalem-tablo .sira-oklar { display: flex; flex-direction: column; align-items: center; padding-top: 4px; }
.teklif-toplam { border-collapse: collapse; }
.teklif-toplam th { text-align: right; font-weight: 500; color: #6f6765; padding: 3px 14px 3px 0; font-size: 13px; white-space: nowrap; }
.teklif-toplam td { text-align: right; padding: 3px 0; white-space: nowrap; font-family: "Roboto Mono", Consolas, monospace; }
.teklif-toplam tr.genel th, .teklif-toplam tr.genel td { border-top: 2px solid #5b4f4f; font-weight: 700; font-size: 16px; color: #1f1b1a; padding-top: 6px; }

/* ===== v3.3 Teklif kıyaslama / müşteri teklif geçmişi ===== */
.firma-baglanti { color: inherit; text-decoration: none; border-bottom: 1px dotted #b5b1af; }
.firma-baglanti:hover { color: #147d99; border-bottom-color: #147d99; }
.badge .firma-baglanti:hover { color: inherit; border-bottom-color: currentColor; }
.kiyas-kap { background: #fff; border: 1px solid #e8e6e5; border-radius: 4px; }
.table.kiyas-tablo { border-collapse: separate; border-spacing: 0; }
.table.kiyas-tablo th, .table.kiyas-tablo td { vertical-align: top; padding: 8px 12px; border-bottom: 1px solid #efedec; font-size: 13px; font-family: inherit; }
.table.kiyas-tablo thead th { min-width: 210px; background: #fff; border-bottom: 2px solid #5b4f4f; font-weight: 400; text-transform: none; letter-spacing: 0; color: inherit; }
.table.kiyas-tablo thead th a.monospace { font-size: 15px; }
.table.kiyas-tablo .kiyas-etiket { position: sticky; left: 0; z-index: 1; background: #fff; min-width: 220px; max-width: 300px; font-weight: 500; border-right: 1px solid #efedec; text-transform: none; letter-spacing: 0; color: inherit; }
.table.kiyas-tablo td + td, .table.kiyas-tablo thead th + th { border-left: 1px solid #f3f1f0; }
.table.kiyas-tablo tr.kiyas-bolum th { background: #f7f6f5; font-size: 11px; font-weight: 700; color: #8d8785; text-transform: uppercase; letter-spacing: .5px; padding: 6px 12px; }
.table.kiyas-tablo tr.kiyas-toplam th, .table.kiyas-tablo tr.kiyas-toplam td { background: #fbfaf9; }
.kiyas-alt { font-size: 12px; color: #8d8785; font-weight: 400; }
.kiyas-yok { color: #b5b1af; }
.kiyas-metin { white-space: pre-line; font-size: 12px; color: #5f5855; }
.kiyas-fark { font-size: 12px; font-weight: 700; white-space: nowrap; margin-left: 4px; }
.kiyas-artis { color: #c2571a; }
.kiyas-azalis { color: #1a7f9c; }
.kiyas-ayni { color: #b5b1af; }
.table.kiyas-ayrinti { background: #faf9f9; }
.table.kiyas-ayrinti th, .table.kiyas-ayrinti td { padding-left: 28px; }

/* Yeni iş girişi: tür çipleri, kamera sayaçları, şerit kapsama çubuğu, şerit fiyatı kaydırıcısı, koyu özet paneli */
.is-giris .is-tipler { display: flex; flex-wrap: wrap; gap: 6px; }
.is-giris .is-tip { border: 1px solid #d9d5d3; background: #fff; color: #5b4f4f; border-radius: 16px; padding: 4px 12px; font-size: 12px; font-weight: 700; letter-spacing: .3px; cursor: pointer; }
.is-giris .is-tip:hover { border-color: #25a9cf; }
.is-giris .is-tip.secili { background: #5b4f4f; border-color: #5b4f4f; color: #fff; }
.is-sayac { display: flex; align-items: stretch; border: 1px solid #d9d5d3; border-radius: 4px; overflow: hidden; background: #fff; }
.is-sayac button { width: 40px; border: 0; background: #f3f1f0; font-size: 20px; font-weight: 700; color: #5b4f4f; cursor: pointer; line-height: 1; }
.is-sayac button:hover { background: #e7e3e1; }
.is-sayac input { flex: 1; min-width: 0; border: 0; text-align: center; font-size: 20px; font-weight: 700; font-family: "Roboto Mono", Consolas, monospace; padding: 8px 0; outline: none; -moz-appearance: textfield; }
.is-sayac input::-webkit-outer-spin-button, .is-sayac input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.is-kapsama { display: flex; height: 30px; border-radius: 4px; overflow: hidden; background: #f3f1f0; font-size: 11px; font-weight: 700; color: #fff; }
.is-kapsama > div { display: flex; align-items: center; justify-content: center; white-space: nowrap; overflow: hidden; transition: width .2s; }
.is-kapsama .m4 { background: #25a9cf; } .is-kapsama .m8 { background: #26c0a2; } .is-kapsama .m12 { background: #8e7cc3; }
.is-kapsama .bos { background: repeating-linear-gradient(135deg, #f6d9d5, #f6d9d5 6px, #fbeceb 6px, #fbeceb 12px); color: #c0392b; }
.is-fiyat-deger { display: flex; align-items: baseline; gap: 10px; }
.is-fiyat-deger input { width: 190px; border: 0; border-bottom: 2px solid #25a9cf; font-size: 40px; font-weight: 700; font-family: "Roboto Mono", Consolas, monospace; color: #2d2c2c; outline: none; padding: 0; background: transparent; }
.is-fiyat-deger span { color: #8d8785; font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: .5px; }
.is-kaydirici { margin-top: 14px; height: 28px; }
.is-kaydirici::-webkit-slider-runnable-track { height: 8px; border-radius: 4px; background: linear-gradient(90deg, #26c0a2, #25a9cf 55%, #8e7cc3); }
.is-kaydirici::-webkit-slider-thumb { width: 26px; height: 26px; margin-top: -9px; background: #fff; border: 4px solid #5b4f4f; box-shadow: 0 1px 4px rgba(0, 0, 0, .3); }
.is-kaydirici::-moz-range-track { height: 8px; border-radius: 4px; background: linear-gradient(90deg, #26c0a2, #25a9cf 55%, #8e7cc3); }
.is-kaydirici::-moz-range-thumb { width: 20px; height: 20px; background: #fff; border: 4px solid #5b4f4f; }
.is-olcek { display: flex; justify-content: space-between; font-size: 11px; color: #a5a09e; font-family: "Roboto Mono", Consolas, monospace; }
.is-hizli { display: flex; flex-wrap: wrap; gap: 6px; }
.is-hizli button, .is-cipler button { border: 1px solid #d9d5d3; background: #fff; border-radius: 4px; padding: 3px 10px; font-size: 12px; font-weight: 700; color: #5b4f4f; cursor: pointer; }
.is-hizli button:hover, .is-cipler button:hover { border-color: #25a9cf; color: #1a7f9c; }
.is-hizli button.secili { background: #25a9cf; border-color: #25a9cf; color: #fff; }
.is-cipler { display: flex; flex-wrap: wrap; gap: 6px; }
.is-ozet { position: sticky; top: 8px; z-index: 4; background: linear-gradient(135deg, #2d2c2c, #4a4040); color: #fff; border-radius: 6px; padding: 18px 20px; box-shadow: 0 4px 14px rgba(45, 44, 44, .25); }
.is-ozet .etiket { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .6px; color: #c9c3c0; }
.is-ozet-ust { display: flex; justify-content: space-between; gap: 16px; }
.is-ozet .buyuk { font-size: 44px; font-weight: 700; line-height: 1.1; font-family: "Roboto Mono", Consolas, monospace; color: #6fe3cb; }
.is-ozet .buyuk.ikinci { font-size: 28px; color: #fff; padding-top: 12px; }
.is-ozet .buyuk span { font-size: 13px; color: #c9c3c0; margin-left: 6px; }
.is-ozet-satir { display: flex; gap: 8px; margin-top: 14px; }
.is-ozet-satir > div { flex: 1; background: rgba(255, 255, 255, .08); border-radius: 4px; padding: 8px 10px; }
.is-ozet-satir .urun-etiket { background: rgba(255, 255, 255, .18); }
.is-ozet-satir strong { display: block; font-size: 20px; font-family: "Roboto Mono", Consolas, monospace; margin-top: 4px; }
.is-ozet-satir em { font-style: normal; font-size: 11px; color: #c9c3c0; }
.is-ozet-alt { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 12px; font-size: 12px; color: #c9c3c0; }
.is-oneriler { border: 1px solid #d9d5d3; border-top: 0; border-radius: 0 0 4px 4px; max-height: 300px; overflow: auto; }
.is-oneriler button { display: flex; justify-content: space-between; gap: 10px; width: 100%; text-align: left; border: 0; border-bottom: 1px solid #f0edec; background: #fff; padding: 7px 10px; font-size: 13px; cursor: pointer; }
.is-oneriler button:hover { background: #eef8fb; }
.is-firma-fiyat { display: flex; align-items: center; gap: 6px; }
.is-firma-fiyat input { width: 96px; text-align: right; border: 1px solid #d9d5d3; border-radius: 4px; padding: 4px 6px; font-weight: 700; font-family: "Roboto Mono", Consolas, monospace; }
/* Sağ tık menüsü (teklif listesi) ve sıralanabilir sütun başlığı */
.sag-menu { position: fixed; z-index: 2000; min-width: 190px; background: #fff; border: 1px solid #d9d5d3; border-radius: 4px; box-shadow: 0 6px 18px rgba(0, 0, 0, .18); padding: 4px 0; }
.sag-menu button, .sag-menu a { display: block; width: 100%; text-align: left; border: 0; background: none; padding: 7px 14px; font-size: 13px; color: #2d2c2c; text-decoration: none; cursor: pointer; }
.sag-menu button:hover, .sag-menu a:hover { background: #eef8fb; }
.sag-menu .baslik { padding: 5px 14px; font-size: 11px; font-weight: 700; color: #8d8785; text-transform: uppercase; border-bottom: 1px solid #f0edec; }
/* v4.10: sağ tık menüsünün başlığındaki firma bağlantısı menü satırı gibi değil, başlığın parçası gibi görünür */
.sag-menu .baslik a.firma-baglanti { display: inline; width: auto; padding: 0; font-size: inherit; color: inherit; border-bottom: 1px dotted #b5b1af; }
.sag-menu .baslik a.firma-baglanti:hover { background: none; color: #147d99; }
.sag-menu-zemin { position: fixed; inset: 0; z-index: 1999; }
.sag-menu { max-width: 240px; }
/* Ortam / test oturumu bandı (her sayfanın üstünde) */
.ortam-bandi { padding: 6px 16px; font-size: 13px; text-align: center; position: sticky; top: 0; z-index: 1500; }
.ortam-bandi.test { background: #c62828; color: #fff; }
.ortam-bandi.deneme { background: #ffe08a; color: #4a3b00; }
.ortam-bandi a { color: inherit; font-weight: 700; margin-left: 10px; text-decoration: underline; }
/* v4.7 — test oturumunda kullanıcı tipi seçimi (bant yüksekliğini değiştirmeyecek kadar küçük) */
.ortam-bandi .test-rol { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 0 12px; vertical-align: middle; }
.ortam-bandi .test-rol label { margin: 0; font-weight: 400; }
.ortam-bandi .test-rol select { height: 19px; padding: 0 4px; font-size: 12px; line-height: 1; border: 0; border-radius: 3px; color: #403637; background: #fff; }
.ortam-bandi .test-rol select.taklit { background: #ffe08a; font-weight: 700; }
/* bant varken sağ üstteki kullanıcı bandı (main'e göre mutlak konumlu) bandın altına iner */
.ortam-bandi ~ .ust-kullanici { top: 31px; }
.sag-menu button.tehlike { color: #b02a37; border-top: 1px solid #f0edec; }
.sag-menu button:disabled { color: #b5b0ae; cursor: default; }
.sag-menu .onay { border-top: 1px solid #f0edec; padding: 6px 0 2px; }
.sag-menu .onay > div { padding: 2px 14px 4px; font-size: 13px; }
th.sirala { cursor: pointer; user-select: none; white-space: nowrap; }
th.sirala:hover { color: #1a7f9c; }
th.sirala .ok { font-size: 10px; margin-left: 3px; color: #25a9cf; }
th.sirala .ok.pasif { color: #cfcac8; }
.yapisik-kart { position: sticky; top: 8px; max-height: calc(100vh - 16px); overflow: auto; }

/* Aranabilir firma seçici (v4.3, FirmaSecici.razor): giriş kutusunun altında süzülen liste */
.firma-secici { position: relative; }
/* v4.9.1: seçili firmanın adı kutuda "placeholder" olarak durur (kutunun değeri yalnız yazılan aramadır); liste kapalıyken normal
   yazı renginde, liste açıkken (yazınca yerini aramaya bırakacağı için) soluk görünür */
.firma-secici input.dolu::placeholder { color: inherit; opacity: 1; }
.firma-liste { position: absolute; z-index: 1200; left: 0; right: 0; top: 100%; margin-top: 2px; max-height: 320px; overflow: auto; background: #fff; border: 1px solid #d9d5d3; border-radius: 4px; box-shadow: 0 6px 18px rgba(0, 0, 0, .18); }
.firma-liste button { display: flex; justify-content: space-between; gap: 10px; width: 100%; text-align: left; border: 0; border-bottom: 1px solid #f0edec; background: #fff; padding: 7px 10px; font-size: 13px; color: #2d2c2c; cursor: pointer; }
.firma-liste button:hover, .firma-liste button.aktif { background: #eef8fb; }
.firma-liste button.secili .ad { font-weight: 700; }
.firma-liste .sehir { color: #8d8785; white-space: nowrap; font-size: 12px; }
.firma-liste .bos { padding: 7px 10px; font-size: 12px; color: #8d8785; }
.firma-liste button.temizle { color: #b02a37; font-size: 12px; justify-content: flex-start; }

/* v4.7 — uzun süren işlemde geri bildirim (wwwroot/erp.js, ErpBilesen.cs).
   .bekle: ekran görünmeden kilitlenir (çift tıklama olmasın); .acik: 0,4 sn'yi geçen işlemde ortadaki pencere görünür.
   z-index çerçevenin kendi uyarılarının (bağlantı koptu / hata bandı, 1000+) altında tutulur. */
.erp-mesgul { position: fixed; inset: 0; z-index: 990; display: none; align-items: center; justify-content: center; background: transparent; cursor: progress; }
.erp-mesgul.bekle { display: flex; }
.erp-mesgul .erp-mesgul-kutu { display: none; }
.erp-mesgul.acik { background: rgba(64, 54, 55, .38); }
.erp-mesgul.acik .erp-mesgul-kutu { display: flex; gap: 16px; align-items: center; background: #fff; border-radius: 8px; padding: 18px 24px; box-shadow: 0 12px 40px rgba(0, 0, 0, .28); max-width: min(520px, 92vw); cursor: default; }
.erp-mesgul-donen { flex: none; width: 36px; height: 36px; border-radius: 50%; border: 4px solid #e8e6e5; border-top-color: var(--p-mavi); animation: erp-don .8s linear infinite; }
.erp-mesgul-baslik { font-weight: 700; font-size: 15px; color: var(--p-metin); }
.erp-mesgul-alt { font-size: 13px; color: var(--p-soluk); margin-top: 2px; }
.erp-mesgul-kapat { margin-top: 8px; border: 1px solid #d9d5d3; background: #fff; border-radius: 4px; padding: 3px 10px; font-size: 12px; color: var(--p-metin); cursor: pointer; }
.erp-cubuk { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 1600; display: none; overflow: hidden; background: rgba(37, 169, 207, .18); pointer-events: none; }
.erp-cubuk.acik { display: block; }
.erp-cubuk.acik::before { content: ""; position: absolute; top: 0; bottom: 0; width: 35%; background: var(--p-mavi); animation: erp-kay 1.1s ease-in-out infinite; }
@keyframes erp-don { to { transform: rotate(360deg); } }
@keyframes erp-kay { from { left: -35%; } to { left: 100%; } }
@media (prefers-reduced-motion: reduce) { .erp-mesgul-donen { animation-duration: 2.4s; } .erp-cubuk.acik::before { animation: none; left: 0; width: 100%; opacity: .6; } }
@media print { .erp-mesgul, .erp-cubuk { display: none !important; } }

/* v4.7 — Güncel Durum → CEO: alan kutularındaki "etiket … sayı" satırları */
.ceo-satir { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 5px 0; border-bottom: 1px solid #f0edec; font-size: 13px; }
.ceo-satir:last-child { border-bottom: 0; }
.ceo-satir strong { font-family: "Roboto Mono", Consolas, monospace; font-size: 16px; }
/* v4.7 — Genel Akış sayfası: üstte adım şeridi, altında numaralı adımlar */
.akis-ozet { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.akis-hap { display: inline-block; padding: 4px 10px; border-radius: 14px; background: #fff; border: 1px solid #d9d5d3; font-size: 12px; font-weight: 700; color: var(--p-metin); text-decoration: none; white-space: nowrap; }
.akis-hap:hover { border-color: var(--p-mavi); color: #147d99; }
.akis-ok { color: var(--p-soluk); font-size: 13px; }
.akis-adim { display: flex; gap: 12px; padding: 10px 0; border-bottom: 1px solid #f0edec; scroll-margin-top: 70px; }
.akis-adim:last-child { border-bottom: 0; }
.akis-no { flex: none; width: 30px; height: 30px; border-radius: 50%; background: var(--p-mavi); color: #fff; font-weight: 700; font-size: 13px; display: flex; align-items: center; justify-content: center; }
.akis-baslik { font-weight: 700; font-size: 15px; }
.akis-kim { font-size: 12px; margin: 2px 0 4px; }
.akis-kim .badge { font-weight: 500; }
.akis-aciklama { font-size: 13px; }
.akis-oto { font-size: 12px; margin-top: 3px; color: #5b4f4f; }
.akis-adim:target .akis-baslik { color: #147d99; }

/* v4.8 — kurulum satırındaki aşama seçimi (küçük) ve satılan şerit kartı */
.asama-sec { width: 134px; height: 26px; padding-top: 1px; padding-bottom: 1px; font-size: 12px; margin-top: 3px; }
.serit-blok .serit-sayi { font-family: "Roboto Mono", Consolas, monospace; font-size: 30px; font-weight: 700; line-height: 1.1; }
.serit-blok .serit-birim { font-size: 13px; color: var(--p-soluk); margin-left: 4px; }
.serit-blok .serit-kirilim { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 6px; font-size: 13px; }
.serit-blok .serit-kirilim strong { font-family: "Roboto Mono", Consolas, monospace; }

/* v4.13 (.NET 10) — bağlantı kopunca çıkan pencere (Components/Layout/ReconnectModal.razor, <dialog>). Çerçeve durumu pencerenin
   sınıfıyla bildirir; hangi satırın görüneceği buna göre seçilir (şablondaki ReconnectModal.razor.css'in karşılığı). Açma / kapama,
   yeniden deneme ve kurallı yenileme erp.js'tedir ("Bağlantı kurtarma"). */
dialog#components-reconnect-modal { width: min(22rem, 92vw); margin: 20vh auto; padding: 22px 24px; border: 0; border-radius: 8px; background: #fff;
    box-shadow: 0 12px 40px rgba(0, 0, 0, .28); color: var(--p-metin); font-size: 15px; }
dialog#components-reconnect-modal::backdrop { background: rgba(64, 54, 55, .38); }
dialog#components-reconnect-modal .components-reconnect-container { display: flex; flex-direction: column; align-items: center; gap: 12px; }
dialog#components-reconnect-modal p { margin: 0; text-align: center; }
dialog#components-reconnect-modal button { border: 0; border-radius: 4px; padding: 6px 22px; background: var(--p-mavi); color: #fff; font-weight: 500; }
.components-reconnect-first-attempt-visible, .components-reconnect-repeated-attempt-visible, .components-reconnect-failed-visible,
.components-pause-visible, .components-resume-failed-visible, .erp-reconnect-rejected-visible,
dialog#components-reconnect-modal .components-rejoining-animation { display: none; }
#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible,
dialog#components-reconnect-modal.components-reconnect-show .components-rejoining-animation,
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible,
dialog#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation,
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible,
#components-reconnect-modal.components-reconnect-rejected .erp-reconnect-rejected-visible,
#components-reconnect-modal.components-reconnect-paused .components-pause-visible,
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible { display: block; }
/* yeniden denenirken çerçeve "show" sınıfını da bırakır: ilk deneme satırı gizlenir, yalnız "… saniye sonra" satırı kalır */
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-first-attempt-visible { display: none; }
/* (pencere yalnız showModal ile gösterilir — erp.js; şablondaki "sınıf varsa göster" kuralı bilerek alınmadı: uygulamanın kendi
   denemesi başarılı olduktan sonra çerçeve pencereyi "failed" sınıfında bırakabiliyor) */

/* v4.12 — .NET 8'in kendi "yeniden bağlanıyor" penceresi (İngilizce, div): içeriği gizlenir, yerine Türkçe metin yazılır. Yalnız
   erp.js'in işaretlediği pencereye (erp-kurtarma) uygulanır; .NET 10'da pencere yukarıdaki <dialog> olduğu için kullanılmaz
   (.NET 8 derlemesine geri dönülürse geçerlidir). */
#components-reconnect-modal.erp-kurtarma > * { display: none !important; }
#components-reconnect-modal.erp-kurtarma::after {
    content: "Sunucu bağlantısı koptu — yeniden bağlanılıyor…";
    position: absolute; left: 50%; top: 38%; transform: translate(-50%, -50%);
    width: max-content; max-width: 86vw; padding: 14px 20px; border-radius: 10px;
    background: #fff; box-shadow: 0 6px 24px rgba(0, 0, 0, .25); border: 1px solid #d0d7de;
    color: #1f2937; font: 500 16px/1.4 Roboto, system-ui, sans-serif; text-align: center;
}
